Taddeus Kroes 1 år sedan
förälder
incheckning
9bfe40bcd3
2 ändrade filer med 2044 tillägg och 0 borttagningar
  1. 42 0
      2024/22_rng.py
  2. 2002 0
      2024/input/22

+ 42 - 0
2024/22_rng.py

@@ -0,0 +1,42 @@
+#!/usr/bin/env python3
+import sys
+from itertools import chain, islice, pairwise
+
+def permute(num):
+    num = (num ^ num << 6) & 0xffffff
+    num ^= num >> 5
+    return (num ^ num << 11) & 0xffffff
+
+def prices(num):
+    while True:
+        yield num % 10
+        num = permute(num)
+
+def window(seq, n):
+    win = tuple(islice(seq, n))
+    yield win
+    for elem in seq:
+        win = win[1:] + (elem,)
+        yield win
+
+def sequence_prices(num):
+    seen = {}
+    for nums in window(islice(prices(num), 2001), 5):
+        diffs = tuple(b - a for a, b in pairwise(nums))
+        seen.setdefault(diffs, nums[-1])
+    return seen
+
+def max_prices(initials):
+    all_seq_prices = list(map(sequence_prices, initials))
+    sequences = set(chain.from_iterable(all_seq_prices))
+    return max(sum(seq_prices.get(seq, 0) for seq_prices in all_seq_prices)
+               for seq in sequences)
+
+def nth(num, n):
+    for _ in range(n):
+        num = permute(num)
+    return num
+
+initials = list(map(int, sys.stdin))
+print(sum(nth(num, 2000) for num in initials))
+print(max_prices(initials))

+ 2002 - 0
2024/input/22

@@ -0,0 +1,2002 @@
+7621263
+7784226
+9825144
+14702071
+3454535
+2506409
+2426453
+1005230
+2954287
+4780000
+3308848
+16403508
+6745337
+4472406
+4985125
+3884685
+14490487
+15096007
+464514
+6171407
+12049787
+14187871
+5965737
+3031881
+5358561
+3127316
+2674148
+4545846
+13251740
+3297121
+3549313
+11524427
+11371463
+13706949
+6386176
+8029189
+7047751
+9576700
+5254721
+298828
+15534155
+2449356
+15388425
+12609834
+10551253
+12459389
+12398925
+9494329
+3272367
+6674055
+1765638
+2499984
+4638589
+6044195
+12582503
+9075466
+14718537
+4038511
+14369146
+7839817
+15052202
+10937500
+14265403
+9888035
+5985697
+15406965
+12923510
+3839460
+14777516
+13573098
+5227919
+1222978
+14128349
+14866394
+8711304
+6526422
+14238345
+4977755
+14408048
+3967107
+10155796
+8246801
+7022722
+3002724
+3612758
+10776774
+5746166
+16371864
+15979433
+2658434
+721306
+275645
+4086264
+9647280
+14265853
+6431652
+10143807
+10345116
+11870177
+6033577
+8379544
+11656332
+2061684
+5848037
+15147888
+12663852
+1384062
+14915719
+9658812
+12567228
+10656654
+1964959
+479188
+2943323
+14320834
+16164330
+635982
+2859400
+4982157
+4292448
+12926595
+14686783
+3411061
+12619948
+3107960
+9624492
+3942490
+893487
+13309861
+6683253
+4604786
+13531057
+13416110
+1457843
+12233399
+13912221
+1847082
+1936037
+14932472
+1184824
+3697089
+6867902
+2741565
+15457630
+8086351
+15310689
+5382844
+7216882
+3329881
+4685048
+1845464
+5877605
+1221124
+1813070
+11365681
+2780102
+16060848
+3479372
+282648
+5396236
+11491795
+16264184
+11728385
+5451377
+4800747
+6742423
+15297271
+14740841
+10818146
+12488266
+16723253
+4741086
+16404970
+8164353
+1536096
+12170820
+10899502
+5880081
+5440777
+3647879
+5855223
+12254113
+12127281
+6283976
+3948184
+16446322
+13754344
+2488730
+756250
+12298270
+1309675
+6178936
+7693027
+10983107
+11503496
+10891324
+11101320
+13402755
+14186459
+2379122
+2150978
+9943222
+2382503
+15778739
+13657581
+13788628
+766443
+7528587
+8391811
+16270390
+2200161
+6481595
+12617743
+1817526
+13164255
+1775963
+11515018
+8124919
+14033825
+13580766
+13279869
+6666425
+4168242
+13046195
+2025254
+688907
+7885982
+5283351
+9790929
+7216508
+1425494
+5615507
+4319327
+6365570
+10133997
+3327106
+15699259
+5397337
+8394393
+15428663
+9651939
+7183462
+15204892
+15287412
+6898635
+9151677
+7619409
+11184680
+683171
+15713822
+13367890
+11755204
+16419402
+10603228
+1946802
+5104133
+13097788
+7892355
+3426806
+7873150
+4631046
+5166068
+6037474
+8049385
+9439831
+11512754
+8795856
+5006577
+7041115
+10153661
+10960296
+15989020
+6948227
+13521390
+7648934
+8776763
+5901939
+6803772
+5657945
+14865150
+7765693
+4635785
+5035734
+16206140
+9635832
+13871781
+852565
+14152145
+5837365
+14188874
+1889753
+5778229
+10525488
+5413232
+13069241
+16218457
+10088301
+16142627
+681532
+3830994
+5602379
+7737432
+12378520
+15173357
+9700178
+9041594
+15173121
+5834751
+10788172
+3784293
+425576
+12582398
+14620265
+6659241
+4798698
+400201
+6163296
+616376
+16123616
+4484511
+399784
+3241944
+15615904
+12581135
+4106755
+14067257
+13749778
+1124385
+2888740
+15700978
+14805312
+16533096
+16434135
+7783138
+5693160
+4864840
+14011160
+4903241
+585793
+15555821
+9832561
+9814465
+11737036
+8895780
+5330307
+4597029
+9025325
+1892422
+15375896
+2774121
+5062838
+6870820
+4281300
+8773353
+2727221
+3442112
+14839225
+7254020
+11497313
+4464227
+490458
+16127470
+15361544
+2228667
+11517687
+6438299
+2640076
+14818753
+15962256
+7566735
+8799234
+1129521
+9738671
+5620955
+6544105
+949210
+2143445
+3038796
+5420824
+6703925
+5452242
+3476206
+11854992
+15653974
+8998838
+9421929
+8830603
+1392548
+15393259
+3270815
+8744332
+1737133
+10317928
+13456894
+138970
+15896028
+10545195
+13472887
+12815344
+15124974
+10405765
+10830826
+14397677
+15714762
+3553635
+10831602
+4136826
+10282619
+5759661
+10455677
+11391739
+16091918
+4476085
+15038598
+16459577
+6857839
+9723693
+11716703
+5515035
+6855565
+2474608
+3457696
+16195884
+13287566
+5062587
+5477268
+14208782
+15732792
+4667353
+8447563
+14065453
+10426227
+227563
+13684232
+2836524
+2595153
+16677204
+8103068
+8185799
+526310
+14753659
+7584914
+15199736
+4404483
+15373241
+6942373
+11933002
+2396927
+6253326
+13210843
+16579937
+11762831
+10093879
+9862157
+9613513
+5516055
+9762670
+10475537
+3978770
+15204830
+14515620
+725240
+5653068
+1292303
+7755264
+5710293
+10611433
+368840
+6241682
+14787961
+6994660
+5577989
+15931504
+10294354
+11335172
+9389269
+2700037
+8403493
+2226408
+5603576
+10290500
+3914723
+7641174
+6713804
+13660709
+11497224
+8909331
+6734191
+14163564
+1517112
+2674781
+5495504
+7837644
+1895320
+2706109
+4180904
+13404518
+11598440
+16197325
+12419427
+5047119
+10833884
+347373
+10493533
+3883029
+2203862
+5264347
+13710106
+9544779
+10993772
+12012927
+16149430
+768236
+14351193
+13529839
+6146625
+16210160
+14100608
+4888866
+13187165
+1666182
+14274454
+6372977
+6247244
+1345675
+2164394
+13565527
+5139029
+12994108
+3331822
+6357112
+15083097
+2344378
+14221943
+11334978
+9568153
+4760810
+11725050
+12519682
+8855946
+13357856
+12559004
+344445
+16161295
+2005106
+2156271
+12422550
+16613005
+8807674
+5194968
+8304044
+9843664
+3309586
+3928048
+14997973
+3226393
+5532012
+8974909
+8354829
+5383275
+2299198
+4650903
+9743355
+12958122
+2588895
+12637194
+8254146
+238868
+12731908
+8919493
+10517442
+16719182
+11771742
+11003581
+2737679
+2439003
+10029481
+1701901
+4472230
+6418630
+13209392
+12587668
+13139529
+14399346
+2003335
+8785580
+13563922
+14280403
+3882155
+6359581
+3617461
+620684
+13688799
+13254781
+6239069
+16510704
+4149890
+9386248
+11238921
+4362087
+13886883
+13359833
+1241378
+10581832
+13811067
+6203112
+10628315
+6513798
+8441833
+12387263
+3631851
+1475132
+15347169
+14940934
+15624615
+3001647
+11609368
+13035072
+1858478
+8926006
+8101009
+9816062
+5006776
+2310061
+13416806
+15401626
+3345165
+238630
+6174967
+8777550
+9087403
+8666354
+6052307
+5163229
+10007780
+10170978
+11400424
+1721976
+12669890
+10993428
+15553584
+136866
+932634
+16056138
+14361248
+12366073
+14063052
+9003457
+6273617
+16339360
+14308134
+6168172
+14567629
+8625065
+16105431
+9309992
+812553
+1354410
+4953187
+16177273
+1994755
+15871938
+10883180
+15810927
+6183686
+13735401
+11988868
+9537496
+6077547
+14658864
+6446739
+3563062
+4664115
+3782350
+7416653
+9888034
+12396058
+15672672
+14449999
+3561280
+7961009
+2318242
+5178864
+9303896
+3510740
+3688744
+5174242
+4821189
+1417225
+6641180
+13995548
+4978963
+682933
+8988170
+7688581
+14619509
+3723441
+9687024
+11217453
+12419461
+16004222
+2066539
+5570254
+10503629
+5429638
+5082053
+1939329
+13067670
+3420663
+12534269
+260756
+15846825
+7594058
+13995124
+6942576
+2433760
+5874235
+16043249
+4615033
+3592387
+12327632
+4345341
+10711765
+12026850
+1864005
+9809457
+2448086
+10981387
+1416169
+7753008
+14057660
+305712
+5013415
+11899462
+543070
+1527677
+11785648
+3501148
+8564755
+10976486
+2689204
+2124305
+7903499
+1810798
+11102553
+11608318
+4163576
+358204
+13149712
+7783955
+1901503
+7897580
+7947274
+6318054
+14730632
+1245292
+15322603
+9721945
+16548139
+11220016
+2088953
+6176413
+5341625
+7984085
+8354005
+843467
+14883411
+7178677
+4376650
+4444838
+12246329
+13667727
+8641406
+6668550
+16528488
+2498558
+2307554
+3848281
+13966277
+10366273
+4837436
+6710881
+13162530
+13776794
+14467780
+15420643
+6245381
+7360147
+568256
+10400351
+14771824
+16190569
+16304391
+3926090
+2079826
+15266805
+14010305
+9842466
+15140514
+7670974
+12585496
+12498406
+4100221
+1773071
+5443087
+1652506
+10085855
+979543
+14070352
+11397936
+15192055
+14116781
+1981915
+10217631
+14818060
+9278917
+11711620
+3581540
+14235506
+2378601
+1016983
+3856272
+6663666
+1137228
+15978666
+4194265
+9960538
+12785117
+7426881
+6507191
+16047070
+1000900
+8085549
+4704885
+14779454
+6943929
+14489739
+6052881
+3555174
+2243979
+16398862
+4268339
+906641
+11227251
+5289882
+9669806
+7928998
+6321937
+3582057
+7221543
+13843140
+642036
+15020762
+149069
+16350876
+6156301
+8749189
+12497123
+7484481
+484088
+4854190
+1990249
+6270451
+8959972
+4453884
+8726447
+11102505
+2227580
+3442522
+7993304
+8377577
+11467089
+12695841
+4360322
+12765808
+16370693
+9261327
+10426806
+7184272
+14616790
+15751239
+15447588
+7442239
+11267584
+11575399
+11205565
+12374828
+12665351
+8368874
+4409192
+15996180
+10371349
+407350
+1204662
+2716390
+12727094
+4953467
+11228130
+13828531
+10208692
+10688773
+485688
+11998092
+2194575
+2902986
+12006167
+15747151
+1557157
+779803
+5891670
+12786594
+15916337
+12263358
+8907129
+14739179
+12762856
+15799147
+15717750
+5609593
+13708878
+9326958
+4423736
+14242934
+12027576
+1622593
+11108840
+8662158
+9470428
+6561089
+4437561
+12102555
+4439536
+10811923
+2411135
+13133539
+15941606
+4971549
+14506547
+4432315
+8322987
+423490
+13788876
+6852257
+13497099
+5714268
+7810901
+13520152
+8075364
+6166843
+13318441
+7313830
+3439157
+7311754
+1277792
+5415071
+8832355
+12019143
+15504188
+565327
+15174411
+1979545
+12742307
+15816542
+11989440
+12132066
+6478893
+4566065
+2020926
+9813405
+1755083
+16239891
+5351125
+5004807
+16531747
+15940353
+15381546
+3115446
+4277991
+5829844
+1938258
+14683959
+9896526
+5454435
+10618333
+7253813
+7695511
+11944532
+305634
+2281902
+7899157
+1809626
+5368859
+4603303
+7771079
+4517307
+9282950
+11778952
+12301726
+11662242
+5184341
+11224796
+13919730
+9993602
+15875985
+6123082
+13756254
+14988446
+9562422
+12165252
+3726151
+1504617
+8712326
+5523872
+8959443
+917287
+1357247
+10626431
+6534568
+6384872
+1995418
+11557159
+7532067
+2018790
+1836940
+4883839
+3266283
+14230312
+2411065
+16374184
+3095483
+11833224
+10262597
+2582803
+13104199
+1010175
+7165516
+9822628
+12236709
+13900665
+6136782
+16373695
+522852
+10613980
+15816594
+6543478
+719812
+12051311
+8983100
+6972723
+8058593
+3095601
+14711760
+4323079
+291218
+13245933
+13994522
+16233027
+5148128
+4307284
+608057
+3476566
+7495071
+9597334
+1449493
+15222207
+3466080
+11584068
+16495546
+15740863
+11444850
+2188403
+4857486
+10594488
+12743148
+3194978
+10947476
+2615891
+7167736
+5930484
+16620836
+11274601
+10258811
+2777228
+1368571
+7188519
+12609073
+5023206
+9725379
+2387776
+8200944
+12005022
+7739927
+15221228
+5117768
+9229855
+11507266
+7062078
+8607286
+11653581
+5909028
+14007992
+9721529
+9678858
+12948249
+5410619
+1249856
+11064037
+14824962
+15256907
+8344254
+14349038
+318789
+5671466
+3717128
+14579925
+12925450
+1266621
+10376870
+9579270
+7226072
+10835717
+14412490
+3857300
+6835298
+9614315
+473666
+9846093
+2754895
+9312620
+14436751
+7786706
+3406005
+8221302
+6091800
+8630038
+4982318
+8696486
+14341976
+13814135
+11265913
+10653121
+7831178
+10073163
+7872503
+10251531
+12687585
+14293600
+5660596
+11246010
+14064020
+6040181
+13199108
+4594565
+14704747
+14777967
+12566387
+10482899
+7208018
+14594657
+4315980
+6908732
+2351473
+5825351
+6210754
+6232586
+6046466
+15144321
+16255402
+9325831
+325554
+181716
+15953536
+10629963
+12734367
+1118189
+15331496
+8254404
+14257807
+13403900
+7297476
+16621347
+5565639
+8090385
+15471195
+16575536
+8963854
+603276
+249399
+15080451
+936995
+12345581
+14564965
+10439252
+14474371
+5326290
+4008221
+3717893
+6320874
+15342345
+11760794
+4640822
+12114239
+13352669
+9241694
+15375239
+3068089
+1805287
+2311780
+346323
+10251832
+14291177
+7754849
+9683057
+1316451
+13847844
+5067365
+2300431
+6107669
+11657710
+2671872
+593809
+15461361
+6780946
+10017645
+11618222
+9579909
+829645
+13949785
+2144989
+286320
+7604726
+5181765
+13420789
+13167694
+5422865
+7655393
+12579578
+15386559
+5443765
+4745064
+13183506
+10505227
+9710806
+15642977
+8835561
+363535
+9383973
+2771756
+15202785
+12514039
+13174451
+208715
+4582441
+7819831
+1334203
+2404460
+13728813
+768689
+14924093
+2582301
+2876992
+12277132
+2743259
+3424568
+16089094
+8875127
+8720655
+16072235
+14732271
+16062827
+254334
+3572392
+4002134
+2420141
+1585632
+5844620
+2274812
+15474721
+919152
+15267396
+13698103
+486697
+10093204
+12057488
+4688617
+16535640
+14885845
+2434342
+12193854
+475952
+4970449
+2654059
+2381431
+2715066
+7070797
+1414996
+13588815
+12322699
+16407050
+2077052
+16372557
+5337844
+3564106
+7274336
+2480908
+15000227
+14141320
+16196081
+13455775
+12498119
+786180
+12408795
+7484302
+14897166
+1820257
+14054670
+5449017
+5472077
+3369364
+15095215
+180596
+14183039
+1375710
+321005
+13513916
+1923112
+13339043
+2189271
+13496557
+2583161
+13476427
+689667
+12788598
+10893760
+6073411
+3637913
+15461072
+2704063
+9830835
+2083883
+13688491
+15988024
+8777023
+534979
+2072684
+10172130
+8319867
+7672723
+7607982
+881232
+11887270
+8229614
+7562784
+7924193
+3002457
+583748
+4676507
+14859745
+7867315
+4017768
+1635927
+373826
+16665516
+8219811
+5256485
+12566795
+978924
+5483198
+2477584
+6886029
+16001703
+6602930
+6462518
+6558940
+13842075
+392318
+16210816
+8564386
+9398610
+15475022
+1424606
+13938571
+16337524
+12523824
+15101680
+7727046
+4251861
+12940112
+14865996
+4727287
+2185352
+12823079
+7390583
+3067614
+15070738
+6495176
+1142342
+6276500
+6399329
+15565089
+13655204
+3886526
+4537091
+5399587
+8838384
+1152124
+7818855
+4574793
+14058935
+5415422
+5259489
+11351702
+8942916
+6778560
+12196189
+11664559
+1861260
+6387002
+12328063
+15514753
+3489294
+13715889
+14282533
+4984757
+4701639
+3780141
+2904555
+9262632
+544469
+15740747
+6195860
+2204041
+15554408
+14063508
+15531967
+491663
+4813693
+8260969
+2867077
+6035502
+10135132
+12593985
+6895143
+10259384
+440595
+10231285
+9210352
+13847588
+1011502
+2175312
+13068567
+5865755
+9237892
+13052598
+7786554
+15315266
+6641515
+2979041
+12837032
+5916568
+11090873
+10361082
+618371
+10491840
+12551388
+13996366
+650788
+5173189
+12156119
+16253612
+10994727
+6115589
+5783349
+15387710
+14581671
+9511108
+9656091
+2075683
+6908973
+13330764
+5881410
+11342478
+10186735
+13622154
+10437138
+6709052
+13794535
+8961175
+12318287
+4292457
+8430397
+10631126
+15984543
+3939827
+8638586
+1241883
+5983168
+9754259
+10397132
+11557792
+4688036
+6469680
+10644359
+10413708
+15179420
+986172
+9442274
+6339413
+6671265
+3578339
+9193146
+169848
+923138
+12801624
+13080297
+16690860
+11223863
+14229552
+10879860
+11644709
+14187331
+2839774
+10204823
+8819538
+3496409
+9629118
+13647436
+8622090
+15780781
+13213664
+1187997
+15668305
+14622609
+16060399
+8539560
+4172905
+6090653
+293857
+16342226
+178788
+2864695
+3133460
+3098149
+9814041
+9387276
+16422495
+14821227
+2402072
+12306410
+7587170
+4397580
+7184398
+7508759
+7699953
+14212637
+8997371
+16290613
+9250240
+10654863
+8886179
+6452145
+12978933
+2986177
+8518828
+7120823
+9202973
+5360911
+15384894
+13404178
+1580834
+13392234
+4636684
+13397409
+14957708
+9927198
+4484428
+16217096
+13566986
+1942374
+15454833
+7799287
+10144694
+13780861
+10125363
+10273717
+6963667
+11074601
+8619023
+12505311
+11890921
+13499867
+7910699
+8722158
+14813499
+6614185
+8096883
+1484524
+14458197
+6743681
+7596462
+947390
+10632490
+12659980
+10891612
+2077096
+14824642
+680112
+10812005
+7530810
+1296867
+4343879
+1232045
+16455512
+16474442
+9443824
+5525567
+2045760
+215333
+13924487
+15379679
+13004088
+10349923
+13747713
+6291879
+12353334
+10089528
+11872514
+7399589
+14508838
+3917766
+4689595
+10248558
+12600168
+16029256
+4136202
+10718240
+16677629
+10854012
+376708
+6027897
+1845796
+5346052
+10534907
+2130789
+5804437
+7698341
+7367592
+13913268
+6440237
+6891232
+3708142
+15782821
+10444469
+10213433
+16120396
+140643
+4685219
+13748213
+11739319
+13308358
+778453
+5202522
+4300340
+12132945
+5114620
+1048541
+4324384
+4231855
+7006479
+7986808
+6736661
+10474735
+14783265
+10303618
+6225897
+16092956
+502557
+4086756
+13415868
+6754294
+9288032
+8898373
+16559998
+15819336
+14701753
+6717193
+8968122
+9252738
+13400375
+13632364
+4205288
+1517614
+14630718
+5188842
+4278994
+9150798
+3518880
+10511939
+1377264
+675252
+16535020
+7638299
+14523377
+11900937
+15514881
+5084375
+11425258
+8397456
+359076
+13423843
+8810707
+13675095
+3791180
+2278598
+15364921
+12266028
+9925234
+948138
+11274038
+7807879
+12024692
+5975798
+6774506
+12240466
+2847449
+3355233
+6107054
+14942613
+4813012
+14562494
+4856958
+3924989
+6838299
+913690
+4059636
+12845424
+16443554
+2194771
+7840589
+1806340
+15989883
+16631659
+1737700
+13611043
+4531975
+16425714
+3274372
+2803451
+14657462
+13770202
+4761564
+15613156
+12761854
+8849586
+15369791
+12153108
+2121131
+6672369
+10281671
+9420180
+4495249
+10494823
+8688044
+7686215
+5659256
+13647913
+2114947
+9682112
+4810898
+5824900
+14599625
+3695753
+14023155
+15622238
+3588329
+1064367
+5366382
+9301862
+4638624
+9983861
+3647454
+5920493
+9119531
+8644739
+5415985
+11949816
+15842455
+13639180
+542117
+7651896
+7936199
+16631301
+4426332
+4746006
+8795832
+8699141
+4305421
+11838886
+7087818
+11524116
+7538851
+3674274
+4337281
+11540817
+13225650
+1885410
+4747175
+2748766
+6047803
+13191344
+4908835
+10849336
+15957665
+12229494
+9037641
+6779988
+417729
+4219068
+6471110
+10211284
+4106491
+3815535
+9459383
+4003579
+10355052
+16539469
+522165
+12987957
+12208630
+8720195
+3205878
+7433876
+14644112
+7480573
+894718
+5200627
+6949908
+3950735
+8185438
+3005365
+16027429
+6638405
+7647356
+13569168
+8241905
+15550193
+7713592
+14120152
+1169235
+4393989
+6480326
+2771031
+290949
+322965
+1913283
+10797806
+10781886
+11628075
+14080263
+10182946
+10632500
+15581107
+5482353
+6785277
+2594450
+759144
+738344
+911038
+3209859
+5646743
+12660880
+2712929
+10461945
+3630180
+569446
+6435134
+10840023
+1518965
+15401243
+3334317
+13907995
+2925134
+8963760
+8507672
+10125337
+4081566
+10034414
+14709700
+12068408
+7505486
+13264097
+7469625
+13604495
+11118426
+10582816
+11285553
+15991550
+1830054
+9406278
+8846847
+7600342
+9818872
+3785652
+3615559
+13213113
+2132744
+5400938
+3937611
+12397392
+2717530
+14615143
+2286107
+3535737
+6699770
+3057846
+10819971
+4039910
+1014938
+2802899
+11035107
+4946367
+8839880
+15304386
+14964941
+11349614
+4227826
+11740572
+10210754
+16272867
+763604
+1551607
+2453330
+7322028
+6136993
+11223542
+9621646
+15531703
+16703186
+3475035
+15137995
+14132008
+7389930
+10191402
+8281760
+3489168
+11783101
+7104547
+8399669
+6087121
+8044004
+3471712
+13091127
+3918678
+14499076
+7394542
+7489770
+4302520
+15450172
+2813042
+7177852
+5139876
+11613398
+12659248
+7747050
+14573256
+1130916
+7293686
+3458730
+5087149
+3747062
+11729613
+9245105
+12380116
+7375881
+6066493
+4600953
+5114345
+12377862
+4603221
+5338189
+11999697
+8350031
+11871633
+15508544
+1413945
+4613304
+1132521
+4229916
+2852009
+2042028
+13094491
+3545841
+14882197
+15214020
+4544310
+4632290
+11170413
+2253919
+4872828
+6884203
+13789153
+4021028