#include<stdio.h>
#include <cstring>
char n[255],m[255];
int n1[255],m1[255],s[510];
int bigjia(char *a,char *b)
{
int a1[500],b1[500];
int i,j,k=0,t;
int lena=strlen(a);
int lenb=strlen(b);
for(i=0; i<lena; i++)
a1[i]=a[i]-48;
for(j=0; j<lenb; j++)
b1[j]=b[j]-48;
while(i>=0&&j>=0)
{
s[k]=a1[i]+b1[j];
k++;
i--;
j--;
}
if(i>=0)
while(i>=0)
{
s[k]=a1[i];
k++;
i--;
}
else if(j>=0)
while(j>=0)
{
s[k]=b1[j];
k++;
j--;
}
for(t=1; t<k; t++)
if(s[t]>=10)
{
s[t]%=10;
s[t+1]++;
}
while(s[k]==0)
k--;
return k;
}
int bigcheng(char *n,char *m)
{
int k=0,t,x=0,dig;
int lenn=strlen(n);
int lenm=strlen(m);
for(int i=0; i<lenn; i++)
n1[i]=n[i]-48;
for(int j=0; j<lenm; j++)
m1[j]=m[j]-48;
for(int j=lenm-1; j>=0; j--)
{
t=k;
for(int i=lenn-1; i>=0; i--)
{
s[t]+=n1[i]*m1[j];
t++;
}
++k;
dig=t;
}
for(int i=0; i<dig; i++)
while(s[i]>=10)
{
s[i]-=10;
++s[i+1];
}
return dig;
}
void exch_str(char*s1,char*s2)
{
char tmp[1001];
strcpy(tmp,s1);
strcpy(s1,s2);
strcpy(s2,tmp);
}
void bigjian(char *a,char *b)
{
int a1[1001]= {0},b1[1001]= {0},s[1001]= {0},sign=1;
int len_a,len_b,i,j,k=0,t;
len_a=strlen(a);
len_b=strlen(b);
if(len_a<len_b)
{
sign=-1;
exch_str(a,b);
t=len_a;
len_a=len_b;
len_b=t;
}
else if(len_a==len_b)
{
for(i=0; i<len_a; ++i)
{
if(a[i]>b[i])
{
sign=1;
break;
}
else if(a[i]<b[i])
{
sign=-1;
exch_str(a,b);
break;
}
}
}
else
{
sign=1;
}
for(i=0; i<len_a; ++i)
{
a1[i]=a[i]-'0';
}
for(j=0; j<len_b; ++j)
{
b1[j]=b[j]-'0';
}
while(i>=0&&j>=0)
{
s[k]=a1[i]-b1[j];
if(s[k]<0)
{
a1[i-1]-=1;
s[k]+=10;
}
k++;
i--;
j--;
}
while(i>=0)
{
s[k]=a1[i];
k++;
i--;
}
if(sign<0)
printf("-");
while(s[k]==0&&k>0)
{
k--;
}
if(k==0)
printf("0");
while(k>0)
{
printf("%d",s[k]);
k--;
}
}
int main()
{
scanf("%s%s",&n,&m);
int l=bigjia(n,m);
for(int i=l; i>0; i--)
printf("%d",s[i]);
puts("");
memset(s,0,sizeof(s));
int ll=bigcheng(n,m);
if(s[ll]!=0)
for(int i=ll; i>=0; i--)
printf("%d",s[i]);
else
for(int i=ll-1; i>=0; i--)
printf("%d",s[i]);
puts("");
memset(s,0,sizeof(s));
bigjian(n,m);
return 0;
}