#include<bits/stdc++.h>
using namespace std;
int c;
int Num(char *arr){
int i;
for(i=0;i<510;i++){
if(arr[i]=='\0'){
break;
}
}
return i;
}
void copy(char *a,char *b,int num){
for(int i=0;i<num;i++){
b[i]+=a[num-i-1]-'0';
}
}
void Carry(char *out,int num){
for(int i=0;i<num;i++){
if(out[i]>=10){
out[i]-=10;
out[i+1]+=1;
}
}
}
int main(){
char a[510]={'\0'},b[510]={'\0'};
cin>>a;
cin>>b;
int amst=Num(a),bmst=Num(b);
int m=max(amst,bmst);
char out[m]={0};
if(amst>bmst){
c=amst-bmst;
copy(a,out,amst);
copy(b,out,bmst);
}else {
c=bmst-amst;
copy(b,out,bmst);
copy(a,out,amst);
}
Carry(out,m);
m=Num(out);
for(int i=m-13;i>=0;i--) printf("%d ",out[i]);
return 0;
}
using namespace std;
int c;
int Num(char *arr){
int i;
for(i=0;i<510;i++){
if(arr[i]=='\0'){
break;
}
}
return i;
}
void copy(char *a,char *b,int num){
for(int i=0;i<num;i++){
b[i]+=a[num-i-1]-'0';
}
}
void Carry(char *out,int num){
for(int i=0;i<num;i++){
if(out[i]>=10){
out[i]-=10;
out[i+1]+=1;
}
}
}
int main(){
char a[510]={'\0'},b[510]={'\0'};
cin>>a;
cin>>b;
int amst=Num(a),bmst=Num(b);
int m=max(amst,bmst);
char out[m]={0};
if(amst>bmst){
c=amst-bmst;
copy(a,out,amst);
copy(b,out,bmst);
}else {
c=bmst-amst;
copy(b,out,bmst);
copy(a,out,amst);
}
Carry(out,m);
m=Num(out);
for(int i=m-13;i>=0;i--) printf("%d ",out[i]);
return 0;
}