#include<bits/stdc++.h>
using namespace std;
string s1,s2 ;
int a[250],b[250],c[250];

int main(){
	// 定义(原:dingyi;)
	cin>>s1>>s2;
	// 倒过来 来运算; → 倒序存储,方便后续运算
	for(int i=s1.size();i>=0;i--){
		a[s1.size()-1-i]=s1[i]-'0';
		
	}
	// 倒过来 来运算; → 倒序存储,方便后续运算
	for(int i=s2.size();i>=0;i--){
		b[s2.size()-1-i]=s2[i]-'0';
		
	}
//		for(int i=0;i<s1.size();i++){
//			cout<<a[i];  // 输出数组a的内容(调试用)
//		
//	}
//	cout<<endl;
//	for(int i=0;i<s2.size();i++){
//	cout<<b[i];  // 输出数组b的内容(调试用)
//		
//	}
//	cout<<endl;
//把计算的数一位一位加入 c 中; → 将两个数的每一位相加,结果存入数组c
int t=max(s1.size(),s2.size());
for(int i=0;i<t;i++){
	c[i]=a[i]+b[i];
}
//检查 c 的运算是否错误; → 检查数组c的运算结果是否正确(注:原代码无实际检查逻辑)

//进位  → 处理相加后的进位
for(int i=0;i<t;i++){
	if(c[i]>9){
		c[i+1]=c[i+1]+c[i]/10;
		c[i]=c[i]%10;
	}
}

if(c[t]!=0) t++;  // 如果最高位有进位,扩展结果长度
//for(int i=0;i<t;i++){
//cout<<c[i];  // 输出数组c的内容(调试用)
//}
  for(int i=0;i>=0;i++){
  	cout<<c[i];
  } 

}
/**************************************************************
	Problem: 1268
	User: wuzhijing
	Language: C++
	Result: Output Limit Exceed
****************************************************************/