/*
TASK:phrope
LANG:C++
*/
#include<stdio.h>
int main() {
char a[51],b[51],c[51],d[51],ch,raz[51];
int i,na,nb,fl=0,fl1=0,k,fl3=0,j,nc;
scanf("%s",&a);
i=0;
while('0'<=a[i]&&a[i]<='9') i++;
a[i]='\0';  na=i;
scanf("%s",&b);
i=0;
while('0'<=b[i]&&b[i]<='9') i++;
b[i]='\0';  nb=i;
for(i=0;a[i]&&b[i];i++) ;
if(a[i]=='\0')
 if(b[i]=='\0')
   {
    for(i=0;a[i];i++)
       if(a[i]<b[i]) { fl1=1; break; }
       else if(a[i]>b[i]) { fl1=2; break; }

    if(!fl1) fl=2;
    else if(fl1==1) fl=1;
   }
 else fl=1;
if(fl==1)
 {
   for(i=0;a[i];i++) c[i]=a[i];
   a[0]='\0';
   for(i=0;b[i];i++) a[i]=b[i];
   b[0]='\0';
   for(i=0;c[i];i++) b[i]=c[i];
 }
if(fl==2)
 if((a[na-1]-'0')%2) printf("0 0");
 else
  {
   printf("%s",a);
   printf(" ");
   k=0;
   for(i=0;a[i];i++)
   {
    k=10*k+(a[i]-'0');
    printf("%d",k/2);
    k=k%2;
   }
  }
else
{
  if(!((a[na-1]-'0')%2))
   {
     k=0; c[0]='\0'; fl1=0; fl3=0; j=0;
     for(i=0;a[i];i++)
     {
      k=10*k+(a[i]-'0');
      c[j++]=(k/2)+'0';
      k=k%2;
     }
     c[j]='\0'; nc=j;
     for(i=0,j=j-1;i<nc/2;i++,j--)
     {
      ch=c[i];
      c[i]=c[j];
      c[j]=ch;
     }
     i=nc-1;
     while(c[i]=='0') c[i--]='\0';
     nc=i+1;
     for(i=0,j=nc-1;i<nc/2;i++,j--)
     {
      ch=c[i];
      c[i]=c[j];
      c[j]=ch;
     }
     for(i=0;c[i]&&b[i];i++) ;
     if(c[i]=='\0')
      if(b[i]=='\0')
      {
       for(i=0;c[i];i++)
        if(c[i]<b[i]) { fl1=1; break; }
        else if(c[i]>b[i]) break;

       if(!fl1) fl3=2;
       else if(fl1==1) fl3=1;
      }
     else fl3=1;
    if(fl3==1)
     {
      printf("%s ",a);
      printf("%s",c);
     }
    else
     {
      k=0; j=0;
     for(i=nb-1;i>=0;i--)
     {
      d[j++]=(((b[i]-'0')*2+k)%10)+'0';
      k=((b[i]-'0')*2+k)/10;
     }
     if(k) d[j++]=k+'0';
      for(j=j-1;j>=0;j--)
       printf("%c",d[j]);
      printf(" ");
      printf("%s",b);
     }
   }
   else
    {
      k=0; c[0]='\0'; fl1=0; fl3=0; j=0;
     for(i=0;a[i];i++)
     {
      k=10*k+(a[i]-'0');
      c[j++]=(k/2)+'0';
      if(c[j-1]=='0') j--;
      k=k%2;
     }
     c[j]='\0'; nc=j;
     for(i=0;c[i]&&b[i];i++) ;
     if(c[i]=='\0')
      if(b[i]=='\0')
      {
       for(i=0;c[i];i++)
        if(c[i]<b[i]) { fl1=1; break; }
        else if(c[i]>b[i]) { fl1=2; break;}

       if(!fl1) fl3=2;
       else if(fl1==1) fl3=1;
      }
     else fl3=1;
     if(!fl3)
     {
      k=0; j=0;
     for(i=nb-1;i>=0;i--)
     {
      d[j++]=(((b[i]-'0')*2+k)%10)+'0';
      k=((b[i]-'0')*2+k)/10;
     }
     if(k) d[j++]=k+'0';
      for(j=j-1;j>=0;j--)
       printf("%c",d[j]);
      printf(" ");
      printf("%s",b);

     }
     else
      {
        for(i=0,j=na-1;i<=na/2-1;i++,j--)
        {
          ch=a[i];
          a[i]=a[j];
          a[j]=ch;
        }
        for(i=0,j=nb-1;i<=nb/2-1;i++,j--)
        {
          ch=b[i];
          b[i]=b[j];
          b[j]=ch;
        }
        for(i=nb;a[i];i++)
         b[i]='0';
        for(i=0;i<na;i++)
         {
           if(a[i]<b[i])
            {
             raz[i]=10+(a[i]-'0')-(b[i]-'0')+'0';
             j=i;
             if(a[i+1]=='0')
             {
              while(a[i+1]=='0')
               {
                 a[i+1]=='9';
                 i--;
               }
              a[i]=a[i]-1;
              i=j;
             }
             else a[i+1]=a[i+1]-1;
            }
           else raz[i]=(a[i]-'0')-(b[i]-'0')+'0';
         }
       while(raz[i-1]=='0') raz[--i]='\0';
       na=i;
       for(j=0,i=i-1;j<na/2;j++,i--)
        {
         ch=raz[j];
         raz[j]=raz[i];
         raz[i]=ch;
        }
       for(i=na-1;raz[i]=='0';i--)  raz[i]='\0';
       na=i+1;

      k=0; j=0;
      for(i=na-1;i>=0;i--)
      {
       d[j++]=(((raz[i]-'0')*2+k)%10)+'0';
       k=((raz[i]-'0')*2+k)/10;
      }
      if(k) d[j++]=k+'0';
      for(j=j-1;j>=0;j--)
       printf("%c",d[j]);
      printf(" ");
      printf("%s",raz);
     }
    }
}
return 0;
}
