pico-8 cartridge // http://www.pico-8.com
version 41
__lua__

local input = split(
  [[7jlncfksix7rjgrpglmn9
vcgkgxninerqjltdbhqzzpd4nine23
fx3
8nrbjbpjpnineseven
7qlfhcsnxn7fpfhjcgr6eightsevenjlpchjtzpztwo
28rzgskgk94ninefive
zdpxcql1eight5
8two5six37
9khfphjl71trppsrtwo
lxthkgbbf2jdcssfiveqksvbqvm8four4
seven9tjcgztctxzzttct
onetljcfh9fivesvgcqnklz9four
4mptgcnzmvvsevenzmjjzhndzdvxmz59bm
1hrqthmr
7eightqmfmsn
jkgdnpzjkzzceighttklsfiveqxgsvxdq4
hdk28lqhhttjz6one2
2five524
363mtk
qlmtpch9eightlzddxs7one
one6five1hxphtl687rllvb
31gdnsxtpnn
sqvbcqlnjhk135
eightgcdszrsghmmfsevendr2844
eightthreecdpccfj7
ljfgt9kvnine175kpnrbttktktf
zjfeightfive9nine44seven4
sixshbrtr4nmjr
3two54
26sixbhmmgdcl
drxfnbsdzf3gnxbtmmggvkxrsevenbbzdfxnrdnkfivefive
two8591mrvchg4
3jjhfzlnklpvvfcnsjbdmgvlfkeight2snxrkzzsx
ztwo79onesix56seven
threeeightrhlxptmtwofivenfourthree3
fbhcqcttgxlrstcqeight4dbfjp
prsevenfournineglccpgssix7
hzprzdvbsxzllgvttworstxtwodstxbtjnzm6
99sevenfive
fdvnvc2
vmpnpqg32llcxpbzcxqvseven
dc9fgvrvsqqhlj2nq97three
four77twothreeonenine9
3kfkfour
xfg58six8cjtvmrgvsq5l
gmfxvhftld2hbmmprpppzchcqmxninethreethree3mmplrvbtkf
3fourqndl6
rj6ninenzkbktfqsc2
9konehdmllc
mneightzzqvdm14
8oneseventlrsrzflccrbv
9vvvgqdkrckjlzcfsbdgrqrhhtbb7fnhcxzmk9nine7
825ngddfhpfrsl6
mc6tjxxll9seven
fxbgccqmmh2
five7three4vmxjlqcnc3
9mninehkmlpcxqnfkqfbg6six3
3onefourrv1ninesixfour8
fourtwosdtz817fivevjvlzr
seventhvxk1fournqqqfjrvdvbpkvd
v733rklzvnslkonefive6zbvq
178ncllbfkkh4eightwoq
glbxfjhskzbseven6mjzlxccfive3
fptwoneonefivefive2ztxpndjdq2
lxzhsgqkx5mjxtrmbkdtfeightsrchzmq6
1nngc2338ninedjkvszdmnjrl
five6six7
bcpxbcbssbtmdfninefivesevendtm9eighthxtvxb
mzdttqmfpssevensixeight3twoone4
rrtzlhkgrgtmrvlcthreeonefour5
75threeeight4
3ttcjsdrj6one91t
3twofgdpfqxxp
seven3gjslxpltpbonemt
82jcvqkrgzkx8three8rmszgdj4
ctwone41fnjksbxb1mxxzznsvg35fivesix
four7bzfeight3one
heightwo24cxs
fdtwone8sevenfour37
1sevenmdmlrgmqnnth1mrone
7nqxzdrblffcdm22six
5ttpzlv
zhqjlfive3
jvzpgppblkb6
nine77lmfour
kqnvgtkgphxcxsixfoursix2
pjjdlnineltbcknfqvhj8tworbkqhdcp
nine65fiveeightjmeight
j1sptkfhsczt
4czpqqglpc41bzkss1
qd28j
three1fourfourm
four5seven4twodvmzzdtn
zj4
dzzrdkjjdxspfrjsonefive8brrzlrjvzfour
zrjzfxxddn66
fourrnsphsdzmv9xznt6seven
56eightcbhkmjfourone
fivejzlbvqzb3sixsix
fiveghfclksgqffdpb7
cmmplbcnml36threetrxnhrrdonelmspsbhfd9twonenn
ccxrlmzrreightone9three9
zg6four1eight
1ngv
bfhptfjzlgkxtftwo7gthree
txrpbzgjzg272three9jlstdb8
3seven6twofxvxdlcqj33
six3eightjrdxgkrkm5five
one67one3
gnfhhkffqfctxmvznmftwo34gjsrpxlv43
five6zjdjpptnthreefour7sevenqfjlpshg
onesevenninesvnnrvxxeightrdbvsbdnzgtmlmf1
2six8seven
3eightjrpqdrtwoxjvmgzpbffjnfdps9
tptlcldftc3
lcpqlbjfgmhkjpkhc4eight9ninesixsixseven
eightxjfqqtxnsbsnrdxdjv8six79
tvkthbbrr8five
seven35threerrkdqjgps58two
5dln1rqqgdjlcmmrvm2pmhvhcxhfsbxkfqngp5
sixnpvbq36514one
mxdvxfgdfzmkjcrtl2
onejv7lxmbrbzjsthreesevenninesm
threehbhnm8nine
bvhgqz6
9two89sixfxjz37
8xninepvggctk85fivefkj
8sixdjndzzzrkk
five61oneightr
cmthreesixeight7jlvdvmdjfzbv3
9two1onefour1clxjonetwo
9sixtzphqltmeightlbrhjone1ktrvjldff6
five68eightfourqpfcxftzlxrhgdcvpd
nxvdtfkltwozzl72fourhzxtqjf1
91fiveeightthree65twoneh
3eight6ninexqqgxzxfgmsixseveneightfqk
dlpsfmsthree2zgfpdnftvfqgsgr
4kggfpxg8jpxzdqsixeight
fivefourtwo923
z3gx
six4prlsp84tgvc
1foursrznv62k
vmzr829nkxtlf
3dzsx2two7sixfivebkktgfbzdt
fourpzpmvxc2zvvrhrbhf
frpddtknqjxpqqzhdnfour9sixdqjbqxh
89sevengkbeight6mn
two7jcpnxhbtmhtwo39twoone
cvdqlfkrs821fourrrgnmm
6onefhnnbrzgx7fourxcj
seveneighthfr6rz
9vvqlpnzbxfct8
two8three2fpseveneight
2three75three2
znvbrbrqlfive8
lnfjqfkk8
14tvvmdlntrv6three
5twor2chtvj
threetwomgrcfivefive7
five4qbvxthrfxdkjkk
sixthreethree5scmqrfq4vf3
rjsljnqcrttbpfhfxbfourone4
threeseventwoseven87dnmqjbbxfoneighttfz
seven4four9eightxqlsixthreeone
1ninesix43bmsttggvzn14
seven1sixbmnxmz
grqhlkrcdzbhstgtvpclvtphph4twoseven
fgfprscb27pzfvvblxhkvonefive
five77fivethreefive3vddgfngng
13nllfsevenfour6four
threenineeightfour173three
fourqvsbxxzmfh2hhcjxsrkz
4jdtxgltkkkvlnhrztwofxppsdlcqztwo3gdlctj
5four334rvfour9
551threenine
eightonenineeight8
qmjqmjvvfkdbnjgkrqh8two
sevenjzqnv32lldmr5one
6five8fivefour
ljvhqqvqxqsix1367
two6kvjtwonenzf
2p5chjdcseven9
lnrrrkkdsvfhkl9vfqfgnvonegtwo6
twoseven4lhhpcvthree4tkrone
8hllnnmpm3rjxndcmpt9jfjqng
qbnlgqeight2csvjshglqzmgkqqxqzq95
two2nine
rrpffkq15foureighttwo2
five3ninetpx5fmrzsqvfzq
mrqhcpgvblhvskv5pdsdzzfzfsix
two7fvmhvseventwo7
3sixone94three8fdplbm2
loneightseveng79
fourone7
zvgjt1
xpgbfghsmj2six8eight8mzlnvmv7
grjtwo48
jhcgjlgxt1seven1
5dhtppxrxcsbjsm37
cbhmtp56xbqzppjjfivezhtxxvkrzsix
hctwonelcninefourfive2
four4rcxpkzbeight95xxdb3
fivejlplgzflone963two
trgninefourtwo6five
66fournine535foursxbvsfvf
1bskfour
dvlmbrxssevenhldvjxdzcfdvbfourthree2seven6
6two92635
8dzszone
hfcm6
dxrfhpdbrqmqq8four
bfclp5sixeight81three
eightffsqgkmt53gfjxqsskpsfpbcmqvdfour9
6sevensevenfour1v
9threetfspsfxhnzblgsxz
seven5tz7pfhlpt9qxrqz
pmbeightwooneonefiveseventft4
xhjhmzljnx7
twotgdvhkpmg1rthzfc6
onesevennpcsbfive9sixseven
7sevenmbhlrjxrpddcnl
8fsvntpptctwobjmkgzvc4two
onetwosix4
fourthree4fourlqbvscdponeights
1glkfrdb69sixsrvvb
ninetwoeight7cvjtdmgpsfivefnlvgsqtstwo9
9threejtfoureightseven
38nine8
87two7onetwo
2vkkcgxdqpnthreehklfmfmjdpkz9fivetwofour
one5oneone5oneone
three5hlxkxrmxsbgrzqsgrone
twokbbnbjp7
mvxpdllxrvfthreeone51eight
rrqvfiveseven5two1qgqppn
92s
fourxcj8frbvlxzgpvoneone
648211
4eightgzxnsixlvksllptszztmkjb3four
fivegqg6
foureightmmnknlseven1
83kx
sixeight12kskzhrjjpslmprtwo
1xzncrsfrlfivetwoxptv46nine
fourmxfq6twotwo4
oneht8
3prjdlrcznine
btkpqmxxmggkzftmkxbzqvdccchxdmjlqztzfgfour7
tvbstznine9z
two1fivemmnlcnmqlrnbp95gjjh
dq671ninezk
6cmxtt769
629rkhc198
2fourfiver
three5nqkjdsixfrjnf4gcbjrznine
xjhqqf7oneeightrgkdprrssmxp63
5fourfivekpvmnlpfrt1
xnqkjcldhttbpjr8
fdntjsb957sevenhbmntp
jlmmmmdv482three
63lnbhmdhpsp32
99cmntldfdflqkfkv
kqnlqqkpr9eighteightthree15threenine
6threefttghrvjsjg6
spmrjzfm6eightwokn
bdcjfqvsdronertfztlblqbgfgtkjv8qhbjfhthree6nine
9fvltpsxtcbtjxbtlfdvm7
6jxvxrdmpjthreefstfgrsixfourzbfznjjlqtjx
8onesixkmhgvsnfhqnxlkn
rrjxvqjbnvvsgddtvmb3six5
eight8sevenbmtgbvdzcpqnzqone1hbhlgcfour
2nineseven41
8xptgrh1njz
geightwo93sevenseventwobpdhhjsrbfour57
m4kd9four
6nine5seven9v
glzc1fiveeightvbmvk
ninesixone3sevenzmvrqbtwo4four
9onefoureightfivefour
fjqpgnjdd1twoninecgsqsmtonenine1f
94sixthreedflcddxnvvrthree
vvfnbgpkgsnjtszxhrsixfive5rrdtfpkdhdvsg
39four1pjfkt
45sixkhlfc1fivetcvnlstnine
sevenone2seven
twofiveonenine6eight5
grxzndnqpd56
xnpdfnfgt5fivetwotwo
9four6two
sgmlzbpnkrmfivesbdzbnhkcxndpone49
88six2hrmkl2
mthree3eightfiveone
smrzqc7twothree2three
nmtwo8cr
378one47four
27four
5two7seven68six
9onecnonethree9
nineqhvbjqbrkpjhjhdbpk3twoseven
rq4qldc
86bqzct2nine
eightsnfgrjzhsnxbfivethree6ljxx
oneeight1threevzdcplnqrbk92
8k9dkqmqhndthreethree
9sp6j5two
4rsone1seven2seventwo
ninehhdcbxfgs7fljclncb6vpzhqphxz
drplsnsch3zfr
86nine
2threeeightsixvzpcqjs
dmkhbxsggeight7seven9
fourshjlmrbbcnznstgj2sx
gcbzbldk6nine
fourskpc1vzfxsrjckcmccljtt9
1oneone53oneeight6
six3fourqxqbs9nkbsixthreesix
pmlrkrhqdjgg121nineseven9
dmgnq6
kpmponeone5
mxmhbqnrcjj1threeeightxzfive
onebzxnrqqfltfourglvkqfive4nine5
threezvmfl7vsdrthsdsjsix9mbrqqmz1
boneight8onelrtjkj
tqxbbceight9rqbthreek
3h32nklscdkfhtztwontprj
2threesix
qkzmpvkvsixxfzlrfrgv682
3seven6mvkeight2fourvhvvqone
three389sixeight
bx664nine
nine82rcdvqtj91dbffscng4
2sixsixtbqhvcndjtcvrrbtdzsxrlrvdxjtd7fzdtlrhlxvbpvhknmm
6zbpblsznhlzljtmstwothree28ngdcfkk
eight8nbfmdqlcvonenine
8two4sx7rffstvxlq1seven4
gmzbd8nine5nine1one
sevenfivezdfbn7six
5892
ss9
8xcvzgzkjcdg
1seven7three
8four1fourtwonezs
hnjzk8
xfour5mrj
vnkspgtkxspdtwofxlvtlkqpqcffxbqth13cll
mmjkshtmtwofour1
sixthree6
seven9mzmbkkrzsix5five
9cbrsqjlhntpzfivegmgn1six
bdbnlrdpsninenine3twotwocpvjd3
twonine193
twothree1twor8cmtxtd
bvgtninevfrjs6
eightsix8
sixfbzsxfjtfv8
5onethreeone
dgzcksnqz8foursix
9onetsrtwotwothreerbv
4dnzc8
fivenine4sjzsdgvdqsix3511
7twofivefivefourqdgpmfblgv
oneonelgjsk9
zcfhrrpseven8tlffkfnineeightttwoknlfdjpj
nine5nine
8sixtwotwooneoneeightcdklzjgvnqrsvvkbtfj
7one9vxjdkbhqmfbpt
6twoeighttwo
sixthreesix162
5jhxxchf69twosxjckh5
sevenxspmvxpmc788one
9fseven4
vxzqgxbmtgxnm588seventwoqtmfsb9
four8nine4ftn5
eighteightrhjzcmxql28four
twogqjdbmmxqgtxdppchr2xxhcptq2mrvgsdccs
six24
nqdptone3drgtwoone8
threesixnine8hlkrj
four7pvvljkscc6hvsppgxrsixknrnrvfjqqfive
7tdnbzqqxftqtxjqxgmbdhbvsqdone22drc
59rqhzrfrps
six1scbkqjd4
89blbn
lqhoneightthree96tppmhtpmlt7
threeqpnsevengfx3
sixk27lfjrvhvtsixtwo
four5slf8onefournine5
ninehgczrdslkstltfive96bqtz5
scfkzsr4fournine325
5eighthzn9rjdzxllvg
1six1threedrfpflhqfour64
fivekdtgcdsjxone8nine
7sevensevenhronepdgbxvfd5
619nine6threetwo6
fivehchdssjrlshfqjlptsxghzrcsfcglm4
6two73smnqbbmsix
84fivermpjpjgkn
oneeighteightfhjtxbjc94threefrnnnncdz
lrckglbdn94eightqbfxp
mtztmbhthzone26sixgjvnbzsjfmthreevqdqrld
pnrtpgzcnznfive3eightwogkq
threevfpkrjddtpszxddckhftt6txkszsbxnn
ninecxdtmdnineseveneight5fivesd
xjvv7one
5eightfiveseven
twodpfdzvqmpzmvs7tpjnpmv5
75fivethreesixsfqpzdonefive4
4onefive6bsvtplblfbmnjjlb
eight75one73pjgdqq
ntcnmnkvjzpvxpmb7twokqfour1
zd1sevenmgdrgrzvvh
65four
3kzfztjxjbseven67bnfcntfknlxlv
eightfive8xnnkeightfive
6three95eighttwonineonevkrtwonebgs
92seven2cndf
onezxphkcrsix7klrhnhdcxrpz
mgl8ldbxzdlgtwo6cdvxbp
foursix7lzcddxnjdrfqtthree7six
hxheightwoncdcrkczbninefour3lfdtgnqgcnbfxbqlnt
2pmcvctfml1one92
nineone9eight
6crppdpp4cmngqseven3mmv
473sevensqpvvhfdrfiventgvmvrhtqx
gpnzc1rmfxqgj8nine271
84sixtwo
frcrtsqhfour3threefivesix
bhcvf6
seven2seveneightzqmdqhb9
28hjjrgqklqgbm
98three
jqzjntlc541
oneq22
7fc92ljfmqt19
sixzpzkgfiveonezjvrzfdcf43lbqxqseven
1two4kfxglzcdjc3dpvb
fivembfkfdq6
nplrclbrbf5ks6five4hzzbsnine
3mkmbgxhn
seven9d
vnfj8qng
eightrgtjpdjjktwo1lphnlrtjfxtvghhbncj2two
eight66frbpds5g
3one8four9two5
9ninefouronefcckhcdfb1mnmdsltdrsix
eightsvsix122241
3fgpmgxcdqfourkhnrptlktrchfqbxcbbcxvjgznfjkj
eighthbhsgrqkgcxtwofour2nzj
93xnjrphktk6vshpvnftblggghskg34
seven2sixsdvmcfgq64
twothreefive3hrmkbmrskcvknineninebnjksp
82fourninetwothree8
2two158threeninesix
hgltdx48onetwofvnsmmsdzjthree
k38
ninenine4sixctnznsb3tkpx
pvfzqtgpntnfhfp47rhllqrlx22
815qxtrghrsg
5vhfourvdblpninemdzbbgmvsfone
nine8nine6four
threebcbsmxbks2two5twon
kzpsc74qxflxpsix6jgmzgqxvsngc
7dbrsmpksixqttqsphqpd7twoeight
kffivefourdknzqsevenvkssgvhxf1
sixeight5sljd5fourxkkxv6
rnsjsmfcbp4twofour
zdfour5pktmsmxf3
threen42
stgtphmjk7onexfour2foursrpj8
pjbgtsevenseven7zzhgxlmz
sixeightfivefourseven9bpjbcmvkrfive
hfhxfqlbqtwo4cdfksbbtlcsix
778lkffbzmpdbxjbpfoursdbp
tvpjnvtxeight1onefive3nvncq
38seven47
five8threexqtglzmpmvbzfour
nmtsjjfvfzbhpltbbsrjphrnxhr1two3sixvp
4gbvkbfqrfgrbr85sixone
6mxqltfsxqxnpdrjkxhrp
lftdxbhhzvvhpone51six
3grhbqf5one
six9four94tthree
sevenh1bdcgdtmjqhnkzxlkxsevenonecbx
jvtwonecfksxckgq6
zvmjbthreecbpfdvd6
6bsvrsevenbcbcgrrhpxtvbhhfp1
sevenfivemtmpcgml9mljnhcrdbfvksvlbpmvhs
8nine9
mszqdg7jsrcckxn
eightseven9zzsixninexhscseventhree
eight57
4zjpjz26dxnzfb
rmcnbnlpd3nine4gngphqfmc24
1vvgfxdfourprlmsjmvvtxnn8seven
nineonethree6zznkfrcgzvfour
gcnjsdlhptwofourtwoonemggshpdh3eight
4eightfivenxftjch
eightthreeseven94
twokvtjgcq992
69psqdmgbtljjzjmpsbs1fiveoneggjbbk
3k
eightsix3seven4twosevenq7
jlthbzsc2
22nine8jhmktwo5
8pzmtnlfptpjckftzrzqsrxkkcc3
four33jfxmhcdktzhqvmkxhklxjllx
nine3lqcsbmmh4f
three514twonellp
4qhn5
sixbmkxqdgtkbcghvpzonecfmgkpfrxv68six
6threeeightjhfsmp8mpvhrjcxzsevenone
sevens9two37fjdfrnk
jhzpvfldrbmmmglvrkz2ninelbgpdlpdcteight
qj9
rxfhkkvheightfouronejh8238
zfsixvbqngj1vhbvxpfk6
vjbqvcm3
51six38ngvq42three
7zjtcczjz79seven
five8fivexxmrn
sixseventhree3sixcsk
zninefour8tworxkfb48
63nine3
11eight
bxlgdzqthree2ninegqn6kvktfts8
tvmzzlpnineztxdbkxgthree1four1
gxcnhxone9
8eightfive5jkqx
qcfgbpgdveighteightone7seven
86eight2five
tftbbfpsvhtwo8eight8seventwo2
skfp8
8hdlhh4ninenxllmthreefivebhslxkvtcp
sixbmljnmhseven4sevenmsfbsbqlzrrseven3
v1828
6seven53hhtj
five51lkfsrm2
bvnrdvjnxjbfv9prx
tqbnxeight6hztrsbvronethreethreeqvh
pcbjr3cjhrqxbcvpzdmfive6oneightgt
qdeightl6four
ncprx96ninegn3
sevenb4eightwonr
qbslkmkqlf8ztzeightpcn
fiveeightcpn7hvxmtpcsbqfvpnmvgncfbpxzhfive
3rxxcqhlp4five
threefouronevdbdmktp17
sixdtmnlhth9onefive
fouronelxgxpvtmseven2ninesix
eightrfxrkcfive21ftlcgdcrmbsnrr
nine1fourfourxkppvqrxfdhsdphjcgnhnfnzlld
562
4sixhj4eightzkbfpdrtzcsp2
ddfdbdqzfshfxnseven6onetwo2
five915b3
sghrbfzmmrrbnone9four5rkmqgh
threedmmsdvgs6twotwochp
seven1fivesixnine9four
6dvmgsjcfour3q
cschsrvz3nkk
4fnqmnd4rnxbjvcbxpchfour
3eight9
tboneninerzhsgqqcxd2gxhm2mhdpkjeight
vpsbgmzbjk6nineeight
sixsjbzldfive6
qjprfk1eight7vbdshhnfive59
dbxdgt6
pdgghktdjhsxnblgpzmtc24onecmctldqtsc
bgfzght2szvttsdndfiveqgns3
6ninebdnbxzmeightfivevff8pdllfour
four2nineeightvfeighttwo
fiveone3sevenhfqnfbjg3five
eight19two
fqkeightwosvszgpjvbl2xtmgmc6128six
6five6one24fivemcgpx
pmvrz6threemlhoneightdjf
7cxrgxx53gksgdsv9
six3two
nfqffqrvkvhqfzthgxp3fivesix7gb
nlqdkgllxdvgj8xdhdfnnnfive
fournine1nineseven
four35djzxvsvvdfxbnhsixfouroneseven
9fourhntsmprtddm
fourfsix81sixvxmz8eight
3pqngffjxqpntqtl8zz4
five325ninemfqxnseven1
1one2gqx3
hqsfive67rr3q4
onefblnbfvzlzthreenine1
96zsvdl2
1fourjjhf1tn18
sixfdpljnbpzxlvhncjs9threefckbgtcm
seven6ffmvnnmxl8fxskzvpfs
5tgbqdkfive
52czvkbqgztwo17ninesix
bmshtrzdcmkfour5
nrfn25one
9two4plklcqzjftj7
onedks4five6hdllqssixbssl
2xftcfnd2twotwo
rzxzkcdtnmsbhnncltpj62
6snszfour
398seven58
vstfive8869
1fivesevenvgjrlqqlthjz1
tpg7eightseven
gqvpptsix356
7nineone9fournineeight
tr1threenine
tvz8xconeightfz
two11five1nine
jntkxfvt2threegseven3
b69ztbtgmqfntdnine4two4
threedsgrrfcpzpfivebrpjhzfhs96gxmfhkhfive3
eighteightthree5crdbzgqvtxx6two
nine4onepxjtmbhrpklmlhcfspxrjdnd
7fivetpttvnmgzd
8lmddfzjeightxxvvcvp
loneight1three4dmzxqncjbninerbsrjxxlsb
657fourdjkhrlxjdp3ninepvlqhz
three4threekddjrfsdk3
8xbjcnsjq89
six8ninesixfourpcsfhnsxgrz
8twosixmvhmsps3
six9sixeight
4seven175
4twomspqqn6929
71seven9eight
4znc92eight
ninetwo2blcllflxonezljhhsfivelngxk
nmbrjnsqhkxzxhmxsix1oneeight5fourseven
42kvzlcdjzxmgnpqmsmkxq3seven43eightwovms
rj5hxkldqseven
f7
5sskjblmnbzjhctvmttwotwott
9ftmpxlbphsfxzsbktjttkxclknsbkftwo7
3ndmzlfbsfqhxrlj2fourfive
8378vkthreemggtf2
2hprlpkbsfzbnbpsmflxjh15one
dxvtfrhhxthree68four529eight
xgjvjddtnine1zxeightwosnx
sixblpgkznvjseven2oneskvxgngzlpzvjcxkcjgblh
bhhkfive4jgngngjfhbp8kpnjtgrmblone
8vmfivetwo9eightthreefxbvf
8738
8sixlgnpbpqpltbqqjjxpkcdfourhxzqpmm
seventwo5three
h46ssnqlfrl8
ninetwokrkfqhh2jbznndtchssjtbpqdhtnrhsix
254
1nhbdtwosixonezxtnvhjnine
qxx97d1dcnqzqhsixnzbrvrksnc
fivegnxzgvmzone8fourfivethree5
fivexhx7six87
zngqzxpmd63bgfzjpftsjgzghdppqfqbnblt7sixone
ninemzlgnkglj1
fiveninesixeightthree4six1
fivesix5ninethreeqkxczhp3
eight19two16pqdstm
mplj637sjtgzltwo
7lvs7xzmjmxjhlgdqhtqllhtzlkmbfm5
six6kqvbjfoureight94
one9qdjpfszz6vxbrdnntfz8btft6
65onendmdgtr
seven368
eight31ngsdmnm
2threetgpvcseven
nine297zqgvglthreel
7eighttxvrbjsnbcseven
rdpcnrscggv1cxv63
2cdfltscsnzg8eightwosg
jrszpsjthree8n8bdjtlcbxtsixktkcc
dns3
2threebpkctf
5pgzpfqntc
9pkone
oneseven2fm545two3
9threegtctbldnnclqpdmjnps7seven
1dknxbdcvpssix413
rzrvm77one2
sixnttfive97jdcjvcmg
spdmkhnthreebqsmtqgnm5threedxjcvsrxbq
btzkx8ckninevffmmfm3four
hgx8fivenine2oneightc
thdfczcpnxctgfiveseven65threeeight4
five6nine
qgtds7
hqnzcfleight8two2
8q8zbkjrqxzhlzgmqmzrbfqceight
nbbrrmksdm2ninefive3x
fivec2sixsixmngbsjzk71
821one4
5eightvpxfpnzvsfhcdtn7kdkjdpsqcl
6seventwotwogxvgvxzjbvcqcl38
onetwo23863
24qtzzxfhq
one7six814
czdhrn2twoninetwo8
one54
foursslpnrqcv7sixtwoned
9xsptsgfplpbrtpc1sevenjrggpr52
zoneightg6sixgfdtwo7
34twodhthree2tqsevenvqqrxq
monektltrghq97seven
ggeightwothree5cpfvrnp48
nine7zpcbx33bbmd
six831
63vjlqdc5one
nine9cgxgrq8
5sixxpeightsix
onecgpxlhhgtthreetwo3
336
xcdjlblthreefourqrcxbxlhsdlseven5five
9znnlhrrmb1999drzkckthreehghffcgfr
two8one
ztwogggh48
six4pcmqkpqb
14two47vmhbsgrgdone3
84eight2
5cnoneskjzppm
nine8threecstfxqp7
threecsbhnn22three9three4xphcvgnz
vjq8ninenhr7
qcffmrfthreexgjjrdbdthree3
eightsix5
threeeightfcsmrvdqzp6
sevendcpm3five4eightbthreefive
kq9one46dqnr
jbmtdqbzn5sixlnthree
ninebdz4fourbvq
phbzxtvtthreerm89
dqlgfoursix5k3mcrkmxcp
3fivesixqrrvtsjdxtdqp14pznxpnrgkrvg
5cnkfz4lxbvbpmcfninetgn9
mtjq8threeninefourhnzgctvtrfive
47l6784
twopdmponenzpjfbqgt2nine1qccqx
77hspkdhqfztwomkdshrkn3nt
five7pjrslqhkzcjzhn6
twoqvgphqs8zzmgclhsseven5eightfive
threehmkjmrqqblnrfvbpzhrsix4zvlmcqeight
6lcfjthree8ninefive54
sevenfive558four
htbdrfh8bthreeninedrjdbjbzlknine
hkhknzrbfsevenhcvbdfs2sixcbjqzltfour4
qrvfpxdseven2
139msnzkfgpzdz5nine1
rbdone3ftvrdkssvmnzjgpcbdjzdkcgbcs69
nine58
2ckxdtcqc5seveneight4two
qtgndtm4mrqvtgbgjf7nzhvtvjqqrdmfiverzzgn
3rchqn37tlvgtftdjqxgbvhlpclpneightfive
11sfhcntjzpnkvpzjfhhpmbtjptngpnbqthreethree6
fivenine4cthreeeightzqlckkvs
5threekjqxkddgvzph92
five372seven8eightthreefour
fivegjjxh15zdnbxzlhleight5fourqrpxj
84sevenvckrdpxlgzkcbpr76fjzbpn
mvvxgjfqj9five1psvtflxhkpfourdxzxhvxmthreekp
seven7pnltbp1twotwo9lfdgzpj
sevenfkrtsgrnhgfive54three8csmsg
sevendczlbgjbg6srsbtseven
onejscsevensix2oneightd
mchrcflvfj3znrzhrvbhm
brfninexxntnine83kfzbn
97tfgthreefxpv
kspdrcnvvntts8bb4sixvghhjcpt
8onedxcbnlvpntljztxs
c91drttnrsevenxj9
9onethree9fivexrszjfxcrjdbskdmn
cjtnzpfourxspsjvmrbqclkzkdftc8pdfbfxjnvflgfkqctvcsc
5seventkqrdpmrrchxfournczqzlqqm7p
nhpbdxgzzjltdftqc5fivelgvjshonervrxmgscvhnnfl
2gcqpdcgjv
bqhzdzxb54
nsmxljkjcmnmxvcrj7threegcrjs7
2cninev1eightdjcztnrk
cmjskeightmjfrlfhm22fivetzmfive
8ndsix
nzrgmlcrg5r4eighthfxm4
threeptlf3x4
3bhd
cbmzrtglngmghmonezdqnhxxd1ctpghbfzqfivefour8
eightpdzftbdlcrtwonine29bcgxflmf
69crzsmjfivecxcqtffoursix4two
92zghnv
fivejmdxvnf1
1ntvtnrjmeight1onegckvcnsjnthree
ncxgppbsnhsfnhlonelfbxqzsgfjj8
eightfhjbrlzxcgtls42sixtjk7two
czrtnfzjnjhxdxtbgtmntkcpninejtzrprsstm4eight2
483nine
onecnxpmhjjcvdtzc71seven
5l15
19jmkmrxbdbtz4shpdgmmhzrxtbftpgrj3plvlqdvnr
two4two
kqgtjstcpnhf8
sn6
grtgjxgqhv2fourbjmfnb
bfmtkqfcp5hks74fivesevenbgvgzr
peightwoninef2ninejmlhndvjd92
1qxm
2drkgnvghqrjtfxrvnthreesevenpzzldp
four4zcmmzgbzc
4nfbpctgmx
3threemfbgthree19sixone8
ggc1gldjhxsgvq
1four4seven824nineeight
ninefour6one5ninetwo
bpjs8rjdxpm
zggcvkzeight7onejgkhpsrdkfvfx5three
7h7lpjzsdv4six1
6seven9one4
sixfour6
4hkddrmgfp
43ninecrtoneseven2qbhkkbzdltfour
85
hlfive3dqzdvjkdd
5chpcxbjkrdzbjtwofivethreem
6ninenineonefour
5five8twoonesf2
four1seven5pbbjgmxgxmvfzjtvr6vttbnd
zzkcpcckmsixeightnine4
9xxzzvcsg45one
xmd3ninerxllskrl
xxj2onesixfive3six
threeseven8
one43
1sixthreelcbcfgbone3bzgrl5
four12535three5
jztxrtwo8495
threeqhsvcvzfnsevenfourtwothreeffrz9
onevqlxcz461five4fthree
znine5
cch5ptlbcbh2ngnlqnrdsjv6mfhndf2
threehblbzlddttzkrsl51eightzrj
68pgmnbz7seven
twotfhcgltpp1ntpcvrmkgd998
seven3fourfive7eightsevendlqqseven
jqtcrf43zkktbqhsevendljgb5two
3one5threethree
vvpjcnine9seventhreeninebtzmr
jfourp7twoseven32
2prjqnineninevjlmqkrkdxv
67six1oneddp9
tcbcttxninenine21hrmphqrjkvtnfgchjnb3
sg1six5sevennineone
ninet7jkrzxtmmz
ninesixtslvqck9
dnhsp9sevenrrsjdn
onekqkvb7
2sfflskftk
79four
jnngdkghtwo1two
fptfourseven4hjvkz3onesix
tzhtsgkcp8
9n
six4294seven8
seveneight74five1
kfghjdssttgrfour2two5three1nine
5gkhgsixvlpcdmpgbjkqtjlthreetwo3one
sevenfour1tfxzgsnldk1fiveqg
187qhhqlrjx
2lthreethreexthjqcsix
cgpxkxgkmcpdzhtpc363
sixbtkvqt3
4twotwoqqmtb7dczgqrtsixseven
seventwo7z9fzgjkl5fjndrznc
qsgfnjqsghtwoninethree8lppsthree
threesevenkdzzvzbl2foursxrlq4sevensix
seven8bjbmcnhrcp3one
gg531
one8sfvzplxlknine54
dlxeightwo48fourthreeninethreeeight
sixxlglqsjtmqmgcnfvpljsevenqlgllg6
tszncfour7one
three54three4
qkjxzcdmxqvjngmrkpmleight83
5twoksv49
7six58sseven87two
fourseven6ndsgfjv8
ppmclkxhpjpqrjoneeight8two
538
sixlhsixfive5
twosevenb3f2twonebpb
lxqbgl55fgzfmvtpgjbxxgffsixlkxlbvmjkkslqpkq5
7ptnpseven6one
3mtlbfc6tx46five
99pgdmnrbjv
7twokvzlvptxcrfbfzqsxsqvxtfkcpkczkr9fjxsr
eight82lfivenine
onetwo2jvqdhkktbeight
8zhxksgcc79one
knqqz4
36twofour
2gdssixtnineeight2
foursix4
49hjbscbjvbckhjmjrdbh3one
fivesixdqpnv2
7ftwo
fourffhffkphssbxzsgeight68dvhgrb
two8sevenfive1
dggljb5nvhpspbscfhd21
twokeightthreeone6lqglrseven
cklfcsqgtwohptslmlgdpjktvvbbx3
two3sixthreesevennine
7ninepnclmdnv7ninevmqoneightpct
czzbhfhhrfonetwo1ttvpgxkgsonektpnfrptjltklj4
7sixthree1five45
btwone3fivelfzmfxsr81oneqhkzjvt
5kmrlbvpcdrfivefourfive3
9fsl3nine12
1seven1seventwofivetwosix
sixzdeight9fcpzvsbtz85
n1jmxjvgfiveone
1qsptpfbqtrl19three
5twoeight3grrksgjdkgn
1dq4sjknrp755
2three2five
txktfive2ngqfl57
vnrjvh1qpbbzqlgjpgrsgrqgggthreeone
sevenone8srlxqqlvv
eightsbfivefourfourseven6
853
eight53b3sxfvnz7
qbhrhkhcbnsfivenszghnbhsix2ggvv
two28three9
rltzcpbqxfive1nineone
5threedcfspjkm62seven8
tlndznhtthree268
ndfgfkphmn2sixjxxtlbqlnine
51eight682fivepnine
dqvrvthreesixsix2fivenrjeight
seven69
4qlkktltwo8tqgxcninefour21
threefour32j
4nine27ngxp8
seven5ghxkb8
nineone56
two8onezonesctsttzt5
64km6ttncd
three6six6
threetwoeight7six7jgmhreightwocl
3sixfivehjgvqjlrsfivesix6
fiveeight3sppjtccnineeighteightnffgtlsdj
12seven9fbqxhs9jgh4five
7dmbqrqsnckxtpt
ktvlgfzt95lfdvf4lbppfccjcprdpkdj
seven65lrjmmqdfjfourtslnhdh5
sblgrkqccmpqhfksmg5532
rgqzkmmv4ctgzcgvqdghmvfour3
24rtxdxqnbvdnkgtgcbfkfbtwo
63seven78hrdnnsh
eighttpj79
foursix6
6czcdgdmrmzcdcfmsixfkdnbdsplcscqh27
3333dgrd
8threeltfpfz3
xgxddj3qkcnbbbhtvbzkmvh8
s2pzqkldrcx43xzmxqvspm
eight1gkvlt24twothree19
lkrzltxknd5fmjgbds2klkfgcgp3xcbxxpnl9hzfbfclrx
2zhn73
sixone4eightninelthreeeight
seven8vlqqfjfmltwosevenfivetwo
spfkzfmssfjrsevennine8ltlrnrjbcfive8
1spbthreeshsgmrbcp
ninefive7cnxznfmcp6nine
eight4one9x3nine
eightnine4kgxhxx1ckrqlrn
6sevenkjmfxrbhck
jsgtwonefvmcdsnqfp4fivefivesevenhkbkqcb1vgkshfnxfc
eightcvzmtlvsm49
78four
threeoneninecjzs75
xrxrsrh58
1zqkhcvoneseventwohbrfbqgvp
9zfznrfvtgjfhsk
v5jcblbstnvxk
6s1
6three1seven
75xpmzmhqqphgtrblhkcdxczcvbmg
2rqv989fourthreefourone
zmghjgrfqlzpdcqq9fjnkbl7btgf
2three3qvbfbn
fivehnklrqktnqqlqfslfjpfpfx9six
3xvskqbjzrlonetwo
95fx6sevenseven3grfncsdttt
two8twoklgnrm
two9seven6eight
7lh2sevenshfvljtphhnbhvkzxxgjjrvlq7
ninemdgkndsevensevensix4seven
4three6eight1lkdmtbh
7rdpvbqljvnine82pmqclfive
nine6nine7seven6
54rvpqphbpxmcfjmcspsnhrjp
eightn2skzmpmtgqhvvfxgqonevtbfsmfklzspxdrgj
nine276rzshsrvncjrdzfxbmzzlvkhdlcc
sevenfivexgznfftgthree44
fivekltdkmm3rdmdnm32nineddsfdzpks]], "\n", false
)
print("Advent Of Code 2023 - Day 1")

--strdsum
--v0.1
--@shiftalow / bitchunk
function strdsum(a, b)
  local s, l, d = '', max(#a, #b), ''
  for i = 1, l do
    local v = (a[-i] or 0) + (b[-i] or 0) + #d
    d = v > 9 and '1' or ''
    s = v % 10 .. s
  end
  return d .. s
end

function starts(haystack, needle)
  return sub(haystack, 1, #needle) == needle
end

local digits = {
  ["0"] = 0,
  ["1"] = 1,
  ["2"] = 2,
  ["3"] = 3,
  ["4"] = 4,
  ["5"] = 5,
  ["6"] = 6,
  ["7"] = 7,
  ["8"] = 8,
  ["9"] = 9,
  one = 1,
  two = 2,
  three = 3,
  four = 4,
  five = 5,
  six = 6,
  seven = 7,
  eight = 8,
  nine = 9
}

local sum = "0"
local iter = cocreate(function()
  for line in all(input) do
    local firststr
    local laststr
    local first
    local last
    for i = 1, #line do
      for d,v in pairs(digits) do
        local substr = sub(line, i)
        if starts(substr, d) then
          if not first then
            firststr = d
            first = v
          end
          laststr = d
          last = v
        end
      end
    end
    local newsum = strdsum(sum, first .. last)
    print(sum .. " + " .. firststr .. " & " .. laststr.. " = " .. newsum)
    sum = newsum
    yield()
  end
end)

local done = false
function _update()
  coresume(iter)
  if costatus(iter) == "dead" and not done then
    done = true
    print("sum: " .. sum)
  end
end

__gfx__
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00700700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00077000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00077000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00700700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
