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.