/*
TASK: PHROPE
LANG: C++
*/
#include<iostream>
#include<cstring>
using namespace std;
char c[50],d[50];
int a[52],b[52],nc,nd,ne=-1,nf=-1,ng=-1,e[502],f[502],g[502];
void div1(int *a1)
{
 int i,t=0,p;
 for(i=a1[51];i>=0;i--)
 {
  if(t<2)t=t*10+a1[i];
  if(t<2)t=t*10+a1[--i];
  p=t%2;
  e[++ne]=(t-p)/2;
  t=p;
 }
}
void div2(int *a1)
{
 int i,t=0,p;
 for(i=a1[51];i>=0;i--)
 {
  if(t<2)t=t*10+a1[i];
  if(t<2)t=t*10+a1[--i];
  p=t%2;
  g[++ng]=(t-p)/2;
  t=p;
 }
}
void mul(int *a1)
{
 int i,t=0,p;
 for(i=0;i<=a1[51];i++)
 {
  f[++nf]=a1[i]*2+t;
  t=f[nf]/10;
  f[nf]%=10;
 }
 if(t!=0)f[++nf]=t;
}
int main()
{

 int i,cmp;
 cin>>c>>d;
 nc=strlen(c);
 a[51]=-1;
 for(i=nc-1;i>=0;i--)a[++a[51]]=c[i]-'0';
 nd=strlen(d);
 b[51]=-1;
 for(i=nd-1;i>=0;i--)b[++b[51]]=d[i]-'0';

 if(a[51]==b[51])
 {
  i=a[51];
  while(a[i]==b[i])i--;
  if(a[i]<b[i])cmp=2;
  else cmp=1;
 }
 else if(a[51]<b[51])cmp=2;
 else cmp=1;

 if(cmp==1)
 {
  if(a[0]%2==0)
  {
   div1(a);
   if(ne==b[51])
   {
    i=b[51];
    while(e[i]==b[i])i--;
    if(e[i]<b[i])cmp=2;
    else cmp=1;
   }
   else if(ne<b[51])cmp=2;
   else cmp=1;
   if(cmp==2)
   {
    for(i=a[51];i>=0;i--)
    cout<<a[i];
    cout<<' ';
    for(i=0;i<=ne;i++)
    cout<<e[i];
    cout<<endl;
    return 0;
   }
  }
  mul(b);
  if(nf==a[51])
  {
   i=a[51];
   while(f[i]==a[i])i--;
   if(f[i]<a[i])cmp=2;
   else cmp=1;
  }
  else if(nf<a[51])cmp=2;
  else cmp=1;
  if(cmp==2)
  {
   for(i=nf;i>=0;i--)
   cout<<f[i];
   cout<<' ';
   for(i=b[51];i>=0;i--)
   cout<<b[i];
   cout<<endl;
   return 0;
  }
  if(b[0]%2==0)
  {
   div2(b);
   for(i=0;i<=ng;i++)
   cout<<g[i];
   cout<<' ';
   for(i=b[51];i>=0;i--)
   cout<<b[i];
   cout<<endl;
   return 0;
  }
 }
 else
 {
  if(b[0]%2==0)
  {
   div1(b);
   if(ne==a[51])
   {
    i=a[51];
    while(e[i]==a[i])i--;
    if(e[i]<a[i])cmp=2;
    else cmp=1;
   }
   else if(ne<a[51])cmp=2;
   else cmp=1;
   if(cmp==2)
   {
    for(i=0;i<=ne;i++)
    cout<<e[i];
    cout<<' ';
    for(i=b[51];i>=0;i--)
    cout<<b[i];
    cout<<endl;
    return 0;
   }
  }
  mul(a);
  if(nf==b[51])
  {
   i=b[51];
   while(f[i]==b[i])i--;
   if(f[i]<b[i])cmp=2;
   else cmp=1;
  }
  else if(nf<b[51])cmp=2;
  else cmp=1;
  if(cmp==2)
  {
   for(i=a[51];i>=0;i--)
   cout<<a[i];
   cout<<' ';
   for(i=nf;i>=0;i--)
   cout<<f[i];
   cout<<endl;
   return 0;
  }
  if(a[0]%2==0)
  {
   div2(a);
   for(i=a[51];i>=0;i--)
   cout<<a[i];
   cout<<' ';
   for(i=0;i<=ng;i++)
   cout<<g[i];
   cout<<endl;
   return 0;
  }
 }

 cout<<"0 0"<<endl;
 return 0;
}
