#include <stdio.h>
#include <string.h>
#define MAX 200
int a1[MAX], a2[MAX];
char str1[MAX], str2[MAX];
char a[MAX];
void jiafa(char str1[MAX],char str2[MAX]);
void jianfa(char str1[MAX],char str2[MAX]);
char daxiao(char str1[MAX],char str2[MAX]);
int main()
{
int i;
char str3[MAX], str4[MAX];
while(scanf("%s%s",str1,str2))
{
if(str1[0]=='-')
{
for(i=0;i<MAX;i++)
str3[i]=str1[i+1];
}
if(str2[0]=='-')
{
for(i=0;i<MAX;i++)
str4[i]=str2[i+1];
}
if(str1[0]=='-'&&str2[0]!='-') //判断-a-b的情况
{
printf("-");
jiafa(str3,str2);
}
if(str1[0]!='-'&&str2[0]=='-') //判断a-(-b)的情况
{
jiafa(str1,str4);
}
if(str1[0]=='-'&&str2[0]=='-') //判断-a-(-b)的情况
{
/*strcpy(a,str3);
strcpy(str3,str4);
strcpy(str4,a); */
jianfa(str4,str3);
}
if(str1[0]!='-'&&str2[0]!='-') //判断a-b的情况
{
jianfa(str1,str2);
}
}
return 0;
}
void jiafa(char str1[MAX],char str2[MAX])
{
int i, j, len1, len2;
memset(a1,0,sizeof(a1));
memset(a2,0,sizeof(a2));
len1=strlen(str1);
len2=strlen(str2);
for(i=len1-1,j=0;i>=0;i--)
{
a1[j++]=str1[i]-'0';
}
for(i=len2-1,j=0;i>=0;i--)
{
a2[j++]=str2[i]-'0';
}
for(i=0;i<MAX;i++)
{
a1[i]+=a2[i];
if(a1[i]>=10)
{
a1[i]=a1[i]-10;
a1[i+1]++;
}
}
for(i=MAX-1;i>=0;i--)
{
if(i>=0&&a1[i]!=0)
{
for(;i>=0;i--)
printf("%d",a1[i]);
printf("\n");
}
else if(i==0&&a1[i]==0)
printf("0\n");
}
}
void jianfa(char str1[MAX],char str2[MAX])
{
int i, j, len1, len2;
memset(a1,0,sizeof(a1));
memset(a2,0,sizeof(a2));
len1=strlen(str1);
len2=strlen(str2);
if(len1<len2)
{
strcpy(a,str1);
strcpy(str1,str2);
strcpy(str2,a);
printf("-");
}
else if(len1==len2)
{
if(strcmp(str1,str2)<0)
{
strcpy(a,str1);
strcpy(str1,str2);
strcpy(str2,a);
printf("-");
}
}
for(i=len1-1,j=0;i>=0;i--)
{
a1[j++]=str1[i]-'0';
}
for(i=len2-1,j=0;i>=0;i--)
{
a2[j++]=str2[i]-'0';
}
for(i=0;i<MAX;i++)
{
if(a1[i]<a2[i])
{
a1[i+1]--;
a1[i]=a1[i]+10-a2[i];
}
else
a1[i]-=a2[i];
}
for(i=MAX-1;i>=0;i--)
{
if(i>=0&&a1[i]!=0)
{
for(;i>=0;i--)
printf("%d",a1[i]);
printf("\n");
}
else if(i==0&&a1[i]==0)
printf("0\n");
}
}