#define F for j:=1to n do var s:string;i,j,k,n:word;begin read(s);n:=length(s);F k:=k+ord(s[j]>^ )shl(n-j);repeat F write(chr(ord(upcase(s[j]))xor(i+k)shr(n-j)and 1*32));writeln;inc(i)until i=1shl n;end.