uses crt;
var x,y:array[1..100] of integer;
m,i,j,imn,p,q,t:byte;
b:integer;
begin
clrscr;
randomize;
write('m=');readln(m);
writeln('Массив Х:');
for i:=1 to m do
begin
x[i]:=random(20);
write(x[i],' ');
end;
writeln;
writeln;
i:=1;
while i<=m do
begin
imn:=i;{мин текущее число}
for j:=i+1 to m do
if x[j]<x[imn] then imn:=j;{нашли меньше, оно мин}
b:=x[imn];{запомнили}
for p:=imn downto i+1 do{сдвиг вправо к минимальному}
x[p]:=x[p-1];
x[i]:=b;{переносим мин. вперед на свое место}
q:=i+1;
while q<=m do
if x[q]=b then {ищем равные минимуму}
begin
for t:=q to m-1 do
x[t]:=x[t+1]; {удаляем их путем сдвига влево}
m:=m-1;{уменьшаем размер исходного массива}
end
else q:=q+1;
i:=i+1;
end;
writeln('Массив X:');
for i:=1 to m do
write(x[i],' ');
readln
end.