program poisk_glib; {$APPTYPE CONSOLE} var m,n:integer; c:array [1..100,1..100] of integer; kol,kk,k,im,np,i,j:integer; rez,stack:array [0..100] of integer; f1:text; procedure outresalt; var p,i:integer; vv:boolean; begin vv:=true; for i:=1 to n do begin p:=0; for j:=0 to m do if i=stack[j] then p:=p+1; if p<>1 then vv:=false; end; if vv then begin for i:=0 to m do write(f1,stack[i],' '); writeln(f1); kol:=kol+1; end; end; begin assign(f1,'graph.dat'); Reset(f1); readln(f1,n); for i:=1 to n do for j:=1 to n do read(f1,c[i,j]); close(f1); assign(f1,'graph.sol'); rewrite(f1); m:=5; for k:=1 to 6 do begin stack[0]:=k; im:=1; np:=1; while im>0 do begin while ((np<=n)and(c[stack[im-1],np]=0)) do np:=np+1; if (np>n) then begin im:=im-1; np:=stack[im]+1; end else begin stack[im]:=np; im:=im+1; np:=1; if im-1=m then begin outresalt;im:=im-1;np:=stack[im]+1;end end; end; end; writeln(f1,'kol=',kol); CLOSE(F1); end.