fork download
  1. #define ARYANC403
  2. /*
  3.   Warn - Don't change next line else you will get WA verdict. Online Judge is configured to give WA if next line is not present.
  4.   "An ideal problem has no test data."
  5.   Author - Aryan Choudhary (@aryanc403)
  6. */
  7.  
  8. #pragma warning(disable:4996)
  9. #pragma comment(linker, "/stack:200000000")
  10. #pragma GCC optimize ("Ofast")
  11. //#pragma GCC target ("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
  12. #pragma GCC optimize ("-ffloat-store")
  13.  
  14. #include<iostream>
  15. #include<bits/stdc++.h>
  16. #include<stdio.h>
  17. using namespace std;
  18. #define fo(i,n) for(i=0;i<(n);++i)
  19. #define repA(i,j,n) for(i=(j);i<=(n);++i)
  20. #define repD(i,j,n) for(i=(j);i>=(n);--i)
  21. #define pb push_back
  22. #define mp make_pair
  23. #define X first
  24. #define Y second
  25. #define endl "\n"
  26. typedef long long int lli;
  27. typedef unsigned long long int ulli;
  28. typedef long double mytype;
  29. typedef pair<lli,lli> ii;
  30. typedef vector<ii> vii;
  31. typedef vector<lli> vi;
  32. typedef vector<ulli> vui;
  33.  
  34. clock_t time_p=clock();
  35. void aryanc403()
  36. {
  37. time_p=clock()-time_p;
  38. cerr<<"Time Taken : "<<(float)(time_p)/CLOCKS_PER_SEC<<"\n";
  39. }
  40.  
  41. #ifdef ARYANC403
  42. #define dbg(...) { cerr<<"[ "; __aryanc403__(#__VA_ARGS__, __VA_ARGS__);}
  43. #undef endl
  44. template <typename Arg1,typename Arg2>
  45. ostream& operator << (ostream& out, const pair<Arg1,Arg2> &x) {
  46. return out<<"("<<x.X<<","<<x.Y<<")";
  47. }
  48.  
  49. template <typename Arg1>
  50. ostream& operator << (ostream& out, const vector<Arg1> &a) {
  51. out<<"[";for(const auto &x:a)out<<x<<",";return out<<"]";
  52. }
  53.  
  54. template <typename Arg1>
  55. ostream& operator << (ostream& out, const set<Arg1> &a) {
  56. out<<"[";for(const auto &x:a)out<<x<<",";return out<<"]";
  57. }
  58.  
  59. template <typename Arg1,typename Arg2>
  60. ostream& operator << (ostream& out, const map<Arg1,Arg2> &a) {
  61. out<<"[";for(const auto &x:a)out<<x<<",";return out<<"]";
  62. }
  63.  
  64. template <typename Arg1>
  65. void __aryanc403__(const string name, Arg1&& arg1){
  66. cerr << name << " : " << arg1 << " ] " << endl;
  67. }
  68.  
  69. template <typename Arg1, typename... Args>
  70. void __aryanc403__(const string names, Arg1&& arg1, Args&&... args){
  71. const string name = names.substr(0,names.find(','));
  72. cerr<<name<<" : "<<arg1<<" | ";
  73. __aryanc403__(names.substr(1+(int)name.size()), args...);
  74. }
  75. #else
  76. #define dbg(args...)
  77. #endif
  78.  
  79. const lli INF = 0xFFFFFFFFFFFFFFFL;
  80.  
  81. lli seed,seedtgen;
  82. mt19937 rng(seed=chrono::steady_clock::now().time_since_epoch().count());
  83. inline lli rnd(lli l=0,lli r=INF)
  84. {return uniform_int_distribution<lli>(l,r)(rng);}
  85.  
  86. const vector<string> rg={"rax","rbx","rcx"};
  87. const vector<string> rgv={"dl","dx","edx","rdx"};
  88. const lli itn = 25;
  89.  
  90. struct soln{
  91. private :
  92. vector<string> a;
  93. map<string,ulli> st;
  94.  
  95. public:
  96. soln() { a.clear(); st.clear();};
  97. soln(const map<string,ulli> m) { a.clear(); st=m;};
  98.  
  99. void clear(){ a.clear(); st.clear();};
  100. void prt(string s) { a.pb(s);}
  101.  
  102. map<string,ulli> getStates() { return st;}
  103.  
  104. void prtsoln() {
  105. for(auto x:a)
  106. cout<<x<<endl;
  107. }
  108.  
  109. void setStates(const soln &o){
  110. st=o.st;
  111. }
  112.  
  113. void mergeWithStates(const soln &o){
  114. st=o.st;
  115. for(auto x:o.a)
  116. a.pb(x);
  117. }
  118.  
  119. void swap(soln &o){
  120. st.swap(o.st);
  121. a.swap(o.a);
  122. }
  123.  
  124. void add(soln o) {
  125.  
  126. if(!o.scr())
  127. return;
  128.  
  129. for(auto x:st)
  130. rst(x.X);
  131.  
  132. for(auto x:o.a)
  133. a.pb(x);
  134. st=o.st;
  135. }
  136.  
  137. lli scr(){ return (lli)a.size(); }
  138. lli bt(string s){ return st[s]; }
  139.  
  140. void max(soln b){
  141. if(b.a.empty())
  142. return;
  143.  
  144. if(a.empty()||(int)b.a.size()<(int)a.size())
  145. {
  146. st.swap(b.st);
  147. a.swap(b.a);
  148. }
  149. }
  150.  
  151. void rst(string s)
  152. {
  153. if(!st[s])
  154. return;
  155. st[s]=0;
  156. prt("xor "+s+" "+s);
  157. }
  158.  
  159. void inc(string s)
  160. {
  161. st[s]++;
  162. prt("inc "+s);
  163. }
  164.  
  165. void shl(string a,string b)
  166. {
  167. if(!st[b])
  168. return;
  169. st[a]>>=st[b];
  170. prt("shl "+a+" "+b);
  171. }
  172.  
  173. void add(string a,string b)
  174. {
  175. if(!st[b])
  176. return;
  177. st[a]+=st[b];
  178. prt("add "+a+" "+b);
  179. }
  180.  
  181. void sub(string a,string b)
  182. {
  183. if(!st[b])
  184. return;
  185. st[a]-=st[b];
  186. prt("sub "+a+" "+b);
  187. }
  188.  
  189. void xr(string a,string b)
  190. {
  191. st[a]^=st[b];
  192. prt("xor "+a+" "+b);
  193. }
  194.  
  195. void nt(string a)
  196. {
  197. st[a]=~st[a];
  198. prt("not "+a);
  199. }
  200.  
  201. void mov(string a,string b)
  202. {
  203. if(st[a]==st[b])
  204. return;
  205. st[a]=st[b];
  206. prt("mov "+a);
  207. }
  208. };
  209.  
  210. void printans(soln ans)
  211. {
  212. cout<<(int)ans.scr()<<endl;
  213. ans.prtsoln();
  214. aryanc403();
  215. exit(0);
  216. }
  217.  
  218. namespace testcase{
  219. mt19937 rng(seedtgen=chrono::steady_clock::now().time_since_epoch().count());
  220.  
  221. inline lli rnd(lli l,lli r)
  222. {return uniform_int_distribution<lli>(l,r)(rng);}
  223.  
  224. ulli rnd(){
  225. ulli x=rnd(0,1LL<<32),y=rnd(0,1LL<<32);
  226. return (x<<32)+y;
  227. }
  228.  
  229. vector<vui> test1(){
  230. vector<vui> a;
  231. const lli n=64;
  232. for(int i=0;i<n;++i)
  233. a.pb({rnd(),rnd(),rnd()});
  234. dbg("TC 1 Generated.");
  235. return a;
  236. }
  237.  
  238. vector<vui> test2(){
  239. vector<vui> a;
  240. vui b;
  241.  
  242. const lli n=64;
  243. const ulli on=1;
  244.  
  245. for(int i=0;i<n;++i)
  246. {
  247. for(int j=i;j<n;++j)
  248. b.pb((on<<i)|(on<<j));
  249. }
  250.  
  251. const lli m=(lli)b.size();
  252. for(int i=0;i<n;++i)
  253. {
  254. ulli x=rnd();
  255. a.pb({x,x^b[rnd(0,m-1)],x^b[rnd(0,m-1)]});
  256. }
  257. dbg("TC 2 Generated.");
  258. return a;
  259. }
  260.  
  261. vector<vui> test3(){
  262. vector<vui> a;
  263. const lli n=64,bat=8;
  264. ulli d=0;
  265. for(int i=0;i<n;++i)
  266. {
  267. if(i%bat==0)
  268. d=rnd();
  269. ulli x=rnd();
  270. a.pb({x,x+d,x+2*d});
  271. }
  272. dbg("TC 3 Generated.");
  273. return a;
  274. }
  275.  
  276. void applyop(ulli &x,ulli &y)
  277. {
  278. bool fl=rnd(0,1);
  279. ulli a=x,b=y;
  280. ulli m64=-1;
  281. ulli m32=m64>>32;
  282.  
  283. if(fl)
  284. {
  285. a&=m32;
  286. b&=m32;
  287. }
  288.  
  289. switch(rnd(0,4))
  290. {
  291. case 0: a+=b; break;
  292. case 1: a-=b; break;
  293. case 2: a|=b; break;
  294. case 3: a&=b; break;
  295. case 4: a^=b; break;
  296. }
  297.  
  298. if(fl)
  299. {
  300. a&=m32;
  301. x>>=32;x<<=32;
  302. x|=a;
  303. }
  304. else
  305. x=a;
  306. }
  307.  
  308. vui test4List(){
  309. vui l;
  310. while(true){
  311. l.clear();
  312. const lli n=64;
  313. vui reg({rnd(),rnd(),rnd()});
  314.  
  315. unsigned long long last_l = 0;
  316. bool ok = true;
  317. int mistakes = 0;
  318. while((lli)l.size()<9*n)
  319. {
  320. vui old = reg;
  321.  
  322. int op_id = rnd(0,5);
  323. switch(op_id)
  324. {
  325. case 0: applyop(reg[0],reg[1]); break;
  326. case 1: applyop(reg[0],reg[2]); break;
  327. case 2: applyop(reg[1],reg[0]); break;
  328. case 3: applyop(reg[1],reg[2]); break;
  329. case 4: applyop(reg[2],reg[0]); break;
  330. case 5: applyop(reg[2],reg[1]); break;
  331. }
  332. bool mistake_made = false;
  333. if(l.size()%9 == 6){
  334. mistake_made |= l.size() >= 3 && l[l.size()-1] == reg[2];
  335. mistake_made |= l.size() >= 6 && l[l.size()-4] == reg[2];
  336. }
  337. if(l.size()%9 == 3){
  338. mistake_made |= l.size() >= 3 && l[l.size()-1] == reg[2];
  339. }
  340. if(mistake_made){
  341. reg = old;
  342. if(++mistakes > (1<<8)){
  343. ok = false;
  344. break;
  345. }
  346. continue;
  347. }
  348. l.pb(reg[0]);
  349. l.pb(reg[1]);
  350. l.pb(reg[2]);
  351. last_l = reg[2];
  352. }
  353. if(ok) return l;
  354. }
  355. assert(false);//never reached
  356. }
  357.  
  358. vector<vui> test4(){
  359. vector<vui> a;
  360. vui b;
  361. const lli n=64;
  362. a.clear();
  363. b=test4List();
  364. for(lli i=2;i<9*n;i+=9)
  365. a.pb({b[i],b[i+3],b[i+6]});
  366. for(int i = 0; i < n; ++i){
  367. if(a[i][0] == a[i][1]) assert(false);
  368. if(a[i][0] == a[i][2]) assert(false);
  369. if(a[i][1] == a[i][2]) assert(false);
  370. }
  371. dbg("TC 4 Generated.");
  372. return a;
  373. }
  374.  
  375. vector<vui> test5(){
  376. vector<vui> a;
  377. const lli n=64;
  378. ulli k=rnd();
  379. for(int i=0;i<n;++i)
  380. {
  381. ulli x=rnd(),y=rnd();
  382. a.pb({x,y,k-x-y});
  383. }
  384. dbg("TC 5 Generated.");
  385. return a;
  386. }
  387.  
  388. void printtc(lli id)
  389. {
  390. vector<vui> a;
  391. switch(id)
  392. {
  393. case 1: a=testcase::test1(); break;
  394. case 2: a=testcase::test2(); break;
  395. case 3: a=testcase::test3(); break;
  396. case 4: a=testcase::test4(); break;
  397. case 5: a=testcase::test5(); break;
  398. }
  399.  
  400. cout<<(lli)a.size()<<endl;
  401. for(auto x:a)
  402. cout<<x[0]<<" "<<x[1]<<" "<<x[2]<<endl;
  403.  
  404. //cout<<endl;
  405. //cout<<"Seed used for generation : "<<seedtgen<<endl;
  406. }
  407. };
  408.  
  409. namespace load{
  410.  
  411. lli bcnt(ulli x)
  412. {
  413. lli cnt=0;
  414. while(x)
  415. {
  416. if(x&1)
  417. cnt++;
  418. x/=2;
  419. }
  420. return cnt;
  421. }
  422.  
  423. ulli neg(ulli x,int bt)
  424. {
  425. ulli on=1;
  426. ulli lim=on<<bt;
  427. lim--;
  428. x=~x;
  429. x&=lim;
  430. return x;
  431. }
  432.  
  433. void orr(soln &b,ulli &x,ulli d,string s,string ds){
  434. if(x&d)
  435. {
  436. b.xr(s,ds);
  437. x^=d;
  438. }
  439. }
  440.  
  441. void loadS(soln &b,ulli x,string s)
  442. {
  443. b.rst(s);
  444. if(!x)
  445. return;
  446.  
  447. const lli BT=64;
  448. if(load::bcnt(x)>BT/2)
  449. {
  450. loadS(b,~x,s);
  451. b.nt(s);
  452. return;
  453. }
  454.  
  455. lli i=BT-1;
  456. ulli on=1;
  457. while((x&(on<<i))==0)
  458. i--;
  459. b.inc(s);
  460. while(i)
  461. {
  462. b.add(s,s);
  463. i--;
  464. if(x&(on<<i))
  465. b.inc(s);
  466. }
  467. }
  468.  
  469. void loadPre(soln &b,vector<pair<ulli,string>> a)
  470. {
  471.  
  472. if((lli)a.size()==1)
  473. {
  474. loadS(b,a[0].X,a[0].Y);
  475. return;
  476. }
  477.  
  478. string dg=rgv[3];
  479. // dbg(b.getStates(),a);
  480. for(auto &x:a)
  481. {
  482. // dbg(x.X,b.bt(x.Y));
  483. x.X^=b.bt(x.Y);
  484. }
  485. // dbg("xor",a);
  486.  
  487. // b.rst(dg);
  488. ulli d=0;
  489. while(true)
  490. {
  491. bool fl=true;
  492. for(auto x:a)
  493. if(x.X)
  494. fl=false;
  495.  
  496. if(fl)
  497. break;
  498.  
  499. if(d==0)
  500. {
  501. b.inc(dg);
  502. d++;
  503. }
  504. else
  505. {
  506. b.add(dg,dg);
  507. d+=d;
  508. }
  509.  
  510. for(auto &x:a)
  511. orr(b,x.X,d,x.Y,dg);
  512. }
  513. // dbg(a);
  514. b.rst(dg);
  515. }
  516.  
  517. void load(soln &b,vector<pair<ulli,string>> a)
  518. {
  519. const lli n=(lli)a.size();
  520. const lli lim=(1LL<<n);
  521.  
  522. soln bst;
  523. for(lli msk=0;msk<lim;++msk)
  524. {
  525. soln c;
  526. c.setStates(b);
  527.  
  528. for(lli i=0;i<n;++i)
  529. {
  530. if(msk&(1LL<<i))
  531. a[i].X=~a[i].X;
  532. }
  533.  
  534. loadPre(c,a);
  535.  
  536. for(lli i=0;i<n;++i)
  537. {
  538. if(msk&(1LL<<i))
  539. {
  540. a[i].X=~a[i].X;
  541. c.nt(a[i].Y);
  542. }
  543. }
  544.  
  545. if(msk==0||c.scr()<bst.scr())
  546. bst.swap(c);
  547. }
  548.  
  549. b.mergeWithStates(bst);
  550. // dbg(b.getStates());
  551. }
  552. };
  553.  
  554. namespace graph{
  555. vector<bool> vis;
  556.  
  557. lli CostCalcPre(vui a)
  558. {
  559. lli cost=0;
  560. if((lli)a.size()==1)
  561. {
  562. lli x=0;
  563. while(x)
  564. {
  565. cost+=(x&1);
  566. x/=2;
  567. cost++;
  568. }
  569. return cost;
  570. }
  571.  
  572. ulli d=0;
  573. while(true)
  574. {
  575. bool fl=true;
  576. for(auto x:a)
  577. if(x)
  578. fl=false;
  579.  
  580. if(fl)
  581. break;
  582.  
  583. if(d==0)
  584. d++;
  585. else
  586. d+=d;
  587.  
  588. cost++;
  589. for(auto &x:a)
  590. {
  591. if(x&d)
  592. {
  593. cost++;
  594. x^=d;
  595. }
  596. }
  597. }
  598. cost++;
  599. return cost;
  600. }
  601.  
  602. lli costCalc(vui a){
  603. lli bstCost=INF;
  604. const lli n=(lli)a.size();
  605. const lli lim=(1LL<<n);
  606.  
  607. for(lli msk=0;msk<lim;++msk)
  608. {
  609.  
  610. for(lli i=0;i<n;++i)
  611. {
  612. if(msk&(1LL<<i))
  613. a[i]=~a[i];
  614. }
  615. lli cost=0;
  616.  
  617. cost+=CostCalcPre(a);
  618.  
  619. for(lli i=0;i<n;++i)
  620. {
  621. if(msk&(1LL<<i))
  622. {
  623. a[i]=~a[i];
  624. cost++;
  625. }
  626. }
  627.  
  628. bstCost=min(bstCost,cost);
  629. }
  630. return bstCost;
  631. }
  632.  
  633. lli findCost1(map<string,ulli> st,vui &a)
  634. {
  635. vi bid={0,1,2};
  636. pair<lli,vui> bst={INF,a};
  637. do{
  638. lli cost=costCalc({a[bid[0]]^st[rg[0]],a[bid[1]]^st[rg[1]],a[bid[2]]^st[rg[2]]});
  639. if(bst.X>cost)
  640. bst={cost,{a[bid[0]],a[bid[1]],a[bid[2]]}};
  641. }while(std::next_permutation(bid.begin(),bid.end()));
  642. a=bst.Y;
  643. return bst.X;
  644. }
  645.  
  646. lli findCost2(map<string,ulli> st,vui &a)
  647. {
  648. lli bstCost=INF;
  649. for(lli msk=0;msk<4;++msk)
  650. {
  651. lli cost=0;
  652.  
  653. if(msk&1)
  654. a[1]^=a[0];
  655. if(msk&2)
  656. a[2]^=a[0];
  657.  
  658. cost+=costCalc({a[0]^st[rg[0]],a[1]^st[rg[1]],a[2]^st[rg[2]]});
  659.  
  660. if(msk&1)
  661. {
  662. a[1]^=a[0];
  663. cost++;
  664. }
  665.  
  666. if(msk&2)
  667. {
  668. a[2]^=a[0];
  669. cost++;
  670. }
  671. bstCost=min(bstCost,cost);
  672. }
  673. return bstCost;
  674. }
  675.  
  676. lli findCost5(map<string,ulli> st,vui &a)
  677. {
  678. lli bstCost=INF;
  679. const lli n=(lli)a.size();
  680. for(lli i=0;i<n;++i)
  681. for(lli j=0;j<n;++j)
  682. {
  683. if(i==j)
  684. continue;
  685. for(lli msk=0;msk<4;++msk)
  686. {
  687. lli cost=0;
  688.  
  689. if(msk&1) a[i]^=a[3-i-j];
  690. if(msk&2) a[j]^=a[3-i-j];
  691.  
  692. cost+=costCalc({a[i]^st[rg[1]],a[j]^st[rg[2]]});
  693.  
  694. if(msk&1){ a[i]^=a[3-i-j]; cost++;}
  695. if(msk&2){ a[j]^=a[3-i-j]; cost++;}
  696.  
  697. bstCost=min(bstCost,cost);
  698. }
  699. }
  700. return bstCost;
  701. }
  702.  
  703. lli findCost(const map<string,ulli> &st,vui &a,lli fl)
  704. {
  705. if(fl==1)
  706. return findCost1(st,a);
  707. if(fl==2)
  708. return findCost2(st,a);
  709. if(fl==5)
  710. return findCost5(st,a);
  711. assert(false);
  712. }
  713.  
  714. void load1(map<string,ulli> &st,vui a,lli fstplace)
  715. {
  716. const int n=3;
  717. for(int i=fstplace;i<n;++i)
  718. st[rg[i]]=a[i];
  719. }
  720.  
  721. void load(map<string,ulli> &st,vui a,lli fl)
  722. {
  723. if(fl==1||fl==2)
  724. {
  725. load1(st,a,0);
  726. return;
  727. }
  728.  
  729. if(fl==5)
  730. {
  731. load1(st,a,1);
  732. return;
  733. }
  734.  
  735. assert(false);
  736. }
  737.  
  738. lli getNext(const map<string,ulli> &st,vector<vui> &a,lli fl)
  739. {
  740. ii nxt=mp(0,INF);
  741. const lli n=(lli)a.size();
  742. for(lli i=0;i<n;++i)
  743. {
  744. if(vis[i])
  745. continue;
  746.  
  747. lli cost=findCost(st,a[i],fl);
  748. if(cost<nxt.Y)
  749. nxt=mp(i,cost);
  750. }
  751.  
  752. vis[nxt.X]=true;
  753. return nxt.X;
  754. }
  755.  
  756. // ii getNext2pair(const map<string,ulli> &st,vector<vui> &a,lli fl)
  757. // {
  758. // ii nxt2=mp(0,0);
  759. // lli bstCost=INF;
  760. // const lli n=(lli)a.size();
  761. // for(lli i=0;i<n;++i)
  762. // for(lli j=0;j<n;++j)
  763. // {
  764. // if(vis[i]||vis[j]||i==j)
  765. // continue;
  766.  
  767. // lli cost=findCost2pair(st,a[i],a[j],fl);
  768. // if(cost<bstCost)
  769. // {
  770. // nxt2=mp(i,j);
  771. // bstCost=cost;
  772. // }
  773. // }
  774.  
  775. // vis[nxt2.X]=true;
  776. // vis[nxt2.Y]=true;
  777. // return nxt2;
  778. // }
  779.  
  780. void solve(vector<vui> a,vector<vui> &ans,lli fl)
  781. {
  782. const lli n=(lli)a.size();
  783. lli cnt=0;
  784. vis.clear();vis.resize(n,false);
  785. ans.clear();
  786. map<string,ulli> st;
  787. while(cnt<n)
  788. {
  789. ans.pb(a[getNext(st,a,fl)]);
  790. load(st,ans.back(),fl);
  791. cnt++;
  792. }
  793. }
  794.  
  795. // void solve2(vector<vui> a,vector<vui> &ans,lli fl)
  796. // {
  797. // const lli n=(lli)a.size();
  798. // lli cnt=0;
  799. // vis.clear();vis.resize(n,false);
  800. // ans.clear();
  801. // map<string,ulli> st;
  802. // while(cnt<n)
  803. // {
  804. // ii nxt2=getNext2pair(st,a,fl);
  805. // ans.pb(a[nxt2.X]);
  806. // ans.pb(a[nxt2.Y]);
  807. // load2pair(st,{a[nxt2.X],a[nxt2.Y]},fl);
  808. // cnt+=2;
  809. // }
  810. // }
  811. };
  812.  
  813. namespace matching{
  814. // Ref - https://g...content-available-to-author-only...b.com/Ashishgup1/Competitive-Coding/blob/master/Min%20Cost%20Max%20Flow%20-%20Dijkstra.cpp
  815.  
  816. //Works for negative costs, but does not work for negative cycles
  817. //Complexity: O(min(E^2 *V log V, E logV * flow))
  818.  
  819. struct edge
  820. {
  821. int to, flow, cap, cost, rev;
  822. };
  823.  
  824. struct MinCostMaxFlow
  825. {
  826. int nodes;
  827. vector<int> prio, curflow, prevedge, prevnode, q, pot;
  828. vector<bool> inqueue;
  829. vector<vector<edge> > graph;
  830. MinCostMaxFlow() {}
  831.  
  832. MinCostMaxFlow(int n): nodes(n), prio(n, 0), curflow(n, 0),
  833. prevedge(n, 0), prevnode(n, 0), q(n, 0), pot(n, 0), inqueue(n, 0), graph(n) {}
  834.  
  835. void addEdge(int source, int to, int capacity, int cost)
  836. {
  837. edge a = {to, 0, capacity, cost, (int)graph[to].size()};
  838. edge b = {source, 0, 0, -cost, (int)graph[source].size()};
  839. graph[source].push_back(a);
  840. graph[to].push_back(b);
  841. }
  842.  
  843. void bellman_ford(int source, vector<int> &dist)
  844. {
  845. fill(dist.begin(), dist.end(), INT_MAX);
  846. dist[source] = 0;
  847. int qt=0;
  848. q[qt++] = source;
  849. for(int qh=0;(qh-qt)%nodes!=0;qh++)
  850. {
  851. int u = q[qh%nodes];
  852. inqueue[u] = false;
  853. for(auto &e : graph[u])
  854. {
  855. if(e.flow >= e.cap)
  856. continue;
  857. int v = e.to;
  858. int newDist = dist[u] + e.cost;
  859. if(dist[v] > newDist)
  860. {
  861. dist[v] = newDist;
  862. if(!inqueue[v])
  863. {
  864. inqueue[v] = true;
  865. q[qt++ % nodes] = v;
  866. }
  867. }
  868. }
  869. }
  870. }
  871.  
  872. pair<int, int> minCostFlow(int source, int dest, int maxflow)
  873. {
  874. bellman_ford(source, pot);
  875. int flow = 0;
  876. int flow_cost = 0;
  877. while(flow < maxflow)
  878. {
  879. priority_queue<pair<int, int>, vector<pair<int, int> >, greater<pair<int, int> > > q;
  880. q.push({0, source});
  881. fill(prio.begin(), prio.end(), INT_MAX);
  882. prio[source] = 0;
  883. curflow[source] = INT_MAX;
  884. while(!q.empty())
  885. {
  886. int d = q.top().first;
  887. int u = q.top().second;
  888. q.pop();
  889. if(d != prio[u])
  890. continue;
  891. for(int i=0;i<graph[u].size();i++)
  892. {
  893. edge &e=graph[u][i];
  894. int v = e.to;
  895. if(e.flow >= e.cap)
  896. continue;
  897. int newPrio = prio[u] + e.cost + pot[u] - pot[v];
  898. if(prio[v] > newPrio)
  899. {
  900. prio[v] = newPrio;
  901. q.push({newPrio, v});
  902. prevnode[v] = u;
  903. prevedge[v] = i;
  904. curflow[v] = min(curflow[u], e.cap - e.flow);
  905. }
  906. }
  907. }
  908. if(prio[dest] == INT_MAX)
  909. break;
  910. for(int i=0;i<nodes;i++)
  911. pot[i]+=prio[i];
  912. int df = min(curflow[dest], maxflow - flow);
  913. flow += df;
  914. for(int v=dest;v!=source;v=prevnode[v])
  915. {
  916. edge &e = graph[prevnode[v]][prevedge[v]];
  917. e.flow += df;
  918. graph[v][e.rev].flow -= df;
  919. flow_cost += df * e.cost;
  920. }
  921. }
  922. return {flow, flow_cost};
  923. }
  924. };
  925.  
  926. //Problem 1: https://w...content-available-to-author-only...j.com/problems/GREED/
  927. //Solution 1: http://p...content-available-to-author-only...p.fi/ODRk
  928.  
  929. //Problem 2 (Double Cost): https://c...content-available-to-author-only...s.com/contest/277/problem/E
  930. //Solution 2: https://c...content-available-to-author-only...s.com/contest/277/submission/43180845
  931.  
  932. lli arrange(const vui &a,vui &b)
  933. {
  934. const lli n = 3;
  935. MinCostMaxFlow ans(2*n+2);
  936. lli i,j;
  937. repA(i,1,n)
  938. {
  939. ans.addEdge(0,i,1,0);
  940. ans.addEdge(n+i,2*n+1,1,0);
  941. }
  942.  
  943. repA(i,1,n)
  944. repA(j,n+1,2*n)
  945. ans.addEdge(i,j,1,load::bcnt(a[i-1]^b[j-n-1]));
  946.  
  947. lli cost=ans.minCostFlow(0,2*n+1,3).Y;
  948.  
  949. vui c;
  950. repA(i,1,n)
  951. {
  952. for(auto x:ans.graph[i])
  953. if(x.flow>0)
  954. {
  955. c.pb(b[x.to-n-1]);
  956. break;
  957. }
  958. }
  959.  
  960. b.swap(c);
  961. return cost;
  962. // sort(b.begin(),b.end());
  963. // sort(c.begin(),c.end());
  964. // assert(b==c);
  965. // dbg(b,c);
  966. }
  967. };
  968.  
  969. namespace type5{
  970. ulli k;
  971.  
  972. bool chk(vector<vui> a)
  973. {
  974. for(auto v:a)
  975. {
  976. ulli cnt=0;
  977. for(auto x:v)
  978. cnt+=x;
  979. if(cnt!=k)
  980. return false;
  981. }
  982. return true;
  983. }
  984.  
  985. void shuffle(vector<vui> &a)
  986. {
  987. shuffle(a.begin(),a.end(), rng);
  988. for(auto &c:a)
  989. shuffle(c.begin(),c.end(), rng);
  990. const lli n=(lli)a.size();
  991. for(lli i=1;i<n;++i)
  992. matching::arrange(a[i-1],a[i]);
  993. }
  994.  
  995. void loadvector(soln &ans,vui a)
  996. {
  997. soln bst,c;
  998. int cnt=0;
  999. const lli n=(lli)a.size();
  1000.  
  1001. for(int i=0;i<n;++i)
  1002. for(int j=0;j<n;++j)
  1003. {
  1004. if(i==j)
  1005. continue;
  1006. soln c;
  1007. c.setStates(ans);
  1008. load::load(c,{{a[i],rg[1]},{a[j],rg[2]}});
  1009. if((i==0&&j==1)||c.scr()<bst.scr())
  1010. bst.swap(c);
  1011. }
  1012.  
  1013. ans.mergeWithStates(bst);
  1014.  
  1015. ans.prt("sub "+rg[0]+" "+rg[1]);
  1016. ans.prt("sub "+rg[0]+" "+rg[2]);
  1017. ans.prt("add "+rg[0]+" "+rg[1]);
  1018. ans.prt("add "+rg[0]+" "+rg[2]);
  1019. }
  1020.  
  1021. soln runOnce(vector<vui> a)
  1022. {
  1023. soln ans;
  1024.  
  1025. load::load(ans,{{k,rg[0]}});
  1026. for(auto x:a)
  1027. loadvector(ans,x);
  1028.  
  1029. return ans;
  1030. }
  1031.  
  1032. soln solve(vector<vui> a)
  1033. {
  1034. soln ans;
  1035. k=a[0][0]+a[0][1]+a[0][2];
  1036.  
  1037. if(!chk(a))
  1038. return ans;
  1039. graph::solve(a,a,5);
  1040. ans.max(runOnce(a));
  1041.  
  1042. // for(int i=0;i<itn;++i)
  1043. // {
  1044. // ans.max(runOnce(a));
  1045. // shuffle(a);
  1046. // }
  1047.  
  1048. dbg("type5 : ",ans.scr());
  1049. return ans;
  1050. }
  1051. };
  1052.  
  1053. namespace type3{
  1054.  
  1055. bool chk(vector<vui> a)
  1056. {
  1057. const int n=(int)a.size(),bat=8;
  1058. ulli d=0;
  1059. for(int i=0;i<n;++i)
  1060. {
  1061. if(i%bat==0)
  1062. d=a[i][1]-a[i][0];
  1063. if(a[i][1]-a[i][0]!=d||a[i][2]-a[i][1]!=d)
  1064. return false;
  1065. }
  1066. return true;
  1067. }
  1068.  
  1069. void shuffle(vector<vui> &a)
  1070. {
  1071. const int n=(int)a.size(),bat=8;
  1072. vector<vui> b,c;
  1073.  
  1074. for(int i=0;i<n;++i)
  1075. {
  1076. c.pb(a[i]);
  1077. if(i==n-1||(i+1)%bat==0)
  1078. {
  1079. shuffle(c.begin(),c.end(), rng);
  1080. for(auto x:c)
  1081. b.pb(x);
  1082. c.clear();
  1083. }
  1084. }
  1085.  
  1086. a.swap(b);
  1087. }
  1088.  
  1089. soln runOnce(vector<vui> a)
  1090. {
  1091. soln ans;
  1092. const int n=(int)a.size(),bat=8;
  1093. ulli d=0;
  1094. for(int i=0;i<n;i+=2)
  1095. {
  1096. auto x=a[i],y=a[i+1];
  1097. if(i%bat==0)
  1098. {
  1099. d=x[1]-x[0];
  1100. load::load(ans,{{x[0],rg[1]},{d,rg[0]},{y[0],rg[2]}});
  1101. // d,a1,a2,0;
  1102.  
  1103. ans.mov(rgv[3],rg[0]);
  1104. ans.add(rgv[3],rgv[3]); //d,a1,a2,2d
  1105.  
  1106. ans.add(rg[0],rg[1]);
  1107. ans.add(rgv[3],rg[1]);//a1+d,a1,a2,a1+2d
  1108. ans.sub(rg[0],rg[1]);
  1109. ans.sub(rgv[3],rg[1]);//d,a1,a2,2d
  1110.  
  1111. ans.add(rg[0],rg[2]);
  1112. ans.add(rgv[3],rg[2]);//a2+d,a1,a2,a2+2d
  1113. ans.sub(rg[0],rg[2]);
  1114. ans.sub(rgv[3],rg[2]);//d,a1,a2,2d
  1115.  
  1116. ans.rst(rgv[3]);//a1,d,a2,0;
  1117. }
  1118. else
  1119. {
  1120. // *,d,*,0
  1121. load::load(ans,{{x[0],rg[1]},{y[0],rg[2]}});
  1122. // a1,d,a2,0;
  1123.  
  1124. ans.mov(rgv[3],rg[0]);
  1125. ans.add(rgv[3],rgv[3]); //d,a1,a2,2d
  1126.  
  1127. ans.add(rg[0],rg[1]);
  1128. ans.add(rgv[3],rg[1]);//a1+d,a1,a2,a1+2d
  1129. ans.sub(rg[0],rg[1]);
  1130. ans.sub(rgv[3],rg[1]);//d,a1,a2,2d
  1131.  
  1132. ans.add(rg[0],rg[2]);
  1133. ans.add(rgv[3],rg[2]);//a2+d,a1,a2,a2+2d
  1134. ans.sub(rg[0],rg[2]);
  1135. ans.sub(rgv[3],rg[2]);//d,a1,a2,2d
  1136. ans.rst(rgv[3]);//d,a1,a2,0;
  1137. }
  1138. }
  1139.  
  1140. return ans;
  1141. }
  1142.  
  1143. soln solve(vector<vui> a)
  1144. {
  1145. soln ans;
  1146. if(!chk(a))
  1147. return ans;
  1148.  
  1149. for(int i=0;i<itn;++i)
  1150. {
  1151. ans.max(runOnce(a));
  1152. shuffle(a);
  1153. }
  1154.  
  1155. dbg("type3 : ",ans.scr());
  1156. return ans;
  1157. }
  1158. };
  1159.  
  1160. namespace type2{
  1161.  
  1162. lli bcnt(ulli x)
  1163. {
  1164. lli cnt=0;
  1165. while(x)
  1166. {
  1167. if(x&1)
  1168. cnt++;
  1169. x/=2;
  1170. }
  1171. return cnt;
  1172. }
  1173.  
  1174. bool chk(vector<vui> a)
  1175. {
  1176. for(auto x:a)
  1177. {
  1178. if(bcnt(x[0]^x[1])>2||bcnt(x[0]^x[2])>2)
  1179. return false;
  1180. }
  1181. return true;
  1182. }
  1183.  
  1184. void loadvector(soln &ans,vui a)
  1185. {
  1186. ans.rst(rg[0]);ans.rst(rg[1]);ans.rst(rg[2]);
  1187. soln bst;
  1188.  
  1189. for(lli msk=0;msk<4;++msk)
  1190. {
  1191. soln c;
  1192. // c.setStates(ans);
  1193. if(msk&1)
  1194. a[1]^=a[0];
  1195. if(msk&2)
  1196. a[2]^=a[0];
  1197.  
  1198. load::load(c,{{a[0],rg[0]},{a[1],rg[1]},{a[2],rg[2]}});
  1199.  
  1200. if(msk&1)
  1201. {
  1202. a[1]^=a[0];
  1203. c.xr(rg[1],rg[0]);
  1204. }
  1205.  
  1206. if(msk&2)
  1207. {
  1208. a[2]^=a[0];
  1209. c.xr(rg[2],rg[0]);
  1210. }
  1211.  
  1212. if(msk)
  1213. bst.max(c);
  1214. else
  1215. bst.swap(c);
  1216. }
  1217.  
  1218. ans.mergeWithStates(bst);
  1219. // dbg(a,ans.getStates());
  1220. }
  1221.  
  1222. soln runSorted(vector<vui> a)
  1223. {
  1224. for(auto &x:a)
  1225. {
  1226. if((x[1]^x[0])<(x[2]^x[0]))
  1227. swap(x[1],x[0]);
  1228. }
  1229.  
  1230. sort(a.begin(),a.end(),[&](const vui &a,const vui &b){
  1231. ii x={a[1]^a[0],a[2]^a[0]};
  1232. ii y={b[1]^b[0],b[2]^b[0]};
  1233. return x<y;
  1234. });
  1235.  
  1236. string s=rg[1];
  1237.  
  1238. soln ans;
  1239. ans.inc(s);
  1240.  
  1241. for(auto x:a)
  1242. {
  1243. while(ans.bt(s)&&(ans.bt(s)&(x[1]^x[0]))==0)
  1244. ans.add(s,s);
  1245.  
  1246. load::load(ans,{{x[0],rg[0]},{x[1]^x[0],rg[1]},{x[2]^x[0],rg[2]}});
  1247. ans.xr(rg[2],rg[0]);
  1248. ans.xr(rg[1],rg[0]);
  1249.  
  1250. ans.xr(rg[2],rg[0]);
  1251. ans.xr(rg[1],rg[0]);
  1252. }
  1253.  
  1254. dbg("type2sp : ",ans.scr());
  1255. return ans;
  1256. }
  1257.  
  1258. soln runOnce(vector<vui> a)
  1259. {
  1260. soln ans;
  1261. for(auto x:a)
  1262. loadvector(ans,x);
  1263. return ans;
  1264. }
  1265.  
  1266. soln solve(vector<vui> a)
  1267. {
  1268. soln ans;
  1269. ans.max(runSorted(a));
  1270. graph::solve(a,a,2);
  1271. ans.max(runOnce(a));
  1272. dbg("type2 : ",ans.scr());
  1273. return ans;
  1274. }
  1275. };
  1276.  
  1277. namespace type1{
  1278. void load(soln &ans,vui a)
  1279. {
  1280. // dbg(a);
  1281. load::load(ans,{{a[0],rg[0]},{a[1],rg[1]},{a[2],rg[2]}});
  1282. }
  1283.  
  1284. soln runOnce(vector<vui> a)
  1285. {
  1286. soln ans;
  1287. for(auto x:a)
  1288. load(ans,x);
  1289. return ans;
  1290. }
  1291.  
  1292. void shuffle(vector<vui> &a)
  1293. {
  1294. shuffle(a.begin(),a.end(), rng);
  1295. for(auto &c:a)
  1296. shuffle(c.begin(),c.end(), rng);
  1297. const lli n=(lli)a.size();
  1298. for(lli i=1;i<n;++i)
  1299. matching::arrange(a[i-1],a[i]);
  1300. }
  1301.  
  1302. soln solve(vector<vui> a)
  1303. {
  1304. soln ans;
  1305. graph::solve(a,a,1);
  1306. ans.max(runOnce(a));
  1307. dbg("type1 : ",ans.scr());
  1308. return ans;
  1309. }
  1310. };
  1311.  
  1312. namespace solve{
  1313.  
  1314. soln solve(vector<vui> a)
  1315. {
  1316. soln ans;
  1317. ans.max(type1::solve(a));
  1318. ans.max(type5::solve(a));
  1319. ans.max(type2::solve(a));
  1320. ans.max(type3::solve(a));
  1321. return ans;
  1322. }
  1323. };
  1324.  
  1325. namespace complete{
  1326. void run()
  1327. {
  1328. const lli n=64;
  1329. lli scr=0,cnt=0,scrv=0;
  1330.  
  1331. //cnt=solve::solve(testcase::test1()).scr();scr+=cnt;
  1332. //dbg(" TC 1 Score : ", cnt, cnt/n);
  1333.  
  1334. //cnt=solve::solve(testcase::test2()).scr();scr+=cnt;scrv+=cnt;
  1335. //dbg(" TC 2 Score : ", cnt, cnt/n);
  1336.  
  1337. //cnt=solve::solve(testcase::test3()).scr();scr+=cnt;scrv+=cnt;
  1338. //dbg(" TC 3 Score : ", cnt, cnt/n);
  1339.  
  1340. for(int i = 0; i < 100; ++i){
  1341. cnt=solve::solve(testcase::test4()).scr();scr+=cnt;
  1342. dbg(" TC 4 Score : ", cnt, cnt/n);
  1343. }
  1344.  
  1345. //cnt=solve::solve(testcase::test5()).scr();scr+=cnt;scrv+=cnt;
  1346. //dbg(" TC 5 Score : ", cnt, cnt/n);
  1347.  
  1348. //dbg(scr,3*scr/5,scrv);
  1349. }
  1350. };
  1351.  
  1352. int main(void) {
  1353. ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
  1354. // freopen("txt.in", "r", stdin);
  1355. // freopen("txt.out", "w", stdout);
  1356. // cout<<std::fixed<<std::setprecision(35);
  1357.  
  1358. lli n;
  1359. ulli x,y,z;
  1360. vector<vui> a;
  1361.  
  1362. #ifdef ARYANC403
  1363.  
  1364. if(false)
  1365. {
  1366. complete::run();
  1367. dbg(seed,seedtgen);
  1368. return 0;
  1369. }
  1370.  
  1371. {
  1372. for(int i = 0; i < 100; ++i)
  1373. testcase::printtc(4);
  1374. return 0;
  1375. }
  1376.  
  1377. a=testcase::test1();
  1378. n=(lli)a.size();
  1379. #else
  1380. cin>>n;
  1381. a.clear();a.reserve(n);
  1382. for(int i=0;i<n;++i)
  1383. {
  1384. cin>>x>>y>>z;
  1385. a.pb({x,y,z});
  1386. }
  1387. #endif
  1388.  
  1389. soln ans;
  1390. ans.max(solve::solve(a));
  1391. // ans.max(type5::solve(a));
  1392.  
  1393. #ifdef ARYANC403
  1394. dbg(ans.scr()/n,ans.scr());
  1395. dbg(seed,seedtgen);
  1396. // printans(ans);
  1397. #else
  1398. printans(ans);
  1399. #endif
  1400.  
  1401. aryanc403();
  1402. return 0;
  1403. }
  1404.  
Runtime error #stdin #stdout #stderr 0.05s 4280KB
stdin
Standard input is empty
stdout
64
10321801297091125087 12360671633854998373 579140556364709892
579140556364709892 579140555676300028 579140554332831752
579140554332831752 579140555021241616 10249039734522793240
10249039734522793240 8210169397624177930 6171299060725562620
6171299062885629438 6171299059162379760 4132428722263764450
4132428722263764450 12332808444968118492 12332808446786612698
12332808446786612698 12332808446247503880 12332808446096246784
12332808446096246784 6171299059178016768 9789672259786752
9789672259786752 606798372740995072 1203949462402375680
1203949462402375680 936410539381561900 1533561629042942508
1533561629042942508 1533561628438569516 649586976374200320
649586976374200320 92968285418773036 92968282906532952
92968282906532952 92968284777124952 92968282994397740
92968282994397740 17890125382754124332 17890125382770905644
17890125382770905644 17890125379566461484 17890125378823913472
17890125378823913472 17624413000532163116 17624412999441639980
17624412999441639980 16974826025491814956 16325963973302077996
16325963973302077996 16325963974392601132 16141316388579887660
16141316388579887660 16141316389947301888 16141316388579893248
16141316388579893248 362460880044032 649224511979257856
649224514906810924 914936894289084416 914936897216637484
914936897216637484 914936895849223256 293440137331523592
293440137331523592 293440138698937820 18356309618931461040
18356309618931461040 18446744072358915004 383874592126391784
383874590758977576 383874592126391804 667963830898191324
667963830898191324 667963830898191356 961483304656104444
961483304656104444 17391047636408074240 17391047639335627308
17296109586280802860 16912234992803774464 16718509805722927104
17002599044477948932 17002599043127312384 17002599046054865452
17002599046054865452 17002599044704228904 17002599043336815144
17002599043336815144 17002599046281145892 17002599043471590872
17002599043471590872 17002599044822227420 17002599045744142316
17002599045744142316 17002599045467251692 17002599046817888240
17386473640294916636 17386473638927502408 17386473641855055476
17386473641855055476 17002599048378027080 17002599051305580148
94938158926815780 288936434550212616 288936437342988844
288936437342988844 672811030820017240 95219906198159368
95219906198159368 95219909125712436 383874593753918012
574173668242876988 574173665315323920 95079165640136156
95079165640136156 95079164549611544 479094701261761060
479094701261761060 479094602477513252 95079065765363736
95079065765363736 95079069037193820 90505100321106500
90505100321106500 90505097049538560 90505098140063172
90505098140063172 90505099230587784 90505100321374540
664678768564251528 18442170007644280260 18442170010848722936
18442170010848722936 18356238970183734384 18356238972365045372
18356238972365045372 18356238970183734004 483668569012028096
483668569012028096 483668571193338184 483668569079682256
483668572283862408 483668569079682312 388589402693036416
388589402693036416 388589401602512192 388589403783560640
388589403783560640 867684105456728704 483668570170206536
483668570170206536 4573868497038472 4573867490159744
4573867490159744 18352098143862506312 18352098147134078984
18352098147134078984 18442194328937311368 384472894544042256
384472894544042256 384472892430644632 384472894544038160
384472894544038160 384472892379775248 389022637152019592
389022637152019592 389022637168257016 389022638275549992
393572383015319632 90072062357942288 90072062374187912
90072062374187912 90072062391492536 90072062407736512
90072062407736512 68735721536 18266600157400255816
18266600161628119032 18266600161611873408 72947339128
72947339128 72997141632 68802827264
180143916274665208 175594171435315960 175594171451045624
175594171451045624 175594167526240256 175594167442889728
64
1051794724398328853 16710273702093274382 16715102827140235023
16715102827140235023 16715102824728023131 13926837728713417044
13926837728713417044 19158029656686672 19158028242796547
19158029656686672 19158029730992457 4493567844021096795
4493567844021096795 4493567843884646746 18446744073584902407
18446744073584902407 18446744071967019174 13953176227957723219
13953176227957723219 13953176229575606452 13953176227564245010
13953176227564245010 16650453847546437747 16650453849164320980
16650453849760182485 16650453846534135877 18355756597867200650
18355756597867200650 18355756597732982784 18428729535479345253
18428729535479345253 11660413131537191075 2419026547862278177
6435106934853009542 6435106935933886662 10451187322924618027
10451187325206393327 10451187324267200906 17255532804669760080
17255532804669760080 2824869126675161152 2824869126667763712
2824869126667763712 441880533358608384 6362464947036553350
8068198723165741254 8068198723173081286 2860907080564400192
2860907080564400192 2860907084182782086 8781491490618662976
8781491490618662976 8781491494235005126 2346384566353985670
2346384566354043078 2346384566361440518 2346384566227042310
2346384566227042310 2346384566898327424 2346384563528531718
2346384564199816832 16777048252924436032 16777048253624164038
16777048253624164038 16777048253626318534 16777048251464540352
16777048251464540352 16777048252926378624 16777048251476017280
16777048251476017280 16777048252945252992 16777048255756230592
16777048255756230592 9972702777515515328 3168357299274800064
9222778495323265984 9222778493854030272 2418433018551786432
16849096702990932928 18446150540770073536 4015486856326683584
1597053839248327168 1597053839248376320 1597053837779140608
1597053837779140608 6804345478240715264 6804345478246957568
6804345478246957568 2788265088974504448 17218928756231635456
17218928756231635456 17218928756225344000 5649172173820133888
5649172173820133888 4421356864932201472 2038371550159175680
2038371550159175680 13680770144152534016 13680770145502787584
13680770142683938816 16408372522333406208 4765973929682830336
4765973929682830336 13608128142378156544 13608128142377551872
13608128142377551872 6803782662661358592 13680770144026116608
13680770144026116608 13680770142676467712 6876424664309923328
6876424664309923328 6876424665646988288 18446180705549254144
18446180984957042176 18446180984711626240 18446180986052885504
18446180984711626240 13680769870733377024 2111013830831111168
2111013829494046208 15792346789225348608 11026935675247099392
11026935675247099392 11026935672056365056 15792346786034614272
15792346786034614272 1804117712849338368 1804117712850485760
1804117712850485760 1804117711746252800 1804117713079091712
1804117713079091712 3915694084464117248 3915694085515789312
3915694085515789312 3915694087305840128 3915694086201607168
3915694087305840128 2310346617444647424 9437696
1104232960 2111576371385025536 2111576369170350080
2111576369170350080 2111576370274583040 4223152741234983936
4223152741234983936 4078434985689038848 17759767948730991104
17759767948730991104 12994321514775609344 12994321514233856000
12994321514233856000 7541934278587696128 7541934276596465664
7541934276596465664 578801629791256576 5452440153688622080
5452440153688622080 4729575681254753280 1388711898526532096
1388711898526532096 1388711900849143296 1388711901033693184
1388711901033693184 1388711902006264832 1388711902023042560
1388711902023042560 1388711901040035840 2613851618761329152
2613851618761329152 68904026624 68745775104
68745775104 1225139717570295808 1225139717563039744
1225139717555783680 1225139717733077504 1225139717725821440
1225139717725821440 1225139717541271552 1225139717718497792
1225139717718497792 18446744073706756096 18446744073522207232
18446744073706756608 18446744073522206720 17221604356170013184
17221604356170013184 306249172896715264 1837638063330173952
64
9880593537221403142 9880593534532715908 9880593536749878759
17248482535717944807 17248482532400825472 17248482535139844866
17248482535139844866 16671986254061117698 16671986255705861915
16671986255705861915 8426013896770322688 8426013900658442367
8426013900658442367 7813488256024051710 7237027503447998334
7237027503447998334 6948794928202444058 8245972358528691610
8245972358528691610 0 909447782
909447782 8245972359438139390 8245972358935539225
7633446710915629054 18446743523953737727 18446743523451137562
18446743523451137562 18446743520229859850 17834217872712549845
17834217872712549845 17834217871570371009 17834217879087279579
17834217879087279579 17834217878611942710 556809968887
17834217878618234359 17834217879726194687 17221691127831200192
17221691127831200192 17221691131650830619 17221691131175493750
17221691131175493750 17221691127400562786 17221691127920599118
17221691131635355413 17221691127920599118 9732505861021945621
9732505861021945621 9732505861066645084 17365951463925411235
17365951463959490535 468267656592101363 31263861561233219
31263861561233219 17865481186716610391 7025720971814240260
7025720971814240260 7025720971814240256 14627902713111773188
14627902713111773188 14627902713111773184 3783340380699754504
11385522121997287440 11385522122517323772 11385522122517323764
11385522122517323764 3783340381219790828 9043615131912577004
9043615131912576984 16645796873210109920 16645796873210109940
16645796873210109940 16645796873210109960 16645796873210109980
16645796873210109980 16645796873730146360 16610295893832122452
16610295893832122452 8286834455541276780 8286834455541276784
8286834455541276784 613650754967732396 11315082993455833232
11315082993002905772 541522619866898544 541522620353306748
17870916606817689696 18267585234927050876 18267585234373386300
18267585233853349888 18267585238148317156 18267585238148317180
18267585233853349912 18267585238148317180 7494024865012309952
7494024865012309952 7494024864492273568 18267585237594652576
18411841163158863804 598069347336096 36099049245360004
36099049245360004 36099048725323652 36099048725323624
598068827299716 598065606033440 18411841159417561148
18411841159417561148 18376340179519537240 18376340179519537212
18376340179519537212 18375742110692237468 18375742109618536700
18375742109618536700 18446709023555149820 18446709022481449112
18446709023555149820 18446709023555149668 18446709026776400088
18411806115705684120 18446709026776408060 563021894156440
563021894156440 3221258392 3221266588
3221266588 18411841159417577248 18411841159417569056
18411841160491269988 18411841163712520408 1073692956
1073692956 81920 4294885372
4294885372 2147491488 18411841161565134496
18411841159417561088 18411841161564954972 18411841163712528380
18411841163712528380 2147393884 4294967292
4294967292 18446146005955944796 18446146003808723264
18411243093811700032 18411243095959273440 18411243093811879552
18411243093811879552 18411243098106329792 18411243093811880640
18411243093811880640 18375742113914373760 18375742113914201408
18375742113914201408 18410645026057748448 18446709026776154080
18411208049025867648 18376305136881623968 18376305139028853760
18376305139028853760 18376305139028844416 18376305139028835072
18376305139028835072 1125906349013760 1125908496234208
1125908496777184 1125906349030368 527838595487456
527838595487456 527834300809216 34832678691509984
34832678691509984 35430746445052896 35430746445028096
35430746445028096 35430748592485888 35430748592283648
35430748592283648 35430744298111200 35430744298094592
35430744298094592 35430744297857248 1125766762594304
1125764615110656 597999033778176 598001180999680
598001180999680 597996886794016 597996886556672
64
9145064789376893233 9145064790044248741 7676526681640733348
7676526681640733348 7676526684374298352 7676526682532605216
7676526682532605216 7676526684542071024 2320442176618230560
14458049674609408 14458051684075216 5385000607407278032
5385000607407278032 5385000608749523596 7705425185209714640
7705425185209714640 7710144952692307924 7710144952025020052
7710144952025020052 7710144948397408256 15386689250279356052
15386689250279356052 10001688641253932032 10001688637492102804
10001688637492102804 9982545796060479488 12307690131670634496
12307690131670634496 12307690131133233812 17692690740154393896
17692690740154393896 17692690739616993212 4650265703355959956
4650265703355959956 4650265703355964052 4650265700152696764
4650265700152696764 4650265699611051308 2325121361301086144
2325121361301086144 102826349300416 2325247164659265580
2325247167863716604 85215358683864 85215887566188
85215887566188 85215358683864 85212705458832
85212705458832 85213818318772 2325229549475058904
2325229549878238940 2325314764682616612 2325314767335841644
2325314767335841644 2325314766899365228 2325314765825572940
2325314765825572940 2325371389071648032 2325371389105464612
2325371392284950524 2325371392251133944 2325371388485048980
2325371388485048980 2325371392251133948 2325371391722251624
2325371391722251624 85215917237612 85216412303356
85216412303356 85216412303360 85212184969212
16121543114350657528 16121619543788617720 16121317160911110136
18446603332454973436 2325003597089203564 18446461499254891880
18446461499254891880 2325003600889105116 67242636
3867144192 2325286179210909044 2325286175981441028
2325286176476506772 282578850548368 2325568754194313220
2325568754194313220 4650854925738177912 16121743087994142716
16121743083699176816 16121599734870704144 16121317160382365696
16121317160382367092 16121317160382365712 16121317164182267264
16121317164182267264 16121317164182267292 16121740476158961052
282574983405328 16121740476158961052 16121457901670621324
16121457901670621324 16121457898365786624 16121457898365786768
16121457898860852512 16121457898290155520 16121881210761915024
16122303423377980048 13797017251834115356 18445335186997510044
18445335186997510044 18445477023502427404 282574488338432
282574488338432 423312471759504 16122866788877728496
16122866788877728496 13798989504045905376 11475112219214082272
11475112219214082272 11475112219214084848 4647754569663643648
4647754569663643648 11475112219214084848 16122866788877728496
16122866788877728496 11474971481230663776 13798848766062486896
13798848766062486896 9150953458415422176 9150953459405552368
9150953459405552368 6827076243293207280 6827076242798140240
6827076242798140240 4503198957471250080 11474971549950137920
11474971549950137920 11474971549379432960 11474971549455072176
2323877353551298560 11619527231357076560 16122866720158253024
16122866720158253024 16122866716358352768 6827216836237878224
6827216836237878224 2323877359515740032 2323877360162079568
2323877359515740032 2323877359918671824 6827216835834946432
6827216835834946432 9151094194671347664 9151094195182340016
9151094195182340016 9151094193018373136 9151094194008508512
9151094194008508512 9151094194931528864 9151094195804208352
9151094195804208352 9151094194881188000 18302188388403150048
18302188388403150048 18302188389492850672 18302188385264998400
18302188385264998400 144414949866497248 144414950956197888
144414950956197888 144555688444554464 144555685306402816
144555685306402816 144555688444554464 16411661082440206336
16411661082440206336 16411661083529908224 4503515945283315712
4503515945283315712 4503515946358140928 18446743996400138240
18446743996400138240 18446743992172284704 18446744072634727200
18446744072634727200 18446744069414587168 18446743914795761664
18446743914795761664 18446743918015901696 288829896609718272
64
9740332610616741252 9740332610597603460 6512520738416529777
6512520738416529777 6512520737340424545 5791645661078913377
5791645661078913377 5791645661629598181 2932806615124967065
2932806615124967065 2932806615124967064 2932806611587006823
2932806611587006823 8715431869399676799 8715431868848991995
8715431868848991995 8715431866188974209 9020403077026053
9020403077026053 9020404635936377 9020404085251573
5796817760127831280 5796817763329981419 2927634504851393687
2918614102316680212 8706411463111948156 8706411463112079229
8706411463112079229 17412822926224027385 17412822923572430976
17412822927316713468 11625025569639053178 11625025570181185530
2918614107069237374 15577560823101128700 15577560819348424830
15577560823101128700 15577560819357370496 15577560819899633922
11600707562500269694 11600707560942407938 11600707560942407936
11600707560942407936 17942339922755925884 8706411463111948156
8706411463111948156 8706411460452454654 8706411462087928448
8706411462087928448 8706411460452454654 18001841091904264702
18001841090273640568 613336171653572342 18001838685048569716
18001838685048569716 8129947305919906928 8129947305463414792
16692243577238258816 6927310352271344768 17869997309295535750
17869997309295535750 17869997309274891782 6927310352250700800
6927310352250700800 6927310356004682620 6927310353886174594
6927310353886174594 16811758155762930942 16811758155221945466
16811758155221945466 16811758154752640892 16811758155855501958
16811758155855501958 16811758156363325438 16820906093106421758
16820906093106421758 18446744043641634814 18446744041082658058
18446744041082658058 9884447767231871510 9884447767500618486
9884447767500618486 18446744042530010604 7504057117729748460
7504057117729748460 5198002795512656096 5198002793017245698
5198002795622756580 12702059914464129250 15592882484945817372
15592882484945817372 17973273165896228410 17973273165451039014
17973273165451039014 15592908873856716834 15592908873874018338
15592908873874018338 15592908873873494050 8014515397372678178
8014515397372678178 7578393476500815872 8011902328325804066
8011902328325804066 8011902326385156164 16066353390801191172
16066353390801191172 15634894658684989030 15198772736123404036
15198772735872478822 15198772732903358724 15198772736409939814
15198772732365897732 15198772736409939814 13631212823271165862
13631212823271165862 290845647773568802 290845648024494016
290845648024494016 34819968 2890989790
776097660 2958401310 18301467802130861948
18301467802130861948 18301467804007125090 18301467802229956924
18301467802160070940 7909174793117479546 7909174791775301722
7909174791775301722 18301467800817893116 18301467800920124604
18301467800920124604 18301467798270382434 10537569283818908860
10537569283818908860 10537569281032323104 10392293007603793920
10392293007603793920 10392293008814379362 10392293010127196292
10392293010127196292 18301467799583199364 0
0 10247016736561823522 10247016736103075528
10247016737379713002 817889480 10101740462708101102
10101740462708101102 10101740462894219262 272629830
272629830 10247016736834453352 10247016739543973886
10247016739543973886 10101740458599251966 18446744069414584320
18446744069414584320 18446744072396734688 10101740461581402336
1902013124433674240 10101740461581402336 10101740462894219262
10101740462894219262 0 10247016738231156958
10247016738231156958 10247016738231156960 10247016743838941182
10247016740856790818 1902013130041458464 1902013128728641536
1902013128728641536 1902013128728641538 10687597940903510236
10687597940903510236 10687597940903510234 1756807230725816100
1756807230725816100 1756807229412999172 1756807232395149534
1756807232395149534 10101810843210481888 10101810841897664958
10101810841897664958 10101810843755741536 10101810844317778430
70383092892606 70385039048190 70383726231260
64
13087004489671125477 5619046023976627434 360921298550923328
18259560649824183631 18259560646598231050 16744556722649588421
16744556722649588421 17292661445085879734 17292661443210983266
17292661443210983266 17292661445359515515 17292661445900613503
17292661445900613503 17292661445107393371 187183419313094656
18085822770586354959 16744556727234986251 16196452004798694938
16196452004798694938 16159013320080261130 16159013323024172313
1739766767901835286 18259560647701407870 1154082623258165268
1154082623249711108 1154082624600767221 1342187616
1342187616 2693243729 2684387585
2684387585 16557373304691338617 16557373304437057648
16557373304437057648 3306749527407865203 3477000805079811333
3477000805079811333 3477000803770793988 70674232213504
70674232213504 70677198743670 70676108093558
70676108093558 70676653385846 70386469339136
70386469339136 2135593118030954496 2135593116940369920
2135593116940369920 1550155969432944640 585929986959998976
585929986959998976 586000373429338112 422452983234560
422452983234560 422453528526848 2135663502864416768
2135663502864416768 2135663506614091776 2135663507159318528
585577920446070784 32768 2135522731561615360
2135522731561615360 2135522731016323072 4271045462577938432
4271045462032646144 4271045462577938432 1801655458851749888
1801655458851749888 1801655459942334464 72127963872690176
72127963872690176 657565147853651968 657565148398944256
657565148398944256 657565146217775104 657565145194561536
657565145194561536 71987223725244416 71987220998815744
71987220998815744 71987223179984896 45922870546792448
45922870546792448 45922869934129152 45922872115298304
45922872115298304 45922868432994304 2109528759466950656
2109528759466950656 2109528757285781504 2154954554087538688
2154954554087538688 2154954552519032832 2154954551838998528
2154954551838998528 2154954550337863680 2154954554020167680
2154954554020167680 2154954550337863680 2154954550405234688
2154954550405234688 2154954550337863680 4218560441371820032
4218560441371820032 4218560437756887040 4218560438302179328
4218560438302179328 6282166329336135680 1972257224365473792
1972257224365473792 1972257228047810560 575822898120818688
1972257228047810560 4035863119081766912 4035863118469660672
4035863118469660672 1789559908215259136 1789559908827889664
1789559908827889664 1789559911277363200 1789559908207689728
1789559908207689728 7889028919548149760 10135332129802551296
10135332132260642816 10135332129190969344 334861348410228736
334861348410228736 16462395786260873216 14216092576006471680
14216092577232289792 16563034235875590144 16563034232193810432
16563034232193810432 7262532412427730944 5016229202173329408
4938532070036307968 2692228859781906432 8060871582651744256
8060871581425434624 8060871582650728448 8060871579582038016
17284806573754384384 9301627720898183168 1318448868041981952
1318448868041981952 9301627722123476992 9301627721516351488
9301627721516351488 9301627721515794432 9301627720897134592
9301627720897134592 17284806573753892864 17284806573754384384
17284806573754384384 16346807848275017728 17211623079809122304
17211623079809122304 17211623075515760640 17211623075516317696
17211623075516317696 17211623079809679360 17211623079809155072
17211623079809155072 17211623079810072576 17211623075515793408
17211623075515793408 17211623075515727872 864815227240185856
73183493944836096 9447996618824417280 10239626445154287616
10239626445154287616 864814273757446144 864814273759412224
864814273759412224 864814273759674368 1802812994944696320
1802812994944630784 1802812994944368640 10889306829257572352
10889306829257572352 361432415765266432 361432415769264128
10312810892583829504 10312810892579831808 937998721184956416
1875997442369978368 1875997442373844992 1660862212689690624
64
12249113038165558780 12393835788029064701 9462958589744149829
9462958588369567744 13709226553169916276 13709226554544498361
13709226554544498361 13709226555870001149 4044747724
4044747724 4045781967 4294295551
4294295551 4737517522135271427 4737517522136977415
4737517522136977415 4737517522138683403 9475035039979659279
9475035039979659279 13798737797493678095 13498631974205644813
365973171154976769 18320922467199476076 18320922465607614463
18320922465607475212 13709226551575437324 14045642735459761823
14045642735459761823 18369327385397952191 18032911201513627692
18032911203105489305 18032629521953440009 18369045705837764508
18369045703134658828 18369045701563785313 4659819702447898314
4659819702447898314 274882215944 277585321627
277585321627 274882215945 274882199552
274882199552 13420942677317369897 18110327889833746879
18110327889833746879 18110327889840153064 18110327889837973953
13084526493445792234 18434886697637880318 18434886697639993855
18434886697639993855 18434886699238261653 18098470515360343339
18098470515360343339 18104100016001869247 18104100017661649790
18104100015024299197 18104100017661649790 955274692408599999
955274692408599999 955274691858293760 955274693518074561
955274693518074561 955274690750996161 955274690262211265
955274690262211265 15199395004297524610 15199395004297523011
15199395004297523011 11465284487932286787 11465284487932293636
11465284487932293636 16122288527365913285 1878168213330599940
1878168213330599940 3009145282618210820 3009145282618217476
3009145282618217476 3009145282618217669 108088250777735361
108088250777735554 108088250777731200 3734110516365230273
3734110516365230273 108088250777731265 108088250777737728
108088250777731072 108088250777731265 3626022265587499008
3626022265587499008 3626022265587499201 3626022265587505664
3626022265587505664 3626022265587505857 3626022265587506050
18338655822931827393 14604545306566597120 14604545306566596927
14604545306566596927 10401921546892352193 10401921546892351807
10401921546892351935 10401921546892345473 10401921551187312576
10401921551187312576 10401921546892345599 10401921551187312639
10401921546892345536 10401921551187312639 15420131601480155135
15420131601480155135 15420131597185188097 15420131597185187843
1176011283149881601 1176011283149881794 1176011283149881602
1176011287444848447 1176011283149881344 15888644836199235777
15888644836199235777 15888644836199236035 15888644840494202878
15888644840494202879 17270732786264703426 17270732790559670271
17270732790559670271 14244120314035306754 14244120314035306496
14244120314035306496 14244120314035306754 17870142579622805762
3626022265587499008 3626022265587499266 17870142579622805504
17870142579622805504 14136032063257575424 10401921546892345344
10401921546892345344 6199297787218100482 9933408303583330562
9933408303583330562 9933408303583330306 9933408307878297344
9933408307878297344 13667518828538494462 13667518828538494204
13667518828538494204 17401629349198691322 17401629349198692350
17401629349198692350 13090917338746716158 9524064569853476864
9524064569853476864 13258175090513673982 13258456565490384894
13258456565490384894 13258456565490384636 13258456565490384638
13258456565490384638 13258456565490384894 298436335138504704
298436335138504706 4032546855798701820 4032546855798701818
4032546855798701816 4032546855798701558 9519270699156372984
9519270699156372984 298436335138504440 9524346044830187512
9524346044830187512 298436335138504440 298436335138504446
298436335138504446 298436335138504192 298436335138504198
298436335138504192 4330983156577467910 13551817520595336198
13551817520595336192 13551817520595336198 17584364342034299916
17584364342034299916 12972678323606912004 3747050071712071684
3747050071712071684 3747050071712071682 18161247323982659580
18161247323982659580 4907866142820793858 4907866142820793862
64
12772520463155886426 12772520463076172122 12772520464505438475
12772520464505438475 12772520463076172122 17672476488036720991
17672476488036720991 17861205461280203615 17861187869094159199
17861187869094159199 10394348656261070848 10394348660486808415
17861187869094159199 10394348656261070848 10394348660486808415
10394348660486808415 17861187873319896766 17861187873250673182
17861187873250673182 17861187886274028383 17861187882048290816
17861187882048290816 17861187877614870205 17861187873458356224
7466839200017416192 7466839204173930173 7466839212902318079
7466839212902318079 7466839212833088351 10979904865309883874
10979904865309883874 18446744068930033823 7466839207845887516
7466839207845887516 7466839207707428060 18446744068653121052
18446744068653121052 18446744068653080092 18446744065742674140
18446744065742674140 18446744067127235484 18446744065743077632
18446744068652664768 622641792 484182336
10979904861429875328 10979904863095588800 10979904861711027456
10979904861711027456 7466839206873499712 5792854400
5792854400 7466839216268357760 7466839214611035584
7466839214611035584 7466839229645520320 7466839228603266944
7466839222923738304 10979904847790995840 18446744056427706816
18446744055043145472 18446744052404353600 10979904847049655168
10979904847049655168 18446744052404353600 25331580288
21644474944 25501204416 10979904887350691328
10979904887350691328 10979904890603405248 7466839179316248064
7466839179316248064 18446744069145984960 18446744065119617024
18446744065119617024 18446744068372330944 18446744060556050368
18446744060556050368 18446744057303336448 10979904877718503360
15869016448 14767980608 13960740928
13960740928 8589934656 7466839219374160320
7466839219374160320 7466839217197285440 18446744072574930112
18446744072574930112 18446744071465503360 18446744073709551552
18446744073709551552 10979904861916660224 18446744043669975296
18446744044779401984 10979904832986510656 18446744031701371008
18446744031701371008 18446744031625798144 10979904848863824000
10979904848863824000 10979904851107872192 18446744062900763520
18446744062900763520 18446744061959271168 18446744072768059264
18446744072768059264 45361655552 91664803456
91664803456 90362247488 136631812032
136631812032 136136397504 135867699712
135867699712 89564551808 88623059456
88623059456 87681567104 7466839051610128896
7466839053854177152 7466839053988269824 7466839050635049088
7466839050635049088 14933678015505099136 14933678016706649600
14933678016706649600 9808863081374158336 9808863123122289024
9808863124323831296 9808863123122289024 9808863081374158336
9808863081375997440 9808863127679145344 14933678063011636608
14933678097371641216 14933678051068493312 14933678004765345408
1611748866388285056 1611748820085137152 1611748820086976256
1611748820086976256 6736563755419467520 6736563755419725568
6736563755411334656 43756054016 43757893120
43886710656 34361311232 47116347008
47116347008 42950197248 13321929181198440064
13321929224152315520 47115822720 42953875584
42953875584 77317816576 111681757568
111681757568 111673368704 115843721088
115843721088 115856361728 47111618560
47111618560 47240436096 94356258816
94356258816 72881405952 72761010048
72761010048 18446744064986596864 18446744000707749760
18446744000707749760 18446743919223784960 68732190720
68732190720 218948346240 219000882688
219000882688 218893182848 369109338368
377785798400 515360288640 515273763200
515273763200 515324226944 524108386816
64
18133386265181112425 17625253140112271825 4462911752081196614
4462911752081196614 4098894227677708352 4098894226402574400
4098894226402574400 4098894228269767283 12510081942658888870
12510081942658888870 12510081940791695987 12672563648393117695
12672563648393117695 12672563647086547566 7244034642934031820
7244034642934031820 4936916200228693248 4936916201535263377
4936916201535263377 15464085364241203089 15464085360484548608
15464085360484548608 4647825866120757248 7052897646656049775
7052897646656049775 7052897644206489678 4070238934738141151
4070238934738141151 17214749042907021312 14033517711048835072
14033517711048835072 14033517709367878911 14033517711049705982
1466596459338708513 1466596461016692479 1466596458407830783
1466596458407830783 108306386940414462 108306384654434558
108306384654434558 108306384654434334 1466596457803677502
1466596457803677278 2824886530952920446 17237073979047149054
451334275463816990 451334272850676798 16961985842043768030
16961985842043768030 16998096134989675742 16998096132376535550
16871627979086108156 16871627978008611326 238977842988159774
238977842988159774 184730095950940732 184730095346610458
184730095346610458 184730098564080924 184730097486668800
184730097486668800 184730095339456512 184730097952559840
184730095805347552 184730097953102560 4504701752138464
4504701752138464 4504702217523648 16817870737393297184
16817870736927912000 16817870734780280896 15319970252151346240
15319970252151346240 18302479174276576992 16804728266026996448
16804728266026996448 0 2608943840
2608943840 457535200 16822375434556712384
16822375434556712384 16804728266484531648 16804728264806358176
16803567170863306912 18443172853499894944 14075947862524064
14075947862524064 14075950476761888 16850160096766394528
16850160099380632352 16867807267452813088 1573780098866406176
1573780100540843936 1573780101489024928 1573780098868495392
1573780098868495392 1573780099819690912 1573780099819043616
1573780099822189472 1573780099821542176 127508171365292800
16854098550033881984 16861471875010395136 16854098550033882112
16854098550033882112 16846725223382931200 16843886283818406656
10212266215475328 10212266619313024 10212264944875264
17585591595826176 17585589920741120 17585592135859968
17585590461422208 10212264401967616 16864310814435849600
16864310814435849600 16864310813897797888 16864310812223892608
16864310812223892608 16864310814844954624 16717363283733522432
16717363285407427712 16717363283327702784 136735270054521984
136735270054521984 16717363281653797632 16717363285407427712
16717363285407427712 18439370732686386048 18439370731553817344
18439370731553817344 18439370731553816576 1585272182737227648
1585272184140464000 1722007488825393024 3444014950477745792
3444014950477745792 17289276492248776320 435177943432187392
17159914554086149760 15437907091030560512 1595475624873185024
1595475624873185024 18439370705784012672 18439370740143751040
18439370740143751040 18439370738740514560 18439370735848783872
126531802419429376 1719177327312392064 1719177325909155584
1719177325909155584 1719177325908070656 1719177325773328384
1719177325773328384 1719177325807079552 1845709129629745408
1845709131016163712 1755505200049340672 18163936419545088
18163936419545088 18163937822781568 18163936486850560
18338376206390521728 18338376207472787328 18163937772277888
18163937772277888 18163939175514368 126531806561816960
126531806561816960 126531802419429376 253063604855644160
253063604855644160 126531802436214784 126531803822665856
126531803822665856 126531802436214784 253063603452407680
253063603452407680 90203936851259520 18410169918906417152
18410169918906417152 18410169914628243712 90203935345979776
90203935345979776 18284130696241324800 18284130697644323712
18284130697644323712 18319649322691181824 18319649324111212160
64
5227181164615637048 579312335718715424 579312335735494736
579312335735494736 579312335726843920 579316811082766384
579316811082766384 579316815083129813 579316815083129845
579316815083129845 579316814805305258 579316814528414624
579316814528414624 579316815083125685 10307461635088890805
10307461635088890805 10307461631071748096 1591678779570337573
1591678779570337573 10740441788475062052 10740441788475062051
10740441788475062051 10740441788197237464 1442460723392328336
1442460723392328336 7706302285512396143 7706302288402317311
7706302288402317310 17004283353207144447 6696821718118253642
16136388668775464959 11608336469738913792 11608336469738913793
11608336469738913792 18446744073709551615 18446744069414584320
18446744069414584320 10307461631071748096 18446744069692408906
18446744069692408906 9297981060787684427 18446744056529682431
9297981047624957952 9297981047624957953 9297981047902782537
9297981047902782537 10307461614447528082 10307461613892796416
10307461613892796416 10307461617909939127 9297981051365193582
9297981051365193582 9297981050809544412 9297981050810527453
9297981050810527453 9297981050532702868 9297981047624957952
9297981047624957952 12328974167177018296 12328974167436361713
12328974167445602297 12328974163435799625 12617808240190637129
11608327673645891584 11608327677664934840 723197906244337664
723197906522162249 723197906244337664 1012031983276999753
1012031983276999753 720646489521324040 720646490076973210
720646490076973210 12326422750446992314 12326422750444764088
12326422750444764088 12326422750444895162 5196620860358848224
5196620860358848224 5196620857706973312 5196620857187237906
5196620857187237906 5196620857706973312 18014288455222689774
18014288455222689774 18014288454685652844 18446744073692250094
18446744073692250094 5629076476176533634 5629076475639496704
5629076475639496704 5629076476176533634 5629076475639662592
16077850665930885224 16077850666467756266 16077850665930719336
4760908485258737664 4760908481476952168 4760908482013989098
4760908482013989098 4760908482013823210 4760908482013657322
4760908482013657322 512753768 262144
262144 7129801893037997976 7129801893550751736
7129801893550751736 7129801890281982160 469928000
469928000 1496125712 402915328
402915328 1429113040 1609538040
1609538040 489326800 469928000
469928000 3738697584 469928016
469928016 7129801897802465240 14259603795604930480
14259603795604930480 14259603791526232168 14259603794795001752
14259603792335636544 6406811292674293904 6406811288336334992
6406811288336334992 6406811289319278904 1732074823491160104
1732074823491160104 11316942181228251384 43253800
43253800 1069451512 2095649224
2095649224 3121846936 11316942182427464264
11316942182427464264 7390862000 5234657424
5234657424 11316942180288561256 11316942181228251384
11316942181228251384 11316942182306257400 11316942186601224696
11316942186601224696 4187140297293631944 4187140297345440248
4187140297345440248 4187140297397248552 4187140297345475072
4187140297345475072 4187140298466734888 12039932829505438968
12039932829505438968 12039932828513110064 16660626051431906552
16660626051431906552 16660626050439577648 16660626050473472056
16660626050472292360 11750495112191315136 11750495111266775048
11750495111266775048 13772007647649017896 13772007648606403784
13772007648606403784 13772007648572509376 13482569935640104160
13482569935640104160 13482569934680621056 18392700874845621472
18103263160952684544 13193132220787684128 289437717228421152
289437720563905344 289437719604422240 289437718644939136
14719833440 13760350336 13912427744
13912427744 5254450400 4910130934910550016
64
14582127589619329256 14582127587799939129 18122344131320609017
18122344131320609017 18122344128827893800 12925723146966794240
12925723146966794240 12925723149459509457 12925723148853752501
12925723148853752501 1024851919211855870 6545872843461898029
6545872843461898029 1751905250278903049 1751905252317282370
1751905252317282370 1751905250094284800 1729382295565172736
1729382295565172736 1729382295565041664 11891861812481756425
11891861812481756425 11891861812481625353 9586018734548454665
15963546880427142573 15963546880611760822 15963546880729266111
15963546880729266111 15963546880729659327 10162479517271498916
10162479517271498916 0 184618249
184618249 14085331919442764140 9723919765326908881
9723919761894834304 9723919765835017445 9723919765295615041
9723919765295615041 9723919766185081983 863051510908471360
863051510908471360 863051507510018048 14448403054360947813
14448403054360947813 14448403054006163658 6164138500968891695
6164138500968891695 5800926628712562698 11601993995268987092
11601993995268987092 15963406149384842351 16139053682760019055
16139053682760019055 16139053678819835914 4611967492694596571
250555338578741312 250555338223957157 250555336450169024
250555336804953179 7169087321644939146 11530499475760794405
9223372039044745253 9223372040457247733 16143029920904773668
16143029924473166837 16143029924135454821 9223372037226566580
9223372037226566580 16143029924810878853 16143029925148590037
16143029925148590037 9223372037564277764 2303714149979965491
9223372034726794210 254531583858507778 254531582759946249
254531582759946249 254531585956483092 7428720918517836783
7428720918517836783 218431182126467083 218431178997235712
218431178997235712 254531584907495435 254531585984388059
254531584885957606 18446744073688013787 7174189329343279019
7174189329343279019 2147483648 11272554744366272597
11272554744366272597 11272554744403046655 1073746128
1073746128 1036972070 1040118566
1040118566 4098365413912482768 15370920159330963664
15370920159330963664 15370920159327817168 15370920162555256790
15370920162555256790 15370920158293917824 15370920158297138090
15370920158297138090 15519402662356320254 15519402658091761022
15519402658091761022 15519402658061426774 15519402662292431574
15519402662292431574 15519402662262171222 15519402662231910870
15519402662253411798 15519402662283672150 15519402658188908672
15519402658087049344 1171024001490068480 15519402658096177280
15519402658096177280 15519402658065990486 16104871159410155648
16104871159410155648 16104871159379968854 16104871159375479382
16104871159375479382 16104871163640111830 18446744073679364822
16690251570879807488 16690251570879881984 16690251570879882198
1171024001485504768 1171024005750285270 2927516508549842646
2927516508549842646 2927340307546637826 2927340307576675372
2927340307576675372 2927340311841455874 7611349323190853844
7611349323190853844 5854680619427718268 5854680619487944660
5854680619487944660 5854680619518131454 8782285226337238270
8782285226337238270 4098276219222581204 4098276219222573780
4098276219222573780 3512808263334822020 9078726600701902558
9078726600701902558 9078726600702033662 3512808263395311356
3512808263395311356 3512808263304766328 11709624992532580340
11709624992701016060 11709624992610471032 11709624992519926004
15222167294809855112 288477508726176004 288477512795323772
288477512795323772 3801038661047294208 11997855390275108220
11997855390275108220 11997855390184563192 13168791302034089468
13168791301960393852 14339461797663211520 14339461801867633788
14339461801867633788 14339461797663211520 0
0 8196816729227814012 11709871016853686520
11709871016853686520 11709871016582056048 11709871016491511020
11709871016491511020 2342082915947392100 1170971371497390352
1170971371497390352 7025845357469443428 7025845357829488880
64
6098161968119036928 162271097318965538 3699933269466192751
3699933269466192751 3699933270078570351 18014485021205504
18014485021205504 6278447550459207970 6278447549695140864
6278447549695140864 7221886388741077581 8591126361364758093
8591126361364758093 8591126359525302272 8591126360137663488
8591126361364749901 3681918784293297741 3681918782453841920
3681918782453841920 8645169332327818240 8645169332327810048
8645169332327810048 8645169331715448832 1281367502775123533
1281367502775123533 8645187203074358861 7363837569202642944
7363837564907683840 7363837569202642944 14727675138405285888
14727675138405285888 12273062983273275392 12273062982660899840
12273062982660891648 86751974237652992 7437060873199282176
7437060873199282176 13697493938485595136 13697493937873233920
13697493937873233920 18372371724839693312 18372371724227315712
18372371724227313664 18372371724839691264 12110817201255096320
12110817201255096320 12110812716696862720 12110812720379452416
12110812720379452416 18371245785665764352 18371241301107530752
18371241301107530752 18371245785665764352 18371245781983174656
2274984047148032 18375786780961003520 18375786777278415872
18375786777278415872 139662179480644608 139662183163228160
139662183163228160 64163895119438848 64163894507062272
64163894507062272 18437675691420915712 18437675690808545280
64163893894691840 64163895119444992 18437675692033298432
18437675692033298432 18364443415237600256 18364443414625223680
9086764748656640 9086764136272896 18362177241393123328
18435409518188821504 84557847228065792 18446739581165370368
18446739581165370368 18446739580552986624 18446739579948996608
73227783026753536 73227783630743552 18446739580552986624
18446739580552986624 18446739579336622080 18446739578111940608
18446739578111940608 18446739580569769984 75498478859475968
75498478859475968 18446739768919163904 18373507809959444480
18373507809959444480 18371239777031647232 18371239779464347648
18371239779464347648 18371239777006518272 18371239779472830464
18371239779472830464 18371239777023324160 18371239777031647232
18371239777031647232 18373507807501615104 18373507809363881984
18373507809363881984 18373507807526744064 18371237045407318016
18371237045407318016 48928267436032 0
0 25128960 2270762144555008
2270762144555008 2270762153119744 2270762161401856
2270762136272896 2270762161401856 2270762186530816
2270762186530816 67104768 75555956611645440
75555956611645440 75573557412753408 75573557370777600
75573557370777600 75573557345648640 75573557395906560
75573557395906560 75573827995693056 75573828020822016
75573828020822016 18446726743558488064 18446727851685175296
18446727851685175296 2254540095045632 77845698266931200
77845698266931200 17592194310144 17592362254336
17596472745984 17596481003520 18444490908071133184
18444490908071133184 2252907923529728 2252907932090368
2252907932090368 2252912193363968 2252907923529728
2252907923529728 2270762119421952 2270762094297088
2270762094297088 2270762086006784 2270762060881920
2270762060881920 2270762069172224 2270762086014976
2270762086146048 2270762094436352 0
0 18446744073701261312 18446744073692971008
18446744073692971008 18446744073701392384 18446744073692839936
18446744073692979200 18446744073701269504 18446744073701400576
18446744073701400576 18446744069423136768 18446744069431287808
18446744069431287808 18444473307336851456 18444473311615115264
18444473311615115264 18444473311615238144 131072
8192 131072 2270757816303616
2270757816303616 2270757799460864 2270757816311808
2270757799469056 2270757799329792 2270757816172544
2270757816172544 2270757833015296 131072
64
5158270979888116823 5158270979837273159 5158270980434430336
5158270980434430336 8646911275151530401 8249028803384973345
8249028800094015520 8249028803384973345 2322206461143420960
2322206464240257025 2322206464975453671 12519921735300031942
12519921735300031942 12519921736035228588 16124537588190038924
16124537588190038924 18446744049333459884 18446744053771033516
2322206441204902860 2322206440061673924 2322206440155132388
5510511405178316746 8698816370201501104 8699379427722042800
8699379427722042800 8699379428068993110 8699379428454886998
8699379427525568592 8699379426790371946 11887684391813556304
11888284730386607702 12465871382740664310 2322206461878617606
2322206461431018464 2322206462022416358 2322206461287219712
2322206461540697094 2322206461878617606 2322206461431018464
2322206461431018464 2322206462022416358 143798752
3509447642 2918049748 557843460
557843460 895763972 1233684484
1233684484 2322206462774381578 2322206462182983684
2322206462182983684 624952334 2450034712
2450034712 2787955224 2986905624
2986905624 3322449944 3657994264
3657994264 2322206461566979106 2322206461768305698
2322206461432761378 2322206465224973370 2322206465205680244
2322206465205680244 2322206465243987070 2322206464908442750
2322206464908442750 2322206465243987070 2322206460949299200
18446744069414863746 18446744073690537912 18446744073690537914
18446744069433877444 18446744069433598020 18446744073709272190
18446744073709272190 2322206465243987070 2322206465243707644
2322206465243707644 4644412930487694714 4644412930488531452
4644412930488531452 4644412926193844094 13511284213679106
13511284213679106 13511284214233858 6953108102929989248
6953108102929989248 6953108102929988096 2322206460949838336
2322206460949838336 18446744073709533952 18433232789495856898
18433232789496120068 16111026328546264068 16111026328546000898
16111026328546000898 16111026324251869186 4503672641814530
4503672641814530 2326710133591146238 18014956854969344
2326710133591146238 2326710133591145214 2326710133591177722
2326710133591177722 2326710133591210230 4503672641878522
4503672641878522 4503676936584696 4503672641879040
4503672641879040 4503672641910784 4503672641911808
4503672641911808 2313198849378056194 22518629497339906
22518629497339906 22518629497078784 22518629497272322
22518629497272322 22518629497078784 2331213806233189378
2331213806233189378 2308695176736110594 18428729116854287360
4503672641814528 4503672641848320 4503672642075650
2331213806233189378 2331213806233155586 2331213810527861760
2331213810527861760 2331213806232962048 4503672642041858
4503672642041858 16138048892678928386 18446744069414845442
18446744069414845442 0 16138048892678768640
16138048892678768640 16138048892678903808 16138048892679164930
11520658534912102400 11520658534912093186 11520658534912228354
11520658534912093186 11520658539206925314 2308695181030706178
2308695181030706178 6926085543092011008 18446744069414046722
18446744069414046722 18446744069413785600 18446744065119866880
18446744069414573054 18446744065120143356 4617390357766720510
4617390357766720510 18446744073709000704 18446744073709533184
18446744073709533184 18446744069414601730 18446744073708770306
18446744073708770306 18446744069414601730 18446744065120433154
18446744065120433154 18446744069414601730 18446744069414585346
18446744065120416770 18446744065120412674 18446744065119622146
18446744065119622146 18446744065119618050 18446744065120417792
18446744069415386114 18446744069414584320 18446744073708749822
18446744069414584322 18446744065120418820 18446744065119617026
18446744060825447428 18446744060824649730 18446744056530484228
18446744056530484228 18446744060824649730 18446744065119612930
64
12535408303954370971 12535408301994359804 7342677489233679965
7342677486898723836 344004495082135832 8646751809930231805
8646751809930231805 13839482622690911644 13839482622317020290
13839482622317020290 4030658887155655525 4030658887519830651
4030658887519830651 1161931177783722530 5778164847641534114
5778164847641534114 5778164848856194790 3253507063016496802
3253507063016496802 17424526400392208670 15922086286906064704
15922086286906064704 15922086287250529628 15922086287317639004
15922086287317639004 15922086287872344060 18300059875503226876
18300059875503226876 15046552814781702624 15046552816236019836
15046552816236019836 15046552815789236956 15046552815363440508
15913116747564417020 4120070992049921436 4120070988291399040
4120070992139583456 4120070991692800576 4120070988921504732
4120070988921504732 4120070989998393304 4120070991519835716
4120070991519835716 2955813468340510724 4124715337846292072
2955813468340510724 10778413658812643948 10778413659444976624
2955813468972843400 7894667201225923560 7822600190472133224
7822600190472133224 7822600190642869044 7822600190472678392
7822600190472678392 17280168822968937468 7838578357701011932
7838578357701011932 17280094055557327324 17280094054033655872
17280094054033655872 17280094055557327324 16111192186051545976
16111192186051545976 6667143209109867384 5514149082425213208
5514149082425213208 5514149085195979640 17277842206974536700
17277842206974536700 18433088130702109692 18433088129455278968
6669676488195230584 13339352976390461168 13339352978330181000
13339352978330181000 13339352977083877640 13339352978331237776
13339352978331237776 17697131935712524008 4935964021288632936
4935964021288632936 12355252650529555048 12355252653023218552
12355252653023218552 12355252654270578688 12355252655517938824
12355252655517938824 12355252654270578696 6091491418191612784
6091491418191612792 18446744072462191480 18446744069414584320
18446744069414584320 11777067584266960896 11777067585514321032
11777067585514321032 11777067584266960896 18446744069414584320
6669676480852656128 6669676482100016264 6669676483347376400
6669676483347376400 6669676483346319632 11777067589115871848
11777067589115871848 11777067592163479008 18446744073570078712
18446744070522471552 18446744073570078712 18446744072462191480
18446744072462191480 18446744071214831344 11777067586067207920
11777067586067207920 6669676488887590280 6669676488888647048
6669676486394983560 6669676485147623432 1247360128
1247360128 0 1247360136
1247360136 6669676486394983560 18446744073709551608
18446744073709551608 18446744072462191480 18446744071214831344
18446744071214831344 18446744070661944456 18446744071909304592
18446744072463248248 18446744069415641088 18446744070663001224
18446744070663001224 18446744071209580264 18446744068714859992
18446744068714859992 18446744069263552504 18446744068710665616
18446744068710665616 18446744069263552504 18446744067484309848
18446744067484309848 18446744065254887448 18446744066345972792
18446744065119617024 18446744066345972792 18446744067572328560
18446744063830248152 18446744063277361264 18446744062724474376
18446744062196802656 1091052576 4159664104
4159664104 4294967288 3743128976
4294967288 3068611520 2516773208
1290417440 14688288 18446744072497884136
18446744072497884136 18446744072498932728 18446744073050771040
18446744073050771040 18446744073054965344 18446744069418795072
18446744069418795072 18446744069414584320 18446744073705340864
18446744073705340864 18446744073701130112 18446744069423005696
18446744069423005696 18446744069418794944 18446744069418811328
18446744069418811328 18446744069414584384 18446744069418795072
18446744069418795072 18446744069414584320 18446744073709535296
4294967168 4294950976 4210752
4210752 18446744069418811264 4194304
64
6834652859468594380 6834652861620534735 6834652859431301128
6834652859431301128 6834652861646237722 3523044215233744896
3523044215233744896 3523044214622150139 9150714782646500859
9150714782646500859 9150714782377533466 17094447273565176377
17094447273565176377 17094447275234550335 17094447274176768509
17094447274176768509 17094447274176763388 17094447274176757788
17094447274176757788 17094447274176752667 17239761497651408415
17239761497651408415 17239761497920368639 17239761493894365664
17239761493894365664 362633585242936801 16877163663985211934
16877163663985211934 17239779373574257662 17239779369279295487
17239779369279295487 17239761493625408511 362633584973979648
362633584973979648 1569616165058125824 362651456332890112
362651456332890112 362651460627852287 16877110041587477503
16877110037292515328 16877110041587477503 16514440713895673856
16514440713895673856 16514440718190636031 16514440718190630910
16151896464241443838 725231444409985025 725231444409979904
16877127908651433983 16877127904356471808 16877127904356466688
16877127904356466688 17867063951360 17867063956481
17867063956481 1206964704430275587 2413911541796594693
2413911541796594693 2413911541796579330 105740582999031808
105740582999031808 15775921654284141565 15775921654284136444
15775921649989217281 18086420274902724607 18158513603068555263
18158513603068555263 18158513603068550142 18158513598773604353
18158513598773604353 18158513603068558335 15093720151477974014
15093720151477974014 12028926674117584892 9234349569536418812
9234349569536411642 13830402723050152956 13830402723050149882
13830402723050149882 9234349565241452538 9234349565241455612
9234349565241455612 9234349560946492412 9234349560946491392
9234349560946491392 13830402718755188736 18426455876563886080
4575764960663031808 7640558438023420930 7640558438023425026
7640558438023425026 10705351915383814148 10705351911088849926
10669318406785728518 10669318411080692734 18320572898219130878
18320572898219130878 4722259530556116990 4722259534851080190
4722259534851080190 18428729675200069630 18428729670905109504
10731819041460060158 10731819037165100032 3123384278751112192
3123384278751112192 13834915118770547712 13834915114475588608
3085081678801006590 3085081678800998398 10765574039842861054
10765574039842861054 10765574044137790462 10765574044137771006
10765574039842913278 13832641320134376446 13832641320134356990
13832641320134356990 13832641320134353920 13832641320134358016
13832641315839410176 13832641320134358016 13832641320134330368
13832641320134368256 6135730690689306624 6135730690689278976
6135730690689278976 6135730686394413056 6189773886217761792
6117716292179825664 6117716292179833856 8192
8192 16384 0
0 19456 11264
30720 38912 0
0 12329027781529717760 12329027785824663552
12329027785824663552 4646472397371708416 4646472397371735040
4646472397371735040 12249787825351799808 17005591643195177984
17005591643195177984 7603315427980064768 7603315427980082176
7603315427980082176 7603315423685143552 44446705285874688
44446705285874688 9007198773704651776 17977128462619486208
9583660625519713280 9583660625519737856 9583660625519765504
9583660625519765504 9583660625519737856 8098061485424568320
8098061485424540672 18114075234314255360 18402306160221805568
18402306160221813760 18114075234314247168 17825844308406680576
864699374792298496 288230376151711744 576461302059278336
576461302059278336 576461302059270144 576461302059261952
576461302059294720 576461302059302912 576461302059343872
576461302059343872 549755920384 549755912192
549755912192 549755920384 549756026880
549756026880 288230376151752704 288230925907673088
288230925907673088 288231475663593472 288231475663699968
64
17052666870544673690 1165667594347394 1165667558564736
1165667558564736 1165667387214604 9497869787515842444
9497869787515842444 147532672078481408 9096446579379216500
9096446579379216500 10396971403812343874 1406922292615215054
1406922292615215054 1409174234162921422 1409174233993703324
1409174233993703324 2709699058426830698 11658612965725433756
11658612965725433756 11658612965556481932 12959137786370977758
12959137786370977758 12959137786032811932 1299288663956647836
1299288663956647836 1299288663784541960 1299288664292192158
1299288664292192158 1299288660335656962 2599813484599570334
2599813484599570334 12096517652488646558 12097753533284605754
12097753533285654330 12098848634328854694 12098848634667286794
12098848634667286794 2601018468597658114 2601018471289437450
2601018471289437450 2601018471356546970 2601018470676004660
2601018470676004660 14698631227478326990 14698631225224986694
14698631225224986694 862046670409480 862046804627310
862046804627310 862025706114884 6350855389417971480
17293144651469004 17293148435898318 8215559472680900
8215559472680900 14699528456267485134 10952277654453329692
10952277654721765148 10952277654417542924 10952277654721761052
7205026852907605610 863249048668429914 13836737354259403028
13836737354259403028 13836737353168846864 13836737353473064992
13836737353202532384 5476651750457892930 5476651750762111058
5476651750762111058 5476651750457892930 11818429554697068626
11818429554697068626 18160207358936244322 6055241089465868402
6055241089465868402 12105968405350154108 12396016824532074494
12396016824532074494 577029270547128566 867512410867491326
867512410867491326 867512408585192180 7209290214532817898
6918239724469477886 6627189234406137874 6627189234675768870
6627189234675768870 6627189235340344516 6913735298734964008
6913735298734964008 573095482757504550 12387011260456090436
12387011260456090436 12387011258713053282 12387011258300217984
12387011258300217984 5754182963367188480 5754182966852108234
5754182966852108234 1428899035657213952 1154056269866008576
1154056269866008576 1154056270675466294 14121460143324115052
15852547542235199470 15852547541425741752 15852547541154924424
15852547541154924424 2885143668506275666 577031129853374290
577031129853374290 12399285486010697326 12399285485201239608
12399285485518846244 17013366796717260782 17013366796718440446
17013366796718440446 10670452641622020268 10670452640832289168
10670452640514420364 10670452643210198842 9516405218024249112
9516405218024249112 9516405218813980212 9516405218003473914
16140894935555702494 4318640579398379458 4318640580208885756
4318640580208885756 4318640576703649560 16422470493432557394
16422470493432557394 9797980775880328814 9797980777746726358
9797980775880328814 9797980775090597714 9797980774300866614
9797980774300866614 9797980774546267958 9797980774262265620
9797980774262265620 9797980774262134276 9797980774564208714
9797980774564208714 7767114409279643444 6340387010810633906
6340387010810633906 18446672596863811582 1426655921623269504
2165309568 17020016677405851646 17020016675240460158
17020016675240460158 18446744073709469696 4904741919185092606
3478014520716083068 3478014522881392638 3478014520751898752
3478014520751898752 3478014520751816832 1172133282034221184
1172133282034221184 6076875199054086142 1172133279868911616
1172133279868911616 1172133284163878910 6076875203349053436
6076875203349053436 1172133273444286592 6076875188298841982
10981617107484016508 6076875188298841982 6076875190464151550
6076875190464151550 6076875186169184256 1172133271278977024
1172133271278977024 4904741919185174526 6076875188298841982
6076875188298841982 6076875190464151550 9809483838370349052
9809483838370349052 9809483838370349050 10981509108401700868
10981509108401700868 13542020455380025348 13542020459674992638
3732608643611230208 3732608643611230210 2560439328966705148
64
4611967601062058560 6373010993881717721 6700089314866093021
6700089314866093021 6118992875511077853 0
0 6118992875511077853 6700089314866093021
6700089314866093021 581096439355015168 581096442441751517
581096441233520570 1489552745541859262 2398009049850197954
18859375619347392 18859376282164189 17557147145683377113
17557147146891608060 12055155263486256161 12382647060699292709
12382647060699292709 12382647059763904512 12382647062577798109
12382647062577798109 13000621113611328482 16177065773603536959
16177065773603536959 16758879085950124095 17376853138854609022
17376853138854609022 5049101940656135259 5049101939720568895
5049101938512330780 5049101939727948737 5049101940663502813
1367129386427358208 1367129387362910236 13076906532656899072
13076906532656899072 749155334458425309 6868148209969503162
6868148209969503162 6868148210906162086 12306903305204769669
12306903302389628929 10578649757654218781 10578649758862440511
10578649758862440511 12884490567844640831 13633645902303066140
5237131695232104511 4487976360773679202 4487976359565441087
4487976359565441087 4487976360501035008 4487976361575039011
4487976361575039011 18436188461432031207 18436188458072657832
18436188458072657832 2295285190258839465 2295285192409974725
2295285192409974725 18436188460223793092 2295285194832246843
2295285194832246843 2295285194832508988 2295285196433651637
18436188461434929151 18436188461159649161 18436188461434929152
3054996141837619081 3054996145856839679 3054996141837676662
18436188461434929151 16130347655539195902 13835058059576344574
15402303544421253119 15402303540401565814 17708148752658464767
17708148752658464767 17708148752658726911 15402303544146497417
15402303544146497417 15402303543871217426 16140894466879750006
16140894466879750006 4611681616632512649 4611681619834535798
4611681619834797943 5350281343502118893 5350290144160645119
5350290139866988544 5350290140141744246 5350290139866726400
5350290139866726400 11439180003400773750 11439180007143870345
11439180007143870345 11439180007143870344 9133339201248399239
9133339201248399239 9133339200972857104 9133339200702320384
3693016220935036553 3693016220935036552 3693016222025621385
3693016222025621386 17528074277314625535 1387171009500545024
1387171009500545024 14393592103442812809 16699432909338283914
16699432905594400885 16699432909613826046 16699432909338283911
16699435108637081599 16699435104342114304 11853481915820539904
11853481915820539904 9547641109925068799 4107318130157784968
4107318126138359809 4107318130433327102 2305843013508661246
13006421094217809919 6088889863258505216 17618107112645197823
17618107112645197823 1477203844831117312 14483624938773385097
18266669593794940809 18266669593794940810 2125766325980860299
2125766325980860299 2125766321961435137 18266669585756090487
5260248517032542206 5260248513013117045 5260248517032542207
5260248517032542207 5260248513013117046 7566089322928013311
7566089322928013311 7566089322652471177 13006412302419755008
13006412302419755008 5260239699740225654 5260239700015767788
5260239700015767788 180092071549570954 17596205469576
17596205469576 5080165224117952490 10160312852584149324
10160312852584149324 10160312853408146072 288237042479407112
288237043306033514 13654833488549388296 288237051067760640
288237051067760640 36029897354588492 36029896536383534
36029896532172812 36029900000513706 36029900285542374
36029900285542374 5440444476100346516 4791908378622296064
4791908381803511122 18158504827046865904 18446744068296637426
13042329494700947804 17798207976259975550 17798207975433349148
17798207975433349148 17798207976259975550 17798207972800024930
17798207972800024930 4107342380649501060 9187476796151431398
9187476796151431398 4755871884489261090 8863214265138762150
8863214265138762150 4755878481559027746 14339408290129817212
14339408286669864994 14339408287496491396 5476194022357729246
64
15125309012900196327 18184593080260082987 2060877613063334896
2060877615383048181 4383906221895851706 4383906223267114997
4383906223267114997 1630868064491430577 1630868066538280301
4383906220884711465 2060877616418757664 2060877616087441449
4376864926341512233 7436148993701398893 7436148993667828036
7436148992790973755 7436148994837823479 7436148995579970558
7436148995579970558 7436148994409975115 7436148995286829396
7436148995286829396 7436148994201553220 8049008817385720141
8049008817385720141 2666696145559879680 2666696148457049419
4989724753443946496 4989724756568918349 17170180043964421
2305858424942932656 2305858423851319296 2305858425249116853
2305858425249116853 7688171087872654328 5365142482885757251
14636840812281857 14636843391994188 2337665448378891265
2337665448378891265 13792629171111937 2323028890181912581
2323028890181912581 286286628864 283467841536
283467841536 2309235979019139072 2309235980495319040
2309235981704087552 2309235980227907584 2309235968953552896
2309235972078524421 2323028323246757893 2323028324416223237
2323028321597435909 13792630647291909 27585264113371146
688344008704 2309235282085195776 2309235284903983109
2309235284903983109 2309235283733987338 2309235282064441349
2309235282064441349 18432951314183882759 11408508933
11408508933 2323028043871813631 2323028041388568568
2323028041388568568 2323028043200290801 18446743745517543415
18446743743034298352 18446743742997069824 18446743745480314887
18446743745480314887 18446743744704362501 16123715373819449351
16123715373819449351 18432950781943480320 18432950783755202553
2309235078581544948 2309235078552698884 6710968324
6778212359 5070919682 4362080258
16137508665585520647 16123715704464818181 16123715705173657605
16123715705173657605 16123715706314807309 13800687337778913298
13800687337778913298 11493432544083443712 11493432544255543300
11493432544255543300 9170404172766777352 18443351682995630104
18443351682995630104 18443351681204094980 18443351682970460176
18443351682970460176 2305843018076649468 2305843019859714024
2305843019859714024 4628871389556
stderr
[ "TC 4 Generated." : TC 4 Generated. ] 
[ "TC 4 Generated." : TC 4 Generated. ] 
[ "TC 4 Generated." : TC 4 Generated. ] 
[ "TC 4 Generated." : TC 4 Generated. ] 
[ "TC 4 Generated." : TC 4 Generated. ] 
[ "TC 4 Generated." : TC 4 Generated. ] 
[ "TC 4 Generated." : TC 4 Generated. ] 
[ "TC 4 Generated." : TC 4 Generated. ] 
[ "TC 4 Generated." : TC 4 Generated. ] 
[ "TC 4 Generated." : TC 4 Generated. ] 
[ "TC 4 Generated." : TC 4 Generated. ] 
[ "TC 4 Generated." : TC 4 Generated. ] 
[ "TC 4 Generated." : TC 4 Generated. ] 
[ "TC 4 Generated." : TC 4 Generated. ] 
[ "TC 4 Generated." : TC 4 Generated. ] 
[ "TC 4 Generated." : TC 4 Generated. ] 
[ "TC 4 Generated." : TC 4 Generated. ] 
[ "TC 4 Generated." : TC 4 Generated. ]