#include<bits/stdc++.h>
using namespace std;
//1.定义两个string s1,s2;
string s1,s2;
//1.5char f='+',p=0;
char f='+';
//2.定义3个数组a[300],b[300]用来存s1,s2;
int a[300],b[300],c[320],p=0;
int main(){
//3.分别将s1,s2逆序存入数组a,b;
cin>>s1>>s2;
if(s1.size()<s2.size()||(s1.size()==s2.size()&&s1<s2)){
swap(s1,s2);
f='-';
}
//s1.size()-1,循环i从i:s1.size()-1~0;
//s2.size()-1,循环i从i:s2.size()-1~0;
//a[s1.size()-1-i]=s[i]-'0';
//a[s2.size()-1-i]=s[i]-'0';
for(int i=0;i<=s1.size()-1;i++){
a[i]=s1[s1.size()-1-i]-'0';
}
for(int i=0;i<=s2.size()-1;i++){
b[i]=s2[s2.size()-1-i]-'0';
}
int len=s1.size();
//4.相减
//4.25先判断谁大,用大的减小的
//4.5考虑结果是否是负数
//如果s1<s2,交换s1,s2,f="-";
//4.75循环len次,判断是否要借位,a[i]数组c=数组a-数组b
//5.输出
//5.25先判断输出结果是否为负 f='-' cout<<'-';
if(f=='-'){
cout<<'-';
}
//5.75循环len~0;
//相减
for(int i=0;i<len;i++){
if(a[i]<b[i]){
a[i]=a[i]+10;
a[i+1]=a[i+1]-1;
}
c[i]=a[i]-b[i];
}
for(int i=len-1;i>=0;i--){
if(c[i]!=0){
p=i;
break;
}
}
for(int i=p;i>=0;i--){
cout<<c[i];
}
//5.5倒序输出
//6循环p~0 cout<<c[i];
}
/**************************************************************
Problem: 1269
User: zhangailin
Language: C++
Result: Accepted
Time:15 ms
Memory:2080 kb
****************************************************************/