Browse Source

Solved part1

Piotr Czajkowski 2 months ago
parent
commit
f9d76060d4
2 changed files with 2275 additions and 1 deletions
  1. 31 1
      22/code.go
  2. 2244 0
      22/input

+ 31 - 1
22/code.go

@@ -29,6 +29,36 @@ func readInput(file *os.File) []int {
 	return numbers
 }
 
+func calculate(number int) int {
+	a := number * 64
+	number = (number ^ a) % 16777216
+
+	b := number / 32
+	number = (number ^ b) % 16777216
+
+	c := number * 2048
+	number = (number ^ c) % 16777216
+
+	return number
+}
+
+func generateNumber(number int, iterations int) int {
+	for i := 0; i < iterations; i++ {
+		number = calculate(number)
+	}
+
+	return number
+}
+
+func part1(numbers []int, iterations int) int {
+	var result int
+	for _, number := range numbers {
+		result += generateNumber(number, iterations)
+	}
+
+	return result
+}
+
 func main() {
 	if len(os.Args) < 2 {
 		log.Fatal("You need to specify a file!")
@@ -41,5 +71,5 @@ func main() {
 	}
 
 	numbers := readInput(file)
-	fmt.Println(numbers)
+	fmt.Println("Part1:", part1(numbers, 2000))
 }

+ 2244 - 0
22/input

@@ -0,0 +1,2244 @@
+15128584
+6068642
+7066151
+16392702
+8788373
+13251978
+15797919
+5732966
+6254127
+14185894
+5032674
+16293660
+4780212
+629716
+7236015
+5891210
+9512401
+3140367
+12220456
+13628379
+9885666
+7035570
+8487857
+13623527
+5341695
+4961233
+316871
+12730720
+916742
+11291897
+15171099
+11772384
+6452140
+5221285
+4123328
+3552893
+11240482
+6886784
+15497562
+13638438
+12443026
+15789873
+5861024
+2875740
+12092840
+3384525
+13227689
+8903326
+11971978
+5427852
+1207235
+10794588
+2618855
+8922199
+8711844
+8400184
+15273604
+829930
+13090055
+2879242
+4623970
+1475844
+5375692
+6394703
+12189086
+15749360
+14227667
+13463915
+11768192
+10713101
+6675395
+2420122
+836758
+3669657
+6430479
+16035181
+10055776
+16306938
+16552298
+5529902
+3965725
+12272912
+1544930
+4344781
+260656
+3950807
+5064115
+14399154
+16320556
+12525173
+3575006
+8988465
+12766186
+9698404
+16375378
+10743364
+7128064
+11770095
+5571944
+12637659
+11679442
+7911498
+13301006
+4384536
+4297416
+10425859
+4365057
+3934111
+3851140
+8098852
+1573362
+9457514
+10979254
+4268688
+1239890
+2828683
+1562370
+6714994
+12193303
+12097218
+16234363
+5353063
+13777275
+14032368
+15650448
+5127465
+4150591
+11096605
+11749589
+3070939
+6909870
+4220202
+14493368
+7102472
+1198085
+7890693
+14207308
+12566862
+9031043
+2871534
+5370212
+13408620
+12868566
+6711335
+2157495
+11749384
+13551623
+13158760
+12910164
+4819895
+8454523
+10670955
+6319516
+15455591
+7980037
+3033334
+9742554
+14250764
+16184921
+14440229
+11462686
+11443374
+7956095
+13172939
+14695730
+1424512
+7467075
+15853923
+379003
+1988993
+604884
+300621
+14702422
+7329138
+12738300
+13980133
+15569864
+9356390
+3695003
+12949101
+2260133
+1093426
+4762169
+13028558
+13627645
+11555895
+8969878
+9869776
+3637571
+478367
+6090324
+10199449
+6994934
+10408197
+14348243
+6234645
+2165112
+4405499
+1033586
+10940250
+14261118
+14605880
+12491623
+9369080
+2729741
+262275
+4597333
+4097249
+2636794
+11203444
+7558343
+11612077
+6074844
+3583252
+15191448
+8216765
+7563240
+998693
+12205622
+13553208
+12651152
+1565301
+1507726
+3041974
+4505261
+3116821
+15801922
+4679691
+7239127
+4489087
+15322244
+2235846
+901609
+7927051
+12494041
+13736632
+3026427
+11903683
+14419100
+6631198
+15948004
+8748746
+1314529
+8782096
+14723107
+4954852
+4236295
+16172098
+2146597
+5547632
+2530009
+8574557
+416307
+500817
+1052623
+8552391
+3680995
+13705616
+8950912
+15334184
+11636109
+13000574
+12056307
+11899329
+10483548
+12062462
+7209204
+7392565
+5110439
+15901788
+5140241
+9047664
+16365241
+9389235
+12986455
+8204826
+10881219
+9552169
+2154327
+10031916
+12688016
+15139517
+15162715
+7950641
+8854690
+4279374
+8136189
+3454766
+8788391
+426391
+16611028
+4572977
+16539812
+14121598
+536568
+10119987
+2095385
+13153261
+11760293
+4627263
+6938639
+13329322
+15332915
+16334986
+6870634
+992542
+1551657
+12184256
+2797311
+16567059
+13860603
+7312795
+8365496
+11149177
+16251770
+3940021
+2107320
+5953553
+10231264
+5167987
+4415122
+15152801
+11913880
+6851322
+9831888
+8304326
+4569037
+6458713
+13781410
+10351607
+9709817
+11834651
+1922815
+10244451
+14437505
+11077898
+2099390
+504966
+11293548
+4910634
+10803443
+932908
+12677696
+5356430
+2198139
+903502
+10813908
+11274310
+15362827
+4753391
+11783131
+6032459
+4104673
+1678442
+5325751
+9879093
+7256651
+7632908
+1887458
+6264149
+8057431
+4980458
+11354142
+2760911
+8666479
+7541446
+15555375
+5410180
+8341360
+11850978
+10461117
+16223110
+15398508
+142336
+10619018
+2412140
+3753890
+5183114
+3525601
+1474277
+998987
+9364508
+12565156
+3577260
+13744275
+6852317
+3244066
+7621952
+9379758
+8101407
+10855199
+6948534
+475920
+13427117
+2322520
+5399406
+1930208
+11413960
+4678888
+10061710
+5688393
+1324175
+5175235
+7791828
+8394183
+15681483
+13774740
+12802193
+9376122
+7034763
+3795442
+2912137
+12914080
+16041944
+6386953
+1981647
+1260165
+13859843
+12955987
+13052651
+15833040
+13715859
+16492831
+9154056
+13471673
+12216753
+7203585
+9224291
+2840757
+6169406
+10958471
+12053708
+7235137
+15315770
+4104873
+6196139
+5631691
+3742247
+4292518
+1262299
+4959861
+3386669
+210218
+8727910
+4940802
+3175064
+8478113
+9700167
+14112397
+5233643
+2405319
+5683276
+5291680
+4220526
+10492775
+1194335
+13626351
+6696537
+10184069
+716479
+3744148
+14240521
+10053076
+2657533
+3902612
+15903953
+8697754
+8483854
+12946313
+13473969
+7214547
+11118646
+6246850
+1328438
+12554619
+553531
+742296
+565044
+3347604
+8282115
+3466391
+14225050
+6198389
+5309060
+6029827
+4586709
+3728808
+8324833
+7136411
+15253607
+7361116
+2335874
+2364093
+2025027
+1809983
+14001671
+2961379
+8596074
+3996222
+1457458
+3641136
+15005629
+801849
+11886375
+11793387
+670911
+13327780
+13137055
+10959892
+8691987
+4549451
+585312
+12563903
+6397940
+3310675
+13948558
+15685551
+14895029
+2937337
+15411541
+2176912
+10682216
+15943688
+6739948
+3773544
+6091628
+4258718
+6188544
+2115919
+4454706
+8299827
+3133517
+15670002
+8176638
+11591735
+7289175
+10103154
+4401315
+10064170
+15144011
+5566219
+9340759
+1631796
+13538100
+5186160
+15921578
+7616971
+764685
+11604231
+8687983
+9831954
+4367018
+12945698
+10130720
+15373841
+14325442
+15148576
+5337233
+5534439
+12751680
+7350162
+8038232
+6890126
+1529182
+10637531
+4145713
+3004076
+12515618
+15955816
+15418347
+13797460
+13966438
+16331351
+9324040
+2346110
+13834199
+8377983
+12208932
+13353017
+4874261
+10145014
+8115850
+1035914
+14800010
+13834186
+5674742
+11798526
+15954850
+8335396
+13510527
+15223020
+3453542
+2980385
+6186744
+11186771
+15498752
+2323628
+4723917
+15265332
+8912160
+11085327
+11224120
+1867306
+10001364
+11509870
+9102656
+11978190
+11221813
+11787075
+4607853
+3585383
+14800117
+165836
+11152983
+13678607
+3155681
+1863098
+10177890
+1168982
+12421446
+8368825
+917482
+7051033
+5423720
+15407682
+15914763
+1965810
+2958895
+13609661
+4401068
+15650658
+958900
+13930868
+4772913
+16561264
+8475517
+517825
+4503128
+8062469
+8141010
+14802873
+10606884
+13366539
+15750154
+8702236
+12253602
+12056230
+8053865
+9244797
+10363220
+5752215
+12391386
+16634770
+3200923
+10935854
+8222368
+12554794
+16626252
+14655428
+7686935
+3298512
+6742453
+16689917
+743572
+3799048
+16692205
+8407453
+13908638
+10707479
+13209364
+2033393
+3786207
+13418136
+12401760
+6206016
+13292676
+7532435
+8247133
+9771752
+14241082
+7810708
+1879973
+9270069
+499775
+10045729
+9363613
+13149948
+10720981
+13525532
+8021036
+8817028
+3692512
+4197621
+13540494
+4568634
+14841435
+7391040
+491361
+15056097
+15538451
+11147496
+1182415
+13029396
+10978364
+1720947
+10022563
+4980482
+8458806
+1874649
+14442313
+6231353
+6217553
+13257488
+14811777
+15388821
+446812
+7906300
+3573092
+5845280
+1723721
+656257
+2261943
+12872913
+11454588
+14696036
+11690563
+2323709
+8631820
+6448688
+12065482
+1581078
+5322658
+8131514
+315814
+12110936
+10939279
+12986320
+12883137
+2867629
+15825761
+9909099
+16032424
+12158727
+3462432
+14673709
+4780243
+4836362
+8371050
+15038001
+2609920
+11153344
+15821507
+8497669
+8664197
+3080867
+11608686
+1727573
+16052468
+9818638
+6189738
+7765541
+15910171
+3078086
+3548742
+4461439
+9495972
+11677133
+4106311
+8936777
+11368143
+12195960
+16381056
+8032374
+12940004
+5988870
+2349590
+4008432
+828336
+15869903
+4576572
+15947945
+14051652
+4953160
+6463646
+15188660
+2583972
+7816907
+13976475
+6797025
+10159231
+11928924
+1152694
+901443
+2216041
+11913501
+497793
+13936108
+3667439
+8773481
+15495339
+8356260
+3365391
+9841389
+3306003
+16628660
+16608828
+12572012
+16184625
+13927877
+2376133
+6848262
+1998738
+11718273
+6746357
+14968612
+10662098
+10760469
+3352195
+12689519
+7276305
+13823451
+9496113
+13322291
+3162569
+11677474
+7012437
+808431
+5592993
+6199259
+9287668
+7013564
+12996584
+13934576
+835801
+3893612
+12478571
+1758025
+7066225
+12880174
+5286275
+5921813
+16433347
+8616112
+6562397
+8062563
+1775601
+2010748
+14390274
+1002056
+3238368
+7731333
+14237656
+3277230
+5980780
+8279933
+11805718
+10082151
+10391160
+6850220
+12602127
+6669730
+4802194
+8914869
+13264666
+12003746
+8097931
+13515424
+12849529
+592285
+8394099
+9316152
+5065923
+16490215
+10345673
+9054380
+14278673
+12810728
+9245540
+15426288
+9737609
+5148191
+5459635
+1883727
+10750397
+1180214
+1721429
+10404859
+9605112
+13834848
+4117713
+1770082
+5740188
+10307952
+4032328
+3617880
+664667
+3550897
+13442418
+3610368
+14583960
+12829497
+7947275
+5255854
+10982358
+3764347
+4797905
+10919603
+3464942
+1207025
+2336746
+15168088
+2450817
+5774908
+13096729
+13097431
+356377
+14769056
+7206787
+725121
+15679875
+13068197
+3907122
+6255794
+14995147
+526253
+14521693
+8249979
+520140
+8246194
+2399416
+15667785
+3783766
+15979172
+10626693
+7023907
+11556191
+2146532
+15766300
+4957011
+13641806
+7159551
+3520451
+1364089
+11477204
+9040684
+10532163
+9079915
+2714278
+12960068
+12251047
+2268722
+8641546
+7436973
+14687398
+7176662
+12600093
+14981457
+12333842
+4795780
+15355555
+16516594
+982094
+3724026
+11744837
+12964413
+3484514
+6687196
+11305542
+10676647
+3558558
+16425707
+3153389
+15841433
+8279799
+10261959
+2248519
+7196548
+12318303
+6766362
+14299200
+9877119
+4601402
+6448832
+10034606
+14161264
+7112166
+2320529
+8543840
+234562
+8208583
+13842979
+15563829
+14511507
+7413978
+16316368
+10795205
+3841048
+5445631
+3927812
+1987655
+6309717
+3725932
+312999
+9864507
+15535772
+4351373
+1518622
+11720581
+1503483
+4690821
+5914415
+16244668
+10073491
+11238952
+9274529
+3721448
+5388544
+13522364
+14504503
+3874039
+12923313
+13646382
+13896207
+9468165
+7052715
+3770785
+322370
+11252430
+6479833
+10714947
+8733932
+6992508
+7196966
+15370788
+9714556
+7350436
+647586
+11579306
+11372927
+7399722
+10649483
+4450467
+14837932
+4357804
+6878336
+4234622
+15894865
+15811609
+16243748
+2111094
+151711
+9869609
+10048115
+15120752
+14212546
+1347534
+13599323
+5921398
+730367
+1608129
+1365652
+654922
+16585546
+7457774
+11185816
+4741724
+13149989
+14225115
+790357
+889801
+14055626
+4709586
+6404742
+10490217
+10141387
+16338479
+8898528
+12406035
+5153163
+13889297
+15736822
+3706700
+10226212
+8236395
+2416994
+14680160
+6497331
+12210319
+12258543
+10275746
+15587686
+6601006
+8590500
+15810322
+14396525
+8120346
+969483
+15793164
+1690398
+15484971
+11101138
+339678
+15790207
+1575459
+1237943
+6106167
+5239408
+14710202
+3122119
+14298679
+12289926
+16723614
+14942848
+16758994
+12587939
+10464429
+13603762
+12093345
+3537047
+5177751
+6626808
+12124116
+13833990
+5163171
+5732743
+13418791
+8889986
+1535360
+7563095
+13171196
+11359648
+3822012
+15214849
+13700744
+6846325
+4887512
+13232252
+3769092
+2938545
+16647145
+12761753
+3675740
+5194544
+6630936
+4624214
+15128416
+16644209
+8269991
+2557781
+3445719
+6630934
+6784657
+7384424
+4014089
+7819798
+16193402
+11222464
+1468495
+2499273
+5447219
+7383409
+15271472
+2547869
+16060135
+9343984
+9595192
+13014934
+7350737
+16500962
+7510608
+6865738
+12928325
+8468969
+2793669
+11974763
+2381549
+13602352
+416639
+9236571
+6553122
+7880528
+4509902
+10021261
+16366995
+3551406
+12426620
+5725685
+10911393
+8593069
+8180019
+8348372
+15174238
+10824192
+9661778
+4267709
+6576252
+2494516
+6151266
+5136032
+6275354
+1948867
+1123850
+189722
+618771
+14165336
+15140401
+8782666
+1343017
+13217675
+7284820
+9716642
+14024519
+6061596
+7336619
+706888
+11489829
+14958293
+14612878
+2020516
+9685096
+2926692
+11758609
+12757956
+12499156
+1081340
+8761374
+15545944
+15475214
+1141056
+9810086
+7924955
+6046202
+6887135
+3794051
+16481442
+4631587
+16306027
+9190020
+9019977
+15583241
+9123651
+3498000
+2841846
+16471018
+8027646
+11558163
+11901629
+7800398
+1208987
+10253239
+14281794
+5439053
+1416594
+5201250
+10123139
+6096285
+14535242
+4408017
+5196404
+7288131
+3330499
+16360444
+266713
+12594175
+5301754
+1728338
+11405951
+13263253
+1175659
+8081529
+12676751
+10502529
+12461355
+9295447
+7506290
+7567317
+2819943
+5558365
+5414471
+15167909
+1673872
+6569325
+8239753
+4951241
+9600338
+4727945
+1963009
+11941502
+4798294
+12743314
+1651136
+4424478
+10537222
+15940065
+14808881
+11546631
+16667640
+13800007
+9660901
+2486699
+12016447
+10560328
+7234084
+4009932
+15260593
+11610285
+6645400
+2326293
+6415693
+5708983
+7428327
+14956119
+15451954
+8442898
+2352711
+13253913
+1648400
+10160257
+1757295
+15320456
+14781107
+1339617
+14834578
+7670601
+15654467
+10326401
+12376377
+4964435
+8831736
+16545876
+2808094
+7386770
+1265740
+1197653
+11807793
+1644022
+11682930
+14384358
+12975694
+8218695
+7616391
+12180312
+6616059
+16690230
+12486409
+5218530
+10667742
+2753805
+6200414
+8800900
+3954811
+5988773
+15900849
+6522109
+14803677
+11688294
+8737286
+901608
+5623239
+15111817
+2795632
+3178102
+5828610
+16015151
+2256457
+8272605
+6394683
+9007207
+6845147
+255373
+12554456
+12223713
+2433836
+6172073
+5778171
+2687428
+925888
+12451546
+15397311
+8563923
+16441555
+14491323
+8707472
+11576609
+5369856
+16409433
+8769334
+7313492
+8820103
+5553192
+7444710
+13643721
+4859465
+1825960
+14386295
+10264556
+12796198
+1239967
+4236637
+13313650
+4900035
+11693139
+10882263
+8779650
+8773867
+13533809
+2279222
+2020159
+9239366
+10462890
+10827235
+8800961
+15726570
+355046
+10776076
+4391478
+3672390
+10857216
+8422344
+12270465
+13608965
+12956552
+12226456
+933556
+7496191
+11392201
+4291820
+12269952
+15101660
+2322059
+9287305
+8958430
+1343752
+10338938
+6763840
+10373177
+3156331
+10051842
+5482896
+2504622
+8053735
+4423836
+10356042
+14325030
+10551510
+16534286
+10869374
+6219165
+10491071
+166148
+12409940
+5455413
+8540708
+15731632
+1607823
+10818426
+694708
+13162378
+14782673
+11490754
+7242323
+4394091
+273597
+8846452
+4518953
+5609280
+2127200
+15797975
+4194211
+9648741
+16278073
+8668140
+13083239
+14539909
+8342647
+10029584
+12611688
+1858604
+7801061
+16584467
+10636758
+4293100
+12285997
+6158554
+10239813
+14273748
+16374506
+15792612
+2094934
+16551772
+7665433
+13843052
+4478008
+3116690
+16259652
+16511883
+11406054
+11441229
+6185679
+10990389
+11524409
+10895493
+10311277
+4326326
+11258658
+4657066
+4962284
+5696796
+11561186
+13552855
+13080041
+5840873
+5012676
+14180637
+13611827
+6917197
+2880746
+16227810
+3173105
+7310691
+14361012
+14143831
+10027698
+4805104
+2167261
+1823366
+2467315
+643475
+12610262
+5963808
+8973681
+10765189
+8266974
+9913180
+16479278
+11200690
+1363747
+7305395
+2516898
+4987713
+13381594
+1061871
+13026327
+14704528
+8351273
+10112583
+13946062
+1368871
+8824842
+6636715
+10339535
+9831193
+1346461
+4158508
+16166147
+1280574
+8446481
+14132141
+7291231
+13507999
+1575179
+2295413
+15809908
+16605340
+2043557
+4756511
+16020482
+2207617
+7686724
+4057492
+14815371
+767131
+2867728
+14560586
+3258655
+2340389
+5400747
+12126417
+12631276
+15550729
+2224238
+13610001
+8734033
+3631591
+7897341
+5442828
+6622823
+788881
+5187582
+6019831
+6401312
+12148984
+12992165
+5744312
+1195846
+15351867
+13001320
+16248423
+3451051
+10664648
+8425287
+2324344
+14715914
+5086266
+5014865
+7519327
+4000012
+646396
+7053455
+4344133
+10761982
+1153003
+6838804
+11497523
+11751586
+14409848
+15462901
+6722199
+9421993
+2767167
+12018694
+2081934
+11455239
+6591135
+15620982
+15550574
+6872470
+10470752
+519196
+419684
+1268969
+10937404
+3568117
+635054
+11261298
+5623272
+3938378
+7369972
+14585735
+443690
+14985560
+7882941
+9657071
+15203172
+3527809
+2814105
+3446532
+11780430
+7928828
+8250824
+12076927
+10430077
+12038814
+14732158
+5652063
+10696931
+767639
+12907935
+9496909
+10989201
+3257905
+10445569
+3456818
+11649965
+14176056
+538774
+15037821
+6719998
+10633326
+13396424
+15374090
+10695702
+3007840
+11038285
+16159781
+12012025
+5308453
+4253790
+16017294
+7849165
+6303989
+14368990
+15674122
+4864309
+13887785
+4418404
+14080549
+3752166
+8404235
+10173256
+15708045
+3070500
+1492460
+495381
+5921644
+3566614
+4739895
+6867340
+16604110
+13522725
+4912584
+13033790
+8736293
+16094722
+6681463
+14754417
+13149819
+4781158
+8673716
+11701343
+15405288
+14620999
+13999186
+1936461
+6312012
+16203977
+8802517
+12347413
+908615
+10980396
+16023125
+3125182
+10042793
+12427408
+9434565
+12248204
+15671983
+3514020
+3276148
+8035539
+2958953
+842285
+9538784
+8376333
+7572147
+7800471
+13245051
+1951864
+3467581
+5933807
+12600191
+2502501
+2838533
+1732872
+14190123
+6134179
+2032555
+579300
+14090104
+7949139
+1244381
+11678757
+14825240
+1056547
+13718308
+16204981
+6360514
+3321497
+13762812
+2913222
+11330276
+11286659
+3725105
+8225745
+5242514
+11278823
+12966681
+12423025
+9745144
+5496303
+2404390
+4184230
+13692119
+16608338
+7720165
+12650084
+10941531
+15680636
+461157
+13899846
+11587179
+8726639
+13253737
+16221116
+15227312
+9854413
+12911022
+12286508
+14498258
+8427480
+13500668
+12352054
+11841039
+8037237
+8910691
+3347590
+11226601
+15374379
+5956995
+11050155
+14585541
+147472
+3727958
+3314875
+2430819
+8640076
+13477192
+14849472
+5892510
+2062697
+1939476
+8303502
+5828453
+14722557
+8426511
+3974880
+6657232
+9683122
+14547740
+4653456
+15719978
+9026947
+5832120
+10767367
+16604458
+10813229
+16263440
+4781640
+6556670
+3270283
+11670814
+6334316
+941720
+9672490
+10796887
+14461383
+2144892
+11874027
+7800178
+8342944
+2056873
+7873243
+16597284
+8670726
+10493784
+15617401
+1729748
+13438996
+13129759
+2178008
+4885863
+12999370
+14993826
+2541721
+16638556
+7313840
+11845172
+3639238
+140959
+6384740
+391637
+13891003
+11113812
+12916340
+3347884
+4646928
+7918098
+10228503
+9208975
+6562402
+15781601
+1356977
+9769291
+2948115
+13748050
+11681393
+4749134
+12198138
+6863575
+10064885
+3233488
+2303674
+2313382
+15043934
+9225744
+13110542
+1275883
+7842586
+9971986
+13957601
+9973827
+11245893
+9685045
+11953180
+8559369
+12801186
+16272215
+15420293
+13439436
+15421434
+9255538
+297389
+7752975
+11306457
+13161861
+16009741
+5038886
+15244758
+973634
+10581721
+1465745
+6175435
+12421186
+16492219
+12937999
+12977849
+2983587
+2273010
+835839
+10835624
+16086952
+14769807
+7137146
+416319
+2618758
+695404
+13171673
+531849
+9280167
+2476965
+6500645
+9792778
+11138245
+12464828
+6420519
+16155196
+5371048
+817769
+3339633
+3518027
+15795968
+14162782
+10464780
+8505364
+3188378
+15384462
+13811434
+15961719
+12842048
+4181409
+2483080
+7827015
+801786
+14892347
+14522502
+11204959
+15845804
+3324522
+9769805
+9961460
+524287
+8546134
+2104083
+697212
+7093065
+4402849
+2115016
+14301522
+921200
+11118683
+15509450
+12359617
+2701567
+4962415
+16274212
+1439757
+4139871
+9374116
+5404311
+13586614
+2086879
+10925292
+11575425
+13279862
+4207685
+12727194
+4518383
+439600
+4419559
+4732297
+10286625
+14423672
+13776050
+1522606
+16489946
+7638633
+589378
+13280699
+755644
+1558248
+315426
+10225555
+10779398
+555732
+4225852
+5931830
+3781568
+7566147
+3590681
+2231958
+8485506
+15203935
+3793636
+15799369
+10967474
+15719256
+13106458
+4977557
+16460281
+401036
+15347370
+11620761
+11137911
+8254971
+10553503
+15782756
+14369806
+325147
+10317263
+15282655
+13097142
+6719285
+15033763
+6042924
+6243255
+1235344
+16026134
+16134099
+15286029
+817178
+5531878
+14240659
+13729059
+13632366
+7804288
+6437882
+15574376
+8259514
+2687358
+8693557
+12489249
+9784425
+10599800
+6313333
+14640153
+11653699
+5421520
+957499
+12802956
+14954840
+8695622
+9158280
+10229518
+10928353
+11446428
+3829400
+11441318
+12473924
+3954989
+10234630
+7307968
+13449822
+6592287
+16701899
+8894714
+14734151
+2786056
+16015422
+14118964
+6971937
+1157376
+5094030
+12818589
+10872223
+13744323
+2328491
+6277040
+7198851
+6572561
+2392681
+469620
+7609520
+2977938
+12185347
+3468667
+8865041
+15011214
+1420938
+6821715
+1624137
+15873595
+10623450
+331593
+12384458
+2195949
+2538714
+8674441
+8014585
+15234130
+7791226
+6139045
+15477720
+2540508
+13241262
+2701268
+4718779
+5911493
+10285357
+12660742
+16105443
+6410895
+15774220
+13586987
+2402246
+940430
+10160792
+7268820
+3671416
+216819
+1945572
+14340715
+15050448
+13666801
+7446352
+13773335
+2672791
+13592295
+1562422
+12297299
+3090832
+3926036
+827491
+9408774
+10673656
+2307345
+2261126
+2282458
+6085064
+12216412
+5694970
+15465020
+6262800
+13817204
+6979214
+10575952
+10025121
+2644833
+2911927
+10002886
+10526812
+7394905
+2414241
+2186825
+2083247
+16398035
+1206286
+10898895
+202504
+10912944
+15434906
+13738709
+7183966
+1012029
+12405041
+12804887
+7852153
+14342785
+16646869
+8029679
+6446615
+4097258
+6837193
+12637706
+6593989
+3247489
+5599254
+3247548
+8004849
+9952728
+3835687
+10872212
+10609318
+11985787
+16449219
+14813041
+10715178
+13604372
+9796619
+11827337
+15130869
+6916497
+13818482
+6272643
+1895751
+8680275
+8566978
+16110028
+13784890
+10990347
+6939163
+13817337
+13274644
+8755243
+4708025
+2169595
+3259738
+5389230
+14120687
+3386237
+7635299
+12176072
+1788972
+14745810
+13582318
+4026721
+6304062
+3923721
+14286276
+6623859
+14997046
+16730128
+4431958
+13467670
+16682568
+6335940
+10823951
+9288908
+4282575
+15260935
+9262350
+10896038
+6658939
+3465728
+7451913