const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
m,n,i,j,ks,f:byte;
begin
clrscr;
repeat
write('Количество строк до ',nmax,' n=');
readln(n);
until n in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' m=');
readln(m);
until m in [1..nmax];
writeln('Введите элементы матрицы по столбцам:');
for j:=1 to m do
begin
writeln('Столбец ',j);
for i:=1 to n do
begin
write('a[',i,',',j,']=');
readln(a[i,j]);
end;
end;
clrscr;
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:4);
writeln;
end;
writeln;
ks:=0;{количество столбцов, упорядоченных строго по возрастанию, типа 1 8 25 40}
for j:=1 to m do
begin
f:=0;{флаг фиксации нарушения последовательности}
for i:=2 to n do
if a[i,j]<=a[i-1,j] then{если нарушена последовательность}
begin
f:=1;{меняем значение флага}
break;{выходим из цикла}
end;
if f=0 then ks:=ks+1;{если флаг не сменился, считаем столбец}
end;
write('Количество столбцов упорядоченных строго по возрастанию=',ks);
readln
end.