const MaxN=301; var G:array [1..MaxN, 1..MaxN] of integer; u, v, B, D, X:array [0..MaxN] of integer; F:array [0..MaxN] of boolean; i, j, k, l, m, mj, n, t:integer; begin reset (input, 'matrix.in'); rewrite (output, 'matrix.out'); read (n); for i:=1 to n do for j:=1 to n do read (G[i, j]); for i:=1 to n do begin fillchar (X, sizeof (X), 63); fillchar (F, sizeof (F), 0); l:=0; B[0]:=i; repeat F[l]:=true; k:=B[l]; m:=maxint; mj:=-1; for j:=1 to n do if not F[j] then begin t:=G[k, j]-u[k]-v[j]; if (t