#include <stdio.h>
#include <string.h>
void add(char *a, char *b)
{
int i,d,c=0;
for(i=l1;i<l2;i++)
a[i]='0';
for(i=l2;i<l1;i++)
b[i]='0';
for(i=0;i<l1||i<l2;i++)
{
d=(a[i]-'0')+(b[i]-'0')+c;
c=d/10;
d=d%10;
a[i]='0'+d;
}
while(c)
{
a[i]='0'+(c%10);
c/=10;
i++;
}
a[i]='\0';
b[l2]='\0';
return ;
}
void subs(char *a, char*b)
{
int i,d,c=0;
for(i=l2;i<l1;i++)
b[i]='0';
for(i=0;i<l1;i++)
{
d=(a[i]-'0')-(b[i]-'0')-c;
if(d<0)
{
d+=10;
c=1;
}
else
c=0;
a[i]='0'+d;
}
b[l2]='\0';
i=l1-1;
while(i>0 && a[i]=='0')
i--;
a[i+1]='\0';
return ;
}
void divide(char *a, int q)
{
int i;
int c=0,d;
for(i=l-1;i>=0;i--)
{
d=c*10+(a[i]-'0');
c=d%q;
a[i]='0'+(d/q);
}
i=l-1;
while(i>0 && a[i]=='0')
i--;
a[i+1]='\0';
return ;
}
void rev(char *a)
{
int i=0,j=l-1;
char c;
while(i<j)
{
c=a[i];
a[i]=a[j];
a[j]=c;
i++;
j--;
}
return ;
}
int main()
{
char a[102], b[102];
while(scanf("%s %s",a
,b
)==2) {
rev(a);
rev(b);
add(a,b);
divide(a,2);
rev(a);
rev(a);
subs(a,b);
rev(a);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KIAp2b2lkIGFkZChjaGFyICphLCBjaGFyICpiKQp7CiAgICBpbnQgaSxkLGM9MDsKICAgIGludCBsMT1zdHJsZW4oYSk7CiAgICBpbnQgbDI9c3RybGVuKGIpOwogCiAgICBmb3IoaT1sMTtpPGwyO2krKykKICAgICAgICBhW2ldPScwJzsKICAgIGZvcihpPWwyO2k8bDE7aSsrKQogICAgICAgIGJbaV09JzAnOwogCiAgICBmb3IoaT0wO2k8bDF8fGk8bDI7aSsrKQogICAgewogICAgICAgIGQ9KGFbaV0tJzAnKSsoYltpXS0nMCcpK2M7CiAgICAgICAgYz1kLzEwOwogICAgICAgIGQ9ZCUxMDsKICAgICAgICBhW2ldPScwJytkOwogICAgfQogICAgd2hpbGUoYykKICAgIHsKICAgICAgICBhW2ldPScwJysoYyUxMCk7CiAgICAgICAgYy89MTA7CiAgICAgICAgaSsrOwogICAgfQogICAgYVtpXT0nXDAnOwogICAgYltsMl09J1wwJzsKIAogICAgcmV0dXJuIDsKfQogCnZvaWQgc3VicyhjaGFyICphLCBjaGFyKmIpCnsKICAgIGludCBpLGQsYz0wOwogICAgaW50IGwxPXN0cmxlbihhKTsKICAgIGludCBsMj1zdHJsZW4oYik7CiAKICAgIGZvcihpPWwyO2k8bDE7aSsrKQogICAgICAgIGJbaV09JzAnOwogCiAgICBmb3IoaT0wO2k8bDE7aSsrKQogICAgewogICAgICAgIGQ9KGFbaV0tJzAnKS0oYltpXS0nMCcpLWM7CiAgICAgICAgaWYoZDwwKQogICAgICAgIHsKICAgICAgICAgICAgZCs9MTA7CiAgICAgICAgICAgIGM9MTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgICAgICBjPTA7CiAgICAgICAgYVtpXT0nMCcrZDsKICAgIH0KICAgIGJbbDJdPSdcMCc7CiAKICAgIGk9bDEtMTsKICAgIHdoaWxlKGk+MCAmJiBhW2ldPT0nMCcpCiAgICAgICAgaS0tOwogICAgYVtpKzFdPSdcMCc7CiAKICAgIHJldHVybiA7Cn0KIAp2b2lkIGRpdmlkZShjaGFyICphLCBpbnQgcSkKewogICAgaW50IGk7CiAgICBpbnQgbD1zdHJsZW4oYSk7CiAgICBpbnQgYz0wLGQ7CiAKICAgIGZvcihpPWwtMTtpPj0wO2ktLSkKICAgIHsKICAgICAgICBkPWMqMTArKGFbaV0tJzAnKTsKICAgICAgICBjPWQlcTsKICAgICAgICBhW2ldPScwJysoZC9xKTsKICAgIH0KICAgIGk9bC0xOwogICAgd2hpbGUoaT4wICYmIGFbaV09PScwJykKICAgICAgICBpLS07CiAKICAgIGFbaSsxXT0nXDAnOwogCiAgICByZXR1cm4gOwp9CiAKdm9pZCByZXYoY2hhciAqYSkKewogICAgaW50IGw9c3RybGVuKGEpOwogICAgaW50IGk9MCxqPWwtMTsKICAgIGNoYXIgYzsKIAogICAgd2hpbGUoaTxqKQogICAgewogICAgICAgIGM9YVtpXTsKICAgICAgICBhW2ldPWFbal07CiAgICAgICAgYVtqXT1jOwogICAgICAgIGkrKzsKICAgICAgICBqLS07CiAgICB9CiAKICAgIHJldHVybiA7Cn0KaW50IG1haW4oKQp7CgkJY2hhciBhWzEwMl0sIGJbMTAyXTsKIAkJd2hpbGUoc2NhbmYoIiVzICVzIixhLGIpPT0yKQogCQl7CiAgICAgICAgcmV2KGEpOwogICAgICAgIHJldihiKTsKIAogICAgICAgIGFkZChhLGIpOwogICAgICAgIGRpdmlkZShhLDIpOwogCiAgICAgICAgcmV2KGEpOwogICAgICAgIHByaW50ZigiJXNcbiIsYSk7CiAKICAgICAgICByZXYoYSk7CiAgICAgICAgc3VicyhhLGIpOwogCiAgICAgICAgcmV2KGEpOwogICAgICAgIHByaW50ZigiJXNcbiIsYSk7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==