uses crt;
var i,j,n,m,min,max:integer;
a:array [1..10,1..10] of integer;
begin
clrscr;
repeat
writeln ('Vvedite N ot 3 do 10');
readln(n);
until n in [3..10];
repeat
writeln('Vvedite M ot 3 do 10');
readln(m);
until m in [3..10];
writeln('Vvedte ilementi massiva');
for i:=1 to n do
for j:=1 to m do
begin
write ('a[',i,',',j,']= ');
readln (a[i,j]);
end;
clrscr;
for i:=1 to n do
begin
for j:=1 to m do
write (a[i,j]:6);
writeln;
end;
{максимальный из минимальных строк}
max:=a[1,1];{найдем минимальный в первой строке, пока он максимальный}
for i:=1 to m do
if a[1,i]<max then max:=a[1,i];
writeln('minimal chislo 1 stroki = ',max);
for i:=2 to n do
begin
min:=a[i,1];
for j:=1 to m do
if a[i,j]<min then min:=a[i,j];
writeln('minimal chislo ', i ,' stroki = ',min);
if min>max then max:=min;
end;
writeln;
writeln('Max iz min el strok=',max);
writeln;
{минимальный из максимальных столбцов}
min:=a[1,1];{найдем максимальный в первом столбце, пока он минимальный}
for i:=1 to m do
if a[i,1]>min then min:=a[i,1];
writeln('max. chislo 1 stolbce = ',max);
for j:=2 to m do
begin
max:=a[j,1];
for i:=1 to n do
if a[i,j]>max then max:=a[i,j];
writeln('max. chislo ', i ,' stolbec = ',max);
if max<min then min:=max;
end;
writeln;
writeln('Min iz max el stolbcov=',min);
readkey;
end.