program x_x;
{$h-}
const
x = 0;
xx = 1;
xxx = xx shl xx;
xxxx = xxx + xx;
xxxxx = xx shl xxx;
xxxxxx = xxxxx + xx;
xxxxxxx = xxxxx + xxx;
xxxxxxxx = xxxxx + xxxx;
xl = xx shl xxxxxx + xx shl xxxx;
xxxxxxxxxx = xx shl xxxxxxxx + xx shl xxxxxxx + xx shl xxxxxx + xx shl xxx ;
var
xxxxxxxxxxxxxxx: string;
procedure xx_xx(_x:string);
var _xx: Byte;
begin
_xx := (xl-byte(_x[x]) shr xx); while _xx > 1 do begin write(char(1 shl xxxxxx)); dec(_xx); end;writeln(_x);
end;
procedure xxx_xxx(var _x: string);
var _xx: Integer;
begin
for _xx := xx to byte(_x[x]) do _x[_xx]:= char(byte(_x[_xx])+byte(1 shl xxxxxxx + 1 shl xxxxx + 1 shl xxxx));
end;
function xxxx_xxxx(_x,_xx:integer):integer;
begin
case _x>_xx of true: exit(_xx);false: exit(_x);end;
end;
procedure xxxxx_xxxxx;
begin
setlength(xxxxxxxxxxxxxxx,xxxxxxxxxx);
end;
procedure xxxxxx_xxxxxx;
var
_x, _xx: Integer;
_xxx: String;
begin
writeln;
_x := 1;
while xxxxxxxxxxxxxxx[x]>#0 do
begin
_xx := 1+(_x-1) shl 1;
_xxx := copy(xxxxxxxxxxxxxxx,1,_xx);
dec(byte(xxxxxxxxxxxxxxx[x]), xxxx_xxxx(byte(xxxxxxxxxxxxxxx[x]),_xx));
xxx_xxx(_xxx);
xx_xx(_xxx);
inc(_x);
end;
end;
function xxxxxxx_xxxxxxx: string;
var
_x: char;
_xx: integer;
begin
_xx := xx;
xxxxxxx_xxxxxxx[x] := char(xx shl xxxxxx + xx shl xxx);
_x := #0;
inc(_x, xx shl xxxxxxx + xx shl xxxx + xx shl xxx + xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_x, xx shl xxxxx + xx shl xxxx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_x, xx shl xxxx + xx shl xxx + xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_x, xx shl xxxx - xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
_x := char(round(sqrt(byte(_x))) shl xx);
inc(_x, xx shl xxxx + xx shl xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
_x := char(byte(_x) shl xx);
inc(_x, xx shl xx + xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_x, xx shl xxxxxx + xx shl xxx + xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_x, xx shl xxxx + xx shl xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
dec(_x, xx shl xxxx + xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_x, xx shl xxxx + xx shl xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_x, xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
dec(_x, xx shl xxx + xx shl xx + xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
dec(_x, xx shl xxxx + xx shl xxx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_x, xx shl xxxxx + xx shl xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
_x := char(byte(_x) shr xxx);
inc(_x, xx shl xxx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
_x := char(byte(_x) shl xx);
inc(_x, xx shl xxxxxx + xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_x, xx shl xxxx + xx shl xxx + xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
dec(_x, xx shl xxxx + xx shl xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
_x := char(byte(_x) shr xxx);
inc(_x, xx shl xxx + xx shl xx + xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
_x := char(byte(_x) shl xx);
inc(_x, xx shl xxxxxx + xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
dec(_x, xx shl xxxxxx + xx);
_x := char(byte(_x) shr xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
_x := char(byte(_x) shl xx);
inc(_x, xx shl xxxx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_x, xx shl xxxxx + xx shl xxxx + xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_x, xx shl xxxxx - xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_x, xx shl xxxx + xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_x, xx shl xxx + xx shl xx + xx);
_x := char(byte(_x) shr xxx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
_x := char(byte(_x) shl xx);
inc(_x, xx shl xxxx + xx shl xxx + xx shl xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_x, xx shl xxxxx + xx shl xxxx - xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_x, xx shl xxxxx + xx shl xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
_x := char(byte(_x) shr xxx);
inc(_x, xx shl xx + xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
_x := char(byte(_x) shl xx);
inc(_x, xx shl xxxxx + xx shl xxxx + xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_x, xx shl xxxx + xx shl xxx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
dec(_x, xx shl xxx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
inc(_x, xx shl xxxxx + xx);
inc(_xx);
xxxxxxx_xxxxxxx[_xx] := _x;
end;
procedure xxxxxxxx_xxxxxxxx;
var
_x: String;
begin
_x := xxxxxxx_xxxxxxx;
writeln;
xx_xx(_x);
end;
begin
xxxxx_xxxxx;
xxxxxx_xxxxxx;
xxxxxxxx_xxxxxxxx;
end.