#include<iostream>
#include<vector>
#include<algorithm>
#include<bits/stdc++.h>
#define MAX 102
#define pb push_back
using namespace std;
void add(vector<int>& , vector<int>& ,vector<int>& );
void divideby2(vector<int>&,vector<int>&);
void sub(vector<int>& tot,vector<int>& klaudia,vector<int>& res);
int main()
{
int q=0;
while(q<10)
{
char total[MAX],more[MAX];
vector<int> tot,mor,dkl,kl,res;
cin>>total>>more;
int t=strlen(total);
int m=strlen(more);
for(int i=0;i<t;i++)
tot.pb(total[i]-'0');
for(int i=0;i<m;i++)
mor.pb(more[i]-'0');
reverse(mor.begin(),mor.end());
for(int i=m;i<t;i++)
mor.pb(0);
add(tot,mor,dkl);
divideby2(dkl,kl);
for(int i=0;i<kl.size();i++)
cout<<kl[i];
cout<<endl;
sub(tot,kl,res);
int l=res.size();
while(l--)
{
if(!res[l]) res.pop_back();
else break;
}
reverse(res.begin(),res.end());
if(!res.size())
cout<<0;
for(int i=0;i<res.size();i++)
cout<<res[i];
cout<<endl;
tot.clear();
mor.clear();
dkl.clear();
kl.clear();
res.clear();
q++;
}
}
void sub(vector<int>& tot,vector<int>& klaudia,vector<int>& res)
{
reverse(tot.begin(),tot.end());
reverse(klaudia.begin(),klaudia.end());
int temp=0,b=0;
for(int i=0;i<tot.size();i++)
{
tot[i]=tot[i]-b;
b=0;
temp=tot[i]-klaudia[i];
if(temp<0)
{
b=1;
res.pb((10+tot[i])-klaudia[i]);
}
else
{
res.pb(temp);
}
}
reverse(klaudia.begin(),klaudia.end());
}
void divideby2(vector<int>& dkl,vector<int>& kl)
{
vector<int>::iterator it;
int temp=0;
for(it=dkl.begin();it!=dkl.end();it++)
{
temp=temp*10+(*it);
if((temp%2)!=0)
{
if(temp>2)
{
kl.pb(temp/2);
temp=temp%2;
}
}
else
{
kl.pb(temp/2);
temp=0;
}
}
}
void add(vector<int>& tot, vector<int>& mor,vector<int>& dkl)
{
reverse(tot.begin(),tot.end());
int carry=0,temp=0;
for(int i=0;i<tot.size();i++)
{
temp=tot[i]+mor[i]+carry;
carry=(temp>9)? 1: 0;
dkl.pb(temp%10);
}
if(carry) dkl.pb(1);
reverse(dkl.begin(),dkl.end());
reverse(tot.begin(),tot.end());
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8YWxnb3JpdGhtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIE1BWCAxMDIKI2RlZmluZSBwYiBwdXNoX2JhY2sKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKdm9pZCBhZGQodmVjdG9yPGludD4mICwgdmVjdG9yPGludD4mICx2ZWN0b3I8aW50PiYgKTsKdm9pZCBkaXZpZGVieTIodmVjdG9yPGludD4mLHZlY3RvcjxpbnQ+Jik7CnZvaWQgc3ViKHZlY3RvcjxpbnQ+JiB0b3QsdmVjdG9yPGludD4mIGtsYXVkaWEsdmVjdG9yPGludD4mIHJlcyk7CgppbnQgbWFpbigpCnsKCglpbnQgcT0wOwoJCgl3aGlsZShxPDEwKQoJewoJCWNoYXIgdG90YWxbTUFYXSxtb3JlW01BWF07CgkJdmVjdG9yPGludD4gdG90LG1vcixka2wsa2wscmVzOwoJCgkJY2luPj50b3RhbD4+bW9yZTsKCgkJaW50IHQ9c3RybGVuKHRvdGFsKTsKCQlpbnQgbT1zdHJsZW4obW9yZSk7CgkJCQkKCQlmb3IoaW50IGk9MDtpPHQ7aSsrKQoJCXRvdC5wYih0b3RhbFtpXS0nMCcpOwoJCQoJCWZvcihpbnQgaT0wO2k8bTtpKyspCgkJbW9yLnBiKG1vcmVbaV0tJzAnKTsKCQkKCQlyZXZlcnNlKG1vci5iZWdpbigpLG1vci5lbmQoKSk7CgkJCgkJZm9yKGludCBpPW07aTx0O2krKykKCQltb3IucGIoMCk7CgkJCgkJCgkJYWRkKHRvdCxtb3IsZGtsKTsKCQlkaXZpZGVieTIoZGtsLGtsKTsKCgkJZm9yKGludCBpPTA7aTxrbC5zaXplKCk7aSsrKQoJCWNvdXQ8PGtsW2ldOwkJCgkJY291dDw8ZW5kbDsJCQoKCQlzdWIodG90LGtsLHJlcyk7CgkJCgkJaW50IGw9cmVzLnNpemUoKTsKCQkJCQoJCXdoaWxlKGwtLSkKCQl7CgkJCWlmKCFyZXNbbF0pCXJlcy5wb3BfYmFjaygpOwoJCQllbHNlCWJyZWFrOwoJCX0KCQkKCQlyZXZlcnNlKHJlcy5iZWdpbigpLHJlcy5lbmQoKSk7CgkJCgkJaWYoIXJlcy5zaXplKCkpCgkJY291dDw8MDsKCQlmb3IoaW50IGk9MDtpPHJlcy5zaXplKCk7aSsrKQoJCWNvdXQ8PHJlc1tpXTsKCQljb3V0PDxlbmRsOwoKCQl0b3QuY2xlYXIoKTsKCQltb3IuY2xlYXIoKTsKCQlka2wuY2xlYXIoKTsKCQlrbC5jbGVhcigpOwoJCXJlcy5jbGVhcigpOwoJcSsrOwkKCX0KCn0KCnZvaWQgc3ViKHZlY3RvcjxpbnQ+JiB0b3QsdmVjdG9yPGludD4mIGtsYXVkaWEsdmVjdG9yPGludD4mIHJlcykKewoJcmV2ZXJzZSh0b3QuYmVnaW4oKSx0b3QuZW5kKCkpOwoJcmV2ZXJzZShrbGF1ZGlhLmJlZ2luKCksa2xhdWRpYS5lbmQoKSk7CgkKCWludCB0ZW1wPTAsYj0wOwoJZm9yKGludCBpPTA7aTx0b3Quc2l6ZSgpO2krKykKCXsKCQl0b3RbaV09dG90W2ldLWI7CgkJYj0wOwoJCQoJCXRlbXA9dG90W2ldLWtsYXVkaWFbaV07CgkJaWYodGVtcDwwKQoJCXsKCQkJYj0xOwoJCQlyZXMucGIoKDEwK3RvdFtpXSkta2xhdWRpYVtpXSk7CQoJCX0KCQllbHNlCgkJewoJCQlyZXMucGIodGVtcCk7CgkJfQoJCQkJCgl9CgkJCgkJcmV2ZXJzZShrbGF1ZGlhLmJlZ2luKCksa2xhdWRpYS5lbmQoKSk7CgkJCn0KCnZvaWQgZGl2aWRlYnkyKHZlY3RvcjxpbnQ+JiBka2wsdmVjdG9yPGludD4mIGtsKQp7Cgl2ZWN0b3I8aW50Pjo6aXRlcmF0b3IgaXQ7CglpbnQgdGVtcD0wOwoJZm9yKGl0PWRrbC5iZWdpbigpO2l0IT1ka2wuZW5kKCk7aXQrKykKCXsKCQl0ZW1wPXRlbXAqMTArKCppdCk7CgkJaWYoKHRlbXAlMikhPTApCgkJewoJCQlpZih0ZW1wPjIpCgkJCXsKCQkJCWtsLnBiKHRlbXAvMik7CgkJCQl0ZW1wPXRlbXAlMjsKCQkJfQoJCX0KCQllbHNlCQoJCXsKCQkJa2wucGIodGVtcC8yKTsKCQkJdGVtcD0wOwoJCX0JCgl9CQoJCn0KCnZvaWQgYWRkKHZlY3RvcjxpbnQ+JiB0b3QsIHZlY3RvcjxpbnQ+JiBtb3IsdmVjdG9yPGludD4mIGRrbCkKewoJcmV2ZXJzZSh0b3QuYmVnaW4oKSx0b3QuZW5kKCkpOwoJCglpbnQgY2Fycnk9MCx0ZW1wPTA7Cglmb3IoaW50IGk9MDtpPHRvdC5zaXplKCk7aSsrKQoJewoJCQoJCXRlbXA9dG90W2ldK21vcltpXStjYXJyeTsJCgkJY2Fycnk9KHRlbXA+OSk/IDE6IDA7CgkJZGtsLnBiKHRlbXAlMTApOwoJfQoJCglpZihjYXJyeSkJZGtsLnBiKDEpOwkKCglyZXZlcnNlKGRrbC5iZWdpbigpLGRrbC5lbmQoKSk7CQoJcmV2ZXJzZSh0b3QuYmVnaW4oKSx0b3QuZW5kKCkpOwkJCQp9