const n=16777215; var a:array[0..n] of byte; b:array[0..127] of longint; i,j:longint; x:int64; begin for i:=1 to n do a[i]:=127; writeln('Initialization finished'); a[1]:=0;a[2]:=1; for i:=2 to n do begin x:=1; while x<=n do begin if i+x<=n then begin j:=i+x; if a[i]+1<a[j] then a[j]:=a[i]+1; end; x:=x*i; end; end; for i:=1 to 127 do b[i]:=0; for i:=1 to n do if b[a[i]]=0 then b[a[i]]:=i; for i:=1 to 127 do if b[i]>0 then writeln(i,' ',b[i]); end.