//test.cpp
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long ;
using pii = pair<int,int>;
using db = double;
//a>=b 
string sub(string a,string b){
	string ans;
	int i=a.size()-1,j=b.size()-1;
	int tmp=0;
	while(i>=0||j>=0){
		int na=(i>=0)?a[i--]-'0':0;
		int nb=(j>=0)?b[j--]-'0':0;
		int num=na-nb-tmp;
		if(num<0){
			num+=10;
			tmp=1;
		}else{
			tmp=0;
		}
		ans.push_back(num%10+'0');
	}
	while(ans.size()>1&&ans.back()=='0') ans.pop_back();
	reverse(ans.begin(),ans.end());
	return ans;
} 
int main(){
	string a,b;
	cin>>a>>b;
	cout<<sub(a,b)<<endl;
	return 0;
} 
//baoli.cpp
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using pii = pair<int,int>;
using db = double;
int main(){
    std::ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);
    int a,b;
    cin>>a>>b;
    cout<<a-b<<endl;
    return 0;
}
//data.cpp
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
    srand(time(0)+(unsigned long long)(new char));
    // cout<<1<<endl;
    int a=rand()%1000;
    int b=rand()%1000;
    if(a<b) swap(a,b);
    cout<<a<<" "<<b<<endl;
    return 0;
}
//run.bat
@echo off
g++ baoli.cpp -o baoli.exe
g++ test.cpp -o test.exe
g++ data.cpp -o data.exe

:loop
data.exe > data.txt
test.exe < data.txt > test.txt
baoli.exe < data.txt > baoli.txt

fc test.txt baoli.txt

if not errorlevel 1 goto loop

pause