const n=8;
type sq_matr=array[1..n,1..n] of integer;
procedure output_matr(a:sq_matr); {процедура вывода матрицы}
var i,j:byte;
begin
for i:=1 to n do
begin
writeln;
for j:=1 to n do
write(a[i,j]:5);
end;
end;
procedure input_matr(var a:sq_matr); {процедура ввода матрицы}
var i,j:byte;
begin
randomize;
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(5);
end;
procedure nums(a:sq_matr; var num:byte); {процедура подсчета строк с максимальным элементом}
var i,j:byte;
max:integer;
begin
num:=0;
max:=a[1,1];
for i:=1 to n do
for j:=1 to n do
if max<a[i,j] then
max:=a[i,j]; {находим максимальный элемент}
for i:=1 to n do
begin
j:=0;
repeat {в этом цикле оперделяем есть ли максимальный элемент в строке}
inc(j);
if a[i,j]=max then inc(num);
until (a[i,j]=max) or (j=n);
end;
end;
var a:sq_matr;
num:byte;
begin
input_matr(a);
output_matr(a);
writeln;
nums(a,num);
writeln;
writeln(num);
end.