#include <bits/stdc++.h>
using namespace std;

int main(){
	
	//开始编写程序
	string s1,s2,t;//s1 s2代表2个要运算的数
	int a[250] = {0},b[250] = {0},r[250] = {0}; 
	char f;//符号,判断正负的,正号不要输出,符号要 
	int len,i,j;
	getline(cin,s1); 
	getline(cin,s2);
	len = s1.length() > s2.length()?s1.length():s2.length(); 
	//判断正负,s1长那么s1大,一样长的话,s1的字典码大,那么s1大 
	if(s1.length() > s2.length() || (s1.length() == s2.length() && s1 >= s2)) {
		f = '+';
	}else{
		f = '-';
		t = s1;//s1对应的整数<s2的话,要交换做减法 
		s1 = s2;
		s2 = t;
	}
	 
	//倒过来将字符串存入数组再运算,注意字符要转化为实际的整数
	for(i = 0;i < s1.length();i++){
		a[i] = s1[s1.length() - i - 1] - 48;
	} 
	
	for(i = 0;i < s2.length();i++){
		b[i] = s2[s2.length() - i - 1] - 48;
	} 
	
	//a b数组按照较长的长度,逐位运算
	for(i = 0;i < len;i++){
	     //看看要不要借位
		 if(a[i] < b[i]){
		 	a[i] = a[i] + 10;//借1当10
			a[i + 1]--;//向后借一位 
		 } 
		 
		 r[i] = a[i] - b[i]; 
	} 
	
	
	//倒过来从第一个非0开始输出r数组
	while(r[len] == 0){
		len--;//找到第一个非0的下标
		if(len < 0){
			break;
		} 
	}
	
	if(f == '-') cout<<f;//如果是负数,输出负号 
	
	for(i = len;i >= 0;i--) {
		cout<<r[i];
	} 
	
	if(len < 0){
		cout<<0<<endl;
	}
}
/**************************************************************
	Problem: 1269
	User: admin
	Language: C++
	Result: Accepted
	Time:12 ms
	Memory:2076 kb
****************************************************************/