{$APPTYPE CONSOLE} var i,j,k,m,n,s,i1,j1,k1,l,l1,n1,temp,kil:integer;f:text; c,c1,r,d,sum:array [1..40000] of longint; a,a1,b:array [1..200,1..200] of longint; function fl(ni:integer):boolean; var p:boolean; t:array [1..100]of integer; i:integer; begin p:=true; for i:=1 to ni do t[i]:=0; for i:=1 to ni do t[c[i]]:=t[c[i]]+1; for i:=1 to ni do if t[i]>1 then p:=false; fl:=p; end; procedure p(ni,v:integer); var i:integer; begin c[ni]:=v; if(v=l)or(ni>=n1)then begin if (v=l)and (fl(ni)) then begin inc(l1); for i:=1 to ni do sum[l1]:=sum[l1]+c1[c[i]]; //write(f,sum[l1],' ',l1);writeln(f); end; end else for i:=1 to n1 do if a[v,i]>0 then p(ni+1,i); end; ///// begin assign(f,'Goodways.dat');reset(f); readln(f,m,n,k); for i:=1 to m do begin for j:=1 to n do begin read(f,a1[i,j]);end;readln(f);end; close(f); for i:=1 to m do for j:=1 to n do c1[(i-1)*n+j]:=a1[i,j]; for i:=1 to m*n do b[i,i]:=0; for i:=1 to m do for j:=1 to n do begin d[(i-1)*n+j]:=a1[i+1,j]; r[(i-1)*n+j]:=a1[i,j+1];end; for i:=1 to m*n do for j:=1 to m*n do begin if i<>j then if (r[i]=c1[j]) or (d[i]=c1[j]) then b[i,j]:=1 else b[i,j]:=0;end; //for i:=1 to m*n do begin //for j:=1 to m*n do begin //write(b[i,j],' ');end;writeln;end; n1:=m*n;k1:=1;l:=m*n; for i:=1 to m*n do for j:=1 to m*n do a[i,j]:=b[i,j]; l1:=0; p(1,k1); for i:=1 to l1-1 do for j:=2 to l1 do if sum[i]