-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path01.py
executable file
·1133 lines (1108 loc) · 24.4 KB
/
01.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#!/usr/bin/env python3
import re
from typing import List
def parser(text) -> list:
return [line for line in text.split('\n')]
def read_input() -> str:
with open(__file__, encoding="utf-8") as f:
c = f.read()
data = c[c.rindex("🎅") + 1: c.rindex("⛄")].strip()
return data
# MAIN FUNCTIONS
words = {
"one": '1',
"two": '2',
"three": '3',
"four": '4',
"five": '5',
"six": '6',
"seven": '7',
"eight": '8',
"nine": '9',
}
lens_to_search = {len(k) for k in words.keys()}
def calibrate(line, second_part=False) -> str:
start, end = 0, len(line) - 1
first, last = None, None
while start <= end:
# part 1
if line[start] in '123456789':
first = line[start]
if line[end] in '123456789':
last = line[end]
# part 2
if second_part:
for size in lens_to_search: # (3, 4, 5)
if not first and start + size <= end and line[start:start + size] in words:
first = words[line[start:start + size]]
if not last and end - size >= start and line[end + 1 - size:end + 1] in words:
last = words[line[end + 1 - size:end + 1]]
# loop
if first and last:
break
if not first:
start += 1
if not last:
end -= 1
return first + last
def part1(given: List[str]) -> int:
return sum(int(calibrate(line)) for line in given)
def part1_re(given: List[str]) -> int:
return sum(int(digits[0] + digits[1])
for line in given
if (digits := re.match(r'.*?(\d)', line).groups() + re.match(r'.*(\d)', line).groups()))
def part2_re(given: List[str]) -> int:
non_greedy = rf".*?(\d|{'|'.join(words.keys())})"
greedy = rf".*(\d|{'|'.join(words.keys())})"
return sum(int(words.get(digits[0], digits[0]) + words.get(digits[1], digits[1]))
for line in given
if (digits := re.match(non_greedy, line).groups() + re.match(greedy, line).groups()))
def part2(given: List[str]) -> int:
return sum(int(calibrate(line, True)) for line in given)
# TEST
def test():
# GIVEN
assert calibrate("1abc2") == '12'
assert calibrate("pqr3stu8vwx") == '38'
assert calibrate("a1b2c3d4e5f") == '15'
assert calibrate("treb7uchet") == '77'
given = parser("""
1abc2
pqr3stu8vwx
a1b2c3d4e5f
treb7uchet
""".strip())
assert part1(given) == part1_re(given) == 142
# part 2
assert calibrate('two1nine', True) == '29'
assert calibrate('eightwothree', True) == '83'
assert calibrate('abcone2threexyz', True) == '13'
assert calibrate('xtwone3four', True) == '24'
assert calibrate('4nineeightseven2', True) == '42'
assert calibrate('zoneight234', True) == '14'
assert calibrate('7pqrstsixteen', True) == '76'
given = parser("""
two1nine
eightwothree
abcone2threexyz
xtwone3four
4nineeightseven2
zoneight234
7pqrstsixteen
""".strip())
assert part2(given) == part2_re(given) == 281
return True
if __name__ == '__main__':
assert test()
lines = parser(read_input())
# ONE #1
part_1 = part1(lines)
print(part_1)
assert part_1 == 55_002
# # TWO #2
part_2 = part2(lines)
print(part_2)
assert part_2 == 55_093
# INPUT
"""🎅
tsgbzmgbonethreedrqzbhxjkvcnm3
7qlpsnhbmnconeeight78
prbqsfzqn57
ctrv3hmvjphrffktwothree
9six9qbgcvljfvccdjslspprgonenine
eighteight9dnvcqznjvfpreight
one5sevenfour3
gjgfiveonekzssz9c
one54
rtsevenfourfive1rqhslone
xkxfdhk25fourtwot8
kjgcsncmeightdxdgkxfzqmmkg1351
7qpnldcvgs
reightwotz5
nineqrtrsfsreightthreetworvrphxptlrbczxsix1
1svfvgsfcssjpvhzr
1seven174ndseight2
56lrkxdfive
2jvrgmmlninejf583
fvsspqpt31
3threemhjhvrvgkseven
eightoneoneeightttlpjqgnkndbnmppjsdhzdbhkhl12
vxjgghc18dzbsssnssh
one2cgxdfbfhl3
8ssfour997six6
8onesrtcvqmxpzeighttwo6
3twoptpvz5cbgpdrggdtwoseven
35smnsnzxmdjtsns6sevenonethree
fivetwoeightfdjpscncb41
flkdknzdxtgdxcfqkn4mbh4tqvgdq
one3threethree
sevenfourgdnxhsqq5one1
kkrjgpm2sixeight24
krrhdhjqgmc5dv4
cvlh16nineeight
495five2nine1
tzmcxvdtvxpmrcsevenfour15one
2qvbrsxqsix45threeeight
pfmktwo29onensbfgdddfm2
7xqjzxstvsthree
37ninetwo3
5vhtctxvjrvftwoone2six
hbhxhjjl5twoqxmlprccr5
ninefour2foureight69
1sevenmggmcxfcfdxptktsgcgsc
fnkzsdjh3kqxpdvmkmvqqjcjn
twotcspvbvppqqntwo1hlcvppcpnv5
xbfhpnkqbnxdfgbgtm5
84tpzgonelnine6bzkx
bgslbmdkfpbx6
lqpfphxdtfourxbqdhrbcz2cmhtddsnkpgln
7fourfzthreezhrjdjlvsix4lrrfv
2seven3
fourtdggtgsdm5
1pbphhpsxbnqmfbxzone
tskfvdph7mftvqpnvcj2oneninenine2
3fiveeighttwothreeninenine
seven687two1pdjbbprztwo
eightrslvddpmonejfive4hhqbdq
xbhcqzx52eight52seventwo
fbgpj8fourthreecqngmbbvkktlbss
plckgsixeight6eight95bnrfonetwonej
1nine97rtrtxhqnone2
cntfouronerdsnn4lfcmhvlrq1five
hrh34sixfourqqng7eightwot
sixlfldl7qjsclxqfive15
khdfour17
frmcpx65
five6bjlbxkp7qthreethreecc3
5four6qlmpsrdeightfour
9lxdxgfrnlk4lsgbjnz9two
one7five2fvdqfqqn92xsxnblxvhdfcrz
hmhmxvqljdgvvvdfour5one68zgm
718
3onefive43
xgpqs5four267six
pqseven17nineninephpszgqzsixldhxmhzgf
ncxxlsqdkvc8fiverslzqtzhzltcmbkthreelkjjckxsvljvs
nine6sixkrs
5kcqpgfms
1znbcrpxmjcsixeight
sixtwo28eight59fql
8nfcseven
8five864sixfive
8fzsvsrjmjxmc
kftvseven6dcsfqtmtjvmgbrninefvv6
twoseven65
nine58sjshtgtqlz
lhjfzvlbtrfffour9eighteight73
9crhmmqkrrfour
threeklhhtlmczn6thfkvdd
dvjxkdgsnlds44kxs
9gtvhrcphvnzbmckkeightfour
fouronejtvrscxj9onethreelgslth
86four
4hvnqzfthree
8qone9
lnkngkxsflqsvm3threenine2seven3
65five
8529xdd5threeonexq
sevenlthree1
5sevennineflfivevgp
6pmzqczjtlnfvgg1sevensix
sixtwoone2
kqrxsgtrrjsix9
2twonebs
fs9hmjmdmbhkskqvdb
293
9sevenbprbbnzqjbhfpcgnxjmflxgkvqgvc
rkd58six
5mbgfldv7rskkllhm
fcjdzfjpvptdcxfltdddm7twornkskrnqnqv
bkqzf51two8twoeight8
2fivefour4777six8
mzq67threetwonrqpcrptwo
7bmkeightm8
z6twoeight5threerfckddtc
threeninesixmtdc7xtjhvksjjc
5fxffvhqzgtdlfdxdhsixnmjtvlq2five
nqpsvzgql1
six3qljkjbfeight
sgddglfjrtwoseven3
rxzhvffr1rfxqpr
7zjv5
3tcsxlpxhsmnmg27
lbqkvfxp8sevendcjlrfour7
cxlvqldcjhhlzcvsix6crleight6
jhchtninehrvlsfvkr7two
48ninetwo
45fivefiveone2
hthchfc1
oneninetwobfk7two
ninesevenkfnlhrznqseventhree9
2fzbgjdvbnktwoonefivefiveqhz
seven28mxjxnzb
gqrznvtjeight9six277five
four3three
1kpqmrjctwolngk8
49zks
threesevensix9fivergmlzrblg
eight9sixeightlfvrbvfhd5one
4sevensevenonegm6
six11one3lrztzsjczlnhddxbn
eightsevenpqdsxzmblmvdmjpeight9
71seven
cjqcqjlkgffoursvfcqxfkkszjhjl73
dgndjkhcplztmkjrdn53
1eight91vqjhmxrq9nine6
bthlrtwo54hxppxfourdsnxnlnpvhmrpqtqzlr
1bhdmvdrjvzthreenine6four6
threerknmhjtfourtwoeight65eight7
1hbgvsdxtrsixmsfzxrlzskkkgh
4hsjt
twothreefxhlr1bfngthreemthqqvgfpxeight
nineeight4hp5nhksqdvrhcn22
hdcfdknjkhsxnk9
pshjqxmqcbkhqkc5onekzfgkbeight
five3ninektmsrxhsdrseveneight1onenine
p5five
2sixrgznrrvmxbbvnxhqtpeightthree77
threehmpjclsbhjlbxj1
982
vcjxvjvbmmzmrvv97one6rdxrdk
four8one9xpgfjgvjmdsevennineeight5
five7jmcrkbnine2
kmbhc8threessdnfmsix
214sixfkxkllldfive6
dbhbfprsqkpmnfxgkgcone4qfgrgghqtqhxqn
1plplklqjqjdsix
ztzgqsixqsevenseven4
3threedjnbdbvxseven3qpsjone
dnccnninetwomkzk52sixcgq
94rdhfgjjr1gzl
8three2ljbjjfvx
8sdklzklt
onexvrsttmhfninetftbrhtwo1gkpbninekh
vsbfour5six
2phhz85
two73fourfive
2twonineninesjkljpdgx
2h
tghzldzcj38foursix
9srzlsv9seven
twojzssixfive53
85eight35foursix
rzx2lb
ghfnqk396nxqgvvgsmnine9hhc
6sixnine746zlrksxcglg58
1nbfivelvpcjnsddt3eight4fourblrzckjvf
sixninethreednqkk9zzspxbcfjmfive
16tsvqdplfnbnh
l13tkbfldqcdfzjsdvtfttphmcmsix7
rcgmlmnine94foureightnine
lpvmrmtkthdqll5
gjjprdvggvtjvqsnbg7xjvnp3eightninebhrdrq
lzzmsmbpqnineninemnine6two4
52qldxmrfive36ninetwo
four6fourhrsgf29
9zb97kffl
eighttwonine5fourkqtjsjthree
two21
two6fourtjjn147
lxnzlpcvzkbd9pxtr6qhbfmcmblbhmncljqd
zccjlmzhm9
11zdnjgj
one5fourone4onerttltxrzgf3
eight2nine83onepxjhx
38fourllqpbclqnlmfourthree
treight9threesevenqgj
jb7threezfvnine28seven
kmnkbmmnine53lddseven3
3jxgfdzkgznine
72lzbqmclqtwo94nkt5
threejdqnineeight4seven9two9
sevenqnpjbznp6sevenfrnghcmvlfbns
oneone23oneeightone
52qngdcmftmchfzt
two8hnine1qsseven1three
seventjlsdnmx25pnxvtxtsix4
3veightjkgnbmcssevenpjrszdxqthree
kkhxtnqzvz4jdqmtwoeight
4eight15niner
kreightpprcklznlcstjvqhn36ggfkphxdhm
four53ngjzlmhg
ztwoneoneshxnb2sevenxcrgjbckmfiveeight
3five5221ddgprnvgpnj
2hdkdzcvcmmtcrbsvfsevenone
dtkjdncq73threechgcccdgqqsixthreehlfroneightn
vtfvj4nine23seven2two
phcvhvlq4kjnjcdkjrgninefourthreethree57
twopxngznkbrmrmrz7135one
one3bqdzone9sevenc2
69threesix
6jcmfivenine6fivefivethreetr
six1jpxjrqkpgllkqldf
rjz4two59gjjgs2five
joneight9gvqknfour7sevenfhzjsrldj
9one4onesixhvvkqtpleightwovmh
seven4threekpstdppxhvtwo7
flxzfrxp1
seven57eightthreeeightseveneight1
6sevengmkvrvone
five1eightfour19
nqxnqn7five3txrngheightnine
rdfkkkthree7lnpmdgdb9
jhhvznhlsevenninefourcmkrbtfive3thtfbjvgvdnv
2seven7eight8jrjkf4fourhv
oneone7hmdfjpzr57vfz
7vqsllrhznvrdccrdrnjvmzmmknp4
412sevenflfcvksjzk
7eight43mq354oneightv
sevenseven7eightoneightvvj
twotwosix2ninefour9three
threefourtwotwothree1lj
jpqccxztdninepncqqmnlxninexjfgvgccrm1
5cr
jlhrrqmtlgtqfqpmkrhqjmpmxjshshblthreefournine2
four93kssrxr
bztqzsjkeight6two18four
sevenoneone587ghfbdmjpqxnpbh
823onesevenseven1
tt3qmcsbcm1eight
prkptfivefourtwo8
4six8836gmmgvlrz
qklnpxjqhpczsc775
phblxtj9
jgz8lrghthree813eightone
vppt4eightthreezpgqt6dmxdtllksgrtmcbpfjh
nine9lgsgzkjvbcmtfourr
7three61ninefqgsfbpvjrx
98ninenfzfh
two2one8seventwo3hpdbstnhvkthree
fourstrljqf8nine
5kzgf5rspljfnsljrfrhg2mdsh
jkbjkbjhvfoureightgfnnxxnqh826z
3ksgl
3vfivehntm
threeeightone64krfskdqlxsfive
oneseventwo8vqzvnine9ninenq
7fivesrkfkfthree8qmxmdrvhl
447lhctbzpphthreebkmrthreetwo
two92seven
95sevenonecgj
kcgsqqdpfhrpxzceight88
9c4six
rdkqfzkdlggfq661tfmqlgkcfmfcvpqsmr82
1zzhzhz
six2ndsdxkfxsfthreeonesevenzlp
eight5threeoneightmxp
sixfour4hdktht3two3seven
9zdphltlnrfg9225
6eightfourplxbgjfnnzfk2sevendcpbl
threenineeightsltsrkvpl28six8nine
lmbqmrmjldlgb7
2sixninedxnhmdfxh4five66
5mllgtrxzkgxskkqxvpjttninefour3
2hjl6two
h5
eightthreethree3hcsrt
htjlplnfxgfqkm77seven
lpmggpmcq943lcsvrhdljsqqdlgrphlnnine
7twoonecgtdnfvlrsixrhnineseven
lxszmkhj983five
four9fourninefourtwol
eight58sixsix94
2sixthreefkbvtdgjq
1rnc
86seven13
one6f3jkrlrtf
two4nine72twojtfive
fourtdtwo27
two6eight
nxhzvln3five5
six7lbgqhnzkntwo
hsfjgnjxjvzskjninezfndhtwofghpstbqzcseven1four
6q
ffszknxdbqzgvmg2p
cvl52
nmfmp8six5threenhnxs4
9fdknpvztworqfdpjrk36eight9
brmqzbhx84
two72nvrlnhkjnineseven
1spsmjscthone8
sevenphkpdzvgzcjvlskdzbhqgpknrzdpsn39
gfmxvrrvk8
8zkpvrq7ggjskkr
7ninemvm41sbftf6
nine2sevenfiveonetlnhbbxv
rtwone881998
eight5threegthree
fhlnkzgqh191
48fourcmfivecz
5mdvbgmdhqbctxclonedhx1sevenqczd
12one
sixsixeightjmnbqzfive49bk
nine2seventhreehvrfvm11
gnsixb3three2
one3hrqzfsc3one8threehhjbzkmln
vvxcbrrone95
nine7twosnpv2threeeighttgg
8onetwobqnxkkvhk5
qrphvhfqninemcnzfrhfbvdtsnhst3
2eightj
eightmdjmnqd1seven
seven5sixtwoeightcglpqvlzxdfive32
nine3scvsffour6
3onefourseven
cfqfkxv4five
2dbq8fnzpzp
fivekbblqgnjt12pxnvjxrssm
sixfive16r8dqkgspmlb
ninexjhfsgn9ninezv
lcfourtwofiveffrl6gfhxsrzmdl
8oneshvxjn
8threeeight8sixqbfnpxhr
smdjbhvsxlnhcqnxxgqcxfive5
threeonesevenglblr56lsntrdsjhp
seven1ninevqpssj
58seven
lghxjdhpdbqs19
lkcttrkrcpfourjtkfxmxcfive4kxnchspbqvqrfv
7mpgnvdrmsqbcnfzrhtpjhz
threezkjqk5fourthree8four3
7398
xpmrcfffmhqpnmxtqxsblcd2fourq6eightdqvj
6onedvdxtv9
sevenzzvgmlqk5phcldhgghvshclp8
xpddfttzsix63one3
threem5eightwomp
2crrxnvrcjklzvdxk1slmrkq2
5fivesix8mstzprjlvqhcrn
rzkhdgfvkqonexhblnnine32
5rseight377fivepnlsngxvmthree
onesixseven9
9dgr98
6jjcb1hlmlchvtqhpp36nine
lrxhvzs538seven76mkt
six48fivexqxqxdzzhggvcb1
94seven7two7
five2bqxzjllksix4
21three2eight
9rbsrdjbgmgln2fivesixninejfvk1
9foursixsevennine1
9zjxdzqbxjlbbsnine
8zfslsdlhdqmptwozzndjcskhptwo68
9fiveone3fourpncrvfive9
tbslbmgkqv936sixgsqzkfcjpl
fournxfsgdthq4bsmp38sevenfivegclrlpgxt
1kzql
7onehfzqjdnlzcxflzrlxdh8four9mzf
1sevensfivevgxeight9frcbzhpn
four1seven8njj8
74dtgcn
sevennine8twothreeztstwoklxhgfbgnnb
7seven3bdrbpnzcr
2twooneggtzrfqcsqqq
rfxnrxkk5twocjddcmqbrqjvprtbdjtpngl99
pspkmpxzmn9cndplpjskthree7klc
eighthcnhhvvjxc295rxgfour
74nine
jk17mxgfhjveight8twonine
2six8seven2nine4sevenkrgmk
6k96
5jseveneight6eightnpfqt
ntwone1dkfrhmfourzngslfournine
nine64
njeightwo52
15mhnqxqcdgcqbqtdp
hlpgsrxf429four
tncmkps6bninergvfkrv649
bqqlgvbdp3
7sixpzpbrxbhqjgvgns
849zhtmsevenfour77
three15seven9fourthreejfmxhllseven
ksixeight4three4fqkjthreemjqhxqgk
four4seven4eightkgsg
sxgrghvnfknfrsixnkflvngkmsznhc8
6dzxmxkvvpnkp6fnzdfkjsevendlqrsgdztone
eighttwo81cbrtrrfour9fourqkkbk
hvnjpcxhlb9skfjsixseven9two9
pmt113onertkj4
seveneightdftwotttone6
fnsmzpthreexcssct42
5eight4threefgllrpsgqhdtsqbqvzxtpgpdgnvctt
rfddtbdpftrvf641five2x
1three8clseventjtwodlhggr
fivelxhrninej8fjngzdskseveneight
ninexxlhmhzdj7tfzds3khvctlrxmhsxdnbm
bggglk31threefivenineonepqcdzczjm
223seveneightfp
mkvsblkv76
7three86
xkmxnbmtzrpdp2threesixfjkpbhpzb
9four2
7tqqg
three4five
zndhqdmkntwo6
rgblqcvrxzv5clzjdmfkph5
skcvbd2seven5
eight8xnlmzm
9twovfnvrmcfhn2gm187
seven8sevenjshjndsdgrnczlsevensix7djrk
bt2one4jgztwo
one126eightnzpxkgfj
blrlnfnnvbhkltmgqqsixsix2bdnprfp2rpqtnvbtwonenpx
prffzmfndlqfqjncvskgdtwovmbqnxm8twojttxpv2
6qhjdzs5bm
76lcmfntskmxddthreesixone23
bstcghjbhkrlpxf1six
7ptpcjchcfffivenineoneone
7ninethreezstzpdr1two
szxlzxpn2fiverhjrp
5625
two6ghnhfvrzlqdtqflvfgldfjj37gcxnxf
one3scnfcdpsn2five3ninejbv
eight569nffztptqgd1mqbkssdcppjg
fbsvjlln4cdshlvmxpmmc4threemfqnseven
nljzcfzfive5ninen
gmhlb2sixfive55cvnkgknrpbdtnrd
47six
skkhbxfour6trmh7nineseven
three9five
12ninexcc
eight6kdtbvfourb
425threetwo4hxnxseven
five4jbbftjkcmjqxrdls3nlhvcgeightrjn3
knnjdj5tgtsrgnmjqmjjrnht1
nine3mhxxsix39
fivefourseven2drz3eight
215xnm
6seven3
77kqzfcbklvznhgvnpfivefivejx5
8seven6sevengjssbvngxzbgcmm1
mqqxqgmzdvzdgjrlkntdjhgfouronegrkddl14
5threetxbscpfxdgfive
two3bdhxhkqnd87cmrkzxf5
two7twobgnxklp
9sdnnzrkms8rbbzfqms8one
2hxdxxstwo
foursrb7smqxmkt
14xfhdkfmh
84trqvtltpqvdtzdlch
19hjjhfljxnine
1lbkvjcjbbeightngnqdvz8nddkmqmvvb8seven
mlnpptcflthdprj4fiveseven92sdhxchdcj
cdmbfivepgdbgdfvbklz8six7
cbqvbtpljv8skzgmbzbfgrbffmmb
one9ninev4
nzvjsqx7fivebgptkrxsx65sixfivesczbl
42bhjthree1
twoqnsxllxrsfive64vgtpcmxc9
sixbzflbdv7
54threehf9vhctwofour
4pmkmlpnnine3
3sk88qglhbsjxdsdcnqrnpdz
79szleighttwofivef
vbctcrttwo43oneone
qjhdlqzqftfgxgnbbscsbznfgslbltd6szdppxfpm
fivenbbsgfthree9
hjqmr9rqsrhspcfjmfj379
lxjeightwo6four8
45twonkxhqq
ggcvxfz6lfpbcspvzsqztjllrrpd
qmlvh9bmlkfive83fivepbtnine
1qqqbrct45sevenx
ttgtbnzrn1dprs6four
nine1rcstjdlhb6hsrnvsjxeight1
gtlhk3gjhqvtwotv
six278kd
vlgzjxlmfs6
8d51
seven6lzjgcc
sz7sixctstdkhlb89
27three
6two3msmszdzcrfgxj5
8dbvzcrqv
tftbmjrjd831gbzrhscthree6jvvfour
254sevensixzzkjsq1jmmbvdbhtmfjsp
ghqgzfkqhnqntwo4nfj1
sixfourninetwoxjtsxcr3
five2niner2
22blmbkts7
one2cbkvqstone5threekzvskbzdt5
48lgvmpjvhlfsixone6seventwo9
1five5pzglqpqltn
8dc6blpnqcjndthree5
lncn3sevenptdrlpqsbseven
9mdzt
flnr3sevensevenpjgrgdbrvdgkhtlzzljdnppp
lpljgkpqdgqsevenseven8foureight5
xzrkml7
127
hgxdcdprhg4qkxtwo1rlc
nine9five5g
three1lgdctzmqpgc4zbmc6ttsls
onethree495three
eightfblxhxptkdnhk6npbbsxgxlhoneights
fourm6sixeightmrztnbjptqfv
twoone76
6dsbcqrjj
pfkoneightmv8bdrmhlnhmninektnbdtvtwo6twod
qttsnrppd6s
76three5
thrxlfmbmtsxjzsx5fivelvknrgctp5vlmpf
nine7ninethreeztmlsfch
18eightthreetwo978seven
bseightwovtlxsb5sevensrqnrklqvzstncmr6zg
3zthdrzlqcjbdsfgqphkzqeight
mvfnine6sevenrkbxbhlld35five
cddpxjhdgt9fsfmkxmvtm3dnqndzsnm
vrhjfsfkt3sevenqcsxvkdrfndtfljvkxzckctwoonednpklkm
hqjfnbh9threexqfive
mrpdsqbhzjzplrlqf4fjstqq
6htcxzghbx
nine6dflrcbjl65
bpclpbkbbmq9threeonetwonejn
eight5fivedcsqtsnfkthreefour9six
4lvl
fourq2
four388rrkjtfjzrceight8
7lznsixfh41pdlvhbh9tr
9nineseven438
tgcqntlpqonevmcqninezcxfxbbone6
seven2gg
two1one65threexsix
1one6lrgflmsixfivefour
sevenone46
61crvnncdxmkseventzqvdsmfkx
khztxzpnl6nine
threeonehjxpgj3nine6threehcsix
twotwo5mpbgbtfjpcxbksix49two
62
kssevengjcdtrcmklxdgftslsz7kfclxsdtc
9mgpqjhlfivesix34sevenone
89711
3tgkpfrvvcpxfs8jhmdcxz392
6ghbglhfive469x
9ctfqkhbgprf38
cshsctcqr6tcxzjgrzsx
chn5onethreevqdhhdv74
one9fmlbplqeightfthchbzjhzgkbv
fourtwopkllbslsix94bcshtp2
rvmpsxkmcqninetwovhjzvhm3
4eightbcdvjjr5ninethree6fiveone
6three6eightdqkcg
rsix7seven6fdpzpgvmkp
eightrvlmbdq91six
x978bsdxxnknine
81five3
6bmmvdflqfxcmhtsixjprt
five6two4five37seven7
nine6hldzbzxhzdvnptjeight4ninejxlhvtkpzd
eightfone9
4vknnxxj6192q6nnfbcm
twolzt6two23two1
84lltlrz4vsl3two
rnfour39cpcggzone
hgfx464
6tdldmclkhqkkdzxmhvtthree8
9sevensix
pfgb55
mqnqnineplccphpctvxs3sldkl
cblchzhrsone4fcbvfxkjjbcptp8oneightv
5mndn
pptwone8
fivejvzddb3bcvvskzxstfive5
k7sevenninefivefiveqzbxlsgcmoneone
gxqthreejzntslggzhxnsevensix1onecphllcxc
6slttzsdvnkfgbqldqvlqrszlpsixtwo3
7lqlkstbxpt87xcbssmn
fourtwoeightjnflkkbksn566
dkjpckbtnninejcxg3
6713ninetwo
9six3rskfprrbqhbstmp9
4onepfqshseven4seven
1d
zdht4sksmztjpcrjthreenine
four29one2csmk
93lmdlxrrj4threeeight
zkbckninedlzxpmdneight4
gjdshxctnszcrlxj8
4nqfvtshhk
hvjvrh37threehznzlrprtptwo4one
eightghbtgpbjfdprqnpvhhcbdtrzsjgsix2
sixmgpzcmxq3sixsixxpdrfpzdsmqsr
onefivegphhdggf6kdrmnvgfqj
mvtj2six
6jhtqngl7jtphdsvtkbvscm1fivehv
632onefiveeight2
9ninezfbzdplrfourthree3eight8
164three7fbznchn8
fsklrdzbzv8threefour8sevensix
twosixtwo4sixsevenfivethree
foursevensix4fourxhfjzjbkhsix
eight26foursixseven
8frxqhzqstxzmlsqpqtcsevenfive9
mgck4815plnnmrvhfvhbsln
3fxpccfplrfivetwobbngonephjs9four
4gbbgpbqnpbqjzgvjrgpprtwoqvjrrn
four17two93eightthree
twoseven3
one5vqpmvkpgtwo88seven
sssmblvsixseven2
6fsdxfxgdhnqkcpzmbljlfkfsjztdp94h
kx99pbk6
nineone7knpqj
2fourzgseightseven5
sixninekdbvrrllrl8sevencvrdhnine
8jtqlpz2
hgblktnine92htpggp22
8l3
xfxb82srqlldfonelqjhssmsrfkbmldjqt2klnq
321one42seventhreenlrtm
jponefoureight6nine
3lsljdntnsjrseven
two1rvc9fiveonerkdnrnfd1
1twoclddjfsixtwovhhczl
4two48krlhhbvzhq
78fourncglqhghzxhbrb98threeglzklqgkg
threetmzvnrfnqq23
9five5four5ones8
six4onefive6
45lfmdrgsrvkkkzglnqmrlt
64onevthree
onefour9zvkgndsv2
dmrk46vlrztxbjfsbll
2four8oneeighteight
pqtvvlbrgninethreeone1
6four733d
seven1qhxhgxsx8fzlbkm9hpmnqkknjpseven
6cspj21fivetwo
seven3fllzkctljxlcqljbxfrcleightwov
73bkkkdnptddqqxhjteight
jjdmnfourp1threextxpmdnnnine
five2lvhh4kfg3
rbconeightthree8
59lqvpccqlbmqqtzfourseven547
vdvsbhcptvxbgd46three6
xtrbzgtwofour9kq9
2nineeight
29nlcdzgrkh7
onehglhgkcksm2onemzpnqmbxccvpxxssg1gcpvhl
sevenhhhgntcldxlfbrpks27threeeightwoh
2kccbsjdblthree
nine6threenine
nkbcdbseven8cqfour
bfour3
nineeighttneight833
3glgsvfhkz7fivefivefive
zzlxqlfour3mcjjp
93eight28
1threeffive4c5oneightgdg
five4six
gpzjjxthree4fmvbzmzbjf31six
bcbdtbjrtn3five11
kbtnkjvkmdh6
fpjsqbxv5
3twofive
9vplnvkkmhpdfxckm2js64
4eightsixxgmbxzkkcsevennvdgprqcgvsqct
eightsix1five8one5sevenvqjmrkdjq
9seven7
ngmnllfj49dlqdmnthree
sixthreeqbkmzvmt7sbgsscqsg
5sjbrdqvbksss7gnfcp6vjpbfcgps
nhssblqsixtwo57
fourbthree7four
6foursix
pfcbeightfvtnlrmld273
fivefhthree8189mvhf
nine5qzvxjvj1nkljhvdpnf9
tgrllhmcmpmpeightzjd7
vnblzqbhx4four6
5qb6six2one9
sevenprjnnznl9nvbfour28sixnpxttwonemcn
4sixsix
7two9
7pzzdv2fourgxxczzqtdxfjgtxjztbvjt
218jxfvzrfournine
4sevennine
662onecvzlsixzj7six
bpnmf95seven2
clfcfivetwo9mkxqnthnnhkpxcm
klgfmtjlctstwo9
1zlqhkkhmdvszg2three4nljlbrzz
five6threesevensnprfgsggs1nqqjtsqxpdtjlfr
nhkvqk89four
rtgzhbhjcjcznp5cxbprzxfoureighteight4lng
xdvgfzxbvzfdkff5dthree
1two465sixnine
2six327mflsr
qpeightwo4sixfivetwokvzhkg
4seven9jmbnjrhrtthree
4flchcfh1four
94fourldjgvg7drlcxqtnv2
99sevenfourmfhnjg9
32fivesix275ninelpmkponeightnp
9xzgfxcmplrzjsbnlkgcbnpchth
htoneighttntmj6ninethreen7
64one9sevenghcqjjrseven
8nvkfqkbbpzseven63zpnbbnine62
fivefoursmdnvczb6
mmrqfrtwo2hhpk7eightthree
dnrrfklrpxstln57vqzkrxlqnmsvmgdbthreeoneightc
19rqmvljqfrmfoureightseven
twofive9vm1csqlrvngtfiveeight
zeightwofivefour6gcmh97
7pzts
42ninecnbthreedlgglgp
3kqthqfprdntgbfqqc
sixdrrqxxdgl8dhf4
51three
39qpctcjfnh7
9bfour4
onefourseventwohbqpxn73
jzbqdcsevenseven8seven8mmbktn
xlzeightwo3648threegrfourrjzvz
eighttmmtcrqhlpnrjjlchrvvthree6
5five3one69eightthf
bctwonelppl122bkfivetwo
foursix2ddxqqz
hbmcnbvdhpkhp3sv88
csdp3onebjxxlckthreetwoplskdphhmp
rvkdmmgfvsfive8ggvcvxgjgrsix
7zjsdzbeightfour7
four3qfsvmbhhfv276
krdnine4bnneightbpxfdvl9pcf
scdklgdh46fivefiveseven24seven
9rmmsthreethrlxjtjkb
7fivesevenstfourfivecddbzmxrrqeight
fivethreeninexgkpmpbvsix7
sixvqpdpfk43rhmd9
2zvkhxtfourpdfnsbsnbvone
four7lrcvtsczdp2sixvvlkzrzzk9gcxtmx7
61pzlq74cmlkjvseven
qcjzncctvv237dsjvqm2three
89threezgd2eight8
nxll6fivev6kt4rmtfkrnkfive
lvxxvnpzlrk8sbmbnhtmlds
sevensevenjhcxcninesevendlghdvfj5mkmdb
vfq4
gxkcbkknqg8187eight
six79tcdlv
bsntwone3six8
8nd
qdlhkvvpxrtgbrzpmcfourfivegpjqjfbfmngnnbpshfkdpsdgj2
threetjbcjmzlcvnchp34nineseven
zjpxzkdlmhcbzkrflvfour5mdqldvgrnx5sixlmgjpqx
cjnvmsdrpmq8
threeqr8xrxgv87
rcfsntqrlonezlgl7dhlflqckc9vhd21
9three7three
ptkqnrtmrnsixfiveseven67
44fourfive9
4fstrhjjctsvrz7cpbr6gjpkkxglx
6rjqcmpfbp
731
fivexdfkzmjs3146five6kvdsnvsxsj
dhhz6
sltpllcs4seven8771
1fourkjfhfcfxbeightseven8three
sevengrzlghdkg8three
sixsixnkgfcfivekqfzsj59
4qbqggqlmjkrgnrxthree9dxgssjkrseven
xhlmbone3one8
3t
8six37
fivethree3onegthree9thhfzp
9xdmvkx7fourfxpgsvnine77
coneightfivedfkqrfjcckghzsrtrc9sevenone1
five4ninevxldttfxxdfxfhttbxkvjkfour23
cpfklzcpp2eightfjqcrsmhlnxckxmtdchbzqblqsqqp
34six1
5fivex4
fivefivepjfrpzdvcq2
onelnppnxczthreelldqndvt3
nine699ninexjnine
16one74
8jdkblqbq59zlkhj97one
ckrft6sixeight
fourldmq24
87zvt
threefiveone75hxnqqsjroneeight
lsxlzvssshlvbr5vtvgsznrxhkp73
threeknpqxxgg84
oneone3mvtlxjhfiveksgpnms9kzkf
thxrqsrninefourfive31kbcp57
fivesixnine6oneqgxckbjqfszpsvhjgms
eightsix83
ttwone9qqhg7
7fhvffiveftkbfgxsdfourthree1
hbkst6foursixdndhmtwosix
mhgxpvgmndjgsftqjkkxkfzxmhgtdpxxmbztwo6six
two6ljpjc8ffgmblpxrcsevenvbsm
xqbmzh85mqchftctnfourfkeight7
xlbltdqcsx2sixmqdzvxhqj
eight468
nine2rcrgfpx5
eight5tjoneseven
hncnnjvbdfdfcthree1
sixzfllx24threesevensix
7eighteight
8652sslmpr1
m88ktthbnh5
six1ninethree
sevengtb6
9eightzpdkqzp3
tplshfhqsshs4
4twothreefpj
48threetwockbzxdhqp4eight
eightmkeightjdgmvxdqfx7
six99
69one
twodmnzphhsb2
three3zhqckdqeight1
2x9xjzgtdgk5ninefourseven
4vrpseven7tq
86cjqrqp
one8four67
three7two7six2kxl
bhnbkthreetwofqchzvbxjqqm4seven4five
onehncctk2qnphtkjns
6stmbmtj1ms
mdhmknhftkdtnrgkbmh7six1six
six4three5
fnccxltjdn4gteightfourone3
twofoureight5seven4
four7twosix8three