const max=10;
var a:array[1..max,1..max] of integer;
k1,k2:array[1..max]of byte;
n,m,i,j,s1,s2:integer;
begin
repeat
write('Количество строк до ',max,' n=');
readln(n);
until n in [1..max];
repeat
write('Количество столбцов до ',max,' m=');
readln(m);
until m in [1..max];
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=-15+random(31);
write(a[i,j]:4);
end;
writeln;
end;
s1:=0;
s2:=0;
for j:=1 to m do
begin
k1[j]:=0;
k2[j]:=0;
for i:=1 to n do
if abs(a[i,j])>10 then
begin
a[i,j]:=10;
inc(s1);
inc(k1[j]);
end
else
begin
a[i,j]:=j;
inc(s2);
inc(k2[j]);
end;
end;
writeln('Измененная матрица');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:4);
writeln;
end;
writeln(' Количество замен');
writeln(' 1 вида 2 вида');
for i:=1 to m do
writeln('Столбец ',i:2,k1[i]:5,k2[i]:5);
writeln('Всего ',s1:5,s2:5);
end.