Собака зарыта в строчках
var a:array of integer
...
read(a[i][j])
Смысл в том, что a, похоже, объявлен как одномерный массив, а по твоей задумке он двумерный. Поставь там инициализацию двумерных массивов.
(В PascalABC.Net, если ты тоже в этой среде и этом диалекте, то там я ручаюсь, что там правильно var a:array [,] of integer. Хотя допускаю, что везде одинаково).