{
TASK:phrope
LANG:PASCAL
}
type
mas=array[0..51]of byte;
var
c,a,b:mas;
s3,s1,s2:string[51];
l:integer;

procedure makemas;
var i,x:integer;
begin
for i:=1 to length(s1) do val(s1[i],a[i],x);
for i:=1 to length(s2) do val(s2[i],b[i],x);
end;

procedure minus(a,b:mas;l1,l2:integer;var c:mas;var l:integer);
var i,i1:integer;
    t:string[1];
begin
for i:=l2 downto 1 do
    begin
    i1:=i+(l1-l2);
    if a[i1]<b[i]
    then begin a[i1]:=a[i1]+10;a[i1-1]:=a[i1-1]-1;end;
    c[i1]:=a[i1]-b[i];
    end;
for i:=l1-l2 downto 1 do begin
    if a[i]<0 then begin a[i]:=a[i]+10;a[i-1]:=a[i-1]-1;end;
    c[i]:=a[i];
    end;
if c[1]=0
then begin
     for i:=1 to l1 do c[i]:=c[i+1];
     l:=l1-1;
     end
else l:=l1;
s3:='';
for i:=1 to l do begin str(c[i],t);s3:=s3+t;end;
end;

function um(a:mas;l:integer):string;
var o,ost,i:integer;s:string;t:string[1];
begin
ost:=0;
for i:=l downto 1 do
    begin
    o:=a[i]*2;
    a[i]:=(a[i]*2+ost)mod 10;
    ost:=o div 10;
    end;
s:='';
if ost=1
then s:='1';
for i:=1 to l do begin str(a[i],t);s:=s+t;end;
um:=s;
end;

function dele(a:mas;l:integer):string;
var s,t:string;
c:mas;
i,j,ost:integer;
begin
ost:=0;
for i:=1 to 100 do c[i]:=0;
j:=0;
for i:=1 to l do
    begin
    if ost=1
    then a[i]:=10+a[i];
    if a[i]<>1
    then begin inc(j);c[j]:=a[i] div 2;ost:=a[i] mod 2;end
    else begin inc(j);c[j]:=0;ost:=a[i]mod 2 end;
    end;
s:='';
for i:=1 to j do begin str(c[i],t);s:=s+t;end;
if s[1]='0'
then delete(s,1,1);
dele:=s;
end;

procedure solve;
var
x:integer;
begin
if (length(s1)>length(s2))or((length(s1)=length(s2))and(s1[1]>s2[1]))
then minus(a,b,length(s1),length(s2),c,l)
else minus(b,a,length(s2),length(s1),c,l);
if (length(s1)>length(s2))or((length(s1)=length(s2))and(s1[1]>s2[1]))
then if (length(s3)>length(s2))or((length(s3)=length(s2))and(s3[1]>s2[1]))
     then writeln(um(b,length(s2)),' ',s2)
     else if a[length(s1)]mod 2=0
          then writeln(s1,' ',dele(a,length(s1)))
          else writeln(um(c,length(s3)),' ',s3)
else if (length(s1)<length(s3))or((length(s1)=length(s3))and(s1[1]<s3[1]))
     then writeln(s1,' ',um(a,length(s1)))
     else if a[length(s2)]mod 2=0
          then writeln(dele(b,length(s2)),' ',s2)

          else writeln(s3,' ',um(c,length(s3)));
end;

begin
read(s1);
s2:=copy(s1,pos(' ',s1)+1,length(s1)-pos(' ',s1));
delete(s1,pos(' ',s1),length(s1)-pos(' ',s1)+1);
if s1=s2 then writeln('0 0')
else begin
     makemas;
     solve;
     end;
end.