Program SortMatrix;
Const mm=20; nn=10;

Type mas=array[1..nn] of real;
matr=array[1..mm] of mas;
mas1=array[1..mm] of integer;
var  b:matr;
max: mas1;
i,j,k,m,n,z:integer;
maxx: integer;
f1,f2:text;
name1, name2: string;
Procedure Vvod(var X: matr; var m,n: integer);
Var i,j:integer;
Begin
Writeln ('zadayte imy phayla rezultatov');
readln (name1);
assign(f1,name1);
Reset(f1);
readln(f1,m,n);
For i:=1 to m do
For j:=1 to n do
read (f1,b[i,j]);
close(f1);
end;
Procedure output(x:matr;n1,m1:integer);
var
j,i:integer;
begin
for j:=1 to n1 do
begin
for i:=1 to m1 do
write (f2, x[j,i]:7:2);
writeln (f2)
end;
end;

Procedure column(x:mas;n1: integer; var maxi:integer);
var
i:integer;
maxc:real;
begin
maxc:=x[1];maxi:=1;
for j:=1 to n do
if x[j]> maxc then
begin
maxc:=x[j];
maxi:=j;
end;
end;
Procedure sat(var x:matr;m1:integer; var maxc:mas1);
var
i,k: integer;
tmp: integer;
y: mas;
begin
for k:=1 to m1-1 do
for i:=1 to m1-k do
if maxc [i]>maxc[i+1] then
begin
tmp:=maxc [i];
maxc[i]:=maxc[i+1];
maxc[i+1]:=tmp;
y:=x[i];
x[i]:=x[i+1];
x[i+1]:=y;
end;
end;
begin
vvod(b,m,n);
Writeln ('zadayte imy phayla rezultatov');
readln (name2);
assign(f2,name2);
rewrite(f2);
output(b,m,n);
writeln(f2);

for i:=1 to m do
begin
column(b[i],n,maxx);
max[i]:=maxx;
end;
for i:=1 to m do
write (f2,max[i]:7);
writeln (f2);
sat(b,m,max);
output(b,m,n);
close(f2);
end.
