Renamed 'sequence' to 'substring'
[ou-summer-of-code-2017.git] / monotone-substrings / generate_sequence.ipynb
diff --git a/monotone-substrings/generate_sequence.ipynb b/monotone-substrings/generate_sequence.ipynb
new file mode 100644 (file)
index 0000000..275fa88
--- /dev/null
@@ -0,0 +1,2112 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "import sys\n",
+    "import random"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "def generate_sequence(length, smallest=0, biggest=sys.maxsize, same_chance=0.05, flip_chance=0.3):\n",
+    "    seq = [random.randint(smallest, biggest)]\n",
+    "    increasing = random.choice([True, False])\n",
+    "    for _ in range(length):\n",
+    "        last = seq[-1]\n",
+    "        if random.random() < flip_chance:\n",
+    "            increasing = not increasing\n",
+    "        if random.random() < same_chance:\n",
+    "            seq += [last]\n",
+    "        elif increasing:\n",
+    "            seq += [random.randint(last, biggest)]\n",
+    "        else:\n",
+    "            seq += [random.randint(smallest, last)]\n",
+    "    return seq"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "4165807171574727830 False\n",
+      "6740951976645216523 True\n",
+      "488720956256864923 False\n",
+      "424800834441507987 False\n",
+      "1554797642559355509 True\n",
+      "7068999045727866929 True\n",
+      "7974821847333555461 True\n",
+      "9052881833348453938 True\n",
+      "2792945153234568977 False\n",
+      "1950792053541574753 False\n",
+      "543699256212939749 False\n",
+      "227526382612755324 False\n",
+      "4845696497606068 False\n",
+      "4088694339128202 False\n",
+      "3141909160066403 False\n",
+      "7851994741599738306 True\n",
+      "942184596147107149 False\n",
+      "832405763284198276 False\n",
+      "612555726265633958 False\n",
+      "4596485263004175781 True\n",
+      "4596485263004175781 True\n",
+      "4596485263004175781 False\n",
+      "7610330167187580948 True\n",
+      "2540139322882820436 False\n",
+      "2279324058407763937 False\n",
+      "955467924847445093 False\n",
+      "511732622297378062 False\n",
+      "5210490279412699421 True\n",
+      "2776505982344560452 False\n",
+      "1712080769971546589 False\n",
+      "515464333196113823 False\n",
+      "479310274847412963 False\n",
+      "311244555732383852 False\n",
+      "4519419071878237472 True\n",
+      "1862935403955542184 False\n",
+      "1045497658093638846 False\n",
+      "348355593754311719 False\n",
+      "4795431386538200281 True\n",
+      "731618397576484880 False\n",
+      "162017678539457133 False\n",
+      "99875954462661308 False\n",
+      "73461412036465719 False\n",
+      "17178703971627678 False\n",
+      "10394277770021031 False\n",
+      "5917635877655590 False\n",
+      "8364429865986176920 True\n",
+      "1712142026350775677 False\n",
+      "1933616687310785194 True\n",
+      "3195385611416145904 True\n",
+      "6152189683226854958 True\n",
+      "6506165106776756708 True\n",
+      "7476425985342933610 True\n",
+      "8260968175933585105 True\n",
+      "2258834726392179172 False\n",
+      "1364822504749547941 False\n",
+      "24803960116063193 False\n",
+      "14413824208565379 False\n",
+      "3892564368361399 False\n",
+      "2733240785878532 False\n",
+      "2766291541629293030 True\n",
+      "8546670702245840075 True\n",
+      "6450169629959759585 False\n",
+      "7083765906539369465 True\n",
+      "7818496792159073745 True\n",
+      "8399151354226960164 True\n",
+      "8775766715797077603 True\n",
+      "2255865859741451574 False\n",
+      "180618009414710650 False\n",
+      "2579410112667564314 True\n",
+      "675489905436740217 False\n",
+      "36965314597599629 False\n",
+      "31081933679544333 False\n",
+      "19579587804163942 False\n",
+      "18564865348747186 False\n",
+      "9759938745505484 False\n",
+      "7127119240471186418 True\n",
+      "8991012600763194653 True\n",
+      "4899043199693519747 False\n",
+      "3571180135502790979 False\n",
+      "2359648674848957891 False\n",
+      "1745352913264022455 False\n",
+      "530950077217906952 False\n",
+      "429239095317959325 False\n",
+      "243020004908518768 False\n",
+      "92318393904184405 False\n",
+      "11686935928764098 False\n",
+      "5219241169202278 False\n",
+      "3671717017605115 False\n",
+      "3741348139094380814 True\n",
+      "1784657948086737249 False\n",
+      "6345815090819820725 True\n",
+      "7007983676806672221 True\n",
+      "7007983676806672221 True\n",
+      "8662327682190433169 True\n",
+      "8999633777723446437 True\n",
+      "9212088791482688093 True\n",
+      "9218428408947956726 True\n",
+      "9221652353130422076 True\n",
+      "9221696125454297370 True\n",
+      "9221709349264103168 True\n",
+      "9221972196231871651 True\n",
+      "9223086889879446213 True\n",
+      "9223157401440150674 True\n",
+      "9223314758297401917 True\n",
+      "9223364953878235906 True\n",
+      "9223367487772666244 True\n",
+      "9223369255660002772 True\n",
+      "9223369255660002772 True\n",
+      "1013216714629723936 False\n",
+      "296924767280263775 False\n",
+      "8370714319624510678 True\n",
+      "9013541540908826868 True\n",
+      "9081451544929275992 True\n",
+      "9154727289042730022 True\n",
+      "9209941784047711591 True\n",
+      "9216839030012725265 True\n",
+      "8225648544858721763 False\n",
+      "8987991327432536556 True\n",
+      "9203362209167721936 True\n",
+      "9208802691616021180 True\n",
+      "5900766020272114840 False\n",
+      "1945848448306528007 False\n",
+      "3758242808133031658 True\n",
+      "920799639688415095 False\n",
+      "183644748495695270 False\n",
+      "171002663449563891 False\n",
+      "66764630260174590 False\n",
+      "32496492626402425 False\n",
+      "10263405982647816 False\n",
+      "658814523221778237 True\n",
+      "3255981081011968349 True\n",
+      "1362058763062484777 False\n",
+      "929678731378604633 False\n",
+      "240299334600032048 False\n",
+      "97420434251330655 False\n",
+      "4246899355752909294 True\n",
+      "8655223284004689143 True\n",
+      "9106226108320291023 True\n",
+      "4138273232779677578 False\n",
+      "1344428149897050212 False\n",
+      "1167578888881067385 False\n",
+      "6486826448966293912 True\n",
+      "6923439957932513446 True\n",
+      "8575636976090156739 True\n",
+      "2621634549577366107 False\n",
+      "648620675652913917 False\n",
+      "301020231680610661 False\n",
+      "275931167940833739 False\n",
+      "2200654197079797589 True\n",
+      "7688924247078562371 True\n",
+      "8855300854879171808 True\n",
+      "8995112876485618199 True\n",
+      "9110984124399529793 True\n",
+      "9192783466674420956 True\n",
+      "1764163323256919514 False\n",
+      "681445191376370696 False\n",
+      "5945732066938901551 True\n",
+      "6658221496880324803 True\n",
+      "7119394905115863378 True\n",
+      "8880976689857800198 True\n",
+      "8965139828413227173 True\n",
+      "9184014733200085102 True\n",
+      "9218905817742437452 True\n",
+      "1121282137689250619 False\n",
+      "911392532604832935 False\n",
+      "60474072128403753 False\n",
+      "4468781828661404443 True\n",
+      "2216127257927893999 False\n",
+      "1705047189234718720 False\n",
+      "1364733305558964014 False\n",
+      "5477981844551245579 True\n",
+      "7866597371687737188 True\n",
+      "8309287047892925184 True\n",
+      "8834603750403676387 True\n",
+      "8905457286921063325 True\n",
+      "5283901554190855700 False\n",
+      "7654492072546617196 True\n",
+      "8086071448789500829 True\n",
+      "8910448213914568702 True\n",
+      "9097760988087734803 True\n",
+      "9146472765832791003 True\n",
+      "9164119618325306902 True\n",
+      "805842233932790130 False\n",
+      "296404022814009633 False\n",
+      "127695817396798054 False\n",
+      "1974625265335535378 True\n",
+      "294344114344840026 False\n",
+      "115843323922451132 False\n",
+      "37658890855583293 False\n",
+      "2064483355532542185 True\n",
+      "2851050619691188133 True\n",
+      "3910340359361463430 True\n",
+      "7173593615903136986 True\n",
+      "8678191619654568103 True\n",
+      "9190340471044133773 True\n",
+      "9198071657075753804 True\n",
+      "5570492460242939346 False\n",
+      "2588785827953813785 False\n",
+      "236289605138911612 False\n",
+      "104204524480582395 False\n",
+      "8365954413301730837 True\n",
+      "3605936652616806468 False\n",
+      "1891798272577892704 False\n",
+      "5802882451810167708 True\n",
+      "7830217452762673154 True\n",
+      "7486619714005219512 False\n",
+      "7490801959854757300 True\n",
+      "9175947442892601693 True\n",
+      "9198876375181815523 True\n",
+      "9223199302748091718 True\n",
+      "9223247680420527317 True\n",
+      "9223337088148832118 True\n",
+      "9223346454227883028 True\n",
+      "9223354319384149046 True\n",
+      "9223368850611776709 True\n",
+      "8924379471721556370 False\n",
+      "1994188643926850268 False\n",
+      "4502814216907190052 True\n",
+      "6739920151028432059 True\n",
+      "7148240077388201133 True\n",
+      "7424657917690922540 True\n",
+      "4244103184017299331 False\n",
+      "6171166477195449981 True\n",
+      "1027245968698527708 False\n",
+      "505477923900130288 False\n",
+      "1876749862867260753 True\n",
+      "1876749862867260753 True\n",
+      "29985080894859341 False\n",
+      "10278777743200128 False\n",
+      "939781737443407 False\n",
+      "234542904350313 False\n",
+      "155736393557637 False\n",
+      "45463568098818 False\n",
+      "33119585210435 False\n",
+      "2479998832001350431 True\n",
+      "4953456651307328994 True\n",
+      "6928014982247110464 True\n",
+      "1571616043849347311 False\n",
+      "724557311523566972 False\n",
+      "690431543889319433 False\n",
+      "444411564664675610 False\n",
+      "178919816937232030 False\n",
+      "7858535838983923453 True\n",
+      "9094270733676661724 True\n",
+      "9118748332702561174 True\n",
+      "8566450289064365042 False\n",
+      "6128324307545334264 False\n",
+      "7955862911379467846 True\n",
+      "8704894571602586404 True\n",
+      "8991880853974808101 True\n",
+      "9153566947267330695 True\n",
+      "6243209383108719298 False\n",
+      "3750496725636432705 False\n",
+      "2001862926238323637 False\n",
+      "1516022037305033921 False\n",
+      "498781823740417241 False\n",
+      "353606333023795302 False\n",
+      "76651053984302523 False\n",
+      "71715848878895049 False\n",
+      "66026482980066734 False\n",
+      "45458758342906704 False\n",
+      "24505519155185365 False\n",
+      "7555128693103641214 True\n",
+      "7411079071746879745 False\n",
+      "3287296440175071601 False\n",
+      "540053030207628569 False\n",
+      "301191169163652549 False\n",
+      "1344373100346760482 True\n",
+      "1261674939716041011 False\n",
+      "3678175837536408029 True\n",
+      "6789386344193514204 True\n",
+      "4993235235284434158 False\n",
+      "2030737132063439877 False\n",
+      "647113629113828941 False\n",
+      "315864893241125901 False\n",
+      "8828800380426956366 True\n",
+      "9165540592365179935 True\n",
+      "9175852322056447103 True\n",
+      "7784551047506356747 False\n",
+      "8256662013350651703 True\n",
+      "7868292419743646618 False\n",
+      "1532283395724825471 False\n",
+      "2603830774375683672 True\n",
+      "6776476340892921509 True\n",
+      "7391323357598691022 True\n",
+      "7397590515533721655 True\n",
+      "8858183429065734296 True\n",
+      "9032441860571708774 True\n",
+      "9058137684802863724 True\n",
+      "9151652557058429633 True\n",
+      "9185750923350253051 True\n",
+      "9217998959668685304 True\n",
+      "9218188986988528394 True\n",
+      "7954975724206896551 False\n",
+      "4012593001761119648 False\n",
+      "4012593001761119648 False\n",
+      "4152918211760469069 True\n",
+      "2411590982967955767 False\n",
+      "2278135873082647776 False\n",
+      "2278135873082647776 False\n",
+      "6329050481332998895 True\n",
+      "2921387019109824439 False\n",
+      "2737711527166901313 False\n",
+      "2100572646879841700 False\n",
+      "364444821478397340 False\n",
+      "269167221576177591 False\n",
+      "176421186168030841 False\n",
+      "95454597581830600 False\n",
+      "68996353832987116 False\n",
+      "49896716688704609 False\n",
+      "42317862871333632 False\n",
+      "1320282894457278419 True\n",
+      "8367155565026704562 True\n",
+      "7641065774966474740 False\n",
+      "3518742244503487138 False\n",
+      "2993259782972667052 False\n",
+      "2067193657959712232 False\n",
+      "140262875518885629 False\n",
+      "2957618987289136298 True\n",
+      "2957618987289136298 True\n",
+      "5962895021286111094 True\n",
+      "7100506521746301373 True\n",
+      "8087499397674138425 True\n",
+      "7586893332149478150 False\n",
+      "6256250795267651484 False\n",
+      "6256250795267651484 False\n",
+      "5831039224298451525 False\n",
+      "3680649987865827891 False\n",
+      "2779452000593541307 False\n",
+      "2607072653285769514 False\n",
+      "946019786640841853 False\n",
+      "726189889748070295 False\n",
+      "350760946327687234 False\n",
+      "185901235754825381 False\n",
+      "150254061402817346 False\n",
+      "13118568895570319 False\n",
+      "13118568895570319 True\n",
+      "10530803031645527 False\n",
+      "6749813160108833 False\n",
+      "4295678921647490 False\n",
+      "4218363992229069 False\n",
+      "3237717784003410 False\n",
+      "3237717784003410 False\n",
+      "3119929119529617 False\n",
+      "8761938138348551415 True\n",
+      "8761938138348551415 False\n",
+      "6120707256968055760 False\n",
+      "1904530836539711761 False\n",
+      "1338140614502153035 False\n",
+      "885641708647464931 False\n",
+      "827876062583401648 False\n",
+      "3413666462888077173 True\n",
+      "8081820026072264187 True\n",
+      "8500390989378586255 True\n",
+      "9074949848400328967 True\n",
+      "9147766368732250105 True\n",
+      "9207680267244054416 True\n",
+      "1048181872249036063 False\n",
+      "851418017474978122 False\n",
+      "744181395525813891 False\n",
+      "515812877261144966 False\n",
+      "8330050830470937759 True\n",
+      "8506658834727871147 True\n",
+      "7977618425773434901 False\n",
+      "6951735352411298577 False\n",
+      "6372431617188888640 False\n",
+      "3837141132783282177 False\n",
+      "1355141040102081271 False\n",
+      "146581291640000338 False\n",
+      "146581291640000338 False\n",
+      "4597142702349120 False\n",
+      "5377320873405563127 True\n",
+      "7525766652060426591 True\n",
+      "217470359904070179 False\n",
+      "217470359904070179 False\n",
+      "6383496147184038126 True\n",
+      "6326496896394582565 False\n",
+      "6122202326240929953 False\n",
+      "2607108565911809041 False\n",
+      "1126376422091979723 False\n",
+      "219207790576411652 False\n",
+      "59727217360834023 False\n",
+      "8110490626186913762 True\n",
+      "8245153300739472067 True\n",
+      "8433724059089230001 True\n",
+      "9079592101811949543 True\n",
+      "7421097371558484940 False\n",
+      "4032941402729170782 False\n",
+      "4736434816814775300 True\n",
+      "3550249921673101531 False\n",
+      "5691275002711102923 True\n",
+      "7295314100207618618 True\n",
+      "8962458800197242183 True\n",
+      "8986528546811670932 True\n",
+      "9087574311231528907 True\n",
+      "9204297223963818442 True\n",
+      "509105241668033725 False\n",
+      "6844605442600535129 True\n",
+      "8806027338339760654 True\n",
+      "5523489613248207192 False\n",
+      "4791821008448154752 False\n",
+      "4573574519993239031 False\n",
+      "3823291518991341928 False\n",
+      "4758972646899110906 True\n",
+      "6065708173310293431 True\n",
+      "7164370141720656113 True\n",
+      "8515501571151095094 True\n",
+      "1437893089447014802 False\n",
+      "5558037043602360211 True\n",
+      "7516999130402691861 True\n",
+      "8323480902887842481 True\n",
+      "8978465392412127873 True\n",
+      "9119206166511780372 True\n",
+      "9119206166511780372 True\n",
+      "9210895804586573086 True\n",
+      "9218527625692737049 True\n",
+      "9218527625692737049 False\n",
+      "9221794553089227697 True\n",
+      "8270565859877120166 False\n",
+      "8569480835842821554 True\n",
+      "8669280021563370762 True\n",
+      "2801118606624615588 False\n",
+      "8171250177734229618 True\n",
+      "8496311789335925122 True\n",
+      "8743600348996429921 True\n",
+      "8830749072959583943 True\n",
+      "9175674078001156651 True\n",
+      "9219765785828966557 True\n",
+      "9220029689114238158 True\n",
+      "9221870469651256881 True\n",
+      "6333726001316612092 False\n",
+      "4173513717043430345 False\n",
+      "66322274058372773 False\n",
+      "1884595506242116765 True\n",
+      "8422726398928886406 True\n",
+      "8512822952455964878 True\n",
+      "8512822952455964878 True\n",
+      "9217049974679700834 True\n",
+      "4647652327674145676 False\n",
+      "856369158490219589 False\n",
+      "125085179251935165 False\n",
+      "33162731589423964 False\n",
+      "28467681700347629 False\n",
+      "12548764482907575 False\n",
+      "12548764482907575 True\n",
+      "12548764482907575 False\n",
+      "5524491561279842 False\n",
+      "1898377588898495 False\n",
+      "7744676567787460200 True\n",
+      "5642317461970950225 False\n",
+      "2756995357168157954 False\n",
+      "186904577419955971 False\n",
+      "182266011248265045 False\n",
+      "1712630705405951867 True\n",
+      "1712630705405951867 False\n",
+      "547804598714530091 False\n",
+      "142563097928632731 False\n",
+      "3103637305266454327 True\n",
+      "3198413773315158732 True\n",
+      "3179852877324308732 False\n",
+      "2919717447400141680 False\n",
+      "1598434867537019633 False\n",
+      "5499764265486139785 True\n",
+      "7083177337232569596 True\n",
+      "7524928228361671458 True\n",
+      "8926252149165119110 True\n",
+      "9170544940790788983 True\n",
+      "2700905390305676821 False\n",
+      "7213661270047691025 True\n",
+      "7898772053621739693 True\n",
+      "7898772053621739693 True\n",
+      "8166105271025754008 True\n",
+      "8239528696677834764 True\n",
+      "4462255280618230503 False\n",
+      "836709982465899800 False\n",
+      "836709982465899800 True\n",
+      "8044442821024225029 True\n",
+      "4998707169112241306 False\n",
+      "3579323626041036772 False\n",
+      "8162612693567705044 True\n",
+      "8900516309600725892 True\n",
+      "8962617154161500548 True\n",
+      "9185121128340175363 True\n",
+      "9221160776688686431 True\n",
+      "9222955604133809362 True\n",
+      "354119009798501137 False\n",
+      "61732395330080621 False\n",
+      "25243890264396835 False\n",
+      "21506333502104947 False\n",
+      "11622327989602791 False\n",
+      "4936187977491325 False\n",
+      "4061006067790222 False\n",
+      "571051723458557749 True\n",
+      "7477988767174383943 True\n",
+      "8633476499618097618 True\n",
+      "5826503676107914896 False\n",
+      "6898687124415796431 True\n",
+      "7102485650250302970 True\n",
+      "8768219613323235506 True\n",
+      "8903099518895778327 True\n",
+      "9193130656864429449 True\n",
+      "9193130656864429449 True\n",
+      "9215893845013597620 True\n",
+      "5913579574638510474 False\n",
+      "5913579574638510474 True\n",
+      "4901678848244456356 False\n",
+      "4404326615302335749 False\n",
+      "5439020637359754281 True\n",
+      "8069792094958544049 True\n",
+      "8670678703175932977 True\n",
+      "3852200862577361609 False\n",
+      "436381954659039578 False\n",
+      "189794327775863289 False\n",
+      "169233364780742489 False\n",
+      "128960514503667541 False\n",
+      "64771965395023475 False\n",
+      "52787843152838114 False\n",
+      "5260409147065003 False\n",
+      "5625498379847791306 True\n",
+      "7192309780824125186 True\n",
+      "7575103220871807013 True\n",
+      "6237344805852353949 False\n",
+      "3951699087926257131 False\n",
+      "4284672178577943673 True\n",
+      "4538293955744498267 True\n",
+      "1131440567319029436 False\n",
+      "371988626993139823 False\n",
+      "44917259433921980 False\n",
+      "15063034517718290 False\n",
+      "9225119341628261 False\n",
+      "5459740334442901252 True\n",
+      "8028194491914920383 True\n",
+      "8690888917113522659 True\n",
+      "8836489268490163377 True\n",
+      "8958660447369637147 True\n",
+      "9045123726219265326 True\n",
+      "8556103730070370462 False\n",
+      "6890915147615525381 False\n",
+      "1497007912560822028 False\n",
+      "29507244024175168 False\n",
+      "20334591608452616 False\n",
+      "431006652060490481 True\n",
+      "6297327808926951889 True\n",
+      "894480894198523411 False\n",
+      "295828154837124062 False\n",
+      "182826294578549876 False\n",
+      "105524016182486832 False\n",
+      "70699886765535901 False\n",
+      "1293323707934714426 True\n",
+      "4710279265785478483 True\n",
+      "4796960136693972580 True\n",
+      "9148047174308919109 True\n",
+      "9209537934984232149 True\n",
+      "3437459696482471169 False\n",
+      "2273924559558231504 False\n",
+      "1918245282449870905 False\n",
+      "1653677513986148669 False\n",
+      "1653677513986148669 False\n",
+      "1143325082184574748 False\n",
+      "980969655282451656 False\n",
+      "844079736583554319 False\n",
+      "3183802289257905285 True\n",
+      "6860391954972875430 True\n",
+      "8389506517411271918 True\n",
+      "3377184390291734101 False\n",
+      "5651810028349162191 True\n",
+      "3538928423191661362 False\n",
+      "8003570162905539202 True\n",
+      "6183138051350274256 False\n",
+      "7688666637800456993 True\n",
+      "8454015940096165211 True\n",
+      "9145880521174968551 True\n",
+      "4740517156551502142 False\n",
+      "1983847144908308505 False\n",
+      "3230939134793032300 True\n",
+      "446765279964425719 False\n",
+      "446765279964425719 False\n",
+      "65196124784783516 False\n",
+      "18491265914953865 False\n",
+      "18491265914953865 False\n",
+      "5019463342045745 False\n",
+      "1144731605717192 False\n",
+      "8605241238396022173 True\n",
+      "4958430368962045038 False\n",
+      "3735306774047926749 False\n",
+      "4017726741055386768 True\n",
+      "4017726741055386768 True\n",
+      "5155744043342601451 True\n",
+      "4434261059404317809 False\n",
+      "1101578154905595539 False\n",
+      "6573342479912403849 True\n",
+      "2948859558767506804 False\n",
+      "1116279050161141193 False\n",
+      "463181957542150085 False\n",
+      "451488043763115359 False\n",
+      "7242934925540147484 True\n",
+      "7911018442591608363 True\n",
+      "9102756652210781278 True\n",
+      "9161383408123580015 True\n",
+      "9190695608369102232 True\n",
+      "9193773465362551263 True\n",
+      "9211200228799298729 True\n",
+      "9216875510953003873 True\n",
+      "9220287993274047060 True\n",
+      "3886944954175318046 False\n",
+      "1214807159002097288 False\n",
+      "8925803953742933117 True\n",
+      "9056904446047546477 True\n",
+      "8861224448829617803 False\n",
+      "3556741532229234319 False\n",
+      "3360732858583058497 False\n",
+      "1385531437144853808 False\n",
+      "8705562480585062425 True\n",
+      "8981091761272193342 True\n",
+      "8981091761272193342 True\n",
+      "5235501756632998756 False\n",
+      "5709978622090734256 True\n",
+      "8653517843242618816 True\n",
+      "8770208547357769671 True\n",
+      "154428403319658160 False\n",
+      "1351766197508484 False\n",
+      "7535642678925782850 True\n",
+      "7535642678925782850 False\n",
+      "7535642678925782850 False\n",
+      "674433054685657947 False\n",
+      "558645894111528839 False\n",
+      "4318135566008413728 True\n",
+      "7261013752774323649 True\n",
+      "2842764982470780312 False\n",
+      "7643873049794164267 True\n",
+      "7508432459600136311 False\n",
+      "7270506109428288231 False\n",
+      "7007256918477207896 False\n",
+      "4897547578542690362 False\n",
+      "1060315606063805143 False\n",
+      "100528257492125995 False\n",
+      "6692432943226491936 True\n",
+      "8928189579518554459 True\n",
+      "9220170779606785006 True\n",
+      "3138281996076112624 False\n",
+      "1900417955979316442 False\n",
+      "4900822515746480050 True\n",
+      "6226368274509471682 True\n",
+      "561982252298352976 False\n",
+      "553209983493640712 False\n",
+      "73488354284186162 False\n",
+      "4878461986530760016 True\n",
+      "2056508251798067051 False\n",
+      "778862516078605927 False\n",
+      "644525310576052180 False\n",
+      "343409758193002106 False\n",
+      "215428321576488134 False\n",
+      "215428321576488134 False\n",
+      "1746923150519297621 True\n",
+      "1746923150519297621 True\n",
+      "3850222761437802156 True\n",
+      "7370756747863099230 True\n",
+      "8309816898375124643 True\n",
+      "8546901856913029765 True\n",
+      "9095537330822928159 True\n",
+      "9101875947697840064 True\n",
+      "2913750336303434315 False\n",
+      "480603318112622854 False\n",
+      "212002194149600150 False\n",
+      "5106729152354653630 True\n",
+      "8156101581199487305 True\n",
+      "8614161336452225172 True\n",
+      "9123682892761400818 True\n",
+      "9154025983792345754 True\n",
+      "9215857039477111322 True\n",
+      "9219305146291092319 True\n",
+      "9221619638409306964 True\n",
+      "9222665423636988385 True\n",
+      "9222665423636988385 True\n",
+      "9222848789717203706 True\n",
+      "9223287042042753833 True\n",
+      "9223312481781022801 True\n",
+      "6560640959307679608 False\n",
+      "828143374319812185 False\n",
+      "5743678730719237633 True\n",
+      "6405004647144731418 True\n",
+      "6918376287646553371 True\n",
+      "1195246132673622573 False\n",
+      "719058920502645850 False\n",
+      "661600741749344770 False\n",
+      "254416775583555165 False\n",
+      "572314344367282012 True\n",
+      "6543289127302223592 True\n",
+      "6114765767185099768 False\n",
+      "4979134047660802262 False\n",
+      "7897906116563352866 True\n",
+      "8957446879199865258 True\n",
+      "9008365120806243605 True\n",
+      "9017975902972569662 True\n",
+      "9212059562646860700 True\n",
+      "9213915266739584489 True\n",
+      "2580412709212510280 False\n",
+      "2240223824630735298 False\n",
+      "3679290101403043732 True\n",
+      "192630581157250419 False\n",
+      "156924306687614732 False\n",
+      "4372586452833507985 True\n",
+      "4711058526321665971 True\n",
+      "830106220872094942 False\n",
+      "364283611588212576 False\n",
+      "8156725613256302544 True\n",
+      "3350249389022227379 False\n",
+      "5514122082842361557 True\n",
+      "7529771844144364036 True\n",
+      "9166334727828306133 True\n",
+      "9215580366976871738 True\n",
+      "9217026797427840816 True\n",
+      "9218222982820340625 True\n",
+      "9218772785293826421 True\n",
+      "9218772785293826421 True\n",
+      "9218878869071464181 True\n",
+      "6886075619216277814 False\n",
+      "68013051814623369 False\n",
+      "5596898493695637 False\n",
+      "3880560180016186 False\n",
+      "1032773018128101 False\n",
+      "305534660460140 False\n",
+      "154766555225706 False\n",
+      "65885584494528 False\n",
+      "31893723327735 False\n",
+      "30486142260999 False\n",
+      "11086771879010 False\n",
+      "8632576428160929920 True\n",
+      "2496740755703535693 False\n",
+      "987625198965893481 False\n",
+      "987625198965893481 False\n",
+      "2057796483742267668 True\n",
+      "1918045779429608488 False\n",
+      "1896641111533782026 False\n",
+      "637863897075869061 False\n",
+      "637863897075869061 False\n",
+      "591715820673766211 False\n",
+      "158085453416476770 False\n",
+      "132671982904993300 False\n",
+      "34599781962110130 False\n",
+      "19600373707476309 False\n",
+      "6438646920103817 False\n",
+      "272228173427186 False\n",
+      "46815428219399 False\n",
+      "3766757685744053967 True\n",
+      "3766757685744053967 True\n",
+      "2093926182405194036 False\n",
+      "540974209384670520 False\n",
+      "194749180660713138 False\n",
+      "70809569033620927 False\n",
+      "1717461455538849676 True\n",
+      "1059248112554273024 False\n",
+      "996487244579310185 False\n",
+      "5515997718602535364 True\n",
+      "5738153028805171899 True\n",
+      "1579117383731873617 False\n",
+      "263222275225243640 False\n",
+      "177112705013205074 False\n",
+      "21429749194619190 False\n",
+      "8139582301060113485 True\n",
+      "8955300825088218229 True\n",
+      "8971826349203111000 True\n",
+      "4992137398748564174 False\n",
+      "8008479572320812484 True\n",
+      "6696278453839909 False\n",
+      "3042081537217038 False\n",
+      "1270777131921471 False\n",
+      "603231836070709 False\n",
+      "270123253752280 False\n",
+      "1917056361754011633 True\n",
+      "354732507985749989 False\n",
+      "7802703326714693419 True\n",
+      "3971657134787637795 False\n",
+      "651722845883373325 False\n",
+      "144048853398746977 False\n",
+      "93024934773184305 False\n",
+      "16765425117383387 False\n",
+      "5482659724464899039 True\n",
+      "636647866002370901 False\n",
+      "313609624031598693 False\n",
+      "80517462843636639 False\n",
+      "73372526235851178 False\n",
+      "40995337011447710 False\n",
+      "8386454803214184 False\n",
+      "7356876305508129182 True\n",
+      "7916284587668746257 True\n",
+      "8120807104886264619 True\n",
+      "8409503955248914993 True\n",
+      "9217354781401207532 True\n",
+      "9219206001711306572 True\n",
+      "9220190149786313009 True\n",
+      "3236786555403893612 False\n",
+      "8494308646223493159 True\n",
+      "8540565529068119698 True\n",
+      "4736961348979110975 False\n",
+      "7850274158180545838 True\n",
+      "8273468631783309430 True\n",
+      "8273468631783309430 True\n",
+      "8691322807075550234 True\n",
+      "1335453029103934140 False\n",
+      "849474447849299476 False\n",
+      "503971226954562050 False\n",
+      "149082189394301481 False\n",
+      "29831570748544839 False\n",
+      "3202968015127097955 True\n",
+      "7851972992675249502 True\n",
+      "8497245977402788974 True\n",
+      "8910450305612125039 True\n",
+      "9158799740727741692 True\n",
+      "9217983210721359736 True\n",
+      "9222402390429566571 True\n",
+      "9223189908969965220 True\n",
+      "187543427142343266 False\n",
+      "27938131058986238 False\n",
+      "5723159449769798797 True\n",
+      "7794649783928120372 True\n",
+      "8153309185642235829 True\n",
+      "9076916262841690308 True\n",
+      "9217484305429578231 True\n",
+      "9220001566087104056 True\n",
+      "7221297100240495791 False\n",
+      "53820687660283621 False\n",
+      "2657105100452285214 True\n",
+      "225220047679706783 False\n",
+      "108427398728785723 False\n",
+      "92884052470064665 False\n",
+      "8529757583125840 False\n",
+      "8529757583125840 False\n",
+      "9099202639109328242 True\n",
+      "9140262220502024386 True\n",
+      "9184132912239858224 True\n",
+      "9216964295998809073 True\n",
+      "9217088293685401018 True\n",
+      "9217989612051034961 True\n",
+      "9219559480235408602 True\n",
+      "9223258786957656087 True\n",
+      "9223344679831368561 True\n",
+      "9223344679831368561 False\n",
+      "9223357006467405930 True\n",
+      "9223357006467405930 False\n",
+      "9223365304408498034 True\n",
+      "5790283903569234559 False\n",
+      "5790283903569234559 False\n",
+      "1122301761931312825 False\n",
+      "182996905584273394 False\n",
+      "182996905584273394 True\n",
+      "86283053183098211 False\n",
+      "17095248407190527 False\n",
+      "13090732267010346 False\n",
+      "6230291024723211209 True\n",
+      "8648889742740404963 True\n",
+      "9162667823435547651 True\n",
+      "9211648195344590475 True\n",
+      "9216629611273036650 True\n",
+      "629138649241526533 False\n",
+      "185405851677575689 False\n",
+      "8312579508974779405 True\n",
+      "9192140950229422943 True\n",
+      "1704554508060332450 False\n",
+      "6357135378667563133 True\n",
+      "7813092643005613780 True\n",
+      "972980291805841747 False\n",
+      "458449729074798248 False\n",
+      "458449729074798248 False\n",
+      "248204715335577171 False\n",
+      "31752842475043639 False\n",
+      "9290889006313341 False\n",
+      "2057071805473217 False\n",
+      "1156354790599821042 True\n",
+      "4300351668102470698 True\n",
+      "8253923878958802982 True\n",
+      "8834969796908568504 True\n",
+      "8999691146015528277 True\n",
+      "1642236350305068437 False\n",
+      "515948834037299693 False\n",
+      "344437111332688370 False\n",
+      "53853216843922143 False\n",
+      "15230126157965903 False\n",
+      "14847780476323743 False\n",
+      "190430125833385 False\n",
+      "121914606811924 False\n",
+      "2440402986831819570 True\n",
+      "2440402986831819570 True\n",
+      "7670246718966120674 True\n",
+      "5373149118426367536 False\n",
+      "2064091367447537811 False\n",
+      "791318258463175857 False\n",
+      "5856299488306913654 True\n",
+      "8514331248954756782 True\n",
+      "8514331248954756782 True\n",
+      "1915000456873004421 False\n",
+      "635076881198996036 False\n",
+      "319433504494371532 False\n",
+      "1763347173386546 False\n",
+      "1439419152956003 False\n",
+      "688374958385466 False\n",
+      "2806001423219379915 True\n",
+      "2013057886029077818 False\n",
+      "2119665994960819002 True\n",
+      "5001151896391064298 True\n",
+      "8004192410428076951 True\n",
+      "8699558107086501584 True\n",
+      "9007057645123640707 True\n",
+      "9175741481407838392 True\n",
+      "9223344098405518573 True\n",
+      "9223344098405518573 False\n",
+      "736309325014693363 False\n",
+      "38112222257443472 False\n",
+      "466090876406114881 True\n",
+      "1567753716738161637 True\n",
+      "6926080323073481694 True\n",
+      "259524437896164950 False\n",
+      "86792581909723003 False\n",
+      "2415430885749337030 True\n",
+      "7241712295339901347 True\n",
+      "8503434510451274297 True\n",
+      "9053249255540341611 True\n",
+      "9160343720055087023 True\n",
+      "1356033034969202362 False\n",
+      "710942419591952432 False\n",
+      "662364734563710284 False\n",
+      "8216789724834593167 True\n",
+      "8725209283197395046 True\n",
+      "8644301057213478695 False\n",
+      "2311424867577816723 False\n",
+      "4963825515619136651 True\n",
+      "7333793609449697430 True\n",
+      "8017843074666064513 True\n",
+      "7813406290720124093 False\n",
+      "6874380581255924546 False\n",
+      "7936516959454041313 True\n",
+      "689613961303532287 False\n",
+      "314531155425358160 False\n",
+      "115578600303500785 False\n",
+      "27390078669380112 False\n",
+      "4262401257963837322 True\n",
+      "8553964195922935298 True\n",
+      "2114205943165155540 False\n",
+      "1430592732062384254 False\n",
+      "5281127503048631998 True\n",
+      "251876243586858097 False\n",
+      "3997030460652584513 True\n",
+      "2718258321479861171 False\n",
+      "2842678218005188026 True\n",
+      "943666497436300568 False\n",
+      "9041111520434152296 True\n",
+      "9097238151374939468 True\n",
+      "9150230676590587643 True\n",
+      "9180335779960046248 True\n",
+      "9194749378340301470 True\n",
+      "9194749378340301470 True\n",
+      "3131732179957332524 False\n",
+      "3131732179957332524 True\n",
+      "8016454136664075949 True\n",
+      "8037724730747892420 True\n",
+      "2989153422745446280 False\n",
+      "3508158091018221826 True\n",
+      "7469178431837872775 True\n",
+      "2552793653619024969 False\n",
+      "1635614779938429466 False\n",
+      "939893028755327079 False\n",
+      "8788121872827510358 True\n",
+      "9023434476313890170 True\n",
+      "9118645155824722097 True\n",
+      "3868364402721433565 False\n",
+      "395581084002101463 False\n",
+      "8775897229468027227 True\n",
+      "9070144362723327534 True\n",
+      "8615935770343516215 False\n",
+      "480540349890681605 False\n",
+      "391768805227889008 False\n",
+      "7139949942363161529 True\n",
+      "1496360188920679333 False\n",
+      "4824112524470688852 True\n",
+      "8705352535770215420 True\n",
+      "8781820465371203336 True\n",
+      "8781820465371203336 True\n",
+      "7306944034027423382 False\n",
+      "8244036842051234737 True\n",
+      "8704082745641989975 True\n",
+      "8892687382420857202 True\n",
+      "4619053451783133808 False\n",
+      "2488021089381448244 False\n",
+      "1593517227809011095 False\n",
+      "1386976781512177552 False\n",
+      "770122796534282069 False\n",
+      "432190724074742541 False\n",
+      "190059149087682386 False\n",
+      "81476202106632790 False\n",
+      "6535863077604803611 True\n",
+      "2566292054680948076 False\n",
+      "5284806268414119933 True\n",
+      "6522207644397187053 True\n",
+      "6715680390974124324 True\n",
+      "9102730528576074694 True\n",
+      "4543986797592059343 False\n",
+      "8073965812649324536 True\n",
+      "6829466541443268269 False\n",
+      "7180979297640612782 True\n",
+      "7900882919557336801 True\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[4165807171574727830,\n",
+       " 6740951976645216523,\n",
+       " 488720956256864923,\n",
+       " 424800834441507987,\n",
+       " 1554797642559355509,\n",
+       " 7068999045727866929,\n",
+       " 7974821847333555461,\n",
+       " 9052881833348453938,\n",
+       " 2792945153234568977,\n",
+       " 1950792053541574753,\n",
+       " 543699256212939749,\n",
+       " 227526382612755324,\n",
+       " 4845696497606068,\n",
+       " 4088694339128202,\n",
+       " 3141909160066403,\n",
+       " 7851994741599738306,\n",
+       " 942184596147107149,\n",
+       " 832405763284198276,\n",
+       " 612555726265633958,\n",
+       " 4596485263004175781,\n",
+       " 4596485263004175781,\n",
+       " 4596485263004175781,\n",
+       " 7610330167187580948,\n",
+       " 2540139322882820436,\n",
+       " 2279324058407763937,\n",
+       " 955467924847445093,\n",
+       " 511732622297378062,\n",
+       " 5210490279412699421,\n",
+       " 2776505982344560452,\n",
+       " 1712080769971546589,\n",
+       " 515464333196113823,\n",
+       " 479310274847412963,\n",
+       " 311244555732383852,\n",
+       " 4519419071878237472,\n",
+       " 1862935403955542184,\n",
+       " 1045497658093638846,\n",
+       " 348355593754311719,\n",
+       " 4795431386538200281,\n",
+       " 731618397576484880,\n",
+       " 162017678539457133,\n",
+       " 99875954462661308,\n",
+       " 73461412036465719,\n",
+       " 17178703971627678,\n",
+       " 10394277770021031,\n",
+       " 5917635877655590,\n",
+       " 8364429865986176920,\n",
+       " 1712142026350775677,\n",
+       " 1933616687310785194,\n",
+       " 3195385611416145904,\n",
+       " 6152189683226854958,\n",
+       " 6506165106776756708,\n",
+       " 7476425985342933610,\n",
+       " 8260968175933585105,\n",
+       " 2258834726392179172,\n",
+       " 1364822504749547941,\n",
+       " 24803960116063193,\n",
+       " 14413824208565379,\n",
+       " 3892564368361399,\n",
+       " 2733240785878532,\n",
+       " 2766291541629293030,\n",
+       " 8546670702245840075,\n",
+       " 6450169629959759585,\n",
+       " 7083765906539369465,\n",
+       " 7818496792159073745,\n",
+       " 8399151354226960164,\n",
+       " 8775766715797077603,\n",
+       " 2255865859741451574,\n",
+       " 180618009414710650,\n",
+       " 2579410112667564314,\n",
+       " 675489905436740217,\n",
+       " 36965314597599629,\n",
+       " 31081933679544333,\n",
+       " 19579587804163942,\n",
+       " 18564865348747186,\n",
+       " 9759938745505484,\n",
+       " 7127119240471186418,\n",
+       " 8991012600763194653,\n",
+       " 4899043199693519747,\n",
+       " 3571180135502790979,\n",
+       " 2359648674848957891,\n",
+       " 1745352913264022455,\n",
+       " 530950077217906952,\n",
+       " 429239095317959325,\n",
+       " 243020004908518768,\n",
+       " 92318393904184405,\n",
+       " 11686935928764098,\n",
+       " 5219241169202278,\n",
+       " 3671717017605115,\n",
+       " 3741348139094380814,\n",
+       " 1784657948086737249,\n",
+       " 6345815090819820725,\n",
+       " 7007983676806672221,\n",
+       " 7007983676806672221,\n",
+       " 8662327682190433169,\n",
+       " 8999633777723446437,\n",
+       " 9212088791482688093,\n",
+       " 9218428408947956726,\n",
+       " 9221652353130422076,\n",
+       " 9221696125454297370,\n",
+       " 9221709349264103168,\n",
+       " 9221972196231871651,\n",
+       " 9223086889879446213,\n",
+       " 9223157401440150674,\n",
+       " 9223314758297401917,\n",
+       " 9223364953878235906,\n",
+       " 9223367487772666244,\n",
+       " 9223369255660002772,\n",
+       " 9223369255660002772,\n",
+       " 1013216714629723936,\n",
+       " 296924767280263775,\n",
+       " 8370714319624510678,\n",
+       " 9013541540908826868,\n",
+       " 9081451544929275992,\n",
+       " 9154727289042730022,\n",
+       " 9209941784047711591,\n",
+       " 9216839030012725265,\n",
+       " 8225648544858721763,\n",
+       " 8987991327432536556,\n",
+       " 9203362209167721936,\n",
+       " 9208802691616021180,\n",
+       " 5900766020272114840,\n",
+       " 1945848448306528007,\n",
+       " 3758242808133031658,\n",
+       " 920799639688415095,\n",
+       " 183644748495695270,\n",
+       " 171002663449563891,\n",
+       " 66764630260174590,\n",
+       " 32496492626402425,\n",
+       " 10263405982647816,\n",
+       " 658814523221778237,\n",
+       " 3255981081011968349,\n",
+       " 1362058763062484777,\n",
+       " 929678731378604633,\n",
+       " 240299334600032048,\n",
+       " 97420434251330655,\n",
+       " 4246899355752909294,\n",
+       " 8655223284004689143,\n",
+       " 9106226108320291023,\n",
+       " 4138273232779677578,\n",
+       " 1344428149897050212,\n",
+       " 1167578888881067385,\n",
+       " 6486826448966293912,\n",
+       " 6923439957932513446,\n",
+       " 8575636976090156739,\n",
+       " 2621634549577366107,\n",
+       " 648620675652913917,\n",
+       " 301020231680610661,\n",
+       " 275931167940833739,\n",
+       " 2200654197079797589,\n",
+       " 7688924247078562371,\n",
+       " 8855300854879171808,\n",
+       " 8995112876485618199,\n",
+       " 9110984124399529793,\n",
+       " 9192783466674420956,\n",
+       " 1764163323256919514,\n",
+       " 681445191376370696,\n",
+       " 5945732066938901551,\n",
+       " 6658221496880324803,\n",
+       " 7119394905115863378,\n",
+       " 8880976689857800198,\n",
+       " 8965139828413227173,\n",
+       " 9184014733200085102,\n",
+       " 9218905817742437452,\n",
+       " 1121282137689250619,\n",
+       " 911392532604832935,\n",
+       " 60474072128403753,\n",
+       " 4468781828661404443,\n",
+       " 2216127257927893999,\n",
+       " 1705047189234718720,\n",
+       " 1364733305558964014,\n",
+       " 5477981844551245579,\n",
+       " 7866597371687737188,\n",
+       " 8309287047892925184,\n",
+       " 8834603750403676387,\n",
+       " 8905457286921063325,\n",
+       " 5283901554190855700,\n",
+       " 7654492072546617196,\n",
+       " 8086071448789500829,\n",
+       " 8910448213914568702,\n",
+       " 9097760988087734803,\n",
+       " 9146472765832791003,\n",
+       " 9164119618325306902,\n",
+       " 805842233932790130,\n",
+       " 296404022814009633,\n",
+       " 127695817396798054,\n",
+       " 1974625265335535378,\n",
+       " 294344114344840026,\n",
+       " 115843323922451132,\n",
+       " 37658890855583293,\n",
+       " 2064483355532542185,\n",
+       " 2851050619691188133,\n",
+       " 3910340359361463430,\n",
+       " 7173593615903136986,\n",
+       " 8678191619654568103,\n",
+       " 9190340471044133773,\n",
+       " 9198071657075753804,\n",
+       " 5570492460242939346,\n",
+       " 2588785827953813785,\n",
+       " 236289605138911612,\n",
+       " 104204524480582395,\n",
+       " 8365954413301730837,\n",
+       " 3605936652616806468,\n",
+       " 1891798272577892704,\n",
+       " 5802882451810167708,\n",
+       " 7830217452762673154,\n",
+       " 7486619714005219512,\n",
+       " 7490801959854757300,\n",
+       " 9175947442892601693,\n",
+       " 9198876375181815523,\n",
+       " 9223199302748091718,\n",
+       " 9223247680420527317,\n",
+       " 9223337088148832118,\n",
+       " 9223346454227883028,\n",
+       " 9223354319384149046,\n",
+       " 9223368850611776709,\n",
+       " 8924379471721556370,\n",
+       " 1994188643926850268,\n",
+       " 4502814216907190052,\n",
+       " 6739920151028432059,\n",
+       " 7148240077388201133,\n",
+       " 7424657917690922540,\n",
+       " 4244103184017299331,\n",
+       " 6171166477195449981,\n",
+       " 1027245968698527708,\n",
+       " 505477923900130288,\n",
+       " 1876749862867260753,\n",
+       " 1876749862867260753,\n",
+       " 29985080894859341,\n",
+       " 10278777743200128,\n",
+       " 939781737443407,\n",
+       " 234542904350313,\n",
+       " 155736393557637,\n",
+       " 45463568098818,\n",
+       " 33119585210435,\n",
+       " 2479998832001350431,\n",
+       " 4953456651307328994,\n",
+       " 6928014982247110464,\n",
+       " 1571616043849347311,\n",
+       " 724557311523566972,\n",
+       " 690431543889319433,\n",
+       " 444411564664675610,\n",
+       " 178919816937232030,\n",
+       " 7858535838983923453,\n",
+       " 9094270733676661724,\n",
+       " 9118748332702561174,\n",
+       " 8566450289064365042,\n",
+       " 6128324307545334264,\n",
+       " 7955862911379467846,\n",
+       " 8704894571602586404,\n",
+       " 8991880853974808101,\n",
+       " 9153566947267330695,\n",
+       " 6243209383108719298,\n",
+       " 3750496725636432705,\n",
+       " 2001862926238323637,\n",
+       " 1516022037305033921,\n",
+       " 498781823740417241,\n",
+       " 353606333023795302,\n",
+       " 76651053984302523,\n",
+       " 71715848878895049,\n",
+       " 66026482980066734,\n",
+       " 45458758342906704,\n",
+       " 24505519155185365,\n",
+       " 7555128693103641214,\n",
+       " 7411079071746879745,\n",
+       " 3287296440175071601,\n",
+       " 540053030207628569,\n",
+       " 301191169163652549,\n",
+       " 1344373100346760482,\n",
+       " 1261674939716041011,\n",
+       " 3678175837536408029,\n",
+       " 6789386344193514204,\n",
+       " 4993235235284434158,\n",
+       " 2030737132063439877,\n",
+       " 647113629113828941,\n",
+       " 315864893241125901,\n",
+       " 8828800380426956366,\n",
+       " 9165540592365179935,\n",
+       " 9175852322056447103,\n",
+       " 7784551047506356747,\n",
+       " 8256662013350651703,\n",
+       " 7868292419743646618,\n",
+       " 1532283395724825471,\n",
+       " 2603830774375683672,\n",
+       " 6776476340892921509,\n",
+       " 7391323357598691022,\n",
+       " 7397590515533721655,\n",
+       " 8858183429065734296,\n",
+       " 9032441860571708774,\n",
+       " 9058137684802863724,\n",
+       " 9151652557058429633,\n",
+       " 9185750923350253051,\n",
+       " 9217998959668685304,\n",
+       " 9218188986988528394,\n",
+       " 7954975724206896551,\n",
+       " 4012593001761119648,\n",
+       " 4012593001761119648,\n",
+       " 4152918211760469069,\n",
+       " 2411590982967955767,\n",
+       " 2278135873082647776,\n",
+       " 2278135873082647776,\n",
+       " 6329050481332998895,\n",
+       " 2921387019109824439,\n",
+       " 2737711527166901313,\n",
+       " 2100572646879841700,\n",
+       " 364444821478397340,\n",
+       " 269167221576177591,\n",
+       " 176421186168030841,\n",
+       " 95454597581830600,\n",
+       " 68996353832987116,\n",
+       " 49896716688704609,\n",
+       " 42317862871333632,\n",
+       " 1320282894457278419,\n",
+       " 8367155565026704562,\n",
+       " 7641065774966474740,\n",
+       " 3518742244503487138,\n",
+       " 2993259782972667052,\n",
+       " 2067193657959712232,\n",
+       " 140262875518885629,\n",
+       " 2957618987289136298,\n",
+       " 2957618987289136298,\n",
+       " 5962895021286111094,\n",
+       " 7100506521746301373,\n",
+       " 8087499397674138425,\n",
+       " 7586893332149478150,\n",
+       " 6256250795267651484,\n",
+       " 6256250795267651484,\n",
+       " 5831039224298451525,\n",
+       " 3680649987865827891,\n",
+       " 2779452000593541307,\n",
+       " 2607072653285769514,\n",
+       " 946019786640841853,\n",
+       " 726189889748070295,\n",
+       " 350760946327687234,\n",
+       " 185901235754825381,\n",
+       " 150254061402817346,\n",
+       " 13118568895570319,\n",
+       " 13118568895570319,\n",
+       " 10530803031645527,\n",
+       " 6749813160108833,\n",
+       " 4295678921647490,\n",
+       " 4218363992229069,\n",
+       " 3237717784003410,\n",
+       " 3237717784003410,\n",
+       " 3119929119529617,\n",
+       " 8761938138348551415,\n",
+       " 8761938138348551415,\n",
+       " 6120707256968055760,\n",
+       " 1904530836539711761,\n",
+       " 1338140614502153035,\n",
+       " 885641708647464931,\n",
+       " 827876062583401648,\n",
+       " 3413666462888077173,\n",
+       " 8081820026072264187,\n",
+       " 8500390989378586255,\n",
+       " 9074949848400328967,\n",
+       " 9147766368732250105,\n",
+       " 9207680267244054416,\n",
+       " 1048181872249036063,\n",
+       " 851418017474978122,\n",
+       " 744181395525813891,\n",
+       " 515812877261144966,\n",
+       " 8330050830470937759,\n",
+       " 8506658834727871147,\n",
+       " 7977618425773434901,\n",
+       " 6951735352411298577,\n",
+       " 6372431617188888640,\n",
+       " 3837141132783282177,\n",
+       " 1355141040102081271,\n",
+       " 146581291640000338,\n",
+       " 146581291640000338,\n",
+       " 4597142702349120,\n",
+       " 5377320873405563127,\n",
+       " 7525766652060426591,\n",
+       " 217470359904070179,\n",
+       " 217470359904070179,\n",
+       " 6383496147184038126,\n",
+       " 6326496896394582565,\n",
+       " 6122202326240929953,\n",
+       " 2607108565911809041,\n",
+       " 1126376422091979723,\n",
+       " 219207790576411652,\n",
+       " 59727217360834023,\n",
+       " 8110490626186913762,\n",
+       " 8245153300739472067,\n",
+       " 8433724059089230001,\n",
+       " 9079592101811949543,\n",
+       " 7421097371558484940,\n",
+       " 4032941402729170782,\n",
+       " 4736434816814775300,\n",
+       " 3550249921673101531,\n",
+       " 5691275002711102923,\n",
+       " 7295314100207618618,\n",
+       " 8962458800197242183,\n",
+       " 8986528546811670932,\n",
+       " 9087574311231528907,\n",
+       " 9204297223963818442,\n",
+       " 509105241668033725,\n",
+       " 6844605442600535129,\n",
+       " 8806027338339760654,\n",
+       " 5523489613248207192,\n",
+       " 4791821008448154752,\n",
+       " 4573574519993239031,\n",
+       " 3823291518991341928,\n",
+       " 4758972646899110906,\n",
+       " 6065708173310293431,\n",
+       " 7164370141720656113,\n",
+       " 8515501571151095094,\n",
+       " 1437893089447014802,\n",
+       " 5558037043602360211,\n",
+       " 7516999130402691861,\n",
+       " 8323480902887842481,\n",
+       " 8978465392412127873,\n",
+       " 9119206166511780372,\n",
+       " 9119206166511780372,\n",
+       " 9210895804586573086,\n",
+       " 9218527625692737049,\n",
+       " 9218527625692737049,\n",
+       " 9221794553089227697,\n",
+       " 8270565859877120166,\n",
+       " 8569480835842821554,\n",
+       " 8669280021563370762,\n",
+       " 2801118606624615588,\n",
+       " 8171250177734229618,\n",
+       " 8496311789335925122,\n",
+       " 8743600348996429921,\n",
+       " 8830749072959583943,\n",
+       " 9175674078001156651,\n",
+       " 9219765785828966557,\n",
+       " 9220029689114238158,\n",
+       " 9221870469651256881,\n",
+       " 6333726001316612092,\n",
+       " 4173513717043430345,\n",
+       " 66322274058372773,\n",
+       " 1884595506242116765,\n",
+       " 8422726398928886406,\n",
+       " 8512822952455964878,\n",
+       " 8512822952455964878,\n",
+       " 9217049974679700834,\n",
+       " 4647652327674145676,\n",
+       " 856369158490219589,\n",
+       " 125085179251935165,\n",
+       " 33162731589423964,\n",
+       " 28467681700347629,\n",
+       " 12548764482907575,\n",
+       " 12548764482907575,\n",
+       " 12548764482907575,\n",
+       " 5524491561279842,\n",
+       " 1898377588898495,\n",
+       " 7744676567787460200,\n",
+       " 5642317461970950225,\n",
+       " 2756995357168157954,\n",
+       " 186904577419955971,\n",
+       " 182266011248265045,\n",
+       " 1712630705405951867,\n",
+       " 1712630705405951867,\n",
+       " 547804598714530091,\n",
+       " 142563097928632731,\n",
+       " 3103637305266454327,\n",
+       " 3198413773315158732,\n",
+       " 3179852877324308732,\n",
+       " 2919717447400141680,\n",
+       " 1598434867537019633,\n",
+       " 5499764265486139785,\n",
+       " 7083177337232569596,\n",
+       " 7524928228361671458,\n",
+       " 8926252149165119110,\n",
+       " 9170544940790788983,\n",
+       " 2700905390305676821,\n",
+       " 7213661270047691025,\n",
+       " 7898772053621739693,\n",
+       " 7898772053621739693,\n",
+       " 8166105271025754008,\n",
+       " 8239528696677834764,\n",
+       " 4462255280618230503,\n",
+       " 836709982465899800,\n",
+       " 836709982465899800,\n",
+       " 8044442821024225029,\n",
+       " 4998707169112241306,\n",
+       " 3579323626041036772,\n",
+       " 8162612693567705044,\n",
+       " 8900516309600725892,\n",
+       " 8962617154161500548,\n",
+       " 9185121128340175363,\n",
+       " 9221160776688686431,\n",
+       " 9222955604133809362,\n",
+       " 354119009798501137,\n",
+       " 61732395330080621,\n",
+       " 25243890264396835,\n",
+       " 21506333502104947,\n",
+       " 11622327989602791,\n",
+       " 4936187977491325,\n",
+       " 4061006067790222,\n",
+       " 571051723458557749,\n",
+       " 7477988767174383943,\n",
+       " 8633476499618097618,\n",
+       " 5826503676107914896,\n",
+       " 6898687124415796431,\n",
+       " 7102485650250302970,\n",
+       " 8768219613323235506,\n",
+       " 8903099518895778327,\n",
+       " 9193130656864429449,\n",
+       " 9193130656864429449,\n",
+       " 9215893845013597620,\n",
+       " 5913579574638510474,\n",
+       " 5913579574638510474,\n",
+       " 4901678848244456356,\n",
+       " 4404326615302335749,\n",
+       " 5439020637359754281,\n",
+       " 8069792094958544049,\n",
+       " 8670678703175932977,\n",
+       " 3852200862577361609,\n",
+       " 436381954659039578,\n",
+       " 189794327775863289,\n",
+       " 169233364780742489,\n",
+       " 128960514503667541,\n",
+       " 64771965395023475,\n",
+       " 52787843152838114,\n",
+       " 5260409147065003,\n",
+       " 5625498379847791306,\n",
+       " 7192309780824125186,\n",
+       " 7575103220871807013,\n",
+       " 6237344805852353949,\n",
+       " 3951699087926257131,\n",
+       " 4284672178577943673,\n",
+       " 4538293955744498267,\n",
+       " 1131440567319029436,\n",
+       " 371988626993139823,\n",
+       " 44917259433921980,\n",
+       " 15063034517718290,\n",
+       " 9225119341628261,\n",
+       " 5459740334442901252,\n",
+       " 8028194491914920383,\n",
+       " 8690888917113522659,\n",
+       " 8836489268490163377,\n",
+       " 8958660447369637147,\n",
+       " 9045123726219265326,\n",
+       " 8556103730070370462,\n",
+       " 6890915147615525381,\n",
+       " 1497007912560822028,\n",
+       " 29507244024175168,\n",
+       " 20334591608452616,\n",
+       " 431006652060490481,\n",
+       " 6297327808926951889,\n",
+       " 894480894198523411,\n",
+       " 295828154837124062,\n",
+       " 182826294578549876,\n",
+       " 105524016182486832,\n",
+       " 70699886765535901,\n",
+       " 1293323707934714426,\n",
+       " 4710279265785478483,\n",
+       " 4796960136693972580,\n",
+       " 9148047174308919109,\n",
+       " 9209537934984232149,\n",
+       " 3437459696482471169,\n",
+       " 2273924559558231504,\n",
+       " 1918245282449870905,\n",
+       " 1653677513986148669,\n",
+       " 1653677513986148669,\n",
+       " 1143325082184574748,\n",
+       " 980969655282451656,\n",
+       " 844079736583554319,\n",
+       " 3183802289257905285,\n",
+       " 6860391954972875430,\n",
+       " 8389506517411271918,\n",
+       " 3377184390291734101,\n",
+       " 5651810028349162191,\n",
+       " 3538928423191661362,\n",
+       " 8003570162905539202,\n",
+       " 6183138051350274256,\n",
+       " 7688666637800456993,\n",
+       " 8454015940096165211,\n",
+       " 9145880521174968551,\n",
+       " 4740517156551502142,\n",
+       " 1983847144908308505,\n",
+       " 3230939134793032300,\n",
+       " 446765279964425719,\n",
+       " 446765279964425719,\n",
+       " 65196124784783516,\n",
+       " 18491265914953865,\n",
+       " 18491265914953865,\n",
+       " 5019463342045745,\n",
+       " 1144731605717192,\n",
+       " 8605241238396022173,\n",
+       " 4958430368962045038,\n",
+       " 3735306774047926749,\n",
+       " 4017726741055386768,\n",
+       " 4017726741055386768,\n",
+       " 5155744043342601451,\n",
+       " 4434261059404317809,\n",
+       " 1101578154905595539,\n",
+       " 6573342479912403849,\n",
+       " 2948859558767506804,\n",
+       " 1116279050161141193,\n",
+       " 463181957542150085,\n",
+       " 451488043763115359,\n",
+       " 7242934925540147484,\n",
+       " 7911018442591608363,\n",
+       " 9102756652210781278,\n",
+       " 9161383408123580015,\n",
+       " 9190695608369102232,\n",
+       " 9193773465362551263,\n",
+       " 9211200228799298729,\n",
+       " 9216875510953003873,\n",
+       " 9220287993274047060,\n",
+       " 3886944954175318046,\n",
+       " 1214807159002097288,\n",
+       " 8925803953742933117,\n",
+       " 9056904446047546477,\n",
+       " 8861224448829617803,\n",
+       " 3556741532229234319,\n",
+       " 3360732858583058497,\n",
+       " 1385531437144853808,\n",
+       " 8705562480585062425,\n",
+       " 8981091761272193342,\n",
+       " 8981091761272193342,\n",
+       " 5235501756632998756,\n",
+       " 5709978622090734256,\n",
+       " 8653517843242618816,\n",
+       " 8770208547357769671,\n",
+       " 154428403319658160,\n",
+       " 1351766197508484,\n",
+       " 7535642678925782850,\n",
+       " 7535642678925782850,\n",
+       " 7535642678925782850,\n",
+       " 674433054685657947,\n",
+       " 558645894111528839,\n",
+       " 4318135566008413728,\n",
+       " 7261013752774323649,\n",
+       " 2842764982470780312,\n",
+       " 7643873049794164267,\n",
+       " 7508432459600136311,\n",
+       " 7270506109428288231,\n",
+       " 7007256918477207896,\n",
+       " 4897547578542690362,\n",
+       " 1060315606063805143,\n",
+       " 100528257492125995,\n",
+       " 6692432943226491936,\n",
+       " 8928189579518554459,\n",
+       " 9220170779606785006,\n",
+       " 3138281996076112624,\n",
+       " 1900417955979316442,\n",
+       " 4900822515746480050,\n",
+       " 6226368274509471682,\n",
+       " 561982252298352976,\n",
+       " 553209983493640712,\n",
+       " 73488354284186162,\n",
+       " 4878461986530760016,\n",
+       " 2056508251798067051,\n",
+       " 778862516078605927,\n",
+       " 644525310576052180,\n",
+       " 343409758193002106,\n",
+       " 215428321576488134,\n",
+       " 215428321576488134,\n",
+       " 1746923150519297621,\n",
+       " 1746923150519297621,\n",
+       " 3850222761437802156,\n",
+       " 7370756747863099230,\n",
+       " 8309816898375124643,\n",
+       " 8546901856913029765,\n",
+       " 9095537330822928159,\n",
+       " 9101875947697840064,\n",
+       " 2913750336303434315,\n",
+       " 480603318112622854,\n",
+       " 212002194149600150,\n",
+       " 5106729152354653630,\n",
+       " 8156101581199487305,\n",
+       " 8614161336452225172,\n",
+       " 9123682892761400818,\n",
+       " 9154025983792345754,\n",
+       " 9215857039477111322,\n",
+       " 9219305146291092319,\n",
+       " 9221619638409306964,\n",
+       " 9222665423636988385,\n",
+       " 9222665423636988385,\n",
+       " 9222848789717203706,\n",
+       " 9223287042042753833,\n",
+       " 9223312481781022801,\n",
+       " 6560640959307679608,\n",
+       " 828143374319812185,\n",
+       " 5743678730719237633,\n",
+       " 6405004647144731418,\n",
+       " 6918376287646553371,\n",
+       " 1195246132673622573,\n",
+       " 719058920502645850,\n",
+       " 661600741749344770,\n",
+       " 254416775583555165,\n",
+       " 572314344367282012,\n",
+       " 6543289127302223592,\n",
+       " 6114765767185099768,\n",
+       " 4979134047660802262,\n",
+       " 7897906116563352866,\n",
+       " 8957446879199865258,\n",
+       " 9008365120806243605,\n",
+       " 9017975902972569662,\n",
+       " 9212059562646860700,\n",
+       " 9213915266739584489,\n",
+       " 2580412709212510280,\n",
+       " 2240223824630735298,\n",
+       " 3679290101403043732,\n",
+       " 192630581157250419,\n",
+       " 156924306687614732,\n",
+       " 4372586452833507985,\n",
+       " 4711058526321665971,\n",
+       " 830106220872094942,\n",
+       " 364283611588212576,\n",
+       " 8156725613256302544,\n",
+       " 3350249389022227379,\n",
+       " 5514122082842361557,\n",
+       " 7529771844144364036,\n",
+       " 9166334727828306133,\n",
+       " 9215580366976871738,\n",
+       " 9217026797427840816,\n",
+       " 9218222982820340625,\n",
+       " 9218772785293826421,\n",
+       " 9218772785293826421,\n",
+       " 9218878869071464181,\n",
+       " 6886075619216277814,\n",
+       " 68013051814623369,\n",
+       " 5596898493695637,\n",
+       " 3880560180016186,\n",
+       " 1032773018128101,\n",
+       " 305534660460140,\n",
+       " 154766555225706,\n",
+       " 65885584494528,\n",
+       " 31893723327735,\n",
+       " 30486142260999,\n",
+       " 11086771879010,\n",
+       " 8632576428160929920,\n",
+       " 2496740755703535693,\n",
+       " 987625198965893481,\n",
+       " 987625198965893481,\n",
+       " 2057796483742267668,\n",
+       " 1918045779429608488,\n",
+       " 1896641111533782026,\n",
+       " 637863897075869061,\n",
+       " 637863897075869061,\n",
+       " 591715820673766211,\n",
+       " 158085453416476770,\n",
+       " 132671982904993300,\n",
+       " 34599781962110130,\n",
+       " 19600373707476309,\n",
+       " 6438646920103817,\n",
+       " 272228173427186,\n",
+       " 46815428219399,\n",
+       " 3766757685744053967,\n",
+       " 3766757685744053967,\n",
+       " 2093926182405194036,\n",
+       " 540974209384670520,\n",
+       " 194749180660713138,\n",
+       " 70809569033620927,\n",
+       " 1717461455538849676,\n",
+       " 1059248112554273024,\n",
+       " 996487244579310185,\n",
+       " 5515997718602535364,\n",
+       " 5738153028805171899,\n",
+       " 1579117383731873617,\n",
+       " 263222275225243640,\n",
+       " 177112705013205074,\n",
+       " 21429749194619190,\n",
+       " 8139582301060113485,\n",
+       " 8955300825088218229,\n",
+       " 8971826349203111000,\n",
+       " 4992137398748564174,\n",
+       " 8008479572320812484,\n",
+       " 6696278453839909,\n",
+       " 3042081537217038,\n",
+       " 1270777131921471,\n",
+       " 603231836070709,\n",
+       " 270123253752280,\n",
+       " 1917056361754011633,\n",
+       " 354732507985749989,\n",
+       " 7802703326714693419,\n",
+       " 3971657134787637795,\n",
+       " 651722845883373325,\n",
+       " 144048853398746977,\n",
+       " 93024934773184305,\n",
+       " 16765425117383387,\n",
+       " 5482659724464899039,\n",
+       " 636647866002370901,\n",
+       " 313609624031598693,\n",
+       " 80517462843636639,\n",
+       " 73372526235851178,\n",
+       " 40995337011447710,\n",
+       " 8386454803214184,\n",
+       " 7356876305508129182,\n",
+       " 7916284587668746257,\n",
+       " 8120807104886264619,\n",
+       " 8409503955248914993,\n",
+       " 9217354781401207532,\n",
+       " 9219206001711306572,\n",
+       " 9220190149786313009,\n",
+       " 3236786555403893612,\n",
+       " 8494308646223493159,\n",
+       " 8540565529068119698,\n",
+       " 4736961348979110975,\n",
+       " 7850274158180545838,\n",
+       " 8273468631783309430,\n",
+       " 8273468631783309430,\n",
+       " 8691322807075550234,\n",
+       " 1335453029103934140,\n",
+       " 849474447849299476,\n",
+       " 503971226954562050,\n",
+       " 149082189394301481,\n",
+       " 29831570748544839,\n",
+       " 3202968015127097955,\n",
+       " 7851972992675249502,\n",
+       " 8497245977402788974,\n",
+       " 8910450305612125039,\n",
+       " 9158799740727741692,\n",
+       " 9217983210721359736,\n",
+       " 9222402390429566571,\n",
+       " 9223189908969965220,\n",
+       " 187543427142343266,\n",
+       " 27938131058986238,\n",
+       " 5723159449769798797,\n",
+       " 7794649783928120372,\n",
+       " 8153309185642235829,\n",
+       " 9076916262841690308,\n",
+       " 9217484305429578231,\n",
+       " 9220001566087104056,\n",
+       " 7221297100240495791,\n",
+       " 53820687660283621,\n",
+       " 2657105100452285214,\n",
+       " 225220047679706783,\n",
+       " 108427398728785723,\n",
+       " 92884052470064665,\n",
+       " 8529757583125840,\n",
+       " 8529757583125840,\n",
+       " 9099202639109328242,\n",
+       " 9140262220502024386,\n",
+       " 9184132912239858224,\n",
+       " 9216964295998809073,\n",
+       " 9217088293685401018,\n",
+       " 9217989612051034961,\n",
+       " 9219559480235408602,\n",
+       " 9223258786957656087,\n",
+       " 9223344679831368561,\n",
+       " 9223344679831368561,\n",
+       " 9223357006467405930,\n",
+       " 9223357006467405930,\n",
+       " 9223365304408498034,\n",
+       " 5790283903569234559,\n",
+       " 5790283903569234559,\n",
+       " 1122301761931312825,\n",
+       " 182996905584273394,\n",
+       " 182996905584273394,\n",
+       " 86283053183098211,\n",
+       " 17095248407190527,\n",
+       " 13090732267010346,\n",
+       " 6230291024723211209,\n",
+       " 8648889742740404963,\n",
+       " 9162667823435547651,\n",
+       " 9211648195344590475,\n",
+       " 9216629611273036650,\n",
+       " 629138649241526533,\n",
+       " 185405851677575689,\n",
+       " 8312579508974779405,\n",
+       " 9192140950229422943,\n",
+       " 1704554508060332450,\n",
+       " 6357135378667563133,\n",
+       " 7813092643005613780,\n",
+       " 972980291805841747,\n",
+       " 458449729074798248,\n",
+       " 458449729074798248,\n",
+       " 248204715335577171,\n",
+       " 31752842475043639,\n",
+       " 9290889006313341,\n",
+       " 2057071805473217,\n",
+       " 1156354790599821042,\n",
+       " 4300351668102470698,\n",
+       " 8253923878958802982,\n",
+       " 8834969796908568504,\n",
+       " 8999691146015528277,\n",
+       " 1642236350305068437,\n",
+       " 515948834037299693,\n",
+       " 344437111332688370,\n",
+       " 53853216843922143,\n",
+       " 15230126157965903,\n",
+       " 14847780476323743,\n",
+       " 190430125833385,\n",
+       " 121914606811924,\n",
+       " 2440402986831819570,\n",
+       " 2440402986831819570,\n",
+       " 7670246718966120674,\n",
+       " 5373149118426367536,\n",
+       " 2064091367447537811,\n",
+       " 791318258463175857,\n",
+       " 5856299488306913654,\n",
+       " 8514331248954756782,\n",
+       " 8514331248954756782,\n",
+       " 1915000456873004421,\n",
+       " 635076881198996036,\n",
+       " 319433504494371532,\n",
+       " 1763347173386546,\n",
+       " 1439419152956003,\n",
+       " 688374958385466,\n",
+       " 2806001423219379915,\n",
+       " 2013057886029077818,\n",
+       " 2119665994960819002,\n",
+       " 5001151896391064298,\n",
+       " 8004192410428076951,\n",
+       " 8699558107086501584,\n",
+       " 9007057645123640707,\n",
+       " 9175741481407838392,\n",
+       " 9223344098405518573,\n",
+       " 9223344098405518573,\n",
+       " 736309325014693363,\n",
+       " 38112222257443472,\n",
+       " 466090876406114881,\n",
+       " 1567753716738161637,\n",
+       " 6926080323073481694,\n",
+       " 259524437896164950,\n",
+       " 86792581909723003,\n",
+       " 2415430885749337030,\n",
+       " 7241712295339901347,\n",
+       " 8503434510451274297,\n",
+       " 9053249255540341611,\n",
+       " 9160343720055087023,\n",
+       " 1356033034969202362,\n",
+       " 710942419591952432,\n",
+       " 662364734563710284,\n",
+       " 8216789724834593167,\n",
+       " 8725209283197395046,\n",
+       " 8644301057213478695,\n",
+       " 2311424867577816723,\n",
+       " 4963825515619136651,\n",
+       " 7333793609449697430,\n",
+       " 8017843074666064513,\n",
+       " 7813406290720124093,\n",
+       " 6874380581255924546,\n",
+       " 7936516959454041313,\n",
+       " 689613961303532287,\n",
+       " 314531155425358160,\n",
+       " 115578600303500785,\n",
+       " 27390078669380112,\n",
+       " 4262401257963837322,\n",
+       " 8553964195922935298,\n",
+       " 2114205943165155540,\n",
+       " 1430592732062384254,\n",
+       " 5281127503048631998,\n",
+       " 251876243586858097,\n",
+       " 3997030460652584513,\n",
+       " 2718258321479861171,\n",
+       " 2842678218005188026,\n",
+       " 943666497436300568,\n",
+       " 9041111520434152296,\n",
+       " 9097238151374939468,\n",
+       " 9150230676590587643,\n",
+       " 9180335779960046248,\n",
+       " 9194749378340301470,\n",
+       " 9194749378340301470,\n",
+       " 3131732179957332524,\n",
+       " 3131732179957332524,\n",
+       " 8016454136664075949,\n",
+       " 8037724730747892420,\n",
+       " 2989153422745446280,\n",
+       " 3508158091018221826,\n",
+       " 7469178431837872775,\n",
+       " 2552793653619024969,\n",
+       " 1635614779938429466,\n",
+       " 939893028755327079,\n",
+       " 8788121872827510358,\n",
+       " 9023434476313890170,\n",
+       " 9118645155824722097,\n",
+       " 3868364402721433565,\n",
+       " 395581084002101463,\n",
+       " 8775897229468027227,\n",
+       " 9070144362723327534,\n",
+       " 8615935770343516215,\n",
+       " 480540349890681605,\n",
+       " 391768805227889008,\n",
+       " 7139949942363161529,\n",
+       " 1496360188920679333,\n",
+       " 4824112524470688852,\n",
+       " 8705352535770215420,\n",
+       " 8781820465371203336,\n",
+       " 8781820465371203336,\n",
+       " 7306944034027423382,\n",
+       " 8244036842051234737,\n",
+       " 8704082745641989975,\n",
+       " 8892687382420857202,\n",
+       " 4619053451783133808,\n",
+       " 2488021089381448244,\n",
+       " 1593517227809011095,\n",
+       " 1386976781512177552,\n",
+       " 770122796534282069,\n",
+       " 432190724074742541,\n",
+       " 190059149087682386,\n",
+       " 81476202106632790,\n",
+       " 6535863077604803611,\n",
+       " 2566292054680948076,\n",
+       " 5284806268414119933,\n",
+       " 6522207644397187053,\n",
+       " 6715680390974124324,\n",
+       " 9102730528576074694,\n",
+       " 4543986797592059343,\n",
+       " 8073965812649324536,\n",
+       " 6829466541443268269,\n",
+       " 7180979297640612782,\n",
+       " 7900882919557336801,\n",
+       " ...]"
+      ]
+     },
+     "execution_count": 8,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "generate_sequence(1000)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [],
+   "source": [
+    "for i in range(10):\n",
+    "    seq = generate_sequence(10000)\n",
+    "    with open('sequence{:03}.txt'.format(i), 'w') as f:\n",
+    "        f.write(','.join(str(n) for n in seq))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.5.2+"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}