{ тараканьи бега } var a: array of integer; b: array[,] of integer; i,j,k,n: integer; priz: boolean; f: text; { процедура проверки перестановки по ставкам } procedure Check(k,n: integer); var i,j,m,fs: integer; pr: boolean; begin for i:=0 to n-1 do begin m:=0; pr:=false; repeat j:=0; while b[i,m]<>a[j] do inc(j); fs:=j; j:=0; while b[i,m+1]<>a[j] do inc(j); pr:=(j>fs) xor pr; m:=m+2; until m=4; if not pr then break; end; if pr then priz:=true; end; { перестановки } procedure Perm(m: integer); begin if m=1 then Check(k,n); for var i:=0 to m-1 do begin Swap(a[i],a[m-1]); Perm(m-1); if priz then exit; Swap(a[i],a[m-1]); end; end; { основная программа } begin { считывание из файла } assign(f,'input.txt'); reset(f); readln(f,k,n); setlength(a,k); setlength(b,n,4); for i:=0 to k-1 do a[i]:=i+1; { считывание ставок } for i:=0 to n-1 do begin for j:=0 to 3 do read(f,b[i,j]); end; close(f); priz:=false; { генерация перестановок и проверка ставок по перестановкам } Perm(k); { запись в выходной файл } assign(f,'output.txt'); rewrite(f); if priz then for i:=0 to k-1 do write(f,a[i],' ') else write(f,0); close(f); end.