/*
TASK:PHROPE
LANG:C++
*/


#include<iostream.h>
#include<string.h>
 int a[56],b[56],c[56],n,m,k;
 int cmp(int *t, int *tt, int h, int hh);
 void div(int *t, int h);
 int sub(int *t, int *tt, int h, int hh);
 void mult(int *t, int h);
 int main()
 {
  int j,i;
//  a=new int [56];
  //b=new int [56];
 // c=new int [56];
  char str[56];
  cin>>str;
  n=strlen(str);
  for(i=0;i<n;i++)
   a[i]=(int)(str[n-i-1])-48;
  str[0]=NULL;
  cin>>str;
  m=strlen(str);
  for(i=0;i<m;i++)
   b[i]=(int)str[n-i-1]-48;
  if(cmp(a,b,n,m)){
   mult(b,m);
   if(cmp(a,c,n,k)==1){
    for(i=k-1;i>=0;i--)cout<<c[i];
    cout<<" ";
    for(i=m-1;i>=0;i--)cout<<b[i];
    cout<<endl; return 0;
   }
   if(a[0]%2==0){
    div(a,n);
    for(i=n-1;i>=0;i--)cout<<a[i];
    cout<<" ";
    for(i=k-1;i>=0;i--)cout<<c[i];
    cout<<endl; return 0;
   }
   if(b[0]%2==0){
    div(b,n);
    for(i=k-1;i>=0;i--)cout<<c[i];
    cout<<" ";
    for(i=m-1;i>=0;i--)cout<<b[i];
    cout<<endl; return 0;
   }
   if(sub(a,b,n,m)){
    for(i=k-1;i>=0;i--)cout<<c[i];
    cout<<" ";
    mult(c,k);
    for(i=k-1;i>=0;i--)cout<<c[i];
    cout<<endl;
   }
   else cout<<"0 0\n";
   return 0;
  }
  else {
   mult(a,n);
   if(cmp(b,c,m,k)==1){
    for(i=k-1;i>=0;i--)cout<<c[i];
    cout<<" ";
    for(i=n-1;i>=0;i--)cout<<a[i];
    cout<<endl; return 0;
   }
   if(b[0]%2==0){
    div(b,m);
    for(i=m-1;i>=0;i--)cout<<b[i];
    cout<<" ";
    for(i=k-1;i>=0;i--)cout<<c[i];
    cout<<endl; return 0;
   }
   if(a[0]%2==0){
    div(a,n);
    for(i=k-1;i>=0;i--)cout<<c[i];
    cout<<" ";
    for(i=n-1;i>=0;i--)cout<<a[i];
    cout<<endl; return 0;
   }
   if(sub(b,a,m,n)){
    for(i=k-1;i>=0;i--)cout<<c[i];
    cout<<" ";
    mult(c,k);
    for(i=k-1;i>=0;i--)cout<<c[i];
    cout<<endl;
   }
   else cout<<"0 0\n";
   return 0;
  }
  return 0;
 }

 void mult(int *t, int h)
 {
  int i,o=0;
  for(i=0;i<h;i++)
  {
   c[i]=t[i]*2+o;
   o=c[i]/10;
   c[i]=c[i]%10;
  }
  if(o>0)c[i++]=1;
  k=i;
 }

 void div(int *t, int h)
 {
  int i,d=0;
  if(t[h-1]<2)k=h-1;
   else {k=h; c[h-1]=t[h-1]/2;}
  for(i=h-2;i>=0;i--)
   {
    d=+t[i];
    if(t[i]<2){d*=10; c[i]=0;}
     else {c[i]=d/2; d=0;}
   }
  return;
 }

 int sub(int *t, int *tt, int h, int hh)
 {
  int i,o=0,f=0;
  for(i=0;i<hh;i++)
   {
    c[i]=t[i]-tt[i]-o;
    if(c[i]<0){o=1; c[i]=-c[i];}
     else o=0;
    if(c[i]!=0)f=1;
   }
  while(i<h)
   {
    c[i]=t[i]-o;
    if(c[i]<0){o=1; c[i]=-c[i];}
     else o=0;
    if(c[i]!=0)f=1;
   }
  if(!f)return 0;
  return 1;
 }

 int cmp(int *t, int *tt,int h, int hh)
 {
  int i;
  if(h>hh)return 1;
   else if(hh>h)return -1;
  for(i=h-1;i>=0;i--)
   if(t[i]>tt[i])return 1;
    else if(tt[i]>t[i])return -1;
  return 0;
 }