uses crt;
var s1,s2:string;
k:integer;
function shift(s:string;k:integer):string;
const
q:array [0..31] of char='��������������������������������';
w:array [0..31] of char='��������������������������������';
var i:integer;
begin
while k<0 do k:=k+32;
for i:=1 to length(s) do begin
if pos(s[i],q)>0 then s[i]:=q[(pos(s[i],q)+k-1) mod 32];
if pos(s[i],w)>0 then s[i]:=w[(pos(s[i],w)+k-1) mod 32];
end;
shift:=s;
end;

begin
clrscr;
 randomize;
s2:='�� ���⮢�� ��ப� !';
writeln (s2);
s1:=shift(s2, random(100));
k:=0;
writeln (s1);
while (k<32) and (copy(shift(s1,k),1,1)<>s2[1]) do inc(k);
writeln (shift(s1,k));
end.