Advertisement
999ms

Untitled

May 21st, 2024 (edited)
893
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 29.10 KB | None | 0 0
  1. #pragma GCC optimize("Ofast")
  2.  
  3. #include <bits/stdc++.h>
  4. #define all(x) begin(x), end(x)
  5.  
  6. using namespace std;
  7. using int64 = int64_t;
  8. using uint64 = uint64_t;
  9.  
  10. #ifdef ONLINE_JUDGE
  11. const bool isFileInput = true;
  12. const string commonFileName = "m3";
  13. #else
  14. const bool isFileInput = true;
  15. const string commonFileName = "";
  16. #endif
  17.  
  18. const bool tests = false;
  19.  
  20. // const int mod = (1 << 30) + 1;
  21. // const int N = 17;
  22. // int dp[1 << N][303];
  23.  
  24. // void Process(int n, int m, ostream& out) {
  25. //     if (n == 1) {
  26. //         int64 ans = 1;
  27. //         for (int i = 0; i < m; i++) {
  28. //             ans = (ans + ans) % mod;
  29. //         }
  30. //         out << ans;
  31. //         return;
  32. //     }
  33.  
  34. //     for (int i = 0; i < (1 << n); i++) {
  35. //         dp[i][0] = 1;
  36. //     }
  37.  
  38. //     for (int i = 1; i < m; i++) {
  39. //         for (int prevMask = 0; prevMask < (1 << n); prevMask++) {
  40. //             for (int curMask = 0; curMask < (1 << n); curMask++) {
  41. //                 bool bad = false;
  42. //                 for (int bit = 0; !bad && bit + 1 < n; bit++) {
  43. //                     int curMaskValue = (curMask >> bit) & 3;
  44. //                     int prevMaskValue = (prevMask >> bit) & 3;
  45. //                     if (curMaskValue == prevMaskValue && (prevMaskValue == 0 || prevMaskValue == 3)) {
  46. //                         bad = true;
  47. //                     }
  48. //                 }
  49. //                 if (!bad) {
  50. //                     dp[curMask][i] = (dp[curMask][i] + dp[prevMask][i - 1]) % mod;
  51. //                 }
  52. //             }
  53. //         }
  54. //     }
  55.  
  56. //     int64 ans = 0;
  57. //     for (int mask = 0; mask < (1 << n); mask++) {
  58. //         ans = (ans + dp[mask][m - 1]) % mod;
  59. //     }
  60.  
  61. //     out << ans;
  62. // }
  63.  
  64. map<pair<int, int>, int> mp;
  65.  
  66. void Solve(istream& in, ostream& out) {
  67.     int n, m;
  68.     in >> n >> m;
  69.     if (n > m) swap(n, m);
  70.     out << mp[{n, m}] << '\n';
  71.     // for (int prod = 1; prod <= 300; prod++) {
  72.     //     for (int m = 1; m <= prod; m++) {
  73.     //         if (prod % m != 0) continue;
  74.     //         if (prod / m > m) continue;
  75.     //         memset(dp, 0, sizeof(dp));
  76.     //         int n = prod / m;
  77.     //         out << "mp[{" << n << ", " << m << "}]=";
  78.     //         Process(n, m, out);
  79.     //         out << ";\n";
  80.     //     }
  81.     //     cout << "PROD: " << prod << endl;
  82.     // }
  83. }
  84.  
  85. void Precalc() {
  86.     mp[{1, 1}] = 2;
  87.     mp[{1, 2}] = 4;
  88.     mp[{1, 3}] = 8;
  89.     mp[{2, 2}] = 14;
  90.     mp[{1, 4}] = 16;
  91.     mp[{1, 5}] = 32;
  92.     mp[{2, 3}] = 50;
  93.     mp[{1, 6}] = 64;
  94.     mp[{1, 7}] = 128;
  95.     mp[{2, 4}] = 178;
  96.     mp[{1, 8}] = 256;
  97.     mp[{3, 3}] = 322;
  98.     mp[{1, 9}] = 512;
  99.     mp[{2, 5}] = 634;
  100.     mp[{1, 10}] = 1024;
  101.     mp[{1, 11}] = 2048;
  102.     mp[{3, 4}] = 2066;
  103.     mp[{2, 6}] = 2258;
  104.     mp[{1, 12}] = 4096;
  105.     mp[{1, 13}] = 8192;
  106.     mp[{2, 7}] = 8042;
  107.     mp[{1, 14}] = 16384;
  108.     mp[{3, 5}] = 13262;
  109.     mp[{1, 15}] = 32768;
  110.     mp[{4, 4}] = 23858;
  111.     mp[{2, 8}] = 28642;
  112.     mp[{1, 16}] = 65536;
  113.     mp[{1, 17}] = 131072;
  114.     mp[{3, 6}] = 85126;
  115.     mp[{2, 9}] = 102010;
  116.     mp[{1, 18}] = 262144;
  117.     mp[{1, 19}] = 524288;
  118.     mp[{4, 5}] = 275690;
  119.     mp[{2, 10}] = 363314;
  120.     mp[{1, 20}] = 1048576;
  121.     mp[{3, 7}] = 546410;
  122.     mp[{1, 21}] = 2097152;
  123.     mp[{2, 11}] = 1293962;
  124.     mp[{1, 22}] = 4194304;
  125.     mp[{1, 23}] = 8388608;
  126.     mp[{4, 6}] = 3185462;
  127.     mp[{3, 8}] = 3507314;
  128.     mp[{2, 12}] = 4608514;
  129.     mp[{1, 24}] = 16777216;
  130.     mp[{5, 5}] = 5735478;
  131.     mp[{1, 25}] = 33554432;
  132.     mp[{2, 13}] = 16413466;
  133.     mp[{1, 26}] = 67108864;
  134.     mp[{3, 9}] = 22512862;
  135.     mp[{1, 27}] = 134217728;
  136.     mp[{4, 7}] = 36806846;
  137.     mp[{2, 14}] = 58457426;
  138.     mp[{1, 28}] = 268435456;
  139.     mp[{1, 29}] = 536870912;
  140.     mp[{5, 6}] = 119310334;
  141.     mp[{3, 10}] = 144506294;
  142.     mp[{2, 15}] = 208199210;
  143.     mp[{1, 30}] = 1073741824;
  144.     mp[{1, 31}] = 1073741823;
  145.     mp[{4, 8}] = 425288998;
  146.     mp[{2, 16}] = 741512482;
  147.     mp[{1, 32}] = 1073741821;
  148.     mp[{3, 11}] = 927561722;
  149.     mp[{1, 33}] = 1073741817;
  150.     mp[{2, 17}] = 493452216;
  151.     mp[{1, 34}] = 1073741809;
  152.     mp[{5, 7}] = 334458704;
  153.     mp[{1, 35}] = 1073741793;
  154.     mp[{6, 6}] = 173285114;
  155.     mp[{4, 9}] = 619085062;
  156.     mp[{3, 12}] = 585154365;
  157.     mp[{2, 18}] = 815897962;
  158.     mp[{1, 36}] = 1073741761;
  159.     mp[{1, 37}] = 1073741697;
  160.     mp[{2, 19}] = 213372843;
  161.     mp[{1, 38}] = 1073741569;
  162.     mp[{3, 13}] = 635889643;
  163.     mp[{1, 39}] = 1073741313;
  164.     mp[{5, 8}] = 90695590;
  165.     mp[{4, 10}] = 945426574;
  166.     mp[{2, 20}] = 124430803;
  167.     mp[{1, 40}] = 1073740801;
  168.     mp[{1, 41}] = 1073739777;
  169.     mp[{6, 7}] = 911351667;
  170.     mp[{3, 14}] = 494452034;
  171.     mp[{2, 21}] = 800038095;
  172.     mp[{1, 42}] = 1073737729;
  173.     mp[{1, 43}] = 1073733633;
  174.     mp[{4, 11}] = 15016263;
  175.     mp[{2, 22}] = 501492241;
  176.     mp[{1, 44}] = 1073725441;
  177.     mp[{5, 9}] = 291476458;
  178.     mp[{3, 15}] = 482846928;
  179.     mp[{1, 45}] = 1073709057;
  180.     mp[{2, 23}] = 957069263;
  181.     mp[{1, 46}] = 1073676289;
  182.     mp[{1, 47}] = 1073610753;
  183.     mp[{6, 8}] = 763177734;
  184.     mp[{4, 12}] = 36143586;
  185.     mp[{3, 16}] = 961174734;
  186.     mp[{2, 24}] = 652966796;
  187.     mp[{1, 48}] = 1073479681;
  188.     mp[{7, 7}] = 35393966;
  189.     mp[{1, 49}] = 1073217537;
  190.     mp[{5, 10}] = 30793562;
  191.     mp[{2, 25}] = 651813439;
  192.     mp[{1, 50}] = 1072693249;
  193.     mp[{3, 17}] = 857975995;
  194.     mp[{1, 51}] = 1071644673;
  195.     mp[{4, 13}] = 1071043415;
  196.     mp[{2, 26}] = 40148434;
  197.     mp[{1, 52}] = 1069547521;
  198.     mp[{1, 53}] = 1065353217;
  199.     mp[{6, 9}] = 436304595;
  200.     mp[{3, 18}] = 623235366;
  201.     mp[{2, 27}] = 350330355;
  202.     mp[{1, 54}] = 1056964609;
  203.     mp[{5, 11}] = 597448518;
  204.     mp[{1, 55}] = 1040187393;
  205.     mp[{7, 8}] = 167701464;
  206.     mp[{4, 14}] = 592749523;
  207.     mp[{2, 28}] = 57546108;
  208.     mp[{1, 56}] = 1006632961;
  209.     mp[{3, 19}] = 96023413;
  210.     mp[{1, 57}] = 939524097;
  211.     mp[{2, 29}] = 873299034;
  212.     mp[{1, 58}] = 805306369;
  213.     mp[{1, 59}] = 536870913;
  214.     mp[{6, 10}] = 722829720;
  215.     mp[{5, 12}] = 357727711;
  216.     mp[{4, 15}] = 416276351;
  217.     mp[{3, 20}] = 729894586;
  218.     mp[{2, 30}] = 587505668;
  219.     mp[{1, 60}] = 1;
  220.     mp[{1, 61}] = 2;
  221.     mp[{2, 31}] = 287889597;
  222.     mp[{1, 62}] = 4;
  223.     mp[{7, 9}] = 345325525;
  224.     mp[{3, 21}] = 199741548;
  225.     mp[{1, 63}] = 8;
  226.     mp[{8, 8}] = 200727159;
  227.     mp[{4, 16}] = 77857554;
  228.     mp[{2, 32}] = 964938302;
  229.     mp[{1, 64}] = 16;
  230.     mp[{5, 13}] = 1030160836;
  231.     mp[{1, 65}] = 32;
  232.     mp[{6, 11}] = 711976380;
  233.     mp[{3, 22}] = 1048602570;
  234.     mp[{2, 33}] = 249368625;
  235.     mp[{1, 66}] = 64;
  236.     mp[{1, 67}] = 128;
  237.     mp[{4, 17}] = 247689040;
  238.     mp[{2, 34}] = 530498829;
  239.     mp[{1, 68}] = 256;
  240.     mp[{3, 23}] = 62341767;
  241.     mp[{1, 69}] = 512;
  242.     mp[{7, 10}] = 694557454;
  243.     mp[{5, 14}] = 792068774;
  244.     mp[{2, 35}] = 1016491912;
  245.     mp[{1, 70}] = 1024;
  246.     mp[{1, 71}] = 2048;
  247.     mp[{8, 9}] = 586545036;
  248.     mp[{6, 12}] = 968691054;
  249.     mp[{4, 18}] = 36743464;
  250.     mp[{3, 24}] = 972891566;
  251.     mp[{2, 36}] = 889247919;
  252.     mp[{1, 72}] = 4096;
  253.     mp[{1, 73}] = 8192;
  254.     mp[{2, 37}] = 405760281;
  255.     mp[{1, 74}] = 16384;
  256.     mp[{5, 15}] = 974465539;
  257.     mp[{3, 25}] = 705944082;
  258.     mp[{1, 75}] = 32768;
  259.     mp[{4, 19}] = 234879760;
  260.     mp[{2, 38}] = 848293031;
  261.     mp[{1, 76}] = 65536;
  262.     mp[{7, 11}] = 874948463;
  263.     mp[{1, 77}] = 131072;
  264.     mp[{6, 13}] = 571536179;
  265.     mp[{3, 26}] = 587204706;
  266.     mp[{2, 39}] = 135174180;
  267.     mp[{1, 78}] = 262144;
  268.     mp[{1, 79}] = 524288;
  269.     mp[{8, 10}] = 1013558899;
  270.     mp[{5, 16}] = 506272358;
  271.     mp[{4, 20}] = 1024164878;
  272.     mp[{2, 40}] = 1028366777;
  273.     mp[{1, 80}] = 1048576;
  274.     mp[{9, 9}] = 10014095;
  275.     mp[{3, 27}] = 474051875;
  276.     mp[{1, 81}] = 2097152;
  277.     mp[{2, 41}] = 134223216;
  278.     mp[{1, 82}] = 4194304;
  279.     mp[{1, 83}] = 8388608;
  280.     mp[{7, 12}] = 156109328;
  281.     mp[{6, 14}] = 15182188;
  282.     mp[{4, 21}] = 917369518;
  283.     mp[{3, 28}] = 1046553554;
  284.     mp[{2, 42}] = 311919552;
  285.     mp[{1, 84}] = 16777216;
  286.     mp[{5, 17}] = 643769299;
  287.     mp[{1, 85}] = 33554432;
  288.     mp[{2, 43}] = 130463263;
  289.     mp[{1, 86}] = 67108864;
  290.     mp[{3, 29}] = 84616587;
  291.     mp[{1, 87}] = 134217728;
  292.     mp[{8, 11}] = 803926546;
  293.     mp[{4, 22}] = 907664205;
  294.     mp[{2, 44}] = 1015228893;
  295.     mp[{1, 88}] = 268435456;
  296.     mp[{1, 89}] = 536870912;
  297.     mp[{9, 10}] = 439395703;
  298.     mp[{6, 15}] = 615611552;
  299.     mp[{5, 18}] = 184304064;
  300.     mp[{3, 30}] = 551772784;
  301.     mp[{2, 45}] = 85387730;
  302.     mp[{1, 90}] = 1073741824;
  303.     mp[{7, 13}] = 560619160;
  304.     mp[{1, 91}] = 1073741823;
  305.     mp[{4, 23}] = 237866709;
  306.     mp[{2, 46}] = 139137326;
  307.     mp[{1, 92}] = 1073741821;
  308.     mp[{3, 31}] = 397637532;
  309.     mp[{1, 93}] = 1073741817;
  310.     mp[{2, 47}] = 588187438;
  311.     mp[{1, 94}] = 1073741809;
  312.     mp[{5, 19}] = 612802952;
  313.     mp[{1, 95}] = 1073741793;
  314.     mp[{8, 12}] = 1027876269;
  315.     mp[{6, 16}] = 227606139;
  316.     mp[{4, 24}] = 338570502;
  317.     mp[{3, 32}] = 650684895;
  318.     mp[{2, 48}] = 969095141;
  319.     mp[{1, 96}] = 1073741761;
  320.     mp[{1, 97}] = 1073741697;
  321.     mp[{7, 14}] = 422279141;
  322.     mp[{2, 49}] = 862434824;
  323.     mp[{1, 98}] = 1073741569;
  324.     mp[{9, 11}] = 929525011;
  325.     mp[{3, 33}] = 772250923;
  326.     mp[{1, 99}] = 1073741313;
  327.     mp[{10, 10}] = 146439608;
  328.     mp[{5, 20}] = 149271250;
  329.     mp[{4, 25}] = 892837304;
  330.     mp[{2, 50}] = 230527454;
  331.     mp[{1, 100}] = 1073740801;
  332.     mp[{1, 101}] = 1073739777;
  333.     mp[{6, 17}] = 60887377;
  334.     mp[{3, 34}] = 421576034;
  335.     mp[{2, 51}] = 268968360;
  336.     mp[{1, 102}] = 1073737729;
  337.     mp[{1, 103}] = 1073733633;
  338.     mp[{8, 13}] = 96958732;
  339.     mp[{4, 26}] = 477288610;
  340.     mp[{2, 52}] = 194218163;
  341.     mp[{1, 104}] = 1073725441;
  342.     mp[{7, 15}] = 61050175;
  343.     mp[{5, 21}] = 65198375;
  344.     mp[{3, 35}] = 323613708;
  345.     mp[{1, 105}] = 1073709057;
  346.     mp[{2, 53}] = 46849384;
  347.     mp[{1, 106}] = 1073676289;
  348.     mp[{1, 107}] = 1073610753;
  349.     mp[{9, 12}] = 640371992;
  350.     mp[{6, 18}] = 1026376991;
  351.     mp[{4, 27}] = 612578458;
  352.     mp[{3, 36}] = 588166679;
  353.     mp[{2, 54}] = 528984478;
  354.     mp[{1, 108}] = 1073479681;
  355.     mp[{1, 109}] = 1073217537;
  356.     mp[{10, 11}] = 306237849;
  357.     mp[{5, 22}] = 575610907;
  358.     mp[{2, 55}] = 606910377;
  359.     mp[{1, 110}] = 1072693249;
  360.     mp[{3, 37}] = 435463655;
  361.     mp[{1, 111}] = 1071644673;
  362.     mp[{8, 14}] = 1009866334;
  363.     mp[{7, 16}] = 638213111;
  364.     mp[{4, 28}] = 478952083;
  365.     mp[{2, 56}] = 731216437;
  366.     mp[{1, 112}] = 1069547521;
  367.     mp[{1, 113}] = 1065353217;
  368.     mp[{6, 19}] = 775960409;
  369.     mp[{3, 38}] = 508829076;
  370.     mp[{2, 57}] = 186244590;
  371.     mp[{1, 114}] = 1056964609;
  372.     mp[{5, 23}] = 462134723;
  373.     mp[{1, 115}] = 1040187393;
  374.     mp[{4, 29}] = 121343276;
  375.     mp[{2, 58}] = 947424819;
  376.     mp[{1, 116}] = 1006632961;
  377.     mp[{9, 13}] = 363900865;
  378.     mp[{3, 39}] = 1035548413;
  379.     mp[{1, 117}] = 939524097;
  380.     mp[{2, 59}] = 1067279987;
  381.     mp[{1, 118}] = 805306369;
  382.     mp[{7, 17}] = 207105166;
  383.     mp[{1, 119}] = 536870913;
  384.     mp[{10, 12}] = 782520195;
  385.     mp[{8, 15}] = 182299396;
  386.     mp[{6, 20}] = 554561239;
  387.     mp[{5, 24}] = 228866416;
  388.     mp[{4, 30}] = 416043359;
  389.     mp[{3, 40}] = 426399446;
  390.     mp[{2, 60}] = 801722299;
  391.     mp[{1, 120}] = 1;
  392.     mp[{11, 11}] = 17440752;
  393.     mp[{1, 121}] = 2;
  394.     mp[{2, 61}] = 244759571;
  395.     mp[{1, 122}] = 4;
  396.     mp[{3, 41}] = 352416463;
  397.     mp[{1, 123}] = 8;
  398.     mp[{4, 31}] = 223871532;
  399.     mp[{2, 62}] = 190239661;
  400.     mp[{1, 124}] = 16;
  401.     mp[{5, 25}] = 424248130;
  402.     mp[{1, 125}] = 32;
  403.     mp[{9, 14}] = 432021937;
  404.     mp[{7, 18}] = 546233450;
  405.     mp[{6, 21}] = 443333477;
  406.     mp[{3, 42}] = 248858465;
  407.     mp[{2, 63}] = 1060238125;
  408.     mp[{1, 126}] = 64;
  409.     mp[{1, 127}] = 128;
  410.     mp[{8, 16}] = 619751064;
  411.     mp[{4, 32}] = 690922528;
  412.     mp[{2, 64}] = 339968222;
  413.     mp[{1, 128}] = 256;
  414.     mp[{3, 43}] = 623859462;
  415.     mp[{1, 129}] = 512;
  416.     mp[{10, 13}] = 604639267;
  417.     mp[{5, 26}] = 39121375;
  418.     mp[{2, 65}] = 992897266;
  419.     mp[{1, 130}] = 1024;
  420.     mp[{1, 131}] = 2048;
  421.     mp[{11, 12}] = 974217644;
  422.     mp[{6, 22}] = 907908302;
  423.     mp[{4, 33}] = 693580115;
  424.     mp[{3, 44}] = 563673766;
  425.     mp[{2, 66}] = 437402767;
  426.     mp[{1, 132}] = 4096;
  427.     mp[{7, 19}] = 811929821;
  428.     mp[{1, 133}] = 8192;
  429.     mp[{2, 67}] = 76777358;
  430.     mp[{1, 134}] = 16384;
  431.     mp[{9, 15}] = 452562196;
  432.     mp[{5, 27}] = 520802929;
  433.     mp[{3, 45}] = 460936752;
  434.     mp[{1, 135}] = 32768;
  435.     mp[{8, 17}] = 691792110;
  436.     mp[{4, 34}] = 247427676;
  437.     mp[{2, 68}] = 31395783;
  438.     mp[{1, 136}] = 65536;
  439.     mp[{1, 137}] = 131072;
  440.     mp[{6, 23}] = 479212655;
  441.     mp[{3, 46}] = 1061439236;
  442.     mp[{2, 69}] = 247742065;
  443.     mp[{1, 138}] = 262144;
  444.     mp[{1, 139}] = 524288;
  445.     mp[{10, 14}] = 26783586;
  446.     mp[{7, 20}] = 144368674;
  447.     mp[{5, 28}] = 7662178;
  448.     mp[{4, 35}] = 596190534;
  449.     mp[{2, 70}] = 806017761;
  450.     mp[{1, 140}] = 1048576;
  451.     mp[{3, 47}] = 181647190;
  452.     mp[{1, 141}] = 2097152;
  453.     mp[{2, 71}] = 766053763;
  454.     mp[{1, 142}] = 4194304;
  455.     mp[{11, 13}] = 525573653;
  456.     mp[{1, 143}] = 8388608;
  457.     mp[{12, 12}] = 610837507;
  458.     mp[{9, 16}] = 560349578;
  459.     mp[{8, 18}] = 529044610;
  460.     mp[{6, 24}] = 570000010;
  461.     mp[{4, 36}] = 1030893011;
  462.     mp[{3, 48}] = 131101869;
  463.     mp[{2, 72}] = 688971336;
  464.     mp[{1, 144}] = 16777216;
  465.     mp[{5, 29}] = 43113906;
  466.     mp[{1, 145}] = 33554432;
  467.     mp[{2, 73}] = 377796059;
  468.     mp[{1, 146}] = 67108864;
  469.     mp[{7, 21}] = 39619792;
  470.     mp[{3, 49}] = 282416137;
  471.     mp[{1, 147}] = 134217728;
  472.     mp[{4, 37}] = 682994543;
  473.     mp[{2, 74}] = 363847199;
  474.     mp[{1, 148}] = 268435456;
  475.     mp[{1, 149}] = 536870912;
  476.     mp[{10, 15}] = 683650588;
  477.     mp[{6, 25}] = 116828880;
  478.     mp[{5, 30}] = 671248249;
  479.     mp[{3, 50}] = 650766224;
  480.     mp[{2, 75}] = 773391890;
  481.     mp[{1, 150}] = 1073741824;
  482.     mp[{1, 151}] = 1073741823;
  483.     mp[{8, 19}] = 273414395;
  484.     mp[{4, 38}] = 168713176;
  485.     mp[{2, 76}] = 900386418;
  486.     mp[{1, 152}] = 1073741821;
  487.     mp[{9, 17}] = 367985330;
  488.     mp[{3, 51}] = 194674717;
  489.     mp[{1, 153}] = 1073741817;
  490.     mp[{11, 14}] = 990459439;
  491.     mp[{7, 22}] = 114767483;
  492.     mp[{2, 77}] = 1026717559;
  493.     mp[{1, 154}] = 1073741809;
  494.     mp[{5, 31}] = 698428487;
  495.     mp[{1, 155}] = 1073741793;
  496.     mp[{12, 13}] = 322126045;
  497.     mp[{6, 26}] = 238799464;
  498.     mp[{4, 39}] = 340553102;
  499.     mp[{3, 52}] = 408031050;
  500.     mp[{2, 78}] = 585958213;
  501.     mp[{1, 156}] = 1073741761;
  502.     mp[{1, 157}] = 1073741697;
  503.     mp[{2, 79}] = 590084282;
  504.     mp[{1, 158}] = 1073741569;
  505.     mp[{3, 53}] = 656936178;
  506.     mp[{1, 159}] = 1073741313;
  507.     mp[{10, 16}] = 384011662;
  508.     mp[{8, 20}] = 761429881;
  509.     mp[{5, 32}] = 605930573;
  510.     mp[{4, 40}] = 639381479;
  511.     mp[{2, 80}] = 794685622;
  512.     mp[{1, 160}] = 1073740801;
  513.     mp[{7, 23}] = 272920239;
  514.     mp[{1, 161}] = 1073739777;
  515.     mp[{9, 18}] = 205177423;
  516.     mp[{6, 27}] = 372438335;
  517.     mp[{3, 54}] = 481393484;
  518.     mp[{2, 81}] = 342999955;
  519.     mp[{1, 162}] = 1073737729;
  520.     mp[{1, 163}] = 1073733633;
  521.     mp[{4, 41}] = 640433407;
  522.     mp[{2, 82}] = 470887459;
  523.     mp[{1, 164}] = 1073725441;
  524.     mp[{11, 15}] = 748903144;
  525.     mp[{5, 33}] = 618887114;
  526.     mp[{3, 55}] = 821881863;
  527.     mp[{1, 165}] = 1073709057;
  528.     mp[{2, 83}] = 1024920462;
  529.     mp[{1, 166}] = 1073676289;
  530.     mp[{1, 167}] = 1073610753;
  531.     mp[{12, 14}] = 475346110;
  532.     mp[{8, 21}] = 179940286;
  533.     mp[{7, 24}] = 352288148;
  534.     mp[{6, 28}] = 54930246;
  535.     mp[{4, 42}] = 631749497;
  536.     mp[{3, 56}] = 766631974;
  537.     mp[{2, 84}] = 795310829;
  538.     mp[{1, 168}] = 1073479681;
  539.     mp[{13, 13}] = 756270134;
  540.     mp[{1, 169}] = 1073217537;
  541.     mp[{10, 17}] = 774259418;
  542.     mp[{5, 34}] = 661413937;
  543.     mp[{2, 85}] = 140806111;
  544.     mp[{1, 170}] = 1072693249;
  545.     mp[{9, 19}] = 808714546;
  546.     mp[{3, 57}] = 733941340;
  547.     mp[{1, 171}] = 1071644673;
  548.     mp[{4, 43}] = 53489874;
  549.     mp[{2, 86}] = 939298166;
  550.     mp[{1, 172}] = 1069547521;
  551.     mp[{1, 173}] = 1065353217;
  552.     mp[{6, 29}] = 813509316;
  553.     mp[{3, 58}] = 764812936;
  554.     mp[{2, 87}] = 952023070;
  555.     mp[{1, 174}] = 1056964609;
  556.     mp[{7, 25}] = 550865994;
  557.     mp[{5, 35}] = 346952986;
  558.     mp[{1, 175}] = 1040187393;
  559.     mp[{11, 16}] = 146209688;
  560.     mp[{8, 22}] = 664186020;
  561.     mp[{4, 44}] = 443636779;
  562.     mp[{2, 88}] = 439698242;
  563.     mp[{1, 176}] = 1006632961;
  564.     mp[{3, 59}] = 962470388;
  565.     mp[{1, 177}] = 939524097;
  566.     mp[{2, 89}] = 1915391;
  567.     mp[{1, 178}] = 805306369;
  568.     mp[{1, 179}] = 536870913;
  569.     mp[{12, 15}] = 690179635;
  570.     mp[{10, 18}] = 537331269;
  571.     mp[{9, 20}] = 304896681;
  572.     mp[{6, 30}] = 356006445;
  573.     mp[{5, 36}] = 121598684;
  574.     mp[{4, 45}] = 690053780;
  575.     mp[{3, 60}] = 158927506;
  576.     mp[{2, 90}] = 885142657;
  577.     mp[{1, 180}] = 1;
  578.     mp[{1, 181}] = 2;
  579.     mp[{13, 14}] = 773633906;
  580.     mp[{7, 26}] = 384666604;
  581.     mp[{2, 91}] = 511775103;
  582.     mp[{1, 182}] = 4;
  583.     mp[{3, 61}] = 163866678;
  584.     mp[{1, 183}] = 8;
  585.     mp[{8, 23}] = 82054322;
  586.     mp[{4, 46}] = 820968372;
  587.     mp[{2, 92}] = 84385148;
  588.     mp[{1, 184}] = 16;
  589.     mp[{5, 37}] = 161045905;
  590.     mp[{1, 185}] = 32;
  591.     mp[{6, 31}] = 233929903;
  592.     mp[{3, 62}] = 608783635;
  593.     mp[{2, 93}] = 202963825;
  594.     mp[{1, 186}] = 64;
  595.     mp[{11, 17}] = 771657362;
  596.     mp[{1, 187}] = 128;
  597.     mp[{4, 47}] = 37559342;
  598.     mp[{2, 94}] = 777661771;
  599.     mp[{1, 188}] = 256;
  600.     mp[{9, 21}] = 476140437;
  601.     mp[{7, 27}] = 80158146;
  602.     mp[{3, 63}] = 605221357;
  603.     mp[{1, 189}] = 512;
  604.     mp[{10, 19}] = 204608041;
  605.     mp[{5, 38}] = 719170282;
  606.     mp[{2, 95}] = 591429313;
  607.     mp[{1, 190}] = 1024;
  608.     mp[{1, 191}] = 2048;
  609.     mp[{12, 16}] = 344242715;
  610.     mp[{8, 24}] = 566986614;
  611.     mp[{6, 32}] = 716092800;
  612.     mp[{4, 48}] = 160065352;
  613.     mp[{3, 64}] = 834978391;
  614.     mp[{2, 96}] = 108386006;
  615.     mp[{1, 192}] = 4096;
  616.     mp[{1, 193}] = 8192;
  617.     mp[{2, 97}] = 434274819;
  618.     mp[{1, 194}] = 16384;
  619.     mp[{13, 15}] = 415753406;
  620.     mp[{5, 39}] = 625048610;
  621.     mp[{3, 65}] = 239258022;
  622.     mp[{1, 195}] = 32768;
  623.     mp[{14, 14}] = 472559199;
  624.     mp[{7, 28}] = 570069903;
  625.     mp[{4, 49}] = 171240130;
  626.     mp[{2, 98}] = 445854644;
  627.     mp[{1, 196}] = 65536;
  628.     mp[{1, 197}] = 131072;
  629.     mp[{11, 18}] = 959441172;
  630.     mp[{9, 22}] = 954803232;
  631.     mp[{6, 33}] = 49208126;
  632.     mp[{3, 66}] = 582556941;
  633.     mp[{2, 99}] = 58629920;
  634.     mp[{1, 198}] = 262144;
  635.     mp[{1, 199}] = 524288;
  636.     mp[{10, 20}] = 1033545328;
  637.     mp[{8, 25}] = 416657370;
  638.     mp[{5, 40}] = 489256484;
  639.     mp[{4, 50}] = 48726788;
  640.     mp[{2, 100}] = 1067599048;
  641.     mp[{1, 200}] = 1048576;
  642.     mp[{3, 67}] = 395675280;
  643.     mp[{1, 201}] = 2097152;
  644.     mp[{2, 101}] = 98831509;
  645.     mp[{1, 202}] = 4194304;
  646.     mp[{7, 29}] = 985682940;
  647.     mp[{1, 203}] = 8388608;
  648.     mp[{12, 17}] = 215929455;
  649.     mp[{6, 34}] = 248911636;
  650.     mp[{4, 51}] = 622955679;
  651.     mp[{3, 68}] = 421980984;
  652.     mp[{2, 102}] = 284208973;
  653.     mp[{1, 204}] = 16777216;
  654.     mp[{5, 41}] = 113674485;
  655.     mp[{1, 205}] = 33554432;
  656.     mp[{2, 103}] = 1050289937;
  657.     mp[{1, 206}] = 67108864;
  658.     mp[{9, 23}] = 50742054;
  659.     mp[{3, 69}] = 406314212;
  660.     mp[{1, 207}] = 134217728;
  661.     mp[{13, 16}] = 422241885;
  662.     mp[{8, 26}] = 86200118;
  663.     mp[{4, 52}] = 180305821;
  664.     mp[{2, 104}] = 498062282;
  665.     mp[{1, 208}] = 268435456;
  666.     mp[{11, 19}] = 406003627;
  667.     mp[{1, 209}] = 536870912;
  668.     mp[{14, 15}] = 634665169;
  669.     mp[{10, 21}] = 927515784;
  670.     mp[{7, 30}] = 865203291;
  671.     mp[{6, 35}] = 307872842;
  672.     mp[{5, 42}] = 18263821;
  673.     mp[{3, 70}] = 764994014;
  674.     mp[{2, 105}] = 373541245;
  675.     mp[{1, 210}] = 1073741824;
  676.     mp[{1, 211}] = 1073741823;
  677.     mp[{4, 53}] = 792293558;
  678.     mp[{2, 106}] = 1043006474;
  679.     mp[{1, 212}] = 1073741821;
  680.     mp[{3, 71}] = 669977452;
  681.     mp[{1, 213}] = 1073741817;
  682.     mp[{2, 107}] = 654876437;
  683.     mp[{1, 214}] = 1073741809;
  684.     mp[{5, 43}] = 416460804;
  685.     mp[{1, 215}] = 1073741793;
  686.     mp[{12, 18}] = 52411008;
  687.     mp[{9, 24}] = 647963480;
  688.     mp[{8, 27}] = 794597561;
  689.     mp[{6, 36}] = 189176078;
  690.     mp[{4, 54}] = 502583791;
  691.     mp[{3, 72}] = 133509205;
  692.     mp[{2, 108}] = 829416784;
  693.     mp[{1, 216}] = 1073741761;
  694.     mp[{7, 31}] = 85857128;
  695.     mp[{1, 217}] = 1073741697;
  696.     mp[{2, 109}] = 576777751;
  697.     mp[{1, 218}] = 1073741569;
  698.     mp[{3, 73}] = 207257733;
  699.     mp[{1, 219}] = 1073741313;
  700.     mp[{11, 20}] = 362547759;
  701.     mp[{10, 22}] = 915035514;
  702.     mp[{5, 44}] = 584606047;
  703.     mp[{4, 55}] = 933914413;
  704.     mp[{2, 110}] = 167941346;
  705.     mp[{1, 220}] = 1073740801;
  706.     mp[{13, 17}] = 575898004;
  707.     mp[{1, 221}] = 1073739777;
  708.     mp[{6, 37}] = 858131404;
  709.     mp[{3, 74}] = 304119109;
  710.     mp[{2, 111}] = 583637715;
  711.     mp[{1, 222}] = 1073737729;
  712.     mp[{1, 223}] = 1073733633;
  713.     mp[{14, 16}] = 251807369;
  714.     mp[{8, 28}] = 748856911;
  715.     mp[{7, 32}] = 592409859;
  716.     mp[{4, 56}] = 179642384;
  717.     mp[{2, 112}] = 1013054012;
  718.     mp[{1, 224}] = 1073725441;
  719.     mp[{15, 15}] = 375125158;
  720.     mp[{9, 25}] = 262614440;
  721.     mp[{5, 45}] = 179752388;
  722.     mp[{3, 75}] = 31985793;
  723.     mp[{1, 225}] = 1073709057;
  724.     mp[{2, 113}] = 985211991;
  725.     mp[{1, 226}] = 1073676289;
  726.     mp[{1, 227}] = 1073610753;
  727.     mp[{12, 19}] = 300697745;
  728.     mp[{6, 38}] = 1036448107;
  729.     mp[{4, 57}] = 478994217;
  730.     mp[{3, 76}] = 689756619;
  731.     mp[{2, 114}] = 686776697;
  732.     mp[{1, 228}] = 1073479681;
  733.     mp[{1, 229}] = 1073217537;
  734.     mp[{10, 23}] = 226228076;
  735.     mp[{5, 46}] = 451326207;
  736.     mp[{2, 115}] = 809528598;
  737.     mp[{1, 230}] = 1072693249;
  738.     mp[{11, 21}] = 71052195;
  739.     mp[{7, 33}] = 714061793;
  740.     mp[{3, 77}] = 405033400;
  741.     mp[{1, 231}] = 1071644673;
  742.     mp[{8, 29}] = 645274901;
  743.     mp[{4, 58}] = 432516586;
  744.     mp[{2, 116}] = 580913713;
  745.     mp[{1, 232}] = 1069547521;
  746.     mp[{1, 233}] = 1065353217;
  747.     mp[{13, 18}] = 771830904;
  748.     mp[{9, 26}] = 917205248;
  749.     mp[{6, 39}] = 756421477;
  750.     mp[{3, 78}] = 140531371;
  751.     mp[{2, 117}] = 140572860;
  752.     mp[{1, 234}] = 1056964609;
  753.     mp[{5, 47}] = 348022766;
  754.     mp[{1, 235}] = 1040187393;
  755.     mp[{4, 59}] = 94441799;
  756.     mp[{2, 118}] = 509804181;
  757.     mp[{1, 236}] = 1006632961;
  758.     mp[{3, 79}] = 678775188;
  759.     mp[{1, 237}] = 939524097;
  760.     mp[{14, 17}] = 701371007;
  761.     mp[{7, 34}] = 59205842;
  762.     mp[{2, 119}] = 736816438;
  763.     mp[{1, 238}] = 805306369;
  764.     mp[{1, 239}] = 536870913;
  765.     mp[{15, 16}] = 367060492;
  766.     mp[{12, 20}] = 233565932;
  767.     mp[{10, 24}] = 261257487;
  768.     mp[{8, 30}] = 837604474;
  769.     mp[{6, 40}] = 496579399;
  770.     mp[{5, 48}] = 680071760;
  771.     mp[{4, 60}] = 544173112;
  772.     mp[{3, 80}] = 462952966;
  773.     mp[{2, 120}] = 8832201;
  774.     mp[{1, 240}] = 1;
  775.     mp[{1, 241}] = 2;
  776.     mp[{11, 22}] = 551854612;
  777.     mp[{2, 121}] = 426387654;
  778.     mp[{1, 242}] = 4;
  779.     mp[{9, 27}] = 603611462;
  780.     mp[{3, 81}] = 238013318;
  781.     mp[{1, 243}] = 8;
  782.     mp[{4, 61}] = 347416906;
  783.     mp[{2, 122}] = 223085539;
  784.     mp[{1, 244}] = 16;
  785.     mp[{7, 35}] = 543022393;
  786.     mp[{5, 49}] = 200020348;
  787.     mp[{1, 245}] = 32;
  788.     mp[{6, 41}] = 878172140;
  789.     mp[{3, 82}] = 385646605;
  790.     mp[{2, 123}] = 448290100;
  791.     mp[{1, 246}] = 64;
  792.     mp[{13, 19}] = 1051104360;
  793.     mp[{1, 247}] = 128;
  794.     mp[{8, 31}] = 23808347;
  795.     mp[{4, 62}] = 9584202;
  796.     mp[{2, 124}] = 717299553;
  797.     mp[{1, 248}] = 256;
  798.     mp[{3, 83}] = 1028271827;
  799.     mp[{1, 249}] = 512;
  800.     mp[{10, 25}] = 994080129;
  801.     mp[{5, 50}] = 402630107;
  802.     mp[{2, 125}] = 900995209;
  803.     mp[{1, 250}] = 1024;
  804.     mp[{1, 251}] = 2048;
  805.     mp[{14, 18}] = 956528130;
  806.     mp[{12, 21}] = 41741104;
  807.     mp[{9, 28}] = 234768751;
  808.     mp[{7, 36}] = 322108598;
  809.     mp[{6, 42}] = 966711602;
  810.     mp[{4, 63}] = 538390806;
  811.     mp[{3, 84}] = 408093191;
  812.     mp[{2, 126}] = 916359258;
  813.     mp[{1, 252}] = 4096;
  814.     mp[{11, 23}] = 17292646;
  815.     mp[{1, 253}] = 8192;
  816.     mp[{2, 127}] = 256100892;
  817.     mp[{1, 254}] = 16384;
  818.     mp[{15, 17}] = 341142700;
  819.     mp[{5, 51}] = 810464320;
  820.     mp[{3, 85}] = 467114117;
  821.     mp[{1, 255}] = 32768;
  822.     mp[{16, 16}] = 589311468;
  823.     mp[{8, 32}] = 334418192;
  824.     mp[{4, 64}] = 963789131;
  825.     mp[{2, 128}] = 453537542;
  826.     mp[{1, 256}] = 65536;
  827.     mp[{1, 257}] = 131072;
  828.     mp[{6, 43}] = 198818879;
  829.     mp[{3, 86}] = 896678796;
  830.     mp[{2, 129}] = 799072585;
  831.     mp[{1, 258}] = 262144;
  832.     mp[{7, 37}] = 409199163;
  833.     mp[{1, 259}] = 524288;
  834.     mp[{13, 20}] = 295047889;
  835.     mp[{10, 26}] = 26681205;
  836.     mp[{5, 52}] = 16813230;
  837.     mp[{4, 65}] = 176673179;
  838.     mp[{2, 130}] = 83067364;
  839.     mp[{1, 260}] = 1048576;
  840.     mp[{9, 29}] = 293858488;
  841.     mp[{3, 87}] = 596519620;
  842.     mp[{1, 261}] = 2097152;
  843.     mp[{2, 131}] = 773605437;
  844.     mp[{1, 262}] = 4194304;
  845.     mp[{1, 263}] = 8388608;
  846.     mp[{12, 22}] = 883924328;
  847.     mp[{11, 24}] = 45058746;
  848.     mp[{8, 33}] = 91120010;
  849.     mp[{6, 44}] = 298695588;
  850.     mp[{4, 66}] = 416956597;
  851.     mp[{3, 88}] = 1039958574;
  852.     mp[{2, 132}] = 339467389;
  853.     mp[{1, 264}] = 16777216;
  854.     mp[{5, 53}] = 605304481;
  855.     mp[{1, 265}] = 33554432;
  856.     mp[{14, 19}] = 105566023;
  857.     mp[{7, 38}] = 445764581;
  858.     mp[{2, 133}] = 418129391;
  859.     mp[{1, 266}] = 67108864;
  860.     mp[{3, 89}] = 867243587;
  861.     mp[{1, 267}] = 134217728;
  862.     mp[{4, 67}] = 379436510;
  863.     mp[{2, 134}] = 859581126;
  864.     mp[{1, 268}] = 268435456;
  865.     mp[{1, 269}] = 536870912;
  866.     mp[{15, 18}] = 580898518;
  867.     mp[{10, 27}] = 1036868276;
  868.     mp[{9, 30}] = 89864942;
  869.     mp[{6, 45}] = 180118652;
  870.     mp[{5, 54}] = 130025389;
  871.     mp[{3, 90}] = 687847054;
  872.     mp[{2, 135}] = 193776685;
  873.     mp[{1, 270}] = 1073741824;
  874.     mp[{1, 271}] = 1073741823;
  875.     mp[{16, 17}] = 610277199;
  876.     mp[{8, 34}] = 571323539;
  877.     mp[{4, 68}] = 996681999;
  878.     mp[{2, 136}] = 153008657;
  879.     mp[{1, 272}] = 1073741821;
  880.     mp[{13, 21}] = 862006394;
  881.     mp[{7, 39}] = 186439899;
  882.     mp[{3, 91}] = 353928637;
  883.     mp[{1, 273}] = 1073741817;
  884.     mp[{2, 137}] = 846579341;
  885.     mp[{1, 274}] = 1073741809;
  886.     mp[{11, 25}] = 389136808;
  887.     mp[{5, 55}] = 865727621;
  888.     mp[{1, 275}] = 1073741793;
  889.     mp[{12, 23}] = 729275546;
  890.     mp[{6, 46}] = 231852617;
  891.     mp[{4, 69}] = 472161081;
  892.     mp[{3, 92}] = 305142160;
  893.     mp[{2, 138}] = 698271687;
  894.     mp[{1, 276}] = 1073741761;
  895.     mp[{1, 277}] = 1073741697;
  896.     mp[{2, 139}] = 566748268;
  897.     mp[{1, 278}] = 1073741569;
  898.     mp[{9, 31}] = 647068496;
  899.     mp[{3, 93}] = 443202938;
  900.     mp[{1, 279}] = 1073741313;
  901.     mp[{14, 20}] = 754798662;
  902.     mp[{10, 28}] = 874191076;
  903.     mp[{8, 35}] = 381154806;
  904.     mp[{7, 40}] = 951368892;
  905.     mp[{5, 56}] = 396317252;
  906.     mp[{4, 70}] = 223062477;
  907.     mp[{2, 140}] = 949304528;
  908.     mp[{1, 280}] = 1073740801;
  909.     mp[{1, 281}] = 1073739777;
  910.     mp[{6, 47}] = 84485526;
  911.     mp[{3, 94}] = 719303184;
  912.     mp[{2, 141}] = 760184645;
  913.     mp[{1, 282}] = 1073737729;
  914.     mp[{1, 283}] = 1073733633;
  915.     mp[{4, 71}] = 949692912;
  916.     mp[{2, 142}] = 957937516;
  917.     mp[{1, 284}] = 1073725441;
  918.     mp[{15, 19}] = 165309506;
  919.     mp[{5, 57}] = 622748827;
  920.     mp[{3, 95}] = 740176298;
  921.     mp[{1, 285}] = 1073709057;
  922.     mp[{13, 22}] = 779261580;
  923.     mp[{11, 26}] = 1024474442;
  924.     mp[{2, 143}] = 99214538;
  925.     mp[{1, 286}] = 1073676289;
  926.     mp[{7, 41}] = 583466840;
  927.     mp[{1, 287}] = 1073610753;
  928.     mp[{16, 18}] = 514185706;
  929.     mp[{12, 24}] = 16030797;
  930.     mp[{9, 32}] = 792399550;
  931.     mp[{8, 36}] = 802557100;
  932.     mp[{6, 48}] = 880130397;
  933.     mp[{4, 72}] = 800148219;
  934.     mp[{3, 96}] = 343852339;
  935.     mp[{2, 144}] = 66034996;
  936.     mp[{1, 288}] = 1073479681;
  937.     mp[{17, 17}] = 272912734;
  938.     mp[{1, 289}] = 1073217537;
  939.     mp[{10, 29}] = 308020498;
  940.     mp[{5, 58}] = 87623482;
  941.     mp[{2, 145}] = 396534064;
  942.     mp[{1, 290}] = 1072693249;
  943.     mp[{3, 97}] = 697552910;
  944.     mp[{1, 291}] = 1071644673;
  945.     mp[{4, 73}] = 13524600;
  946.     mp[{2, 146}] = 247930359;
  947.     mp[{1, 292}] = 1069547521;
  948.     mp[{1, 293}] = 1065353217;
  949.     mp[{14, 21}] = 909861411;
  950.     mp[{7, 42}] = 1039932676;
  951.     mp[{6, 49}] = 217212875;
  952.     mp[{3, 98}] = 515296406;
  953.     mp[{2, 147}] = 463117380;
  954.     mp[{1, 294}] = 1056964609;
  955.     mp[{5, 59}] = 473889860;
  956.     mp[{1, 295}] = 1040187393;
  957.     mp[{8, 37}] = 260919957;
  958.     mp[{4, 74}] = 796266341;
  959.     mp[{2, 148}] = 811471033;
  960.     mp[{1, 296}] = 1006632961;
  961.     mp[{11, 27}] = 475155671;
  962.     mp[{9, 33}] = 256351480;
  963.     mp[{3, 99}] = 201765188;
  964.     mp[{1, 297}] = 939524097;
  965.     mp[{2, 149}] = 139422384;
  966.     mp[{1, 298}] = 805306369;
  967.     mp[{13, 23}] = 47478729;
  968.     mp[{1, 299}] = 536870913;
  969.     mp[{15, 20}] = 322193450;
  970.     mp[{12, 25}] = 450155399;
  971.     mp[{10, 30}] = 716405555;
  972.     mp[{6, 50}] = 656842754;
  973.     mp[{5, 60}] = 410709929;
  974.     mp[{4, 75}] = 157235492;
  975.     mp[{3, 100}] = 287632701;
  976.     mp[{2, 150}] = 967467393;
  977.     mp[{1, 300}] = 1;
  978. }
  979.  
  980. int main() {
  981.     ios_base::sync_with_stdio(false);
  982.     ifstream fin;
  983.     ofstream fout;
  984.     if (isFileInput) {
  985.         const string inputFile = commonFileName.empty() ? "input.txt" : commonFileName + ".in";
  986.         const string outputFile = commonFileName.empty() ? "output.txt" : commonFileName + ".out";
  987.         if (!inputFile.empty()) {
  988.             fin = ifstream(inputFile);
  989.             if (!fin.good()) {
  990.                 fout = ofstream(inputFile);
  991.                 fout << "pu pu pu..." << endl;
  992.                 cout << "Input file created: " << inputFile << "\n";
  993.                 return 0;
  994.             }
  995.         }
  996.         if (!outputFile.empty()) fout = ofstream(outputFile);
  997.     }
  998.     istream& in = !isFileInput ? cin : fin;
  999.     ostream& out = !isFileInput ? cout : fout;
  1000.     in.tie(nullptr);
  1001.     out.tie(nullptr);
  1002.     Precalc();
  1003.     int t = 1;
  1004.     if (tests) in >> t;
  1005.     for (int i = 1; i <= t; i++) Solve(in, out);
  1006. }
Advertisement
Comments
Add Comment
Please, Sign In to add comment
Advertisement