#include<bits/stdc++.h>
using namespace std;
string s1,s2,s;
const int maxn=200000;
int a1[maxn],a2[maxn];
int n1,n2,n;
void zh(string s,int a[maxn]){
int n=s.length();
for(int i=0;i<s.length();i++){
a[n-i]=s[i]-'0';
}
}
void jf(int a1[maxn],int n1,int a2[maxn],int n2,int a3[maxn]){
for(int i=1;i<=max(n1,n2);i++){
a3[i]=a1[i]-a2[i];
}
}
void tw(int a[maxn],int *n){
for(int i=*n;a[i]==0;i--){
a[i]+=10;
a[i+1]--;
}
}
string zhs(int a[maxn],int n){
for(int i=n;i>=1;i--){
char ch=a[i]+'0';
s=s+ch;
}
return s;
}
int main(){
int flag=1;
cin>>s1>>s2;
memset(a1,0,sizeof(a1));
memset(a2,0,sizeof(a2)) ;
n1=s1.length();
n2=s2.length();
zh(s1,a1);
zh(s2,a2);
if((a1<a2&&s1.size()==s2.size())||s1.size()<s2.size()){
swap(a1,a2);
flag=-1;
}
jf(a1,n1,a2,n2,a1);
n=max(n1,n2);
tw(a1,&n);
s=zhs(a1,n);
if(flag!=-1){
cout<<s<<endl;
}
else cout<<'-'<<s<<endl;
return 0;
}