diff --git a/.gitignore b/.gitignore index 3387254..dfe7865 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +cookies/session + # ---> Clojure pom.xml pom.xml.asc diff --git a/README.md b/README.md index 5f4df0d..24b575e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # advent-of-code-2024 +To get puzzle inputs you need to place your session cookie to `cookies/session`. + To run: clj -M src/dayX.clj diff --git a/cookies/.keep b/cookies/.keep new file mode 100644 index 0000000..e69de29 diff --git a/deps.edn b/deps.edn index 4c7bd83..aa775c4 100644 --- a/deps.edn +++ b/deps.edn @@ -1,2 +1,3 @@ -{:paths ["src" "inputs"] - :deps {org.clojure/clojure {:mvn/version "1.12.0"}}} +{:paths ["src" "cookies"] + :deps {org.clojure/clojure {:mvn/version "1.12.0"} + clj-http/clj-http {:mvn/version "3.13.0"}}} diff --git a/inputs/day1 b/inputs/day1 deleted file mode 100644 index ec0133e..0000000 --- a/inputs/day1 +++ /dev/null @@ -1,1000 +0,0 @@ -77442 88154 -71181 76363 -49755 69158 -38798 22488 -89857 49242 -96168 60034 -68503 43760 -52053 29173 -27070 63754 -78107 13305 -18422 95805 -34555 59209 -52260 83075 -35963 65961 -92308 56524 -25352 19586 -87921 76287 -21112 20450 -40251 20187 -66316 47227 -10872 77651 -78694 67481 -80223 15216 -69732 81168 -38939 38777 -34636 24551 -10066 49751 -21755 21498 -59907 37042 -40042 20430 -10479 30302 -92724 56653 -49261 18139 -14450 41684 -20138 54577 -49196 76287 -78226 77472 -55352 47752 -73181 76363 -88373 44539 -55224 13454 -78343 39913 -50215 26340 -93394 81365 -12421 17637 -30218 22488 -60899 27070 -53443 63193 -78769 76287 -34837 64955 -57703 90260 -84563 61551 -95968 61321 -18237 59051 -88136 22597 -75094 61551 -14017 58846 -18973 79651 -45202 81168 -67888 36454 -58743 65364 -65978 66336 -27877 47227 -23703 90563 -63594 76363 -19101 52928 -49192 16770 -78677 33277 -74303 76324 -56874 47227 -90161 64736 -39443 58067 -59419 76363 -16790 61551 -23505 93360 -70298 20187 -64391 61321 -62270 61551 -12823 57714 -83131 23208 -29372 81168 -21121 63648 -22012 74365 -42673 20187 -81026 63754 -96443 74839 -30527 16770 -88227 80574 -43550 81327 -83170 87067 -97480 59239 -57306 33168 -12562 19586 -70051 69573 -23409 59209 -98618 36335 -55824 77218 -26417 29173 -47973 28702 -88458 23040 -78792 26612 -49946 81708 -80977 82477 -64506 76324 -51584 19586 -74305 17617 -29886 13430 -66682 81168 -25165 48749 -58380 53467 -69518 61551 -13253 54169 -47096 90256 -30095 92342 -53753 74679 -18402 68884 -96146 54906 -78431 82348 -58498 30348 -48373 28719 -84718 49196 -60072 54268 -82045 81168 -11287 73806 -37090 34498 -38432 59686 -13148 69158 -29704 68950 -45645 76324 -68457 60034 -66349 78117 -72212 54196 -16845 53315 -49997 16770 -56793 64874 -27128 43619 -92355 71300 -76013 43778 -20620 81868 -23056 37042 -82567 61327 -13147 79444 -70591 58074 -68310 63193 -36484 52913 -97410 78373 -31951 44983 -65334 30896 -14656 59209 -91768 61551 -56457 27850 -57141 42263 -18561 31760 -75233 81868 -73250 95805 -14002 12467 -42157 47227 -34516 26033 -55035 81168 -13086 73119 -43301 41775 -38864 65779 -95169 31728 -73367 69158 -53500 63193 -81688 63754 -93934 95142 -54841 30896 -66614 76324 -52867 34526 -92062 65386 -74176 79531 -75046 76363 -64084 28284 -17516 91401 -58314 14259 -30184 48803 -82359 33277 -83956 16770 -87246 96540 -66231 34404 -42526 87428 -96228 96903 -70702 63193 -72108 20187 -62377 59209 -72553 10468 -57600 56860 -16563 57459 -35342 33277 -29419 27070 -22242 37042 -81264 45944 -27706 18763 -11777 17623 -96931 30714 -27765 80535 -65779 66518 -82921 19432 -87744 43619 -85543 40341 -56196 81132 -34774 97741 -93073 61787 -37699 62712 -45701 81380 -60801 76363 -66024 25646 -38321 50162 -32244 10468 -95866 29173 -91365 37520 -96047 11889 -60690 63193 -40819 47227 -19229 63551 -56978 27070 -84539 43393 -50724 59209 -90639 67420 -70374 28146 -83465 27150 -67309 61321 -56678 42545 -91876 78117 -11246 81868 -66054 83337 -40614 69158 -56899 37042 -65744 20551 -80749 37042 -74619 10468 -60988 76287 -84866 60034 -45318 49196 -14541 60910 -79263 35253 -48847 58067 -73082 24937 -79835 48742 -62446 39600 -62036 62719 -13498 71733 -18172 81168 -35258 59209 -60068 38731 -43622 33109 -23059 12770 -61060 43807 -45296 76363 -31310 72036 -69945 10468 -89043 62946 -44661 96601 -32843 10468 -83953 61321 -44774 43897 -47310 48153 -96064 35936 -79098 27177 -11333 76324 -31875 27736 -92000 60034 -60969 96903 -37597 73631 -97194 20187 -90624 70413 -15881 59845 -29211 22488 -19865 95805 -37093 27070 -85746 17347 -88886 46767 -94576 81868 -59784 19770 -98263 75790 -47612 62157 -27380 91120 -33552 16758 -72012 80611 -18549 85133 -23250 70963 -43410 85770 -55986 33277 -62202 20187 -86252 81868 -76363 81168 -39103 67989 -94626 14656 -11792 43619 -62872 29173 -66617 16770 -76923 37042 -54667 22488 -80651 76324 -24898 98262 -78913 43619 -86226 39913 -41730 29173 -62228 39913 -20570 14090 -48070 61321 -89609 73535 -21233 69158 -67520 27006 -69207 66474 -80773 76363 -98652 82728 -77753 65779 -61668 40001 -49504 65779 -90868 87612 -50836 27501 -34661 98114 -36590 31091 -29788 95805 -36309 46751 -45305 33147 -77866 89262 -26091 95805 -73725 75617 -89578 71004 -62919 78373 -18631 61551 -65733 91526 -63976 31808 -57363 54799 -63193 35481 -93512 11640 -22455 32469 -12710 33277 -80568 61321 -82907 31518 -70300 76363 -65593 58067 -66452 68846 -81168 19586 -81230 95805 -15461 78373 -99354 27070 -97780 16770 -11597 36795 -86142 60034 -22929 58067 -72577 16770 -87562 11734 -15882 17423 -18782 78117 -21443 53759 -97662 66320 -26467 10468 -12181 60034 -99202 76363 -92349 72225 -20986 25419 -85821 58067 -70172 92060 -54212 59209 -42712 76324 -90995 90226 -62165 20187 -70665 81168 -23358 63754 -82477 84396 -71987 23192 -95504 51191 -40799 41278 -35361 95805 -10730 51728 -43173 61551 -28181 33277 -23939 35592 -38685 60717 -36349 88861 -38913 47227 -36681 54470 -34231 80208 -84150 32348 -53592 31390 -90048 13692 -56334 66336 -92955 73054 -26500 20187 -11840 75286 -23430 42085 -79148 63193 -60469 19586 -15750 66336 -51639 16201 -66378 76287 -33011 19586 -74383 18079 -13342 71848 -43984 27950 -78415 45783 -37553 58067 -86775 68642 -34408 60406 -53067 58239 -83096 30991 -59779 47641 -92173 31090 -93789 84819 -34804 35005 -86853 98556 -19023 69269 -24014 78373 -88189 76324 -96897 80598 -71969 16770 -57758 60034 -84236 19912 -39543 74542 -45629 61518 -46405 23011 -88155 56357 -39913 69880 -58055 19586 -67449 33277 -97296 41994 -11979 74945 -97896 11294 -16406 47227 -33210 16770 -22366 19586 -14047 99638 -62524 35305 -85153 11167 -35374 52130 -76324 97224 -50715 66545 -30446 95805 -75098 54539 -60654 14555 -92593 10468 -37954 23752 -67845 49196 -18665 95058 -46953 20187 -22488 13898 -76756 95805 -52973 20187 -88681 61321 -67431 37042 -58093 59209 -61522 58067 -19692 22314 -55686 78373 -75663 88193 -75619 70326 -83139 34779 -96583 66996 -76437 13367 -19832 35599 -32727 43276 -64900 37042 -99403 70388 -20217 83512 -68879 39957 -55020 39913 -22732 61321 -70441 48560 -35671 30896 -87206 77391 -15719 65627 -70843 68981 -80802 77969 -60385 54937 -68163 27874 -51564 60034 -14231 59293 -10468 69158 -58531 33277 -89365 96591 -65598 49196 -30226 67781 -13423 29173 -43242 87650 -45581 39913 -55879 81168 -28959 84631 -67482 78373 -21358 13041 -40107 60034 -56957 66336 -68981 42504 -45865 67267 -83968 32642 -36082 29173 -51895 92287 -97489 19909 -13164 23658 -43619 32643 -80054 68277 -43543 10468 -21603 54219 -29392 81168 -79097 91391 -91813 76324 -27744 43619 -66902 41779 -84610 27070 -63644 23335 -63408 68981 -71224 33277 -48293 47227 -57365 48719 -13590 33277 -34822 59209 -90168 71625 -88698 88553 -59044 71011 -64826 60877 -46286 85678 -49565 52138 -89303 29173 -57427 76287 -84546 75928 -68856 99211 -44748 59209 -18252 70479 -32823 91526 -36238 56724 -34436 69158 -25905 83377 -11310 49196 -71865 29173 -31257 41046 -82139 76324 -66945 47714 -23390 33277 -95805 81168 -53931 19586 -46434 95805 -75144 41705 -88419 10648 -99702 63193 -38898 53110 -83475 59209 -57700 37042 -42255 16770 -68559 69158 -48622 30896 -48063 60034 -36896 58465 -61761 38881 -45534 23509 -84197 40976 -10741 60540 -57029 78300 -61058 76363 -16955 76324 -95154 29173 -20941 43072 -76420 10654 -57350 57933 -37339 33049 -11022 33630 -11086 39913 -64945 97536 -95125 27070 -70646 78373 -70553 20187 -52129 76287 -35583 76287 -52407 32158 -21537 45488 -49682 24598 -20290 47227 -66261 44764 -90484 31261 -25358 29173 -59209 88778 -21520 49196 -46692 41896 -83918 13692 -68641 78373 -93012 68295 -10186 63414 -84383 19586 -33576 99070 -42089 59209 -76287 61321 -63821 55986 -17944 38193 -57972 81168 -51596 61321 -22418 95805 -68055 76287 -19554 29173 -59117 14656 -17210 65375 -61968 34453 -22768 44020 -22419 92236 -33546 83847 -34755 58136 -17956 31634 -19543 59209 -85916 34705 -66761 93059 -30911 50479 -12158 32771 -91771 29981 -87708 60034 -70837 67717 -27584 78373 -67642 61551 -62273 19018 -16352 61551 -41901 29173 -25732 81298 -75816 29212 -25681 63754 -86396 12643 -44190 56820 -58070 19742 -44532 83582 -47227 35357 -36638 44159 -15632 76363 -72120 47309 -32764 47227 -51180 78117 -49739 14656 -66274 78739 -61723 43619 -59015 19586 -21891 85648 -18747 61551 -86144 58938 -39681 69158 -38150 68516 -61321 10468 -38754 30896 -70627 83718 -91724 74971 -91330 29173 -38159 73587 -78498 78373 -24641 61551 -12550 83211 -70711 83416 -17338 65779 -56076 39000 -21353 27070 -61551 85619 -42398 85167 -80835 63559 -69604 71196 -76284 81168 -73817 65125 -35170 23254 -52139 95805 -40826 81168 -85479 46622 -56430 33363 -67747 31755 -25739 13587 -17558 39762 -89499 93764 -78373 73981 -95268 46534 -33958 28798 -12195 66209 -63380 76287 -60034 27070 -80467 76324 -98506 95805 -58067 99459 -75075 60524 -43692 26965 -17039 37042 -97439 76324 -79297 29173 -68473 35985 -47630 17932 -61662 58771 -86027 39235 -62403 81835 -24100 54006 -87270 47227 -35793 39913 -91493 19398 -55623 19898 -82673 78117 -15863 91070 -57779 66587 -45405 49196 -93780 61551 -99320 65779 -40036 47227 -33370 83360 -82692 90756 -78117 19586 -68580 64705 -57478 69158 -15588 64663 -73700 39913 -81481 78593 -49442 28165 -61061 20187 -37624 78760 -90983 30919 -60057 61171 -80319 60632 -99544 63754 -14572 32678 -35131 83311 -90273 78373 -19621 19897 -88549 43398 -90170 60034 -35057 61321 -34283 61551 -24485 16250 -41063 95805 -47154 45332 -87986 16770 -36053 29173 -20687 60034 -66575 30896 -81371 95805 -91665 78117 -51369 51581 -19220 59209 -45158 39913 -61595 98095 -79096 75715 -72662 59209 -10875 44090 -99736 16480 -85897 65779 -83776 52163 -40755 19553 -80969 76363 -53053 76363 -58468 76324 -68895 30896 -10193 19586 -51578 42226 -59446 27070 -98969 73952 -15913 88063 -95191 69158 -27476 27070 -94851 58067 -47345 56070 -35791 59209 -56194 62759 -71120 31064 -42599 76860 -33848 20187 -68814 60034 -25584 51942 -85338 71636 -77668 99601 -82555 35041 -44609 16770 -73386 61321 -30553 29173 -35913 76363 -70145 95805 -99873 19236 -32644 24024 -15974 19406 -70045 47227 -37614 14925 -70738 66336 -96972 69158 -71948 76363 -18962 63193 -22983 27070 -50419 60034 -92422 18415 -29173 94253 -17365 35447 -76649 65307 -72431 40771 -46431 45281 -25817 42605 -83620 61152 -83434 76363 -25031 24195 -31968 42631 -31604 71439 -94886 72284 -88754 27196 -14709 25431 -40906 27070 -89846 44931 -29736 78373 -62109 76363 -41649 82052 -13672 35541 -58161 31191 -63752 55104 -22495 47227 -55699 81868 -69083 14656 -20079 36929 -34505 27070 -70644 33277 -18606 80975 -90720 65841 -33445 14656 -66398 76324 -22680 47227 -27166 43619 -94319 27070 -19586 62041 -51374 52608 -28183 59545 -49601 60267 -45765 51736 -57265 29173 -77954 77288 -81735 27070 -17145 10232 -62809 52565 -38935 53430 -26249 78373 -86870 42850 -49988 91893 -57756 60034 -69866 85817 -38276 95805 -65159 78373 -88269 78117 -18994 47227 -89894 88633 -19078 27070 -13692 58448 -34577 76324 -93672 39465 -66156 33277 -52761 75778 -71038 95805 -59876 23131 -95962 85623 -33277 13436 -22237 76435 -42882 27070 -42825 27070 -44396 19594 -89726 78373 -16770 65779 -44209 15242 -98471 40691 -63754 30896 -52305 55759 -21085 35037 -84268 33277 -23150 60228 -60140 62491 -96903 10468 -94329 75565 -26226 36931 -74515 63754 -68426 57490 -36722 76287 -91076 59209 -10149 82403 -49208 56685 -64396 93619 -35021 76363 -10780 30896 -86680 54460 -65532 35338 -35181 83328 -85405 10723 -91632 63754 -75023 72435 -37042 63193 -53779 19586 -37585 39913 -23603 90041 -88436 83914 -69158 68981 -70402 94227 -44083 65227 -82394 14656 -27746 16770 -19624 45804 -97957 71000 -30896 28091 -78374 26479 -66971 16770 -96748 49196 -47956 30896 -84663 80516 -89157 82477 -12228 65947 -42362 53557 -93195 51572 -75162 89269 -45009 61551 -39320 49305 -67273 41190 -65163 30289 -18734 74713 -73297 82175 -91431 13090 -14963 46180 -71185 16770 -42321 48403 -64599 67069 -53334 34468 -20187 57178 -83616 10468 -66914 20187 -81279 20187 -99419 37042 -79294 31121 -28220 76363 -80676 61551 -24797 25016 -35108 35246 -65643 66828 -36523 57465 -33040 46127 -81868 23412 -53306 90826 -47740 15732 -37843 22642 -98695 87173 -51321 38561 -95514 61551 -26419 35706 -20382 64457 -18337 76324 -24862 42585 -96800 57680 -88316 78955 -93747 40607 -89689 78373 -86418 13271 -37119 98421 -98276 61657 -37447 56593 -41319 41419 -43040 40781 -44573 69158 -93294 85174 -37495 99697 -33107 16770 -54548 62282 -54445 80876 -88038 88090 -66613 65779 -64729 18816 -81937 14656 -86560 49196 -90763 79218 -10930 80489 -52132 37042 -93840 96903 -14381 46862 -23038 59209 -12809 69134 -28706 53283 -35811 47227 -64368 16770 -14652 55002 -24290 95805 -35618 61879 -76669 65779 -65052 63193 -27533 84394 -37756 60034 -28054 78373 -56969 59374 -83129 27070 -81613 16770 -75625 78373 -17846 70557 -77897 20442 -93086 30896 -73969 96869 -87726 16313 -88858 78373 -65550 37042 -60065 61551 -91526 59209 -15647 20187 -40208 60034 -45614 81345 -56409 48982 -14733 73493 -50641 83354 -60500 30643 -66336 39913 -52887 80280 -72997 39913 -44985 61551 -79421 34868 -36332 36878 -69182 95805 -59092 67571 -29363 98020 diff --git a/inputs/day1.example b/inputs/day1.example deleted file mode 100644 index dfca0b1..0000000 --- a/inputs/day1.example +++ /dev/null @@ -1,6 +0,0 @@ -3 4 -4 3 -2 5 -1 3 -3 9 -3 3 \ No newline at end of file diff --git a/inputs/day2 b/inputs/day2 deleted file mode 100644 index 0a3c7c2..0000000 --- a/inputs/day2 +++ /dev/null @@ -1,1000 +0,0 @@ -1 3 5 6 8 9 12 9 -66 67 70 72 73 74 75 75 -18 20 22 25 28 31 35 -85 86 87 90 93 99 -5 6 5 7 10 12 15 16 -68 70 72 73 74 73 74 71 -75 76 79 76 79 79 -38 41 44 45 43 47 -76 77 79 80 83 85 84 90 -73 76 79 79 82 85 88 -86 87 87 90 93 94 97 96 -47 48 48 49 49 -29 30 31 31 35 -85 87 89 89 90 95 -33 34 38 39 40 42 -84 86 90 93 92 -20 22 25 29 29 -76 78 81 84 85 89 92 96 -47 48 52 54 57 58 59 64 -19 20 21 27 28 -49 51 58 59 61 59 -18 21 26 29 32 32 -46 48 53 54 57 58 62 -71 72 73 78 80 85 -25 23 25 28 29 32 35 -34 32 35 38 39 40 43 42 -15 14 15 18 19 19 -48 47 49 51 55 -9 8 9 12 19 -33 31 33 34 36 37 36 37 -71 68 66 68 66 -86 84 86 85 86 88 88 -30 27 28 27 28 30 32 36 -77 76 74 75 78 85 -66 63 64 65 65 67 -48 45 47 49 52 52 53 50 -28 26 26 27 30 33 33 -26 25 25 27 28 29 33 -93 91 92 92 97 -36 35 39 42 43 46 47 -18 15 18 22 25 22 -43 41 43 46 50 52 52 -28 27 30 32 33 37 41 -58 56 58 62 63 65 67 73 -3 1 3 8 9 -28 27 30 33 34 39 38 -65 64 65 68 75 75 -51 48 55 57 61 -57 54 61 64 65 71 -26 26 27 28 31 33 34 35 -37 37 40 41 43 44 47 44 -41 41 43 44 47 50 51 51 -32 32 34 36 37 40 41 45 -32 32 35 38 40 41 42 47 -79 79 80 77 78 81 -91 91 89 92 95 97 99 96 -86 86 83 85 88 88 -37 37 36 38 42 -63 63 60 61 63 66 73 -43 43 43 44 47 -54 54 57 57 58 57 -26 26 29 31 31 33 33 -21 21 24 27 27 31 -9 9 10 12 14 14 15 22 -41 41 44 48 49 52 53 54 -16 16 18 22 24 26 25 -11 11 13 17 20 20 -62 62 63 65 66 70 72 76 -74 74 76 78 82 85 91 -72 72 75 76 81 84 -12 12 14 21 24 25 26 23 -6 6 8 10 15 15 -10 10 11 12 14 20 24 -17 17 20 21 22 29 31 36 -23 27 29 32 35 38 41 -34 38 41 44 43 -37 41 44 47 49 50 52 52 -41 45 47 48 50 51 54 58 -79 83 86 89 90 91 92 99 -25 29 30 33 36 39 36 38 -90 94 97 94 96 99 96 -84 88 86 87 88 88 -48 52 55 54 58 -46 50 49 51 53 59 -22 26 26 27 29 -52 56 59 59 56 -42 46 49 49 49 -62 66 66 69 70 74 -64 68 69 72 72 73 76 83 -10 14 17 21 22 25 26 -43 47 50 54 55 52 -85 89 92 96 96 -58 62 66 68 69 72 74 78 -8 12 16 19 24 -69 73 74 80 81 82 -65 69 76 77 75 -16 20 23 28 31 32 34 34 -41 45 48 53 55 56 60 -80 84 87 92 98 -69 75 76 79 81 84 85 87 -27 34 36 37 36 -51 57 59 60 62 62 -20 27 30 33 37 -39 45 47 50 51 57 -65 72 75 73 74 -78 83 85 87 89 86 83 -50 57 60 63 62 64 65 65 -39 46 47 44 48 -36 41 44 42 43 49 -7 14 14 17 18 21 -61 66 67 67 64 -66 73 74 76 76 77 77 -47 53 56 57 60 60 64 -38 43 45 45 52 -30 36 38 41 44 48 51 -26 32 35 38 41 43 47 46 -79 85 87 88 91 95 95 -36 43 44 46 50 52 55 59 -64 69 71 74 77 81 83 88 -46 51 53 54 57 59 66 68 -64 71 78 81 83 80 -22 29 30 35 36 36 -60 66 69 74 75 79 -23 28 33 36 37 39 42 48 -10 8 7 6 3 1 3 -69 68 65 62 61 58 58 -76 74 71 68 67 63 -84 81 80 78 76 70 -67 66 63 65 62 -35 33 30 28 31 30 32 -65 62 64 63 63 -95 93 91 92 88 -72 70 73 70 65 -69 67 67 64 62 60 58 56 -69 66 66 63 65 -11 8 5 5 5 -53 52 49 46 43 43 41 37 -19 16 15 13 13 11 4 -48 45 44 41 37 36 34 33 -52 50 47 46 42 44 -32 29 26 22 22 -29 28 24 21 18 14 -64 63 59 58 56 55 48 -62 60 57 51 48 45 42 -43 40 39 34 35 -17 16 13 12 6 5 5 -85 82 75 72 71 70 66 -55 52 49 42 35 -8 11 9 7 4 -47 49 47 44 43 40 39 42 -76 78 75 73 70 67 66 66 -64 66 64 63 60 58 56 52 -88 91 89 87 81 -35 37 40 39 36 -8 11 9 11 10 11 -4 7 6 4 6 6 -40 42 39 36 34 32 35 31 -77 79 77 76 79 76 71 -92 94 91 91 90 88 86 -55 56 55 54 54 53 54 -38 41 41 40 40 -18 19 19 18 17 13 -12 13 12 10 9 9 8 3 -11 14 11 10 9 5 2 -36 38 36 32 31 32 -12 13 10 7 6 2 1 1 -81 82 80 77 73 71 70 66 -17 20 16 13 11 9 8 1 -34 35 32 27 26 -94 96 91 90 89 90 -52 54 47 44 42 41 38 38 -75 78 77 71 70 66 -82 84 79 78 76 73 70 63 -57 57 54 53 50 49 -22 22 21 19 21 -81 81 80 77 76 75 74 74 -65 65 64 62 60 57 53 -39 39 37 34 28 -18 18 21 18 16 14 -10 10 7 9 12 -47 47 44 46 45 44 44 -69 69 71 69 66 63 62 58 -84 84 81 83 81 75 -73 73 71 71 68 65 62 59 -47 47 47 44 41 42 -86 86 84 81 80 78 78 78 -83 83 83 81 77 -36 36 33 33 32 27 -65 65 62 58 56 -77 77 76 73 70 66 63 64 -61 61 60 57 53 53 -22 22 19 15 11 -52 52 49 45 43 38 -71 71 70 67 65 60 58 -28 28 26 23 21 16 13 16 -89 89 86 80 77 75 72 72 -81 81 80 79 74 70 -84 84 83 80 79 72 66 -92 88 87 84 83 81 80 79 -83 79 76 74 73 74 -77 73 70 68 66 66 -34 30 29 26 23 21 18 14 -34 30 28 26 25 20 -53 49 47 45 43 44 42 -65 61 62 61 64 -95 91 90 91 91 -95 91 90 93 91 87 -95 91 89 86 84 83 86 80 -26 22 22 20 17 14 11 -30 26 24 21 19 19 16 19 -37 33 30 27 27 27 -20 16 14 14 10 -76 72 72 69 64 -70 66 65 61 59 57 55 -59 55 51 48 51 -84 80 76 73 73 -81 77 76 72 68 -95 91 87 86 80 -57 53 52 51 50 44 41 39 -29 25 19 16 15 17 -41 37 32 29 29 -63 59 58 56 49 47 46 42 -23 19 12 11 4 -35 29 26 24 23 22 -64 59 56 53 52 49 51 -52 47 44 43 41 41 -25 18 16 15 12 10 6 -25 19 17 15 13 12 9 2 -76 71 73 70 68 67 -58 51 50 47 50 51 -70 65 62 59 58 57 58 58 -19 12 9 6 5 7 3 -85 78 79 78 77 76 71 -85 78 78 75 74 71 68 65 -97 92 91 90 90 88 85 86 -62 56 53 51 51 51 -80 75 72 72 69 66 62 -89 83 83 80 79 72 -58 51 47 46 43 40 -95 90 88 84 86 -78 73 70 66 66 -60 53 49 46 45 41 -55 48 47 43 38 -21 15 14 11 9 4 2 -60 54 51 46 47 -50 44 42 35 32 30 30 -27 21 19 16 10 6 -53 47 41 39 38 37 32 -54 56 59 61 62 59 -3 4 7 9 12 13 16 16 -17 19 21 24 27 31 -23 26 27 28 35 -18 21 22 24 21 24 25 26 -53 55 53 55 54 -14 17 19 20 17 18 18 -78 81 82 83 81 84 87 91 -65 66 68 66 68 75 -32 34 34 37 39 -40 42 43 46 46 47 44 -58 59 61 61 61 -54 55 57 57 61 -24 25 25 27 30 32 35 41 -70 71 75 77 80 83 85 87 -79 82 84 85 88 91 95 93 -82 83 85 88 92 94 95 95 -35 37 41 43 46 50 -60 61 64 67 71 77 -4 7 10 17 18 19 -28 31 37 38 37 -73 74 76 82 83 83 -54 57 59 62 69 72 73 77 -43 44 46 53 56 61 -44 41 42 44 46 47 48 51 -83 81 82 85 87 89 86 -50 49 51 54 56 58 58 -41 38 39 42 45 48 49 53 -10 8 11 14 19 -74 73 72 74 77 80 -27 25 26 27 24 21 -15 12 15 12 12 -68 66 68 66 70 -44 43 42 44 45 50 -85 84 85 88 88 91 93 -19 16 18 18 16 -50 49 49 50 53 53 -69 66 69 72 75 78 78 82 -31 30 32 33 33 36 41 -74 72 73 76 80 82 83 -82 79 82 85 86 90 87 -33 31 34 35 39 40 40 -45 42 44 46 48 52 55 59 -45 44 48 51 54 60 -46 44 49 52 54 -34 31 37 38 40 41 39 -78 77 78 85 87 88 89 89 -30 29 32 37 41 -51 50 51 54 57 63 70 -57 57 58 61 64 66 69 72 -35 35 37 38 39 42 43 41 -33 33 36 37 39 41 41 -62 62 65 66 70 -68 68 71 74 76 79 81 87 -6 6 7 9 12 13 10 12 -82 82 79 82 81 -13 13 15 13 13 -13 13 15 17 15 17 21 -47 47 50 47 50 52 57 -60 60 60 62 63 -61 61 62 62 64 66 67 64 -50 50 51 51 51 -59 59 59 61 64 68 -24 24 24 26 29 36 -72 72 76 79 81 82 -52 52 56 58 55 -32 32 33 37 38 38 -81 81 84 87 91 95 -47 47 51 53 60 -39 39 42 44 47 52 55 56 -43 43 49 50 53 55 52 -78 78 81 84 87 93 93 -46 46 47 50 56 57 60 64 -41 41 44 50 53 58 -53 57 59 62 63 66 69 -83 87 90 92 95 98 99 96 -49 53 55 57 59 61 61 -63 67 68 71 75 -77 81 82 85 87 89 95 -34 38 40 42 41 42 45 46 -8 12 14 16 17 19 18 16 -48 52 50 53 54 56 56 -4 8 6 8 12 -42 46 49 50 49 51 56 -39 43 46 47 47 48 -77 81 83 83 82 -55 59 60 62 62 65 67 67 -36 40 42 42 43 44 46 50 -66 70 73 76 79 79 82 88 -35 39 40 44 45 48 49 52 -72 76 77 81 79 -37 41 45 48 48 -36 40 43 47 51 -71 75 77 81 86 -18 22 29 30 31 33 -33 37 40 43 49 50 47 -25 29 32 34 41 41 -60 64 67 73 77 -36 40 42 47 50 53 54 60 -52 57 59 62 63 64 -10 17 20 23 20 -26 32 35 38 40 43 44 44 -78 83 85 88 90 94 -47 52 54 55 57 63 -74 79 82 85 82 85 -86 92 93 95 92 90 -42 47 48 50 53 50 50 -62 68 71 70 74 -71 78 81 80 82 83 84 90 -39 44 44 46 47 49 50 -31 36 38 38 37 -23 30 32 32 34 37 37 -19 26 29 30 30 34 -76 83 83 85 88 89 96 -58 65 67 70 71 75 77 79 -76 83 85 88 92 95 96 94 -53 60 64 66 68 68 -35 41 43 47 48 52 -50 57 61 62 64 70 -32 39 40 41 44 50 51 -72 77 84 85 87 88 86 -25 32 38 39 41 42 45 45 -15 21 24 26 33 37 -35 41 46 48 49 50 55 -61 58 57 54 56 -28 26 23 22 19 16 13 13 -54 51 49 46 42 -41 38 37 36 29 -91 89 87 84 83 84 81 -92 91 90 91 90 89 90 -87 86 88 87 87 -34 31 29 30 29 26 22 -47 44 43 40 38 36 37 32 -69 66 63 60 58 58 56 -10 7 6 4 4 2 3 -79 76 76 73 73 -60 59 59 56 54 51 47 -33 31 28 28 23 -29 27 26 23 22 18 16 15 -60 58 54 52 51 48 49 -43 41 37 35 33 31 31 -41 40 38 34 33 30 26 -89 88 85 81 76 -34 31 26 25 24 22 19 18 -92 89 84 82 79 77 80 -26 23 21 20 17 14 8 8 -53 51 50 47 41 37 -24 23 20 14 13 8 -29 31 28 26 24 -53 54 53 52 50 47 46 47 -76 78 75 74 72 69 66 66 -69 71 69 66 64 62 58 -58 61 59 58 56 50 -54 57 54 52 50 52 51 -38 39 41 38 36 37 -12 14 11 9 6 4 5 5 -35 37 36 34 35 33 32 28 -10 11 9 12 11 10 8 3 -23 25 23 23 20 17 16 -75 76 76 74 72 69 70 -58 60 57 54 54 52 52 -6 9 6 6 2 -40 43 43 41 39 33 -75 76 72 69 68 67 -40 41 40 36 39 -83 85 84 81 77 74 74 -26 28 24 21 19 15 -27 30 26 24 22 21 19 13 -50 53 52 51 45 42 -50 52 49 43 41 42 -23 24 23 20 19 12 11 11 -52 54 52 47 45 42 38 -70 71 64 61 54 -65 65 62 61 58 55 -14 14 11 8 5 4 7 -52 52 51 48 46 46 -99 99 98 97 94 90 -54 54 53 52 46 -48 48 47 45 47 45 -64 64 61 64 67 -23 23 22 21 23 22 22 -75 75 74 76 73 70 66 -25 25 26 25 23 21 19 13 -74 74 72 72 71 -75 75 73 70 70 72 -94 94 92 89 89 88 88 -27 27 24 24 22 20 17 13 -59 59 59 58 56 51 -44 44 41 37 36 33 -14 14 12 9 8 4 5 -74 74 71 67 67 -25 25 21 18 15 13 12 8 -60 60 56 53 47 -39 39 37 34 33 30 24 21 -60 60 59 58 51 54 -24 24 21 18 11 8 6 6 -62 62 59 52 50 48 45 41 -42 42 40 39 33 32 26 -14 10 8 7 5 2 -69 65 63 62 61 60 59 61 -55 51 48 46 43 42 42 -38 34 31 29 28 25 21 -29 25 22 21 19 18 17 11 -55 51 50 51 48 47 45 42 -87 83 82 85 84 85 -42 38 35 32 33 31 31 -29 25 23 20 18 15 16 12 -87 83 84 81 78 72 -25 21 19 17 17 16 14 13 -68 64 62 59 57 57 58 -86 82 80 80 80 -94 90 90 87 84 81 77 -64 60 59 58 56 56 54 49 -89 85 81 78 76 73 -63 59 55 53 50 53 -68 64 61 60 57 53 51 51 -57 53 51 49 45 42 41 37 -57 53 51 48 44 41 36 -77 73 70 64 63 -37 33 31 28 25 19 17 19 -34 30 27 24 19 19 -67 63 61 56 55 52 48 -90 86 79 77 71 -45 40 39 38 36 35 32 29 -21 15 12 11 12 -27 21 19 18 17 16 16 -94 88 85 84 82 81 80 76 -93 87 84 83 80 73 -59 54 53 56 55 -86 79 81 79 77 75 76 -80 73 74 71 71 -14 7 5 3 5 1 -95 89 91 88 83 -85 79 79 76 73 -97 92 89 87 87 85 88 -50 44 44 41 39 38 35 35 -37 32 32 29 27 26 22 -87 82 82 79 76 74 68 -43 37 35 34 30 29 -35 30 27 23 22 19 16 17 -74 67 65 61 60 59 57 57 -82 76 73 69 67 66 62 -57 52 49 45 42 41 36 -36 29 22 20 17 -45 40 37 31 34 -37 31 29 22 20 20 -64 59 52 51 48 44 -23 17 11 10 8 1 -45 50 52 53 56 60 67 -5 9 7 10 9 -34 40 44 46 48 49 -34 34 36 42 44 45 49 -67 62 63 60 59 53 -43 43 40 36 33 32 32 -90 86 84 80 77 74 71 64 -74 75 77 79 84 86 89 -37 35 37 40 42 43 47 -91 84 82 79 76 75 74 68 -31 26 24 22 21 21 21 -24 22 21 20 16 16 -18 14 12 11 8 4 4 -70 77 78 81 83 85 87 93 -36 30 26 23 23 -39 39 37 34 34 31 -42 38 39 36 35 34 30 -13 14 16 17 14 13 -18 18 16 14 10 8 7 2 -71 74 75 78 79 82 81 -56 55 59 60 62 65 -32 28 26 24 24 25 -8 12 14 18 20 22 25 25 -81 85 86 84 91 -61 62 65 66 71 75 -27 21 22 19 16 13 11 11 -1 5 6 7 11 14 -87 86 83 81 74 -69 76 76 77 79 -19 17 21 24 25 28 28 -36 30 29 25 23 26 -67 67 69 74 76 -63 67 70 70 74 -69 69 67 64 61 59 61 -80 78 75 72 69 67 63 -43 43 44 45 48 48 51 51 -60 64 67 68 71 72 73 72 -26 33 34 36 38 45 44 -99 99 97 94 90 87 85 88 -70 77 79 80 84 -38 38 41 42 40 -49 49 50 51 53 57 60 59 -82 82 81 81 80 79 82 -15 15 16 18 20 -82 80 77 80 84 -14 18 18 20 21 18 -25 25 22 19 14 -92 91 89 90 87 87 -82 78 77 75 77 77 -32 27 25 20 17 15 -91 84 78 77 74 73 76 -50 48 51 51 53 55 -57 53 50 49 48 46 -84 80 78 75 71 68 64 -84 78 77 74 71 69 66 66 -26 27 24 23 22 18 14 -80 78 77 76 69 72 -90 86 83 81 80 80 79 79 -56 49 48 50 49 46 -36 40 41 44 49 51 54 60 -77 79 80 83 84 87 91 98 -81 80 83 88 92 -38 40 39 38 35 38 -20 17 16 14 11 10 6 2 -68 69 73 76 79 83 -72 68 66 64 64 62 60 -56 63 63 65 66 67 69 69 -7 11 13 13 15 16 16 -19 25 28 30 33 40 42 -86 86 84 77 78 -26 26 23 21 19 20 19 14 -23 23 24 26 27 29 33 37 -25 28 25 22 20 17 13 -95 95 93 90 88 83 81 75 -53 53 55 60 63 65 68 67 -76 77 76 77 79 82 83 85 -51 51 50 49 48 -58 58 54 53 52 50 48 45 -26 28 26 23 23 22 18 -16 16 20 23 26 29 31 -21 25 27 29 35 39 -71 70 76 78 81 83 84 81 -97 91 88 88 85 82 81 83 -76 76 78 81 82 84 87 93 -75 72 67 64 62 -48 45 46 49 52 -29 25 22 18 16 14 -68 75 75 77 79 80 87 -69 67 64 63 56 56 -74 80 81 81 82 84 86 83 -89 90 90 93 97 -17 17 16 19 18 17 14 -12 8 7 4 2 5 -93 89 87 81 78 -88 88 91 91 93 91 -50 46 39 38 40 -87 90 89 85 84 83 83 -26 24 28 31 33 34 32 -22 18 17 16 15 15 -66 65 69 70 71 73 80 -82 83 84 81 81 -97 97 98 96 93 90 91 -67 67 69 67 70 73 76 83 -9 9 13 16 16 -79 73 71 68 64 61 57 -17 17 19 21 23 23 28 -60 63 60 59 58 55 53 53 -28 35 36 37 40 43 46 43 -57 52 51 48 46 48 -83 82 84 82 84 84 -24 23 23 20 19 19 -38 38 36 33 26 23 23 -26 31 34 37 41 43 47 -31 34 32 31 28 21 19 22 -68 72 74 74 75 -51 52 50 48 46 39 35 -91 94 92 90 86 83 81 -37 33 32 28 29 -36 36 29 26 22 -52 53 55 52 50 44 -19 26 28 29 32 35 37 39 -79 81 81 82 88 -47 47 49 51 54 57 59 59 -55 55 52 49 45 -84 80 82 81 79 78 76 74 -35 28 25 25 22 19 12 -76 82 79 80 80 -90 90 87 87 85 84 83 78 -77 84 86 88 88 92 -17 17 16 15 15 -34 37 36 33 32 33 31 27 -73 70 73 76 82 -62 68 69 72 78 79 79 -42 41 39 38 32 28 -69 66 69 68 64 -47 51 48 50 51 54 58 -53 57 60 63 64 65 71 -43 43 43 42 41 40 37 33 -69 66 64 67 74 -67 71 72 73 75 -13 11 12 15 16 19 19 -61 64 59 58 55 52 49 44 -57 56 55 52 50 47 48 -24 28 30 33 38 39 38 -78 75 72 70 70 68 71 -57 59 61 64 67 70 73 -13 16 19 21 22 25 -18 16 15 12 9 -17 18 20 23 24 26 -63 66 68 69 70 72 75 -36 38 40 43 44 -37 40 42 43 44 45 48 -44 42 39 37 35 34 -11 8 7 5 2 -52 54 55 57 58 -16 17 18 20 23 25 26 -87 86 83 80 77 74 73 -16 19 22 24 26 29 31 -29 31 33 36 37 39 -46 43 42 40 37 34 33 32 -84 87 90 91 93 95 -49 51 54 55 58 60 -63 61 59 58 56 53 50 -9 11 12 13 16 18 21 22 -61 60 59 58 56 55 -73 74 76 79 82 -88 90 93 95 96 99 -56 58 61 64 67 70 -82 79 78 75 72 70 69 -2 3 4 5 6 8 -32 31 28 27 24 23 22 -65 64 61 58 57 55 -57 55 52 49 46 45 43 40 -57 56 53 51 49 47 45 -2 4 5 7 8 10 11 -71 69 67 65 64 61 59 -46 48 49 51 53 55 -74 73 70 68 65 62 -62 64 65 68 71 -37 35 32 31 28 25 23 20 -58 57 54 51 48 45 42 40 -66 68 69 71 74 -4 7 9 12 14 17 19 22 -42 45 48 51 52 54 -50 52 53 56 57 58 -52 51 50 49 47 46 45 42 -53 51 49 48 46 43 40 -91 90 87 84 83 80 77 -87 84 82 79 78 -17 18 19 22 25 27 29 32 -94 91 88 87 86 84 -90 91 92 93 95 98 -4 6 9 11 13 -79 81 84 87 89 92 94 96 -42 40 37 36 34 32 29 28 -70 71 72 74 76 -22 25 28 30 33 36 38 41 -52 54 57 60 62 63 -72 71 69 66 63 -18 15 13 11 8 6 3 1 -31 28 26 23 21 19 18 17 -52 54 56 59 60 63 65 -5 7 8 9 10 12 14 17 -93 92 89 88 85 -75 73 70 69 68 67 64 -18 19 21 22 25 -31 34 36 39 41 44 46 -97 96 94 92 90 87 84 -28 26 23 21 18 -21 18 15 14 13 11 -13 16 17 19 20 -49 46 43 40 38 35 -72 69 67 65 63 62 59 56 -60 57 54 52 50 49 46 -37 40 41 42 43 46 47 -59 61 64 65 67 -33 31 28 25 22 19 18 17 -2 3 4 7 8 10 12 -82 80 79 76 74 71 69 68 -45 42 39 38 37 34 31 30 -40 41 43 44 47 50 -40 41 42 44 45 -75 78 80 81 84 85 -32 34 35 37 39 40 41 44 -51 49 47 44 43 42 40 37 -35 38 41 42 45 47 48 51 -33 34 35 37 38 40 42 43 -41 38 35 33 31 28 25 22 -64 67 69 70 71 73 74 -62 63 65 67 68 70 73 -92 89 88 85 82 -18 15 12 9 8 5 3 -48 50 52 55 56 57 -56 54 52 50 47 44 43 41 -82 83 85 88 89 90 -68 70 72 74 77 78 -28 26 24 22 21 19 17 15 -86 87 89 90 93 94 95 -48 47 46 43 40 38 36 34 -42 39 37 35 33 31 29 26 -75 78 81 84 86 88 91 -97 96 94 93 90 -32 33 36 37 38 -31 28 27 24 21 18 15 14 -90 91 93 96 98 99 -72 75 76 79 81 -26 29 31 33 34 35 36 38 -43 42 39 38 37 -23 20 17 15 14 -82 83 86 89 92 95 -14 12 11 9 6 -70 71 72 73 74 77 -74 77 80 81 82 83 86 89 -59 61 63 65 68 71 72 -69 70 72 75 78 79 81 -51 54 56 59 62 64 65 68 -83 85 87 88 89 -83 84 87 90 91 94 95 -59 57 54 53 50 -16 14 12 9 6 3 -72 69 67 64 62 61 58 57 -99 96 95 94 91 89 86 83 -45 42 40 39 36 -65 66 67 70 73 74 76 -39 42 45 48 49 52 -64 61 60 57 55 54 51 50 -42 39 36 34 31 30 -28 31 32 33 34 36 39 40 -38 40 43 45 46 47 50 -95 94 91 89 87 -38 41 43 45 46 48 51 54 -49 48 45 44 43 40 39 37 -5 8 10 12 15 18 19 22 -34 35 37 39 41 42 -65 66 67 68 71 -42 39 36 34 33 32 -81 78 77 75 72 69 -60 59 58 55 53 51 -79 80 82 84 85 88 91 -79 76 73 70 67 64 62 -99 96 95 92 91 88 87 -15 14 11 9 7 6 -11 9 8 6 3 -38 41 43 44 46 48 -30 31 32 34 36 37 38 -80 83 84 87 89 -39 37 36 34 33 -38 35 32 30 28 26 25 -42 40 38 36 33 -54 56 59 61 63 -8 11 13 15 16 19 22 -75 77 80 82 83 86 -17 20 23 24 27 28 30 33 -76 77 79 80 82 84 -33 36 39 42 43 46 49 50 -16 18 20 22 25 28 -44 46 49 51 53 -39 41 44 46 47 -75 76 77 78 80 83 85 -8 11 12 14 17 20 22 23 -64 63 60 58 57 54 53 51 -59 61 63 64 65 66 67 68 -43 41 38 35 32 29 26 23 -79 78 76 74 72 70 67 -35 37 40 43 45 46 -4 5 6 8 10 12 -34 32 29 28 25 23 21 -60 62 64 67 70 71 -40 38 37 35 33 32 30 -67 70 73 75 78 80 83 84 -34 35 38 40 42 -26 28 29 30 33 -55 53 50 48 47 46 43 41 -57 54 52 50 48 45 42 39 -57 59 62 65 67 -25 27 28 29 31 -4 5 6 7 10 12 15 -59 62 65 67 68 70 -33 30 28 27 26 24 -30 28 27 26 23 -29 32 34 35 36 -73 70 69 67 64 61 -59 60 61 63 66 67 70 -63 61 58 57 54 -48 49 52 53 55 -54 53 50 49 48 47 46 -26 23 21 19 17 -29 28 26 25 23 -25 23 21 20 18 15 13 10 -76 74 72 69 66 -98 95 92 89 86 84 81 79 -90 87 86 84 82 79 76 -48 51 54 55 57 58 60 61 -93 92 91 89 86 84 83 -16 14 13 10 7 -44 41 39 38 37 -85 82 79 77 75 74 73 -14 16 19 21 23 -61 58 57 56 54 51 48 47 -19 21 22 25 26 27 28 29 -74 72 69 68 66 63 61 60 -56 58 60 62 64 65 -56 55 53 51 49 48 47 45 -78 80 81 84 85 86 -28 26 25 22 20 17 16 -47 49 52 53 55 58 -90 91 93 94 95 -9 12 15 16 18 21 22 25 -57 55 54 53 50 48 47 -77 79 81 83 85 87 90 -42 39 37 34 33 -87 84 83 80 77 -21 19 17 16 15 12 -58 61 63 65 68 71 72 -46 49 50 51 54 56 57 -61 58 57 54 51 48 -18 21 23 26 29 31 -80 77 74 73 71 -85 83 82 80 79 78 75 -94 93 90 87 85 83 81 80 -50 48 47 46 45 44 43 -32 31 29 28 26 23 21 -90 89 88 87 85 -63 61 60 58 56 55 54 -84 81 80 77 75 74 -86 83 82 80 79 76 75 74 -53 55 58 60 62 65 66 -84 85 86 89 90 93 -18 16 13 12 11 -13 15 16 18 20 23 25 26 -7 10 11 13 14 -81 80 77 76 74 73 71 -9 8 7 4 3 -61 63 65 67 68 70 72 -5 6 8 11 12 14 16 -54 57 59 60 62 64 65 -25 28 31 32 33 36 38 40 -82 79 77 75 72 70 67 66 -84 81 79 77 76 -6 8 11 14 17 18 21 22 -12 15 17 20 21 24 -81 84 86 87 88 91 -43 45 46 48 50 51 52 54 -57 56 53 51 50 49 47 46 -65 64 63 61 59 58 56 54 -40 37 35 32 30 29 27 -82 79 77 76 74 71 -45 42 41 39 36 34 33 -20 23 25 27 28 -42 43 46 48 49 -42 45 47 49 50 53 56 -66 65 64 62 59 57 54 -49 48 46 44 41 39 38 -38 35 34 32 31 29 28 -22 23 26 27 29 -67 65 63 60 57 54 -20 22 25 27 28 30 33 36 -20 23 24 25 26 -69 71 72 73 74 76 79 81 -77 74 73 72 69 -3 5 8 10 11 12 13 14 -47 46 43 41 38 -10 11 12 14 15 17 -18 17 15 12 11 8 5 -35 37 40 41 43 44 45 -19 20 22 24 26 27 28 -70 69 67 64 61 59 57 56 -83 82 80 78 75 73 72 71 -51 48 47 44 42 41 40 -66 68 70 73 74 -93 91 90 88 85 -11 9 8 7 6 -40 37 35 33 32 31 28 -25 27 29 32 35 -35 36 38 39 41 -40 42 45 47 50 51 54 -49 52 54 56 57 60 -49 52 53 56 58 61 63 66 -64 62 59 57 56 -63 64 65 66 67 68 -70 72 73 75 78 -82 79 78 75 73 -67 66 65 63 61 60 58 55 -4 5 7 9 11 13 -71 69 67 65 63 60 57 -90 87 84 83 82 80 77 74 -31 28 25 23 21 19 17 -48 51 52 55 57 59 62 -36 34 31 30 27 25 -26 29 31 32 33 36 -44 43 40 38 37 -62 65 68 70 73 75 -61 62 64 65 68 69 72 -57 60 63 66 68 71 73 -35 37 39 40 42 43 45 -93 91 90 87 85 -24 23 21 20 19 17 15 13 -82 83 84 85 88 -30 31 32 35 37 -32 31 30 29 28 26 23 21 -57 55 53 52 49 -62 65 66 67 68 70 -64 65 68 69 70 73 -56 57 60 63 66 67 68 70 -12 14 17 19 22 24 25 27 -38 35 32 30 28 25 22 20 -73 75 76 77 79 82 83 -31 29 26 23 20 -25 26 27 30 33 34 -18 17 14 11 8 6 -25 23 22 20 17 -55 56 58 59 62 64 66 -79 80 82 85 88 89 91 92 -68 67 65 62 60 -84 87 88 89 92 93 96 -30 32 33 35 38 41 44 -86 85 82 81 79 76 75 -48 47 44 42 40 38 -72 71 69 66 63 62 -46 45 43 41 39 37 -44 42 41 40 39 38 36 33 -23 22 20 19 18 -29 30 32 33 36 38 -35 34 31 28 27 25 23 21 -54 52 50 47 45 44 43 -96 93 90 89 87 -76 77 78 81 84 86 -13 15 16 19 22 -58 60 61 63 64 66 67 -78 77 76 74 73 71 -35 38 41 44 47 49 -73 74 76 77 78 -28 26 24 23 22 21 -49 51 52 55 56 -88 91 92 95 96 99 -85 88 90 93 94 -73 76 78 80 81 83 84 -38 35 33 32 31 29 -32 29 26 23 22 20 18 16 -70 69 68 65 62 59 57 54 -80 79 76 73 70 -12 10 9 7 6 -75 72 71 69 67 -64 61 59 58 57 56 -88 90 92 95 96 -58 60 63 64 66 -99 96 95 92 91 90 89 87 -16 17 19 22 24 25 28 -77 79 81 84 85 86 -28 26 23 21 19 18 -82 81 80 79 76 74 73 70 -76 75 74 73 71 70 69 68 -94 92 91 88 85 -11 12 13 14 17 18 20 -74 73 71 69 67 65 62 61 -25 26 27 28 30 32 35 -61 64 67 68 70 73 -58 56 55 54 51 50 -69 66 65 64 61 59 -47 50 53 55 56 -26 25 22 19 16 14 12 11 -51 52 54 57 60 61 -60 59 56 55 54 52 51 -46 47 50 53 54 57 59 61 diff --git a/inputs/day2.example b/inputs/day2.example deleted file mode 100644 index b49c10d..0000000 --- a/inputs/day2.example +++ /dev/null @@ -1,6 +0,0 @@ -7 6 4 2 1 -1 2 7 8 9 -9 7 6 2 1 -1 3 2 4 5 -8 6 4 4 1 -1 3 6 7 9 diff --git a/inputs/day3 b/inputs/day3 deleted file mode 100644 index 0e4ec4d..0000000 --- a/inputs/day3 +++ /dev/null @@ -1,6 +0,0 @@ -{!how()'&where()don't()select()@]how()}mul(884,758);-mul(971,475)who()~from()]~mul(358,23)~; +$><+mul(459,784)%,}mul(36,125)}?who()${select()mul(26,486);*@why(34,219)+who()}>*mul(439,790)who()^^what()}]mul(721,171);~>mul(240,453)mul(422,258)~-who(){'how(309,607)mul(437,905)> mul(670,503)?-*mul(979,674)%who()why()/&*:who()mul(412,637)> select()(select()select()'[do()&what()%how()from()<~ $what()mul(600,238);what()*mul(982,137)%~from())+~mul(550,306)@mul(331,66)>:&~ don't()?[mul(123,637)+)when()where(){mul(116,755)>why()mul(500,433))] where()] mul(801,467)~:,(where()^don't()what()(!/%mul(425,706)+ -!<{don't()from()+]',@mul(491,379)why()~:^select()from(286,158)mul(79,608)mul(892,927)&>+mul(681,799)why()> ]:*$how(167,759)%mul(79,235);,-mul(674,156)]why()who()from()from(949,563)' ~where()&mul(332,74)@how()mul(186,755)mul(65,13)-^),mul(334,303)+] ]!>{how()#who()mul(230,17)$how()+mul(673,345)%why(531,581)&+~]><)mul(37,326)$*$mul(119,45)from()mul(276,12)+^ do()?>%{%>why(){]mul(138,385)?~>mul(453,763)?;%mul(162,449)/[mul(629,968)&+@>:@select(){/don't()when();why(104,367) mul(136,744)mul(963,430)?~*what(829,68)}?#&{mul(32,898)~mul(875,563)#&+how()mul(946,225)why()what()^%#when(807,508)%mul(266,130)&%{$where();;--!mul(682,427)~who()$)from(69,589)%mul(103,378)}who()mul(458,652)%when(420,875)@(do()*when()mul(868,688)?mul(160,791)>+@when()>^}'what()from()mul(473,136)?$[;:who(){mul(825,302)where()&!why()/>from()select()what()when()mul(325,635))when()^from()mul(299,8)when()how()]:mul(332,547)?!}%#when()*from():mul(532,358)#[?how()@from()mul(961,542)select()don't() ;>,mul(357,878)@where()from()%/mul(61,265)~who():,{!where() how()^mul(854,862{why()what()%- {&what(671,387)mul(578,695)mul(436,41){{-/{ mul(447,680)when()?@$@#select()^>%mul(317,162)):>what()mul(13,671)where()$mul(309,369)({select()mul(249,325))-#from()~%mul(102,356)),*:;where()(mul(55,153)[-who()^^[>%<+mul(945,918)'[do()mul(115,952)-[from()()?[)mul(647,503)mul(474,649)'[mul(239,709)from()select()?^$^select()what(967,742)(where()mul(143,91)why()^,^{mul(465,739)+select()~who()/mul(244,259)don't())!when()who()mul(278,249)what()mul(276,375)do()mul(45,460){how()$from(),%<)who()don't()why()[how()mul(217,899+'mul(307,28), how(171,736),who(168,147)-;mul(372/'<{}who()mul(510,402)]why()<@!@-from():@mul(229,636){}[do();?)where()+(select()$how()mul(752,67)mul(344,833));)&,mul(601,124)*select()*< where()]mul(375,322)when(),]when(106,699)'$mul(477,697)+]{ how() %mul(626,452)don't()<'$when()mul(410,47) -mul(273,442)!what()) where()where()!mul(128,601)select();$/from()how()[ ;-mul(37?mul(150,909)}{where()-{mul(260,599)~/< &>mul(104,207)%-;?+>from()select()[-mul(328,706):](?>how()mul(706,921)mul(820,805)&[who();(what()/&(mul&(when()^'[mul(819,464)-+mul(880,740),'(]>mul(366,77)^:mul(211,80)^+([$@mul(363,53)&}why(541,819)'{mul(239,819who()#when()}$'*):?mul(53,216)<~{{:don't()&})why()]&mul(442,772)#why()%~!%*[/+mul(9,796)why()>}@don't()#what()mul(772,725):(/^-select()when()?][mul(464,901)from(218,74)why(203,518)how()-<{?mul(558,885)mul(206,857{@;$[how()}~^how()where()mul(373,741) <*+@ :^@$mul(717,894);where()who()where()@mul(864,646)mul(490,329)-mul(528,726),,@,+ ,>+mul(223,265)?,where()mul(343,632)){from()what()why() select()@mul(809,361)(from(524,60)^%]when()$?)mul(300,959)*@when()}select())what()mul(88,356)&}where()];mul(232,864)-{@:]do()mul(482,56)@{where(455,533)):$<[mul(10where(601,497)mul(426,581)who()}*]%select(907,807)>&why()mul(227,368)%mul(812,31)from()$-don't(),~,}/mul(149,756)'select()who()mul(52,518)from()who(47,890)what(),>&who()mul(476,778)&$'how()!<[#when()mul(317,462)what()%mul(556,241):#%*mul(37,135))+?select()%how()$mul(462,741)what()select()!where()!who()-mul(758,786)who()what()-);$*!mul(288,131)&who()do()$:mul(694,781)!mul(737,400)>mul(692,914)^%},>+&mul(292,865)[[]why(){why()&!how()how()don't() select()]who()when()-mul(120,234)}why();%^:$mul(12,755)from()from()select()%-?%}mul(616,813)@why()%from()-&mul(941,163)+;{~]mul(578,90)^;&(mul(947,324)!- ]//when()mul(881*}~mul(336,395)> $~[?mul(725,706)&<%mul(824,186)-@<)mul(330,957)$!mul(204,391)mul(265,505)what(),@:>-? /mul(974,931)$what();{[@{%!why()mul(90,923){#}what()?~-mul(696,784)<~who(718,997)mul(538,499)mul(476,975)mul(940,308)why()mul<+where()]'what()>%$}where()mul(820,423))mul(386,97)][,who()don't())?#,~*who()@mul(918,462{!what(382,394)where()[#(why()mul(904,736)%'}+mul(374,305)++!#mul(653,473)how(),-mul(162,434)?^@when()#mul(343,280)select()from(124,931)when(5,118)mul(468,653)}@#{mul(920,562)don't()&how() -mulwhat()---mul(950,664)!!select()-mul(4,72))when()$(how():!%mul(152,355)$+ '{<%mul(639,874)mul(704,465) !-$^&when()?)how(688,518)mul(718,288):{:-:()where()#mul(673,322)mul(871,761)from()when()~~()mul(893,784) -%mul(189,64)/}mul(537,332),;+}mul(275,738)]<:!@&),&don't()mul(886,924)?+when()/$]$-((when()do()^[where():?what()mul(436,577)})(mul(158from(238,897)+from()when()>how()what()@mul(302,395)how()&;from(886,251)%+!^%do(); {@,mul(349,117)>#from()from()mul(304,66)mul(598,654)?where()#mul(660,67)~[mul(977,328);who()!mul(728,941);+#when()*-mul(874,428)%mul(789,631):>+)mul(704,887)<*$$,%[what() mul(53,94)when()]#%$what()* ]-mul(455,519):<~(*>mul(385,498)>]why()(/mul(93,328)mul(293(where()?^where(474,333)?(mul(13,796)% %do()from()select()mul(632,756):why(11,315)what()mul(703,564)mul(969,63)!$/mul(887,388)#)-mulwhere()[(mul(134,297)how(){:[(don't()-select()from()}&#/}[ mul(679,478)&%'{mul(435,924)'[select();when()why()mul(840,427)!/*{:mul(188,195)mul!;$how()mul(187,258)~)#mul(488,233)}why()(:[when()select(){mul(567,681)when()}~%?$select()$:mul(72,236)+where()when():%where():@@mul(44,340)when()%mul(480,990),+who()mul(318}/(~%}select(596,203):/{mul(951,330){['+@-+^/mul(474,877)&,@@select()from()^mul(123,577)mul(828,17)}@]where()[mul(346,649):(>@{;$mul(568,77)%(mul(582,991)>where():from(155,417) from()/mul(93,912)from()%when(),mul(656,124)}do()what()from()^+;what()from()mul(660,451)what(187,581)['^^mul(642,281)&mul(690,722)why();when()[$+!when()mul(545,305))~mul<*&'^why()$mul(640,100)$:how(728,83)where()when()select()mul(333,982){#from()%/[}how()mul(720,343mul(833,88)~where())'mul(479,932)@why()/who()@from()what()!mul(346,663)select()mul(884,485):from()from():[://'@mul(674,41)how()!{mul(729,49)'select()~@who()^^who()mul(650,61)from(432,392)$^{~from()[mul(754,933)why():,*$'!$select()do()'when()?how()@-$/what()mul(964,456)(/ *mul(583};!)/(mul(476,807)[(how():how()'@~[#mul(227,838);&mul(339,718)'[from(),@mul(953,984)mul(999,724)mul(43,842)don't()>&;^how()/#mul(803,31),'@'#where()$mul]&^')]when()][where()mul(134,795)&+how();?>++*!mul(237,729)>{/}+what()[mul(41,980)<*where()mul(835,273)}:;mul(23,904)^#where():$]mul(969,17)mul(461,814)mul%what()]why()mul(759,464)what()@{mul(322,326)>where()who()'*why()):mul(175,609)how()^mul(53,892)why()select()]select()^){mul(750,639){how()(~>where()'mul(107,296)what()$:*mul(373,967[>]{)-!$ what()mul(281,521)when(573,540)who()] $$where()mul(465{from()$how()why()!+#(%what()where()mul(895,95)[why(216,972)}&& :!what(886,953)~mul(593,11)why()$[]~<+%from(926,553)who()mul(423,287)why()(from()(-(from()mul(854,833)#select()select()^mul(167,269)why()/]}:?]}>mul(745,993)~@what()'how())mul(827,736)([:@,what(293,969)'what()don't()-!~,mul(192,429);what()how()mul(847,188)>mul(141,869)[;how()mul(848,705)?when(){mul(559,567)^who()}from():!don't()%!where()>-what()](mul(105,363)why()where():where(578,872)(when()+mul(881,376)mul(695,809)^how()}!mul(364,248)?}:/from()}]]~%mul(804,4)mul(119,641)%from())%what()&mul(712,534)%??;-@@:what()mul(123,22)&-^from()$,mul(772,667)mul(42,86)])+!;when()^!$mul(622,677select(864,78)$mul(580,723)$where()#when()mul(751,301)+/(;+)]-select()mul(171,677)mul(661,374)~what()'*+ select()select(764,759):don't();)mul(840?{*%]why()mul(226,734)*where()(#*>^&mul(299,672)(who()mul(625,138))/<)don't();mul(468,424)+?%select()mul(760,645):(:who()};*#don't()mul(759,862)&@}] mul(334,129))]how();what()*how()#mul(305,664)when()):/do()%where()select()+'mul(58,303) ->what()* $mul(413,139)mul(982,406)-![[+select()(when()mul(165,136)]why()(when()mul(616,183)!+;/:%mul(481,602)}[&#^,{[@why()@<+mul(204,987!/mul(677,349)select()when()$who()why();[^,mul(194,35)select()',mul(127,110)-#:mul(596,30)- /who(12,984)-do()why()-mul(167,577)from()/'@where()$@-do()!>mul(981,462)*select()-+where()do()>]#~(,~mul(387,979)&mul(387,101)>mul(501,522)#{-mul(383,636)what()!+<mul(329 !$select()#]@[mul(864,202)select(){what()from()mul&/what(){>](~from()[%mul(806,858)[(>mul(892,860)!<:^:when()'@where()mul(491,377)&;/where()why()mul(478,743)when()mul(464,509)@;#')(+$mul(837,217)($mul(921,229), !/do()from():mul(45,689)-select()what()]$;mul(903,906){]<^when()where()<-mul(213,893)what()do()@^mul(514,953)where()[mul(143,932)~/when()$why()*~mul(990,283)~{# !mul(755,667)mul(474,41) --:'&select()},how()mul(224,420)*{]}from()~select();)+mul(244}mul(789,459)from()+select()+?+'&}(mul(570,585)' ^select()why()why()^select()*mul(474,591)}++why()-{}%^mul(2,90)how(){!%mul(899what()$@,*mul(517,561),~)mul(510,855)from(){how():>[mul(485,191)?mul(238,765)~<(mul(606,527)<+/-where()'select()mul(446,167),mul(445,372)<>/(~;mul(142,440)[+%,}mul(687,94)@-?::-mul(297,299)mul(381,157)mul(711,860)from(359,7),% what()>select()mul(18,464)~ ~(':mul(340,143)+/mul(717,45)}#how()~^'}?when()-mul(268,887)#,mul(896,967)mul(29,886)~from()*select(169,789)where()]how(885,167)],/mul(802,796)([^[@*~from(),mul(373,685)who(),!what()+mul(834,143)select()@/how()from()(mul(30,941)'!;do()@&mul(925,254){mul(516,742){mul(244,359)&$!mul(458,20)why()mul(978,711)%how()+!){mul(402,128)why()mul(188,495)who()select()mul(62,537)&where()$()who()~:mul(720,554)?mul(888,389)@how()[$)~when()'mul(404,548/#mul(857,511)who()+#]who(919,86)mul(900,41);{?&/who()mul(134,188)%mul(140,747)+from()mul(440,286)}<$why()what()from(),mul(677,567:where()&*mul(406,675)%(how()where()how()~who()select()mul(544,316)select():how()who()where()[+,don't()where()mul(583,24)why()why()%mul(522,711)@mul(659,520)[@[;~what():&[mul(688,528)>where()select()]{;who()when()$>mul(951,800)select()when()%,;select()&$!mul(491,196)when()mul(800'^from()(where()how()mul(914,415)mul(610,36&]how(){{'>&from()mul(766,281)( ;how(250,381)what()^$;-mulwhat(385,84) };;*&why()when() mul(837,935)'+what()]#why()^%mul(477,874)-!how()(:,why(20,835)mul(764,685)how()select()'//mul(162,27):#*mul(64,768)] where()#mul(172,905)-(mul(686,898)%~'mul(498,986);mul(643,131)@mul(162,11)from() ;#[select()#>~where()mul(170,845)-mul(363,18)/@select()where()>mul(200,237)/%when(){^%;why()<>mul(203,934)+)when()what()+[^-~ mul(942,540)(when()where() ?]{,mul(488,295)*&?mul(127,140)from(){why()where();mul(347,470)* 'why()+what(360,948)}#do()'-]>/#(mul(266,243),'$mul(247,211)who(660,219)mul(250&^?/mul(382,956)what()%'/]mul(970,955)] :)(who()who()@mul(310,784)~$*mul(269,773)-where();!mul(754,294)select()($from()*where()select()(how() do()what()who())~,,why()%select()$mul(162,353)!from()>^~who()who() #mul(324,434))+%what()how()(when()don't()from()who();@mul(946,450)where()(!%']^do()~where()why();;>&^;mul(593,963)where()/from()mul(743,766;{?'&what())when()mul(184,787)'how()-where()mul(369,262)/from()@]mul(527 %what()#select()++mul(960,324)+do()mul(823,600))[>^mul(992,885)*mul(451,4)%+{don't()where()-(}~)~mul(616,643)select()what()@/~%:mul(112,749who()!*-don't()>%$who()mul(138,173)mul(824,205)from()&when()++mul(262,910)-@select(491,392)~'what()mul(480,642)+mul'when()%]mul(442,572)what()',*@[)don't()$mul(534,385)who()/*?[{:mul(706,170)[mul(867,234)what()why()mul(726,221)when()[&how()/{when()}when(456,111)mul(573,834)*when())mul(754,405how()]:mul(93,454)(how()+mul(604,209)/,[$:{@when()$mul(915,970)mul(381,253)what(655,195)mul(287,906};?what()#'# :#when()~where()!mul(635,559)from();what()+mul(119,665)where()-mul(702,720)][@mul(127,989):-@-!when()(from()who()mul(833,931)#why()]+where();mul(165,144)]{$where()mul(876,422)from()?where()mul(202,475)+what();~%$[~#mul(25,855)from()'(#(mul(50,883)/why()@when()],do()}why()-#&who(936,429)how()!why(112,951)mul(944,216)><(select()@:how()!mul(321,509)from()%<$why()>mul(743,426)why()how()mul(893,894)how():-># :]]@mul(978,976)(how()mul(504,604)#who()'where()]@,)who()mul(196,555);@mul(820,463)(#mul(497,730))from()[!mul(272,539)from()[&}@,{mul(542,203)~>-who();/mul(300,118)%$-^@^#mul(769,400)mul(393,409)mul(36,369)how();-(mul(660,560)-mul(815,344 -,why(356,705);*mul(752,637)* select()@%when(115,426)don't()why()who()$mul(95,166),^:what(912,146)who(506,607) !# mul(4,36)(:)^why()*mul(716,650)?*^''from()*;)mul(176,861)where(31,360)from()what()how()':/}/why()mul(345,935){+mul(858,985))mul(845,922){^why()how()who()]>who()mul(516,571)@who()@how()~};select()@mul(226,334)mul(311,634)mul(96,221)[mul(495,880)*@>({!?~mul(514,411)]~]' {what()>{mul(876,885)from()why()mul(491,922)select()> when(){mul(598,731) where()what() !&why()%how()mul(574,551)@$mul(836,195):{'what()where()what()when();]{mul(799,133)~}how()&why()}&@,!mul(390,782)+why()@mul(900,205)' what()+$% who()mul(805,770))#how()what()}->~mul(876,688)select()how()mul(584,620)#mul(917,463){mul(16,596)+when()how()mul(251,417)!}mul(184,265)'<@mul(472,681)from(162,792)!$+^]do()mul(211,162)(select()>%select()^{$mul(272,42)?how()}#?)*#@mul(887,322)when()]who(630,940)how()mul(420,32) why(),~+where()how()select()[why()mul(782,2)from()(who()%({+]when()mul(742,809)select())~/@ why()from())}mul(176,438)'?)+%!}&>mul(365,870)~mul(266,568)select()@%#;,who()when()}}mul(995,844)from() what())how(){#mul(206,566)mul(477,631)+,where()when() from()when()where():where()do()[from(624,927)when()&what()&who(161,77)>:~mul(715,209)&do()who()what()where()^)>&mul(349,130) why()>/select()(^who(239,506)when():mul(945,479)() +^~{mul(276,89)!:)how()$mul(506,517)/>where()select()mul(419,813)-%}@mul(310,325))where()[::,who()]& mul(409,240))when()+mul(859,189)-@what()what()from()^]]mul(297,639)@!how()where()~}{?don't()&}-?*^ !,mul(695,731)when()!mul(180,470)--[@how()from()'(mul(699,904)^mul(598,451)($ what()/(mul(22,310)'select()]-((where()mul(65,130)select(476,925)&>,what()how()~}why()do()@,+^?/mul(851,562)!'when()what()^where()$from()))mul(377,692)#where(){from()~don't()&^(>^from()/mul(433,800)mul(546,657)<*what()how()&how()%:do()&}what()>/who()select()where()from()mul(925,978)^(>%mul(991,829){;?[select(89,764) ( ]}mul(202,773)@from()mul(600,632)> (slurp "inputs/day1") + (->> (get-input 1) s/split-lines (map #(s/split % #"\ +")) (map #(map edn/read-string %)))) diff --git a/src/day2.clj b/src/day2.clj index 5abbf2e..b7a9b3a 100644 --- a/src/day2.clj +++ b/src/day2.clj @@ -1,5 +1,6 @@ (ns day2 - (:require [clojure.string :as s])) + (:require [clojure.string :as s] + [helpers :refer :all])) (defn line->vec [steps] (->> @@ -7,8 +8,7 @@ (mapv parse-long))) (def input - (->> "inputs/day2" - slurp + (->> (get-input 2) s/split-lines (map line->vec))) diff --git a/src/day3.clj b/src/day3.clj index d6fcadc..3ac5f66 100644 --- a/src/day3.clj +++ b/src/day3.clj @@ -1,6 +1,7 @@ -(ns day3) +(ns day3 + (:require [helpers :refer :all])) -(def input (slurp "inputs/day3")) +(def input (get-input 3)) (defn mul [instr] (->> diff --git a/src/helpers.clj b/src/helpers.clj new file mode 100644 index 0000000..d66a42f --- /dev/null +++ b/src/helpers.clj @@ -0,0 +1,9 @@ +(ns helpers + (:require [clj-http.client :as client])) + +(defn get-input [day] + (let [url (format "https://adventofcode.com/2024/day/%d/input" day) + session-cookie (slurp "cookies/session")] + (->> + (client/get url {:headers {"Cookie" session-cookie}}) + :body)))