var z:integer;
    s3:string;
    s:array[1..2] of string;
    p:integer;
    ml,i,j,k:integer; 
function conv(a:char):integer;
var tmp:integer;
begin
  tmp:=ord(a)-48;
  if tmp<10 then conv:=tmp else conv:=tmp-65+48+10;
end;
function mkd(x:integer):char;
begin
  if x<10 then mkd:=chr(x+48) else mkd:=chr(x+65-10);
end;
function getn(x,y:integer):integer;
var n:integer;
begin
  n:=length(s[x])-y+1;
  if n<1 then getn:=0 else getn:=conv(s[x,n]);
end;
begin
  readln(z);
  while z<>0 do
  begin
    readln(s[1]);
    s[2]:=copy(s[1],pos(' ',s[1])+1,255);
    s[1]:=copy(s[1],1,pos(' ',s[1])-1);
    s3:='';
    if z=1 then s3:=s[1]+s[2] else
    begin 
    p:=0;
    ml:=length(s[1]);
    if ml<length(s[2]) then ml:=length(s[2]);
    for i:=1 to ml do
    begin
      k:=getn(1,i)+getn(2,i)+p;
      s3:=s3+mkd(k mod z);
      p:=k div z;
    end;
    if p>0 then s3:=s3+mkd(p);
    end;
    write(s[1],' + ',s[2],' = ');
    for i:=length(s3) downto 1 do write(s3[i]);
    writeln;
    readln(z);
  end;
end.
