perche il valore di n e m immessi dall'utente nella prima procedure non riescono a passare nella 2 procedura

codice:
program elezioni;

type
tabella= ARRAY [1..80, 1..90] OF integer;
var
sezione:tabella;
n:integer;
m:integer;
y:integer;
i:integer;

Procedure inizia (n,m:integer);
const
maxcolonne=20;
maxrighe=20;
begin
 repeat
 Writeln ('inserisci il numero dei candidati');
 Readln (n);
 until (n<=maxcolonne) and (n>=1);
 repeat
 Writeln ('Inserisci il nimero delle sezioni');
 readln (m);
 Until (m<=maxrighe) and (m>=1);
 writeln (n,m);
 end;


 procedure leggi (i,y,n,m:integer);
  begin
 For i:=1 to n do
 for y:=1 to m do begin
 writeln ('Inserisci i voti del candidato ', i,' della n. ',y);
 readln (sezione [i,y]);
 end;
 end;

begin
inizia (n,m);
leggi(i,y,n,m);
end.