summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Sangdahl <[email protected]>2024-12-22 00:39:26 -0700
committerJack Sangdahl <[email protected]>2024-12-22 00:39:26 -0700
commit07374c1643e331d38d9bb67f94693e1ec3a07d01 (patch)
tree08a0398b6ead57165d695713f14b83cef4f74f5a
parentb20699ed64bcc2dac5b313a95192219718839d8d (diff)
downloadaoc-07374c1643e331d38d9bb67f94693e1ec3a07d01.tar.gz
aoc-07374c1643e331d38d9bb67f94693e1ec3a07d01.zip
Day 22 2024
-rw-r--r--22_2024.py49
-rw-r--r--data/22_2024.txt2157
2 files changed, 2206 insertions, 0 deletions
diff --git a/22_2024.py b/22_2024.py
new file mode 100644
index 0000000..1cff601
--- /dev/null
+++ b/22_2024.py
@@ -0,0 +1,49 @@
+input = "data/22_2024.txt"
+data = open(input).read().strip()
+
+
+def mix(x, y):
+ return x ^ y
+
+
+def prune(x):
+ return x % 16777216
+
+
+def prices(x):
+ res = [x]
+ for _ in range(2000):
+ x = prune(mix(x, 64 * x))
+ x = prune(mix(x, x // 32))
+ x = prune(mix(x, x * 2048))
+ res.append(x)
+ return res
+
+
+def changes(p):
+ return [p[i + 1] - p[i] for i in range(len(p) - 1)]
+
+
+def getscores(p, c):
+ res = {}
+ for i in range(len(c) - 3):
+ pattern = (c[i], c[i + 1], c[i + 2], c[i + 3])
+ if pattern not in res:
+ res[pattern] = p[i + 4]
+ return res
+
+
+p1, score = 0, {}
+for line in data.split("\n"):
+ p = prices(int(line))
+ p1 += p[-1]
+ p = [x % 10 for x in p]
+ c = changes(p)
+ s = getscores(p, c)
+ for k, v in s.items():
+ if k not in score:
+ score[k] = v
+ else:
+ score[k] += v
+print(p1)
+print(max(score.values()))
diff --git a/data/22_2024.txt b/data/22_2024.txt
new file mode 100644
index 0000000..9e915d5
--- /dev/null
+++ b/data/22_2024.txt
@@ -0,0 +1,2157 @@
+15718622
+6668234
+6091312
+5538579
+6689583
+1749794
+11489892
+622700
+5438800
+3800758
+2842007
+3124990
+5115507
+10882907
+8952749
+4235778
+10259703
+4714502
+3276415
+10937574
+11903527
+14550903
+2646674
+2167451
+6855467
+7439850
+1885142
+14853155
+16050666
+9574200
+1273497
+1192701
+3590918
+6324402
+5655708
+1862939
+2250581
+5280959
+1874204
+13790876
+8793928
+5093892
+3819836
+9215721
+14404688
+8921661
+428839
+5759103
+802740
+8439630
+6969810
+9767489
+15867521
+12977460
+14643204
+13419546
+15755005
+5107329
+4802523
+3628131
+8133795
+8691957
+3172036
+16037292
+15234027
+16275805
+3231037
+5345894
+8252980
+14474116
+12519542
+5122861
+11825090
+5182807
+6020670
+15458987
+1824073
+8154515
+15324236
+7021654
+3408793
+9355126
+2105157
+13825986
+1964519
+4458429
+966247
+2282961
+9088434
+1555732
+8180482
+9106821
+4978112
+8442024
+12941704
+12323102
+14585712
+5608436
+13705435
+7704264
+5920430
+16451914
+10182502
+8851510
+3511305
+10048918
+14489391
+9006931
+6831557
+13737450
+12261084
+8290678
+8263574
+14754612
+3096676
+9530246
+15966302
+14291986
+6963889
+12023275
+9506190
+495961
+7865660
+5915749
+15040498
+4562721
+15441718
+7125362
+12315991
+9249651
+5368423
+9198687
+13020452
+4009635
+12714101
+3817947
+15622913
+16398688
+5438171
+3765917
+10050005
+10421024
+2793003
+4020085
+190920
+11967043
+9036773
+3508253
+12443035
+4374402
+1115726
+3284778
+7605627
+6769076
+14576494
+9224049
+4038527
+13698778
+13167188
+10136499
+1709922
+4425106
+16710776
+3814750
+6035285
+1277832
+2082559
+5267679
+9462468
+16559227
+1837377
+3290686
+14633101
+3509908
+8790495
+7883154
+687258
+12738129
+13628959
+11583827
+8452063
+15288154
+10470234
+2229874
+14125479
+4614569
+7021426
+5028087
+797859
+2942245
+7335767
+2044124
+9057644
+199342
+11632840
+15748059
+7818810
+16363008
+1321580
+13398825
+12362809
+10461508
+6018709
+8740143
+12213603
+13850453
+2725034
+11545803
+12224990
+15226345
+7382925
+3350265
+7366864
+6483595
+8015578
+9715283
+16490013
+13772357
+12529169
+12889969
+8612834
+10608980
+15972958
+626413
+536451
+15500221
+14060975
+12408729
+16139743
+12520148
+7450481
+10093142
+12881079
+16388114
+14013492
+13633275
+8218503
+1877063
+5636359
+2026466
+6317032
+8459619
+13687108
+10409399
+799833
+2138459
+9752829
+12751000
+14487396
+15341704
+7237374
+6468556
+13427823
+481770
+4149997
+6488047
+3477001
+3888688
+14264736
+1898965
+14480194
+6057012
+5089094
+12152896
+5873052
+5577897
+3426215
+10374410
+14997313
+12024916
+1537012
+12673388
+13604014
+10929609
+620402
+7091667
+7003522
+1695506
+6933333
+6688207
+10236185
+5412310
+10377942
+16442813
+13931648
+7165892
+1035694
+3221253
+890829
+16381417
+4766882
+7010066
+6828079
+16308838
+2505957
+6259086
+12663275
+2056615
+3043227
+224747
+4440398
+13155478
+9500083
+16328667
+8010462
+1831370
+9748954
+4780030
+4258127
+12970399
+8121620
+3166937
+10701451
+1683037
+14766870
+7996931
+15303598
+14911300
+12577832
+3668854
+7089703
+11388190
+4354001
+7292644
+1555736
+9175666
+15192135
+7020093
+1403365
+6447592
+2807518
+15043235
+11518010
+9286789
+5476481
+1925006
+9446657
+2963618
+10846796
+1945636
+614300
+16399180
+16299336
+15500404
+1145175
+11391367
+11513884
+7282362
+11580241
+11024257
+4475516
+797112
+16443157
+2579019
+11926229
+7338430
+2646263
+9006798
+5283741
+13387824
+15572138
+1777660
+12113246
+9304569
+14201790
+12797984
+1795410
+9792216
+13871761
+3335944
+6893865
+14618162
+15268340
+1917543
+15917845
+13172935
+14356998
+2168928
+751906
+2441638
+14904537
+5791599
+13703971
+14609023
+16704853
+3681309
+15032161
+6550717
+16590630
+4294151
+1556110
+4933557
+2910164
+16309130
+8404765
+13578688
+14245403
+4954139
+9686674
+827408
+8733465
+1144343
+14813141
+12506343
+13185143
+3564266
+11514868
+3589871
+4357798
+669193
+13355574
+10378365
+6811181
+10594572
+14053544
+10375111
+8646277
+11576154
+11473583
+11895666
+16694074
+5066612
+8805237
+2952729
+2311436
+2028738
+803128
+8472098
+10870643
+8597516
+9670876
+651673
+15522638
+4976703
+13500734
+2137755
+1045675
+6962734
+9695215
+16356490
+15637352
+11013660
+2156606
+1319729
+2978822
+15827600
+10098021
+12781537
+7028539
+2724564
+2364667
+2080690
+6284005
+10616281
+14570136
+4967984
+14503346
+3208647
+683224
+10092272
+8851245
+14989972
+4725175
+11045875
+1304622
+2571308
+641101
+15648784
+9857630
+4341907
+2737113
+15055172
+7049532
+11071775
+10486506
+5771332
+6726219
+10237329
+1700159
+8164989
+14589217
+1185102
+14907133
+1298270
+6034891
+12402715
+1642344
+707295
+14283885
+7455260
+7401528
+9143020
+2732872
+6175628
+14732371
+13265347
+473114
+5328308
+169065
+13547835
+5844612
+5666091
+12085648
+11182176
+4533868
+1605355
+10462393
+12679947
+9390701
+16712759
+10485089
+9372599
+10659606
+10146156
+13389162
+4519987
+7025505
+7165928
+7977915
+11295660
+12762319
+3599374
+851352
+5019923
+12096956
+14602291
+3890247
+4972000
+5603825
+10435781
+12055540
+9405459
+4275211
+14196586
+302641
+5705801
+8371512
+16723741
+1954033
+16696319
+12619713
+3034211
+10143225
+8585509
+12673859
+15049632
+6361709
+12355986
+14374602
+11925089
+9288970
+10168138
+11464943
+5058592
+15753281
+10059757
+9730006
+11924825
+15742537
+12522337
+1946160
+5456462
+12616895
+8640855
+11693761
+8100556
+9365086
+16261146
+12867700
+4095868
+14339992
+6461192
+14313954
+8827101
+1931765
+9536736
+2493244
+16690704
+8746272
+695374
+6670513
+5955276
+15499178
+365599
+6444292
+13702778
+6373241
+15620820
+713618
+1528713
+8124138
+3703718
+4060682
+7052074
+13671056
+2773856
+4629543
+3014793
+958577
+15196973
+13614624
+16042089
+2729847
+2114505
+16483590
+14305408
+10651835
+14277267
+8853020
+2739851
+366352
+16558201
+2625320
+7819066
+6524940
+6844121
+776448
+15776339
+9375624
+11547975
+11066104
+6820152
+12250966
+8872548
+3048581
+8999186
+5755798
+10819308
+3045971
+4133690
+6350013
+3197602
+10657801
+4044620
+13190672
+535531
+13402205
+8573797
+9424362
+6105732
+4685980
+15825515
+5748657
+8974638
+10230655
+12791608
+15335924
+8767218
+477232
+1554268
+13873323
+760879
+10904952
+13544175
+8370190
+9371574
+15803800
+14281090
+10132203
+9685479
+13806794
+5959815
+11547593
+10403058
+15888993
+7368443
+9393566
+3098475
+1673837
+16119311
+14633748
+3569313
+10507061
+10223755
+3886558
+2475614
+16553509
+15402103
+402873
+3211584
+2160339
+408877
+13089814
+642348
+13499206
+7623031
+9032098
+1056803
+11564867
+9763498
+14850314
+11591738
+2297690
+14747861
+2224780
+16704373
+6404188
+11685420
+1556749
+1097443
+3890033
+6584986
+9793399
+10751373
+12674617
+4862251
+9211733
+5610652
+9848962
+8891769
+15240065
+8855683
+14052794
+6441139
+12910319
+6257640
+8965815
+314887
+8737648
+8211115
+7073969
+8300120
+2953808
+13844115
+403195
+2088177
+10269863
+15937009
+15257295
+2055132
+3270137
+10394587
+14323118
+12425185
+6286782
+5338027
+4482031
+8285152
+15820336
+12385000
+9020626
+3203647
+873593
+1328106
+2167777
+2753431
+5645129
+6958426
+7271323
+15723629
+8038494
+6229207
+5743437
+16775905
+14562168
+12399417
+9592998
+14352825
+3822757
+15895590
+1717446
+2185661
+7632042
+13799183
+8147925
+13319858
+16261051
+6079019
+8587440
+6886271
+13030501
+5062268
+8875011
+3242740
+8573462
+4938663
+3003919
+9456049
+558878
+14756118
+15754393
+15690556
+3889559
+11089090
+5552612
+4995605
+1461265
+4310222
+7071284
+13527503
+11983410
+15785304
+8737319
+8420516
+7667216
+2608318
+5868891
+11824369
+12580897
+11566102
+5873922
+8087560
+14009666
+16594075
+15954319
+5667990
+12219214
+16192374
+11586670
+13915245
+2965840
+12910747
+9430669
+3437049
+4515655
+11010339
+767422
+263715
+15202049
+4020003
+13373751
+7075132
+9776733
+2725341
+16694343
+9882355
+2764731
+9109240
+1521883
+8947403
+688706
+1759575
+12109237
+13616789
+5917922
+11307604
+163160
+5893032
+1114069
+455465
+2743847
+7965754
+152736
+16166043
+2279908
+14650693
+10530647
+14960479
+2451896
+16348296
+4600063
+15246846
+13335514
+9062179
+4496846
+8919722
+1112205
+3219714
+16104925
+5197285
+12665962
+4503009
+10940365
+10586059
+11097599
+14438212
+12998068
+8327769
+3558280
+6972632
+12001624
+3388728
+10707714
+7241721
+12390575
+1261641
+11438582
+4337927
+3924519
+9932685
+2863973
+8259324
+13327628
+16717292
+5091258
+7332203
+15476998
+4772570
+2931974
+10279825
+14875459
+8355351
+10796024
+13913711
+3093637
+11592267
+2338708
+15659298
+14597101
+6611140
+15116904
+5405614
+8731321
+2609992
+9028350
+11010659
+958708
+15676069
+5851745
+3981471
+3179853
+1779339
+8581672
+10979933
+3553011
+3365640
+2323140
+11634280
+5546650
+2486080
+3256075
+7153713
+7937871
+3810512
+6837677
+9910911
+7548929
+7839160
+5055691
+16505879
+9426699
+2899171
+2668095
+12115768
+757071
+7293115
+15274990
+10710394
+7719358
+6831562
+14168683
+8002825
+9733201
+14755329
+867405
+4381596
+13087681
+8091080
+14725647
+7921805
+5544813
+12249072
+10395603
+5962671
+12990970
+7467602
+416831
+13855503
+12281190
+1436681
+10268848
+3627222
+1339724
+11036938
+10433322
+410807
+9284634
+14519097
+12694808
+5573619
+1889067
+12637236
+697943
+14006547
+3919717
+8155765
+14701098
+12030630
+5165126
+12518861
+15010488
+10252307
+7412975
+9154505
+1328917
+14724737
+1430984
+11604522
+980823
+12078913
+3293477
+857427
+5761318
+15992517
+14822701
+7749718
+14222591
+5642312
+5913864
+13809982
+13428940
+370848
+8299047
+5909522
+483013
+8729470
+15370277
+1355601
+11882294
+9409363
+1789324
+4780713
+651458
+2211493
+405849
+2399751
+8879011
+147251
+12339148
+4759932
+12571107
+5198214
+453812
+7767768
+15675138
+6717417
+15358183
+12954242
+8701218
+2028432
+15206443
+14876326
+5270532
+10240992
+9437033
+254096
+5791244
+7894835
+9845843
+16066802
+5970218
+16090194
+9591639
+9530030
+8877036
+9230609
+8927717
+15338953
+13363716
+11483858
+11120029
+7551822
+7216763
+15620809
+13807693
+8345619
+13245478
+9528019
+9318374
+13297069
+2127462
+14408302
+6640886
+7024440
+6687740
+14348042
+12455017
+9578786
+11846552
+8479082
+339599
+10597555
+14585113
+13970451
+12857501
+15284155
+10003090
+10489581
+7148302
+1356704
+13256980
+7686999
+498008
+16227030
+11794870
+11623322
+11920041
+10700228
+14626717
+2278031
+15436364
+3581478
+10114790
+7159198
+431483
+8361777
+5388755
+16502230
+6481509
+2729682
+13729094
+11529690
+7908632
+14190331
+13855372
+16167860
+8753671
+7170566
+3705477
+15005769
+1705675
+3516697
+199836
+12086293
+9333656
+12080067
+404107
+6019934
+10446522
+3547897
+12564409
+8518793
+16054885
+4590655
+6803426
+8045421
+12672932
+13369811
+5151781
+4668875
+1668950
+11388810
+12703421
+7334111
+13727365
+3669829
+3210404
+11915247
+9848424
+13523178
+10278891
+10600793
+7834828
+339533
+13145581
+3654693
+875378
+11772046
+16728233
+4820345
+6272875
+10928159
+7928363
+12645504
+12998698
+15691790
+8225691
+9229919
+14595187
+13628910
+6135459
+795566
+8484077
+16695137
+7005899
+14493613
+10562689
+13462064
+5734700
+12177410
+5601595
+8190384
+15143447
+10468382
+10475697
+12001640
+13623939
+2631375
+8399987
+411328
+2035928
+13954166
+15237463
+1591305
+14260771
+13219439
+13286074
+10421058
+13203759
+3340768
+14128442
+141423
+10223541
+9527015
+15502738
+5773286
+8706758
+14763638
+12178569
+4569480
+12406206
+4559517
+7670562
+9800800
+8091241
+5912599
+1914445
+9186361
+6600858
+9255417
+7180958
+5411137
+2985806
+12507962
+5360266
+10949377
+10370155
+6389366
+2940885
+16664812
+9856629
+13100267
+1763033
+5514472
+9788437
+7299829
+7324510
+6739311
+11739105
+8383642
+12347046
+209492
+11711195
+8937679
+4247644
+3448453
+9072934
+16687081
+4404189
+15771579
+15749580
+3687060
+13845601
+3170469
+1837075
+674860
+239674
+1175502
+15755650
+7612110
+459099
+6775626
+6100952
+6316732
+2073339
+11217954
+1488997
+13432531
+14284054
+10629728
+2648714
+15111889
+1665577
+13701347
+13081863
+9088754
+14859590
+9397251
+5616728
+14212366
+2857543
+14169507
+4686768
+15439618
+5290647
+16470391
+9942358
+14216800
+11371140
+451270
+14200247
+3472300
+15145157
+5453716
+9238071
+4192629
+6182734
+11225249
+133331
+1841769
+2528555
+4976764
+5741514
+12642137
+565354
+9970388
+5895141
+1688468
+4260053
+7497177
+9956518
+8978814
+12333908
+11210732
+2188911
+4306826
+15048323
+11401347
+16692173
+13885638
+7464486
+13654743
+194377
+8385843
+1872033
+7563208
+12888762
+8410831
+9892549
+7313719
+10991282
+11276789
+12291759
+10829871
+4490397
+3832863
+310655
+8869668
+12171093
+4539495
+13307154
+8619767
+11146291
+10827614
+5660140
+6557280
+6912362
+10554557
+15918538
+1652007
+1987856
+7695188
+12313664
+12442769
+6697599
+1464158
+3695635
+13836918
+16244916
+5014214
+15982799
+10932622
+2171921
+12949370
+3364954
+15023576
+13862733
+4672236
+3419901
+5719101
+8247947
+15706409
+15764886
+15097600
+13591417
+3602091
+9138261
+5136937
+12862924
+16731113
+13343857
+2267544
+3919861
+14859828
+6619146
+13050680
+6038469
+1554411
+7908425
+9685130
+730494
+3463233
+9007765
+10023088
+1912161
+9974311
+15349117
+5768472
+12261074
+11240340
+5370031
+369662
+6741300
+15111317
+8735751
+11660062
+3858469
+9076963
+8448106
+15337306
+14122796
+12157309
+8281303
+7661877
+282349
+12891885
+8301203
+440266
+8552393
+5794377
+6593534
+11954460
+5563984
+2671556
+10786356
+8990106
+12822791
+10728392
+1811717
+3365406
+7738411
+3930141
+9138008
+9946567
+7479943
+267081
+12124818
+11834570
+3901939
+15442615
+5990875
+7990393
+13804072
+2081147
+4355509
+2206927
+11754588
+9350032
+6704253
+6749710
+1065368
+16404867
+3664114
+8852283
+10914848
+8865812
+8510462
+334275
+1107199
+973873
+12516979
+11135214
+13765053
+13896432
+14317930
+7009928
+8849002
+14532791
+2104425
+1674903
+2631049
+11713456
+4950632
+10932240
+12259585
+3112418
+1031700
+11721973
+2272507
+13515751
+8707515
+2799519
+16531126
+14227501
+10003303
+1113524
+3192188
+13715692
+13486512
+9435560
+2368117
+6300326
+16268505
+11410102
+9454761
+10363648
+5782979
+7855819
+4632713
+9753102
+3302463
+5539588
+7185749
+3214306
+11627548
+14537781
+16166453
+16614170
+14423885
+4432448
+1067055
+16197788
+5311302
+10484984
+10221885
+3853901
+1735583
+2917605
+14388841
+7642019
+9141171
+4412251
+2756450
+3515726
+5240791
+14909713
+9096240
+16623100
+153707
+3004096
+7972211
+1050409
+15114434
+15905087
+5845096
+16467858
+14427531
+12830744
+10220828
+5020256
+892166
+15936420
+5246569
+2633834
+191202
+11578497
+241658
+5500234
+16414036
+10878596
+10634810
+3333592
+13014099
+12301069
+3292709
+5586585
+6261398
+5363544
+16267017
+13596788
+8580429
+4534345
+10884537
+6062454
+13508376
+11936762
+706385
+1929446
+14415884
+5384078
+16289926
+12571186
+8028971
+7117490
+4169086
+6812484
+8666324
+10833819
+14593159
+1950169
+12585272
+16016238
+4498290
+11211297
+11368704
+435610
+9345829
+12173484
+7366852
+4102638
+4021951
+5506059
+7393529
+2193160
+4188932
+9994473
+3353436
+8556080
+1935099
+9107344
+15881204
+1626269
+15298390
+5991612
+12034538
+12649967
+758534
+15784838
+2112416
+12023210
+2936677
+15350756
+439406
+446322
+16496027
+8454838
+7789959
+14084373
+3530855
+546516
+7709072
+13251464
+12710157
+6275999
+8175446
+3057256
+16225079
+14747360
+13072153
+11158005
+8554888
+9838200
+1878742
+2584329
+6510364
+9401410
+15773619
+5804312
+4795575
+15273246
+5896644
+15107363
+4348446
+5907579
+2422279
+10344219
+10659109
+9792029
+10984782
+12702550
+10225452
+15142121
+16027816
+12304511
+7528250
+4937080
+2531431
+13260203
+12224904
+13983511
+6647239
+824641
+746795
+10594154
+2953148
+1678814
+12776625
+9106830
+16329006
+3906417
+6506175
+1792695
+9588085
+9568919
+13432668
+309693
+1948287
+13874048
+12230976
+15327699
+3400337
+12381827
+10336144
+14515392
+6012208
+16410648
+3517302
+1577843
+6281988
+3398131
+12230043
+2330252
+4290373
+8296636
+1919241
+12698819
+1025379
+12893952
+6777561
+2809945
+190269
+6620179
+5355558
+2900201
+14043740
+5524928
+2556165
+8761542
+5059897
+1852430
+16313274
+10196733
+15506336
+10144669
+14267938
+16687508
+3335875
+4934606
+234547
+5648682
+11646356
+15752788
+3078306
+10397811
+3942486
+2040968
+2471953
+11882778
+9689722
+1476786
+16277207
+1805757
+7693045
+8422450
+2493730
+14018400
+7293264
+11064460
+8651866
+5283227
+6957048
+6547025
+12059353
+7718162
+14433813
+14682893
+1789825
+1888629
+13058159
+11603110
+761222
+4939817
+5555403
+5501403
+2351220
+7473435
+11559198
+14891794
+3269079
+12209390
+6321114
+8472869
+557836
+11136152
+8693655
+10362737
+15114105
+9971726
+10714640
+14072874
+9929747
+12894482
+4888672
+13640645
+14215480
+11204228
+14800917
+8756016
+3457530
+13819055
+12114348
+1697393
+6846588
+13433360
+12478568
+6851481
+16267437
+13137632
+5396894
+1556951
+4036980
+12755539
+7300290
+11329540
+5742487
+12669954
+13955731
+6138407
+4525274
+6265935
+4070151
+10158098
+325750
+2374852
+15790956
+8730016
+10455973
+2624369
+3895182
+1387744
+15639840
+1659708
+15218012
+10707231
+15157373
+6598854
+3626477
+16516277
+16368071
+9971985
+9083950
+1282104
+11594335
+8662682
+11695384
+11628030
+8067305
+9370545
+14418302
+746927
+9243452
+11972638
+4063999
+1771290
+3673465
+12430582
+7118576
+220830
+15942904
+16385611
+5812074
+11722246
+7163757
+10416172
+6098633
+3446794
+6309539
+2147489
+13775195
+2361458
+9901626
+15250658
+15461882
+14734399
+9653067
+14881281
+4830624
+8698452
+2749545
+5905001
+6360594
+3453619
+8690485
+15711035
+5114080
+10137208
+2629339
+206978
+15530258
+10296011
+10387443
+6921863
+9888469
+9509406
+9255387
+12135186
+8735898
+11278143
+1590043
+11583638
+7943154
+12253758
+12477843
+3661906
+2565503
+2936174
+15036161
+4408671
+13419066
+609893
+13851403
+502375
+10909735
+3398007
+8558683
+13049942
+7060849
+8440531
+7074367
+13084362
+12305859
+8987987
+15628063
+1153350
+4800115
+3649740
+14115198
+2223984
+7283159
+6442699
+12584058
+4045921
+5628139
+8573373
+14544276
+5659422
+16772871
+16571788
+12235581
+2389452
+4182558
+4212537
+170477
+13030350
+12983728
+2746406
+6596510
+422467
+4967179
+991056
+3977036
+7588765
+6556227
+16077898
+5771940
+11462660
+10123166
+4137567
+6727462
+2980387
+5987550
+4561931
+8553760
+7283889
+4835379
+2682071
+16593229
+6905253
+15171361
+14544751
+7679371
+11478609
+497175
+2678029
+15048949
+7798033
+11100343
+15836958
+13599650
+10460955
+15916892
+6998683
+13440452
+6232361
+11687572
+12929659
+7791653
+494914
+13805986
+15540836
+5057782
+15949008
+4383845
+4122867
+9768591
+4524378
+13850406
+14931903
+8252987
+6696411
+8139557
+12661706
+12277281
+9836434
+9233600
+11968735
+12517226
+2392416
+3267419
+9347901
+4761375
+13967730
+1319713
+7219701
+9564580
+1345506
+16612605
+5504819
+1392803
+5982003
+6981881
+3756079
+438784
+14657358
+12608113
+4317530
+15479499
+1765751
+15972176
+1706759
+16109409
+10652209
+11083687
+4797431
+10506428
+13432188
+15807681
+8220666
+7233170
+4656404
+508360
+8212011
+9459003
+13121404
+9322465
+11612734
+14077246
+13730928
+3323778
+13835276
+9336912
+1114215
+7922822
+10823015
+6220772
+2701075
+15277398
+9682508
+7906226
+7484833
+8698659
+7511970
+12181095
+15923841
+13405433
+14432963
+7590780
+11225838
+5825799
+7347590
+13924942
+2531357
+9761335
+9385125
+14876645
+1318972
+12972970
+6635269
+4841814
+14832540
+2505570
+12923067
+3681392
+14812792
+226514
+9968274
+6610539
+12332194
+8781488
+13215567
+7268442
+16310290
+9164983
+1112313
+7647924
+13895422
+6316453
+1905467
+13282240
+14596967
+5001989
+5558794
+7706549
+15087210
+11121384
+11422415
+8064050
+14376624
+1782477
+6903695
+13779772
+3726395
+12401296
+16497881
+2474804
+4196021
+9959750
+8585633
+13775138
+1935091
+3786848
+16230833
+3076208
+4985558
+864901
+3302643
+7233162
+2053403
+11238122
+1908091
+3858691
+12944049
+12500718
+5513477
+13466032
+13309528
+4333085
+1724023
+14939321
+15074045
+2086809
+3140069
+6377707
+14210842
+5657397
+12324787
+15661462
+3592399
+13804397
+7968383
+8487669
+10282209
+1275786
+10044888
+3048844
+15528949
+13086242
+15249921
+15669794
+13347449
+586550
+178546
+3831222
+10238608
+2489838
+3265646
+16372631
+1951004
+16333848
+9650025
+11389424
+2226585
+1237016
+14482403
+547619
+10380522
+15822117
+7077393
+14979894
+9101189
+2805800
+11224471
+5684174
+9923736
+382349
+11047561
+