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

#include<iostream>
//#include <conio.h>
using namespace std;

void delna2(char* l); //zapisva rezultata v t
void umnpo2(char* l); //sy6to....
bool compare(char* p, char* q); //1 ako a>b

char t[55];

int main()
{
 char a[53], b[53];
 int n, m;
 cin >> a >> b;
 n = strlen(a);
 m = strlen(b);

 //a i b ne4etni
 if ( (a[n-1]-'0')%2 && (b[m-1]-'0')%2 )
        {cout << "0 0" << endl;
         return 0;
        }

 //a i b 4etni
 if ( (a[n-1]-'0')%2 == 0 && (b[m-1]-'0')%2 == 0)
        {
           if (compare(a, b)) {
              delna2(b);
              cout << t << " ";
              cout << b << endl;
             }
           else {
                 delna2(a);
                 cout << a << " ";
                 cout << t << endl;
                }
           return 0;
         }
      
           
 //a 4etno, b ne4etno
 if ( (a[n-1]-'0')%2 == 0 && (b[m-1]-'0')%2 == 1)
      {
          umnpo2(b);
          if ( compare(a, t) )
             {
              //umnpo2(b);
              cout << t << " " << b << endl;
              return 0;
             }
          else {
                delna2(a);
                cout << a << " " << t << endl;
                return 0;
               }
       }

 //a ne4etno, b 4etno
 if ( (a[n-1]-'0')%2 == 1 && (b[m-1]-'0')%2 == 0)
      {
          umnpo2(a);
          if ( compare(b, t ) )
             {
              //umnpo2(b);
              cout << t << " " << a << endl;
              return 0;
             }
          else {
                delna2(b);
                cout << b << " " << t << endl;
                return 0;
               }
       }

 //char* e;
 //getch();
 return 0;
}


void delna2(char* l)
{
  int n = strlen(l), prenos=0;
  for (int i=0; i<n; ++i)
     {
      t[i] = (10*prenos + l[i]-'0')/2 + '0';
      prenos =  (l[i]-'0')%2;
     }
  if (t[0] == '0')
     for (int i=1; i<=n; ++i)
         t[i-1] = t[i];

}

void umnpo2(char* l)
{
  int n = strlen(l), prenos=0;
  t[0]=0;
  for (int i=n-1; i>=0; --i)
     {
      t[i+1] = ((l[i]-'0')*2 + prenos)%10 + '0';
      prenos =  ( (l[i]-'0')*2 + prenos )/10;
     }
  t[0]=prenos + '0';
  if (t[0] == '0')
     for (int i=1; i<=n+1; ++i)
         t[i-1] = t[i];

}


bool compare (char *p, char *q){
  int n=strlen(p);
  int m=strlen(q);
  if (n>m) return 1;
  if (n<m) return 0;

  for (int i=0; i<n; ++i) {
      if (p[i]>q[i]) return 1;
      if (p[i]<q[i]) return 0;
     } 
  return 0;
}

