/* This program is part of the TACLeBench benchmark suite. Version V 2.0 Name: quicksort Author: Matthew R. Guthaus Function: quicksort applies a recursive quicksort algorithm to two different input sets. Source: MiBench http://wwweb.eecs.umich.edu/mibench Original name: qsort Changes: No major functional changes. License: GPL */ const char *quicksort_input_string[ 681 ] = { "Kurt", "Vonneguts", "Commencement", "Address", "at", "MIT", "Ladies", "and", "gentlemen", "of", "the", "class", "of", "97", "Wear", "sunscreen", "If", "I", "could", "offer", "you", "only", "one", "tip", "for", "the", "future", "sunscreen", "would", "be", "it", "The", "longterm", "benefits", "of", "sunscreen", "have", "been", "proved", "by", "scientists", "whereas", "the", "rest", "of", "my", "advice", "has", "no", "basis", "more", "reliable", "than", "my", "own", "meandering", "experience", "I", "will", "dispense", "this", "advice", "now", "Enjoy", "the", "power", "and", "beauty", "of", "your", "youth", "Oh", "never", "mind", "You", "will", "not", "understand", "the", "power", "and", "beauty", "of", "your", "youth", "until", "theyve", "faded", "But", "trust", "me", "in", "20", "years", "youll", "look", "back", "at", "photos", "of", "yourself", "and", "recall", "in", "a", "way", "you", "cant", "grasp", "now", "how", "much", "possibility", "lay", "before", "you", "and", "how", "fabulous", "you", "really", "looked", "You", "are", "not", "as", "fat", "as", "you", "imagine", "Dont", "worry", "about", "the", "future", "Or", "worry", "but", "know", "that", "worrying", "is", "as", "effective", "as", "trying", "to", "solve", "an", "algebra", "equation", "by", "chewing", "bubble", "gum", "The", "real", "troubles", "in", "your", "life", "are", "apt", "to", "be", "things", "that", "never", "crossed", "your", "worried", "mind", "the", "kind", "that", "blindside", "you", "at", "4", "pm", "on", "some", "idle", "Tuesday", "Do", "one", "thing", "every", "day", "that", "scares", "you", "Sing", "Dont", "be", "reckless", "with", "other", "peoples", "hearts", "Dont", "put", "up", "with", "people", "who", "are", "reckless", "with", "yours", "Floss", "Dont", "waste", "your", "time", "on", "jealousy", "Sometimes", "youre", "ahead", "sometimes", "youre", "behind", "The", "race", "is", "long", "and", "in", "the", "end", "its", "only", "with", "yourself", "Remember", "compliments", "you", "receive", "Forget", "the", "insults", "If", "you", "succeed", "in", "doing", "this", "tell", "me", "how", "Keep", "your", "old", "love", "letters", "Throw", "away", "your", "old", "bank", "statements", "Stretch", "Dont", "feel", "guilty", "if", "you", "dont", "know", "what", "you", "want", "to", "do", "with", "your", "life", "The", "most", "interesting", "people", "I", "know", "didnt", "know", "at", "22", "what", "they", "wanted", "to", "do", "with", "their", "lives", "Some", "of", "the", "most", "interesting", "40yearolds", "I", "know", "still", "dont", "Get", "plenty", "of", "calcium", "Be", "kind", "to", "your", "knees", "Youll", "miss", "them", "when", "theyre", "gone", "Maybe", "youll", "marry", "maybe", "you", "wont", "Maybe", "youll", "have", "children", "maybe", "you", "wont", "Maybe", "youll", "divorce", "at", "40", "maybe", "youll", "dance", "the", "funky", "chicken", "on", "your", "75th", "wedding", "anniversary", "Whatever", "you", "do", "dont", "congratulate", "yourself", "too", "much", "or", "berate", "yourself", "either", "Your", "choices", "are", "half", "chance", "So", "are", "everybody", "elses", "Enjoy", "your", "body", "Use", "it", "every", "way", "you", "can", "Dont", "be", "afraid", "of", "it", "or", "of", "what", "other", "people", "think", "of", "it", "Its", "the", "greatest", "instrument", "youll", "ever", "own", "Dance", "even", "if", "you", "have", "nowhere", "to", "do", "it", "but", "your", "living", "room", "Read", "the", "directions", "even", "if", "you", "dont", "follow", "them", "Do", "not", "read", "beauty", "magazines", "They", "will", "only", "make", "you", "feel", "ugly", "Get", "to", "know", "your", "parents", "You", "never", "know", "when", "theyll", "be", "gone", "for", "good", "Be", "nice", "to", "your", "siblings", "Theyre", "your", "best", "link", "to", "your", "past", "and", "the", "people", "most", "likely", "to", "stick", "with", "you", "in", "the", "future", "Understand", "that", "friends", "come", "and", "go", "but", "with", "a", "precious", "few", "you", "should", "hold", "on", "Work", "hard", "to", "bridge", "the", "gaps", "in", "geography", "and", "lifestyle", "because", "the", "older", "you", "get", "the", "more", "you", "need", "the", "people", "who", "knew", "you", "when", "you", "were", "young", "Live", "in", "New", "York", "City", "once", "but", "leave", "before", "it", "makes", "you", "hard", "Live", "in", "Northern", "California", "once", "but", "leave", "before", "it", "makes", "you", "soft", "Travel", "Accept", "certain", "inalienable", "truths", "Prices", "will", "rise", "Politicians", "will", "philander", "You", "too", "will", "get", "old", "And", "when", "you", "do", "youll", "fantasize", "that", "when", "you", "were", "young", "prices", "were", "reasonable", "politicians", "were", "noble", "and", "children", "respected", "their", "elders", "Respect", "your", "elders", "Dont", "expect", "anyone", "else", "to", "support", "you", "Maybe", "you", "have", "a", "trust", "fund", "Maybe", "youll", "have", "a", "wealthy", "spouse", "But", "you", "never", "know", "when", "either", "one", "might", "run", "out", "Dont", "mess", "too", "much", "with", "your", "hair", "or", "by", "the", "time", "youre", "40", "it", "will", "look", "85", "Be", "careful", "whose", "advice", "you", "buy", "but", "be", "patient", "with", "those", "who", "supply", "it", "Advice", "is", "a", "form", "of", "nostalgia", "Dispensing", "it", "is", "a", "way", "of", "fishing", "the", "past", "from", "the", "disposal", "wiping", "it", "off", "painting", "over", "the", "ugly", "parts", "and", "recycling", "it", "for", "more", "than", "its", "worth", "But", "trust", "me", "on", "the", "sunscreen" }; unsigned int quicksort_input_vector[ 3000 ] = { 1681692777, 846930886, 1804289383, 424238335, 1957747793, 1714636915, 596516649, 1649760492, 719885386, 1350490027, 1025202362, 1189641421, 2044897763, 1102520059, 783368690, 1540383426, 1365180540, 1967513926, 35005211, 1303455736, 304089172, 1726956429, 294702567, 521595368, 278722862, 861021530, 336465782, 468703135, 2145174067, 233665123, 1315634022, 1801979802, 1101513929, 1125898167, 1369133069, 635723058, 628175011, 2089018456, 1059961393, 1653377373, 1131176229, 1656478042, 608413784, 1914544919, 859484421, 1973594324, 1734575198, 756898537, 1129566413, 2038664370, 149798315, 1424268980, 412776091, 184803526, 137806862, 749241873, 1911759956, 135497281, 982906996, 42999170, 1937477084, 2084420925, 511702305, 1159126505, 572660336, 1827336327, 1100661313, 1632621729, 805750846, 84353895, 1141616124, 1433925857, 1998898814, 2001100545, 939819582, 1585990364, 610515434, 1548233367, 1477171087, 760313750, 1374344043, 1889947178, 945117276, 356426808, 491705403, 709393584, 1780695788, 1474612399, 752392754, 1918502651, 1411549676, 1264095060, 2053999932, 1984210012, 943947739, 1843993368, 1469348094, 1749698586, 855636226, 463480570, 1036140795, 1956297539, 317097467, 1975960378, 2040651434, 927612902, 1376710097, 1892066601, 1687926652, 603570492, 1330573317, 485560280, 959997301, 660260756, 1194953865, 593209441, 402724286, 1947346619, 364228444, 894429689, 1063958031, 270744729, 221558440, 2007905771, 2114738097, 1633108117, 1610120709, 822890675, 1469834481, 498777856, 631704567, 791698927, 327254586, 524872353, 1255179497, 1703964683, 269455306, 1572276965, 160051528, 1600028624, 352406219, 1120048829, 112805732, 2040332871, 1713258270, 515530019, 378409503, 2077486715, 1409959708, 1573363368, 200747796, 1631518149, 1373226340, 168002245, 1117142618, 289700723, 990892921, 439493451, 150122846, 1622597488, 1231192379, 1760243555, 2147469841, 338888228, 111537764, 269441500, 1911165193, 438792350, 1869470124, 116087764, 2142757034, 1982275856, 8936987, 155324914, 350322227, 387346491, 1275373743, 1760281936, 1960709859, 841148365, 1244316437, 1186452551, 771151432, 213975407, 1476153275, 971899228, 653468858, 1626276121, 1139901474, 1884661237, 1239036029, 2130794395, 76065818, 1350573793, 1605908235, 1987231011, 1789366143, 1605894428, 2103318776, 1784639529, 1875335928, 2112255763, 1939964443, 1597322404, 352118606, 1067854538, 1432114613, 165344818, 1909002904, 1782436840, 1351797369, 532670688, 1395235128, 680466996, 1504569917, 492067917, 159259470, 496987743, 706043324, 1398295499, 480298490, 1359512183, 601385644, 2086206725, 1096689772, 243268139, 1544617505, 1172755590, 2027907669, 1272469786, 1012502954, 1820388464, 722308542, 968338082, 740759355, 6939507, 933110197, 502278611, 1789376348, 1285228804, 1034949299, 1037127828, 1450573622, 392035568, 1529195746, 654887343, 889023311, 87755422, 1335354340, 1369321801, 1447267605, 1494613810, 1308044878, 396473730, 745425661, 705178736, 1569229320, 1346811305, 1977648522, 434248626, 1590079444, 552473416, 1402586708, 1470503465, 559412924, 188213258, 1143408282, 201305624, 1473442062, 1884167637, 1238433452, 776532036, 238962600, 620145550, 1431419379, 1273911899, 707900973, 619290071, 1665947468, 7684930, 2113903881, 407487131, 404158660, 711845894, 1776808933, 1973387981, 2058657199, 937370163, 260152959, 1501252996, 1642548899, 1662739668, 824272813, 1472713773, 1850952926, 1967681095, 2025187190, 1176911340, 1704365084, 437116466, 1953443376, 1943327684, 638422090, 1237379107, 1069755936, 1876855542, 1856669179, 588219756, 349517445, 1823089412, 995706887, 1057418418, 387451659, 625032172, 1065103348, 298625210, 1562402336, 1469262009, 1799878206, 1057467587, 1295166342, 476667372, 382697713, 1555319301, 296864819, 260401255, 1070575321, 2001229904, 697517721, 774044599, 1797073940, 1335939811, 1950955939, 719346228, 1065311705, 1756915667, 1307565984, 1414829150, 846811127, 155789224, 324763920, 555996658, 780821396, 1389867269, 231602422, 195740084, 711645630, 619054081, 1253207672, 2006811972, 917679292, 1635905385, 1414647625, 570073850, 1896306640, 337739299, 1046741222, 446340713, 1111783898, 1343606042, 1782280524, 915256190, 1197352298, 700108581, 524688209, 846942590, 2114937732, 1371499336, 1566288819, 292218004, 1927495994, 726371155, 1682085273, 11614769, 882160379, 246247255, 630668850, 1662981776, 105575579, 1548348142, 1858721860, 1520223205, 2118421993, 964445884, 1857962504, 1017679567, 452867621, 822262754, 213801961, 201690613, 1737518944, 1411154259, 648031326, 114723506, 110613202, 282828202, 1486222842, 1676902021, 982936784, 1266235189, 255789528, 950390868, 1277849958, 1137949908, 1242608872, 1908518808, 653448036, 777210498, 1309383303, 364686248, 1023457753, 1280321648, 1329132133, 1129033333, 150517567, 1781999754, 501772890, 364319529, 1983690368, 212251746, 1775473788, 484238046, 1034514500, 1886086990, 767066249, 624549797, 1415505363, 1750003033, 739273303, 1671294892, 552910253, 78012497, 661761152, 1795519125, 1344247686, 1315209188, 425245975, 474613996, 1679895436, 1448703729, 235649157, 861543921, 430253414, 1545032460, 496060028, 932026304, 677870460, 332266748, 1144278050, 828388027, 816504794, 31308902, 1192707556, 1583571043, 655858699, 820697697, 1186090428, 1395132002, 559301039, 1739000681, 1473144500, 1974806403, 1387036159, 669908538, 1498617647, 1812282134, 1144522535, 12895151, 1113502215, 1380171692, 1328104339, 1543755629, 777720504, 860516127, 328298285, 1455590964, 1722060049, 1472576335, 136495343, 70636429, 1503885238, 1329202900, 402903177, 12260289, 2416949, 1219407971, 1407392292, 561717988, 655495367, 733053144, 389040743, 1841585795, 1402961682, 1887658390, 1433102829, 400000569, 1900553541, 672655340, 1780172261, 1081174232, 337453826, 410409117, 1941690360, 1450956042, 1866000081, 1516266761, 847228023, 2002495425, 1586903190, 1175526309, 1184214677, 1989806367, 500618996, 1186631626, 1061730690, 2004504234, 1748349614, 1717226057, 2016764524, 2137390358, 1411328205, 1276673168, 1877565100, 696947386, 2009726312, 1630634994, 1369602726, 1265204346, 564325578, 1707056552, 1665204916, 358532290, 1010528946, 1297893529, 1874799051, 1857756970, 1708302647, 1314218593, 885799631, 1426819080, 1156541312, 1386418627, 1281830857, 70788355, 1243439214, 318561886, 1788014412, 1112720090, 1505193512, 1051858969, 241909610, 1106059479, 1748806355, 104152274, 1095966189, 970925433, 1369356620, 826047641, 530498338, 887077888, 309198987, 1541027284, 37487770, 873524566, 1251300606, 1745790417, 1232056856, 2137100237, 1025125849, 959372260, 1376035217, 159473059, 126107205, 471990783, 478034945, 1282648518, 1584710873, 1983228458, 1353436873, 1826620483, 941804289, 993967637, 1930772757, 2037770478, 2045826607, 1152645729, 716334471, 1647149314, 2039723618, 1025533459, 470591100, 2077211388, 1899058025, 1001089438, 1675518157, 983631233, 394633074, 553160358, 1943003493, 1645933681, 712633417, 2069110699, 1635550270, 1190668363, 1204275569, 864101839, 1026413173, 410228794, 1336092622, 1968217462, 1404196431, 773319847, 1858504292, 1302539390, 452456682, 427355115, 802205057, 235745791, 1452888574, 1272796157, 1388391521, 1204462951, 126401947, 1280631491, 40610537, 521035021, 1210359231, 1983614030, 19485054, 738393740, 1905241081, 1655035325, 1291554098, 962033002, 371653516, 2004187516, 1372261796, 1707746139, 1047372231, 628974580, 333582338, 2073785404, 1931513970, 786039021, 1894519218, 586235379, 1021784812, 1605539862, 1859031536, 262692685, 2032894977, 1985433483, 1543324176, 1338299904, 358984857, 606199759, 395279207, 378469911, 1344593499, 435889744, 2033505236, 488663950, 272020127, 257675105, 345367818, 29777560, 1965421244, 1392740049, 991810563, 151519934, 1319041805, 216588711, 937558955, 1066077375, 845563291, 1959343768, 524133589, 629593614, 74552805, 409544918, 1215828993, 1617876982, 1747844822, 927376882, 76593093, 2143124030, 765326717, 1421186593, 431530126, 1124311574, 1909850543, 703550253, 1502781486, 107734713, 733327814, 1388803074, 1500474762, 1725138377, 1646478179, 672032919, 1941727088, 1464415775, 1738110294, 639806732, 1615935710, 114760235, 1269400346, 406011017, 524305153, 337745691, 217871137, 124666328, 1265122573, 292423943, 120306710, 2030449291, 1910300925, 551836836, 1007277217, 1986894018, 1255387090, 362575055, 1260596963, 1988714904, 1751378130, 1022963858, 1566369633, 1250372661, 1130698571, 1360613073, 567304789, 483689685, 2000419805, 35756851, 1155722604, 1122336503, 441767868, 746349250, 1460082195, 659639006, 861109485, 577721120, 952062949, 1385414639, 460686763, 714880226, 1510080967, 1467963981, 554290596, 1630387677, 1830539036, 1814887560, 34740865, 1434433518, 690367770, 1290127955, 537322532, 1821066342, 1131359211, 1104627321, 157272379, 550245196, 1140384172, 1312994984, 1910858270, 1582152040, 2059344234, 1763794427, 94307398, 772970072, 738647283, 1046370347, 10901063, 51245830, 1761250573, 1520982030, 628966950, 168057522, 1003886059, 1089653714, 1982945082, 1038626924, 410134047, 525829204, 181271232, 93189435, 199411898, 1312630443, 1527622954, 356684278, 1862875640, 2064945486, 1669679262, 1626250262, 1022089159, 1581539848, 1242561041, 14989683, 207026272, 1981208324, 1597141723, 217927335, 2032454154, 1691449122, 1738909365, 513937457, 590335821, 595311776, 1603591171, 204102747, 1633938701, 2013725218, 372160269, 1815209933, 2106914653, 207621703, 980356728, 1487053959, 733450907, 695748720, 1404515797, 932862806, 174515334, 279121308, 1289547084, 1417076376, 294110991, 811742698, 1250801052, 1891252715, 245798898, 1135771559, 1435218189, 452825171, 1649709016, 2025554010, 670752506, 1105816539, 82173109, 262178224, 972058109, 454333378, 857490000, 931489114, 661955081, 343945053, 271059426, 1395405989, 11671338, 1675575223, 180785147, 992028067, 1954696532, 1470332231, 1687776787, 101323875, 134591281, 1862292122, 1992576590, 380390179, 1131884850, 1280311131, 833215350, 235202254, 1158381494, 1503967857, 1370973813, 1240554603, 1766146081, 873199181, 1694887982, 476152433, 1979015720, 209359415, 820097487, 803590181, 1604765404, 831768825, 1735079296, 1785550551, 1823796892, 2006138722, 1108399134, 1364090032, 1534230297, 1242990415, 1078898506, 1341443181, 1623380595, 63299708, 1442767057, 309112297, 298501962, 1287859999, 1813080154, 1669475776, 420687483, 1431742587, 395191309, 1579068977, 1907895021, 226723382, 672139932, 580508860, 1030313563, 219544266, 1412277685, 617909211, 428903682, 1088590930, 476564285, 2033669086, 305197314, 2010794583, 1671735990, 1384095820, 1204754116, 632651476, 1447395528, 500037525, 1875641892, 1745897490, 1787897525, 1351538839, 1267889618, 61101360, 1660651136, 1663080928, 1640170337, 1326247643, 1889804310, 164826621, 610506582, 772634225, 384370888, 370917955, 1390543437, 813274570, 951426815, 1867107722, 699460008, 216220853, 1730418657, 223712350, 1304811783, 787689126, 856363827, 1610009097, 1287726651, 584522071, 846621269, 928140528, 1936060910, 146533149, 989241888, 1449228398, 1892430639, 481928577, 627992393, 1012836610, 646755199, 1238498976, 528433890, 1031126087, 1609416931, 270754552, 1844400657, 413360099, 1043388777, 396377017, 629580952, 286448566, 620089368, 1934392735, 6072641, 1476453195, 1396918184, 1736491298, 2060975266, 96055805, 376696776, 1849552528, 242588954, 1664423428, 1151297278, 2135019593, 445080308, 1779289672, 1000372555, 1434322197, 870305000, 1528806445, 1916250774, 332238283, 1799560997, 415522325, 745598382, 695466127, 1446648412, 1375179334, 981914693, 1143565421, 1162088421, 987987334, 1539942439, 411522957, 576994985, 12548159, 507578762, 953691761, 1489001354, 750167716, 470631541, 1402492972, 737703662, 915711850, 1104561852, 1738076217, 202550399, 108375482, 1119399015, 2118801173, 1887665154, 771476364, 386839851, 610486506, 1466942491, 1833488263, 942724790, 301373537, 829570037, 1688323172, 1289360871, 222028828, 916018859, 1866355856, 234576987, 2078107280, 672563970, 1723578341, 342146590, 1143195511, 978587665, 849725352, 2058907361, 2083149517, 1599893069, 113974112, 44041351, 190113083, 85291638, 1931706506, 1928189300, 472131489, 394709364, 900104667, 158136104, 1337434154, 1671581032, 987706141, 878273679, 991039875, 1209734969, 1794292538, 1292413412, 1444311956, 1724916170, 434290636, 1020406649, 2067062760, 153162844, 1998994314, 769304465, 825726814, 1934660183, 221713886, 1968922326, 1978701535, 411826969, 1880346039, 1762924393, 192532621, 1994320152, 10150109, 1092637289, 2079611790, 1347584264, 616734673, 404259631, 78374295, 1607774548, 562395735, 1872666833, 752704313, 1550101877, 1450099355, 1186994949, 612353198, 1369678468, 1340157793, 2056665155, 2138982933, 18400960, 929588156, 213213171, 1987323286, 781098823, 625040140, 1720185677, 568275358, 817572761, 1567022181, 399493245, 1910210050, 1499150323, 14933990, 379461075, 1903409954, 25084100, 1987235624, 318322042, 1372668364, 592456289, 1868423919, 1451042659, 1779451238, 333293469, 1176225844, 972125383, 242474976, 478841551, 990526343, 1172063133, 1848520019, 830365981, 1953161956, 1840019304, 403068011, 373953666, 2053232475, 1970090192, 773446912, 530788967, 1321756868, 788380902, 1348361729, 1077683174, 813465002, 1111088131, 1396005216, 38649718, 1490549207, 1116945487, 1489692377, 1330301183, 1450238957, 518434573, 1922757472, 1692713933, 997276125, 1554725062, 717293418, 698312496, 379366797, 522971726, 390848153, 1369893141, 896925393, 296596980, 52775474, 1670372305, 827385948, 455843485, 311269559, 28264029, 278450030, 1124734562, 1139352160, 1600206898, 1163384280, 482417719, 530406424, 505593010, 1812718902, 1926411641, 1024027583, 1587992726, 895873480, 2021303708, 995234140, 198628789, 572132557, 1374600938, 1891342723, 962980710, 597010431, 461152493, 1259577690, 649785905, 984124220, 2086963638, 1105629391, 1881049613, 2115227667, 1384079421, 1403938270, 1107096180, 836802671, 1715207829, 1589513899, 1367209095, 692458743, 1254749154, 1146137088, 1855843024, 695258232, 2042010569, 213952386, 1690492373, 93155710, 1237979969, 917609663, 1984498433, 1111800030, 1514620094, 298167279, 1683932587, 16922351, 1282291499, 499429649, 1122551742, 1015857464, 1759007339, 359147515, 272312086, 1698487330, 1195950186, 1987519915, 1666231349, 415675634, 532495011, 625843881, 1561812722, 240854387, 67874133, 1456339643, 454806773, 1322623287, 1549495354, 1692786742, 2017881519, 1386510139, 657103124, 1560890244, 1684677418, 193552063, 331016259, 819485269, 692981712, 1845636353, 1835342733, 304505404, 1862558705, 2107654819, 2002992734, 837626799, 1947691087, 1521740435, 1196774315, 332702450, 100669, 245240853, 573556837, 67974802, 660916487, 1028363610, 1390598089, 75245562, 573666704, 1260995960, 1531585205, 1230769829, 674402557, 933596911, 1424321892, 1005418816, 172623403, 2117303605, 703571522, 1857300821, 274325361, 418646579, 529302443, 129834447, 1256273378, 217161528, 1651574882, 305564045, 177332700, 1651675551, 550804899, 2125023787, 1719650353, 1211721386, 310242589, 962764794, 1286966948, 883799426, 76277107, 671068506, 1912163036, 750679664, 1604665417, 338346092, 1756098480, 1777288820, 1569115921, 312186354, 1487105994, 845954166, 730832933, 2016408437, 815774123, 1987106312, 86086317, 1090099484, 145186709, 263419017, 1219933931, 695991608, 240959156, 724025165, 1907712995, 551201745, 228217069, 1047196295, 1435001171, 1947867422, 1718264801, 1199680559, 763148569, 1175446571, 1538026652, 839425676, 805251743, 959658925, 1590105340, 144874089, 1805613091, 1198720172, 13798878, 473903566, 1510906527, 99885196, 1564003050, 94255812, 363304213, 636453333, 2081362124, 604263370, 1360478499, 79065186, 1155465115, 1588695568, 775056794, 442982639, 1389079342, 535286141, 1642663198, 4744263, 1582482437, 1033206202, 844169939, 1153263590, 1992865128, 286791631, 181226513, 1650994571, 1485511804, 986478257, 2124898138, 848934683, 1131352346, 1541417540, 943190495, 1145151225, 30387226, 877068972, 1245036421, 1390865725, 956134158, 1608340634, 832077645, 1731190952, 65120356, 73673339, 118993446, 1220585472, 78417603, 1701475883, 1663568111, 922587542, 707255825, 1158747661, 1209379174, 888482339, 44470216, 547407330, 1874960596, 2037335344, 1396342013, 858829294, 1540846267, 192048860, 2003980519, 1518260757, 1069117832, 1101533292, 912194650, 2025251990, 562390279, 942581876, 1608959295, 627510635, 185963953, 1727952741, 1848096107, 1018041598, 1281944976, 1364180570, 1091714937, 1989200801, 375444584, 1170132540, 730199492, 419914800, 2092720083, 457676440, 309766496, 1154615609, 1316505735, 1850612763, 1702022939, 1173002606, 1221389873, 950881304, 127052251, 2133584523, 1142930164, 689442530, 928682751, 64564349, 1316953165, 1114646704, 2089816339, 1017565625, 2132688302, 1551291986, 234262547, 1076919591, 1131761079, 609707131, 99568484, 266222407, 1029621931, 44804919, 107939561, 1339388427, 1199420528, 838139053, 1042517543, 753959819, 1295815494, 116423768, 1704841123, 464837581, 102524643, 700287639, 1637840187, 1031207394, 764851988, 1764892438, 2145854098, 707184680, 306851320, 2131058752, 110993018, 1623804486, 1060494695, 1242754098, 493886463, 1160063179, 1508976505, 728149010, 1204868098, 1616916066, 1337856142, 256804978, 307571472, 219994425, 1010764797, 1603386966, 1559382853, 568122272, 2068224547, 454416748, 1268409912, 1558581086, 570840516, 2033261900, 1175989877, 673365159, 592962932, 1482841197, 1704572553, 703955951, 959162035, 1702943003, 1946710049, 1453048498, 1686518107, 1308202906, 33713861, 599529154, 777635325, 1371570003, 1759592334, 1085206797, 1591564428, 816976784, 541110115, 1003463633, 1073781763, 461851014, 1457880381, 2084546560, 2020432100, 2028720897, 505185185, 1048938329, 554602408, 1773595097, 384295879, 111691313, 1659373349, 1343457914, 1814634316, 104852634, 649022765, 1353668775, 808808585, 682736626, 1953197930, 608034986, 2054306629, 1565306616, 1916237892, 1498387409, 234799752, 546389569, 354367395, 1308581515, 1631596366, 1812247776, 1245644428, 25222833, 1693485026, 1750829613, 487073847, 100603786, 1376941062, 360022300, 212295100, 888830763, 1408960629, 2026929416, 993683397, 1793256508, 1233114544, 1802491982, 989230775, 1038828826, 263043320, 1638253540, 456651794, 31797565, 173506518, 691451546, 578187134, 80329499, 2000033062, 62299853, 1578716908, 1098193842, 87522686, 1933084303, 701539807, 574596534, 1597848432, 2078480869, 934618834, 1143849810, 819827984, 196095815, 1244453596, 1813511382, 1989352324, 1456748696, 1468519716, 831099451, 1336194465, 1731563037, 321869343, 421825361, 1763360602, 495375861, 1460654187, 194064088, 575705360, 1917305981, 256363941, 6938620, 461273879, 343886628, 1940022924, 313823293, 918483162, 1390387708, 1412017135, 1853101996, 386753870, 2113556942, 2049197811, 1631207466, 2044554163, 1891066487, 940472515, 716898500, 574682290, 129183332, 382926234, 896551633, 551008693, 1851445950, 1391927494, 2011662880, 1435525339, 1967632854, 1781485213, 1051402293, 1974571475, 95275444, 1245466382, 1767110751, 409098738, 1501830323, 1010014811, 1821115873, 1845716951, 1396768681, 1787189168, 616716465, 880492499, 1684259683, 322334813, 1820965014, 253674535, 224048977, 1950148346, 636600769, 2115115464, 353673391, 340563072, 542314107, 217852623, 1776088411, 1438865740, 1999337836, 680007057, 683309587, 2094613281, 1925473439, 503458793, 356228371, 1279820114, 330546620, 29860596, 978053418, 2097657371, 1817049764, 1594769883, 960188534, 1353825800, 1917104697, 209473567, 1607500335, 2141153674, 1089966067, 96617457, 2108785490, 763447433, 437180529, 503615949, 566112132, 65785292, 1942481690, 919785523, 745792349, 478307629, 1137638147, 523782140, 981766422, 989492335, 1803602255, 1312313043, 936621968, 634172025, 1262486766, 1292850339, 81458260, 75191653, 1322710936, 1998562957, 284665220, 992277052, 1992232983, 1374631287, 198619204, 1953534826, 2138078721, 1806119540, 309667127, 556707205, 1902736997, 104665169, 1476492728, 192433878, 582972798, 466647227, 258219170, 1564739221, 1456139563, 1004011520, 729568616, 245277883, 1527793660, 1992055382, 1538128223, 1183912267, 2067247035, 713355511, 1818084292, 204428608, 1705632563, 1899542553, 1579059895, 1904251768, 1750621862, 1569654968, 1562887660, 1595371198, 2126362173, 1318141009, 1401422376, 1455371254, 1510574887, 1711089503, 1922018481, 1768794057, 1815754673, 1230674396, 625321929, 251243823, 1475952280, 5631942, 1815983044, 866596855, 1189544209, 398068012, 1579952366, 860144854, 242639747, 1138101281, 612203759, 162403134, 894869401, 215341973, 366831742, 310273413, 1810713171, 1945891638, 1628414422, 1064651899, 1368062958, 991505661, 628257755, 1346941484, 612816071, 296528780, 654829090, 1238138000, 547772603, 429363923, 1243769942, 216272000, 1660038320, 285830504, 614340012, 988506952, 1145975358, 856979759, 1855103807, 1758179117, 1019382894, 1287572525, 1973521090, 1386214636, 278190158, 1636750614, 1184622626, 1173059560, 553918865, 405201937, 1483332973, 1182176620, 1752143421, 964263748, 1478705400, 259488863, 1955769409, 2026478004, 688852786, 421101832, 95266356, 201407458, 1659239833, 709606368, 1189914410, 755526127, 1566586128, 897534569, 1041356631, 438485374, 37623446, 39848341, 1824700010, 315813605, 1798027458, 861838989, 1488873165, 1624064901, 1267040926, 824722490, 1113331867, 871700699, 1788986238, 1667250732, 1131189562, 1597272000, 701943705, 1820042348, 2018373832, 33165457, 2021449807, 1530130017, 2059643461, 1063880569, 138172497, 7426169, 1961415139, 1179529128, 717032538, 1999038585, 1219377470, 136135018, 167368542, 869921280, 574620392, 1656241707, 346502533, 251836754, 333480550, 1459834400, 1113675743, 2122466788, 979601485, 233233021, 1572255140, 1681545190, 1104933720, 1443145325, 1714710647, 88639634, 825791694, 1626870461, 1908681983, 963964191, 1634296630, 1782648142, 2143493320, 203845520, 699045063, 1215387142, 339980538, 512976554, 2085308422, 914600930, 364531492, 284327308, 1166437685, 531900034, 1744161708, 132629780, 40658094, 576279545, 365862802, 374138644, 110341087, 1470796522, 349121784, 1825051735, 1559436157, 1921376925, 1304438548, 1320634492, 1217038602, 791251530, 955798986, 2042830296, 995097051, 1654844049, 859310840, 1335077589, 20336956, 855320512, 102194872, 384868448, 2070707654, 1268632557, 916768482, 2008532428, 1401262337, 957426576, 145376088, 1767125139, 1331565220, 1889537797, 1090438014, 1680687005, 318333694, 502390523, 1454580282, 428674782, 1823025015, 524135236, 106242869, 631340353, 419481884, 1410681417, 138700754, 1278792724, 54449299, 159037710, 2134113236, 1049546350, 543906158, 2057337242, 237140292, 1460674641, 1918386023, 339335164, 270617569, 2063762111, 1607967721, 1602182790, 1805816260, 861746410, 1135386147, 2124149955, 481387902, 442482781, 405341089, 1571825916, 966618017, 511583958, 2074216439, 1386099901, 1922265375, 1749757806, 517408978, 1976714674, 233614511, 504038566, 878777377, 372315265, 413892161, 1115917669, 531352976, 184794536, 1455252833, 1075259134, 101072999, 915736906, 388450127, 1906889260, 1777483316, 659067697, 1883555567, 111387570, 113766839, 141413008, 1683213486, 1249152986, 652996966, 1609946277, 1691635767, 427778693, 1212220435, 510770136, 257009719, 1445834946, 1896870037, 1135787096, 1818150212, 266795367, 104221117, 202019540, 770833934, 1559473950, 1277278674, 1184726095, 327727208, 1665728802, 1369520631, 2105210525, 177312851, 1470593630, 69114447, 291079690, 1229999242, 1752327934, 1540232676, 966071161, 1214790563, 1084384795, 1107484169, 279527351, 1595154931, 1760481135, 1725362297, 1344541320, 40776180, 1396028861, 1611336688, 297785900, 1598048401, 234686974, 1433572996, 727843428, 1419413069, 1537794114, 246088582, 641450052, 949784416, 423401433, 2112043682, 1277511625, 714481123, 1194559277, 1235238502, 107230151, 13146790, 1304352949, 1191614946, 1120630960, 909197235, 639286229, 733628447, 2123987799, 1983827549, 774404628, 256031502, 1447680589, 1072190528, 1981393799, 1682367563, 358279876, 1229939013, 954296984, 1896073990, 680503766, 1595747036, 698374759, 1408347194, 1560307071, 1975886384, 1654435776, 607382700, 1063641238, 2077837209, 620529490, 220510539, 644834684, 1741160450, 1129707775, 752064835, 327305250, 1106211926, 1943679781, 1101709878, 1362243428, 435482362, 26416758, 1196153579, 271826264, 384696634, 278608944, 1719506853, 133286977, 959112711, 1254390769, 831661736, 219976257, 61204105, 660064472, 1874412034, 1656951142, 1723705710, 1804765595, 1069774565, 1944216249, 302116632, 1677157265, 926440376, 1054181467, 150203107, 2032652302, 850377601, 1891363558, 1247412082, 1285859963, 71185160, 296082014, 1557686227, 1172895038, 574690958, 1129709433, 1199311796, 1533803669, 236616554, 1584008430, 1753779927, 297820659, 1717295407, 1480708313, 1954771801, 401473495, 1137990260, 877062718, 1061537967, 1440106892, 406736335, 637760029, 346804712, 556939443, 434492631, 1197182313, 300819353, 1360933007, 335558628, 372004513, 1246101662, 1893244856, 1544899551, 346030096, 875470641, 596727699, 642112110, 1112087195, 33252481, 1216803069, 1409907854, 1750547889, 603123090, 1217196008, 4537736, 209419369, 2094258726, 1066075704, 1690127682, 353511414, 1703835733, 680634295, 910450857, 2138328364, 2120741187, 1211270210, 1351777724, 320062251, 1583274723, 450395738, 1517244564, 980690626, 796425834, 1852803193, 1577418325, 1438537945, 1598564401, 1610670806, 507857366, 326551394, 1213735047, 1110980456, 1438638589, 1218272784, 1320399826, 701062795, 136864840, 863043860, 1918258803, 1840700573, 1543678155, 1865033882, 1831545290, 1516935695, 71061648, 1035839366, 1836997946, 981512505, 1486235104, 1206758863, 45299067, 135177290, 912078408, 1628573790, 1573715235, 363159161, 461780768, 2081572601, 689710555, 2039199093, 1045069410, 2128349144, 1502386251, 217985588, 681928291, 568637651, 1081029448, 452703447, 1786910435, 477223956, 170253681, 1923775275, 1994159651, 241315329, 1616992200, 1683673949, 1222827834, 1301053842, 742949164, 1268126901, 189409560, 1655027572, 749217043, 1675644664, 2018186733, 1210997811, 1810821955, 560413640, 1102713256, 1237053542, 541279136, 457615859, 1171142496, 1223207428, 1026253510, 68728258, 1675910875, 665680297, 286713846, 1846164556, 441971924, 1367743294, 2087479885, 2058964125, 1844967250, 1162824071, 1212534319, 1691643253, 283467324, 1401943880, 1227833555, 1032684367, 930104896, 1970782719, 96198530, 593443203, 1478326644, 1198911786, 1830496746, 1349029729, 1656527645, 854155594, 1909443370, 535297508, 922883852, 303238858, 1200977805, 1209597698, 1526446286, 1642949730, 429857344, 1054873513, 1554430207, 127340947, 753554421, 619480878, 1818984200, 693550658, 2021424758, 899334107, 1856374729, 804046007, 722633179, 2139842053, 1397489210, 53476175, 1025042772, 1080502308, 1402505904, 1121241302, 1934657902, 1164465626, 172669440, 710058106, 1467704485, 1829197086, 1919655804, 846667123, 217010946, 202029501, 1901540637, 1417988751, 329370448, 507611410, 913454833, 871000, 1201162069, 320401392, 900205108, 910053150, 939882271, 1622838287, 902411556, 813823381, 1676314462, 1927454328, 1617869388, 931336718, 901211983, 867874951, 2095802345, 1073881423, 1948377259, 1416023182, 755594861, 1735551514, 115206657, 972605807, 298125972, 2016747294, 243110911, 70298129, 376875057, 1156565744, 272327630, 1578037126, 1476967137, 601698078, 340606628, 269365760, 602569078, 1243018184, 1083189141, 1502774186, 1022988865, 553574882, 978128825, 1924200848, 1421449833, 506959639, 850598623, 1222343444, 1438296358, 1606193485, 810411310, 1386615055, 431315644, 1108537283, 655154589, 674426555, 1178835412, 770361246, 1830992300, 1451163042, 639624893, 1160475789, 2052861120, 1016499950, 1429841549, 507946550, 447053428, 365547042, 2010720737, 787660056, 919121924, 841365914, 2030678241, 193088109, 1348325554, 906183458, 1415431554, 639138264, 682900658, 78359216, 2025753319, 1533499281, 1186896499, 533424260, 992209118, 218248263, 1303785506, 1423524763, 1669411305, 1943410399, 2097951318, 1574788777, 812426701, 1781459970, 2082735328, 1259480129, 794452111, 1945972417, 2047140186, 76810012, 639854683, 1930334779, 442357055, 1988180237, 689034589, 1361478979, 479834853, 1371935247, 1554567089, 358104524, 757950880, 822514995, 891528784, 1750159999, 900874211, 47830643, 1026201114, 2087770711, 1991241042, 976668784, 158535326, 656184096, 610645107, 1827946632, 1915664225, 1405097218, 1255251761, 1815320763, 1481907231, 1190503441, 1598171894, 1924264286, 988992210, 139722835, 1138259617, 1628846894, 1511658082, 545343058, 1469543483, 122125315, 1367858053, 1949378337, 1872285314, 121248617, 159999213, 751002780, 61535680, 1051527998, 1727671564, 220071006, 1099358641, 190833023, 2048017638, 943116035, 1595930242, 1155785752, 1599300131, 930353825, 198805545, 1367480709, 707134463, 1187797756, 1035317824, 1845394080, 669161002, 486006071, 243253491, 2138704485, 625728906, 1611111544, 1940599174, 2137386989, 1732360161, 2100598388, 112028656, 1793895841, 1004642738, 1984313970, 2013966848, 2104001379, 587833102, 1914500838, 899633766, 168021018, 922802942, 351450250, 358854042, 1121608488, 1718930959, 1954784284, 161922596, 606765135, 737654461, 831083598, 1092771206, 1444788924, 822304435, 1718500113, 1142699356, 615419962, 1708403454, 1385952847, 568534702, 1820432110, 849580744, 1573177440, 1657262432, 434457257, 1529695171, 97611886, 80869451, 281845289, 265632904, 2094836299, 633295539, 624486946, 1861853489, 204742850, 431787582, 637172784, 811507986, 1169442043, 1758781272, 1904279192, 466747319, 1920703868, 1475295657, 1609446676, 604303818, 1036215463, 847915875, 1426608253, 709163925, 1697496619, 2042028215, 218942709, 2131953877, 463079269, 316554595, 65339680, 2036256709, 582187500, 12692331, 1418468232, 1206674446, 1874545820, 1700313522, 1638462029, 364234956, 186125413, 660420424, 2123016228, 390868264, 1127167744, 1896236448, 1202376250, 589130772, 353056618, 959171794, 1437046647, 1779664872, 286983804, 987059619, 1674209439, 1323199267, 971529848, 2137288709, 2032363193, 1036869528, 2026061770, 103822254, 1049561859, 1297046355, 420376850, 776624031, 849876229, 1002564350, 1140858988, 1036001642, 61755148, 1116391568, 1426869906, 1700217177, 865144369, 481762508, 213153954, 1218200987, 1440934303, 1340321698, 850382211, 1727918107, 1929452470, 377108003, 903633726, 1219015469, 366913064, 788513271, 58591440, 245491186, 892335526, 1030121288, 1542537541, 1312712376, 2066990816, 244930122, 167793078, 969069027, 1280931765, 229548226, 1745693059, 560318023, 1929765404, 739068399, 1042080532, 2142919358, 1855459967, 335531187, 1335757408, 573120688, 2063449294, 1117726230, 1791321676, 819599372, 189258051, 494220239, 1608112644, 247849492, 871328242, 352964522, 1277970780, 1238241306, 1665676898, 1197477949, 1483732493, 1833469976, 19063328, 878786386, 2063018202, 1764756387, 1123716509, 1845299958, 356341138, 257164626, 1840735668, 64317458, 817482649, 1029009428, 637438146, 1859563181, 2146735658, 281276174, 47610720, 188510062, 775496414, 2111060014, 436359554, 1646824656, 783175739, 1714330334, 737582315, 243804735, 764324635, 73831160, 596769257, 783387964, 952617546, 114962507, 400660703, 2076334055, 1948432483, 757001842, 186015033, 1863967037, 821319300, 1003497683, 1561783348, 1458757446, 715577216, 1255035368, 1740033621, 763187937, 136561149, 368046387, 726764303, 135813159, 2014871043, 1509940042, 324323221, 604969710, 1753744777, 760682775, 678800870, 203030386, 327529462, 1631418417, 317992893, 1091854097, 1560268824, 118941728, 1875242061, 1746283858, 1982908766, 128419117, 602297893, 1397208466, 885420959, 1317875109, 504760186, 1706740259, 2081063046, 641321335, 1018014057, 660343702, 777134495, 610564030, 22800096, 1101457716, 978610417, 1776544874, 1862140492, 845997813, 1979575260, 42186306, 1450967523, 150084506, 1134040403, 2129768394, 269026234, 861798817, 1613703163, 104451352, 990217934, 1026488339, 1501659818, 1875638893, 625288549, 2006420005, 1434895504, 1227586442, 500257692, 305425913, 397977904, 1277392187, 915989944, 331557302, 231366256, 1894600361, 991901004, 2093506748, 593114526, 1014701101, 2135693054, 2044082050, 643762327, 1122249809, 2026366796, 475853939, 1984048626, 1492586311, 625938445, 826782912, 371591002, 894964680, 554938157, 996879552, 999416032, 1989833661, 76982346, 353592203, 147775927, 474960250, 212528560, 1063765871, 806517553, 712786252, 810882584, 1798418557, 1990178440, 1403997111, 665636010, 74061048, 1300595513, 1309398337, 20084148, 1179478661, 1785252277, 8293554, 524581324, 263707074, 1130543363, 896172326, 1158671754, 967108342, 1893051878, 10604139, 1793891254, 1970034225, 364196342, 201345764, 297510827, 576724902, 43695777, 1104028380, 1289511154, 191471704, 754963290, 1132205946, 1255237575, 1420599300, 1206266994, 2066120160, 582513990, 1226351142, 1322633623, 220282619, 1234644696, 475745488, 483989693, 217704412, 1655224149, 1642661448, 1184812754, 32321825, 1653265587, 831220360, 928494151, 2017461929, 1032566124, 674062382, 446703183, 1076261902, 496612959, 1736214337, 1267733606, 794123786, 720936636, 375487534, 1898152167, 1927203630, 294124046, 505631809, 1006071125, 1616757669, 1926231109, 93232173, 2092503157, 361261451, 310936585, 1600243658, 581544070, 1495749339, 1632565483, 1065533764, 179486052, 413575986, 560711564, 1212052176, 1087638368, 66493503, 140830430, 1584251327, 2083955432, 1408564037, 230891466, 383174967, 1784051571, 2129043633, 2119389304, 2078175617, 487191794, 692842292, 1547449638, 265939255, 472562275, 1492469147, 627200707, 1478633400, 945229157, 1208744777, 1571865573, 430310992, 126794893, 1882802159, 843886978, 687506457, 1231067850, 1931525347, 753999960, 1410553902, 1368293026, 690471744, 475122431, 1599184492, 1073646711, 615952861, 1580744477, 1045552368, 2024516898, 2067936271, 1738394660, 1661084821, 186391879, 63473287, 1591776790, 813592586, 1542106687, 991742780, 2022337363, 966488613, 336728279, 1648609, 701807124, 1281957436, 689155066, 1932874974, 1712268428, 1443155027, 1195945229, 408671759, 2133626771, 1671067660, 192713458, 1059789835, 139536873, 1561006484, 2105342203, 16570124, 1012707329, 1696253215, 1677654945, 445968158, 1759726503, 1121948088, 366420782, 1154349542, 2113690868, 552812661, 2120838155, 302935500, 1366405247, 675161631, 1584892936, 1241258962, 460552958, 1149677717, 1242907571, 1656498187, 1558349476, 1932062638, 1180082199, 1751062934, 1227734017, 1319619072, 1164585770, 1213877140 };