aboutsummaryrefslogtreecommitdiff
path: root/aoc2023/src
diff options
context:
space:
mode:
authorHJ <thechairman@thechairman.info>2024-02-03 15:09:54 -0500
committerHJ <thechairman@thechairman.info>2024-02-03 15:09:54 -0500
commit96a3c5c179d8d3fff24eb2953e45f8dd15e2714c (patch)
tree0a67bc0cfeabe51740bb049c61f16f1ac3bdd4ff /aoc2023/src
parent547fe03cf43105f46160e2dd9afff21637eaaf47 (diff)
downloadgleam_aoc-96a3c5c179d8d3fff24eb2953e45f8dd15e2714c.tar.gz
gleam_aoc-96a3c5c179d8d3fff24eb2953e45f8dd15e2714c.zip
cleanup
Diffstat (limited to 'aoc2023/src')
-rw-r--r--aoc2023/src/day1/input.txt1000
-rw-r--r--aoc2023/src/day10/input.txt140
-rw-r--r--aoc2023/src/day11/input.txt140
-rw-r--r--aoc2023/src/day13/input.txt1379
-rw-r--r--aoc2023/src/day15/input.txt1
-rw-r--r--aoc2023/src/day16/input.txt110
-rw-r--r--aoc2023/src/day17/input.txt141
-rw-r--r--aoc2023/src/day18/input.txt676
-rw-r--r--aoc2023/src/day19/input.txt766
-rw-r--r--aoc2023/src/day2/input.txt100
-rw-r--r--aoc2023/src/day20/input.txt58
-rw-r--r--aoc2023/src/day3/input.txt140
-rw-r--r--aoc2023/src/day4/input.txt203
-rw-r--r--aoc2023/src/day6/input.txt2
-rw-r--r--aoc2023/src/day7/input.txt1000
-rw-r--r--aoc2023/src/day8/input.txt740
-rw-r--r--aoc2023/src/day9/input.txt200
17 files changed, 6796 insertions, 0 deletions
diff --git a/aoc2023/src/day1/input.txt b/aoc2023/src/day1/input.txt
new file mode 100644
index 0000000..6efe96c
--- /dev/null
+++ b/aoc2023/src/day1/input.txt
@@ -0,0 +1,1000 @@
+9dlvndqbddghpxc
+rtkrbtthree8sixfoureight6
+fdxrqmfxdkstpmcj7lmphgsmqqnmjrtwo3tcbc
+onetjcsmgk57nvmkvcvkdtqtsksgpchsfsjzkkmb
+six8threepvlxttc85two
+8five9ttqst2one2vz
+hbrmhsnjeight64dgdnvdbspk7ninetzbvjczqrj
+fourtwofivesix5
+3gksfourqf48
+7one1tnqxfvhmjvjzfive
+sevenmcjs3lmlmxmcgptwobjggfive6four
+seven8five3
+5sfknxsn5sevenfour446
+bxc5two67seven2
+jcsfivefive89seven85
+nine296
+seven5twoeight
+1eighttwo8jfnhmfivefivezdsxqxqsjkone
+foureight48sbkkvc17zbksgvcbb
+lnzgspccsn4cxqqdbkj
+qlxrxkpeight48xbgqnlkpkoneseven
+z7onetwonec
+7cns
+pnpfninefive79twoone7
+2hrqpjjjbn
+4gmlttgdzrhxbxnnine
+4sixfiveone76jctmjsxdh5jrkv
+3kvjmhpmglrdgmdnine
+four63sevensevenone
+jmz1eight4threej1
+four21zxksf9jxdvjmtn337
+msnronenine43three1threefrv
+rjfhd6eight4
+78blgveightfiveone7bnsfnrmxsmtwonemrb
+sixseven6four6
+mdjphcm9
+xsjmgdgqtwolg1nine45eight
+five2six85npdqxgrshdjs4
+jbbnine2ttrktc2hxpxfdxgf
+fngvqsgmjfmfslrmone2vtpsstpkhr2jmmxk
+f683glvfsdvnsghvrzcdmxnx81
+lqblzgj322kqfsjrbxgcgsct
+threeldfnrbstbxqdpxpkbztbp84eight
+sevensevenmthprqg9six
+qldknljthdjthreeklttd6six
+7eightcdqxcftbgbfbnvqfive
+gxjzhvkbcjhscdxhjdqxnhsevenxrdrjbcl5fvlvlxjjvb
+9sixqnine9jk9six
+zjtdbzr6njdgflrmpshxn
+rktpknvmjknb7threefourhdxhcdtgtkvone
+276lzxhone3two2
+82fivelppqzjq
+lchslxtwohslsztgps5pdssctclhdkqtwo
+2five8three9dnine8
+68jpnqldjgfnpcmvbxnszhz2252
+q32
+2sixtwo87
+hlmdvlrqlrjdshone3five
+fivetwo7
+xsdcktrone29
+eightfour9eighttwoxvhdth9lndg4
+two8jgddjhcj67eight
+8nrkrcrqhr21stqtvqn
+tvbonepzrrklninexmpxrlkcpgg9qgrkcjt
+6two5qjmoneclfhzhkxbntmvmdrc
+prhmt4xvlg
+3mghfgrhzkj5
+lq2lnrcj1pnlh
+sixqhfqrmf8fivenkkcqpgf85lone
+tlrlcbhdvd5
+three8seven
+thfns325threefpvlntfvrf
+twoblkldr2mmrsxpqxcms39seven6
+2mpcvttntg31mkznplfkbcgccsix
+2sbs
+828jnvjnbgrs1
+fhcglnxzss23bxfnpczvthree2
+7fhghprqvrbx1nxml2one32
+5fivethree7qrsixmcdveight6
+five4seven
+1cfcfdzfjphsevenmdvnzh
+qhmnleightbhbcntwojjfxpvlxt2spponenine
+fivelskzvzsix5xtqkfl1
+2jfgpmdncvpjmqcgvnzpqlstzgfdvfxrlscjkzczsf
+rzzplmzsfivetxbhcqnzdq4
+mvrvfour9eightseventhree
+7smrdqkrh8qlzc
+mpf2fivefivefivepgm
+1sixpkrdjlszgdnccnllfsevenksdkvqbxbpbblthqpzqf
+six91dxxdhrxcbmqpqm
+sevenfour8nine7
+one2hnfvh
+55jmqkqgvsgqcrzvmzqhone8twopsrtgmqrj
+xnfjxqlrsjmgk68kvpptczxhkxcvrpgctddjklrmhzjgtcjh
+seveng6two
+1threexrzqcrknhc3
+58qtpqqz58888cmhs
+pxvbhmczrvpnjnsrcdrnrjvzzpjnbgbxdseven6
+34two565
+four4six
+sqtxsjsix54
+four3xrxmrkn4nrcsmljqrninethreeone
+3six4bqddfivejnfrhnqqsgqhj
+gtbtrtzp8seveneight3seven4xzdnfrvzgn
+vggfdfvlrgvqqvjhkmxfsfbdpqfivexs16
+onegkvdhrfninerndk46nine
+5fiveeighthnrlzln
+threeqctjkpxjx39six89two2
+99ninecbzck
+nxqlhpgnine6pvrrpfjpssix6seven
+1dbrzjkckthm5sixsix
+fivefmfqcsj19nhnzg
+five91eightninecn
+7ljnl71eight7mzhzfht
+84sevenzrqvkxszdhg66
+jskktpm5mphd1
+boneightfournq6ndnqpdbm97five
+5twonine
+scqpkxrjtwo8foureight11
+3eight7brgqfivezpgclhfj
+zkfrsdgbmczlrzchvfql78ftsdqk8vmqccbn
+oneseven3kgdkjzkmq94
+sgtwo59kdmhbndzd
+threeone37
+mqxvrhmrpqnltvt9lrpplmttkhdvtln9
+onecxqvr48six2
+pjnx2eight7five
+two189one6gbqvllzb35
+psvxjhscstjfkbpxhbbb4zvdjbcdxqrqzqlzp
+n18hmhzrqjrpcxztwo
+6two46zblgrbmjcqbnxqcnbf
+7kxsjdqcmxrvmdtscvxgrnhrmrfour
+onedzeight8qfive2
+seven9bkjone2sixqnztq21
+fiveninesixfkzlsn8fivembfjnx4threetwonexb
+5zmxtcmzqqdthreetczccnxhkxrbntmfoursixjhhrsdxthree
+1four2xpkfgcn
+88trnvjtqsmseight8
+pbbpbfgsrst5five
+jvgvdseven2two
+962sixoneonectfgpknl8nine
+rkbnzz1l42eightflb4
+twoxfll2fourbjfjgxfbtk
+35fourtwo
+lq56ninefour1three
+77ztlmqxcxrj745
+nnvqrthreedt2eight6hvrlnpbts
+6five6225sixfnzzbh
+nine1three
+8xgdsdfgcfourlhn
+2three3ninelckpddbmdrfournine
+89zmvxnlrj7658kjdjchq
+pfhbgpb66twogpn7twobpvrbmmrvp
+8hgqmztnmhkcr6xrxrbhj
+6fivemnfcvvx8
+3mxpvgzq9ninebmlktwo
+thzhbsl49seventhree1bdxcrgjq
+rlcfour3ffkxxrhb
+rkj2eightfive
+xqncfnhkcqxqjgbsjhnrgm6
+ninefour52ninefourtworhsix
+lpzcmxt97mlkjhlcone
+two4qkmqgrpltkrdsctpnsqmbtptklprx6ncfpseven
+61shxgxdqqqzngnnzeightkhmgrxprb2sixjx
+9eightfour3one6seven
+eight4sixqjxdjnzmkfflpfmkf
+3bfc71
+14sevenfivezzmt8cpptl
+1sgrzdqdndsevenninembzvfive
+lxftrbfcqfoneeightrsdxlnp1x2jsgn2
+vlfcjfourmtxbcngpjvkcctvbgkgpvvqpsg1
+116five132seven
+eightpvfsfbfzjcdcvh8kbrcz357
+99two
+four6six
+fzzklmnxvfrhd62xmftbrhgsslrlqv
+5six55zbdlgc
+62nineone8qcglr1
+sddddseven55fourlpqzbgzfive5
+eighteight17
+nine98
+three9qqxgfpjfkeight81nine2
+twotwosevenvkzzhrpgninecqvf9
+lkhf5onexsrtwo
+8hfzvnzrd
+9threeninethreeseven
+onedpgjzsixxs4cg5jlvzcsbd
+fgmfive97
+4fivefourckthree
+nine1fivefour
+7qlchtvd
+tmtmtnxdpsvfour4621four6
+5qfvzh7seven
+fourfivebqnpzbg8three
+34kd9four5seven8three
+kcqcxzmnkdt5twojdggp
+4lvbfdpzjsdthreeldvkcbqrspktwo
+2nine93foursixnine5
+8tbpjgmxltwojlpbnsvqhsjfcjcfvcrjqppdb5seven
+8twodcpglrxcq23sixfour
+3sixvczzqsfive
+1three45jh54tbdvkj
+pdrzqxdtcnbrnine8zvffmrtwo11
+3eight54sksqfxhzcdfour
+7hsllsjtxtwo9jhjlhthreekdfssninetcjjrm
+9sgmnine1kjmhjthree
+nineseven9five
+ggdcphlstwoonethreeffgmrseven2xsbsf2
+75ssbccflrrf4lpmptcqjcmfbpklqc
+5six2threedvvlxdxsixvxxghpddn8pbnr
+tlbjnlxfxvnine4grhj71hnf6
+964eighteight4eight6t
+5qbmnsone1fourseventwo
+oneseven1five9two
+5fdpl37vklxpth672
+4czvrnxtlfiveseven74
+qdgqbsd5fourfive
+ddrqjnkbq87six2fourmtghdtvtl7
+zdldjnfxms692rbdfgvtsevenxzfjpnsf
+nsqtkbbfhn8threesix3fivefoursix6
+sfxjzhpqqslfourmpph44threetwo
+onefive3seven21
+9eight1sevenfive7nine
+7twonrthgr73vzb
+18onefourhxxm
+3xvboneightlb
+3ftqct9
+8five55
+4eightmzrlfjqqddffgmfl
+74mhzvktwolgpvrvnphc
+sixnine694ninetwo
+bzpnktvcqleight2
+5oneeight1five2dszthreedncqzmhc
+eightfrbmcblrghgmpkrdnh7fournzbvtrzvhchsix
+threethreeoneone6kbghfst
+4fiveonexfchmclqhqfive
+1t3nine
+57jclthreefourbtdgsggzh
+qpc9fhddthreefive
+9eightnine7cgpbbnine8
+88twoxbzjp6fmqlznzgpgdqmmnpmkvctm
+threelb9four168qpchgnfn
+4onekrlmslkd7five
+4jfxtsseven
+zsthvnxpf7
+656three
+453seven
+zxmr55hgnvtjbbqhfsxssjxzshcbkvsbzg1
+pbkffqzrbvxvqjfgkpmp5
+ninesix677lpqpgmc
+sixgmb67fzdhnnfk7
+jlgjbltbtwotwoeight9sixninevlngvvj
+xdxqdhps9sevenzmzdlnvsix3oneightj
+ninetwokpzvvqlgtcfx2
+dqmjchlbj7sevenfive
+61eight9kjmxclvdrdmvnthree
+8nine6three
+3ndpknone
+seven4one
+8dxljzpk8twoxfmhbqnmqeightdhxvpgxcnine5
+6five3seven
+rzgfivenxhpr6gxqflrskhjhvoneonegzbclk
+jrvjhkfv7sqnsz86five5skvvmspvjd3
+sevensix3c6llkmsmmssf3
+sevendf73eight74
+7bqbbvmq2krkbhlsh
+3dqq55eightcptwo
+2bjgfrgrtgnfour
+44xznjjvlhzclsix
+seven6rtzponeseven
+6ghvvkhrzvjzpxlbkonejlmrhq
+zgsxthree6
+3crzdvbnhtsgldjvbpsixbjmlxsv3vrzjtv
+xcpnbsevengpffknsv84sixsixseven
+four898xkqnhspbqmtcs
+5twonine
+six2ltwosix
+cnine22sixeightwost
+6lx63two
+fbqoneight3five
+rbtwone2eight8
+9fivezrsdfkdlqone1nthjvdlmxhqvj
+pmmfp8seven
+1qmttlsjpxjbsrzmbtlxqzfzvrs968
+fgdonexgvvnine5jsm
+rbgmbtwo9fsntcthreesix76
+fbrsxxshseven3gtv
+mkxfour66one9n
+eightnine1fivecsixlqds2
+lhxnxhfnmlmhxkcxndmnine1kfpb5eight
+6eight13rseven6
+hxcfone64ninesevenbgsnrqppqmnnineeightwof
+threebjpbtpzgx5mnthreensixoneightz
+bpdvfqlzthree2vvcmvzllqfbgjgp
+two926sixeightdsvdmnxthreetnqvktdbn
+bhntwonefourninejjcmlfphzpseven95
+prqoneightseven1nbcxnqjfourfivecmj2
+stwone1oneninevcrfzpfourfivetwo
+ztkknhjr9six8
+twomlvrzm934seveneight
+ntnn1bqgbxf13rqdqtcrbpeighttwo
+seven58ninemdqonecrkbdblone
+foursixthree1oneeightone62
+8385dhgcqjtrsixtwo8
+blpzxstwosevenqbdhkb8sfggkbdhx5rzftqsf
+mqbeightwoninefourlgcj9
+njvpkpvjpmvmbsrdgdvx7frrgvnfrmmrfrhqdtwothree8
+rtwonesxxone8tnine
+2xqgrqmone73five
+5ggzdxvptwonineeightdj
+svqhzhzbsmhljxeight7hljd
+one81kmnmpmfkseven
+9ninefourbvbpljb3nineqxnkgzgj
+sixfour7nvdfhnd
+24twoseven52
+425vqnhmrpxthreenine3bkjpvs
+8fzqqspdp6
+427five9zhbxpbr
+1qjnxxkgqhp
+eightxzthreelrbgfbvmrpmtgvrfgqmjlshbqv5
+onetwo4
+three194bfivevknbqxv
+1mjhplcvheightlnvn7two
+rmptjk5seventhreeonesevenkdxfkvdz
+threesix8kpmrvgkpsix
+fjfbx6eight3fourninesp
+six3nhonebtdzppnxkr
+xgtltdtwoninesix62szphpcmtv6
+fiveeight9seventhreesevengndgdfv
+ninetwosmcbfkvf5hvksvfbr3ssbntlk2
+qjrdlmone7tqrzlvfourvfbvtkjxfpkffdpjnine
+sevenfqnsnqt89five5
+16sevenxtdrtmdzrxhneightwot
+8ttreight4eight
+three9nine3832four
+fivesncggngss8qzfvj
+twotwo7sgtcgrmdnr545
+6xk7threejmgnqnsevenmczscqxqxfour
+twosix4eight
+kxm15two844eight
+twoeight5sevenfour
+five56three
+threekdjgcdd6one
+clchjoneeightrqgk8bdsdmzm
+twog546two6x
+5nine4bmhbtbksxreightoneightkg
+gjfkbsr1gvtvlnbzqrlfour
+one48vpone
+eightbcklnvtgvthreeninefivetmgtbjrqnn3
+nkclzcvbbq8nineznbtkntgndnine1xrg
+lqpfhmrlmg32xtddcfffdbxbjckvlzghpldfgvhfhdhr
+fourpkcppxtmqz5
+dvb6sixvhdrzzjk
+btwokhl99nine
+73rkgbsqgz7koneonemlhrbtxc
+eighthlqqt4onenine
+eight61oneightx
+ninebbtcjjlqkthreenfvbcc4three946
+ninepqtlffxvclgn7fqdhqbpmkkseveneighttwo
+bqzpfxntnkhhfkv98fhrqslfs9four
+4ktprrljbthreethreethree3blmddptfour
+5fourone
+9zhvgleightseven5nbcmscqms2two
+6czngsp895
+2threekrxmtfrr2ppfrzqkqgfoureightlf
+six8eight6seventxgl
+1one9
+3qpmrtzsvgkjxsevengzdkjkbbdltlrjkznbbkmpb
+sclxoneeightfoursfbfm4rbxssmgngfxrvcv
+fhctmnpxdrfivemndlr3sdp
+twoseven9sixlp
+962
+tsnsndjtrp27cbtsjdlkrqmtctxvxvnx
+5mnine
+7fgt6
+three1ninertghhbhbcnjdsknine
+two8ninefxcqmxdhtnmcmjvtds6fivebnm
+7phdp
+2hnszbksg
+4ninedcnjbcxnrmoneeight1
+hnsszlsx7414two4
+gmkrn9gcgmffrvbfivethreefive2seven
+2bknqdqmrxpfftptwo2vmqffgmzr
+dsvf3nv14zklptjnhv
+54nchsnpknkx
+oneone15
+onefvmxnzp575sixpxnpndqf
+6vqrzsbbxg3735
+twojbldk2hfqqzgone5
+onesixlzznvc8nineseven359
+6vjbr7
+nineone32nmkszsthreefpscxcqtwofour
+fv1zpqrxvdlzqmeighthhbbbzt
+cskvllzszxzk9
+7ninebrlggdzqk7ninelvddrtt1
+2fpttpbq6b7ninefour3five
+bsslmmmhfxc6
+lfjkdzdm9eightkbdhrkpcnzcftlggh
+rnineninelmbhfour88onevfzhcmneightwofp
+one59ktxrdrhc8six9
+86nxnfzzsixgmxxglvfivezmkdvmhjfzone
+9threefourfourrbxqpqbtbzxstwo
+3pvgtcxrfvthree39bjfivenxvbjone
+sixkmngfour3bfive
+6threehntsjhjpmqhl345
+fourjcnd49fivexqfbj
+ksmszhfive7rrphsxxhgm
+zqtdztkhveightninepnctbcgqsb6
+ninemlvzfcljfkeight1tppxrqtdzp2
+twotwoeightnine5frzk3
+lfvqtzbsix3
+four3bsgft28
+sixgksnkrmsix2rbjmfmnfzfiveeight
+vrtffvbtcmszfdc2sevenhvpfour8
+twopvgzmthree3
+xqffprzsrjqkcbsevenczlbc5
+4ninefournmvninetwommnrctqjhg
+27four
+fheightwod4
+38zkgvdpgjzqfivenlr7mdxd
+ninexxvninesevenfivedpzfgpbv5
+xjzgznvfsevensixthree3rgfqhkxbfp5vfrjcdncfkjk
+2kcbprjfhns68
+bndqgcmnine4qbzfgxmlffive
+ffctnxgtwobldqhsix8djfmdnpgmt
+fourseven91ninesevenpksgt3
+rninesznvtbq5zqmthzrcntskdthree7
+8eight7
+1hnlnp79
+1three3
+414ninevqrccrf6lmzqmsjc6
+15mpeightxmhxlxjmn
+ktdblrmqqxmktvqfour87
+1four121three56
+ldfdgfqkr22nxtsrsntlsevenxxrcclrhtl6five
+eightfourthree8pvlkkbmbrfnfr6
+8sixninefiveqcmjhpx
+2seveneight85lskjhn7
+31c3
+hpgmpmjmnk4twothree
+cqsxgbj23six11
+threesxzmgtvhhheight99xsix
+6jlpt6rnsprllqhgbvhtqtjvft217
+22onesevenfour4sevenseven
+sbnjszzkdleight6three
+3twofourdmrsqqtnzgng1two
+ldcvxqbsfqpgql9ngsbhfrmszhgvznnnjhnm5
+1oneseven28seven
+nsvhqtfivemjgcdqpbtwo1nine2
+six8dj
+zdoneight67fivesevencqlr
+xlzrkgjrhmszmkzlkkmrxjdnzrtlzssfpcxkbxvp6jghldhvr9
+8sevenbzbnnx
+vzrmcfvc9shkxfblfkf
+9twoshzmktntwo5nqp
+3fourvpdfs3eightword
+three24onesixgdzgkspgsjprjgn7eight
+4tz2sixsixqbqfsr4twonine
+twoq2eight
+rccxnvtqnhdlgzqfzcnrmqtjqonesix732
+seightwo8ninekndqrdtbfp
+cgnmrkcjvbgfmpbpjckhfrzrtnine2sevenfivesxhqk
+fourxsncktrjtpnine6ccbgpl
+1sixone5vkzxnhgdlbsevendtwo
+9jbnineppf7
+5foursixlrn5vdgdbvnfhg
+fivecrtwo8zbqrvjgpfivenine2
+ktvdhgvone6dbrvj5sqbr5
+bljtwonesixthree7dzdfrgqrkstwo4xvfmtsbpqjgxsgqcpc
+sixgg5
+vmrbqdqdrqtwo2onez
+onehlgrgndk9ninefsntwo1rnclttm
+4tqzjbhdhkm1
+nine1kffxzcrn189
+sbrxr9ninemqb8
+six528mslnf
+sdvthree7dfivenine918
+3kvzqqkonepmghblzvljnineone47twonesdf
+four9sevenfourjhmjjslqgd8
+3fkfmgqf6fourbldjfvbhr
+eighttxpddhsnzrkplzqc1ninezpvqgnhxzftwo
+56lsxmkfpghsqptvhmmmzhcmfdeightsix
+one72kdfdrtwothree8
+7kpgjhpnthree7
+37j2mtwo
+seven4mjponefivesdgncqm2gkklsqvthfeight
+mgckktt9six4eightwol
+4grzfdm499ninetbt
+tzmbtv84b
+xvzltd75dhpjckmpdrkgglskqrhd5
+cgnbhmdlj24
+7fivetpbtmone
+fivelpmbxvhktzkkonexsxktlzthgbgqkgcj94
+5sixhggcbrft
+43five7122tqlkhssczsr
+eight1seven3
+fourtwo134fourmzpxspr9
+snxjqnf8ctcnvjknghxpkpbrt2
+4qj2xtwoghknine
+1zjfivegtwotqgndnineg
+fjmmznxkrml7fiveninelfvkqtrg6
+8xjlqgqj395nineninefive
+dx47sixtwothdphj
+fivesevenxgsfb235cvgmspdgg6
+fivettfzvfg78dmzzdzcrt
+fpnvxp1
+seven24
+1three8oneeight
+7xglzsqrtb8fhgthmgdcdtwo
+seven8gdtfgd4fivepdq
+twosix1qtttvvstmqbrhh
+ptwomnjhlzjjkztwo4kdkgxv
+89zkvrhmrhdbmfourzdpss
+bfdsvnxflgqxgpzkmrptlvmvlkchjxrt67
+9mmhxsevennvvdngznine17twofive
+lszmqdmxz87mqbv51
+546sevenninencccndnr4
+nineeightsqgrpkrqlmzrlxm6hxchcjspnx
+8twoccdnbfive
+1ks98
+twothree6
+twoxsixtqdpp6dcclzgfvkv1
+16one7scvsgvmcdsixjtzszzrxdzzgv
+bjxzdsixkvqgjfzbbjnrtn212jplvrj4
+zb2three5cngqfczc1
+5fnine99zxvfourjgmn
+one634rteightfoureight1
+76gvcdfourgtbzdlltzsjnxqg
+ltmdrkqqnfour9eightpckdvbhlkvxlpdtp
+6two5kgncpnzkdsgnpspb
+three8vjninekbbnnfrdstprcmklrgpkfpmbs
+ckvvqjqzbpfhf52fivefivefour
+7ngxpdqptksix
+ftp2eight
+8lnmpbqldqstwo
+threetwo153644
+914
+plxjdxghsix17
+sevenonesevennine4three2seven
+7bvdgpghzhpeight512vxbnfqjctb
+xqptzkfive4xqbjzpqfkfspqv5kgqbdtfive
+bmltkhjsckhrc7two8nzdpkjjpnfive
+nnhppfvlhcmnmrjxhrbtzdflseventwojfprxmfn7
+fournfdtjtsbthree54fpzsq
+ninenineone5two
+8694twomgxxzfxr6
+sixeight75seventhreerpchfour8
+llv5
+skxcbfffgc6sixone
+3lhjbzbsg4lsfgpkmcz7vjxzbrshbseven
+4onecjlkpqdljd3five5
+eighttwo2mvdtvqpnonetvphxsk8
+15195one
+kdx9nine6qrnqrjxq59
+twolhjmbh4fivetwo6pdzbnzt
+pbvfour7
+tgxrsbk2
+hfournineone58sixthree9
+hmftwonesix5dhthkcnzqseventhreenineeightnine
+9jmmjclsnsdhhj
+hljjvctthreefourxsdlvsgtqj1335seven
+172
+2gbfpjff
+five5sevengvddnphnine
+sixeightfourssptsqlhzxonetfg2hkmrcpfzcz
+94csjjgl42three
+4bkxxv6
+pgdgoneqmhxfpnfqkrbkjeightbmjjlrnsc5
+nineninetwo55fvsxspzt
+32jqffghbqvfmjtjone78
+93eightfour6eight9eight1
+768jrdmfxgxpntx8nhpljjdx
+eight33zpvpggklseven4lcqsixthree
+fourgrmone4
+bcknine9qsevenrjhjeight
+5onevqm
+578mmqhhljtwo39mfnpmfqthree
+fivecmts43eightfdphfivejsx
+8vkqvl
+8oneone27fourseventwo
+jfsixfivethree3cmjtvkzhqkcksmljxxzbjd
+three6sixpdvtrnrtffltrs
+threeltvvfkcdqjtwo89two8j
+5sixeightfivesixjjmknrgd1qpsbpjrffjl
+eightrmgfkckxxxsvfclhtgcjthree3
+rnfbp8eightjv35eight
+2rrssqrfkvmq
+dcmghdmg6threetzsdx
+qzhfivefivejvbtncm2
+gcspvjnsevenqhmkngfivesix15jtpk
+bkmlmh5six1sixone2hgtlsix
+8rmjshdhm681vc
+sixtx32
+7fourtwo6
+xgrcxeightsevenzgmcllfjqn7
+553fivethreefour8nine
+one4mxbmct
+three6ninetwofour
+1bbbxqhhlmj651eightkfdqdgvh9three
+4414
+mnxsixone92
+61six8
+eight8mrcpfive1
+crsvmfivezbkzkqsix7mxjdgtsqbfvdbnlqtfiveoneightgj
+4dmzznftdbqj
+seven25
+fhlhpvphqvh8one1ffkq
+mboneighteightonefive1ninenineninetwonine
+82fiveonexc5
+97qbhvbqnmxtlpczsx
+nhgzzjkx5
+hgxlrk9
+8twonine9fivetdxmjqppxr
+onethree99sevenfourkzvd2
+sdqjfvbndzcthree1ftoneightkm
+5rcllqcxt
+threejdntvhsixsckfpndjzkeightsix3nlgpsvsfhk
+94fctwoxmczbkz
+4eight35tbqjxglldsevenxmthmmlhsix
+three125
+3njtlmxtbr4541ninedz7
+9ptzpzqrjmxlrmbfbpn9ss4sqcprfmcqg
+8dpmkdtvjxzjbddn7pvkxzskddrhcsjvthree7
+xxshbfcmf3cfdkeight
+six9ninefour472
+fourrvxfmjzd4five
+1fivesix
+twonine3six9
+nine8onethreethree
+foureighttwotwo7onethree
+9prtlnjptoneninefiveninefive
+cljqxpthqzdxpmmbvpjljjxhlhsql8kztpthreesevenoneights
+9sixtwonetfh
+kscmxpcqlthrmthcdhplpnqlq2
+fiveqjfvkmnineeightninefourtwo1
+one5sixeightfxkshmninethreeeight
+4nine4
+27
+ggtz73sixkgsjrtcxkb1
+qvxsgvrpbxqcgpb2fzmcvknkr99seven
+6eight8ksgdlxj638fivetcgb
+mmvc3fourrvbztjchbmqtxtgfrrqphninefive1
+3qzbzxsevenfivegrvtbckqcj
+eighttwokzpgl2hrvqlhkthreenine4
+8twoeighteightxtsbrseven
+nine5mghp7vpnvtpx2c
+hkxkmx5qnpjhtdfjfsix2xqqplvm5gmvjm
+69cgvzhvgjvl8
+threeblzj6three
+3bxpmnfbtpk5hcgqkbkqblznxgsdvklmtmqjxsxdcgqvmsprxrrnfchfbnd
+1fbrrcjgzzllmcbdrgmrcfsevenh
+58onezbp
+1bqfkmkk46cctvmstvhvrtwoone
+mmeightwo9sbjvleightdsevenseven
+9gdsqgflkvonetwo
+3lgpmxdgjtzx3two5foursixeightwomb
+dbkbeightfive9eighthxngnrbmp
+2cpkxggtrdsrh
+zsgcdcrlhlqdpone9eight17sixbbtzpmdf
+5rskkplgsbl9qqzfrzh67four4
+nine856threezgbhrzjcfour
+kqnnine87lflxddvtfb9lfjdknvgl8
+fsgtwo8zxvnfour7xxfnmqpzhzone4
+ddd9sixnsrpqmvvjh2xghxhm
+836
+nxglt36ljcbvgc16hxcbtqjz
+nine19fourhnvh7fgqklf11
+jkvsphrpmhbnfl2nhcflhsbks4
+7nine2dsgkmrzlrzptfpk672
+6vtmztrjdrbk
+4vgsshzzsrtwo
+ninexfjcxdcnxs7seventhree2
+hsvvqcqp97twommjjlclbtdjbxkveightwos
+threedlcvvseven3
+366xqfbhzfmqknine7
+jzrqqfouronehhrmkg4one5
+8xcbccrp141kmcsrdlgcdzpcb1nine
+59rdrphcgk
+fivetwoqmlk22eightfive
+qnsphtvfourtwojljxnvgrkk3slv6four
+13dfbnfnpsevennqtjthreethree6
+4dtncvsix34oneeighthpfouroneightv
+xdhqninefive88nine
+6hnnl8nineonehm7four
+sevenfournine8five2six
+vnczlzjqdtmdgsgxch94one3knlxjvqtrjlsx2
+twoeight14kkzrsqmgkhjb
+jhqrzxrhskngj9ninenjcnbdtjhjtdh
+2grrlxnlvthreernfghspmc
+two8hjbsevenfive5threenpgtnkftp
+d8sixfive1five7
+sixthree9
+sixspqf2gptcsrvlln9
+seven8nine
+nqeightwo7svvjqs75qgp3hpvn
+qrsixxffsdvvrf74five3
+5threeskqgcgprrjmcxksixtwo969
+bdbtlvlseven13fh
+2two1eightfour7jqdd
+three8ninefournffzbnbhkpjqh32
+sixqzmhnjttdnine41sevenpcxqkvr
+fivenine2fourseven2
+sixjjhrjbmvvngqd3three7ninekpneight
+11lttrkpcljbbrmponeightbb
+frxgkvgrjtsix84
+76eightonesix8fivenlfhkfgp
+fourpqlrklpnfljvpfkdklkgrjp1ninevfour
+1six75tr1
+cjdvxhmjvstninejccxrqhb1qkpmnzx8xfpp
+8sixfourone6pzlnczvlsmmp
+eightrkl37jqlvjjsbrtqsix6
+onesmrjvmrtlppm69857seven
+4rgsktnbone8sjxjzbrplnmfvkknpxqv
+tfteightwonsdffone8sixxdpeightseven
+639one2two
+smk55
+6cjbckhbtmkcgrvmp3
+rdnf9
+1jjkdspeighthteight37
+1gh3dcmhx4sixnphphhbpninevbqhs
+vpstbqtdmbvk9jstvtgzrdl
+91seventwo
+7sdpflkxfzfivethreenine
+gvgcrpphhbzghtbcv6
+vvnine5ddgzroneone
+5four6684one
+dmspptjjtwocr2one
+sixftzx6fdsfv
+5six8twotccbsdnpxg32tsix
+mfkdbdfournktdmgqnt4vqkzbzonekdqhbcmfgfiveone
+nine2476
+8rxd2eightninefourmd
+eight1hqfcqs4cpvpsqjfhptwo6six
+5z
+bqcj948nine6xmgnxmxnn
+two1lzdv65bhllvrc
+sevenvjkl3ninespltvdszvnfvzpcvrctphvp49
+4mzjxftf5eight
+fivehbrxcbgjhhxpzfn5lllsknk7six
+6n5ttwo166
+fqdfhc3
+6cph
+lzqqvnlkjv3sevenbdssvckmdm
+bbdpgpfsevenvzsix87
+754sznxkfb4npmjbv4one
+twothree984dsxsninefour
+kmpjgh71jhfrjgrpbd2d7
+27tgptfvcjnk2
+onefive497cdcktxcjfivezdrdhczbp
+79176threeseven1
+csseven1rmlbcpct
+1lzlz4tsngmgh
+zvxshddzg2eightpxkzfnvdfzeightseven
+ninesixnine93seven8
+1twofiveeightmfour
+six3cmbbbxbqr74flchvgjbr45
+7nine31two9dvsghkrjj
+five5four
+seveneightthreefourseventrgxdqclq2
+5dfgddsevenldmzckmvxjmk92fourdcpfgcrpd
+ninekbhrflzmgp3lqgxgszmzvndr47zcllcfg
+sqsixonefivekfvbfh66p
+bssrkdrrgsftlqjdz19
+bqcbhfive6
+jt3fivemdrnrvngsb1seven5
+svdninesbj11eight
+2phltdc
+1469sevenvksvlthqskfkx9
+7fcfivefourdbbvtnjbrc
+6seven4
+lrmfqtjkzfive69eight8
+zmngmr9ninenineninesh
+qrxvdxgtfour7one6
+eightmjpkgdtrp52shpcrtb
+54k7fournine
+7fdbshl6874
+jfjvrhccqrc1fourcrg96
+1sevenncqhkgtzmtncmxhflmfsxfsmsmqh
+79fourjmxfdbqnrsr
+sjthree6tcbp3x
+qvrzmdzfnpkkdcvone2lttcbzhhddbnlnhxgsblhtlvdcpnzjvvqszrthree
+ninedfxcz63two515
+48sevenvgznbsxzhfgzq19
+dxjbtzvtfn3five3
+five1gxfcfppffg74
+78ncrnhmv766nine
+two7qmgeightjhddgnineone
+jhttksbpbhzmgglfour7
+bloneight3ckvpkxtwozzxr1onethree
+mhmppdtvfonecrjzlktlnkpzdbqtvtwo4
+179tjchxninethreesix
+dpcfnsftnjbhlpcjrc8pbnnhtlrjzmmjk
+ninebn16one2crfour
+mfivesix8nine1zgpqpr
+eight44fourfivegfive
+2qhsltnzsfivervftmdm1hthcml
+sjoneightvrxctb9sixhkhmfivejm
+7threehdctsfqflggzkhpn
+seightfourkhpkprrcl6six
+fourkdff7
+57seven3four1r1gcjtckvn
+gmfdzgv7fivesix4nvlq3
+thp7
+xd5plhtvtgxmgkmhlr5nine
+7fourdf
+pnkjgdctpm2221four8pvnhxdtrvs
+hngtq27nineninesixeight
+2fivejpfbsqtx1fourseven
+19jpjsbljgz
+ninethree5twoeighttwoqponefive
+gklmbcj5mstwo8
+phbeightwo31jjzltcqzhklm26
+jtslpzsxh43
+drk7
+5dxcsvgqkmz
+jnrgv9
+nsttntwo6
+6qbfrlcfmmnqpmbbtqgdsjqndqfive
+2mgdjlpdsixfive6
+sevenfivesix6
+3nrfvb13onebsrclqnflppzchtp21
+dmpgdvfive7
+lpvqjzhvjoneghqxnvsixjxflzqj4
+onegqzxvnnfnlcffour2
+nsglbskbzd2drjzqhnq
+nine8seven
+rfspthhjbh92rseven1
+nine2ctjnb
+gzkgvtxjt8twoonefour
+tplxnlr8bfjklthree
+jqrxrtdvmj8fournmj
+6gxvglbcqkdsdcsl
+pzjk9ccbmkzmtsf
+qdzpknfhbsixczkrqbpfour76sevensbvltnjccjllng
+six1zrhqxzfivetwo
+xjhmfkvjgxtbgszmpd54jbsscgrninethree
+cndbtlq22
+fouronesevenzrrv7mhsvjtwokqbfvvrs5
+twoonefive59phkxdbndgch5seven
+8twoninethreeckdkd5
+9four6jfxnfgjvcrszrpsrkhh
+993psn4qdldmfnqsix4
+42tzxknj
+vvzpl8six
+8vpchdjxczsvjjqljnmpdeightone2seven
+fivenine51sixcdb
+dfkkvsone5kjzvqqc
+8seven8pxtrdrkqcqhdklgsixzxtjmtblzzcc
+ddvzsqnxd9xscsix4rvpsix
+75nsvxf9one88
+38ninetmmqx2
+sxjqgrdthree2vhpgrcdtqeight
+63kthndjc
+qgbdkfm56two6fourthree5
+five79
+jpb2seven7one7
+four5sbgbpzkjjkjhsvgksgjvfrsbpbdzgd2
+xlxpsixninextzlpbn6
+jzbvzlflf8twoeight
+4vjtr6eightninenjtvt
+3twonine3vmrgkjzkpfoursixtbcktpn
+six1fourbfhxlntrqfxxztmj4
+jrbhfourfour6jspsxkn2eight5four
+pcvjmdlnf15cfghpszt9
+4lxktgpvvq1sevenone9
+twosixhllhbxkbd2three
+veightwo3eightvrhseven89onelxvhqxkhm
+2sixfkdpcjcgcbgfzlbgblj
+457jtmdfdjcnine
+three64
+pqgjfseven4sevenoneslgeight
+91vcptwo1twonineone
+seven63fourzjpdmk1
+8fivetwofrbtm6f9five
+sevenchrtbctkgpnine65fourbhpqnchhlz6
+rkdqrbtdbj9bt41hklvlrbrcpx
+1three1gmdeighteightqbgsevenhljbpzbdtt
+srkbbkfcznine6nine6
+8kmzbjzsxtgr9drtbdl
+24six412smjfxscst
+9cktpshfdr5djvrngchrh176
+2mjknvteightmvsdgt8seventhree3mzfk
+vhldtk27two
+6three2ninepqnine
+2fourzbtqnclrtpsix2six94
+six6five
+one2eightppzmczmgsixnine
+15qljk7vchkfcfhkhmbjlkcfour
+99four
+dhrgkkbrnczkdt3n
+89211sevenhnbjbrxtk
+663rrbpnrknine911nine
+2ntffsix9
+4mdpcrvqfoursixqeight
+jbjjqkfive3jqnqhvkmtbddrdqxseven
+2gvrgdsxptwovfkpgdlmlhz34
+rqfrx82
+tworzlxeight66eight1five
+md1jgknfftttjbjz
+tctqctkone37cmpbslgpzh3
+3sixsixfpxg
+seven6bld42brzxr
+6two4seven9zpgb5
+nine13
+d68
+3lxvsgksbbtwo52eight3three8
+bpltlnlzc8
+seven2five1threedmkg
+hpkvhlkhknhjpq9tgpmnndgtlqjx1vkdkvtqhtwodrbr
+fourfivesxgpxhdvts7four5
+7frgrjkkrb1
+2threettvptwobjhmxvpsvmljtvnpkpsvr
+9fivelxtcbbn9xgtwohmmhnfhcknc
+fourqztfvd6gkhxnstjjxnbl69hzkghsjrd
+pspgqcjfcqdgq6xsgxrls
+threesix6lrfkmvjdfivetwo9
+kdjgpj54
+oneeightsevenfive1
+one4onefournine64
+45hhcpntsthreezl9hjdnnine
+17ninenineninegczplbj81
+31threetwosevencphdv
+5eightvsrzjmdbtqhhqtjfjrhllhbgzgzjzvdhddstxpp4
+pgghlbtsevenqxxjbnd14onetwo
+3ljgmcxnqgxcrfourfourtworjtwo
+eightseventhree59
+3nhsccljtzszftnqtfour5
+threefourthreeone3five
+3pzgzjv7tz
+qxgntksdr45tvnxfcjdnn
+5seven9threejdzrzdfcpgbnhrrmfkkskg2two
+38bjnlcjbeightfivefourqvtbvjsb9nine
+nmxqtzlpfngzlsnl9
+9eight8five3two1gsknxznbf9
+518jkqmprjlqcpdthreefive16
+6lzjznblrj3three
+f7blbxznlvgk
+37jtlrvlzhzronehn
+kpckhlcsbeight6
+8dfptmfourtwoeightfoursixonefive
+ninecdrxlgdkm7nineseventwotbbcgninekbxssd
+rrhkgmnsbxbhb2ccnncrbstjfbmnlbxsxbkr
+cflrvjtdsevenfivefive3sevensixeightseven
+41ninenrznrcpdqhxfglb
+gffivesixtqbbmzllvbnjnk2fivesix
+eight311seven
+52mpqbgktxhs359btkzqdfzvtrzmltxt
+onegxnk2rvnmdcmqvqvgkml34
+gfzeightwoeightrbvknvpt7
+1ct2
+zctqtxtgseven66zhslvvdninetwo
+54sixbfn8mxfkthf5
+9974seven9dclxbmfive
+onefour6mjtssrxjjsleight2foureight
+818sixsmmzsvbpl9two
+rjqnpzlp83qxlj
+sxqztv22
+8tsvhfszvj
+one5mninefour68
+three7threeone
+sevencnq2jdjvmlh5mqnnnrsqgppkfxjfjsevendrq
+8zmxbvgschsqxbk5lltxpseventhreevrhsvdkk
+seven2ngbqlxkjl27eighttjprz
+ccfskxtnqpqninevczrltkg18hmgjmqt
+npgtv4nine5lnqvglvdrxvqmc
+kvg4zrtpxnknbone
+threeeight1tsdcthree5zxrshttlsmseven9
+35448284
+6fiveqplkfftsj
+pldmrjhzhfiverlgntcckbqzjgth4gfddcrz
+6fivesix2
+eightksz6m6pneightnvpvvx
+1fourbqxtmbvzsfnrxqmvlbfzvdthree
+two43sixthree5one
+cqf2
+twoltseven8three64
+6fourprlhcc
+fgqoneightsevenqthreebksixgdqt93dm
+xjczd3sixseven5
+kfzgshnxqnptrckbrt2
+fourrrdcl624
+kvhfqspcpsxndjqlonesixthree24kdmqvone
+8eightfivetwo
+onesevenseven5fourlrkkqtfkrmdlsmd
+jffvtzkbjnkdtvfsfthree431lrpgmtv
+bbvsptrzbone4tfnpgrfourvsix
+4seventhreekmxsz335eight
+eightbrcv5
+two2eightbppsplzgcfournine5seven
+fourthree5kcdhqzeighteightkbzszgv8nine
+rgxrddnnbv7rkt
+8ffmvpcsvfoureightqpnzzjksgchnine9jlgjqb
+two9tfvjqsgqsixnine
+bzn4two
+sqlfeighteight6hjddxzcone2
+3fivekmfnqlctddfivelcthnine
+twodn8
+one5six913lbrcc
+foureightmppchbgz8lqbzqbjztwo7cksqxns
+zvhzgfpkhkone93nine \ No newline at end of file
diff --git a/aoc2023/src/day10/input.txt b/aoc2023/src/day10/input.txt
new file mode 100644
index 0000000..230e945
--- /dev/null
+++ b/aoc2023/src/day10/input.txt
@@ -0,0 +1,140 @@
+.F-7F-..|-F-|F---7J7FLF-7F|FJ-LJ.7--F7-|77.|7J.FFLF7-FJ7.J-7-|.J.7.F7L7..FF.|F--F--|J-FFJFL7F7-LJFF-.7F|7.FF|7FF7FL7L--F--77-7F7.7.-F-J.JFLF
+FF-.F|-FLJJ.77F|F|-J77|---.7JLJLFJF-|7.F-7-F7.FFJLJ|.LF7-.|L7.J7LJ.L7FLFF7J|.F|.LJ-|.|.L7F.LFJ.||||FF|FLL--|L-J7--J|J7L||FJ-JLJL-JJ.L7J-L|7J
+.|.FF7-LJ|.FJF-77|FJ|||-L|-L-FJ7F-|-LF-L7|FJL7J-F7FFF7FJ.J-.LJ.F|J7.LJ.|L.||L7JF|.7J7.7.|L-FJ7LL-JJ7FJ7.LL7J7LFJFLF--F|JF|-|.-JJJ7L7-||7F---
+FF-F7JF|FFF..L-|-|JF-JF7LJ7.F7--JLJ..LFFJ||F-J|F777L|-7J-7|7|7.FJ-77..LL--7|7F7F|-J|77.FL-7FL-JJ|7JL-L-|7F|7JJLF77L|-7|.FJ-L7|J.LL-FF7F-77|J
+F|...FFJLLJFFLJ|JJJ|.LL77-L7LJJ.|L|-|-FL7LJL7JF7JL|.|7||.LF|-|FJJF|F7FJ.FJ|LF||F7.-FFJ-LJ|FJ.L---J.|L.L77-JJ|7|||--L7|J-.F7|.F7F7|FJ|F|J-F..
+--F-L|J..L.F77.L7--JL.L|L7F|J..FJFF-J7|FL-7FJF77JF7J..JJ-FJL-JF|.FFJLJLFF-F-F||||7L|LFFJF-7.7FL|.LL7|FFJL7JFF7F|L|-JJJ|.FL-L777L-.7L7FF7.|7|
+F7J.|.L|7.J7|FL.|.|.L|7|J--7-7-L.F|J|F77|FJL-JL7-||L77LLF-J-|-F..FL7.F-LJ7FF7||||F77JLJLL.J7.L-JFF.LJL7-|L|FL-FJF77|.FF-LJ.||J.FF7|FLLJL7.FJ
+FJ|F|FFLJ7L-L77L|-FF.|LJF7-L-77.7-|-FJL7FJF7F-7L7||7L|...|-LLL|7FF.LFFF.LF7|LJLJLJ|-7|.|7..J----F77.JF-JL--7JLFJFLJF-7J.L77FF.L-J|LJJ.F|JFJ|
+J.L--77|.|7|L|7|J7|.FF|7||7-|||7|-J|L-7LJFJLJFL-J|L-7|-F-7.F7JFFF-7--7-F-J|L-7F7F-JFJL-FJ--J7FJ.J||J|F|7LFJ||-L--7-7JJ.F-7-7.FJ.L|J|||J.F7J7
+|F.F|.7-|JLF7|.J7-77JF7F777.LJ|7L..F|FL-7L7F7F7.FJF-J-7|J|-||J.FJFJ7F7JL-7L77||LJF-7..F|J.|.F.F7FFF.-F77.7F-F77-F77L|77..L-7-.L-7L-LLLJLLJL7
+F7FL77|FLFL|LF7|J-|FFJLJL---77LF7LF7F7F-JFJ|LJL7L7L7JJFJ-JFF--7L7|FFJ|7-LL7|FJL7FJFJ7-F7..F7F-J|F7J7J||J--7L|L7FJL77F-|F7|FF-7-|J|L|7|-JJ|FL
+F-JJL--|7|.L7-J|LLF7L--7F---J-||F||LJ||F-JFJF--JFJFJ77F77F7L7FJFJL7L7|F7F7||L7FJL7L7F7||J7||L7FJ|L7F7||77||-L7|L-7L-7JLJL7JJJ.|J||||FJ7--FF7
+F7..7JLL7FL.|-JJJL|L77|||77||7F-7FJF7LJL-7|FJF7FJFJJF7LF-JL-J|FJF-JFJLJ||LJ|J||F7|FJ|LJ|.L|L-J|L|FJ|||L7LFF-7||F7|F-J77LF7JJL|7.|JJ-.F-.|.FJ
+7---F7|.FJJF7777.|L7L7FJ|F7-F7|FJL-JL-7F-J||L||L7L--J|7L----7||FJ|FJF--JL-7L-JLJ|||7L-7L7.|F--JFJ|FJ||FJ-FL7||LJLJL-7L7L||JFFF77|JJ.LJ7FL-|J
+|F-7F--7FF7|J|FL.F|L7|L7||L7|||L7F7F7FJL7L||FJL7|F7F7|F----7||||F-JFJF-7F7L--7F-J|L7F7L7|FJL7F7|FJL7LJL77LFJLJF7F7F-JF77||7F7||7LL.-LJFFJF7|
+J7F-J7.F|J7JFJLJ7LF7||FJ||FJ||L7||||||F7|FJLJF-J||LJLJL---7LJLJ|L7FJJL7||L---JL-7L7||L-JLJF7||LJL7FJF--J77|F--JLJ|||FJL7||FJ||L7.FFJ.-J--L-7
+.L|JF77LJF-.JF-JLFJ|||L7|||FJ|FJ||LJ|||LJL7F-JF7|L7-FJ|F77|F7F-JFJL-7FJ|L-----7FJFJLJF7F-7|LJ|F--JL7L-7F7FJL---7|LJFJF7||||FJ|FJ.|7FL..|7|L|
+--L-F.J|.--J-J7F7L7LJL-JLJ||FJL7|L-7LJL7F7||LFJ|L7|F7|FJL7|||L7||F--JL7L-7F7F-JL7L-7FJLJFJ|F-JL-7F-JF-J||L7F--7L--7L7||LJLJL-J|F--777F-7-FFJ
+||L7-7JF7L-JF|F7F-JF7F-7F7LJL7||L7|L--7||LJ|FJFJJ|||L7L7FJLJ|FJFJL7JF7|F-J||L7F7L--J|F7|L-JL-7F-JL-7|FFJL-JL-7L---JFLJL7F-----J|F-J7--FLJLL7
+.LJL.LJL|-L-F7||L7FJLJF||L--7L7|FJF7F7|LJF-J|FJ|FJ|L7L7|L7F7||FJF-JFJLJL-7|L7LJL---7LJL--77F-JL7J.FJL7L--7F7FJ-F-7F7F7FJ|F7F7F-JL7L|-7J.--LL
+7JFJ77FF|-JL|||L7LJF7F7||F--JFJ||F||||L-7L7FJ|F7L7|L|FJ|FJ|||LJFJ|FJF----JL7L7F-7F7|F----JFJF--JJFJF-JF7FJ|LJF7|FJ||||L7||LJ||F--J7L-.||.F-J
+|LJ-L-J7JJJ.||L7L--JLJ|||L--7|FJ|FJ|||F7|FJL7||L7|L7|L7||FJ|L-7|F7L7|F-7F7FJFJL7LJLJL----7L7L7F7FJFJF7||L7L7L||||FJ||L7|LJF-J|L-7F-7|FFJLJ||
+|F-FLL7|...FJ|7L---7F-JLJF--J||FJL7LJ||LJ|F7|||FJL7||FJ|LJFJF7|LJL7|||FJ||L7L-7L7F7F7F---JL|FJ|||FJFJ|||JL7L7||||L7LJFJ|F-JF7|F-J|FJ----.F--
+7JFL77J.-F-L7|F7F7FJ|F-77L--7LJ|F-JF-JL-7||||LJ|F-J||L7L-7L-J|L-7FJ|LJL7||FJF7L7LJLJ||JF7F7|L7|LJL7|FJ||F-JFJ|||L7|F7L-JL--JLJL--J|JJ|7J.J||
+F-|F|F-7L|-FJLJLJLJFJ|FJF7F7|F-JL-7|JF77|||||F-JL-7||FJF7|F--JJFJL7L7F-J|||FJ|FJJF--JL-JLJ|L7|L-7FJ|L7||L-7L7|||FJLJL7F--7F7F7F---J77L-.--7J
+|--J-J7LFF-L------7|7|L7||||||F7LFJL7||FJLJ||L-7F7||||J|||L7F--JF-JFJ|F-J|||FLJF7L7F--7F--JFJ|F-JL7|FJ||F7L7||LJL7LF7|L-7||LJ|L----777L7LFJ.
+.FLJLLF-F-7F---7F7|L7L7||||||LJL7L-7|||L--7||F-J|LJLJ|FJ||FJL--7|F7|FJL7FJ|L-7L||7LJF-JL-7FJFJ|F7FJ|L-JLJ|FJLJF7FJFJLJF-JLJF-JF7F--J-|JF-L-J
+|-J.-7.LL7|L--7LJ||FJ.|LJLJ|L--7L--JLJL7F7|LJL7FL---7||FJ|L-7F-JLJLJL7FJ|L|F-JFJ|F-7|F7F-JL7|.||LJFL--7F7|L7F7|LJJL-7FJ7F7FL--J|L---7JF|FJLJ
+F7---F-F7||F7FJF7LJL-7L---7|FF7L----7F7LJLJF7FJF7LF-JLJ|7|F-JL-7F----JL7L-J|F7L7|L7|LJ|L-7FJL7||F-7F7J|||L-J|LJF7.F-JL--JL7F--7|F7F-J-JL-.L|
+L7.|.|.|LJLJ|L-J|F7F7L---7||FJ|F-7F7LJL7F-7|||FJL7L-7F-JFJL-7F7||F7|F7FJF--J||FJ|FJ|F-JF-J|F-J||L7LJL7LJL7F7L-7|L7L-7F7F7FJ|F-JLJLJLL|7L7|F7
+LJ7L-7FL7F-7|F--J|LJ|F--7LJ|L7|L7||L7LFJL7LJLJL-7|F-JL7LL7F-J|LJLJL7|LJFJ.F7||L7|L7|L-7L-7||F7||FJF--J|F7LJ|F-J|FJF7||LJLJ.||F7F7F7-F-7-L-JJ
+--77L-F-J|FJLJF7FJF-J|F-JF7L7||FJLJFJFJF7L7F7F-7||L-7FJF7||FFJF7F--J|F7L7FJ|||FJ|FJ|F7|F-J|||LJ|L7|F7F7||F7|L7FJ|FJ||L-7F-7|LJLJ|||.|FJF|FJ|
+J|.F--|F7|L--7|LJFL--JL--JL7|||L7F7L7L7|L-J||L7|||F7||FJ|||FJFJLJF7-LJ|FJL7|||L7|L7||||L-7||L-7L7||||||||||L7||FJL7||F-J|FJ|F--7LJL-JL-77..F
+LF-.LFLJ||F-7LJLF7JF7F7F---JLJL7LJ|FJFJL7F7||FJ||LJ|||L7|||L7|F7FJ|F7FJ|F7|LJL7|L7|||||F-J||F7|FJ|||LJ||LJL-J|||F7||||F7|L-JL7-|F-7F7F-JJ-FJ
+.F-7-7.LLJL7|||FJL-JLJ|L------7|7FJL7L-7|||||L7||F-J||J||||-|||||FJ|||FJ||L--7||FJ||||||F7|||||||||L-7|L-7F-7LJLJLJLJLJLJF7F7L7|L7||||-J..77
+FLF|7LFJ-|F|L7FJF7F7F7|7F7F7JFJL7L-7L-7||||||FJLJ|F7|L7|||L-J|||||FJ|||FJL7F7|LJ|FJ|||||||||||||FJL7FJ|F-JL7L7F-7F--7F7F7|LJL-J|FJLJLJ.L77JF
+F7FL|.||.LFJFJL-JLJLJ|L-JLJL7L-7L-7L-7||||LJ|L7F-J|LJFJ||L-7FJ||||L7|||L-7LJ||FFJ|7LJ|||||||||||L7J|L7LJF--JF||FJ|F7LJLJ||F7F7FJL-7.J.L.|L77
+LF.LJ-|-F-L7|F7F7JF7J|F7F-7FJF7L7FJF-JLJ||-FJFJ|F7|F-JFJ|F7|L7||||FJ|||F-JF-JL7L7|F7-||||||||LJ|FJFJFJF7L---7||L7LJL--7FJLJ|||L---JJ-JLFF|L-
+FF7.F.|.F7J||||||FJL-J|LJFJL-JL-JL7L---7LJFJFJFLJ||L7FJFJ|||FJ||||L7|||L-7|F7FJFJLJL7||||LJ|L-7|L7L7L7|L----JLJJL-----JL7F7LJL7F-7JL-J.FJJ-J
+FL|-JJ7F||FJLJLJ|L-7F7L7FJF----7F7L----JF-JFJF7F-J|L|L7L7|LJL7|LJL7||||F7|LJ|L7|F-7FJ||||F-JF-J|FJ||FJ|F---------------7|||F-7LJFJF-J|.F|FF|
+FJLFJ|F-JLJF---7|F-J|L7|L7|F7F7LJL-----7|F7|FJ|L-7L7|FJ|||F--JL-7FJ|||||LJF-JFJ||F|L7||||L7FJF-J|F-JL7||F--------------JLJLJF|F7L77F-7JJ|-LF
+L.L|F-L7F-7|F--JLJF-JLLJLLJ|LJL--7JF---JLJLJL7L--JFJ|L-7||L-7F7FJL7|||LJF-JF7L7|L7|FJLJ||F|L7L-7|L7F-JLJL--------------7F-7F-J||FJJL-J|7|7F|
+.F--|LFLJ-||L-7F-7|F7F7FF--JF7F-7L-JF7LF7JF-7L---7|FJF7|||F-J|||JFJ||L-7L-7||FJ|FJLJF-7||FJFJF-JL7LJ7F7|FF7F7F-7F7F----J|FJL--JLJ|LJ7.7FLJ-7
+LLL-J7L7L-LJF-J|FJ||LJL7|F--JLJFJF--JL7|L7|FJF---J|L-JLJLJ|F7||L7L7|L7FJF-J|||7|L---JFJ||L7L7|F-7|F--JL7FJLJ|L7LJ|L-----JL7-|77F-7-JFF-7-F7-
+|L|-JL|7|L|.L--JL7|L7F7|LJF---7L7L7F--J|FJ|L7L---7|F7F---7LJ||L7L7|L7|||L-7|||FJF---7|.LJ-|FJ|L7||L---7|L--7L-JF7L-------7L-7F7L7L7JLL-J--JJ
+7|F7|FJ77-F------J|LLJ|L--JF-7|J|FJL---JL-JFJFF7FJLJLJF7FJLFJ|F|FJL7||L7F-J|||L7L--7LJF7F-JL7L-JLJF---JL--7L---JL-------7L--J|||L7L7FLL|7LFJ
+7-FJLJ.F77L7F7F-7FJF--JF--7|FJL-J|F--7F---7L--J||F7F7FJ|L-7|FJFJL7FJ|L7|L7FJLJJL7F7L--J|L-7FJF7F7FJF--7F-7L---7F7F-7F-7FJF7F7||7FJFJ-.F-L7|7
+L|||.|-LL-|LJ||FJ|FL---JF-J||F7F7|L-7|L--7|F7F7|||||LJ-L7FJLJ-L7FJL7|FJ||||LF7F-J||F7F7|F-JL7|||LJFJFFJL7L-7F7LJ|L7||JLJFJLJLJL-JFJF|-L|FJJJ
+77|7-J-|FFL7FJ|L7L7|F---JF7|LJ||||F-J|F-7|||LJLJ|||L7JF7||F----J|F7LJL7|FJL7|LJF7|||||||L---J||L-7|F7L7FJF-J||F7L-JLJF7FJF-7F7F--JLJ|FFF-L|J
+LF7|F-7F-JFFL-JJ|FJFJF7F7|LJF-J|LJL-7|L7|||L---7||L7L7||LJL-7F-7LJL7F-J|L7FJ|F7|||||||||JF7LFJL7FLJ|L7LJFJF7|LJ|F7F7FJLJFJ.LJLJF77JL-7-F7.|.
+.LL-JJ.FJ7LLL-|LLJ-L-JLJ||F7L-7|F---JL-JLJ|F7F7||L7L7LJL--7FJ|-L7F-JL-7L7LJ7||LJ||||||||FJL7|F-JF-7L7|F7L-JLJF-J|LJLJF--JF7F7F7|L7.||JLL7-L7
+JF|J.L7|.7-LLF-7F7FF7F--J||L-7LJL--7LF7F7JLJLJLJL-J-|F----JL7|F-JL---7L7L--7||F-J|||LJLJL-7|||F7L7|FJ||L--7F-JF-JF---JF7FJ||||||FJ7|JFF7-J.7
+.LJJFLLL---|-L7LJ|FJ|L--7||F7L-----JFJLJL------7F7F7LJF---7FJ||F7F7F7L7L7F7||||F7|LJF-----JLJLJL-J|L7|L--7LJF7L7FJF-7-|||FJ|||||L7F7-|--J-F-
+|J.F|-JJJLF77FL-7|L7|F--J|LJL-7F7F-7|F--7F7F7F7LJLJL--JF--J|FJ|||||||FJF||LJ||||||F-JF----7F--7F-7L-JL7F7L--JL-JL7|FJFJLJL-JLJLJFJ||FL.|.-7L
+|7FJLF7L|F.L|7F7|L7|||F--JF---J||L7LJL77LJLJLJL7F-7F---JF7FJ|FJ||||||L7FJL7FJ|||LJL7FJF--7||F-J|LL---7||L---7F7F7LJL7L7F7F---7F7L-JL7J7FF7|J
+JJ-LF|-77.FF7FJ|L7LJ|LJF-7L-7F7|L-JF-7L-------7|L7||F7F7||L-JL7|||LJ|FJL7FJ|FJLJJF-J|FJF7LJ|L-7|F----JLJF--7LJLJ|F--JFJ|LJF7-LJL----J7L-FJ7J
+|-L-J.L|LJF||L7L7L-7L7FJFJF7LJ||F--JLL--------JL-J|LJLJLJL-7|L|||L77||JFJL7LJF---JF-JL7|L7FJF-J||F-7F7F-JF7L---7|L-7FJFJFFJ|F------7|F.|JLJ7
+L.LL7J-JFFFJ|-L7|F7L7|L7|FJL-7LJL--7L|F7F7JF--7F7FL7F-7F--7L-7LJL7L7||7L7FJ|-L7F-7L7F-J|FJL7L-7|LJ-LJ||F-JL----JL-7LJFJ-FJFJ|F--7F7|-J7F--J-
+|-F-||7F--JFJF-JLJL7||F||L--7L7F7F7L7FJ||L7|F-J||F7LJJLJF7L--JF7||FJ||7FJL-7.LLJJL7|L--J|F-JF-J|F7F7FJ|L-7F------7|F7L-7|FJFJL7J||LJ|7FJ|.LJ
+.JJ7LFLL7F7|JL--7F7LJL-JL-7-L7LJLJL-J|FJ|FJ|L--JLJL7F7F-JL----J|FJL7LJ-L7F-J7.LL-JLJF---JL7.L--J|LJ|L-JF7||F7F---JLJL7FJ||||F7L7|L7LL-J.JF|J
+|--7|.L.LJ|L-7F7LJL---7F7FJF7L-------JL-JL-JF------J||L7F------JL-7|J|LL|L-7-|F--FF-JF--7FJF---7L-7|F7FJLJ||LJF7F---7LJFJL-J||FJL7|||||F.FFF
+F.||-|7.F7L-7LJL7F7F7|LJ||-|L---7F7F7F7F---7L7F7F7LFJL-JL-----7J|.||L|7L|F7|-JJJ.LL--JF7LJLL--7L-7|||||F--JL7FJLJF--JF-JF-7FJLJJFJ|J77-7FL7J
+LJ-FFJJ.||F7L--7LJ|||F--JL7L7F-7LJLJ|||L-7LL-J|LJL7|F--7F-----J-L7LJ7-|JLJ||.LJ|F|LFF7||F77F-7L-7||LJLJ|F--7LJF-7L---JF7L7|L--7-L7|-FL---L-J
+7F-J|7.FJLJL-7FJF7LJLJF7F7L7LJFJF7F7LJ|F7L----JF-7LJL-7|L------7LFJ|.-JJLLLJ7L-7-F--JLJLJL-JFJF7|LJF--7|L-7|F7L7L-----J|FJL7F7L7.LJ7-7J|F|.L
+.|L|F-7L----7|L-JL7F7FJLJL7L7FL7|LJL-7|||F7F-7FJFJF-7FJL--7F---JFL7-7.F--|-JJFL.LL--7F-----7L-JLJF-JFFJ|F-JLJ|FJ|F-7F7-LJF7LJL7L77J|J7-77|.|
+L.|J|FJFF---J|F--7LJ|L7LF7L7|F7LJF7F7||||||L7|L7L7L7|L---7LJF--7F7J7FFJ7F7|J.|.|JLF7LJ7F7F7L7F7F7|F-7L-JL---7LJF7L7LJL--7|L--7|FJ-.F-JJFJF-J
+|.7|L7JFJF7F7LJF7L--JFJFJL-J|||F-JLJLJ||||L7||FJFJFJ|F7F-JF7L-7LJ|J7FF-J7|L--L77F-JL---JLJL-J|LJLJL7L7F-----JJFJL-JF-7F7LJF--JLJL|7|.FF--J-|
+J.LLJF7L-JLJL-7|L7F7FJFJF--7LJLJF--7F7LJLJ7LJ|L7L-J.LJ|L-7|L7FJF-J-7LJ-JL|L--77FL7F7F---7F7F7|F-7F7L7|L-----7FJF7F7|7LJL-7L---77F7LL-F7J7.F7
+L.|L-|L7F7JF--J|FJ||L7L7|F-JF7F-JF7LJL77F77F7L-JF--7F7L--JL7LJFJ||-L-J7.F-.|--7FFJ||L7F-J|||||L7LJL-J||F----J|FJLJLJF---7L----JF-7JLJLJ.FFLJ
+JF|FLL7|||FJF-7|L7||FJLLJ|F7|||F-JL---JFJL-JL7F-JF7|||F77JF|F7L-77-F7L-FF.FF7.--|FJL-JL7FJ||||FL--7F7L-JF7F7||L----7|F--JF--7-F7-L-.7--7J7JJ
+LL|FF7||||L7|FJL7|||L7F7FLJ||||L7F---7.|F----JL7FJ|||LJL7FFJ|L--J7-|J7LL-.LJ--..LJF----J|F||||F---J|L--7|LJL-JF----J|L---JF-JFJL77LFJ-||J|J7
+|LLFJLJLJL-J|L7FJ||L7||L---J||L7||F--JFJL----7FJL7LJL7F7L7L7L7F7F7J.FFFJL-JJ|LJ-L|L-7F7FJFJ|LJL----J-F7LJF----JF--7||F----J.FJF7L-7J.FF|-L-J
+|7.L-7F--7F-JFJL7LJ-LJL-7F--J|FJLJL---JF7F7F-J|F-JF-7||L-J-L7||LJ|J-FJ|7F|..F7JJLLF-J|LJ7L-JF----7F7FJL--JF----JF7L-JL---7-FJFJ|F-J|LJ7LJJ.L
+.FLLL||F-JL-7L-7L-7F-7F7LJF--J|F7F-----JLJLJF-JL-7L7|||LF7F-JLJF-JFF7JLL7|F-7J|||LL--JF-7F7.L-7F7LJLJF-7F-JF--7FJ|F7F7F-7L-JFJJLJ.|7|||.F-7|
+F-.L.LJL7F7FJF-JF7|L7LJL7FJF--J|||F------7F7|F--7L-JLJL7|LJF7F-J|7L||F7JL77.LLF--J|LFLL7|||F-7LJL----JLLJF-JF7LJFJ|LJLJ|L-7FJ7.F7FF-F7|F-F|J
+L|.|7|FFJ|||JL7FJ||-L--7|L-J.F7||LJF7F7F-J|||L-7L7F7F-7LJF7||L--77J|LJ|-F7F-FFLJ|-F-7F-JLJLJFJF7F7F---7F-JF-J|F7L-JF7F---7|L-7FJ|FF7|L7-7FJ7
+.|.-7-F|FJ|L77LJJ||F---JL----JLJL--JLJLJF7|||F-J.LJLJ7|F-JLJ|F-7L77L-7|.LLJF-77JFFL7|L-7F7F7L-JLJ|L--7|L--JF-J|L-7.|LJF7FJL--JL7L-JLJFJF7.J7
+L7.|-F-J|FJFJJ-LLLJL7F7F7F---------7F-7FJLJLJL---7F7F7LJF--7||FJFJF--JL7L|7|FJF7FF-JL-7LJLJL----7|LF7||F---JF7|F-JFJF-JLJF7|F7||F----JF|JF7|
+.J-.L|F7||FJJ|7-|.J|LJLJLJF-----7F-JL7||F7F7F7F-7LJLJL--JF-J||L7|7L-7F-J-FFJ|FJL7L---7|7F7F77F--JL-JLJLJF7F7||||F7L7|F7LFJL7|L7||F-----77LL|
+-J.JJLJLJLJ7.|FFJ7-F------JF---7|L---JLJ|LJLJ|L7|F-----7FJF7LJLLJ-LFJL7J-FL7LJF-JF---JL-JLJ|FJF7F-7F----JLJLJLJLJ|FJLJL7L7FJ|FJ|||F-7F-J7.JJ
+LFL7L||JL|.FJJ7J.7.L-------JF--JL------7L---7L7||L----7LJFJL7F7-|LFJF7L7F7FJF7|F-JF-------7|L-JLJFJ|F-----7F-7F--J|F--7L-JL-JL-JLJL7LJ|L--|.
+F-L7.LJ7LJL|JL7FFJ7LLF7LF---JF7F7F----7L----JJLJL7F7F7L--JF-J||F-7L-J|FJ|||FJLJL--JF------JL----7L-JL----7LJFJL--7|L-7|F7F7F7F7F--7L7L7-LFL-
+|.||.FF7.F-L-F7F7F-F-J|FJF--7|LJLJF--7L---7F-7LF7LJ||L7F--JF-J||FJF7FJL7|||L---7F7LL7F-7F7F---7FJFF-7F7F7L-7L7F-7LJF-J|||||||||L-7L-J.L7J.|7
+FJF|JF|JFL-J-|||L7-L-7LJFJF7LJF7F7L-7L----J|FJFJL7F|L7|L--7|F7||L-JLJF7LJLJF7F-J||7LLJFJ|||F-7||F7L7||LJL--JFJL7L--JF7LJLJLJ||L7FJF7J7||FF.-
+|L-||-J7JL7LL|LJFJF77L7FJFJL--JLJL--JF7F---JL-JF7L7|FJL7F7|LJ||L-----JL7F--JLJ|FJL7J.FJFJLJL7LJLJL-JLJF7F--7|F7L----JL7F7F7JLJFJ|F||-J|-7J-J
+FFLJ77.77-JJJ|F7L7||F7||FJF7F--------JLJF------JL-JLJF7LJ|L7FJ|F7F7F7F7||F---7FJF-JF7L-JF--7L7F7F7F-7FJLJF7||||F---7F7LJ||L--7L-JFJL7.|.J|||
+L-77L-7|-J..-LJL7|||||LJL-JLJF----7F7F7FJF----77F--7L|L-7|FJL7||||LJ||LJLJF7FJL7|FL|L--7L-7|FJ|||||LLJFF-JLJLJ|L7F7|||F7LJF--JF--JF-J.|..FL7
+|L---|J.L.77-FF7|||LJ|FF7F-7FL7F-7LJ|||L-JF--7L7|F7|FJF-J||F7|||LJF-JL-7F-JLJF-JL7-L--7L--JLJFJLJLJF7F7L---7F7L-J||LJ|||F7L---JF-7L7F7--7.L|
+F-J--JJ-L|L|-FJLJ|L-7|FJ||FJF7LJFJF7LJL-7FJF-JFJ||LJL7|F7LJ||||L7FJFF--JL-7F7L7F-JF-7-L7F---7|F7F7FJLJL77F-J|L7F-JL-7LJ||L7F7F-J|L-J||JL-7.|
+J|.FJJL.LJ-J.L--7L--J|L7|||FJL77L-JL---7LJ7|F7L-JL7LFJLJL-7||||FJ|F7L-7F--J||FJL-7L7|F7LJF7FJ||LJLJF7F7L-JF7L7||F---JF7||7LJ|L------J|77L|--
+LF7FF7-7FF7L-J.LL7F-7L7|||||F7L-------7L--7LJL-7F-JFJF7F--J||||L7LJ|F7|L7F7|||F--JFJLJL7FJ|L-JL7F-7|||L7F-JL-JLJL---7||LJF7|L7F------JJ-F--7
+.L-7L7-L-||7|F7F-J|7L7LJLJ|LJL-7F7F7F7L7F7L77F-JL7FJFJLJF7FJ||L-JF-J|||FJ|||||L--7L---7|L7|F7F7LJFJ|LJ7LJF--7F------J||F-JL-7|L----7F|J-JFF|
+FFLJJ|L|-F-7-||L7FJF7L---7L7F7LLJLJLJL7LJL7L7L-7FJL7L7F7|LJFJL-7FJ7FJLJ|||||||F-7|LF7FJL7|||||L7|L-JF----JF7|L-------JLJF-7FJ|F-7F7L-777L-FJ
+F--J-L-F-JFJ-|L7|L7|L----JFJ||F7.F7F-7L--7L-JF7||F-JFJ|||F-JF-7|L-7L--7L7|LJ||L7LJFJ|L7FJ||||L7|F7F7L-----J|L7F7F-7F-7F7L7|L7|L7LJL7FJ.L-L-F
+|-L|||F|F7L7.L7|L-JL-7F7F7L-JLJL-JLJL|F--JF7L||LJL7FJJ|LJ|F7|FJ|F-JF7-L7|L7FJL7L7FJFJ-||FJLJ||||||||F7FF---J-LJLJF|L7||L7||FJL7L-7L||LJ7F7J|
+|.|L-7FLJ|FJF-J|F7LF7LJLJL---7F7F---7LJF7FJ|FJL7F-J|F7L-7||||L7|L-7|L-7|L7||FFJFJL7||FJLJF--JFJLJ||||L-JF--------7L-JLJ7|||L-7|F-J.LJ--F||LL
+|-FJLF---JL-JF-J||FJ||F7F---7LJLJ7F-JF7||L7|L7FJL-7LJL-7|LJLJFJ|F-J|F-JL7||L7L7L7FJL7L7F-JF77L7F-J||L---JF-------JF-7F-7LJL--JLJJ.FJ-F-JLF-J
+|-L.FL-7F-7F7L7L||L7|FJ|L7F7||F7F7L-7|LJL-JL7|L7F7L7F7FJ|F---JF|L7J||F7FJ||FJ-L7|L7FJFJL-7|L7FJL7FJ|F----JF7F7F7F7L7LJFJFF7F7F7|F----7JJLLJ.
+|7|FF-L||JLJL7|FJ|FJ||FJFJ||L-JLJL7FJ|F-----J|FJ||FJ|LJFJL7F7F-JFJFJ||||FJ||F7FJ|FJL-JF--J|FJL7FJL7|L-----JLJ||LJL-JF7L--JLJLJL-7JJ-F|...JLF
+J-7-|JFLJF7F7||L7|L7||L7L-JL-----7|L-J|F---7FJL7|LJFJF7|F-J||L-7L-JFJ|||L7||||L7||F--7L-7FJL--J|F7||F-7F7F7F-J|F----JL----7F----J-|.J-|..||.
+J.L-LJ-LFJLJLJL7||FJ||FJF7F7F-7F7|L-7FJ|F--JL-7|L-7|-|||L7FJL7||F--JFJLJFJ|LJ|FJ|LJF7|F-JL--7F7|||||L7LJLJLJF7|L-77F77F7F7LJ-F7-F77FL7J-LJ--
+LF.|LJ|LL-----7|||L7|||FJLJ|L7LJLJF7LJ-|L-7F--JL-7|L-JLJFJL-7L-JL7F7|F--JF|F-JL7|F7|||L--7F7|||||LJ|7L7F-77FJLJF7L-JL-JLJL---JL7||JFJ|-|-|.J
+F|--.JJLLF----JLJL-JLJ|L--7|-L7F-7|L7F7L7FJL--7F7LJF----JF-7L--7FJ|||L-77FJL-77||||||L7F-J||LJ|LJF-JF7LJFJFJF7FJ|F7F----7F7F7F7||L7LF7F||F-|
+LJFL-|L7.L--7F-7F7F7F7|F7FJ|F7LJ-LJFJ|L7|L7F--J|L--JF---7L7|F7FJL7|LJF-JFJF--JFJ||||L7|L7FJ|F7L-7|F7|L7FL-JFJLJLLJLJJF-7LJLJLJ|LJFJ-.J7LL7L-
+|.|J-7-J-F--J|FJ|LJLJ||||L7LJL-7F7FJ7L7||FJL--7|F7F7|F--J-||||L7FJL7FJF7L7|JF7L7||||FJ|FJL7|||F7|||||FJF7F7L7F--7F7F7|FJFF---7L-7||L-FL--|7J
+LFJ.||..FL---JL7|F---JLJ||L---7||LJF7FJ||L-7F7|LJ||||L7F7FJ||L7|L7FJL7|L7|L7|L7||||||FJ|F7||||||||||||FJ||L7LJF-J|||LJL--JF--J-LLJJ7FFJ-FF-7
+FJFFF-F77LF---7LJL----7FJF7F--JLJF-JLJ-|L-7|||L7FJ|LJFJ|||FJL7||FJ|F-JL7|L7|L7LJ||LJ||F||||||LJ|||||||L7LJFJF7L--J||F-----J.F77F7|LF7F-7LJ||
+LF|7-L|L-7L--7L7F7F---JL-JLJF-7F7L-7F--JF-J|||FJL7L7FJFJ|||F-J||L7|L7F-J|FJ|FJF7||F-JL7LJ|||L7FJ|||||L7L-7L7||S7F7LJL-------JL-J|FFF-JFJ|-7|
+LJJ|J|L7FJ-F7L7||||F7F7F---7|FJ||F7|L7F7L-7|||L7||FJL-J-LJ|L-7||FJ|FJ|F-JL7|L-J|||L7F-J|FJ|L7|L7|||||.L7FJFJ||||||F7F-7F--------JF7L7FJJ||LL
+F|L|LF-JL--J|7||||LJLJLJF--J||FJ|||L7||L7FJ|||FJFJL----7F-JF-JLJL7||FJL-7FJ|F7FJ|L7||JF-JFJFJL7|||||L7.|L7L7|||||LJ|L7|L---------JL-J|--.|||
+-|JJFJF--7F7L-JLJL------JF7FJ||FJ||FJ||||L7|||L7L-7F7F7|L-7L--7F7LJ|L7F7LJFJ||L7L7||L7L7FJ7|F7|||||L7L7L7L7|||||L7FJFJL----------7F7FJFF7J77
+LJ.LL-JF-J||F7F-7F------7|LJFJ|L7|||||L7|FJ|||FJF-J|LJ||F7|F-7LJ|F-JFJ||F7|FJ|FJFJ|L7L7|L-7LJ|||||L7L7|FJFJ|||||FJL7L-----------7LJ|L--7J.77
+FF|7LF7L7FJLJ||FJ|F-----JL77L7|FJ|||FJFJ|L7||||FJF7L-7LJ|LJL7|F7||F7L-JLJ||L7|L7L-JFL7||F7L-7|||||FJFJ|L7|FJ|||LJF-JF-------7F-7L-7|F--JL|L-
+FL|JFJL7LJ-F-J|L-JL7F7F7F7|F-J|L-J|||FJF|FJLJ||L7||F7|F7L-7FJLJ||LJL7F7F-JL-JL7L7FF--J|LJL7FJ||||||FL7L7||L7|||F7L-7L------7|L7L-7|LJ7-J7|.|
+LFL7L-7L---JF7|F7F-J|||||LJL-7|F--J||L-7||F--J|FJ|LJLJ|L--JL--7|L7F-J|||F--7F7|FJFJF7FJLF7||FJ|||||F-JFJLJ-|||LJ|F-JF7F----JL7L7-LJJ.F-J|JF-
+FJ|L|LL7F7F7||||LJF7|||||F---J|L--7|L7FJ|||F-7|L7L-7F-JF7F7F7FJ|FJL7FJ|LJF7LJ|LJ7|FJ|L-7||||L7|LJ|||F7L-7F-J||F-J|F7||L-----7L-J-JJ|-7|J|J|J
+J7|LFJFJ|LJLJ||L7FJLJ||LJL-7F7L--7|L7|L7||||-|L7L7FJL-7|||||LJFJ|-FJL7L7FJ|F7L--7LJFJF7LJ||L7||F-J|LJL7FJL-7|LJF-J|||L7F7F-7L---7J.L7||7|-77
+FJJF77L7|F---J|FJL7F7||F---J||F7FJ|FJ|FJLJLJFJFJFJL7FFJ||||L-7L7L7|F7|FJL7|||F--JF7|FJL7FJ|FJLJL-7L-7FJL-7FJL-7L-7|||FJ||L7L----J77-J7|L|J.7
+F-FJL|-||L7F-7|L--J|LJ||F7F7|LJLJ-||JLJF7FF7|FJ||F7L7L7|||L7FJFJFJ||||L7FJLJ|L-7FJLJL-7|L7|L7F---JF-J|F7FJ|F7FJ|FJ||||FJL7L--7F77J|FFFJ7|7.|
+L7JL|L-LJ7||FJ|F---JF7||||||L--7F7|L--7|L-JLJL-7LJ|FJFJ|LJL|L7L7L7||||FJL--7|F-JL-7F7FJL-J|FJL-7F7L-7LJLJFJ||L7FJFJ||LJ|-L7F7LJL7-F|--LJJLF-
+-|||.LLL7F||L-JL--7FJ||LJLJL7F7LJ||F7FJL7F-7F-7L-7LJFJFJJF-JFJ|L-JLJ|||F-7FJ|L7FF-J||L---7||LF-J||F7L7F7-|FJL-JL7L7|L--7F-J|L7F-J-|LJ.LJ7.||
+LL7L-J|-7-LJ|-F---J|FJL--7F-J||F7||||L7FJ|.||FJF-JF-JFJF-JF7L----7F-J||L7|L7L7L7L7FJL7F7FJLJFJF7|||L7LJL7|L--7F-JFJL-7FJL-7|FJ|JJ.L-7|J.7-F|
+.|LFL7JF-JL|7FL----JL7F--JL7FJLJ||LJ|FJL7|FJ||FJF-JF7L7L-7||F7F7FJL-7|L-J|FJFJFJFJ|F-J|||F7J|FJ|||L7L7F-JL7F7|L-7|F7L||J7FLJ|FJ--|7LFJ.J|FJJ
+FF77-J7FJFL7-L.F-----J|F7F-JL7F7|L7FJ|7FJ|L7||L7L7FJL7|F-J|||||||F--J|-F7LJFJFJJ|FJ|F7||LJL7LJFJ|L7|FJL-7FJ||L7FJLJL7||FL|.LLJJ-J|F7L|FJ7JL7
+|JFJ-F7JFFF7.LLL--7F-7|||L7F7LJ||FJL7L7L7|FJ|L7|FJ|F-J||F7|||LJ||L7F7L7|L-7L7L-7||FJ||||F-7L-7|FJLLJ|F--JL7||FJ|F7F7|||JJL7|L-|-77L77|7-F7.|
+7-L7.FFJL-|L-FLLJ|||-LJ|L-J|L7FJLJFLL7|LLJL7|FJ|L7||F7||||||L-7||FJ|L7LJF7L7|F7||||FJ||LJ7|F-JLJ-LF-JL777||||L7||||LJLJJ7-LLJF7LJL|J7LF-|7.7
+|.JJF|J.L-JJF-7..FLJ77FJF7FJL|L--777.|L7JL-LJL7L7LJLJ||LJ|||F-J||L7||L7FJ|FJ||||LJ||FJL7-FJL-7.L--L7F-JJ-FJ|L7|||LJJL|.LF7.F|J|7J.J7|JL-F-JJ
+|7|F7J-F--7-JL|--|JJF-JFJ||F-JF--J||-|FJ.J7J.FL-JF-7FJL-7|||L-7||FLJF-JL7|||||||F7||L7FJFJF-7L7-7LL||LF|||FJ-LJ|L7JFF7J.LJ-|7-F-.7J7..F7LF77
+LJ|.LJF-7.J7.|||F|-FL-7L7||L-7L-7JFLFLJJ7F|7F|FF7L7LJF7FJLJ|F7|LJF--JF7FJLJFJ||LJ|||-||FJFJ-|FJ.|77LJ7-F-LJL-.LL-JFJ.|JL.|7LJ.JL-LJ|F.F7JL7J
+L7|7.FL.F7LF-LJJJ|..L-L-J|L7FJF-JF77.L|JFJ.FF--J|FJF7||L--7LJ|L7LL-7FJ|L--7L7||F-JLJJLJL7||L||7.LF-JFLLF7.LLJ-7L7LJ-L7-7F-77|FJ.LJ7|.7||F-F.
+F7J|-LLJF-7L-||7F7-7F-JFLL-JL7L--J|7|-|LFLJ-L--7LJFJ||L--7L-7|FJF--J|FJF7FJJ|||L77-LFL-LLJJ-LJJ77.FL|.F77F||LL7LJ7J|F|JL--J-F7--7FJ.L|F-7FJ7
+FL7|L|.F7JF-.LFL|LJFL|-FJJ|LLL7F-7L-7|LF77||LL-|F7|FJL7F7|F-J||F|F-7||FJ||JL||L7L7J7|L.L|7.L||LFFJ7-777||LJF7|LJF--7---F|7L7LJ7|LJ-F.LL7J7L|
+L.F|-L--F-|JFF7F|--7.L--..J.LFJL7L-7|7FJJL|-7J.LJ||L7FJ|LJ|F-JL7LJFJ|||FJ|JFLJJ|FJ-J7FF---|F77.FJFL.LF-LJ-LFJL-7-7FF7J7|L-.LJLF--|.-.|JL7F7L
+.-J|||FFJ-JFFJ.LJLL-JFL|LFJ7J|F7L7LLJFJJJ-|.7.-7FJ|FJ|-L7FJL7F7L-7|FJ|||FJ.7||LLJJJJ|L7LLJL-JJ.JFJ7J.L|7J.FL|.7J.F7LJ.JL777.|F.LFLJJF-7F|LLJ
+7F-L|-7L|JLF|7JF|.F|.L7FJJ.FFLJ|FJFJ.LJ.7|F-J-JFL7|L7L7L||F-J|L7FJ||-||LJJ..77|-J-.-FLJ7F-7F|7||7-L.FJLJF7J.J.LJ|L|7J-|F.F-FLJ||.|J.7.F-L.||
+||7JL-JJL7.F.-.FLF-|-7L7J||-|J-LJ-L-F.|FJ-|-|LLJ.LJJL-J-LJ|F-JFJ|F|||LJ-LJ--JLF-FF7L|J|7|F|LFJL7|F|-|-F-JJ..|.|..FL-.L-.FF--7L|-F7.L|.-J7LL7
+7.77.FL-JJFFJ7.77JLL.F7L7FF7-7.LJ.FF77F-J||.||.F|J7F||JFJLLJ-LL7L7LJ-L.FJ77.|.JLLL-JJF--|F|-L-FF7LJ.|||LLF-77-L7--7LFF-7.|L7|-----7.J-FF7|-|
+.LLLF|F77F-JLF7-J-|LF.F-F|J|L7-JJ-J-J-7-7-7|JJ-|7-J-LF7L|-J|7|FL-JLJJ|7FJF7LJ.L-7.L7-L|FJJJ-|7|L|-J-J-77LL.F-7-|7LF.7JL-F7|-|LJ..F|7-F7LF7FF
+FJ|L7JLJ-L...L|J..J7L7|FJL7--7|..||||FL--7L7.L-||.JJFJJ|F-LJ7|JJ||LF7L7JJ|L|.|.LFJLL7.-|JJ|FF-|||FL-JFJ|F7-|-J--|7LFJ77F|JL7L7LF-|FJ7J|.|FJ-
+J.FJ|LLJLL-|-.LL-L-|LJ-LL-L-JLL-.-JJL7-7J|LJJ7.-|JJ--L-J.FLJ-|L7--.-J-L--JLLFJL-FJ.|J.LJJLLLJ-J-L7-LL7JL-|JLJ-LLLJ-LJ|JFF7J..-7J-LJ..7.FFJJJ \ No newline at end of file
diff --git a/aoc2023/src/day11/input.txt b/aoc2023/src/day11/input.txt
new file mode 100644
index 0000000..c86cc92
--- /dev/null
+++ b/aoc2023/src/day11/input.txt
@@ -0,0 +1,140 @@
+..............#..........................#.....................#.....#...................#..................................#...............
+.............................#.........................................................................................#..........#.........
+#......................#.................................................#.....................#...........#................................
+......#..............................#........................................#.............................................................
+................................#...........#.........#.............................................................#.....#..........#......
+..................#...................................................#...................#.................................................
+............................#...............................................................................................................
+........#.....#...............................................................................#...............#.............................
+#...................................#.....#.........................................#.....................................................#.
+..........................................................................#........................#..............#........#........#.......
+.....#.....#.............#.......................#..........................................................................................
+..............................#.............................#....................#......#...................................................
+............................................................................................................................................
+.......................................#....................................#........................................#......................
+.......#................................................#..............#............................#.......................................
+................#.................................................#.........................................#...............................
+.....................#.........................#.....................................#......................................................
+...............................................................................................#..................................#.........
+.#......................................................................................................................#...................
+........#...................................................................................................................................
+...............................#...........#.............#...............................#...........#...................................#..
+.............#.....#.............................................#.....#......................................#.............................
+............................................................................................................................................
+.......................#...........#.................#..............................#....................................#..................
+...............................................................................#.....................................................#......
+..#......#.............................#............................#..................................#........................#...........
+.............................#..........................#......#...........#................................................................
+....................#.........................#..................................................#..........................................
+......#............................................................................................................#........................
+...........................................................................................................#................#...............
+#..............#...................#.............................................#........................................................#.
+.........................................#.........................................................#........................................
+.....................#............................................#.....................#...................................................
+.................................................#......#...................................................................................
+.........................................................................................................#..............#.......#...........
+...............................#..................................................................................#...................#.....
+..........................#.........................#...........#..............#..........#..................#..............................
+..........................................#.............................#...................................................................
+............#......#................................................................................#.......................................
+................................................................................................................#.....#....................#
+...#.........................#................#...............................................................................#.............
+......................#..................................#.............................#...................#................................
+.......................................................................#.....#.................#............................................
+.......#..................#.........................#....................................................................................#..
+..........................................................................................#....................#............................
+........................................#........................#.....................................................#....................
+...................#.....................................................#.......#.............................................#............
+..............................#.................#...........................................................................................
+..#..................................................#......#................#.............................................#.........#.....#
+...........#..................................................................................#.....................#.......................
+.....................................................................................................#...........................#..........
+................#......................#........................................................................#...........................
+............................................................................................................................................
+.......#..............#............#............................#......#................#.....................................#.............
+............................................#........#.........................................#............................................
+..............................#..............................................................................#.......................#......
+............................................................................................................................................
+....................#............................................................#..............................................#...........
+......................................#..............................................................#...................................#..
+..........#.....................#.......................................#..............#....................................................
+............................................................................................................................................
+....#.....................#..................#......#.......#.................#...........................................#.................
+....................................#.........................................................#....................#.............#..........
+....................................................................................................#.......................................
+.................................................................#........................................#.................................
+..................#...................................................................................................#.....................
+.........................................................................#......................#...........................................
+#......................................................#...........................#............................#.........#.................
+...........................#............#..........................................................................................#........
+..................................................................#......................#..................................................
+................#................................#...........................#..............................................................
+........#.....................................................................................................................#.............
+...................................#........................................................................................................
+.......................#.....#................................................................................#.............................
+.#...........#...........................................#.................#....................#...........................................
+..........................................................................................#............#................#...................
+..........................#..........#......................................................................................................
+.....#...............................................................................#.....................#.....................#..........
+............................................................................................................................................
+..........#............#................................#.....................#..................................#..........................
+...............#...................#.........................#....................................#..................................#......
+............................................................................................................................................
+...........................................................................................................................................#
+...#.....................................................................................................#..................................
+......................#.............................#..........................#..............................#.............................
+..........................................#...................#..........#..........................#...............#.......................
+..............................#.....................................................................................................#.......
+.........................................................#................................#.................................................
+...............................................#............................................................................................
+..........#...........................#..............#..........................#.........................#...................#.............
+#.....................................................................................#.....................................................
+.....#............................................................#..........................#.................#............................
+...........................#.......#..............#.................................................................#.......................
+.......................................................................................................#....................................
+........#..........#.....................#..................#......................#......................................#...............#.
+.............#.........................................................#....................................................................
+................................................................#...........................................................................
+.....#.................#.................................................................#......................#.....#..........#..........
+................................#......#.............#.........................................#.....#......................................
+...........................................................................#.........................................................#......
+..........#................#................................................................................................................
+.................................................#..............................#..........................................#................
+.....................................................................................#.................#.........#..........................
+.......................................................................#....................................#............................#..
+...............#......#....................................#................................................................................
+.........#...............................#..........#..........................................................................#............
+...............................................................#.................#.........#.....#......................#...................
+............................#.....#.........................................................................................................
+......#..........................................#.......#...........................................................................#......
+..............#...................................................#........................................#......#.........................
+.............................................................................#..............................................................
+.....................................#................................#................................................#....................
+..........#..................#..............................#.............................#.................................................
+....#.....................................................................#......#............................................#.............
+......................#.................................#..............................................#....................................
+.............#..............................................................................................................................
+..........................................#......#...............................................#..........#...............................
+.........................#......#.......................................................#...............................................#...
+...........................................................#.................................#...................#..........................
+...#...............#..................#..............#....................#...........................................#.....................
+.....................................................................#...........#..........................................#......#........
+..............................#...............#.................................................#......#....................................
+........#.....#.............................................................................................................................
+#........................................................#.............................#.......................................#.......#....
+....................#..................................................#....................................................................
+..........................................#......................#..........................................................................
+.........................#...........................#.............................................#............#.........#.................
+.....................................................................................................................#..............#.......
+..........#...................................#............................................................#..................#.............
+.....#..........#...................#........................................#..............................................................
+.....................................................................#.........................#.......#....................................
+......................#......#..............................................................................................................
+.#......#...................................................................................................................................
+.................................#....................................................#...........#......................#...............#..
+.................#..................................#.........#.........#...........................................................#.......
+..............................................#..................................#..........................................................
+...........................#..........................................................................#.........#...........................
+..........................................#.................................................................................................
+.....................................#...........#..................#.........................................................#.............
+..................#....................................#.............................#...........#........#.............#................... \ No newline at end of file
diff --git a/aoc2023/src/day13/input.txt b/aoc2023/src/day13/input.txt
new file mode 100644
index 0000000..3113249
--- /dev/null
+++ b/aoc2023/src/day13/input.txt
@@ -0,0 +1,1379 @@
+##..#..#......#
+.........#..#..
+.####.#.######.
+#....#.###..###
+..##..#.#.##.#.
+######...#..#..
+#.##.#.#.#..#.#
+#....#..######.
+.#..#...#.##.#.
+#....#....##...
+.#..#.#..####..
+......#.######.
+##..##.#.####.#
+
+.#...##..
+..##.#.##
+.#.###...
+###..#.##
+##.#.####
+..#.#..##
+.###...##
+.#...#.##
+#####.#..
+...#..###
+###.##.##
+####...##
+####..###
+###.##.##
+...#..###
+
+#####...####.#.
+##..###..#..#.#
+...#.###.....#.
+...#.###.....#.
+##..###..#..#.#
+#####...####.#.
+##....####.....
+#..##.....#..#.
+#..##.....#..#.
+##....####.....
+#####...######.
+##..###..#..#.#
+...#.###.....#.
+
+#..##...#
+#..#..###
+#..#..###
+#..##...#
+.##..#.#.
+.....###.
+#..#.##.#
+...#..###
+.##.#..##
+.##.#.#.#
+#####.#..
+
+######.#.#.#...
+.#..#.#.##...#.
+...#....#.#.#..
+#.##.#.#.....#.
+.......##.#.###
+#######.##.#..#
+......##...##..
+#.##.#....#.#..
+#.##.#....#.#..
+
+#...#..##..
+.##..######
+....###..##
+.#..#..##..
+.####.####.
+###.##....#
+.#..##...##
+###.#..##..
+#.#.#......
+.####......
+....#.####.
+..##..#..#.
+..#.#.####.
+..#.#.####.
+..##..#..#.
+
+#...#.#.##.#.#...
+###.#..#..#..#.##
+#...##.####.##...
+#.....#.##.#.....
+...#####..#####..
+##..#.######.#..#
+###.##.#..#.##.##
+...#..#.##.#..#..
+....#........#...
+#..##.#.##.#.##..
+#................
+
+...##.###.#
+...##.###.#
+##..#....#.
+##.....#.##
+#.##..#.#.#
+..##...#.#.
+...#####..#
+
+.##.##.#.##..
+#..#.#.#.....
+####.###..#.#
+####.####.###
+#..#.#####.##
+#..#.#....###
+#..#.#....###
+#..#.#####.##
+####.####.###
+####..##..#.#
+#..#.#.#.....
+.##.##.#.##..
+.....##.#.#..
+####..#.#.##.
+#####.#...###
+#####.#...#..
+#..#...####.#
+
+#..#.#...#...##..
+...#...#..#..##..
+#..####.#.#.####.
+..#####..#.##..##
+..#...####.##...#
+.#.#########....#
+.#.#########....#
+
+#..#...#.#.#...#.
+#.####...###.#.#.
+#.....##...##.#.#
+##.##....#....#..
+#.....##....#....
+..##.##.#...#..#.
+..##.##.#...#..#.
+#.....##....#....
+##.##....#....#..
+#.....##...##.#.#
+#.####...###.#.#.
+#..#...#.###...#.
+......#.#..##....
+......#.#..##....
+#..#...#.###...#.
+#.####...###.#.#.
+#.....##...##.#.#
+
+....#..
+#.##...
+#.###..
+#...##.
+.##..##
+.##..##
+#...##.
+#.###..
+#.##...
+
+##.##.#..
+..#..#..#
+...#####.
+..#....##
+##.##.##.
+##.##.##.
+..#...###
+...#####.
+..#..#..#
+
+...####.....#####
+.#......#.####..#
+.#########.##....
+####..#####.#####
+..######..#...##.
+#.##..##.#....##.
+....##....##.....
+#........#.#.....
+....##.....#.....
+...#..#.......##.
+#.######.##......
+.##....##.###.##.
+...####...#..#..#
+
+.#...###..###...#
+##..##.#....##..#
+.#.#.########.#.#
+.######.##.######
+.##.#...##...#.##
+.#...########...#
+.#.#...#..#...#.#
+#..#....##....#..
+#..####.##.####..
+#.##..##..##..##.
+..#...#.##.#...#.
+#..#..........#..
+#..#..........#..
+
+....#..###....#
+#..#..#..#....#
+#..##.....####.
+.##..#..#..##..
+####.###..####.
+###.#.##.#.##.#
+.##..#..##....#
+#####.###..##..
+####..#...#..#.
+#..#....#..##..
+#..####..##..##
+......#.##.##.#
+.##...#########
+.........#.##.#
+.##..######..##
+#..####..#....#
+.##.####..#..#.
+
+#..#.##...#.##.
+###.##.##.#...#
+##.########.#.#
+.#.#.##.#...###
+.#.#....####...
+.#.#....####...
+.#.#.##.#...###
+##.########.#.#
+###.#..##.#...#
+#..#.##...#.##.
+#..#.##...#.##.
+
+.##..####..##..
+####..##..#####
+.#.#.####.#.#..
+..##..##..##...
+#....#####...##
+####.#..#.#####
+##..........###
+#.#.#....#.#.##
+#...##..##...##
+.##.##..##.##..
+..##..##..##...
+....#.##.#.....
+###.######.####
+
+########..#.##.#.
+######..######.##
+#.##.#.#.###.###.
+#....#.#.####.###
+#....##..#..###..
+......##.##..###.
+..##..#..#.###..#
+..##..#.#.##...#.
+##..######..##..#
+##..######...#..#
+..##..#.#.##...#.
+..##..#..#.###..#
+......##.##..###.
+#....##..#..###..
+#....#.#.####.###
+#.##.#.#.###.###.
+######..######.##
+
+#.####..##..#
+#.#.#........
+.#.###...#..#
+#...#..##....
+...#.#.###..#
+#..####.#....
+#####.#..#..#
+.##..####....
+.....#...#..#
+##.#...#.####
+.....###.....
+###..##.#....
+.#..##.#.####
+#...#..#..##.
+##...#.......
+.#...#.......
+#...#..#..##.
+
+...#..##.
+..#.#.#.#
+######.##
+#####.###
+..####...
+######..#
+######..#
+..####...
+#####.###
+######.##
+..#.#.#.#
+...#..##.
+#..###.##
+####..##.
+...#.#..#
+...###.#.
+..##.##.#
+
+.####.....#.#
+........#.###
+##..##...##.#
+..##...####..
+..##...####..
+##..##...##.#
+........#.###
+.####.....#.#
+######.##.#..
+.#..#.####.#.
+##..####.##.#
+#.##.##..#...
+##..########.
+##..##.##.#.#
+.####....#.#.
+.....#.#.#.#.
+.#..#....#.##
+
+#..########..##
+#............##
+#.##########.##
+.#.#.####.#.#..
+##.#......#.###
+.#.###..#.#.#..
+###.######.####
+#.##.####.##.##
+##.##....##.###
+#.#.#.##.#.#.##
+#.##......##.##
+
+.#......#..####.#
+#.#.#####.#.###..
+##..##.#..#...##.
+.##.#..###...#..#
+.##.#..###...#..#
+##..##.#..#...##.
+#.#.#####.#.###..
+.#......#..####.#
+#..##.#.##..#.#..
+#..##.#.##..#.#..
+.#.....##..####.#
+#.#.#####.#.###..
+##..##.#..#...##.
+
+.#....#......#.
+..#.##.######.#
+...#.#..#..#..#
+##..#.###..#.#.
+##.............
+##..#.########.
+..#.##..####..#
+..#.##..####..#
+##..#.########.
+##.............
+##..#.###..#.#.
+
+####.##
+###..##
+#.#####
+##..#..
+#......
+####.##
+#.#....
+..###..
+..#####
+#.#....
+####.##
+#......
+##..#..
+#.#####
+###..##
+####.##
+#####..
+
+###.##.....
+##.##..#..#
+##.##.....#
+###.##.....
+#####...#..
+..#########
+########.##
+##.###...##
+..#..#..#.#
+..##...##..
+...####.#.#
+
+#.##...#....#
+##....##....#
+##..##..#..#.
+##..##..#..#.
+##.....#....#
+#.##...#....#
+.##.....####.
+#####..#.##.#
+#.####.#.##.#
+.#.##.#.#..#.
+#...#.#..##..
+###..##.####.
+.#####.......
+
+#..##.#
+#.###..
+#.###..
+#..##.#
+.##.##.
+...#...
+#..###.
+#..##..
+#..#..#
+#..#..#
+#..##..
+#..###.
+.#.#...
+
+.###.##
+.##.###
+##.....
+##..#..
+.##.###
+.###.##
+#...###
+
+..##..#.##.
+.#..#.....#
+.#..#.##.#.
+######.####
+..##.......
+..##.......
+######.####
+.#..#.##.#.
+.#..#.....#
+..##..#.##.
+#........#.
+########..#
+##..##..##.
+
+..######.....#...
+...........##.##.
+.#.####.#....####
+.#..##..#.####..#
+####..#####......
+###########.#.##.
+.#..##..#..###..#
+###.##.###...####
+#..####..##.#####
+
+###.#####..##..
+...........##..
+.#.##...#..##..
+.#...##.##....#
+.....#.###.##.#
+..#####..#....#
+##..###..##..##
+####.##...#..#.
+.#.##..##.#..#.
+.####...##.##.#
+...#.##..######
+..#..##..######
+..#..###..####.
+..#..###..####.
+..#..##..######
+.#.#.##..######
+.####...##.##.#
+
+..##.##..#.....
+..##.##..#.....
+.##...##.##...#
+.....##..##.##.
+#####.####..##.
+.#......#.##..#
+....##..###.##.
+
+#..####
+##.##..
+..#.#..
+..#.#.#
+..#...#
+.....#.
+.#.#...
+.#.#...
+.....#.
+..#...#
+..#.#.#
+
+#.###.#
+#####.#
+.##..#.
+.##..#.
+#####.#
+#.###.#
+...####
+.#.##.#
+......#
+
+#.##..##.####.#
+..######..##..#
+###....###..###
+...####...##...
+#........####..
+###.######..###
+##.####.##..##.
+##..##..######.
+.#......#.##.#.
+#.#....#.####.#
+##......######.
+..#....#..##..#
+###.##.########
+.#......#.##.#.
+.#......#....#.
+
+.##........#.
+...#.##.##..#
+.#..###..####
+...#.....####
+.#....##..###
+#..#...#.#...
+#.#...#.##.#.
+#.#...#.##.#.
+#..#...#.#...
+##....##..###
+...#.....####
+.#..###..####
+...#.##.##..#
+.##........#.
+.##........#.
+...#.##.##..#
+.#..###..####
+
+....##....###
+.########....
+##.#..#..####
+#...##...##..
+#........#.##
+###.##.####..
+..##..##..###
+..#....#.....
+#..####..####
+##.####.##.##
+##..##..##.##
+
+########.#.#.##.#
+###..####.##....#
+##....##...##..##
+#......#.########
+#.####.##.##.##.#
+#......##.#.#....
+#......##....##..
+.######.##.......
+##....####.#.##.#
+#..##..#.###....#
+...##...#....##..
+.######....######
+##.##.##.#...##..
+#..##..#.#.##..##
+.#....#.##...##..
+
+###.#...####...#.
+#..#.##..##..##.#
+.##...##....##...
+#####......#...##
+#####......#...##
+.##...##....##...
+#..#.##..##..##.#
+
+####..#.##.#.
+.#..##.####.#
+#..#.#.####.#
+#..#.#.####.#
+.#..##.####.#
+####..#.##.#.
+.###.#.####.#
+##....#......
+####.#..##..#
+##..#...##...
+...##.#....#.
+##.##########
+###.####..###
+
+#..######..#...
+.###....###..##
+.#.####.#.#..##
+.###.##.###..##
+..###..###..###
+.#...##...#..##
+###.#..#.###...
+#.#.#..#.#.##..
+#..######..##..
+...#.##.#...###
+..#......#.....
+
+......##.#.
+##.#..#....
+##.#..#....
+......##.#.
+#.#.#.##.#.
+..#.#.###.#
+#####..##..
+##.###.#..#
+..#.##...#.
+
+##......###.###
+##......###.###
+#.##..##.##..#.
+.##....##.###.#
+..........#.#.#
+..######...#..#
+##.####.##...#.
+..#....#..##..#
+.###..###..##.#
+.#......#.##.#.
+.#......#.##..#
+.#.####.#..#..#
+###.##.######..
+##..##..#.#....
+.##.##.##...##.
+
+.#....#.#..#.
+...##....##..
+##.##.##....#
+#.#..#.#.##.#
+.######..##..
+###..####..##
+##.##.###..##
+..#..#..#..#.
+.#.####.#..#.
+.#....#......
+#..##..##..##
+.#....#..##..
+###..###....#
+
+##.##.##.###....#
+.######.####....#
+#......##.##.#..#
+..#..#..##.##..##
+.#....#..#.#.##.#
+#..##..#..#######
+..#..#...##.#..#.
+...##.....#######
+#.####.#.#.##..##
+##....#######..##
+.######..##.#..#.
+.##..##..#..#..#.
+###..####...#..#.
+.#.##.#..#.#....#
+.######.#.###..##
+.........####..##
+##.##.##.........
+
+....##.##.#.#..##
+####.##.###.####.
+#..##..#.####..##
+.##....##.#.##.##
+#..#...#.#.##....
+.##......##..#.##
+#..#.##...#.#.#..
+
+....##.##
+....##.##
+....#....
+..###.#..
+##.#.####
+....#.#..
+..#......
+###....#.
+#...#.#.#
+
+.....##...###.#.#
+.##.#.##.....#...
+.##.#.##.....#...
+.....##...###.#.#
+#.######...###...
+..#.#....#.##.#.#
+##########.#..#.#
+..#..#....###..#.
+...##.#.##..###..
+#####.#.......##.
+..#..#.#.#...##.#
+..#..#.#.#...##.#
+#####.#...#...##.
+...##.#.##..###..
+..#..#....###..#.
+
+.#.##.#.....#....
+#.#..#.#.#.##.#.#
+###..####......##
+#.####.#..#..#..#
+..#..#..###..###.
+..####.....##....
+##....####....###
+
+##..#.##......#
+..#.##.#.##.###
+#..#......#.###
+.##.##.#.....#.
+#.#..##.##.##.#
+#.#..##.##.##.#
+.##.##.#.....#.
+#..#......#.###
+#.#.##.#.##.###
+##..#.##......#
+#....###.##.#..
+#....###.##.#..
+##..#.##......#
+#.#.##.#.##.###
+#..#......#.###
+
+..##.#...#.##
+.#.##.#..#...
+#..##..##..##
+#......###...
+...........##
+.#.##.#.###..
+#.#..#.###...
+.#.##.#.##.##
+##....##.####
+.#.##.#....##
+##.##.##..#..
+#.####.#.####
+#.####.#.#.##
+.#....#.##.##
+..#..#..##.##
+#..##..##....
+#......#.#.##
+
+..#..###.....
+.##.#.#...#.#
+..######.#.#.
+...#####.#.#.
+.##.#.#...#.#
+..#..###.....
+#..#######...
+.#..#.#......
+..####.#..#..
+...#..##.####
+.####.......#
+#...#.##..#.#
+...####.##.##
+...####.##.##
+#...#.##..#.#
+
+...###.
+.#..###
+.#..###
+...###.
+..#.#..
+.###..#
+..#.#.#
+.#.#.#.
+.###..#
+.###..#
+.#.#.#.
+#.#.#.#
+.###..#
+..#.#..
+...###.
+
+..######.....
+##########..#
+...####......
+#.######.#..#
+#..#..#..#..#
+#.##.###.#..#
+##..##..##..#
+##.####.##..#
+##.####.#####
+#.#.##.#.#..#
+.#..##..#.##.
+#...##...####
+..######.....
+##.####.##..#
+..........##.
+
+##.##.###.#......
+#..##..#.#..####.
+#......###.#....#
+#########.##....#
+...##.....#######
+#..##..#..#......
+#......####.#..#.
+#..##..#..#......
+.##..##.#..#.##.#
+..#..#...#.##..##
+...##....#####.##
+##########.#....#
+##.##.#####..##..
+#.####.######..##
+###..#######.##.#
+#......#..#.#..#.
+..#..#......####.
+
+.#..##.##..###.
+.#.###.##..###.
+#...#...#####..
+...##.####...##
+....#.#####.#.#
+##.#..#.###.#..
+.#.##.####..##.
+##.#...##.##.#.
+....######.####
+....#.#.##..###
+..##...#......#
+#####...####.##
+#####...####.##
+..##...#......#
+....#.#.##..###
+....######.####
+##.#...##.##.#.
+
+#..##.###
+.##.....#
+.##.##..#
+###..####
+#####.#.#
+......#.#
+#..##.#..
+#..##.#..
+......#.#
+#####.#.#
+###..####
+.##.##..#
+.##.....#
+#..##.###
+#..######
+
+..#.#.#..#.#.
+..#.#.#..#.#.
+#...#.#..#.#.
+.###.#..#..#.
+.#.#..#.#.#..
+#.....#...###
+##.##.#####..
+##.##.#####..
+#.....#...###
+.#.##.#.#.#..
+.###.#..#..#.
+
+####...#.#.
+####...#.#.
+#..#..#..##
+.....#..###
+#..#.#..###
+.........#.
+.....###.##
+######.#...
+#..##.###.#
+.........#.
+..#..#.#.#.
+#######.##.
+####.#..#.#
+
+#..###.
+#..###.
+.....##
+##.#...
+#.#.#..
+.###.#.
+#.##.##
+##..##.
+..###.#
+...###.
+.#.###.
+
+############...##
+##..####..##.#...
+##..####..##.##..
+.####..####..#.##
+..##....##..##.#.
+.####..####.#..#.
+..............##.
+#..........#.##.#
+##############.#.
+.#..#..#..#.#.#.#
+............#.#.#
+..##....##..###..
+#....##....#.###.
+##############.##
+.#..#..#..#.#...#
+
+.##......#.####
+....###..###.##
+.....######....
+....#..##.##...
+######....#.###
+#..###.##....#.
+########.#.###.
+#..#####.#..###
+.##..#...####..
+.##....##..####
+#...##.##.###..
+.##...#..######
+#..#.#.#.#.#...
+.##...#..#....#
+.##...#..#....#
+
+##.#.##.#.###
+.#.##..##.#.#
+#.#..##..#.#.
+###.#..#####.
+#.#.#..#.#.#.
+##.######.###
+#.##....##.#.
+#.##....##.#.
+##.######.###
+
+###..#####.##
+###..#####.##
+.....###..###
+...##..###...
+##.#.##.##.##
+..##.....#.##
+#.###........
+#...##...##.#
+#.####.##.#..
+#.#..###.####
+.#.#.#####...
+#.##.##.##...
+####...####..
+#####....####
+.#.##.##.#...
+.##.##..##...
+.#.#...##.#..
+
+.###..###
+.#.#....#
+.#..##..#
+.#......#
+...#..#..
+##..##..#
+####..###
+##.#..#.#
+#.##..##.
+#.##..##.
+##.#..#.#
+####..###
+##..##..#
+
+###...#....
+...##.#.#.#
+..#########
+..##....#.#
+..#######.#
+..#....##..
+..#....###.
+..#######.#
+..##....#.#
+
+####......#...###
+#.#..#..##..#..#.
+##.##..####..##.#
+..###...##...###.
+.######....######
+..#####....#####.
+#.###...##...###.
+.#......##......#
+...#..######..#..
+...#..######..#..
+.#......##......#
+
+...#..#.###
+##.####....
+...##..####
+###...#....
+..#..#...##
+##..#.##...
+...##...##.
+.......####
+####..###.#
+.....#.#..#
+##....#....
+#######.###
+##.####.###
+
+#.#..#...
+..##..#..
+..##..#..
+#.#..#...
+.####....
+##..#.###
+...##....
+...#...##
+..#..####
+.#.##...#
+....#....
+
+..#####.....##.
+#.##..#....##..
+........####..#
+......#.###..##
+....###....##.#
+....###....##.#
+......#.###..##
+........####..#
+#.##..#....##..
+..#####.....##.
+.##.#..#.#.#.##
+.##.#....#.#.##
+..#####.....##.
+
+.#.#.#.##
+.#.###.##
+.##...#..
+##.##.##.
+##.#..#..
+..#..#.#.
+##.#.#.##
+##.#.#.##
+..#..#.#.
+
+..#.#####
+##...#..#
+##.###..#
+######..#
+##...#..#
+..#.#####
+.#.#.....
+#.....##.
+...#.####
+####.####
+##.......
+#..#.#..#
+...##.##.
+#.#.##..#
+###......
+....#####
+..##..##.
+
+...##...#
+...######
+...##....
+###..#.##
+##.#.#.##
+.#...#.#.
+..#.#.###
+.....##..
+###.#....
+##.#.#.#.
+##.#.#.#.
+
+....#.....#..
+#..##.#....#.
+##...........
+..##.##...##.
+.###..#..###.
+##.########.#
+##..###....##
+###.##..#.##.
+###.##..#.##.
+##..###....##
+##.########.#
+.###.....###.
+..##.##...##.
+##...........
+#..##.#....#.
+....#.....#..
+....#.....#..
+
+..##.#.#.
+#####.#..
+#...####.
+##.###...
+##....#.#
+##.#.#...
+...#####.
+##..#...#
+.....###.
+###..##.#
+###.#.###
+###.#.###
+###..##.#
+
+..#.###
+.....#.
+..#...#
+..#..##
+####.##
+###.#.#
+###.#..
+####.##
+..#..##
+..#...#
+.....#.
+
+.###.#.#.##.#..
+#.####..##..#.#
+#.####..##..#.#
+.###.#.#.#..#..
+....#...#..##.#
+..####.##.#...#
+##..#.#..#..##.
+###..#...#.....
+###..#...#.....
+
+#...#.....##.
+#.###.#..####
+..###.######.
+.#..####..##.
+.#..####..##.
+..###.######.
+#.###.#..####
+#.........##.
+.##.##.###...
+#.##..#####..
+##..######..#
+###.#...#....
+.#.#.########
+###......###.
+....######.#.
+.###.##.##.#.
+.###.##.##.#.
+
+#..#..#....#..#
+..###.#.##.#.##
+##.###......###
+##...########..
+.....#.........
+#...###....###.
+#...###....###.
+
+.#..#....#..#..
+#....#..#####..
+.####.###..##..
+#....#####.##..
+..##.......#.##
+.......#.##..##
+##..###..###...
+.###....#.#.#..
+.#..#...##.....
+#....#..##.####
+##..###.####.##
+..##..#...#.#..
+.........#..###
+
+.####..
+#...#.#
+..##..#
+#..###.
+#..###.
+#.##..#
+#...#.#
+.####..
+..##.##
+..##...
+#....#.
+#.#..#.
+#.#..#.
+
+#####...#..##
+#.###...#..##
+.#####.#.#...
+.##.##..#####
+....##.###...
+..#.#.###.###
+.##....##..##
+##..#.###.###
+##...###.#...
+.#.##.#.#..##
+.#.#...#.####
+#....#...#...
+...##..##..##
+
+.....#.#.....
+....##.......
+#..#.#.##....
+#####.##.....
+#....####.##.
+#..####...##.
+#..###.#..##.
+....##..#####
+#####.###....
+....#.###....
+####.#...#..#
+#######......
+....#.##.####
+.##....#.#..#
+....###.##..#
+
+##.####......##.#
+....#.###.#...##.
+....#.###.#...##.
+##.####......##.#
+.##..#.##...#.###
+.#.#.#...#...#...
+#.##.#..##.#.#.#.
+#.##.#.###.#.#.#.
+.#.#.#...#...#...
+
+#####..####..####
+...###..##..###..
+..##..........##.
+##.#..##..##..#.#
+##....#.##.#....#
+##.#.#..###.#.#.#
+..#.###....###.#.
+..##..........##.
+..###...##...###.
+....#.##..##.#...
+.....#......#....
+
+.####..#..#..##
+..##...#..#....
+......###...###
+......##.##..#.
+#....#.#.#.#...
+######.###...##
+.####.#.#..##.#
+.......#.#..#..
+.......#.#..#..
+.####.#.#..##.#
+######.###...##
+#....#.#.#.#...
+......##.##.##.
+
+#.#..##.#.#..
+.#..##..#..##
+.#..##..#..##
+#.#..##.#.#..
+..#..#...#.#.
+.#...#.#.###.
+#.#####.#.##.
+#...#...#.#..
+#...#...#.#..
+#.#####.#.##.
+.#...#.#.###.
+..#..#...#.#.
+#.#..##.#.##.
+
+#..##......##..#.
+#..##......##..#.
+.#.#.#.##.#.#.#.#
+#..#.######.#..##
+.#..##.##.##..#.#
+#...#..##..#...#.
+#.############.#.
+#..##.#..#.##..##
+#..###....###..##
+##.#...##..##.###
+.##.##....##.##..
+
+..###.#.##.#.###.
+.##.##..##..##.##
+.##.##..##..##.##
+..###.#.##.#.###.
+.##..#.####.#..##
+###.##..##..##.##
+###.#.#.##.#.#.##
+.#..............#
+#...###.##.###.#.
+###...#....#...##
+.##..#..##..#..##
+..#..##....##..#.
+..#.#.######.#.#.
+###..##.##.##..##
+..#..#.#..#.#..#.
+
+###.##.##
+##..##..#
+#.######.
+#.######.
+##..##..#
+###.##.##
+.###..###
+#.#....#.
+..#.##.##
+
+....#.##..#
+......#.##.
+#.####.#..#
+#.####.#..#
+......#.##.
+....#.##..#
+.#.##.#..#.
+.##..##....
+#....##.##.
+
+.##...##.#.
+.#.##...##.
+#..#####.##
+#..#####.##
+.#.##...##.
+.##...##.#.
+.#..###...#
+###.##.##.#
+#...##.#.##
+#...##.#.##
+.##.##.##.#
+.#..###...#
+.##...##.#.
+
+.##...##.
+.##...##.
+##..###.#
+##.#.#..#
+.....#...
+#..#.##.#
+........#
+..##.###.
+..##.###.
+........#
+#..#.##.#
+.#...#...
+##.#.#..#
+##..###.#
+.##...##.
+
+####..#..##.##.##
+....#.##.........
+....#...#.######.
+.....##..##....##
+.....####........
+####..#...##..##.
+....###.##.#..#.#
+#####.....##..##.
+.##.....#...##...
+.##.##.#..######.
+#..#####..#.##.#.
+#..######.##..##.
+..#.#.#.#.######.
+.##...#..##.##.##
+####..####.####.#
+
+#...#.#
+#..#.##
+##..###
+##..##.
+#..#.##
+#...#.#
+.#....#
+#..##.#
+...#.#.
+###...#
+##..###
+.#####.
+.#####.
+##..###
+###...#
+
+##.##..##.##.#..#
+.##..##..#..##..#
+#############...#
+....#..#........#
+#..##..##..#.##..
+#..#....#..######
+#....##....###.##
+###.####.#####..#
+.#..####..#.#.###
+##..#..#..###..#.
+..##.##.##...##.#
+.##..##..##.....#
+...............#.
+...............#.
+.##..##..##.....#
+..##.##.##...##.#
+##..#..#..###..#.
+
+#.#######
+##.#...##
+#..##..##
+#..#.##..
+##.##..##
+###.#####
+###.#####
+##.##..##
+#..#.##..
+#..##..##
+##.#...##
+#.#######
+..#.#.#..
+#...#.##.
+.#.#..#..
+.#.##..##
+#.#..####
+
+.......#.#...####
+....#..#....#.##.
+..##...#...######
+##.#....#.##.####
+##..##...#####..#
+.##...#####.#####
+.####..##.#...##.
+#..#..#####..#..#
+#..#..#####..#..#
+.####..##.#...##.
+.##...#####.#####
+##..###..#####..#
+##.#....#.##.####
+..##...#...######
+....#..#....#.##. \ No newline at end of file
diff --git a/aoc2023/src/day15/input.txt b/aoc2023/src/day15/input.txt
new file mode 100644
index 0000000..86b345f
--- /dev/null
+++ b/aoc2023/src/day15/input.txt
@@ -0,0 +1 @@
+fnln-,bkxf-,spfc=9,ds-,trzx-,dtck-,xs-,bg=4,fgmpc=5,xmxf=1,cl=9,md-,ct=2,ftz=5,xhd-,vkqx-,hxd=6,mlcn=6,ctdbt=6,txpsv-,nkx=3,jfz-,fzm=3,rvcd=4,nfgp=3,jjd=7,nzq=6,zv=5,lh-,nfgp-,gcbtgm=7,zj=6,sxlh=3,vsj=8,cjb-,tslfp=5,vc-,kpn=7,qpm=5,jgmnxd-,xp-,kmm-,xb=4,tv-,bmnlf=7,cb-,vbmk=5,dvz-,ssd=6,sb-,mldgtn-,mtx-,kz-,nzq-,dnkf-,sn-,js-,bpq-,vc-,fzm=9,xqv-,gqsr=2,jzxp=5,bc-,lxg=5,sv-,gflrmd=9,ncjb-,fm=9,lln=1,ql=9,tj=2,pbmldc-,fkzq=7,vkh=3,tn=4,fdl-,frgf=1,vf-,fpg=4,xzt-,jf-,pjfk=5,rvcd-,rv=6,zrs-,qnd=1,vqzhc-,xrb=8,lvx-,dfz-,xstdx=6,sf=4,hsb=3,sqjgc-,xtl=7,zthrd=8,mldgtn-,rc-,kpz-,tpnmp=6,bzj=7,gmrrx-,bszd-,mjz-,bzj=8,ztk=9,dtv-,qgm=4,ssd=3,xc=8,hvglb-,xf-,qhvz-,vqc-,ktj=1,ppq-,zxt-,rnsbt-,qpx-,nj-,vhl-,rknz-,zngsp-,vhl-,fjh-,vrzjf=7,gkn=6,tfd=4,bgg=1,fgmpc=9,lpd-,pbmldc=4,jm=2,vlv=4,shn-,vps=8,ljsvc-,rfdrk=3,vkqx=7,gftx=9,nzq-,cq=1,ckb=6,zsx-,qpf-,cggz-,bzj=9,lfg=6,tfd-,xdfz=8,ghbr-,dsdm=8,nj=4,jf-,fnln=7,fzm=7,fkzq=7,xcq=8,fkzq-,dm-,bfz=2,lqf=4,sfp-,kpqvtc=2,fkzq-,vth-,zn-,xhs-,vsj-,psfnx=4,xbx=1,xgk=9,snpgsm-,psg=3,shn=6,qxkrd-,pxvxlh-,xbx-,gt-,ksn-,dzn=7,gp=7,mp=8,jtz=3,ph=2,jxj=8,pg=5,txkh=6,drls=6,zthrd=9,gqsr-,dtv-,mktlhp=9,bszd=5,snpgsm=5,qz=6,sh=6,lqt-,mktlhp-,mgt-,mvmqfm=5,bc-,lpd=6,zn=3,nhsvv=3,vdf-,znjg-,phsl=7,tnb=4,qlf=9,txpsv-,pxvxlh=6,lqfv=7,lffv=5,djmlb=7,pxn-,hdxvhr=8,vbz=1,vqc=1,xrb-,bj=1,bzpv=5,tdl-,xc=2,cnr-,ss=6,mf=2,sv=2,mp-,zpc-,rqg-,xtsd-,hlg=6,xdfz=9,nl-,kfp-,cr-,qxkrd-,vpxv=9,mtx=1,drls=9,jzxp-,xqfrg-,js=3,ql=8,xp-,kpz=8,zj=9,jxj-,gf-,gcbtgm-,cmpc=4,tr=4,px=6,pvv=9,tpnmp-,jhhqj=5,mmn=3,qpf=5,vnk=9,cnn-,xgr-,mmsz=4,lvs-,cv=3,cq-,bfz=8,ct=7,kr=6,gk-,zdtz=1,vqzhc=3,xzt-,vqt=4,dphx-,kmr-,fkzq-,lk=8,dvz=6,ghbr=6,hm=6,zm-,sn-,jgmnxd-,vkz-,ps-,vpxv-,gpg=4,bmnlf=9,pjfk=3,ndmt=7,zk-,zthrd=5,fgmpc=8,rgh=7,bx-,ctp=2,nl=7,rtj=6,grlkl=9,zf=8,lg=4,zngsp-,rsn=5,drls=9,lxmkfx=7,sbt-,bx-,lln-,dm=6,fnv-,qpf-,tq-,qv=9,cfnbp-,pxvxlh-,tr-,nh-,clg-,xjpbxm-,zs-,trzx=8,bgh-,cmbv=1,vq=6,lcr=9,scbjp-,sjb=2,gmrrx=6,mg=5,znjg=4,zn=9,grlkl=7,xmxf-,smtd-,vkh-,spsx=9,qpf-,bgg-,smtd-,ntg=6,qpf-,vtp-,nlcrm=8,cvc-,frgf=8,blfx-,vbz-,tcs-,bqpp-,fjh=5,rtj=5,vr=6,kjrc=1,nzq-,qpf-,vqc-,kmr-,hj=8,fnh-,scbpb-,gxg=9,kf=6,xhs-,zdl=9,sscn=9,dzt-,rl=9,gr=6,tv-,jmthd=9,gn-,bzj=4,pv=9,pcnzf-,jxj-,sxlh-,lxg=3,rpn-,vr=9,rl-,tslfp=5,pgd=2,xmxf-,mjz=9,drls-,hrbj=7,rr-,lxg-,grlkl=3,jsv=1,sr=6,dv-,scbjp=1,pkg-,mgt=9,hsb=3,ccs-,xdfz-,cqq-,nbtq=2,ljsvc-,rpn=8,msbfzl=5,kz=7,cnr=4,hz-,ctf-,tgqp=9,tfd-,sqd=7,rb-,qf-,srp-,fkzq-,pfjml=6,rnsbt-,dmp-,zngsp-,cfnbp-,kpqvtc-,gftx-,lvs-,zpc-,kpz=2,pxvxlh-,spm-,rt-,ftz-,lvs=2,zsx=2,sjb=4,lxmkfx=7,bqpp-,hb=7,xzl-,ckb=7,hsb-,cvc-,ksn=7,mktlhp=5,jhl=6,snpgsm-,mm-,xstdx=2,rm-,rqx-,ld=4,zv=6,fx-,sbx=2,blfx=8,fmkjj-,km-,cmbv=8,vz=9,lg=4,fpg=4,kpfr-,dmp=4,xxj-,jhl=2,km-,vx-,sh=8,xqv=3,kfp=3,zdm=3,tdl-,ddxn-,gzrz=9,xqv=8,kqh=2,rlrlql-,lpd=1,vr=1,ggm-,dkz=3,jx=2,trzx-,sjb-,rh=8,dbsf=4,jhhqj=8,jzxp-,bkxf-,thnmq=7,mktlhp-,jtz=7,sh-,plt-,rfdrk-,hj=4,dk-,zjvd=9,jsv-,vkn-,jc-,zk-,mmsz-,lcr-,dkz-,px-,pcnzf-,jtz-,pzd-,kqh-,ts-,znb-,dzn-,qgm-,drls=9,bmnlf=3,thnmq-,bpq-,zxt=9,lg=6,rknz=8,bzj-,vsh-,lq-,rm-,ql-,cs=1,dzt-,hfrdk=4,kmm=9,lhks=9,jsv=5,zxt=9,kc=4,rm=8,hvglb-,bzpv-,drs=1,tgqp-,trg=4,dp-,zmlr-,pvv-,lfg=2,rqg-,nh=5,mkj=5,cct=1,lxmkfx-,txpx=2,vps=5,dzn=3,dph-,kv=1,vth=6,gftx-,lztd=3,hb=8,qpx=2,fjg-,plp-,vnhfc=3,zv-,xt=1,bgkjq-,pbk=9,hj-,sv-,kpz=5,fnh-,zpc=3,zj=8,pxvxlh-,qgm=6,gct=5,tdl=5,xtl=2,lg=7,trzx=9,hvglb=3,ss=6,vpxv-,gh-,js=1,jf=1,rqx-,pg-,nqcj-,zzx-,mf-,zlcmgc=3,lxg=8,rpgj-,vhl=6,phsl=8,dtck-,rxv=2,qpf=7,nh-,ccs-,mf=3,xrm=4,pljg=1,rnsbt=5,nnn=2,snpgsm=5,qxkrd=5,xgk-,trg-,phsl-,bzj=5,ckb=4,cqbvs=5,xgk=8,ck=7,dbffb-,tj=2,dm-,fjg-,zdm=8,jc=9,rqg=3,qhvz-,cmpc-,dzn=4,xrb=2,kfp=2,vbz-,xhs-,dnkf=3,chpn-,sl-,kftx=5,rsn=5,ps=9,jm-,pbk-,vq-,qpf=4,rfdrk-,rsn=9,nqcj=7,vsh=7,npm=7,qxkrd-,hpl=1,rnsbt-,pxn-,zsx-,lpd=5,fgmpc-,vkqx-,vth-,pm-,mgt=5,cct=3,bb-,hzlzn=2,gkn-,mjz-,kx=8,qcnnzx-,kmr=7,lfl-,jhhqj-,lqfv-,gkn=5,pfjml-,lhks=4,bzj-,tnp-,nj=1,xhs-,rtj=9,rlrlql-,qcm=3,mph-,fx-,jm-,xtl-,xdfz-,msbfzl-,ckb=7,hj-,cqr=5,scbpb=2,tslfp=1,kmm-,cv=4,zpc-,qfb-,rlrlql-,trzx-,sf-,ccs-,fsz=2,dv=8,thncf=4,bmnlf-,qgm=8,plvd-,dm-,pjfk=4,gr=6,qv=7,khx=3,vs=7,dtck=9,xbx-,xstdx=8,km=6,hgp-,kf-,xf=1,vnhfc=6,xgr=1,pbk-,sl=2,jmthd=8,sbt=6,mkj=8,vnk=3,bgkjq=8,bg=2,xbx=6,mmsz-,rnxt=1,shn-,ss=3,kpqvtc-,dfz-,qxj=9,mktlhp=4,jzxp=1,hm-,vx-,bzj=1,vnhfc-,vrc=7,bgkjq=8,gp-,vq-,lh-,tnfx=4,ntg-,dd=5,znb-,vtp=4,vgln-,hz=1,lk=1,mktlhp-,vz=3,vpk-,bbsk=4,qlf=1,hgp=5,xjpbxm-,qcm=8,tz=4,lqf=2,bz=3,jfjbj=9,lfl=6,cqq=8,xzt=4,xb-,rlrlql=9,cqbvs=8,dzt-,blfx=9,rqx=5,xfn=6,px=3,chpn=7,js-,lg-,ctf=1,qcnnzx-,hsb-,xnmq=1,hpl=1,pg-,gr-,fkzq=2,rfdrk=7,tnp-,gbsp-,nq=4,vttk=1,lrpx=5,xrm=3,crb-,nglvx=5,md=2,px=6,pljg-,sjb=3,kpjqgm=9,xrm=6,slzd=6,xc-,sxlh=6,mtx-,xc-,nbtq-,plvd=2,hb-,znfd=7,ghbr=1,gkn=3,gct-,cqq-,znb=5,jsv-,txpsv=6,dk-,dbh=7,lmlx=6,lcr-,bfz=4,xhs-,cjb-,tkpb-,dkms=4,sh-,fkzq=3,kqh=8,dv=9,lrpx-,vnhfc-,bqpp-,pcnzf-,km=1,ssmflk-,pnp-,rsn-,cqbvs=5,fr-,kfp-,npm-,vbz-,jm=9,pgd-,trzx=6,hsb=6,qrn=3,lln=8,zl=6,qpf=8,djmlb=6,zj-,qhvz=1,kz-,bzpv-,bq=8,frgf=7,blfx-,tnp=9,lqf=3,zrs=5,lc=2,scb=6,dzfqlb=3,kmqjt=1,trg=1,fzm-,bgg-,gzrz-,sv-,qz-,zlcmgc=4,qcm=1,xhd=7,zmlr-,fnv-,xdfz=9,fx-,xfn=7,zdm-,fr=7,tfd=1,njvd=4,vnk=2,xbx=8,xp=3,zbgdxg-,lxmkfx-,pbmldc-,znfd-,znb-,xh=5,ccf-,lxmkfx-,tgqp=6,ng=6,kz=9,hlg=2,mmsz=9,vdf=1,vkh=9,cvc-,sfp=7,ckb=6,gxg=9,cggz=2,clg=8,zn=6,ctf=6,zdtz=1,ddxn=6,nhsvv-,plvd-,sbx-,ncjb-,lc-,pvv-,vpxv=3,mhh-,qgm=6,vbmk=8,rb-,gxx=7,pt-,qpx-,gcbtgm-,xf=4,xfn=1,tv-,mmn-,zrs=6,zm=7,pxvxlh=5,xc-,dbsf-,scbpb=3,smtd-,fsz-,znjg=3,rfdrk-,ccs=9,mgt=5,mjjk-,vsh-,sv=8,cgp-,gf=1,pg=5,mph-,ctp=3,vblpd=7,gbsp-,gf=3,nbtq-,vjsg-,jsv-,lqfv-,np=4,xh-,tq-,xs-,vk-,hb-,mmn-,vbz-,kpjqgm=5,dkz-,rzjkqp-,tvm=3,dz-,kftx-,khn-,nj=2,cnn=3,cl-,sf-,vc-,zmlr=3,lxmkfx=3,blfx=9,vbmk=6,tpnmp-,sqjgc=5,rz=2,bszd=6,kkc=9,dnkf-,lmlx=7,ddxn-,bhfh-,gflrmd-,xb-,mmn=2,jfjbj=1,zm-,sqd=4,kl-,dfz=4,ktj=5,lxmkfx=2,qxkrd-,dp=6,hl-,lqfv-,kx-,vbz=5,qf-,sv-,kpqvtc-,vhx-,ps=1,fr-,vbmk-,bnhz-,tj-,rlrlql=2,np=4,vs-,vbmk-,pmz=3,pbk-,zxt-,ck-,xf=2,jtsdd=7,ng=1,gn-,qfb=5,mf=4,xb-,rc=7,jjd-,xv=6,gzrz-,cqq=5,dzt-,scb-,plvd-,vqbp-,mvmqfm=3,pr=1,nj-,pvv=8,xtsd-,gbsp-,hnf-,fdfc=3,zzd-,kftx-,pbk=3,lrpx-,hbmt=4,mktlhp=2,ld=4,sf=4,rxv=1,kkcd=9,dph=7,ssmflk-,vnhfc=1,hrbj-,ljsvc=6,rt-,xf=5,tq-,npm=1,kkcd-,spm=7,ljsvc=4,lpd-,nh-,cnr-,xmxf-,cxq=6,mjz-,hpl-,lh-,grlkl=7,pv=9,pqf=1,zsx=7,vbz-,vgln-,dvz-,zl=6,js-,rqx=8,hdxvhr-,pkg-,tzjln=1,nhsvv=7,ggm=5,zz-,kmm-,zngsp=5,gqsr-,cnn=8,vrc=3,zxt-,txpx-,jmthd=9,gbsp-,gn-,zrq-,ss=5,xjpbxm-,ssmflk-,sr-,kl-,gp=9,mhh=7,bpqv-,mvmqfm=6,vr-,kmqjt=4,xnmq-,hvglb=5,qpf-,xb=5,jgmnxd-,sfp-,sscn=8,pcnzf=4,rr=7,gqsr=4,xs-,ql-,pxn=6,jf-,ckb=6,ps=7,bzpv-,qcm=5,gf-,vk=8,hlg-,kjrc=4,dnkf-,kjrc-,qgm=7,pt-,mmn-,dphx-,dsg=8,brp=5,lq=6,kpqvtc=8,xhs=1,tz=1,rm-,qht-,jhl=3,mr=1,tj=4,pnp-,zngsp-,lcr=5,fr=9,vgln-,bz=1,nfgp-,xzt=1,xzbz-,cqzt-,vblpd=9,mg=6,dd-,xtl-,mf=7,qln-,qxj-,mgpp=7,cb=7,zf-,pkbv=2,fgmpc=4,lc-,dmp-,zxt=1,db-,hrbj-,vnk-,smtd=1,cjb-,dtt-,zlcmgc=1,kkcd=9,xh=3,sqjgc-,td=9,npm-,cqbvs-,hj-,sf=2,zf-,mph=7,zcjvl=4,dkms-,rgh=6,zzx=4,hm=4,tz-,vr-,vf-,cqq-,bgh=1,sn-,vbz-,sxlh=3,xtl-,lqt-,kd-,mg-,vf-,lg=5,fnh-,gbsp-,ksn-,mlcn-,vqzhc=8,gzrz=6,lcr=3,qxj=1,hpl-,dphx=5,js-,fm=5,vgslz-,vf=5,ns=2,qcm-,ds-,pr-,vqfz-,hl-,mnphn-,ctp-,qht-,dv-,kd=1,lrpx=9,bpq=1,qgm=9,ckb=6,zf-,vps=5,gbkt=3,zk=4,lztd-,tpnmp=9,rr=9,rpgj=5,dbffb-,mvmqfm-,fzm=8,bpq=9,lxmkfx-,sf-,br-,jxj=1,snpgsm=2,bj-,fsz-,vjsg-,gxx=4,hbmt=1,gflrmd-,rtj-,zl-,snpgsm=7,ppq-,vrzjf-,dv-,njvd-,sxlh=1,xgr-,tv=8,kmqjt=2,cfnbp-,xxj=1,zngsp=5,cqr=1,jc=9,gr-,qxkrd-,xzbz=9,xnmq=1,zcjvl=1,vjsg=4,fx=2,srp=2,kpfr-,bbsk-,xqfrg-,tvm=1,pqf-,fdl-,ss=5,bnlpjk=6,dphx=6,vbz=4,grlkl=7,gxx=1,lrpx=3,drls-,dph=8,vs=4,sbt=3,jpc=5,pbmldc=8,ddxn-,br=3,qln-,rvcd-,dmp=5,dhh=5,fjh-,sn=6,txpx=2,ctdbt=1,rzjkqp=7,bzpv-,gt=6,sb=8,qht=9,kpz=2,hvglb=8,mr=3,fq=5,jm=5,rzjkqp-,ndmt=6,bzj-,lg-,ks=1,npm-,vqbp=4,lcr-,km=9,tv=6,thncf=6,bxx-,vq-,rpn=6,dz=2,tcs-,mr-,kd-,spfc=8,npm=7,hrbj=1,cggz-,jjd=7,drs=6,vr-,rfdrk=4,kc-,pkbv-,zmlr=1,lqt-,hsb=1,xb=5,pljg=5,bq-,gxx=5,vrzjf=9,xhs-,xk-,vdf-,lg=6,xrb-,vc-,pbmldc=5,js=5,ld=4,sbt=4,gftx-,kpz-,khx=1,mr=9,lztd=7,xqv=8,cb-,sbx=6,qpf-,vgln-,xcq=9,jf=4,zs=2,cv-,vqc-,vgln=3,bmnlf-,nsxz-,vttk-,jx=1,tnfx=9,zv-,fdfc-,rc-,lhks=4,zlcmgc-,grfxxs-,hrbj=4,vqt=8,ts=5,hd-,tq=8,bg-,mf-,pcnzf-,sh-,trzx-,xb=4,rc=8,bzj-,pkg=8,hlg=5,qcnnzx-,ck-,mjz-,vth-,mgt-,cct=1,bkxf=8,rpn=1,mg-,fjg=3,vlv-,zngsp=8,ksn-,hnf-,dbh=7,pxn=5,hsb=8,mq-,jsv=7,ccf=1,ts=8,kz-,xgr=5,xbx=5,sqd-,fpg=8,lvs=5,smtd-,zs=3,dsdm-,nrc-,jtz=8,jxj=3,sv=3,mlcn=9,psfnx-,kpqvtc=9,rsn=4,zdl-,lztd=4,vnk=2,dmp-,sscn-,zj-,dd-,zdl-,smtd-,tj=3,ggm=6,ff=2,zzd-,pfjml=7,chpn-,mjjk=4,spm=7,sfp=6,xbx-,dbffb-,sh=9,hnf-,pmz-,rzjkqp-,hb=8,bj-,hgp-,txkh-,znjg=2,vqfz-,vgln=2,zzd-,crb-,vqt=3,ssmflk-,bqpp=4,xt-,dbffb-,bhfh-,hsb-,rvcd-,sbt-,txpx-,jtz-,cb-,dp-,mvmqfm=3,ddxn-,msbfzl-,xgk-,jpc=5,phsl-,dbffb-,zcjvl=4,tvm-,pv=2,sfp-,nnn-,jmthd=2,qcnnzx=3,xnmq-,tgqp-,fzm=3,jpc=2,cnn-,jhhqj-,mvmqfm-,rtj-,km-,lk=6,slzd-,chpn-,xb-,tpnmp=9,vkz-,lqt-,vf-,gbsp-,cmpc-,xc-,pkg=5,tz-,dzt-,mvmqfm-,dvz-,lhks-,npd=6,lfg=7,bgh-,vqbp=5,grlkl-,lvx=4,mgpp=1,znb=6,zf=4,lfl-,cr=2,dbffb=3,jzxp=2,mhh=2,gftx=7,lfg-,gkn-,xb=5,djmlb-,qln=8,zmlr-,dkz=6,grlkl-,rt-,zcjvl-,vblpd-,lztd-,lfg=2,gxg=6,bj=8,zs=9,ssd-,lcr-,tqx-,ncjb-,kmr-,trg=4,kmm-,cjk-,tq=7,qqp-,scbpb=1,rc-,xzt=1,ftz-,sjb=2,rknz=4,gbsp=4,qrn=3,dhh-,mph=1,pjfk-,grfxxs-,xfn=3,bq=6,kd=3,vjzt-,vgln-,rv-,lcr-,blfx=4,gzrz-,kmm-,hj=8,pvv-,khn-,jfz-,gr-,gr-,dhh=9,ps=3,vblpd=9,sqd=3,hz=7,mp-,lxg=1,bnlpjk=3,jjd-,txpx=7,fx=9,nkx-,bg-,rvcd=4,sr=6,qz=3,vdf=9,ld-,nsxz=1,zdtz-,dzn-,hb-,vjzt-,nfgp-,cmbv=6,pljg-,sqd=1,ssd-,fzm-,qv=8,tn-,cct=8,cnn=2,vkh-,zl=8,xcq-,ppq-,scb=5,pbk=6,jmrz-,xgr-,kpjqgm-,nglvx=5,qht-,fnln-,cl-,kkc=9,kpfr-,xtl=9,dsg-,xrb-,zdm-,mmn=5,tz-,gh-,vkn-,vkqx-,gkn-,qxkrd=7,rt=7,rh=3,bc-,nzq-,mtx=8,jc-,kfp-,dkms-,thnmq-,jhhqj=6,vhx=2,lqfv-,kc-,vqzhc-,bzj-,fmkjj=5,ql-,fdfc-,kftx-,ktj-,bgh=2,cqzt-,rtj=2,vkh=2,dfz=6,xstdx=9,npd-,hf=8,jhhqj=1,snpgsm-,xrb-,hm=5,bx=1,ql=2,djmlb=7,xcq=6,xbx=4,kl=9,dk-,sh=7,ctf-,sqjgc-,thnmq=7,lhks=9,xdfz-,tk-,pt-,vgslz=7,dtv=5,sbt=9,kv=1,drs=3,db=8,lqf=6,xhd-,qln-,ckb=2,kpn-,qvlzn-,fb-,xcq=3,vqc=2,ct=4,dtck=5,vgslz=9,shn-,rv-,cr=3,tpnmp=1,cct-,zj=8,bnhz=4,psfnx-,nnn=8,kl=8,ps=5,ng=6,cnr-,snpgsm-,dnkf=9,znb-,bgkjq=1,pjfk-,pl=9,dtt-,sqd-,hgp=7,gs-,qrn=8,dvz=4,kftx=7,ggqq-,cl-,cr=9,jsv-,vjzt-,pxvxlh-,kqh=1,tqx-,lvx=9,mf-,rpn=2,bpq=4,km=4,vnk=6,cqzt=9,bxx=8,tn-,pgd=8,dp=7,thncf=8,zdtz-,vgslz=5,cnr=7,nkx-,hdxvhr=6,tj=6,xnmq-,qf=4,lq-,vnk=7,rpn=4,zd=8,rxv-,lln-,sbt=6,mhh-,rz=5,dtt=9,gxx=7,pnp=2,lqt-,xdfz=7,lhks-,gflrmd=8,kpqvtc=3,tj-,pvv-,xcq-,xfn-,kpjqgm-,kc=6,zngsp=1,vpxv-,xfn=1,qqp-,tj=2,xrb-,zsx=4,lfl-,vqc-,nq=9,lrpx=7,rpn-,phsl=7,chpn-,vq=6,dd-,ff=1,lztd-,lq-,vx-,lg=3,jmthd=7,vnhfc-,jgmnxd=6,fpg=3,xs-,ggqq-,msbfzl=7,znjg-,xt=8,xzt=9,ff=3,mmn-,dmp=7,hrbj-,vth-,dkz-,nsxz-,bnhz-,bq=2,hm-,dm=7,trzx-,xmxf=1,npm=7,qqp-,fnv-,bzpv-,hnf-,ztk=4,hz-,bx-,srp=4,sqd-,zk=5,gbsp-,fsz-,vlv=6,hpl=5,jgmnxd-,rtj=9,lh-,qhvz-,vkn-,blfx=6,sc-,rqx-,tslfp=6,zdm-,fsz-,mm=5,lc=5,ghm=6,ktj-,kl=6,dph=6,ztk-,cb=2,kz-,psfnx-,mq=4,vqc-,dph=9,zj-,js-,znb-,vqbp=9,dx=2,dtck-,gt-,br=6,zrq-,bqpp=5,ckb=6,ng=9,zdm-,jc-,lvs-,ql=9,zf-,sc=2,dph=9,bz-,vbz-,khn=6,kmr-,drs=7,kx-,vlv-,pljg=6,vpxv=6,fsz=5,vqbp-,tcs=5,qz=9,xp=2,xp=7,kx-,ssd-,bz-,vs=5,mgpp=8,rnsbt=1,hdxvhr=4,rz=9,nq-,ktj-,pv-,cmpc=5,psfnx-,pqf=9,tv=4,jpc-,jfjbj-,vps=6,bszd-,jx-,xhs=2,cfnbp-,cb=6,nfgp=8,mg-,fjh-,mtx-,vrc-,cr-,njvd-,lffv-,qqp=4,cr-,js-,jx-,pgd=9,qg-,vsj-,bnhz-,sjb=1,nglvx-,fkzq=9,qhvz-,nlcrm-,kmm=2,jzxp=2,zrs-,mtx=9,hnf-,lk=5,nq=2,rpgj=1,tkpb=7,zzx=7,pnp-,rgh=1,qhvz-,zpc=1,pmz-,nhsvv=5,zqr=6,cggz-,lhks=3,bpq-,tfd=7,jm=4,kpjqgm=9,qxj=8,pv=8,pmz=2,jf=2,gxx-,jf-,mktlhp=1,lrpx=2,lqf-,scbjp=3,fdl=7,khn-,ddxn=7,dzn=6,chpn=5,vpxv-,kl=8,sqd-,vnk=9,vbz-,cqzt=9,lc=4,nhsvv=7,ph-,bz-,xzt=7,cqr=8,spfc=3,vsh=9,bbsk-,khn=1,bl-,lffv=3,pl=8,zdl=7,qg=2,vkz-,qht=9,xhd-,blfx=5,vbmk=5,npd-,zv-,bpqv=2,tvm=6,xqv-,zv=8,dbffb-,trg-,cqbvs=2,vqbp=4,kpfr-,ql-,cggz-,kpfr-,sbt-,plp=2,fsz=3,ct=1,zcjvl=6,rpgj-,nfgp-,zqr=4,zn-,mq-,ps=8,rtj=4,kpqvtc-,ndmt=3,plvd-,xv-,rt-,fb-,psg=8,sxlh-,nhsvv=4,pkbv-,vrzjf=7,dzn=7,mmn-,jfjbj-,vnkmzj=6,dp-,rh-,cv-,dzn-,lg-,rpgj=1,dph-,ctdbt=3,cfnbp-,gxx=8,hj=3,xnmq=4,lc=5,bb=9,zdl-,zzd=9,hzlzn=9,dz=9,rz=9,bzj-,xb=4,lrpx-,vlv-,dph=1,cqbvs-,ghm-,pcnzf=2,vr-,cct-,mph=2,nsxz-,ssd=2,hfrdk-,psfnx=9,rc-,pbk-,znb-,zmlr=1,dk-,dkz=3,rqg=3,mv-,zv=9,sscn-,bszd=1,xhs-,dzt-,mgpp=3,dnkf=6,tnfx=9,drs-,spfc=3,dbsf-,sr-,lfg-,bg=2,gbkt=7,jxj-,tv-,fjh=9,fdfc=5,gs-,vbz=1,dbsf=9,zdtz=6,fgmpc=2,njvd-,hfrdk-,sh=8,scbjp-,zn-,msbfzl-,px-,spfc=6,vdf=2,vc-,vlv=2,cqq-,vhx=1,hl=3,vkqx-,fx=7,gct-,vrc-,hpl=8,zm=1,ktj-,xmxf-,rqg=7,zm=8,cqq-,zlcmgc-,kkcd-,dtt-,jmrz-,gf-,xzl-,pcnzf-,tslfp-,pxn=2,ccs=5,lmlx-,cct-,vgln=4,xt=3,gxg-,vq-,dz-,vqc-,bgh=6,zbgdxg-,ctdbt-,mg=6,fb=1,xbx=1,xv=2,lvs-,kd=9,slzd=2,xb=3,mvmqfm-,kv-,jfz-,jc=8,mgpp-,shn-,kpn-,scb=9,txpx=5,zf-,vhx-,rnxt-,pxn-,mg-,gftx=6,fsz-,xnmq-,bz=4,nfgp-,gkn=7,bnhz-,qpm=1,vhl=5,pm=1,spm-,xfn=8,xf=9,vqbp-,trg=1,pkg-,lrpx=4,mf=7,rpn=7,vqbp-,vdf=8,zz=5,tslfp-,dz=1,fjg-,cb-,zqr=3,clg-,js=2,xjpbxm-,fnln=4,pgd=7,hzlzn=6,qrn=4,khn-,psfnx=7,grfxxs=8,lvx=4,spm-,zl=6,grfxxs-,trg=1,lmlx=2,rsn-,rb-,cnn-,zdl=1,mmn=8,rr-,scbjp-,zk=2,xrm-,lc-,pkbv-,ss-,qhvz-,fq-,bnlpjk-,kkc=8,fpg=7,tgqp-,jzxp=8,rm=2,plvd-,lfg=5,jmrz=9,vk=7,spsx=2,spfc=5,plp-,cfnbp=6,jzxp-,fjh=3,xjpbxm=4,br-,nrc-,sn=3,rc-,lfl-,plt-,np=5,bgg-,xf=4,vlv-,vrc=5,cct=5,vps-,xzl=9,nnn-,pvv=9,dmp-,sf-,hm-,vtp=7,cqr=7,kv-,rnsbt-,qcm-,dvz=1,dbffb-,dbh=4,bzj=9,ctdbt-,tnp-,ksn-,dmp-,qz-,lxg=6,dtck=9,lvx-,bfz=6,xgk=7,qpm-,ggqq=2,grfxxs=3,msbfzl=1,xqfrg-,nlcrm=5,hzlzn-,rfdrk-,xhs=8,xnmq-,pbk=9,jsv=9,zk=8,dtck-,jtz=2,nhsvv=6,ddxn-,ks-,tcs=1,jsv-,xb=1,ff=1,scbjp-,mjz=7,pbmldc-,tcs-,xhs-,plt=8,zs-,xbx=6,bxx-,qcnnzx-,dkz-,dvz=2,rh=4,mhh=7,djmlb=7,bnlpjk=8,jgmnxd=9,pzd-,lffv=2,xqfrg-,cb-,tzjln-,bfz=1,fnh=8,xf-,cqbvs-,lqfv-,ld-,jtz-,nj=8,cjk-,dsdm=9,thnmq=2,ck=8,bpqv=4,rgh-,mf-,sqjgc=8,rzjkqp-,dvmm=8,zthrd=2,mtx-,cqzt=6,gct-,spfc=7,trzx-,hlg-,rqx-,lffv=5,vf-,bqpp-,nhsvv=8,kpfr=2,dfz-,cnn-,gkn-,hb=2,vnk-,px=2,hxd-,zthrd-,xv-,jzxp-,vkn=7,cxq-,ccf-,xfn-,lxmkfx=5,pljg-,lqfv=5,rfdrk=9,khn=5,cnr-,vr=9,kd-,ssd=5,mmsz=7,fnh-,mf=8,lvs=3,vgslz-,pfjml=7,dtck=8,dph-,gk=4,ntg-,lpd=2,fnv=1,mnphn-,xzbz=1,zd=8,gf=1,tr-,lpd=9,vjzt-,ss=7,qnd-,db=2,vz-,lxg-,khn=3,vkqx-,fjg-,zrs-,tnp-,rc=9,fdfc=4,tqx=1,scbjp-,nbtq=6,kmqjt-,jc=9,txpx-,pr-,vps-,zv-,vnhfc-,jmthd-,blfx=1,vqt=4,spfc-,tzjln-,cfnbp-,zf-,ndmt=4,xqfrg=2,cmbv=4,mtx-,ktj=5,nh=1,mm=6,xv=5,ng-,bfz=2,zj-,pt=6,njvd-,qcnnzx-,qgm=8,fjh-,zqr=9,tn-,zz-,mvmqfm=9,gt=3,vgslz=4,px-,fnh=7,njvd=8,jtsdd=2,rzjkqp-,np-,ph=5,zqr=6,cb=6,sxlh-,pfjml=2,dmp-,lxmkfx=2,kpqvtc=4,mvmqfm=1,rknz=8,zcjvl-,tq=1,nnn-,vc-,zdl-,ndmt-,dtt-,mf=4,qcnnzx-,zzx-,pkg=6,xfn-,rnsbt=8,rgh-,vp=2,vpk=1,zz=2,mkj-,mr-,lln-,dm-,cfnbp-,sbx=9,dsdm=1,kpqvtc-,zzx-,bqpp=9,lqf-,cqr-,mlcn-,spm=1,dhh=6,js=4,pg=1,vbmk=3,vqc-,ftz=4,zxt-,zz-,xtl=6,pr=9,cnr=8,rqx=4,bszd=3,rl=6,phl=4,dvmm=2,drs-,bnhz=4,cggz=7,nhsvv-,cnr-,bgg=4,tr=1,pjfk=8,fq-,kmm=2,jjd=9,dbsf-,sxlh-,xzt-,mjjk-,pfjml=8,lmlx-,xtsd-,ftz-,nq-,kd=3,tk=2,vth-,nrc=4,vqbp-,grfxxs=1,ssmflk-,mmsz=6,lh-,td=2,vc-,qht=1,ccs=3,fpg-,ff-,ppq=2,cl-,ff=9,gk=1,zzd-,mv-,pqf-,vq-,vtp=1,thncf-,gt=7,ksn-,bnhz=8,xmxf-,ktj-,cnr-,ctdbt-,cggz-,vps=8,ff=1,jhhqj-,hd-,dphx=3,zk-,bg-,pkg-,gh-,nl=4,dtv=1,ph=5,xk=4,sbt-,sjb=4,tslfp-,kftx-,gxg-,mjz=9,bzpv-,dvmm-,zlcmgc-,mvmqfm-,jmrz-,sf=3,zz=4,vsh-,kfp=9,cggz=4,pm=4,nlcrm-,pg=9,xhd-,spsx=9,xmxf=8,bbsk-,pr-,qhvz-,vqfz=7,dp=5,ndmt-,nlcrm-,mgt=8,gflrmd-,vkn-,jsv-,qrn=7,gk-,rc=9,qvlzn=2,xtsd-,xzl=8,vdf-,fb-,mr-,vrc=2,qpx-,bmnlf-,scbjp-,vpk=5,vjsg=3,rvcd=7,tk=2,xstdx=9,tcs-,zqr-,kpfr-,rz-,vgln-,dvmm-,lqfv=8,bszd=3,nglvx=9,lq=5,dnkf-,sfp=3,pxn-,blfx=6,zzd-,sbx-,dfz-,fq=2,qqp-,rtj-,sb-,nbtq=2,bb-,zpc=6,tfd-,zl-,scb=4,nfgp-,kftx-,zn=8,rh=3,fzm-,qvlzn=3,ctp-,qrn-,ztk-,pmz-,rh-,vpxv-,lvx-,cq-,jmrz=8,sqd=2,kftx-,ppq=7,dvz=3,vblpd-,jgmnxd-,gxx=6,vnk=5,ntg-,sjb=3,dkms=3,bgh-,zsx-,xrm=8,pkbv=7,vttk=7,lxg=5,jm=9,vqbp-,kfp-,hzlzn=5,hl=4,trg=9,lq=7,ksn-,mmsz=5,px=2,lcr=4,td-,hfrdk-,rnsbt-,qln=3,dvmm=6,gftx=6,ppq-,xbx=8,pvv=8,xcq-,tzjln-,tdl=8,vf=9,sxlh=9,bgh=5,bqpp-,zxt-,xs=5,kmm-,ps=5,ctdbt-,hd=4,md=7,xzl=5,jfz-,tzjln=9,gpg=5,lmlx=2,phsl=2,jx=3,lfl=4,kpfr-,db=9,fdl-,rm=3,bqpp=7,mp-,xv-,bpq-,pg=1,nlcrm-,xk-,mq-,lk=7,hrbj=1,hj=1,ss=8,hnf-,xqfrg-,tnfx=9,znb=8,kl-,lqf-,dsdm-,khn-,cct=4,bzj-,spsx-,lc=6,jfz=4,plp-,fb=1,bgkjq=2,pvv-,br-,cfnbp=5,sqjgc-,sv=5,mmsz-,dd-,lrpx=5,mgt-,hdxvhr=1,dsg=6,zz-,gkn-,fjg=7,px=4,lfg=7,jfjbj-,ghbr=4,ftz=1,lffv-,pjfk-,spfc-,mlcn-,vth-,qxkrd-,ctdbt-,qpx=5,gqsr-,sscn=7,ghbr-,vqbp=8,bgg-,zf=2,qxj=8,bpqv=6,hlg-,tn-,lfl-,bzj-,tk=4,ql-,gxx=6,gqsr-,mtx=1,rqg=7,zzx-,lcr-,bx=7,nl-,msbfzl-,bhfh-,sxlh=7,nsxz=8,bgg-,pfjml=4,pv-,qv-,kx=4,dp=5,gxg-,qpx=9,mjz=5,zxt-,tv=4,kx-,xtsd=7,txpx=4,hdxvhr=7,pzd=2,vqc=4,xjpbxm=3,dm-,rvcd-,ps-,hbmt=9,nsxz=5,cct-,xhs=3,cqr-,fm=3,pzd=5,qxkrd-,rz=8,pgd-,txpx-,xk-,hnf=7,hlg-,lcr-,nqcj=9,pgd-,spm=3,zk=5,jxj=9,vth-,srp-,sbx-,cs=1,vpk-,srp=7,sqjgc=7,ks=1,dvmm-,zqr=6,gbkt=5,rl=1,phl-,mg=9,rm=2,dsdm-,rz=2,pgd-,gf-,bxx-,nq=3,vtp=6,sbt=9,kpqvtc-,qcm-,td-,bnhz=3,rknz=6,mjjk=6,qf=9,thncf=5,bb-,vjsg-,cnn=6,jxj=6,vkn-,gbsp=3,kpfr=1,lqfv=6,kv-,gt=1,fq=4,kl=4,rtj-,vth-,pfjml-,hbmt-,vr=1,xmxf-,sc=1,cgp-,jx=1,chpn-,xcq-,vttk-,vpk=1,mnphn-,mtx-,gxx=1,cgp=2,qvlzn=4,sr-,ct-,rh=3,rzjkqp=2,ld=9,pljg=6,vlv-,rgh-,spfc-,jm=8,fkzq=4,xmxf-,gp-,chpn=8,xtl-,cggz-,xnmq=3,rnxt=1,znb-,nfgp-,ts-,bqpp-,fnln=3,pljg=5,hz-,kfp=4,cq-,bgkjq=9,vs-,zngsp=7,jsv=3,dbsf-,kx=4,ph-,xb-,dsg=6,sn-,jmrz=4,dzt=7,mnphn-,vk-,kkc-,kpn-,vblpd=6,vqbp-,dmp=6,hsb=1,zlcmgc-,vbmk-,dp-,tk=3,drs=8,pl=4,sbx-,jhl=9,rknz=5,qcm-,mp=8,vqfz=9,ctdbt-,qp=2,vsh=8,nkx=8,qxkrd=6,bpqv=9,cxq=3,nbtq=1,sxlh=4,fnv=5,vnkmzj-,gpg-,nh=8,zd=1,rzjkqp=6,qpx-,bzj=2,fkzq-,lxg-,bb-,lffv-,xs=3,rzjkqp-,bpqv-,bz=3,zn=5,br-,zthrd=5,kc=2,ss=2,kf-,bb-,bz=6,hb-,dtck=4,sxlh=9,mmsz-,znb-,mhh=3,nhsvv-,ntg=1,bqpp=2,thncf-,tnfx=8,nglvx=1,bzj=3,gcbtgm-,cmbv-,ctp-,pg-,zpc-,rpn=1,gn-,ncjb=8,kmr=3,tz-,bnhz-,dvz=2,mvmqfm=5,jc-,plt=6,cl=8,vc-,qgm=2,ss=5,jc-,cggz=4,chpn-,qln-,nh=8,pljg-,km-,pgd=7,tqx-,xhd=2,gmrrx=3,bhfh=6,bx=3,msbfzl=2,rm=6,qcnnzx=9,xgk=6,gct=4,kpjqgm-,jx-,tgqp=4,sv=2,xf-,ks=9,pzd=6,zrs=3,md-,thnmq-,zzd-,xnmq=3,rc=2,kmm=9,rz-,jc-,rsn-,dphx-,bqpp=7,vs=2,kkc-,sqd-,tdl=9,zbgdxg-,qgm-,gmrrx=7,cb=4,bx-,lvx=8,slzd=1,fzm=5,cs-,xs=5,xxj-,xhd-,qcm=2,xxj=6,vz=8,cqzt=2,fdfc-,vx=6,rpn-,gxx-,nhsvv=6,mktlhp-,vjzt=4,lztd=7,zs=7,mv=2,nlcrm-,tkpb=9,sxlh-,pv-,qxj-,xcq=8,xgk-,scbpb=3,dk=9,mjjk=3,lztd-,njvd=8,znjg=5,lxmkfx=5,snpgsm-,ph-,pr=1,rpgj=4,nzq=2,kc=2,rsn-,dzfqlb=6,gf-,qcm=1,tcs-,mm=2,fjh=6,vp=6,sl-,kfp=4,tslfp=9,hl=1,fzm-,lmlx=2,bnhz-,sfp-,pcnzf-,gct-,jc-,xk-,zpc=2,jxj=6,tzjln-,bqpp=5,pjfk-,cct=5,qgm=8,sxlh=7,lhks-,mmn-,rpn-,vp-,qnd=9,mjz=2,td-,gct=6,sfp-,cb-,tnb-,zf-,chpn-,pkg-,gs-,mmn=2,mnphn=9,pxvxlh-,fm-,vdf=2,vnhfc-,njvd=1,npd-,cl-,vhx-,kz-,hl=8,bpqv=7,ks-,pl=6,txkh-,mjz-,bl=1,cqzt-,bbsk=7,ghm=3,tpj=4,tv=2,qf=7,tpj=7,ztk-,mq=2,jtz-,vkn=4,cs-,xdfz-,ccf-,lxg=9,ctdbt=1,trzx-,bnhz=6,gf-,kjrc-,vr=1,msbfzl=2,vblpd=6,qxj=7,cjk-,nj=4,cjk-,sjb-,ng=4,rnsbt=4,rtj-,frgf-,tqx-,sbx=9,kmqjt=8,rfdrk=8,ctdbt=5,mldgtn=8,rfdrk=7,pnp-,phsl=3,vc-,hz-,rzjkqp=9,njvd-,qqp=7,pjfk=1,sscn=2,pkbv-,lfl-,vp=5,kr=4,ccf-,plp=8,lpd=5,mph-,rh=6,zl-,lc=2,jhhqj=5,xf=6,snpgsm-,lq-,sxlh=6,vsj-,trg=1,cl=1,vjsg-,gp-,tn-,mlcn=8,gmrrx=5,qfb-,fx-,tzjln-,tfd=2,bg-,bkxf-,qpm=3,npd-,ssmflk-,fpg-,rknz-,zngsp=1,nlcrm=4,pt-,vkz-,mq=7,mldgtn=2,gr=7,fr-,xzt-,mkj-,jmrz=5,lxmkfx-,pxvxlh=3,vbz-,nq-,sbt=8,rtj=8,ktj=3,bpq-,mq-,lqf=9,vp=7,vz=1,bb-,ndmt=4,vdf=7,mr-,fnh-,rzjkqp=7,sxlh-,bszd=1,vgslz=5,zd=2,tpnmp=6,fr=2,bgg-,lk=1,qpf-,bpq-,xt-,ps=7,pxvxlh=1,fkzq=7,mgpp-,cqzt=6,bbsk-,clg=7,ztk-,bl-,vjzt=4,tk-,plvd-,jsv-,zd=7,dm-,gxg=8,lxg=2,bgkjq-,np=4,frgf-,lh-,ssmflk-,bc-,vjsg=9,rfdrk-,jx-,pbk=7,npm=5,kjrc-,jfz=8,bz-,bfz=3,ld=6,hj=4,msbfzl=4,clg=2,vhx-,vq=1,hb=4,mmsz-,sbx-,xnmq-,cqbvs=8,hgp=5,qlf-,nfgp-,ztk=8,vnkmzj-,cmbv=9,jjd-,rz-,bl-,jfjbj=7,hxd-,tfd=6,sh-,frgf-,ctp-,sjb=7,vsh=6,br=7,vz=9,px-,lrpx-,fzm=3,tslfp=9,znfd=5,bpqv=2,mktlhp=2,hm=9,znfd-,xgk-,xdfz=7,gxx=8,vpxv=3,qfb-,qnd=1,gpg=1,txpx=4,zmlr=4,zk-,plt=5,dx-,qfb-,vqbp=2,hzlzn=3,bfz-,mgpp-,xf=1,fgmpc-,rl=9,fjg-,qpf-,tslfp-,qvlzn=3,gbsp-,scbjp=1,mktlhp-,jhl-,fdl-,jmrz=1,rc=8,dmp-,clg=2,xtl-,cqbvs-,qfb=9,lpd-,kmr=3,xh-,lh=4,spfc-,cnr=1,lqfv-,scb=7,kd-,rqx-,tpnmp=5,pjfk-,qz-,gf=7,tz=9,kjrc=5,td-,bl=3,dmp-,ccs=9,rzjkqp=5,npm-,kpn-,pljg=6,dsg-,bg-,mhh-,mvmqfm=4,xzl-,plp=7,tk=6,zn=7,njvd=6,lqfv=7,rzjkqp-,kmqjt=5,cv-,mf=7,gxx=3,pxvxlh=4,nbtq-,vqzhc=7,bpqv=2,sl=6,ccf=5,slzd-,ssmflk-,sf=3,vhx=8,mmsz-,chpn-,fzm=2,xtsd-,tvm=1,zk=9,hm=2,cv=1,lq=2,dzfqlb-,kmm-,rxv=5,txpsv-,nrc=7,ps-,gflrmd-,tv=6,gs=6,znfd-,kc=3,zzx=8,vc-,tvm-,rtj-,kqh-,dsg=9,fx=3,hm-,rsn-,lpd=1,zjvd-,nq=6,hgp=3,vqbp=5,jzxp=5,pxn-,js=4,zthrd=3,nj=3,znb-,ncjb-,kc-,kmr=6,lcr-,vs-,kpfr=3,jgmnxd=9,bhfh-,rv=4,ks=3,hf=9,bgg=4,fsz-,hf-,np-,zzd=8,pgd=6,kmqjt-,znb-,fb-,qlf-,zj=1,pvv-,nzq-,ng-,lmlx-,zdm=4,hvglb=9,nhsvv-,kjrc=4,hvglb=1,ctp-,qlf-,lfg-,jhhqj-,txpsv-,bxx=3,ppq=2,vhx=7,scb-,lq-,sscn=9,pljg-,gxg=2,cv=7,zm=6,hdxvhr=4,hpl-,mkj=5,zl=7,zcjvl-,xp=3,bszd-,lxmkfx=5,rgh=7,lztd-,xv=1,cjb-,rqx-,gflrmd=5,lqfv=1,fdfc=4,vblpd=6,tslfp=5,rnsbt-,tpnmp-,cmbv=6,cq=5,gk=2,zdtz=8,lhks=2,gr=2,cxq-,xzbz=7,bpqv-,cmbv=3,cqq-,bgg=2,znb=3,vkn=7,gxx-,pv-,vf=7,gbsp-,qp=6,grfxxs=2,vqc=6,lh-,msbfzl-,dfz-,fgmpc-,kmqjt=3,qrn-,pfjml-,pm-,qpf-,qg=8,vlv=4,cq=6,lq=1,tnfx=2,cgp-,lq-,vgln=7,bgh=3,ggm-,jtsdd=1,xk=2,rqx=5,zv-,mhh=2,bpq=6,fdfc=6,lmlx=7,hdxvhr=5,jgmnxd-,lvx-,vrzjf-,dtck=5,ph-,rqg=5,gf=9,nqcj-,vqzhc-,bj-,fjg-,qln-,jpc-,vnk=1,sbt-,qf=8,qrn=8,gpg-,nglvx-,dbsf-,hz=1,jfjbj-,hbmt=1,sqd=1,cl=7,bzj-,jtz-,vblpd=7,znfd=1,gpg-,drs=3,gn=7,mvmqfm-,cr=3,tpj-,ck=3,qp-,zrs-,tpj-,gcbtgm-,zv=8,lfg=8,jxj-,ftz-,zz-,fdfc-,plvd=9,spm-,fkzq-,xcq-,sqd=4,dph-,rsn=9,vjzt-,xt-,dsdm=4,qlf=3,qht=2,js-,sv-,slzd=9,spsx-,zk=1,rv-,jxj-,scb-,db-,ff=2,cq=9,nh-,fzm=1,cs-,rzjkqp=4,vx-,qp-,spm=9,tnb-,bgg-,phsl=2,lg=5,gmrrx=3,pfjml=1,psfnx-,dbsf=3,jmrz-,lztd-,vrzjf-,vkqx=8,mv-,sqd-,hrbj=8,tgqp-,sbt=6,lhks=2,vp-,mv=6,snpgsm=9,xf=3,tnb-,hl=5,vqbp=7,zd=1,fm-,hbmt=7,scb=1,txpsv=3,jf=6,rc=3,vs=7,qpx=1,sf=3,zbgdxg-,xv=7,xv-,hgp=3,nfgp-,qht=8,vblpd-,ql=9,kmr-,rtj=2,lpd-,rfdrk-,rxv=5,sbx-,rfdrk-,pgd=8,kpjqgm-,vjsg-,cgp-,fnln-,dvz=3,pbk-,mvmqfm-,lmlx-,ndmt=2,trzx=7,tnfx-,xgr-,zlcmgc=5,plvd=8,gs=5,sv=2,dk=9,vnkmzj-,vkn=3,xbx=9,kl-,psfnx=8,ppq-,vq=3,xzl-,mldgtn-,plvd=7,gcbtgm=1,sscn-,drs-,bnhz=2,lhks-,sf-,pbk-,sxlh=3,vkn=2,vqfz=9,gct=1,cmbv-,qgm=5,lg=6,tnp=6,jsv=7,mmn-,xnmq=3,vx-,fkzq=1,vqbp-,gbsp-,txpx=9,jtz-,hdxvhr=8,xk=4,xxj=3,vrc-,fjh-,pxn-,gbsp=8,hl=5,jm-,zn-,chpn-,nbtq=7,kqh-,chpn-,nnn-,hfrdk-,mp-,bgh-,ns-,vsj=3,fgmpc=1,kd-,dtck-,nh=4,frgf=3,cq-,pt-,vttk-,px-,smtd=7,ctf=8,zn=4,kl-,jjd=4,bzj=7,cnn-,mtx-,pzd=1,ssmflk=4,jgmnxd-,ccf=4,jmthd-,vnhfc=7,srp-,qxj=7,chpn-,nh=2,kkcd-,dm-,mmsz=4,fnln-,lq=6,kkc=1,bq-,nl=3,mmn-,jfz-,zf=4,sl=3,sqd=7,dtt=3,ql-,jmthd-,ndmt-,vqc=2,jjd=2,jpc=4,vrc=9,kpn-,gs-,mjz-,ftz=7,bq=5,cv-,xv=2,mktlhp=9,cmbv-,mtx=6,ggqq=7,fq-,rknz=3,xxj-,zngsp=3,rsn=5,xrb=3,vrc-,fb-,phsl-,plp-,pl=9,cr-,vpxv-,lk=4,khx-,rpgj=2,kd=7,md-,dvz-,rl-,dkz=9,fsz=8,vq-,pm-,xf=7,tv-,tk-,dz-,qqp-,bg=7,xb-,nfgp=9,ng=7,kfp=2,mp-,vbz-,lxg=5,xqv=1,npd-,pvv-,xzl-,slzd-,dmp-,jzxp-,dphx-,txpsv=7,mldgtn-,ql=2,xgk-,mv=7,rl=7,kjrc=6,rl-,jfz-,ctdbt-,tdl-,fq=6,lcr=6,hzlzn-,qpx-,nbtq-,td-,mr=8,zngsp=4,vps-,ssmflk-,djmlb=9,pxn=7,cqq-,nlcrm-,rt-,vgln=9,gn=2,nsxz-,cfnbp=2,xrb=8,ts-,bfz-,lh=1 \ No newline at end of file
diff --git a/aoc2023/src/day16/input.txt b/aoc2023/src/day16/input.txt
new file mode 100644
index 0000000..1778ec0
--- /dev/null
+++ b/aoc2023/src/day16/input.txt
@@ -0,0 +1,110 @@
+\..../.....-...|........\.|...........-..........-......|....././..........\..|...............................
+.../..|.......-............\...........-\|...............\.....|......-...........................-./.......|.
+......../.-.-....\...\-.......................................|..........-.......\.....-.........|......|.....
+....\........./..............|.............-..|.|.\.|.-......\........./..................|..........\........
+...|/.|..........................-........................|............|-..|...../\................./.../.....
+...|.|.......\...................|/..........\\....|....................-..................|..................
+..................\-|..........|.\......|........\.....\...........................-..............\.....\.....
+........./.-./..............................-..........|......|................/.............-......./...|./..
+....-...\..........-......\...............-/.....................\.........-\.........|..........|.....|......
+./............\......./..-......................../.|.-.|........................./.|......|...\.......-.-....
+...........././.............|..........-....../..............-.....\.-......-.............................-..\
+......................\.|.\..................-./.....\....|......................|..\...|.....................
+...|.-...|.............../..//....-\...-.-...........|......-....\.|-.............\....-.|.............\......
+......|.....\-....\.............|../..|......\....--................/....|..../|../.....-........../..........
+.............|.........-.../.|....................\...........................................................
+....\...\.-..-.....|.|...........-........./..../..........-.-....|....-..............-....|........|....../..
+..........|..............\..|........../..........................|.....|\.-...........-......\....../........
+...../.......|..../........-........|./\..\..\.\././.\.............--.......-..................\./......-.....
+....................//...-..........-.............|................/............./.\....../...........-.......
+.\-...|-/.......-........-...-...............\../...........................\/.....\...........\........|.....
+.............................\-......|......\../......-..........|...........|.........-.....\..|......-......
+./................/........-.......|..\..../|............................|...........|.-.|....................
+.\.....|...............-\............|.................|...././.-...\..........|...........-...|...-.....\....
+.......-..../.........\|.....................|....../..|/./|..........|.......|-.......\\./......-............
+.....................\|......../-.............\...|...........................\.....\.\.......................
+...|\.././...................|..................-.../\.-............\.-.........../............../.....\......
+.......\..................\..|../...........................\....\....\..../...\..\\./.-....................|.
+...............|./...\..........|...|....\........./......\...\.............\.\-......|......-...-........|..|
+.........-...........................-...-............\...\.\.................................-....|./........
+.-.|............-.....................-.................\..../......\....\....\....................|.......-..
+.....\.|......|..../................|......|.....-...\|../................./...................//.............
+.|.........\..../......-........-............--...................../........|.......\.....\..........-.......
+../.....|.|............-.................|\.....|....||...-..-....|/......................|.|-..-..........||.
+...-............|.-.............-.....................\.|.............\.\............\...|........|...../.\...
+\...........................\.|................................................/.|......-.......\........../..
+...................|....|.......|.-.............-..-\...-...............................|..................../
+/...../.....\............../...........|..|./...-.../...............................\........../|.........\...
+..-.......|.........../.......|......../.......\.............../..........-|..................................
+...\.\........\............|......................\........|...\..............................................
+../..........--........|....-..............\..\.............\...................-........./...../..-..........
+..................|.................../\..-..|..................\....././..|......-.................../.......
+-...\.............\..-..-.................../...|.|.........|../|./............/...../............../.........
+.|\............................-....................|......./..............................|..-|...|.\........
+-........../...-....-.......................|...\........|.......\................../.........................
+........................................................././.|..|.........\................/|........\........
+-.....\.........................|...........|..||..|......................................\...\....../.......|
+....\...|........\.........................//...........|........-.........\..........\-.....\................
+....|........|.........../........../....\........|......-../..............|...............|.........../......
+......\................-...........|.................\...../........|................-........................
+...............|......|...\............\............/.../.......-.-../............................\......|....
+............-........-..../.......................\..-./.....\...................................-\.....|.....
+...|...../......\...........\......\...\......./...........-../..|......................../...|...............
+...........................-...../....-.....//................../..........-.......|.................|..-.....
+................-...\.............\.../.../.\../...|.........-.\...../.................\.............../\...\.
+.....-..................../......................................-...-............/...........|...-..........|
+.........-..........\.\................-..\............................|...................-........./........
+...............-....../.....\...|.........\.../\.......-......|............\-.................|...-..........\
+.....\/......../../|......\......|.....--............|....../........-.../....-...-...........................
+..../....\....|.............../..|........./............-.........................................../.........
+.........../.................|....-..........................................................................\
+...-.....-./....................\..../.\\.................-.....-....|..\.....-....|..........................
+.....-..\..........|....|...........|.|....................................\.......-.../.../-.-........-.../..
+............../......./...-.......-..|.......-|..........\..............-.-....|..............\...............
+-........../.........|.......................\....-........../.........\.................../.............-....
+.......-....\.....\..................\..../-.//.....-\..........|........................../....|.....\.......
+..-./............./|..|........|...\\.........\...|......|.....\.........../.\......................\........\
+...../|.......\............../....................|.............-...........|......|....../.........../....-..
+.............-...-...|..\-.........................................|.......-.........|.........\..............
+......|......|............/.........................|.............\.............../....................|..-...
+../../|\......|..//....../......................................................./-...................../.....
+.....-........-................-.............|.-./..............|...-...../......................../..../.....
+...........\......|.............|....|.|.........../........|....................\.\......./..\.\..|..........
+.\................/....................-..............................|...........\....\.......-....../.../...
+...............|................-.....................................-..................\...............\....
+..........|\..................../............................./...............-.....-....-..|................\
+.................\.\...........................................-../......\.....-...............|...\..........
+..|....\............................................./.........|...-\.........-...\..|..........\.............
+..................................|...........-....-./-.\.-..................-............................./..
+....................................\-.....\\...../..................-............-........../........-....\..
+...........\......./...../|\..../-....|........|.|-.....-....|.....||.....|...........\..........\....|.-.....
+...\..........\./..............-........................././..........\././...-...........-............-...../
+\........\.....-..............................\................../.............-........................\..\..
+.........../.\...............-.\...-.....\............\....\......--.....\...................................\
+............\...............\.........\\....\....|......\.......-.................|...|....\.....\...\........
+.....|.....-............../............-............../.............../...................-......\...........-
+..........................-...|......\.....\.......\........-................./..........-......../.../...-/..
+../........|....\........|..../...........|...-..|..........\............\..../........-................|.\...
+..........-............./........................................-.......\.|/......./.................\.../.-.
+......................\.........................../.../...../../.......|...................|............|.....
+..............\..........-/........|/................................\...........................-............
+........\....\....../.......|.-........\........-..\.................................|.....\-.................
+........\......|.\.................-..-.../.............\..................|.../.-.............-/.............
+.|/.............-.\.........................|...|./........-...........\../...............\./.......-......\..
+..................-....|.....................-........|/.................\.........../..-.............../..\..
+......-......-.........../......................-......./...../.../.|........\.../....../............\.....|..
+...|../..................-.................\.....................\............-...........|.....|.|.........-|
+..............................-...........|..-/.................|................................../..........
+.../......../.............-./.............|...../......./...|...........\..............-..........-....|..-./.
+/..\...|...........|...........................|/................../......./......................\.....\.....
+..|.........-........|..|......-...................\.........|...........................-....................
+../...-.....-.............../...|\...\.......|.................|.\.........-...................-\.........-./.
+../..............................|.......|..............\...\......................\..........|...............
+............/....|../....../.............-............................./......./.................\............
+/.....\...../.........../.............../...-.../\.....|.....|............|....|..........\.....\..../........
+....\....-/.........................|............-...........\........\...\.....\\................\........-/.
+.....................-..-\...............././...........................\....-./......|..............\..-.....
+................./........|.......-.-....................\.-.||...-.......\./.|./.....|...-.../......./.......
+........-..-...../.......\.........................\.....././.\.../..|...../..................................
+.............|...............--.........../.|\/.....\.........................|..|.....................-......
+..........-...|.......\/...................|....../.-...-...|....................\..../.-...../..../..-....... \ No newline at end of file
diff --git a/aoc2023/src/day17/input.txt b/aoc2023/src/day17/input.txt
new file mode 100644
index 0000000..04d0721
--- /dev/null
+++ b/aoc2023/src/day17/input.txt
@@ -0,0 +1,141 @@
+111143231245512453233532231135242346643223434366453543664553534426223663625563233556655232522464453223446255523366641115221525545241115541324
+431121345255453245532513346436354562424226665435625542452543534236556535432235356366222264336444256255334564563564226352335454152333342425531
+211555234333213145543413562433332533444634432342622623343343455746676435745474465524463464332524462636562533446346254251543254415111115352424
+341511535443122253134546264233423566232562433526456565542774357646735536654673474477533643232255236632236625425666662645545552141115242422515
+341111243411143233254353542425566625642433362644332467546476655667755374563574564666444577323426235362444224643634223545235541134121215423153
+531254335432123321511666236453536252626542365563233477476436375343677375447543535337476464737335222455333555262365434346341345121543421555545
+352535514521514111243342542545234362225656644366655563365373766737565463557476566764463743673533232534423432654354532444434614515232111523231
+534444213321253145553225546453244552566243427573456456543553566474735356663557433377547454546773337365265654362565366242546625513555231514252
+323313551435534512622225362562263434433225636635664736767633535463645434646666633445555455344676663776363645426625355443264235342154354541551
+313344353445542136265245463656643456254675743474744556363764667356336334435764645543447755363434777747562523535253545462232443334115422245343
+411545355323353632256366354543644422255357345374367446347554465766367637555443653555375756736537575763375343236242446526465226534224412555332
+533131433141412662643523326542423234474465776365555735754776645376734774677646654667473753373634447774446536352326333564334433362123135411531
+512414542555163643526524526245525623733466554345447435364657576457576376563367444354735757756765547755635545232536536433564236626315454145425
+222144425355524633235543562342566454344764575745367646565574575636547773457356646456657637437547666745757773472565443652346664466335313555551
+425225555322663532264234233335563664747574765576347743444637647676737567333767356736363333744734647436646746476523664454633653546545122514442
+433432345135556643645433433353363575647663645376464776466577573557373364773353335555374554433464633534445576673653325425446624523422432115313
+331554441535436542646663554246654555367643355653745635636355676647567487764456667645455574637564434547453345476356634245324255236624234322155
+412551332642256525656556644673435575337544534765547457535765745875846744677848864748453556456475334367766655534547433255523464263563352324545
+443534155643554356242335334673736746664536333346353556577644664845484655676855576588488476647745635435535753465654355645265546422335564424541
+325113645335432555665355233555675344354467477467666744857886746774544874557756677867665777554343734443655754353756656432453432656526442431243
+435351452355523445664565747636637443475667333666457866648755647865645478687666547687547448455776553463657435344656637472443446523245236631254
+412143553424345325232454645555356743366537373758877467577647678654487674848784877787468644447756553677573465574353736576542332442522366564144
+431363252452364445356544557475337767655336557686768756474568654665465464884556855744876886546758447344734334637754557774553226363256242242651
+554256445333463534225356746736736743336763377746888675584476754588545785578747858657577787754874858864355637365443444365474546636352256656323
+425454462356554263636434334444466455765534574648745458464655777887654744458644875776467657545757755464375636667554445537457232633344456335351
+322453463334656455234546433475533746373377467777858787845857478676767845586566768464584884875677444488543533447537536376643424666645653654426
+432326546526255522353556547373665657473456445577748547665675868677547547785865454645454554774845748574876563377757437467553465624365666252336
+553526552222562635473565556657553364657548886884887656456865855666787554686645654858555566768654648745854464677634735446546732553642463664265
+664326265443345443746744735336634755665574447844755544578487644586454874856778477455686458576478578547554484667445666574665353445232224622335
+236532234245355276756476464355554554458887564887776455877644448447886868476548867546888764476866776558545547574453545467364757744326636223642
+632462455662552665443463346747745775658756746854568758745668675885889865596789855788675844755468675857556885843566367733464537666322366344223
+266666434363243576375767356665666877464755765578746575486748669688797696588866786698768646566485868545858886667435664777734463342523665555235
+443556525665656734577633335664448556655454678484454777545656666779696855688567966656964658877444685858567566545447466467443774467266252546652
+624455255224344733376335533753476658646544876564465586875955788776686876776867985856986576866568765548476654745754674775433435367623356456444
+262555462622446474437456377453868684444668468464476655987967866795876695585957798678969855857886488747765845586764675544766563666356435634332
+665624325625734563547365736536784556858567746767459867695988595777767769865658796865788965789678867667866557578674565534645577447432435556524
+333523334637534573776476636576557488766777764446687995988678876956786678875775556987997957898658565656667557575548444354657655335367544525324
+456466363423657475573575435664578688587455448765669969578697785989658879886787878568857799889578874487556756544556443334633446546536443652664
+222244452574756367757776634686545577855644575756668896567598879867997957659885755779787658957586658876446588645487856454536434636745444545545
+232636356457556536556365668745444488466474574987976697975796699686796855588666956768955895958675868455454458767755755376733663633374544556332
+332332622576377345736534646747554866678866788995569677878555787567775875779596796566579977885676656586446765845854744577365444454343372523366
+555664262474645377674577674647867577478684688557896658796655557657577765775656667969779597586797679965585456677454664556665646757366673426233
+356255527734373436547644678865777848585857997655679875687575776559878678858588867877856678657789789868858554664844468646634734744447367636636
+552366365773455644547347758554786677468775568778877797978995878598699565857955898857969565997667878757554646688678786867367546447363537255433
+234653475644663446373734847876648467867886788586887579567587799999866977967976866766799575567556897979657666685654448547664746376435346465542
+252443375445565446367565867885578575654575966679888956889877897698678786876967769856955595897679599865976488848485865647735437666446344436434
+243525237374773653566366744564464668675869676798668978579668697966669789967787689668989669967785588576658588654658478886653675446657763525423
+562444777554463656777574486488654468576556956965987679867969676669986697889777667866868559769957958968686745774765777755575354754635335676536
+264352744565456657667484888447847467598998779789689696779679766996889786776689888878996777588978666887977978585445584446655336663435446574336
+463534645476375645554684778858555786676885996565697889699888899766678879678998899799887896956567777585869788585685647484757343657653773563665
+432465634665435774545666885858845649887698657968779889688769778768696698686869888977969768555995578977568967465456666555784577674443567347654
+242537757554573534676885677655767659695959757675998797988778888678799667799866896879686987675557878578887699478448447774787663353534367754553
+524667356567664767788788786864867869567798856688887886998887976986998886686668767699776989677585877675977659745685675557555653563563733554246
+532356647776353655754665854564646466686577777586598677698878676969777768866697689778788897669979897577868888984565784456765466355374543736764
+353546744764545745656756586777658658697565657989587766697669768667797768668968778798869989666758756995866965667844757477467833575363475573665
+442363475553366336665585574875754767958869656955766897687769989798869789778887686787686676968967586798766967684684745655757855634753733757752
+663437377653673574868444644474888676596699778559668686678686966786679878697997667998668668679678775566688577957447548475848855753337766577654
+245676667643445744476584585486889868856958677757876786686678679686978889886998888999768868796876597559998755655765588557465675655453656434644
+623664534334746636755767677464487956975558566697767697896988988986888777988897867888887969667768658555778858798767857588765444464637377577456
+524435763477353755875846887578787556979997766576796978767969777889977779899788987687978888689776897659786666856748548645756774746364367376634
+252436533765577358467857485675499965699779976868778779896779686779787987877779796678799678678799677596566778799678664684774444556767456547463
+425573537536465645667877564778768875796687778666777866678866888788777997889889889698977679979667875765578958585784474754466784455733343567735
+464333643643774675646874764777889966956967776676876886799688979878878778878789889986887997868689965998667998898957544586884784556635746634644
+467634766367575447675444786885857898689798675679979967666789787898898779879998789996988787997866879557586768558865648756677648655653544434374
+343746456733555668756758766647798687656987598967767769799669777877779899879877997887788976797777786786686766555655656558576555537543536634463
+263736676335556377774776475777798578965889979797877679967769989798889889987997789799998866789986877778878665966865757677884784553474773577764
+436645433455747776854766587748677575858967897999889678767678779989877889979988889997876876767987687678559995869785556756658784533445456534364
+457333367374443446568888867558968899899755558786887989669778779799789777789789877797786878778769899759866986568874778856465478635343345547556
+653357365735437544784775777648977566996787598779866797796688878798979898888979997778969666688778767767968675685577484857666844654735677553374
+454465553543537354546566487886759755777886869789896779676678877997997979878787978898769888779699678677788756997994554564684577435566665665735
+645535635654537444576458775888989557678676898899899898879778777789998888888977799999876678677779969957869757677687688584466575575557463464574
+633446673336665785786556488457569967799656676688968667697989989999998988788999877898996869789799978989768599766594875486774675764367566653437
+365763544374353687774557856867888579757898686969676796986689878797978997979877977999799987889766778769957988885866744454548487444537747767446
+333636755475457746774775664885768689998686877878978686686998999898899898989888977798768997778786769665986876885655876855777745646444453543776
+257347366566556755557468747484878859559855958778679799887889887788997889779777777788977698668899997569799999896694654866676457747663766657374
+554664657744433558785576687586858965859676988969678669886988889998798779998998788898786688897788767697957657558568566856664764845635356777743
+437633353637643445485457545565887558959759869766978967769977997997797798898879888977777798877668879696986885979575658888674584733534445447645
+336773576566535576644748576564988895569965579877899669988897888788798979797979977997979687769689677585858655985875545766888476856753753775643
+447375436754766447678756554674875656886886797769889788989967878998987877797878888989798769897678795698885689978868887845785867854575334643545
+533774774334356485744844667888778799675896759697877967979877898888989779897787899796896869887878898896679879895846474568577556875467653377434
+526636647656677568754477458676456866878885686668989676699978797889989979777797888789689887999898765668796877998956878884644777453766767665573
+345776437655574577556784475666467865969688769689967879888899898787979977987989787869968767788798958965676985977558887786764565334636477577473
+462757555367744435776477675765555899756777555889787899796876786789979777799889999696968778897788975596967795797586768684467474533464663474556
+345335634367663334474446748788558686895898855886668998998877799988977999887787778696789977998687999799569767555576845465465587544735477547753
+352747473367547538454567786546446657585759898569988897798777688798687998988998969877688876686969789765886558558776665847888845556554375745442
+525653575563555774887556547555749798556987599756797867867689696667867966889689666776786689697968958698665787755764558846666855575573747534345
+326455665753733645448778877747875897567979969887898786977796667699978788696867677769979676996787658598765877957588784457484655764635365737434
+532467433765464655746576865775654596585859789697688867896988996977778898788669689878989769996769668658678679877544854467444775477564333674625
+335554544454457654447885484444866987787685589987766897996999779767969767678887676699997786677685669976768778997556877487444743767346766557456
+266536345774333444487446686656585797768599588595599776878699669999678767879886989896988777767965756768698777544665754856565457554453756356643
+342464363736646775655856546787754867795697769679858888796987869768899868797687697688878796789895765557688688985446585777584467466735366644363
+523237467646754656468466848574555667758689797896579777988779889977689668778896667696797676667785685755986597446645664545687753465567453354335
+323327756536477335755748475656576547887995887876985968976869696887779786776968996997867687879755599699567657755468776866885345435457655334225
+465352366554666376467456666544455546795667757799755996999978667976979767898877678768888758985566989859967794845764466677657453363336553674426
+555533553546357444765675856588657557878975766698966577867797677999988677666767968786787775798789997676876774564485686564547464355336356456634
+653433475335664753473446858774765764677666859687678977599767969767797969796977878998788799568865956576659644565846455864883376645435553556424
+565624333374353367374378478655648748848595599966858998869589999997986786677787987969558898667876766679797576857877576788664777573454645755524
+243444333564746346366668646545674655784777777596558976769676598668789667999889879766877787867797657978894768877458688756477776644647454654652
+323463545665546577475645558786854468657757569879597766865559566996799678799877666898856695986577997898647684875678677855454775654547364424426
+444345546665673463753634768476874774848587769865579789687878579978877559996587865859858789976885557859466565567686888557474764574774566345235
+463425647566774574744333678886747686865457799567576858589676667856577976986668978996686799577977886677544648876855645547444577633464636553523
+525644666573444644576675468484675575784565795957567577578956797786787796869877557895769667588675596744747766568788564546563666667763666225253
+434232334334645346434743378448585848667846577675678568857556598869978967698795766555887989895656586784848574867846777433673543643643345636354
+536245546237555656364544635858554588856888685777969769765876857989857999778897756695765797865577585676877858667674464376646773636576723344236
+563432433237543453765335674454676568784657684785679757868567556875775895977656667977959855575979944776757767668868556665477773367647645655455
+345662256237647446335653655474847777777457855878575955988896666669879768598869889768857697696556455457585858777745474363376763373677455666452
+236454255236363665663365567376855855468585857577666775857999657659868999786755866568579898667756458558654648847578447446356744353365436332433
+236656544552467767567677567448876458465585754786588555756756796978557899579678886778787886777445766574578586476464377437556375345344545245426
+662325463226374566436333654547585676688868454444785599797776865969998677956976597586658865956686866776584577484553367473533563564746536336443
+645354345344537355546665737533754846786764888785557644675696956878965869566966978688779976776866567854756646786873676654337473445524622236626
+233264254235366666736346437575764477565768544667785545578799879958588586787879788669995878745846576785646778646655574347764645533625345535563
+432433242246235746473543477553563665775475774755874587665558965695658699586897695998868747444878848474546545784334377573356763473236426645266
+243532622522636755753437535657447776765475565645845684687588454765579856966696756574665577485786546848546585774336373636476643336442355233566
+424366665443243666567346434354557355888674468846456668847655454648844584447647747545884765768788475648857654773677576566637647654653266642645
+355566553355543667644766357475663334576684855756856557474768868686854785488845464657775755684775878866867574456477457355345767654443322524456
+252226355555353432774774553656764464764766745687577646548754448444648855656476668476765857676478568588685475446655746336375532535436262246655
+124465325536222534633336746764356663557877585584548488677874547445477547864878867577864565556567445544564676546443567455743324244266455364265
+444646453636346242245546654333667346776464746865665867844474866746647865554675844644775465548557754474556375345735665646364353323526625624235
+412366252635624522466346354375765373635554864778855885678875757885648677787758444554675487467557768856743453437365564667776246434655322223525
+155662534242554334526573346673376775437747347484686774778445745547688488858484846876546748684767564753677657367475756735363326425522532252354
+111522322233565252443476336555573575463347454766857665787786477486485455577564475876657687767758584655535533636353747434645522266562523335624
+542422536235454325532645676434563747567556555574458874646877684645545674855674568675844866465685676443356746355677555555666633655263646665442
+211224626424363426643222663657775566775366634363464577678645547647756688757557454788857466767766573445336567467663545634344363446256343542532
+524353365435226556556322567464746534674443466757337368478575456847447776487687768855745786663475737763753364433366577364223462546556234245115
+351231443465264363362336352643774674346454366777533445747664448478677857785488484766644654674764373357565474433475733244565424353322356533151
+554223355636366655362352555655373675564737667663367637476378475656775876558465484467733734736556746773634646373557532336625245362343245314352
+415315224565323443623244633253477545773643635677437734464354663476745457476448456747555563574755374344343366743744432254533234544233652442452
+155321252324634365262226535534446766435373535475553354733776334766573455373756333733573667436757467643766753335642442322554323423224452212311
+554231145244425252354633334356244765663464645674467736446536735636374435547767747353673645457676564473344375654424643234566252323463342424331
+145124531215355646265623243325355765435544464565637674665536435365374465373674364755336673456445565567547775765322264364462642335223541214445
+245544533254142563235523522653435334444477535443567574737475663654776577746444777346766467745333753447653577332363336365532325543231234334451
+251214311244114545554462446423624626676363375354453335776637374775465676343453547674544736356577777464764476336235452444566243644313151353524
+251353112524455635524245344436546325534376365643536356555677555675344355745373347466346575334347466467665642344265334364324562252124525455152
+454211332313421263343625436544345634543275377555633667545444553367537367674333374344744754673653556564665546434666555266442463652431455221541
+115242354251513424524244565345324542344352356476443353667354646467467637463545337377445445357757536673532523352342633456335464421222514545231
+234551552324343221533222663526446236435634463664377555475474346673535434445744753657775466665644563245222634266653436345463353354354144115325
+325412113545232114263462446356336532466543425623356673677337363765363633556375433575757664356773345344465345555625252465465324322523535532422
+533444522324551243515564322652262342524325235554667764445446656633535736363765574763563335776423624463325533625243355442245443123534323312511
+334123531454531311142443565534562563644542436563665634765457377675756443636777543663643633363324553544365344443234345365224343523341515544422
+425513541335541443232314324425223643632666545263242622235765443475754557635364446664563322663626426463256624543536634556155552222222255121512
+443141524454451431355221565364643463663664635262463364522342652467643777543675336434624463452333536354565653344664465611411152424331223125543 \ No newline at end of file
diff --git a/aoc2023/src/day18/input.txt b/aoc2023/src/day18/input.txt
new file mode 100644
index 0000000..0e3c331
--- /dev/null
+++ b/aoc2023/src/day18/input.txt
@@ -0,0 +1,676 @@
+L 7 (#1dc5f0)
+U 6 (#4497e3)
+L 3 (#3b21c0)
+U 3 (#3d8523)
+L 9 (#58e7b2)
+U 8 (#35d213)
+L 10 (#329390)
+D 3 (#1302b3)
+R 7 (#07f802)
+D 8 (#38fbd3)
+L 7 (#6d0e72)
+D 6 (#2c2493)
+L 5 (#38b7d0)
+U 6 (#2ab7b3)
+L 2 (#0ce560)
+U 6 (#2ab7b1)
+L 2 (#2f6940)
+U 2 (#2a5a83)
+L 3 (#477150)
+D 11 (#0baea3)
+L 4 (#3899c0)
+D 3 (#34a803)
+L 5 (#55c0d0)
+U 9 (#328483)
+L 2 (#460290)
+U 5 (#48cfd3)
+L 4 (#1e3150)
+U 5 (#3b7ea3)
+L 7 (#2c0a10)
+U 11 (#51d803)
+L 4 (#39fe80)
+U 3 (#51d801)
+R 10 (#2938e0)
+U 2 (#1c17f3)
+R 4 (#0df9a0)
+U 3 (#579691)
+L 8 (#354a50)
+U 4 (#3d0131)
+L 6 (#1029b0)
+U 7 (#0c19b3)
+L 3 (#5f48c0)
+U 2 (#0c19b1)
+L 4 (#15ff10)
+D 9 (#0f08b1)
+L 5 (#1c8160)
+U 9 (#573b71)
+L 6 (#2d58e0)
+U 3 (#479121)
+L 4 (#1c7bb0)
+U 8 (#34d583)
+L 10 (#416f10)
+D 5 (#34d581)
+L 7 (#59af90)
+U 5 (#24a821)
+L 9 (#196ca2)
+U 6 (#1f89d3)
+L 4 (#6b4812)
+U 2 (#1f89d1)
+L 6 (#32e5a2)
+U 8 (#5eb4c1)
+R 7 (#5bffe0)
+U 10 (#3f8051)
+R 8 (#29ac30)
+U 4 (#495a21)
+R 7 (#3b4e10)
+U 2 (#52d3a1)
+R 7 (#1e27d0)
+U 4 (#09ad83)
+R 8 (#385530)
+U 4 (#218943)
+R 3 (#0d8de0)
+U 3 (#218941)
+R 3 (#3ac220)
+U 12 (#09ad81)
+R 3 (#08aa80)
+U 5 (#33c7b3)
+R 2 (#37a350)
+U 3 (#6808c3)
+R 11 (#355310)
+U 3 (#6808c1)
+R 3 (#14fbe0)
+U 6 (#47b293)
+R 6 (#28ab80)
+U 3 (#37d873)
+R 4 (#607702)
+U 2 (#3d77a3)
+R 4 (#18a432)
+U 3 (#26ee23)
+R 10 (#0ba7e0)
+U 3 (#0b2863)
+R 7 (#604a60)
+U 7 (#477053)
+R 2 (#0a1210)
+U 4 (#2f7e63)
+R 9 (#0316e0)
+D 5 (#1372d3)
+R 10 (#382a30)
+D 3 (#2da293)
+R 3 (#100920)
+D 7 (#5267e3)
+R 2 (#66c240)
+D 4 (#1c94a3)
+L 5 (#2d7770)
+U 5 (#2c0061)
+L 7 (#4181c2)
+D 5 (#1f97c1)
+L 3 (#4181c0)
+D 4 (#2b79b1)
+R 9 (#1bcaf0)
+D 4 (#04de93)
+R 2 (#010a22)
+D 4 (#599823)
+R 3 (#010a20)
+U 6 (#189b23)
+R 4 (#38f770)
+U 9 (#452e51)
+R 3 (#2551f0)
+U 6 (#333c81)
+R 6 (#0554d0)
+U 5 (#411e13)
+L 4 (#487840)
+U 10 (#411e11)
+R 4 (#2c69e0)
+U 7 (#13c311)
+L 6 (#164330)
+U 4 (#7449a1)
+R 10 (#467570)
+U 5 (#47fcc1)
+R 2 (#13e090)
+U 5 (#2e45a3)
+R 4 (#0f97a0)
+U 9 (#129b03)
+R 3 (#46c520)
+D 9 (#11dcf3)
+R 4 (#0d0e42)
+D 4 (#05ca31)
+R 4 (#56d742)
+D 2 (#05ca33)
+R 6 (#1e5ae2)
+D 3 (#56bbb3)
+R 9 (#1ce6b2)
+D 5 (#039d83)
+R 2 (#3f1c90)
+D 4 (#198063)
+L 11 (#3cf8a0)
+D 7 (#198061)
+L 3 (#2311e0)
+D 4 (#401ab3)
+L 7 (#46c522)
+D 5 (#2d4703)
+R 6 (#0f97a2)
+D 7 (#053643)
+R 6 (#603110)
+D 12 (#2ab333)
+R 2 (#25d970)
+D 3 (#1956d3)
+R 5 (#528eb0)
+D 2 (#3a55e3)
+R 5 (#1aa8d0)
+U 5 (#29e981)
+L 5 (#133d80)
+U 8 (#559581)
+R 5 (#133d82)
+U 4 (#298e61)
+R 3 (#0ed762)
+D 5 (#481221)
+R 4 (#0ed760)
+D 9 (#3a5a61)
+R 4 (#265580)
+D 3 (#241031)
+R 3 (#2bacb0)
+D 10 (#4e8481)
+R 4 (#4f2bc0)
+D 10 (#47fcc3)
+L 3 (#15d6f0)
+D 9 (#6a0e71)
+L 5 (#3cc390)
+D 4 (#2fa353)
+L 4 (#272140)
+U 5 (#029653)
+L 3 (#428820)
+U 8 (#23f923)
+L 4 (#036c82)
+D 4 (#3315f3)
+L 7 (#663ce2)
+D 2 (#09be53)
+L 8 (#075c00)
+D 5 (#552f63)
+L 5 (#662630)
+D 2 (#3e3fb1)
+L 9 (#543310)
+D 5 (#2b6db3)
+R 8 (#06d960)
+D 2 (#2b6db1)
+R 3 (#570160)
+D 6 (#441a91)
+R 6 (#2f24e2)
+D 11 (#2ca451)
+R 7 (#5700c0)
+D 5 (#36e6f1)
+R 3 (#5700c2)
+D 8 (#374141)
+R 5 (#2b1072)
+U 11 (#489e23)
+R 5 (#456682)
+D 4 (#522e63)
+R 3 (#127202)
+D 7 (#65dc21)
+R 8 (#489d40)
+D 3 (#686b21)
+L 4 (#107ca2)
+D 7 (#2271a3)
+R 4 (#148da2)
+D 3 (#34bf71)
+R 2 (#70b522)
+D 9 (#34bf73)
+R 8 (#49a172)
+D 6 (#2271a1)
+R 3 (#138232)
+U 4 (#3e4511)
+R 4 (#0bb2b0)
+U 8 (#2958d1)
+R 5 (#1df330)
+U 3 (#23af43)
+L 5 (#4bbaa0)
+U 7 (#23af41)
+L 4 (#125270)
+U 9 (#41ec91)
+R 2 (#222ff0)
+U 5 (#2936d1)
+R 8 (#2e2310)
+D 5 (#2e05a1)
+R 3 (#0ae0c0)
+D 11 (#074021)
+R 7 (#52f6e0)
+U 2 (#074023)
+R 3 (#590720)
+U 6 (#469f01)
+R 3 (#34f792)
+U 7 (#002dd1)
+R 4 (#409522)
+D 3 (#002dd3)
+R 6 (#149f72)
+D 5 (#1cc8f1)
+R 5 (#095222)
+D 7 (#3eab71)
+R 3 (#236082)
+D 11 (#3b3d71)
+R 2 (#6e2530)
+D 3 (#0887f1)
+L 6 (#1795d0)
+U 7 (#21f2d3)
+L 6 (#194240)
+D 7 (#2e0d03)
+L 3 (#605a50)
+D 4 (#257243)
+L 8 (#0a5380)
+D 7 (#2b70c3)
+L 4 (#428fd0)
+D 8 (#5b1513)
+L 6 (#1bf3f0)
+D 3 (#341241)
+L 3 (#1f7ea0)
+D 8 (#2eda01)
+R 6 (#527980)
+D 7 (#62ec43)
+R 10 (#156e00)
+D 5 (#53ce33)
+R 4 (#3a5f20)
+D 3 (#2f3bb3)
+R 6 (#5dacd0)
+U 4 (#47f0e1)
+R 6 (#538c70)
+U 4 (#32a283)
+R 8 (#27c140)
+D 9 (#198283)
+R 6 (#1b5ba0)
+U 9 (#15de53)
+R 4 (#037d60)
+U 7 (#373ac3)
+R 7 (#282640)
+U 7 (#33c993)
+R 6 (#2f6bc0)
+U 4 (#236a23)
+R 5 (#4977b0)
+D 4 (#076301)
+R 6 (#56dc60)
+U 3 (#30afb1)
+R 2 (#720272)
+U 8 (#2b0fc1)
+R 7 (#19ac60)
+U 7 (#07ff61)
+R 3 (#585610)
+U 2 (#4969b1)
+R 7 (#56dc62)
+U 5 (#029821)
+R 9 (#60a4e0)
+U 8 (#1688a3)
+L 4 (#19a5b0)
+U 3 (#20db03)
+L 7 (#1a7950)
+U 6 (#1ab903)
+L 8 (#463660)
+U 2 (#449963)
+L 3 (#11ec80)
+D 4 (#206da3)
+L 8 (#1057b0)
+D 6 (#17ffa1)
+L 8 (#6cda70)
+D 4 (#26df51)
+L 3 (#001d70)
+U 9 (#3e42f1)
+L 5 (#55e962)
+U 5 (#138341)
+L 6 (#0c3e52)
+U 9 (#4ae8f1)
+R 8 (#0ad032)
+U 7 (#14e3b1)
+R 4 (#5a3b70)
+D 7 (#1dad81)
+R 11 (#3d8e92)
+U 6 (#441b61)
+L 6 (#20de92)
+U 10 (#55efb1)
+L 6 (#1d72c2)
+U 10 (#1469a1)
+L 6 (#21f4b0)
+U 4 (#49b921)
+L 2 (#560f10)
+U 10 (#49b923)
+L 3 (#03dc20)
+D 6 (#249e01)
+L 7 (#6859d0)
+D 4 (#0947e1)
+L 3 (#5d3fd2)
+D 11 (#2c3801)
+L 6 (#26cab2)
+D 4 (#1f5b51)
+R 13 (#0fcc92)
+D 3 (#638131)
+L 7 (#404362)
+D 2 (#6cc863)
+L 6 (#1d8d62)
+D 4 (#161423)
+L 6 (#595612)
+U 7 (#09d071)
+L 4 (#10a5d0)
+U 4 (#633011)
+L 8 (#3cddf0)
+U 3 (#3a8471)
+L 7 (#407050)
+U 7 (#00b9a1)
+L 3 (#2537e0)
+U 2 (#00b9a3)
+L 5 (#3a9220)
+U 5 (#212a31)
+L 7 (#572a62)
+U 5 (#0b0ea3)
+L 4 (#52f702)
+U 6 (#0b0ea1)
+R 6 (#077262)
+U 9 (#116db1)
+R 7 (#688352)
+U 8 (#37c5e3)
+R 7 (#23b522)
+U 3 (#37c5e1)
+R 6 (#4a4aa2)
+U 9 (#57bf21)
+R 4 (#60ae60)
+U 3 (#06dc81)
+R 3 (#47d900)
+D 4 (#587561)
+R 6 (#2940e0)
+D 8 (#1268d1)
+R 5 (#0ec482)
+D 6 (#38b6c1)
+R 6 (#59c532)
+D 8 (#2e4421)
+R 6 (#0b8022)
+U 5 (#410a61)
+R 2 (#7409d0)
+U 6 (#28e351)
+R 8 (#15d2e0)
+D 4 (#12ab01)
+R 5 (#100f80)
+D 6 (#44c953)
+R 4 (#33eef0)
+U 6 (#23c7d3)
+R 5 (#4696e0)
+U 4 (#222123)
+R 9 (#26d070)
+U 9 (#4cec13)
+R 2 (#560af2)
+U 6 (#5099a3)
+L 11 (#4b4b52)
+U 4 (#10b4e3)
+L 8 (#40e6b0)
+U 6 (#1c6173)
+L 5 (#2e31e0)
+D 6 (#3d8c01)
+L 7 (#1cc6f0)
+U 9 (#083731)
+L 4 (#463da0)
+U 8 (#1cb711)
+R 8 (#0b4110)
+U 8 (#2252b3)
+R 10 (#60b900)
+U 7 (#2252b1)
+R 8 (#0ce680)
+U 5 (#467f81)
+R 9 (#0ad0b2)
+U 2 (#359203)
+R 9 (#67bc02)
+U 9 (#359201)
+R 4 (#0653e2)
+D 3 (#281ca1)
+R 9 (#1b8ee0)
+D 6 (#0b3861)
+L 8 (#336f02)
+D 3 (#3201f1)
+L 4 (#4a85a2)
+D 7 (#111eb1)
+L 9 (#1c9c90)
+D 7 (#145011)
+L 11 (#083be0)
+D 2 (#516321)
+L 6 (#083be2)
+D 9 (#20bb21)
+R 5 (#3d8030)
+D 6 (#404031)
+R 8 (#642420)
+U 4 (#56cf61)
+R 7 (#55c610)
+D 4 (#20d1e1)
+R 9 (#1b5e10)
+D 9 (#1e85d1)
+R 9 (#361f10)
+D 3 (#3d69f1)
+R 9 (#16da12)
+D 6 (#2d6471)
+R 5 (#5d9642)
+D 3 (#4656f1)
+R 6 (#44b540)
+D 8 (#2b6131)
+R 7 (#2ce630)
+D 7 (#2b6133)
+R 3 (#61b2a0)
+D 4 (#4c2661)
+R 4 (#3b7372)
+D 8 (#01ed73)
+R 5 (#4c3962)
+D 3 (#01ed71)
+R 4 (#4ba142)
+U 9 (#4377f1)
+R 3 (#1deb32)
+U 6 (#3f3323)
+R 3 (#22b722)
+U 7 (#37bc13)
+R 3 (#1918d2)
+U 4 (#13c8b3)
+R 5 (#1918d0)
+D 12 (#3e4d83)
+R 3 (#22b720)
+D 5 (#0cefe3)
+R 5 (#2bf9f2)
+D 9 (#3122d3)
+R 8 (#41a3e2)
+D 10 (#3122d1)
+R 8 (#0b6e02)
+U 7 (#266641)
+L 4 (#5a1cc2)
+U 5 (#060d11)
+R 4 (#32ff32)
+U 7 (#446c91)
+R 5 (#319c82)
+D 3 (#446c93)
+R 7 (#1bf562)
+D 2 (#44af13)
+R 6 (#6f3132)
+D 6 (#312433)
+L 5 (#489da0)
+D 5 (#53a343)
+L 8 (#489da2)
+D 3 (#5a6673)
+R 7 (#0f0f92)
+D 6 (#01b8b3)
+L 3 (#3c6b12)
+D 5 (#725613)
+L 10 (#114b12)
+D 4 (#14ace3)
+L 8 (#30d292)
+D 9 (#1ebac3)
+L 6 (#3c4292)
+D 7 (#39e2a3)
+L 2 (#1f3882)
+D 4 (#658381)
+L 3 (#0b0252)
+D 8 (#699e71)
+L 10 (#2b4ae2)
+D 2 (#1ac903)
+L 5 (#60cef2)
+D 4 (#515ea3)
+L 5 (#4d3790)
+D 6 (#354183)
+L 4 (#398170)
+U 3 (#7163a3)
+L 10 (#398172)
+U 7 (#0608f3)
+L 8 (#4d3792)
+D 4 (#06c7a3)
+L 7 (#5819c2)
+D 5 (#17c3f1)
+L 3 (#0c8892)
+D 5 (#67f951)
+R 6 (#3ff470)
+D 12 (#397601)
+R 6 (#3ff472)
+D 4 (#4f6451)
+L 9 (#665a22)
+D 2 (#1705c1)
+L 3 (#14df92)
+D 7 (#4b40a1)
+L 4 (#1fa1f2)
+D 5 (#3b7231)
+L 10 (#063e12)
+D 7 (#2a8fb1)
+L 4 (#6b71e2)
+U 4 (#218101)
+L 4 (#2e2f52)
+U 4 (#221411)
+L 5 (#200732)
+U 5 (#0ac7e1)
+L 9 (#50af62)
+D 9 (#4b7c81)
+L 3 (#50af60)
+D 4 (#2b9d31)
+L 13 (#4766d2)
+D 5 (#25ef21)
+R 3 (#119862)
+D 2 (#517a31)
+R 4 (#3e6072)
+D 10 (#21cfa1)
+R 6 (#4437f2)
+U 12 (#30f031)
+R 4 (#036652)
+D 7 (#453c91)
+R 5 (#05ea22)
+D 10 (#2da1e1)
+R 2 (#4da5a2)
+D 2 (#2da1e3)
+R 6 (#2bffc2)
+D 9 (#453c93)
+R 9 (#4ed2d2)
+D 3 (#141b71)
+R 9 (#3ecad2)
+D 5 (#234873)
+L 11 (#3c4982)
+D 3 (#2ed113)
+L 7 (#3c4980)
+D 7 (#4a6553)
+L 8 (#49bf02)
+D 8 (#337011)
+L 9 (#2eb772)
+D 3 (#690ec1)
+L 2 (#25f0a2)
+D 7 (#62eeb3)
+L 6 (#1ae012)
+D 7 (#34e643)
+R 6 (#382a72)
+D 7 (#281183)
+L 11 (#271932)
+D 4 (#470d23)
+L 9 (#4ca812)
+D 4 (#6f1ea1)
+L 7 (#4702f2)
+D 8 (#34e641)
+L 4 (#155c42)
+D 10 (#62eeb1)
+L 7 (#3a2422)
+D 4 (#3f7ca3)
+L 9 (#39b860)
+U 4 (#5cf1c3)
+L 13 (#39b862)
+U 4 (#4751f3)
+L 4 (#322dd2)
+U 4 (#539531)
+L 5 (#4171a2)
+U 5 (#539533)
+R 9 (#075042)
+D 5 (#1e57d3)
+R 7 (#5cc952)
+U 5 (#0ac0d3)
+R 6 (#1af522)
+U 9 (#374273)
+L 4 (#2992f2)
+U 2 (#299893)
+L 4 (#267bc2)
+U 10 (#47af63)
+L 3 (#282402)
+U 4 (#06a063)
+L 5 (#5cce72)
+U 9 (#47fba3)
+L 3 (#1168e2)
+U 10 (#3b1071)
+L 4 (#178c22)
+U 3 (#42b971)
+L 5 (#178c20)
+U 8 (#1dca41)
+R 9 (#442912)
+U 8 (#5b9241)
+L 3 (#1da682)
+U 7 (#31ff23)
+L 10 (#3cd732)
+U 5 (#33bab3)
+L 5 (#159fb2)
+U 4 (#2e5d93)
+L 7 (#5f9702)
+U 4 (#5566e3)
+L 4 (#0ba292)
+U 8 (#07f963)
+L 3 (#410a02)
+U 3 (#6ace93)
+L 5 (#0913a2)
+U 2 (#21a553)
+L 10 (#3d71a2)
+D 6 (#25ff63)
+L 5 (#5285b2)
+D 8 (#3cfc73)
+L 3 (#13aba2)
+D 7 (#24a793)
+L 4 (#29e4c2)
+D 12 (#1dc4b3)
+L 5 (#3cb102)
+D 8 (#5b8433)
+L 5 (#3cb100)
+D 7 (#22d9f3)
+L 7 (#6db9c2)
+D 6 (#4cd683)
+L 6 (#083f42)
+U 11 (#09bbc3)
+L 5 (#609002)
+D 7 (#12b603)
+L 7 (#041be2)
+D 8 (#4f3823)
+L 5 (#5a3412)
+U 7 (#14de13)
+L 6 (#036ee2)
+U 5 (#442823)
+L 7 (#6c5502)
+U 3 (#2edcc3)
+L 9 (#3b6b72)
+U 8 (#321e73)
+R 7 (#48e5a2)
+U 6 (#2fbec3)
+L 12 (#44ed12)
+U 6 (#0c1893)
+R 12 (#61a8e0)
+U 4 (#073043)
+R 4 (#0d47c0)
+D 6 (#469b63)
+R 2 (#047ae0)
+D 10 (#39b7d3)
+R 3 (#2492d0)
+U 8 (#2026f3)
+R 3 (#73fb40)
+U 2 (#201333)
+R 3 (#372f72)
+U 2 (#2c6143)
+R 10 (#615ea2)
+U 4 (#355653)
+R 7 (#3876d2)
+U 9 (#080463)
+L 8 (#3af4b2)
+U 10 (#6840e3)
+L 3 (#5472d2)
+U 9 (#005683) \ No newline at end of file
diff --git a/aoc2023/src/day19/input.txt b/aoc2023/src/day19/input.txt
new file mode 100644
index 0000000..8fb7e78
--- /dev/null
+++ b/aoc2023/src/day19/input.txt
@@ -0,0 +1,766 @@
+xhs{m>3771:A,a>2552:R,A}
+smp{a<3732:R,m>1999:R,x<925:R,R}
+zkk{m<2240:R,a>3345:R,R}
+nqz{x<2056:R,a<3165:R,m>1748:A,vx}
+mm{x>486:A,m>3523:R,A}
+bg{s>3338:A,kgm}
+qf{x>537:gqx,bqz}
+lv{s<2341:sc,s>2505:rtm,xqj}
+bv{a>2574:rvm,ncd}
+ssz{a<729:A,m<3390:ld,m<3772:A,R}
+gm{a>3900:A,m>2508:R,x>744:R,A}
+ts{m<642:R,m<843:gmm,s<325:gf,A}
+rtm{x<2920:A,m>3132:R,R}
+qgz{x>2082:hvx,a<1490:A,s<3742:R,kks}
+kpf{m<2390:cm,ft}
+ghn{a>2066:A,s<3291:R,a>2028:A,R}
+mkx{s<975:R,s<1112:A,m>756:A,R}
+tg{x<3668:A,x<3835:A,ftz}
+chj{x>733:R,a>3064:R,qs}
+ndl{x>2773:R,x<2370:R,R}
+dsq{s>838:A,s>496:A,m<2191:R,R}
+jl{m>1219:A,R}
+chh{x<973:R,A}
+fxv{x<2543:R,m>3368:A,s<3567:R,R}
+qvl{m>1648:A,R}
+fpb{a>1367:R,x>2441:R,a<1220:A,R}
+tph{a<2677:tss,R}
+cnc{s>1274:A,a<3947:R,A}
+cz{m>2865:R,a<3514:rm,s>687:xsr,A}
+zzq{x>76:A,A}
+vp{x<162:A,R}
+bth{x<1859:zmq,a>2455:hq,mb}
+rm{x<1253:A,R}
+ndq{s<390:R,x<2982:A,m>3468:R,R}
+vdh{x>2464:bx,m>3276:fj,ffs}
+bjc{a>3069:R,R}
+sqk{m>3029:R,s>130:R,sln}
+xl{x<2157:A,R}
+xrs{s>3440:qgz,a<1479:qsv,xt}
+dnt{x<538:qc,m<1343:jqh,x>645:fm,jvb}
+pms{a>2603:R,A}
+lf{x>390:A,s>1617:A,A}
+dvm{s>1052:R,R}
+mnc{x>2703:R,A}
+rxt{a<595:A,R}
+pb{s<3737:ngp,x>3125:A,dbk}
+zr{a<2605:R,x<422:R,A}
+pd{s>1915:xhs,zpl}
+vm{a>2377:R,R}
+in{x<1629:dv,nfq}
+xdt{s<1791:fpb,chl}
+gg{s<393:fd,x<2091:dg,tz}
+xsr{s>1167:R,m>2006:A,a<3531:A,R}
+qs{x<719:R,x>726:R,s>2919:A,R}
+kgm{m>2140:R,s<3253:R,m>1246:A,A}
+gvv{s<3124:flg,m>3004:jxl,x>2411:vf,hfg}
+nv{m<3088:A,a>1588:R,x>3499:A,R}
+lx{s<3277:R,a>2880:R,A}
+cls{m>3314:gt,kpv}
+ct{a>3320:R,a>3189:A,s<2328:R,R}
+bqz{m<1572:rjv,x<437:R,s>1572:mzn,td}
+qm{a<1975:A,s>623:R,A}
+zx{m<3520:R,s>1981:R,a<2633:A,R}
+hbk{a<1441:A,x<2151:R,x>2450:A,A}
+zp{a>2928:A,R}
+njc{x>225:R,a>3543:A,a>3524:A,A}
+dt{s<467:R,a>3868:R,x<1448:A,R}
+qlj{a<1744:A,s>1375:A,R}
+ln{x<546:dk,x<1088:jm,s>996:sdr,grf}
+zxc{x>1220:R,a<1570:R,a<1721:R,A}
+hqv{x<1168:A,a<3325:cs,zkk}
+cfx{m<1777:R,A}
+tb{a>3324:A,a<3310:R,R}
+fx{a>2975:R,x>2219:R,A}
+rnm{m<3699:A,a>1555:R,R}
+zpl{a>2213:R,m<3703:A,R}
+zvm{s<3648:R,x>2112:R,s>3879:A,A}
+gkt{x>1247:A,m>2344:A,m<1950:R,R}
+qfz{x<37:A,A}
+dq{a<2482:A,A}
+gpj{m>2417:A,m>1980:A,tq}
+khx{s>3504:R,a>633:A,s<3211:R,A}
+kh{m>629:A,A}
+zg{a<2645:mg,s<259:sqk,x<2942:gg,md}
+sxj{m<1304:xlx,lh}
+lh{m<1742:bb,x<2813:rh,m>2090:qhd,bv}
+jxg{a>3806:A,R}
+sg{a<3432:nn,m<1550:pp,m<3113:ps,js}
+pck{m<1755:dmv,s>3255:hb,s>2954:lfz,ns}
+xqj{x>2860:A,A}
+hm{a<3006:R,A}
+bbv{a>3355:rf,s<1113:hqv,m>1976:qzk,zxk}
+rpd{s<3371:R,A}
+jzc{s>1320:A,s>1117:R,s>948:R,R}
+mjp{m<3107:db,x<3329:lsq,x>3386:jgq,R}
+chl{x>3157:A,m>2688:zq,tf}
+ffq{x<2660:hbk,s<2231:cvs,A}
+pv{x>662:bc,m>2737:fn,scz}
+rf{x>1195:A,x<1012:R,hp}
+mg{s<320:mnc,ndq}
+md{s<368:ks,a<2900:A,a>2968:A,hxd}
+rb{s<976:R,A}
+cvv{s<1568:R,s>2041:A,a>2529:R,R}
+hvx{s>3628:A,m>1706:R,m>1033:R,R}
+fhg{m>3499:R,a>2802:nm,R}
+cm{a>793:gnt,s<342:vg,dl}
+mzt{m<1547:R,A}
+cf{s>3282:A,R}
+vr{m>1574:zzp,cfl}
+vbd{x<446:R,m<2633:R,A}
+mdz{a>2230:A,A}
+dck{s<2674:R,m>1804:A,m>1642:A,A}
+dk{x>356:A,R}
+sxr{m>1197:vq,qzn}
+sl{a>3532:R,A}
+rhf{x<592:A,m<3490:A,A}
+hp{a<3393:A,a<3436:R,x<1078:A,R}
+sln{m>2771:A,R}
+hq{m>3351:A,x>1966:A,m<2756:R,R}
+bm{m<2254:R,hpt}
+vt{m<3667:R,x<1031:A,A}
+dv{a<2349:npz,a>3297:tck,x<703:gq,lm}
+ddj{m<1813:mfd,A}
+fln{s>2720:A,R}
+xft{a<198:A,a<267:R,m>3094:A,A}
+xdr{s<2440:R,m<1370:jcs,a<1346:rrl,R}
+hxc{s>3518:A,a>1208:R,x>3051:R,R}
+bc{a>3542:zb,s>1446:sr,a<3492:pjm,cz}
+lfz{a>3921:A,m>2651:A,s>3077:qj,A}
+qmk{m>2209:A,R}
+bt{m>3699:R,x<2709:R,m>3441:A,A}
+cfn{x<203:R,x<238:R,x>260:R,R}
+hbb{m>3171:R,R}
+xz{a<1217:A,m<3348:R,R}
+tz{a<2930:A,A}
+cvj{x>3663:A,R}
+kb{x<812:A,x<882:R,m>1354:R,R}
+fgc{a<3044:A,m<3797:A,a>3181:R,A}
+gz{a>2501:R,x>662:R,A}
+gs{m>2349:pbh,xc}
+cxt{m<648:A,R}
+qr{s>3439:A,s<3200:A,s>3359:R,R}
+mvk{x<310:A,A}
+rfx{a<3471:pb,jrp}
+df{a>2425:R,a>2173:A,m<2169:A,A}
+lkv{x<1956:R,m>2601:jvg,zvm}
+fgv{a>3335:R,a>2798:hck,pqd}
+tn{a>3644:R,m>3271:R,R}
+vhl{m>3441:pd,lt}
+lg{x>214:xjz,jmz}
+dkl{m>979:R,x>271:R,a<2808:A,R}
+pdp{s>2793:R,A}
+jjf{a>3211:R,A}
+tv{s<2116:sx,xsq}
+gnt{m>1411:R,x<2631:A,x>3267:A,R}
+lnj{a>2864:R,A}
+jd{x<275:cfn,s>860:jzc,mvk}
+zzd{x<1338:A,a<3957:R,A}
+xlx{m<789:jqs,dpd}
+hql{s<2258:cb,x>815:knq,x>758:vlq,chj}
+qsv{m<2600:A,cg}
+bb{a>2571:rth,m>1465:A,x<3017:R,cp}
+dz{a>2559:gs,qf}
+ps{s>3207:R,gkt}
+mf{x<611:R,A}
+gp{m>2489:zdd,x>227:R,gnc}
+hv{a<3335:R,a<3515:A,R}
+klr{x<295:A,m>520:R,m>218:A,A}
+zq{x>2372:A,R}
+zf{a>1674:R,cn}
+lm{x<1313:hgj,txn}
+npz{s>1686:rt,kt}
+qdh{a<2898:R,x>2218:R,A}
+pz{x<2285:A,A}
+hdf{m<2720:A,A}
+bmc{x>3617:rcl,hsb}
+zh{s<1038:A,a>2811:R,R}
+zfz{x>2711:R,A}
+sgr{a>3615:R,m>1350:jjj,a<3585:A,A}
+qvk{s>2967:R,m>3342:A,A}
+pqd{s<99:A,s<208:A,x<2116:R,R}
+tbd{x>3755:A,a>441:R,A}
+nn{x>1301:fln,pdp}
+hxd{m>3170:R,m<2811:R,x<3367:R,R}
+fk{x>3114:nsg,dmq}
+vzf{x>2720:ms,s>481:mhr,s<294:fgv,nqz}
+lnn{s<2149:R,x>3515:tbd,a<342:xft,zcz}
+tss{s>3258:A,A}
+sh{a>1883:qm,m>3431:A,chx}
+qj{a<3876:A,x>836:R,R}
+vl{s<2783:R,m<1099:R,x<1473:A,A}
+bkt{a>3162:A,s>3117:A,x>215:A,A}
+jh{x>101:R,s<1379:A,s<1659:R,R}
+zcp{s<611:ff,qkd}
+cr{s>772:kr,m<1018:lxl,vzf}
+ms{s>407:zt,x>3417:R,chq}
+jm{s<1028:A,R}
+bn{m<3021:vzz,m<3604:qvk,x<271:fgc,R}
+ngl{s>3536:sbr,s>3350:qdh,A}
+zsf{m>1545:A,x>1434:R,a<3918:R,A}
+ggp{s>585:R,R}
+kr{m<1070:vfc,zp}
+kks{a>1629:R,a<1563:R,a<1592:A,R}
+btt{a>801:A,R}
+jsj{s>3393:A,x<3185:R,A}
+zgx{m<855:xl,A}
+gt{x<259:R,A}
+gqx{x<621:A,a<2443:hx,gz}
+gnk{a<2992:R,R}
+vc{m>2396:xx,cl}
+hhp{m>1027:sgr,ph}
+chr{x<2230:R,x<2596:R,R}
+qkd{x>797:A,x<297:A,s<793:R,A}
+zsv{x>3189:A,s>3280:pz,x<2182:A,jxg}
+bmz{x>286:A,R}
+rcl{s<3551:R,a>1235:R,A}
+sxl{a<1497:R,x>1555:A,R}
+xmv{x<2697:shm,m<2582:bl,st}
+fd{a<2818:R,R}
+jgq{x<3411:R,R}
+zj{a<2947:A,R}
+mgb{x>2219:A,s>580:A,R}
+jjs{m>2508:pj,smp}
+mfd{s>3169:R,x>3872:R,R}
+kpn{a<3544:R,a>3555:R,R}
+lq{m>3447:A,A}
+bfq{s>1868:A,qpt}
+hlc{m>3423:rnm,a<1561:A,nv}
+zn{x<915:A,m<570:A,a>3454:A,A}
+zmq{a>2577:A,s<2162:R,a<2036:R,R}
+sqz{s<1195:A,R}
+jsd{m<1634:vs,R}
+dmq{m<1655:A,A}
+nhl{a<2744:A,A}
+mkm{s<482:A,s>608:A,R}
+rc{m>234:A,x>2208:R,m>97:R,A}
+zz{a>3346:vlc,a<2753:qqc,s>276:fx,rc}
+js{a>3452:R,m<3619:A,R}
+tj{a>1494:R,m<658:R,R}
+qhd{s<2443:mdz,znr}
+shv{m<2846:A,x>2878:A,A}
+ttn{a>3182:R,a>3140:R,x<475:R,R}
+ngp{x>3141:A,A}
+pcn{x<1006:R,s>520:A,A}
+ngq{m<1256:R,s>1251:R,a>658:R,R}
+fkd{a<3655:dd,a<3774:cfx,s>2066:qmk,fk}
+qzk{a>3335:R,R}
+dx{m<2588:zcp,a<2083:sh,x<601:rrd,fh}
+qc{x<432:zh,s>956:R,A}
+fm{s<642:R,m>2905:lq,dcp}
+rr{s>2991:xmv,ths}
+dcp{a>2785:A,s<1372:R,x>674:R,A}
+bf{s<3336:A,a<1863:A,R}
+glx{x>2156:R,nq}
+rxv{s<984:A,R}
+plp{s>2690:A,a>3040:R,x<1194:A,R}
+zdd{x<411:A,s<2583:A,s<3374:R,R}
+sbp{x>2442:R,m>802:A,a<1990:A,A}
+rzc{m>1519:R,a>2789:A,R}
+hgj{x>992:kbh,a>2782:hql,mdb}
+gc{m>3015:A,a<3333:A,x<1181:R,A}
+xh{a>3215:A,x<3863:qtm,lnj}
+jdx{a>296:hz,s>2019:A,a<185:R,R}
+ftz{a<2615:A,A}
+sr{a>3503:A,m<3116:R,vt}
+bz{m<1363:A,a<3918:R,x>347:A,A}
+lxl{m>375:ts,x>2633:ssr,zz}
+rpl{a<3086:zg,km}
+rcc{a<3086:lx,x<186:A,x<206:jjf,bkt}
+xjz{s>2664:dkl,m>1134:rzc,a<2824:klr,R}
+kf{m>2364:jp,clb}
+chs{s>2600:qd,R}
+td{a>2469:A,a>2389:A,x>480:A,R}
+st{m<3511:R,x<3456:R,s>3602:cvj,rpd}
+hmq{a>2111:A,x>1851:R,A}
+xc{x<505:zr,pl}
+th{x<582:pm,lk}
+sn{m<2549:R,s>2203:R,dlr}
+chx{m>3054:A,a<1763:R,A}
+kk{m>3497:A,a<1434:A,R}
+xj{a>2832:lkb,s<3601:A,s>3811:rbp,rfg}
+ncd{a<2175:R,R}
+dmv{x>1035:A,m<796:R,x>598:jl,bz}
+zdz{s>3645:R,x>2044:R,a<2560:R,xv}
+bj{x>1208:R,x<1157:R,m>1150:A,R}
+sbr{m<3368:R,R}
+kx{x<3147:vdh,jvl}
+kv{m>3555:bmz,x>265:sl,A}
+qd{x>1553:A,a>2834:A,s<3385:A,R}
+cxs{s>1563:cxt,x>2102:A,bs}
+lt{s<1846:A,x<3520:R,x>3795:R,nkk}
+sv{m>3685:R,a>2243:R,R}
+ft{a<963:rxt,x>2779:A,x<2244:A,lzv}
+rl{a<1094:rr,s>2736:bbb,s>1976:rhb,fr}
+jn{x<583:ttn,s<1225:A,A}
+jxl{a<2453:rxj,a>2766:ngl,zfp}
+cvs{m>285:R,A}
+jqh{a<2775:dvm,gbn}
+dg{a<2815:A,R}
+jvl{x>3689:xh,x<3456:mjp,znq}
+gnc{x<140:R,x<171:A,R}
+fkh{a<3335:R,A}
+vrm{m>937:A,m<448:R,R}
+scz{m<2202:qk,gp}
+gvq{s<123:A,m<3059:A,a<3441:A,A}
+mdb{m>1624:gpj,hf}
+xsc{x<1257:bbn,x<1486:A,sxl}
+dp{m<1786:A,a<3541:R,A}
+sf{m>773:xdr,ffq}
+dlr{x<2407:R,s>1899:R,x<2587:R,R}
+rk{x>2534:A,A}
+rn{s<2830:A,hbb}
+jvg{s>3506:A,m>2651:A,m>2621:A,R}
+hfg{m>2738:zdz,a>2232:lkv,fvs}
+lzv{s<480:A,A}
+tqf{m>2290:ssz,xb}
+vmf{m<1433:qhx,m>2129:jcz,a<970:xk,dck}
+gv{m>563:R,x>1087:bd,m<346:R,vz}
+fvs{s>3483:A,a<1973:bf,x>1995:ghn,hmq}
+tqk{m<963:R,a>2859:R,A}
+rx{x<977:nnk,bqr}
+rvm{x>3305:A,m<1917:R,R}
+clb{x>1123:R,chh}
+pm{s>967:A,vbd}
+zcz{a<501:R,R}
+fsz{a>2745:R,R}
+nfq{s<1487:jbm,a>1745:jjb,rl}
+hdh{m>3509:A,s<1411:R,m<3227:A,A}
+dgv{m>2115:A,A}
+ccf{x>582:sxr,s>2966:qr,s<2421:btt,vmf}
+kbh{x<1100:hgk,m>2034:smc,bj}
+dd{m<2080:ct,s>2201:rk,hv}
+ff{s>381:R,x<841:R,R}
+gtx{s<890:A,m<3503:A,x>2000:A,R}
+bx{m<3245:R,m>3522:zfz,x<2768:tc,R}
+cbz{s<800:kpf,vr}
+hjj{a<1141:R,s<3290:R,A}
+nnk{s<496:vls,a<1328:nt,m<2251:R,gtr}
+mhr{m>1624:R,m<1228:R,m>1458:ggp,mgb}
+grb{s>2354:A,s>824:R,s<393:R,A}
+vzz{m>2291:R,m<1985:A,A}
+dc{s<2446:A,s>2870:A,s>2640:A,R}
+cb{s>956:kb,A}
+bkv{s<917:bm,jn}
+cmn{a<1575:A,s>2325:A,s<2132:pzh,A}
+vq{x>1200:R,m<1709:A,A}
+xx{s<2987:R,s>3641:A,m<3099:gnk,A}
+skj{x<2732:pgx,x>2863:pqn,a>2109:R,A}
+qk{x<433:R,x<540:grb,s>2612:dp,mf}
+nb{a<3379:dgv,x>433:xqb,mzt}
+skd{s>85:R,a>3825:R,s>57:bsr,vj}
+bsr{a<3615:R,A}
+bqr{m<2638:A,kk}
+gmm{s<271:R,R}
+ssr{m>170:mkm,A}
+xr{x>1412:R,R}
+dpd{s>2570:rz,a<2463:ndl,m<1077:tqk,fsz}
+cg{x>2240:R,s>3092:A,s<2882:R,A}
+zt{s>605:R,m<1978:R,x<3468:A,A}
+gbn{a>2840:A,x>606:R,A}
+sk{s>627:A,R}
+xv{s<3310:A,x<1827:R,R}
+jvb{m>2641:rhf,x<598:dsq,x>615:R,nr}
+dbk{a<3270:R,s<3854:A,R}
+ld{x>1033:A,s<1042:A,A}
+hz{s>2156:A,R}
+hgm{a>3479:zsv,a>3293:jsd,bg}
+sd{s<1388:R,m<220:A,a<3336:A,R}
+ks{x<3304:R,A}
+cp{x<3510:A,s>2786:A,R}
+mc{x<138:tx,m<1731:lg,nd}
+grf{a<3910:dt,zzd}
+tm{m>2653:A,R}
+znm{x>3272:R,tj}
+qtm{a<2683:A,m<3283:R,A}
+cpj{x>523:A,m>2682:A,m<2527:R,A}
+vx{x>2368:A,A}
+kp{x>444:R,x<233:R,A}
+vlq{a>3107:tm,s>3354:A,m<2037:R,R}
+mzn{m>2863:R,A}
+zb{s>1752:R,x>1070:zgf,sk}
+pqn{m<2758:A,R}
+lsq{m<3507:A,s<957:R,R}
+krr{a<3740:R,R}
+czn{a>3163:R,m<1999:R,a<3012:A,R}
+nkk{s<2070:R,R}
+nrt{s<1315:A,x<2219:R,A}
+ds{a<1180:hjj,m<1480:hxc,pf}
+xb{x<928:R,s<680:dpt,ngq}
+mj{a<2118:R,R}
+kpv{x>329:A,A}
+dpt{x<1220:R,R}
+vls{a<1332:A,a>1469:A,R}
+cs{x>1439:R,s>709:A,R}
+tl{a>1243:jsj,ds}
+xbt{x>1513:A,fz}
+hpt{m<2917:R,m<3336:R,R}
+fr{m<1904:hdc,xdt}
+dsl{x<891:R,a<3061:A,A}
+ph{m>522:A,A}
+tck{a>3652:zdg,a<3466:vvc,m<1552:gl,pv}
+lk{x>628:A,x<605:R,x>614:R,A}
+nj{s>2734:A,R}
+khd{a>2723:hm,x<1375:lxg,a<2580:A,zx}
+vvc{x<813:nb,s<1759:bbv,a<3401:kf,sg}
+fh{m<3059:R,sv}
+rt{m<2548:ccf,bqs}
+dtv{s>2651:njc,kpn}
+db{s>1037:R,s>793:A,x<3290:A,A}
+rfg{x>2488:R,A}
+rxj{a>2073:fxv,A}
+zgf{a<3590:R,R}
+lxg{a<2574:R,m>3113:A,a>2644:R,A}
+pp{x<1117:zn,a<3445:A,R}
+hk{a<3058:A,R}
+cps{x>673:gv,a<3514:lf,dtv}
+bl{m<1269:A,s>3432:A,s>3277:A,cml}
+rhb{m<2194:sf,zjt}
+rth{s<2408:R,m>1515:A,R}
+vs{x>2539:A,A}
+znq{m>3125:R,A}
+hzc{m>1851:mv,x>716:qg,jx}
+tzb{m>3238:tg,xxd}
+jxd{a<2457:A,A}
+cn{s<3324:A,A}
+qqc{x<2085:R,m<164:A,m>259:A,R}
+rbp{m>2847:A,m<2787:A,R}
+jjj{x>876:A,a<3595:A,R}
+smc{s<1533:R,a>2843:plp,x<1198:R,pms}
+ckf{s>1717:A,s<1570:R,R}
+kl{a<2275:A,A}
+fl{s>2371:tzb,vhl}
+rz{a<2450:R,s>3365:A,R}
+rjv{s<1810:A,m>758:A,s>2893:R,R}
+hx{x<671:A,a>2389:R,x>691:R,R}
+jp{s<2734:gc,s>3506:A,R}
+bnt{m>837:A,m>433:R,m>254:R,R}
+hgk{a<2704:A,a>3062:A,nxg}
+txn{m>2615:ktj,tv}
+pgx{a>1994:R,x>2611:R,A}
+xxd{m>2723:A,s<2919:zvg,m>2567:R,vm}
+gtr{s>886:A,a<1457:R,R}
+jcz{s>2754:R,a>1065:R,a<523:A,A}
+chq{x<3072:A,x<3293:R,R}
+clz{s<3150:fkd,s>3490:rfx,hgm}
+hck{x>2194:R,s>122:A,A}
+vd{m>1534:jjs,a>3770:kmt,cj}
+qzn{x>1103:R,s<2513:A,A}
+pj{m>3377:A,A}
+tc{a>3418:R,R}
+kt{a<1141:tqf,s>1093:hzc,a<1584:rx,dx}
+gf{a<3431:A,A}
+jx{s<1412:vrm,s>1565:A,dm}
+vrl{x>386:xz,R}
+mz{a<2492:A,A}
+mkg{s>1805:vc,a>3085:bkv,a<2882:dnt,th}
+ns{a>3913:R,bdr}
+kq{s<2373:A,bt}
+jcs{s>2567:R,s<2521:A,R}
+jbm{a<2334:cbz,m<2533:cr,s<516:rpl,kx}
+pjm{m<2956:A,pcn}
+nt{a>1236:A,m<2027:A,R}
+rbf{s<846:R,m>2754:hdh,x<73:qfz,jh}
+hf{s<2598:cvv,A}
+cl{s>3154:hk,a<2910:dc,m>1368:czn,ccj}
+rh{s>2442:jxd,s<2047:ckf,s>2249:df,A}
+vj{s<31:R,a<3675:R,a<3727:R,A}
+qhx{a<1403:R,s<2780:A,R}
+hsb{s<3410:R,a<1336:A,A}
+vfc{x<2652:kh,s>1086:bjc,m>636:R,A}
+cd{s<1248:R,a>2984:R,A}
+nhf{a<3351:bk,gvq}
+jmz{x>176:R,a>2694:bnt,a>2565:R,vp}
+cfl{a>1330:sbp,s<1255:mkx,m<858:R,pqm}
+lkb{a<2993:R,m<2845:R,A}
+jjb{a>3094:clz,m<2393:sxj,x<3056:gvv,fl}
+rrd{a<2231:A,m>3181:kl,x>325:R,dkj}
+fj{m>3651:R,gtx}
+hdc{x>2461:znm,s>1764:bfq,s>1606:zgx,cxs}
+kmt{x<1020:xjj,s<2087:xr,A}
+cj{m<730:txd,x>819:A,kp}
+xqb{s<1587:rb,a<3436:R,vpg}
+xq{a<3606:R,x<329:R,R}
+tq{s<2112:A,s<3362:R,A}
+zzp{x>2975:sqz,m<2520:R,R}
+pqm{m<1122:A,s<1390:R,a>875:R,A}
+jq{x<3451:R,cf}
+xjj{s>2372:R,x<668:A,s>1023:R,R}
+tfq{s>3172:R,m>1532:R,A}
+bqs{x>919:xsc,vrl}
+thp{a<2602:R,m<2928:R,x<247:A,A}
+dkj{x>141:A,m<2971:R,A}
+pzx{x>2642:A,a<3478:A,R}
+ths{x<2809:sn,a>725:qvl,m<1362:jdx,lnn}
+qg{a>1868:mj,m>836:A,zxc}
+tx{s>1835:tph,m<2098:px,rbf}
+vf{a<2428:skj,m<2736:pg,x>2633:shv,xj}
+km{s>209:zqs,a>3504:skd,x<2757:glx,nhf}
+kj{s<3287:nj,thp}
+cml{m<1837:A,s<3096:R,a>494:A,R}
+rlc{m>474:R,m>251:A,x>2484:A,A}
+txd{s>2156:R,A}
+gl{a>3563:hhp,cps}
+ccj{m>569:A,s<2508:A,R}
+pf{m>3126:A,x>3194:R,R}
+pbh{m>3239:mm,cpj}
+zjt{a>1394:cmn,lv}
+drm{a>1592:A,R}
+bdr{a<3869:R,m>2643:A,x>1082:A,A}
+jqs{s>2614:rlc,dq}
+mv{x<623:R,qlj}
+nr{m<2107:R,R}
+zdg{a<3847:vd,s>2594:pck,ln}
+xk{s<2671:A,m>1780:R,A}
+px{s<685:zzq,s<1444:A,a<2772:R,A}
+znr{m>2244:R,a>2352:A,x<3509:A,R}
+bk{s>79:R,x<3271:R,A}
+ktj{x<1421:khd,m<3145:xbt,x>1493:chs,zj}
+hb{s>3741:R,s>3440:A,gm}
+ffs{s<1003:A,m>2845:cd,x>2032:nrt,hdf}
+dl{x<3044:R,m>1590:A,m<588:A,A}
+vg{m<1260:A,s<201:A,a>302:A,A}
+zfp{s>3617:chr,R}
+qpt{x<2038:R,s<1806:R,x>2275:R,R}
+jrp{m<1617:krr,s<3809:A,A}
+zqs{s>394:pzx,tn}
+knq{x>908:R,x<872:R,dsl}
+bbb{x<2800:xrs,a>1484:jpt,x>3526:vrp,tl}
+fz{s<1941:R,R}
+nm{a>2984:A,m>3291:A,A}
+rrl{s>2543:A,a>1195:A,a>1143:R,R}
+jpt{a>1614:zf,m<2537:jq,hlc}
+mb{s>2480:A,a>2039:R,A}
+flg{x<2119:bth,m<3180:mz,a>2238:fhg,kq}
+qlg{a>3593:R,A}
+nd{s<1985:jd,a<2754:kj,x<224:rcc,bn}
+nsg{x>3601:R,R}
+pg{a>2794:A,m>2531:A,tk}
+vpg{a<3448:A,x>601:A,m>2200:A,R}
+qq{a<3599:qlg,xq}
+mjq{m>906:A,R}
+tk{s<3534:R,A}
+tf{x<2430:A,m<2307:A,x<2765:R,A}
+bd{m>361:R,a>3529:A,R}
+xsq{a>2809:vl,a<2624:tfq,m<1412:mjq,nhl}
+bs{m<1209:R,x<1880:A,A}
+fn{a<3588:kv,a<3614:qq,s<1821:cls,rn}
+xt{m<2535:A,drm}
+pzh{x>3042:R,x>2454:A,R}
+sx{x<1429:bvs,rxv}
+vz{x<933:R,A}
+nq{m<3063:R,A}
+dm{m>867:R,A}
+sdr{s>1536:zsf,cnc}
+bvs{x<1372:A,x<1409:R,m>1611:A,R}
+zxk{m>1166:tb,m>571:fkh,sd}
+nxg{x>1061:R,x<1037:R,x>1045:R,R}
+gq{x<350:mc,a<2674:dz,mkg}
+vrp{x<3760:bmc,ddj}
+bbn{x>1096:A,m<3379:A,s>2981:R,A}
+sc{s>2125:R,A}
+vlc{s<330:R,x>2068:R,R}
+pl{s>2521:R,x<590:R,R}
+shm{m<1775:R,a<392:R,khx}
+zvg{s>2600:A,R}
+
+{x=864,m=2222,a=195,s=384}
+{x=901,m=448,a=737,s=1768}
+{x=2926,m=108,a=66,s=710}
+{x=447,m=2075,a=739,s=2}
+{x=597,m=681,a=975,s=28}
+{x=2159,m=1819,a=2019,s=618}
+{x=384,m=15,a=1695,s=142}
+{x=76,m=739,a=729,s=42}
+{x=1070,m=3064,a=2917,s=2856}
+{x=1584,m=1118,a=1134,s=1906}
+{x=23,m=7,a=309,s=260}
+{x=987,m=52,a=513,s=2353}
+{x=2128,m=133,a=1707,s=2272}
+{x=1721,m=9,a=10,s=2757}
+{x=56,m=1928,a=2447,s=651}
+{x=358,m=1514,a=208,s=2003}
+{x=991,m=160,a=1850,s=29}
+{x=135,m=900,a=257,s=1885}
+{x=1594,m=1262,a=292,s=773}
+{x=958,m=762,a=1835,s=129}
+{x=204,m=851,a=781,s=51}
+{x=393,m=77,a=65,s=1317}
+{x=102,m=2858,a=694,s=133}
+{x=1558,m=357,a=508,s=289}
+{x=185,m=111,a=305,s=2389}
+{x=877,m=2013,a=2980,s=2509}
+{x=2494,m=1224,a=54,s=939}
+{x=336,m=1421,a=2434,s=2183}
+{x=375,m=713,a=2313,s=459}
+{x=2899,m=54,a=334,s=1951}
+{x=452,m=585,a=16,s=531}
+{x=220,m=566,a=192,s=346}
+{x=1556,m=1173,a=7,s=611}
+{x=793,m=1179,a=549,s=16}
+{x=2730,m=545,a=888,s=2861}
+{x=8,m=136,a=1607,s=40}
+{x=641,m=2099,a=2295,s=745}
+{x=2342,m=100,a=1010,s=1306}
+{x=3432,m=432,a=658,s=645}
+{x=121,m=1563,a=1172,s=1807}
+{x=60,m=1124,a=859,s=595}
+{x=39,m=2653,a=1212,s=295}
+{x=1810,m=2143,a=250,s=899}
+{x=1049,m=1680,a=2472,s=66}
+{x=1305,m=645,a=1311,s=18}
+{x=32,m=1575,a=933,s=88}
+{x=2066,m=2204,a=2147,s=48}
+{x=806,m=263,a=862,s=406}
+{x=1218,m=142,a=2380,s=2080}
+{x=199,m=1608,a=815,s=504}
+{x=1355,m=844,a=312,s=186}
+{x=409,m=1271,a=2737,s=620}
+{x=652,m=409,a=315,s=1051}
+{x=2044,m=149,a=2045,s=3394}
+{x=1787,m=496,a=142,s=313}
+{x=70,m=78,a=953,s=872}
+{x=1072,m=1733,a=541,s=115}
+{x=254,m=302,a=1483,s=1537}
+{x=239,m=1242,a=929,s=15}
+{x=517,m=932,a=1899,s=844}
+{x=2926,m=364,a=595,s=1294}
+{x=1358,m=68,a=34,s=1728}
+{x=2065,m=312,a=3623,s=181}
+{x=414,m=451,a=876,s=80}
+{x=1689,m=843,a=139,s=245}
+{x=1136,m=289,a=2256,s=2537}
+{x=99,m=1094,a=980,s=382}
+{x=1610,m=751,a=456,s=143}
+{x=717,m=113,a=530,s=502}
+{x=2050,m=1025,a=431,s=48}
+{x=3411,m=87,a=306,s=2865}
+{x=1894,m=19,a=46,s=3399}
+{x=574,m=1848,a=599,s=1924}
+{x=3,m=1021,a=26,s=1166}
+{x=776,m=1882,a=1946,s=453}
+{x=1170,m=381,a=957,s=601}
+{x=1703,m=200,a=298,s=1246}
+{x=117,m=43,a=286,s=1131}
+{x=2642,m=18,a=552,s=8}
+{x=333,m=458,a=518,s=1260}
+{x=2391,m=794,a=1032,s=1156}
+{x=1439,m=629,a=1737,s=268}
+{x=70,m=465,a=603,s=1399}
+{x=312,m=648,a=875,s=785}
+{x=3106,m=348,a=45,s=198}
+{x=2991,m=18,a=1424,s=436}
+{x=397,m=1490,a=520,s=53}
+{x=553,m=232,a=2916,s=781}
+{x=1404,m=738,a=925,s=513}
+{x=757,m=619,a=442,s=43}
+{x=1747,m=924,a=11,s=430}
+{x=3644,m=201,a=693,s=33}
+{x=336,m=141,a=1473,s=2008}
+{x=1723,m=1595,a=91,s=282}
+{x=768,m=426,a=895,s=573}
+{x=312,m=604,a=12,s=361}
+{x=2900,m=23,a=748,s=578}
+{x=1100,m=116,a=2804,s=2407}
+{x=121,m=94,a=937,s=514}
+{x=61,m=2592,a=1518,s=855}
+{x=356,m=64,a=1167,s=732}
+{x=1538,m=702,a=444,s=524}
+{x=1071,m=230,a=1273,s=954}
+{x=1538,m=1389,a=963,s=681}
+{x=3560,m=407,a=606,s=1015}
+{x=276,m=534,a=14,s=2920}
+{x=122,m=1529,a=3159,s=302}
+{x=764,m=529,a=1535,s=1743}
+{x=1015,m=491,a=1323,s=1241}
+{x=831,m=1667,a=2553,s=146}
+{x=841,m=203,a=2621,s=696}
+{x=1586,m=403,a=1308,s=1892}
+{x=2119,m=47,a=446,s=124}
+{x=2321,m=2184,a=309,s=735}
+{x=44,m=99,a=2037,s=1730}
+{x=917,m=192,a=31,s=1104}
+{x=1135,m=2330,a=2073,s=1651}
+{x=1149,m=907,a=51,s=79}
+{x=299,m=330,a=2588,s=1829}
+{x=203,m=1847,a=205,s=696}
+{x=418,m=498,a=1030,s=307}
+{x=1560,m=1398,a=54,s=723}
+{x=1232,m=39,a=216,s=648}
+{x=1449,m=527,a=2553,s=39}
+{x=2579,m=154,a=208,s=1099}
+{x=213,m=1557,a=2636,s=202}
+{x=1787,m=1475,a=1407,s=1761}
+{x=1057,m=33,a=29,s=1488}
+{x=46,m=2348,a=2573,s=1457}
+{x=2080,m=352,a=247,s=97}
+{x=166,m=10,a=938,s=1203}
+{x=375,m=3545,a=21,s=2507}
+{x=1525,m=1748,a=63,s=511}
+{x=4,m=712,a=1182,s=2085}
+{x=460,m=996,a=1,s=2354}
+{x=538,m=1452,a=1066,s=2980}
+{x=328,m=488,a=2291,s=1542}
+{x=787,m=2124,a=649,s=281}
+{x=890,m=17,a=1812,s=99}
+{x=950,m=308,a=67,s=87}
+{x=792,m=500,a=64,s=546}
+{x=194,m=524,a=849,s=1060}
+{x=24,m=492,a=1727,s=1628}
+{x=3080,m=427,a=11,s=300}
+{x=910,m=2320,a=2178,s=225}
+{x=100,m=586,a=2247,s=1402}
+{x=1277,m=400,a=1053,s=11}
+{x=442,m=450,a=1063,s=1664}
+{x=1360,m=658,a=1705,s=306}
+{x=60,m=1215,a=1012,s=2971}
+{x=37,m=973,a=1351,s=2900}
+{x=755,m=1798,a=41,s=1999}
+{x=456,m=565,a=13,s=18}
+{x=1068,m=108,a=1261,s=216}
+{x=179,m=559,a=1871,s=1357}
+{x=760,m=1634,a=1753,s=502}
+{x=33,m=466,a=1114,s=112}
+{x=443,m=1297,a=280,s=1777}
+{x=2608,m=1971,a=651,s=2930}
+{x=244,m=1227,a=1578,s=15}
+{x=1063,m=635,a=2276,s=331}
+{x=321,m=1326,a=2474,s=359}
+{x=1412,m=186,a=2378,s=750}
+{x=1007,m=463,a=211,s=520}
+{x=2193,m=158,a=1966,s=952}
+{x=1047,m=348,a=37,s=88}
+{x=3034,m=1692,a=248,s=1957}
+{x=508,m=1601,a=213,s=712}
+{x=640,m=386,a=1410,s=2062}
+{x=683,m=855,a=503,s=3485}
+{x=574,m=28,a=978,s=287}
+{x=4,m=1189,a=20,s=330}
+{x=1716,m=1734,a=166,s=547}
+{x=903,m=1023,a=220,s=2002}
+{x=2105,m=2151,a=753,s=216}
+{x=357,m=1260,a=242,s=32}
+{x=382,m=1261,a=3644,s=2198}
+{x=451,m=1290,a=1901,s=446}
+{x=510,m=391,a=1064,s=1313}
+{x=1279,m=40,a=1825,s=946}
+{x=21,m=1879,a=1728,s=429}
+{x=50,m=183,a=1799,s=895}
+{x=2200,m=2092,a=827,s=1450}
+{x=230,m=1800,a=1178,s=1276}
+{x=747,m=1987,a=838,s=1589}
+{x=2113,m=613,a=727,s=26}
+{x=34,m=305,a=1750,s=1402}
+{x=394,m=3102,a=229,s=339}
+{x=247,m=1734,a=102,s=847}
+{x=819,m=1651,a=3293,s=1663}
+{x=459,m=2156,a=175,s=296}
+{x=1194,m=2195,a=324,s=297}
+{x=510,m=47,a=9,s=1406}
+{x=478,m=18,a=114,s=643}
+{x=278,m=2041,a=185,s=237}
+{x=2208,m=263,a=252,s=70}
+{x=22,m=956,a=1030,s=240}
+{x=164,m=466,a=3598,s=1158}
+{x=2901,m=267,a=108,s=455}
+{x=569,m=1421,a=1176,s=1237} \ No newline at end of file
diff --git a/aoc2023/src/day2/input.txt b/aoc2023/src/day2/input.txt
new file mode 100644
index 0000000..34a6672
--- /dev/null
+++ b/aoc2023/src/day2/input.txt
@@ -0,0 +1,100 @@
+Game 1: 1 green, 4 blue; 1 blue, 2 green, 1 red; 1 red, 1 green, 2 blue; 1 green, 1 red; 1 green; 1 green, 1 blue, 1 red
+Game 2: 2 blue, 2 red, 6 green; 1 red, 6 green, 7 blue; 10 green, 8 blue, 1 red; 2 green, 18 blue, 2 red; 14 blue, 3 green, 1 red; 8 green, 1 red, 9 blue
+Game 3: 6 green, 5 blue, 9 red; 4 blue, 1 green, 13 red; 9 green, 14 red, 1 blue
+Game 4: 14 green, 3 blue, 16 red; 20 red; 4 green, 2 red, 1 blue; 10 blue, 11 green, 18 red; 3 red, 3 blue, 6 green; 2 green, 18 red, 9 blue
+Game 5: 5 green, 4 blue; 1 red, 3 blue, 2 green; 4 green, 2 red, 15 blue; 11 blue, 8 green, 4 red; 4 red, 3 green; 4 red, 3 green, 7 blue
+Game 6: 6 blue, 10 green; 2 red, 6 green, 2 blue; 4 red, 4 blue, 1 green; 2 blue, 7 green, 2 red
+Game 7: 14 green, 3 red, 2 blue; 5 blue, 3 green, 2 red; 1 green, 3 blue
+Game 8: 7 red; 3 blue, 9 red, 1 green; 5 green, 5 blue, 7 red; 1 red, 2 blue
+Game 9: 3 green, 4 blue, 1 red; 3 blue, 12 green, 18 red; 7 green, 9 red, 8 blue; 2 blue, 10 red, 12 green; 4 blue, 1 red, 1 green; 4 blue, 6 green, 6 red
+Game 10: 2 blue, 4 green, 2 red; 7 green, 4 red; 5 red, 8 green
+Game 11: 1 blue, 10 green, 15 red; 1 blue, 2 green, 2 red; 5 green, 10 blue, 8 red; 13 red, 7 blue; 1 red, 9 green, 4 blue; 9 blue, 9 red, 8 green
+Game 12: 1 green, 10 red, 3 blue; 14 red, 1 green, 4 blue; 6 red, 3 green, 12 blue; 13 blue, 1 green, 18 red; 4 green, 14 red, 7 blue
+Game 13: 1 red, 3 green; 2 green, 1 red, 5 blue; 1 blue; 1 green, 7 blue, 1 red; 1 red, 2 green, 7 blue
+Game 14: 7 blue, 9 red, 1 green; 8 red, 2 blue; 11 red, 18 blue, 4 green; 2 blue, 3 green, 1 red; 1 green, 8 red, 9 blue; 2 blue, 8 red, 1 green
+Game 15: 8 blue, 3 green, 15 red; 13 red, 10 blue; 2 red
+Game 16: 1 green, 1 red; 1 blue, 2 green, 2 red; 1 blue, 4 red, 1 green; 3 green; 2 blue, 3 green, 4 red
+Game 17: 1 green, 3 red, 14 blue; 1 red, 2 blue, 2 green; 3 red
+Game 18: 1 red, 2 green, 8 blue; 2 blue, 14 red; 4 blue, 2 red, 2 green; 6 red
+Game 19: 2 red, 11 blue, 18 green; 3 red, 6 green, 3 blue; 7 green, 1 red, 10 blue
+Game 20: 10 red, 1 blue, 4 green; 4 green, 3 blue; 10 green, 13 red, 4 blue; 2 red, 7 green; 4 red, 3 blue, 5 green; 13 red, 1 green, 4 blue
+Game 21: 20 red, 4 green, 5 blue; 10 red, 11 green, 4 blue; 1 red, 8 blue, 14 green; 11 green, 8 blue, 15 red; 8 blue, 2 green, 13 red
+Game 22: 2 red, 11 blue, 4 green; 1 blue, 3 red, 6 green; 6 green, 1 red, 1 blue; 4 green, 7 blue, 3 red; 11 blue, 6 green, 4 red
+Game 23: 6 green, 3 red, 1 blue; 17 green, 11 red; 1 red, 2 blue, 13 green; 13 green, 19 red
+Game 24: 1 blue; 12 red, 1 blue; 1 red; 12 red, 1 green, 1 blue; 11 red, 1 blue; 12 red, 1 green
+Game 25: 12 blue, 6 red, 3 green; 8 green, 14 blue; 11 green, 5 blue, 6 red; 4 red, 12 blue, 8 green
+Game 26: 15 red, 13 green, 9 blue; 9 blue, 8 green, 7 red; 2 green, 6 red, 3 blue; 1 blue, 7 red, 3 green; 13 blue, 4 green, 18 red
+Game 27: 9 blue, 5 red; 15 red, 12 blue, 3 green; 12 red, 12 blue, 1 green
+Game 28: 18 red, 4 green; 4 green, 6 red; 1 blue, 6 green, 19 red; 9 green, 17 red; 4 green, 5 blue, 18 red
+Game 29: 7 green, 6 red, 6 blue; 6 blue, 19 red, 4 green; 4 green, 4 blue, 13 red; 5 blue, 15 red, 10 green; 2 green, 6 blue, 5 red; 8 red, 10 green, 6 blue
+Game 30: 1 green, 13 red, 12 blue; 1 red, 2 blue; 11 blue, 1 red, 1 green
+Game 31: 8 green, 18 blue, 17 red; 4 red, 8 green, 6 blue; 9 blue, 7 green; 3 green, 1 blue, 12 red; 5 red, 10 blue, 11 green
+Game 32: 17 red, 17 green, 7 blue; 18 red, 16 green; 1 blue
+Game 33: 16 blue, 3 red; 9 blue, 1 red, 2 green; 3 green, 7 blue; 1 green, 4 red; 3 green, 1 red, 8 blue; 5 blue
+Game 34: 5 blue, 8 red, 1 green; 9 red, 10 blue, 7 green; 1 green, 14 blue; 8 blue, 4 red, 10 green; 15 blue, 8 green, 7 red; 2 red, 6 green, 3 blue
+Game 35: 13 red, 9 blue; 7 blue, 16 red, 10 green; 4 red, 6 blue; 3 blue, 12 green, 7 red; 8 blue, 6 red; 10 blue, 3 green, 2 red
+Game 36: 1 blue, 9 red, 2 green; 11 red, 3 blue, 2 green; 2 green, 6 red; 8 green, 11 red, 3 blue; 4 green, 7 blue, 11 red; 9 green, 8 red, 2 blue
+Game 37: 8 green, 3 blue, 4 red; 14 blue, 10 green, 3 red; 19 green, 2 blue, 7 red
+Game 38: 2 green, 3 red, 3 blue; 3 green, 9 red; 13 blue, 8 red; 6 red, 5 green, 13 blue
+Game 39: 8 red, 5 blue; 4 green, 5 blue, 3 red; 18 red, 2 green, 6 blue; 2 green, 5 blue, 17 red; 1 green, 2 red; 5 green, 6 blue
+Game 40: 12 red, 4 blue, 1 green; 11 green, 20 blue, 4 red; 10 blue, 4 red
+Game 41: 2 green, 2 blue; 2 red, 2 green; 2 green, 2 blue, 10 red
+Game 42: 6 green, 3 blue; 2 red, 2 green, 1 blue; 3 blue, 5 green, 6 red; 6 red; 1 blue, 6 green, 12 red
+Game 43: 1 blue, 4 green; 1 blue; 2 blue, 8 red, 2 green; 2 blue, 1 red, 4 green; 1 blue, 4 red, 4 green; 4 green, 7 red
+Game 44: 8 green, 9 red; 1 red, 2 blue, 13 green; 4 blue, 8 green, 17 red; 13 red, 13 green; 1 red, 9 green; 19 red, 3 green, 3 blue
+Game 45: 10 blue, 2 red, 1 green; 6 green, 5 red, 8 blue; 3 blue, 1 red; 4 green, 10 blue, 4 red
+Game 46: 3 red, 8 blue; 6 blue, 7 green, 6 red; 6 green, 1 blue, 7 red; 8 red, 1 green, 5 blue; 9 red, 12 blue, 10 green; 7 green, 5 red, 1 blue
+Game 47: 5 red; 2 blue, 2 green, 5 red; 3 green, 7 red; 14 red, 3 green, 2 blue
+Game 48: 7 blue, 12 green, 2 red; 11 green, 10 blue, 1 red; 1 red, 13 blue, 2 green; 14 green, 2 red, 9 blue; 2 red, 12 green, 3 blue; 2 red, 7 blue
+Game 49: 4 green, 5 blue; 9 blue; 10 blue, 5 green, 2 red; 10 blue, 2 red, 2 green; 1 red, 1 green, 4 blue; 2 blue
+Game 50: 2 red, 2 blue, 7 green; 7 red, 9 green, 3 blue; 5 red, 10 green
+Game 51: 15 red, 9 blue, 4 green; 5 red, 2 blue, 15 green; 4 blue, 3 green, 20 red; 12 green, 1 red, 10 blue; 10 green, 5 blue, 13 red; 9 red, 10 green, 11 blue
+Game 52: 3 blue, 12 green, 1 red; 6 green; 1 red, 8 green; 1 blue, 1 green, 1 red
+Game 53: 10 green, 7 red, 12 blue; 9 blue, 6 green, 2 red; 8 green, 5 blue, 5 red; 7 blue, 16 green, 11 red; 6 red, 8 blue, 13 green
+Game 54: 10 green, 6 blue, 3 red; 6 green, 2 red, 8 blue; 9 blue, 11 green, 2 red; 10 green, 1 blue, 3 red
+Game 55: 4 blue, 1 red; 3 red, 7 blue; 12 red, 4 green, 8 blue; 3 green, 5 blue, 1 red; 13 blue, 12 red, 1 green
+Game 56: 12 blue, 15 green; 1 green, 7 red, 11 blue; 5 green, 9 blue, 1 red; 8 red, 5 green, 6 blue
+Game 57: 4 green, 11 blue, 18 red; 14 blue, 14 red, 16 green; 7 red, 15 green, 3 blue; 18 red, 20 green, 8 blue; 12 blue, 9 red, 16 green
+Game 58: 10 blue, 9 green, 8 red; 13 green, 6 blue, 8 red; 8 green, 4 red; 4 blue, 1 red, 18 green; 7 red, 10 green, 10 blue; 15 blue, 10 green, 3 red
+Game 59: 17 green, 2 blue, 2 red; 2 blue, 1 red, 8 green; 14 green, 1 red, 1 blue; 15 green, 3 blue, 2 red; 2 blue, 8 green, 1 red; 1 blue, 1 red, 8 green
+Game 60: 1 green, 1 blue, 1 red; 4 blue, 3 red, 2 green; 13 green; 2 blue, 2 red, 8 green; 4 red, 12 green, 4 blue; 4 green, 4 blue, 4 red
+Game 61: 3 blue, 7 red; 5 blue, 8 red, 1 green; 1 blue, 8 red; 10 blue, 2 red, 1 green; 1 green, 5 blue, 2 red
+Game 62: 10 red, 2 green; 8 blue, 7 red, 2 green; 4 green, 2 blue, 10 red
+Game 63: 1 green, 3 blue, 5 red; 6 green, 5 blue, 2 red; 3 blue, 7 red
+Game 64: 6 red, 20 blue; 4 red, 3 blue, 2 green; 3 green, 19 blue, 6 red; 2 green, 6 blue, 3 red; 13 blue, 5 green, 5 red
+Game 65: 6 red, 9 blue, 20 green; 6 red, 16 green, 4 blue; 12 red, 6 green, 5 blue
+Game 66: 2 blue, 5 red, 4 green; 13 blue, 2 green; 1 green, 6 blue
+Game 67: 4 green, 5 blue, 2 red; 1 red, 14 blue, 6 green; 1 green, 14 red, 5 blue; 18 red, 16 blue; 15 blue, 8 red, 18 green; 1 green, 18 red, 6 blue
+Game 68: 1 blue, 9 red, 7 green; 7 red, 1 blue, 6 green; 5 green, 1 blue, 8 red
+Game 69: 12 green, 3 blue, 4 red; 9 green, 8 red, 7 blue; 4 blue, 5 red, 10 green; 4 red, 5 green, 7 blue; 9 green, 4 red, 2 blue; 3 green, 13 blue, 1 red
+Game 70: 9 red, 1 green, 8 blue; 11 green, 13 blue, 12 red; 3 blue, 5 green, 8 red; 1 red, 14 blue
+Game 71: 10 blue; 2 green, 8 blue, 9 red; 5 red, 1 blue
+Game 72: 3 green, 5 blue, 5 red; 1 blue, 1 red, 2 green; 4 red, 4 blue, 1 green; 5 blue, 4 red, 1 green; 6 blue, 3 green, 5 red; 5 blue, 1 red, 4 green
+Game 73: 3 red, 1 green, 1 blue; 7 green, 2 red, 1 blue; 2 green, 1 blue, 3 red; 1 red, 4 green, 1 blue; 3 red, 5 green
+Game 74: 5 blue, 1 red, 4 green; 3 red, 2 green; 4 red, 6 blue; 2 red, 2 blue; 1 green, 4 red, 8 blue; 5 blue, 4 red
+Game 75: 3 red, 5 blue, 3 green; 9 green, 6 blue, 7 red; 2 green, 3 red, 12 blue; 14 green, 4 blue, 10 red
+Game 76: 1 blue, 7 red, 1 green; 6 red, 1 blue, 2 green; 4 red, 2 green; 3 red, 1 blue; 16 red, 1 green
+Game 77: 3 red, 10 blue, 1 green; 4 red, 7 blue, 3 green; 7 blue, 6 green, 7 red; 5 green, 15 blue, 7 red; 12 green, 5 red
+Game 78: 6 red, 10 blue, 15 green; 6 green, 11 red, 4 blue; 6 blue, 8 red; 4 blue, 7 red, 2 green; 11 green, 7 red, 11 blue; 3 blue, 14 green, 6 red
+Game 79: 14 red, 6 green, 4 blue; 13 red, 6 blue; 6 red, 13 green, 4 blue
+Game 80: 8 red, 2 blue, 8 green; 6 red, 10 green, 4 blue; 3 red, 9 green; 2 green, 8 blue, 7 red; 7 blue, 3 red, 11 green; 1 red, 12 green, 8 blue
+Game 81: 9 red, 4 blue, 11 green; 1 blue, 4 red, 2 green; 5 red; 3 blue, 2 red, 2 green; 14 red, 12 green
+Game 82: 5 green; 2 blue; 2 red; 1 blue, 2 red, 11 green; 8 green, 2 red, 1 blue
+Game 83: 3 green, 7 red, 6 blue; 7 red, 7 green, 11 blue; 7 blue, 13 green, 7 red; 12 blue, 10 red, 2 green; 1 green, 11 red, 7 blue; 12 blue, 9 red, 9 green
+Game 84: 5 blue, 1 green; 16 green, 4 blue, 8 red; 7 red, 5 blue, 16 green
+Game 85: 9 green, 20 blue, 7 red; 19 blue, 14 red, 2 green; 10 green, 2 red, 10 blue
+Game 86: 1 green, 3 red, 5 blue; 9 red, 2 blue, 6 green; 8 green, 14 red, 3 blue; 18 green, 2 blue, 7 red; 2 blue, 10 red, 14 green; 17 green, 4 blue, 12 red
+Game 87: 4 green, 8 red, 13 blue; 7 red, 13 blue, 4 green; 1 green, 8 blue
+Game 88: 9 blue, 11 red; 5 green, 7 blue, 12 red; 10 red, 2 green, 1 blue; 2 blue, 5 red, 5 green; 7 red, 6 green, 9 blue; 1 green, 10 red, 5 blue
+Game 89: 7 red, 2 green, 1 blue; 1 blue, 2 green; 6 red, 1 green; 7 red, 1 blue; 3 green, 3 red
+Game 90: 8 blue, 2 red, 3 green; 9 green, 4 blue, 3 red; 7 green, 11 blue, 2 red; 13 green, 12 blue, 8 red; 10 blue, 2 green; 5 green, 1 red, 9 blue
+Game 91: 2 red, 2 green, 4 blue; 5 blue, 2 red, 16 green; 11 green; 3 blue, 2 red, 8 green; 4 green, 3 blue
+Game 92: 8 red, 12 blue, 3 green; 11 red, 10 blue, 6 green; 14 red, 8 green, 14 blue
+Game 93: 3 green, 2 red, 3 blue; 3 green, 3 red, 1 blue; 2 blue, 16 red, 3 green; 2 green; 5 green, 2 blue, 2 red
+Game 94: 5 red, 2 green; 9 red, 3 blue; 2 green, 2 blue, 5 red; 3 blue, 8 red, 2 green; 8 red, 1 blue, 1 green
+Game 95: 3 blue, 4 green, 7 red; 7 red, 1 green, 15 blue; 6 blue, 2 green, 7 red
+Game 96: 2 blue, 1 red, 6 green; 7 blue, 8 green; 1 red, 7 green; 2 green, 14 blue, 1 red; 3 blue, 1 red, 7 green; 4 blue, 11 green
+Game 97: 2 red, 9 blue, 8 green; 3 green, 5 blue; 6 green, 1 red, 9 blue; 2 red, 13 green, 1 blue; 2 green, 2 red, 2 blue
+Game 98: 2 blue, 1 green, 1 red; 4 blue, 5 red, 1 green; 4 blue, 3 red, 2 green
+Game 99: 17 red, 2 blue, 4 green; 4 green, 8 red, 6 blue; 5 red
+Game 100: 6 red, 4 green; 3 red, 2 blue, 9 green; 1 blue, 5 green, 14 red; 1 blue, 2 red, 2 green; 9 red, 1 blue, 14 green; 2 blue, 11 green, 8 red \ No newline at end of file
diff --git a/aoc2023/src/day20/input.txt b/aoc2023/src/day20/input.txt
new file mode 100644
index 0000000..6949a60
--- /dev/null
+++ b/aoc2023/src/day20/input.txt
@@ -0,0 +1,58 @@
+%hb -> mj
+%mx -> mt, xz
+%xh -> qc
+%tg -> cq
+%kp -> xz, nj
+%mj -> jj, lv
+%cq -> jm
+%mt -> sj, xz
+&jj -> hb, lz, rk, xv, vj, vh, lv
+%rm -> bz, xq
+%hx -> bz
+%xv -> lz
+%xx -> kp, xz
+%pt -> vx
+&xz -> bq, gr, sj, rv, zf
+%vx -> gf, cv
+%xb -> xz, bq
+%xk -> gf, rd
+%lv -> zk
+&rk -> gh
+%kn -> gf, tz
+&gh -> rx
+%sj -> vp
+%jm -> vm, bz
+%rr -> rv, xz
+%tz -> rz
+%gg -> kn
+&cd -> gh
+%qc -> kh, bz
+%kb -> gf
+%vp -> xz, xx
+%fb -> bz, tg
+%rd -> cp
+%qn -> vh, jj
+%xr -> jj
+%tp -> rm, bz
+%cp -> gg
+&bz -> qx, cq, xh, fb, tg
+%qq -> pt, gf
+%xq -> bz, hx
+%gx -> jj, qv
+%bq -> rr
+%cv -> gf, kb
+%zk -> jj, xv
+&zf -> gh
+&qx -> gh
+%vh -> gx
+%qv -> xr, jj
+%lz -> qn
+broadcaster -> fb, xk, gr, vj
+%nj -> xz
+%gr -> xz, xb
+%kh -> tp, bz
+%vm -> bz, xh
+%rz -> qq, gf
+&gf -> tz, cd, rd, xk, pt, cp, gg
+%rv -> mx
+%vj -> hb, jj \ No newline at end of file
diff --git a/aoc2023/src/day3/input.txt b/aoc2023/src/day3/input.txt
new file mode 100644
index 0000000..1903642
--- /dev/null
+++ b/aoc2023/src/day3/input.txt
@@ -0,0 +1,140 @@
+............830..743.......59..955.......663..........................................367...........895....899...............826...220......
+.......284.....*............*.....$...+.....*...377..................*.......419.............488...*.......*...................*..-....939..
+....%.........976..679.461.7..........350..33.........$.380...$...151.897..........295..#......*....105.....418.............481........&....
+...992.....#......=...../........701................508...*..578........................259...331.................795..945........79........
+.........868........................*.............................17*..........348................441*852........*.....-...........@.....922
+....................*200............311..63................452.......323.#778.*....674....................680......696...372.....*..........
+.......266.......209......589.....=......*...365.........7.*...233.............755....*......644...272........697..*....*.....682..225......
+..836..........................949....607..........&....*..899...*....679.527.........331..........$....788../.....43....89.................
+........367.....328.&......%...............680...69..717.......60.......*.*............................*..........................728...264.
+........*.........*..119.253.......................................626....129...274............97...679.......752........*.......*....*.*...
+........360......471........../.........573-.702.............866...@...........*......772....../........259....*.........430....136.742.543.
+.........................../.852...............*...775...............643....455....../...........832....*.....41..535.......................
+.............-..........340.................103....*..........$...51*..................74................438......%...776...+.23*..663......
+.15.......806...............990.....................427....924............530.........=..............................*....968.....=....480..
+......#..............@914...*..............*........................%......*................................/.....406.................*.....
+....201.........79........592............70.894.....247..513+....367..$299.698......199................-.....223....../.........563....783..
+......................448........489................*.................................*....440...889...715..........351.....39..............
+.138....../766...........*.......................152.........................377....599.......*...*...........................@.............
+....%.820.......10*43.670..$87....100*244..@706..........668..319#...........................831.736....@............./..693.....321%.......
+......=...930#..................@...................493....*............152......569.................=.914....764.....9.-...................
+378$...............&.....854..505.........%........&.....124......12........117.....*591..979..76..133..........+............/..........883.
+...............602.141.....*...............770.....................*.........*................../.........874.@....../684....778............
+...........................954.....*397.........................394...........614..307*74..457..............+.514.......................327.
+........335*25.....-....31..........................................$...719.................*........6..214................878..............
+...............86*.269....*...480........................*....140..947....*..&.......................*......972..............*..364*274.....
+501-.......805..........285...*..................6....335.167...*........18...332.............741...127......+.............246..............
+......616.......752*276.....470.848..599.........*............779..=................539...961..$.........204.......-..201*.....%............
+.491.....*..521.........*94.......*.-.....&...163........285/......51..99*......474..*...-.......945.....&......839.......140...201.....$...
+....$.795..*........539.........500.......662.............................421....*...459..../.......*407.............../................471.
+...........110.......*...............252.............................%..........730......551..509.............824...230....569....48=.......
+......150...................................+..70.565=.&320.........983....155................=.....54.......%............*....@......../...
+...............972..146...........49.433..137..............................*....%..................@....................436.451..........328
+568-...@.552%....-.-................*.................957................93......74...........*........156.566../....#...........285........
+.....565..............693....443......................*....394.@58...362...................383.583.............542.38............./..890....
+...*.................*........*........&.223...........506.............=..................................300...............477........&....
+..612..459..........462....663......125....................720..............355.....253...............904......................*............
+........$................................622..............=................*...........*30.........#.$........................284........383
+............&.999....&.......................%........240....295*681.846....53.....806......793..646....626./76..737....479.........558.@...
+.........892..#.......885.....804..587*....340.........*..............%............*.........*..........*................%............/.....
+660..635...........-............./.....213........$....512.....551.............*....910........................@............................
+........*..........361..270*.....................328..............*.........853........................*.....985...965............232...948.
+..501@......................213...412$.....375..................631..916.......................254...284.........#....*..252........*.......
+...................695............................872*876..622..........-.........*..575...851*..................910.395..*....*717.248.....
+.....91.........80....*..390...........497....496............*.......@.........297..*................&....873.............946.8.........647.
+.......*.424.......108.....=.............*..................686....418.............131........600.96.327...=...561...321............343*....
+....731....*..............................938..........256..............909.......................................*.........................
+.........811...=....................680...........167...*...601.....................892..#.......142*.......151..108............201.........
+................653........879....@.*.........%...*...699..*..............726............695.870.....526.$................*8............234.
+....54....311..............=...320..619.......495.375.......926....914.........654..............*........236...$.......444.....@613.........
+...*........*......450*............................................*...786.625.......804.850.....674..........305...........................
+..593.512....517.......155.....646*239....286......+...........96..264....*......471.*......*.........314*901..............879..............
+..........................................=.....419....820......&..................+.......163....148........................*....586.......
+.....331.....................637....126.................*..147............650...............................................315....*........
+.......%......................$....../.................392....@...943..34...*......752.............................161..30.........970.521..
+.........984.412#.......-.569...@................464....................*.275..&.....#.126*506....................*.......=.168-............
+.724..................570....*.914.388.........%..$.........274.......263.......130..............102.....2....21+.268....................226
+..........776=...6........759.......*..283..309.....682......$..........................................%........................446........
+....%284.........-....#...........119....*......622...@....+............/.......929..178...........141/............../650...628.+...........
+....................440........88.........335...*.......804............968..976*....+...................$.421..431..................*.......
+.....880@.......871.....30......................249...........134....*................*...............95....-...*.....856...353...94.....963
+...............*....97..&.......989./.........*.....522+..$.....*.226.436.905......347.396.707...511..........342.....-.....*...........*...
+........936*....299.........217.&...478....931.457........62.391............&...............*..../...884*....................370........483.
+....965.....992.............*......................................371*771.............37..382...........990...391.......852................
+.......*........985.......753.&..........561.204.......................................*......................*...........@..........+935...
+......677.....................164.883...............325........951.....847....%......433....*944.50...753..344..............................
+.829.......583........429............*34......243...*.........*.............329.%........421...........*..........803..746............675...
+...*..................*....512............999.......102......398.................640................401....310.............164...452..*.....
+269........9........705....*........782....%.......................615.734....-..............289...........*.....................=....661...
+........37.#..............14.......*........../.......586.............*........623.......129........324.....601...%.....@...................
+...165................#.........861............463.......*.......361*..............356........175.....*.........906.897..716....118..#......
+.....*.............728....417.........+...395#.........443...........829.....390-....................399...............*..........+..813....
+....176..253...846......$...........719..........132............897...............334......................20...........51.....%............
+..............*....*..278................958........*.......=.................183*.......427.......766.......*..914.282......674............
+....&......344...249.....................*.....445.770.....67.....301................295*.........*....715.390...*...../...............424..
+.....541......................160.580...........#................=...........*677..............394.......*........327....739...179.360..*...
+..........=................%.....*................-954......%.............406......765..................930.....*.........../.....*.....370.
+....%.....979.379..........415...............318..........284....440../............-....133.........157......579.550................747.....
+.240..........*.....................@...........*642............*.....84.....%.331................2*...................582...=........*.....
+......=.....246....167...............704.............763........999.......781...*.....-109............126..801............*.484....632..542.
+....%..488.........@..........................$954....*../.....................779..........232................510.....149..................
+...27..........984.........*....485.....937........982..234..............225..................*..........122.............................16.
+...........473.#..........558..*.............410-...........93............#..655....846....829.....760......=...................=....+......
+.....=390..*...................624........#.................+..473..............#......=...........+...577#......$...481.......651.869.806..
+747.......543.259.../717............&...346.......948..........$...........472.............230+......=.........206......*...................
+................*........+.224/...798.........311...*..896*220...............&.+..................825....../............378...370...........
+...............485.641.674.....................*......................618.......389........................565..&674...........*............
+..........475.................=.162............461.441...................*..........652......&....508..856...........364....464.............
+...............154...452#...693....*................*.......391.........979....344..&.......814..............501.......=....................
+...............*................425....25#...........788............879...........*.....29....................&....................850...794
+393.............523...507*683..............174@..........-.............=...369....439....-.......*305.891..........952............*.........
+..........+...............................................535..911.........................*....1.........441.....-.........88...906........
+..........997...17.............779..............960...................209........545......513................*...........98...........+608..
+.....................63.968...*.........340.......*...858..339...........%.-767...+...173........47.........906............*210.............
+.............&..575..*....@.788.........*.........178.....*.......949.................+...........*.............-.....399.............@.....
+..........571....%....984............414...............$.912.....*......302.............594.240..724....341..645.......*.......=..848.642...
+....282@...........*......=......189.....138...227*.906.........70......*..................*.............=..........957...657.81../.........
+..........*...$.813.179.901.592.....*....................................7....127.............$692...............$..........*.........*.....
+.......207..91..............*.....784...872..756.........&..322..............*.........*19.........749.......548..624.694..858...512..598...
+.................+.........352...........*.....*.934..126...*.....351..........40...616.......153.....*661............*...........*.........
+...823........829...346...........821...826.304...%.......115.......*..........*...............*.............../...622...523.......606......
+...*...............*.............*...................186...........813....716@.372....16..300...489..108.....770.......................697..
+..........919...782.......912................@.........*.%485............................*..........*...............208.220....853..........
+...308......*............*......269.........539.......2.............853.......941.660.532........246.......980..357*....+.....*......./.....
+..../......32.164.......15.479.=.............................=...............*....*......................#....*......+......-.855.....415...
+.......305..../.....649....*......633...925...634............121............355....578.......14*....422..543.297....429..142................
+..960..+..............*.....536......*..@....-.......51..-.........592#..........+..............9..*........................................
+.....*......515......434............908..........189......430..................332...722..-.........450..#.........................139......
+..259......*.............................39..33.....$..................................*...159..443.....925.............743....414.&...=437.
+......58..475...........227%.......217..../...*................../...............&....506..........................63..*.......*............
+.......=......-..............993....%.........166........605....293........977+..498......%.....834...455...........*.....%....981.991......
+...........636..728...*.......*.......494...............................................205........*.@...........528....226.........#....785
+664.9..............$..9...494.272...............725*....775...$....854..........226.243..........832....637*73................165...........
+...*...340+.............@...*.......548.............405....*...768..*..............*.......81.........................10.787.$.......918....
+.......................145...265....+..........110........45.........90..299.....$........&.....696...475.-452..290....*...*..........@.....
+......+....246.108.305...................894....=............121.588......*....69...................................236..97......348........
+.......709........*...........-...........-..........411...=...*.......135........................738..383.....634*..........429.@..........
+...........%........%217......119.....................@..47.........+.......923..............606...*.......960..............-...............
+....835.....744...................546.......215.............512.....950.......%...444......&...$.833......./.........813.......400..%...48..
+........362.......898..#.......................*.732........*.............965....&.........584..................521..#...........-.995......
+....64.*.........*.....265........781..376...320.#........998...450.......%............................$...............................304..
+....-...966...875..981........742*.......*...........*276.........*...............541.....219.279..357..164...551..%717...............%.....
+...................*...786.$..........*...163.....915...........960...%...509.135*...........*................-...........%.539.............
+....666..699......179..+...612..=734..545...........................88.....&.......392...46..........483=..&.......548.135.....*.413.#620...
+...$....*....948..........................530.656....%..484....*..................*......./...741..........444......*.......150...*.........
+......................524...928..........=........858....=..562.571........117@.195..896......*......662.......148.388.............320......
+...166..48.../....-............#...159.......487.....................260...............#...713.........*.347................................
+......*.......657..837.....273.......%........*...155.................*........225..................228.....*370..../.......724.....764.....
+......654.679.................@.........-....918...................681..461.............................776......737.................+......
+...........*....859......881#............625......$...........888.........+...57...............887.$.......*............................#911
+...46*....72...&...................................102.............651........*......*530.......-..667....850..829*.869%........298.........
+......925..........892.352*........6.41....................+...160.$.....*.72..878..1.....................................738......*926..32.
+...............279.........721......*..............694....799..&......878....*................219....+...482..368$...........*../...........
+......604........*....................583*506........-...........740..........347............*....576......*................498..478.974....
+..486.-....................626..................320........&....../.................*979.=....863........497........111..............%......
+...................................538..78...*.....*......7...455.......223......939......673..........=......559-....*...834............58.
+.......644....&.......#..669+.1.......*.....782.....865......*....779..#..............110...../....937..312...........489...................
+.......*....571.....69........*.......169...................919....*.....808.................335...*.............................24*896.....
+.......233................590.553..............198=..450.........661.......*.....................15...-....................-575.............
+...........919*.....................................*.......234.........492..%...........300...........301........./866..........*..........
+...............470.....440.874...116....240........299......................27......409.......................................639.136....... \ No newline at end of file
diff --git a/aoc2023/src/day4/input.txt b/aoc2023/src/day4/input.txt
new file mode 100644
index 0000000..0391b6a
--- /dev/null
+++ b/aoc2023/src/day4/input.txt
@@ -0,0 +1,203 @@
+Card 1: 8 86 59 90 68 52 55 24 37 69 | 10 55 8 86 6 62 69 68 59 37 91 90 24 22 78 61 58 89 52 96 95 94 13 36 81
+Card 2: 6 42 98 5 17 31 13 36 63 61 | 99 88 14 20 63 5 56 33 6 21 92 13 17 7 31 93 30 74 98 15 11 36 61 42 47
+Card 3: 16 58 72 77 1 67 33 82 68 7 | 16 37 15 75 78 1 49 82 22 45 83 58 77 79 50 88 98 67 33 72 42 29 35 7 68
+Card 4: 75 35 37 6 29 54 64 57 82 4 | 8 33 27 85 84 54 75 37 4 57 70 29 64 94 17 6 38 41 82 81 71 35 47 51 19
+Card 5: 23 85 52 77 81 50 28 59 87 82 | 70 65 12 35 9 41 62 31 47 66 58 15 76 46 68 67 55 86 17 38 18 1 75 79 13
+Card 6: 77 64 13 36 68 88 16 75 25 95 | 25 64 55 58 75 66 23 16 27 68 69 88 13 9 39 42 29 65 83 97 32 89 53 96 94
+Card 7: 31 12 76 29 48 96 41 49 21 37 | 94 81 65 82 15 33 53 91 88 37 46 29 3 80 95 67 11 27 31 30 49 89 78 41 90
+Card 8: 20 5 52 31 46 25 88 95 39 83 | 36 62 48 39 69 3 81 11 61 95 43 85 34 46 5 8 13 45 10 17 2 88 70 52 89
+Card 9: 8 85 89 55 77 9 40 5 57 37 | 56 84 62 42 49 50 51 35 75 25 13 74 68 1 99 48 41 94 45 66 17 69 23 29 67
+Card 10: 74 1 7 89 97 82 75 9 11 42 | 94 71 41 30 50 58 23 81 35 6 97 57 67 85 98 10 87 43 96 77 31 8 54 72 65
+Card 11: 38 29 6 5 4 84 34 1 94 23 | 89 48 51 84 49 33 50 65 79 53 12 8 5 1 35 69 83 57 11 42 67 26 9 6 55
+Card 12: 35 83 44 75 36 65 85 87 60 72 | 8 3 91 33 59 29 56 26 21 60 80 88 25 5 51 47 46 44 41 31 62 79 76 89 55
+Card 13: 8 56 97 66 32 70 25 76 18 20 | 15 50 91 65 3 67 98 81 9 44 18 92 13 64 96 47 87 46 7 33 66 71 82 88 90
+Card 14: 37 52 63 28 19 89 44 76 98 24 | 70 13 59 31 17 84 90 6 62 19 74 36 94 1 15 12 29 95 47 92 23 67 60 58 53
+Card 15: 71 70 25 51 95 86 66 37 27 53 | 14 20 30 17 59 96 11 68 46 13 75 44 40 62 32 7 81 91 73 64 93 83 35 80 49
+Card 16: 97 4 63 22 75 73 5 52 34 26 | 33 98 64 47 90 94 28 35 43 30 73 51 7 27 10 40 97 37 34 32 22 71 63 21 80
+Card 17: 15 18 29 55 14 25 69 4 59 75 | 66 4 82 23 94 22 26 16 55 69 75 20 76 25 29 59 15 18 70 2 28 39 95 14 40
+Card 18: 26 40 70 42 37 68 25 76 56 97 | 33 97 28 13 24 50 66 53 67 84 26 68 42 56 92 40 65 76 25 32 70 93 85 37 94
+Card 19: 56 61 7 53 48 88 77 73 27 79 | 50 81 29 15 46 19 33 89 54 85 58 73 68 34 84 2 40 27 44 94 88 62 14 1 56
+Card 20: 34 89 62 72 6 30 16 53 78 2 | 2 78 73 89 85 40 47 30 34 8 60 23 72 26 62 96 6 91 29 16 57 46 59 53 94
+Card 21: 65 18 22 53 8 31 32 84 39 9 | 75 16 70 3 14 61 34 9 38 71 8 49 53 52 81 18 45 82 41 44 32 63 65 51 69
+Card 22: 44 80 76 71 36 1 50 87 23 27 | 1 76 83 67 87 68 25 80 8 23 57 29 52 4 50 64 24 44 77 45 27 32 36 73 71
+Card 23: 68 90 10 43 73 63 85 47 11 96 | 9 29 53 84 4 6 25 82 11 21 73 83 20 95 66 27 80 26 70 33 85 47 17 74 98
+Card 24: 51 68 2 69 39 86 55 70 6 54 | 72 17 14 26 91 52 96 86 66 64 51 2 92 53 36 39 89 42 40 68 55 37 6 54 7
+Card 25: 74 92 43 35 29 93 39 53 10 54 | 86 35 10 18 92 43 56 25 44 53 93 39 29 54 11 12 55 61 83 41 21 69 81 4 74
+Card 26: 80 19 99 93 76 67 70 60 39 9 | 98 2 26 95 21 49 44 9 31 58 83 46 14 99 4 78 12 56 89 71 66 29 47 64 96
+Card 27: 92 52 5 46 49 62 74 72 44 87 | 37 93 24 29 5 88 72 81 62 50 69 33 52 19 23 8 84 1 70 87 95 96 61 63 49
+Card 28: 79 80 98 59 54 45 91 16 11 4 | 80 10 98 45 78 91 1 65 12 11 4 82 88 79 54 55 8 99 59 67 68 16 25 3 70
+Card 29: 52 30 9 13 44 71 48 63 65 27 | 90 31 17 80 44 39 85 93 58 65 8 63 16 35 40 1 73 68 52 6 97 99 13 10 61
+Card 30: 12 19 35 9 82 20 72 61 50 67 | 11 84 77 14 46 29 62 28 81 98 43 12 15 72 35 99 19 97 75 1 20 7 82 60 52
+Card 31: 21 58 93 11 50 25 88 77 64 29 | 42 1 31 30 99 69 54 32 88 24 95 15 55 56 14 45 19 33 87 34 7 93 79 23 74
+Card 32: 39 87 70 22 46 95 69 3 58 80 | 85 95 24 45 84 22 37 12 33 43 93 96 27 56 70 67 91 58 10 68 69 40 97 82 13
+Card 33: 91 42 78 76 77 27 22 98 94 70 | 80 17 63 21 37 52 46 44 2 7 73 86 49 40 23 4 92 60 43 76 29 22 24 69 42
+Card 34: 11 50 70 95 32 81 26 57 7 76 | 83 64 65 46 87 56 28 98 90 11 96 40 99 3 16 12 61 19 97 76 51 92 93 34 15
+Card 35: 80 28 55 51 98 5 92 54 73 78 | 78 66 10 38 36 51 1 83 94 33 42 17 62 56 59 21 86 25 46 48 63 12 45 31 65
+Card 36: 63 76 16 74 10 14 50 73 81 35 | 3 68 1 76 62 53 67 97 13 85 28 65 32 72 34 98 57 20 71 17 64 48 8 56 44
+Card 37: 37 1 38 62 56 27 17 8 21 98 | 78 31 14 23 18 62 4 2 97 88 59 34 57 46 81 16 36 58 86 35 72 61 7 80 28
+Card 38: 56 30 92 44 33 11 16 45 72 60 | 74 86 59 87 22 81 46 32 52 21 78 10 57 1 13 85 49 75 95 29 8 38 77 54 50
+Card 39: 66 83 99 18 79 70 57 25 86 55 | 8 41 50 87 77 7 78 84 53 35 43 26 13 29 30 69 91 65 32 59 31 45 56 15 48
+Card 40: 64 46 22 83 33 38 95 75 69 89 | 82 65 45 68 75 33 69 49 22 95 89 74 53 46 38 25 83 64 8 59 81 16 94 27 60
+Card 41: 90 26 49 5 76 98 92 64 19 32 | 47 35 49 45 13 67 73 55 4 64 79 63 89 57 5 75 85 91 25 88 74 70 28 68 86
+Card 42: 45 52 92 43 76 96 4 86 53 62 | 96 53 55 18 95 44 25 45 47 66 62 2 52 60 10 3 1 37 87 92 98 70 9 86 23
+Card 43: 9 64 57 76 21 30 38 98 85 1 | 11 22 92 81 58 59 48 75 2 32 15 84 27 56 86 99 98 66 54 96 20 37 67 12 29
+Card 44: 11 41 84 1 76 6 64 8 31 44 | 11 1 33 58 55 6 84 44 70 20 64 41 90 98 72 42 8 38 4 39 76 17 18 69 31
+Card 45: 88 12 95 1 24 71 70 49 79 8 | 86 57 43 12 90 78 70 76 24 95 39 8 1 13 47 71 49 75 15 32 2 77 58 79 21
+Card 46: 84 91 96 41 17 76 9 36 81 1 | 82 5 99 19 43 20 86 69 37 44 95 41 55 65 96 70 24 47 77 15 31 36 2 79 22
+Card 47: 48 80 18 4 40 11 90 17 27 68 | 33 40 15 99 48 12 25 27 44 17 50 94 68 63 11 29 80 4 18 42 32 90 19 2 91
+Card 48: 44 30 51 97 22 57 87 17 53 11 | 35 17 81 22 11 30 75 80 74 54 79 16 78 97 89 87 51 37 43 72 53 57 27 94 23
+Card 49: 31 2 7 13 9 33 95 41 57 34 | 25 90 77 13 1 95 18 17 34 92 10 33 80 2 82 66 91 73 70 86 21 7 42 47 19
+Card 50: 16 44 77 76 23 81 47 29 62 22 | 35 27 83 47 88 76 98 64 31 86 48 42 95 67 25 44 17 51 18 26 12 1 90 99 62
+Card 51: 55 68 41 17 28 83 64 62 22 13 | 24 6 23 22 64 7 83 74 44 34 28 68 13 32 26 50 62 17 12 41 97 55 16 1 9
+Card 52: 96 79 43 83 37 25 86 24 66 34 | 79 18 6 2 64 62 86 48 65 34 29 68 9 87 76 71 3 69 61 41 40 35 37 55 32
+Card 53: 46 1 10 43 47 17 62 52 58 75 | 58 14 52 71 31 75 55 50 8 99 63 23 4 13 10 62 16 17 82 43 56 46 76 83 65
+Card 54: 75 33 27 30 87 32 68 89 44 17 | 73 28 31 97 27 9 57 14 15 20 39 82 38 36 43 58 75 4 44 30 33 80 16 48 17
+Card 55: 70 11 9 44 14 32 83 10 99 71 | 65 48 21 75 83 71 92 2 34 22 11 14 39 31 63 25 88 15 80 76 96 90 52 70 99
+Card 56: 17 38 6 13 3 67 87 64 37 68 | 41 7 53 11 5 62 93 28 65 8 56 32 1 69 47 18 82 40 20 12 80 37 89 43 2
+Card 57: 64 29 46 22 61 56 32 20 97 72 | 31 14 29 44 74 22 1 56 4 52 58 45 50 78 67 11 97 72 16 20 27 57 61 83 85
+Card 58: 62 85 13 46 79 37 99 81 91 8 | 98 17 85 23 33 94 35 2 47 20 3 11 36 96 43 46 25 60 59 10 22 55 87 58 28
+Card 59: 58 36 55 31 69 91 21 51 56 10 | 19 49 73 6 34 27 40 65 11 55 44 67 37 97 14 85 84 89 72 29 64 15 70 68 94
+Card 60: 46 40 95 45 75 74 7 38 10 81 | 32 38 4 61 78 5 39 99 86 33 2 98 83 42 11 75 27 73 81 9 54 37 40 12 80
+Card 61: 40 29 73 56 91 44 24 77 1 5 | 87 52 80 45 70 48 47 44 69 17 16 6 82 66 37 42 39 3 10 15 97 13 40 99 62
+Card 62: 54 55 29 80 70 50 97 89 33 68 | 21 3 76 73 6 42 2 91 19 18 72 92 94 11 77 32 52 8 81 48 35 16 27 12 84
+Card 63: 19 45 77 86 6 33 83 91 52 36 | 18 68 60 58 84 29 9 67 21 99 24 80 69 96 25 85 46 50 95 27 61 4 90 63 88
+Card 64: 88 23 57 8 93 17 20 42 54 51 | 12 78 82 80 85 43 73 44 84 89 15 36 30 10 25 29 7 99 61 60 86 14 26 28 83
+Card 65: 92 13 3 54 4 95 28 72 8 15 | 15 60 66 33 82 95 94 69 71 59 54 99 40 31 83 17 13 80 28 72 4 92 45 87 46
+Card 66: 1 42 10 66 94 21 46 95 73 32 | 64 99 3 86 69 71 95 78 60 28 5 19 35 85 67 7 32 16 39 66 89 42 31 43 58
+Card 67: 87 50 23 52 5 22 88 82 59 72 | 26 59 48 90 82 55 50 37 87 35 2 52 72 11 40 23 54 88 19 33 5 97 86 22 30
+Card 68: 21 89 80 14 73 61 9 7 68 48 | 18 89 38 26 32 21 79 15 14 86 44 55 95 41 80 7 9 29 73 1 13 48 68 28 61
+Card 69: 9 82 65 50 57 40 96 36 83 60 | 96 17 88 60 40 74 33 19 41 23 82 89 92 72 50 83 4 7 56 34 9 36 52 57 65
+Card 70: 40 63 61 64 3 21 52 11 66 53 | 82 42 13 30 44 72 74 83 45 70 38 33 80 8 64 48 49 73 19 51 85 47 90 84 92
+Card 71: 92 24 98 94 89 41 1 93 28 32 | 28 61 92 13 53 89 43 23 32 66 81 93 94 38 90 36 24 68 1 91 98 41 29 67 64
+Card 72: 29 61 68 1 78 69 33 45 39 18 | 81 12 36 28 73 75 18 35 42 33 95 68 3 79 39 8 24 82 87 45 11 91 23 51 1
+Card 73: 15 33 51 46 80 95 67 71 97 16 | 23 7 93 94 55 33 5 84 28 32 15 59 98 6 46 17 86 43 39 81 36 42 63 71 82
+Card 74: 95 9 16 72 30 20 41 97 45 90 | 30 72 49 66 36 9 82 98 95 16 48 57 46 86 47 90 20 85 54 74 73 4 22 60 32
+Card 75: 82 55 49 44 75 57 19 59 38 4 | 21 78 35 6 93 75 28 41 83 72 55 22 64 89 70 47 23 29 20 99 48 53 27 65 13
+Card 76: 19 31 41 50 27 43 74 21 51 44 | 24 79 71 16 49 37 60 14 8 33 52 40 98 6 34 62 56 4 10 30 39 48 99 67 22
+Card 77: 39 23 28 96 98 50 40 34 79 74 | 85 68 79 33 48 23 56 10 89 38 50 71 17 28 6 74 53 4 98 26 8 22 39 31 66
+Card 78: 80 31 82 32 70 17 68 44 22 97 | 72 6 95 57 13 94 37 44 70 46 32 69 22 56 40 15 77 88 17 82 31 47 71 18 68
+Card 79: 37 53 75 59 72 43 65 74 81 26 | 37 23 11 48 45 86 74 2 59 58 92 12 65 78 16 97 57 76 67 26 18 41 43 54 49
+Card 80: 63 41 23 39 40 10 26 93 24 73 | 30 19 74 40 49 90 22 65 78 10 24 93 73 41 51 7 61 15 29 39 63 16 64 23 37
+Card 81: 88 68 74 9 97 46 11 87 39 10 | 40 3 14 85 64 43 42 97 90 9 39 13 29 72 47 10 48 4 68 96 99 25 98 65 57
+Card 82: 81 48 21 57 65 39 12 66 95 33 | 16 33 79 85 92 52 50 34 15 22 9 45 74 17 24 63 28 72 84 62 58 77 41 64 83
+Card 83: 45 33 86 43 63 96 25 88 53 15 | 73 93 79 18 2 26 21 65 28 57 52 88 1 80 33 38 76 3 56 35 6 23 34 24 13
+Card 84: 31 74 96 40 36 99 91 92 63 10 | 78 38 59 27 84 34 31 72 19 91 12 45 57 92 32 44 70 50 10 24 87 33 49 65 61
+Card 85: 24 20 39 42 78 57 12 64 40 44 | 68 34 77 20 21 12 35 23 97 3 50 65 42 18 84 41 43 69 94 37 76 57 31 45 79
+Card 86: 51 48 14 80 3 72 92 15 35 43 | 50 69 18 76 63 30 58 19 65 16 70 55 54 12 87 62 60 68 93 83 1 44 26 98 27
+Card 87: 11 4 31 73 5 81 2 32 29 51 | 3 47 9 18 16 19 66 36 23 70 91 64 69 87 51 84 43 65 35 42 63 72 82 54 93
+Card 88: 94 10 52 17 78 45 99 66 8 81 | 11 31 71 59 41 88 67 30 47 98 33 21 37 15 53 20 36 58 57 91 39 28 49 70 86
+Card 89: 28 68 50 39 98 57 78 71 11 48 | 95 67 79 86 53 17 66 60 77 6 44 54 19 31 74 80 63 99 47 12 91 21 70 8 10
+Card 90: 36 90 94 26 59 84 63 38 48 39 | 69 56 39 88 89 97 26 38 83 55 87 13 33 68 95 94 18 48 36 44 59 84 63 90 66
+Card 91: 89 3 61 68 53 85 66 81 11 78 | 29 10 81 58 22 47 19 3 36 98 61 85 89 78 39 17 50 53 11 66 68 24 4 86 25
+Card 92: 57 5 56 91 64 38 89 47 55 74 | 73 51 48 19 57 98 64 9 74 65 53 47 54 72 69 38 56 1 21 6 91 40 55 5 89
+Card 93: 6 86 18 53 9 82 70 81 89 26 | 21 69 75 10 8 86 89 70 47 23 78 96 98 53 6 9 2 81 31 56 39 55 18 1 42
+Card 94: 86 78 79 57 3 2 5 69 30 53 | 80 2 53 90 3 30 48 79 5 78 19 35 62 59 97 56 13 12 70 86 10 69 51 55 57
+Card 95: 64 51 15 84 25 94 88 80 20 33 | 1 90 50 47 32 15 20 51 84 65 64 55 39 94 19 66 40 25 88 43 80 34 29 3 92
+Card 96: 83 88 94 87 79 45 49 91 99 33 | 91 53 72 37 87 40 26 88 33 49 89 99 24 59 94 52 75 83 79 71 62 50 92 28 6
+Card 97: 51 91 36 6 68 9 97 78 39 80 | 18 97 68 34 91 61 78 3 23 84 8 16 36 96 65 99 59 80 58 90 14 32 1 41 74
+Card 98: 92 41 9 7 52 86 83 40 8 63 | 47 17 14 35 34 22 19 52 79 7 81 92 1 82 93 73 25 58 60 39 59 27 3 16 41
+Card 99: 72 47 22 4 62 58 31 91 34 50 | 49 65 94 71 82 25 24 9 64 62 50 60 14 84 16 93 1 46 8 19 47 44 21 10 11
+Card 100: 96 18 53 37 54 98 30 84 58 45 | 30 59 89 23 8 35 85 6 36 54 37 17 92 79 27 39 4 61 11 80 19 58 72 51 47
+Card 101: 67 26 23 99 78 60 55 82 83 11 | 60 22 91 21 18 29 67 62 34 93 56 59 49 52 38 79 28 11 17 77 76 20 2 99 92
+Card 102: 28 94 4 54 77 42 17 44 59 48 | 24 13 61 6 5 83 50 77 76 37 90 71 79 47 8 98 41 75 59 70 89 16 30 17 45
+Card 103: 65 69 32 77 64 99 24 71 73 90 | 20 26 72 17 16 46 86 2 28 13 88 45 5 70 95 55 33 65 49 68 50 58 85 83 22
+Card 104: 78 17 88 26 65 79 8 18 47 25 | 31 86 76 30 84 44 62 97 81 42 14 72 25 32 82 5 54 69 98 52 68 13 92 3 58
+Card 105: 72 63 74 24 23 67 34 26 50 73 | 11 70 76 89 84 92 79 33 82 44 71 48 35 8 59 14 93 15 29 18 55 3 38 77 28
+Card 106: 36 40 51 81 60 96 34 49 85 89 | 72 15 7 40 60 97 68 52 36 55 87 96 85 89 49 61 78 34 37 27 76 5 51 81 12
+Card 107: 56 6 20 66 35 45 14 19 62 52 | 15 27 93 17 77 19 35 43 80 72 47 88 8 70 71 92 83 82 10 97 25 90 44 69 87
+Card 108: 33 44 49 78 10 26 20 65 77 13 | 33 54 2 24 17 20 26 7 93 5 3 77 81 46 92 78 49 65 32 51 44 95 13 29 10
+Card 109: 51 25 49 60 83 75 46 43 50 41 | 96 12 53 50 78 92 60 15 76 6 5 34 41 23 25 70 20 75 86 73 30 39 32 48 95
+Card 110: 13 22 99 91 47 53 35 34 37 77 | 79 35 1 13 88 57 76 89 81 15 53 56 99 34 6 68 77 32 91 47 87 37 4 24 16
+Card 111: 17 21 92 30 95 1 52 5 27 46 | 86 24 6 51 99 68 16 34 19 76 31 10 56 63 58 97 87 26 40 73 8 54 69 18 90
+Card 112: 52 83 38 39 95 12 57 14 46 85 | 12 95 85 14 89 50 52 17 92 18 38 34 55 83 16 66 19 88 4 20 46 57 77 39 11
+Card 113: 6 25 93 3 52 46 2 13 70 7 | 67 46 40 2 3 77 35 50 57 52 55 75 53 72 97 89 34 84 15 31 23 7 58 25 21
+Card 114: 24 53 25 12 17 82 14 50 3 74 | 91 83 57 50 96 68 52 11 56 44 89 95 15 13 54 20 76 48 30 88 53 55 93 65 47
+Card 115: 95 81 49 37 80 70 7 60 75 99 | 29 74 98 94 49 59 60 86 75 93 72 56 87 82 76 32 33 4 46 70 27 83 1 35 2
+Card 116: 80 67 54 68 98 47 12 56 77 60 | 45 81 47 78 29 39 56 42 80 54 68 90 37 2 16 96 5 38 14 59 7 30 6 67 20
+Card 117: 6 59 84 35 1 53 28 77 94 24 | 97 62 40 54 93 44 90 63 26 64 91 75 6 4 22 82 80 2 69 12 77 21 53 49 10
+Card 118: 86 30 39 49 32 29 27 68 97 50 | 2 48 36 99 83 4 38 5 47 77 66 1 20 10 14 15 63 78 89 91 85 80 41 28 54
+Card 119: 87 78 77 15 85 99 2 35 45 11 | 58 51 62 42 63 90 37 22 8 83 34 31 67 35 72 17 91 7 88 49 13 39 59 4 18
+Card 120: 80 21 33 94 26 68 73 35 83 3 | 67 9 94 49 27 50 40 30 60 90 86 91 98 69 6 15 36 71 38 31 17 33 41 70 84
+Card 121: 81 17 27 59 99 69 49 14 83 91 | 20 77 55 73 87 36 25 56 54 58 45 68 80 18 3 15 65 31 96 40 75 30 92 42 23
+Card 122: 22 44 29 27 77 20 86 34 5 99 | 63 19 97 74 4 39 7 52 87 31 81 45 23 18 53 47 50 73 80 2 70 94 26 66 14
+Card 123: 39 40 61 53 56 60 96 5 68 25 | 97 98 6 79 81 32 51 26 59 13 10 2 3 77 88 80 63 90 52 12 87 29 49 18 76
+Card 124: 78 19 92 75 56 95 2 16 43 44 | 95 2 56 4 92 66 53 88 21 16 43 78 17 44 85 48 12 19 52 40 69 75 59 82 26
+Card 125: 14 43 38 9 8 62 17 28 12 11 | 80 19 38 43 11 34 29 9 32 12 62 28 77 72 17 69 33 96 94 78 67 8 93 90 4
+Card 126: 60 95 93 99 11 49 20 75 37 54 | 54 42 19 49 92 95 11 34 74 93 60 52 99 5 7 75 20 12 68 98 43 50 36 37 56
+Card 127: 73 24 71 80 58 62 17 41 61 43 | 68 43 79 58 87 67 6 62 20 41 93 71 27 88 23 17 24 42 52 13 61 80 81 84 73
+Card 128: 99 10 91 58 70 47 80 30 96 57 | 46 57 3 72 4 87 70 10 59 7 96 48 28 97 91 58 47 76 36 80 8 23 19 30 99
+Card 129: 50 3 78 8 80 11 57 52 94 47 | 63 60 38 92 50 65 91 88 53 17 96 42 66 28 1 25 75 76 73 87 90 36 82 24 68
+Card 130: 38 42 33 70 61 58 73 88 74 29 | 83 92 77 58 56 74 55 93 38 46 29 28 37 68 33 73 91 61 12 64 25 88 42 31 70
+Card 131: 92 46 42 96 12 14 95 84 57 78 | 11 6 82 41 73 55 8 93 76 98 99 86 31 21 78 29 32 70 62 23 95 15 9 77 52
+Card 132: 40 97 45 2 19 99 29 98 37 20 | 5 56 36 21 33 83 32 98 66 20 16 37 97 93 40 78 43 77 99 29 87 96 2 30 39
+Card 133: 97 81 10 23 75 6 53 27 35 47 | 37 93 8 92 68 65 15 85 25 67 61 56 5 42 88 18 76 87 60 46 59 94 86 57 91
+Card 134: 96 66 54 61 10 85 98 40 13 41 | 90 58 9 38 28 24 57 52 5 81 80 62 34 54 79 49 2 95 1 18 41 65 82 32 42
+Card 135: 54 79 66 83 45 35 10 27 41 94 | 67 42 4 89 51 95 1 63 90 40 65 23 98 7 86 9 97 3 11 61 92 69 77 80 2
+Card 136: 37 86 74 45 70 95 33 28 82 32 | 67 13 62 8 63 41 78 40 24 91 11 48 7 85 59 81 44 37 45 90 66 70 35 33 94
+Card 137: 75 89 5 18 91 57 37 63 85 40 | 27 34 9 51 76 41 69 86 95 81 36 82 1 38 10 99 7 47 21 77 8 30 19 71 60
+Card 138: 9 67 82 54 5 98 7 6 40 96 | 13 83 90 88 44 17 82 24 47 84 23 85 62 45 72 91 58 46 38 32 25 79 70 59 33
+Card 139: 1 6 65 80 35 91 63 22 60 50 | 79 84 81 92 75 36 88 90 86 16 53 17 44 43 15 94 73 51 14 42 33 98 74 57 4
+Card 140: 24 43 8 76 91 79 42 68 81 70 | 65 36 56 57 16 69 38 86 85 37 22 9 98 33 45 25 95 28 52 2 27 6 14 46 55
+Card 141: 62 32 78 2 21 45 75 48 91 85 | 38 42 3 20 21 56 48 75 86 45 40 91 33 73 25 85 16 78 2 24 72 26 32 61 62
+Card 142: 90 10 32 43 65 91 24 22 34 62 | 91 26 72 81 7 11 32 10 90 33 34 87 35 24 29 3 59 62 2 65 22 43 57 74 79
+Card 143: 16 52 66 56 50 57 77 71 73 40 | 71 43 80 59 36 39 77 40 11 4 64 16 85 52 49 73 56 57 10 9 86 46 66 6 50
+Card 144: 61 56 14 66 2 73 39 8 33 97 | 26 8 47 67 16 18 37 39 14 9 61 33 97 2 66 56 73 4 75 11 62 68 49 44 34
+Card 145: 75 65 92 85 73 18 70 95 49 22 | 25 8 49 2 16 13 97 33 93 66 75 85 73 71 65 18 22 53 92 38 44 50 62 70 95
+Card 146: 78 62 86 83 26 23 80 2 77 87 | 23 96 38 63 83 22 20 86 77 21 67 66 75 5 36 47 26 61 80 87 82 16 78 46 2
+Card 147: 84 36 18 42 50 12 64 61 99 91 | 18 75 61 76 74 12 1 41 28 91 64 24 55 36 27 3 84 99 42 50 95 83 31 7 22
+Card 148: 61 91 60 18 68 50 73 29 23 87 | 18 76 33 5 27 97 31 37 21 38 56 91 60 87 23 55 58 61 50 45 14 29 72 68 73
+Card 149: 46 97 81 18 85 95 91 43 72 87 | 32 23 1 49 66 96 24 16 42 22 81 51 72 8 20 37 44 71 45 25 90 88 5 94 74
+Card 150: 17 99 20 36 33 78 9 87 81 84 | 37 8 79 65 31 99 45 36 81 90 73 11 49 46 87 84 3 33 19 12 57 9 20 48 17
+Card 151: 35 46 49 80 66 75 99 77 8 53 | 75 24 5 67 4 53 49 61 19 23 26 97 93 77 46 66 35 40 99 39 30 80 76 25 8
+Card 152: 11 80 39 1 30 36 16 85 33 66 | 26 66 60 2 94 16 81 48 80 43 85 96 51 68 33 63 88 54 6 36 37 59 5 1 47
+Card 153: 49 86 25 83 96 8 93 88 24 57 | 66 60 51 33 57 95 49 79 63 2 93 58 65 70 55 76 87 27 1 46 11 52 80 84 54
+Card 154: 38 41 75 30 91 6 14 66 47 57 | 34 56 11 70 71 60 22 81 41 74 39 67 79 98 87 42 62 3 32 57 55 46 33 16 51
+Card 155: 25 31 45 21 68 57 73 20 71 32 | 20 18 98 53 60 7 38 10 12 19 77 64 79 74 17 33 83 88 28 16 32 21 89 69 65
+Card 156: 19 35 39 37 84 50 62 95 96 56 | 89 24 92 67 4 47 54 59 72 84 3 5 76 96 23 1 58 86 32 21 78 88 68 44 48
+Card 157: 24 68 39 72 23 93 81 51 45 25 | 96 33 76 99 5 70 93 18 24 68 6 64 49 92 45 80 15 77 4 57 25 13 44 28 2
+Card 158: 51 18 46 75 2 80 20 72 17 29 | 97 55 47 23 20 4 39 24 64 11 31 16 90 29 93 72 18 45 27 46 61 70 80 68 67
+Card 159: 34 10 70 56 51 9 99 32 15 74 | 13 31 44 56 63 20 99 81 40 78 84 90 50 52 85 19 41 10 45 71 22 28 26 8 14
+Card 160: 69 49 13 23 36 64 24 18 57 7 | 54 62 96 36 7 10 28 64 1 85 3 63 73 21 27 37 49 47 75 34 97 30 77 32 9
+Card 161: 35 16 44 25 42 62 95 77 89 34 | 29 26 11 78 97 23 28 36 10 96 54 81 17 22 80 27 77 44 41 34 20 51 76 24 75
+Card 162: 60 17 28 76 67 12 41 15 53 70 | 41 19 35 64 65 15 37 22 80 66 55 40 45 81 17 98 85 74 57 4 16 91 49 5 68
+Card 163: 57 3 82 45 28 70 50 17 85 48 | 68 87 47 62 58 31 88 92 98 90 46 29 5 85 93 24 95 99 39 75 55 33 65 49 14
+Card 164: 33 81 13 87 53 48 79 70 17 91 | 92 57 21 4 36 27 62 1 46 80 31 72 5 94 58 99 75 67 83 25 51 9 26 52 63
+Card 165: 55 70 45 36 72 59 81 16 69 98 | 60 7 43 54 66 78 83 23 25 94 48 67 26 56 53 58 2 4 27 31 34 39 49 85 74
+Card 166: 94 64 48 15 36 35 79 23 77 33 | 78 80 25 5 18 34 92 69 84 86 26 13 89 65 29 3 7 39 71 31 42 21 51 48 55
+Card 167: 13 34 54 2 20 16 89 79 88 9 | 47 75 25 82 72 76 51 37 95 22 71 55 54 74 9 33 97 83 27 2 79 28 17 91 24
+Card 168: 33 82 70 88 7 46 96 67 26 89 | 73 8 22 1 59 45 92 24 43 41 15 64 3 58 83 63 57 82 20 18 91 13 77 60 19
+Card 169: 91 4 32 45 55 98 80 52 9 33 | 20 45 37 28 69 61 60 81 12 33 51 74 15 97 50 86 72 99 2 41 70 58 19 40 39
+Card 170: 45 72 63 87 70 33 89 41 4 18 | 25 9 19 49 26 63 11 73 54 64 70 37 45 82 30 1 90 24 87 42 4 40 91 71 18
+Card 171: 74 99 84 26 66 10 95 8 75 68 | 34 62 37 97 57 65 75 74 6 67 68 96 4 1 95 55 52 82 13 47 63 48 94 26 77
+Card 172: 62 99 47 83 94 8 51 70 9 76 | 94 99 83 26 57 76 18 67 22 80 61 34 8 39 65 78 13 81 70 51 62 93 9 3 33
+Card 173: 42 99 9 18 48 61 36 83 13 84 | 7 69 44 61 35 54 27 3 60 55 99 84 32 48 18 19 72 42 89 65 4 92 79 75 13
+Card 174: 48 34 46 43 53 51 72 35 19 3 | 72 43 57 51 14 34 2 36 53 25 94 81 87 61 19 35 23 4 99 26 48 46 7 90 86
+Card 175: 46 59 27 28 82 13 99 35 18 6 | 36 90 70 87 64 31 42 71 50 27 76 45 99 32 21 20 9 88 23 93 17 46 80 85 59
+Card 176: 92 44 3 29 10 7 66 4 57 21 | 36 68 61 87 65 1 53 95 60 2 34 47 75 42 82 8 83 79 54 74 93 26 69 22 32
+Card 177: 89 23 17 80 22 65 98 11 94 3 | 91 28 37 99 63 60 42 87 23 98 71 39 82 93 57 68 62 13 75 77 22 26 53 48 90
+Card 178: 11 75 56 47 64 88 91 66 59 12 | 41 97 40 26 42 67 23 28 31 99 85 30 11 94 81 55 74 89 52 64 65 69 3 38 43
+Card 179: 31 97 46 27 96 57 45 30 64 82 | 36 42 81 54 85 31 1 29 8 84 28 50 64 76 10 67 77 39 21 4 75 78 99 47 12
+Card 180: 10 32 84 45 87 16 82 14 95 8 | 21 8 41 66 56 42 77 83 90 9 55 61 19 38 23 50 28 62 99 58 33 11 84 39 98
+Card 181: 90 54 11 49 95 88 15 75 18 2 | 30 5 68 41 71 52 56 10 50 60 81 51 27 94 42 55 6 87 78 66 72 96 36 12 62
+Card 182: 73 1 91 2 99 75 30 29 48 89 | 46 51 34 7 18 57 64 9 23 68 16 19 85 70 66 72 5 87 12 4 25 97 10 89 60
+Card 183: 16 20 31 39 75 36 78 33 88 69 | 57 17 8 70 79 37 6 48 51 85 30 45 98 26 3 83 29 58 87 54 61 35 74 43 66
+Card 184: 69 50 38 49 9 96 75 82 80 14 | 23 99 30 83 78 9 50 40 14 74 75 8 37 69 82 42 26 49 96 1 38 58 80 84 7
+Card 185: 44 66 49 89 36 28 30 85 32 68 | 44 28 66 72 33 65 31 67 36 30 99 89 12 25 32 76 68 85 48 90 78 92 13 49 82
+Card 186: 46 48 6 52 24 19 51 76 11 47 | 93 63 78 33 31 86 68 10 74 70 3 83 36 4 54 79 8 77 38 57 97 27 22 29 53
+Card 187: 49 12 70 83 40 68 15 78 88 95 | 72 31 40 69 37 65 71 35 9 44 49 95 89 68 50 41 20 58 16 60 90 22 28 96 10
+Card 188: 86 47 96 63 55 29 91 31 59 23 | 55 77 30 23 91 75 86 47 29 31 78 67 4 92 96 26 63 37 80 54 1 11 32 15 98
+Card 189: 40 97 46 63 66 58 54 35 33 59 | 75 17 57 71 55 62 43 96 85 98 83 37 40 23 65 94 93 25 72 78 46 47 28 33 56
+Card 190: 94 41 57 47 6 24 65 59 44 20 | 95 86 26 77 87 47 18 27 16 85 57 61 66 37 35 38 23 42 50 60 98 71 62 8 25
+Card 191: 57 32 39 19 48 77 27 96 10 61 | 68 82 86 70 75 35 11 24 69 56 45 95 67 44 25 36 90 47 74 39 27 55 66 87 12
+Card 192: 50 94 12 32 88 76 95 23 46 49 | 60 9 6 37 42 50 96 15 95 66 34 94 91 4 33 29 14 92 16 80 98 64 12 57 36
+Card 193: 32 25 53 7 71 31 80 42 92 63 | 84 78 28 90 27 24 5 67 63 75 81 12 31 55 46 60 89 98 37 16 86 23 72 43 22
+Card 194: 79 47 88 9 97 76 62 23 72 84 | 77 78 67 65 91 79 64 38 41 26 89 16 10 71 86 82 47 75 61 11 34 66 7 3 70
+Card 195: 22 47 95 56 66 98 44 73 50 30 | 92 33 28 65 16 60 8 45 56 2 47 84 25 55 58 17 35 88 38 95 81 63 43 57 98
+Card 196: 76 23 10 43 9 32 46 62 84 79 | 22 4 49 42 23 55 13 35 90 9 24 52 65 26 95 94 18 37 47 79 56 59 54 86 48
+Card 197: 65 44 24 84 49 62 6 54 42 20 | 25 72 90 58 77 60 59 73 11 39 91 19 21 28 62 8 41 66 87 56 64 52 80 82 24
+Card 198: 63 44 64 86 78 25 92 90 99 70 | 62 29 51 81 21 6 75 58 54 90 18 10 59 98 97 41 4 52 53 64 80 28 92 11 9
+Card 199: 7 15 47 28 44 22 74 76 40 56 | 78 24 95 38 25 36 77 46 89 45 18 42 3 75 62 90 52 81 83 85 80 26 4 23 71
+Card 200: 85 88 3 44 54 19 9 71 29 53 | 72 42 56 55 33 68 65 86 58 3 57 83 12 31 96 9 13 62 70 80 17 29 41 27 6
+Card 201: 10 51 69 82 56 40 94 9 90 78 | 57 92 89 1 99 87 5 73 80 28 2 6 67 70 33 18 17 78 16 95 69 44 38 24 55
+Card 202: 44 47 79 75 24 50 86 80 62 87 | 66 91 36 15 28 81 57 69 30 14 10 20 27 18 77 46 95 72 39 23 38 34 60 37 26
+Card 203: 59 31 79 81 4 21 24 54 48 62 | 37 90 25 51 70 77 18 17 97 52 40 75 43 3 91 50 87 67 42 15 14 63 6 13 5 \ No newline at end of file
diff --git a/aoc2023/src/day6/input.txt b/aoc2023/src/day6/input.txt
new file mode 100644
index 0000000..1026e3a
--- /dev/null
+++ b/aoc2023/src/day6/input.txt
@@ -0,0 +1,2 @@
+Time: 41 66 72 66
+Distance: 244 1047 1228 1040 \ No newline at end of file
diff --git a/aoc2023/src/day7/input.txt b/aoc2023/src/day7/input.txt
new file mode 100644
index 0000000..b1d1932
--- /dev/null
+++ b/aoc2023/src/day7/input.txt
@@ -0,0 +1,1000 @@
+3Q373 470
+K53JT 351
+A9JK9 856
+2T333 515
+867T4 541
+58K22 253
+5JA6J 994
+K4A4K 865
+94377 519
+92J2Q 901
+J7676 389
+2KK36 938
+JQ2KK 987
+Q7A82 509
+TTTA5 243
+72J27 502
+AKKKA 387
+23222 674
+55335 161
+AA655 73
+QKKQA 686
+5J2T5 680
+666AT 385
+ATA3A 761
+TTT8J 364
+98A2T 282
+59A44 260
+6T9QJ 130
+T7TKQ 721
+9274T 656
+T9AJ4 182
+A2222 259
+TQKJ7 67
+4J844 560
+AAATA 636
+9J36J 546
+QJQQQ 119
+249TT 295
+877J7 221
+4KA23 116
+929Q2 929
+99JQQ 445
+Q9QJ8 432
+4Q7TJ 963
+4J2J8 783
+5J657 257
+88788 183
+KKK7K 909
+KK396 637
+J45AT 117
+84448 806
+A2698 820
+A9AA5 320
+A3934 19
+Q45Q5 392
+78686 254
+A55A5 701
+98A4K 655
+5AJ88 95
+AK3KK 55
+773KK 33
+J9J9J 356
+2KAKK 563
+655K5 287
+55T56 475
+54444 308
+5J5QA 811
+QKA76 792
+2K288 42
+JTKA2 694
+88668 889
+8TQ64 212
+23QQ2 261
+8K8K5 365
+JKKAA 234
+3J894 880
+667Q2 817
+888T4 599
+T5Q83 315
+3QK29 670
+JK4KK 322
+75T8T 144
+AAA7K 291
+7T333 495
+A49K4 448
+JJ3J3 251
+5999J 278
+38438 890
+6K3Q9 122
+TTT99 93
+94775 240
+K8QJ3 369
+59674 107
+267J4 355
+QTQTQ 187
+46J44 961
+Q7AK2 580
+69969 609
+876A5 474
+A3866 642
+Q3QQA 526
+JAA88 425
+35Q9K 986
+QQTQJ 550
+54535 357
+2J222 639
+QK5J7 743
+222Q2 191
+T4T44 855
+QTQQ2 338
+JA7A2 300
+AAAJ2 508
+4J455 23
+A77AA 339
+5KK25 899
+252J2 737
+7QJ76 888
+K46QK 795
+A4T3J 640
+8A8K8 176
+AA5AA 41
+J2Q24 958
+58855 632
+333J3 610
+74474 807
+K3AAA 78
+JJ222 765
+44224 688
+76733 361
+5845K 181
+TT4T2 974
+23J33 102
+QQJ6Q 34
+Q9AQQ 150
+22747 717
+KAA5A 121
+7AA7J 286
+J786T 780
+3K8TT 32
+A6KAA 25
+9A362 166
+A29Q2 499
+6688K 57
+KKQKA 947
+999JJ 975
+6A666 927
+TTT3K 658
+JQQ7T 467
+8A247 934
+7JK8J 712
+KK39K 612
+6666Q 17
+77Q37 868
+A66AJ 169
+KKKKJ 535
+7Q7JJ 591
+K9848 646
+46888 931
+A86A8 326
+743TA 527
+QKK67 977
+KKJ6K 471
+AAJ7A 571
+55292 330
+3A222 390
+6453J 109
+JKKKA 403
+4J9T5 21
+K7A5K 486
+6TT34 793
+3479Q 60
+44624 443
+6KK3K 164
+4447J 112
+QQ27Q 452
+JAK65 522
+Q5Q5Q 354
+J5Q6A 540
+68999 711
+3QJ4Q 155
+A6AAA 314
+222KK 767
+55T9A 373
+T5T57 913
+TTTTA 794
+8J258 190
+3Q87J 489
+AAQAQ 950
+Q4JJ4 588
+6T64T 9
+636K5 228
+AA222 248
+7KJ35 616
+26646 507
+44A4J 829
+23323 904
+TA265 135
+JJQT9 136
+KATJ8 644
+J2862 713
+4JQ28 152
+Q3K2T 56
+6Q232 812
+9A622 885
+KJKKJ 773
+3859T 374
+99333 101
+TKTTK 205
+3333A 35
+5A4AQ 548
+T4944 967
+43353 813
+423JK 869
+T99T7 219
+3AAAA 394
+T65Q6 740
+J9243 352
+6656J 496
+444K4 574
+Q8T6K 98
+AQ55K 917
+7QQJ7 605
+TJ5TT 615
+68JQ5 852
+7A3J2 745
+369AK 217
+57755 343
+A8844 61
+Q76QQ 698
+36333 774
+237Q7 12
+KT694 283
+88286 154
+4T552 990
+Q9J54 759
+K6697 350
+A3A33 937
+AA9AA 246
+QQ7KK 748
+TT4A6 380
+4J992 845
+A66AA 573
+5QQ2Q 28
+86J37 214
+2A443 362
+Q9QKK 654
+44434 964
+77773 74
+44355 235
+9QK75 863
+3AJ33 766
+T2TJT 53
+44494 860
+883A9 309
+QQ59Q 360
+A88A8 584
+A83A4 395
+7J9TA 299
+55955 833
+QJK35 188
+4656A 514
+8KTQ4 554
+56J47 985
+J272J 184
+9J999 671
+72295 31
+53555 264
+4A537 750
+7A4JJ 875
+QK834 463
+88KKA 570
+QQ9JK 906
+6Q646 858
+53336 359
+QJ8QJ 587
+424TJ 607
+KTKK6 285
+Q5AQQ 84
+899A8 542
+K8TKK 250
+4JA4A 705
+6J75J 896
+888K8 312
+5583J 660
+6T335 614
+Q757T 945
+3AKKA 629
+KK946 825
+3393Q 406
+7J288 367
+49999 907
+99729 837
+66265 384
+K47JQ 263
+2AJ4K 566
+TTKKA 186
+8J877 418
+56844 666
+JTTTT 531
+6TJ94 26
+JQ5J5 344
+7J772 85
+33747 510
+KJA2A 729
+333TQ 578
+JQAT4 955
+75766 834
+QQ6QQ 980
+32K33 306
+TTTJ6 231
+2QTTT 213
+999AQ 608
+33353 202
+Q8Q8Q 756
+KK555 490
+746K8 691
+98A75 853
+JQ858 816
+KK9KK 536
+9T999 933
+TA8A8 39
+8558J 919
+J8KQK 15
+73Q2K 503
+2K2KJ 585
+JK9K5 903
+TJ7T7 545
+J723T 453
+KT895 583
+TTTKT 123
+39535 393
+K4K88 893
+43KK6 821
+6AA8J 504
+972TA 597
+7J736 592
+536A8 63
+J23Q3 402
+83K9Q 405
+28337 396
+9T558 776
+7AA78 946
+QTT24 441
+26QT3 401
+AJQAQ 953
+6T6AJ 304
+JK5KK 162
+2JJ2J 484
+73773 6
+8J864 630
+78782 557
+6TJ52 424
+487JQ 830
+8J698 82
+AJAAA 866
+228J8 204
+622J4 823
+6J2QJ 79
+22K22 232
+A86A6 444
+83K8Q 965
+JK586 944
+JA848 465
+8888A 45
+2T28T 803
+73J73 450
+27272 857
+7A777 544
+A998J 679
+46466 458
+KJ233 192
+4453J 378
+TQQJT 451
+A3K5J 512
+888Q6 968
+6AA66 841
+QQ222 883
+3K5A3 233
+JA4AA 379
+62288 778
+44456 51
+4A644 862
+55647 981
+A77A7 327
+KQ3A3 687
+QQ7Q7 976
+T4A2T 293
+46226 628
+Q59Q5 348
+36AJ2 984
+54433 532
+JJQ24 831
+7455J 381
+78845 218
+72AQ5 276
+52T22 618
+99399 68
+36AA3 118
+69669 839
+33Q5J 785
+TJ766 626
+T28J4 556
+T883Q 142
+73928 932
+TJ884 494
+AJ36Q 485
+9Q999 324
+T725Q 267
+22622 88
+92364 685
+97792 789
+J673K 620
+99943 625
+77JJ7 921
+8828Q 572
+7777J 353
+TAAJT 926
+99T29 787
+AQ4J4 520
+9J559 5
+J3T94 706
+K9KK9 918
+KK252 439
+79925 97
+TT47T 497
+848T4 126
+6TTT6 426
+K8825 925
+888J8 62
+K5K85 972
+AAKKA 449
+J5555 663
+89J99 27
+4Q444 922
+A9A99 397
+5A555 163
+8J3K8 662
+29989 645
+95222 751
+Q4Q4Q 193
+555K5 982
+74AJ8 735
+KKQ6K 668
+7676Q 916
+A28T7 784
+K57KK 388
+A4J4J 115
+2K442 229
+33TT3 956
+TT6TA 741
+TT782 131
+TJ5JQ 238
+TQ7T7 415
+29KQQ 598
+A8AAT 676
+46A28 650
+6698K 696
+6J969 158
+6694A 271
+QTQ5T 498
+Q2QQQ 613
+2A7QJ 210
+6T466 683
+QJ575 799
+Q63Q3 822
+Q9J28 848
+TTTT7 7
+KA9AA 854
+K2JJT 859
+28228 179
+K29KJ 429
+JJ8JJ 222
+A99A5 457
+QQTTT 983
+43KK2 134
+984JJ 1
+97J97 892
+2AAA8 689
+9Q77J 819
+98TJK 517
+56KA5 71
+7J66J 294
+55855 335
+TTT8T 596
+33663 407
+7J774 911
+3JQ55 564
+QQQ7Q 329
+85668 120
+KK333 301
+Q3553 867
+7K557 988
+Q8488 400
+96J99 643
+29224 714
+T8ATA 346
+99J93 462
+K83J3 697
+3KQJ4 653
+5KJQ2 824
+4JJ3A 897
+56248 727
+JJ666 702
+355T5 245
+45KAK 553
+88AAA 236
+K55J5 581
+AJJ49 65
+A8Q3J 197
+AAAKQ 529
+55976 707
+77776 930
+A9995 227
+K7J7K 912
+29K99 244
+4Q464 80
+22972 195
+666JQ 189
+26278 241
+79288 601
+5454A 427
+JTAKQ 138
+88833 549
+84J54 215
+AATAK 114
+58959 145
+8ATTJ 431
+QJ26K 265
+A3JA3 81
+T8T4J 242
+4T3A3 37
+44777 871
+JQ542 561
+A97Q9 693
+A76T4 412
+28T4A 481
+T485A 861
+78286 303
+K6776 52
+T8TKQ 754
+KJ938 957
+Q444Q 840
+25A89 455
+58588 673
+K8858 634
+K8KJ8 170
+K6KKK 851
+53353 140
+2T2K6 593
+QQAQA 48
+TT6J6 305
+922J2 920
+AA22K 22
+J555Q 725
+TTAAT 781
+2244J 171
+A95K7 436
+2J299 651
+78AAA 321
+2KKK2 690
+2J565 649
+77J5K 77
+T999T 762
+J4445 879
+J888Q 873
+J884J 1000
+98898 413
+29299 442
+QKQ3Q 678
+A652A 993
+55272 898
+KA5K5 664
+8KJAQ 147
+Q56QJ 734
+K77J3 739
+J7677 661
+T5569 206
+2AA2J 757
+TJTJT 342
+T2TTT 682
+88J82 363
+9KK78 700
+AT4T4 730
+86968 736
+99995 207
+7A3J4 172
+8KK87 991
+TKKJJ 16
+J7532 165
+J9888 996
+9AJTA 92
+43T78 310
+93J77 317
+J4424 805
+43J86 703
+952TJ 127
+54363 146
+8T2J7 435
+88848 832
+TAAAQ 791
+8228T 256
+699QT 815
+KQQQK 30
+T82J3 49
+36222 4
+AK288 86
+6792A 194
+2Q22T 667
+J3545 270
+9QJK4 280
+QQ22Q 371
+K9247 446
+A422A 943
+765K3 469
+9J5A6 874
+4A4QA 775
+8Q8Q8 124
+T8Q62 850
+8Q8Q5 747
+6KT88 738
+82888 722
+3TQQQ 349
+2J3TT 539
+7TQ59 72
+8998T 733
+JQJT3 414
+82428 589
+92856 423
+89833 54
+79T4A 523
+95839 979
+TJJT5 936
+33839 29
+37433 511
+TKJ2T 681
+JT973 633
+Q8Q8J 971
+Q5555 440
+K8886 24
+Q75A4 43
+3AQ33 298
+T446T 719
+577J5 753
+KJTKT 167
+52528 8
+25222 641
+QJ2T8 621
+A8JQJ 316
+7T7A7 772
+KQQTQ 141
+83734 758
+6Q66Q 434
+QJ6Q2 638
+AAA7A 196
+57555 203
+4QJQ4 216
+82J5Q 763
+A73A3 940
+46AJQ 559
+T4936 103
+89Q29 262
+7872T 466
+A5J58 274
+AAAQA 290
+37399 844
+A759Q 328
+TJ9TT 273
+77887 268
+64A2J 978
+6T76Q 110
+QQ467 742
+9J7Q5 422
+4K6Q3 91
+336K3 826
+6K63Q 382
+23552 105
+243AA 505
+Q887J 764
+2J92A 749
+68A3Q 416
+7T8T8 199
+225J5 404
+24774 153
+T7T77 870
+3J393 347
+Q5Q8J 128
+7Q777 796
+QKKKK 617
+86686 108
+44KT4 75
+56858 622
+5AJK4 960
+3245Q 311
+36536 370
+6644Q 11
+JKAAA 104
+T2426 579
+J3399 83
+33933 602
+A299J 777
+26J22 224
+8666J 594
+J3J38 669
+3AJ84 239
+52Q8T 877
+QJQQK 779
+QJ6T8 797
+43339 399
+9AJ74 476
+T499Q 13
+2TAKA 928
+T3K78 809
+2923K 201
+J8858 798
+T8888 818
+98399 168
+8T266 555
+23A57 652
+3KKK3 113
+22T22 460
+AJJAA 106
+7QKA8 464
+QQ8TQ 368
+99A99 341
+62Q5A 223
+J9T47 568
+Q7388 894
+69662 744
+96J2T 323
+2A779 89
+Q2874 269
+77797 948
+5359A 864
+AJ9K4 482
+Q3Q44 567
+JT958 665
+A38J3 438
+J4666 296
+428J5 501
+38K8K 410
+6T979 709
+3533T 284
+2285A 910
+933T6 882
+K6666 786
+56Q32 992
+5J752 198
+AJJQJ 600
+KK5KK 3
+38T94 180
+67QTJ 69
+J6636 200
+229J8 493
+QJTQ3 247
+5KQ5K 149
+654AT 528
+T84T4 878
+Q23QQ 905
+QQQ74 325
+4JTQQ 408
+T4T78 340
+3T5T5 551
+3J3J3 391
+88844 631
+TTT9T 810
+57775 935
+A777J 604
+4555T 2
+A5J8T 942
+22AJJ 506
+22323 997
+A3323 624
+84442 516
+2T992 76
+J7T76 828
+J8552 995
+KTKK3 886
+33853 782
+53233 129
+44J4J 372
+KQQT2 480
+K5649 576
+3J63K 760
+2J666 827
+6JT68 318
+45Q64 849
+49884 801
+9KTTK 902
+66737 952
+5Q8J4 708
+57Q92 724
+627J7 331
+K22J6 473
+4T444 923
+J4444 552
+78J8J 491
+4K328 477
+4AA3A 808
+7A34Q 437
+AQ888 428
+8TA99 768
+AA9A9 143
+9K5AT 211
+77722 40
+TQTTT 941
+Q2A4K 492
+236T9 677
+J8686 746
+J585K 64
+TJKQT 582
+T3TTJ 157
+22266 38
+KT5TK 692
+QJQQJ 908
+4K623 279
+7JJJ7 173
+64A66 524
+J7AJ8 417
+K43Q3 769
+T662T 148
+54J2J 488
+K6485 44
+J6666 970
+J26J9 209
+8337Q 334
+A27A4 319
+A7T78 132
+K777A 842
+KKK4K 249
+99K9K 430
+8745K 151
+Q2QTJ 433
+QKQ76 525
+25Q2Q 533
+5QK6J 800
+77T77 558
+5K323 939
+33KK4 590
+K8A52 111
+ATQJ6 569
+ATK89 50
+4433A 836
+3KKKQ 891
+46TK4 538
+5249Q 447
+2462K 675
+8JT6T 336
+466J7 459
+7K7KK 838
+544Q4 959
+58773 483
+823J5 999
+2TKA5 752
+AKJ58 386
+7T833 99
+KQ88Q 659
+KJ3A4 790
+K9595 307
+3K3J4 534
+3838T 220
+32522 720
+366Q3 500
+J8868 989
+T7KTK 376
+JQQQA 14
+42555 409
+5T5T5 648
+4KK4Q 383
+K7777 884
+736A3 543
+343Q3 366
+TJ856 237
+JJ555 46
+K5QQQ 275
+QAQQ7 672
+8KTJQ 731
+QQQ3Q 47
+J257Q 575
+6Q3QQ 87
+QKK43 924
+TTATJ 998
+K44K5 771
+37895 881
+48823 521
+KKK74 456
+99J79 139
+J4542 635
+AJ96K 954
+K8937 411
+5J355 895
+96967 185
+333T3 562
+TAJ77 755
+J38A8 487
+AAT79 313
+A6Q73 398
+386JA 10
+J35Q8 623
+27758 969
+3K3KJ 966
+7928Q 627
+AAA4A 59
+2AA52 478
+848J8 133
+55225 843
+TTQT9 619
+3Q79K 255
+27AK8 58
+TKTKK 272
+KTTAT 333
+55666 802
+47748 454
+Q3T56 699
+63T3T 302
+8754Q 723
+4J86T 358
+8TTQ9 226
+5523J 125
+88588 606
+58AAA 208
+TK273 137
+4Q7KQ 160
+29292 577
+Q333Q 611
+22TT2 716
+A55AA 258
+64822 468
+22228 847
+2242T 788
+JA26Q 472
+8JAAA 174
+K5Q8A 175
+Q5AT4 732
+J4434 530
+76666 337
+9998Q 547
+9T2J9 100
+3Q982 90
+7727Q 281
+92944 973
+K2597 814
+K444K 36
+26KJ6 292
+34K38 962
+5A378 225
+636J9 375
+TTTT4 420
+A66TA 461
+69QK5 345
+76293 479
+66966 804
+A3383 297
+T82TT 657
+2QJJQ 156
+K2JK3 94
+K6K66 252
+K58QJ 876
+6J979 513
+92647 718
+QQ9Q9 586
+862Q5 20
+5465K 915
+KQ44Q 595
+T66T6 288
+TJT7T 710
+5JT8K 159
+KJTK3 603
+KKJTQ 949
+67776 914
+J4323 177
+22229 704
+96999 178
+8AJKA 70
+69T69 419
+65556 770
+87738 537
+547J4 835
+44766 421
+3355J 684
+2K266 647
+5TTT5 266
+3T3TT 332
+88JJ8 96
+QQ5K3 887
+K7JKK 377
+J8Q2Q 66
+2KKJ6 230
+TTKQT 277
+22Q92 18
+JTTTK 695
+J993Q 846
+88898 728
+88T87 715
+Q74J4 872
+4T999 951
+T997Q 289
+92QA9 726
+AJ394 900
+TT2T2 518
+JJJJJ 565 \ No newline at end of file
diff --git a/aoc2023/src/day8/input.txt b/aoc2023/src/day8/input.txt
new file mode 100644
index 0000000..e27fbc1
--- /dev/null
+++ b/aoc2023/src/day8/input.txt
@@ -0,0 +1,740 @@
+LRLRLLRLRLRRLRLRLRRLRLRLLRRLRRLRLRLRLLRRRLRRRLLRRLRLRLRRRLRRLRRRLRLRLRRLRLLRLRLRRLRRRLRLRRLRRRLLRLRLRRRLRRRLRLRRRLRLRRRLLRRLLLRRRLLRRRLRRRLRRRLRLRLRLLRLRRLRLRLLLRRLRRLRRLRLRRLRRLLRRLRLRRRLRLRLLRRRLRRRLRRRLLLRRRLRLRLRRLRRRLRRRLRLRRRLRRLRRRLRLRRLLRRRLRRRLLLRRLRLRLRRLRRRLRRLRRLRLRRRR
+
+GXT = (MQM, CHN)
+MBK = (RCK, RCK)
+HBS = (QHS, RXC)
+SXK = (FDB, FKP)
+NJB = (BSB, KJM)
+SPD = (FNL, RSH)
+FJF = (NFH, XJN)
+GHV = (LSV, BTS)
+QDT = (HXV, PDX)
+MDH = (XDK, DKN)
+AAA = (FKL, CFC)
+GRB = (VDP, LMM)
+CXK = (DVB, CRJ)
+FDB = (FTD, CNK)
+LQT = (BJV, SMQ)
+TSK = (NQD, VSG)
+VLF = (NDS, CTV)
+PGP = (DKC, CKL)
+PVJ = (FDB, FKP)
+VSV = (NFP, QHX)
+KXN = (XJN, NFH)
+KMQ = (VBH, XXH)
+QXR = (RMD, TLT)
+DLN = (TPD, KBG)
+BHK = (GRP, RXF)
+TSX = (HQP, SHK)
+PTV = (VSG, NQD)
+QVN = (XBH, DHC)
+DDM = (TCB, XRQ)
+NKD = (CDR, BJM)
+JNR = (FMC, SQN)
+VPQ = (JGC, VCJ)
+HPB = (STQ, DDM)
+HRT = (JNR, BGH)
+CNQ = (HQV, PJQ)
+PMG = (LRB, XXP)
+RKV = (XGN, VCG)
+KVQ = (KHS, SLV)
+MDM = (VDX, NSF)
+VHT = (PGP, GJS)
+BPD = (NBF, VNH)
+JCQ = (JCB, XVR)
+CFJ = (PQP, CBJ)
+DSX = (BXN, VDS)
+MGH = (PFV, NLQ)
+MPK = (FND, BJX)
+QFR = (HFC, CNG)
+PHS = (VNH, NBF)
+KTT = (MTG, SQM)
+JBK = (CSR, VXV)
+BKL = (DLB, SHQ)
+GQH = (PCH, LDZ)
+XVJ = (CQM, SLF)
+VBN = (FFF, PDL)
+KQH = (SLT, XLG)
+SSN = (PQH, LFT)
+MQM = (SBH, TTC)
+SCR = (HGH, QGS)
+XTZ = (XKM, JTJ)
+ZZZ = (CFC, FKL)
+PRA = (GRB, MDB)
+VTV = (LXQ, HKP)
+PPX = (SQM, MTG)
+PVA = (MRJ, CVH)
+BJH = (VTR, RKG)
+KPH = (RFD, NJP)
+HXG = (NVJ, HNG)
+LRX = (DCX, MGH)
+NFD = (PFR, FVQ)
+TDG = (TDH, ZZZ)
+XKM = (XDG, VHT)
+CKT = (LDC, VPF)
+QQR = (BFQ, FXC)
+RGJ = (KTV, GFR)
+XDK = (MVC, SPX)
+TLT = (MBK, DGL)
+CDR = (JBG, KPH)
+LTH = (DFN, BHK)
+PVV = (BFQ, FXC)
+FCK = (FRJ, KVG)
+FXB = (MDH, VSJ)
+DHD = (LDJ, RNH)
+HHR = (HSK, CJD)
+LSV = (LNP, NMD)
+JSX = (DPF, SNN)
+SBH = (XKD, GTX)
+BHJ = (JSX, TMN)
+CQX = (XPG, RLB)
+XRQ = (FJK, NCF)
+GMF = (JBX, DRV)
+KBD = (HCC, TND)
+KGT = (NLK, FRX)
+RKM = (RTM, FMQ)
+GNM = (GML, NLB)
+SXP = (RKG, VTR)
+PMS = (XBH, DHC)
+PQH = (PJD, CXK)
+XXH = (BMB, JGJ)
+RHL = (QHS, RXC)
+DFS = (JVK, VBN)
+QCS = (XGN, VCG)
+MJJ = (DDM, STQ)
+SPV = (PXX, RRT)
+FRJ = (SNX, MPQ)
+FKC = (CBF, RKM)
+SRG = (QFH, LGP)
+VVQ = (BJV, SMQ)
+BQC = (DSP, TXQ)
+SHQ = (NKR, RGJ)
+KCS = (QGS, HGH)
+MTV = (BXN, VDS)
+CNC = (HPB, MJJ)
+SNF = (XXP, LRB)
+KTP = (QRX, KML)
+GSC = (HSK, CJD)
+QRX = (CRB, TXL)
+MDB = (VDP, LMM)
+PFV = (CLM, CTN)
+RRB = (HHR, GSC)
+DDQ = (PXX, RRT)
+TJB = (LSX, XNR)
+BSP = (TXC, LKB)
+MMV = (DKK, NFD)
+DCB = (XKP, TNJ)
+QKV = (CTT, SFM)
+XDG = (PGP, GJS)
+JMJ = (JLK, NJB)
+VBJ = (HJV, JFD)
+QHM = (CLJ, QGP)
+STR = (HXG, RFC)
+DPF = (VNQ, DQQ)
+RXF = (NHV, GBX)
+FXC = (JLX, LBS)
+XVR = (MVT, QHD)
+KNM = (BJD, QCK)
+GTX = (MSB, FNP)
+XCS = (PTN, NRH)
+CGS = (FRX, NLK)
+RCK = (CQM, CQM)
+CDS = (PRR, GCJ)
+BXN = (KQC, MSV)
+PTN = (VST, QHJ)
+TPD = (HJF, TSS)
+RNH = (TTK, DBN)
+TSM = (TPD, KBG)
+KTG = (GPT, BMD)
+PJP = (XBR, TCM)
+QPF = (KJF, NJX)
+HKP = (PLS, PGK)
+KBG = (HJF, TSS)
+SQK = (LSD, KNM)
+XKD = (MSB, FNP)
+QQP = (LFB, LTK)
+MDX = (KTJ, FXF)
+JLK = (KJM, BSB)
+FBR = (PMG, SNF)
+GSJ = (TDH, TDH)
+DQQ = (FKK, KRF)
+CTV = (CQD, RQX)
+MNT = (RLG, XXQ)
+GFL = (FGJ, KMD)
+BJK = (VQX, JCQ)
+SPN = (NKS, CNQ)
+LNL = (XLM, XLC)
+HKF = (HKJ, NNC)
+FTD = (CCX, MSS)
+RPV = (MDQ, DGS)
+DCX = (NLQ, PFV)
+JGB = (DVT, DRH)
+CGM = (CHN, MQM)
+JNQ = (PPX, KTT)
+BJM = (JBG, KPH)
+NFP = (SPD, XCT)
+TPL = (LSD, KNM)
+XTV = (CTJ, HPX)
+LKB = (PDF, SLK)
+QVK = (KMQ, MGF)
+QVP = (VCX, JNQ)
+NSR = (TJB, NBB)
+XLA = (DLB, SHQ)
+QLP = (HBS, RHL)
+BGH = (FMC, SQN)
+BJX = (LRX, PNM)
+MVC = (BPD, PHS)
+DXQ = (TMN, JSX)
+PBK = (QKV, CTH)
+GBJ = (RNH, LDJ)
+BMB = (HJS, TJT)
+SHT = (MFQ, LCT)
+HSK = (CGS, KGT)
+DRH = (PKN, PBN)
+PQF = (XKP, TNJ)
+RPX = (HCT, HQT)
+FPH = (VQL, NPJ)
+GLC = (PMS, QVN)
+VDP = (SXK, PVJ)
+JFD = (QBD, DGT)
+LQL = (NPT, GVS)
+TPQ = (NHL, MTD)
+KRF = (HVT, MPK)
+JQG = (QDT, PCK)
+PJQ = (KVH, LBV)
+VBB = (XXQ, RLG)
+PSH = (SQV, TLB)
+VXH = (VCX, JNQ)
+VQD = (NBB, TJB)
+JVD = (GDJ, JGQ)
+SDR = (FTF, NQL)
+NQQ = (TFM, CMC)
+FNL = (LTV, CSX)
+FVS = (NSF, VDX)
+VTJ = (VXH, QVP)
+KQC = (LGG, LGG)
+SCS = (MTV, DSX)
+QPS = (HMV, QQP)
+CQM = (JDD, JDD)
+FJX = (VBB, MNT)
+GBQ = (BXV, LFR)
+HGH = (SQK, TPL)
+SLT = (FXB, NGN)
+PBD = (HDC, FCX)
+CKL = (MQS, NND)
+LSX = (MBF, SPN)
+HNG = (JQG, GKD)
+MFQ = (PSH, TGK)
+SNX = (GCS, KSF)
+FMQ = (DXT, DFS)
+TXC = (SLK, PDF)
+VST = (SSN, LSR)
+BFB = (VSV, SVC)
+VNX = (TMF, QFS)
+VPK = (VBB, MNT)
+NVR = (XPG, RLB)
+FLS = (FSL, CKH)
+FKP = (FTD, CNK)
+MGF = (XXH, VBH)
+LNM = (NFD, DKK)
+FNP = (VTT, MVG)
+HDC = (PXP, GVH)
+KVL = (LCT, MFQ)
+XGP = (RHG, RTK)
+JCT = (NJB, JLK)
+XSL = (SVC, VSV)
+SRS = (HPD, XBL)
+FSL = (JMG, TFD)
+CXB = (KQV, QGK)
+QRP = (CGF, CQF)
+PRG = (MDX, KPL)
+VLL = (MRB, MHN)
+VNQ = (KRF, FKK)
+NPJ = (VPK, FJX)
+MHN = (SRG, TTL)
+KFN = (DFN, BHK)
+FVQ = (LJM, TJV)
+GKD = (QDT, PCK)
+GVS = (FCK, NGC)
+MBF = (CNQ, NKS)
+SMQ = (KSV, KMF)
+CRJ = (GSJ, TDG)
+LHT = (BTL, KMB)
+KJM = (KJC, BGC)
+TTC = (GTX, XKD)
+QFT = (PRM, KXS)
+SDS = (JMP, TSR)
+BLX = (PQF, DCB)
+PXX = (LJT, QFK)
+SQV = (FCB, HXF)
+RQX = (DBJ, VTV)
+THV = (GJL, MND)
+SLK = (XBP, CXB)
+LVS = (CTJ, HPX)
+TSS = (CGL, JST)
+MTG = (RKT, GTJ)
+FFF = (GBQ, VTM)
+XMV = (KVL, SHT)
+FDJ = (MLG, MLG)
+HPD = (MQK, FLS)
+TLB = (HXF, FCB)
+BGC = (SCR, KCS)
+FBM = (PBD, MFK)
+TJP = (JSS, GHV)
+TXL = (NQC, RXH)
+TKM = (GLQ, TKP)
+RNS = (BJK, PHJ)
+RRT = (LJT, QFK)
+DHC = (XVF, STR)
+RXM = (KVL, SHT)
+JBX = (GBJ, DHD)
+TBR = (HJV, JFD)
+MFK = (HDC, FCX)
+TFD = (QXN, QSK)
+HMV = (LFB, LTK)
+RMD = (MBK, DGL)
+RJP = (CTX, TPQ)
+CBF = (FMQ, RTM)
+XXG = (JDH, TJP)
+PDX = (XGQ, BSP)
+XBL = (MQK, FLS)
+GMT = (PCB, GTK)
+DGT = (GNH, KVQ)
+CHN = (TTC, SBH)
+NKS = (HQV, PJQ)
+HJC = (DXQ, BHJ)
+CSR = (TSX, HSM)
+XTK = (BJM, CDR)
+DRT = (MPB, PSV)
+HQT = (CRM, XTZ)
+HNM = (SXJ, GMF)
+NLQ = (CLM, CTN)
+LTK = (PGS, SCS)
+DNR = (DRT, QLK)
+QVR = (DLN, TSM)
+VLD = (GSP, CKT)
+LFT = (PJD, CXK)
+KVG = (SNX, MPQ)
+FBS = (JSN, KFT)
+GTK = (XHH, LCL)
+KJZ = (MDB, GRB)
+QGK = (PKK, VFK)
+VDS = (KQC, MSV)
+KHS = (TRF, JVD)
+BHH = (MLG, RPX)
+JVL = (CQF, CGF)
+RGQ = (CQJ, KTG)
+VTM = (LFR, BXV)
+GML = (VFF, VLD)
+CTJ = (FKC, PDT)
+BJV = (KSV, KSV)
+SPX = (BPD, PHS)
+CTX = (NHL, MTD)
+LRB = (HHP, CDS)
+XHH = (MKX, KQH)
+FDL = (QFT, MNG)
+CCX = (HKF, VPS)
+GPT = (VHX, QPF)
+VFK = (VJX, QPS)
+QFH = (LHP, CKD)
+KMD = (QFR, XVX)
+MSB = (VTT, MVG)
+TRF = (JGQ, GDJ)
+PHJ = (VQX, JCQ)
+DBN = (NRQ, GBN)
+JPM = (PMG, SNF)
+TND = (HQB, XXT)
+FJK = (XHV, FBS)
+PNM = (DCX, MGH)
+QFK = (RKR, QVK)
+VNV = (NRC, XXN)
+QXN = (PSG, CFJ)
+NND = (HJC, MPN)
+DQM = (TJP, JDH)
+PGK = (XQK, PRG)
+HMK = (BJK, PHJ)
+DLB = (RGJ, NKR)
+PXP = (XTK, NKD)
+LGG = (CNP, CNP)
+HKJ = (VQD, NSR)
+TMN = (SNN, DPF)
+FRX = (FBR, JPM)
+PTA = (JTJ, XKM)
+NRH = (VST, QHJ)
+BQD = (KTP, GFF)
+VTT = (KFN, LTH)
+GMV = (VCJ, JGC)
+XLG = (FXB, NGN)
+JDH = (GHV, JSS)
+TJT = (JCT, JMJ)
+HCT = (CRM, CRM)
+BGR = (JMP, TSR)
+CKH = (JMG, TFD)
+DHX = (QGP, CLJ)
+BQN = (TBN, BTQ)
+RSH = (CSX, LTV)
+SXJ = (DRV, JBX)
+MRB = (SRG, TTL)
+GTG = (SPV, DDQ)
+VQL = (VPK, FJX)
+RXC = (GXT, CGM)
+MSV = (LGG, HLF)
+PSV = (GBL, RRB)
+LRV = (XTV, LVS)
+MVR = (NQL, FTF)
+JDD = (GRB, MDB)
+TKG = (LHT, VLM)
+NHL = (MMV, LNM)
+XBR = (DHX, QHM)
+DNK = (TXQ, DSP)
+GBX = (SDS, BGR)
+PDT = (CBF, RKM)
+PGH = (FGJ, KMD)
+GTR = (RPT, CXM)
+GBP = (LNB, DNR)
+DKC = (MQS, NND)
+HSM = (SHK, HQP)
+VVV = (GLQ, TKP)
+TTJ = (DNK, BQC)
+CJD = (CGS, KGT)
+VSG = (RMJ, BQN)
+XGQ = (TXC, LKB)
+CNP = (PCH, PCH)
+JPT = (NDS, CTV)
+MVT = (GBP, RLR)
+HJF = (CGL, JST)
+KGB = (GML, NLB)
+MPN = (DXQ, BHJ)
+KFT = (DTS, DJP)
+QCK = (RLF, QVR)
+MJR = (MJD, RPS)
+LBV = (FPH, RFH)
+JMG = (QSK, QXN)
+LDJ = (DBN, TTK)
+XBP = (KQV, QGK)
+RTM = (DFS, DXT)
+VBH = (BMB, JGJ)
+LHP = (MMH, BPV)
+PMR = (MDQ, DGS)
+NNR = (JDF, NVP)
+GJL = (JDT, QLP)
+JST = (SBL, LNL)
+KML = (TXL, CRB)
+FBA = (KQG, JSC)
+KSF = (TLH, JBK)
+VFF = (CKT, GSP)
+PSG = (PQP, CBJ)
+LDZ = (JSC, KQG)
+DKN = (MVC, SPX)
+DRV = (DHD, GBJ)
+MJB = (HNM, LKH)
+MNG = (KXS, PRM)
+SNN = (VNQ, DQQ)
+GNH = (KHS, SLV)
+BJF = (HPD, XBL)
+LGP = (LHP, CKD)
+XVZ = (CVH, MRJ)
+GRP = (NHV, GBX)
+NGC = (FRJ, KVG)
+BJD = (QVR, RLF)
+FKL = (LRV, DSH)
+KSV = (VHK, VHK)
+XQK = (KPL, MDX)
+NRC = (DMT, GLC)
+VNH = (LQT, VVQ)
+CGL = (SBL, SBL)
+GVH = (NKD, XTK)
+DBJ = (LXQ, HKP)
+KVC = (PMX, XPR)
+NJP = (VXG, TTJ)
+VXG = (BQC, DNK)
+CLJ = (JVL, QRP)
+RFH = (VQL, NPJ)
+GFR = (KGB, GNM)
+KQV = (VFK, PKK)
+SQM = (GTJ, RKT)
+MQS = (MPN, HJC)
+BXV = (RJP, CLN)
+VSJ = (DKN, XDK)
+SHK = (XMV, RXM)
+GSP = (LDC, VPF)
+MSS = (VPS, HKF)
+SFM = (NVR, CQX)
+FMC = (BJF, SRS)
+DXS = (RMD, TLT)
+QHS = (CGM, GXT)
+DJP = (FDL, JHP)
+MPT = (PQF, DCB)
+LXQ = (PLS, PGK)
+RFD = (TTJ, VXG)
+JGJ = (HJS, TJT)
+XGN = (KVT, LQL)
+NBB = (LSX, XNR)
+CKD = (MMH, BPV)
+CTT = (CQX, NVR)
+CBJ = (RRG, KBD)
+CNG = (THV, QBK)
+BMD = (QPF, VHX)
+XLC = (BKL, SCZ)
+KQG = (CPT, VLL)
+KTJ = (KVC, VBM)
+JBG = (NJP, RFD)
+KVT = (NPT, GVS)
+QGP = (JVL, QRP)
+HFC = (THV, QBK)
+JDT = (HBS, RHL)
+MNF = (NRS, XVZ)
+GKR = (GTK, PCB)
+NVP = (NQQ, RRQ)
+MPQ = (GCS, KSF)
+PLS = (PRG, XQK)
+JDF = (NQQ, RRQ)
+CQD = (DBJ, VTV)
+LNP = (TPK, SCP)
+HQP = (XMV, RXM)
+RJM = (MJD, RPS)
+MQK = (FSL, CKH)
+KXS = (HBJ, HMP)
+CSX = (QCS, RKV)
+VCG = (LQL, KVT)
+NVJ = (JQG, GKD)
+NLB = (VLD, VFF)
+CQN = (NVP, JDF)
+PDL = (VTM, GBQ)
+SJM = (JNR, BGH)
+VTR = (HMK, RNS)
+QGS = (SQK, TPL)
+NFH = (XRH, DKD)
+TXQ = (GFL, PGH)
+GCJ = (XSL, BFB)
+RKT = (CQN, NNR)
+BFQ = (LBS, JLX)
+PKN = (FGD, TKG)
+XKP = (FDJ, BHH)
+QHX = (SPD, XCT)
+NKR = (GFR, KTV)
+GLQ = (FBM, KLD)
+PRR = (XSL, BFB)
+XLT = (HPB, MJJ)
+HRD = (QVP, VXH)
+SNL = (VSF, GTG)
+TBN = (XCS, LJX)
+RPS = (NFM, VNX)
+MKX = (XLG, SLT)
+NQC = (MPT, BLX)
+DKK = (FVQ, PFR)
+LCT = (TGK, PSH)
+XHV = (JSN, KFT)
+PRM = (HMP, HBJ)
+NQL = (BQD, TTN)
+HQV = (KVH, LBV)
+RKG = (HMK, RNS)
+LCL = (KQH, MKX)
+LMM = (PVJ, SXK)
+NCF = (XHV, FBS)
+NRS = (MRJ, CVH)
+RTK = (RJM, MJR)
+RFC = (NVJ, HNG)
+XXQ = (SXP, BJH)
+RPT = (NMV, VNV)
+QBR = (CTH, QKV)
+FXF = (VBM, KVC)
+CRB = (NQC, RXH)
+NQD = (BQN, RMJ)
+RKR = (KMQ, MGF)
+DSP = (GFL, PGH)
+DSH = (XTV, LVS)
+DMT = (QVN, PMS)
+VPS = (NNC, HKJ)
+JSC = (CPT, VLL)
+XKS = (DVT, DRH)
+TTV = (LKH, HNM)
+MJD = (VNX, NFM)
+SCZ = (SHQ, DLB)
+XVX = (CNG, HFC)
+KTV = (KGB, GNM)
+QHJ = (LSR, SSN)
+CQJ = (GPT, BMD)
+NMD = (TPK, SCP)
+DVB = (GSJ, GSJ)
+JMP = (MQP, RGQ)
+BSB = (BGC, KJC)
+CPT = (MRB, MHN)
+PQP = (RRG, KBD)
+RLG = (BJH, SXP)
+VQX = (XVR, JCB)
+XJN = (XRH, DKD)
+JHP = (QFT, MNG)
+KMB = (HRT, SJM)
+QSK = (PSG, CFJ)
+DKD = (VLF, JPT)
+NHV = (BGR, SDS)
+HXV = (XGQ, BSP)
+XXN = (DMT, GLC)
+VLM = (KMB, BTL)
+RLR = (DNR, LNB)
+PCH = (KQG, JSC)
+XRH = (VLF, JPT)
+SBL = (XLM, XLM)
+CRM = (JTJ, XKM)
+JSS = (BTS, LSV)
+CXM = (NMV, VNV)
+MLG = (HCT, HCT)
+JXH = (MVR, SDR)
+XBH = (XVF, STR)
+DXT = (VBN, JVK)
+JSN = (DTS, DJP)
+KLD = (MFK, PBD)
+KVH = (RFH, FPH)
+NJX = (GMV, VPQ)
+NRQ = (GKR, GMT)
+HXF = (DXS, QXR)
+DGS = (SNL, BVF)
+LJT = (RKR, QVK)
+JLX = (XGP, TKS)
+FCX = (PXP, GVH)
+VDX = (VBJ, TBR)
+VSF = (SPV, DDQ)
+VCX = (KTT, PPX)
+MMH = (MDM, FVS)
+MPB = (GBL, RRB)
+RLF = (TSM, DLN)
+RMJ = (BTQ, TBN)
+VJX = (QQP, HMV)
+XVF = (RFC, HXG)
+CTN = (VVV, TKM)
+QHD = (GBP, RLR)
+JGC = (JXH, QCQ)
+KPL = (FXF, KTJ)
+NGN = (MDH, VSJ)
+XPG = (MJB, TTV)
+MQP = (KTG, CQJ)
+JCB = (QHD, MVT)
+MNM = (RPT, CXM)
+RXH = (BLX, MPT)
+HHP = (GCJ, PRR)
+SLV = (JVD, TRF)
+HVT = (BJX, FND)
+MTD = (MMV, LNM)
+TTL = (QFH, LGP)
+LTV = (QCS, RKV)
+VXV = (TSX, HSM)
+TCM = (QHM, DHX)
+NBF = (LQT, VVQ)
+BTQ = (LJX, XCS)
+TKP = (KLD, FBM)
+LDC = (HSD, PJP)
+VHK = (NRS, NRS)
+NFM = (TMF, QFS)
+GTJ = (NNR, CQN)
+LSD = (QCK, BJD)
+HJV = (QBD, DGT)
+QBK = (MND, GJL)
+XNR = (MBF, SPN)
+HQB = (KXN, FJF)
+TNJ = (FDJ, BHH)
+TGK = (SQV, TLB)
+KMF = (VHK, MNF)
+JVK = (PDL, FFF)
+NSF = (VBJ, TBR)
+SCP = (QQR, PVV)
+XXP = (HHP, CDS)
+VHX = (NJX, KJF)
+VCJ = (JXH, QCQ)
+KJC = (KCS, SCR)
+XXT = (FJF, KXN)
+NNC = (VQD, NSR)
+VBM = (XPR, PMX)
+JTJ = (XDG, VHT)
+CNK = (CCX, MSS)
+FTF = (TTN, BQD)
+LKH = (SXJ, GMF)
+TLH = (CSR, VXV)
+GFF = (KML, QRX)
+LFR = (CLN, RJP)
+DTS = (FDL, JHP)
+TTN = (KTP, GFF)
+BTL = (HRT, SJM)
+HJS = (JCT, JMJ)
+HBJ = (JVR, GSF)
+SLF = (JDD, KJZ)
+CVH = (CNC, XLT)
+JGQ = (JGB, XKS)
+FGJ = (QFR, XVX)
+STQ = (XRQ, TCB)
+GCS = (JBK, TLH)
+FKK = (HVT, MPK)
+LJM = (DQM, XXG)
+BTS = (NMD, LNP)
+SVC = (NFP, QHX)
+VPF = (PJP, HSD)
+NPT = (NGC, FCK)
+TTK = (GBN, NRQ)
+XCT = (FNL, RSH)
+RRG = (TND, HCC)
+HMP = (GSF, JVR)
+TJV = (XXG, DQM)
+CTH = (CTT, SFM)
+TPK = (QQR, PVV)
+LSR = (PQH, LFT)
+XLM = (BKL, BKL)
+FGD = (VLM, LHT)
+GSF = (VTJ, HRD)
+PBN = (FGD, TKG)
+NMV = (NRC, XXN)
+CLN = (TPQ, CTX)
+TMF = (TSK, PTV)
+HPX = (FKC, PDT)
+GBN = (GMT, GKR)
+PCK = (PDX, HXV)
+TCB = (NCF, FJK)
+LJX = (NRH, PTN)
+QBD = (KVQ, GNH)
+CMC = (QBR, PBK)
+GBL = (HHR, GSC)
+SQN = (BJF, SRS)
+FCB = (QXR, DXS)
+GDJ = (XKS, JGB)
+PCB = (LCL, XHH)
+BPV = (MDM, FVS)
+PJD = (DVB, DVB)
+RHG = (MJR, RJM)
+DVT = (PKN, PBN)
+TFM = (QBR, PBK)
+HCC = (HQB, XXT)
+PGS = (DSX, MTV)
+TSR = (MQP, RGQ)
+KJF = (GMV, VPQ)
+GJS = (DKC, CKL)
+LNB = (QLK, DRT)
+PKK = (QPS, VJX)
+TKS = (RHG, RTK)
+QFS = (TSK, PTV)
+DGL = (RCK, XVJ)
+XPR = (MNM, GTR)
+TDH = (FKL, CFC)
+PDF = (XBP, CXB)
+DFN = (RXF, GRP)
+JVR = (HRD, VTJ)
+LBS = (TKS, XGP)
+QCQ = (MVR, SDR)
+MND = (JDT, QLP)
+PFR = (LJM, TJV)
+QLK = (MPB, PSV)
+CFC = (LRV, DSH)
+PMX = (GTR, MNM)
+CGF = (PMR, RPV)
+MVG = (LTH, KFN)
+NLK = (FBR, JPM)
+LFB = (SCS, PGS)
+BVF = (VSF, GTG)
+MDQ = (BVF, SNL)
+CQF = (PMR, RPV)
+FND = (LRX, PNM)
+MRJ = (CNC, XLT)
+HSD = (XBR, TCM)
+HLF = (CNP, GQH)
+RRQ = (CMC, TFM)
+CLM = (TKM, VVV)
+RLB = (TTV, MJB)
+NDS = (RQX, CQD) \ No newline at end of file
diff --git a/aoc2023/src/day9/input.txt b/aoc2023/src/day9/input.txt
new file mode 100644
index 0000000..6e0678f
--- /dev/null
+++ b/aoc2023/src/day9/input.txt
@@ -0,0 +1,200 @@
+16 22 27 23 4 -16 23 267 1025 2943 7407 17445 39670 88339 193607 417868 887273 1851158 3792224 7628687 15083115
+12 27 53 97 184 369 757 1550 3165 6502 13489 28103 58181 118520 236055 458342 867210 1600341 2884757 5087813 8793398
+3 9 23 45 75 113 159 213 275 345 423 509 603 705 815 933 1059 1193 1335 1485 1643
+14 21 42 87 173 334 631 1162 2072 3563 5904 9441 14607 21932 32053 45724 63826 87377 117542 155643 203169
+6 13 20 27 34 41 48 55 62 69 76 83 90 97 104 111 118 125 132 139 146
+18 28 38 48 58 68 78 88 98 108 118 128 138 148 158 168 178 188 198 208 218
+21 33 40 47 73 158 375 850 1793 3543 6630 11857 20405 33964 54893 86412 132829 199805 294660 426723 607729
+5 11 28 62 114 176 227 229 123 -175 -778 -1832 -3520 -6066 -9739 -14857 -21791 -30969 -42880 -58078 -77186
+24 40 75 158 329 650 1234 2297 4245 7835 14509 27104 51294 98315 189749 365429 696074 1303683 2396426 4333544 7754453
+18 23 29 46 96 212 448 922 1929 4181 9250 20305 43249 88396 172934 324721 588708 1038939 1802431 3107544 5380614
+23 48 93 172 303 512 850 1439 2577 4950 10022 20709 42513 85461 167621 322006 611043 1157808 2213227 4297234 8485467
+-5 1 16 41 89 207 507 1216 2767 5970 12327 24602 47877 91653 174402 333999 651945 1308548 2704118 5713694 12198267
+6 29 72 158 337 698 1389 2653 4895 8818 15726 28221 51759 97922 190866 379323 758008 1504863 2945432 5665084 10707897
+9 12 14 16 18 23 61 248 912 2857 7918 20117 47998 109127 238298 501654 1019615 2002014 3798866 6969266 12368366
+17 22 22 7 -38 -133 -303 -578 -993 -1588 -2408 -3503 -4928 -6743 -9013 -11808 -15203 -19278 -24118 -29813 -36458
+-2 4 18 55 139 307 619 1172 2109 3609 5862 9109 14010 22956 43541 96348 230584 553042 1278506 2813195 5887325
+8 15 28 69 174 408 898 1887 3825 7548 14661 28355 55092 107964 213209 422581 836414 1645965 3210142 6193077 11808762
+16 42 93 189 363 674 1225 2187 3843 6689 11662 20608 37156 68227 126480 234080 428266 769300 1351491 2318111 3881153
+22 28 29 28 44 131 412 1147 2869 6647 14589 30812 63325 127656 253684 498111 966448 1850438 3489669 6469940 11775962
+10 22 64 147 279 478 797 1361 2416 4390 7966 14167 24453 40830 65971 103349 157382 233590 338764 481147 670627
+26 44 80 147 257 416 626 905 1352 2314 4756 10993 26015 59722 130486 270571 534070 1008160 1828632 3200823 5427261
+10 13 25 59 130 257 465 787 1266 1957 2929 4267 6074 8473 11609 15651 20794 27261 35305 45211 57298
+22 34 53 80 110 130 129 142 361 1361 4516 12738 31795 72709 156208 321132 640567 1253344 2426426 4679304 9031095
+-3 3 14 32 60 112 238 564 1347 3045 6402 12548 23114 40362 67330 107992 167433 252039 369702 530040 744632
+9 6 1 -6 -15 -26 -39 -54 -71 -90 -111 -134 -159 -186 -215 -246 -279 -314 -351 -390 -431
+8 19 30 41 52 63 74 85 96 107 118 129 140 151 162 173 184 195 206 217 228
+12 28 56 112 219 400 680 1122 1935 3705 7813 17117 36988 76803 152011 286901 518214 899754 1508166 2450062 3870689
+4 18 45 100 211 419 778 1355 2230 3496 5259 7638 10765 14785 19856 26149 33848 43150 54265 67416 82839
+14 27 62 122 200 276 326 367 589 1672 5468 16376 44007 108213 248366 540095 1124752 2259977 4404234 8354542 15465362
+10 22 40 63 103 210 507 1241 2865 6190 12701 25249 49587 97767 195548 398210 823495 1718635 3594121 7486884 15473014
+14 34 81 182 390 802 1584 3006 5499 9763 16982 29248 50393 87661 155200 281530 525422 1008672 1981041 3943806 7877282
+12 6 3 23 101 286 644 1284 2444 4698 9375 19317 40145 82250 163780 314954 584100 1045886 1812291 3046947 4983573
+13 21 32 52 86 138 211 307 427 571 738 926 1132 1352 1581 1813 2041 2257 2452 2616 2738
+17 35 58 79 89 86 96 217 705 2144 5802 14399 33741 76089 166928 358407 755996 1571412 3227213 6560698 13212768
+17 31 59 122 252 488 875 1475 2402 3896 6454 11039 19391 34467 61040 106490 181823 302957 492317 780784 1210046
+11 13 19 31 63 168 488 1351 3457 8223 18396 39097 79555 156016 296889 552619 1016132 1867206 3470206 6587672 12837496
+16 29 54 116 265 600 1300 2668 5219 9890 18523 34882 66641 129080 251748 490245 946750 1805263 3391104 6269484 11405501
+14 27 57 121 242 458 839 1513 2706 4807 8477 14831 25734 44266 75427 127171 211878 348395 564801 902077 1418890
+7 20 34 49 65 82 100 119 139 160 182 205 229 254 280 307 335 364 394 425 457
+1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101
+11 27 54 101 191 376 755 1502 2915 5494 10051 17860 30889 52245 87140 144991 243747 418245 735396 1320359 2399651
+2 8 29 83 199 423 835 1581 2927 5359 9789 17981 33374 62532 117469 219074 401880 720802 1262037 2164843 3671777
+6 24 54 96 150 216 294 384 486 600 726 864 1014 1176 1350 1536 1734 1944 2166 2400 2646
+10 19 51 124 260 486 847 1434 2430 4183 7326 12972 22998 40360 69185 113940 176032 244249 271543 122978 -535002
+-2 -4 -14 -20 14 157 520 1272 2677 5175 9538 17144 30453 53895 95688 171741 313968 587314 1122914 2179488 4251816
+10 2 -8 -10 16 111 367 983 2360 5278 11264 23369 47724 96431 192545 378084 726118 1357970 2466328 4344512 7421136
+9 22 62 142 278 503 886 1552 2699 4608 7642 12230 18832 27881 39698 54376 71629 90602 109638 125998 135530
+-2 -1 13 46 97 157 212 250 272 307 431 790 1627 3313 6382 11570 19858 32519 51169 77822 114949
+18 43 87 167 324 645 1288 2508 4685 8358 14272 23448 37289 57738 87507 130399 191748 279005 402501 576421 820026
+-8 -3 21 87 247 597 1292 2561 4722 8197 13527 21387 32601 48157 69222 97157 133532 180141 239017 312447 402987
+1 15 44 102 209 386 650 1009 1457 1969 2496 2960 3249 3212 2654 1331 -1055 -4861 -10508 -18486 -29359
+5 1 -2 6 59 235 682 1661 3639 7499 14980 29518 57729 111857 213604 399865 731009 1302477 2260610 3823774 6310015
+1 9 37 102 234 477 887 1529 2484 3904 6221 10771 21422 48445 117084 285457 680175 1564375 3463249 7388968 15233734
+-3 -3 -1 11 59 207 588 1446 3189 6453 12177 21689 36803 59927 94182 143532 212925 308445 437475 608871 833147
+10 8 4 -1 1 26 99 259 588 1312 3062 7435 18059 42442 94973 201543 406366 781704 1441336 2558759 4391269
+10 15 18 27 59 146 351 801 1756 3756 7920 16506 33869 67961 132485 249722 453870 794437 1338782 2172261 3393567
+7 15 41 104 240 511 1006 1830 3083 4847 7237 10652 16512 29023 58918 130730 296023 656207 1400169 2864048 5623160
+-8 -4 15 66 176 382 731 1280 2096 3256 4847 6966 9720 13226 17611 23012 29576 37460 46831 57866 70752
+11 15 15 11 3 -9 -25 -45 -69 -97 -129 -165 -205 -249 -297 -349 -405 -465 -529 -597 -669
+-1 2 8 24 76 213 509 1071 2071 3838 7075 13309 25742 50751 100388 196360 376127 701946 1273914 2248326 3862968
+11 12 10 -4 -30 -41 52 467 1667 4541 10659 22594 44276 81300 141049 232411 364763 545762 777320 1048944 1327390
+9 11 12 20 63 215 648 1733 4223 9564 20404 41417 80649 151761 277849 498056 879093 1535245 2662704 4597458 7910851
+21 22 23 43 114 293 701 1602 3535 7522 15407 30447 58395 109537 202601 372448 685608 1272236 2392115 4569768 8866201
+17 27 37 47 57 67 77 87 97 107 117 127 137 147 157 167 177 187 197 207 217
+18 42 72 103 130 150 170 224 408 956 2402 5903 13836 30828 65432 132724 258166 483158 872788 1526383 2591566
+23 30 36 41 45 48 50 51 51 50 48 45 41 36 30 23 15 6 -4 -15 -27
+14 31 52 83 148 308 690 1526 3202 6317 11752 20749 35000 56746 88886 135096 199958 289099 409340 568855 777340
+4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64
+14 26 44 76 143 283 574 1197 2563 5538 11840 24799 50942 103413 209274 424645 865170 1765883 3597017 7286172 14643193
+12 27 49 69 87 136 330 950 2594 6451 14824 32143 66919 135472 268945 526276 1017696 1946291 3679643 6870089 12651367
+11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111
+10 35 74 146 282 527 958 1744 3300 6630 14020 30337 65320 137420 279964 550689 1046022 1921877 3423206 5925084 9988734
+20 29 40 59 108 247 607 1436 3177 6629 13289 26035 50387 96675 183550 343396 630338 1131693 1983878 3393971 5668318
+8 24 59 134 284 569 1103 2113 4045 7744 14750 27772 51427 93361 165904 288451 490806 817776 1335357 2138914 3363822
+11 25 55 105 179 281 415 585 795 1049 1351 1705 2115 2585 3119 3721 4395 5145 5975 6889 7891
+19 37 74 159 334 661 1245 2294 4257 8117 15987 32302 66195 136227 279739 571067 1156243 2317357 4588524 8958785 17217096
+-2 9 41 103 219 443 870 1652 3057 5656 10790 21562 44740 94217 197246 406018 820326 1634301 3236137 6423499 12866391
+5 -1 -8 -9 10 70 199 432 811 1385 2210 3349 4872 6856 9385 12550 16449 21187 26876 33635 41590
+19 32 45 58 71 84 97 110 123 136 149 162 175 188 201 214 227 240 253 266 279
+22 37 55 71 94 167 396 1005 2447 5608 12151 25096 49895 96676 185249 356351 696284 1389007 2822275 5796409 11921644
+22 47 92 163 266 410 610 889 1282 1854 2764 4460 8230 17669 42342 106334 266942 653145 1540604 3491025 7600370
+23 38 73 146 277 488 805 1274 2012 3332 6035 12106 26379 60395 140880 327309 746281 1655398 3556625 7389446 14848405
+10 34 81 160 274 417 573 715 811 876 1179 2852 9421 30324 88549 236536 588096 1380274 3089189 6639788 13773628
+17 32 52 70 76 73 108 318 991 2642 6104 12634 24034 42787 72208 116610 181485 273700 401708 575774 808216
+-4 7 32 78 155 279 498 962 2061 4658 10451 22528 46285 91178 174513 330071 627521 1214340 2401733 4831449 9782898
+-1 1 -1 -2 13 71 214 503 1023 1889 3253 5312 8317 12583 18500 26545 37295 51441 69803 93346 123197
+14 25 55 119 234 420 706 1143 1844 3111 5790 12143 27772 65506 152698 344108 743534 1538777 3056905 5851463 10843458
+-7 -7 2 25 72 160 317 595 1112 2172 4561 10190 23357 53033 116746 246846 500187 972563 1819588 3286119 5746790
+24 51 91 144 210 289 381 486 604 735 879 1036 1206 1389 1585 1794 2016 2251 2499 2760 3034
+-6 -8 -7 -4 9 70 282 871 2293 5443 12063 25532 52395 105321 208785 409850 798384 1544682 2969297 5672672 10775633
+18 38 74 128 197 273 343 389 388 312 128 -202 -721 -1477 -2523 -3917 -5722 -8006 -10842 -14308 -18487
+14 14 6 -15 -54 -116 -206 -329 -490 -694 -946 -1251 -1614 -2040 -2534 -3101 -3746 -4474 -5290 -6199 -7206
+0 4 22 78 215 499 1023 1911 3322 5454 8548 12892 18825 26741 37093 50397 67236 88264 114210 145882 184171
+15 19 27 58 141 316 650 1285 2551 5196 10802 22466 45823 90469 171801 313223 548567 924441 1502037 2357706 3581329
+28 49 76 114 185 353 769 1757 3977 8715 18361 37142 72176 134903 242928 422277 710018 1157133 1831442 2820274 4232451
+2 -5 0 35 133 356 819 1728 3430 6476 11736 20729 36639 67155 131593 277209 613962 1384465 3098432 6781691 14423617
+-2 7 41 121 269 517 931 1662 3062 5945 12131 25493 53858 112344 229132 455405 882418 1670639 3098937 5646285 10124879
+15 19 18 9 -6 -15 9 113 369 879 1780 3249 5508 8829 13539 20025 28739 40203 55014 73849 97470
+9 14 33 89 229 533 1128 2215 4117 7356 12767 21657 36017 58795 94238 148311 229201 347914 518973 761225 1098765
+8 23 51 104 202 386 739 1423 2763 5438 10883 22095 45241 92932 191019 392729 807586 1658885 3393971 6888230 13809204
+6 3 10 41 110 231 418 685 1046 1515 2106 2833 3710 4751 5970 7381 8998 10835 12906 15225 17806
+12 12 16 37 101 264 650 1525 3438 7497 15913 33051 67399 135147 266525 516779 984800 1844138 3393654 6138665 10918457
+9 30 68 138 276 551 1072 2001 3595 6307 10985 19236 34096 61304 111765 206261 384197 719228 1346090 2504950 4612204
+23 38 66 121 224 409 731 1285 2251 3984 7170 13069 23864 43131 76439 132081 221927 362378 575386 889489 1340792
+16 28 40 52 64 76 88 100 112 124 136 148 160 172 184 196 208 220 232 244 256
+17 30 61 119 219 397 747 1501 3179 6842 14487 29629 58121 109269 197305 343287 577501 942446 1496489 2318283 3512047
+-1 5 14 37 100 253 588 1271 2598 5105 9816 18826 36619 72851 147828 302628 616809 1237973 2429186 4642459 8629254
+16 36 76 164 342 666 1206 2046 3284 5032 7416 10576 14666 19854 26322 34266 43896 55436 69124 85212 103966
+-5 -3 12 63 182 411 809 1475 2612 4686 8786 17372 35707 74388 153464 308525 598601 1114243 1980956 3346921 5332708
+14 26 38 50 62 74 86 98 110 122 134 146 158 170 182 194 206 218 230 242 254
+2 -4 -19 -52 -115 -221 -369 -502 -417 401 3053 9640 23844 51688 102447 189584 331368 550394 870413 1307468 1850007
+21 43 82 139 220 346 563 952 1639 2805 4696 7633 12022 18364 27265 39446 55753 77167 104814 139975 184096
+-8 -16 -17 2 54 155 326 590 966 1484 2301 4109 9224 24092 64560 166325 404748 930980 2035275 4253332 8536722
+-2 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38
+12 33 69 137 269 529 1047 2087 4183 8402 16827 33411 65487 126554 241758 459276 874624 1682767 3288727 6538653 13194051
+5 11 36 85 167 311 593 1176 2363 4661 8852 16065 27841 46181 73565 112928 167577 241031 336764 457829 606339
+5 0 6 43 134 309 628 1231 2423 4814 9565 18848 36718 70725 134771 253948 472385 865492 1558424 2753105 4766758
+20 31 42 53 64 75 86 97 108 119 130 141 152 163 174 185 196 207 218 229 240
+17 34 57 94 167 331 710 1554 3321 6788 13195 24426 43231 73493 120544 191534 295857 445638 656285 947110 1342023
+19 22 16 1 -16 -13 61 313 960 2430 5532 11711 23385 44323 79959 137439 225057 350542 517400 718181 923118
+12 20 36 60 92 132 180 236 300 372 452 540 636 740 852 972 1100 1236 1380 1532 1692
+15 28 66 154 345 743 1533 3025 5728 10495 18847 33738 61349 115157 224805 454707 941713 1968938 4106276 8470690 17196453
+26 54 104 181 285 412 556 719 953 1484 3011 7356 18816 46948 112339 258637 577588 1260474 2701490 5699779 11842279
+-5 0 13 48 130 307 671 1382 2697 5034 9163 16738 31609 62754 130392 278202 597329 1273687 2682530 5580428 11497888
+8 23 49 86 133 194 288 465 841 1695 3749 8922 22170 55570 136666 324373 737550 1603839 3339673 6676646 12854891
+7 18 29 40 51 62 73 84 95 106 117 128 139 150 161 172 183 194 205 216 227
+10 24 44 69 95 111 110 139 432 1714 5858 17254 45544 110822 253017 547981 1133786 2251864 4308844 7966159 14265585
+-5 -2 6 18 42 106 277 693 1613 3490 7072 13536 24660 43038 72343 117643 185775 285782 429418 631726 911694
+25 49 82 120 164 225 336 574 1090 2143 4134 7640 13481 22991 39079 69707 137760 306259 738049 1829516 4498299
+28 39 59 115 256 569 1203 2401 4540 8179 14115 23447 37648 58645 88907 131541 190396 270175 376555 516315 697472
+11 22 42 82 162 312 578 1053 1983 4058 9103 21549 51304 118974 264819 563384 1146435 2237670 4203680 7626820 13407030
+13 32 67 140 285 548 987 1672 2685 4120 6083 8692 12077 16380 21755 28368 36397 46032 57475 70940 86653
+16 33 54 83 134 242 480 986 2021 4120 8486 17955 39204 87515 196569 437797 957362 2044827 4257394 8639335 17100774
+9 16 28 45 77 154 347 816 1911 4366 9654 20646 42906 87373 176023 353702 712286 1438821 2909549 5870876 11783816
+8 6 12 48 156 403 877 1669 2836 4346 6024 7554 8652 9615 12577 23971 58912 148486 351260 770724 1580844
+10 34 83 183 372 704 1257 2145 3534 5662 8863 13595 20472 30300 44117 63237 89298 124314 170731 231487 310076
+8 20 36 53 68 78 80 71 48 8 -52 -135 -244 -382 -552 -757 -1000 -1284 -1612 -1987 -2412
+8 24 64 148 311 624 1225 2369 4520 8531 15994 29900 55846 104185 193758 358183 656084 1187050 2115368 3703412 6355581
+5 15 30 49 71 95 120 145 169 191 210 225 235 239 236 225 205 175 134 81 15
+20 50 100 187 348 653 1224 2260 4071 7142 12288 21029 36419 64717 118496 222024 419946 790371 1463632 2649684 4685450
+19 31 52 89 164 327 670 1344 2599 4900 9234 17847 35889 74868 159497 340530 717567 1477557 2956756 5736005 10781030
+18 39 72 138 278 564 1112 2106 3859 6958 12565 22975 42565 79305 147043 268821 481528 842249 1436726 2390408 3882632
+4 10 15 19 22 24 25 25 24 22 19 15 10 4 -3 -11 -20 -30 -41 -53 -66
+17 26 56 136 308 628 1180 2113 3711 6506 11444 20114 35050 60116 100984 165715 265453 415242 634976 950492 1394816
+25 37 60 118 244 489 953 1860 3725 7710 16362 35110 75232 159574 333227 682794 1369993 2688371 5156120 9663710 17702660
+4 8 33 90 191 348 577 927 1566 2968 6257 13776 29961 62612 124665 236581 429480 749160 1261153 2056982 3261795
+13 25 58 131 276 546 1035 1922 3551 6559 12064 21925 39086 68016 115257 190092 305345 478325 731926 1095895 1608280
+8 7 17 55 139 281 476 687 826 731 139 -1345 -4283 -9443 -17842 -30793 -49956 -77393 -115627 -167705 -237265
+5 22 61 137 265 460 737 1111 1597 2210 2965 3877 4961 6232 7705 9395 11317 13486 15917 18625 21625
+15 14 17 28 53 111 267 709 1908 4922 11933 27153 58340 119414 235217 450591 848077 1582290 2945281 5487158 10231495
+2 9 28 68 137 258 498 1015 2135 4478 9159 18097 34472 63377 112719 194430 326056 532799 850094 1326810 2029171
+22 34 46 53 55 67 142 416 1181 3001 6930 15013 31533 66065 140600 305315 671836 1480416 3230374 6924401 14511151
+18 34 63 125 258 526 1027 1901 3338 5586 8959 13845 20714 30126 42739 59317 80738 108002 142239 184717 236850
+27 52 102 187 321 526 843 1369 2346 4335 8515 17154 34306 66795 125554 227394 397285 671238 1099884 1752853 2724063
+23 38 55 78 115 182 314 595 1239 2789 6549 15431 35510 78803 168285 347274 697739 1377040 2692175 5248108 10237257
+25 38 63 120 243 496 1004 2001 3903 7429 13817 25215 45369 80781 142570 249338 431421 736992 1240579 2054666 3345159
+28 41 54 67 80 93 106 119 132 145 158 171 184 197 210 223 236 249 262 275 288
+-6 0 15 44 101 212 418 778 1372 2304 3705 5736 8591 12500 17732 24598 33454 44704 58803 76260 97641
+4 28 65 121 220 415 796 1496 2709 4761 8325 14968 28410 57238 120465 258450 553719 1170131 2426846 4940384 9902961
+6 7 15 36 76 141 237 370 546 771 1051 1392 1800 2281 2841 3486 4222 5055 5991 7036 8196
+24 33 45 62 77 83 95 191 590 1804 4931 12217 28162 61797 131542 275661 574402 1195504 2484736 5141196 10551151
+23 41 68 104 149 203 266 338 419 509 608 716 833 959 1094 1238 1391 1553 1724 1904 2093
+22 42 68 105 161 238 323 380 347 146 -277 -830 -906 1697 13721 53857 170028 477110 1234650 2999191 6910095
+-9 -1 22 61 119 200 304 418 503 477 194 -581 -2201 -5170 -10180 -18152 -30281 -48085 -73458 -108727 -156713
+11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111
+7 13 33 88 211 463 966 1970 3984 8020 16029 31654 61492 117150 218504 398730 711877 1243999 2129161 3571988 5878841
+26 54 107 191 316 512 855 1506 2775 5254 10135 19972 40418 83980 177798 379260 806629 1698071 3523848 7197074 14465457
+7 6 4 13 65 221 583 1306 2603 4745 8094 13284 21806 37503 69932 141398 301131 653436 1413420 3017283 6339755
+8 13 26 47 76 113 158 211 272 341 418 503 596 697 806 923 1048 1181 1322 1471 1628
+14 19 31 61 140 340 804 1785 3694 7157 13081 22729 37804 60542 93814 141237 207294 297463 418355 577861 785308
+18 25 41 74 132 223 355 536 774 1077 1453 1910 2456 3099 3847 4708 5690 6801 8049 9442 10988
+13 39 87 171 318 573 1009 1765 3152 5886 11539 23368 47825 97318 195247 385056 746111 1420737 2658839 4889321 8831144
+10 8 14 34 74 141 255 482 1006 2285 5397 12804 30003 69026 155797 345601 755687 1633870 3501675 7448656 15726061
+6 11 25 69 172 364 663 1064 1547 2130 3002 4780 8943 18505 38998 79845 156212 291437 520143 892151 1477318
+27 50 84 135 218 372 697 1431 3090 6700 14160 28802 56287 106157 194788 351446 631221 1142968 2109356 3994435 7771240
+9 31 66 114 175 249 336 436 549 675 814 966 1131 1309 1500 1704 1921 2151 2394 2650 2919
+8 7 7 8 10 22 98 426 1513 4538 11998 28875 64756 137733 281650 559617 1089152 2088679 3962843 7457584 13938920
+-5 -7 -9 -11 -2 54 247 779 2078 5020 11348 24426 50527 100927 195162 365902 666005 1178435 2029861 3408899 5590116
+10 16 34 74 147 274 521 1081 2432 5608 12628 27136 55313 107130 198019 351047 599686 991280 1591318 2488630 3801631
+9 8 21 66 172 391 830 1721 3552 7290 14748 29193 56376 106318 196477 357514 644161 1156577 2084086 3797672 7049008
+14 40 88 183 380 785 1580 3064 5738 10495 19048 34867 65134 124613 242953 477946 938949 1827706 3509661 6640837 12400447
+15 25 39 64 129 294 653 1337 2538 4600 8260 15178 28989 57277 115164 231711 461221 903259 1738853 3298396 6194405
+9 6 6 11 31 107 353 1029 2669 6320 14014 29709 61115 123102 243845 475664 914050 1731530 3239870 6009120 11104366
+26 37 48 75 147 313 670 1432 3073 6602 14068 29452 60189 119691 231437 435496 798808 1431239 2510444 4320037 7307627
+3 -1 -10 -24 -43 -67 -96 -130 -169 -213 -262 -316 -375 -439 -508 -582 -661 -745 -834 -928 -1027
+18 43 89 169 300 508 853 1501 2897 6147 13824 31625 71718 159389 345977 733436 1519704 3080095 6109095 11860445 22542764
+17 38 63 88 109 122 123 108 73 14 -73 -192 -347 -542 -781 -1068 -1407 -1802 -2257 -2776 -3363
+3 2 10 40 110 248 497 920 1605 2670 4268 6592 9880 14420 20555 28688 39287 52890 70110 91640 118258
+21 37 57 85 131 212 354 601 1040 1854 3418 6456 12280 23135 42677 76614 133543 226019 371895 595975 932025
+14 28 56 121 265 567 1177 2386 4774 9508 18898 37365 73056 140538 265518 493797 909482 1673256 3102528 5835085 11151679
+13 31 73 156 302 533 869 1334 1975 2899 4333 6712 10800 17849 29801 49538 81185 130471 205153 315508 474898
+-1 -10 -9 16 78 189 360 601 921 1328 1829 2430 3136 3951 4878 5919 7075 8346 9731 11228 12834
+1 10 33 77 148 252 400 620 988 1712 3344 7262 16674 38591 87590 192932 412066 856321 1739510 3468242 6804651
+2 19 60 137 265 461 749 1184 1908 3251 5909 11312 22519 46478 99470 219319 490975 1097216 2415107 5194716 10885594
+7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13
+13 24 44 89 197 451 1016 2204 4587 9194 17866 33915 63351 117117 215018 392358 710721 1274860 2258304 3941069 6763777
+1 -4 1 26 80 183 394 857 1858 3876 7615 14048 24625 42043 72406 130287 249223 501620 1034021 2126310 4286814
+7 20 36 46 41 20 1 35 223 736 1838 3912 7489 13280 22211 35461 54503 81148 117592 166466 230889
+16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96
+-1 3 12 46 137 336 738 1542 3172 6494 13173 26223 50812 95393 173241 304485 518733 858397 1382834 2173428 3339747 \ No newline at end of file