PROGRAM NYEREGPONT(INPUT,OUTPUT);

USES CRT;

CONST N=3;

TYPE INDEX=0..N+1;
     MATRIX=ARRAY[1..N,1..N] OF REAL;
     NYILISTA=ARRAY[1..N] OF INDEX;
     MAXLISTA=ARRAY[1..N] OF REAL;

VAR  M:MATRIX;
     OM:MAXLISTA;
     I,J:INDEX;

FUNCTION OSZLOPMAX(OSZLOP:INDEX):REAL;
VAR I:INDEX;
    OMAX:REAL;
BEGIN
    OMAX := M[1,OSZLOP];
    FOR I:=2 TO N DO
       IF M[I,OSZLOP] > OMAX THEN
          OMAX := M[I,OSZLOP];
    OM[OSZLOP] := OMAX;
    OSZLOPMAX := OMAX;
END;

FUNCTION OSZLOPMAXMIN:REAL;
VAR OMAXMIN,R:REAL;
    OSZLOP:INDEX;
BEGIN
    OMAXMIN := OSZLOPMAX(1);
    FOR OSZLOP:=2 TO N DO
       BEGIN
       R:=OSZLOPMAX(OSZLOP);
       IF OMAXMIN > R THEN OMAXMIN := R;
       END;
    OSZLOPMAXMIN := OMAXMIN;
END;

PROCEDURE SORVIZSGALAT;
VAR SOR,OSZLOP,I:INDEX;
    OMAXMIN:REAL;
    NYI:INDEX;
    NYITAR:NYILISTA;
BEGIN
    OMAXMIN:=OSZLOPMAXMIN;
    FOR SOR := 1 TO N DO
        BEGIN
        OSZLOP := 1; NYI := 0;
        WHILE ( M[SOR,OSZLOP] >= OMAXMIN ) AND ( OSZLOP <= N ) DO
            BEGIN
            IF  ( M[SOR,OSZLOP] = OM[OSZLOP] ) AND
                ( M[SOR,OSZLOP] = OMAXMIN ) THEN
                BEGIN
                NYI := NYI + 1;
                NYITAR[NYI] := OSZLOP;
                END;
            OSZLOP := OSZLOP + 1 ;
            END;
       IF OSZLOP = N + 1 THEN
            FOR I := 1 TO NYI DO
                WRITELN('M[',SOR,',',NYITAR[I],']=',OMAXMIN:4:0);
       END;
END;

BEGIN
CLRSCR;
FOR I:= 1 TO N DO
   BEGIN
   FOR J:= 1 TO N DO
      READ(M[I,J]);
   READLN;
   END;
SORVIZSGALAT;
END.

