var
i,n,k,index:integer;
num:array[1..5000] of integer;
begin
write('Vvedite kolichestvo chelovek v krugu');
readln(n);
write('Vvedite chislo, do kotorogo vedetsya chet');
readln(k);
for i:=1 to n do num[i]:=i;
writeln('Isxodnaya numeraciya:1,2,... ,',n);
write('Poryadok isklucheniya:');
index:=0;
while n>1 do
begin
i:=0;
repeat
inc(i,1);
inc(index,1);
if index=n then index:=0
until i=k;
if index <>i then
begin
write(num[index]:8);
for i:=index to n-1 do num[i]:=num[i+1];
dec(index,1)
end
else
write(num[n]:8);
dec(n,1)
end;
write('Ostalsya chelovek pod nomerom',num[n]);
readln
end.
де-то кроется ошибка...потому что первым вылетает последний человек...потом еще считает 0 за человека, и иногда вылетает 2 человека под одним номером