/*
TASK:phrope
LANG:C++
*/

#include<stdio.h>
int edno[61],dve[61],ednopodve[61],dvepodve[61],edno_na_dve[61],dve_na_dve[61];
char e[61],d[61],masiv[150],lengtha,lengthb;
//Uber selsko reshenie

void input()
{
int x=0;
gets(masiv);
sscanf(masiv,"%s%s",&e,&d);
while(e[x]>='0'&&e[x]<='9')
x++;
lengtha=x;
x--;
while(x>=0)
{
edno[lengtha-x-1]=masiv[x]-'0';
x--;
}
x=0;
while(d[x]>='0'&&d[x]<='9')
x++;
lengthb=x;
x--;
while(x>=0)
{
dve[lengthb-x-1]=masiv[lengtha+1+x]-'0';
x--;
}

for(x=0;x<60;x++)
{
ednopodve[x]+=edno[x]*2;
dvepodve[x]+=dve[x]*2;
ednopodve[x+1]+=edno[x]/10;
dvepodve[x+1]+=dve[x]/10;
ednopodve[x]%=10;
dvepodve[x]%=10;
}
x=60;
while(edno[x]==0)x--;
while(x>0)
{
edno_na_dve[x-1]+=10*(edno[x]%2);
edno_na_dve[x]+=edno[x]-edno[x]%2;
x--;
}
edno_na_dve[0]+=edno[0]-edno[0]%2;
x=60;
while(dve[x]==0)x--;
while(x>0)
{
dve_na_dve[x-1]+=10*(dve[x]%2);
dve_na_dve[x]+=dve[x]-dve[x]%2;
x--;
}
dve_na_dve[0]+=dve[0]-dve[0]%2;
x=60;
while(x>=0)
{
edno_na_dve[x]/=2;
dve_na_dve[x]/=2;
x--;
}

return;
}

int compare_edno_dve()
{
int x=55;
while(edno[x]==0&&dve[x]==0)
x--;
while(edno[x]==dve[x]&&x>0)
x--;
return edno[x]-dve[x];
//1 - edno>dve
//0 - edno=dve
//-1 - edno<dve
}

int compare_edno_dvepodve()
{
int x=55;
while(edno[x]==0&&dvepodve[x]==0)x--;
while(edno[x]==dvepodve[x]&&x>0)
x--;
return dvepodve[x]-edno[x];
}

int compare_ednopodve_dve()
{
int x=55;
while(ednopodve[x]==0&&dve[x]==0)
x--;
while(ednopodve[x]==dve[x]&&x>0)
x--;
return ednopodve[x]-dve[x];
}


int main()
{
int x;
input();

if(lengtha==1&&lengthb==1&&edno[0]==1&&dve[0]==1)
{
printf("0 0\n");
return 0;
}
if((lengtha==1&&edno[0]==0)||(lengthb==1&&dve[0]==0))
{
printf("0 0\n");
return 0;
}
if(edno[0]%2==0&&compare_edno_dvepodve()>=0)
{
for(x=lengtha-1;x>=0;x--)
printf("%d",edno[x]);
printf(" ");
x=60;
while(edno_na_dve[x]==0)x--;
while(x>=0)
{
printf("%d",edno_na_dve[x]);
x--;
}
printf("\n");
return 0;
}

if(dve[0]%2==0&&compare_ednopodve_dve()>=0)
{
x=60;
while(dve_na_dve[x]==0)x--;
while(x>=0)
{
printf("%d",dve_na_dve[x]);
x--;
}
printf(" ");
for(x=lengthb-1;x>=0;x--)
printf("%d",dve[x]);
printf("\n");
return 0;
}

if(compare_edno_dvepodve()<=0)
{
x=60;
while(dvepodve[x]==0)x--;
while(x>=0)
{
printf("%d",dvepodve[x]);
x--;
}
printf(" ");
x=60;
while(dve[x]==0)x--;
while(x>=0)
{
printf("%d",dve[x]);
x--;
}
printf("\n");
return 0;
}

if(compare_ednopodve_dve()<=0)
{
x=60;
while(edno[x]==0)x--;
while(x>=0)
{
printf("%d",edno[x]);
x--;
}
printf(" ");
x=60;
while(ednopodve[x]==0)x--;
while(x>=0)
{
printf("%d",ednopodve[x]);
x--;
}
printf("\n");
return 0;
}



printf("0 0\n");
return 0;
}

