#include<bits/stdc++.h>
using namespace std;
//1.定义俩个string s1,s2;
string s1,s2;
char f='+';
//3.定义3个整形数组a[300] b[300] c[300]
int a[500],b[500],c[500];
int main(){
int p=0;
//2.输入 s1,s2
cin>>s1>>s2;
if(s1.size()<s2.size()||(s1.size()==s2.size()&&s1<s2)){
f='-';
swap(s1,s2);
}
//4.分别将 s1,s2逆序存入数组a 数组b
// 4.1 循环i从s1.size()-1到0
// 4.2 a[s1.size()-1-i]=s1[i]-'0'
for(int i=0;i<s1.size();i++){
a[s1.size()-1-i]=s1[i]-'0';
}
// 4.3 循环i从s1.size()-1到0
// 4.4 b[s2.size()-1-i]=s2[i]-'0'
for(int i=0;i<s2.size();i++){
b[s2.size()-1-i]=s2[i]-'0';
}
// 5.相减
// 5.1考虑谁大谁小,用大减小
// 5.2考虑结果是负数
for(int i=0;i<s2.size();i++){
b[s2.size()-i-1]=s2[i]-'0';
}
//5.3求出int len=s1.size()
int len=s1.size();
for(int i=0;i<len;i++){ //5.4循环len
if(a[i]<b[i]) { //5.4.1 判断要不要借位
a[i]=a[i]+10;
a[i+1]=a[i+1]-1;
}
c[i]=a[i]-b[i];
}
// 6.输出
// 6.1 先判断输出结果是否为负
if(f=='-') cout<<'-';
//6.2倒序输出
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];
}
return 0;
}
/**************************************************************
Problem: 1269
User: laichenxu
Language: C++
Result: Accepted
Time:14 ms
Memory:2084 kb
****************************************************************/