PROGRAM BUVOS(INPUT,OUTPUT);

USES CRT;

CONST    N=3;

TYPE BTOMB = ARRAY[1..N,1..N] OF 0..N*N;
     INDEX = 0..N;

VAR NEGYZET:BTOMB;
    I,J:INTEGER;

PROCEDURE CSOKK(VAR SOR,OSZLOP:INDEX);
BEGIN
   SOR := SOR -1;
   IF SOR < 1 THEN SOR := N;
   OSZLOP := OSZLOP -1;
   IF OSZLOP < 1 THEN OSZLOP := N;
END;

PROCEDURE NOV(VAR SOR:INDEX);
BEGIN
   SOR := SOR + 1;
   IF SOR > N THEN SOR := 1;
END;

PROCEDURE KITOLT(VAR NEGYZET : BTOMB );
VAR SOR,OSZLOP : INDEX;
    STAR,OTAR : INDEX;
    I,J : INTEGER;
BEGIN
   SOR := 1; OSZLOP := N DIV 2 + 1;
   FOR I := 1 TO N*N DO
      BEGIN
      NEGYZET[SOR,OSZLOP] := I;
      IF I MOD N <> 0 THEN CSOKK(SOR,OSZLOP) ELSE SOR := SOR+1;
      END;
END;

BEGIN
KITOLT(NEGYZET);
CLRSCR;
FOR I:=1 TO N DO
    BEGIN
    FOR J:=1 TO N DO WRITE(NEGYZET[I,J],' ');
    WRITELN;
    END;
END.
