From a2ca822c9db47f28b47fcbb9c7e129f14551b9a7 Mon Sep 17 00:00:00 2001 From: tobias Date: Wed, 11 Dec 2024 23:09:05 +0100 Subject: [PATCH] first commit --- .DS_Store | Bin 0 -> 6148 bytes .ipynb_checkpoints/Untitled-checkpoint.ipynb | 6 + 1/1.ipynb | 94 + 1/input | 1000 ++++++ 10/10.ipynb | 574 ++++ 10/input | 60 + 10/testinput | 8 + 11/.ipynb_checkpoints/11-checkpoint.ipynb | 18 + 11/11.ipynb | 151 + 2/2.ipynb | 1094 ++++++ 2/input | 1000 ++++++ 2023/1/23_1.ipynb | 3139 ++++++++++++++++++ 2023/1/input | 1000 ++++++ 2023/1/testinput | 4 + 3/3.ipynb | 80 + 3/input | 6 + 4/4.ipynb | 183 + 4/input | 140 + 5/5.ipynb | 1228 +++++++ 5/input | 1353 ++++++++ 5/testinput | 28 + 6/input | 130 + 22 files changed, 11296 insertions(+) create mode 100644 .DS_Store create mode 100644 .ipynb_checkpoints/Untitled-checkpoint.ipynb create mode 100644 1/1.ipynb create mode 100644 1/input create mode 100644 10/10.ipynb create mode 100644 10/input create mode 100644 10/testinput create mode 100644 11/.ipynb_checkpoints/11-checkpoint.ipynb create mode 100644 11/11.ipynb create mode 100644 2/2.ipynb create mode 100644 2/input create mode 100644 2023/1/23_1.ipynb create mode 100644 2023/1/input create mode 100644 2023/1/testinput create mode 100644 3/3.ipynb create mode 100644 3/input create mode 100644 4/4.ipynb create mode 100644 4/input create mode 100644 5/5.ipynb create mode 100644 5/input create mode 100644 5/testinput create mode 100644 6/input diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b255eb4716b281deffde5fb00b4b3cd159e4de18 GIT binary patch literal 6148 zcmeHKy-EW?5T1!CB7&r_u)IoJFG>olGn~DU7mye*LP7!}7B-t_@I@?a?Zno1ID8Gk zZ+15KLpG%nWCmux&3rpE+3&(_mWX)pFiwfOMAU%`wstW@OnC7%YlX-Gkfp|Kv9`tn z+pT~;yL5V+4sYg-=f{-J=6ODv&PUinXY%rOb>}`VF!#)O1GAV!D)plEd-eLo`O)`u zRUb@MzsW@Ex2Z=b@Y6__lB@SR{w!V#?N#Hejxj#cm+36h5z%_D{l}+!x7rt&s!NlJ z*6&B__v`ifZTbAZ49^8jRlmtZ>TmZi)4rW4U<&-E0ywk9I(v#XngXVPDNrgP?}r2~ zm<4o-{?&oOUjcw^guP)dcL~W!0%if7A{ZEJDo|57TrpVF5l_OpETB`=bmDON;Lw@F z4TXJo)KC0!;!M#-Q@|8xDzKv;yK??tZodCFlkAfzU<&*z1-P9L^8vOL&epZf$yuAg rui;{{&MB5DnE0a@Yvm|DgnL6gkqIyh=oArw*&hKfgAJy@pDOSJjMI4` literal 0 HcmV?d00001 diff --git a/.ipynb_checkpoints/Untitled-checkpoint.ipynb b/.ipynb_checkpoints/Untitled-checkpoint.ipynb new file mode 100644 index 0000000..363fcab --- /dev/null +++ b/.ipynb_checkpoints/Untitled-checkpoint.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/1/1.ipynb b/1/1.ipynb new file mode 100644 index 0000000..50deda8 --- /dev/null +++ b/1/1.ipynb @@ -0,0 +1,94 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "with open('1/input', 'r') as f:\n", + " data = f.readlines()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2378066\n" + ] + } + ], + "source": [ + "left = []\n", + "right = []\n", + "distances = []\n", + "for line in data:\n", + " a, b = map(int, line.split())\n", + " left.append(a)\n", + " right.append(b)\n", + "\n", + "left = sorted(left)\n", + "right = sorted(right)\n", + "\n", + "for i in range(len(left)):\n", + " distances.append(abs(left[i] - right[i]))\n", + " \n", + "print(sum(distances))" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#write a function that returns the amount of value existing in the 'right' list\n", + "def count_occurence(value):\n", + " return sum([ True for x in right if x == value ])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "18934359\n" + ] + } + ], + "source": [ + "print(sum([count_occurence(x)*x for x in left]))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.12.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/1/input b/1/input new file mode 100644 index 0000000..dc26802 --- /dev/null +++ b/1/input @@ -0,0 +1,1000 @@ +18102 93258 +34171 50404 +48236 60718 +10441 41669 +63428 45329 +42451 56834 +74881 39407 +32801 36101 +52771 79895 +41513 78731 +81076 52363 +87623 35520 +15259 96330 +57319 78241 +42758 41144 +80744 20357 +28199 55267 +22505 35520 +74707 74819 +67725 96130 +13883 35520 +87486 55267 +25070 30977 +10199 74819 +91803 75066 +60122 78266 +17884 61488 +41073 81666 +24778 15223 +46587 87276 +75477 82771 +78585 59630 +23143 20028 +67975 13674 +33304 70802 +19939 50051 +35520 52616 +73263 19938 +89352 99541 +65187 80938 +41347 35520 +64416 57744 +86648 22827 +91435 47131 +96712 38412 +89053 76476 +68596 31155 +22661 30518 +87094 22104 +10403 46003 +41029 68410 +62486 54054 +24752 47138 +59331 80259 +83839 84471 +19771 87508 +68258 73947 +69907 93126 +36611 87565 +69633 35520 +19461 20361 +43869 86799 +88115 13167 +27925 21142 +75724 33150 +14715 66772 +46237 88588 +22390 57154 +90584 66789 +89982 55267 +98196 93258 +83394 28441 +68840 50490 +21728 36730 +83742 60945 +43346 38412 +79097 84471 +13016 35520 +28401 41164 +18245 81634 +99352 39461 +33202 36444 +88303 14489 +95205 90462 +80929 97718 +18847 78535 +36538 10273 +40204 76019 +52395 80344 +62145 55267 +29945 74391 +99218 14416 +92009 42686 +83998 36730 +50338 81796 +43724 90026 +86537 33172 +89079 44444 +32728 41669 +60742 67245 +35894 42369 +66329 16357 +42434 19057 +65046 13593 +41778 42363 +62183 46290 +37564 10310 +46436 94358 +58111 74819 +13914 85272 +67992 46429 +42766 46993 +97620 79909 +12930 36101 +14208 62020 +41890 36730 +81680 21444 +84864 64563 +29905 72690 +35753 52398 +73868 35520 +17253 29006 +72538 88588 +77189 89503 +81736 18206 +33322 31658 +48157 79144 +28398 45304 +51735 83365 +42009 59880 +25466 41416 +52459 99199 +57747 36730 +12226 12617 +41445 33884 +15088 42664 +21076 99403 +24923 36730 +47057 87695 +14281 76662 +58163 75603 +41046 88588 +25315 52616 +88847 31193 +25550 35520 +37785 54965 +42166 81663 +36739 55267 +13289 58788 +95744 62866 +23230 41669 +89299 88513 +94591 57796 +19517 78347 +38689 71550 +55241 41669 +80752 85442 +24799 84471 +13063 55267 +27395 80539 +78086 41669 +49641 13167 +60112 63395 +57026 15781 +34007 29172 +49274 72405 +14926 96924 +54717 58045 +16315 22728 +90753 82631 +99446 13167 +51171 81263 +65577 51430 +59152 40932 +98558 41284 +60772 88588 +89469 93258 +78257 51498 +17794 63128 +17963 99564 +10250 12980 +11455 64655 +89464 78241 +68825 20389 +18793 81458 +78236 41669 +54490 94531 +16188 51392 +17889 41669 +88466 55267 +30083 84471 +83012 57306 +70675 81796 +13694 84854 +58909 38592 +40234 94238 +51671 81883 +91196 49891 +86378 92193 +81435 83848 +52846 38940 +96254 85424 +28810 35155 +57295 68573 +56262 94606 +70230 29354 +22599 10175 +42130 30343 +52701 99403 +62915 12166 +76676 88588 +92756 55926 +85607 84471 +59730 67890 +32152 56550 +83584 12212 +91305 52052 +92411 62866 +30000 24317 +48046 39809 +53235 93258 +58381 30343 +81243 39857 +46414 37480 +14203 19491 +94671 53889 +25932 74714 +15761 95661 +41032 87276 +95383 12977 +63041 37164 +62397 38420 +31632 80344 +73259 63756 +39665 53750 +80475 32801 +71036 88588 +72272 79144 +60444 94808 +62938 98520 +91946 39934 +65936 81849 +46418 56506 +75068 97162 +39001 52616 +41161 30343 +15026 35598 +42469 41669 +56940 80344 +14981 79323 +18795 70311 +51498 79144 +18298 39857 +57977 95908 +99404 90175 +16709 94746 +52847 17022 +19595 32739 +75552 54475 +56206 73676 +21473 79204 +92226 37522 +77631 41409 +32460 39212 +68228 89367 +93156 51665 +43009 54778 +14468 63363 +38918 43492 +63144 83443 +64474 99403 +59151 68155 +74740 84352 +46043 66174 +19176 79144 +80639 36730 +12346 18866 +32789 35520 +30312 13167 +90241 34021 +61418 95707 +52839 52960 +59507 11557 +51774 80344 +72851 31658 +21231 52129 +17825 67968 +48685 80344 +90363 14286 +32135 81656 +89692 93229 +71792 84471 +24754 91630 +15559 17945 +73777 62866 +73826 93258 +61029 10131 +21893 79844 +72680 80344 +54635 80344 +46537 96585 +28015 51978 +80768 99403 +52593 31658 +15701 83366 +97543 45838 +33327 55267 +60326 10669 +71666 68499 +68900 91751 +27686 40337 +39616 62866 +51033 37907 +25015 14676 +41682 19585 +79008 36730 +49472 47063 +98674 62202 +33282 84471 +59585 75619 +86450 58477 +14432 87276 +67623 18866 +84033 69700 +13957 40073 +55400 21005 +13167 36730 +34835 15933 +71718 58623 +95411 97681 +57118 94831 +41944 62866 +88120 62866 +11752 32137 +85462 36211 +85424 46228 +79713 80344 +16019 62866 +17655 38412 +26672 17352 +82553 76385 +23188 71537 +56490 39857 +46951 13167 +85961 13877 +51560 77830 +94957 52616 +27650 74995 +70629 73120 +25129 32171 +62148 48774 +44331 87276 +69734 37018 +21661 51261 +13612 82993 +90689 13167 +92312 86533 +98598 80344 +68752 41669 +30190 35520 +36730 50595 +52267 64296 +59707 65310 +80349 62885 +63683 45682 +74727 82966 +86012 81529 +39964 88805 +16119 69720 +33146 70138 +90376 97651 +22904 98429 +87159 29634 +23078 18154 +23361 32845 +71970 63128 +10411 92866 +31178 88588 +50980 27848 +45078 77661 +91447 42358 +71418 32868 +76636 78241 +30598 93258 +28434 38738 +40660 79275 +62848 99403 +28084 38612 +12699 59071 +59263 81796 +26439 62866 +17391 78241 +93530 45014 +45542 97173 +69388 13423 +80066 28361 +63149 95510 +27861 81796 +62609 28829 +78241 64755 +98783 53082 +21987 31658 +31758 18211 +21749 79144 +70377 52464 +65877 97679 +74993 57174 +53846 78241 +67812 39783 +32323 63362 +18461 91739 +38165 31920 +80422 39857 +43219 31658 +84785 30343 +54985 88562 +18275 62866 +54638 78780 +76547 55267 +15874 41010 +86965 36101 +97038 74819 +13828 44487 +21733 79144 +84471 16719 +26596 15857 +16529 28650 +25443 35348 +15059 43502 +81770 36730 +81309 78241 +35589 69602 +94630 35179 +53197 76827 +29523 66364 +46055 30993 +85203 60814 +39329 53071 +18663 32233 +50108 99922 +41019 98673 +89169 76809 +93556 52782 +69891 54164 +40270 51225 +82965 46304 +22455 40010 +41669 32801 +71630 15002 +48390 61558 +44783 78241 +59867 32801 +36112 31658 +81101 91237 +54551 96109 +20993 92021 +50680 38412 +63128 84471 +94509 80344 +10577 99239 +25724 84471 +17317 20799 +39300 76645 +76421 67643 +43817 20959 +75711 58027 +34480 35520 +64585 64739 +64685 99403 +43062 58999 +81760 88588 +63083 40045 +39425 36730 +17622 80859 +64617 36051 +59190 85424 +81175 97509 +93869 51498 +62866 61413 +26396 71626 +87276 98001 +79144 48463 +23812 31658 +31923 47911 +87102 81796 +40295 85346 +92002 66371 +62557 65288 +73197 53046 +68891 80787 +39756 37172 +19915 60878 +43089 32558 +30343 31658 +50332 66707 +26000 58109 +67720 82142 +41227 56943 +97647 47831 +76020 38412 +40485 84471 +16962 53016 +30066 28740 +31118 54102 +41928 99913 +82656 38412 +94155 34933 +52515 48131 +48519 45948 +64922 51902 +73451 81796 +31917 93734 +96992 56765 +60790 48526 +68218 75199 +80344 59642 +94057 47998 +74830 99403 +70462 56217 +76371 18624 +56899 90796 +92898 66333 +34979 72161 +37736 80344 +41607 32801 +48181 41716 +72333 26215 +13666 78112 +91781 85424 +77373 83784 +94719 94693 +65491 41669 +88464 47980 +98595 56821 +16665 57249 +42861 81712 +38767 65492 +31642 39581 +54565 86820 +51346 74706 +38258 81796 +35980 77859 +13015 61175 +79811 14561 +29887 12736 +48972 31658 +43907 40337 +15478 45373 +97895 52030 +93779 15247 +19906 88588 +69778 98196 +66203 63897 +91035 39857 +27450 63128 +11710 77533 +61760 31658 +50614 74819 +89099 87276 +75125 46470 +55904 39857 +76167 37911 +94908 47677 +58478 18866 +20475 37504 +21737 13167 +90464 99403 +12941 84669 +48793 62866 +60186 84471 +11894 39857 +55293 21637 +33993 76974 +47080 64256 +73306 62866 +95473 74936 +35272 59929 +20187 36730 +48764 59657 +65430 16092 +79522 28419 +98586 21238 +11131 97814 +15190 32801 +14978 39857 +83286 78490 +40748 81839 +25325 20040 +24813 58230 +52110 79030 +75599 95523 +23138 63833 +63416 65152 +13853 98184 +60874 80344 +32281 88588 +80353 72102 +24683 84471 +42421 38412 +75909 86850 +22940 36074 +80544 96507 +62292 58866 +98462 38182 +46560 56050 +87289 79144 +88955 15573 +70992 25439 +81256 38412 +28446 29484 +83121 95224 +16108 74352 +34016 37646 +55211 29561 +20806 87737 +17271 99403 +35249 76966 +25159 67894 +40337 58440 +60006 32338 +60866 38412 +66540 93258 +90000 58211 +57957 38113 +54883 80382 +65202 41669 +56318 22865 +43827 39813 +81395 40970 +69790 86084 +17754 55267 +92786 31658 +98085 88588 +50334 48963 +35482 58393 +32883 70992 +62378 14433 +99609 73135 +35356 36730 +78375 68903 +37024 13132 +24204 27308 +72637 38412 +17428 58766 +80886 18866 +66117 59583 +77402 72213 +66620 23574 +37470 26120 +56642 97207 +16039 99994 +23520 59100 +39995 75647 +31430 77373 +59277 16018 +77197 21617 +93312 84197 +81972 60483 +99910 79880 +83510 34604 +52934 99403 +60313 32544 +86206 62733 +32957 53708 +18748 59570 +34408 63137 +64561 95075 +89324 88588 +86562 99403 +34014 98669 +52477 54060 +82112 91468 +46837 51376 +42855 89033 +76285 10788 +48498 11016 +87628 95461 +25039 23870 +44726 84471 +36316 17593 +55475 12512 +40885 61324 +55982 41669 +28353 93258 +90070 87664 +92571 50972 +64040 77373 +66045 44321 +76075 47585 +69898 35520 +31897 78241 +45288 77373 +61402 40079 +43939 79476 +83915 87612 +51714 70302 +55728 61718 +19212 48853 +50471 15323 +11253 36730 +36282 61657 +99765 88588 +40255 84064 +65591 31658 +88588 30358 +53096 62672 +32485 52616 +90637 35520 +23957 55267 +15301 74819 +99304 38412 +42581 99633 +89403 78241 +88697 46405 +23646 81942 +82798 41669 +19417 72825 +99035 54991 +99372 77622 +49134 11067 +41732 49561 +69058 51302 +85817 52817 +80628 47979 +98869 18345 +21540 44446 +36075 62399 +74841 16533 +29826 68948 +74966 33155 +76789 33664 +42909 76884 +61686 93258 +65851 98787 +38529 64090 +64968 58698 +99647 70935 +49851 13167 +88523 38412 +92200 35520 +21926 55267 +85918 78241 +35092 80344 +39857 33948 +80393 59217 +97911 43227 +90571 35520 +48736 83686 +77924 63128 +18866 80344 +21299 74597 +81796 45742 +93562 96860 +89376 36730 +68027 75225 +13032 79144 +28892 57468 +96012 72691 +96357 90025 +93590 76769 +39169 81796 +69505 83140 +27406 79144 +45575 25412 +10640 69420 +42859 67773 +54319 76647 +36900 89641 +16622 73504 +55267 10781 +60719 75932 +63099 36730 +14798 31658 +89944 22601 +40221 55267 +75498 35601 +91475 36563 +23362 39524 +56739 81796 +57452 80344 +60950 97510 +78516 99403 +27941 62443 +27521 66529 +33707 88588 +93324 91799 +57954 78745 +10142 96525 +93400 79144 +10246 51708 +96780 80879 +90160 28886 +75452 68015 +51405 30788 +30558 43844 +80443 56573 +53073 55181 +23213 60714 +86395 98419 +26118 38412 +77828 81796 +83431 19529 +66085 56790 +87013 80344 +78095 27229 +92609 32801 +97658 96068 +97452 49425 +63195 95504 +22526 79144 +40153 79144 +77603 88145 +21804 26067 +70021 27010 +39030 20686 +44696 30343 +98142 54162 +18276 69052 +61036 14279 +89542 91528 +36218 99403 +59135 87980 +44366 61548 +73468 40559 +30939 26766 +66589 83054 +39929 63975 +25239 79144 +74819 40299 +77393 87276 +89793 74480 +70491 56646 +13636 99403 +58152 87276 +30693 19897 +31134 61607 +12324 35941 +67104 22474 +89552 84471 +96869 36730 +61641 42507 +92835 28786 +51442 41669 +40162 84338 +92491 16076 +11753 35520 +95247 79627 +11256 30343 +93258 41669 +24504 25813 +85713 41965 +19158 81796 +50458 41669 +48386 22205 +68720 90932 +36101 79144 +57165 78241 +22469 31658 +99737 14211 +58884 65158 +29461 98196 +86864 72295 +91962 77373 +93672 51538 +89453 83913 +86350 90636 +42288 98263 +17267 18583 +30518 55555 +76868 62866 +55662 44542 +31658 98196 +99589 31658 +64736 36101 +16281 62886 +32687 66131 +77273 83572 +52616 71835 +35719 12817 +87282 36101 +49495 17763 +41116 56436 +65977 31658 +87148 66523 +71950 99639 +93432 41570 +47256 24165 +60388 58593 +52721 87348 +46321 27970 +31533 64362 +82098 35520 +60520 98196 +62425 65803 +90692 57775 +29160 99403 +28072 65721 +29207 40337 +96928 11960 +88074 55022 +11262 31658 +70439 12630 +46426 40192 +97124 96336 +97733 79144 +60902 82128 +20406 18866 +49465 24075 +92723 84471 +82785 49899 +85690 84471 +46301 60801 +70543 39158 +77397 13167 +78434 89992 +43358 22650 +38412 60568 +54633 45527 +27215 93385 +98736 65619 +12981 48333 +79201 61358 +71849 25687 +27785 40337 +57013 13427 +99403 88588 +22632 26830 +12033 77373 +66675 16445 +23066 67354 +80100 31674 +77822 43658 +70694 18628 +38583 97566 +29014 39095 +71974 78640 +44442 94472 +89670 92693 +58205 52583 +26610 32340 +50111 36267 +81769 55267 +80727 15549 +54969 41669 +88744 81796 +66642 43640 +38035 81796 +86110 74184 +74806 38412 +26849 66673 +27007 93396 +80555 78794 +64197 32236 +88661 18331 +16011 32801 +18265 19847 +73365 46289 +71259 84471 +53163 80344 +67421 42238 +61567 39797 +78176 12791 +68680 99109 +83969 59805 +99427 65563 +64286 88588 +69259 49401 +65989 60112 +74866 55267 +91571 70365 +61137 72545 +86810 99342 +91215 74819 +57984 84471 +64054 45167 +25371 93258 +56931 97531 +42448 58600 +77910 41669 +27234 23987 +55971 67247 +53910 23754 +59015 16842 +36568 18866 +93228 92940 +38858 21883 +37570 41669 +43634 48654 +61671 36109 +14455 39324 +69564 61102 +75007 36730 +83030 35520 +27889 41669 +90946 41125 +12614 70263 +61381 18549 +90763 45873 +13117 44089 +13363 84471 diff --git a/10/10.ipynb b/10/10.ipynb new file mode 100644 index 0000000..62f2738 --- /dev/null +++ b/10/10.ipynb @@ -0,0 +1,574 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [], + "source": [ + "with open('input','r') as f:\n", + " data = f.read()\n", + "data=data.splitlines()" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [], + "source": [ + "def find_zeros(data):\n", + " zeros = []\n", + " for x,line in enumerate(data):\n", + " for y,char in enumerate(line):\n", + " if char == '0':\n", + " zeros.append((x,y))\n", + "\n", + " return zeros\n" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[(0, 11),\n", + " (0, 18),\n", + " (0, 32),\n", + " (0, 34),\n", + " (0, 41),\n", + " (0, 45),\n", + " (0, 49),\n", + " (1, 2),\n", + " (1, 13),\n", + " (1, 27),\n", + " (1, 52),\n", + " (2, 0),\n", + " (2, 5),\n", + " (2, 17),\n", + " (2, 22),\n", + " (2, 26),\n", + " (2, 37),\n", + " (2, 40),\n", + " (3, 9),\n", + " (3, 21),\n", + " (3, 30),\n", + " (3, 46),\n", + " (3, 53),\n", + " (3, 55),\n", + " (3, 57),\n", + " (4, 1),\n", + " (4, 16),\n", + " (4, 36),\n", + " (4, 42),\n", + " (4, 44),\n", + " (4, 48),\n", + " (5, 2),\n", + " (5, 12),\n", + " (5, 15),\n", + " (5, 25),\n", + " (5, 33),\n", + " (5, 36),\n", + " (5, 43),\n", + " (6, 9),\n", + " (6, 10),\n", + " (6, 15),\n", + " (6, 37),\n", + " (7, 4),\n", + " (7, 11),\n", + " (7, 25),\n", + " (7, 28),\n", + " (7, 59),\n", + " (8, 18),\n", + " (8, 20),\n", + " (8, 39),\n", + " (8, 46),\n", + " (9, 27),\n", + " (9, 44),\n", + " (9, 47),\n", + " (9, 50),\n", + " (9, 52),\n", + " (9, 59),\n", + " (10, 3),\n", + " (10, 14),\n", + " (10, 31),\n", + " (10, 32),\n", + " (10, 36),\n", + " (11, 1),\n", + " (11, 6),\n", + " (11, 14),\n", + " (11, 42),\n", + " (11, 55),\n", + " (12, 1),\n", + " (12, 31),\n", + " (12, 35),\n", + " (12, 59),\n", + " (13, 8),\n", + " (13, 10),\n", + " (13, 12),\n", + " (13, 17),\n", + " (13, 24),\n", + " (13, 28),\n", + " (13, 34),\n", + " (14, 21),\n", + " (14, 27),\n", + " (14, 28),\n", + " (14, 39),\n", + " (14, 52),\n", + " (14, 57),\n", + " (15, 5),\n", + " (15, 29),\n", + " (15, 57),\n", + " (16, 0),\n", + " (16, 25),\n", + " (16, 33),\n", + " (16, 38),\n", + " (16, 41),\n", + " (16, 48),\n", + " (16, 55),\n", + " (17, 7),\n", + " (17, 16),\n", + " (17, 25),\n", + " (17, 53),\n", + " (18, 1),\n", + " (18, 9),\n", + " (18, 36),\n", + " (18, 41),\n", + " (19, 12),\n", + " (19, 16),\n", + " (19, 20),\n", + " (19, 22),\n", + " (19, 28),\n", + " (19, 42),\n", + " (19, 47),\n", + " (19, 51),\n", + " (20, 2),\n", + " (20, 10),\n", + " (20, 24),\n", + " (20, 33),\n", + " (20, 45),\n", + " (20, 47),\n", + " (21, 14),\n", + " (21, 23),\n", + " (21, 29),\n", + " (21, 33),\n", + " (21, 42),\n", + " (21, 52),\n", + " (22, 2),\n", + " (22, 44),\n", + " (22, 55),\n", + " (23, 14),\n", + " (23, 34),\n", + " (23, 35),\n", + " (23, 55),\n", + " (24, 4),\n", + " (24, 7),\n", + " (24, 13),\n", + " (24, 24),\n", + " (24, 25),\n", + " (24, 27),\n", + " (24, 38),\n", + " (24, 42),\n", + " (24, 45),\n", + " (25, 16),\n", + " (25, 20),\n", + " (25, 22),\n", + " (25, 31),\n", + " (25, 36),\n", + " (25, 53),\n", + " (26, 5),\n", + " (26, 11),\n", + " (26, 20),\n", + " (26, 24),\n", + " (26, 50),\n", + " (26, 53),\n", + " (27, 2),\n", + " (27, 4),\n", + " (27, 16),\n", + " (27, 37),\n", + " (27, 47),\n", + " (27, 49),\n", + " (27, 58),\n", + " (28, 7),\n", + " (28, 33),\n", + " (28, 39),\n", + " (28, 45),\n", + " (28, 56),\n", + " (29, 10),\n", + " (29, 26),\n", + " (29, 32),\n", + " (29, 50),\n", + " (29, 54),\n", + " (30, 4),\n", + " (30, 22),\n", + " (30, 37),\n", + " (31, 17),\n", + " (31, 25),\n", + " (31, 26),\n", + " (31, 32),\n", + " (31, 37),\n", + " (31, 40),\n", + " (31, 47),\n", + " (32, 5),\n", + " (32, 13),\n", + " (32, 24),\n", + " (32, 36),\n", + " (32, 41),\n", + " (32, 46),\n", + " (32, 53),\n", + " (32, 59),\n", + " (33, 10),\n", + " (33, 23),\n", + " (33, 28),\n", + " (33, 34),\n", + " (33, 38),\n", + " (33, 42),\n", + " (33, 50),\n", + " (34, 28),\n", + " (34, 51),\n", + " (35, 4),\n", + " (35, 16),\n", + " (35, 46),\n", + " (35, 58),\n", + " (36, 4),\n", + " (36, 20),\n", + " (36, 55),\n", + " (37, 0),\n", + " (37, 1),\n", + " (37, 16),\n", + " (37, 18),\n", + " (37, 26),\n", + " (37, 34),\n", + " (37, 44),\n", + " (37, 56),\n", + " (38, 4),\n", + " (38, 13),\n", + " (38, 22),\n", + " (38, 32),\n", + " (38, 40),\n", + " (38, 45),\n", + " (39, 12),\n", + " (39, 17),\n", + " (39, 27),\n", + " (39, 30),\n", + " (39, 41),\n", + " (39, 43),\n", + " (39, 58),\n", + " (40, 1),\n", + " (40, 11),\n", + " (40, 22),\n", + " (40, 33),\n", + " (40, 37),\n", + " (40, 50),\n", + " (40, 53),\n", + " (41, 0),\n", + " (41, 5),\n", + " (41, 27),\n", + " (41, 45),\n", + " (41, 53),\n", + " (41, 55),\n", + " (42, 2),\n", + " (42, 9),\n", + " (42, 20),\n", + " (42, 21),\n", + " (42, 24),\n", + " (42, 36),\n", + " (42, 38),\n", + " (42, 42),\n", + " (43, 2),\n", + " (43, 6),\n", + " (43, 8),\n", + " (43, 25),\n", + " (44, 22),\n", + " (44, 23),\n", + " (44, 26),\n", + " (44, 28),\n", + " (44, 34),\n", + " (44, 37),\n", + " (44, 39),\n", + " (44, 42),\n", + " (44, 46),\n", + " (44, 47),\n", + " (44, 49),\n", + " (44, 59),\n", + " (45, 9),\n", + " (45, 10),\n", + " (45, 17),\n", + " (45, 31),\n", + " (45, 59),\n", + " (46, 18),\n", + " (46, 31),\n", + " (46, 33),\n", + " (46, 54),\n", + " (47, 1),\n", + " (47, 5),\n", + " (47, 10),\n", + " (48, 19),\n", + " (48, 23),\n", + " (48, 25),\n", + " (48, 35),\n", + " (48, 38),\n", + " (48, 51),\n", + " (49, 7),\n", + " (49, 20),\n", + " (49, 35),\n", + " (49, 50),\n", + " (50, 10),\n", + " (50, 20),\n", + " (50, 26),\n", + " (50, 42),\n", + " (50, 45),\n", + " (50, 55),\n", + " (51, 4),\n", + " (51, 6),\n", + " (51, 7),\n", + " (51, 10),\n", + " (51, 15),\n", + " (51, 19),\n", + " (51, 51),\n", + " (51, 58),\n", + " (52, 28),\n", + " (52, 32),\n", + " (52, 42),\n", + " (53, 15),\n", + " (53, 45),\n", + " (53, 59),\n", + " (54, 1),\n", + " (54, 7),\n", + " (54, 13),\n", + " (54, 19),\n", + " (54, 23),\n", + " (54, 27),\n", + " (54, 28),\n", + " (54, 35),\n", + " (54, 38),\n", + " (54, 43),\n", + " (54, 48),\n", + " (54, 51),\n", + " (55, 4),\n", + " (55, 26),\n", + " (55, 28),\n", + " (55, 57),\n", + " (56, 7),\n", + " (56, 11),\n", + " (56, 38),\n", + " (57, 14),\n", + " (57, 17),\n", + " (57, 18),\n", + " (57, 36),\n", + " (57, 47),\n", + " (58, 11),\n", + " (58, 29),\n", + " (58, 31),\n", + " (58, 40),\n", + " (58, 45),\n", + " (58, 56),\n", + " (59, 3),\n", + " (59, 28),\n", + " (59, 37),\n", + " (59, 43),\n", + " (59, 50)]" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "find_zeros(data)" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['987672345210988321089487678943210101985430123012901212349876',\n", + " '890581876347809451276596521058923432876543276529874301236765',\n", + " '081490932156918760345603430667898943109801983434565321245125',\n", + " '112387893045329654565012348766087652234712123403125430104034',\n", + " '201236794532134503456983289632128141045623010512036765295543',\n", + " '310145687621032012987674108543459031012654107696543894387654',\n", + " '498456546001221093474565432432569122101965298787645976578761',\n", + " '567307632120332387565478901201678233212874345676534589469450',\n", + " '569218986787454456010785832178876544589012321201225676354321',\n", + " '478123678796561234521896541069987235678987430390310101256910',\n", + " '312054569657320899634567892454100124017986543485436543267871',\n", + " '203765012348210798749656876363211345623477012576567654106565',\n", + " '104894343239345687658775965278901210786568943689658987265430',\n", + " '985787210101012210343189034107349809894329876756567456892121',\n", + " '276321895696523421221076121001256756765018549843498305743012',\n", + " '123450734789434322834565432890162125321567678732565214654012',\n", + " '043545643298545618965436901781878034450410589721056543204323',\n", + " '652634102187656709878927801652989876567323434874347890116454',\n", + " '701783214074327812567213452343567865018430128965236921327985',\n", + " '879898543265018903450102169603498984329543012340121023438876',\n", + " '930569856104345676543221078712321075655432121050123214589565',\n", + " '321478987645430189876330789610165034746583043269874303678456',\n", + " '430326786554321234565445698543278129837895650178965452102365',\n", + " '545415898545210765676324582344569100121298782348766567801476',\n", + " '696504305676905894889213001053213256780367091059654321945987',\n", + " '787413218789876103990102128967104345091452187768345670236896',\n", + " '898310129650145212850167034878545432187873677851210980167345',\n", + " '790101212341232101763258949889436782106924578960102398798201',\n", + " '889212303216987232654345656776521093345014467017681432120132',\n", + " '974322454307896342363214780345810894214323454178590541098743',\n", + " '865401965416787651654303291236989765201412963289487672347652',\n", + " '765432876545619650189432100387870652106507875670343781656761',\n", + " '765410987814308761276541087498761543017890124501289890967890',\n", + " '898321678903216654365650196501252102120987033215670767856981',\n", + " '456912565214327612984787767102343256761856144256781056743234',\n", + " '367803454323438703673298898234358543892349856105892343212101',\n", + " '219804456554549654560143567895569212876548761234987454101234',\n", + " '008512367567632103067654410766978103975432810125676655670543',\n", + " '127601898458903452198103328957860198786901912089985765781632',\n", + " '234534567321012560198712367046043245697850105678789854398701',\n", + " '103421673450523871237601452132154032106543214543210710239678',\n", + " '011210982567658964321546543012965124321432343058988720106549',\n", + " '320125671098576545690037012129876765010541012167349634218932',\n", + " '430134040123489836789128903456745895432672123453234545347451',\n", + " '549232132123498721654100190109832106701089098500104456956320',\n", + " '678943433001567890193289283254108987892128987612245437875410',\n", + " '217654456712346521089374374363201076985434376543336521056587',\n", + " '103450349809454434678765465478912345876548985965447899867898',\n", + " '212761212778765894501250104567656210230123476876534038769876',\n", + " '429843203989987765410343215698567340145696545123410125612345',\n", + " '343456117801256784320354210785458756968787034014567234501654',\n", + " '652107006901343098901235341812329647879674123456798012612703',\n", + " '567898215414332187612356756901410138984565012343898543563812',\n", + " '238987312323278076543349867812567221345694321032187623438910',\n", + " '109813408954109189801210789003498210210782107153098018542123',\n", + " '216701567867898276764325650101567367823473498544567129656034',\n", + " '345652101210567345123434543234989456910565567639875678798945',\n", + " '456543458325430410089545696545678321045876543320564549567876',\n", + " '434567869450321523679656787230109878236905452011254235650165',\n", + " '321018978761234334578765698101234569107812301232340123543234']" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "10a" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "841\n" + ] + } + ], + "source": [ + "def recursive_check(x,y,data,stage):\n", + " # foreach direction check if within bounds\n", + " for x,y in [(x,y) for x,y in [(x+1,y),(x-1,y),(x,y+1),(x,y-1)] if x>=0 and x < len(data) and y>=0 and y < len(data[0])]:\n", + " if int(data[x][y]) == stage:\n", + " if stage == 9:\n", + " yield (x,y)\n", + " else:\n", + " for solution in recursive_check(x,y,data,stage+1):\n", + " yield solution\n", + " else: \n", + " continue\n", + "\n", + "\n", + "summ = 0\n", + "for zero in find_zeros(data):\n", + " peaks = set(recursive_check(zero[0],zero[1],data,1))\n", + " summ += len(peaks) \n", + "\n", + "print(summ)\n", + " \n", + " \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 10b" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1875\n" + ] + } + ], + "source": [ + "def recursive_check(x,y,data,stage):\n", + " # foreach direction check if within bounds\n", + " for x,y in [(x,y) for x,y in [(x+1,y),(x-1,y),(x,y+1),(x,y-1)] if x>=0 and x < len(data) and y>=0 and y < len(data[0])]:\n", + " if int(data[x][y]) == stage:\n", + " if stage == 9:\n", + " yield (x,y)\n", + " else:\n", + " for solution in recursive_check(x,y,data,stage+1):\n", + " yield solution\n", + " else: \n", + " continue\n", + "\n", + "\n", + "summ = 0\n", + "for zero in find_zeros(data):\n", + " peaks = list(recursive_check(zero[0],zero[1],data,1))\n", + " summ += len(peaks) \n", + "\n", + "print(summ)\n", + " \n", + " \n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pdf", + "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.12.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/10/input b/10/input new file mode 100644 index 0000000..a243125 --- /dev/null +++ b/10/input @@ -0,0 +1,60 @@ +987672345210988321089487678943210101985430123012901212349876 +890581876347809451276596521058923432876543276529874301236765 +081490932156918760345603430667898943109801983434565321245125 +112387893045329654565012348766087652234712123403125430104034 +201236794532134503456983289632128141045623010512036765295543 +310145687621032012987674108543459031012654107696543894387654 +498456546001221093474565432432569122101965298787645976578761 +567307632120332387565478901201678233212874345676534589469450 +569218986787454456010785832178876544589012321201225676354321 +478123678796561234521896541069987235678987430390310101256910 +312054569657320899634567892454100124017986543485436543267871 +203765012348210798749656876363211345623477012576567654106565 +104894343239345687658775965278901210786568943689658987265430 +985787210101012210343189034107349809894329876756567456892121 +276321895696523421221076121001256756765018549843498305743012 +123450734789434322834565432890162125321567678732565214654012 +043545643298545618965436901781878034450410589721056543204323 +652634102187656709878927801652989876567323434874347890116454 +701783214074327812567213452343567865018430128965236921327985 +879898543265018903450102169603498984329543012340121023438876 +930569856104345676543221078712321075655432121050123214589565 +321478987645430189876330789610165034746583043269874303678456 +430326786554321234565445698543278129837895650178965452102365 +545415898545210765676324582344569100121298782348766567801476 +696504305676905894889213001053213256780367091059654321945987 +787413218789876103990102128967104345091452187768345670236896 +898310129650145212850167034878545432187873677851210980167345 +790101212341232101763258949889436782106924578960102398798201 +889212303216987232654345656776521093345014467017681432120132 +974322454307896342363214780345810894214323454178590541098743 +865401965416787651654303291236989765201412963289487672347652 +765432876545619650189432100387870652106507875670343781656761 +765410987814308761276541087498761543017890124501289890967890 +898321678903216654365650196501252102120987033215670767856981 +456912565214327612984787767102343256761856144256781056743234 +367803454323438703673298898234358543892349856105892343212101 +219804456554549654560143567895569212876548761234987454101234 +008512367567632103067654410766978103975432810125676655670543 +127601898458903452198103328957860198786901912089985765781632 +234534567321012560198712367046043245697850105678789854398701 +103421673450523871237601452132154032106543214543210710239678 +011210982567658964321546543012965124321432343058988720106549 +320125671098576545690037012129876765010541012167349634218932 +430134040123489836789128903456745895432672123453234545347451 +549232132123498721654100190109832106701089098500104456956320 +678943433001567890193289283254108987892128987612245437875410 +217654456712346521089374374363201076985434376543336521056587 +103450349809454434678765465478912345876548985965447899867898 +212761212778765894501250104567656210230123476876534038769876 +429843203989987765410343215698567340145696545123410125612345 +343456117801256784320354210785458756968787034014567234501654 +652107006901343098901235341812329647879674123456798012612703 +567898215414332187612356756901410138984565012343898543563812 +238987312323278076543349867812567221345694321032187623438910 +109813408954109189801210789003498210210782107153098018542123 +216701567867898276764325650101567367823473498544567129656034 +345652101210567345123434543234989456910565567639875678798945 +456543458325430410089545696545678321045876543320564549567876 +434567869450321523679656787230109878236905452011254235650165 +321018978761234334578765698101234569107812301232340123543234 diff --git a/10/testinput b/10/testinput new file mode 100644 index 0000000..7bb1248 --- /dev/null +++ b/10/testinput @@ -0,0 +1,8 @@ +89010123 +78121874 +87430965 +96549874 +45678903 +32019012 +01329801 +10456732 \ No newline at end of file diff --git a/11/.ipynb_checkpoints/11-checkpoint.ipynb b/11/.ipynb_checkpoints/11-checkpoint.ipynb new file mode 100644 index 0000000..709d82c --- /dev/null +++ b/11/.ipynb_checkpoints/11-checkpoint.ipynb @@ -0,0 +1,18 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/11/11.ipynb b/11/11.ipynb new file mode 100644 index 0000000..b8cac99 --- /dev/null +++ b/11/11.ipynb @@ -0,0 +1,151 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 336, + "metadata": {}, + "outputs": [], + "source": [ + "input = r'''0 1 10 99 999'''\n", + "input = r'''125 17'''\n", + "input = r'''475449 2599064 213 0 2 65 5755 51149'''\n", + "\n", + "\n", + "stones = {int(x):1 for x in input.split()}\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from collections import defaultdict\n", + "\n", + "def step(stones):\n", + " output=defaultdict(int)\n", + " for stone,count in stones.items():\n", + " if stone == 0:\n", + " output[1]+=count\n", + " elif (tx_stone := str(stone)) and len(tx_stone) %2 == 0:\n", + " half = len(tx_stone)//2\n", + " left = int(tx_stone[:half])\n", + " right = int(tx_stone[half:])\n", + " output[left]+=count\n", + " output[right]+=count\n", + " else:\n", + " output[stone * 2024]+=count\n", + " return output\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(75):\n", + " stones=step(stones)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 269, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "228449040027793" + ] + }, + "execution_count": 269, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sum(stones.values())" + ] + }, + { + "cell_type": "code", + "execution_count": 459, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "defaultdict(, {6072: 673206953446361827286, 4048: 2734962356528935214636, 14168: 1343031271242210938014, 12144: 2300399947749196772879, 32772608: 1863779202753698640740, 40: 1800617350854067786011, 48: 1963004354915731679509, 2024: 1901242329177217918652, 80: 2071514762314577986161, 96: 1909127758252913749300, 16192: 2830947128757671518126, 18216: 1268972356388161972299, 8096: 2899816988343294077917, 10120: 569045306257576076768, 1: 2887855190943409245055, 36869184: 835429087093576428724, 24579456: 1514487337123235977781, 28: 545640724430717426974, 67: 383253720369045854463, 60: 826473730693175762336, 32: 1191095444078885640165, 24: 1908139147880629965130, 57: 656448851778621933102, 94: 656448851778621838017, 56: 656448851778627848108, 3: 1022537248590681705286, 2: 4154202543052785522877, 7: 2039928642914626319453, 6: 3494049803451761028009, 77: 807841723709838053671, 26: 807841723709836079846, 8: 4299935420757677600191, 36: 362115363446705336479, 86: 362115363446702092621, 91: 362115363446699634033, 84: 362115363446704267359, 20: 1414077300163673644677, 0: 4024270438576582418162, 4: 4404541520680163316089, 9: 1927418059972380388541, 72: 443220010324135438919, 28676032: 884207592768322392473, 3277: 1227019168257705602169, 2608: 1227019168257705617679, 20482880: 374644389308688664777, 3686: 550006170363052763461, 9184: 550006170363052763461, 2457: 997052327100450699998, 9456: 997052327100450699998, 5: 864321261489050567651, 2867: 582104108096953186703, 6032: 582104108096953405172, 2048: 246636878600168153652, 2880: 246636878600168153652, 291: 1789758, 151: 342634, 849: 342634, 472: 1844850, 7644: 902465, 6480: 902465, 8717: 902465, 7728: 902465, 7827: 1013758, 104: 2102093, 277518444544: 1013758, 485: 1329398, 760: 2384941, 848: 1206102, 3490282752: 24893, 582: 978569, 912: 1136525, 383: 139159, 177: 64484, 332: 546023, 736: 924747, 514096: 1532150, 902704: 709670, 1068672: 1538929, 1036288: 1746323, 7296: 827680, 3176: 685472, 355910522880: 685472, 36459: 399206, 52640: 399206, 22940: 4557788, 82560: 4557788, 26750: 1000893, 64128: 1000893, 30806: 1830556, 25152: 1830556, 6964: 1212535, 7864: 1212535, 4825: 1661335, 2160: 1423211, 276: 80970, 338: 2639160, 630: 80970, 656: 886237, 327: 439800, 463: 309842, 899: 309842, 136: 1139416, 4294: 961302, 9280: 961302, 5336: 961302, 8832: 961302, 1190112: 1118783, 1991616: 2000995, 1866128: 1680826, 1910656: 1888411, 7097: 179997, 3584: 179997, 282893152256: 179997, 1256904: 253530, 744832: 856504, 26545: 894907, 81248: 894907, 2318662016: 617107, 2949534720: 2453816, 4576: 1106822, 8712: 253523, 409: 711184, 133: 51132, 238: 342218, 272: 215231, 316: 381339, 714: 826842, 483: 436766, 712: 2471469, 7511: 198201, 8736: 501195, 400874541056: 198201, 6235: 1342286, 1344: 1342286, 5090: 1342286, 7648: 1342286, 28757: 184489, 96352: 184489, 1341912: 1767369, 1764928: 4344696, 21384: 506160, 12672: 506160, 785312: 313055, 1230592: 447840, 4593: 258062, 4680: 258062, 30478: 608194, 52544: 608194, 34083: 656657, 51232: 656657, 1260952: 384633, 793408: 1223060, 21097: 255457, 36640: 255457, 817696: 773910, 1619200: 1207773, 1477520: 388830, 1343936: 696267, 1165824: 528848, 1700160: 2254190, 941160: 371454, 1052480: 1580061, 24251: 815059, 72992: 815059, 763: 471883, 827: 522166, 816: 1780515, 2982307328: 2142927, 4170: 376772, 4520: 376772, 318418659328: 376772, 8092: 398269, 3568: 398269, 238322405376: 398269, 378: 181581, 195: 1336377, 896: 1362239, 320: 665404, 2162992128: 1323657, 249: 1118147, 71: 3838249, 820: 476981, 800: 1415292, 623: 452973, 392: 1439963, 920: 2335213, 3219908736: 355285, 2031901696: 1539696, 26422: 118500, 91520: 118500, 26873: 551159, 53856: 551159, 4958: 92533, 1928: 92533, 214857218048: 92533, 39204: 108810, 23232: 108810, 1441088: 2111239, 906752: 475091, 1789216: 601144, 987712: 1556273, 752928: 750103, 841984: 852123, 530288: 633355, 1426920: 526219, 455400: 544669, 1473472: 2494680, 29495: 2095582, 34720: 2095582, 22285: 4328598, 37344: 4328598, 1853984: 1459066, 1540264: 1731186, 394: 1392627, 39378944: 314596, 347: 405899, 258: 420481, 554: 566990, 368: 1009121, 6840: 560668, 3104: 912076, 308062515200: 560668, 6566: 706360, 6656: 706360, 361285230592: 706360, 5737: 41638, 6352: 41638, 6191: 41638, 8208: 385856, 1720400: 121360, 40638: 493941, 3392: 695861, 7462: 115095, 2856: 115095, 3724: 115095, 1600: 115095, 5638: 2326812, 544: 6922743, 293642567680: 2326812, 4692: 383261, 8464: 383261, 254053257216: 383261, 5969: 1537165, 7880: 1537165, 7027: 1537165, 3280: 1558662, 22695: 351408, 23596: 387076, 27776: 387076, 1993640: 85057, 1392512: 4265707, 32117: 764042, 15584: 764042, 1513952: 12930, 1781120: 1280411, 1605032: 896373, 825792: 1413315, 6168: 446442, 7472: 446442, 215250489344: 446442, 82: 4305448, 23: 2720733, 27: 3133528, 65: 6737772, 59: 4095116, 61: 4788411, 327463: 361498, 899136: 361498, 1453232: 589783, 37278: 315239, 84160: 315239, 36049: 938929, 86880: 938929, 2228537344: 5074874, 293: 2126708, 642: 1708852, 567: 1708852, 680: 5085788, 3289550528: 284538, 49498944: 152427, 113084928: 152427, 2122026368: 1537246, 456: 2688143, 2568553152: 373186, 890: 641662, 560: 7284919, 78436072: 92212, 123253504: 92212, 41787504: 133049, 150391296: 133049, 58370136: 510720, 181156096: 510720, 45104840: 3713392, 75584256: 3713392, 593: 2240477, 2630001792: 1250259, 2322758592: 1250259, 2785671680: 3718640, 7528: 236334, 4704: 426395, 372821188608: 214998, 6434: 316995, 936: 1529841, 8698: 316995, 3424: 329228, 5497: 950303, 1840: 1075867, 6049: 950303, 3312: 950303, 7230: 2335400, 1328: 2335400, 2888: 2335400, 6528: 2767119, 35230: 518453, 55360: 518453, 892: 44622, 584: 469045, 469: 183361, 568: 306962, 43694112: 8333, 193397248: 8333, 62185376: 8333, 64768000: 8333, 588: 1311363, 984: 2345222, 922: 1967365, 944: 2211887, 2195764736: 2562196, 728: 2928150, 640: 2128579, 81421472: 8333, 76167168: 8333, 4026934208: 68990, 2720126464: 601205, 43777096: 966408, 186467072: 966408, 260: 575822, 607: 575822, 778: 575822, 386: 1017854, 454: 683523, 536: 3501102, 461: 217969, 3617276608: 69679, 3662338944: 69679, 550: 157649, 528: 1804486, 301: 108519, 901: 100416, 264: 1692418, 6898: 481537, 3992: 481537, 209875781632: 481537, 671: 401387, 968: 4565894, 3432930688: 353952, 2482525056: 429353, 3473896448: 886080, 479: 486686, 688: 5012155, 2191668160: 1597265, 3531248512: 577078, 3211715584: 899864, 37852: 1218192, 36224: 1218192, 39654: 2854112, 85568: 2854112, 35148: 1269716, 62208: 1269716, 720544: 2158552, 453376: 2721300, 833: 439337, 888: 814434, 3670532096: 993808, 2335048320: 180830, 3146170368: 671549, 74041968: 70880, 85752832: 70880, 621: 296675, 2654581248: 1049022, 4427: 569896, 5000: 569896, 293249296384: 569896, 27856: 3174683, 71680: 3174683, 232: 250962, 426: 190103, 3768849920: 1710044, 574: 552481, 4055610240: 552481, 2453849024: 1287406, 340: 1857598, 80259696: 2447204, 173189632: 2447204, 360: 1221169, 3863071168: 860673, 3834395136: 1120168, 2294082560: 5336320, 213: 2444635, 314: 2444635, 28020: 1207227, 57984: 1207227, 457424: 3082082, 696256: 1542679, 26013: 1157865, 25760: 1157865, 21957: 2186825, 64736: 2186825, 4643: 3334329, 338213314560: 3334329, 479688: 566330, 1082840: 1863338, 1744688: 671244, 1586816: 1044439, 3785236224: 1420079, 3965485568: 3344143, 3514862208: 1481528, 356: 2527640, 224: 3185827, 44: 13900256, 16: 10334782, 89: 5170732, 63: 5658650, 12: 8895319, 30: 4510261, 13: 6434685, 88: 9658637, 57708288: 1389738, 34197504: 1389738, 1277144: 933509, 536360: 1020588, 394680: 1136847, 1908632: 1000518, 1894464: 1303196, 1384416: 1648670, 226688: 3563369, 872344: 1528511, 1285240: 1582811, 1084864: 2983277, 3969582144: 305272, 57044416: 2676528, 89638912: 2676528, 35: 3134828, 79: 3318753, 279222: 855300, 620160: 855300, 47: 2831856, 14: 1867224, 98: 2827252, 18: 2849568, 31: 5110236, 54: 2787269, 350: 1531150, 535: 2180348, 815: 1560076, 168: 2534570, 254: 1790393, 839: 678420, 799: 977594, 808: 1143312, 24087: 819047, 86688: 819047, 40310: 1466228, 30784: 1466228, 37770: 1232605, 43072: 1232605, 38671: 1385001, 67744: 1385001, 52: 9915991, 83: 2393991, 76: 12869720, 85: 2530209, 81836392: 795849, 41516288: 795849, 59034008: 1322734, 125714688: 1322734, 708400: 1310444, 1649560: 1335070, 340032: 2161198, 44440968: 1872071, 131025664: 1872071, 2621808640: 1556270, 3264971072: 745959, 56380544: 2721334, 145080320: 2721334, 78: 6771388, 291545: 460163, 120768: 460163, 62: 4880066, 389731: 599202, 854336: 599202, 237535: 756862, 862784: 756862, 924: 1941291, 858: 2024270, 176: 3181965, 72301328: 2724491, 28886528: 2724491, 2851216896: 1898974, 518: 2098949, 144: 1440182, 631488: 1274270, 1959232: 3900265, 265195: 1368785, 943936: 1368785, 684112: 2256663, 431112: 2091384, 635536: 2091384, 1133440: 6233700, 336: 2267057, 509: 193536, 138: 140056, 2310468864: 446752, 908: 469601, 776: 691901, 663: 2073770, 872: 5093204, 51405552: 392002, 156090880: 392002, 653: 1592878, 752: 2920558, 3441123840: 1932821, 29003: 701064, 75808: 701064, 1637416: 1659088, 1214400: 2547457, 4435: 997990, 7984: 1041237, 279222620160: 997990, 6757: 714454, 5288: 714454, 323840: 2539067, 21056: 821107, 40064: 821107, 6956: 311070, 4880: 311070, 5518: 311070, 2336: 563569, 6624: 446681, 7544: 446681, 263098497024: 446681, 6699: 523413, 4400: 1893038, 6761: 523413, 7792: 648977, 75: 7513354, 260607: 668682, 778816: 668682, 386454: 793356, 593536: 793356, 718520: 805790, 248952: 463896, 1983520: 375314, 582912: 1141144, 425040: 1314047, 1003904: 1793953, 560648: 633725, 1048432: 1793346, 898656: 633725, 1101056: 5914631, 514: 1314077, 902: 618523, 704: 952413, 2097446912: 1496222, 58702072: 601745, 153435392: 601745, 3314129984: 1420008, 2457945600: 2187104, 2818444288: 3665086, 323: 2180609, 840: 2644440, 2408786688: 960890, 4031030784: 1716643, 45187824: 211231, 68654080: 211231, 489: 757227, 3604986880: 1098310, 63677064: 490223, 142424832: 490223, 3224005312: 275023, 64: 8992158, 60608680: 275023, 196441344: 275023, 70807616: 275023, 153629696: 275023, 969: 417812, 496: 2102522, 44357984: 1169600, 137955840: 1169600, 71471488: 420925, 98188288: 420925, 65004808: 657818, 31542016: 657818, 7661: 891566, 2448: 1625448, 7331: 891566, 7376: 891566, 8025: 2091112, 9696: 2091112, 350535815168: 2091112, 7113: 929359, 9552: 929359, 254839799808: 929359, 1457280: 2860096, 916872: 1992909, 761024: 2363626, 52318376: 584053, 79858944: 584053, 4043320512: 1087618, 2916762112: 1807663, 25: 5494311, 350535: 1789498, 815168: 1789498, 797: 1019739, 78187120: 628666, 144044032: 628666, 77606232: 818788, 192555264: 818788, 56712480: 1035384, 117359616: 1035384, 457: 2656147, 424: 2769541, 3572214272: 3726916, 696: 2594219, 256: 1775016, 52650312: 992960, 52138240: 992960, 46: 5257257, 43: 5855230, 338213: 2859261, 314560: 2859261, 473: 237410, 616: 49244, 522: 811186, 192: 505884, 2462042176: 47589, 4676: 279010, 2496: 527407, 282106609664: 279010, 5770: 1191242, 8288: 1552308, 3419: 1191242, 7504: 1304190, 5231: 502587, 8376: 502587, 7985: 502587, 8944: 908379, 40433: 934368, 20512: 934368, 29167: 1549166, 62112: 1549166, 425: 1127955, 648: 1434279, 898: 545623, 433: 378689, 50494752: 152202, 29922816: 152202, 55054824: 439376, 53563136: 439376, 928: 643302, 3363288896: 371185, 380: 115504, 512: 2042551, 2490718208: 386215, 52816280: 96405, 38277888: 96405, 46430560: 3909991, 167101440: 3909991, 68: 6097296, 11: 2022385, 319598: 220834, 473216: 220834, 989: 554886, 3310033408: 838822, 72963176: 803374, 175845120: 803374, 530: 583860, 288: 1337348, 2888086080: 452114, 455: 674779, 400: 2650103, 25685: 316149, 53152: 316149, 1801360: 546167, 4585: 171769, 1696: 1486180, 1928872: 171769, 615296: 976711, 33796: 763385, 75200: 763385, 32444: 961821, 88192: 961821, 37196: 293497, 91008: 293497, 31789: 433203, 42976: 433203, 27160: 1294768, 29888: 1294768, 35722: 3185797, 14272: 3185797, 315: 244617, 927: 244617, 941: 564253, 120: 799118, 262705: 623937, 225728: 623937, 50: 4680758, 90: 1807271, 4410: 123516, 9032: 123516, 321302648832: 123516, 25849: 684345, 39456: 684345, 1997688: 1273269, 402: 532727, 578: 279873, 716: 119805, 672: 405295, 405462: 185154, 706176: 185154, 4018741056: 713922, 63013192: 1280336, 197866240: 1280336, 58: 6533238, 33: 3155788, 44275000: 661411, 144886016: 661411, 45: 6725545, 232554: 219543, 426368: 219543, 74: 5759110, 29: 2958767, 1862080: 1995582, 574816: 638561, 2003760: 638561, 1212376: 1494242, 70309712: 648290, 195210752: 648290, 860: 822869, 200: 1234615, 41125656: 1124783, 42949280: 1123534, 53368832: 1123534, 3678725248: 397949, 2687353856: 646813, 60527720: 245576, 971520: 537055, 47758304: 333931, 56218624: 333931, 69647864: 1412471, 48252160: 1412471, 3854878016: 412816, 43115248: 996208, 39508480: 996208, 49: 5468127, 299017: 513434, 275392: 513434, 7329: 324038, 5112: 324038, 299803817984: 324038, 38016: 403627, 22528: 403627, 34452: 465784, 20416: 465784, 2965921024: 143844, 2425172992: 960896, 3322323136: 127777, 2556263424: 355476, 985: 100527, 661: 334976, 3637759488: 597483, 62351344: 1562773, 50907648: 1562773, 3256777920: 149687, 874: 311394, 720: 3347735, 453: 2331586, 376: 2766375, 526: 474195, 423: 350107, 3584504000: 314502, 3199425856: 804705, 2589036032: 730100, 7735: 73184, 9304: 73184, 7918: 620739, 2928: 652602, 6088: 620739, 1920: 620739, 69066976: 236121, 96763392: 236121, 73627048: 438485, 120403712: 438485, 700304: 625494, 955328: 1575831, 2383: 487080, 4624: 487080, 25030: 293426, 7936: 293426, 1014024: 1444311, 1926848: 1364236, 6782: 226294, 2216: 226294, 406249248768: 226294, 7437: 226294, 3904: 322298, 5803: 226294, 2128: 269886, 7628: 1072341, 204501073920: 1072341, 2617712064: 204906, 2392400384: 343704, 59199976: 444032, 111854336: 444032, 4002354752: 334336, 856: 391663, 152: 552788, 977: 456455, 592: 1311722, 3015079936: 676316, 2109736640: 300941, 404: 904231, 730: 458109, 664: 819109, 576: 623087, 465: 437199, 520: 1857396, 93: 1559223, 69: 4189608, 2052384576: 1237910, 3899940352: 1171483, 78933976: 859742, 81672448: 859742, 42: 6019463, 21: 2370857, 1572648: 548266, 437184: 1118540, 7594: 784470, 8576: 784470, 260607778816: 784470, 6309: 931413, 6176: 931413, 386454593536: 931413, 503: 818390, 976: 865096, 599: 1760133, 777: 643163, 216: 1314580, 204501: 917484, 73920: 917484, 2900375808: 822341, 809: 1940505, 600: 2988506, 67575288: 837683, 160: 2977134, 66247544: 524039, 129989376: 524039, 3977775296: 452625, 2130219520: 1360949, 876: 276186, 275: 1275236, 310159: 170128, 962112: 170128, 4153: 776275, 8552: 776275, 346472011776: 776275, 7893: 733882, 3976: 733882, 8167: 780093, 7130: 379538, 5520: 379538, 226786447360: 379538, 1653608: 768444, 1408704: 2220170, 32772: 885965, 60800: 885965, 838: 481539, 606: 583975, 220: 466558, 625: 297204, 197: 297204, 32485: 658444, 84768: 658444, 1669800: 1040558, 1603008: 1309778, 1837792: 400874, 1570624: 591149, 4742: 121416, 6368: 121416, 8393: 121416, 9328: 121416, 4510: 3171360, 4840: 3171360, 7558: 3171360, 4256: 3171360, 33387: 975173, 9440: 976096, 27528: 255248, 99072: 255248, 6284: 90825, 9248: 90825, 4394: 268516, 3064: 268516, 349356001280: 268516, 5671: 885199, 2480: 885199, 237535862784: 885199, 924968: 2266610, 858176: 2363410, 28184: 3127860, 44288: 3127860, 397: 205478, 204: 818545, 282: 335568, 893: 131521, 526240: 489102, 1228568: 489102, 1574672: 489102, 1651584: 1511967, 781264: 865571, 918896: 579989, 1200232: 1903114, 1145584: 714243, 1645512: 422768, 1311552: 1221529, 1777072: 191530, 33141: 1215069, 29984: 1215069, 24579: 1866109, 45600: 1866109, 39859: 483384, 68448: 483384, 6301: 1093544, 3192: 1093544, 400481269760: 1093544, 1161776: 468053, 40556: 468053, 10240: 468053, 24538: 1096494, 49024: 1096494, 688160: 1580005, 1301432: 391827, 1279168: 851877, 1712304: 271050, 26996: 372050, 43584: 372050, 973544: 900023, 1317624: 404649, 1657656: 367476, 71305520: 439786, 112048640: 439786, 817: 897425, 3277260800: 1032608, 73: 6539016, 51: 2295613, 299803: 275337, 817984: 275337, 76944384: 344148, 45596672: 344148, 69730848: 397879, 41321984: 397879, 81587440: 1253798, 62306816: 1253798, 981640: 1134603, 1538240: 2037887, 23760: 358461, 14080: 358461, 26300: 1063111, 1792: 1063111, 23227: 1063111, 58592: 1063111, 846032: 368765, 1576696: 28102, 485760: 1552919, 259: 313624, 821: 507893, 236: 191245, 48752088: 700536, 175456512: 700536, 76446480: 1052058, 87177728: 1052058, 78270104: 1183301, 137113856: 1183301, 8283: 62418, 325366452224: 62418, 7495: 154515, 4792: 282456, 6367: 418869, 7064: 433717, 288267859968: 418869, 890560: 745257, 653752: 1861348, 20728: 149431, 67456: 149431, 40515: 345583, 13664: 345583, 30150: 575128, 79936: 575128, 28512: 1624686, 16896: 1624686, 291456: 1230763, 1732544: 333238, 307648: 470423, 7255: 195695, 280: 1144523, 6475: 505056, 5856: 505056, 5233: 505056, 2544: 505056, 5240: 456458, 1360: 456458, 7292: 456458, 8768: 456458, 6906: 201920, 6976: 201920, 9676: 201920, 7362: 373242, 7048: 373242, 243697113088: 373242, 700: 537364, 304: 1144666, 955: 1355784, 328: 2830943, 50660720: 251431, 22: 1469733, 406249: 193434, 248768: 193434, 37: 1258093, 39: 3147123, 627: 508009, 440: 874033, 2265406528: 275783, 471: 275783, 825: 1221101, 792: 1540584, 708: 1122026, 3338709440: 1143053, 4444: 1602560, 265195943936: 1602560, 29823: 1828887, 7328: 1954499, 26218: 1330642, 8640: 1330642, 32649: 635597, 71072: 635597, 545: 393362, 768: 916161, 389: 512378, 731: 512378, 854: 512378, 1248808: 155908, 647680: 564083, 25562: 300812, 63424: 353336, 7039: 155908, 2696: 155908, 381079885824: 155908, 39122: 847031, 30080: 847031, 860200: 962512, 20319: 1314411, 21220: 1314954, 26368: 1314954, 1817552: 464563, 1327744: 753402, 4916: 1026092, 7008: 1026092, 284990599168: 1026092, 240: 1812375, 580: 575292, 992: 794670, 355: 942715, 123: 543305, 980: 440464, 910: 502251, 880: 1497435, 540: 224941, 408: 1661853, 3518958784: 224941, 803: 388989, 2445655872: 208558, 566: 839519, 3875360896: 125660, 2064674304: 181257, 2883989504: 696067, 24784: 309357, 28480: 309357, 6657: 177812, 9480: 177812, 206991792128: 177812, 6774: 414181, 1256: 414181, 8158: 1075718, 7440: 1077023, 6230: 1075718, 6816: 1172582, 1040336: 1121712, 1825648: 528312, 1424896: 812920, 21629: 1127290, 92128: 1127290, 20974: 1280465, 46912: 1280465, 7030: 550200, 9712: 550200, 395106562048: 550200, 5870: 513090, 2072: 857308, 310553233408: 513090, 279: 833039, 222: 875424, 620: 730553, 263: 369703, 497: 358638, 8050: 281622, 8648: 281622, 308455786496: 281622, 4311: 847921, 5248: 954362, 3950: 847921, 8480: 847921, 35886: 172732, 1125344: 793856, 1080816: 1055314, 680064: 1932827, 321: 233483, 3940906112: 106566, 226: 3618686, 81: 4238859, 92: 8553094, 41: 3521574, 254446: 966531, 528512: 966531, 437: 963360, 184: 963360, 1698136: 581548, 1617176: 833936, 1635392: 978010, 59697880: 1793488, 70273280: 1793488, 3752463616: 1248997, 3117494336: 1480846, 31256: 293982, 87488: 293982, 33878: 324627, 68352: 324627, 33428: 1110111, 6016: 1148294, 29249: 515645, 55264: 515645, 1932920: 1154586, 663872: 2411586, 6036: 1344195, 1752: 1344195, 643632: 283519, 1333816: 507848, 481712: 291059, 651728: 546837, 819720: 499910, 1548360: 112788, 797456: 1184412, 1376320: 4333364, 36705: 851455, 32096: 851455, 1309528: 413103, 4377: 826679, 7096: 826679, 377409353728: 826679, 1018072: 697513, 1975424: 737117, 33591: 297668, 92320: 297668, 2802057984: 1416901, 344: 1809507, 2601325760: 1358984, 237: 664840, 862: 787937, 784: 1228462, 1870176: 1662350, 1736592: 1732830, 356224: 2717163, 5704: 2295010, 4416: 2295010, 8963: 2295010, 8912: 2311686, 631: 1093346, 488: 1823654, 265: 1199719, 943: 1175716, 684: 1933958, 112: 4179025, 431: 1791072, 635: 1854495, 1961256: 355901, 7147: 361066, 1488: 361066, 9818: 361066, 6500: 561278, 4808: 561278, 3154: 561278, 2016: 561278, 95: 1550994, 254839: 793600, 799808: 793600, 916: 1707156, 761: 2026395, 53: 5969582, 3777043072: 1441367, 3867167744: 1620190, 1295360: 1814449, 1613128: 867310, 922944: 2295589, 7818: 537471, 7120: 537471, 291545120768: 537471, 7760: 774217, 6232: 699345, 389731854336: 699345, 518144: 1517040, 5265: 849486, 312: 1494778, 5213: 849486, 8240: 849486, 39777: 383233, 75296: 383233, 21302: 1155567, 19520: 1155567, 1773024: 234931, 556600: 1084971, 534336: 1441298, 310: 692881, 159: 144719, 962: 144719, 884488: 820059, 372416: 820059, 4104: 33355, 2672: 33355, 333: 33355, 231: 33355, 878: 222925, 480: 630081, 214: 516707, 2302275712: 318838, 32158: 170115, 12160: 170115, 5041: 242248, 1768: 242248, 3685: 242248, 2992: 372222, 6517: 222300, 37033: 211397, 5563: 183657, 5712: 183657, 395: 405041, 106: 609088, 562: 431910, 36869: 157028, 18400: 157028, 23186: 524587, 62016: 524587, 245: 100191, 794: 100191, 32977: 100191, 43680: 100191, 22613: 345215, 9952: 345215, 775: 102706, 3945002688: 69762, 3330516288: 362842, 3596793728: 164102, 841: 743358, 67077384: 1040183, 60687616: 1040183, 49747896: 1600044, 92294400: 1600044, 80674616: 414071, 138538752: 414071, 400481: 937923, 269760: 937923, 706376: 166928, 66: 5203164, 316714: 445372, 483712: 445372, 25931: 145058, 32608: 145058, 1072720: 498491, 273: 152780, 847: 152780, 448: 559781, 6574: 483923, 9640: 483923, 347258554368: 483923, 501: 1689850, 149614080: 784465, 64340936: 371725, 86983424: 371725, 553: 376764, 233: 376764, 6707: 891025, 7384: 891025, 6068: 891025, 7616: 1132739, 4974: 1369625, 7896: 1369625, 9229: 1369625, 564: 611027, 449: 642187, 2539877120: 535741, 1321672: 1367185, 1522048: 2498943, 34411: 1655180, 23840: 1655180, 27488: 248397, 6948: 219617, 1896: 219617, 6211: 219617, 2512: 219617, 5024: 328705, 5800: 266606, 5071: 266606, 3344: 266606, 31748: 63005, 46400: 63005, 6800: 43247, 4609: 427694, 8624: 711320, 394320019456: 427694, 6135: 129625, 5536: 129625, 271357194240: 129625, 361: 626205, 678: 107243, 5099: 399483, 632: 997564, 386061322240: 399483, 358: 267920, 401: 158524, 241: 186986, 162: 175393, 393: 277493, 6425: 46631, 7952: 46631, 9391: 46631, 3600: 468457, 1588840: 230300, 24907: 328420, 18208: 328420, 29659: 121702, 21024: 121702, 20523: 1059249, 84576: 1059249, 38999: 1001286, 40352: 1001286, 1064624: 405611, 24866: 360314, 21632: 360314, 31871: 360314, 36128: 360314, 1580744: 937060, 1858032: 481889, 1813504: 1162641, 24292: 1398733, 69568: 1398733, 5820: 135937, 4168: 135937, 394713290752: 135937, 4328: 370526, 1216: 373070, 2564: 370526, 8128: 457242, 25521: 282216, 66848: 282216, 4270: 187832, 7415: 187832, 9360: 187832, 29905: 285322, 27201: 510494, 26464: 510494, 1904584: 482990, 4908: 598667, 4024: 598667, 299017275392: 598667, 6807: 231787, 1168: 231787, 364169220096: 231787, 1556456: 72133, 242880: 685846, 20605: 513222, 77728: 513222, 39982: 542263, 58176: 542263, 31830: 401828, 39552: 401828, 38876: 84931, 50624: 84931, 4709: 140894, 4432: 140894, 225999904768: 140894, 42451376: 1096076, 94949888: 1096076, 412: 601879, 302818: 576365, 897920: 576365, 5306: 974620, 5232: 974620, 6608: 466854, 1576: 466854, 291151849472: 466854, 2232633920: 288549, 242: 586058, 787: 375432, 2994597056: 375432, 3498475904: 375432, 70: 7606903, 310553: 440059, 233408: 440059, 564696: 713063, 449328: 748852, 1254880: 625663, 532312: 316505, 1005928: 306687, 2486621632: 420715, 3187136128: 420715, 3342806016: 1303372, 781: 1099223, 918: 562706, 2429269568: 1639122, 1465376: 165250, 1198208: 1112939, 1641464: 147527, 1262976: 409588, 985688: 115948, 661848: 374584, 1797312: 694374, 1609080: 173067, 874368: 190830, 97: 1833518, 402971: 179692, 987968: 179692, 87: 2036480, 290758: 186200, 578176: 186200, 17: 3917563, 392222: 168066, 572544: 168066, 667920: 86766, 702328: 343313, 15: 717787, 291151: 397872, 849472: 397872, 593032: 1809157, 1299408: 1454678, 1147608: 1454678, 1750760: 138414, 572792: 138414, 43611128: 253898, 200327424: 253898, 981: 974882, 3113397760: 1747152, 64755856: 589113, 52332544: 589113, 2187571584: 907247, 76114544: 300943, 114898432: 300943, 74290920: 728850, 64962304: 728850, 284990: 875611, 599168: 875611, 1740640: 706259, 404800: 1054808, 4112: 987292, 5656: 963553, 36787: 339683, 25248: 339683, 6052: 209383, 7720: 209383, 971: 616514, 5505: 373621, 4824: 373621, 5356: 381077, 3136: 420610, 4775: 283626, 8304: 283626, 5621: 332585, 38548: 353858, 78016: 353858, 299: 678149, 3937: 266790, 503976: 951365, 599104: 1168705, 777216: 702368, 38: 2390386, 293642: 1989277, 567680: 1989277, 548504: 87669, 722568: 80905, 392656: 80905, 27774: 66999, 78528: 66999, 36377: 508479, 59488: 508479, 25890: 622324, 36032: 622324, 99: 2475570, 21793: 168775, 78432: 168775, 4120: 163533, 6616: 163533, 402578716672: 163533, 32199: 302994, 347258: 410053, 554368: 410053, 68403104: 650921, 152204800: 650921, 65666656: 821988, 178500608: 821988, 394320: 364372, 19456: 364372, 293249: 483303, 296384: 483303, 5198: 231060, 6440: 231060, 217741207552: 231060, 26586: 105831, 77824: 105831, 28839: 594551, 89504: 594551, 6765: 813550, 8272: 941491, 349356: 227447, 1280: 227447, 48256208: 523793, 75616640: 609034, 156479488: 609034, 712448: 353292, 1281192: 197488, 76280512: 1252854, 101038080: 1252854, 6740: 225972, 9320: 225972, 3296: 424240, 6912: 225972, 5372: 655758, 7080: 890214, 332838606848: 655758, 7279: 102248, 7208: 102248, 383963875328: 102248, 434: 258335, 973: 770319, 813: 494149, 416: 998403, 210: 1539583, 277: 744001, 444: 744001, 3985968448: 563945, 48090240: 309496, 28497920: 309496, 82251312: 426992, 10: 3131868, 53231200: 916746, 47011448: 916746, 118590208: 916746, 39040: 125736, 36928: 125736, 1244760: 744696, 609: 283198, 637: 178884, 3797525952: 178884, 5414: 733561, 2000: 733561, 262705225728: 733561, 33305: 309470, 16288: 309470, 35967: 140502, 93728: 140502, 1702184: 635888, 8067: 354460, 4616: 354460, 280402434048: 354460, 481: 1052540, 269: 838928, 4059706816: 95959, 3244488192: 1127415, 4261: 600373, 7344: 1046414, 8108: 600373, 9536: 600373, 7478: 283465, 8824: 283465, 2338: 283465, 1248: 283465, 5837: 435444, 366659938304: 435444, 377: 642664, 353: 606572, 54805872: 180191, 74353664: 180191, 77689216: 130342, 185625088: 130342, 2277696256: 686062, 367: 48600, 209: 477405, 2105640064: 961440, 884: 704367, 372: 878337, 41953472: 128949, 136530944: 128949, 82002360: 297588, 27655936: 297588, 61023600: 497926, 161790464: 497926, 702: 297781, 2269503104: 415268, 744: 973616, 832: 1050953, 308: 618834, 515: 411746, 285: 585753, 230: 518962, 534: 1239191, 2666870976: 348869, 819: 430085, 935: 116756, 2892182656: 222383, 8133: 446041, 8488: 446041, 8309: 446041, 296: 1370575, 384: 824149, 2351434624: 403995, 82085344: 403995, 20725760: 403995, 49664912: 941821, 99224576: 941821, 50990632: 468107, 190741760: 468107, 19: 2808031, 54971840: 1109613, 60493312: 1109613, 597080: 131007, 1475496: 131007, 605176: 575520, 76612448: 1038924, 73317376: 1038924, 71139552: 1083520, 125908992: 1083520, 763048: 547596, 827816: 605511, 714472: 516672, 41704520: 437450, 157321472: 437450, 80923568: 462363, 117748224: 462363, 378195: 186283, 896320: 186283, 249071: 553989, 820800: 553989, 433136: 437599, 23022: 269408, 75712: 269408, 254053: 330831, 257216: 330831, 1001880: 61956, 32526: 61956, 81344: 61956, 2009832: 134745, 5779: 125612, 1272: 125612, 2726: 125612, 933064: 185495, 68071168: 272875, 179925504: 272875, 61687472: 518952, 106349056: 518952, 41538552: 906487, 171181824: 906487, 288267: 359111, 859968: 359111, 3412447808: 322701, 346472: 664019, 11776: 664019, 1236664: 401646, 501952: 930157, 33509: 309065, 99168: 309065, 36746: 309065, 28672: 309065, 37688: 1462538, 49920: 1462538, 405: 586863, 462: 159745, 706: 303448, 40187: 609930, 41056: 609930, 71056568: 43206, 132839168: 43206, 72550280: 230628, 52401360: 536154, 72928768: 536154, 63262144: 253089, 177075712: 253089, 68569072: 280323, 138344448: 280323, 67658272: 953439, 3912230080: 992963, 643: 460599, 846: 317854, 2699643584: 436224, 651: 476031, 3133880640: 97277, 2650484672: 356143, 377409: 708784, 353728: 708784, 2060577728: 597725, 3998258176: 631833, 67988184: 255212, 186855680: 255212, 66330528: 757968, 123059200: 757968, 615: 872140, 791: 70668, 4092479424: 101273, 3703304704: 246388, 445: 343702, 2560360000: 218727, 398: 218727, 639: 279824, 2924955264: 605451, 4875: 600559, 2088: 600559, 355123980288: 600559, 532: 272095, 2035998272: 263862, 786: 484403, 7263: 127418, 3264: 127418, 2359627776: 456890, 22776: 582030, 96256: 582030, 21875: 777400, 71584: 777400, 649: 171818, 79763816: 78528, 64423920: 344695, 80053248: 344695, 597: 283916, 2986403904: 112518, 307: 406119, 605: 497971, 556: 936377, 793: 1056556, 3695111552: 451215, 25439: 186049, 73696: 186049, 1505856: 827129, 1683968: 893400, 295: 153620, 729: 153620, 937: 242058, 3682821824: 227876, 2716029888: 1519067, 7802: 260292, 1152: 260292, 319598473216: 260292, 73295112: 376248, 148124416: 376248, 3080625152: 2135474, 3801622528: 469558, 3445220416: 543113, 45851696: 202446, 953: 202446, 3379675200: 892843, 46762496: 327642, 139380736: 327642, 3719691008: 344292, 3178942976: 507269, 55: 2130840, 315927: 287584, 941120: 287584, 2675064128: 1164118, 3355095744: 314999, 70890600: 73449, 146699520: 73449, 81006552: 244898, 110818048: 244898, 611: 468886, 248: 1089430, 595: 41781, 388: 370708, 608: 528374, 55716672: 218819, 200521728: 218819, 3142073792: 124173, 3424737536: 124173, 718: 691763, 3727884160: 368819, 2138412672: 594138, 435160: 462325, 28921: 189667, 82656: 189667, 1293336: 238361, 1182016: 400616, 1977448: 389780, 5903: 1134534, 4008: 1134534, 254446528512: 1134534, 37114: 271038, 97856: 271038, 23842: 612232, 7232: 612232, 37360: 709836, 77312: 709836, 4245: 937443, 1376: 937443, 9494: 937443, 9888: 952800, 833888: 513549, 302: 640293, 818: 492398, 897: 492398, 271: 102366, 357: 94511, 194: 94511, 142: 5021, 591: 5021, 6442: 294491, 3920: 294491, 8005: 294491, 3248: 348478, 36213: 441383, 73184: 441383, 1878272: 549701, 342: 124975, 8001: 47200, 392615843840: 47200, 8034: 190868, 2680: 190868, 336509138944: 190868, 1432992: 957346, 809600: 2263354, 21916: 1362326, 68160: 1362326, 34370: 425296, 27264: 425296, 32731: 609623, 64224: 609623, 33100: 715061, 33408: 715061, 75948576: 913610, 128758784: 913610, 63096176: 1083584, 190936064: 1083584, 257: 338516, 79182928: 728035, 60881920: 728035, 2027805120: 54043, 65832624: 54043, 164640256: 54043, 2593132608: 170615, 4560: 71943, 2744: 71943, 3400: 71943, 3200: 408192, 5364: 222955, 4096: 222955, 346865283072: 222955, 4966: 804340, 4912: 804340, 9922: 804340, 5323: 779943, 1200: 779943, 4701: 779943, 1448: 779943, 240026580992: 779943, 1590864: 412819, 904728: 237028, 728640: 1040380, 67741256: 481099, 1358104: 340144, 34329: 300509, 30688: 300509, 24825: 364052, 25056: 364052, 34738: 749907, 96448: 749907, 900680: 291316, 566720: 980737, 25603: 184693, 60000: 184693, 805552: 184693, 6208: 448800, 7561: 520359, 6640: 566570, 316714483712: 520359, 4477: 102841, 2904: 102841, 209089239040: 102841, 24948: 178279, 14784: 178279, 7470: 46525, 5840: 46525, 3031: 46525, 1424: 46525, 7429: 626969, 6496: 631862, 2304: 626969, 880440: 337688, 1024144: 203824, 2001736: 471564, 1489664: 786293, 856152: 297074, 35845: 267437, 4000: 267437, 31994: 684966, 25856: 684966, 40146: 274544, 44480: 274544, 1177968: 836858, 1845888: 970242, 210496: 1793882, 355910: 587263, 522880: 587263, 73793016: 343010, 106543360: 343010, 54142000: 851880, 129795072: 851880, 558624: 68490, 1275120: 68490, 937112: 264833, 1819576: 264833, 275264: 970603, 282893: 152971, 152256: 152971, 2543973696: 216591, 53727080: 768562, 164445952: 768562, 3346902592: 658223, 446: 830029, 46928464: 451377, 125520384: 451377, 740: 283191, 3842588288: 234067, 3125687488: 344934, 3387868352: 382643, 60361752: 1566009, 4067899968: 116147, 68983992: 561355, 103693568: 561355, 933: 159308, 386061: 342656, 322240: 342656, 1416800: 457714, 267: 307764, 859: 307764, 34124: 275687, 47808: 275687, 346: 731904, 23834624: 567603, 2503007936: 343724, 952: 1601515, 67822216: 264316, 200716032: 264316, 74373904: 264316, 58032128: 264316, 2400593536: 139801, 3932712960: 139801, 62849248: 107003, 47924272: 151039, 42358272: 151039, 53976032: 255026, 143655424: 255026, 1337864: 282750, 1716352: 1023984, 1896488: 204574, 36828: 192400, 21824: 192400, 70475680: 76731, 181350400: 76731, 520168: 289913, 1841840: 430476, 1056528: 691057, 215643: 250455, 760640: 250455, 1129392: 49605, 25808: 49605, 42880: 49605, 813648: 457824, 878416: 222769, 1186064: 161201, 1943040: 161201, 31052: 124455, 4608: 133477, 23678: 175199, 20928: 175199, 908776: 548860, 23432: 165746, 41472: 165746, 26177: 174530, 12064: 174530, 23924: 292623, 5919: 378210, 9976: 378210, 226393176064: 378210, 40023: 285638, 54752: 285638, 3183039552: 469707, 409526: 62300, 509568: 62300, 423016: 406406, 1771000: 365762, 77359304: 85749, 37524: 1070584, 63616: 1070584, 31174: 1270359, 94336: 1270359, 3523055360: 603290, 5804: 246091, 25193: 544455, 94240: 544455, 435: 397410, 506: 239868, 2384207232: 715629, 3736077312: 831283, 2212151040: 165014, 71222536: 165014, 118978816: 165014, 243: 285742, 697: 273833, 113: 273833, 2867603200: 392870, 821744: 184702, 1554432: 780540, 412896: 701714, 302818897920: 672613, 4850: 46989, 397204008960: 46989, 32567: 126746, 77920: 126746, 1768976: 263309, 1208328: 243609, 29864: 96004, 621368: 345086, 1224520: 421404, 36951: 387143, 11552: 387143, 7246: 142208, 4485: 66693, 5888: 66693, 9637: 66693, 4784: 66693, 5853: 139690, 6104: 139690, 338606585856: 139690, 491832: 244207, 1410728: 234119, 228712: 234119, 28676: 336249, 993: 159158, 3408351232: 768715, 57791272: 148290, 27267328: 148290, 742: 35449, 215: 543793, 262: 743923, 705: 617292, 225: 639362, 67409320: 266197, 32966912: 266197, 308455: 242587, 786496: 242587, 586: 191358, 960: 191358, 3105204608: 146621, 2367820928: 206100, 1829696: 287733, 34: 1972787, 1659680: 405184, 66081576: 544978, 143849728: 544978, 53644096: 260291, 171376128: 260291, 58204168: 158553, 195016448: 158553, 43281216: 434919, 25648128: 434919, 785: 270711, 2552166848: 331578, 42700328: 219824, 74159360: 219824, 2990500480: 335793, 49084024: 702455, 147735808: 702455, 45768712: 296085, 409133: 59664, 238272: 59664, 75118736: 230803, 198060544: 230803, 2875796352: 217418, 45934680: 303291, 3047852544: 709323, 623392: 524340, 920920: 575471, 2642291520: 138095, 49581928: 107153, 106154752: 107153, 3920423232: 126671, 209089: 88582, 239040: 88582, 647: 487254, 57376352: 49021, 61918208: 49021, 850: 143566, 4063803392: 581981, 74622856: 134081, 37241600: 134081, 748: 15183, 8200: 254145, 2360: 254145, 2765: 254145, 5936: 309088, 6102: 421826, 327463899136: 421826, 1625272: 329718, 24456: 177815, 55872: 177815, 1269048: 433479, 38753: 107493, 60896: 107493, 20646: 154469, 74304: 154469, 1530144: 39604, 37606: 352559, 56768: 352559, 7105: 36513, 6568: 36513, 268866476032: 36513, 1805408: 38155, 949256: 156505, 1149632: 260812, 400874: 168841, 541056: 168841, 5571: 186749, 6672: 482617, 405855977472: 186749, 31420: 106153, 73792: 106153, 34247: 106153, 37536: 106153, 58536104: 162045, 167295744: 162045, 611248: 547241, 1655632: 420808, 1815528: 420808, 585: 102436, 5298: 127917, 2248: 127917, 2441: 127917, 7536: 127917, 4842: 214670, 2176: 214670, 8100: 209570, 6552: 209570, 224295729152: 209570, 541: 146242, 257330: 67255, 518016: 67255, 3465703296: 232211, 53312160: 246552, 199096832: 246552, 53065232: 1139180, 50162816: 265728, 57643520: 265728, 46098624: 500520, 194822144: 500520, 65749640: 563807, 171570432: 563807, 51654504: 242512, 135300352: 242512, 3248584768: 772411, 3588600576: 202074, 364169: 199277, 220096: 199277, 3150266944: 62112, 787336: 437772, 1479544: 437772, 1728496: 437772, 1305480: 161339, 24497: 125742, 52448: 125742, 1936968: 148050, 43943064: 311923, 172606720: 311923, 352633: 241084, 262080: 241084, 349: 197050, 51986440: 273301, 107579648: 273301, 3645952640: 469047, 3904036928: 148081, 282106: 239870, 609664: 239870, 75284704: 251764, 184200192: 251764, 637560: 210535, 1876248: 210535, 5115: 84448, 6600: 84448, 358007969792: 84448, 26504: 303778, 84672: 303778, 771: 84448, 3625469760: 84448, 3375578624: 125329, 7445: 249611, 6888: 249611, 5110: 249611, 1952: 249611, 5439: 405115, 220625197056: 405115, 2941341568: 505582, 81255504: 235429, 90027520: 235429, 75450672: 270153, 170339840: 270153, 44772904: 120794, 103304960: 120794, 240813: 120794, 123584: 120794, 66579480: 208136, 102268672: 208136, 228883: 111500, 894272: 111500, 249465: 67600, 92096: 67600, 304391: 97070, 983104: 97070, 366659: 372969, 938304: 372969, 6002: 90022, 9816: 90022, 4255: 90022, 2576: 90022, 7172: 74872, 7739: 74872, 904: 337894, 3404254656: 20920, 81338488: 522393, 83097344: 522393, 49167008: 1197930, 140805632: 1197930, 240026: 670138, 580992: 670138, 375: 104880, 178: 81400, 1730520: 116703, 302294: 65966, 536192: 65966, 59531912: 369992, 84133632: 369992, 1360128: 348164, 344767: 197233, 836160: 197233, 52982248: 149617, 24417536: 149617, 48422176: 251381, 226393: 324387, 176064: 324387, 3506669056: 287590, 361285: 601587, 230592: 601587, 2146605824: 169238, 633512: 29137, 1679920: 27695, 999856: 27695, 420992: 227534, 42617344: 704788, 81089536: 704788, 3621373184: 515609, 987: 1489418, 4014644480: 322944, 318418: 319545, 659328: 319545, 238322: 337729, 405376: 337729, 375311: 27975, 906816: 27975, 271357: 111188, 194240: 111188, 730664: 531472, 1372272: 91989, 795: 203843, 432: 225142, 5016: 227045, 2816: 357019, 5764: 227045, 3520: 227045, 23514: 344218, 34624: 344218, 5344: 344218, 5760: 344218, 34820: 89650, 89600: 89650, 8225: 362581, 1312: 362581, 322: 640172, 4361: 218809, 1128: 218809, 405462706176: 218809, 1985544: 830422, 31133: 1491016, 97760: 1491016, 7611: 260081, 4544: 260081, 232554426368: 260081, 284: 754492, 990: 754492, 2933148416: 88405, 2752899072: 297567, 330: 101383, 824: 169866, 74788824: 331135, 23381248: 331135, 70973584: 209073, 139769344: 209073, 5953: 315863, 1912: 315863, 8413: 315863, 3632: 315863, 69564880: 364455, 55182336: 364455, 66994400: 613645, 67617792: 613645, 6326: 215713, 2144: 215713, 358401241088: 215713, 6856: 238499, 9072: 238499, 280009162752: 238499, 31338: 83043, 80640: 83043, 6798: 218965, 8184: 218965, 378195896320: 218965, 6633: 650138, 249071820800: 650138, 588984: 1529019, 2584939456: 800389, 39695: 260906, 82144: 260906, 8183: 684259, 6392: 722442, 4151: 684259, 6288: 684259, 673: 24599, 467: 24599, 21711: 367096, 85280: 367096, 5845: 283874, 3120: 283874, 352633262080: 283874, 280402: 303269, 434048: 303269, 544456: 717999, 47592336: 295983, 70078976: 295983, 1173920: 492018, 2007808: 677725, 65915608: 110084, 157710080: 110084, 3580407424: 228311, 60444736: 82898, 2478428480: 364377, 1157728: 224471, 37647: 28881, 53344: 28881, 33919: 28881, 64928: 28881, 1965304: 523984, 256937: 16424, 246720: 16424, 65087792: 144252, 24611840: 144252, 2171185280: 426210, 58453120: 330306, 174225920: 330306, 35025: 85881, 72480: 85881, 595056: 48739, 388608: 428003, 1552408: 145031, 1692064: 145031, 319205: 79908, 201920: 79908, 72467296: 166069, 2261309952: 406858, 70226728: 82400, 202140928: 82400, 3711497856: 316971, 645: 189523, 2449752448: 147943, 957: 174335, 352: 415080, 58040224: 288029, 2519394240: 639871, 217741: 200063, 207552: 200063, 79016960: 108203, 74742272: 108203, 308062: 476766, 515200: 476766, 570768: 286381, 214544: 519927, 1232616: 242697, 372821: 184359, 188608: 184359, 1289288: 153783, 37975: 153783, 25952: 153783, 489808: 501659, 395106: 472927, 562048: 472927, 74456888: 292156, 51101952: 292156, 54390952: 474472, 109004544: 474472, 78021152: 301706, 157904384: 301706, 7694: 295868, 4384: 295868, 4559: 295868, 6973: 341982, 4132: 341982, 1984: 341982, 60029816: 105154, 42552576: 105154, 67243352: 93849, 46827264: 93849, 51737488: 260022, 128370176: 305316, 4035127360: 73899, 2707836736: 246724, 969496: 414769, 38057: 6764, 19104: 6764, 657800: 40084, 740784: 330444, 914848: 40084, 1807432: 111389, 367053: 55415, 209600: 55415, 358401: 185142, 241088: 185142, 280009: 204854, 162752: 204854, 447: 277315, 33469: 563927, 2592: 563927, 374918: 73639, 635520: 73639, 220625: 345512, 197056: 345512, 1734568: 68117, 441232: 70248, 33223: 107979, 23136: 107979, 1313576: 145053, 7976: 65924, 3816: 65924, 33550: 269957, 95744: 269957, 7089: 63024, 296919828480: 63024, 226786: 323808, 447360: 323808, 77855184: 8218, 171764736: 8218, 1094984: 123500, 65170776: 259677, 3359192320: 347978, 346865: 189620, 283072: 189620, 225999: 119523, 904768: 119523, 28471: 22434, 20320: 22434, 524216: 265327, 993784: 183029, 28553: 170653, 13472: 170653, 461472: 252544, 1833744: 368341, 1060576: 194322, 33632: 315757, 88896: 315757, 965448: 118232, 876392: 319682, 4659: 196590, 310159962112: 196590, 51488536: 157642, 149160704: 157642, 332838: 560964, 606848: 560964, 61355536: 151979, 134069760: 151979, 361678: 125977, 501888: 125977, 218: 83271, 527: 15496, 750: 15496, 982: 15496, 486: 15496, 4949: 129980, 228883894272: 129980, 327888: 149506, 240419: 39499, 852288: 39499, 48586120: 102625, 189316864: 102625, 79597848: 102625, 26231040: 102625, 617: 184003, 70392696: 184003, 188280576: 184003, 338999: 13535, 857152: 13535, 3174846400: 75736, 724: 196554, 2748802496: 294377, 2285889408: 43696, 52235392: 43696, 86789120: 43696, 3838491712: 178095, 74539872: 167844, 44171776: 167844, 570: 247087, 3658242368: 97329, 5148: 137257, 8536: 166591, 301901264896: 137257, 2253116800: 115455, 2216247616: 106938, 713: 100295, 290: 260363, 250: 327784, 875: 428166, 5165: 207713, 4504: 207713, 273847912448: 207713, 374: 63423, 3510765632: 58713, 441: 60859, 865: 164301, 283: 164301, 965: 103529, 63926016: 45563, 121634304: 45563, 285777: 45563, 141760: 45563, 322089: 67324, 191424: 67324, 80508648: 331146, 152399104: 331146, 47426368: 141693, 83939328: 141693, 3760656768: 411107, 22326: 245988, 33920: 245988, 31461: 571100, 70368: 571100, 1592888: 320440, 29945: 320440, 97056: 320440, 34984: 320440, 75904: 320440, 243303: 13686, 841792: 13686, 1685992: 375848, 3350999168: 360235, 3674628672: 360235, 22654: 235129, 953304: 235129, 23104: 381345, 68864: 381345, 5140: 334625, 5552: 334625, 315927941120: 334625, 336509: 163424, 138944: 163424, 1141536: 521814, 25398: 457986, 77120: 457986, 35312: 491988, 48512: 491988, 38630: 733178, 71168: 733178, 38343: 954945, 95136: 954945, 671968: 465274, 1696112: 410903, 1226544: 497876, 35804: 193556, 7424: 193556, 22162: 90917, 47616: 90917, 1400608: 77597, 1821600: 212706, 1706232: 29190, 305624: 290888, 1718376: 290888, 277518: 866971, 444544: 866971, 791384: 82770, 1989592: 80901, 2021976: 117573, 445280: 398662, 1265000: 253161, 398728: 253161, 5762: 16481, 5304: 16481, 7680: 16481, 586960: 219931, 1534192: 168972, 1169872: 238814, 649704: 199670, 29331: 75370, 48416: 75370, 420: 196738, 61438520: 91697, 127139584: 91697, 2634098368: 335838, 47260400: 132120, 97799680: 132120, 769: 84385, 50411768: 281352, 36852992: 281352, 645656: 219593, 1210352: 171128, 957352: 201880, 4051513664: 405638, 633: 232708, 53810064: 92549, 157515776: 92549, 209875: 410874, 781632: 410874, 6790: 198066, 5200: 198066, 392222572544: 198066, 7752: 53987, 403758530560: 53987, 206: 141752, 991: 130384, 128: 166072, 217: 169719, 741: 169719, 207: 215013, 552: 553961, 7379: 292688, 3016: 292688, 215643760640: 292688, 377278: 41865, 263296: 41865, 736736: 145501, 342056: 145501, 80010744: 54653, 193980160: 54653, 82332272: 84681, 202335232: 84681, 3822105408: 116166, 263098: 383537, 497024: 383537, 69398912: 19731, 69042688: 19731, 2072867456: 175326, 2154798976: 345958, 50328784: 306872, 43783168: 306872, 64506904: 306872, 73123072: 306872, 69481896: 259300, 62112512: 259300, 50245800: 313999, 50713344: 313999, 3031466240: 207951, 54639904: 319308, 88214016: 319308, 77772200: 171994, 178694912: 171994, 949: 134333, 2326855168: 224866, 1661704: 431513, 477664: 161635, 414920: 58166, 406824: 58166, 394713: 115597, 290752: 115597, 2527587392: 134313, 381079: 134313, 885824: 134313, 4220: 87928, 2424: 87928, 234258601984: 87928, 627440: 593966, 1119272: 321876, 471592: 321876, 1076768: 230389, 20359: 223305, 98272: 223305, 355123: 513899, 980288: 513899, 1246784: 41895, 24620: 40453, 42176: 40453, 23350: 153354, 48320: 153354, 5049: 129974, 4752: 129974, 769120: 98120, 5281: 81869, 6280: 81869, 3827: 81869, 7888: 81869, 319: 258241, 598: 201189, 28880: 385790, 86080: 385790, 321302: 106664, 648832: 106664, 1449184: 103324, 1497760: 240852, 38425: 199843, 88288: 199843, 4518: 179953, 7824: 179953, 6865: 201289, 4080: 257144, 989736: 645100, 32240: 234456, 5312: 234456, 6060: 234456, 8680: 234456, 397597280256: 234456, 310946504704: 234456, 358007: 71218, 969792: 71218, 1560504: 71218, 36254: 71218, 69760: 71218, 33755: 105626, 78624: 105626, 4809: 262717, 2849: 262717, 7920: 262717, 29413: 430856, 41568: 430856, 8125: 201161, 5504: 201161, 9002: 201161, 7520: 201161, 7545: 229695, 344767836160: 229695, 228: 295702, 883: 95064, 894: 95064, 186402304: 57212, 391: 95980, 983: 93977, 366: 386164, 659: 594846, 938: 319460, 20851: 120488, 57184: 120488, 617320: 212456, 34779: 212456, 93024: 212456, 6525: 171398, 3760: 171398, 946: 171398, 504: 247420, 79348896: 93103, 47021568: 93103, 906: 432170, 372034: 19614, 646016: 19614, 3215812160: 196967, 540408: 262769, 1738616: 262769, 72633264: 147535, 63760048: 45220, 135494656: 45220, 439: 125375, 208: 267388, 3035562816: 125375, 418: 433691, 2658677824: 126028, 405855: 160128, 977472: 160128, 38302: 73424, 98560: 73424, 1969352: 659511, 1920776: 114886, 23268: 191345, 55168: 191345, 4759: 252499, 7007: 252499, 8976: 252499, 724592: 226497, 811624: 135076, 487784: 159047, 795432: 237403, 888536: 106384, 30355: 106384, 62816: 106384, 1103080: 335854, 1092960: 192041, 35189: 192041, 58784: 192041, 80342680: 223331, 166259456: 223331, 3543538240: 120431, 572: 265302, 43447184: 122871, 3953195840: 75072, 246187: 33171, 831296: 33171, 576840: 497196, 285384: 33171, 386584: 49256, 900: 251758, 51820472: 160436, 121440000: 160436, 805: 160436, 639584: 326049, 1445136: 705031, 977592: 373161, 1042360: 348549, 465520: 439483, 40597: 81258, 1544312: 401528, 1673848: 443724, 1888392: 135044, 7321: 43592, 313830494208: 43592, 7412: 43592, 4952: 43592, 7882: 43592, 2656: 43592, 22531: 98104, 16800: 98104, 32403: 44029, 91616: 44029, 8150: 43010, 4456: 43010, 6923: 43010, 6992: 88511, 30314: 175849, 66240: 175849, 5463: 272173, 9904: 272173, 8821: 272173, 4016: 272173, 7777: 145834, 2200: 145834, 361678501888: 145834, 473616: 55338, 522192: 356324, 1216424: 55338, 1153680: 209798, 380512: 134785, 26095: 112422, 18912: 112422, 7686: 112422, 1400: 112422, 5252: 112422, 6848: 112422, 44109032: 146015, 158746368: 146015, 402578: 141812, 716672: 141812, 1898512: 273569, 51156600: 97993, 176881408: 97993, 259821: 222435, 236224: 222435, 771144: 97993, 1791240: 97993, 1667776: 144940, 22121: 140147, 51040: 140147, 7122: 140147, 2536: 140147, 240813123584: 140147, 32895: 242333, 50528: 242333, 7843: 78456, 249465092096: 78456, 4178: 112948, 304391983104: 112948, 1030216: 164598, 279312: 119301, 3482089600: 105108, 70145768: 169528, 273847: 177425, 912448: 177425, 52484344: 124175, 65998592: 124175, 1882320: 49240, 269192: 43542, 550528: 183135, 59116992: 53825, 118784512: 53825, 3469799872: 111903, 71720440: 88096, 77397760: 88096, 2343241472: 194542, 27324: 58600, 919: 45585, 828: 45585, 24374: 25894, 62720: 25894, 855: 136032, 6359: 77191, 302294536192: 77191, 6931: 77191, 5928: 77191, 7597: 77191, 2864: 77191, 1536216: 65410, 1273096: 15028, 939136: 18298, 20810: 1305, 60608: 1305, 6716: 1305, 5375: 1305, 61521504: 18878, 120209408: 18878, 27078: 207207, 36736: 207207, 205: 68420, 201: 68420, 1648: 14848, 338999857152: 14848, 1568600: 87029, 1113200: 133582, 215250: 379720, 489344: 379720, 1420848: 251072, 26668: 295568, 70976: 295568, 692: 91322, 491: 215528, 2855313472: 200638, 206991: 151752, 792128: 151752, 1787192: 81891, 1809456: 81891, 377278263296: 49623, 72797208: 120074, 189705472: 120074, 383177: 74423, 332736: 74423, 21466: 142439, 5824: 142439, 1953160: 86710, 1329768: 28679, 1849936: 28679, 1600984: 60207, 33960: 5056, 61504: 5056, 67905200: 230045, 193785856: 230045, 276338: 93362, 630656: 93362, 416944: 120307, 2005784: 110606, 259072: 141725, 799480: 344935, 1137488: 367916, 265144: 9701, 483736: 64471, 45436776: 40837, 47863552: 40837, 59863848: 37723, 56412928: 37723, 47094432: 164207, 111660032: 164207, 1406680: 31119, 81670424: 53606, 55376640: 53606, 243697: 320769, 113088: 320769, 2244923648: 55597, 2957727872: 51447, 321695: 42568, 920128: 42568, 439208: 146005, 1499784: 146005, 418968: 184572, 1117248: 470214, 318811: 67430, 930624: 67430, 3437027264: 497844, 3273164224: 717007, 837: 37130, 397204: 40046, 8960: 40046, 8233: 72107, 2272: 164395, 409526509568: 72107, 38221: 99289, 5408: 99289, 506000: 278557, 5066: 215382, 406: 216185, 803528: 176706, 3191232704: 24000, 325366: 54346, 452224: 54346, 6890: 12785, 1008: 12785, 223902457856: 12785, 5397: 218469, 290758578176: 218469, 31584: 51786, 60096: 51786, 7337: 51786, 285777141760: 51786, 6832: 76754, 322089191424: 76754, 325: 46391, 452: 46391, 268: 26747, 866: 26747, 476: 26747, 38384: 149671, 91712: 149671, 7453: 140924, 9872: 140924, 4417: 140924, 1776: 140924, 1088912: 12330, 5182: 135109, 245794560000: 135109, 1629320: 135109, 301901: 115712, 264896: 115712, 848056: 28351, 1724448: 28351, 1350008: 80577, 35435: 101282, 38240: 101282, 7022: 69320, 6728: 69320, 409133238272: 69320, 469568: 212906, 1121296: 479788, 862224: 161141, 495880: 85060, 1607056: 85060, 66745448: 85060, 88408320: 85060, 1097008: 16666, 35476: 16666, 34816: 16666, 1949112: 81266, 78685024: 71384, 102462976: 71384, 44855888: 77988, 96374784: 77988, 29208: 61372, 58688: 61372, 552552: 129060, 1714328: 129060, 318: 332957, 765: 132304, 41042672: 39016, 333231: 39016, 878144: 39016, 3097011456: 34108, 268866: 31580, 476032: 31580, 3654145792: 32494, 4344: 210948, 7184: 104507, 2376014080: 421942, 758: 199663, 311: 23480, 657: 34080, 914: 34080, 495: 73457, 3252681344: 73457, 6674: 73457, 5448: 73457, 8840: 73457, 8320: 73457, 77110352: 30982, 31736320: 30982, 2085157184: 141572, 765072: 153744, 843: 34477, 756: 46706, 364: 169354, 169: 169354, 4195: 110614, 3472: 110614, 276338630656: 110614, 35066: 244464, 69056: 244464, 55635712: 214734, 1860056: 39091, 1675872: 39091, 419: 33487, 852: 33487, 4858: 87088, 6120: 87088, 383177332736: 87088, 7959: 87088, 7848: 87088, 2623: 87088, 1040: 89384, 25275: 114603, 87392: 114603, 5173: 220685, 7488: 220685, 259821236224: 259252, 381: 114603, 885: 114603, 5331: 210676, 402971987968: 210676, 7014: 146409, 5768: 146409, 2179378432: 198969, 41206616: 193262, 198902528: 193262, 21547: 296864, 98976: 296864, 5032: 263776, 8784: 263776, 4378: 263776, 3168: 263776, 6450: 263776, 6904: 280452, 7312: 265549, 3072: 263776, 51073616: 26637, 183811584: 26637, 2494814784: 207540, 2732416192: 69764, 68320120: 91519, 159134976: 91519, 811: 173485, 624: 484113, 487: 136915, 55799656: 13405, 193591552: 13405, 3871264320: 13405, 383963: 88760, 875328: 88760, 3830298560: 85873, 46596528: 233404, 153241088: 233404, 6508: 125564, 2461: 125564, 274: 28462, 183: 28462, 65253760: 201411, 397597: 201411, 280256: 201411, 310946: 201411, 504704: 201411, 779: 32930, 82830176: 73954, 160754176: 73954, 74954792: 180357, 1914704: 147605, 1020096: 211508, 5537: 46211, 5480: 152666, 5872: 152666, 7435: 152666, 3664: 152666, 24005: 118499, 93536: 118499, 39327: 118499, 12960: 118499, 4272: 127941, 4235: 127941, 5530: 43194, 3776: 43194, 1892440: 99571, 4543: 34492, 6776: 34492, 4786: 34492, 3552: 34492, 5986: 31863, 3848: 31863, 5641: 31863, 2847120320: 26420, 59365944: 65063, 97993984: 65063, 3809815680: 42433, 79846800: 51259, 2920858688: 73663, 542432: 23121, 1752784: 23121, 963424: 23121, 73958984: 23674, 92683008: 23674, 3887650624: 97340, 330347: 51881, 888640: 51881, 65583672: 37813, 185430784: 37813, 3686918400: 184457, 245794: 116683, 560000: 116683, 3297743680: 116683, 524: 229980, 477: 140468, 3158460096: 61961, 73378096: 61961, 141194240: 61961, 538: 15044, 759: 77780, 667: 94848, 6268: 21497, 2318: 21497, 6944: 21497, 542: 19996, 3547634816: 19996, 963: 94671, 7395: 20791, 8984: 20791, 9268: 20791, 3008: 20791, 1428944: 258890, 6599: 106441, 8592: 106441, 305: 251306, 3477993024: 251306, 508024: 2429, 1639440: 2429, 64257952: 55352, 93913600: 55352, 38098: 35852, 15680: 35852, 234258: 75717, 601984: 75717, 40678: 98156, 99968: 98156, 2777478528: 78122, 403758: 45637, 530560: 45637, 1184040: 86973, 26340: 286081, 98368: 286081, 34657: 198268, 6342: 60659, 8112: 60659, 330347888640: 60659, 36582: 81791, 42368: 81791, 1803384: 4734, 1941016: 4734, 74705840: 53330, 30311424: 53330, 188: 157666, 62932232: 41135, 403: 39595, 2396496960: 75401, 7868: 62099, 207385063424: 62099, 999: 137962, 77523248: 62258, 199485440: 62258, 338606: 118185, 585856: 118185, 39531: 63366, 95840: 63366, 5347: 86716, 374918635520: 86716, 34288: 22729, 34112: 22729, 775192: 118971, 5911: 45501, 240419852288: 45501, 46264592: 31860, 180961792: 31860, 45602744: 84482, 34003200: 84482, 63428112: 71034, 163215360: 71034, 321816: 124485, 1947088: 124485, 613: 8746, 366266: 23092, 667008: 23092, 375705: 94800, 178112: 94800, 548: 76022, 722: 70121, 56214576: 58022, 158940672: 58022, 360891: 6699, 959296: 6699, 206598: 13507, 520832: 13507, 288661: 13507, 131264: 13507, 3691014976: 73007, 55303776: 51035, 2834830592: 67774, 370: 21001, 756976: 54300, 35107: 49935, 65632: 49935, 892584: 51765, 31912: 21041, 32704: 21041, 64589888: 17642, 66192896: 17642, 1677896: 7211, 609224: 92385, 263491: 7211, 768320: 7211, 39450: 59627, 2688: 76303, 3109301184: 56618, 6152: 16191, 1504: 16191, 243303841792: 16191, 63594080: 90727, 149355008: 90727, 69315928: 90727, 75972864: 90727, 2203957888: 10937, 1204280: 35886, 42202424: 104430, 115740416: 104430, 28348: 56837, 30592: 56837, 850080: 166231, 239: 75314, 296919: 53740, 828480: 53740, 224295: 179621, 729152: 179621, 2437462720: 30363, 287: 3592, 2421076416: 3592, 3502572480: 99717, 2691450432: 25020, 3744270464: 25020, 558: 59322, 2580842880: 59322, 5944: 54943, 9799: 54943, 3984: 54943, 6143: 77802, 8520: 77802, 257330518016: 77802, 3240391616: 51758, 81504456: 50521, 69236992: 50521, 53478128: 100897, 185236480: 100897, 3428834112: 26717, 692208: 106623, 274241: 33143, 183744: 33143, 857: 80197, 170: 1303, 7785: 7217, 5184: 7217, 347651825664: 7217, 929: 10621, 134: 10621, 2220344192: 14491, 71803424: 14491, 70467584: 14491, 2523490816: 36203, 49830880: 34899, 85364224: 34899, 22858: 36925, 89408: 36925, 5223: 36925, 5392: 36925, 8678: 36925, 9120: 36925, 68818024: 17244, 117553920: 17244, 629: 17491, 464: 21358, 68901008: 15241, 110623744: 15241, 1109152: 63903, 1461328: 59010, 321695920128: 48959, 4626: 27051, 4592: 27051, 366266667008: 27051, 7768: 109872, 9216: 109872, 375705178112: 109872, 7404: 60093, 1968: 60093, 8575: 60093, 2832: 60093, 1823624: 85174, 23964: 63543, 96960: 63543, 70641648: 18102, 167490048: 18102, 7934: 79726, 8896: 79726, 4702: 79726, 1568: 79726, 7047: 65635, 5680: 65635, 367053209600: 65635, 2756995648: 17912, 945: 17912, 6376: 38650, 274241183744: 38650, 385: 45294, 6724: 79031, 3352: 79031, 4682: 79031, 7264: 79031, 40351: 62620, 27360: 62620, 6591: 93053, 5608: 93053, 319205201920: 93053, 935088: 135690, 22449: 46976, 23648: 46976, 29577: 43371, 27872: 43371, 695: 35688, 930: 57571, 7619: 21336, 218527750144: 21336, 2056: 21336, 265982486528: 21336, 6044: 70322, 4736: 70322, 497904: 36145, 48503136: 54699, 196247040: 54699, 1443112: 84441, 39409: 90857, 6112: 90857, 378488: 23971, 1681944: 23971, 1362152: 21081, 945208: 21081, 40924: 86008, 79424: 86008, 6458: 15357, 6619: 15357, 2896: 15357, 53561112: 8925, 178306304: 8925, 54473936: 18330, 102074368: 18330, 75782608: 18330, 142619136: 18330, 34001: 20004, 58080: 20004, 759000: 89534, 629464: 20231, 21588: 9671, 95552: 9671, 30724: 9671, 32000: 9671, 40228: 9671, 37632: 9671, 234: 64595, 601: 64595, 2609518912: 131234, 76861400: 131234, 52526848: 131234, 31502: 52632, 66944: 52632, 815672: 33482, 207385: 52524, 20278: 45562, 5120: 45562, 6583: 45562, 2624: 46294, 333231878144: 45562, 7901: 92288, 6960: 92288, 7474: 92288, 36172: 59883, 76608: 59883, 36623: 59883, 38944: 59883, 278: 36742, 40269: 59139, 34208: 59139, 1694088: 31354, 358248: 54371, 69896816: 18533, 27461632: 18533, 451352: 8050, 44606936: 7672, 117165312: 7672, 44938872: 10600, 89444608: 10600, 392615: 40033, 843840: 40033, 837936: 42623, 391829: 9689, 301248: 9689, 78353088: 9689, 130183680: 9689, 313830: 37315, 494208: 37315, 8216: 59609, 8328: 59609, 49332976: 22037, 126945280: 22037, 5381: 77847, 318811930624: 77847, 5447: 15510, 3936: 15510, 206598520832: 15510, 7578: 15510, 288661131264: 15510, 4726: 112793, 9779: 112793, 9680: 112793, 30396: 22025, 59392: 22025, 30970: 29041, 11456: 29041, 36541: 27878, 45792: 27878, 76197528: 24725, 107968256: 24725, 68652056: 24725, 131414272: 24725, 25234: 30379, 90816: 30379, 4983: 29334, 4224: 29334, 767: 168471, 836: 168471, 1307504: 14174, 313: 33784, 830: 32129, 494: 32129, 6558: 32220, 3672: 32220, 375311906816: 32220, 294: 56666, 251: 2702, 810: 2702, 742808: 40773, 34902: 20777, 82752: 20777, 214857: 78780, 218048: 78780, 6989: 15606, 2746: 15606, 1632: 15606, 3613180032: 2800, 939: 15441, 3400158080: 23373, 6293: 35119, 2232: 35119, 246: 42140, 62683280: 24913, 23186944: 24913, 237929: 12529, 134080: 12529, 3805719104: 7855, 57625304: 19363, 41127680: 19363, 414: 50087, 82168328: 70149, 2576746304: 12641, 62019408: 8073, 78628352: 8073, 779240: 38567, 538384: 16791, 360272: 69303, 266: 20313, 36910: 62649, 14976: 62649, 34697: 94550, 99872: 94550, 1501808: 29919, 73129144: 2026, 161984768: 2026, 3846684864: 11380, 2646388096: 12189, 246187831296: 38183, 141: 38183, 191: 56513, 73212128: 51071, 155054592: 51071, 74124952: 51071, 78822656: 51071, 562672: 31495, 829: 8103, 7835: 8103, 3088: 8103, 263491768320: 8103, 748880: 17661, 7711: 25878, 3173: 25878, 6320: 25878, 303: 11909, 27569: 15287, 95648: 15287, 1912680: 15287, 218527: 18062, 750144: 18062, 265982: 18062, 486528: 18062, 3895843776: 1304, 4493: 9022, 8872: 9022, 3396061504: 6144, 4369: 7258, 391436029952: 7258, 6218: 7258, 5376: 7258, 6476: 7258, 8000: 7258, 8142: 7258, 1472: 7258, 7168: 7258, 613272: 10088, 26914: 20927, 50432: 20927, 37442: 20927, 70464: 20927, 38958: 1045, 43776: 1045, 5579: 11153, 9656: 11153, 391829301248: 11153, 38712: 11153, 64320: 11153, 26463: 10198, 88096: 10198, 5107: 22396, 3616: 22396, 372034646016: 22396, 554576: 23971, 370392: 23971, 34042: 17415, 54656: 17415, 347651: 6072, 825664: 6072, 951: 1655, 1112: 7456, 360891959296: 7456, 3039659392: 25960, 3453413568: 25654, 223902: 11293, 457856: 11293, 646: 16304, 9144: 1773, 327857170432: 1773, 38466: 9625, 84864: 9625, 6881: 14725, 8024: 14725, 237929134080: 14725, 436: 5183, 60622848: 5183, 1066648: 13044, 1518000: 13044, 1987568: 13044, 983664: 13044, 52152408: 9354, 93719296: 9354, 673992: 28835, 467544: 28835, 36500: 3480, 49216: 3480, 39286: 3480, 16384: 3480, 68735040: 4452, 124484096: 4452, 77027368: 5901, 38666496: 5901, 391436: 6015, 29952: 6015, 882: 3867, 891: 5421, 959: 5421, 131: 11368, 237142: 5692, 591488: 5692, 31093: 47323, 1184: 47323, 25767: 10664, 46304: 10664, 1900536: 13119, 7702: 4893, 7368: 4893, 3866: 4893, 882464: 4329, 6062: 4329, 2848: 4329, 3764753344: 33381, 3391964928: 33381, 4933: 19055, 2976: 19055, 256937246720: 19055, 3650049216: 4048, 3928616384: 4048, 30642: 9467, 38848: 9467, 187: 27958, 831: 27958, 451: 6836, 1880296: 9231, 271216: 9231, 22203: 12233, 44192: 12233, 7180: 12233, 7046: 12233, 7584: 12233, 2511201088: 6416, 2081060608: 1485, 67160368: 1485, 53757440: 1485, 6939: 16676, 344080: 1097, 22039: 9088, 57888: 9088, 4460: 6872, 6936: 6872, 237142591488: 6872, 50826688: 4731, 251955: 3179, 810304: 3179, 2158895552: 11283, 3072432000: 11283, 4022837632: 11283, 1240712: 7320, 49001040: 2691, 154665984: 2691, 6201: 7014, 9408: 7014, 7862: 7014, 8352: 7014, 36131: 2455, 80032: 2455, 34534: 21110, 13568: 21110, 223: 9326, 5082: 4002, 6688: 4002, 73876000: 2985, 99613184: 2985, 79514864: 2985, 33161216: 2985, 508: 1988, 3318226560: 1988, 4900: 2296, 313043951616: 2296, 7885: 732, 8860: 732, 5215: 7852, 2408: 7852, 9371: 7852, 9296: 7852, 78850992: 931, 88602624: 931, 248285: 866, 278208: 866, 313043: 2004, 951616: 2004, 1028192: 1797, 33182: 1797, 26560: 1797, 287408: 4205, 1196184: 4205, 580888: 3025, 24210: 3025, 76416: 3025, 4211: 923, 248285278208: 923, 1924824: 1442, 1785168: 3270, 25112: 5386, 1088: 5386, 7387: 2544, 6000: 2544, 9961: 2544, 3184: 2544, 7951: 2544, 4864: 2544, 3316: 2544, 6873: 3747, 5040: 3747, 251955810304: 3747, 327857: 1419, 170432: 1419, 3064238848: 11032, 42119440: 1038, 122670592: 1038, 912824: 5916})\n", + "3811\n" + ] + } + ], + "source": [ + "print(stones)\n", + "stones=step(stones)\n", + " \n", + "print(len(stones))" + ] + }, + { + "cell_type": "code", + "execution_count": 271, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "defaultdict(, {2: 1, 0: 1})\n" + ] + } + ], + "source": [ + "from collections import defaultdict\n", + "\n", + "def step(stones):\n", + " output = defaultdict(int) # Use defaultdict with int, which defaults to 0\n", + " for stone, count in stones.items(): # Iterate over the dictionary of stones with their counts\n", + " if stone == 0:\n", + " output[1] += count # Zero turns into 1, add the count to the 1 key\n", + " elif (tx_stone := str(stone)) and len(tx_stone) % 2 == 0:\n", + " half = len(tx_stone) // 2\n", + " left = int(tx_stone[:half])\n", + " right = int(tx_stone[half:])\n", + " output[left] += count # Add the count to the left split part\n", + " output[right] += count # Add the count to the right split part\n", + " else:\n", + " output[stone * 2024] += count # Multiply by 2024 and add to the count for that stone\n", + " return output\n", + "\n", + "# Example usage:\n", + "stones = {20: 1} # Example input: stone values and their counts\n", + "result = step(stones)\n", + "print(result)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pdf", + "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.12.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/2/2.ipynb b/2/2.ipynb new file mode 100644 index 0000000..4976dbb --- /dev/null +++ b/2/2.ipynb @@ -0,0 +1,1094 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[22, 25, 27, 28, 30, 31, 32, 29],\n", + " [72, 74, 75, 77, 80, 81, 81],\n", + " [52, 53, 55, 58, 59, 63],\n", + " [14, 17, 19, 22, 27],\n", + " [65, 68, 67, 68, 71, 73, 76, 77],\n", + " [53, 56, 53, 55, 54],\n", + " [60, 62, 59, 62, 62],\n", + " [27, 30, 28, 31, 32, 35, 39],\n", + " [64, 67, 68, 71, 74, 71, 74, 81],\n", + " [29, 32, 32, 33, 36, 39, 40],\n", + " [72, 74, 74, 75, 74],\n", + " [11, 14, 14, 17, 17],\n", + " [64, 65, 67, 70, 72, 72, 76],\n", + " [77, 79, 80, 80, 82, 89],\n", + " [45, 47, 49, 53, 54],\n", + " [13, 16, 18, 22, 23, 25, 27, 24],\n", + " [16, 17, 18, 19, 20, 21, 25, 25],\n", + " [25, 26, 30, 32, 34, 35, 36, 40],\n", + " [45, 48, 52, 54, 56, 62],\n", + " [51, 52, 54, 56, 59, 64, 66, 68],\n", + " [14, 16, 17, 22, 23, 22],\n", + " [27, 28, 34, 35, 35],\n", + " [76, 77, 78, 80, 85, 88, 92],\n", + " [72, 74, 79, 80, 81, 88],\n", + " [63, 62, 65, 66, 69, 70, 72],\n", + " [87, 84, 87, 89, 88],\n", + " [41, 40, 42, 43, 45, 46, 46],\n", + " [7, 4, 7, 8, 12],\n", + " [86, 83, 85, 88, 90, 96],\n", + " [24, 21, 22, 24, 26, 28, 27, 28],\n", + " [25, 24, 22, 24, 25, 23],\n", + " [37, 36, 38, 39, 37, 39, 39],\n", + " [78, 77, 80, 79, 80, 82, 86],\n", + " [32, 30, 33, 35, 34, 35, 42],\n", + " [70, 68, 70, 73, 73, 76],\n", + " [60, 58, 59, 60, 61, 61, 59],\n", + " [85, 83, 86, 86, 86],\n", + " [3, 1, 1, 2, 4, 8],\n", + " [21, 18, 19, 19, 26],\n", + " [59, 56, 57, 59, 63, 64],\n", + " [48, 45, 47, 48, 52, 53, 50],\n", + " [43, 40, 44, 47, 49, 52, 52],\n", + " [48, 45, 47, 51, 55],\n", + " [54, 51, 52, 54, 57, 58, 62, 67],\n", + " [21, 19, 20, 22, 29, 31],\n", + " [32, 29, 31, 34, 39, 41, 44, 41],\n", + " [47, 46, 48, 49, 54, 57, 57],\n", + " [77, 74, 77, 82, 86],\n", + " [47, 44, 45, 51, 54, 60],\n", + " [55, 55, 57, 58, 59, 62, 65, 68],\n", + " [40, 40, 41, 44, 41],\n", + " [45, 45, 47, 48, 50, 50],\n", + " [77, 77, 80, 81, 83, 85, 89],\n", + " [28, 28, 30, 31, 38],\n", + " [88, 88, 89, 88, 90, 93],\n", + " [31, 31, 34, 36, 34, 35, 37, 35],\n", + " [31, 31, 34, 36, 33, 33],\n", + " [49, 49, 47, 48, 49, 53],\n", + " [69, 69, 72, 73, 71, 76],\n", + " [91, 91, 94, 96, 96, 99],\n", + " [65, 65, 65, 68, 70, 71, 68],\n", + " [50, 50, 51, 52, 52, 55, 58, 58],\n", + " [75, 75, 78, 79, 79, 83],\n", + " [6, 6, 8, 10, 10, 13, 16, 21],\n", + " [43, 43, 46, 47, 51, 52, 54],\n", + " [11, 11, 13, 16, 19, 22, 26, 24],\n", + " [76, 76, 77, 80, 84, 84],\n", + " [19, 19, 23, 24, 27, 31],\n", + " [8, 8, 10, 12, 15, 19, 26],\n", + " [71, 71, 76, 79, 80],\n", + " [12, 12, 15, 17, 24, 25, 24],\n", + " [8, 8, 9, 10, 11, 12, 19, 19],\n", + " [74, 74, 76, 83, 85, 89],\n", + " [65, 65, 67, 73, 74, 75, 78, 85],\n", + " [23, 27, 30, 32, 33],\n", + " [70, 74, 75, 78, 75],\n", + " [7, 11, 12, 13, 14, 17, 17],\n", + " [66, 70, 71, 74, 78],\n", + " [61, 65, 68, 71, 76],\n", + " [1, 5, 4, 7, 9, 10, 11],\n", + " [47, 51, 53, 54, 55, 53, 54, 51],\n", + " [56, 60, 63, 64, 66, 64, 67, 67],\n", + " [36, 40, 43, 41, 42, 44, 48],\n", + " [81, 85, 83, 85, 92],\n", + " [69, 73, 73, 75, 78, 81, 82],\n", + " [37, 41, 44, 44, 47, 48, 45],\n", + " [41, 45, 45, 48, 49, 51, 51],\n", + " [43, 47, 47, 49, 51, 55],\n", + " [36, 40, 40, 41, 42, 49],\n", + " [71, 75, 76, 79, 83, 84, 86, 89],\n", + " [10, 14, 15, 19, 20, 17],\n", + " [15, 19, 21, 25, 25],\n", + " [1, 5, 8, 10, 12, 13, 17, 21],\n", + " [73, 77, 80, 84, 89],\n", + " [7, 11, 14, 17, 18, 25, 27],\n", + " [53, 57, 64, 67, 68, 67],\n", + " [50, 54, 55, 56, 62, 62],\n", + " [31, 35, 36, 39, 42, 48, 51, 55],\n", + " [35, 39, 42, 45, 48, 54, 60],\n", + " [21, 27, 29, 30, 31],\n", + " [40, 47, 48, 50, 48],\n", + " [68, 75, 77, 78, 79, 80, 81, 81],\n", + " [19, 24, 26, 28, 31, 34, 38],\n", + " [72, 79, 82, 85, 92],\n", + " [51, 57, 55, 56, 57, 59, 62, 63],\n", + " [83, 90, 92, 93, 96, 99, 98, 97],\n", + " [10, 16, 14, 16, 16],\n", + " [34, 41, 40, 43, 46, 50],\n", + " [70, 75, 76, 79, 77, 79, 86],\n", + " [42, 47, 47, 50, 53, 55, 56, 58],\n", + " [54, 61, 62, 63, 66, 66, 68, 67],\n", + " [2, 7, 7, 8, 9, 9],\n", + " [71, 78, 78, 80, 84],\n", + " [78, 84, 86, 89, 89, 92, 98],\n", + " [10, 17, 19, 23, 24, 25],\n", + " [37, 44, 47, 48, 52, 53, 55, 52],\n", + " [74, 79, 80, 81, 82, 86, 87, 87],\n", + " [6, 11, 13, 16, 17, 21, 25],\n", + " [68, 73, 74, 78, 80, 82, 85, 91],\n", + " [35, 41, 44, 49, 50],\n", + " [18, 25, 26, 29, 34, 36, 39, 37],\n", + " [66, 73, 75, 78, 79, 85, 85],\n", + " [61, 67, 69, 75, 79],\n", + " [49, 54, 55, 62, 63, 70],\n", + " [99, 96, 94, 91, 90, 87, 88],\n", + " [85, 84, 81, 80, 79, 78, 78],\n", + " [25, 22, 21, 19, 16, 12],\n", + " [43, 42, 41, 40, 38, 32],\n", + " [27, 24, 27, 24, 21],\n", + " [27, 24, 22, 20, 18, 16, 18, 20],\n", + " [61, 60, 59, 58, 61, 59, 59],\n", + " [31, 29, 31, 28, 25, 21],\n", + " [40, 37, 35, 38, 35, 33, 30, 25],\n", + " [87, 85, 83, 83, 82, 79],\n", + " [48, 45, 44, 41, 41, 44],\n", + " [73, 72, 71, 71, 71],\n", + " [61, 59, 58, 58, 54],\n", + " [19, 16, 15, 15, 12, 11, 4],\n", + " [46, 43, 40, 39, 38, 34, 33, 30],\n", + " [58, 57, 53, 51, 54],\n", + " [60, 58, 54, 52, 51, 50, 50],\n", + " [51, 50, 46, 44, 42, 38],\n", + " [38, 36, 33, 29, 27, 25, 22, 15],\n", + " [48, 46, 44, 38, 36],\n", + " [40, 39, 37, 35, 34, 29, 26, 28],\n", + " [50, 49, 48, 41, 38, 37, 34, 34],\n", + " [65, 64, 61, 54, 51, 50, 46],\n", + " [22, 20, 17, 14, 13, 8, 1],\n", + " [83, 84, 82, 80, 78, 75, 74],\n", + " [14, 16, 13, 10, 9, 6, 8],\n", + " [26, 29, 28, 25, 22, 20, 17, 17],\n", + " [12, 14, 11, 9, 7, 3],\n", + " [67, 69, 67, 65, 59],\n", + " [9, 10, 13, 11, 9, 8],\n", + " [15, 18, 17, 19, 18, 20],\n", + " [39, 40, 37, 39, 39],\n", + " [27, 30, 27, 26, 27, 26, 25, 21],\n", + " [57, 60, 59, 57, 55, 52, 55, 48],\n", + " [31, 34, 31, 31, 28],\n", + " [45, 47, 46, 45, 44, 44, 45],\n", + " [48, 50, 48, 48, 46, 43, 42, 42],\n", + " [53, 56, 53, 53, 52, 48],\n", + " [43, 45, 45, 42, 37],\n", + " [23, 26, 22, 20, 18, 16, 13],\n", + " [32, 33, 31, 29, 26, 23, 19, 20],\n", + " [41, 43, 42, 40, 36, 36],\n", + " [49, 51, 49, 47, 43, 39],\n", + " [15, 17, 15, 11, 10, 5],\n", + " [71, 74, 69, 67, 66],\n", + " [51, 54, 49, 47, 44, 46],\n", + " [76, 78, 75, 73, 66, 66],\n", + " [74, 75, 68, 66, 63, 61, 57],\n", + " [94, 95, 92, 86, 85, 78],\n", + " [51, 51, 48, 45, 44],\n", + " [43, 43, 40, 37, 36, 34, 37],\n", + " [78, 78, 77, 75, 73, 71, 70, 70],\n", + " [15, 15, 14, 12, 8],\n", + " [50, 50, 47, 45, 44, 41, 35],\n", + " [88, 88, 89, 87, 85, 83, 82],\n", + " [42, 42, 39, 41, 42],\n", + " [91, 91, 90, 88, 91, 91],\n", + " [51, 51, 50, 48, 50, 48, 44],\n", + " [50, 50, 48, 46, 47, 44, 43, 37],\n", + " [93, 93, 91, 91, 90, 89, 87],\n", + " [6, 6, 6, 5, 7],\n", + " [97, 97, 97, 95, 92, 92],\n", + " [28, 28, 27, 26, 26, 23, 19],\n", + " [15, 15, 15, 12, 5],\n", + " [38, 38, 37, 35, 31, 28, 27, 25],\n", + " [27, 27, 25, 22, 18, 20],\n", + " [18, 18, 16, 12, 12],\n", + " [34, 34, 31, 27, 23],\n", + " [16, 16, 15, 11, 4],\n", + " [50, 50, 43, 41, 40],\n", + " [67, 67, 64, 63, 57, 59],\n", + " [91, 91, 89, 83, 83],\n", + " [21, 21, 18, 12, 10, 9, 5],\n", + " [73, 73, 68, 67, 64, 57],\n", + " [97, 93, 92, 90, 88, 87, 84],\n", + " [17, 13, 10, 7, 4, 7],\n", + " [78, 74, 71, 68, 68],\n", + " [51, 47, 45, 42, 40, 38, 34],\n", + " [26, 22, 21, 20, 14],\n", + " [95, 91, 92, 90, 87],\n", + " [38, 34, 32, 31, 33, 35],\n", + " [55, 51, 48, 49, 47, 46, 46],\n", + " [79, 75, 72, 69, 71, 69, 65],\n", + " [70, 66, 64, 63, 66, 61],\n", + " [45, 41, 41, 40, 38],\n", + " [39, 35, 35, 32, 31, 29, 31],\n", + " [6, 2, 2, 1, 1],\n", + " [32, 28, 26, 24, 24, 20],\n", + " [90, 86, 86, 85, 79],\n", + " [80, 76, 73, 71, 67, 66],\n", + " [31, 27, 23, 20, 18, 20],\n", + " [72, 68, 66, 64, 60, 59, 56, 56],\n", + " [20, 16, 12, 10, 6],\n", + " [72, 68, 67, 63, 60, 59, 53],\n", + " [92, 88, 85, 84, 78, 75, 73],\n", + " [36, 32, 30, 24, 23, 20, 21],\n", + " [75, 71, 69, 66, 63, 57, 55, 55],\n", + " [98, 94, 92, 86, 85, 81],\n", + " [74, 70, 67, 60, 57, 55, 52, 47],\n", + " [48, 42, 39, 38, 37, 34, 31, 30],\n", + " [88, 83, 81, 78, 76, 77],\n", + " [15, 8, 5, 2, 1, 1],\n", + " [75, 70, 69, 67, 65, 63, 59],\n", + " [69, 64, 61, 60, 57, 56, 49],\n", + " [45, 39, 36, 39, 36, 33, 30, 27],\n", + " [60, 55, 56, 54, 52, 49, 47, 49],\n", + " [64, 58, 57, 58, 58],\n", + " [82, 75, 72, 71, 72, 70, 67, 63],\n", + " [26, 19, 16, 19, 17, 15, 9],\n", + " [26, 20, 18, 15, 15, 12],\n", + " [54, 49, 46, 45, 45, 44, 47],\n", + " [18, 12, 9, 9, 7, 7],\n", + " [22, 16, 15, 15, 11],\n", + " [74, 69, 67, 67, 61],\n", + " [76, 70, 66, 63, 60],\n", + " [18, 13, 12, 10, 7, 5, 1, 3],\n", + " [48, 41, 37, 36, 35, 32, 32],\n", + " [52, 47, 46, 42, 41, 40, 36],\n", + " [84, 79, 76, 73, 69, 67, 65, 60],\n", + " [51, 46, 43, 37, 35, 34],\n", + " [28, 22, 21, 19, 14, 16],\n", + " [32, 27, 26, 19, 19],\n", + " [93, 88, 85, 83, 76, 72],\n", + " [53, 47, 44, 37, 30],\n", + " [5, 7, 8, 11, 11, 15],\n", + " [25, 24, 27, 27, 26],\n", + " [84, 86, 85, 84, 80, 79, 77],\n", + " [44, 45, 43, 40, 37, 33],\n", + " [17, 14, 16, 13, 6],\n", + " [27, 27, 34, 36, 39, 42, 40],\n", + " [36, 42, 45, 46, 51],\n", + " [61, 54, 53, 50, 48],\n", + " [58, 58, 60, 64, 65, 68, 72],\n", + " [75, 78, 77, 74, 74],\n", + " [75, 75, 72, 71, 70, 70, 64],\n", + " [55, 55, 52, 49, 43, 41, 36],\n", + " [84, 83, 80, 81, 80],\n", + " [69, 73, 74, 76, 75, 79],\n", + " [87, 80, 82, 79, 79],\n", + " [48, 51, 50, 53, 55, 53],\n", + " [83, 80, 82, 88, 93],\n", + " [74, 74, 73, 70, 68, 67, 63],\n", + " [66, 65, 66, 67, 70, 74, 77],\n", + " [14, 14, 11, 9, 6, 3, 2, 1],\n", + " [22, 22, 26, 28, 31, 33, 36, 36],\n", + " [65, 65, 69, 71, 72],\n", + " [58, 58, 51, 48, 45, 43, 42, 42],\n", + " [89, 88, 89, 90, 93, 93],\n", + " [8, 15, 19, 22, 24, 24],\n", + " [35, 39, 40, 45, 44],\n", + " [80, 86, 88, 90, 91, 92, 93],\n", + " [41, 42, 39, 37, 34, 35],\n", + " [72, 65, 62, 61, 57],\n", + " [84, 88, 90, 89, 94],\n", + " [24, 26, 26, 24, 23, 22, 21, 21],\n", + " [61, 57, 57, 55, 54, 51, 50, 46],\n", + " [15, 15, 15, 14, 10],\n", + " [59, 55, 51, 50, 47, 45, 42],\n", + " [89, 88, 86, 83, 80, 77, 70],\n", + " [69, 72, 75, 79, 82, 84, 86, 93],\n", + " [23, 25, 27, 29, 34, 35, 38, 39],\n", + " [11, 11, 12, 12, 13, 13],\n", + " [47, 43, 45, 44, 42, 39, 35],\n", + " [31, 38, 41, 44, 47, 50, 50],\n", + " [27, 25, 20, 17, 15, 13],\n", + " [86, 82, 81, 75, 73, 76],\n", + " [53, 52, 50, 51, 52, 54, 58],\n", + " [87, 90, 91, 92, 96, 93],\n", + " [58, 58, 58, 55, 54, 53, 53],\n", + " [23, 22, 21, 20, 20, 19, 12],\n", + " [5, 5, 8, 9, 12, 14, 15],\n", + " [29, 33, 37, 38, 42],\n", + " [57, 52, 48, 47, 44, 41, 39, 40],\n", + " [94, 87, 85, 83, 82, 78, 75, 69],\n", + " [89, 91, 90, 84, 83],\n", + " [31, 34, 35, 35, 41],\n", + " [96, 89, 88, 87, 85, 87, 84],\n", + " [16, 16, 18, 15, 13, 11, 11],\n", + " [37, 38, 41, 44, 44, 45],\n", + " [49, 47, 50, 53, 56, 63],\n", + " [31, 29, 27, 26, 23, 19, 18],\n", + " [38, 39, 42, 45, 47, 49, 52, 57],\n", + " [70, 76, 79, 83, 84, 85, 89],\n", + " [42, 42, 43, 44, 45, 46, 50, 48],\n", + " [62, 63, 62, 64, 65],\n", + " [82, 81, 78, 77, 73, 66],\n", + " [34, 34, 28, 25, 24],\n", + " [41, 41, 43, 41, 38, 34],\n", + " [16, 14, 13, 13, 11, 8, 7],\n", + " [19, 19, 14, 11, 8, 4],\n", + " [78, 71, 68, 68, 65, 64, 65],\n", + " [85, 89, 93, 95, 96],\n", + " [16, 21, 23, 25, 28, 30, 34],\n", + " [18, 14, 10, 9, 6, 5, 6],\n", + " [8, 3, 3, 2, 1],\n", + " [24, 28, 29, 30, 33, 38, 39],\n", + " [57, 54, 57, 55, 57],\n", + " [11, 11, 13, 10, 10],\n", + " [66, 65, 67, 73, 76, 77, 77],\n", + " [3, 7, 10, 13, 16, 20],\n", + " [2, 6, 8, 9, 11, 12, 15, 16],\n", + " [67, 67, 67, 68, 65],\n", + " [67, 62, 61, 60, 59, 59, 59],\n", + " [11, 15, 15, 17, 17],\n", + " [18, 19, 17, 15, 14, 8, 5, 8],\n", + " [4, 4, 4, 7, 9, 11, 13, 19],\n", + " [31, 27, 26, 25, 22, 22, 17],\n", + " [58, 59, 60, 64, 67, 67],\n", + " [81, 88, 90, 90, 91, 97],\n", + " [31, 31, 32, 38, 41],\n", + " [28, 26, 28, 30, 31, 29, 30, 36],\n", + " [29, 29, 31, 34, 40, 44],\n", + " [33, 30, 29, 28, 26, 22, 22],\n", + " [93, 89, 88, 86, 85, 79, 78, 73],\n", + " [68, 72, 75, 78, 80, 86, 86],\n", + " [85, 86, 89, 93, 95],\n", + " [47, 49, 46, 45, 44, 45, 41],\n", + " [74, 73, 75, 76, 73],\n", + " [38, 38, 39, 40, 41, 46, 48, 55],\n", + " [54, 54, 55, 57, 58, 60, 60],\n", + " [48, 53, 59, 60, 58],\n", + " [91, 96, 94, 96, 95],\n", + " [78, 81, 78, 77, 77, 75, 68],\n", + " [34, 28, 30, 27, 23],\n", + " [85, 81, 76, 73, 73],\n", + " [30, 24, 21, 16, 18],\n", + " [12, 17, 18, 21, 25, 26],\n", + " [88, 85, 86, 89, 91, 95],\n", + " [36, 40, 42, 40, 41, 39],\n", + " [16, 16, 14, 11, 12, 9, 6, 4],\n", + " [59, 59, 57, 53, 52, 51, 45],\n", + " [44, 40, 37, 33, 30, 28, 25, 25],\n", + " [28, 28, 31, 31, 34, 37, 39, 40],\n", + " [57, 51, 48, 44, 41, 39, 38, 35],\n", + " [44, 37, 32, 30, 27, 27],\n", + " [1, 2, 3, 6, 5, 5],\n", + " [84, 77, 74, 72, 71, 69, 69],\n", + " [44, 42, 40, 37, 36],\n", + " [60, 57, 54, 52, 51],\n", + " [46, 49, 52, 55, 56, 58, 60, 62],\n", + " [42, 45, 47, 50, 51, 54, 55],\n", + " [61, 60, 58, 57, 55],\n", + " [28, 30, 31, 34, 36, 39],\n", + " [35, 33, 30, 28, 27, 24],\n", + " [17, 18, 19, 20, 23, 25, 27],\n", + " [92, 89, 87, 84, 82, 80],\n", + " [72, 75, 77, 80, 83, 86, 87, 90],\n", + " [86, 85, 82, 79, 78, 77, 75, 74],\n", + " [24, 23, 21, 18, 15],\n", + " [35, 36, 38, 41, 43, 44],\n", + " [37, 40, 43, 46, 48, 49, 52, 53],\n", + " [74, 71, 70, 68, 67, 66],\n", + " [73, 72, 70, 69, 66, 64, 63, 62],\n", + " [21, 18, 17, 15, 13, 10],\n", + " [97, 96, 95, 93, 91, 89],\n", + " [80, 83, 86, 89, 92, 94, 97],\n", + " [13, 10, 8, 7, 6, 5, 3, 1],\n", + " [3, 5, 7, 10, 13],\n", + " [12, 13, 14, 15, 17, 20, 23],\n", + " [22, 21, 18, 15, 14],\n", + " [45, 44, 41, 40, 39, 36, 33, 30],\n", + " [92, 91, 89, 87, 84, 83, 81, 78],\n", + " [80, 77, 74, 71, 68, 65, 64, 61],\n", + " [76, 75, 72, 69, 67, 64, 61, 59],\n", + " [74, 71, 69, 68, 65],\n", + " [3, 5, 6, 9, 10, 12, 15, 16],\n", + " [67, 69, 70, 71, 74, 76, 79],\n", + " [59, 58, 56, 55, 53, 52, 50, 48],\n", + " [54, 51, 49, 46, 43, 42],\n", + " [68, 70, 72, 74, 77],\n", + " [89, 88, 87, 84, 83, 80, 77, 75],\n", + " [16, 14, 13, 10, 9, 6, 4],\n", + " [32, 29, 26, 23, 20],\n", + " [46, 43, 41, 39, 38],\n", + " [90, 93, 94, 96, 97],\n", + " [82, 80, 79, 76, 74],\n", + " [87, 85, 84, 82, 80, 77],\n", + " [29, 31, 32, 35, 38, 40, 43],\n", + " [32, 34, 37, 39, 41],\n", + " [30, 29, 27, 24, 21],\n", + " [70, 73, 74, 77, 80, 82, 84, 87],\n", + " [7, 10, 12, 13, 16, 19, 20],\n", + " [47, 48, 49, 51, 52, 53],\n", + " [68, 69, 71, 73, 74, 75, 76],\n", + " [66, 69, 70, 72, 73, 76, 79],\n", + " [19, 22, 25, 27, 28, 31, 33],\n", + " [13, 10, 7, 5, 2],\n", + " [3, 6, 7, 8, 11, 13, 16, 17],\n", + " [27, 28, 31, 34, 37, 40, 42, 43],\n", + " [49, 52, 55, 56, 59, 60, 61, 63],\n", + " [74, 73, 70, 68, 66, 65],\n", + " [53, 54, 57, 60, 63, 64],\n", + " [98, 97, 95, 94, 91, 90, 88, 87],\n", + " [50, 53, 56, 57, 59, 60, 63],\n", + " [36, 38, 39, 41, 43, 46, 47, 49],\n", + " [82, 81, 80, 79, 78, 75],\n", + " [3, 5, 7, 9, 11, 12, 13],\n", + " [46, 47, 49, 50, 52, 54, 57, 59],\n", + " [20, 21, 22, 23, 24, 26, 27, 29],\n", + " [44, 42, 39, 36, 34, 33, 30, 28],\n", + " [50, 53, 54, 55, 58, 60],\n", + " [78, 75, 73, 70, 67],\n", + " [30, 27, 26, 24, 23, 21, 18],\n", + " [34, 33, 31, 29, 27, 26],\n", + " [70, 69, 68, 66, 64, 63, 62],\n", + " [65, 64, 63, 62, 61],\n", + " [47, 44, 41, 38, 35, 33, 30, 28],\n", + " [70, 68, 65, 64, 63, 60],\n", + " [40, 37, 35, 33, 31, 28, 26, 25],\n", + " [37, 39, 42, 43, 44],\n", + " [15, 18, 19, 21, 23],\n", + " [52, 51, 48, 47, 45, 42, 39],\n", + " [48, 45, 43, 41, 38, 37, 34, 33],\n", + " [36, 39, 42, 43, 45, 48, 51, 52],\n", + " [78, 76, 75, 73, 72, 69],\n", + " [43, 40, 37, 34, 32, 29, 28],\n", + " [11, 12, 15, 16, 18, 20, 23, 24],\n", + " [68, 71, 74, 75, 77],\n", + " [18, 21, 23, 26, 28, 29],\n", + " [50, 49, 46, 43, 42],\n", + " [35, 33, 32, 31, 28, 26, 25],\n", + " [11, 12, 13, 15, 17],\n", + " [22, 19, 16, 14, 13, 11, 10],\n", + " [96, 95, 93, 91, 89, 86],\n", + " [20, 17, 16, 13, 12, 9, 6],\n", + " [75, 73, 71, 69, 66, 63, 61, 59],\n", + " [55, 57, 58, 61, 64, 65, 67],\n", + " [56, 54, 51, 48, 46],\n", + " [87, 89, 90, 93, 94, 97],\n", + " [98, 96, 94, 91, 89, 87, 85, 82],\n", + " [92, 90, 88, 87, 85],\n", + " [48, 49, 52, 55, 57, 59, 60, 61],\n", + " [34, 35, 36, 37, 39, 41, 43],\n", + " [64, 62, 61, 59, 58, 57],\n", + " [16, 19, 21, 24, 26],\n", + " [90, 91, 93, 94, 97, 98],\n", + " [71, 72, 73, 76, 77, 79],\n", + " [56, 58, 61, 62, 64, 65],\n", + " [14, 12, 9, 8, 7, 5],\n", + " [1, 2, 3, 5, 8, 9, 10],\n", + " [65, 67, 70, 72, 74, 77],\n", + " [35, 38, 40, 42, 43],\n", + " [21, 20, 17, 16, 15, 12, 10, 8],\n", + " [1, 4, 6, 7, 10, 11, 14],\n", + " [3, 5, 7, 8, 10],\n", + " [79, 80, 82, 85, 86, 88, 91, 92],\n", + " [35, 38, 41, 44, 47, 48, 50],\n", + " [20, 17, 16, 15, 14, 13, 10],\n", + " [17, 19, 21, 22, 23],\n", + " [38, 40, 43, 44, 45],\n", + " [38, 39, 42, 45, 48, 50, 53],\n", + " [93, 91, 90, 87, 85, 83],\n", + " [25, 23, 21, 19, 18, 17],\n", + " [26, 27, 28, 30, 33, 36, 38],\n", + " [48, 45, 44, 42, 40],\n", + " [50, 48, 45, 44, 42, 40, 37, 36],\n", + " [56, 57, 59, 60, 63, 64],\n", + " [34, 31, 30, 29, 27, 24, 23],\n", + " [80, 81, 84, 87, 88, 90, 91],\n", + " [42, 41, 38, 36, 35, 33, 31, 29],\n", + " [28, 31, 34, 36, 39, 40, 42],\n", + " [15, 13, 12, 9, 7],\n", + " [64, 65, 68, 69, 71, 72],\n", + " [51, 48, 47, 45, 42, 40],\n", + " [48, 45, 43, 40, 38, 37],\n", + " [31, 30, 29, 27, 25],\n", + " [24, 26, 28, 29, 31, 33, 34],\n", + " [14, 17, 18, 20, 23, 25, 26, 28],\n", + " [90, 91, 92, 94, 96, 99],\n", + " [4, 5, 6, 8, 10, 11, 14],\n", + " [24, 22, 19, 17, 16, 15],\n", + " [54, 57, 58, 60, 63, 64, 65],\n", + " [34, 37, 39, 40, 42, 44, 47, 49],\n", + " [46, 45, 44, 42, 40],\n", + " [20, 18, 16, 14, 13, 10, 8],\n", + " [64, 66, 67, 70, 72],\n", + " [97, 95, 94, 93, 91],\n", + " [48, 45, 43, 42, 39, 38],\n", + " [28, 26, 24, 22, 19, 16, 14, 11],\n", + " [16, 18, 19, 21, 23, 26],\n", + " [50, 52, 53, 56, 59],\n", + " [79, 78, 76, 73, 71, 69],\n", + " [46, 48, 50, 51, 52, 55, 57, 60],\n", + " [43, 44, 46, 48, 51, 54, 55, 56],\n", + " [40, 37, 36, 35, 34, 31],\n", + " [83, 82, 79, 76, 75, 73],\n", + " [57, 60, 61, 64, 65, 68, 71],\n", + " [2, 4, 7, 8, 11, 13, 16],\n", + " [20, 18, 16, 15, 13, 10, 7, 5],\n", + " [57, 56, 55, 52, 50],\n", + " [65, 68, 70, 71, 74, 76, 79],\n", + " [4, 7, 10, 12, 15, 17, 19, 21],\n", + " [59, 57, 56, 54, 51],\n", + " [58, 59, 62, 63, 66],\n", + " [22, 19, 17, 16, 13],\n", + " [55, 56, 57, 60, 63],\n", + " [23, 26, 27, 30, 31, 32, 35, 36],\n", + " [17, 16, 14, 13, 11, 10],\n", + " [60, 58, 55, 52, 51, 48, 47, 46],\n", + " [85, 88, 89, 90, 92, 94],\n", + " [20, 18, 17, 14, 11],\n", + " [80, 83, 84, 87, 88, 90, 91],\n", + " [30, 27, 25, 23, 20, 17],\n", + " [30, 31, 33, 36, 39, 42, 43],\n", + " [43, 45, 48, 50, 53, 54, 56],\n", + " [50, 48, 47, 46, 43, 40, 39, 38],\n", + " [47, 49, 50, 53, 55],\n", + " [38, 37, 36, 34, 33],\n", + " [53, 54, 55, 57, 58, 60, 63],\n", + " [99, 96, 94, 92, 90],\n", + " [77, 78, 80, 83, 84, 86],\n", + " [33, 35, 36, 38, 40, 42, 45],\n", + " [54, 57, 59, 61, 62],\n", + " [61, 58, 57, 56, 55, 52, 50],\n", + " [17, 18, 20, 23, 26],\n", + " [44, 46, 47, 50, 53, 56, 57],\n", + " [50, 47, 44, 41, 38, 37, 36],\n", + " [33, 31, 30, 28, 25, 23, 22],\n", + " [40, 37, 35, 34, 31],\n", + " [32, 34, 35, 36, 38],\n", + " [64, 62, 61, 58, 56, 53],\n", + " [33, 36, 38, 40, 42, 44, 47, 50],\n", + " [22, 19, 16, 14, 11, 9, 8, 6],\n", + " [53, 55, 57, 58, 61, 63, 65],\n", + " [85, 82, 81, 80, 78, 76, 73, 70],\n", + " [33, 34, 35, 37, 38, 41, 43, 45],\n", + " [17, 14, 11, 9, 7, 4],\n", + " [59, 56, 55, 54, 52, 49, 47],\n", + " [47, 48, 49, 51, 53, 56, 57],\n", + " [54, 51, 49, 46, 45, 43, 41, 40],\n", + " [35, 32, 29, 28, 25, 22, 19],\n", + " [38, 40, 41, 42, 45],\n", + " [71, 68, 65, 64, 63],\n", + " [27, 28, 30, 32, 33, 36, 39, 42],\n", + " [39, 41, 44, 46, 49, 50],\n", + " [55, 58, 59, 62, 65, 68, 69],\n", + " [41, 38, 35, 33, 30, 28, 25, 23],\n", + " [51, 52, 55, 57, 58, 61, 63],\n", + " [52, 53, 55, 56, 59, 62, 64],\n", + " [18, 20, 21, 24, 25, 28, 30, 31],\n", + " [48, 47, 44, 41, 40, 37],\n", + " [96, 94, 91, 90, 87, 84, 81],\n", + " [20, 18, 17, 16, 14, 13, 11],\n", + " [83, 86, 88, 89, 90, 93, 95],\n", + " [58, 57, 56, 54, 52, 49, 46, 43],\n", + " [62, 63, 64, 66, 69, 70, 72, 73],\n", + " [77, 74, 73, 70, 69],\n", + " [97, 95, 92, 91, 89],\n", + " [11, 13, 14, 16, 18, 21, 23, 26],\n", + " [40, 42, 45, 47, 50, 53, 54, 57],\n", + " [9, 8, 7, 5, 3, 2],\n", + " [18, 16, 14, 12, 11, 8],\n", + " [28, 31, 34, 37, 39],\n", + " [53, 50, 47, 46, 43],\n", + " [78, 81, 84, 87, 89, 90, 92, 93],\n", + " [40, 39, 36, 35, 33],\n", + " [75, 73, 72, 69, 68, 66, 63],\n", + " [81, 83, 86, 88, 91, 92],\n", + " [19, 20, 23, 25, 26, 27, 29, 31],\n", + " [32, 31, 28, 26, 24],\n", + " [70, 69, 68, 67, 64, 63, 62],\n", + " [74, 76, 77, 78, 81, 83],\n", + " [60, 57, 54, 52, 49, 47, 45],\n", + " [64, 62, 61, 60, 59],\n", + " [76, 78, 81, 84, 85],\n", + " [85, 83, 82, 81, 78, 75],\n", + " [57, 58, 60, 62, 64, 67, 70],\n", + " [13, 15, 16, 19, 22, 24],\n", + " [87, 85, 82, 81, 78, 75, 72],\n", + " [36, 35, 32, 30, 27, 24, 21, 20],\n", + " [38, 37, 35, 33, 31, 28],\n", + " [47, 44, 41, 38, 35, 33, 32],\n", + " [65, 62, 61, 60, 58, 57, 56],\n", + " [58, 56, 54, 53, 50, 48, 46, 45],\n", + " [64, 62, 60, 59, 57],\n", + " [82, 85, 86, 88, 89, 91, 93],\n", + " [22, 19, 18, 15, 12, 10, 9],\n", + " [55, 58, 60, 62, 64, 66],\n", + " [57, 54, 52, 50, 49, 47],\n", + " [41, 38, 35, 33, 31, 29, 27],\n", + " [81, 83, 84, 86, 87],\n", + " [21, 18, 15, 14, 13],\n", + " [62, 63, 64, 66, 67],\n", + " [45, 43, 42, 40, 37, 34],\n", + " [53, 51, 48, 46, 44, 42, 39],\n", + " [50, 52, 53, 54, 56, 58, 61],\n", + " [51, 54, 56, 59, 62, 63],\n", + " [59, 58, 55, 54, 53, 50, 47, 44],\n", + " [9, 11, 12, 13, 14, 16, 18, 21],\n", + " [6, 8, 11, 12, 14, 17],\n", + " [39, 42, 45, 47, 50, 51, 52, 55],\n", + " [88, 86, 83, 82, 81, 78],\n", + " [74, 75, 77, 79, 80, 82, 85, 86],\n", + " [63, 66, 69, 70, 71, 74, 76, 77],\n", + " [60, 59, 58, 57, 55, 54],\n", + " [76, 78, 79, 82, 84],\n", + " [9, 10, 12, 13, 14],\n", + " [15, 17, 18, 20, 23, 25, 28, 30],\n", + " [10, 11, 12, 13, 14],\n", + " [71, 69, 66, 65, 63],\n", + " [23, 22, 19, 16, 13, 11],\n", + " [35, 33, 30, 27, 25],\n", + " [13, 16, 17, 18, 19, 21, 23],\n", + " [43, 46, 49, 50, 51],\n", + " [61, 64, 67, 68, 71, 74, 77],\n", + " [77, 74, 71, 68, 66, 64],\n", + " [22, 25, 28, 31, 34, 35, 37],\n", + " [81, 79, 78, 76, 74],\n", + " [1, 2, 3, 4, 6, 7, 8, 11],\n", + " [86, 89, 91, 93, 94],\n", + " [21, 23, 24, 25, 26, 27, 30],\n", + " [20, 18, 16, 13, 10, 8],\n", + " [56, 53, 52, 51, 48, 46, 43],\n", + " [18, 16, 13, 11, 10],\n", + " [14, 13, 11, 8, 6],\n", + " [97, 96, 93, 92, 89, 86, 83],\n", + " [31, 30, 28, 25, 23, 20, 19, 18],\n", + " [53, 52, 50, 47, 45, 42, 41, 38],\n", + " [37, 38, 41, 44, 45, 47, 49],\n", + " [58, 55, 54, 51, 50, 49, 48, 46],\n", + " [89, 88, 86, 83, 80, 79],\n", + " [40, 38, 37, 34, 31],\n", + " [36, 34, 32, 30, 29],\n", + " [71, 73, 74, 75, 77, 78],\n", + " [53, 52, 51, 50, 49, 47],\n", + " [19, 17, 16, 14, 11, 10, 8, 6],\n", + " [87, 85, 82, 79, 76, 73, 70],\n", + " [46, 48, 51, 54, 55],\n", + " [82, 84, 87, 88, 91, 94, 96, 99],\n", + " [76, 77, 79, 82, 85, 88, 89],\n", + " [98, 96, 93, 90, 89, 86, 83],\n", + " [89, 92, 95, 98, 99],\n", + " [64, 66, 67, 69, 72],\n", + " [19, 18, 16, 14, 12, 11, 8, 5],\n", + " [77, 74, 71, 69, 68, 65, 62],\n", + " [89, 92, 94, 97, 99],\n", + " [29, 31, 33, 35, 37],\n", + " [21, 23, 25, 26, 27, 29, 31, 32],\n", + " [17, 20, 22, 24, 27, 29, 31],\n", + " [47, 44, 43, 40, 37, 34],\n", + " [6, 7, 9, 12, 13],\n", + " [53, 50, 48, 45, 44, 41, 39],\n", + " [33, 34, 36, 38, 39, 42, 45],\n", + " [56, 58, 59, 62, 65, 68, 70],\n", + " [40, 38, 36, 33, 31],\n", + " [84, 82, 81, 78, 77, 75, 73],\n", + " [18, 20, 23, 26, 29, 31, 33, 34],\n", + " [52, 51, 49, 48, 45, 42, 39, 37],\n", + " [76, 77, 80, 83, 84, 87, 88, 91],\n", + " [29, 26, 23, 20, 17, 15, 12],\n", + " [66, 65, 64, 62, 60, 58],\n", + " [1, 2, 4, 6, 8, 9],\n", + " [28, 25, 22, 19, 18, 16, 15],\n", + " [94, 92, 90, 87, 86, 84],\n", + " [36, 37, 39, 41, 42, 45, 48],\n", + " [4, 7, 10, 13, 16, 19, 21, 23],\n", + " [6, 7, 9, 10, 13],\n", + " [26, 24, 21, 19, 16, 15],\n", + " [77, 80, 82, 85, 86, 88],\n", + " [68, 71, 73, 75, 76],\n", + " [25, 24, 23, 21, 18, 15, 13],\n", + " [37, 38, 40, 42, 44, 47, 49],\n", + " [34, 36, 37, 38, 39],\n", + " [85, 83, 81, 79, 77, 76],\n", + " [30, 31, 34, 37, 40, 43, 46, 47],\n", + " [37, 38, 39, 42, 44],\n", + " [40, 41, 43, 45, 47, 48, 51],\n", + " [58, 61, 62, 65, 67, 69, 70],\n", + " [3, 6, 8, 9, 11, 12],\n", + " [27, 26, 23, 21, 18],\n", + " [57, 60, 62, 64, 65],\n", + " [63, 64, 65, 68, 69, 72, 74, 75],\n", + " [28, 26, 25, 22, 20, 18, 16, 13],\n", + " [27, 28, 31, 34, 37, 38],\n", + " [38, 36, 33, 32, 29, 26, 23],\n", + " [74, 72, 69, 67, 65, 64, 62],\n", + " [86, 87, 88, 91, 93, 96],\n", + " [58, 57, 56, 55, 53, 51],\n", + " [55, 58, 59, 62, 64, 66, 68, 70],\n", + " [44, 45, 46, 49, 51],\n", + " [45, 46, 48, 49, 52, 55, 58, 61],\n", + " [17, 14, 13, 11, 8],\n", + " [31, 30, 28, 25, 23, 22],\n", + " [11, 12, 14, 17, 20],\n", + " [10, 11, 14, 15, 18, 21, 23, 24],\n", + " [46, 45, 43, 41, 39, 37],\n", + " [52, 50, 49, 46, 45, 42],\n", + " [85, 82, 81, 80, 78, 77],\n", + " [16, 15, 12, 9, 6, 5, 2],\n", + " [11, 12, 15, 18, 21, 22],\n", + " [50, 49, 48, 45, 43, 40],\n", + " [92, 89, 86, 85, 84],\n", + " [29, 26, 23, 22, 19],\n", + " [57, 60, 61, 62, 64, 67, 70, 72],\n", + " [5, 6, 9, 10, 11],\n", + " [26, 25, 24, 23, 21, 18, 17, 16],\n", + " [17, 20, 23, 25, 27, 29, 32, 33],\n", + " [23, 24, 26, 27, 30, 33, 36],\n", + " [4, 5, 8, 9, 11, 13, 16],\n", + " [76, 73, 71, 70, 67, 66, 64, 61],\n", + " [67, 65, 64, 63, 61],\n", + " [96, 95, 93, 92, 89],\n", + " [71, 70, 67, 65, 63, 62, 59, 57],\n", + " [40, 42, 45, 47, 50, 53, 55],\n", + " [49, 48, 45, 43, 42, 40, 37],\n", + " [85, 83, 81, 78, 76, 74],\n", + " [28, 27, 25, 23, 22, 21],\n", + " [83, 86, 87, 88, 89, 90, 93],\n", + " [94, 91, 89, 86, 85, 82],\n", + " [53, 50, 49, 48, 45, 44],\n", + " [86, 83, 82, 81, 80, 78, 75, 72],\n", + " [67, 69, 72, 75, 77],\n", + " [56, 53, 50, 49, 46, 44],\n", + " [74, 76, 79, 82, 83, 84, 85],\n", + " [25, 27, 29, 31, 34],\n", + " [18, 21, 22, 23, 25, 27, 29],\n", + " [32, 31, 29, 27, 25],\n", + " [55, 52, 51, 49, 46, 44],\n", + " [22, 23, 26, 28, 30, 32],\n", + " [9, 11, 14, 17, 19, 22, 24, 26],\n", + " [53, 54, 55, 56, 59],\n", + " [27, 29, 31, 33, 34],\n", + " [34, 31, 28, 26, 24, 22],\n", + " [86, 89, 90, 91, 94, 96],\n", + " [85, 83, 81, 78, 75, 74, 71, 70],\n", + " [84, 82, 81, 80, 77, 74],\n", + " [48, 51, 52, 55, 57, 60],\n", + " [43, 40, 38, 37, 35, 32, 30],\n", + " [69, 72, 73, 74, 76, 79, 81, 84],\n", + " [28, 30, 33, 35, 38, 40],\n", + " [4, 7, 8, 11, 14, 16, 18, 20],\n", + " [34, 33, 31, 30, 29, 26, 23, 22],\n", + " [27, 25, 24, 22, 19, 16, 13, 12],\n", + " [41, 44, 46, 48, 49, 50, 52, 53],\n", + " [1, 2, 4, 6, 8, 9, 12, 14],\n", + " [9, 10, 12, 15, 16, 19],\n", + " [91, 93, 96, 97, 99],\n", + " [49, 48, 46, 43, 40],\n", + " [66, 65, 63, 62, 60, 57, 55],\n", + " [24, 21, 19, 18, 15, 12],\n", + " [66, 68, 70, 71, 72, 73, 74, 75],\n", + " [5, 6, 9, 12, 15, 17],\n", + " [20, 18, 17, 16, 14],\n", + " [85, 86, 87, 88, 89, 90, 93, 95],\n", + " [47, 44, 41, 40, 38, 36, 33],\n", + " [60, 61, 63, 64, 67, 68],\n", + " [88, 90, 91, 93, 95, 96],\n", + " [45, 43, 41, 40, 37],\n", + " [30, 31, 34, 37, 40],\n", + " [23, 21, 19, 18, 15],\n", + " [24, 23, 20, 19, 16, 15, 13, 12],\n", + " [26, 28, 29, 32, 33, 34, 36],\n", + " [67, 68, 69, 70, 73],\n", + " [17, 20, 21, 24, 26, 29, 30],\n", + " [19, 16, 13, 11, 8, 5, 4],\n", + " [48, 49, 52, 55, 57, 58, 59],\n", + " [50, 52, 53, 54, 57, 58],\n", + " [60, 62, 65, 68, 71, 72, 73, 74],\n", + " [67, 66, 65, 64, 61, 58, 57, 55],\n", + " [50, 52, 53, 56, 57, 60, 62, 63],\n", + " [10, 11, 14, 15, 18, 21],\n", + " [32, 29, 27, 24, 21, 18, 17, 15],\n", + " [50, 51, 53, 56, 57, 60],\n", + " [35, 37, 38, 41, 43, 45],\n", + " [67, 68, 71, 73, 75, 78, 79, 82],\n", + " [35, 36, 38, 41, 43],\n", + " [97, 95, 93, 91, 89, 87, 85],\n", + " [78, 76, 74, 72, 70, 67, 64, 63],\n", + " [80, 77, 75, 74, 73],\n", + " [48, 46, 44, 42, 41],\n", + " [27, 26, 23, 20, 18],\n", + " [91, 88, 87, 84, 81],\n", + " [99, 97, 96, 95, 92, 89, 87],\n", + " [16, 14, 11, 10, 7, 5],\n", + " [98, 95, 92, 90, 88, 86],\n", + " [85, 86, 88, 89, 91, 93, 96, 97],\n", + " [18, 17, 14, 11, 10],\n", + " [19, 22, 23, 24, 25, 26, 27, 30],\n", + " [50, 51, 52, 54, 57, 59, 60],\n", + " [40, 43, 45, 47, 49, 51, 53],\n", + " [60, 61, 62, 63, 64, 65, 67],\n", + " [99, 97, 94, 93, 92, 89, 87, 86],\n", + " [55, 54, 51, 49, 48],\n", + " [47, 45, 43, 41, 38],\n", + " [17, 20, 21, 24, 26, 29, 31],\n", + " [44, 43, 41, 40, 37, 36, 35, 33],\n", + " [82, 83, 86, 89, 91],\n", + " [46, 48, 49, 50, 52, 54],\n", + " [32, 35, 37, 40, 43],\n", + " [82, 83, 86, 88, 89],\n", + " [41, 40, 39, 38, 37],\n", + " [28, 31, 32, 34, 35, 37, 38],\n", + " [98, 97, 95, 93, 92, 90, 87],\n", + " [23, 20, 17, 14, 13, 10, 9],\n", + " [58, 60, 62, 65, 68, 70, 71, 73],\n", + " [3, 4, 6, 9, 11],\n", + " [77, 79, 81, 83, 86, 88, 91],\n", + " [78, 76, 75, 73, 71],\n", + " [62, 64, 67, 68, 70, 72],\n", + " [41, 44, 47, 48, 49, 51],\n", + " [79, 78, 75, 74, 72, 69],\n", + " [48, 51, 53, 55, 57, 60, 62],\n", + " [68, 65, 62, 59, 56, 54, 51, 48],\n", + " [57, 59, 61, 62, 63, 66, 69, 72],\n", + " [20, 23, 25, 26, 27, 28, 29],\n", + " [48, 45, 43, 42, 39, 36, 33, 30],\n", + " [36, 37, 38, 40, 43, 45, 47],\n", + " [95, 93, 92, 89, 88],\n", + " [54, 55, 57, 59, 61, 63, 66, 68],\n", + " [14, 15, 17, 20, 21],\n", + " [7, 9, 12, 13, 16, 18],\n", + " [94, 91, 90, 89, 88, 87, 85, 83],\n", + " [47, 44, 42, 39, 36, 34, 31],\n", + " [28, 31, 34, 37, 38, 39],\n", + " [54, 56, 58, 59, 60, 62],\n", + " [89, 88, 87, 84, 82, 80, 79, 76],\n", + " [78, 80, 83, 84, 87, 88],\n", + " [21, 22, 23, 24, 27, 30, 32],\n", + " [16, 15, 12, 10, 7, 5],\n", + " [27, 29, 32, 34, 35, 36, 38],\n", + " [58, 57, 55, 54, 52, 50, 49, 46],\n", + " [47, 44, 41, 40, 37],\n", + " [17, 16, 15, 14, 11, 10],\n", + " [53, 51, 50, 47, 45, 43],\n", + " [18, 16, 15, 13, 10, 8, 5, 3],\n", + " [38, 36, 35, 32, 31, 30],\n", + " [75, 76, 79, 81, 84, 87, 90, 93],\n", + " [79, 81, 84, 85, 87],\n", + " [31, 28, 25, 24, 22, 20, 17],\n", + " [42, 44, 45, 46, 47, 49, 51],\n", + " [51, 53, 54, 57, 58, 59],\n", + " [92, 89, 87, 85, 83],\n", + " [31, 34, 35, 38, 40, 42],\n", + " [23, 21, 20, 19, 17],\n", + " [52, 51, 50, 49, 46, 43, 41],\n", + " [69, 66, 64, 63, 62],\n", + " [87, 85, 82, 81, 79],\n", + " [40, 43, 46, 48, 49, 50],\n", + " [10, 11, 12, 15, 16],\n", + " [15, 18, 20, 22, 24, 27, 28],\n", + " [51, 53, 56, 58, 60, 63, 66],\n", + " [3, 5, 8, 9, 11, 13],\n", + " [89, 88, 86, 85, 83, 81, 79, 77],\n", + " [63, 65, 68, 70, 73, 76, 78, 79],\n", + " [14, 15, 16, 19, 22, 23, 24, 25],\n", + " [73, 71, 70, 67, 65, 62, 59, 58],\n", + " [52, 49, 46, 43, 41],\n", + " [5, 7, 9, 11, 14, 17, 18],\n", + " [52, 49, 46, 44, 43],\n", + " [50, 52, 55, 58, 59],\n", + " [24, 26, 27, 30, 31],\n", + " [18, 21, 23, 26, 27],\n", + " [18, 15, 13, 10, 8, 7, 4],\n", + " [97, 96, 93, 90, 88, 87],\n", + " [91, 90, 89, 87, 84, 83, 81],\n", + " [80, 82, 84, 87, 89, 92],\n", + " [33, 35, 36, 37, 40],\n", + " [28, 31, 34, 35, 37, 38, 41],\n", + " [20, 22, 24, 27, 30, 33, 34, 35],\n", + " [26, 28, 30, 33, 36, 37, 38],\n", + " [60, 61, 64, 67, 70],\n", + " [93, 90, 87, 85, 82, 79, 77],\n", + " [92, 89, 87, 86, 85],\n", + " [94, 92, 89, 88, 87],\n", + " [82, 83, 84, 87, 88, 90, 92],\n", + " [64, 63, 60, 57, 56, 55, 53],\n", + " [81, 79, 78, 75, 72, 70],\n", + " [86, 84, 82, 79, 78, 75],\n", + " [77, 75, 72, 70, 67],\n", + " [73, 71, 69, 67, 65, 62, 61, 60],\n", + " [68, 65, 62, 59, 58, 55, 53],\n", + " [31, 34, 36, 38, 40, 43, 46],\n", + " [59, 56, 53, 50, 48, 46, 45],\n", + " [42, 44, 45, 47, 50],\n", + " [53, 51, 50, 49, 48, 45, 42],\n", + " [48, 45, 43, 40, 38, 35, 33, 30],\n", + " [56, 59, 60, 62, 63],\n", + " [56, 54, 52, 51, 48, 46, 44],\n", + " [58, 56, 53, 52, 51, 49],\n", + " [67, 69, 70, 72, 73, 74, 75],\n", + " [85, 86, 88, 89, 91, 92],\n", + " [97, 94, 91, 88, 85, 83, 81],\n", + " [3, 5, 6, 8, 10, 12],\n", + " [30, 28, 26, 25, 24, 21, 19],\n", + " [57, 56, 55, 54, 53],\n", + " [39, 41, 43, 46, 48, 51, 54, 56],\n", + " [91, 93, 95, 96, 97, 98],\n", + " [42, 40, 38, 36, 34],\n", + " [76, 78, 80, 83, 86, 87, 88, 90],\n", + " [31, 34, 35, 36, 38, 40],\n", + " [15, 17, 20, 22, 23, 24],\n", + " [85, 82, 79, 76, 75, 74],\n", + " [68, 65, 64, 63, 61],\n", + " [24, 27, 28, 29, 31, 34, 36],\n", + " [43, 42, 39, 36, 34, 31, 29],\n", + " [80, 81, 83, 85, 87, 89],\n", + " [41, 40, 38, 36, 33],\n", + " [14, 15, 17, 18, 21, 23, 26, 29],\n", + " [36, 39, 40, 41, 43, 46],\n", + " [97, 94, 92, 89, 88, 85, 83],\n", + " [30, 31, 34, 35, 37],\n", + " [99, 98, 96, 94, 91, 88, 85],\n", + " [25, 26, 27, 28, 29],\n", + " [13, 10, 8, 5, 4],\n", + " [28, 31, 34, 37, 39, 40, 41],\n", + " [62, 59, 58, 57, 56, 55, 52],\n", + " [63, 64, 66, 69, 71, 74, 75],\n", + " [81, 82, 85, 86, 88],\n", + " [22, 24, 27, 28, 29, 31, 34],\n", + " [94, 93, 90, 88, 87, 86, 85, 83],\n", + " [67, 66, 64, 61, 59],\n", + " [70, 71, 73, 76, 77],\n", + " [81, 83, 85, 86, 88, 90, 91],\n", + " [3, 6, 7, 8, 9],\n", + " [53, 56, 57, 59, 62, 64, 65],\n", + " [31, 28, 25, 23, 22, 21],\n", + " [46, 47, 48, 49, 52, 55, 56, 58],\n", + " [86, 89, 92, 93, 94, 95, 96],\n", + " [78, 77, 76, 73, 72, 70, 68, 66],\n", + " [88, 87, 86, 85, 84, 81, 78],\n", + " [77, 75, 72, 69, 68, 65],\n", + " [87, 88, 91, 92, 93, 94, 97, 99],\n", + " [30, 27, 26, 23, 20],\n", + " [71, 73, 75, 76, 77, 79, 80, 82],\n", + " [61, 64, 67, 70, 71, 73, 76, 77],\n", + " [53, 56, 58, 61, 62],\n", + " [34, 32, 31, 28, 27, 26, 25, 22],\n", + " [32, 34, 37, 40, 43, 44, 45],\n", + " [44, 41, 38, 37, 34],\n", + " [36, 35, 33, 31, 30, 27, 25, 23],\n", + " [90, 87, 86, 84, 82],\n", + " [31, 30, 27, 24, 22, 20, 18],\n", + " [61, 59, 56, 53, 50, 47, 46, 43],\n", + " [65, 63, 61, 59, 58, 57, 54, 51],\n", + " [31, 29, 26, 23, 20, 18, 16, 14],\n", + " [50, 52, 54, 55, 57],\n", + " [30, 29, 28, 27, 26, 23, 22],\n", + " [18, 21, 24, 27, 30, 32],\n", + " [24, 21, 18, 15, 14, 12, 9],\n", + " [37, 35, 34, 31, 30, 28, 25, 24],\n", + " [17, 16, 14, 11, 10, 8],\n", + " [39, 42, 43, 46, 48],\n", + " [71, 73, 74, 76, 79, 80, 82, 83],\n", + " [91, 88, 86, 85, 82, 80, 79],\n", + " [34, 35, 37, 39, 42, 45, 47, 50],\n", + " [32, 30, 28, 26, 23, 20],\n", + " [26, 25, 23, 22, 19],\n", + " [39, 38, 37, 34, 33, 31, 29, 28],\n", + " [20, 23, 24, 27, 30],\n", + " [14, 12, 10, 7, 5, 4, 2],\n", + " [44, 43, 41, 39, 36, 34, 33],\n", + " [82, 81, 79, 78, 76, 74],\n", + " [67, 65, 63, 60, 57, 56, 54, 53],\n", + " [54, 56, 57, 58, 59],\n", + " [35, 34, 33, 31, 30, 27, 25, 24],\n", + " [96, 93, 90, 87, 86],\n", + " [87, 85, 84, 81, 80, 79, 78],\n", + " [85, 82, 80, 78, 77, 74, 72, 71],\n", + " [94, 91, 90, 87, 86, 85, 83, 80],\n", + " [52, 53, 55, 58, 61],\n", + " [56, 58, 61, 64, 67, 68, 69],\n", + " [34, 35, 38, 41, 43, 45, 47],\n", + " [1, 3, 5, 6, 7, 10, 13, 16],\n", + " [62, 64, 67, 68, 69, 72],\n", + " [14, 15, 16, 18, 21, 23, 26],\n", + " [39, 37, 35, 34, 33, 30],\n", + " [34, 31, 30, 29, 28],\n", + " [12, 15, 18, 21, 23, 26, 28],\n", + " [21, 20, 17, 15, 13],\n", + " [87, 88, 90, 93, 95],\n", + " [2, 3, 4, 7, 9, 10],\n", + " [43, 46, 49, 52, 55, 56, 57, 58],\n", + " [41, 44, 47, 48, 50, 53],\n", + " [33, 31, 28, 27, 24, 22, 19],\n", + " [36, 35, 32, 31, 28],\n", + " [93, 91, 90, 89, 86, 85, 82, 80]]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data=[]\n", + "#read lines from input and store each list of space separeted integers into left and right lists respectively.\n", + "with open('2/input', 'r') as f:\n", + " for line in f.readlines():\n", + " data.append([int(x)for x in line.strip().split()])\n", + " \n", + "data\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "639" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#checks if all values in a list either increment or decrement by a value >= 1 and <= 3\n", + "def is_safe_interval(list):\n", + " return all([abs(a-b)<=3 and abs(a-b)>0 for a,b in zip(list, list[1:])])\n", + "\n", + "#checks if list is monotonic (either increasing or decreasing)\n", + "def is_monotonic(list):\n", + " return all([a<=b for a,b in zip(list, list[1:])]) or all([a>=b for a,b in zip(list, list[1:])])\n", + "\n", + "def is_safe(list):\n", + " return is_safe_interval(list) and is_monotonic(list)\n", + "\n", + "sum(is_safe(x) for x in data)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "674" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#check if list is safe with none or any one single item removed\n", + "def is_dampened_safe(list):\n", + " return any([is_safe(x) for x in [list[:i] + list[i+1:] for i in range(len(list))]])\n", + "\n", + "sum(is_dampened_safe(x) for x in data)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/2/input b/2/input new file mode 100644 index 0000000..7c35195 --- /dev/null +++ b/2/input @@ -0,0 +1,1000 @@ +22 25 27 28 30 31 32 29 +72 74 75 77 80 81 81 +52 53 55 58 59 63 +14 17 19 22 27 +65 68 67 68 71 73 76 77 +53 56 53 55 54 +60 62 59 62 62 +27 30 28 31 32 35 39 +64 67 68 71 74 71 74 81 +29 32 32 33 36 39 40 +72 74 74 75 74 +11 14 14 17 17 +64 65 67 70 72 72 76 +77 79 80 80 82 89 +45 47 49 53 54 +13 16 18 22 23 25 27 24 +16 17 18 19 20 21 25 25 +25 26 30 32 34 35 36 40 +45 48 52 54 56 62 +51 52 54 56 59 64 66 68 +14 16 17 22 23 22 +27 28 34 35 35 +76 77 78 80 85 88 92 +72 74 79 80 81 88 +63 62 65 66 69 70 72 +87 84 87 89 88 +41 40 42 43 45 46 46 +7 4 7 8 12 +86 83 85 88 90 96 +24 21 22 24 26 28 27 28 +25 24 22 24 25 23 +37 36 38 39 37 39 39 +78 77 80 79 80 82 86 +32 30 33 35 34 35 42 +70 68 70 73 73 76 +60 58 59 60 61 61 59 +85 83 86 86 86 +3 1 1 2 4 8 +21 18 19 19 26 +59 56 57 59 63 64 +48 45 47 48 52 53 50 +43 40 44 47 49 52 52 +48 45 47 51 55 +54 51 52 54 57 58 62 67 +21 19 20 22 29 31 +32 29 31 34 39 41 44 41 +47 46 48 49 54 57 57 +77 74 77 82 86 +47 44 45 51 54 60 +55 55 57 58 59 62 65 68 +40 40 41 44 41 +45 45 47 48 50 50 +77 77 80 81 83 85 89 +28 28 30 31 38 +88 88 89 88 90 93 +31 31 34 36 34 35 37 35 +31 31 34 36 33 33 +49 49 47 48 49 53 +69 69 72 73 71 76 +91 91 94 96 96 99 +65 65 65 68 70 71 68 +50 50 51 52 52 55 58 58 +75 75 78 79 79 83 +6 6 8 10 10 13 16 21 +43 43 46 47 51 52 54 +11 11 13 16 19 22 26 24 +76 76 77 80 84 84 +19 19 23 24 27 31 +8 8 10 12 15 19 26 +71 71 76 79 80 +12 12 15 17 24 25 24 +8 8 9 10 11 12 19 19 +74 74 76 83 85 89 +65 65 67 73 74 75 78 85 +23 27 30 32 33 +70 74 75 78 75 +7 11 12 13 14 17 17 +66 70 71 74 78 +61 65 68 71 76 +1 5 4 7 9 10 11 +47 51 53 54 55 53 54 51 +56 60 63 64 66 64 67 67 +36 40 43 41 42 44 48 +81 85 83 85 92 +69 73 73 75 78 81 82 +37 41 44 44 47 48 45 +41 45 45 48 49 51 51 +43 47 47 49 51 55 +36 40 40 41 42 49 +71 75 76 79 83 84 86 89 +10 14 15 19 20 17 +15 19 21 25 25 +1 5 8 10 12 13 17 21 +73 77 80 84 89 +7 11 14 17 18 25 27 +53 57 64 67 68 67 +50 54 55 56 62 62 +31 35 36 39 42 48 51 55 +35 39 42 45 48 54 60 +21 27 29 30 31 +40 47 48 50 48 +68 75 77 78 79 80 81 81 +19 24 26 28 31 34 38 +72 79 82 85 92 +51 57 55 56 57 59 62 63 +83 90 92 93 96 99 98 97 +10 16 14 16 16 +34 41 40 43 46 50 +70 75 76 79 77 79 86 +42 47 47 50 53 55 56 58 +54 61 62 63 66 66 68 67 +2 7 7 8 9 9 +71 78 78 80 84 +78 84 86 89 89 92 98 +10 17 19 23 24 25 +37 44 47 48 52 53 55 52 +74 79 80 81 82 86 87 87 +6 11 13 16 17 21 25 +68 73 74 78 80 82 85 91 +35 41 44 49 50 +18 25 26 29 34 36 39 37 +66 73 75 78 79 85 85 +61 67 69 75 79 +49 54 55 62 63 70 +99 96 94 91 90 87 88 +85 84 81 80 79 78 78 +25 22 21 19 16 12 +43 42 41 40 38 32 +27 24 27 24 21 +27 24 22 20 18 16 18 20 +61 60 59 58 61 59 59 +31 29 31 28 25 21 +40 37 35 38 35 33 30 25 +87 85 83 83 82 79 +48 45 44 41 41 44 +73 72 71 71 71 +61 59 58 58 54 +19 16 15 15 12 11 4 +46 43 40 39 38 34 33 30 +58 57 53 51 54 +60 58 54 52 51 50 50 +51 50 46 44 42 38 +38 36 33 29 27 25 22 15 +48 46 44 38 36 +40 39 37 35 34 29 26 28 +50 49 48 41 38 37 34 34 +65 64 61 54 51 50 46 +22 20 17 14 13 8 1 +83 84 82 80 78 75 74 +14 16 13 10 9 6 8 +26 29 28 25 22 20 17 17 +12 14 11 9 7 3 +67 69 67 65 59 +9 10 13 11 9 8 +15 18 17 19 18 20 +39 40 37 39 39 +27 30 27 26 27 26 25 21 +57 60 59 57 55 52 55 48 +31 34 31 31 28 +45 47 46 45 44 44 45 +48 50 48 48 46 43 42 42 +53 56 53 53 52 48 +43 45 45 42 37 +23 26 22 20 18 16 13 +32 33 31 29 26 23 19 20 +41 43 42 40 36 36 +49 51 49 47 43 39 +15 17 15 11 10 5 +71 74 69 67 66 +51 54 49 47 44 46 +76 78 75 73 66 66 +74 75 68 66 63 61 57 +94 95 92 86 85 78 +51 51 48 45 44 +43 43 40 37 36 34 37 +78 78 77 75 73 71 70 70 +15 15 14 12 8 +50 50 47 45 44 41 35 +88 88 89 87 85 83 82 +42 42 39 41 42 +91 91 90 88 91 91 +51 51 50 48 50 48 44 +50 50 48 46 47 44 43 37 +93 93 91 91 90 89 87 +6 6 6 5 7 +97 97 97 95 92 92 +28 28 27 26 26 23 19 +15 15 15 12 5 +38 38 37 35 31 28 27 25 +27 27 25 22 18 20 +18 18 16 12 12 +34 34 31 27 23 +16 16 15 11 4 +50 50 43 41 40 +67 67 64 63 57 59 +91 91 89 83 83 +21 21 18 12 10 9 5 +73 73 68 67 64 57 +97 93 92 90 88 87 84 +17 13 10 7 4 7 +78 74 71 68 68 +51 47 45 42 40 38 34 +26 22 21 20 14 +95 91 92 90 87 +38 34 32 31 33 35 +55 51 48 49 47 46 46 +79 75 72 69 71 69 65 +70 66 64 63 66 61 +45 41 41 40 38 +39 35 35 32 31 29 31 +6 2 2 1 1 +32 28 26 24 24 20 +90 86 86 85 79 +80 76 73 71 67 66 +31 27 23 20 18 20 +72 68 66 64 60 59 56 56 +20 16 12 10 6 +72 68 67 63 60 59 53 +92 88 85 84 78 75 73 +36 32 30 24 23 20 21 +75 71 69 66 63 57 55 55 +98 94 92 86 85 81 +74 70 67 60 57 55 52 47 +48 42 39 38 37 34 31 30 +88 83 81 78 76 77 +15 8 5 2 1 1 +75 70 69 67 65 63 59 +69 64 61 60 57 56 49 +45 39 36 39 36 33 30 27 +60 55 56 54 52 49 47 49 +64 58 57 58 58 +82 75 72 71 72 70 67 63 +26 19 16 19 17 15 9 +26 20 18 15 15 12 +54 49 46 45 45 44 47 +18 12 9 9 7 7 +22 16 15 15 11 +74 69 67 67 61 +76 70 66 63 60 +18 13 12 10 7 5 1 3 +48 41 37 36 35 32 32 +52 47 46 42 41 40 36 +84 79 76 73 69 67 65 60 +51 46 43 37 35 34 +28 22 21 19 14 16 +32 27 26 19 19 +93 88 85 83 76 72 +53 47 44 37 30 +5 7 8 11 11 15 +25 24 27 27 26 +84 86 85 84 80 79 77 +44 45 43 40 37 33 +17 14 16 13 6 +27 27 34 36 39 42 40 +36 42 45 46 51 +61 54 53 50 48 +58 58 60 64 65 68 72 +75 78 77 74 74 +75 75 72 71 70 70 64 +55 55 52 49 43 41 36 +84 83 80 81 80 +69 73 74 76 75 79 +87 80 82 79 79 +48 51 50 53 55 53 +83 80 82 88 93 +74 74 73 70 68 67 63 +66 65 66 67 70 74 77 +14 14 11 9 6 3 2 1 +22 22 26 28 31 33 36 36 +65 65 69 71 72 +58 58 51 48 45 43 42 42 +89 88 89 90 93 93 +8 15 19 22 24 24 +35 39 40 45 44 +80 86 88 90 91 92 93 +41 42 39 37 34 35 +72 65 62 61 57 +84 88 90 89 94 +24 26 26 24 23 22 21 21 +61 57 57 55 54 51 50 46 +15 15 15 14 10 +59 55 51 50 47 45 42 +89 88 86 83 80 77 70 +69 72 75 79 82 84 86 93 +23 25 27 29 34 35 38 39 +11 11 12 12 13 13 +47 43 45 44 42 39 35 +31 38 41 44 47 50 50 +27 25 20 17 15 13 +86 82 81 75 73 76 +53 52 50 51 52 54 58 +87 90 91 92 96 93 +58 58 58 55 54 53 53 +23 22 21 20 20 19 12 +5 5 8 9 12 14 15 +29 33 37 38 42 +57 52 48 47 44 41 39 40 +94 87 85 83 82 78 75 69 +89 91 90 84 83 +31 34 35 35 41 +96 89 88 87 85 87 84 +16 16 18 15 13 11 11 +37 38 41 44 44 45 +49 47 50 53 56 63 +31 29 27 26 23 19 18 +38 39 42 45 47 49 52 57 +70 76 79 83 84 85 89 +42 42 43 44 45 46 50 48 +62 63 62 64 65 +82 81 78 77 73 66 +34 34 28 25 24 +41 41 43 41 38 34 +16 14 13 13 11 8 7 +19 19 14 11 8 4 +78 71 68 68 65 64 65 +85 89 93 95 96 +16 21 23 25 28 30 34 +18 14 10 9 6 5 6 +8 3 3 2 1 +24 28 29 30 33 38 39 +57 54 57 55 57 +11 11 13 10 10 +66 65 67 73 76 77 77 +3 7 10 13 16 20 +2 6 8 9 11 12 15 16 +67 67 67 68 65 +67 62 61 60 59 59 59 +11 15 15 17 17 +18 19 17 15 14 8 5 8 +4 4 4 7 9 11 13 19 +31 27 26 25 22 22 17 +58 59 60 64 67 67 +81 88 90 90 91 97 +31 31 32 38 41 +28 26 28 30 31 29 30 36 +29 29 31 34 40 44 +33 30 29 28 26 22 22 +93 89 88 86 85 79 78 73 +68 72 75 78 80 86 86 +85 86 89 93 95 +47 49 46 45 44 45 41 +74 73 75 76 73 +38 38 39 40 41 46 48 55 +54 54 55 57 58 60 60 +48 53 59 60 58 +91 96 94 96 95 +78 81 78 77 77 75 68 +34 28 30 27 23 +85 81 76 73 73 +30 24 21 16 18 +12 17 18 21 25 26 +88 85 86 89 91 95 +36 40 42 40 41 39 +16 16 14 11 12 9 6 4 +59 59 57 53 52 51 45 +44 40 37 33 30 28 25 25 +28 28 31 31 34 37 39 40 +57 51 48 44 41 39 38 35 +44 37 32 30 27 27 +1 2 3 6 5 5 +84 77 74 72 71 69 69 +44 42 40 37 36 +60 57 54 52 51 +46 49 52 55 56 58 60 62 +42 45 47 50 51 54 55 +61 60 58 57 55 +28 30 31 34 36 39 +35 33 30 28 27 24 +17 18 19 20 23 25 27 +92 89 87 84 82 80 +72 75 77 80 83 86 87 90 +86 85 82 79 78 77 75 74 +24 23 21 18 15 +35 36 38 41 43 44 +37 40 43 46 48 49 52 53 +74 71 70 68 67 66 +73 72 70 69 66 64 63 62 +21 18 17 15 13 10 +97 96 95 93 91 89 +80 83 86 89 92 94 97 +13 10 8 7 6 5 3 1 +3 5 7 10 13 +12 13 14 15 17 20 23 +22 21 18 15 14 +45 44 41 40 39 36 33 30 +92 91 89 87 84 83 81 78 +80 77 74 71 68 65 64 61 +76 75 72 69 67 64 61 59 +74 71 69 68 65 +3 5 6 9 10 12 15 16 +67 69 70 71 74 76 79 +59 58 56 55 53 52 50 48 +54 51 49 46 43 42 +68 70 72 74 77 +89 88 87 84 83 80 77 75 +16 14 13 10 9 6 4 +32 29 26 23 20 +46 43 41 39 38 +90 93 94 96 97 +82 80 79 76 74 +87 85 84 82 80 77 +29 31 32 35 38 40 43 +32 34 37 39 41 +30 29 27 24 21 +70 73 74 77 80 82 84 87 +7 10 12 13 16 19 20 +47 48 49 51 52 53 +68 69 71 73 74 75 76 +66 69 70 72 73 76 79 +19 22 25 27 28 31 33 +13 10 7 5 2 +3 6 7 8 11 13 16 17 +27 28 31 34 37 40 42 43 +49 52 55 56 59 60 61 63 +74 73 70 68 66 65 +53 54 57 60 63 64 +98 97 95 94 91 90 88 87 +50 53 56 57 59 60 63 +36 38 39 41 43 46 47 49 +82 81 80 79 78 75 +3 5 7 9 11 12 13 +46 47 49 50 52 54 57 59 +20 21 22 23 24 26 27 29 +44 42 39 36 34 33 30 28 +50 53 54 55 58 60 +78 75 73 70 67 +30 27 26 24 23 21 18 +34 33 31 29 27 26 +70 69 68 66 64 63 62 +65 64 63 62 61 +47 44 41 38 35 33 30 28 +70 68 65 64 63 60 +40 37 35 33 31 28 26 25 +37 39 42 43 44 +15 18 19 21 23 +52 51 48 47 45 42 39 +48 45 43 41 38 37 34 33 +36 39 42 43 45 48 51 52 +78 76 75 73 72 69 +43 40 37 34 32 29 28 +11 12 15 16 18 20 23 24 +68 71 74 75 77 +18 21 23 26 28 29 +50 49 46 43 42 +35 33 32 31 28 26 25 +11 12 13 15 17 +22 19 16 14 13 11 10 +96 95 93 91 89 86 +20 17 16 13 12 9 6 +75 73 71 69 66 63 61 59 +55 57 58 61 64 65 67 +56 54 51 48 46 +87 89 90 93 94 97 +98 96 94 91 89 87 85 82 +92 90 88 87 85 +48 49 52 55 57 59 60 61 +34 35 36 37 39 41 43 +64 62 61 59 58 57 +16 19 21 24 26 +90 91 93 94 97 98 +71 72 73 76 77 79 +56 58 61 62 64 65 +14 12 9 8 7 5 +1 2 3 5 8 9 10 +65 67 70 72 74 77 +35 38 40 42 43 +21 20 17 16 15 12 10 8 +1 4 6 7 10 11 14 +3 5 7 8 10 +79 80 82 85 86 88 91 92 +35 38 41 44 47 48 50 +20 17 16 15 14 13 10 +17 19 21 22 23 +38 40 43 44 45 +38 39 42 45 48 50 53 +93 91 90 87 85 83 +25 23 21 19 18 17 +26 27 28 30 33 36 38 +48 45 44 42 40 +50 48 45 44 42 40 37 36 +56 57 59 60 63 64 +34 31 30 29 27 24 23 +80 81 84 87 88 90 91 +42 41 38 36 35 33 31 29 +28 31 34 36 39 40 42 +15 13 12 9 7 +64 65 68 69 71 72 +51 48 47 45 42 40 +48 45 43 40 38 37 +31 30 29 27 25 +24 26 28 29 31 33 34 +14 17 18 20 23 25 26 28 +90 91 92 94 96 99 +4 5 6 8 10 11 14 +24 22 19 17 16 15 +54 57 58 60 63 64 65 +34 37 39 40 42 44 47 49 +46 45 44 42 40 +20 18 16 14 13 10 8 +64 66 67 70 72 +97 95 94 93 91 +48 45 43 42 39 38 +28 26 24 22 19 16 14 11 +16 18 19 21 23 26 +50 52 53 56 59 +79 78 76 73 71 69 +46 48 50 51 52 55 57 60 +43 44 46 48 51 54 55 56 +40 37 36 35 34 31 +83 82 79 76 75 73 +57 60 61 64 65 68 71 +2 4 7 8 11 13 16 +20 18 16 15 13 10 7 5 +57 56 55 52 50 +65 68 70 71 74 76 79 +4 7 10 12 15 17 19 21 +59 57 56 54 51 +58 59 62 63 66 +22 19 17 16 13 +55 56 57 60 63 +23 26 27 30 31 32 35 36 +17 16 14 13 11 10 +60 58 55 52 51 48 47 46 +85 88 89 90 92 94 +20 18 17 14 11 +80 83 84 87 88 90 91 +30 27 25 23 20 17 +30 31 33 36 39 42 43 +43 45 48 50 53 54 56 +50 48 47 46 43 40 39 38 +47 49 50 53 55 +38 37 36 34 33 +53 54 55 57 58 60 63 +99 96 94 92 90 +77 78 80 83 84 86 +33 35 36 38 40 42 45 +54 57 59 61 62 +61 58 57 56 55 52 50 +17 18 20 23 26 +44 46 47 50 53 56 57 +50 47 44 41 38 37 36 +33 31 30 28 25 23 22 +40 37 35 34 31 +32 34 35 36 38 +64 62 61 58 56 53 +33 36 38 40 42 44 47 50 +22 19 16 14 11 9 8 6 +53 55 57 58 61 63 65 +85 82 81 80 78 76 73 70 +33 34 35 37 38 41 43 45 +17 14 11 9 7 4 +59 56 55 54 52 49 47 +47 48 49 51 53 56 57 +54 51 49 46 45 43 41 40 +35 32 29 28 25 22 19 +38 40 41 42 45 +71 68 65 64 63 +27 28 30 32 33 36 39 42 +39 41 44 46 49 50 +55 58 59 62 65 68 69 +41 38 35 33 30 28 25 23 +51 52 55 57 58 61 63 +52 53 55 56 59 62 64 +18 20 21 24 25 28 30 31 +48 47 44 41 40 37 +96 94 91 90 87 84 81 +20 18 17 16 14 13 11 +83 86 88 89 90 93 95 +58 57 56 54 52 49 46 43 +62 63 64 66 69 70 72 73 +77 74 73 70 69 +97 95 92 91 89 +11 13 14 16 18 21 23 26 +40 42 45 47 50 53 54 57 +9 8 7 5 3 2 +18 16 14 12 11 8 +28 31 34 37 39 +53 50 47 46 43 +78 81 84 87 89 90 92 93 +40 39 36 35 33 +75 73 72 69 68 66 63 +81 83 86 88 91 92 +19 20 23 25 26 27 29 31 +32 31 28 26 24 +70 69 68 67 64 63 62 +74 76 77 78 81 83 +60 57 54 52 49 47 45 +64 62 61 60 59 +76 78 81 84 85 +85 83 82 81 78 75 +57 58 60 62 64 67 70 +13 15 16 19 22 24 +87 85 82 81 78 75 72 +36 35 32 30 27 24 21 20 +38 37 35 33 31 28 +47 44 41 38 35 33 32 +65 62 61 60 58 57 56 +58 56 54 53 50 48 46 45 +64 62 60 59 57 +82 85 86 88 89 91 93 +22 19 18 15 12 10 9 +55 58 60 62 64 66 +57 54 52 50 49 47 +41 38 35 33 31 29 27 +81 83 84 86 87 +21 18 15 14 13 +62 63 64 66 67 +45 43 42 40 37 34 +53 51 48 46 44 42 39 +50 52 53 54 56 58 61 +51 54 56 59 62 63 +59 58 55 54 53 50 47 44 +9 11 12 13 14 16 18 21 +6 8 11 12 14 17 +39 42 45 47 50 51 52 55 +88 86 83 82 81 78 +74 75 77 79 80 82 85 86 +63 66 69 70 71 74 76 77 +60 59 58 57 55 54 +76 78 79 82 84 +9 10 12 13 14 +15 17 18 20 23 25 28 30 +10 11 12 13 14 +71 69 66 65 63 +23 22 19 16 13 11 +35 33 30 27 25 +13 16 17 18 19 21 23 +43 46 49 50 51 +61 64 67 68 71 74 77 +77 74 71 68 66 64 +22 25 28 31 34 35 37 +81 79 78 76 74 +1 2 3 4 6 7 8 11 +86 89 91 93 94 +21 23 24 25 26 27 30 +20 18 16 13 10 8 +56 53 52 51 48 46 43 +18 16 13 11 10 +14 13 11 8 6 +97 96 93 92 89 86 83 +31 30 28 25 23 20 19 18 +53 52 50 47 45 42 41 38 +37 38 41 44 45 47 49 +58 55 54 51 50 49 48 46 +89 88 86 83 80 79 +40 38 37 34 31 +36 34 32 30 29 +71 73 74 75 77 78 +53 52 51 50 49 47 +19 17 16 14 11 10 8 6 +87 85 82 79 76 73 70 +46 48 51 54 55 +82 84 87 88 91 94 96 99 +76 77 79 82 85 88 89 +98 96 93 90 89 86 83 +89 92 95 98 99 +64 66 67 69 72 +19 18 16 14 12 11 8 5 +77 74 71 69 68 65 62 +89 92 94 97 99 +29 31 33 35 37 +21 23 25 26 27 29 31 32 +17 20 22 24 27 29 31 +47 44 43 40 37 34 +6 7 9 12 13 +53 50 48 45 44 41 39 +33 34 36 38 39 42 45 +56 58 59 62 65 68 70 +40 38 36 33 31 +84 82 81 78 77 75 73 +18 20 23 26 29 31 33 34 +52 51 49 48 45 42 39 37 +76 77 80 83 84 87 88 91 +29 26 23 20 17 15 12 +66 65 64 62 60 58 +1 2 4 6 8 9 +28 25 22 19 18 16 15 +94 92 90 87 86 84 +36 37 39 41 42 45 48 +4 7 10 13 16 19 21 23 +6 7 9 10 13 +26 24 21 19 16 15 +77 80 82 85 86 88 +68 71 73 75 76 +25 24 23 21 18 15 13 +37 38 40 42 44 47 49 +34 36 37 38 39 +85 83 81 79 77 76 +30 31 34 37 40 43 46 47 +37 38 39 42 44 +40 41 43 45 47 48 51 +58 61 62 65 67 69 70 +3 6 8 9 11 12 +27 26 23 21 18 +57 60 62 64 65 +63 64 65 68 69 72 74 75 +28 26 25 22 20 18 16 13 +27 28 31 34 37 38 +38 36 33 32 29 26 23 +74 72 69 67 65 64 62 +86 87 88 91 93 96 +58 57 56 55 53 51 +55 58 59 62 64 66 68 70 +44 45 46 49 51 +45 46 48 49 52 55 58 61 +17 14 13 11 8 +31 30 28 25 23 22 +11 12 14 17 20 +10 11 14 15 18 21 23 24 +46 45 43 41 39 37 +52 50 49 46 45 42 +85 82 81 80 78 77 +16 15 12 9 6 5 2 +11 12 15 18 21 22 +50 49 48 45 43 40 +92 89 86 85 84 +29 26 23 22 19 +57 60 61 62 64 67 70 72 +5 6 9 10 11 +26 25 24 23 21 18 17 16 +17 20 23 25 27 29 32 33 +23 24 26 27 30 33 36 +4 5 8 9 11 13 16 +76 73 71 70 67 66 64 61 +67 65 64 63 61 +96 95 93 92 89 +71 70 67 65 63 62 59 57 +40 42 45 47 50 53 55 +49 48 45 43 42 40 37 +85 83 81 78 76 74 +28 27 25 23 22 21 +83 86 87 88 89 90 93 +94 91 89 86 85 82 +53 50 49 48 45 44 +86 83 82 81 80 78 75 72 +67 69 72 75 77 +56 53 50 49 46 44 +74 76 79 82 83 84 85 +25 27 29 31 34 +18 21 22 23 25 27 29 +32 31 29 27 25 +55 52 51 49 46 44 +22 23 26 28 30 32 +9 11 14 17 19 22 24 26 +53 54 55 56 59 +27 29 31 33 34 +34 31 28 26 24 22 +86 89 90 91 94 96 +85 83 81 78 75 74 71 70 +84 82 81 80 77 74 +48 51 52 55 57 60 +43 40 38 37 35 32 30 +69 72 73 74 76 79 81 84 +28 30 33 35 38 40 +4 7 8 11 14 16 18 20 +34 33 31 30 29 26 23 22 +27 25 24 22 19 16 13 12 +41 44 46 48 49 50 52 53 +1 2 4 6 8 9 12 14 +9 10 12 15 16 19 +91 93 96 97 99 +49 48 46 43 40 +66 65 63 62 60 57 55 +24 21 19 18 15 12 +66 68 70 71 72 73 74 75 +5 6 9 12 15 17 +20 18 17 16 14 +85 86 87 88 89 90 93 95 +47 44 41 40 38 36 33 +60 61 63 64 67 68 +88 90 91 93 95 96 +45 43 41 40 37 +30 31 34 37 40 +23 21 19 18 15 +24 23 20 19 16 15 13 12 +26 28 29 32 33 34 36 +67 68 69 70 73 +17 20 21 24 26 29 30 +19 16 13 11 8 5 4 +48 49 52 55 57 58 59 +50 52 53 54 57 58 +60 62 65 68 71 72 73 74 +67 66 65 64 61 58 57 55 +50 52 53 56 57 60 62 63 +10 11 14 15 18 21 +32 29 27 24 21 18 17 15 +50 51 53 56 57 60 +35 37 38 41 43 45 +67 68 71 73 75 78 79 82 +35 36 38 41 43 +97 95 93 91 89 87 85 +78 76 74 72 70 67 64 63 +80 77 75 74 73 +48 46 44 42 41 +27 26 23 20 18 +91 88 87 84 81 +99 97 96 95 92 89 87 +16 14 11 10 7 5 +98 95 92 90 88 86 +85 86 88 89 91 93 96 97 +18 17 14 11 10 +19 22 23 24 25 26 27 30 +50 51 52 54 57 59 60 +40 43 45 47 49 51 53 +60 61 62 63 64 65 67 +99 97 94 93 92 89 87 86 +55 54 51 49 48 +47 45 43 41 38 +17 20 21 24 26 29 31 +44 43 41 40 37 36 35 33 +82 83 86 89 91 +46 48 49 50 52 54 +32 35 37 40 43 +82 83 86 88 89 +41 40 39 38 37 +28 31 32 34 35 37 38 +98 97 95 93 92 90 87 +23 20 17 14 13 10 9 +58 60 62 65 68 70 71 73 +3 4 6 9 11 +77 79 81 83 86 88 91 +78 76 75 73 71 +62 64 67 68 70 72 +41 44 47 48 49 51 +79 78 75 74 72 69 +48 51 53 55 57 60 62 +68 65 62 59 56 54 51 48 +57 59 61 62 63 66 69 72 +20 23 25 26 27 28 29 +48 45 43 42 39 36 33 30 +36 37 38 40 43 45 47 +95 93 92 89 88 +54 55 57 59 61 63 66 68 +14 15 17 20 21 +7 9 12 13 16 18 +94 91 90 89 88 87 85 83 +47 44 42 39 36 34 31 +28 31 34 37 38 39 +54 56 58 59 60 62 +89 88 87 84 82 80 79 76 +78 80 83 84 87 88 +21 22 23 24 27 30 32 +16 15 12 10 7 5 +27 29 32 34 35 36 38 +58 57 55 54 52 50 49 46 +47 44 41 40 37 +17 16 15 14 11 10 +53 51 50 47 45 43 +18 16 15 13 10 8 5 3 +38 36 35 32 31 30 +75 76 79 81 84 87 90 93 +79 81 84 85 87 +31 28 25 24 22 20 17 +42 44 45 46 47 49 51 +51 53 54 57 58 59 +92 89 87 85 83 +31 34 35 38 40 42 +23 21 20 19 17 +52 51 50 49 46 43 41 +69 66 64 63 62 +87 85 82 81 79 +40 43 46 48 49 50 +10 11 12 15 16 +15 18 20 22 24 27 28 +51 53 56 58 60 63 66 +3 5 8 9 11 13 +89 88 86 85 83 81 79 77 +63 65 68 70 73 76 78 79 +14 15 16 19 22 23 24 25 +73 71 70 67 65 62 59 58 +52 49 46 43 41 +5 7 9 11 14 17 18 +52 49 46 44 43 +50 52 55 58 59 +24 26 27 30 31 +18 21 23 26 27 +18 15 13 10 8 7 4 +97 96 93 90 88 87 +91 90 89 87 84 83 81 +80 82 84 87 89 92 +33 35 36 37 40 +28 31 34 35 37 38 41 +20 22 24 27 30 33 34 35 +26 28 30 33 36 37 38 +60 61 64 67 70 +93 90 87 85 82 79 77 +92 89 87 86 85 +94 92 89 88 87 +82 83 84 87 88 90 92 +64 63 60 57 56 55 53 +81 79 78 75 72 70 +86 84 82 79 78 75 +77 75 72 70 67 +73 71 69 67 65 62 61 60 +68 65 62 59 58 55 53 +31 34 36 38 40 43 46 +59 56 53 50 48 46 45 +42 44 45 47 50 +53 51 50 49 48 45 42 +48 45 43 40 38 35 33 30 +56 59 60 62 63 +56 54 52 51 48 46 44 +58 56 53 52 51 49 +67 69 70 72 73 74 75 +85 86 88 89 91 92 +97 94 91 88 85 83 81 +3 5 6 8 10 12 +30 28 26 25 24 21 19 +57 56 55 54 53 +39 41 43 46 48 51 54 56 +91 93 95 96 97 98 +42 40 38 36 34 +76 78 80 83 86 87 88 90 +31 34 35 36 38 40 +15 17 20 22 23 24 +85 82 79 76 75 74 +68 65 64 63 61 +24 27 28 29 31 34 36 +43 42 39 36 34 31 29 +80 81 83 85 87 89 +41 40 38 36 33 +14 15 17 18 21 23 26 29 +36 39 40 41 43 46 +97 94 92 89 88 85 83 +30 31 34 35 37 +99 98 96 94 91 88 85 +25 26 27 28 29 +13 10 8 5 4 +28 31 34 37 39 40 41 +62 59 58 57 56 55 52 +63 64 66 69 71 74 75 +81 82 85 86 88 +22 24 27 28 29 31 34 +94 93 90 88 87 86 85 83 +67 66 64 61 59 +70 71 73 76 77 +81 83 85 86 88 90 91 +3 6 7 8 9 +53 56 57 59 62 64 65 +31 28 25 23 22 21 +46 47 48 49 52 55 56 58 +86 89 92 93 94 95 96 +78 77 76 73 72 70 68 66 +88 87 86 85 84 81 78 +77 75 72 69 68 65 +87 88 91 92 93 94 97 99 +30 27 26 23 20 +71 73 75 76 77 79 80 82 +61 64 67 70 71 73 76 77 +53 56 58 61 62 +34 32 31 28 27 26 25 22 +32 34 37 40 43 44 45 +44 41 38 37 34 +36 35 33 31 30 27 25 23 +90 87 86 84 82 +31 30 27 24 22 20 18 +61 59 56 53 50 47 46 43 +65 63 61 59 58 57 54 51 +31 29 26 23 20 18 16 14 +50 52 54 55 57 +30 29 28 27 26 23 22 +18 21 24 27 30 32 +24 21 18 15 14 12 9 +37 35 34 31 30 28 25 24 +17 16 14 11 10 8 +39 42 43 46 48 +71 73 74 76 79 80 82 83 +91 88 86 85 82 80 79 +34 35 37 39 42 45 47 50 +32 30 28 26 23 20 +26 25 23 22 19 +39 38 37 34 33 31 29 28 +20 23 24 27 30 +14 12 10 7 5 4 2 +44 43 41 39 36 34 33 +82 81 79 78 76 74 +67 65 63 60 57 56 54 53 +54 56 57 58 59 +35 34 33 31 30 27 25 24 +96 93 90 87 86 +87 85 84 81 80 79 78 +85 82 80 78 77 74 72 71 +94 91 90 87 86 85 83 80 +52 53 55 58 61 +56 58 61 64 67 68 69 +34 35 38 41 43 45 47 +1 3 5 6 7 10 13 16 +62 64 67 68 69 72 +14 15 16 18 21 23 26 +39 37 35 34 33 30 +34 31 30 29 28 +12 15 18 21 23 26 28 +21 20 17 15 13 +87 88 90 93 95 +2 3 4 7 9 10 +43 46 49 52 55 56 57 58 +41 44 47 48 50 53 +33 31 28 27 24 22 19 +36 35 32 31 28 +93 91 90 89 86 85 82 80 diff --git a/2023/1/23_1.ipynb b/2023/1/23_1.ipynb new file mode 100644 index 0000000..e38a03d --- /dev/null +++ b/2023/1/23_1.ipynb @@ -0,0 +1,3139 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "with open('2023/1/input', 'r') as f:\n", + " data=f.readlines()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['ckmb52fldxkseven3fkjgcbzmnr7\\n',\n", + " 'gckhqpb6twoqnjxqplthree2fourkspnsnzxlz1\\n',\n", + " '2onetwocrgbqm7\\n',\n", + " 'frkh2nineqmqxrvdsevenfive\\n',\n", + " 'four9two\\n',\n", + " 'six7sixqrdfive3twonehsk\\n',\n", + " 'xkvsone2\\n',\n", + " 'one65\\n',\n", + " 'rggxsff1seven\\n',\n", + " 'djbcgrrtqdshpqqzj43rgcr\\n',\n", + " 'br89fivetwoqggnxjfourtl3\\n',\n", + " 'zoneight47five5sixjxd74\\n',\n", + " '4five1\\n',\n", + " '5seveneighteightzzbnzsvdjnkvndsxlttfour\\n',\n", + " 'htdcmsl12ninethreepkqtdlvtl\\n',\n", + " 'twocghtvtdlfchfqnjhrfour19\\n',\n", + " 'rptwofiveonecvlldmppxtrvj3\\n',\n", + " '6gqsvsqpzxj\\n',\n", + " '5twomgkzsvg\\n',\n", + " '4ninedflntfsn1\\n',\n", + " '4threethree\\n',\n", + " '43two6eight9\\n',\n", + " '4gqnkntjthree9one45\\n',\n", + " '9lmjgqnkxqvfrzhbcfrlltjxjlkjfrlmb3\\n',\n", + " 'ninethreejkcbplfg4kseventwo\\n',\n", + " 'mbkfgktwolbvsptgsixseven1oneightzvm\\n',\n", + " 'm5fvqfkkk\\n',\n", + " 'tptqnsxmsevencrkdmxms55zrfmpmzv7lzqlnmbkzt\\n',\n", + " 'bqccqhbdgeight7\\n',\n", + " 'four7nine1eight\\n',\n", + " '8fivethndnpztzninepdkfive8\\n',\n", + " '1sixxvqdfourlnpdrfbnnx41vhqgth\\n',\n", + " 'sgpkgdb9\\n',\n", + " 'fivetwoq7cdprnjdjhs3three9\\n',\n", + " '1mfvptbhqshblvvvdl\\n',\n", + " 'ztftqgbzld8jkcmsrdfzonemzdmbzxpfour\\n',\n", + " 'dfkctqcjbmfourhszmlvtkeightthree2\\n',\n", + " '4onersrfjcskckcxcj4sevenzzzpsixeight\\n',\n", + " '1fourr5gxpone\\n',\n", + " 'seven74ninersgvvmtgsix\\n',\n", + " 'jvtwonefivetwosbpglbx2two\\n',\n", + " 'fourfivecxgssssixtwofour4\\n',\n", + " '3zcgcjdcpbgqdfnhxtneight\\n',\n", + " 'fourfour29cpbccthree44\\n',\n", + " '6six9foureight5xmfdf\\n',\n", + " 'four77\\n',\n", + " 'tqtnjshdmtwo3four8one27\\n',\n", + " 'one52\\n',\n", + " 'nine32five3six\\n',\n", + " 'qcjbjrpqdtpvveightpmzs17fourjvghvl\\n',\n", + " '5293gmtdttfpmrlhvlt9\\n',\n", + " '2zonenfglkskxhn3gxbrtxtcpfive\\n',\n", + " 'three5cfourfvmqlnhp4two\\n',\n", + " 'three4knrdzxpr\\n',\n", + " 'fmpvqkxgeightthreebdrng9tdcffvsfctwo\\n',\n", + " 'jpktgx8fivegqeight5three\\n',\n", + " '7sevennine\\n',\n", + " '3two3\\n',\n", + " 'nfthhzcq2\\n',\n", + " 'plmbtrzbnbmt1nine\\n',\n", + " '149hvjbktkmbj8mtnrblcvfive7seven\\n',\n", + " 'bfthree1\\n',\n", + " 'six6kqprz86two6\\n',\n", + " 'jthree6\\n',\n", + " 'nine2hzrlcqrt7eight\\n',\n", + " 'nnzhkhpdb8rbnqmxrfive\\n',\n", + " 'rkszqnp1\\n',\n", + " 't1\\n',\n", + " '5sixlmxkgmxrgveight3\\n',\n", + " 'sevenlptpdhtjpgxconedvtrrnngn8\\n',\n", + " 'nlpvxbscttbbpgndnc7jvrtcjxbsxnqvfcxdcfrgtrdkjflzlrqcnmfourkznnmrv\\n',\n", + " '7kllgxpb6\\n',\n", + " 'two4eightfgrsix1five7six\\n',\n", + " 'one2three6hmktjgmbxhbjl\\n',\n", + " 'bqjtxhntjreightsevendgcfpmkld14four\\n',\n", + " '22pgcslxtdhkhz8ninethreethreejcklznxq\\n',\n", + " '146gqthree85twoseven\\n',\n", + " 'vlvxlmkfpcxsstsevencdbbdsix6\\n',\n", + " '5sixseven48\\n',\n", + " 'llljbtxtrrpssrfthree9dpvrndphhn\\n',\n", + " 'qkhvq5\\n',\n", + " 'svrfthree8bdhjshcftdnine4\\n',\n", + " 'nfqnfkpchl5pcstz\\n',\n", + " 'pbx5mfkfour8\\n',\n", + " 'cptwonethreeptwo9gzmlkv9\\n',\n", + " 'gdpkprlzr6466fxlvfour\\n',\n", + " 'dlnpklqtfivesixfptrdh9four\\n',\n", + " 'onedpfskdd38qfvbjdnpglone\\n',\n", + " '4sevenseven5qf\\n',\n", + " 'onepgmmhlgmtvone3c\\n',\n", + " '247tsnmkd\\n',\n", + " 'threeznnnbtfive5tmdfxtwothree3ndjcszrb\\n',\n", + " 'oneeight6rhfiveone\\n',\n", + " 'threethreethreestvgljm4seven\\n',\n", + " 'bfbrk3vqsmone39hzzxdgp6eight\\n',\n", + " '98rndphxhcbl\\n',\n", + " '57fourlntgdngzpdsjkbbxnv7\\n',\n", + " 'twons4\\n',\n", + " 'three4threesixtwo2hf\\n',\n", + " 'lgqtcllzsevenhrrhqsmsnncmlz7\\n',\n", + " '8fnngjrxtljncbvlt7ninehfzrthree\\n',\n", + " '12mltqtqqrvjmjsbthnzpdjtwo1\\n',\n", + " 'lf1onevdmn2\\n',\n", + " '3twozlqnddmrsixslphpvb\\n',\n", + " 'five4nrtcjmvj\\n',\n", + " 'cksgmkszrbsrgfkq7tqjxsshxxh7vngsnjt\\n',\n", + " 'mfiveone7\\n',\n", + " 'kkvtwone5sevenfcfnngpmjktrpxk7djgzmdthreehpp\\n',\n", + " 'fxbgtcjp4pxpjv5rbfllhfcpfive8\\n',\n", + " '2gxrkjdtvxmnvs76\\n',\n", + " 'npvvleightlpd354vrfh1\\n',\n", + " 'zbnzdlzpqzsixnine4sevenqtddzzm6\\n',\n", + " '6cxrhdvzbmthree98\\n',\n", + " '77eightnine32four\\n',\n", + " '56tshj77one\\n',\n", + " '161xk26mspxkchfourfive\\n',\n", + " 'onenineljnsmvmfb7\\n',\n", + " '6hxvmqtwo\\n',\n", + " 'khzninetwo3pbtsqxlqj3\\n',\n", + " '1nine3\\n',\n", + " '6xrzjskblfq\\n',\n", + " 'kbtsbckkonethreetwofour7lgcbxmjkjpnine\\n',\n", + " 'fivethreecrjznine7\\n',\n", + " '8qxjdsspgn\\n',\n", + " 'vdoneightsix7h9\\n',\n", + " '5bsjl\\n',\n", + " 'gfllsrrrmzbfqdrlnvtdzr3\\n',\n", + " '7hs2\\n',\n", + " '1onelseventwo\\n',\n", + " 'fivetwo3\\n',\n", + " '2gnxv9sevenseven\\n',\n", + " 'gmmhshzvsixzssixseven6fivehbdvsjdz\\n',\n", + " '75onegckzsnpnine1xfslhfour6\\n',\n", + " 'sixgjhnfvsjnrsixeightnine49\\n',\n", + " 'nineseven929rlsdkcpbjrjdlptjbzp2\\n',\n", + " '9hbpplffngltfourpgk\\n',\n", + " 'twoldknnqxkkvvdjldqthree373\\n',\n", + " 'cceight9two\\n',\n", + " 'zmeightwohkgs6\\n',\n", + " '6sevenfdmqkss4fivethreesevenfourqfnsvvsj\\n',\n", + " '4two9njeightnine\\n',\n", + " 'two3gzseveneightfour88eight\\n',\n", + " '2clqj\\n',\n", + " '1ndvbhbtql\\n',\n", + " 'five4sixseven5ghlgbmdgfnqpfdm\\n',\n", + " '34dt\\n',\n", + " '9sevenrl5\\n',\n", + " 'dpbpqppsixngvmkflllcrtn8\\n',\n", + " 'sixgvsctkrp53sbsx\\n',\n", + " 'nine9qdrqfourjc\\n',\n", + " 'zvppfjpqch24\\n',\n", + " 'sg4txzzfoursevenninethreesqcdznksix\\n',\n", + " 'one3six2\\n',\n", + " '5bgdjzxbrlsl3sixlbxtjdpgfkjmq2\\n',\n", + " 'drsldhgjtrvmmz3jgrp6\\n',\n", + " 'qkeightwosix95nine445cfnine\\n',\n", + " 'fivetwo82scjct7onegblrqrggv9\\n',\n", + " 'threepfgljkghzc9\\n',\n", + " '8qvzljppstpnpeight9\\n',\n", + " '8nine98tkxcfqtg\\n',\n", + " 'sevensix4two\\n',\n", + " '2eightthree\\n',\n", + " 'cvhhmcgknj6threefive87\\n',\n", + " 'seveneight7dsvqnjsjsqlkeightwovzt\\n',\n", + " '71oneseven9fiveeightnh\\n',\n", + " 'pdjtzxbgjxb3vzfdnjbthree\\n',\n", + " 'xqpfourmpddnfcc4one5\\n',\n", + " 'jnrms1fkssgpvvlrmf\\n',\n", + " 'jbnkeightone6zldns85sixnine\\n',\n", + " '1fourbqfgxscdxmkvdpsrm\\n',\n", + " 'eightsixone8mjbrqkplkqntjdlfourpjdcs\\n',\n", + " 'lxdsp6prmfglvdfz9eight7sevensixone\\n',\n", + " 'qdksixvmsevent7xlvmtzdkhb\\n',\n", + " '8spqjvhplpzldpthree2\\n',\n", + " 'zqfvpq7pz22\\n',\n", + " 'nnfbpfour1\\n',\n", + " 'one9ninetwovrclctwo\\n',\n", + " '344six98seven\\n',\n", + " 'kqkj9qqvfxn\\n',\n", + " 'seven1fivethree\\n',\n", + " 'shlnhgq2c3oneseveneightwodv\\n',\n", + " 'eightthreepkcxlk7threeonethreetwo\\n',\n", + " 'pgmbhrzzqmvkjl57fourqk8gxjmbfqcjs9\\n',\n", + " 'eight5oneights\\n',\n", + " 'ninenineeightvkrsrkgh8\\n',\n", + " 'svnfdxxftkgzpjqxzkmbbcfourvfsg3two6twonezqn\\n',\n", + " 'mnvqcmkqvjlqvtltgdpktr3dkgkbt\\n',\n", + " 'sixmg29pplfzrsqhlvfeight\\n',\n", + " 'glzsbmzqjj43\\n',\n", + " '1zqrnpqrcbzdsnfour67zpsxpkbbkmfgrzm\\n',\n", + " 'kxbbcjjksix7sixeightnine\\n',\n", + " 'zbnhsdxgt5sixsixeightlsdqrgseven\\n',\n", + " 'ninezxrllznbcvmldxfbvjx5fivedtpdhsjgk8\\n',\n", + " 'reightwo7\\n',\n", + " 'fiveninenftgfourjbdkxtxcb38two\\n',\n", + " 'sixlpck4sixzcppvhzkchmnpvqjjgffourj\\n',\n", + " '34pmfdthreetwo\\n',\n", + " '7zbnnkqone5three\\n',\n", + " 'qxkmhcllcqkk5qrqseven47\\n',\n", + " 'one62brghc8s\\n',\n", + " 'twotwo1xvgcxbthree\\n',\n", + " 'three83dfqgjlc8eight\\n',\n", + " 'twofive8l1twocqmcccgdm\\n',\n", + " 'two6cnine\\n',\n", + " 'h2sfnczjmslpmlvdlzrs\\n',\n", + " '9nbblsvxbhdxqfour8\\n',\n", + " 'kfzcsg6sixonevrbchsjtfivenbz\\n',\n", + " 'mgtlqcdtwo7qxmszcqpjdplccxzccsixone5nine\\n',\n", + " 'mtfpphckdn1eightpdtkssqlxdhtlmcjxb\\n',\n", + " 'jbphmjjjrg2159eight\\n',\n", + " 'zqskrzb1pgfouronevxscgtlccl\\n',\n", + " 'lxvpgrck8fxhxm\\n',\n", + " 'fournrnlfive1xt\\n',\n", + " '3nsjnb\\n',\n", + " 'eight1three513nine\\n',\n", + " '39eightsevenfourbgd1mbljzone\\n',\n", + " '6two88five2pjpp\\n',\n", + " 'fourjlftf7six1xsktfhcdff\\n',\n", + " '3kcntzlmnnhhmtmlftggqljkrvninetwo\\n',\n", + " 'threesixonexlvxrblq24\\n',\n", + " 'xpgzzrcckdlnrczxndplbpcb452\\n',\n", + " 'ninembdnhhnhhzmvmtdjtkzmb9ncq9one\\n',\n", + " '4fivebrqrxftwo\\n',\n", + " '84tqzbcvgdrgpzpxjrone83zgzpsix\\n',\n", + " '99five\\n',\n", + " 'mgsevenqgkckfhbfnine3\\n',\n", + " '2seventhree\\n',\n", + " '8fivethreefive2fivethreefive\\n',\n", + " 'scrtqsevenjmxlvjrrbdtqgrdghfivethree7seven\\n',\n", + " 'sevensix946onesevenfour\\n',\n", + " 'dzn14\\n',\n", + " 'nineqbxvponekvfffs96zjfhpthree\\n',\n", + " '53twoqknxnxqbcone\\n',\n", + " 'fhonerone7fourpmxskkmmx7\\n',\n", + " 'eightlq4fourfourdbsdrvhhs17\\n',\n", + " 'nnpgtgcbvrggctbtkzht5xmkhtnnn7brpxjcxdrone\\n',\n", + " 'threecxnqkmrrpmzdljstdbfmk5seven\\n',\n", + " 'sdptbzqhn7sixnine8\\n',\n", + " 'five7jdzdzfqfivesevengtznjmqrblkkzkgvt\\n',\n", + " 'fclvllfthx47sixbhq16\\n',\n", + " '9mbmsxbn\\n',\n", + " 'three82fiveseven4\\n',\n", + " 'p1kzmzpbhmcthree\\n',\n", + " 'eightj3681nmgt8\\n',\n", + " '2two7\\n',\n", + " 'jdbjlvxhhzzsnmcqldrldeight6nine4\\n',\n", + " '2threefive\\n',\n", + " 'foursevenrmfhjvzdv8bpbrvblll1onetwofive\\n',\n", + " '65cfgkcrhbjk\\n',\n", + " '6onecjxzxb72gmrblthx\\n',\n", + " '4jlrvckc9\\n',\n", + " 'doneightghmjzzrfourfdzxflm51nineseven7xkxt\\n',\n", + " 'r5eightone\\n',\n", + " 'nkgknm1\\n',\n", + " 'rxbsnnzbrs4two4\\n',\n", + " '1pqvmfh\\n',\n", + " 'r2vpdpkzqcs85\\n',\n", + " 'gtfzjnnhsknvjnmnine98\\n',\n", + " 'zrdgv4hnbpb\\n',\n", + " '7one165vddbrzpmfhskvzxdh3\\n',\n", + " '44szfpgjmvgt4eight\\n',\n", + " 'dbgttrbj6five85nsqmzscksvdxks\\n',\n", + " 'ffkrhbvq2\\n',\n", + " '6fourbpjrdvlk\\n',\n", + " '38eightsix\\n',\n", + " 'two4fivedzpgfbtm\\n',\n", + " '3jbk46\\n',\n", + " 'slpkmrstrrvthreepl9bhctdfnfzc\\n',\n", + " 'nine4two5kkfmcjgxbqkttg\\n',\n", + " '1zppnmcr5sjfsbbxh48one\\n',\n", + " '8one8fourseven5\\n',\n", + " '6three7nineeight6\\n',\n", + " '96three\\n',\n", + " '91twonelt\\n',\n", + " '5sevenone2sixthreeknhzm\\n',\n", + " '2fvhgcbvg7sevenzqdtftct7tvvtkpxbrq8\\n',\n", + " '9nvr\\n',\n", + " 'eightfivetwodjg9\\n',\n", + " '7four2six\\n',\n", + " '5fkzgffzpgp3\\n',\n", + " '75sevenfive\\n',\n", + " 'mxtwonexsdrpkqzgm1threejqftvl\\n',\n", + " 'onekxffhsqb4dkb9fivefvtcjsd\\n',\n", + " 'eightone1eighteight4\\n',\n", + " 'glfeight7eight4\\n',\n", + " 'eightcdfjjfiveeight4fivetwo\\n',\n", + " 'npxnp32kfsfjpggdtpkm5\\n',\n", + " 'seven7threevcb\\n',\n", + " 'xtcvsmdx2four2twonefl\\n',\n", + " 'mzkgnzstwo844dcseight\\n',\n", + " 'zgoneight65z1seven3\\n',\n", + " '1two5lc\\n',\n", + " 'threevsrg5vdmfvpss27qzrmvmbz\\n',\n", + " '7qbcnjg1nine1seven3seven\\n',\n", + " '5fourxdxrhmxsj\\n',\n", + " 'v78\\n',\n", + " '41nine\\n',\n", + " '56fmktkxvltp4bztxkqfrdthreefive4\\n',\n", + " 'fourdnq1\\n',\n", + " 'ctlk31srscmmdn66sevendmjjqvgj\\n',\n", + " 'b7nine8ninejqqhhdnnpx5\\n',\n", + " 'ninedlxdshrzfmrnnq17\\n',\n", + " 'jbneightwofiversjctwogvvtprslpgfour9xcone\\n',\n", + " 'dpt5hbgbnmdlthree5sixvsvqtnmndpvv\\n',\n", + " 'sevenrztpgr8nine2\\n',\n", + " 'four9three1keightbmljrjgxkrbjdhbckbst\\n',\n", + " 'sfmztfjh49one\\n',\n", + " 'seven3three7eightwovs\\n',\n", + " '48onetwosix4four4ntvrzvdztr\\n',\n", + " 'mphtwone5sevenfour7\\n',\n", + " '4lgqnbdlone\\n',\n", + " 'hpnmtjbcdhfhsnxqhjhhfgteighteight8one5\\n',\n", + " 'cgtdtt22\\n',\n", + " 'plnbntcb8seven1gkgzngxq\\n',\n", + " '7bonethreefour\\n',\n", + " 'ffoureight88\\n',\n", + " 'z2four3dfggfntxjbjhdr9three\\n',\n", + " '5sixgpcm9two\\n',\n", + " 'sixpnlcgbcpdsixtwofour4foursix3\\n',\n", + " 'dstgjlh812\\n',\n", + " '3xfhdfrgqjfourkfjone7four8\\n',\n", + " 'nine4three6sevenfourthreeeight\\n',\n", + " 'njvdqthkv5seven6fourtbklhrqqsixeight6\\n',\n", + " '58rcfcjdkxcj3eightlndf\\n',\n", + " 'jhnt7zblnkdvhslrhpbkzdh\\n',\n", + " '7threetrlkmmlzsmtwo4dmjf94nine\\n',\n", + " 'pssrhmtcv7twotwodjxvlbmnfive58\\n',\n", + " 'eightseven271onefxxrfglh\\n',\n", + " '9bmtwo\\n',\n", + " 'three522\\n',\n", + " 'eightseventworckvnine2\\n',\n", + " '6fourtzmlrkrztvtxfcdf5\\n',\n", + " '3six4rdchffcg7\\n',\n", + " '6threedqssixnine\\n',\n", + " 'fivetwo6\\n',\n", + " 'sixnpkr5xbxmjcxjznpnrf8brxtmgl\\n',\n", + " 'gtvg3zzbeightkphjs69pjprvhlgl\\n',\n", + " '7kclrcjbtkcr63two5\\n',\n", + " 'threehpn38fivedcmfkgqqeightwovg\\n',\n", + " 'hbjcsfshsjqqfive9sevenfourthree3fzjpfjzd\\n',\n", + " 'five7qzhnthree1\\n',\n", + " 'nxhg17j8ninejnqlnine\\n',\n", + " 'ddlnxmcg2\\n',\n", + " 'rxeightwopqtpqncvd481154fiveb\\n',\n", + " 'sevenvbkzgzmnine4qhpptngvhh\\n',\n", + " 'bkmz6nineeight69\\n',\n", + " 'tqvzkqfourrj4one\\n',\n", + " 'sh15nzxzhqdxd96dqht\\n',\n", + " '6rhztqrfninefsqszx\\n',\n", + " '38cngonefourrhlljvpgz5vzhmbdjj5\\n',\n", + " '8fiveddchtllpt\\n',\n", + " '13rgzljhsdjfive2six\\n',\n", + " 'sevenbdnbheightfive7qbzjvlsr3\\n',\n", + " 'fivejmfvtnhz1eightkcdpjsghgtwonine9\\n',\n", + " 'five3bllpvnqgtzdhvprgb\\n',\n", + " 't1vcttwo\\n',\n", + " '9953three92\\n',\n", + " '9hrgxdpf\\n',\n", + " 'sevennine579seven\\n',\n", + " 'threekp1onefrfjbrmmpmsdsvfour\\n',\n", + " '4threefive61rrhrtdjs5\\n',\n", + " 'xbmvcfqp4onesevenmkgvsnprtl65\\n',\n", + " '379\\n',\n", + " '4966dlprfxmhmqdfour6\\n',\n", + " '9lllhz8nmqxkzsevenxmbqvgqnj8\\n',\n", + " 'btkxnzonesevenjmkdcc1ff32eight\\n',\n", + " '7three65one745\\n',\n", + " 'seven66ninelkbmvndm3\\n',\n", + " '4three3sixeight3\\n',\n", + " '177dcxqqbqpkxgctwo\\n',\n", + " '48cjpd47sevenzgtkrdlfq\\n',\n", + " '5ppzvklbtnine212qlmt\\n',\n", + " '89tpmnr\\n',\n", + " 'dh1gfgb6threeqcm3\\n',\n", + " 'five83\\n',\n", + " 'fzlkpx6seven2twotjlqpgldlfour49\\n',\n", + " 'fiveninefivenxpzkrslxm44\\n',\n", + " 'pxxbnsfoursixeight5mjkeight\\n',\n", + " 'ninefivesevenz6\\n',\n", + " 'djddxtdeight2vqsvdgttxonefourfhdfxszvfd8pjcvzbgp\\n',\n", + " '253seven71nine\\n',\n", + " 'eight6cb71\\n',\n", + " 'gfzptdj1nine5twosvtmpphj9mkhd\\n',\n", + " 'hfjcpvzeight7ggqrmkmzrhbthreeeight\\n',\n", + " 'chjonetwo2lqxfrbvq\\n',\n", + " 'fkfmntldvleight4threethreeeightfour\\n',\n", + " '6j81threeseventwo3seven\\n',\n", + " 'seightwosvsnp4\\n',\n", + " '8bqjk75254\\n',\n", + " '6seventsmnfjtn4rthrp\\n',\n", + " '9kksdvfzzpsszffouronenrqrcnine\\n',\n", + " '5dkpp8fournine4one\\n',\n", + " '4mpbzrfvj8two9sevenonenine\\n',\n", + " 'jzkdrrjsnpxzxbjhb5\\n',\n", + " 'three87oneonexppvhz3seven\\n',\n", + " 'two39kvrmz\\n',\n", + " 'vdfive8dntsz\\n',\n", + " 'mthreehzdghb3eightsevenfttmjtx\\n',\n", + " '2dlnjsxlg\\n',\n", + " '7threecrrdqksqsevensixnine\\n',\n", + " 'mdxhrrrfiveone6\\n',\n", + " '8nine52\\n',\n", + " '725two\\n',\n", + " 'jzpxt2vcninenjgfzddk\\n',\n", + " 'three29\\n',\n", + " 'zjrffvdgnpeight1sevenglpfkdb\\n',\n", + " 'two3qnhqvxeight\\n',\n", + " 'slqdvfmeightmlhjdcvbrmsjvrk6\\n',\n", + " 'two13kfxd28rzqhcdkjtbbstnhbfive\\n',\n", + " 'qhdqqnjbdk8eighttwoqpthree\\n',\n", + " 'one1brxnptch263eight18\\n',\n", + " 'threexntmdtwokdmhf3pdkgpthree\\n',\n", + " '2three9jrcrmjvbrm\\n',\n", + " '1mmlsfsdkzkvjtwo3b\\n',\n", + " 'sfkkkncf3three4seventwoqzhmcdfbhxfl\\n',\n", + " 'vfnqlnrzcrzm8fourvpzxqdqsfb\\n',\n", + " 'rjkhxqdmkrfive1\\n',\n", + " '2four2nine9znp6seven\\n',\n", + " '7doneone\\n',\n", + " '9threetworqlk\\n',\n", + " 'eighttpclmtv4twofour5mtxxnpthreeoneightfp\\n',\n", + " 'onecfjgrbsjncmpqhqvhxtfpc21nineppone\\n',\n", + " 'eightlvjxmxhfive9fb\\n',\n", + " 'ninenrjlmcthree3four\\n',\n", + " 'eightlxrnvljrhksxzfxzbrt644\\n',\n", + " 'blmjnfgsrcms31\\n',\n", + " 'zsix16xtjvrtn\\n',\n", + " 'lkjfpxjh1sg57xbxlsxcrsix1\\n',\n", + " 'mkmdcsbgvd19ninecsevenone9\\n',\n", + " 'three1p\\n',\n", + " '4prbjfour1ninesix\\n',\n", + " 'pkf7sixsb\\n',\n", + " 'fiveclczl8sltncdxsix\\n',\n", + " '4ninefourseven5three\\n',\n", + " '3lpchjfgbhzjbqggsfoursixseven\\n',\n", + " 'twonmcfztwoqp1one5\\n',\n", + " '87sevendbqdsevenrlzkrhoneeightone\\n',\n", + " '4three4\\n',\n", + " '2tthbbcpcr36tqvfjkfs\\n',\n", + " 'rtzqgsixnine4bzqhjrq8five\\n',\n", + " 'eight3fivel4kd\\n',\n", + " '1fourfourdpvvghvlzxtwothree\\n',\n", + " '2gzgzmrpbztm1cgzvvrtqt\\n',\n", + " 'qdrfrkncnt1eight\\n',\n", + " 'smpz4mjrbthree1ninefour\\n',\n", + " '6seventhree7\\n',\n", + " '5278nlnfjrqlone8\\n',\n", + " 'nine6eight\\n',\n", + " 'twoqrtdsreight2dxhknhpdzz2pdbsnlpljlxkv9eightwop\\n',\n", + " 'vl6eight9eightsix1lmth\\n',\n", + " 'qxsevenkckxvmjkb1\\n',\n", + " 'hvhlm2twotwoone\\n',\n", + " 'grtlftfthtthree331dzzzoneseven\\n',\n", + " 'ftpkgvrsc85cplddgnn\\n',\n", + " 'lhcbzhgfjlgmcsn66\\n',\n", + " 'twofourqjrltlvcmmzv8nine3ps\\n',\n", + " 'knvz5four\\n',\n", + " 'threefivefoureight7four\\n',\n", + " 'one9fournine5\\n',\n", + " 'cr8twofive7two4tlbpgbngsp\\n',\n", + " 'seven6gzn8trjmzrvjthtpzld5dcqnjmtl4\\n',\n", + " '1five1fourfour8hqjzshnszhzgcchs2\\n',\n", + " 'tld78blgffjksevenninekmjnrzlvxr\\n',\n", + " '15six\\n',\n", + " 'fqlmqhjslgnllgs6three\\n',\n", + " 'jvhmkfjzd5\\n',\n", + " 'kfkxjmbrgjzmjtwo2qnh45pxrkrcpmjd\\n',\n", + " 'dh119mvxlfdft6sevenqdxb\\n',\n", + " 'five5jl\\n',\n", + " 'jhqp2qzkfvjdfts\\n',\n", + " 'teightwo6\\n',\n", + " 'kscczzhftqxmbrjtm46five5hncmntrgqz\\n',\n", + " '65341\\n',\n", + " 'cxjpgfourfour98spklghbv73\\n',\n", + " '5sevengnxldmlvnrzsthree\\n',\n", + " 'bsn6three\\n',\n", + " 'fivesixz36\\n',\n", + " 'snpmdmx65five4\\n',\n", + " 'vrjbjsixfour37onesscclpgxr\\n',\n", + " 'four58\\n',\n", + " 'nlrflkxjzbpckmprkp435\\n',\n", + " 'pp78\\n',\n", + " 'rhz3dblsmbl8mvmthree3svhbzb\\n',\n", + " 'qtztdn4\\n',\n", + " 'rqrdr5ninefivexj\\n',\n", + " 'fiveone4ninesplghqrbcnmmzll4mvklfmxv\\n',\n", + " 'tj3ninekvczg3cczmhkdf\\n',\n", + " 'fivelnrjmn3jvlmhplj4fourkvdceight\\n',\n", + " 'five6jrbkxrvmtqfvbq7pmjmdkmkv\\n',\n", + " '6gcllrgktc\\n',\n", + " '21zffhnksmjj1rcdpkcrznine\\n',\n", + " 'threegpnpftrstmfive4ninefive\\n',\n", + " '1cnsixpnvrxq\\n',\n", + " '33qghllh\\n',\n", + " 'gfour1rmznkmplqfsevennksglsfdqtwotwonet\\n',\n", + " 'kjqcslq3nineoneightkq\\n',\n", + " 'three8oneninepjpqnzccthree\\n',\n", + " '3jpfhtrfrffournmrxrpdjm\\n',\n", + " '2svsmkptdcmpkhbpmnineczjsjvlfpkckxscfour\\n',\n", + " 'dqxpjsnineonenvhptwocprtsbvcl6\\n',\n", + " 'ninethreesixninesixxjjjkvtbgd5hrstthree\\n',\n", + " 'fivefznprpxccnk8four3twobllsjnfjnx\\n',\n", + " 'ghh2skv6\\n',\n", + " 'eightninethree4jbcgrqeightfive\\n',\n", + " '4ltjfxjbthreesixbrtzlbfdx7eight\\n',\n", + " 'one9mvbrcc\\n',\n", + " 'three5khjdjlpl4hrzqblshkxdgseven8\\n',\n", + " 'czvxncr2\\n',\n", + " 'eightthreedhkkpr9hqqdtwo1\\n',\n", + " 'fouronetnhxgzstdx31six\\n',\n", + " 'fzcnineghrfbcbhhv263\\n',\n", + " 'eightfive525onexgrzfive\\n',\n", + " 'zclvsg9three6eightkeighttwo\\n',\n", + " 'two35bhmnlt\\n',\n", + " '9s\\n',\n", + " 'xbshssrspj643four4vrjdnlf\\n',\n", + " 'nineseven4ztnchhpx92\\n',\n", + " 'gpfive25dvx\\n',\n", + " '1five5\\n',\n", + " 'jtcstj1kqrsbhsdsk8\\n',\n", + " 'eight1sixsixbnsfouronecsv\\n',\n", + " 'tgplkg2hgeight\\n',\n", + " 'seveneightxsgcsfxd9dpkvltrsnlkccrskrbppmkxmpt\\n',\n", + " 'pddbvnrqzznqmmonesixjgpgm9rmlxvqqmdbcqhng\\n',\n", + " 'xqdbsktwothxzfsmqptrjbthreesixhqgrffqcnine2\\n',\n", + " 'vxvtfjsevenfivethreethreensflthreenine6\\n',\n", + " '8one9sxrczdfg2\\n',\n", + " 'mdtdgjthreethreefjzqs16\\n',\n", + " 'dnvpjteight6tcn\\n',\n", + " 'eightnine3cdzk\\n',\n", + " 'three6tzmqbzgmdeight9fiveztwo2\\n',\n", + " '1pg6three6sevenmghhdx3\\n',\n", + " '41threenine1\\n',\n", + " 'ncbrrm7six2nine\\n',\n", + " 'eightxrxdsnsvzddhrqvkfmseven3ntpqhsbttqmlp\\n',\n", + " 'one3fourmmrhpjmnjnqxkf4ftkxsvsix\\n',\n", + " '54zdqrrmzd\\n',\n", + " 'rftdstx6hdrhmqjs9b35\\n',\n", + " 'fiveseven8five5\\n',\n", + " 'gzfkkqznk4\\n',\n", + " 'six32ckkbh\\n',\n", + " 'jpk171fivesevenhbjlddveightvcqh\\n',\n", + " '71foursix7\\n',\n", + " '2nine4onelkvplzhj7onen\\n',\n", + " '4nrvsh3twoprvpgltsix1pzbdhvfour\\n',\n", + " 'skvnpjfmkhmf7547tszjzmq\\n',\n", + " 'two3ctthreesix3sjflprlrcg8bnhxs\\n',\n", + " 'six41nmgpztwo\\n',\n", + " 'dkkhmgmjtwo4seven\\n',\n", + " '8jqcmhrbmcninehbpxdjpvbk882ktjxp\\n',\n", + " 'hlbhcfivetwo77three\\n',\n", + " '19ccmrmh1lgmngl8\\n',\n", + " '5eightnhfsjzjseventhreefiveeighteight\\n',\n", + " '3dkvxfive\\n',\n", + " '39zn\\n',\n", + " 'cqsklnrdhtwoeight814rdncfthrjbc7\\n',\n", + " '13pfspbxkfrr\\n',\n", + " 'five7sevenfourfour42tppvrfqrvz\\n',\n", + " 'nboneightfour9eight7threefournmvcrgmkx7hs\\n',\n", + " 'sixoneppbone5ctdhjzzrnine\\n',\n", + " '5one1nineeight1two99\\n',\n", + " '7rjvqdvgxxmb\\n',\n", + " 'sixbkdpftd6\\n',\n", + " '699\\n',\n", + " 'rflvscthxb9one9jtfqd\\n',\n", + " 'sixtwo2hsclsg\\n',\n", + " '8nzgpt7eightfour6zhjxqjmrq53\\n',\n", + " 'pddnfour1one749five\\n',\n", + " 'gbbprvrq23seven77zssgktwo\\n',\n", + " 'ppc2flmdjrp7twoonerjhtlv\\n',\n", + " 'vlltgb8seveneight5clqsthree6\\n',\n", + " 'onetwobtgdkkxv1five6lcfvkhm9three\\n',\n", + " 'two8threesixsix\\n',\n", + " '5threeeight\\n',\n", + " 'onespeight9twonexpr\\n',\n", + " 'pzfourseven8five9five\\n',\n", + " '9mbdbphhrfeight\\n',\n", + " 'fournt14\\n',\n", + " 'jlcb2\\n',\n", + " 'three3eightnfj2\\n',\n", + " '6four2fgsndlslkr\\n',\n", + " '8sevensxcjl6fivefivesssevenqghn\\n',\n", + " '3xgzj66svlvqgcvzzlb5vvjvmvb\\n',\n", + " 'hfhmngkv64\\n',\n", + " '263six\\n',\n", + " 'oneone15qtgtksjdgz27hjl9\\n',\n", + " '1six8mrrkx6\\n',\n", + " 'vdhslzfgsevenfivemseven4fourq\\n',\n", + " 'vdjlnrvqjb5thsevenfiveonexskqrfourhtcl\\n',\n", + " '1ninefoursix6seven\\n',\n", + " 'twobvpnjmspxmgxkv4twotjjkbxfgs4\\n',\n", + " 'fivefour8kfjrpdddhr\\n',\n", + " 'dvbljqpznfjjp6sevengvbdxm1bnzhqmcdgpzrd1\\n',\n", + " '34cmclpfrgrjpxpjpdv\\n',\n", + " '9xcdkhtsdmtvlrtlcbsixtrjqxg\\n',\n", + " 'rdhqfcseventhree9tqggvslm\\n',\n", + " 'gddfoursevenrqvqdkqbr6ninecfd\\n',\n", + " '19cjpltfxspkpxkctdhjkncnbtwoone\\n',\n", + " 'mseven7six4five19hjd\\n',\n", + " 'jcqlxpmmj7rsrrngnq2seven\\n',\n", + " 'fssvonepgqmrgbv1\\n',\n", + " 'fourfivefoursixthreegjgxhbzrgx1\\n',\n", + " 'fzdfbxsths5szkgkgzdmnvtnine9nqb\\n',\n", + " 'rszfmx6eightnine6eightj\\n',\n", + " 'three199twol7six3\\n',\n", + " 'threedmxbsevenjmdvrzlfive26\\n',\n", + " 'ninehkbdkc594one\\n',\n", + " '6fsix\\n',\n", + " 'fiveseven51fjlx6\\n',\n", + " 'bj3fivesix1\\n',\n", + " '9vxcstvpf\\n',\n", + " 'threeseven6\\n',\n", + " 'ninefive4twoonetwo\\n',\n", + " '8seven6\\n',\n", + " 'twopxsts95\\n',\n", + " 'pzhxsxnnkthree6\\n',\n", + " '6ninem591\\n',\n", + " '7drfqdsjsnfdbqp\\n',\n", + " 'p2plgbninethreesixthree\\n',\n", + " '5seventnhvjfrlkggfjbmlzxhnnnsh\\n',\n", + " 'seven691rjmnfzddfive\\n',\n", + " '466mmgnh\\n',\n", + " 'dsctthree7\\n',\n", + " 'eightqlfourzndmzltp34xjbdmpjs1\\n',\n", + " 'stmprbctwo1ninesxbzqkkdqgdqhone\\n',\n", + " 'sevensixeight91sixjscqxlzj4\\n',\n", + " 'vrctfpbp2bdknhtwothree68ckzlgkghponeightg\\n',\n", + " 'one82lzh1m9\\n',\n", + " '5dgkljnlvnthbdfeight7x9kloneightrp\\n',\n", + " '9pdsgfourzcfour51one\\n',\n", + " '3twonltnmdqttqmj6fivefivesix\\n',\n", + " '1four8szcp\\n',\n", + " 'dqbrkz8xp\\n',\n", + " '3twoftqxxgdg\\n',\n", + " 'sflsixzjq1\\n',\n", + " '6nine4plhvcthree\\n',\n", + " 'znzdrj4526fjtszspfour9pk\\n',\n", + " '785bttrfnrtzvninehqzthfr\\n',\n", + " '6slx7six8qhppjmbcrj\\n',\n", + " 'dc1fdzzsvnb\\n',\n", + " '1xfourtwo\\n',\n", + " '1mvt283\\n',\n", + " 'fivecflqkthreek2\\n',\n", + " '7gtdlvbcxvrxvx1264eight\\n',\n", + " 'b1pbpcsix\\n',\n", + " 'fivefourzqrmbpgnqzgpzhfour9\\n',\n", + " 'seventhree5cnvjmthree\\n',\n", + " 'ksblnqbkgnfone8\\n',\n", + " '8fourvkhkhlsjq\\n',\n", + " 'twoqjvb9zjvpfz2onesixk\\n',\n", + " 'tdjmrcvsevensix1seveneight\\n',\n", + " '5mqxkkcttfivezdbcdmlfivebchqlcktpseven\\n',\n", + " '7bzsnljccxqbtq3dsfsbrlpgqjzxeight\\n',\n", + " 'one4mjgfhzsjdc3crgthhjrznd\\n',\n", + " 'sixthreektx8xjbdjlq\\n',\n", + " 'bgvldztfivetwo3tldvpzkmonepdvppd8\\n',\n", + " 'xhzm91\\n',\n", + " 'oneskfoureight23\\n',\n", + " 'ppsj64\\n',\n", + " 'fgrf45four5\\n',\n", + " 'four2two\\n',\n", + " '798jcgzf\\n',\n", + " '93mxc\\n',\n", + " 'hn5q9rm2vtksix9\\n',\n", + " 'cvdldzschflc9eight\\n',\n", + " 'mqdtndzvv9eightkzxlgvcggrkltzlphcfq\\n',\n", + " 'beightwoone6rqjcqq7sixfourrkghseven\\n',\n", + " 'two9nine9foursevenfourone\\n',\n", + " '793sixzngtcbrbtjmbjbqxzpqjkn\\n',\n", + " '1five4\\n',\n", + " 'x4\\n',\n", + " 'qmlvsptmqhfvbfiveonemnmzshczjgsvgsgpps2seven\\n',\n", + " '28eightmt9\\n',\n", + " '1four8hbpnktmn\\n',\n", + " '6nine5threeplcsdrn96four3\\n',\n", + " 'two3vdvh6\\n',\n", + " 'three7fiverkjmllclbprmqgb4\\n',\n", + " 'strvnllfmqm2threesixbbrjxbjvvxvjhr91\\n',\n", + " '4dbqqbdcddldhgxjrnfivehz9\\n',\n", + " 'v81nnvzv\\n',\n", + " '3ssptnqhmrzbseveneightwoxdx\\n',\n", + " 'ninetthree72\\n',\n", + " '556five2three\\n',\n", + " '99175onepzqpj\\n',\n", + " '8tmbfpbsninenineglvbh7gnrd\\n',\n", + " 'three8zmtvxqmksfpvkfourp9twooneightzgs\\n',\n", + " 'khmcnch1tb2\\n',\n", + " '5jtcggvdfzmsppshsqlhz\\n',\n", + " '249sixtwofoureight\\n',\n", + " '6sixfourxpnt\\n',\n", + " '6threen\\n',\n", + " '16qmgfjjmqnktnxgz\\n',\n", + " 'kjvbk1zzqhdkgxxghxsix77\\n',\n", + " 'sndnsm1741gtszjkmvxsevennine\\n',\n", + " 'kzlrrrjbtrrgf5jsbgxn\\n',\n", + " '4bnfdfbgthc\\n',\n", + " 'ztghxzrdprvlfx4\\n',\n", + " '54tzqlfjfnthree7twonine\\n',\n", + " 'knqkbts5ffqhdsfpmdeightnfhpjcmfmrl\\n',\n", + " 'jzphxleightjhxvhdrseven5mktwo\\n',\n", + " '1fivegxdknn\\n',\n", + " '3onetpqdddbhb2seven2\\n',\n", + " '7seventhreebzcqpkdck5dc\\n',\n", + " 'seven71\\n',\n", + " 'eighttwo1\\n',\n", + " 'dfflcrcqfiveone2seven6\\n',\n", + " 'qpf8\\n',\n", + " '1seven1bjsmxzr54four5\\n',\n", + " 'mmztpseven836four\\n',\n", + " 'three8htqhzkrxhrfourthreebdrmjsvpfb1\\n',\n", + " 'zjhljpmmdms998ffjqgxgbkdbvxxppdltbrpzcbf\\n',\n", + " 'rj76\\n',\n", + " 'vlxnnqxr4eight\\n',\n", + " '2twoonefourtwosevenpdpfkgdhhzlbfq\\n',\n", + " 'cn5five4\\n',\n", + " 'hhqzsxlm45twonine\\n',\n", + " 'ncszsls1z2\\n',\n", + " 'ktxkkbhcxcbnffzbsix8bf4r\\n',\n", + " 'xrk1bvvrxvkreighttwoeight\\n',\n", + " '4eightqbmtpsl2six\\n',\n", + " '13jzchfndpjpone\\n',\n", + " 'fivefvm1sevenhjxrnkg2bfmdnbj8\\n',\n", + " '9gcfmkhqrczseven7jkshrh\\n',\n", + " 'twornrbjlvsdr1threem\\n',\n", + " 'njzxgftwo4two\\n',\n", + " 'threertvjcmtlr7nxhghbnvkq\\n',\n", + " '6seven8drfivecvv3cr\\n',\n", + " 'fivefiveddnhmz25nine7\\n',\n", + " '2eight4nine47\\n',\n", + " 'nthreetwotwo67\\n',\n", + " '4mbsqbpvf7threedp4fourvvdgkvzfkz\\n',\n", + " 'sixthree1twozxldcqnvdcksfiveseven\\n',\n", + " 'nh2\\n',\n", + " '4rczvpnvsptwo\\n',\n", + " 'foursevenone4\\n',\n", + " '5sixkvsjjqzs32kbghctffhssmg98\\n',\n", + " 'zbclnpj3ncgjrpz6tcgdvjpdmkk1\\n',\n", + " '4mmsbtfivetwodgvbhrzrlh\\n',\n", + " 'sfour2fivefour\\n',\n", + " 'jx9\\n',\n", + " 'xltwone6\\n',\n", + " '1szbglvbcblqtdqrbdqqhbfzrrq4sixfivezfb\\n',\n", + " 'two8klhvgbm97eightfour6\\n',\n", + " 'szslrmeightsz61eighthnhxv1\\n',\n", + " 'seven42sznlgdsdgfj\\n',\n", + " 'three2eight26nine\\n',\n", + " '4sevenfmxrhgkll3fivefjsxninefour\\n',\n", + " 'onenlzksgpz2ggnvsmlxxsvqsix6twodbdzvkbhhl\\n',\n", + " 'mxs62zfsmkgmxzl6nbsix\\n',\n", + " '9sevenlbbt9twonet\\n',\n", + " '32tworbbmnbgqjd\\n',\n", + " 'jrx7mpbcvqfhfr7sixsixkqmcj\\n',\n", + " 'vcdcthreefour5bbqbhxqjkqqzkdk\\n',\n", + " 'onesevenfourhxfvfoursrq4n1\\n',\n", + " 'six1hglqzjxfxxd4\\n',\n", + " '4lkjljr2\\n',\n", + " '3brlmgbpdnpslgcsevenxrrftvzlxc5nine\\n',\n", + " 'czhmhhnrxrbzgtmvn1mbjpnrlsevenbfbztqfp\\n',\n", + " 'xnctftbbm3seveneight9kpkfour\\n',\n", + " 'xsixsixh5three\\n',\n", + " '2lzslqtllcpfdq3\\n',\n", + " 'six2xstqpjctsxgtwo941\\n',\n", + " 'sixthree6\\n',\n", + " '636bmxvvfztzvbrxbfh1four\\n',\n", + " 'h4pcllfnine\\n',\n", + " 'pknldv4jzlkngvqslchstsnfj7sixsevensevenb\\n',\n", + " '78threegfclmstbxt\\n',\n", + " '9three9mnkhrrlbgonethreef1six\\n',\n", + " '2bzslfdpvoneeightthreeone3jpqjk2\\n',\n", + " '1nfjttgvlsn6eight2hznlx\\n',\n", + " '7three7sevenbdngj6threeseven\\n',\n", + " 'one8qdldvhjhrfsixgscfnpvbm2\\n',\n", + " 'mqlhrjksdtbrvrgvpc884ngrddthzjgtjxnjq\\n',\n", + " 'kpndxtponenine97\\n',\n", + " 'vcpsjrxlpfqprxz7threeeight2\\n',\n", + " 'ztgckbfr5twodpznplgl32rfqjhrvhgmkd\\n',\n", + " 'threehfvxnkfhdgmtwo16\\n',\n", + " '6seven36qrndxhxljgkskgtjdtscczz1\\n',\n", + " 'ndcqhqnvtppkfbgljkrd3xfdvqhxkx94\\n',\n", + " 'sixgonebbblkbbqvccnvm2jxpvlnrbmjnsrnqgbb\\n',\n", + " 'sevenmeight2rlvbkxmxfour3nine8\\n',\n", + " '72bcdrcbzffkc3oneightnc\\n',\n", + " 'onesevenfour57\\n',\n", + " 'sixnmplqnfx1eightfour\\n',\n", + " 'nine5bh4eightseven\\n',\n", + " '7gcqthhztknjslxfbcj19\\n',\n", + " 'five2fivethreedbrkgchn8\\n',\n", + " '221565\\n',\n", + " '26three83vmtlj\\n',\n", + " 'nine5threeninezgjcpssevenone\\n',\n", + " 'xshxdblgf8threehxkntrdn6lghpzt9\\n',\n", + " 'fdfqxmn3eight6zssbgnddcv\\n',\n", + " 'eight1hrrqmzjjq\\n',\n", + " 'ckhpqtwodqz9r\\n',\n", + " 'zbtjjffourninesix7bqz\\n',\n", + " 'jeightvfdqttxmsix3pnh5lgf\\n',\n", + " '6onerqbdslg\\n',\n", + " 'fivep26two\\n',\n", + " 'onetwogscnvv1\\n',\n", + " 'eight1487\\n',\n", + " 'threekksixnine6\\n',\n", + " '69sixoneqhhrqsg\\n',\n", + " '8sevenmtcm\\n',\n", + " 'three1jlbfpfdxpqpzspgcllfv\\n',\n", + " '27one\\n',\n", + " 'mlmfourseven3\\n',\n", + " 'sixninercgrkdpd9\\n',\n", + " 'three7kmvsztmxjsixthree3bvhmhthreesdrbq\\n',\n", + " 'mk7\\n',\n", + " 'jstwone8fourkrlmtfk7qjvrghcbfive5\\n',\n", + " 'eightchvxseven9nine252\\n',\n", + " 'five68qoneeight\\n',\n", + " 'seveneightfive2threetckdpkqrnqpthreevlqlq\\n',\n", + " 'jlcpvfxpq867xfcjcddvjkjdfnqtnjp1\\n',\n", + " 'prxzmdmbxbfljckhd7pbc5three\\n',\n", + " '92fninenhnxjlzninenqmhmmlsfqf\\n',\n", + " 'ftmljhqxjdhddkbtxlbz9five\\n',\n", + " 'oneone4cfsnxltqfbnzzljseven\\n',\n", + " 'gbktqjbrtgsevenninexf6seventwonine\\n',\n", + " 'nine3fournine\\n',\n", + " '1fourtwo17seven\\n',\n", + " 'twosixmpnpdzmjxlmjsjdnkmnhmdtdg7xrbknkplsix6\\n',\n", + " 'fqzqxzkgzrlkmqfour53seven2\\n',\n", + " '8three27eight4onekgrlc\\n',\n", + " 'nzrlgrvfive3vdtqcqrm6\\n',\n", + " '4qfgvppninetwoone4\\n',\n", + " 'threelpmgkfxoneseven8threebmjtdl4\\n',\n", + " 'slkrnqlpfxcrgxmnd9one7\\n',\n", + " 'fouronekbfmdrjxvn8kz1twosevenrth\\n',\n", + " '8xbvkfqmzjg\\n',\n", + " 'six4xcx97lzninefivenine\\n',\n", + " 'threesixhfvnjrvpf1sixseveneightfive\\n',\n", + " '8ninethreethreepdlddhdfp\\n',\n", + " 'two47threefour\\n',\n", + " '61czbc4cvklssbpt\\n',\n", + " '8712st2\\n',\n", + " 'lgflr1three\\n',\n", + " 'ninenine9\\n',\n", + " 'ptx86five\\n',\n", + " '291\\n',\n", + " 'seven82three9\\n',\n", + " 'mxfhmtcjpxqqsl68hpcfvjj\\n',\n", + " '1qmvjl6four\\n',\n", + " '3six84\\n',\n", + " 'fivefivefourfiveeight7eightwods\\n',\n", + " '2seven5five2d\\n',\n", + " '6five3hqbjsrzhtkv7\\n',\n", + " '4pgcsxslr6h623\\n',\n", + " 'three8one\\n',\n", + " '8xnsgbjhz9\\n',\n", + " '3gtqbhdzjninetwo6thrfssxqptjbtmkkmlddhdm\\n',\n", + " '6mldxcjnxv9\\n',\n", + " 'mc8one88\\n',\n", + " 'h4\\n',\n", + " 'fivefour2s\\n',\n", + " '9q\\n',\n", + " 'fiveseven8two8lkrtvdqchbvnmzmlhgqbcx\\n',\n", + " 'cpcgpg9cnbsixsix\\n',\n", + " 'vglgjf9qzcspsnsbrktbnpnppzmgldtwo\\n',\n", + " 'three2kllpcvmmgcseven\\n',\n", + " 'twofivekvcnfpkplnv2threefivehvxpthree\\n',\n", + " '36h6hzfhhbtqgqfgthreesix\\n',\n", + " '86kkqqseven9\\n',\n", + " '7jgncdninejvmqdmone5sqjp\\n',\n", + " 'seventhree4eight9three\\n',\n", + " '38knvgxrftdtwo1\\n',\n", + " 'ksgjdlpxhztnlfc6hxncbgbmgzldvlvmgrjkmtwosix\\n',\n", + " 'dtoneightone427\\n',\n", + " '3518msltkgqthvjhs\\n',\n", + " '75qmqvkmf5six\\n',\n", + " '85pvvthreeseven\\n',\n", + " 'ckqoneight4xqqnkdnzpggmxrmhkhx171nineqgd\\n',\n", + " '76nine\\n',\n", + " '6threentcfsvvfseven1eight\\n',\n", + " '23fivetlqdfhxgg312nine\\n',\n", + " '1pjninexlqnthreeoneoneoneightx\\n',\n", + " '6one1\\n',\n", + " 'lfjmdhpj9fiveonelvfivenine\\n',\n", + " '4xjmxfxxfsbxgk9sixhq\\n',\n", + " '8six8vszdsslqntzjqxx8two\\n',\n", + " '4one88995five\\n',\n", + " 'nskmvtzd1five\\n',\n", + " '4tpzxkbfq1vlxpvzbxnhqtshzhfourtwo\\n',\n", + " '7six341gsl77eight\\n',\n", + " '94dvc\\n',\n", + " 'qzkmxqqh6sixvn\\n',\n", + " 'sevenoneone26m8\\n',\n", + " 'ninedtfvl3four15eightjtpfhlzzct9\\n',\n", + " '5ninesixtvvpblfqgb\\n',\n", + " '5twoseven4onedcsqj6\\n',\n", + " 'gcbtzns6eight52ccvvpsbdgfgg\\n',\n", + " 'tczvbfxfvcbfxzvvxp9three\\n',\n", + " 'fourkczgcb9knnpkd3\\n',\n", + " '9ninefive8nine5\\n',\n", + " 'tnkpsxjm7four45bpdg\\n',\n", + " 'twofour1glkvvkq\\n',\n", + " 'fiveeightfive8vbqtsmhjqr5vgbmsxrkh7four\\n',\n", + " 'lhncnxngfour9five\\n',\n", + " '5six36five4\\n',\n", + " '74ckc\\n',\n", + " 'lkeightwol11\\n',\n", + " 'five3mnlbmsg2\\n',\n", + " 'hmvmgnqlhdgonedxmjxxbpbpt1four6zh\\n',\n", + " 'svmmzbbj5\\n',\n", + " '3l4\\n',\n", + " '1dgfnone17\\n',\n", + " '667\\n',\n", + " '1qlcg4seven\\n',\n", + " '756ghcxrmrgtninefivegvmtjhfrj\\n',\n", + " '6twonehjv\\n',\n", + " 'vpgeight7twonlcfcdspmvpcfj6five2\\n',\n", + " '76jhj4sixeight\\n',\n", + " 'vcfrscgccnine6j\\n',\n", + " 'mhm8kfjl33ninefivethree\\n',\n", + " '85bfqjpdmbg92rjbthcrfgvcjzqhpgb\\n',\n", + " 'nine554ltcgj5\\n',\n", + " 'eightfivevjszdqkf96ninemgldmdth1nine\\n',\n", + " 'sixq4pcczfqc\\n',\n", + " 'three7two\\n',\n", + " 'eight9csevenfour\\n',\n", + " 'fpnnxvcttscfrgponefive8twohgfkhbssix\\n',\n", + " 'smkjtzm72vmtleightjmkxkgpfzmjpmbbd\\n',\n", + " '7two1lxvqqzzrvj31fourprzmsdzbf\\n',\n", + " 'kffeightwogzcqpzdbhfvmckxmbhrgvonevcshkbctbc524\\n',\n", + " 'fcsoneightnmtgzbbnflnnlk5two\\n',\n", + " '6gkxbhgzbmltwosrmone1five\\n',\n", + " 'sjrfkfjszsix49\\n',\n", + " '47seven82fourfhhfmlshdsix\\n',\n", + " 'sixhjqszlc6kzzbqsldk\\n',\n", + " 'nineptfourrvrghq7\\n',\n", + " '4four5one148jcbvnbj6\\n',\n", + " 'ninezfcrvxfnjd6nine\\n',\n", + " 'bfjfbpfseven7\\n',\n", + " 'bdzmktwo4fourkrjj3\\n',\n", + " 'nhnfv725\\n',\n", + " 'sixeightsixkkndrj7\\n',\n", + " 'eightone2m246\\n',\n", + " 'fourhsbdblm74fourcphtwo\\n',\n", + " 'khrjxxrltbpngsmzndgsjmzvgqxfhvkct6eightzrvpmpcc3\\n',\n", + " 'mlsc4qnlhqjfour\\n',\n", + " '956onefive\\n',\n", + " '1xtmbmkscvv2onefivelvlztjtctz5eightnine\\n',\n", + " '32tmphhjnlfsixskninekjdcftm\\n',\n", + " 'krgp1hdhgvgpgbvbxgfngvktwo\\n',\n", + " 'klpnpcplfhlztjgv17six\\n',\n", + " '5dsxngmpdvjhnlbhxmp7xqqtgdoneightdvm\\n',\n", + " 'threeeight3t\\n',\n", + " '5fourlpqzq2two1oneqlq\\n',\n", + " 'eightfivesixnineeightfour1\\n',\n", + " '52ppqztdggqgtphdfz4fkrkfztzzqldpg\\n',\n", + " 'seven7zbone\\n',\n", + " 'xg79onef6eighteight\\n',\n", + " 'three6nvhnqeightgkttsvtwofive9\\n',\n", + " 'rjsevenonefllcrdnbmqcmxqsq38\\n',\n", + " 'twoseven2dppxgmlhr61onenine4\\n',\n", + " 'sevenb3btzhscqbrxxjkhtzpv\\n',\n", + " '859two\\n',\n", + " 'threetllmjmhdjr18two\\n',\n", + " '94tmvfpzmgvzsm1fmbhkhzffkzllx\\n',\n", + " 'nlkndffq2three\\n',\n", + " '6ninemfour8rbxvj6\\n',\n", + " '7clxtxrt1lqg5\\n',\n", + " 'onefivegjnfzkvg9\\n',\n", + " 'fplrvmqjdfxvjdfivesix6rpnkfour\\n',\n", + " '5fivetwoxdgchbjjrckntlgblsxlcznfd\\n',\n", + " 'eight7fourfour\\n',\n", + " '3kmtjlfbgssixmspkfzrgxtctksix4onetwones\\n',\n", + " '8five15sixthreeljsfive\\n',\n", + " '9lnn\\n',\n", + " 'nine7pzrxnnkthreesdjxphsrf4hc8\\n',\n", + " 'three6115nqhllcmpmzcfour\\n',\n", + " 'vpqjnvmltx8fivefive\\n',\n", + " 'vrlqlj5fivesixninebqhgcpgmgkmflvn\\n',\n", + " '76eighteight7\\n',\n", + " '8qkmnsjxbfhcpsvn4\\n',\n", + " 'oneninexqdseven4threefive\\n',\n", + " 'rpcvmnng162fivesixseven\\n',\n", + " '31628eightthree\\n',\n", + " '83d6fsfqdghztwo7bmvrlh\\n',\n", + " 'gknfcdqlrs25\\n',\n", + " '9gkkth2ps\\n',\n", + " 'bxnvsjxqleight9ninenine\\n',\n", + " 'rsmcrqlnhsmjhspseven96vsckknrggbjd4tgtgbkxgvt\\n',\n", + " '8seveneightcxrh\\n',\n", + " 'tkmfour8fivevl9one\\n',\n", + " '8mgrxk\\n',\n", + " 'fourbgckqkeight6f\\n',\n", + " 'threetwo3eight652pp\\n',\n", + " 'ninefivetwojbhglxfxzfctwo8\\n',\n", + " 'jmjtcvpsxzdbkbqthree1qmgznpbzlthree4six1\\n',\n", + " 'foursix5\\n',\n", + " '6nbdzdlmqpdlgpcclc\\n',\n", + " '24\\n',\n", + " 'pseven3threeeightseven\\n',\n", + " '7nine7gjdksbtqrrdsr\\n',\n", + " '5ppflb48tkcffone8six\\n',\n", + " 'five2two7hstbbqzrninegbtwo2\\n',\n", + " 'eightfblzpmhs4\\n',\n", + " 'fbbdeightzzsdffh8jbjzxkclj\\n',\n", + " '3nine6five1\\n']" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[57,\n", + " 61,\n", + " 27,\n", + " 22,\n", + " 99,\n", + " 73,\n", + " 22,\n", + " 65,\n", + " 11,\n", + " 43,\n", + " 83,\n", + " 44,\n", + " 41,\n", + " 55,\n", + " 12,\n", + " 19,\n", + " 33,\n", + " 66,\n", + " 55,\n", + " 41,\n", + " 44,\n", + " 49,\n", + " 45,\n", + " 93,\n", + " 44,\n", + " 11,\n", + " 55,\n", + " 57,\n", + " 77,\n", + " 71,\n", + " 88,\n", + " 11,\n", + " 99,\n", + " 79,\n", + " 11,\n", + " 88,\n", + " 22,\n", + " 44,\n", + " 15,\n", + " 74,\n", + " 22,\n", + " 44,\n", + " 33,\n", + " 24,\n", + " 65,\n", + " 77,\n", + " 37,\n", + " 52,\n", + " 33,\n", + " 17,\n", + " 59,\n", + " 23,\n", + " 54,\n", + " 44,\n", + " 99,\n", + " 85,\n", + " 77,\n", + " 33,\n", + " 22,\n", + " 11,\n", + " 17,\n", + " 11,\n", + " 66,\n", + " 66,\n", + " 27,\n", + " 88,\n", + " 11,\n", + " 11,\n", + " 53,\n", + " 88,\n", + " 77,\n", + " 76,\n", + " 47,\n", + " 26,\n", + " 14,\n", + " 28,\n", + " 15,\n", + " 66,\n", + " 58,\n", + " 99,\n", + " 55,\n", + " 84,\n", + " 55,\n", + " 58,\n", + " 99,\n", + " 66,\n", + " 99,\n", + " 38,\n", + " 45,\n", + " 33,\n", + " 27,\n", + " 53,\n", + " 66,\n", + " 44,\n", + " 36,\n", + " 98,\n", + " 57,\n", + " 44,\n", + " 42,\n", + " 77,\n", + " 87,\n", + " 11,\n", + " 12,\n", + " 33,\n", + " 44,\n", + " 77,\n", + " 77,\n", + " 57,\n", + " 48,\n", + " 26,\n", + " 31,\n", + " 46,\n", + " 68,\n", + " 72,\n", + " 57,\n", + " 16,\n", + " 77,\n", + " 66,\n", + " 33,\n", + " 13,\n", + " 66,\n", + " 77,\n", + " 77,\n", + " 88,\n", + " 79,\n", + " 55,\n", + " 33,\n", + " 72,\n", + " 11,\n", + " 33,\n", + " 29,\n", + " 66,\n", + " 76,\n", + " 49,\n", + " 92,\n", + " 99,\n", + " 33,\n", + " 99,\n", + " 66,\n", + " 64,\n", + " 49,\n", + " 38,\n", + " 22,\n", + " 11,\n", + " 45,\n", + " 34,\n", + " 95,\n", + " 88,\n", + " 53,\n", + " 99,\n", + " 24,\n", + " 44,\n", + " 32,\n", + " 52,\n", + " 36,\n", + " 95,\n", + " 89,\n", + " 99,\n", + " 89,\n", + " 88,\n", + " 44,\n", + " 22,\n", + " 67,\n", + " 77,\n", + " 79,\n", + " 33,\n", + " 45,\n", + " 11,\n", + " 65,\n", + " 11,\n", + " 88,\n", + " 67,\n", + " 77,\n", + " 82,\n", + " 72,\n", + " 11,\n", + " 99,\n", + " 38,\n", + " 99,\n", + " 11,\n", + " 23,\n", + " 77,\n", + " 59,\n", + " 55,\n", + " 88,\n", + " 36,\n", + " 33,\n", + " 29,\n", + " 43,\n", + " 17,\n", + " 77,\n", + " 55,\n", + " 58,\n", + " 77,\n", + " 38,\n", + " 44,\n", + " 34,\n", + " 75,\n", + " 57,\n", + " 68,\n", + " 11,\n", + " 88,\n", + " 81,\n", + " 66,\n", + " 22,\n", + " 98,\n", + " 66,\n", + " 75,\n", + " 11,\n", + " 29,\n", + " 11,\n", + " 88,\n", + " 11,\n", + " 33,\n", + " 13,\n", + " 31,\n", + " 62,\n", + " 71,\n", + " 33,\n", + " 24,\n", + " 42,\n", + " 99,\n", + " 44,\n", + " 83,\n", + " 99,\n", + " 33,\n", + " 22,\n", + " 82,\n", + " 77,\n", + " 96,\n", + " 14,\n", + " 96,\n", + " 53,\n", + " 77,\n", + " 47,\n", + " 57,\n", + " 55,\n", + " 78,\n", + " 77,\n", + " 46,\n", + " 99,\n", + " 84,\n", + " 11,\n", + " 38,\n", + " 27,\n", + " 64,\n", + " 22,\n", + " 81,\n", + " 65,\n", + " 62,\n", + " 49,\n", + " 57,\n", + " 55,\n", + " 11,\n", + " 44,\n", + " 11,\n", + " 25,\n", + " 98,\n", + " 44,\n", + " 73,\n", + " 44,\n", + " 65,\n", + " 22,\n", + " 66,\n", + " 38,\n", + " 44,\n", + " 36,\n", + " 99,\n", + " 45,\n", + " 18,\n", + " 85,\n", + " 66,\n", + " 96,\n", + " 91,\n", + " 52,\n", + " 28,\n", + " 99,\n", + " 99,\n", + " 72,\n", + " 53,\n", + " 75,\n", + " 11,\n", + " 49,\n", + " 14,\n", + " 74,\n", + " 44,\n", + " 35,\n", + " 77,\n", + " 22,\n", + " 84,\n", + " 63,\n", + " 15,\n", + " 57,\n", + " 73,\n", + " 55,\n", + " 78,\n", + " 41,\n", + " 54,\n", + " 11,\n", + " 36,\n", + " 75,\n", + " 17,\n", + " 99,\n", + " 55,\n", + " 82,\n", + " 91,\n", + " 49,\n", + " 37,\n", + " 44,\n", + " 57,\n", + " 44,\n", + " 85,\n", + " 22,\n", + " 81,\n", + " 77,\n", + " 88,\n", + " 29,\n", + " 59,\n", + " 43,\n", + " 82,\n", + " 38,\n", + " 46,\n", + " 56,\n", + " 53,\n", + " 77,\n", + " 74,\n", + " 78,\n", + " 21,\n", + " 99,\n", + " 52,\n", + " 22,\n", + " 65,\n", + " 37,\n", + " 66,\n", + " 66,\n", + " 58,\n", + " 39,\n", + " 75,\n", + " 38,\n", + " 93,\n", + " 71,\n", + " 18,\n", + " 22,\n", + " 44,\n", + " 44,\n", + " 69,\n", + " 44,\n", + " 16,\n", + " 66,\n", + " 35,\n", + " 88,\n", + " 12,\n", + " 73,\n", + " 19,\n", + " 33,\n", + " 11,\n", + " 92,\n", + " 99,\n", + " 59,\n", + " 11,\n", + " 45,\n", + " 45,\n", + " 39,\n", + " 46,\n", + " 98,\n", + " 12,\n", + " 75,\n", + " 63,\n", + " 43,\n", + " 17,\n", + " 47,\n", + " 52,\n", + " 89,\n", + " 13,\n", + " 83,\n", + " 69,\n", + " 44,\n", + " 55,\n", + " 66,\n", + " 28,\n", + " 21,\n", + " 61,\n", + " 19,\n", + " 77,\n", + " 22,\n", + " 44,\n", + " 63,\n", + " 44,\n", + " 84,\n", + " 64,\n", + " 99,\n", + " 54,\n", + " 49,\n", + " 55,\n", + " 83,\n", + " 39,\n", + " 88,\n", + " 33,\n", + " 22,\n", + " 77,\n", + " 66,\n", + " 82,\n", + " 75,\n", + " 22,\n", + " 29,\n", + " 11,\n", + " 33,\n", + " 66,\n", + " 18,\n", + " 88,\n", + " 18,\n", + " 33,\n", + " 29,\n", + " 13,\n", + " 34,\n", + " 88,\n", + " 11,\n", + " 26,\n", + " 77,\n", + " 99,\n", + " 45,\n", + " 21,\n", + " 99,\n", + " 33,\n", + " 64,\n", + " 31,\n", + " 16,\n", + " 11,\n", + " 19,\n", + " 11,\n", + " 41,\n", + " 77,\n", + " 88,\n", + " 45,\n", + " 33,\n", + " 15,\n", + " 87,\n", + " 44,\n", + " 26,\n", + " 48,\n", + " 34,\n", + " 11,\n", + " 21,\n", + " 11,\n", + " 41,\n", + " 67,\n", + " 58,\n", + " 66,\n", + " 29,\n", + " 61,\n", + " 11,\n", + " 22,\n", + " 31,\n", + " 85,\n", + " 66,\n", + " 83,\n", + " 55,\n", + " 77,\n", + " 95,\n", + " 84,\n", + " 64,\n", + " 12,\n", + " 78,\n", + " 15,\n", + " 66,\n", + " 55,\n", + " 25,\n", + " 16,\n", + " 55,\n", + " 22,\n", + " 66,\n", + " 45,\n", + " 61,\n", + " 93,\n", + " 55,\n", + " 66,\n", + " 36,\n", + " 64,\n", + " 37,\n", + " 58,\n", + " 45,\n", + " 78,\n", + " 33,\n", + " 44,\n", + " 55,\n", + " 44,\n", + " 33,\n", + " 34,\n", + " 67,\n", + " 66,\n", + " 21,\n", + " 44,\n", + " 11,\n", + " 33,\n", + " 11,\n", + " 33,\n", + " 88,\n", + " 33,\n", + " 22,\n", + " 66,\n", + " 55,\n", + " 83,\n", + " 26,\n", + " 44,\n", + " 47,\n", + " 99,\n", + " 58,\n", + " 22,\n", + " 91,\n", + " 31,\n", + " 23,\n", + " 55,\n", + " 96,\n", + " 35,\n", + " 99,\n", + " 64,\n", + " 42,\n", + " 25,\n", + " 15,\n", + " 18,\n", + " 11,\n", + " 22,\n", + " 99,\n", + " 99,\n", + " 22,\n", + " 66,\n", + " 82,\n", + " 16,\n", + " 66,\n", + " 33,\n", + " 62,\n", + " 13,\n", + " 41,\n", + " 72,\n", + " 33,\n", + " 34,\n", + " 54,\n", + " 65,\n", + " 85,\n", + " 44,\n", + " 32,\n", + " 11,\n", + " 77,\n", + " 27,\n", + " 41,\n", + " 77,\n", + " 38,\n", + " 41,\n", + " 44,\n", + " 82,\n", + " 77,\n", + " 18,\n", + " 55,\n", + " 33,\n", + " 39,\n", + " 87,\n", + " 13,\n", + " 72,\n", + " 97,\n", + " 55,\n", + " 59,\n", + " 77,\n", + " 66,\n", + " 69,\n", + " 99,\n", + " 22,\n", + " 83,\n", + " 19,\n", + " 27,\n", + " 27,\n", + " 86,\n", + " 19,\n", + " 88,\n", + " 55,\n", + " 99,\n", + " 89,\n", + " 99,\n", + " 14,\n", + " 22,\n", + " 32,\n", + " 62,\n", + " 86,\n", + " 35,\n", + " 64,\n", + " 23,\n", + " 19,\n", + " 16,\n", + " 44,\n", + " 55,\n", + " 16,\n", + " 44,\n", + " 88,\n", + " 61,\n", + " 34,\n", + " 99,\n", + " 99,\n", + " 66,\n", + " 19,\n", + " 79,\n", + " 72,\n", + " 11,\n", + " 11,\n", + " 59,\n", + " 66,\n", + " 13,\n", + " 26,\n", + " 54,\n", + " 66,\n", + " 56,\n", + " 31,\n", + " 99,\n", + " 66,\n", + " 44,\n", + " 86,\n", + " 95,\n", + " 66,\n", + " 61,\n", + " 77,\n", + " 22,\n", + " 55,\n", + " 61,\n", + " 46,\n", + " 77,\n", + " 31,\n", + " 11,\n", + " 94,\n", + " 28,\n", + " 89,\n", + " 59,\n", + " 91,\n", + " 36,\n", + " 18,\n", + " 88,\n", + " 33,\n", + " 11,\n", + " 64,\n", + " 49,\n", + " 75,\n", + " 68,\n", + " 11,\n", + " 11,\n", + " 13,\n", + " 22,\n", + " 74,\n", + " 11,\n", + " 99,\n", + " 55,\n", + " 88,\n", + " 88,\n", + " 92,\n", + " 11,\n", + " 55,\n", + " 73,\n", + " 43,\n", + " 88,\n", + " 38,\n", + " 91,\n", + " 23,\n", + " 64,\n", + " 45,\n", + " 22,\n", + " 78,\n", + " 93,\n", + " 59,\n", + " 99,\n", + " 99,\n", + " 67,\n", + " 99,\n", + " 73,\n", + " 14,\n", + " 44,\n", + " 22,\n", + " 29,\n", + " 18,\n", + " 63,\n", + " 36,\n", + " 74,\n", + " 21,\n", + " 49,\n", + " 81,\n", + " 33,\n", + " 72,\n", + " 52,\n", + " 95,\n", + " 87,\n", + " 89,\n", + " 12,\n", + " 55,\n", + " 29,\n", + " 66,\n", + " 66,\n", + " 16,\n", + " 17,\n", + " 11,\n", + " 55,\n", + " 44,\n", + " 44,\n", + " 57,\n", + " 55,\n", + " 55,\n", + " 11,\n", + " 32,\n", + " 75,\n", + " 71,\n", + " 11,\n", + " 26,\n", + " 88,\n", + " 15,\n", + " 86,\n", + " 81,\n", + " 98,\n", + " 76,\n", + " 44,\n", + " 22,\n", + " 54,\n", + " 45,\n", + " 12,\n", + " 84,\n", + " 11,\n", + " 42,\n", + " 13,\n", + " 18,\n", + " 97,\n", + " 11,\n", + " 44,\n", + " 77,\n", + " 63,\n", + " 27,\n", + " 27,\n", + " 67,\n", + " 44,\n", + " 11,\n", + " 22,\n", + " 44,\n", + " 44,\n", + " 58,\n", + " 31,\n", + " 44,\n", + " 22,\n", + " 99,\n", + " 66,\n", + " 14,\n", + " 86,\n", + " 61,\n", + " 42,\n", + " 26,\n", + " 43,\n", + " 26,\n", + " 66,\n", + " 99,\n", + " 32,\n", + " 77,\n", + " 55,\n", + " 41,\n", + " 14,\n", + " 42,\n", + " 35,\n", + " 11,\n", + " 39,\n", + " 55,\n", + " 23,\n", + " 21,\n", + " 66,\n", + " 61,\n", + " 44,\n", + " 47,\n", + " 78,\n", + " 91,\n", + " 22,\n", + " 12,\n", + " 76,\n", + " 82,\n", + " 84,\n", + " 97,\n", + " 72,\n", + " 52,\n", + " 16,\n", + " 61,\n", + " 34,\n", + " 22,\n", + " 28,\n", + " 73,\n", + " 57,\n", + " 11,\n", + " 54,\n", + " 79,\n", + " 28,\n", + " 25,\n", + " 23,\n", + " 55,\n", + " 89,\n", + " 36,\n", + " 11,\n", + " 99,\n", + " 77,\n", + " 35,\n", + " 66,\n", + " 26,\n", + " 11,\n", + " 17,\n", + " 66,\n", + " 69,\n", + " 88,\n", + " 11,\n", + " 27,\n", + " 33,\n", + " 99,\n", + " 73,\n", + " 77,\n", + " 85,\n", + " 92,\n", + " 68,\n", + " 22,\n", + " 81,\n", + " 75,\n", + " 92,\n", + " 99,\n", + " 44,\n", + " 66,\n", + " 33,\n", + " 17,\n", + " 76,\n", + " 52,\n", + " 84,\n", + " 36,\n", + " 44,\n", + " 84,\n", + " 97,\n", + " 81,\n", + " 88,\n", + " 47,\n", + " 11,\n", + " 88,\n", + " 47,\n", + " 64,\n", + " 82,\n", + " 11,\n", + " 99,\n", + " 86,\n", + " 21,\n", + " 89,\n", + " 68,\n", + " 16,\n", + " 34,\n", + " 77,\n", + " 22,\n", + " 67,\n", + " 43,\n", + " 88,\n", + " 89,\n", + " 36,\n", + " 69,\n", + " 88,\n", + " 44,\n", + " 22,\n", + " 99,\n", + " 88,\n", + " 99,\n", + " 99,\n", + " 22,\n", + " 22,\n", + " 36,\n", + " 89,\n", + " 75,\n", + " 49,\n", + " 31,\n", + " 66,\n", + " 47,\n", + " 38,\n", + " 75,\n", + " 85,\n", + " 41,\n", + " 76,\n", + " 61,\n", + " 22,\n", + " 11,\n", + " 61,\n", + " 99,\n", + " 49,\n", + " 88,\n", + " 45,\n", + " 11,\n", + " 41,\n", + " 77,\n", + " 94,\n", + " 66,\n", + " 28,\n", + " 39,\n", + " 55,\n", + " 56,\n", + " 62,\n", + " 99,\n", + " 93,\n", + " 95,\n", + " 75,\n", + " 11,\n", + " 87,\n", + " 99,\n", + " 54,\n", + " 74,\n", + " 11,\n", + " 32,\n", + " 16,\n", + " 55,\n", + " 34,\n", + " 17,\n", + " 67,\n", + " 14,\n", + " 76,\n", + " 66,\n", + " 72,\n", + " 74,\n", + " 66,\n", + " 83,\n", + " 82,\n", + " 55,\n", + " 91,\n", + " 44,\n", + " 77,\n", + " 99,\n", + " 88,\n", + " 72,\n", + " 71,\n", + " 54,\n", + " 55,\n", + " 61,\n", + " 49,\n", + " 42,\n", + " 66,\n", + " 77,\n", + " 46,\n", + " 66,\n", + " 77,\n", + " 43,\n", + " 75,\n", + " 77,\n", + " 26,\n", + " 74,\n", + " 63,\n", + " 44,\n", + " 96,\n", + " 15,\n", + " 32,\n", + " 11,\n", + " 17,\n", + " 57,\n", + " 33,\n", + " 51,\n", + " 11,\n", + " 54,\n", + " 77,\n", + " 76,\n", + " 69,\n", + " 38,\n", + " 24,\n", + " 33,\n", + " 89,\n", + " 18,\n", + " 91,\n", + " 22,\n", + " 66,\n", + " 75,\n", + " 99,\n", + " 66,\n", + " 55,\n", + " 77,\n", + " 34,\n", + " 85,\n", + " 99,\n", + " 78,\n", + " 65,\n", + " 88,\n", + " 55,\n", + " 77,\n", + " 84,\n", + " 44,\n", + " 12,\n", + " 38,\n", + " 87,\n", + " 25,\n", + " 92,\n", + " 99,\n", + " 94,\n", + " 88,\n", + " 89,\n", + " 88,\n", + " 66,\n", + " 32,\n", + " 88,\n", + " 11,\n", + " 55,\n", + " 66,\n", + " 24,\n", + " 33,\n", + " 77,\n", + " 58,\n", + " 22,\n", + " 44,\n", + " 88,\n", + " 31]" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import re\n", + "\n", + "first = re.compile(r'''^\\D*(\\d).*''')\n", + "last = re.compile(r'''.*(\\d)\\D*$''')\n", + "char_matches = [(first.match(line),last.match(line)) for line in data]\n", + "chars = [\"\".join(left.groups()+right.groups()) for (left,right) in char_matches if left and right]\n", + "numbers = [int(x) for x in chars]\n", + "numbers" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "53386" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sum(numbers)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('5', '7'),\n", + " ('6', '1'),\n", + " ('2', '7'),\n", + " ('2', 'five'),\n", + " ('9', 'two'),\n", + " ('7', 'one'),\n", + " ('2', '2'),\n", + " ('6', '5'),\n", + " ('1', 'seven'),\n", + " ('4', '3'),\n", + " ('8', '3'),\n", + " ('4', '4'),\n", + " ('4', '1'),\n", + " ('5', 'four'),\n", + " ('1', 'three'),\n", + " ('1', '9'),\n", + " ('3', '3'),\n", + " ('6', '6'),\n", + " ('5', 'two'),\n", + " ('4', '1'),\n", + " ('4', 'three'),\n", + " ('4', '9'),\n", + " ('4', '5'),\n", + " ('9', '3'),\n", + " ('4', 'two'),\n", + " ('1', 'eight'),\n", + " ('5', '5'),\n", + " ('5', '7'),\n", + " ('7', '7'),\n", + " ('7', 'eight'),\n", + " ('8', '8'),\n", + " ('1', '1'),\n", + " ('9', '9'),\n", + " ('7', '9'),\n", + " ('1', '1'),\n", + " ('8', 'four'),\n", + " ('2', '2'),\n", + " ('4', 'eight'),\n", + " ('1', 'one'),\n", + " ('7', 'six'),\n", + " ('2', 'two'),\n", + " ('4', '4'),\n", + " ('3', 'eight'),\n", + " ('2', '4'),\n", + " ('6', '5'),\n", + " ('7', '7'),\n", + " ('3', '7'),\n", + " ('5', '2'),\n", + " ('3', 'six'),\n", + " ('1', 'four'),\n", + " ('5', '9'),\n", + " ('2', 'five'),\n", + " ('5', 'two'),\n", + " ('4', '4'),\n", + " ('9', 'two'),\n", + " ('8', 'three'),\n", + " ('7', 'nine'),\n", + " ('3', '3'),\n", + " ('2', '2'),\n", + " ('1', 'nine'),\n", + " ('1', 'seven'),\n", + " ('1', '1'),\n", + " ('6', '6'),\n", + " ('6', '6'),\n", + " ('2', 'eight'),\n", + " ('8', 'five'),\n", + " ('1', '1'),\n", + " ('1', '1'),\n", + " ('5', '3'),\n", + " ('8', '8'),\n", + " ('7', 'four'),\n", + " ('7', '6'),\n", + " ('4', 'six'),\n", + " ('2', '6'),\n", + " ('1', 'four'),\n", + " ('2', 'three'),\n", + " ('1', 'seven'),\n", + " ('6', '6'),\n", + " ('5', '8'),\n", + " ('9', '9'),\n", + " ('5', '5'),\n", + " ('8', '4'),\n", + " ('5', '5'),\n", + " ('5', '8'),\n", + " ('9', '9'),\n", + " ('6', 'four'),\n", + " ('9', 'four'),\n", + " ('3', 'one'),\n", + " ('4', '5'),\n", + " ('3', '3'),\n", + " ('2', '7'),\n", + " ('5', '3'),\n", + " ('6', 'one'),\n", + " ('4', 'seven'),\n", + " ('3', 'eight'),\n", + " ('9', '8'),\n", + " ('5', '7'),\n", + " ('4', '4'),\n", + " ('4', '2'),\n", + " ('7', '7'),\n", + " ('8', 'three'),\n", + " ('1', '1'),\n", + " ('1', '2'),\n", + " ('3', 'six'),\n", + " ('4', '4'),\n", + " ('7', '7'),\n", + " ('7', '7'),\n", + " ('5', 'three'),\n", + " ('4', '8'),\n", + " ('2', '6'),\n", + " ('3', '1'),\n", + " ('4', '6'),\n", + " ('6', '8'),\n", + " ('7', 'four'),\n", + " ('5', 'one'),\n", + " ('1', 'five'),\n", + " ('7', '7'),\n", + " ('6', 'two'),\n", + " ('3', '3'),\n", + " ('1', '3'),\n", + " ('6', '6'),\n", + " ('7', 'nine'),\n", + " ('7', '7'),\n", + " ('8', '8'),\n", + " ('7', '9'),\n", + " ('5', '5'),\n", + " ('3', '3'),\n", + " ('7', '2'),\n", + " ('1', 'two'),\n", + " ('3', '3'),\n", + " ('2', 'seven'),\n", + " ('6', 'five'),\n", + " ('7', '6'),\n", + " ('4', '9'),\n", + " ('9', '2'),\n", + " ('9', 'four'),\n", + " ('3', '3'),\n", + " ('9', 'two'),\n", + " ('6', '6'),\n", + " ('6', 'four'),\n", + " ('4', 'nine'),\n", + " ('3', 'eight'),\n", + " ('2', '2'),\n", + " ('1', '1'),\n", + " ('4', '5'),\n", + " ('3', '4'),\n", + " ('9', '5'),\n", + " ('8', '8'),\n", + " ('5', '3'),\n", + " ('9', 'four'),\n", + " ('2', '4'),\n", + " ('4', 'six'),\n", + " ('3', '2'),\n", + " ('5', '2'),\n", + " ('3', '6'),\n", + " ('9', 'nine'),\n", + " ('8', '9'),\n", + " ('9', '9'),\n", + " ('8', '9'),\n", + " ('8', '8'),\n", + " ('4', 'two'),\n", + " ('2', 'three'),\n", + " ('6', '7'),\n", + " ('7', 'two'),\n", + " ('7', 'eight'),\n", + " ('3', 'three'),\n", + " ('4', '5'),\n", + " ('1', '1'),\n", + " ('6', 'nine'),\n", + " ('1', 'four'),\n", + " ('8', 'four'),\n", + " ('6', 'one'),\n", + " ('7', '7'),\n", + " ('8', '2'),\n", + " ('7', '2'),\n", + " ('1', '1'),\n", + " ('9', 'two'),\n", + " ('3', 'seven'),\n", + " ('9', '9'),\n", + " ('1', 'three'),\n", + " ('2', 'two'),\n", + " ('7', 'two'),\n", + " ('5', '9'),\n", + " ('5', 'eight'),\n", + " ('8', '8'),\n", + " ('3', 'one'),\n", + " ('3', '3'),\n", + " ('2', 'eight'),\n", + " ('4', '3'),\n", + " ('1', '7'),\n", + " ('7', 'nine'),\n", + " ('5', 'seven'),\n", + " ('5', '8'),\n", + " ('7', '7'),\n", + " ('3', 'two'),\n", + " ('4', 'four'),\n", + " ('3', 'two'),\n", + " ('7', 'three'),\n", + " ('5', '7'),\n", + " ('6', '8'),\n", + " ('1', 'three'),\n", + " ('8', 'eight'),\n", + " ('8', 'two'),\n", + " ('6', 'nine'),\n", + " ('2', '2'),\n", + " ('9', '8'),\n", + " ('6', 'five'),\n", + " ('7', 'nine'),\n", + " ('1', 'eight'),\n", + " ('2', 'eight'),\n", + " ('1', 'one'),\n", + " ('8', '8'),\n", + " ('1', '1'),\n", + " ('3', '3'),\n", + " ('1', 'nine'),\n", + " ('3', 'one'),\n", + " ('6', '2'),\n", + " ('7', '1'),\n", + " ('3', 'two'),\n", + " ('2', '4'),\n", + " ('4', '2'),\n", + " ('9', 'one'),\n", + " ('4', 'two'),\n", + " ('8', 'six'),\n", + " ('9', 'five'),\n", + " ('3', '3'),\n", + " ('2', 'three'),\n", + " ('8', 'five'),\n", + " ('7', 'seven'),\n", + " ('9', 'four'),\n", + " ('1', '4'),\n", + " ('9', 'three'),\n", + " ('5', 'one'),\n", + " ('7', '7'),\n", + " ('4', '7'),\n", + " ('5', 'one'),\n", + " ('5', 'seven'),\n", + " ('7', '8'),\n", + " ('7', 'seven'),\n", + " ('4', '6'),\n", + " ('9', '9'),\n", + " ('8', '4'),\n", + " ('1', 'three'),\n", + " ('3', '8'),\n", + " ('2', '7'),\n", + " ('6', '4'),\n", + " ('2', 'five'),\n", + " ('8', 'five'),\n", + " ('6', '5'),\n", + " ('6', '2'),\n", + " ('4', '9'),\n", + " ('5', '7'),\n", + " ('5', 'one'),\n", + " ('1', '1'),\n", + " ('4', '4'),\n", + " ('1', '1'),\n", + " ('2', '5'),\n", + " ('9', '8'),\n", + " ('4', '4'),\n", + " ('7', '3'),\n", + " ('4', 'eight'),\n", + " ('6', '5'),\n", + " ('2', '2'),\n", + " ('6', 'four'),\n", + " ('3', 'six'),\n", + " ('4', 'five'),\n", + " ('3', '6'),\n", + " ('9', '9'),\n", + " ('4', '5'),\n", + " ('1', 'one'),\n", + " ('8', '5'),\n", + " ('6', '6'),\n", + " ('9', 'three'),\n", + " ('9', 'one'),\n", + " ('5', 'three'),\n", + " ('2', '8'),\n", + " ('9', '9'),\n", + " ('9', '9'),\n", + " ('7', 'six'),\n", + " ('5', '3'),\n", + " ('7', 'five'),\n", + " ('1', 'three'),\n", + " ('4', 'five'),\n", + " ('1', '4'),\n", + " ('7', '4'),\n", + " ('4', 'two'),\n", + " ('3', '5'),\n", + " ('7', 'three'),\n", + " ('2', 'one'),\n", + " ('8', 'eight'),\n", + " ('6', '3'),\n", + " ('1', '5'),\n", + " ('5', '7'),\n", + " ('7', 'seven'),\n", + " ('5', 'four'),\n", + " ('7', '8'),\n", + " ('4', 'nine'),\n", + " ('5', '4'),\n", + " ('1', '1'),\n", + " ('3', 'seven'),\n", + " ('7', '5'),\n", + " ('1', '7'),\n", + " ('9', 'one'),\n", + " ('5', 'six'),\n", + " ('8', '2'),\n", + " ('9', 'eight'),\n", + " ('4', 'one'),\n", + " ('3', 'two'),\n", + " ('4', '4'),\n", + " ('5', '7'),\n", + " ('4', 'one'),\n", + " ('8', '5'),\n", + " ('2', '2'),\n", + " ('8', '1'),\n", + " ('7', 'four'),\n", + " ('8', '8'),\n", + " ('2', 'three'),\n", + " ('5', 'two'),\n", + " ('4', '3'),\n", + " ('8', '2'),\n", + " ('3', '8'),\n", + " ('4', 'eight'),\n", + " ('5', '6'),\n", + " ('5', 'eight'),\n", + " ('7', '7'),\n", + " ('7', 'nine'),\n", + " ('7', '8'),\n", + " ('2', 'one'),\n", + " ('9', 'two'),\n", + " ('5', '2'),\n", + " ('2', '2'),\n", + " ('6', '5'),\n", + " ('3', '7'),\n", + " ('6', 'nine'),\n", + " ('6', '6'),\n", + " ('5', '8'),\n", + " ('3', '9'),\n", + " ('7', '5'),\n", + " ('3', 'two'),\n", + " ('9', '3'),\n", + " ('7', '1'),\n", + " ('1', 'nine'),\n", + " ('2', '2'),\n", + " ('4', 'five'),\n", + " ('4', '4'),\n", + " ('6', '9'),\n", + " ('4', 'one'),\n", + " ('1', '6'),\n", + " ('6', 'nine'),\n", + " ('3', '5'),\n", + " ('8', 'five'),\n", + " ('1', 'six'),\n", + " ('7', '3'),\n", + " ('1', '9'),\n", + " ('3', '3'),\n", + " ('1', 'two'),\n", + " ('9', '2'),\n", + " ('9', '9'),\n", + " ('5', 'seven'),\n", + " ('1', 'four'),\n", + " ('4', '5'),\n", + " ('4', '5'),\n", + " ('3', '9'),\n", + " ('4', '6'),\n", + " ('9', '8'),\n", + " ('1', 'eight'),\n", + " ('7', '5'),\n", + " ('6', '3'),\n", + " ('4', '3'),\n", + " ('1', 'two'),\n", + " ('4', 'seven'),\n", + " ('5', '2'),\n", + " ('8', '9'),\n", + " ('1', '3'),\n", + " ('8', '3'),\n", + " ('6', '9'),\n", + " ('4', '4'),\n", + " ('5', 'eight'),\n", + " ('6', '6'),\n", + " ('2', '8'),\n", + " ('2', 'nine'),\n", + " ('6', '1'),\n", + " ('1', '9'),\n", + " ('7', 'eight'),\n", + " ('2', '2'),\n", + " ('4', 'four'),\n", + " ('6', 'seven'),\n", + " ('4', '4'),\n", + " ('8', '4'),\n", + " ('6', '4'),\n", + " ('9', 'nine'),\n", + " ('5', 'one'),\n", + " ('4', 'nine'),\n", + " ('5', '5'),\n", + " ('8', 'seven'),\n", + " ('3', '9'),\n", + " ('8', '8'),\n", + " ('3', 'seven'),\n", + " ('2', '2'),\n", + " ('7', 'nine'),\n", + " ('6', '6'),\n", + " ('8', '2'),\n", + " ('7', 'two'),\n", + " ('2', 'nine'),\n", + " ('2', '9'),\n", + " ('1', 'seven'),\n", + " ('3', 'eight'),\n", + " ('6', '6'),\n", + " ('1', 'five'),\n", + " ('8', 'three'),\n", + " ('1', '8'),\n", + " ('3', 'three'),\n", + " ('2', '9'),\n", + " ('1', '3'),\n", + " ('3', 'two'),\n", + " ('8', 'four'),\n", + " ('1', '1'),\n", + " ('2', 'seven'),\n", + " ('7', 'one'),\n", + " ('9', 'two'),\n", + " ('4', 'eight'),\n", + " ('2', 'one'),\n", + " ('9', '9'),\n", + " ('3', 'four'),\n", + " ('6', '4'),\n", + " ('3', '1'),\n", + " ('1', '6'),\n", + " ('1', '1'),\n", + " ('1', '9'),\n", + " ('1', '1'),\n", + " ('4', 'six'),\n", + " ('7', 'six'),\n", + " ('8', 'six'),\n", + " ('4', 'three'),\n", + " ('3', 'seven'),\n", + " ('1', '5'),\n", + " ('8', 'one'),\n", + " ('4', '4'),\n", + " ('2', '6'),\n", + " ('4', 'five'),\n", + " ('3', '4'),\n", + " ('1', 'three'),\n", + " ('2', '1'),\n", + " ('1', 'eight'),\n", + " ('4', 'four'),\n", + " ('6', '7'),\n", + " ('5', '8'),\n", + " ('6', 'eight'),\n", + " ('2', 'two'),\n", + " ('6', '1'),\n", + " ('1', '1'),\n", + " ('2', 'one'),\n", + " ('3', 'seven'),\n", + " ('8', '5'),\n", + " ('6', '6'),\n", + " ('8', '3'),\n", + " ('5', 'four'),\n", + " ('7', 'four'),\n", + " ('9', '5'),\n", + " ('8', '4'),\n", + " ('6', '4'),\n", + " ('1', '2'),\n", + " ('7', 'nine'),\n", + " ('1', 'six'),\n", + " ('6', 'three'),\n", + " ('5', '5'),\n", + " ('2', '5'),\n", + " ('1', 'seven'),\n", + " ('5', '5'),\n", + " ('2', '2'),\n", + " ('6', '6'),\n", + " ('4', '5'),\n", + " ('6', '1'),\n", + " ('9', '3'),\n", + " ('5', 'three'),\n", + " ('6', 'three'),\n", + " ('3', '6'),\n", + " ('6', '4'),\n", + " ('3', 'one'),\n", + " ('5', '8'),\n", + " ('4', '5'),\n", + " ('7', '8'),\n", + " ('3', '3'),\n", + " ('4', '4'),\n", + " ('5', 'five'),\n", + " ('4', '4'),\n", + " ('3', '3'),\n", + " ('3', 'eight'),\n", + " ('6', '7'),\n", + " ('6', '6'),\n", + " ('2', 'nine'),\n", + " ('4', 'five'),\n", + " ('1', 'six'),\n", + " ('3', '3'),\n", + " ('1', 'one'),\n", + " ('3', 'eight'),\n", + " ('8', 'three'),\n", + " ('3', 'four'),\n", + " ('2', 'four'),\n", + " ('6', '6'),\n", + " ('5', 'three'),\n", + " ('8', 'two'),\n", + " ('2', '6'),\n", + " ('4', 'five'),\n", + " ('4', 'eight'),\n", + " ('9', '9'),\n", + " ('5', '8'),\n", + " ('2', '2'),\n", + " ('9', '1'),\n", + " ('3', 'six'),\n", + " ('2', '3'),\n", + " ('5', 'five'),\n", + " ('9', 'two'),\n", + " ('3', '5'),\n", + " ('9', '9'),\n", + " ('6', '4'),\n", + " ('4', '2'),\n", + " ('2', '5'),\n", + " ('1', '5'),\n", + " ('1', '8'),\n", + " ('1', 'one'),\n", + " ('2', 'eight'),\n", + " ('9', '9'),\n", + " ('9', '9'),\n", + " ('2', '2'),\n", + " ('6', '6'),\n", + " ('8', '2'),\n", + " ('1', '6'),\n", + " ('6', '6'),\n", + " ('3', '3'),\n", + " ('6', '2'),\n", + " ('1', '3'),\n", + " ('4', '1'),\n", + " ('7', 'nine'),\n", + " ('3', '3'),\n", + " ('3', 'six'),\n", + " ('5', '4'),\n", + " ('6', '5'),\n", + " ('8', '5'),\n", + " ('4', '4'),\n", + " ('3', '2'),\n", + " ('1', 'eight'),\n", + " ('7', '7'),\n", + " ('2', 'one'),\n", + " ('4', 'four'),\n", + " ('7', '7'),\n", + " ('3', '8'),\n", + " ('4', 'two'),\n", + " ('4', 'seven'),\n", + " ('8', '2'),\n", + " ('7', 'three'),\n", + " ('1', '8'),\n", + " ('5', 'eight'),\n", + " ('3', 'five'),\n", + " ('3', '9'),\n", + " ('8', '7'),\n", + " ('1', '3'),\n", + " ('7', '2'),\n", + " ('9', '7'),\n", + " ('5', 'nine'),\n", + " ('5', '9'),\n", + " ('7', '7'),\n", + " ('6', '6'),\n", + " ('6', '9'),\n", + " ('9', '9'),\n", + " ('2', '2'),\n", + " ('8', '3'),\n", + " ('1', 'five'),\n", + " ('2', 'two'),\n", + " ('2', 'one'),\n", + " ('8', '6'),\n", + " ('1', 'three'),\n", + " ('8', 'six'),\n", + " ('5', 'eight'),\n", + " ('9', 'one'),\n", + " ('8', 'five'),\n", + " ('9', 'eight'),\n", + " ('1', '4'),\n", + " ('2', '2'),\n", + " ('3', '2'),\n", + " ('6', '2'),\n", + " ('8', 'seven'),\n", + " ('3', '5'),\n", + " ('6', '4'),\n", + " ('2', 'six'),\n", + " ('1', '9'),\n", + " ('1', '6'),\n", + " ('4', 'four'),\n", + " ('5', 'four'),\n", + " ('1', 'seven'),\n", + " ('4', '4'),\n", + " ('8', '8'),\n", + " ('6', '1'),\n", + " ('3', '4'),\n", + " ('9', 'six'),\n", + " ('9', '9'),\n", + " ('6', 'nine'),\n", + " ('1', 'one'),\n", + " ('7', '9'),\n", + " ('7', 'seven'),\n", + " ('1', '1'),\n", + " ('1', '1'),\n", + " ('5', '9'),\n", + " ('6', 'eight'),\n", + " ('1', '3'),\n", + " ('2', '6'),\n", + " ('5', 'one'),\n", + " ('6', 'six'),\n", + " ('5', '6'),\n", + " ('3', '1'),\n", + " ('9', '9'),\n", + " ('6', '6'),\n", + " ('4', 'two'),\n", + " ('8', '6'),\n", + " ('9', '5'),\n", + " ('6', '6'),\n", + " ('6', '1'),\n", + " ('7', '7'),\n", + " ('2', 'three'),\n", + " ('5', 'seven'),\n", + " ('6', 'five'),\n", + " ('4', '6'),\n", + " ('7', '7'),\n", + " ('3', '1'),\n", + " ('1', 'one'),\n", + " ('9', '4'),\n", + " ('2', 'eight'),\n", + " ('8', '9'),\n", + " ('5', 'eight'),\n", + " ('9', 'one'),\n", + " ('3', 'six'),\n", + " ('1', '8'),\n", + " ('8', '8'),\n", + " ('3', 'two'),\n", + " ('1', '1'),\n", + " ('6', 'three'),\n", + " ('4', '9'),\n", + " ('7', 'nine'),\n", + " ('6', '8'),\n", + " ('1', '1'),\n", + " ('1', 'two'),\n", + " ('1', '3'),\n", + " ('2', '2'),\n", + " ('7', 'eight'),\n", + " ('1', 'six'),\n", + " ('9', '9'),\n", + " ('5', 'three'),\n", + " ('8', '8'),\n", + " ('8', 'four'),\n", + " ('9', 'six'),\n", + " ('1', 'eight'),\n", + " ('5', 'seven'),\n", + " ('7', 'eight'),\n", + " ('4', '3'),\n", + " ('8', '8'),\n", + " ('3', '8'),\n", + " ('9', '1'),\n", + " ('2', '3'),\n", + " ('6', '4'),\n", + " ('4', '5'),\n", + " ('2', 'two'),\n", + " ('7', '8'),\n", + " ('9', '3'),\n", + " ('5', '9'),\n", + " ('9', 'eight'),\n", + " ('9', 'eight'),\n", + " ('6', 'seven'),\n", + " ('9', 'one'),\n", + " ('7', 'six'),\n", + " ('1', '4'),\n", + " ('4', '4'),\n", + " ('2', 'seven'),\n", + " ('2', '9'),\n", + " ('1', '8'),\n", + " ('6', '3'),\n", + " ('3', '6'),\n", + " ('7', '4'),\n", + " ('2', '1'),\n", + " ('4', '9'),\n", + " ('8', '1'),\n", + " ('3', 'two'),\n", + " ('7', '2'),\n", + " ('5', 'three'),\n", + " ('9', 'one'),\n", + " ('8', '7'),\n", + " ('8', 'eight'),\n", + " ('1', '2'),\n", + " ('5', '5'),\n", + " ('2', 'eight'),\n", + " ('6', 'four'),\n", + " ('6', 'three'),\n", + " ('1', '6'),\n", + " ('1', '7'),\n", + " ('1', 'nine'),\n", + " ('5', '5'),\n", + " ('4', '4'),\n", + " ('4', '4'),\n", + " ('5', 'nine'),\n", + " ('5', 'eight'),\n", + " ('5', 'two'),\n", + " ('1', 'five'),\n", + " ('3', '2'),\n", + " ('7', '5'),\n", + " ('7', '1'),\n", + " ('1', '1'),\n", + " ('2', '6'),\n", + " ('8', '8'),\n", + " ('1', '5'),\n", + " ('8', 'four'),\n", + " ('8', '1'),\n", + " ('9', '8'),\n", + " ('7', '6'),\n", + " ('4', 'eight'),\n", + " ('2', 'seven'),\n", + " ('5', '4'),\n", + " ('4', 'nine'),\n", + " ('1', '2'),\n", + " ('8', '4'),\n", + " ('1', 'eight'),\n", + " ('4', 'six'),\n", + " ('1', 'one'),\n", + " ('1', '8'),\n", + " ('9', '7'),\n", + " ('1', 'three'),\n", + " ('4', 'two'),\n", + " ('7', '7'),\n", + " ('6', '3'),\n", + " ('2', '7'),\n", + " ('2', '7'),\n", + " ('6', '7'),\n", + " ('4', 'four'),\n", + " ('1', 'seven'),\n", + " ('2', '2'),\n", + " ('4', 'two'),\n", + " ('4', '4'),\n", + " ('5', '8'),\n", + " ('3', '1'),\n", + " ('4', 'two'),\n", + " ('2', 'four'),\n", + " ('9', '9'),\n", + " ('6', '6'),\n", + " ('1', 'five'),\n", + " ('8', '6'),\n", + " ('6', '1'),\n", + " ('4', '2'),\n", + " ('2', 'nine'),\n", + " ('4', 'four'),\n", + " ('2', 'two'),\n", + " ('6', 'six'),\n", + " ('9', 'one'),\n", + " ('3', 'two'),\n", + " ('7', 'six'),\n", + " ('5', '5'),\n", + " ('4', '1'),\n", + " ('1', '4'),\n", + " ('4', '2'),\n", + " ('3', 'nine'),\n", + " ('1', 'seven'),\n", + " ('3', 'four'),\n", + " ('5', 'three'),\n", + " ('2', '3'),\n", + " ('2', '1'),\n", + " ('6', '6'),\n", + " ('6', 'four'),\n", + " ('4', 'nine'),\n", + " ('4', 'seven'),\n", + " ('7', 'three'),\n", + " ('9', 'six'),\n", + " ('2', '2'),\n", + " ('1', '2'),\n", + " ('7', 'seven'),\n", + " ('8', '2'),\n", + " ('8', '4'),\n", + " ('9', '7'),\n", + " ('7', '2'),\n", + " ('5', '2'),\n", + " ('1', '6'),\n", + " ('6', '1'),\n", + " ('3', '4'),\n", + " ('2', '2'),\n", + " ('2', '8'),\n", + " ('7', 'eight'),\n", + " ('5', '7'),\n", + " ('1', 'four'),\n", + " ('5', 'seven'),\n", + " ('7', '9'),\n", + " ('2', '8'),\n", + " ('2', '5'),\n", + " ('2', '3'),\n", + " ('5', 'one'),\n", + " ('8', '9'),\n", + " ('3', '6'),\n", + " ('1', '1'),\n", + " ('9', '9'),\n", + " ('7', '7'),\n", + " ('3', '5'),\n", + " ('6', 'one'),\n", + " ('2', 'two'),\n", + " ('1', '1'),\n", + " ('1', '7'),\n", + " ('6', '6'),\n", + " ('6', 'one'),\n", + " ('8', 'seven'),\n", + " ('1', '1'),\n", + " ('2', 'one'),\n", + " ('3', '3'),\n", + " ('9', '9'),\n", + " ('7', 'three'),\n", + " ('7', '7'),\n", + " ('8', '5'),\n", + " ('9', '2'),\n", + " ('6', 'eight'),\n", + " ('2', 'three'),\n", + " ('8', '1'),\n", + " ('7', 'three'),\n", + " ('9', 'nine'),\n", + " ('9', 'five'),\n", + " ('4', 'seven'),\n", + " ('6', 'nine'),\n", + " ('3', 'nine'),\n", + " ('1', 'seven'),\n", + " ('7', '6'),\n", + " ('5', '2'),\n", + " ('8', 'one'),\n", + " ('3', '6'),\n", + " ('4', '4'),\n", + " ('8', '4'),\n", + " ('9', '7'),\n", + " ('8', 'seven'),\n", + " ('8', '8'),\n", + " ('4', 'nine'),\n", + " ('1', 'five'),\n", + " ('8', 'three'),\n", + " ('4', 'four'),\n", + " ('6', '4'),\n", + " ('8', '2'),\n", + " ('1', 'three'),\n", + " ('9', '9'),\n", + " ('8', 'five'),\n", + " ('2', '1'),\n", + " ('8', '9'),\n", + " ('6', '8'),\n", + " ('1', 'four'),\n", + " ('3', '4'),\n", + " ('7', 'two'),\n", + " ('2', '2'),\n", + " ('6', '7'),\n", + " ('4', '3'),\n", + " ('8', 'one'),\n", + " ('8', '9'),\n", + " ('3', '6'),\n", + " ('6', '9'),\n", + " ('8', '8'),\n", + " ('4', '4'),\n", + " ('2', '2'),\n", + " ('9', '9'),\n", + " ('8', '8'),\n", + " ('9', 'six'),\n", + " ('9', 'two'),\n", + " ('2', 'seven'),\n", + " ('2', 'three'),\n", + " ('3', 'six'),\n", + " ('8', '9'),\n", + " ('7', '5'),\n", + " ('4', 'three'),\n", + " ('3', '1'),\n", + " ('6', 'six'),\n", + " ('4', '7'),\n", + " ('3', '8'),\n", + " ('7', 'six'),\n", + " ('8', 'seven'),\n", + " ('4', 'nine'),\n", + " ('7', 'nine'),\n", + " ('6', 'eight'),\n", + " ('2', 'nine'),\n", + " ('1', 'eight'),\n", + " ('6', '1'),\n", + " ('9', 'nine'),\n", + " ('4', 'six'),\n", + " ('8', 'two'),\n", + " ('4', 'five'),\n", + " ('1', 'five'),\n", + " ('4', 'two'),\n", + " ('7', 'eight'),\n", + " ('9', '4'),\n", + " ('6', 'six'),\n", + " ('2', '8'),\n", + " ('3', '9'),\n", + " ('5', 'six'),\n", + " ('5', '6'),\n", + " ('6', '2'),\n", + " ('9', 'three'),\n", + " ('9', '3'),\n", + " ('9', '5'),\n", + " ('7', '5'),\n", + " ('1', '1'),\n", + " ('8', 'four'),\n", + " ('9', 'five'),\n", + " ('5', '4'),\n", + " ('7', '4'),\n", + " ('1', '1'),\n", + " ('3', '2'),\n", + " ('1', '6'),\n", + " ('5', '5'),\n", + " ('3', '4'),\n", + " ('1', '7'),\n", + " ('6', '7'),\n", + " ('1', 'seven'),\n", + " ('7', 'five'),\n", + " ('6', 'one'),\n", + " ('7', '2'),\n", + " ('7', 'eight'),\n", + " ('6', '6'),\n", + " ('8', 'three'),\n", + " ('8', '2'),\n", + " ('5', '5'),\n", + " ('9', 'nine'),\n", + " ('4', '4'),\n", + " ('7', 'two'),\n", + " ('9', 'four'),\n", + " ('8', 'six'),\n", + " ('7', 'eight'),\n", + " ('7', 'four'),\n", + " ('5', '4'),\n", + " ('5', 'two'),\n", + " ('6', 'five'),\n", + " ('4', '9'),\n", + " ('4', 'six'),\n", + " ('6', '6'),\n", + " ('7', '7'),\n", + " ('4', '6'),\n", + " ('6', 'nine'),\n", + " ('7', '7'),\n", + " ('4', '3'),\n", + " ('7', '5'),\n", + " ('7', '7'),\n", + " ('2', '6'),\n", + " ('7', 'two'),\n", + " ('6', '3'),\n", + " ('4', 'four'),\n", + " ('9', 'five'),\n", + " ('1', 'nine'),\n", + " ('3', 'nine'),\n", + " ('1', 'two'),\n", + " ('1', 'six'),\n", + " ('5', 'eight'),\n", + " ('3', '3'),\n", + " ('5', 'one'),\n", + " ('1', '1'),\n", + " ('5', '4'),\n", + " ('7', 'one'),\n", + " ('7', 'eight'),\n", + " ('6', '9'),\n", + " ('3', '8'),\n", + " ('2', '4'),\n", + " ('3', '3'),\n", + " ('8', 'two'),\n", + " ('1', 'two'),\n", + " ('9', '1'),\n", + " ('2', 'three'),\n", + " ('6', '6'),\n", + " ('7', '5'),\n", + " ('9', '9'),\n", + " ('6', 'four'),\n", + " ('5', 'two'),\n", + " ('7', 'four'),\n", + " ('3', 'one'),\n", + " ('8', 'five'),\n", + " ('9', '9'),\n", + " ('7', '8'),\n", + " ('6', 'four'),\n", + " ('8', 'five'),\n", + " ('5', 'nine'),\n", + " ('7', '7'),\n", + " ('8', '4'),\n", + " ('4', 'five'),\n", + " ('1', 'seven'),\n", + " ('3', 'three'),\n", + " ('8', '7'),\n", + " ('2', '5'),\n", + " ('9', '2'),\n", + " ('9', 'nine'),\n", + " ('9', '4'),\n", + " ('8', 'eight'),\n", + " ('8', 'one'),\n", + " ('8', '8'),\n", + " ('6', '6'),\n", + " ('3', '2'),\n", + " ('8', '8'),\n", + " ('1', '1'),\n", + " ('5', '5'),\n", + " ('6', '6'),\n", + " ('2', '4'),\n", + " ('3', 'seven'),\n", + " ('7', '7'),\n", + " ('5', 'six'),\n", + " ('2', '2'),\n", + " ('4', '4'),\n", + " ('8', '8'),\n", + " ('3', '1')]" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "digits = {\n", + " 'one' : 1,\n", + " 'two' : 2,\n", + " 'three' : 3,\n", + " 'four' : 4,\n", + " 'five' : 5,\n", + " 'six' : 6,\n", + " 'seven' : 7,\n", + " 'eight' : 8,\n", + " 'nine' : 9,\n", + "}\n", + "\n", + "first = re.compile(r'''^\\D*(\\d|one|two|three|four|five|six|seven|eight|nine).*''')\n", + "last = re.compile(r'''.*(\\d|one|two|three|four|five|six|seven|eight|nine)\\D*$''')\n", + "\n", + "def decode(text):\n", + " if text in digits:\n", + " return digits[text]\n", + " else:\n", + " return int(text)\n", + "\n", + "char_matches = [(first.match(line),last.match(line)) for line in data]\n", + "\n", + "chars = [(\"\".join(left.groups()),\"\".join(right.groups())) for (left,right) in char_matches if left and right]\n", + "numbers = [(digits[x],digits[y]) for x in chars if len(x)>2 ]\n", + "chars" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/2023/1/input b/2023/1/input new file mode 100644 index 0000000..595a8f7 --- /dev/null +++ b/2023/1/input @@ -0,0 +1,1000 @@ +ckmb52fldxkseven3fkjgcbzmnr7 +gckhqpb6twoqnjxqplthree2fourkspnsnzxlz1 +2onetwocrgbqm7 +frkh2nineqmqxrvdsevenfive +four9two +six7sixqrdfive3twonehsk +xkvsone2 +one65 +rggxsff1seven +djbcgrrtqdshpqqzj43rgcr +br89fivetwoqggnxjfourtl3 +zoneight47five5sixjxd74 +4five1 +5seveneighteightzzbnzsvdjnkvndsxlttfour +htdcmsl12ninethreepkqtdlvtl +twocghtvtdlfchfqnjhrfour19 +rptwofiveonecvlldmppxtrvj3 +6gqsvsqpzxj +5twomgkzsvg +4ninedflntfsn1 +4threethree +43two6eight9 +4gqnkntjthree9one45 +9lmjgqnkxqvfrzhbcfrlltjxjlkjfrlmb3 +ninethreejkcbplfg4kseventwo +mbkfgktwolbvsptgsixseven1oneightzvm +m5fvqfkkk +tptqnsxmsevencrkdmxms55zrfmpmzv7lzqlnmbkzt +bqccqhbdgeight7 +four7nine1eight +8fivethndnpztzninepdkfive8 +1sixxvqdfourlnpdrfbnnx41vhqgth +sgpkgdb9 +fivetwoq7cdprnjdjhs3three9 +1mfvptbhqshblvvvdl +ztftqgbzld8jkcmsrdfzonemzdmbzxpfour +dfkctqcjbmfourhszmlvtkeightthree2 +4onersrfjcskckcxcj4sevenzzzpsixeight +1fourr5gxpone +seven74ninersgvvmtgsix +jvtwonefivetwosbpglbx2two +fourfivecxgssssixtwofour4 +3zcgcjdcpbgqdfnhxtneight +fourfour29cpbccthree44 +6six9foureight5xmfdf +four77 +tqtnjshdmtwo3four8one27 +one52 +nine32five3six +qcjbjrpqdtpvveightpmzs17fourjvghvl +5293gmtdttfpmrlhvlt9 +2zonenfglkskxhn3gxbrtxtcpfive +three5cfourfvmqlnhp4two +three4knrdzxpr +fmpvqkxgeightthreebdrng9tdcffvsfctwo +jpktgx8fivegqeight5three +7sevennine +3two3 +nfthhzcq2 +plmbtrzbnbmt1nine +149hvjbktkmbj8mtnrblcvfive7seven +bfthree1 +six6kqprz86two6 +jthree6 +nine2hzrlcqrt7eight +nnzhkhpdb8rbnqmxrfive +rkszqnp1 +t1 +5sixlmxkgmxrgveight3 +sevenlptpdhtjpgxconedvtrrnngn8 +nlpvxbscttbbpgndnc7jvrtcjxbsxnqvfcxdcfrgtrdkjflzlrqcnmfourkznnmrv +7kllgxpb6 +two4eightfgrsix1five7six +one2three6hmktjgmbxhbjl +bqjtxhntjreightsevendgcfpmkld14four +22pgcslxtdhkhz8ninethreethreejcklznxq +146gqthree85twoseven +vlvxlmkfpcxsstsevencdbbdsix6 +5sixseven48 +llljbtxtrrpssrfthree9dpvrndphhn +qkhvq5 +svrfthree8bdhjshcftdnine4 +nfqnfkpchl5pcstz +pbx5mfkfour8 +cptwonethreeptwo9gzmlkv9 +gdpkprlzr6466fxlvfour +dlnpklqtfivesixfptrdh9four +onedpfskdd38qfvbjdnpglone +4sevenseven5qf +onepgmmhlgmtvone3c +247tsnmkd +threeznnnbtfive5tmdfxtwothree3ndjcszrb +oneeight6rhfiveone +threethreethreestvgljm4seven +bfbrk3vqsmone39hzzxdgp6eight +98rndphxhcbl +57fourlntgdngzpdsjkbbxnv7 +twons4 +three4threesixtwo2hf +lgqtcllzsevenhrrhqsmsnncmlz7 +8fnngjrxtljncbvlt7ninehfzrthree +12mltqtqqrvjmjsbthnzpdjtwo1 +lf1onevdmn2 +3twozlqnddmrsixslphpvb +five4nrtcjmvj +cksgmkszrbsrgfkq7tqjxsshxxh7vngsnjt +mfiveone7 +kkvtwone5sevenfcfnngpmjktrpxk7djgzmdthreehpp +fxbgtcjp4pxpjv5rbfllhfcpfive8 +2gxrkjdtvxmnvs76 +npvvleightlpd354vrfh1 +zbnzdlzpqzsixnine4sevenqtddzzm6 +6cxrhdvzbmthree98 +77eightnine32four +56tshj77one +161xk26mspxkchfourfive +onenineljnsmvmfb7 +6hxvmqtwo +khzninetwo3pbtsqxlqj3 +1nine3 +6xrzjskblfq +kbtsbckkonethreetwofour7lgcbxmjkjpnine +fivethreecrjznine7 +8qxjdsspgn +vdoneightsix7h9 +5bsjl +gfllsrrrmzbfqdrlnvtdzr3 +7hs2 +1onelseventwo +fivetwo3 +2gnxv9sevenseven +gmmhshzvsixzssixseven6fivehbdvsjdz +75onegckzsnpnine1xfslhfour6 +sixgjhnfvsjnrsixeightnine49 +nineseven929rlsdkcpbjrjdlptjbzp2 +9hbpplffngltfourpgk +twoldknnqxkkvvdjldqthree373 +cceight9two +zmeightwohkgs6 +6sevenfdmqkss4fivethreesevenfourqfnsvvsj +4two9njeightnine +two3gzseveneightfour88eight +2clqj +1ndvbhbtql +five4sixseven5ghlgbmdgfnqpfdm +34dt +9sevenrl5 +dpbpqppsixngvmkflllcrtn8 +sixgvsctkrp53sbsx +nine9qdrqfourjc +zvppfjpqch24 +sg4txzzfoursevenninethreesqcdznksix +one3six2 +5bgdjzxbrlsl3sixlbxtjdpgfkjmq2 +drsldhgjtrvmmz3jgrp6 +qkeightwosix95nine445cfnine +fivetwo82scjct7onegblrqrggv9 +threepfgljkghzc9 +8qvzljppstpnpeight9 +8nine98tkxcfqtg +sevensix4two +2eightthree +cvhhmcgknj6threefive87 +seveneight7dsvqnjsjsqlkeightwovzt +71oneseven9fiveeightnh +pdjtzxbgjxb3vzfdnjbthree +xqpfourmpddnfcc4one5 +jnrms1fkssgpvvlrmf +jbnkeightone6zldns85sixnine +1fourbqfgxscdxmkvdpsrm +eightsixone8mjbrqkplkqntjdlfourpjdcs +lxdsp6prmfglvdfz9eight7sevensixone +qdksixvmsevent7xlvmtzdkhb +8spqjvhplpzldpthree2 +zqfvpq7pz22 +nnfbpfour1 +one9ninetwovrclctwo +344six98seven +kqkj9qqvfxn +seven1fivethree +shlnhgq2c3oneseveneightwodv +eightthreepkcxlk7threeonethreetwo +pgmbhrzzqmvkjl57fourqk8gxjmbfqcjs9 +eight5oneights +ninenineeightvkrsrkgh8 +svnfdxxftkgzpjqxzkmbbcfourvfsg3two6twonezqn +mnvqcmkqvjlqvtltgdpktr3dkgkbt +sixmg29pplfzrsqhlvfeight +glzsbmzqjj43 +1zqrnpqrcbzdsnfour67zpsxpkbbkmfgrzm +kxbbcjjksix7sixeightnine +zbnhsdxgt5sixsixeightlsdqrgseven +ninezxrllznbcvmldxfbvjx5fivedtpdhsjgk8 +reightwo7 +fiveninenftgfourjbdkxtxcb38two +sixlpck4sixzcppvhzkchmnpvqjjgffourj +34pmfdthreetwo +7zbnnkqone5three +qxkmhcllcqkk5qrqseven47 +one62brghc8s +twotwo1xvgcxbthree +three83dfqgjlc8eight +twofive8l1twocqmcccgdm +two6cnine +h2sfnczjmslpmlvdlzrs +9nbblsvxbhdxqfour8 +kfzcsg6sixonevrbchsjtfivenbz +mgtlqcdtwo7qxmszcqpjdplccxzccsixone5nine +mtfpphckdn1eightpdtkssqlxdhtlmcjxb +jbphmjjjrg2159eight +zqskrzb1pgfouronevxscgtlccl +lxvpgrck8fxhxm +fournrnlfive1xt +3nsjnb +eight1three513nine +39eightsevenfourbgd1mbljzone +6two88five2pjpp +fourjlftf7six1xsktfhcdff +3kcntzlmnnhhmtmlftggqljkrvninetwo +threesixonexlvxrblq24 +xpgzzrcckdlnrczxndplbpcb452 +ninembdnhhnhhzmvmtdjtkzmb9ncq9one +4fivebrqrxftwo +84tqzbcvgdrgpzpxjrone83zgzpsix +99five +mgsevenqgkckfhbfnine3 +2seventhree +8fivethreefive2fivethreefive +scrtqsevenjmxlvjrrbdtqgrdghfivethree7seven +sevensix946onesevenfour +dzn14 +nineqbxvponekvfffs96zjfhpthree +53twoqknxnxqbcone +fhonerone7fourpmxskkmmx7 +eightlq4fourfourdbsdrvhhs17 +nnpgtgcbvrggctbtkzht5xmkhtnnn7brpxjcxdrone +threecxnqkmrrpmzdljstdbfmk5seven +sdptbzqhn7sixnine8 +five7jdzdzfqfivesevengtznjmqrblkkzkgvt +fclvllfthx47sixbhq16 +9mbmsxbn +three82fiveseven4 +p1kzmzpbhmcthree +eightj3681nmgt8 +2two7 +jdbjlvxhhzzsnmcqldrldeight6nine4 +2threefive +foursevenrmfhjvzdv8bpbrvblll1onetwofive +65cfgkcrhbjk +6onecjxzxb72gmrblthx +4jlrvckc9 +doneightghmjzzrfourfdzxflm51nineseven7xkxt +r5eightone +nkgknm1 +rxbsnnzbrs4two4 +1pqvmfh +r2vpdpkzqcs85 +gtfzjnnhsknvjnmnine98 +zrdgv4hnbpb +7one165vddbrzpmfhskvzxdh3 +44szfpgjmvgt4eight +dbgttrbj6five85nsqmzscksvdxks +ffkrhbvq2 +6fourbpjrdvlk +38eightsix +two4fivedzpgfbtm +3jbk46 +slpkmrstrrvthreepl9bhctdfnfzc +nine4two5kkfmcjgxbqkttg +1zppnmcr5sjfsbbxh48one +8one8fourseven5 +6three7nineeight6 +96three +91twonelt +5sevenone2sixthreeknhzm +2fvhgcbvg7sevenzqdtftct7tvvtkpxbrq8 +9nvr +eightfivetwodjg9 +7four2six +5fkzgffzpgp3 +75sevenfive +mxtwonexsdrpkqzgm1threejqftvl +onekxffhsqb4dkb9fivefvtcjsd +eightone1eighteight4 +glfeight7eight4 +eightcdfjjfiveeight4fivetwo +npxnp32kfsfjpggdtpkm5 +seven7threevcb +xtcvsmdx2four2twonefl +mzkgnzstwo844dcseight +zgoneight65z1seven3 +1two5lc +threevsrg5vdmfvpss27qzrmvmbz +7qbcnjg1nine1seven3seven +5fourxdxrhmxsj +v78 +41nine +56fmktkxvltp4bztxkqfrdthreefive4 +fourdnq1 +ctlk31srscmmdn66sevendmjjqvgj +b7nine8ninejqqhhdnnpx5 +ninedlxdshrzfmrnnq17 +jbneightwofiversjctwogvvtprslpgfour9xcone +dpt5hbgbnmdlthree5sixvsvqtnmndpvv +sevenrztpgr8nine2 +four9three1keightbmljrjgxkrbjdhbckbst +sfmztfjh49one +seven3three7eightwovs +48onetwosix4four4ntvrzvdztr +mphtwone5sevenfour7 +4lgqnbdlone +hpnmtjbcdhfhsnxqhjhhfgteighteight8one5 +cgtdtt22 +plnbntcb8seven1gkgzngxq +7bonethreefour +ffoureight88 +z2four3dfggfntxjbjhdr9three +5sixgpcm9two +sixpnlcgbcpdsixtwofour4foursix3 +dstgjlh812 +3xfhdfrgqjfourkfjone7four8 +nine4three6sevenfourthreeeight +njvdqthkv5seven6fourtbklhrqqsixeight6 +58rcfcjdkxcj3eightlndf +jhnt7zblnkdvhslrhpbkzdh +7threetrlkmmlzsmtwo4dmjf94nine +pssrhmtcv7twotwodjxvlbmnfive58 +eightseven271onefxxrfglh +9bmtwo +three522 +eightseventworckvnine2 +6fourtzmlrkrztvtxfcdf5 +3six4rdchffcg7 +6threedqssixnine +fivetwo6 +sixnpkr5xbxmjcxjznpnrf8brxtmgl +gtvg3zzbeightkphjs69pjprvhlgl +7kclrcjbtkcr63two5 +threehpn38fivedcmfkgqqeightwovg +hbjcsfshsjqqfive9sevenfourthree3fzjpfjzd +five7qzhnthree1 +nxhg17j8ninejnqlnine +ddlnxmcg2 +rxeightwopqtpqncvd481154fiveb +sevenvbkzgzmnine4qhpptngvhh +bkmz6nineeight69 +tqvzkqfourrj4one +sh15nzxzhqdxd96dqht +6rhztqrfninefsqszx +38cngonefourrhlljvpgz5vzhmbdjj5 +8fiveddchtllpt +13rgzljhsdjfive2six +sevenbdnbheightfive7qbzjvlsr3 +fivejmfvtnhz1eightkcdpjsghgtwonine9 +five3bllpvnqgtzdhvprgb +t1vcttwo +9953three92 +9hrgxdpf +sevennine579seven +threekp1onefrfjbrmmpmsdsvfour +4threefive61rrhrtdjs5 +xbmvcfqp4onesevenmkgvsnprtl65 +379 +4966dlprfxmhmqdfour6 +9lllhz8nmqxkzsevenxmbqvgqnj8 +btkxnzonesevenjmkdcc1ff32eight +7three65one745 +seven66ninelkbmvndm3 +4three3sixeight3 +177dcxqqbqpkxgctwo +48cjpd47sevenzgtkrdlfq +5ppzvklbtnine212qlmt +89tpmnr +dh1gfgb6threeqcm3 +five83 +fzlkpx6seven2twotjlqpgldlfour49 +fiveninefivenxpzkrslxm44 +pxxbnsfoursixeight5mjkeight +ninefivesevenz6 +djddxtdeight2vqsvdgttxonefourfhdfxszvfd8pjcvzbgp +253seven71nine +eight6cb71 +gfzptdj1nine5twosvtmpphj9mkhd +hfjcpvzeight7ggqrmkmzrhbthreeeight +chjonetwo2lqxfrbvq +fkfmntldvleight4threethreeeightfour +6j81threeseventwo3seven +seightwosvsnp4 +8bqjk75254 +6seventsmnfjtn4rthrp +9kksdvfzzpsszffouronenrqrcnine +5dkpp8fournine4one +4mpbzrfvj8two9sevenonenine +jzkdrrjsnpxzxbjhb5 +three87oneonexppvhz3seven +two39kvrmz +vdfive8dntsz +mthreehzdghb3eightsevenfttmjtx +2dlnjsxlg +7threecrrdqksqsevensixnine +mdxhrrrfiveone6 +8nine52 +725two +jzpxt2vcninenjgfzddk +three29 +zjrffvdgnpeight1sevenglpfkdb +two3qnhqvxeight +slqdvfmeightmlhjdcvbrmsjvrk6 +two13kfxd28rzqhcdkjtbbstnhbfive +qhdqqnjbdk8eighttwoqpthree +one1brxnptch263eight18 +threexntmdtwokdmhf3pdkgpthree +2three9jrcrmjvbrm +1mmlsfsdkzkvjtwo3b +sfkkkncf3three4seventwoqzhmcdfbhxfl +vfnqlnrzcrzm8fourvpzxqdqsfb +rjkhxqdmkrfive1 +2four2nine9znp6seven +7doneone +9threetworqlk +eighttpclmtv4twofour5mtxxnpthreeoneightfp +onecfjgrbsjncmpqhqvhxtfpc21nineppone +eightlvjxmxhfive9fb +ninenrjlmcthree3four +eightlxrnvljrhksxzfxzbrt644 +blmjnfgsrcms31 +zsix16xtjvrtn +lkjfpxjh1sg57xbxlsxcrsix1 +mkmdcsbgvd19ninecsevenone9 +three1p +4prbjfour1ninesix +pkf7sixsb +fiveclczl8sltncdxsix +4ninefourseven5three +3lpchjfgbhzjbqggsfoursixseven +twonmcfztwoqp1one5 +87sevendbqdsevenrlzkrhoneeightone +4three4 +2tthbbcpcr36tqvfjkfs +rtzqgsixnine4bzqhjrq8five +eight3fivel4kd +1fourfourdpvvghvlzxtwothree +2gzgzmrpbztm1cgzvvrtqt +qdrfrkncnt1eight +smpz4mjrbthree1ninefour +6seventhree7 +5278nlnfjrqlone8 +nine6eight +twoqrtdsreight2dxhknhpdzz2pdbsnlpljlxkv9eightwop +vl6eight9eightsix1lmth +qxsevenkckxvmjkb1 +hvhlm2twotwoone +grtlftfthtthree331dzzzoneseven +ftpkgvrsc85cplddgnn +lhcbzhgfjlgmcsn66 +twofourqjrltlvcmmzv8nine3ps +knvz5four +threefivefoureight7four +one9fournine5 +cr8twofive7two4tlbpgbngsp +seven6gzn8trjmzrvjthtpzld5dcqnjmtl4 +1five1fourfour8hqjzshnszhzgcchs2 +tld78blgffjksevenninekmjnrzlvxr +15six +fqlmqhjslgnllgs6three +jvhmkfjzd5 +kfkxjmbrgjzmjtwo2qnh45pxrkrcpmjd +dh119mvxlfdft6sevenqdxb +five5jl +jhqp2qzkfvjdfts +teightwo6 +kscczzhftqxmbrjtm46five5hncmntrgqz +65341 +cxjpgfourfour98spklghbv73 +5sevengnxldmlvnrzsthree +bsn6three +fivesixz36 +snpmdmx65five4 +vrjbjsixfour37onesscclpgxr +four58 +nlrflkxjzbpckmprkp435 +pp78 +rhz3dblsmbl8mvmthree3svhbzb +qtztdn4 +rqrdr5ninefivexj +fiveone4ninesplghqrbcnmmzll4mvklfmxv +tj3ninekvczg3cczmhkdf +fivelnrjmn3jvlmhplj4fourkvdceight +five6jrbkxrvmtqfvbq7pmjmdkmkv +6gcllrgktc +21zffhnksmjj1rcdpkcrznine +threegpnpftrstmfive4ninefive +1cnsixpnvrxq +33qghllh +gfour1rmznkmplqfsevennksglsfdqtwotwonet +kjqcslq3nineoneightkq +three8oneninepjpqnzccthree +3jpfhtrfrffournmrxrpdjm +2svsmkptdcmpkhbpmnineczjsjvlfpkckxscfour +dqxpjsnineonenvhptwocprtsbvcl6 +ninethreesixninesixxjjjkvtbgd5hrstthree +fivefznprpxccnk8four3twobllsjnfjnx +ghh2skv6 +eightninethree4jbcgrqeightfive +4ltjfxjbthreesixbrtzlbfdx7eight +one9mvbrcc +three5khjdjlpl4hrzqblshkxdgseven8 +czvxncr2 +eightthreedhkkpr9hqqdtwo1 +fouronetnhxgzstdx31six +fzcnineghrfbcbhhv263 +eightfive525onexgrzfive +zclvsg9three6eightkeighttwo +two35bhmnlt +9s +xbshssrspj643four4vrjdnlf +nineseven4ztnchhpx92 +gpfive25dvx +1five5 +jtcstj1kqrsbhsdsk8 +eight1sixsixbnsfouronecsv +tgplkg2hgeight +seveneightxsgcsfxd9dpkvltrsnlkccrskrbppmkxmpt +pddbvnrqzznqmmonesixjgpgm9rmlxvqqmdbcqhng +xqdbsktwothxzfsmqptrjbthreesixhqgrffqcnine2 +vxvtfjsevenfivethreethreensflthreenine6 +8one9sxrczdfg2 +mdtdgjthreethreefjzqs16 +dnvpjteight6tcn +eightnine3cdzk +three6tzmqbzgmdeight9fiveztwo2 +1pg6three6sevenmghhdx3 +41threenine1 +ncbrrm7six2nine +eightxrxdsnsvzddhrqvkfmseven3ntpqhsbttqmlp +one3fourmmrhpjmnjnqxkf4ftkxsvsix +54zdqrrmzd +rftdstx6hdrhmqjs9b35 +fiveseven8five5 +gzfkkqznk4 +six32ckkbh +jpk171fivesevenhbjlddveightvcqh +71foursix7 +2nine4onelkvplzhj7onen +4nrvsh3twoprvpgltsix1pzbdhvfour +skvnpjfmkhmf7547tszjzmq +two3ctthreesix3sjflprlrcg8bnhxs +six41nmgpztwo +dkkhmgmjtwo4seven +8jqcmhrbmcninehbpxdjpvbk882ktjxp +hlbhcfivetwo77three +19ccmrmh1lgmngl8 +5eightnhfsjzjseventhreefiveeighteight +3dkvxfive +39zn +cqsklnrdhtwoeight814rdncfthrjbc7 +13pfspbxkfrr +five7sevenfourfour42tppvrfqrvz +nboneightfour9eight7threefournmvcrgmkx7hs +sixoneppbone5ctdhjzzrnine +5one1nineeight1two99 +7rjvqdvgxxmb +sixbkdpftd6 +699 +rflvscthxb9one9jtfqd +sixtwo2hsclsg +8nzgpt7eightfour6zhjxqjmrq53 +pddnfour1one749five +gbbprvrq23seven77zssgktwo +ppc2flmdjrp7twoonerjhtlv +vlltgb8seveneight5clqsthree6 +onetwobtgdkkxv1five6lcfvkhm9three +two8threesixsix +5threeeight +onespeight9twonexpr +pzfourseven8five9five +9mbdbphhrfeight +fournt14 +jlcb2 +three3eightnfj2 +6four2fgsndlslkr +8sevensxcjl6fivefivesssevenqghn +3xgzj66svlvqgcvzzlb5vvjvmvb +hfhmngkv64 +263six +oneone15qtgtksjdgz27hjl9 +1six8mrrkx6 +vdhslzfgsevenfivemseven4fourq +vdjlnrvqjb5thsevenfiveonexskqrfourhtcl +1ninefoursix6seven +twobvpnjmspxmgxkv4twotjjkbxfgs4 +fivefour8kfjrpdddhr +dvbljqpznfjjp6sevengvbdxm1bnzhqmcdgpzrd1 +34cmclpfrgrjpxpjpdv +9xcdkhtsdmtvlrtlcbsixtrjqxg +rdhqfcseventhree9tqggvslm +gddfoursevenrqvqdkqbr6ninecfd +19cjpltfxspkpxkctdhjkncnbtwoone +mseven7six4five19hjd +jcqlxpmmj7rsrrngnq2seven +fssvonepgqmrgbv1 +fourfivefoursixthreegjgxhbzrgx1 +fzdfbxsths5szkgkgzdmnvtnine9nqb +rszfmx6eightnine6eightj +three199twol7six3 +threedmxbsevenjmdvrzlfive26 +ninehkbdkc594one +6fsix +fiveseven51fjlx6 +bj3fivesix1 +9vxcstvpf +threeseven6 +ninefive4twoonetwo +8seven6 +twopxsts95 +pzhxsxnnkthree6 +6ninem591 +7drfqdsjsnfdbqp +p2plgbninethreesixthree +5seventnhvjfrlkggfjbmlzxhnnnsh +seven691rjmnfzddfive +466mmgnh +dsctthree7 +eightqlfourzndmzltp34xjbdmpjs1 +stmprbctwo1ninesxbzqkkdqgdqhone +sevensixeight91sixjscqxlzj4 +vrctfpbp2bdknhtwothree68ckzlgkghponeightg +one82lzh1m9 +5dgkljnlvnthbdfeight7x9kloneightrp +9pdsgfourzcfour51one +3twonltnmdqttqmj6fivefivesix +1four8szcp +dqbrkz8xp +3twoftqxxgdg +sflsixzjq1 +6nine4plhvcthree +znzdrj4526fjtszspfour9pk +785bttrfnrtzvninehqzthfr +6slx7six8qhppjmbcrj +dc1fdzzsvnb +1xfourtwo +1mvt283 +fivecflqkthreek2 +7gtdlvbcxvrxvx1264eight +b1pbpcsix +fivefourzqrmbpgnqzgpzhfour9 +seventhree5cnvjmthree +ksblnqbkgnfone8 +8fourvkhkhlsjq +twoqjvb9zjvpfz2onesixk +tdjmrcvsevensix1seveneight +5mqxkkcttfivezdbcdmlfivebchqlcktpseven +7bzsnljccxqbtq3dsfsbrlpgqjzxeight +one4mjgfhzsjdc3crgthhjrznd +sixthreektx8xjbdjlq +bgvldztfivetwo3tldvpzkmonepdvppd8 +xhzm91 +oneskfoureight23 +ppsj64 +fgrf45four5 +four2two +798jcgzf +93mxc +hn5q9rm2vtksix9 +cvdldzschflc9eight +mqdtndzvv9eightkzxlgvcggrkltzlphcfq +beightwoone6rqjcqq7sixfourrkghseven +two9nine9foursevenfourone +793sixzngtcbrbtjmbjbqxzpqjkn +1five4 +x4 +qmlvsptmqhfvbfiveonemnmzshczjgsvgsgpps2seven +28eightmt9 +1four8hbpnktmn +6nine5threeplcsdrn96four3 +two3vdvh6 +three7fiverkjmllclbprmqgb4 +strvnllfmqm2threesixbbrjxbjvvxvjhr91 +4dbqqbdcddldhgxjrnfivehz9 +v81nnvzv +3ssptnqhmrzbseveneightwoxdx +ninetthree72 +556five2three +99175onepzqpj +8tmbfpbsninenineglvbh7gnrd +three8zmtvxqmksfpvkfourp9twooneightzgs +khmcnch1tb2 +5jtcggvdfzmsppshsqlhz +249sixtwofoureight +6sixfourxpnt +6threen +16qmgfjjmqnktnxgz +kjvbk1zzqhdkgxxghxsix77 +sndnsm1741gtszjkmvxsevennine +kzlrrrjbtrrgf5jsbgxn +4bnfdfbgthc +ztghxzrdprvlfx4 +54tzqlfjfnthree7twonine +knqkbts5ffqhdsfpmdeightnfhpjcmfmrl +jzphxleightjhxvhdrseven5mktwo +1fivegxdknn +3onetpqdddbhb2seven2 +7seventhreebzcqpkdck5dc +seven71 +eighttwo1 +dfflcrcqfiveone2seven6 +qpf8 +1seven1bjsmxzr54four5 +mmztpseven836four +three8htqhzkrxhrfourthreebdrmjsvpfb1 +zjhljpmmdms998ffjqgxgbkdbvxxppdltbrpzcbf +rj76 +vlxnnqxr4eight +2twoonefourtwosevenpdpfkgdhhzlbfq +cn5five4 +hhqzsxlm45twonine +ncszsls1z2 +ktxkkbhcxcbnffzbsix8bf4r +xrk1bvvrxvkreighttwoeight +4eightqbmtpsl2six +13jzchfndpjpone +fivefvm1sevenhjxrnkg2bfmdnbj8 +9gcfmkhqrczseven7jkshrh +twornrbjlvsdr1threem +njzxgftwo4two +threertvjcmtlr7nxhghbnvkq +6seven8drfivecvv3cr +fivefiveddnhmz25nine7 +2eight4nine47 +nthreetwotwo67 +4mbsqbpvf7threedp4fourvvdgkvzfkz +sixthree1twozxldcqnvdcksfiveseven +nh2 +4rczvpnvsptwo +foursevenone4 +5sixkvsjjqzs32kbghctffhssmg98 +zbclnpj3ncgjrpz6tcgdvjpdmkk1 +4mmsbtfivetwodgvbhrzrlh +sfour2fivefour +jx9 +xltwone6 +1szbglvbcblqtdqrbdqqhbfzrrq4sixfivezfb +two8klhvgbm97eightfour6 +szslrmeightsz61eighthnhxv1 +seven42sznlgdsdgfj +three2eight26nine +4sevenfmxrhgkll3fivefjsxninefour +onenlzksgpz2ggnvsmlxxsvqsix6twodbdzvkbhhl +mxs62zfsmkgmxzl6nbsix +9sevenlbbt9twonet +32tworbbmnbgqjd +jrx7mpbcvqfhfr7sixsixkqmcj +vcdcthreefour5bbqbhxqjkqqzkdk +onesevenfourhxfvfoursrq4n1 +six1hglqzjxfxxd4 +4lkjljr2 +3brlmgbpdnpslgcsevenxrrftvzlxc5nine +czhmhhnrxrbzgtmvn1mbjpnrlsevenbfbztqfp +xnctftbbm3seveneight9kpkfour +xsixsixh5three +2lzslqtllcpfdq3 +six2xstqpjctsxgtwo941 +sixthree6 +636bmxvvfztzvbrxbfh1four +h4pcllfnine +pknldv4jzlkngvqslchstsnfj7sixsevensevenb +78threegfclmstbxt +9three9mnkhrrlbgonethreef1six +2bzslfdpvoneeightthreeone3jpqjk2 +1nfjttgvlsn6eight2hznlx +7three7sevenbdngj6threeseven +one8qdldvhjhrfsixgscfnpvbm2 +mqlhrjksdtbrvrgvpc884ngrddthzjgtjxnjq +kpndxtponenine97 +vcpsjrxlpfqprxz7threeeight2 +ztgckbfr5twodpznplgl32rfqjhrvhgmkd +threehfvxnkfhdgmtwo16 +6seven36qrndxhxljgkskgtjdtscczz1 +ndcqhqnvtppkfbgljkrd3xfdvqhxkx94 +sixgonebbblkbbqvccnvm2jxpvlnrbmjnsrnqgbb +sevenmeight2rlvbkxmxfour3nine8 +72bcdrcbzffkc3oneightnc +onesevenfour57 +sixnmplqnfx1eightfour +nine5bh4eightseven +7gcqthhztknjslxfbcj19 +five2fivethreedbrkgchn8 +221565 +26three83vmtlj +nine5threeninezgjcpssevenone +xshxdblgf8threehxkntrdn6lghpzt9 +fdfqxmn3eight6zssbgnddcv +eight1hrrqmzjjq +ckhpqtwodqz9r +zbtjjffourninesix7bqz +jeightvfdqttxmsix3pnh5lgf +6onerqbdslg +fivep26two +onetwogscnvv1 +eight1487 +threekksixnine6 +69sixoneqhhrqsg +8sevenmtcm +three1jlbfpfdxpqpzspgcllfv +27one +mlmfourseven3 +sixninercgrkdpd9 +three7kmvsztmxjsixthree3bvhmhthreesdrbq +mk7 +jstwone8fourkrlmtfk7qjvrghcbfive5 +eightchvxseven9nine252 +five68qoneeight +seveneightfive2threetckdpkqrnqpthreevlqlq +jlcpvfxpq867xfcjcddvjkjdfnqtnjp1 +prxzmdmbxbfljckhd7pbc5three +92fninenhnxjlzninenqmhmmlsfqf +ftmljhqxjdhddkbtxlbz9five +oneone4cfsnxltqfbnzzljseven +gbktqjbrtgsevenninexf6seventwonine +nine3fournine +1fourtwo17seven +twosixmpnpdzmjxlmjsjdnkmnhmdtdg7xrbknkplsix6 +fqzqxzkgzrlkmqfour53seven2 +8three27eight4onekgrlc +nzrlgrvfive3vdtqcqrm6 +4qfgvppninetwoone4 +threelpmgkfxoneseven8threebmjtdl4 +slkrnqlpfxcrgxmnd9one7 +fouronekbfmdrjxvn8kz1twosevenrth +8xbvkfqmzjg +six4xcx97lzninefivenine +threesixhfvnjrvpf1sixseveneightfive +8ninethreethreepdlddhdfp +two47threefour +61czbc4cvklssbpt +8712st2 +lgflr1three +ninenine9 +ptx86five +291 +seven82three9 +mxfhmtcjpxqqsl68hpcfvjj +1qmvjl6four +3six84 +fivefivefourfiveeight7eightwods +2seven5five2d +6five3hqbjsrzhtkv7 +4pgcsxslr6h623 +three8one +8xnsgbjhz9 +3gtqbhdzjninetwo6thrfssxqptjbtmkkmlddhdm +6mldxcjnxv9 +mc8one88 +h4 +fivefour2s +9q +fiveseven8two8lkrtvdqchbvnmzmlhgqbcx +cpcgpg9cnbsixsix +vglgjf9qzcspsnsbrktbnpnppzmgldtwo +three2kllpcvmmgcseven +twofivekvcnfpkplnv2threefivehvxpthree +36h6hzfhhbtqgqfgthreesix +86kkqqseven9 +7jgncdninejvmqdmone5sqjp +seventhree4eight9three +38knvgxrftdtwo1 +ksgjdlpxhztnlfc6hxncbgbmgzldvlvmgrjkmtwosix +dtoneightone427 +3518msltkgqthvjhs +75qmqvkmf5six +85pvvthreeseven +ckqoneight4xqqnkdnzpggmxrmhkhx171nineqgd +76nine +6threentcfsvvfseven1eight +23fivetlqdfhxgg312nine +1pjninexlqnthreeoneoneoneightx +6one1 +lfjmdhpj9fiveonelvfivenine +4xjmxfxxfsbxgk9sixhq +8six8vszdsslqntzjqxx8two +4one88995five +nskmvtzd1five +4tpzxkbfq1vlxpvzbxnhqtshzhfourtwo +7six341gsl77eight +94dvc +qzkmxqqh6sixvn +sevenoneone26m8 +ninedtfvl3four15eightjtpfhlzzct9 +5ninesixtvvpblfqgb +5twoseven4onedcsqj6 +gcbtzns6eight52ccvvpsbdgfgg +tczvbfxfvcbfxzvvxp9three +fourkczgcb9knnpkd3 +9ninefive8nine5 +tnkpsxjm7four45bpdg +twofour1glkvvkq +fiveeightfive8vbqtsmhjqr5vgbmsxrkh7four +lhncnxngfour9five +5six36five4 +74ckc +lkeightwol11 +five3mnlbmsg2 +hmvmgnqlhdgonedxmjxxbpbpt1four6zh +svmmzbbj5 +3l4 +1dgfnone17 +667 +1qlcg4seven +756ghcxrmrgtninefivegvmtjhfrj +6twonehjv +vpgeight7twonlcfcdspmvpcfj6five2 +76jhj4sixeight +vcfrscgccnine6j +mhm8kfjl33ninefivethree +85bfqjpdmbg92rjbthcrfgvcjzqhpgb +nine554ltcgj5 +eightfivevjszdqkf96ninemgldmdth1nine +sixq4pcczfqc +three7two +eight9csevenfour +fpnnxvcttscfrgponefive8twohgfkhbssix +smkjtzm72vmtleightjmkxkgpfzmjpmbbd +7two1lxvqqzzrvj31fourprzmsdzbf +kffeightwogzcqpzdbhfvmckxmbhrgvonevcshkbctbc524 +fcsoneightnmtgzbbnflnnlk5two +6gkxbhgzbmltwosrmone1five +sjrfkfjszsix49 +47seven82fourfhhfmlshdsix +sixhjqszlc6kzzbqsldk +nineptfourrvrghq7 +4four5one148jcbvnbj6 +ninezfcrvxfnjd6nine +bfjfbpfseven7 +bdzmktwo4fourkrjj3 +nhnfv725 +sixeightsixkkndrj7 +eightone2m246 +fourhsbdblm74fourcphtwo +khrjxxrltbpngsmzndgsjmzvgqxfhvkct6eightzrvpmpcc3 +mlsc4qnlhqjfour +956onefive +1xtmbmkscvv2onefivelvlztjtctz5eightnine +32tmphhjnlfsixskninekjdcftm +krgp1hdhgvgpgbvbxgfngvktwo +klpnpcplfhlztjgv17six +5dsxngmpdvjhnlbhxmp7xqqtgdoneightdvm +threeeight3t +5fourlpqzq2two1oneqlq +eightfivesixnineeightfour1 +52ppqztdggqgtphdfz4fkrkfztzzqldpg +seven7zbone +xg79onef6eighteight +three6nvhnqeightgkttsvtwofive9 +rjsevenonefllcrdnbmqcmxqsq38 +twoseven2dppxgmlhr61onenine4 +sevenb3btzhscqbrxxjkhtzpv +859two +threetllmjmhdjr18two +94tmvfpzmgvzsm1fmbhkhzffkzllx +nlkndffq2three +6ninemfour8rbxvj6 +7clxtxrt1lqg5 +onefivegjnfzkvg9 +fplrvmqjdfxvjdfivesix6rpnkfour +5fivetwoxdgchbjjrckntlgblsxlcznfd +eight7fourfour +3kmtjlfbgssixmspkfzrgxtctksix4onetwones +8five15sixthreeljsfive +9lnn +nine7pzrxnnkthreesdjxphsrf4hc8 +three6115nqhllcmpmzcfour +vpqjnvmltx8fivefive +vrlqlj5fivesixninebqhgcpgmgkmflvn +76eighteight7 +8qkmnsjxbfhcpsvn4 +oneninexqdseven4threefive +rpcvmnng162fivesixseven +31628eightthree +83d6fsfqdghztwo7bmvrlh +gknfcdqlrs25 +9gkkth2ps +bxnvsjxqleight9ninenine +rsmcrqlnhsmjhspseven96vsckknrggbjd4tgtgbkxgvt +8seveneightcxrh +tkmfour8fivevl9one +8mgrxk +fourbgckqkeight6f +threetwo3eight652pp +ninefivetwojbhglxfxzfctwo8 +jmjtcvpsxzdbkbqthree1qmgznpbzlthree4six1 +foursix5 +6nbdzdlmqpdlgpcclc +24 +pseven3threeeightseven +7nine7gjdksbtqrrdsr +5ppflb48tkcffone8six +five2two7hstbbqzrninegbtwo2 +eightfblzpmhs4 +fbbdeightzzsdffh8jbjzxkclj +3nine6five1 diff --git a/2023/1/testinput b/2023/1/testinput new file mode 100644 index 0000000..1ba8437 --- /dev/null +++ b/2023/1/testinput @@ -0,0 +1,4 @@ +1abc2 +pqr3stu8vwx +a1b2c3d4e5f +treb7uchet \ No newline at end of file diff --git a/3/3.ipynb b/3/3.ipynb new file mode 100644 index 0000000..501f469 --- /dev/null +++ b/3/3.ipynb @@ -0,0 +1,80 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"what(){mul(697,542)/>why(479,94)mul(995,893)why()]%?:]select()%}mul(408,907),{from()$&&/mul(893,282)[#%@(who()what()!~mul(313,566)@@how()$mul(964,183)]how()where():?what()>%mul(743,40)*']~+/!mul(241,491)<{]<)]from()how()'from()don't()&where()%how(216,229)how()where()!mul(35,991)when()why(610,462)> select(594,57)$}&^mul(699,136)}]?who()when(){mul(970,603) ?mul(200,732)/[:select()(mul(967,199)+select(),/!how()when()mul(521,824)#;]:+&->)}mul(473,278):$&mul(347,457)}&*why()~ when()mul(324,773)-$ mul(460,152)#-;~,when()@mul(331,186)%don't()]-mul(197,390)how()mul(774,494)/from()))how()),mul(758,549) >why()mul(485,656)where()~-mul(938,190)&mul(326,51) mul(304,567)mul(165,576)+'-]when()'+why()/mul(906,352)from(618,898)where() how()#~mul(508,347)what()when()/&^why()why()mul(847,535)~ #)from()what()$)/do()//)where()what();where(200,117)how();+mul(242,61)?:-?mul(371,193)%%mul(173,850)*from()why()# ,#)mul(566,907)&don't()/how()&mul(412,399)}^why()from()mul(905,46)^from(169,718)!(when()mul(920,500)*don't()who()how()what()}why()-]who()who()(mul(927,865)@select()mul(371,913)mul(254,979)-select()mul(614,684)$;,{mul(841,422)!when()^mul(292,172)/]what(),&]mul(668,298)what() mul(788,698))&mul(241,230),*mul(513,152)}*:[/mul(762,255)*/mul(199,330)how()')^mul(716,272)}#-select(196,254)-&how()*mul(181,411)@){]#%:,mul(830,669):-[>!select()who()mul(490,309):mul(597,806)who()mul(911,931)when()]:mul(749,304)select()$who()*&$:!}mul(499,106)why()select())when(453,833)~%^don't()who()<]]>}{(mul(666,746)@&where(){do()from());why()where()#mul(436,226); what()^from()~when()*mul(333,877)&[mul(849,387)mul(846,509)$mul(690,845)where()what()-~where())mul(120,516+'[;where()- mul(671,693)]who()#/mul(151,226)'what()mul(662,390)when():don't()how()mul(586,859){who()+}*?select()*}[mul(162,392)##who()!don't()^from();select(183,354)+@#+how()mul(235,965);<['*@*&mul(836,254)#who()^,{~*&from(912,964)mul(81,63)('who()+]who()who(616,562)&[don't()-%select()>why()&:*mul(148,501)<'?don't()/'%$when()+#mul(565,716)how(551,943)~>':)mul(812,235)(who()@what()do()mul(933,530)mul(516+when(95,848):what()/~mul(685,485)why(){[<^,from()-why():mul(372,990)^mul(780,194)~(when()-$> mul(158,500)where(213,721)where()-+mul(783,720)]select()mul(830,674)-*,;^)mul(542,769)<>;@;mul(340,494)~,mul(972,343)-*{<}*why()'&@mul(995,93)}/}^&mul(632,3)~mul(151,607)'~who()~+ why()select(970,692)mul(253,471)what()}select(450,660){mul(186,635)!'from():>;@+mul(109,407)mul(231,530)who()'mul(721,360)(#{what()?mul(764,403) mul(974>mul(700,804)>:>select(108,396)-where()where()~#from()mul(618,688),?*mul(786,325)']who()-([mul(312select()do()from()@%mul(647,88)+!mul(920,442)where(){$mul(876,103)select()select()&<-~';#mul(658,434)\\nwhat(203,778)-)]mul(25,629)why()^$~)?why()mul(207,846)(from(560,549)select()&-]?>what()mul(782,867}(^}^mul(48,779)<$where()how(396,689)mul(623,278)}select(34,689)when(),how()%({;$mul(494,74)*from()when()mul(35,522):> &&when()mul(328?}mul(186,822)]when()how())why()mul(775,741){->%mul(812'{~;mul(202,822)-mul(282,383)what()from(340,89){mul(729,896),^-what(313,84)mul(172,196#mul(447,361)why()&*?/who()(+mul(395,872)#^^{@,-mul(394,873from()%mul(988,272)(%select()!~mul(101,388)what(),how()how()$#how()*mul(551,577)%what()mul(191,793)''don't()mul(744,26)!select(){'>,mul(140,452)mul(887,632)#>}{;@^+-mul(835,39) how()+/-}*},@mul(66,401)what();why()]] %+&do(),when();:who()[select():mul(474,260)who(),{,)}why()%who()mul(126,874)}where(746,668)>mul(60,400)~#select()select()@:mul-@*%when(134,304)?how()mul(18,684)what())'&/ ,{^mul(770,406){{@* {who()who()-mul(312,245)/>{when()why()from()^&mul(936,201)&from()-#$(mul(970,306){%from(193,334)mul(770,300)how()don't()mul(17,145)(%mul(204,15)]#!mul(592,786)+?what()*^mul(903,387);}($mul(977,422)where(136,281)mul(412,540)select()@&,mul(331,930)where()!;%why())!mul(647,169):!mul(624,260)>,^^!where()#+mul(364,706) why()[when()(?from(361,489)~?/mul(572,99){mul(162,620)select()#?'$)mul(963,810)(<'^mul(381,182)mul(154,418)(mul(307,576){;select()mul(872,424)[,{&){&/mul(542,342)&*(when()+#/>mul(29,665)$don't()?where()mul(903,998)%?select()])#;mul(660,171)who() why()>what(), mul(956,616);,$,}mul(982,695)-:where()why()mul(585,888)why()where()]!&{mul(422,906)select()where(721,370)mul(673,348)from() mulwhen()~don't()',@&+]]where()$ mul(813,553)+'who()-where()select(){{,:mul(535,550)how();&;what(992,219)mul(564,279 mul(551,875)?how(920,226)(+;+?;^mul(383,579)?##%{ [*mul(576,484)>:}<,+when()do()>who()&#how())]what()mul(272,737)-/,who():;#+~]mul(580,211) :from()[&/what()}mul(893,368){*&+mul(393,508)}-!^when(962,123)]@/mul(184,205)when()]]when()'who()mul(249,915)when()from()-@/ how()~mul(495,101))<(}+%,:?,mul(356,636when()(why()^]]mul(662,103)#mul(118,597)mul(968,629):why()@]mul(676,360)select(),'select()-,mul(579,23)@why()@$:what()mul(370,656)\\nfrom()'/,what()/<,%how()mul(748,154)>[select();,who()>select():'mul(663,830)%@(mul(417,364)-why()'mul(947,551);!/)!++mul(385,221),>%#mul(410,27)}from(669,909)&who()~:'<)how()mul(203,50)why():$who()from()^{^(mul(425,96)why())from()#*&[}mul(657,805)why(){$&mul(764,125)what()select()mul(118:%;do()where()@why()@{'mul(3,361),/mul(9,725)who()from()'from()}>@*!mul(258,517)@! !}[mul(734,173),>~mul(567,929)>^$%}?mul(458,106),-mul(904,99)#where():!mul(304,344)('] )mul(474,433){]why(552,617)[*>*[?mul(292,452)@/when():mul(671,8)what();mul/*&mul(157,964)):+$^:select()mul(577:@(mul(481,28)mul(120,742):+&@mul(932,682)don't()#~,]{mul(584,430)don't()!who()]]/$when():mul(447,144);)~#mul{select(899,436)}:when()mul(18,3)$'why()/ select()*(~from(848,249) mul(402,212#(when()what(526,893)(when()who()!select(855,813)mul(267,568)?when()~?mul(790,400)how();:%mul(565,976)*}how()what()>+from()from()#don't()>what(465,504)+,+/@^mul(702,607)/%mul(775,709)from()what()$(where()^what()why()when()}mul(728,176)&$~mul(732,727)^'&mul(999,652)']~mul(780,700)-~&{-{<*select()when()mul(729,462) mul(105,648)@;,?^#!how(963,469))mul(906,654)&]who()from()&mul(881,852)how(),how()where()where()@(<(from()mul(822,522)mul(874,978)mul(233,399)select()from()>/;where()when()^[why()mul(474,473)where(896,324)^mul(638,197)}how())-{>how()why()}>mul(611,521)mul(364,693)why(),-&where()+># how()mul(53,996)/<[where(204,56)<-;}~(mul(547,235)+where()~%why()'select()mul(407?%%]/how()~>^mul(749,65)mul(171,190 why()%+?when()when()&how()]!@<+%don't():-@{who()#mul(104,125)when()>{<-%mul(627,539)when()]how()-select()]mul(983,406)+where()]-when()when()mul(537,478)from()#~)how()mul(305,547)/&?)%+who(){do()^who()why()+*select()@#^mul*+!mul(324,352)*{why()select()when()where()how()++@mul(758,823)>from()(how()mul(155,143)how()$[] +-mul(220,494)<#how():&@what()mul(996,77)],<}^where()%mul(153,549)/$&}[[#):!mul(974,546)!where()mul(406,100)mul(684,435)mul(36,14)*,$@~,don't()<{@*&mul(302,244)mul(934,996)}-when(),;where()->mul(184,150)<~/!){mul(457,435)/select()mul(692,366)mul(294,439)(*where()who()why(124,291)$how():don't())mul(238,489)[;(^&/}select()>@mul(199,347)(<(#mul(135,803),what()where() !):!mul(119,226)-)],who()mul(443,526))how();where()mul(652,762)from()$)'$^[!mul(915,54)%'what()where()who()mul(685,223)^how()$]/'mul(660,757))mul(401,390)!) ;what()what()@{:mulselect()#( ?where()[+when()mul(677,473)~@:select()]*mul(368,274)#%{where()mul(387,806)!@why()select()''+mul(673,924)}?%mul(544,205)%? when()+mul(990,513)@'&:(]mul(115,860)?-<*>how()mul(452,49)>mul(672,248)why()~where()^+[mul(15,506)>}don't()}~,~when()mul(732,173)mul(26,691):where() where()who();when()}mul(483,470)+/ select()mul(693,863^/&mul(999,441)what()&select()?, ?*why()when() *mul(114,59*[>{-{#!/usr/bin/perlwhy()mul(247,67)?what()when()%what()@'{+mul(453,52)\\nwhere()mul(231,244)>>/where()mul(216,829)who(){%mul(552,537)when()]$mul(185,377);}>where()::why()mul(300,903)]#!mul(61,613)/mul(106,584)^,'?; &'select()~mul(145,411))?what()+&how():&mul(139,18)/where()< ,from()+&don't()#% ,*mul(158,236)^,(what()!?mul(861,544)]:who()how()-*how(),mul(103,378)+):what(712,256)-+$:from()(mul(172,254);?;how(){{}@mul(812,458)how()(,:)))~mul(256,397)#]from() >?where()[~mul(132,458)/<[mul(441,730),&+mul(410,879)@@select()@$from(424,812)-mul(80,361);(select()$!:?mul(3,489)(mul(692,445)-?:[;/@mul(630,252)-<:~how()%:mul(755,275);}why()*]who()$'what()mul(404,857))}when()}:mul(795,571)}?'?what()&>who(709,757),[mul(85,479)[^ /mul(12,677)mulwho();@]why()mul(507,433)how()%;{mul(703,269)@'from()&}mul(195,324%where()mul(333,588)who(210,905)@{how()-why()don't()',~^who()mul(976,376) ;mul(617,616)+don't()~how()^/},#&how()~mul(464,668)>(%$from()>what()mul(330,462)don't(),$]~mul(47,160)select()'-<}^what()mul(813,866)@mul(932,649)from()how()when(){]^^$where()mul(298,181) ^ '!*:mul(395,824);>>@->!%mul(169,544)when()what(165,141)]$',>?$mul(677,950)+<#[select(680,459)mul(104,437)how(){mul(238,478))+#:(~where()~mul(990,466)<~#mul(67,165)where(103,910)@(when()^*~,when()'mul(820,708)]}&when()?%#/mul(489,883)[{ {^where()mul(278,843[mul(865,505)+'why())mul(545,55)(:{+mul(248,445)?mul(391,995>#-,*%^ mul(354,732)!/mul(619who()^*[,~[~>$why()mul(723,806)who()from()[why()?$>&mul(721,363)>what()how()]^+mul(301,140)^~:~who()mul(469,571)~mulwhy()from()+'<'don't()&<~mul(219,408))^mul(215,767)-]mul(519,445)mul(907,35)what()-!^why()what()-how()select()mul(742,645)mul(213,651)&+when()mul(942,859)^*from()mul(871,479)<^mul(88,805)mul(397,727-([*select()what()what()select()$/+mul(24,343),@from()mul(594,62)+['from()#mul(807,849)~%+*}mul(552,461)]from()@!@#select()who()^~don't()?;]mul(201,836)&+&>mul(741,810)\\nmul(695,640)[mul(908,779)+/mul(78,761)[+?};*{mul(105,818) [from()-mul(451,768)what()]!what()from()what()when()~^mul(619,244)[from();,&from()where()from()^?mul(899,374)when()#^:/mul(541,467)/mul(692,925)why()how()what()>/:^mul(463,858)how()where()^:[~mul(31,347)?<})*>!/mul(627,404)do(),?^$when() mul(24,930)mul(873,35)select()what()where()/don't()&& [mul(248,460)&where()from(45,338)*?mul(16,424)'}mul(9,674)<}select()$@mul(985[mul(441,498)]what()@'/{mul(626,540)[;/%,mul(764,748)mul(867,602)why()who()what()mul(885,438)who() ]-{'~/>mul(668,937)&(mul(973,416)when()mul(647,557)~how() {+?@mul(485,856)how()select()when()/select()mul(33,198){!mul(382,685))why()!*mul(711,362)<*what()mul(645,252)from(479,19)where()who()mul(561,165)?>$*?:mul:#mul(877,920)#:-mul(440,17)how()>![,@+]mul(151,701)}^[$*mul(353,641){^$+>~%{;}mul(39,274)*mul(657,123)how()*where(){mul(346,442)mul(790,227)?when()>when()(!%mul(60,33)&/$where()}$-<:{mul(930,295)%from()how()@$from();who();mul(494,10 #mul(700,474){^mul(552,224)~'how()select()%}mul(5,285)mul(833,131?%>/from()mul(457,368)^'>%>mul(233,98)[' <^mul(312,497)mul(933,575)who(){mul(859,323)-mul(484,721){where(445,310)),>}!;,?mul +)*:%?mul(122,560)what()select():+mul(749,209)mul(478,283)&#mul(67,742)@^mul(494,481)&%from()':!/&:why()mul(768,612)where(),:]$mul(512,595)mul(658,426)what()+>)where()%&mul(213,517)++what())what():who()mul(891,196)@when()why()mul(46,798)@)select()[how()mul+from()select()mul(128,259)when()/select()when()-*):}mul(115,723)select()@where() mul(235,95)mul(507,424)why()] !mul(680,738)/<&$)>mul(349%]how()mul(719,909)when()%*mul(27,357)mul(734,373)/{>%;[$!mul(733)why()&mul(938,12)\\nfrom()#,why()~& ;#:mul(731,521)*how()} do()mul(399,167)from()mul(71,499)how()from()%!who():;mul(730,287)why()mul(422,401)select();@+[-mul(742,851)< ^$why()mul(153,315)+%mul(206,613): ,from()[~select()mul(971,155)[%*:&{mul(239,834)'#:{'~$;mul(224; mul(163,711)$$/!select()^%do()&where()>@*from()select(719,23)#:,how()>from()mul(874,522)'what()!from()*select()mul(950,277),<@-!*mul(35,822)>)~*mul(934,771) #mul(752,754)how()-from()+who());]:where()/select(297,243)!%+mul(603,67)#]}what()mul(486,614)mul(761,335)! %:[;from()^when()mul(162,639)(({;%) mul(410,831)mul(74,9) [),}!!+?&mul(365,386)?do()&from()who(486,875)why()mul(545,922)*mul(333,104)where()do()~$^who(),[;mul(357,374)$}what()/from()^when()}/mul(828,346)mul(128,556))*{:from()@mul(277,303)#[^-%]how() /mul(817,849):mul(477,520)&$what()}<{]#]^mul(263,446):%when()-&how()from()[&>mul(307,210)]!+mul(293,549){when()~mul(478,825)&what()')%mul(233,939)%]>;>}]mul(680,156);}~mul(66,418)when()/]'? select()mul(506,752) ?select()select()%,}mul(685,266)(from()mul(354,792)~+;when()~#where(){mul(745,146)mul(926,660)%mul(721,86)~?&#?mul(964,815){when()-why()mul(333,175)mul(490,526)when()^mul(370,894)>&who()'^mul(686,63)~[?!%'select(){mul(543,91)@#mul(43,96)where()mul(278,584)~%)where()%mul(163,853)&#when()'mul(561,872)#when()where()'~don't()mul(896,297)<'>@mul(919,548) who()how()?@+when()]%(mul(691,41)$;+]&who()-**mul(272,776)}what()#why() what()who() when();mul(824,393)-@ %[^,why()do()/mul(891,874)$'<!&@** )mul(437,39):]'mul(255,961)!what()!mul(22,237)~mul(287,360)select()how()what()}^mul(153,348){when()&)}{/{mul(8,764)how()@}mul(231,703)why()>%~!when() ^mul(418,457)select()how():?who()$when()when()mul(957,951){'where()'mul(6,320)~mul(168,639)^!mul(715,855)~select()^mul(44,209)&mul(767,449)mul(503,357)^where(),]select();mul(571,436)]-select()select()&\\n\"" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#read lines from input and store each list of space separeted integers into left and right lists respectively.\n", + "with open('3/input', 'r') as f:\n", + " data=f.read()\n", + "data" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "170068701" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import re\n", + "mulpat = r'mul\\((\\d{1,3}),(\\d{1,3})\\)'\n", + "sum(int(x)*int(y) for x,y in re.findall(mulpat, data))" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "78683433" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dopat = r\"don't\\(\\).+?(do\\(\\)|$)\"\n", + "cleaned_data=re.sub(dopat, '', data, flags=re.DOTALL)\n", + "sum(int(x)*int(y) for x,y in re.findall(mulpat, cleaned_data))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/3/input b/3/input new file mode 100644 index 0000000..9c2c542 --- /dev/null +++ b/3/input @@ -0,0 +1,6 @@ +what(){mul(697,542)/>why(479,94)mul(995,893)why()]%?:]select()%}mul(408,907),{from()$&&/mul(893,282)[#%@(who()what()!~mul(313,566)@@how()$mul(964,183)]how()where():?what()>%mul(743,40)*']~+/!mul(241,491)<{]<)]from()how()'from()don't()&where()%how(216,229)how()where()!mul(35,991)when()why(610,462)> select(594,57)$}&^mul(699,136)}]?who()when(){mul(970,603) ?mul(200,732)/[:select()(mul(967,199)+select(),/!how()when()mul(521,824)#;]:+&->)}mul(473,278):$&mul(347,457)}&*why()~ when()mul(324,773)-$ mul(460,152)#-;~,when()@mul(331,186)%don't()]-mul(197,390)how()mul(774,494)/from()))how()),mul(758,549) >why()mul(485,656)where()~-mul(938,190)&mul(326,51) mul(304,567)mul(165,576)+'-]when()'+why()/mul(906,352)from(618,898)where() how()#~mul(508,347)what()when()/&^why()why()mul(847,535)~ #)from()what()$)/do()//)where()what();where(200,117)how();+mul(242,61)?:-?mul(371,193)%%mul(173,850)*from()why()# ,#)mul(566,907)&don't()/how()&mul(412,399)}^why()from()mul(905,46)^from(169,718)!(when()mul(920,500)*don't()who()how()what()}why()-]who()who()(mul(927,865)@select()mul(371,913)mul(254,979)-select()mul(614,684)$;,{mul(841,422)!when()^mul(292,172)/]what(),&]mul(668,298)what() mul(788,698))&mul(241,230),*mul(513,152)}*:[/mul(762,255)*/mul(199,330)how()')^mul(716,272)}#-select(196,254)-&how()*mul(181,411)@){]#%:,mul(830,669):-[>!select()who()mul(490,309):mul(597,806)who()mul(911,931)when()]:mul(749,304)select()$who()*&$:!}mul(499,106)why()select())when(453,833)~%^don't()who()<]]>}{(mul(666,746)@&where(){do()from());why()where()#mul(436,226); what()^from()~when()*mul(333,877)&[mul(849,387)mul(846,509)$mul(690,845)where()what()-~where())mul(120,516+'[;where()- mul(671,693)]who()#/mul(151,226)'what()mul(662,390)when():don't()how()mul(586,859){who()+}*?select()*}[mul(162,392)##who()!don't()^from();select(183,354)+@#+how()mul(235,965);<['*@*&mul(836,254)#who()^,{~*&from(912,964)mul(81,63)('who()+]who()who(616,562)&[don't()-%select()>why()&:*mul(148,501)<'?don't()/'%$when()+#mul(565,716)how(551,943)~>':)mul(812,235)(who()@what()do()mul(933,530)mul(516+when(95,848):what()/~mul(685,485)why(){[<^,from()-why():mul(372,990)^mul(780,194)~(when()-$> mul(158,500)where(213,721)where()-+mul(783,720)]select()mul(830,674)-*,;^)mul(542,769)<>;@;mul(340,494)~,mul(972,343)-*{<}*why()'&@mul(995,93)}/}^&mul(632,3)~mul(151,607)'~who()~+ why()select(970,692)mul(253,471)what()}select(450,660){mul(186,635)!'from():>;@+mul(109,407)mul(231,530)who()'mul(721,360)(#{what()?mul(764,403) mul(974>mul(700,804)>:>select(108,396)-where()where()~#from()mul(618,688),?*mul(786,325)']who()-([mul(312select()do()from()@%mul(647,88)+!mul(920,442)where(){$mul(876,103)select()select()&<-~';#mul(658,434) +what(203,778)-)]mul(25,629)why()^$~)?why()mul(207,846)(from(560,549)select()&-]?>what()mul(782,867}(^}^mul(48,779)<$where()how(396,689)mul(623,278)}select(34,689)when(),how()%({;$mul(494,74)*from()when()mul(35,522):> &&when()mul(328?}mul(186,822)]when()how())why()mul(775,741){->%mul(812'{~;mul(202,822)-mul(282,383)what()from(340,89){mul(729,896),^-what(313,84)mul(172,196#mul(447,361)why()&*?/who()(+mul(395,872)#^^{@,-mul(394,873from()%mul(988,272)(%select()!~mul(101,388)what(),how()how()$#how()*mul(551,577)%what()mul(191,793)''don't()mul(744,26)!select(){'>,mul(140,452)mul(887,632)#>}{;@^+-mul(835,39) how()+/-}*},@mul(66,401)what();why()]] %+&do(),when();:who()[select():mul(474,260)who(),{,)}why()%who()mul(126,874)}where(746,668)>mul(60,400)~#select()select()@:mul-@*%when(134,304)?how()mul(18,684)what())'&/ ,{^mul(770,406){{@* {who()who()-mul(312,245)/>{when()why()from()^&mul(936,201)&from()-#$(mul(970,306){%from(193,334)mul(770,300)how()don't()mul(17,145)(%mul(204,15)]#!mul(592,786)+?what()*^mul(903,387);}($mul(977,422)where(136,281)mul(412,540)select()@&,mul(331,930)where()!;%why())!mul(647,169):!mul(624,260)>,^^!where()#+mul(364,706) why()[when()(?from(361,489)~?/mul(572,99){mul(162,620)select()#?'$)mul(963,810)(<'^mul(381,182)mul(154,418)(mul(307,576){;select()mul(872,424)[,{&){&/mul(542,342)&*(when()+#/>mul(29,665)$don't()?where()mul(903,998)%?select()])#;mul(660,171)who() why()>what(), mul(956,616);,$,}mul(982,695)-:where()why()mul(585,888)why()where()]!&{mul(422,906)select()where(721,370)mul(673,348)from() mulwhen()~don't()',@&+]]where()$ mul(813,553)+'who()-where()select(){{,:mul(535,550)how();&;what(992,219)mul(564,279 mul(551,875)?how(920,226)(+;+?;^mul(383,579)?##%{ [*mul(576,484)>:}<,+when()do()>who()&#how())]what()mul(272,737)-/,who():;#+~]mul(580,211) :from()[&/what()}mul(893,368){*&+mul(393,508)}-!^when(962,123)]@/mul(184,205)when()]]when()'who()mul(249,915)when()from()-@/ how()~mul(495,101))<(}+%,:?,mul(356,636when()(why()^]]mul(662,103)#mul(118,597)mul(968,629):why()@]mul(676,360)select(),'select()-,mul(579,23)@why()@$:what()mul(370,656) +from()'/,what()/<,%how()mul(748,154)>[select();,who()>select():'mul(663,830)%@(mul(417,364)-why()'mul(947,551);!/)!++mul(385,221),>%#mul(410,27)}from(669,909)&who()~:'<)how()mul(203,50)why():$who()from()^{^(mul(425,96)why())from()#*&[}mul(657,805)why(){$&mul(764,125)what()select()mul(118:%;do()where()@why()@{'mul(3,361),/mul(9,725)who()from()'from()}>@*!mul(258,517)@! !}[mul(734,173),>~mul(567,929)>^$%}?mul(458,106),-mul(904,99)#where():!mul(304,344)('] )mul(474,433){]why(552,617)[*>*[?mul(292,452)@/when():mul(671,8)what();mul/*&mul(157,964)):+$^:select()mul(577:@(mul(481,28)mul(120,742):+&@mul(932,682)don't()#~,]{mul(584,430)don't()!who()]]/$when():mul(447,144);)~#mul{select(899,436)}:when()mul(18,3)$'why()/ select()*(~from(848,249) mul(402,212#(when()what(526,893)(when()who()!select(855,813)mul(267,568)?when()~?mul(790,400)how();:%mul(565,976)*}how()what()>+from()from()#don't()>what(465,504)+,+/@^mul(702,607)/%mul(775,709)from()what()$(where()^what()why()when()}mul(728,176)&$~mul(732,727)^'&mul(999,652)']~mul(780,700)-~&{-{<*select()when()mul(729,462) mul(105,648)@;,?^#!how(963,469))mul(906,654)&]who()from()&mul(881,852)how(),how()where()where()@(<(from()mul(822,522)mul(874,978)mul(233,399)select()from()>/;where()when()^[why()mul(474,473)where(896,324)^mul(638,197)}how())-{>how()why()}>mul(611,521)mul(364,693)why(),-&where()+># how()mul(53,996)/<[where(204,56)<-;}~(mul(547,235)+where()~%why()'select()mul(407?%%]/how()~>^mul(749,65)mul(171,190 why()%+?when()when()&how()]!@<+%don't():-@{who()#mul(104,125)when()>{<-%mul(627,539)when()]how()-select()]mul(983,406)+where()]-when()when()mul(537,478)from()#~)how()mul(305,547)/&?)%+who(){do()^who()why()+*select()@#^mul*+!mul(324,352)*{why()select()when()where()how()++@mul(758,823)>from()(how()mul(155,143)how()$[] +-mul(220,494)<#how():&@what()mul(996,77)],<}^where()%mul(153,549)/$&}[[#):!mul(974,546)!where()mul(406,100)mul(684,435)mul(36,14)*,$@~,don't()<{@*&mul(302,244)mul(934,996)}-when(),;where()->mul(184,150)<~/!){mul(457,435)/select()mul(692,366)mul(294,439)(*where()who()why(124,291)$how():don't())mul(238,489)[;(^&/}select()>@mul(199,347)(<(#mul(135,803),what()where() !):!mul(119,226)-)],who()mul(443,526))how();where()mul(652,762)from()$)'$^[!mul(915,54)%'what()where()who()mul(685,223)^how()$]/'mul(660,757))mul(401,390)!) ;what()what()@{:mulselect()#( ?where()[+when()mul(677,473)~@:select()]*mul(368,274)#%{where()mul(387,806)!@why()select()''+mul(673,924)}?%mul(544,205)%? when()+mul(990,513)@'&:(]mul(115,860)?-<*>how()mul(452,49)>mul(672,248)why()~where()^+[mul(15,506)>}don't()}~,~when()mul(732,173)mul(26,691):where() where()who();when()}mul(483,470)+/ select()mul(693,863^/&mul(999,441)what()&select()?, ?*why()when() *mul(114,59*[>{-{#!/usr/bin/perlwhy()mul(247,67)?what()when()%what()@'{+mul(453,52) +where()mul(231,244)>>/where()mul(216,829)who(){%mul(552,537)when()]$mul(185,377);}>where()::why()mul(300,903)]#!mul(61,613)/mul(106,584)^,'?; &'select()~mul(145,411))?what()+&how():&mul(139,18)/where()< ,from()+&don't()#% ,*mul(158,236)^,(what()!?mul(861,544)]:who()how()-*how(),mul(103,378)+):what(712,256)-+$:from()(mul(172,254);?;how(){{}@mul(812,458)how()(,:)))~mul(256,397)#]from() >?where()[~mul(132,458)/<[mul(441,730),&+mul(410,879)@@select()@$from(424,812)-mul(80,361);(select()$!:?mul(3,489)(mul(692,445)-?:[;/@mul(630,252)-<:~how()%:mul(755,275);}why()*]who()$'what()mul(404,857))}when()}:mul(795,571)}?'?what()&>who(709,757),[mul(85,479)[^ /mul(12,677)mulwho();@]why()mul(507,433)how()%;{mul(703,269)@'from()&}mul(195,324%where()mul(333,588)who(210,905)@{how()-why()don't()',~^who()mul(976,376) ;mul(617,616)+don't()~how()^/},#&how()~mul(464,668)>(%$from()>what()mul(330,462)don't(),$]~mul(47,160)select()'-<}^what()mul(813,866)@mul(932,649)from()how()when(){]^^$where()mul(298,181) ^ '!*:mul(395,824);>>@->!%mul(169,544)when()what(165,141)]$',>?$mul(677,950)+<#[select(680,459)mul(104,437)how(){mul(238,478))+#:(~where()~mul(990,466)<~#mul(67,165)where(103,910)@(when()^*~,when()'mul(820,708)]}&when()?%#/mul(489,883)[{ {^where()mul(278,843[mul(865,505)+'why())mul(545,55)(:{+mul(248,445)?mul(391,995>#-,*%^ mul(354,732)!/mul(619who()^*[,~[~>$why()mul(723,806)who()from()[why()?$>&mul(721,363)>what()how()]^+mul(301,140)^~:~who()mul(469,571)~mulwhy()from()+'<'don't()&<~mul(219,408))^mul(215,767)-]mul(519,445)mul(907,35)what()-!^why()what()-how()select()mul(742,645)mul(213,651)&+when()mul(942,859)^*from()mul(871,479)<^mul(88,805)mul(397,727-([*select()what()what()select()$/+mul(24,343),@from()mul(594,62)+['from()#mul(807,849)~%+*}mul(552,461)]from()@!@#select()who()^~don't()?;]mul(201,836)&+&>mul(741,810) +mul(695,640)[mul(908,779)+/mul(78,761)[+?};*{mul(105,818) [from()-mul(451,768)what()]!what()from()what()when()~^mul(619,244)[from();,&from()where()from()^?mul(899,374)when()#^:/mul(541,467)/mul(692,925)why()how()what()>/:^mul(463,858)how()where()^:[~mul(31,347)?<})*>!/mul(627,404)do(),?^$when() mul(24,930)mul(873,35)select()what()where()/don't()&& [mul(248,460)&where()from(45,338)*?mul(16,424)'}mul(9,674)<}select()$@mul(985[mul(441,498)]what()@'/{mul(626,540)[;/%,mul(764,748)mul(867,602)why()who()what()mul(885,438)who() ]-{'~/>mul(668,937)&(mul(973,416)when()mul(647,557)~how() {+?@mul(485,856)how()select()when()/select()mul(33,198){!mul(382,685))why()!*mul(711,362)<*what()mul(645,252)from(479,19)where()who()mul(561,165)?>$*?:mul:#mul(877,920)#:-mul(440,17)how()>![,@+]mul(151,701)}^[$*mul(353,641){^$+>~%{;}mul(39,274)*mul(657,123)how()*where(){mul(346,442)mul(790,227)?when()>when()(!%mul(60,33)&/$where()}$-<:{mul(930,295)%from()how()@$from();who();mul(494,10 #mul(700,474){^mul(552,224)~'how()select()%}mul(5,285)mul(833,131?%>/from()mul(457,368)^'>%>mul(233,98)[' <^mul(312,497)mul(933,575)who(){mul(859,323)-mul(484,721){where(445,310)),>}!;,?mul +)*:%?mul(122,560)what()select():+mul(749,209)mul(478,283)&#mul(67,742)@^mul(494,481)&%from()':!/&:why()mul(768,612)where(),:]$mul(512,595)mul(658,426)what()+>)where()%&mul(213,517)++what())what():who()mul(891,196)@when()why()mul(46,798)@)select()[how()mul+from()select()mul(128,259)when()/select()when()-*):}mul(115,723)select()@where() mul(235,95)mul(507,424)why()] !mul(680,738)/<&$)>mul(349%]how()mul(719,909)when()%*mul(27,357)mul(734,373)/{>%;[$!mul(733)why()&mul(938,12) +from()#,why()~& ;#:mul(731,521)*how()} do()mul(399,167)from()mul(71,499)how()from()%!who():;mul(730,287)why()mul(422,401)select();@+[-mul(742,851)< ^$why()mul(153,315)+%mul(206,613): ,from()[~select()mul(971,155)[%*:&{mul(239,834)'#:{'~$;mul(224; mul(163,711)$$/!select()^%do()&where()>@*from()select(719,23)#:,how()>from()mul(874,522)'what()!from()*select()mul(950,277),<@-!*mul(35,822)>)~*mul(934,771) #mul(752,754)how()-from()+who());]:where()/select(297,243)!%+mul(603,67)#]}what()mul(486,614)mul(761,335)! %:[;from()^when()mul(162,639)(({;%) mul(410,831)mul(74,9) [),}!!+?&mul(365,386)?do()&from()who(486,875)why()mul(545,922)*mul(333,104)where()do()~$^who(),[;mul(357,374)$}what()/from()^when()}/mul(828,346)mul(128,556))*{:from()@mul(277,303)#[^-%]how() /mul(817,849):mul(477,520)&$what()}<{]#]^mul(263,446):%when()-&how()from()[&>mul(307,210)]!+mul(293,549){when()~mul(478,825)&what()')%mul(233,939)%]>;>}]mul(680,156);}~mul(66,418)when()/]'? select()mul(506,752) ?select()select()%,}mul(685,266)(from()mul(354,792)~+;when()~#where(){mul(745,146)mul(926,660)%mul(721,86)~?&#?mul(964,815){when()-why()mul(333,175)mul(490,526)when()^mul(370,894)>&who()'^mul(686,63)~[?!%'select(){mul(543,91)@#mul(43,96)where()mul(278,584)~%)where()%mul(163,853)&#when()'mul(561,872)#when()where()'~don't()mul(896,297)<'>@mul(919,548) who()how()?@+when()]%(mul(691,41)$;+]&who()-**mul(272,776)}what()#why() what()who() when();mul(824,393)-@ %[^,why()do()/mul(891,874)$'<!&@** )mul(437,39):]'mul(255,961)!what()!mul(22,237)~mul(287,360)select()how()what()}^mul(153,348){when()&)}{/{mul(8,764)how()@}mul(231,703)why()>%~!when() ^mul(418,457)select()how():?who()$when()when()mul(957,951){'where()'mul(6,320)~mul(168,639)^!mul(715,855)~select()^mul(44,209)&mul(767,449)mul(503,357)^where(),]select();mul(571,436)]-select()select()& diff --git a/4/4.ipynb b/4/4.ipynb new file mode 100644 index 0000000..28110e4 --- /dev/null +++ b/4/4.ipynb @@ -0,0 +1,183 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [], + "source": [ + "#read lines from input and store each list of space separeted integers into left and right lists respectively.\n", + "with open('4/input', 'r') as f:\n", + " data=f.readlines()\n", + "\n", + "data = [line.strip() for line in data]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "421" + ] + }, + "execution_count": 88, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "horizontal = sum(row.count('XMAS') + row.count('SAMX') for row in data)\n", + "horizontal" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "463" + ] + }, + "execution_count": 89, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vertical = sum(\"\".join(col).count('XMAS') + \"\".join(col).count('SAMX') for col in zip(*data))\n", + "vertical" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1640" + ] + }, + "execution_count": 90, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "\n", + "def diagonals(matrix):\n", + " np_matrix = np.array(matrix)\n", + " n, m = np_matrix.shape\n", + " for offset in range(-n + 1, m): # Diagonal offsets\n", + " yield np_matrix.diagonal(offset)\n", + " yield np.fliplr(np_matrix).diagonal(offset)\n", + "\n", + "matrix = np.array([list(line) for line in data])\n", + "\n", + "diagonal = sum(\"\".join(diag).count('XMAS') + \"\".join(diag).count('SAMX') for diag in diagonals(matrix))\n", + "diagonal" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2524" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "horizontal + vertical + diagonal" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pattern = np.array([\n", + " [\"M\",\".\",\"M\"],\n", + " [\".\",\"A\",\".\"],\n", + " [\"S\",\".\",\"S\"]\n", + "])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ True, False, True],\n", + " [False, True, False],\n", + " [ True, False, True]])" + ] + }, + "execution_count": 106, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mask = pattern != '.'" + ] + }, + { + "cell_type": "code", + "execution_count": 129, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1873" + ] + }, + "execution_count": 129, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from numpy.lib.stride_tricks import sliding_window_view\n", + " \n", + "windows = sliding_window_view(matrix,pattern.shape)\n", + "count = 0\n", + "for i in range(4):\n", + " matches = (windows == np.rot90(pattern,k=i)) | ~mask \n", + " count += np.sum(np.all(np.all(matches,axis=-1),axis=-1))\n", + "\n", + "count" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/4/input b/4/input new file mode 100644 index 0000000..3e491f9 --- /dev/null +++ b/4/input @@ -0,0 +1,140 @@ +SAMSXXMAXAMXSMXMMMSMSSSSMASMMAMMSMMMMMMMMSMSMSSXMAMXXXMSXSXSMSSMAMMXMSMMXSASMAXASMSMXMASMMMMSAMXXMAXXMMXAMAMXMSMMMMMMMMMMXSSMASMXXXXXMASXXAX +SAASMMASAXMAXMAMXAMSAMXMXASASMXAAAAAMSSMMAAAAXAAMASXSAMXMMAMXMAMMXSASAAAAMMAMMMMXAAMMSAMXSAMMASMSAMMAMXXXSXMAXAAASXAAASAMXMASASMSSSMMAMXMASX +SMMSXSAXMSMSXSASMSMMMSMSMMSAMMMSSSMSMAAASMSMSMSMMAAMSXMAAMAMASMXSASXSSMMXSAMXSAAMXMMAMASAMXSXXMAMXMASMMSMMAMMXXXMXSSSMSASXSMMMMXAXAMAASAMXMX +XMASAMASXXAAAMASAAXAXAAAAXMMAXXMAMAAMSSMMXAAAAMXMXXAMXSXMSXSAMXXMASAMMMSAMXXASASMSXSSXXMASASXMSXMAMAAAASAXAASXSMSAMXXASAMASXMASMMSMMSXSMMASM +SASMAMSMMMMMSMAMXMMMSMMMSXMSSMMMAMMMXAMMMSMSMMMAMMMSMMMSMXAMMSMAMMMMMAAMAMSMAXAMAAMXASAXXMMSAMAMXAMSSMMSSMSMMAAMMASAMXMMXXMAMAMAXXAAMMXAXAXM +ASMSMMMAAMMAMMAMMSSMAXAMXXXAAAMMASAXMASMASAMAXSAMSXMAAAAMMSMAAAMXMASMMSXAMXXMMMMMMSMAAMSXSMSXMAXSAMXXMXMMXXAMMMMSSMXSXAMSMSSMSSMMSMMSSSXMSSS +MAXAMAMMMSMAMMASAAASASMSXSMSMMMSAXMXSMMMXMASAMSMAMMSSMSMSAXMSSXMAXSXXSMXXSXAMXMXMAMMXMAAAMMMAMAMSAMSMMAXMAXAXAAAXAXSMXSMAAAMMAAAAXXAXMXAXAAA +XMSMSAXMXXMSXSASMSXMXSAMAXXAASAMAXSAMASMSMXMAMXMMMAMAXMAMXSAMAMSSMMMXAAMXMMAXAMMMSSMMXSMXMAXMMSXSAMAXXMSMMSMSSSSMMSMAAMSSMMXMSSMXMMMXMSSMMSM +XMAMAAMMMMXXXMAMAMAASMAMXMASXMASAXMASAAAASMSMMXMASXSXMMAMMAMXAXXMASAMMMMMMXMXAXMAMAAMAXXASMSXMXXXXMXSMXMXAAAMMAAAXAMMMMAXXXXMAXMASASAAAMAXAA +SSSMSMMAAXASMMSMXMMMXSAMAXXMAMAMMSSMMMSAMXXAASXMAMXXMAMAXSMSSMSAXMAXXMXAXSASXSSMMMSMMMMXXXXAMMMMSMSMSAAXMSMSMMSSMSXSSSMMSMSMMASMMSASASMSAMXA +AAAMAASXMMMSAAXMAAXXAXMSMSASMSSXMAMXMXMXXMMMMMAMAMAMXSSXXAAXXASXMXAMSMMMXMAXAAAXMAMASMSMSXAMAXAAAAAASXMMXAXAXXAXXXMXAAAASAXAMAMAXMAMXMMMAMXM +MMMMMXMAAXASMMMXXMMMMMMAMXAAAAXAMXSXSMMAXAAXXSASAMSAXXAMSMMMMMMMSSXMAAASMMSMMSMMMMSAMAAAAMSXMSMSSSMMMSSXXXSMSMMSMMMSMSMMSSSXMXSAMMMMXMXSAMAX +XMXAXMASMMASMMMMMASMSASXSMXMXMSXMXMXAAXXMMXSMMASAXMAMMAMMAAMXAAAAAASMSMXAAXAXMASAXMXMSMSMAMAMSMAMAXXAMXSAMAMAAXAAAAAXXXXXASXMASAXMSMMMAMAXXX +AASMSMMAMXAMAMAASXMAMMMAXAXMXXMASAMSSMMMAXMMMMXMXMASAMXMMSMSXSSMMSMMAMXSMMSSMSAMXMAMMAAMXXXAMXMASAMMXMAXMSSSSSSSSMSSSMMSMXMXMASXMMAAMMSXMMSA +SMMAAXSXAMSSMMSXSAMXMSXMMSMAAMSAMXXAAAASXSMAAXAASXAXASMSAMXSXAXAXXMASXMASMAMMMXSSMMASXMMASMMSXSASMXSAMMSXMAAAAXXMAMAAXAASAMXMASAMSSSMAMAMAXA +XXMMMMMASAXAXXMXXXMMAMAXAXAXMXMSSXMSXSMSAXMAMXASMMMSAMAMXMASMMXSMXXSXMXSXMASAMMAMAXMXAAMXMAAMAMMSXAMAMASAMMMMMMSMXSSMMSXSXSAMXSXMAAAMASXMSSS +SASXSXSAMXSXMASXSSMSASXMMSSMXAXMMMXMAMAMXMXMSXMAXXXMAMXSAMMMAXSXMXSMSAXXASAXAMMASMMXMSMMMMMMMMMASMMSSMASAMMSAAAXAAXAMXMASMSASMMAMMSMMMSAAMAM +SAMASXMASASMMASMAAAXXMAAXMAASXSAXMAMAMXAAMAAMAMXAMMSXMXAXMAMSMAASXAAAXXSAMMSSXSMSAAXAXAMMASXSSMASAAAAMMXXMAXMXXMMMXAMSAMXAMXMXMASAAAAASMMMAM +MAMAMAXAMASAXAMMSMMMSSSMMMMMXAMMAMASAMXSXSASXSMSASAAASAMXSASMXSAMSMMMSAMAMAAAMXAMXMMMMAMSASAAAMASMMMMSASMSSSMSMSAMXMMMASMXMAXSMASMSMMXXMAMAM +XSMAMXMSMMSAMXSAMAMSAAASXSSMSMXSXSASASAXAAAXAAASMMMSXSAMASXSXAXMASXAXMASMMMSSSSXMASXXXXMMASMSSMMMMSXAMASAAXAAAASMMAAMSAMAMSXMXMAXXAMSSSSSSSS +XXSSSMMAAMXMAXMMMAMMMSMMXXAAXXXXMMASAMXSMMAMSMMMXSAMAXAMAXAMMSSMMXMXXSAMXAAAAAMASAXXMASXSXXMAXMMAAXAMXXMMMSMMMXMASMXMMASMMXAXMMSSMMSAAMAXAXX +XMAXXAXSMMASXSXSXSXXMAMMXSMMMSMSAMAMXMAMXSXMXMAXXMASMXSMSSXSAAAMXMASXMXSXMMMSASMMMMXMASAMXMMMSMSMMXSXMAXXAAXXMSMMMAASXXMXXXMMXAMAXXMMXMMMMMM +AMXMSSMMXSMMMAAXAXXXSAMXAXAAAAAXMMXSASXAAXAMSMSMSMMMXAMAXAAAMMSMSMAXASAMXSXXMAMXAAAXMAMAMAMXAAXXASXXASXMMMSMMMSAAMMMSASMXSASAMXSMMSMMSMXSXAA +MMXMAAXAASAXMMMMXMAXMAMMXMSMSXXXMSXMAXXMXSAMAAAAXAAAXXMAMMSMMSMXMMMSXMAXAAAXMSMXMXSXMASMSASMSSXSAMMXXMSAAAXASASXMXSASAMXAMAMXSAMMAAAMAMAMMMX +MSMMSSMMMMAMXAAXMSMXSAMXMMMMMMMSMAAMMMSMASAXMSMMSXMSSMSXSAXXMAMMXAXXXMXMSSMSAMASXMMMSXSASASAXAMMSMXMSAXSMXSMMXSAMAMASMSSSMSMAMASMSSSMAMASXSS +XAAMAMXXSXAASXMSAAAXSAMXSAAAAASASXXMAAXMAXMMAAAXSMXXAAAAMXSMSSSMSSSMSSSMXAXMAMAMAAAASAMXMAMMMXMMXSAAMAMASAMXSXSAMXMMMMMAAAXMXMSMAMXXXXSAAXAA +SSXMAMMASXMXSAAAMMSMXAMASMSMSSSMMSASMSSMSSSSSXSASAMXMXMMMAAXAXAAXMAMXAAMSMMMXMAMXMMMMXXAMXMASMMXAXMMMMSAMSXMSASXMMXMAAMSMMMXMMMMXMASMXSMMMSM +AAXXSSMMSASMXMSMXXAXXXMXMAMXMAXXXSXSAMXAMAAAMXMMXASXMAXASMSMSSMMMSXMMSMMAXAXMMASAMXMSMSMSASMMASMMSMXSAMXSMSAMAMMXAAMSXXMXSSSMASXAMXMMASAXAMX +SSSXAAMASAMMAXMAASMSAXSMMAMAMMMMXXMMMMMAMMMMMXAMMAMASMMASAAAAXXAMXMMMMASXMMSASASAMSXAAAASXXAXSASAAMAMAXXAAXMAXMMSSSMXMAMAAAAAAMXXSASMASMMXSA +AAXMSMMMMMMSASMMMMASMMSASMSMXMASXMXAAAMAMAAAASASXSSMASMXMMMMMSSMSAAAASMMSAASMMAMAXXSMSMXMMSMMMMXMAXXSSMSMSMXSAAXAAXAXSXMSMSMMMSXXMASMASAMASA +MASAXAMXMMAMXXAMXMMMXASMMAMAAXXSAAMSSSXMSSSSMSASAMXMAXMXSMMXXXAASXSSXSXAMMMMAMXSMMMXMXXAXMASASXMSSXXAMASXXMAXSMMMSMMMSMAXAAMXAXAAMAMMXMAMXXA +XAAXMAMXSSSSMMMMMXMXMMSMSAMSMSAMMSMMAMMMAMXAAMXMXMSMMSSMAAASMMMMMAXXXXMMXSASAMXAAAXAMXMMMSASXXAXAASMAMAMMSAMXAXXXMXMASMAMMMMMXSMSMXMSASMMSSS +MMXXSAMXXAAXAASAMMXAAXMASXXXAAMSXAMSAMXMASMMMMSMXXSAAAASXMMAAAAXMSMSMMMAXSAXAMXMXMSMSSSMAMASMSMMMSMSMMASAMAXSXMASMAMSSMASAMXSMMXAXMXSMSXAAAX +AAAXAMXMMMMMSMXASASMSMMAMMMMSMXXAMXSAMXSAMMAAAAMSMSMMXAMXMAXSMSMMAAAMAMXXMSMSSSMSAAMAAAMMMXMAAMXSXMSMSXSXXSMMMMAAMXMAMMAMASASASMMMMAMXSMMMMM +MMXSASAMAXAAXXSSMMMMAMMXSXXAAXMMXMASAMAMAXSXMSMSAAXMXMSXMASAXMAXSMMMXSSXSAMXMAAAMSMMXSMMXSAMSMXXAXAXAXASMMMAXAMSSSXMXSMSMMMASAMAXASMMMSASXSM +AMAMMSMSSMMMSAMAAXXSAMSMXAMMMMAAMSXMAMXSXMMMAXMMMSMSXXMASAMXAXMAXMASAAMXMXMAMMMMMMXMXXXAASMMMMSAMMMMMMMMAAXXMMXAAMXMXAMMASMMMMMSSMXAXASXMAAS +SMXSAMXAAXAAAAMSMMASASAASMSSMMSSMAASMSXMMMAAMSAMXXASMASAMXXMXASXXSAMAMXAXASXXAXAXMASMSMMXSXMAASMXAXAAAASXMSMSMMMMMAMXMASAMXAAXMXAXSMMMSAMSMS +XAMMMMMSMMMSMSMMAXMSMMAMMAXMAXAAMSMMASXSXSASXMMMMAAXSMMASXMSMXMAAMASMXSMSAXMASXMSXMAAAASAMASXMXMASMXSSXXAAAXXXXAASAMAXAMAMXMASMSMMAAAASMMAAM +MSMSAXMMMSMXAMASMMXMXSMMMXMXSMMXMAAMAMAXAXSXMAAMXMSMXMSXMXAAXAMMMMAMMAAAMMMXAXXMAXAMMMXMSSMMAXMASXAXMXMSMSMSAMMSMSASMSMSXASXXSAAAMSSMXMAMMSM +MMAMASMAAAAMAMAMSAAXMXAAXXMAMASXSSSMSSMMMMMXXXMSXMMAAXMMMMSMSMSSXMASMMMMSMSMMMAMASXXSMSAMXAMXMAXAMMMMAMAAAXAAMXMAMXMXAXXMMMMXMXMMMAXMASMXMAM +MMSMAXXAMMMMXMAXMSXXASXMSSMXSAMXAAXAXSXAXASMXSXMASXSMXAAAAAAAXAMXMAXAAXXSAAASMSMAMAMAMMMMSXSSSXSMXSAAAMMSMSSXMAMAMSMSXMMAAASXSASMMSSSXSXASAS +MAAMXMMMSSSMASMXMASXMMASAAMAMAMMMMMMMXSSMMXAMSASAMMXMASXSSMSMMMSAMMSSMMAMXMSMAMMXMSAAMMSAMXAASAAXAMMSMSAMXXMXMASMMAAAMAASMSAAMAMSAXAMASMMSAS +MSSSXMASAAASASAXMASMAMSMXSMAXAMXXXAAXMXMASMSMSAMXMXMXXMAAXAMXMXMXSAAXXMASMXXMAMXMMMSXSAMASMMSMMMMMXAAAMXMXAXAMMMMSMSMSMMMXMMMMMMMMMAMAMXXMMM +AAXXXMMMMXMMMMXMMSMXSMAASXMSSMASMSXXSAXSMMAMAMMMSSSSMSMXMXXMAAASAMMSMXMSAMSAMXSAAAAXMMMSAAAXAXXXASMMMSMMSMMSXSAAAAXAXAMXMXMMXASAAASAMXSMMSAS +MMSMMXSAMASAXMSXMXAAXXMXAXXMAXMXAMXSAMXSXMAMMMMAMAAAAMAAXAMSMSMMSXXMAXSAMXXAMXMMSSSSMXAMXSSMMAXMASMXMXXMAAMSASMSSSSXSMSAAMXAXAXMSASAMXAAAXAM +XAAAMASASASASAMAXMMMSXXMXMSSMXMMSMMMAXXXASAMXAMASMXMMMSMSAAAAXXAMMSMSXMAMMSAMXSAXMAMMAMSAXMXXMMSAMXASMSSXSMMAMAMAXMMMMSMSSSSSXSAMAMXMSMMMMXM +MSMXMASAMXSXSASXMXSXSXXASXAAXXXAMAASMMMSAMXMSXSASMXSAMXXXXSMSMMSMASXXASXMAXASAMXSMAMXMSAMXAXMXAXAXSMXAXMAXAMSMSMSXXAAASXXAAASAAXMMSMMMXAXSAS +MASAMXSMSMMASMMAMASXMAXSAMSSMMMSXSMSAAAMAMAAAAMAMXAMXMAMSXXAMXAAMMMAXMMAMSSXMASXSMXSAMAMSMSMMMSXMMSMMSMSMSAMXAXAXAMMMXMMMMSMMXMXMAAXAAXSXSAS +SAXMSMMAAAMMMMSAMAMAASXMMXAXAAAMAMMSXMXSASXMMMMMMSMMMSAAXXAMXMSSMXMSMSAXMAMXXAMXMAMMASAMXAMXMAAASASMMXAMASMMMSMAMASMMSMSAXAMSSXMMSSSMSSMAMAM +MXSXMAXSSSMAAXMAMSXXMMAAXMMSSMXSAMASMMXSASXSMSASXAXAASMSMSSSSXAMXMAMASMXSASMMSSMMAMSXSXSXMMAMMSSMASMAMMMXMMAMAMASXMAAAASXSAMAMAMXMXMXMAMMMSM +XSAXMXMAAXXMSSSXMAASMSXMMAAMAMAMAMAMAXAXMSMAAXAXAMMMXSAAASAAAMAXSMAXAMSXSAXXMXAASXMMAXASXASXSMMAMSMMASXMMSXMSXSASMSMMMMMMMAMASAMAMAMASAMXAXA +MXAAXAMMSMMSAAMAMXMXAASXMMXSAMASAMMSMMMSASAMSMSMXXAMAMXMMMMMMXSASXAMMSXXMMMMXSSMMSAMXMMMSXMXSXMAMAASASASMMMXMAMASAXAXXSMMSMMXSXXXXXSASAXMSSM +AMXMXXSAMAMMMAMXMSSMMMMMASMSXSASASAMXAXMAMSAXAXAMXXMAXMSXAXASAXASMSSXAXAMXAXAMXMAMXAAAXXMMXXMMSMSSXMASMXAXXAMXMAMMMMMMMMAAAXMMMXSAMAMSAMXAAM +SASXSSMMXSXAXAXAMSAMMASMSMAMAMAMAMAXMMMMMMMMMMMSSMSSMSAMSMMXAAMAMAASAMSMAXSMMMAMMSSSXXXMSAXXSAAAAMAMXMMSMMSMSMMASXMSAXAMSSSMAAAAMXMAMMMAMSSM +XXMXMXASAMSSSXSMXSAMXAXMXMAMSMSMSMSXMMXAXAXAAMXMAMXAAMAMAMSAMXMMMMMMMXAXSMXAASXSAAMXMMSMMMXMASMSMMXSXMAAXAAXAAMASAASMSXXAAMXSMMXMAXXSXXSMAXA +SMMSSSXMAXAXSXAXASXMMSSSXMSAMAAAAAXAXSSSSMSSMSASAMMMMMAMAMXXXXXXXMAMMXMAMASXMMAMMXMAAAAAAAASAMXXXMMMASXMMSSSSSMMSMMSMXMSMAMAXAXASMXSAMXAMMMA +MAAAAXAMSMMMXXMAXSAMAMMMAXAAMSMSMSMMMMAAAMAAMSASASMSXSSXMXSXSAMASMSSXAXAMMMAMMSMMSAMSSSXMSMSASXXAAAMAMASAAAAAXAXXMAXXXXXAMMMSMMXAAXMAXXXSSSX +SMMSMSSMMAAMXAXMASXMASAMMMSSMXXXXAMAAMSMSMMSMMMSXMAAAMAASMMAAMSAMAAAXMMXXXMXMMMAAMAMMXXMMXMSAMASXSXSASAMMSMXMSMMAMXMMMSMSMAMAXSMMSMSSXMSAAMS +XXAXXMMAXMASXMSSXMMSXSAAMXAXMMSXSSSMSXXAXMAXAXXSAMXMXMXMMAMMMXMAMMXMASMMMSXXSASMMSSMXMMXSAMMAMAXAMXAXMASMAXSXSXSXMAAAMAAAMXMSAXAAXAMAASAMXMX +XMAXASMSMSMXMAAMMAXSXSXMAMMMXAMXMXAAXMMMMSASAMXXAMMSASAXXAMXXMASMXMXAAXSASMMSAMSAAMAXAMASXMSXMASMSASASAMMMXSAMMSASXSSSMSMSMSAMSMMMSSMMMMXAAM +AMXSMMAMAASAMMMSSSMMAMXMAAMSMXSASMMMMAXSAMXSMXXMAMXXASMMSSSXMASASAAMSSXSSMXAMXMMMXSMSSMASMXXMXMAMAAXMMASMMAMSMAMAMXMAXAAMAXAMMMXXAAMAXXXXMXX +XXXAXMAMSMSMSMSAAAAMMMASMXAAAXSMSAMXSXMMMSMMMXMMMSSMMMXAXMAXAMXASXSAMXMMASMSSXXXXXAMAAMXMASMSAXMASMMXMXMAMXMXSSMSMMMAMXMSXSMXMXSMMXSSMMMAMMS +AXMMMMSXXXMMAMMMSSSMASXSAASMSXMASAMXXXMMASAAMAMSAAXAAAMMSXAXMSMAMAXXXMASAMXAAXMASMMMSSMMMMMASMSXMAMMXMMSXMXMMAMAMXXMMSMMMAMXSXAXAXMAXAASASAA +SMSXMXMASXXMASXXMMXMASAMXMMAMMXAMAMSMAAMXSMMXAXXMMSSMSAASMMSXSMMMMMXMMAMMSMMXSAMXAXMAXMASAMXMAMMMAMSAMAMAMAXMAMMMSMXAXAASMSAMMMMSMXSMMMSASXM +MAAASAMSMMASXSMXXMAMAMXSXMMXMAXXSXXAAAXSASXSSMSXXXXXMMMXSAMAMXAXXMSAMMXXAAAMASAMSMMMAXMASMMAMXMASAXSAXSXXMAMXSMAAAAMMXSMSAMMSAMXAMXMSMMMMMAX +MAMMMMMMAXMSASXSMMSMSMMMASXMASXMAMXASAXMASAXAAAXXMXMXXAAMAMAAXSMMASASXMMSMSMMSXMASXMXSXXMASMMMSASMXMMMMAXMSSMAXMXXSASAXXMXMASAMMMMAMASXAMSSM +MMMSAXASXMXMAMMSXAASAAASAMAAXAXAAMSXMASMXMASMMMMMMAMAXMSMMMXSAAXAMMMMMAAMAAMXSXSMASMAMAMAMAAXXXMXMMMMAXSMMAAMMXSMMXAXASXAXMASXMASMXSASXSMAAM +MAASMMMMAMSMSMAXMMMSSSMMXSMSMMMSMMAMXXAMAMXMAAXAASASXSMMASXAMMMMSXAAASMMSSXSAMMMMAXMASAMAAMMMMAMMAAAMMXMAXXMXXAMAMMAMSAMXMMXSXMASAXMAMAXMXSM +SMXXMAXXMSAAAMXMXSAMXXASASXXAAMAMAMAMMMSAMAMSMSSXSMXAAASAMMXMASXMSSMMSXXXXXMASAAMASMMSMMXSXMASAMXSSSSSMSAMXXMMMSAMMSMAAMAAAAXMXAXMSMSMMMMAMA +XMSMSASAMXMSMXSAMMAMXSXMAMASXMMMXAXMXAXMMMMXMXXMASAMSMMMSXMXSMSAAMMMMMMXMMXMASXXSAMXXXMMMMMSAMAXXAMXAAXMAMSMMMASASAXSMMSSSMMSAMMAAAAXAMAMMSM +SXAAXMAXXAMXAAMAMSMMXXXMAMMMASAMSSSMMSMXSAMAXMXMAMMMXAXAXMSMMXSMMMAAAMAAMAMMXSXMMMSMMAXXAAXMAXSMSASXMMMSSMMAAMMSAMXMAXMAMXAAAMASMSMSMMSMXXAM +XSMSMSSSMMAMMMSMMXAXMSMSAXAXXMAMAAAXAMXASASASXXMMSXMSSMMXXAXXAMAMSSSMMSMMSASAMXXXASAMXMSMSSSMSMAMXSAXXAAMASXMSMMAMSAMXMASMMMMSMXAXXAMXAMXMAS +MMSMAMAAAXSXAXAXAXXMMAMMSXSSSSXMMSMMMSMMSAMXMAAXMAXAAXAAMSMSMSSSMAXMAXAMXMMSAMASAASMMSAMAMAXMAMMMMSAMMSMSAMAAXXXAMXXAXMMMMXXXSAMXMSSMSASXSMM +XSAMAMSSMMMMSSSSSMMASASAXMAMXAAXXMAAXSAMMMMSMSSMSAXMXSMSMAAXXAAMMMMSMSASAMXSAMASMAMAAMAMXMAMSASXAASAMAMXMXXMMMXSASXMAXXAAMMSXSAMXMXMXMXMAAXS +MSMMXMMXMASAXAAAAAAMSASASXSSSMMMSSMMXMASXAAXMAAXMMSXAMXAMMSSMMXMXMASXSASMSXSMMXSXMMMMSSMAMSMSMSMMMSAMXSSMSMSAAAAXMMMASMSMSAAAXMMXSAMSSXMXMMS +ASXSSSMMSASMMMMSSMMMXMMAMAAAASAXMAMXMXAMMMMSMSSMAMXAMXMSSXAAAAMSMMASXMASXSMMMSMMASAAXAMMXMAMXAMXMASAMAMXAAXSAMMMAAXMASXMASMMSMSAXMASAXXMMMAX +MMMMAAAMMMSMAXAMXMXSXMXXMMMMMSXSSXSMXSASXSXSAAXMAAXMXAAMAMSSMMMAAMMSXMXMAXAAAAAXAMAMMMSMASASMSMSMXSSMXSMSMMMMSMXMAXMMMAMXMAXXAMASXXMMMXXAMSX +SASMSMMMAXXXMSMMMMAXMMMMMMAMXSXMMMMAMSXMASAMMMSSSSSMASXXAMMXASMSSMAMXSMMSMSMSSSMSSXMASAMAMAXAMAMXXMXXXAAMXSMAAXXSMSMSMXMASAMMSMMMMAMXAXSMSXS +SASXXMXSXMXMMAMAAMMXSAAAAMMSASASAAMSMMAMXMMMMXXAAAXMAMASMMXMASAAXMAXXSXMAAAAAAXAXAASXSMMMSSMMMAMSASAMSMMMASMSSSXSAAAAMMSMSASXAXAXMXMMSMAXAMX +MAMAXSASMSAXMAMXXAXAMMMSXSAMASASMSSMAMSSXSMAMMMMMMMMMMMAMXSMAMMMMSMSMXASMMMMMSAMXXMMXXXXMAXAASAMXMMAXXAAMAMXMXMAMSMSMSAAAXAMMMSMSAMXMAAMMSSS +XSAMXMASAMASMXSMSSMMMSAAXMXMAMAMXMAMAMXAAMSAMAXXAAMAAMXMXMMMASASMSAAASMMSMXMXMAMSAXXXMMSMXSSMSAXXXXXMXSAMSSMMAMXMMMMMMXMXMSMMAAAAXAMSXSXMMAM +AMAMXMSMMMSMXAAASMAMAMMSMMMMXMAMASXMMSMMMMSMXSASMSSMXSAXAASMMMASAMSMMXMASMXMASAMXAMXAAMAMXAAASAMMXSAAXAXAAAASAXSMXAAAMXSXXMAMSSSMXSAMMMAMMAM +XXAMMXXMAXAAMMMMMASMXSAMASAAAXXSAXAAAAXAMAXMAXMAXMAMASASXSMASMXMXMXMAXMAMSAMMSAMMSSSMSAMXMXMAMASAAXMMMMMMSSMMXXAXSSSMSASMMSAMXAAAXMXSAXAMSAM +MSSSSMXSSSMXMASXSSXMXMASAMMSMMAMXXSMSSSSMMSMMSSXMSSMMMMAMAMAMAMMMMSMMXSMXSXSXMAMAAAAAAXXSAMXXSXMMSMXAAXAXMAMAXMMMMMAAMXMAMAMXXXMXMXMMMSMMSSX +AXAAMAXAMAMXMMMAXMASMMAMXMXAMASXSMMAXAMAAXMAMAMAMXMAXXXMSSMMSAAMAAAAXAMXMXMXMSSMMSSMMMMMMSASMMMSAMXSSXMAXSAMMSAXAXMSMMMMMMSSSSMSSSMSAAAMMMXS +SMMSMSMXMXXMMAMMMMMMMMSSMSSSSMXAMXMXMMMXSMMSMMSXMAMXMXMXMAAXSXSSMXSSMMSAAAAAMMAAMAMXXXAAAXSAAAAXXXXXAAASAMXSAMMSMSXAXSXXMAMAAXAAAAASMSMSAMSA +XSMAAASAMMMMSASXMASXXAXAAXAAMXMSMXSXMASAMAAXMXMMSMSXSAAASMMMMXMAMMAMAASXSASXXMAMMSSMSXSSSSMSSMSSMSAMMSMXASMMAMXAAMAMXMAXMAMMMMMMMMMMXAMMASXX +SMSMSMSXXAAMMASMSASAMXSMSMSMXSMAMXMASAMXSMMSMAMAAAAASASASMMAMXMAXMASMMXMMXMASAAMAXMASAMXMAAAXMXMAAAMAAXMXMASAMSMSMAXAMAXSXMXMAXSXSXSMSSSSMMS +AAAXAMXMMSMSXASAMASXAAAAXAXMAXMASASAMASXSXMAMMSSMMMMMXMMXXXAMXMSXSAMAXXAMAXAMMMMXSMAMAMASAMXSXAXMSMMXSXSXMXMXXSAXMASXXAXMASMSSXMASAAAMAMXAMX +MSMSMSAMXMAMMMMAMAMXSSSMMMMMSSSMSAMMSAMMSASXSMAXXSMSSMMXSSSMXSAMAMAMAMMSMMMMMMAXXMMASAMMMXSSSMMSAAXSAMAAXMSSMSMMMMMSMMSXSAMXAAMMSMSMMMMMSXMS +XMAMASXMAMAMMXSSMASAMMAMMMAMAAMAMXMAMASASAMXXMASAXAMAAXXAAAAMMAMMSSMASXMAMXXAXXXXMSASMSAMXSAMXMAMMSMAMAMXXAAMMAAAAAMMAAAXMSMMMMMAAMXXSXAMMMA +MMAMMSAMMXXMXAMASXMAXSAMXSMSMSMSMSMMSAMAMSAXMSAMXMSSSMMMMSMMMMSMXAAMAMXSMMXMMXMMAXMASMXMASMAXXMMSMXMXMSMSMSSMSSMSMSXMMSSSMMMXAAXMAMAMMMMSAXM +XSXSASMMSSXMMMMAMSSMXMASAMASMMAAAMAXMXSAXXMXXMXMXMAXAAMAXXMASXMAMMMMASXMXASXSAAXXMSXMAXXXXMMMSMMMXMMSXXASAAAXXAAMAXMMXAMXAASMSMSMXMAMSAMXXAX +XAAMASXAASAMASMMSAXMASXMAMAMAMSMSMSSSXMMMMSMSMSMXMASXXMSMMMMSASXMSASAXAAMXMAMXXAAXMASMMMXMAAMXMASMMASXMAMMMSMSMMMAMAMMASXMMSAXAXXMMAXMASMAXM +SMXMXMMMSSXMASAMMMXXASMSAMASXMAXXAAAXXXAMXAAMAAMSXMMAMXAXASMSAMAASAMMMMMMAMSMAMSXMSAMAXSASMMMAXMSAMASXMAMAXAMXXMMMSXMSAMXMMMMMSMMMSMXSAMXAAA +XMAMAXSXMMMSXSMMMXSMXMMSASXSMSSSMMMSMSSXMAMSMMMSMASMMSSXSXMAMXMXMMMMAAXASXSAMXMMAXMASAMMAMXASXXXSXMAMAMASMSSSXSXAAAXXMMXMAAAXAXAXMAMAMXSASMS +XXAMMSMASAAXXMASMAXXAMASAMAMXXAMXXMAAMAMXXXAMXMMXAMAAMMMMXMSMSSSSSMMSMSAXXSMSXMSXMSXMASMAMXMASAMXAMSSSSXSAAAXAASMMSSMAMASXSSMSXXMMAXXSSMAMAA +MSMSMAMAMMXSMXXAMXSSMSAMAMMMMSMMMSMMMMAXAMASMSMMMSSMMSAAXSXAAAXAXAAMAMMMMASXSMXMAMSMXAMMAMMXAMXMSXMAAMMMSMMXMMMMXMAAXAMMXAAXAXSSMSXSAMXMAMSM +AAAAXAAMXSMAXSMMSAMMAMASAMAAAAAAAAAXSSMMXSAMAMAMAMAMAMMXMXXMSMMMMMMXAMAAMXMAMAAMMXMAMASXXSAMSMAXXXMMMMSAMAMSMMAXSMMSMXXXSSMMSMMMAAAMMMXAXMXS +SMSMSXSMASXSMSAXMASMAMASASXMSSSMSMSMAAXSAMXSXSAMXSAMMSMSMSMMAMAXSXMMMMSMMXMXMSSMMAXAMXAXMXMMXMXMXAMXXAMASXMASMMSMAXXMSAAAAXAAAAMMMMMXAXSXMAX +AXAXAXMMMSAMASXMSMMXMSMXXMMAMAAAAMMMXSAMXSAMMSASMSAXAAMAAAASMSSSMAAAAAXMSAMAAXAASMSSSXSXSAXSXAAAXMSAMXMXMASAMXMAMMMSAMMMXXMMSSMSMMSSMMMMAMAM +SAMMMXSAMMMMXMMMMMAAXAAMSSMAMXMASXSAMXAMAMASASXMASAMSSSMSMMXXAMAXXMXMSSMSASMSMSMMAAAXAXAMXSXASMSMMAXXXASMXMASASXMSAMXMXMMXSXXMAAMXXMAAAMAMAX +XAXMAAXASXXMMXSXAMSSSXMXAASMXAXMXMMMMSAMXSAMMSSXXMAMAAXXMXSSMSSSMSSXMXAXSASAMXXXXMMMMMMSMSMMMMMXAMAMXMXXAXSMMMMMAMMXAMAAXMMMAMSMSMXMSMSSMSMS +SXMMMMSAMMSXAAAXMXAAMASAXMMSSSSSXSXMAMAMXMMSAMASXSSMMSMXSAMAAAAXAAAAMSMMMMMASAMXMXSASAAAMAAAMAXSSMAMXSMSAMXAAXAMXMXSAMXMMAMAMXAMAAAMAAXXAAXA +XAXXAAMAMAASMMSAMMMAMMMSAAXXXMAXAMSMXSXXXMAMASMAXSAMXAAAMAXMMMSMMMSSMAMAMAMSMMSSMMSASMSMSSSMMMMAMMSMMAASMXXSXXMSAAXXMSASMSSMXSASXSSSMSMMSMSM +SXMMSXSAMSMAXAXMXAMMMAAXSMMMAAAMXMAXMAXMAMASXMXMMXSXSMSMSSMSAXXAAXAMMASXSSXMAMAMMAMAMXAAXAAXASAMMAMASMMMXSMMXSAMMXMAXSAXAAAMMMXMXAAAAAAAAXAX +SAMAXXMXXASMMSSMSSSXSMMXXXASXMXMXMAXSAMMAMMSAMAASAMXMAXXAMMSAMMXAMXXMXXAAXMXAMASXSMSMMMSMSMMMSASMAMAMXMAMXAAAMXMAXMMMMAMSMMXSMASMMMMXMMSXSXS +SAMAMSSXSASXAMAXAAMAXMMMASMSXMASAMAMMAMSSMAMASXMMAXXMASMMSAXAMSASMSXMMMMMMXSXMMAAXAXAAAAXMXMXMAMMSMSMSMAMSMMSXXMAMMAXMAMXAXAXSASAASAMAXXASMS +SAMMSMAAMAMXMXAMMSMMMSAMXAMXASASASXXMXMAXMAXMMAXSAMSMMMAXMASAMXAMAMXAAXAAXAAXMMXMMXSMMXXMMASAMAMMXAXAMSAMXASXXSSXXSSSSSSXMMSMMSSMMSAMXMSAMAS +SMMMAMMMMMMSMXSMAAAAAXXXXMASXMAMXMAMMMMMSSXSSSMMMMSXAASXMAMXAXMMMSMSSMSSMSSMMXMAXXXMASXSMSASXSMSMMAMXMMMSSMMMAXAAMAAXMASAXAXAMASAXSAMSAMAMAM +XXMMMSXMAMASAAMMXSSMSSMSXSASMSMMSSMMAAAMXMXMXAXXAXSMSMMSAXXSMMMSAMXXXXMAMAMXAASMXMAMMSAAAMASAMXAXMXMSMSMAAXAMMMMSSMAMMXSMMXSXMASMMMAMSSSSMSS +MXSAMXXXMXMMMMSAXAXAXXAAAMAMAAMMAAASMSSMASMMSMMAMXMAXXMASMMAMAXAASMMSAMXMSSSMMXAASXMAMMMMMSMMMSMSSMXMAAMMSSSSXXXAAMXSMMMAMXMMMASXMSSXMASAAXM +AAMXXMMSXSAAXMMMMAXXMMSMSMSMSMSMSMMMXAAXAMMAXAAXSSMSMMXMAXSAMXSMXMXAAAASAMMMAAMSMMAMXSXSXXXMXMAAAXAAMXMXXAAMXMMMSSMASAASAMAMAMAMAMAMAMXMMXMM +SMXXAAXAAMXMMXAMMXMMSAMAXAMMAMXXXMXMMXMMMSMASMSMAAAMAXSXMXSXMAAXMASXXSMMASASMMMMASXMXSAMXMMMASMXMSSMSAASMMSMSSMXAAMAMMMSMSASXMMSMMASAMXXXMAS +XXAMSXMMSMSMXSAXMAAMASMAMMMXMASXMASMXSMMASMMMAAMSMMSXMXAMAXMMMSMMMASXMXSSMASMMSXMASXAMXMAAASASXAMXMAXMSMAAAMXAMMSMMMSSMMMSMSXXMAMSASASMSXMAS +XMMXMAXAAAAAXSXMSXSAMXMXMSXMASAMXAMAAAASASAMXSXMXAASMSSMMAMAAAAMAMXSXMASMMXMAAMAMAMMMMAXXXMAASMAMAMXMSMMMMMMMMMAXSAXAAAAXSMSAXMAMMASAMAMMMMM +XAXASAMMSSMSMMMMMMXMXMASMMASXMXMMSSMMSMMASMMMMAMSMMSAXXXAMASXSMSMSMMMMMMXMAMMMXAMAMASXMSSMXMXMASXAMXMAXXMSASAXMASASMXSMMMSASAMSSMMAMAMSMASAS +MMSAXSAMAMXMAMSAMAASAMXSASAMSMAMAMAXMAXMXMXAAMXMAXXMXMSSSSMMAAAXAAAAXAASXMASXSSMSAXAMAMAXMASAMMXSSSSSMMMXSASXXMXXMXMXMASXMMMAMAMAMXSAMASXSAS +MAMXMXMAXXASAMSASXMSXMASMMMMAXXMASAMSMMSMSSSSSMMXSXAXXXAASAMSMMMSMSMXASAMXMAAXAXSAMSSMMSSSMSXSMAAXAAXMASMMAMAMSSSXAMASAXMSSSSMASXMAXASAMXMXM +MXSXMAAMMSMSAMMAMMAMXMAXXAAMMMXSMMMXXAASXMAAMAASAMMSMMMMMMXMXXMMMAAXMSMMXAMMMSMMSAMXAAXMAAASAMMMMMMMMSMSAMAMMMAAASMSAMXMAXXXASASMSSSXMASMMSM +SAMASAXSMAMMXMMAMMMMSMMXSXXSAXMAMXXMMMMSAXMMSSMMASAAAXAAAMSMMAMAMMMMXMASMXXSAMXASAMSXMMMSMMMAMMMMMXSASASMMAMAMMSMAMMXSAASMMSMMXSAAAMASAMAAAS +MAXMMMMMXAXMAMXASASXSASMSAASAMSAMSASAXASXMXXAAAMAMMSXSXMMXAASXMASAXSASXMASMMMXMXXAMMASAMAXXSXMAAAMMMAXXSMSSSMSAMXXXAAXASAAAAXAAMMMSMXMMSMSMS +SAMSASASMSMSAXSAMASAMAMAMMMMMMMMMSASAXAMXMASXXMMSSXXASXMSSSXXMSASXASAXXAXXSAAMSSXSMMXMASMMXMXSSSSSSMSMXMAXXAXAMXAAMMSSSXMMSSMMXSAXAAAMAMAAXM +MAASAMASAMAMAMMXMXMXMAMXMXAMXAAAXMMMXAAAASMMSAMAXAMMXMASAAMAAMMASXMMSMSSSXSMXMAAAXXSMSAMXSAMMXXXAAXAASXMAMMSMSXSXAXAAXMAMMAMMSASXSMSMXAMSXSA +SSMMAMAMMMXMSMMASAAMMXMSSXMSMMSXXAAAASAMXXAASXMMSMXAAXXMMSMMXMMAMMXMAMAAAAMXSSMMXMAXXAMXAXAXAXMMMMMXMXMASMXAAMAMMMMMSMSAMMASASXSXSAAXSXMAAMA +AXMMAMXXMXSAMAXAMMXMMXMMSAXAAXAXXSMXXAMXMSMMSXSXAXMSMSMMAXMSMAMMSXXSSMMSMAMAMAXAAMMMMMXMMSSMMMXAAXMMXASXAXSMSMSMAMAAAMAMXXMMMSAMAMSMMAMMSSMA +SMMSASXAMAMAMSMSSXSASMAASXMAMSAMXMAMXXMAMAMMMXMXSXMAXAAMASAASAMSXMAXAMXMXMMXSAMSMXAAXXMXMAXXXAMSMSAMMXMMMXXMAAXASMMXSASMSSSMXMMMAMAMSMXAAAXA +AAAAAMXXMASAMAXMAMSAXMMMMMXSMAMMAMAMASXSSXSASXSAMASASMSMSMMMSXSXAXSSMMAMASAAAAXXAASXMAXXMASMXSXAASAMMMMAXMASMSMMMMMAMXAAAAAMXXAMASAMXXMMSSMS +MSMMMMXMSXSASXSMSMMSMSSSXAAXMASMXXSMAMSAMXSASAMASMSXXAXXAASXXXXXXMAAXMXSAMMSSXMXMAXAASMXSAMXMAMMXSAMMAMMMSAMXMAMAAMXMAMMMSMMSMXXXXXAMXXXXMAM +XXXAAXMAAASAMASAXMAMMXAAXMMSSMSAXMMMMSAMMAMMMMMMMXMAMSMMMAMAMASXMSXMMMXMASAMMMMXXAMMMMAMXMSAAAXMASAMSXMSAMXSXMASMSXMMMMMMAMAMASMSSMSMMMAAMAM +SMSSXMAMXMMMMMMAMMSSSMMMSXAAAMXMXASAMXMXMAXAAXAMXAMXMAAAXMAMMAXXAXAXAXMXAMMMAAXAMXSAMXMMAXXXSMSMXMAMAMXMASXAXMASXXXSAAAXAAMAMSMAAAAAAMSMMMAM +XAAAAXSSMMAXMMMSMAXAXAAAXMMXSMAXXMMASMXAXSSSSSMSSSSMSSSMSMSSMXSMSMMSMXSMXSAMSMSMSASASXMSXSMMXXAMSSMMMAAAXXMASXMSAMASMSMSSXSAXAMMMMMMXMAASXXS +MSMSMMXAASAMXAAAMXSSSMMMSXAAMMMSSXSAMXSXMXAMXMAMAAAAAAMAMXAAMAXAAAXAAXSAMMXXAAMMMASAMAASASMASMSMAAASXSXSMMAAAAMMXMAMXMAMMASMSMXXAXASXMMSXAAA +XAAAMXSSMMXMSMXSSMXXXAAAXMMMSAASAAMMMASXMSAMXMAMMMMMMSMAMMSSMAMSXSSSSXSASMSSMSMAMXMMMMMMAXMXSAXMMSMMAMAAAXSSSSMASMSMMSSMMMXXAXMSSMMMAXXAXMAX +XMMMMAMAXMAMASMMAMSMMSMSSMSASMMXMXMAMASAMXMMASMSMMASAXXMXXXXAMMMAMAMAMSMMMAAAAMMSSMAMXXMMMXAMAMXMAMMAMSMMMMAAXMXSAXMMAAASAMMXXXAAASMMMSAMXMA +XSMXMXXAMXXSASMSAMASXAXMAXMXSXXMSMSXSXSMMAXXASAAASAMMSMSAMXMASAMXMAMAAXSSMSMMMAMAASASMMAAXMMMMMASAMXXMAXAASMSMSAMXMMMMSMMAMXAAMMMMMAMXMMAAMA +XSASMSMSXXXMAXXMASAXMASMXSXAMMSAAAMAMAMXSSSMAMMMMMAXXAAXMAMSAMASXSSSSMSASAXMSXSMSXSXSASXMMMXAXXXSASAXSASMMSAMAMXSSXMAXAXMMMSMSXAXMSMMASMSAMX +MMAMAAAAMSXMSMXSAMAMXMAMAMMAMXMMMSMAMAMXAAXMXMXSSSSMSMSMMSMMASMMMSAMAXMAMMMMMAAAXASXSMMASMMMSSMASAMMMMMMMAMAMSMSXMASXSSXSAAAAAMMSAAASXMXMASA +AMAMSXMASMAAXAAMXMMAASXMASXSMXMASXMXSXSMMXMXAXXXAAXAAAXXAAASAMMAMXAMSAMXMXAAMXMMMAMXMASAXXAAASMAMXMXAAAAMXMXMAXMASAMAAAASMSMSAAAAMSMMAXXMASX +SSXMXASMXMMMMSMXXMASMSXSSSXASXSXSAMXSMXXXXASASMMMMMSMSSMSSMMSSSXXSAMXMASMSSXSAXXMXMMSMMMSSMSSMMSSXSXSSSSSXMASXXSAMSSMMMMMXXAMXMASXMXSSMMMXSA diff --git a/5/5.ipynb b/5/5.ipynb new file mode 100644 index 0000000..6d07f10 --- /dev/null +++ b/5/5.ipynb @@ -0,0 +1,1228 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx\n", + "\n", + "with open('5/input', 'r') as f:\n", + " data=f.readlines()\n", + "\n", + "read_rules = True\n", + "sequences =[]\n", + "#was expecting fancier things\n", + "rules = nx.DiGraph()\n", + "\n", + "for ln,line in enumerate([line.strip() for line in data]):\n", + " if read_rules:\n", + " if len(line) == 0:\n", + " read_rules = False\n", + " continue\n", + " left,right = line.split('|')\n", + " rules.add_edge(left,right)\n", + " else:\n", + " sequences.append(line.split(','))" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def test_sequence(sequence):\n", + " for lidx,left in enumerate(sequence):\n", + " if rules.has_node(left):\n", + " for right in sequence[lidx:]:\n", + " if rules.has_node(right):\n", + " if rules.has_edge(right,left):\n", + " return False\n", + " return True" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5087" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sum([int(sequence[len(sequence)//2]) for sequence in sequences if test_sequence(sequence)])" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[['91', '76', '94', '81', '45', '78', '21'],\n", + " ['34',\n", + " '76',\n", + " '63',\n", + " '42',\n", + " '31',\n", + " '41',\n", + " '83',\n", + " '56',\n", + " '15',\n", + " '53',\n", + " '23',\n", + " '28',\n", + " '79',\n", + " '71',\n", + " '94',\n", + " '77',\n", + " '91',\n", + " '49',\n", + " '74'],\n", + " ['57',\n", + " '25',\n", + " '69',\n", + " '86',\n", + " '61',\n", + " '37',\n", + " '29',\n", + " '74',\n", + " '94',\n", + " '45',\n", + " '53',\n", + " '84',\n", + " '83',\n", + " '21',\n", + " '91',\n", + " '34',\n", + " '76',\n", + " '16',\n", + " '66',\n", + " '85',\n", + " '82'],\n", + " ['91',\n", + " '57',\n", + " '98',\n", + " '86',\n", + " '21',\n", + " '85',\n", + " '78',\n", + " '54',\n", + " '34',\n", + " '82',\n", + " '76',\n", + " '29',\n", + " '45',\n", + " '84',\n", + " '99',\n", + " '46',\n", + " '61',\n", + " '16',\n", + " '66',\n", + " '25',\n", + " '89'],\n", + " ['79',\n", + " '99',\n", + " '58',\n", + " '49',\n", + " '22',\n", + " '78',\n", + " '89',\n", + " '35',\n", + " '63',\n", + " '19',\n", + " '12',\n", + " '28',\n", + " '11',\n", + " '71',\n", + " '65',\n", + " '53',\n", + " '17'],\n", + " ['12', '23', '61', '74', '91', '34', '53'],\n", + " ['76',\n", + " '53',\n", + " '17',\n", + " '49',\n", + " '79',\n", + " '63',\n", + " '56',\n", + " '15',\n", + " '28',\n", + " '91',\n", + " '58',\n", + " '34',\n", + " '22',\n", + " '74',\n", + " '77'],\n", + " ['41',\n", + " '91',\n", + " '15',\n", + " '31',\n", + " '79',\n", + " '29',\n", + " '83',\n", + " '58',\n", + " '94',\n", + " '17',\n", + " '56',\n", + " '76',\n", + " '63'],\n", + " ['41',\n", + " '63',\n", + " '54',\n", + " '65',\n", + " '84',\n", + " '66',\n", + " '99',\n", + " '78',\n", + " '28',\n", + " '85',\n", + " '89',\n", + " '46',\n", + " '35',\n", + " '45',\n", + " '79',\n", + " '82',\n", + " '77'],\n", + " ['23', '35', '58', '98', '49', '12', '11'],\n", + " ['84', '56', '41', '46', '28', '98', '79'],\n", + " ['84', '76', '23', '53', '25'],\n", + " ['16', '77', '75', '41', '12', '11', '42', '58', '89'],\n", + " ['46', '82', '84', '16', '41', '65', '45', '98', '56', '78', '99'],\n", + " ['54',\n", + " '71',\n", + " '77',\n", + " '35',\n", + " '11',\n", + " '41',\n", + " '89',\n", + " '16',\n", + " '65',\n", + " '21',\n", + " '46',\n", + " '85',\n", + " '49',\n", + " '56',\n", + " '79'],\n", + " ['15',\n", + " '35',\n", + " '79',\n", + " '78',\n", + " '41',\n", + " '89',\n", + " '28',\n", + " '49',\n", + " '77',\n", + " '56',\n", + " '71',\n", + " '17',\n", + " '19',\n", + " '75',\n", + " '98'],\n", + " ['57',\n", + " '76',\n", + " '37',\n", + " '17',\n", + " '83',\n", + " '91',\n", + " '81',\n", + " '49',\n", + " '86',\n", + " '58',\n", + " '69',\n", + " '74',\n", + " '11',\n", + " '15',\n", + " '22',\n", + " '31',\n", + " '61',\n", + " '94',\n", + " '25'],\n", + " ['46',\n", + " '65',\n", + " '25',\n", + " '98',\n", + " '99',\n", + " '61',\n", + " '45',\n", + " '82',\n", + " '89',\n", + " '81',\n", + " '85',\n", + " '69',\n", + " '21',\n", + " '37',\n", + " '35',\n", + " '54',\n", + " '78',\n", + " '86',\n", + " '76'],\n", + " ['89',\n", + " '12',\n", + " '83',\n", + " '74',\n", + " '11',\n", + " '77',\n", + " '28',\n", + " '15',\n", + " '71',\n", + " '63',\n", + " '35',\n", + " '19',\n", + " '79'],\n", + " ['12', '19', '28', '23', '74', '89', '77'],\n", + " ['98',\n", + " '85',\n", + " '77',\n", + " '37',\n", + " '99',\n", + " '41',\n", + " '25',\n", + " '35',\n", + " '19',\n", + " '16',\n", + " '65',\n", + " '81',\n", + " '66',\n", + " '89',\n", + " '61',\n", + " '57',\n", + " '75',\n", + " '84',\n", + " '21',\n", + " '46',\n", + " '82'],\n", + " ['11',\n", + " '49',\n", + " '91',\n", + " '94',\n", + " '76',\n", + " '15',\n", + " '23',\n", + " '31',\n", + " '34',\n", + " '71',\n", + " '28',\n", + " '79',\n", + " '42',\n", + " '17',\n", + " '63',\n", + " '69',\n", + " '22'],\n", + " ['23', '94', '74', '91', '31', '69', '25', '53', '15', '81', '22'],\n", + " ['75', '85', '98', '37', '63'],\n", + " ['78',\n", + " '54',\n", + " '37',\n", + " '82',\n", + " '41',\n", + " '16',\n", + " '46',\n", + " '71',\n", + " '99',\n", + " '66',\n", + " '75',\n", + " '56',\n", + " '21',\n", + " '84',\n", + " '65'],\n", + " ['34', '53', '71', '58', '86', '81', '57'],\n", + " ['85',\n", + " '19',\n", + " '77',\n", + " '82',\n", + " '98',\n", + " '56',\n", + " '49',\n", + " '75',\n", + " '41',\n", + " '89',\n", + " '71',\n", + " '17',\n", + " '12',\n", + " '79',\n", + " '35'],\n", + " ['23',\n", + " '22',\n", + " '37',\n", + " '76',\n", + " '15',\n", + " '31',\n", + " '86',\n", + " '94',\n", + " '82',\n", + " '61',\n", + " '74',\n", + " '58',\n", + " '57'],\n", + " ['22', '45', '91', '25', '42', '83', '15', '61', '66'],\n", + " ['35', '25', '45', '57', '75'],\n", + " ['81',\n", + " '75',\n", + " '77',\n", + " '46',\n", + " '25',\n", + " '37',\n", + " '84',\n", + " '85',\n", + " '89',\n", + " '16',\n", + " '78',\n", + " '19',\n", + " '66',\n", + " '69',\n", + " '98',\n", + " '35',\n", + " '21',\n", + " '82',\n", + " '61',\n", + " '57',\n", + " '65'],\n", + " ['58',\n", + " '41',\n", + " '77',\n", + " '15',\n", + " '42',\n", + " '71',\n", + " '12',\n", + " '35',\n", + " '53',\n", + " '83',\n", + " '19',\n", + " '74',\n", + " '63',\n", + " '75',\n", + " '22',\n", + " '89',\n", + " '79'],\n", + " ['11',\n", + " '23',\n", + " '49',\n", + " '19',\n", + " '42',\n", + " '94',\n", + " '34',\n", + " '56',\n", + " '75',\n", + " '53',\n", + " '22',\n", + " '83',\n", + " '28',\n", + " '15',\n", + " '31',\n", + " '71',\n", + " '17'],\n", + " ['35',\n", + " '53',\n", + " '17',\n", + " '22',\n", + " '77',\n", + " '12',\n", + " '75',\n", + " '83',\n", + " '11',\n", + " '41',\n", + " '71',\n", + " '23',\n", + " '56'],\n", + " ['41',\n", + " '85',\n", + " '79',\n", + " '11',\n", + " '65',\n", + " '49',\n", + " '77',\n", + " '75',\n", + " '17',\n", + " '42',\n", + " '99',\n", + " '28',\n", + " '71',\n", + " '35',\n", + " '89',\n", + " '63',\n", + " '78',\n", + " '22',\n", + " '19'],\n", + " ['45',\n", + " '85',\n", + " '35',\n", + " '66',\n", + " '75',\n", + " '63',\n", + " '98',\n", + " '84',\n", + " '89',\n", + " '21',\n", + " '78',\n", + " '54',\n", + " '82',\n", + " '25',\n", + " '77',\n", + " '16',\n", + " '19',\n", + " '41',\n", + " '99'],\n", + " ['53',\n", + " '74',\n", + " '25',\n", + " '83',\n", + " '23',\n", + " '54',\n", + " '29',\n", + " '81',\n", + " '86',\n", + " '82',\n", + " '22',\n", + " '57',\n", + " '61',\n", + " '94',\n", + " '76',\n", + " '91',\n", + " '69',\n", + " '34',\n", + " '31'],\n", + " ['65', '75', '16', '78', '99', '35', '98'],\n", + " ['86',\n", + " '91',\n", + " '11',\n", + " '57',\n", + " '53',\n", + " '29',\n", + " '23',\n", + " '69',\n", + " '83',\n", + " '81',\n", + " '31',\n", + " '17',\n", + " '71'],\n", + " ['71',\n", + " '17',\n", + " '42',\n", + " '63',\n", + " '41',\n", + " '74',\n", + " '58',\n", + " '22',\n", + " '53',\n", + " '56',\n", + " '28',\n", + " '83',\n", + " '79',\n", + " '91',\n", + " '34',\n", + " '15',\n", + " '19',\n", + " '23',\n", + " '94'],\n", + " ['34',\n", + " '37',\n", + " '23',\n", + " '29',\n", + " '54',\n", + " '57',\n", + " '94',\n", + " '61',\n", + " '84',\n", + " '45',\n", + " '22',\n", + " '69',\n", + " '83'],\n", + " ['21', '79', '12', '98', '42', '16', '78', '11', '28'],\n", + " ['28',\n", + " '49',\n", + " '86',\n", + " '58',\n", + " '81',\n", + " '69',\n", + " '53',\n", + " '74',\n", + " '17',\n", + " '57',\n", + " '12',\n", + " '91',\n", + " '11',\n", + " '23',\n", + " '25',\n", + " '22',\n", + " '42',\n", + " '76',\n", + " '83',\n", + " '29',\n", + " '31',\n", + " '94',\n", + " '34'],\n", + " ['84',\n", + " '78',\n", + " '75',\n", + " '35',\n", + " '19',\n", + " '65',\n", + " '69',\n", + " '21',\n", + " '85',\n", + " '81',\n", + " '66',\n", + " '25',\n", + " '99',\n", + " '16',\n", + " '77',\n", + " '98',\n", + " '45'],\n", + " ['77', '94', '28', '49', '31'],\n", + " ['11',\n", + " '58',\n", + " '74',\n", + " '83',\n", + " '41',\n", + " '34',\n", + " '19',\n", + " '75',\n", + " '42',\n", + " '49',\n", + " '12',\n", + " '23',\n", + " '15',\n", + " '71',\n", + " '94',\n", + " '53',\n", + " '22'],\n", + " ['86',\n", + " '74',\n", + " '49',\n", + " '71',\n", + " '28',\n", + " '22',\n", + " '63',\n", + " '83',\n", + " '15',\n", + " '34',\n", + " '17',\n", + " '58',\n", + " '91',\n", + " '23',\n", + " '53',\n", + " '69',\n", + " '12',\n", + " '31',\n", + " '11',\n", + " '76',\n", + " '42'],\n", + " ['98',\n", + " '85',\n", + " '75',\n", + " '99',\n", + " '63',\n", + " '35',\n", + " '16',\n", + " '65',\n", + " '71',\n", + " '37',\n", + " '77',\n", + " '82',\n", + " '79',\n", + " '41',\n", + " '19',\n", + " '54',\n", + " '89',\n", + " '66',\n", + " '21',\n", + " '78',\n", + " '84',\n", + " '45',\n", + " '56'],\n", + " ['29', '45', '85', '91', '94', '78', '81'],\n", + " ['56', '19', '46', '15', '35', '22', '71'],\n", + " ['46',\n", + " '66',\n", + " '29',\n", + " '61',\n", + " '16',\n", + " '65',\n", + " '57',\n", + " '54',\n", + " '76',\n", + " '89',\n", + " '98',\n", + " '21',\n", + " '25',\n", + " '91',\n", + " '45',\n", + " '85',\n", + " '99',\n", + " '78',\n", + " '37'],\n", + " ['76',\n", + " '31',\n", + " '94',\n", + " '84',\n", + " '15',\n", + " '61',\n", + " '83',\n", + " '57',\n", + " '58',\n", + " '91',\n", + " '25',\n", + " '34',\n", + " '37',\n", + " '53',\n", + " '66',\n", + " '81',\n", + " '22'],\n", + " ['94',\n", + " '29',\n", + " '61',\n", + " '74',\n", + " '69',\n", + " '34',\n", + " '31',\n", + " '91',\n", + " '37',\n", + " '84',\n", + " '86',\n", + " '25',\n", + " '15',\n", + " '83',\n", + " '23',\n", + " '81',\n", + " '21'],\n", + " ['74',\n", + " '25',\n", + " '12',\n", + " '58',\n", + " '29',\n", + " '69',\n", + " '61',\n", + " '94',\n", + " '53',\n", + " '42',\n", + " '57',\n", + " '49',\n", + " '11',\n", + " '86',\n", + " '23'],\n", + " ['41',\n", + " '84',\n", + " '85',\n", + " '78',\n", + " '45',\n", + " '21',\n", + " '99',\n", + " '35',\n", + " '75',\n", + " '57',\n", + " '54',\n", + " '77',\n", + " '66'],\n", + " ['79', '56', '89', '77', '78'],\n", + " ['91',\n", + " '31',\n", + " '66',\n", + " '81',\n", + " '69',\n", + " '46',\n", + " '76',\n", + " '16',\n", + " '82',\n", + " '25',\n", + " '29',\n", + " '21',\n", + " '84',\n", + " '98',\n", + " '85',\n", + " '45',\n", + " '61',\n", + " '74',\n", + " '54'],\n", + " ['77',\n", + " '78',\n", + " '17',\n", + " '28',\n", + " '54',\n", + " '35',\n", + " '16',\n", + " '82',\n", + " '99',\n", + " '65',\n", + " '41',\n", + " '89',\n", + " '71',\n", + " '12',\n", + " '63',\n", + " '98',\n", + " '19',\n", + " '46',\n", + " '66',\n", + " '56',\n", + " '79'],\n", + " ['49', '53', '23', '69', '74'],\n", + " ['22', '17', '41', '65', '77', '31', '83', '79', '19', '49', '53'],\n", + " ['77',\n", + " '15',\n", + " '23',\n", + " '17',\n", + " '12',\n", + " '22',\n", + " '42',\n", + " '65',\n", + " '79',\n", + " '71',\n", + " '75',\n", + " '11',\n", + " '89',\n", + " '49',\n", + " '41'],\n", + " ['17', '28', '77', '65', '12', '71', '79', '75', '31'],\n", + " ['99',\n", + " '81',\n", + " '45',\n", + " '21',\n", + " '82',\n", + " '84',\n", + " '57',\n", + " '54',\n", + " '86',\n", + " '78',\n", + " '66',\n", + " '29',\n", + " '25'],\n", + " ['22',\n", + " '69',\n", + " '83',\n", + " '31',\n", + " '71',\n", + " '76',\n", + " '17',\n", + " '79',\n", + " '94',\n", + " '86',\n", + " '34',\n", + " '42',\n", + " '63',\n", + " '53',\n", + " '12'],\n", + " ['75',\n", + " '61',\n", + " '69',\n", + " '84',\n", + " '46',\n", + " '16',\n", + " '19',\n", + " '45',\n", + " '35',\n", + " '86',\n", + " '78',\n", + " '54',\n", + " '25',\n", + " '21',\n", + " '82',\n", + " '85',\n", + " '57'],\n", + " ['57',\n", + " '58',\n", + " '23',\n", + " '53',\n", + " '83',\n", + " '42',\n", + " '94',\n", + " '76',\n", + " '61',\n", + " '15',\n", + " '22',\n", + " '45',\n", + " '34',\n", + " '31',\n", + " '29',\n", + " '81',\n", + " '86',\n", + " '37',\n", + " '25',\n", + " '84',\n", + " '66'],\n", + " ['99',\n", + " '81',\n", + " '57',\n", + " '69',\n", + " '82',\n", + " '45',\n", + " '89',\n", + " '85',\n", + " '46',\n", + " '61',\n", + " '86',\n", + " '21',\n", + " '78',\n", + " '16',\n", + " '37',\n", + " '76',\n", + " '66',\n", + " '34',\n", + " '29'],\n", + " ['83',\n", + " '53',\n", + " '74',\n", + " '41',\n", + " '22',\n", + " '11',\n", + " '58',\n", + " '12',\n", + " '77',\n", + " '79',\n", + " '71',\n", + " '56',\n", + " '65',\n", + " '17',\n", + " '35',\n", + " '49',\n", + " '75',\n", + " '42',\n", + " '19',\n", + " '15',\n", + " '28',\n", + " '89',\n", + " '23'],\n", + " ['56',\n", + " '58',\n", + " '49',\n", + " '83',\n", + " '11',\n", + " '17',\n", + " '71',\n", + " '42',\n", + " '53',\n", + " '76',\n", + " '77',\n", + " '15',\n", + " '63',\n", + " '12',\n", + " '31',\n", + " '79',\n", + " '74',\n", + " '91',\n", + " '41'],\n", + " ['69',\n", + " '23',\n", + " '34',\n", + " '29',\n", + " '66',\n", + " '82',\n", + " '16',\n", + " '25',\n", + " '31',\n", + " '21',\n", + " '57',\n", + " '91',\n", + " '81',\n", + " '54',\n", + " '74',\n", + " '86',\n", + " '94',\n", + " '84',\n", + " '61',\n", + " '45',\n", + " '83',\n", + " '53',\n", + " '37'],\n", + " ['45',\n", + " '85',\n", + " '46',\n", + " '21',\n", + " '75',\n", + " '54',\n", + " '63',\n", + " '77',\n", + " '79',\n", + " '56',\n", + " '82',\n", + " '41',\n", + " '71'],\n", + " ['56',\n", + " '82',\n", + " '46',\n", + " '54',\n", + " '98',\n", + " '99',\n", + " '65',\n", + " '19',\n", + " '35',\n", + " '45',\n", + " '85',\n", + " '41',\n", + " '84',\n", + " '25',\n", + " '16',\n", + " '89',\n", + " '78',\n", + " '37',\n", + " '63'],\n", + " ['19',\n", + " '71',\n", + " '42',\n", + " '46',\n", + " '12',\n", + " '85',\n", + " '63',\n", + " '89',\n", + " '56',\n", + " '49',\n", + " '79',\n", + " '41',\n", + " '99',\n", + " '11',\n", + " '77'],\n", + " ['85',\n", + " '77',\n", + " '78',\n", + " '99',\n", + " '61',\n", + " '41',\n", + " '75',\n", + " '89',\n", + " '57',\n", + " '37',\n", + " '65',\n", + " '25',\n", + " '54'],\n", + " ['54',\n", + " '66',\n", + " '57',\n", + " '69',\n", + " '21',\n", + " '78',\n", + " '25',\n", + " '85',\n", + " '81',\n", + " '29',\n", + " '86',\n", + " '61',\n", + " '65',\n", + " '99',\n", + " '37',\n", + " '98',\n", + " '16',\n", + " '89',\n", + " '46',\n", + " '76',\n", + " '45'],\n", + " ['99', '66', '57', '89', '41', '65', '16'],\n", + " ['42',\n", + " '35',\n", + " '17',\n", + " '19',\n", + " '28',\n", + " '11',\n", + " '15',\n", + " '74',\n", + " '94',\n", + " '77',\n", + " '71',\n", + " '22',\n", + " '75',\n", + " '83',\n", + " '53'],\n", + " ['46',\n", + " '29',\n", + " '57',\n", + " '65',\n", + " '45',\n", + " '86',\n", + " '81',\n", + " '61',\n", + " '84',\n", + " '78',\n", + " '98',\n", + " '66',\n", + " '35',\n", + " '69',\n", + " '25',\n", + " '37',\n", + " '82',\n", + " '21',\n", + " '85',\n", + " '89',\n", + " '76',\n", + " '16',\n", + " '99'],\n", + " ['58',\n", + " '56',\n", + " '31',\n", + " '22',\n", + " '75',\n", + " '15',\n", + " '77',\n", + " '34',\n", + " '11',\n", + " '79',\n", + " '19',\n", + " '17',\n", + " '49',\n", + " '23',\n", + " '71',\n", + " '28',\n", + " '63',\n", + " '12',\n", + " '53',\n", + " '74',\n", + " '83'],\n", + " ['41', '42', '99', '65', '12'],\n", + " ['21',\n", + " '37',\n", + " '16',\n", + " '99',\n", + " '31',\n", + " '82',\n", + " '81',\n", + " '61',\n", + " '85',\n", + " '34',\n", + " '86',\n", + " '29',\n", + " '76',\n", + " '45',\n", + " '57'],\n", + " ['22', '28', '75', '74', '63', '41', '65', '56', '89', '15', '79'],\n", + " ['65',\n", + " '19',\n", + " '63',\n", + " '35',\n", + " '98',\n", + " '12',\n", + " '85',\n", + " '28',\n", + " '21',\n", + " '75',\n", + " '78',\n", + " '17',\n", + " '89',\n", + " '77',\n", + " '46',\n", + " '54',\n", + " '99',\n", + " '16',\n", + " '11'],\n", + " ['42', '49', '71', '23', '76', '94', '53'],\n", + " ['49',\n", + " '63',\n", + " '76',\n", + " '53',\n", + " '15',\n", + " '28',\n", + " '42',\n", + " '83',\n", + " '58',\n", + " '71',\n", + " '29',\n", + " '11',\n", + " '34',\n", + " '22',\n", + " '94',\n", + " '74',\n", + " '69',\n", + " '31',\n", + " '79',\n", + " '23',\n", + " '12',\n", + " '86',\n", + " '17'],\n", + " ['82',\n", + " '56',\n", + " '45',\n", + " '19',\n", + " '21',\n", + " '79',\n", + " '61',\n", + " '99',\n", + " '89',\n", + " '63',\n", + " '77',\n", + " '85',\n", + " '54'],\n", + " ['83',\n", + " '49',\n", + " '74',\n", + " '12',\n", + " '75',\n", + " '77',\n", + " '58',\n", + " '35',\n", + " '53',\n", + " '79',\n", + " '94',\n", + " '17',\n", + " '56']]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "incorrect_sequences=[sequence for sequence in sequences if not test_sequence(sequence)]\n", + "incorrect_sequences" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from functools import cmp_to_key\n", + "\n", + "def comparator(x, y):\n", + " # If both elements are in the graph\n", + " if x in rules.nodes and y in rules.nodes:\n", + " if rules.has_edge(x, y): # x must come before y\n", + " return -1\n", + " elif rules.has_edge(y, x): # y must come before x\n", + " return 1\n", + " # If one or both elements are missing, treat them as equal\n", + " return 0\n", + "\n", + "sorted_incorrect = [sorted(sequence, key=cmp_to_key(comparator)) for sequence in incorrect_sequences]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4971" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sum([int(sequence[len(sequence)//2]) for sequence in sorted_incorrect if test_sequence(sequence)])" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/5/input b/5/input new file mode 100644 index 0000000..5af618b --- /dev/null +++ b/5/input @@ -0,0 +1,1353 @@ +77|76 +22|91 +22|76 +42|25 +42|76 +42|84 +34|25 +34|37 +34|21 +34|82 +21|11 +21|79 +21|77 +21|19 +21|58 +82|98 +82|19 +82|89 +82|85 +82|21 +82|41 +76|81 +76|16 +76|29 +76|25 +76|57 +76|66 +76|45 +29|54 +29|61 +29|78 +29|82 +29|75 +29|98 +29|89 +29|46 +63|42 +63|11 +63|83 +63|57 +63|79 +63|91 +63|22 +63|69 +63|53 +75|49 +75|79 +75|28 +75|77 +75|11 +75|63 +75|22 +75|74 +75|83 +75|71 +35|53 +35|17 +35|12 +35|42 +35|15 +35|41 +35|63 +35|34 +35|31 +35|79 +35|83 +85|99 +85|63 +85|41 +85|28 +85|19 +85|77 +85|35 +85|71 +85|65 +85|11 +85|79 +85|56 +37|82 +37|71 +37|41 +37|99 +37|75 +37|85 +37|16 +37|79 +37|46 +37|98 +37|28 +37|77 +37|19 +99|79 +99|17 +99|12 +99|28 +99|42 +99|11 +99|56 +99|15 +99|83 +99|77 +99|35 +99|23 +99|53 +99|63 +65|75 +65|15 +65|31 +65|77 +65|22 +65|71 +65|58 +65|56 +65|17 +65|63 +65|28 +65|74 +65|79 +65|83 +65|41 +16|78 +16|98 +16|42 +16|49 +16|28 +16|79 +16|77 +16|85 +16|35 +16|56 +16|41 +16|75 +16|22 +16|46 +16|58 +16|12 +66|82 +66|19 +66|63 +66|85 +66|41 +66|75 +66|71 +66|77 +66|17 +66|28 +66|54 +66|46 +66|78 +66|98 +66|89 +66|21 +66|65 +45|65 +45|41 +45|78 +45|63 +45|56 +45|71 +45|99 +45|75 +45|35 +45|21 +45|85 +45|17 +45|46 +45|79 +45|98 +45|66 +45|89 +45|54 +17|81 +17|23 +17|53 +17|15 +17|74 +17|61 +17|11 +17|76 +17|29 +17|94 +17|25 +17|84 +17|31 +17|83 +17|34 +17|91 +17|69 +17|37 +17|86 +54|65 +54|16 +54|78 +54|77 +54|11 +54|56 +54|46 +54|35 +54|63 +54|99 +54|19 +54|71 +54|41 +54|42 +54|17 +54|21 +54|28 +54|79 +54|75 +54|98 +91|78 +91|16 +91|81 +91|89 +91|99 +91|46 +91|45 +91|61 +91|84 +91|25 +91|21 +91|85 +91|35 +91|65 +91|69 +91|66 +91|37 +91|57 +91|29 +91|54 +91|76 +11|76 +11|57 +11|34 +11|69 +11|81 +11|37 +11|25 +11|94 +11|61 +11|15 +11|53 +11|74 +11|23 +11|29 +11|31 +11|42 +11|83 +11|84 +11|45 +11|91 +11|22 +11|86 +31|45 +31|57 +31|37 +31|78 +31|54 +31|34 +31|66 +31|16 +31|85 +31|69 +31|21 +31|25 +31|94 +31|46 +31|61 +31|99 +31|86 +31|29 +31|82 +31|76 +31|84 +31|91 +31|81 +46|23 +46|11 +46|42 +46|41 +46|77 +46|75 +46|15 +46|78 +46|17 +46|28 +46|79 +46|35 +46|65 +46|19 +46|56 +46|98 +46|22 +46|63 +46|89 +46|58 +46|12 +46|49 +46|99 +46|71 +71|23 +71|11 +71|91 +71|29 +71|31 +71|17 +71|12 +71|74 +71|57 +71|86 +71|81 +71|83 +71|28 +71|69 +71|58 +71|25 +71|15 +71|42 +71|34 +71|22 +71|76 +71|53 +71|49 +71|94 +86|25 +86|78 +86|69 +86|85 +86|75 +86|82 +86|65 +86|54 +86|77 +86|16 +86|89 +86|84 +86|57 +86|46 +86|99 +86|37 +86|45 +86|81 +86|19 +86|98 +86|35 +86|66 +86|21 +86|61 +94|85 +94|57 +94|76 +94|99 +94|25 +94|81 +94|61 +94|21 +94|37 +94|66 +94|82 +94|54 +94|69 +94|34 +94|86 +94|84 +94|45 +94|29 +94|78 +94|89 +94|98 +94|16 +94|91 +94|46 +23|86 +23|53 +23|34 +23|16 +23|82 +23|61 +23|91 +23|29 +23|66 +23|37 +23|84 +23|74 +23|85 +23|45 +23|94 +23|76 +23|81 +23|21 +23|57 +23|25 +23|54 +23|83 +23|31 +23|69 +58|45 +58|22 +58|91 +58|31 +58|86 +58|25 +58|81 +58|84 +58|76 +58|15 +58|34 +58|94 +58|66 +58|83 +58|74 +58|69 +58|54 +58|37 +58|23 +58|61 +58|57 +58|29 +58|53 +58|82 +81|35 +81|16 +81|65 +81|19 +81|82 +81|41 +81|61 +81|99 +81|21 +81|45 +81|89 +81|75 +81|66 +81|78 +81|37 +81|56 +81|84 +81|77 +81|98 +81|85 +81|54 +81|46 +81|63 +81|25 +56|42 +56|94 +56|22 +56|34 +56|17 +56|86 +56|15 +56|76 +56|29 +56|23 +56|83 +56|91 +56|71 +56|31 +56|28 +56|63 +56|53 +56|11 +56|69 +56|74 +56|12 +56|49 +56|79 +56|58 +84|66 +84|19 +84|65 +84|41 +84|21 +84|56 +84|98 +84|71 +84|79 +84|35 +84|12 +84|28 +84|89 +84|82 +84|99 +84|16 +84|46 +84|85 +84|75 +84|45 +84|78 +84|77 +84|63 +84|54 +69|81 +69|75 +69|65 +69|78 +69|19 +69|16 +69|46 +69|54 +69|84 +69|82 +69|45 +69|66 +69|21 +69|25 +69|89 +69|35 +69|77 +69|37 +69|85 +69|41 +69|98 +69|57 +69|99 +69|61 +41|86 +41|12 +41|28 +41|74 +41|56 +41|29 +41|63 +41|31 +41|23 +41|91 +41|22 +41|17 +41|83 +41|11 +41|42 +41|94 +41|53 +41|58 +41|76 +41|71 +41|49 +41|79 +41|34 +41|15 +53|83 +53|21 +53|54 +53|34 +53|69 +53|16 +53|61 +53|81 +53|76 +53|57 +53|37 +53|66 +53|46 +53|45 +53|84 +53|74 +53|85 +53|91 +53|31 +53|94 +53|82 +53|86 +53|25 +53|29 +83|74 +83|81 +83|25 +83|76 +83|91 +83|37 +83|86 +83|66 +83|85 +83|34 +83|31 +83|61 +83|46 +83|16 +83|69 +83|21 +83|94 +83|54 +83|45 +83|57 +83|29 +83|84 +83|82 +83|98 +61|21 +61|82 +61|99 +61|65 +61|46 +61|85 +61|79 +61|19 +61|84 +61|71 +61|89 +61|56 +61|16 +61|63 +61|54 +61|35 +61|98 +61|37 +61|41 +61|78 +61|66 +61|45 +61|77 +61|75 +12|11 +12|53 +12|23 +12|81 +12|91 +12|94 +12|69 +12|86 +12|15 +12|34 +12|74 +12|22 +12|17 +12|76 +12|25 +12|31 +12|58 +12|29 +12|42 +12|49 +12|83 +12|61 +12|37 +12|57 +15|16 +15|84 +15|53 +15|29 +15|83 +15|25 +15|76 +15|82 +15|21 +15|61 +15|66 +15|45 +15|37 +15|31 +15|54 +15|74 +15|23 +15|91 +15|86 +15|69 +15|81 +15|57 +15|34 +15|94 +78|79 +78|53 +78|56 +78|71 +78|23 +78|83 +78|89 +78|74 +78|15 +78|41 +78|28 +78|63 +78|77 +78|17 +78|58 +78|49 +78|19 +78|12 +78|11 +78|42 +78|75 +78|35 +78|22 +78|65 +89|83 +89|31 +89|53 +89|42 +89|75 +89|15 +89|63 +89|74 +89|71 +89|41 +89|17 +89|58 +89|79 +89|23 +89|49 +89|12 +89|19 +89|28 +89|65 +89|56 +89|11 +89|22 +89|77 +89|35 +98|71 +98|19 +98|79 +98|12 +98|65 +98|41 +98|23 +98|89 +98|53 +98|75 +98|77 +98|28 +98|56 +98|17 +98|49 +98|35 +98|99 +98|11 +98|22 +98|15 +98|58 +98|63 +98|42 +98|78 +57|25 +57|37 +57|89 +57|56 +57|66 +57|81 +57|77 +57|35 +57|41 +57|21 +57|46 +57|84 +57|75 +57|98 +57|78 +57|99 +57|54 +57|16 +57|61 +57|85 +57|19 +57|82 +57|45 +57|65 +49|61 +49|34 +49|37 +49|53 +49|84 +49|42 +49|22 +49|45 +49|76 +49|25 +49|91 +49|29 +49|83 +49|94 +49|58 +49|23 +49|74 +49|81 +49|86 +49|15 +49|11 +49|57 +49|69 +49|31 +28|53 +28|42 +28|58 +28|49 +28|17 +28|91 +28|74 +28|15 +28|31 +28|23 +28|25 +28|57 +28|94 +28|29 +28|34 +28|22 +28|12 +28|86 +28|61 +28|11 +28|83 +28|76 +28|81 +28|69 +79|29 +79|91 +79|17 +79|34 +79|28 +79|69 +79|83 +79|86 +79|58 +79|71 +79|31 +79|22 +79|42 +79|11 +79|15 +79|81 +79|94 +79|23 +79|76 +79|57 +79|49 +79|12 +79|53 +79|74 +19|77 +19|76 +19|15 +19|31 +19|42 +19|83 +19|91 +19|49 +19|74 +19|94 +19|41 +19|17 +19|12 +19|56 +19|11 +19|71 +19|23 +19|79 +19|53 +19|22 +19|58 +19|34 +19|28 +19|63 +74|46 +74|84 +74|21 +74|16 +74|99 +74|34 +74|94 +74|31 +74|45 +74|66 +74|25 +74|86 +74|81 +74|57 +74|29 +74|54 +74|61 +74|82 +74|69 +74|37 +74|91 +74|98 +74|76 +74|85 +25|89 +25|99 +25|41 +25|61 +25|37 +25|35 +25|45 +25|77 +25|82 +25|54 +25|84 +25|85 +25|46 +25|21 +25|63 +25|66 +25|98 +25|79 +25|19 +25|65 +25|75 +25|78 +25|16 +25|56 +77|74 +77|11 +77|79 +77|42 +77|28 +77|17 +77|12 +77|94 +77|34 +77|83 +77|29 +77|58 +77|41 +77|91 +77|15 +77|22 +77|23 +77|49 +77|56 +77|63 +77|31 +77|53 +77|71 +22|15 +22|86 +22|23 +22|84 +22|25 +22|31 +22|29 +22|81 +22|66 +22|21 +22|83 +22|54 +22|57 +22|53 +22|37 +22|74 +22|61 +22|82 +22|69 +22|45 +22|34 +22|94 +42|37 +42|53 +42|15 +42|57 +42|31 +42|94 +42|29 +42|86 +42|83 +42|22 +42|74 +42|23 +42|61 +42|69 +42|58 +42|81 +42|91 +42|66 +42|34 +42|45 +42|82 +34|86 +34|61 +34|99 +34|46 +34|84 +34|66 +34|91 +34|45 +34|89 +34|76 +34|81 +34|98 +34|69 +34|57 +34|16 +34|54 +34|29 +34|85 +34|78 +34|65 +21|89 +21|71 +21|17 +21|78 +21|65 +21|12 +21|56 +21|46 +21|75 +21|28 +21|98 +21|85 +21|99 +21|35 +21|42 +21|49 +21|63 +21|16 +21|41 +82|56 +82|11 +82|71 +82|99 +82|49 +82|77 +82|35 +82|63 +82|17 +82|79 +82|78 +82|54 +82|16 +82|12 +82|28 +82|65 +82|75 +82|46 +76|85 +76|35 +76|82 +76|46 +76|54 +76|89 +76|78 +76|37 +76|61 +76|99 +76|86 +76|84 +76|98 +76|65 +76|21 +76|69 +76|75 +29|37 +29|35 +29|99 +29|57 +29|25 +29|84 +29|66 +29|69 +29|81 +29|85 +29|65 +29|45 +29|86 +29|19 +29|16 +29|21 +63|86 +63|74 +63|12 +63|71 +63|15 +63|49 +63|58 +63|28 +63|17 +63|23 +63|94 +63|34 +63|29 +63|76 +63|31 +75|12 +75|56 +75|94 +75|53 +75|34 +75|91 +75|58 +75|42 +75|17 +75|31 +75|15 +75|19 +75|23 +75|41 +35|23 +35|75 +35|94 +35|28 +35|74 +35|56 +35|71 +35|19 +35|49 +35|11 +35|77 +35|22 +35|58 +85|58 +85|42 +85|89 +85|49 +85|78 +85|15 +85|75 +85|98 +85|17 +85|46 +85|22 +85|12 +37|66 +37|21 +37|89 +37|35 +37|78 +37|63 +37|56 +37|65 +37|45 +37|84 +37|54 +99|22 +99|75 +99|71 +99|49 +99|41 +99|78 +99|19 +99|65 +99|89 +99|58 +65|19 +65|94 +65|11 +65|23 +65|35 +65|12 +65|49 +65|42 +65|53 +16|71 +16|65 +16|19 +16|89 +16|17 +16|63 +16|11 +16|99 +66|56 +66|79 +66|35 +66|12 +66|99 +66|49 +66|16 +45|77 +45|12 +45|16 +45|82 +45|19 +45|28 +17|58 +17|22 +17|42 +17|49 +17|57 +54|85 +54|89 +54|12 +54|49 +91|98 +91|82 +91|86 +11|58 +11|66 +31|98 + +91,76,94,81,45,78,21 +34,76,63,42,31,41,83,56,15,53,23,28,79,71,94,77,91,49,74 +61,66,21,46,98,65,75 +56,71,28,12,17,58,53,31,94,34,86 +81,25,45,82,54,21,99,35,75 +83,31,76,29,69,57,25,37,45,66,16,85,46 +57,25,69,86,61,37,29,74,94,45,53,84,83,21,91,34,76,16,66,85,82 +91,57,98,86,21,85,78,54,34,82,76,29,45,84,99,46,61,16,66,25,89 +79,99,58,49,22,78,89,35,63,19,12,28,11,71,65,53,17 +12,23,61,74,91,34,53 +58,15,74,94,91,76,29,57,81,25,82 +15,23,53,81,37,82,21 +82,21,16,85,46,98,99,78,65,35,77,63,79,71,12,17,49 +76,53,17,49,79,63,56,15,28,91,58,34,22,74,77 +86,69,57,25,61,37,84,45,66,16,46,98,99,78,89,65,35,75,19 +41,91,15,31,79,29,83,58,94,17,56,76,63 +41,63,54,65,84,66,99,78,28,85,89,46,35,45,79,82,77 +81,61,84,45,82,54,98,78,89 +23,35,58,98,49,12,11 +61,37,84,66,54,21,85,99,78,35,77,41,56,63,79 +84,56,41,46,28,98,79 +49,11,23,83,29,37,84 +57,84,82,21,65,35,41 +83,74,31,94,34,29,86,69,81,25,37,45,82,21,16,85,46 +84,76,23,53,25 +81,66,54,16,85,46,98,99,65,35,19,77,56 +16,77,75,41,12,11,42,58,89 +22,53,74,94,34,91,76,29,86,69,57,81,25,61,37,45,54 +12,17,49,11,58,22,15,23,53,83,74,31,94,34,91,76,29,86,69,57,81,25,61 +46,82,84,16,41,65,45,98,56,78,99 +54,71,77,35,11,41,89,16,65,21,46,85,49,56,79 +42,15,23,53,74,31,94,34,91,76,29,86,69,61,37,45,66 +75,63,12,17,42,58,31,94,34 +15,35,79,78,41,89,28,49,77,56,71,17,19,75,98 +21,16,85,98,99,78,89,65,35,75,19,77,41,56,63,79,71,28,12,17,49,11,42 +22,23,53,83,74,31,94,34,76,29,57,81,25,37,84,45,66 +83,74,94,34,91,76,29,86,69,57,25,61,37,84,45,66,82,21,16,85,46 +57,76,37,17,83,91,81,49,86,58,69,74,11,15,22,31,61,94,25 +46,65,25,98,99,61,45,82,89,81,85,69,21,37,35,54,78,86,76 +89,12,83,74,11,77,28,15,71,63,35,19,79 +85,46,98,99,78,89,65,35,75,19,77,41,56,63,79,71,12,17,49,11,42,58,22 +12,19,28,23,74,89,77 +98,85,77,37,99,41,25,35,19,16,65,81,66,89,61,57,75,84,21,46,82 +86,69,66,98,99,78,35 +71,28,12,49,11,42,83,74,94,76,29,86,81 +84,98,78,19,41 +21,16,46,98,99,78,89,65,35,75,19,77,41,56,63,79,71,28,12,17,49,11,42 +25,61,66,82,75,77,63 +11,49,91,94,76,15,23,31,34,71,28,79,42,17,63,69,22 +99,78,75,77,63,79,49,22,15 +53,83,31,94,34,91,29,86,57,81,25,61,37,84,45,66,82,54,85 +23,94,74,91,31,69,25,53,15,81,22 +75,85,98,37,63 +78,54,37,82,41,16,46,71,99,66,75,56,21,84,65 +84,45,66,54,21,85,46,99,78,89,65,77,41,63,79,71,28 +34,53,71,58,86,81,57 +76,69,57,81,25,61,45,66,82,54,21,16,98,99,89 +21,46,98,99,78,35,19,77,41,56,63,79,71,17,49,11,42 +45,66,82,54,21,16,85,46,98,99,78,65,35,75,77,41,56,63,71,28,12 +85,19,77,82,98,56,49,75,41,89,71,17,12,79,35 +23,22,37,76,15,31,86,94,82,61,74,58,57 +56,17,49,58,23,83,31 +22,45,91,25,42,83,15,61,66 +82,21,85,98,75,63,49 +35,25,45,57,75 +81,75,77,46,25,37,84,85,89,16,78,19,66,69,98,35,21,82,61,57,65 +77,41,56,79,71,28,17,49,11,42,58,15,23,83,74,31,94,34,76 +58,41,77,15,42,71,12,35,53,83,19,74,63,75,22,89,79 +11,23,49,19,42,94,34,56,75,53,22,83,28,15,31,71,17 +35,53,17,22,77,12,75,83,11,41,71,23,56 +41,85,79,11,65,49,77,75,17,42,99,28,71,35,89,63,78,22,19 +45,85,35,66,75,63,98,84,89,21,78,54,82,25,77,16,19,41,99 +53,74,25,83,23,54,29,81,86,82,22,57,61,94,76,91,69,34,31 +65,75,16,78,99,35,98 +86,91,11,57,53,29,23,69,83,81,31,17,71 +71,17,42,63,41,74,58,22,53,56,28,83,79,91,34,15,19,23,94 +65,41,56,71,28,49,22,15,23,74,31 +29,69,57,61,37,84,45,82,21,46,98,78,75 +16,65,75,19,56,63,71,12,49,42,58 +86,69,57,81,25,61,37,84,45,66,54,21,16,85,46,98,78,89,35,75,19 +79,71,12,17,49,42,58,22,15,23,31,94,34,91,29,86,57 +34,37,23,29,54,57,94,61,84,45,22,69,83 +91,76,29,86,69,57,81,61,37,84,45,66,82,54,21,16,85,46,98,99,78,89,65 +21,79,12,98,42,16,78,11,28 +28,49,86,58,81,69,53,74,17,57,12,91,11,23,25,22,42,76,83,29,31,94,34 +42,58,22,15,23,53,83,31,94,34,91,76,29,86,69,57,81,25,61,37,84,45,66 +84,78,75,35,19,65,69,21,85,81,66,25,99,16,77,98,45 +66,82,54,21,16,85,46,98,99,78,89,65,35,19,77,56,63,71,28,12,17 +77,94,28,49,31 +11,58,74,83,41,34,19,75,42,49,12,23,15,71,94,53,22 +16,46,98,99,78,89,65,35,75,19,77,41,56,79,71,28,12,17,49,11,58 +86,74,49,71,28,22,63,83,15,34,17,58,91,23,53,69,12,31,11,76,42 +98,85,75,99,63,35,16,65,71,37,77,82,79,41,19,54,89,66,21,78,84,45,56 +19,77,41,56,79,28,12,49,42,58,22,23,53,83,74,31,94,34,91 +79,71,28,17,11,42,58,22,23,53,83,74,31,94,91,76,29,69,57 +29,45,85,91,94,78,81 +56,19,46,15,35,22,71 +46,66,29,61,16,65,57,54,76,89,98,21,25,91,45,85,99,78,37 +76,31,94,84,15,61,83,57,58,91,25,34,37,53,66,81,22 +94,29,61,74,69,34,31,91,37,84,86,25,15,83,23,81,21 +74,25,12,58,29,69,61,94,53,42,57,49,11,86,23 +61,37,84,45,66,82,54,21,85,46,98,99,89,65,35,75,19,41,56,63,79 +16,85,46,98,99,78,89,65,35,75,77,41,56,63,79,71,12,17,11,42,58 +12,49,42,58,15,83,74,31,94,34,91,76,29,57,25 +41,84,85,78,45,21,99,35,75,57,54,77,66 +74,31,34,76,29,69,81,61,37,84,45,82,21,46,98 +83,74,31,94,34,76,29,86,69,81,25,61,37,84,45,82,54,21,16,85,46 +79,56,89,77,78 +91,31,66,81,69,46,76,16,82,25,29,21,84,98,85,45,61,74,54 +77,78,17,28,54,35,16,82,99,65,41,89,71,12,63,98,19,46,66,56,79 +54,21,75,63,79,49,11 +49,53,23,69,74 +22,17,41,65,77,31,83,79,19,49,53 +99,78,65,56,79,71,17,11,42,15,53 +77,15,23,17,12,22,42,65,79,71,75,11,89,49,41 +86,81,37,84,82,16,85,46,99,78,89,65,35 +82,21,16,99,65,35,19,77,41,71,12 +78,89,65,35,75,19,77,41,56,63,79,28,12,17,49,11,42,58,22,15,23,53,83 +65,79,58,22,53,74,31 +31,94,34,86,57,81,61,84,66,54,21,46,98 +79,12,17,49,58,53,57 +17,28,77,65,12,71,79,75,31 +99,81,45,21,82,84,57,54,86,78,66,29,25 +22,69,83,31,71,76,17,79,94,86,34,42,63,53,12 +89,65,35,75,41,63,79,15,53 +75,61,69,84,46,16,19,45,35,86,78,54,25,21,82,85,57 +46,98,99,78,65,63,79,12,11,22,15 +79,17,11,58,22,15,74,34,91,29,57 +57,58,23,53,83,42,94,76,61,15,22,45,34,31,29,81,86,37,25,84,66 +99,81,57,69,82,45,89,85,46,61,86,21,78,16,37,76,66,34,29 +83,53,74,41,22,11,58,12,77,79,71,56,65,17,35,49,75,42,19,15,28,89,23 +21,16,46,98,89,65,35,75,19,77,41,56,63,79,71,28,12,17,49,11,42 +56,58,49,83,11,17,71,42,53,76,77,15,63,12,31,79,74,91,41 +25,61,37,84,45,66,82,54,21,16,85,46,98,78,35,75,19,77,41,56,63 +69,23,34,29,66,82,16,25,31,21,57,91,81,54,74,86,94,84,61,45,83,53,37 +45,85,46,21,75,54,63,77,79,56,82,41,71 +16,85,46,98,99,78,89,65,35,75,19,77,41,56,63,79,71,12,17,49,11,42,58 +56,82,46,54,98,99,65,19,35,45,85,41,84,25,16,89,78,37,63 +37,84,82,54,21,46,98,99,78,65,35,75,19,77,41,56,63,79,71 +75,19,77,56,49,11,42,58,22,53,83,31,34 +19,71,42,46,12,85,63,89,56,49,79,41,99,11,77 +74,31,34,91,76,29,86,69,81,25,61,37,84,45,66,82,54,21,16,46,98 +37,84,45,66,82,54,16,85,98,78,89,65,35,75,77,41,56,79,71 +99,65,35,19,77,79,71,49,42,58,22,15,53 +11,42,58,22,15,23,83,74,31,94,34,91,76,29,69,57,25,61,37,84,45 +85,77,78,99,61,41,75,89,57,37,65,25,54 +54,66,57,69,21,78,25,85,81,29,86,61,65,99,37,98,16,89,46,76,45 +99,66,57,89,41,65,16 +37,82,54,21,98,19,63,79,71 +42,35,17,19,28,11,15,74,94,77,71,22,75,83,53 +83,74,31,94,34,91,76,86,69,57,81,25,61,37,84,45,66,82,54,21,16,85,46 +46,29,57,65,45,86,81,61,84,78,98,66,35,69,25,37,82,21,85,89,76,16,99 +23,53,83,74,94,34,81,37,84,45,16 +58,56,31,22,75,15,77,34,11,79,19,17,49,23,71,28,63,12,53,74,83 +41,42,99,65,12 +71,28,12,17,49,11,58,22,15,23,53,74,94,91,76,29,86,69,57 +21,37,16,99,31,82,81,61,85,34,86,29,76,45,57 +45,66,82,54,21,16,85,99,78,89,35,75,41,56,63,79,71,28,12 +22,28,75,74,63,41,65,56,89,15,79 +65,19,63,35,98,12,85,28,21,75,78,17,89,77,46,54,99,16,11 +65,35,75,19,77,41,63,71,49,11,42,58,22,15,23,53,31 +78,35,41,17,49,11,23,53,83 +56,63,79,71,28,12,17,49,11,42,58,22,15,23,53,83,74,94,34,91,76,29,86 +42,49,71,23,76,94,53 +22,23,83,74,94,34,29,69,57,61,37,84,45,82,54 +17,49,11,58,22,23,53,83,31,34,91,29,69,81,25,61,37 +29,86,69,57,81,25,61,37,82,21,16,85,46,99,78,89,65,35,75 +25,84,45,82,54,21,16,46,99,65,35,75,19,56,63 +49,11,42,22,53,83,31,94,34,91,29,57,84 +49,63,76,53,15,28,42,83,58,71,29,11,34,22,94,74,69,31,79,23,12,86,17 +56,63,28,12,17,49,11,58,22,15,23,53,83,74,31,94,34,91,76,29,86 +82,56,45,19,21,79,61,99,89,63,77,85,54 +83,49,74,12,75,77,58,35,53,79,94,17,56 +41,79,71,28,12,17,49,11,42,58,22,15,23,53,83,74,94,34,91,76,29 +63,79,71,28,12,17,49,11,42,22,23,53,83,74,31,94,34,91,76,29,69 +12,49,11,42,22,15,23,53,83,74,31,94,34,91,76,29,86,69,57,81,25 \ No newline at end of file diff --git a/5/testinput b/5/testinput new file mode 100644 index 0000000..d4d4441 --- /dev/null +++ b/5/testinput @@ -0,0 +1,28 @@ +47|53 +97|13 +97|61 +97|47 +75|29 +61|13 +75|53 +29|13 +97|29 +53|29 +61|53 +97|53 +61|29 +47|13 +75|47 +97|75 +47|61 +75|61 +47|29 +75|13 +53|13 + +75,47,61,53,29 +97,61,53,29,13 +75,29,13 +75,97,47,61,53 +61,13,29 +97,13,75,29,47 \ No newline at end of file diff --git a/6/input b/6/input new file mode 100644 index 0000000..b5164df --- /dev/null +++ b/6/input @@ -0,0 +1,130 @@ +......#.......#...................................................................................##......#..............#........ +........................#....................................#.................................................................... +...#.........#...#.....##..#...#......#..........................................#................#...................#....#....#. +....................#...#...#.#............#..................................#..............#....#............................... +.....................................................................#................................#........................... +........#............#......#................#..................#................................................#...............# +...................#.........#............................................................##...................................... +.........#..........#......##.............#.#...............#................................##.................#................. +...........................................................#...............................#..................##......##.....#.... +...................#...........................................##...............#.....#......#............#..........#............ +...............#........................#...#....#..............................................#.#......#............#........... +........#.............#...........................#..#.....................................#...................................... +......#......#....#..............#...............#...#...............#.......#...................................................# +..........#............#..#.....#......................#.........#...........................#..........#......................... +#...............................................................................#.#....#.............###..................#....... +.....#.#....#....................................#............................#...............#........................#....#..... +....#......#................#....................#...................#............#................#.............................. +#...................#.............................#.#...#.............#......................#.....................#.............. +.................#...............#................................#..##..#..............#.......#................................. +.....................................................##.#.....................................#.............#..................... +...#.............................#................................................................................................ +#.##.........................................#....#..#..............................#......#..................................#... +......................#.........##.....................................#......................#..#..........#...............#....# +.#......................................................#....#......................................#...............#....#........ +............#...............................#.......................................................#............................. +.............................................................................#.................................................... +..#...#.....#...............................................................................................#..................... +................................................#.#.......................#..................#............#....................... +...............#.............#.....................#........................................................#..........#.......#.. +...................................#..........#......#............................................#.....#......................... +.............#..............#...........##..........................................................................#.....#....... +.............#...............#........#.................................................................#.......#................. +.#...............................................................#..............................................................#. +.#......#...........#..............................................................##............................................. +...................#.....................................#....#........................#............................#.......###... +.....#...#.....#......................#.....................................#...............................#..................... +......................#....#...#........#........#...........................#...............#...........................#....#... +..#..#................................................................................#........................................... +.....#......#.#.......................................#..........#................................................................ +..........#.......................#.............#.#........##.........................................................#........... +##........##.#....................#...#...................................................#.##......#...................#......... +...........#................#.#...........#......................#..................#......#...................................... +...#..............................#......#...............#.................#.#............................................#.....#. +...#..................#...............#.........#..#.............................#..........#...................#.......#......... +.....................................................................................................#.......................#.... +....................................##.#.................................#......##................................#.#............. +..................#.............................................................................................#............#.... +............#........#...#.....#.....#........................................#....#..............#..............................# +....................................#...........................................................................................#. +............................#.#....#.....................#........................................................................ +........#....#......#.......#................................................................##............................#...... +....#...................#....#.............................................................................................#...... +....................#......#.........................#..................#.........#....................#.......................... +#........#.....#.......#....................................#.....#...........................................#................... +.....#....................................................................................................#.#....#................ +....#....................................................................#.......#........................................#....... +#...........................#.#....#......#................................................................................#...... +.#..........................................................#...............#......................#.............................# +..#..#.#...................................#.......#...............#....#....................#................................#... +.........................#........................................................................................................ +...................................#...........................#...........#..#...........#................#.........#............ +......................................#...............#.................#..#............................#.....#..#...#............ +#.......................#.........#..#...............................................................#.......................#.... +............#............................#..#..................................................................................... +................#............#..................#....#........#...............................#....#.#.......................#.#.. +.........................................................................#....................#..........................#........ +.....................................................#...............#........................................#......#............ +..........##..................##...............................................................................................#.. +..................#.........................................#..#......................#.........#.....#.....#..................... +..#.........................................................................#...................................#................# +...............................#.................................................................................................. +..#..........#..#..............................................................................#........................#......... +...........#.#........................................................#.....#.........................#........................... +...........................................#......#............................................................................... +.......................#................................................................................................##........ +.....#...............#....................................................................................#.......#............... +.#.#.................................#........................#................#...............#......#........................... +........#........#...............#.........................^...........................#......#.................................#. +.....................#.............#..#........................................................................................... +...........#...........................................................................#.......##......#.............#............ +..........#..........................................#.................#....#......##.........#.................................#. +...................#...#...................#....#...........#................................#.#.................................. +.......#....#...#..................#...............................................#.....#.........#......#.#.#.......#......#.... +.....#................................................#......................#...#.....................................#.#........ +.##........##.......#.........................................##.................................................................. +......................................#....#........#..........#..#...........................#....................#....#......... +.......................#........................#..............................#.#.............................................#.. +..........................#....###......................................................................#...................#..... +...........#..................#..............#.................................................................................... +......................#................#..#............................#............#.........................##...#.............. +.................#.......................................................................#....#...............................#... +................................................#..............................................................................#.. +..#.......#....#................#...........................#..........#.#..#.......................#.#....................#...... +........#.............................#........................................#.................................................. +...........................#............................................................................#.............#....#...... +#...................#.......#............#..........................................................#..#....#......#..........#..# +#..........#.................................#.........................#..................................#....................##. +..........#..#...........................................................................#........................##..........#... +.............#.#.......................................#.................................#..............#.......#................. +.................#....#........#........#....#.................................#................................#................. +...........................#..........#.#..#..#........#...#....................#...#........#.......................#............ +........#................................#...................................#.#...............#.................................. +............................................................#.......#......#.#..........................#..#....................#. +.........#.#....................................#.....................#.....##.......#..................................#......... +........#......................................#.......##............................................................##.....#..... +.............#................................#....#..................##...........................#..#..#........................ +.......................................................#...#..........#...................................#.......#........#...... +.....#...........#...............................................................................................#................ +.......#..................#......#.....#............#..................#.......#.............#................#................... +.....#.........................................................#...........................................#.............#.....#.. +...............#..................#...............................................#...................#........................... +..#............#......#....#...#..............................#..#...................................#...#.............#.......... +.........#........#.....................................##.......................#.....................#..#.............#......... +....................#....#......................#..#.##..................#................#...........#............#.............. +..........#..................................#............#..#...............#.................#..........#....................... +..................#.........#........................#.........................#.........#..................................#..... +...........#.#..............#........#.................................#............#............................#................ +.#.....#........................................................................................#....#........##.................. +.....................#....#.................#..........#............#............................#.............#.............#.#.. +................................#....#......................................................#....#............#.............#..... +..............#..#.........#....................#.......................#.......#.........#..................#.................... +.............#.....#....................#.#.....................#................#...#.........................#........##........ +.......#.......................#.........................................#.........................##.....#...........#...#.....#. +.....#.................#................................................................#.................................#....#.. +................#.......................#...........#........#................#.......#.#.#........................#........#..... +......#..........................#......#............#.......#...#.............................#..........##.......#..........#... +................#.....#...#..............................#......#..#.............................................................. +.............................#....#...............#..............#......................................#.......###..#.#.......... +..........#.......#...............#............................#........#......................................................... +.................#.....................................#.......................................#................#........#.#..#...