program c(input,output);
var
  vstup : string[2005];
  ci1, ci2, vys : string [1005];
  de1, de2, deV : integer;
  po1, po2, poV : integer;
  
  zaklad, mezera, hod, pre : integer;
  
function Hodnota(znak: char) : integer;
  begin
    case znak of 
      '0'..'9' : hodnota:=Ord(znak)-ord('0');
      'A'..'Z' : hodnota:=Ord(znak)-ord('A')+10;
    end;
  end;
  
function ToStr(hodn:integer; var znak: char) : integer;
  var x : integer;
  begin
    x:=hodn mod zaklad;
    ToStr:=hodn div zaklad;  
    if x<10 then 
      znak:=Chr(ord('0')+x)
    else  
      znak:=chr(ord('A')+x-10);          
  end;
  
begin

repeat
  readLn(zaklad);
  if zaklad=0 then halt(0);
  readLn(vstup);
  mezera:=Pos(' ',vstup);
  ci1:=copy(vstup,1,mezera-1);
  ci2:=copy(vstup,mezera+1,length(vstup)-mezera);
  de1:=length(ci1);
  de2:=length(ci2);
  po1:=de1;
  po2:=de2;
  
if zaklad>1 then begin
  
  if de1<de2 then 
    deV:=de2+1 
  else
    deV:=de1+1;
  poV:=deV;

  {$X+}  
  setLength(vys,deV);
  
  hod:=0;
  
  while poV>0 do begin
    if po1>0 then hod:=hod+Hodnota(ci1[po1]);
    if po2>0 then hod:=hod+Hodnota(ci2[po2]);
    hod:=ToStr(hod,vys[poV]);
    
    dec(poV);
    dec(po1);
    dec(po2);  
  end; 
  
  hod:=1;
  if vys[1]='0' then hod:=2;
end else begin
  if ci1='0' then
    vys:=ci2
  else
    if ci2='0' then
      vys:=ci1
    else
      vys:=ci1+ci2;      

  deV:=length(vys);
  hod:=1;

end;  
  writeLn(ci1,' + ',ci2,' = ',copy(vys,hod,deV));
  
until false;


end.