program c;
var count, i,a,b,sustava, dl_suctu:integer;
    cis:array [1..2,1..1001] of char;
const 
    mantisa='0123456789ABCDEFGHIJKLMNOPQRSTUVWXY'; {Z uz nie!!!}   
var 
    sucet :array [1..1002] of char;

function poz(Ch:char):byte;
var j:byte;
begin
  for j:= 1 to 35 do
    if ch=mantisa[j] then begin
      poz:= j-1;
      break;
    end;
end;


procedure pocitaj;

var 
  suc,a1,b1,ca,i, max: integer;
begin
  dl_suctu:=0;
  ca:=0;
  if (a >= b) then max:=a  else max:=b;
  for i:= 1 to max do 
  begin
    if i<=a then a1:=poz(cis[1,a-i+1]) else a1:=0;
    if i<=b then b1:=poz(cis[2,b-i+1]) else b1:=0;
    
    suc:=a1+b1+ca; 
    if suc>(sustava-1) then 
      begin
        suc:=suc-sustava;
        ca:=1;
      end
     else ca:=0;        

    sucet[i]:= mantisa[suc+1];  
    inc(dl_suctu); 
  end;  
  if (ca=1) then begin
    sucet[i+1]:=mantisa[1+1]; 
    inc(dl_suctu); 
  end;  
    
end;
procedure vypis;
var i: integer;
begin
  for i:= 1 to a do
    write(cis[1,i]);
  write(' + ');
  for i:= 1 to b do
    write(cis[2,i]);  
  write(' = ');
end;

BEGIN {--------------------------}
 count:=0;
  repeat
   readln(sustava);
   if (sustava <> 0) and (count>0) then
     writeln;
   inc(count);
   if sustava>1 then
   begin
        a:=0;
        b:=0;
        repeat
          inc(a);
          read(cis[1,a]);
        until cis[1,a]=' ';
        dec(a);
        
        
        cis[2,b]:='0';
        repeat
          inc(b);
          read(cis[2,b]);
        until cis[2,b]<#33;
        dec(b);
        pocitaj;                         
        vypis;
  for i:= dl_suctu downto 1 do
    write(sucet[i]);    
 
   end else

   if sustava=1 then 
     begin 
        a:=0;
        b:=0;
        repeat
          inc(a);
          read(cis[1,a]);
        until cis[1,a]=' ';
        dec(a);

        cis[2,b]:='0';
        repeat
          inc(b);
          read(cis[2,b]);
        until cis[2,b]<#33;
        dec(b);
        vypis;
        for i:= 1 to a+b do
          write('1'); 
     end;     
  until sustava=0;
END.