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

#define N 200

int main()
{
	char a[N], b[N];
	int num1[N] = {}, num2[N] = {};
	int len_a, len_b;
	bool flag = false;
	
	cin>>a>>b;
	len_a = strlen(a);
	len_b = strlen(b);
	
	// 转换字符为数字,并将所有数位移至右对齐
	for(int i = 0; i < len_a; i++)
		num1[N-i-1] = a[len_a-1-i] - '0';
	for(int i = 0; i < len_b; i++)
		num2[N-i-1] = b[len_b-1-i] - '0';
	
	// 逐位相加
	for(int i = 0; i < N; i++)
		num1[i] += num2[i];
	
	// 从个位开始逐一进位
	for(int i = N-1; i > 0; i--) {
		num1[i-1] += num1[i] / 10;
		num1[i] = num1[i] % 10;
	}
	
	// 输出结果
	for(int i = 0; i < N; i++){
		if(num1[i] != 0)
			flag = true;
		if(flag)
			cout<<num1[i];
	}
}
#include<bits/stdc++.h>
using namespace std;

#define N 300

int main()
{
	char a[N], b[N], c[N];
	int num1[N] = {}, num2[N] = {};
	int len_a, len_b;
	bool flag = false, symbol = false;
	
	cin>>a>>b;
	
	len_a = strlen(a);
	len_b = strlen(b);
	
	// 如果相减结果为 0
	if(len_a == len_b && strcmp(a, b) == 0){
		cout<<0<<endl;
		return 0;
	}
	
	// 判断最终结果的符号
	if(len_a < len_b || (len_a == len_b && strcmp(a, b) < 0))
	   symbol = true;
	
	// 如果 a 比 b 小,那么调换顺序
	if(symbol) {
		memcpy(c, a, N);
		memcpy(a, b, N);
		memcpy(b, c, N);
		// 重新更新长度信息
		len_a = strlen(a);
		len_b = strlen(b);
	}
	
	
	   
	// 转换字符为数字,并将所有数位移至右对齐
	for(int i = 0; i < len_a; i++)
		num1[N-i-1] = a[len_a-1-i] - '0';
	for(int i = 0; i < len_b; i++)
		num2[N-i-1] = b[len_b-1-i] - '0';
	
	// 逐位相加
	for(int i = 0; i < N; i++)
		num1[i] -= num2[i];
	
	// 从个位开始逐一借位
	for(int i = N-1; i > 0; i--) {
		if(num1[i] < 0){
			num1[i] += 10;
			num1[i-1] -= 1;
		}
	}
	
	// 输出结果
	if(symbol)
		cout<<"-";
	for(int i = 0; i < N; i++){
		if(num1[i] != 0)
			flag = true;
		if(flag)
			cout<<num1[i];
	}
}