[an error occurred while processing this directive]
Listing CARDS.PAS
Program Cards;
const max=1000;
var n,s:Integer;
f:Text;
p,q:array[1..max] of integer;
procedure Citire;
var i:Integer;
begin
Assign(f,'CARDS.IN'); Reset(f);
Readln(f,n,s);
for i:=1 to n do Readln(f,q[i]);
Close(f)
end;
procedure Solutie;
var i,j:Integer; t,u:Longint;
temp:array[1..max] of Integer;
begin
t:=1;
for i:=1 to s do t:=(t+t) mod n;
u:=1; while (u*t mod n) <>1 do Inc(u);
for i:=1 to n do p[i]:=q[i];
for i:=2 to u do
begin
for j:=1 to n do temp[j]:=q[p[j]];
for j:=1 to n do p[j]:=temp[j]
end
end;
procedure Scriere;
var i:Word;
begin
Assign(f,'CARDS.OUT'); Rewrite(f);
for i:=1 to n do Writeln(f,p[i]);
Close(f)
end;
Begin
Citire;
Solutie;
Scriere
End.