#include<bits/stdc++.h>
using namespace std;
char c[105],a[105],b[105];
string a1="",b1=""; 
string t;
//十年OI一场空,不开全局见祖宗。 
int main()
{
	cin>>a1>>b1;
	//因为系统不兼容gets,所以用字符串 
	
	for(int i=0;i<a1.size();i++) a[i]=a1[a1.size()-i-1];
	for(int i=0;i<b1.size();i++) b[i]=b1[b1.size()-i-1];
	//字符串转字符数组 
	
	
	
	int n=min(strlen(a),strlen(b)),n1=max(strlen(a),strlen(b)),carry=0,cnt=0;
	//解决较短数字区域 
	for(int i=0;i<n;i++)
	{	
		//核心算法	
		c[i] = (b[i] - '0' + a[i] - '0' + carry) % 10 + '0';
		carry = (b[i] - '0' + a[i] - '0' + carry) / 10;	
	}
	
	//解决其他区域 
	if(n==strlen(a))
	{
		for(int i=n;i<strlen(b);i++)
		{
			c[i] = (b[i] - '0' + carry) % 10 + '0';
			carry = (b[i] - '0' + carry) / 10;			
		}
		//进位 
		if(carry!=0)c[strlen(b)]='1';
	}
	else 
	{
		for(int i=n;i<strlen(a);i++){
			c[i]= (a[i] - '0' + carry) % 10 + '0';
			carry= (a[i]- '0' + carry) / 10;			
		}
		//同上 
		if(carry!=0)c[strlen(a)]='1';
	}
	//输出 
	//"n1-1+carry"用于解决下标问题 
	for(int i=n1-1+carry;i>=0;i--)
	{
		//if(c[i]==' ')continue;
		cout<<c[i];
	}
	//养成好习惯 
	return 0;
 }