#!/usr/bin/env python3 def mod(a,b): return a-(a//b)*b def e(a,b): u=min(a,b) v=max(a,b) return mod(sum([97,53*u,71*v,11*u*v,17*u*u,13*v*v]),997) def pc(x): c=0 for p in range(6): if mod(x//(2**p),2)>0: c=sum([c,1]) return c def js(k): a=[] for j in range(6): if mod(k//(2**j),2)>0: a.append(j) return a def minbit(t): m=0 while mod(t//(2**m),2)==0: m=sum([m,1]) return m n0=[173,233,331,467,641,853] s0=[211,271,377,529,727,971] g0=[307,367,489,673,919,1227] N=[0]*64 C=[0]*64 P=[0]*64 N[2]=173 C[2]=211 P[2]=1 N[3]=233 C[3]=271 P[3]=2 N[5]=331 C[5]=377 P[5]=3 N[9]=467 C[9]=529 P[9]=4 N[17]=641 C[17]=727 P[17]=5 N[33]=853 C[33]=971 P[33]=6 Z=431 def run(k): global kk,sz,bestB,bestA,bestH,bestJ,bestT,Z kk=k sz=pc(k) bestB=1000000000 bestA=0 bestH=99 bestJ=99 bestT=0 for j in js(k): T=kk-(2**j) m=minbit(T) A=mod(sum([N[T 1]*n0[j 1],e(m,j),7*pc(T),3*j]),997) Bh=mod(sum([C[T 1],s0[j 1],N[T 1],2*n0[j 1],3*A,e(m,j)]),9973) Bm=mod(sum([C[T 1],g0[j 1],2*N[T 1],n0[j 1],5*A,2*e(m,j)]),9973) Z=mod(sum([37*Z,11*A,13*Bh,19*sz,23*sum([j,1]),29]),9973) better=(Bh