#include<iostream>
#include<vector>
#include<string>
#include<set>
#include<map>
#include<unordered_set>
#include<unordered_map>
#include<algorithm>
#include<xfunctional>
using namespace std;
string add(string a,string b){
int in = 0;//stands for carry bit
int lengtha = a.size();
int lengthb = b.size();
int i = lengtha-1, j = lengthb-1;
string res = "";
while (i>=0&&j>=0){
int cur = (a[i] - '0')+(b[j]-'0')+in;
in = cur / 2;//we do the binary operation
cur = cur % 2;
char temp = cur + '0';
res.push_back(temp);
i--;
j--;
}
while (i>=0){
int cur = (a[i] - '0') + in;
in = cur / 2;
cur = cur % 2;
char temp = cur + '0';
res.push_back(temp);
i--;
}
while (j>=0){
int cur = (b[j]-'0') + in;
in = cur / 2;
cur = cur % 2;
char temp = cur + '0';
res.push_back(temp);
j--;
}
if (in){
char t = in + '0';
res.push_back(t);
}
reverse(res.begin(),res.end());
return res;
}
int main(){
string A, B;
cin >> A >> B;
string res = add(A,B);
cout << res << endl;
system("pause");
return 0;
}