about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLeah Neukirchen <leah@vuxu.org>2022-12-21 22:10:24 +0100
committerLeah Neukirchen <leah@vuxu.org>2022-12-21 22:10:24 +0100
commite342805d04e4b180774c37c41f9e58427d2b1d9d (patch)
tree61691db19393b1971ca3b3dce9f61a9af1c70453
parentd1024e0497bdf21c074387cfde053cd3439463ec (diff)
downloadadventofcode2022-e342805d04e4b180774c37c41f9e58427d2b1d9d.tar.gz
adventofcode2022-e342805d04e4b180774c37c41f9e58427d2b1d9d.tar.xz
adventofcode2022-e342805d04e4b180774c37c41f9e58427d2b1d9d.zip
day20
-rw-r--r--day205000
-rw-r--r--day20.rkt94
2 files changed, 5094 insertions, 0 deletions
diff --git a/day20 b/day20
new file mode 100644
index 0000000..20bce18
--- /dev/null
+++ b/day20
@@ -0,0 +1,5000 @@
+-1235
+5608
+9155
+-646
+-912
+2655
+3128
+-1747
+1979
+-8914
+-2631
+-1828
+-608
+-9968
+6448
+-5131
+6497
+-7017
+4938
+8131
+-5699
+-9232
+-2657
+4182
+3140
+5884
+-2447
+-5140
+5314
+8315
+8162
+-2837
+-1808
+3363
+2467
+-3136
+-9295
+-9915
+-5417
+9668
+-7372
+9276
+8932
+7597
+8865
+-951
+-1972
+5118
+7314
+-8884
+-5021
+-7597
+1253
+8816
+5711
+5354
+-8694
+958
+-1640
+1574
+-5743
+-1219
+2110
+6643
+2829
+-1995
+5178
+2451
+1363
+-4596
+8181
+1998
+-4255
+1879
+4838
+-7093
+-4087
+9935
+9608
+496
+-1998
+6678
+5793
+-4198
+-8983
+-3982
+-6492
+-6573
+-2120
+-4346
+-5265
+6875
+6574
+-7687
+9193
+-1145
+-7327
+-8181
+-8829
+9455
+2787
+-4895
+7192
+9345
+8115
+1222
+3407
+-1604
+3367
+-4917
+-6081
+182
+962
+-9591
+-7684
+5139
+275
+-8804
+5631
+-202
+-7901
+-6526
+2470
+8859
+7923
+8178
+732
+-1689
+6545
+7933
+-7383
+3665
+6116
+6281
+3432
+1331
+-794
+-3736
+-144
+-7764
+-5421
+-2257
+9872
+9501
+-1726
+-9443
+9333
+-2584
+-8067
+4733
+1673
+-6814
+-8245
+-7836
+6534
+-6357
+1383
+7116
+1721
+-1235
+9401
+7066
+2179
+5368
+9915
+277
+-2920
+3420
+4140
+8853
+4151
+2574
+-5815
+3769
+8186
+3131
+8815
+5654
+42
+8369
+9925
+8967
+-9953
+-5812
+-1554
+-5631
+-9944
+-8007
+-424
+7260
+4954
+-7232
+-4256
+-8128
+8642
+7077
+4682
+-4532
+-3615
+7460
+2127
+6464
+1517
+-1174
+2347
+2726
+-9994
+3217
+-459
+1540
+-6019
+-7332
+5683
+63
+-8425
+-3703
+7812
+795
+-7945
+624
+3781
+-5090
+-9997
+-9420
+-2116
+7381
+8525
+-2107
+-5387
+-2079
+-1407
+3347
+-9578
+-1057
+-6828
+436
+4997
+-9435
+-3536
+2257
+-307
+8449
+-1930
+6372
+3066
+-4949
+-5934
+-9667
+-3330
+6053
+1177
+2450
+-1118
+-7259
+-8295
+-3251
+4042
+1220
+-6086
+5977
+-3006
+9451
+8567
+8046
+8544
+8888
+-2853
+287
+8454
+9810
+6295
+-6577
+4728
+5121
+-5184
+-195
+-2928
+3890
+3122
+-7477
+-9459
+-4646
+-6605
+5897
+-2515
+9485
+310
+3091
+-5206
+367
+-5942
+-2982
+-5370
+-337
+-9693
+2907
+9809
+-3358
+-8067
+3677
+-7988
+2334
+-1460
+2162
+5711
+-4513
+6478
+5000
+-3122
+2414
+-5454
+9567
+6400
+-6814
+-8386
+9843
+-1559
+-5561
+1747
+2077
+9106
+2222
+-4213
+3153
+7147
+-8354
+-284
+9050
+-4603
+-1642
+4735
+-6069
+3231
+5711
+4271
+-6924
+4630
+313
+7086
+-1261
+-8584
+8399
+3989
+-6895
+-6783
+-6052
+646
+9420
+-8268
+2783
+-8318
+8898
+-9840
+7028
+1873
+9548
+2517
+7159
+-2930
+8827
+8403
+-3155
+9067
+-3123
+2180
+8438
+-6156
+-6694
+-8325
+-7284
+-7338
+-49
+-1754
+5872
+-1711
+8694
+1078
+955
+-8179
+-5061
+-8788
+-3163
+3966
+-7600
+-5076
+5140
+-5100
+4949
+895
+2744
+2618
+5331
+5364
+1605
+-5919
+-7366
+-8599
+4609
+8480
+4581
+4752
+-1749
+8719
+6814
+1274
+-1859
+177
+-7057
+2654
+-5815
+7727
+9420
+1884
+-7299
+8742
+4754
+3025
+-6800
+9766
+8837
+6574
+-9403
+-9677
+-3768
+-6085
+-3668
+-3690
+2711
+6897
+610
+-747
+-8220
+-307
+-3171
+-6081
+-9972
+2679
+-342
+-411
+-2665
+4545
+-656
+4430
+-4214
+-1449
+1531
+8665
+6419
+7233
+-304
+-6334
+7536
+8744
+1509
+1035
+9245
+-6080
+-7117
+1020
+6079
+3127
+7904
+1776
+2058
+-6655
+-8182
+-7070
+399
+-4533
+-5605
+918
+6998
+-1675
+6815
+5359
+-2824
+2305
+2938
+7359
+7617
+50
+4991
+4735
+1157
+-2563
+234
+-2901
+6759
+7038
+7627
+3051
+-3262
+-9774
+1220
+-743
+-2633
+5222
+3905
+-7282
+5264
+5186
+-4963
+2679
+9476
+7696
+-4143
+-8873
+-6605
+3094
+6879
+8897
+-177
+3923
+-4597
+-6881
+-3704
+-1589
+7130
+3741
+7947
+-6505
+6053
+4954
+1853
+-6856
+1002
+-5970
+8997
+7061
+8307
+-3489
+2903
+7028
+-2990
+-7418
+-4040
+-8714
+2267
+-6645
+4434
+-4318
+-5696
+-2823
+1304
+2707
+9552
+-2052
+-6206
+-3732
+-7575
+7580
+1858
+6800
+5981
+755
+4714
+-3377
+9624
+-3518
+2878
+-111
+9096
+3838
+7617
+-6443
+3415
+-1930
+-9486
+-6384
+-190
+6793
+-3030
+4266
+-6145
+454
+-3541
+-3646
+-559
+6892
+-2257
+-3549
+-3585
+-4248
+7695
+-2385
+-5732
+-8606
+-466
+-9726
+5118
+-2716
+2844
+1290
+597
+-4552
+9455
+9802
+2264
+2387
+2562
+7001
+3538
+-4717
+2606
+9930
+7079
+-5287
+9445
+8884
+-4214
+-2431
+1368
+1951
+8954
+5138
+3633
+-6647
+-7381
+-2024
+1802
+-6668
+5257
+-1099
+2261
+-1717
+3050
+-9019
+-9425
+5981
+-3290
+1049
+2968
+-6743
+-2586
+1178
+-586
+-6104
+-1147
+-9922
+3487
+4994
+6454
+7690
+-5362
+1683
+-1824
+-5529
+-376
+-1096
+2409
+3111
+606
+-7058
+7100
+-2913
+-2853
+4370
+8094
+24
+-2042
+1663
+-1998
+-7575
+6076
+6610
+-4281
+-9122
+-5376
+-5713
+9935
+2290
+-4714
+-9543
+-2747
+-188
+1634
+-8313
+1420
+7923
+942
+-2710
+7819
+2904
+-4561
+4480
+-3762
+-129
+1503
+-6156
+6318
+8081
+1632
+-169
+6798
+-7638
+-3512
+-7286
+-9050
+1787
+8158
+-1504
+-6085
+1334
+9495
+-6334
+2968
+2246
+-9774
+-2059
+-9225
+4987
+3657
+-6245
+-6724
+-9976
+-4509
+-2827
+5607
+9209
+1299
+3241
+-8969
+8375
+3688
+323
+3435
+-874
+9209
+-8220
+8025
+834
+6230
+520
+-9023
+-3343
+-2593
+-8151
+6761
+-8228
+-9273
+-1497
+-6424
+6944
+-1284
+-8272
+3426
+-4858
+-2754
+-59
+-2105
+-4575
+4391
+-1907
+330
+-1412
+-5886
+9764
+-4536
+2638
+-5081
+9817
+-6883
+3252
+7165
+2692
+-8679
+-4294
+33
+-8445
+2821
+-6544
+5914
+5958
+-8996
+7065
+248
+4714
+-9565
+7938
+-5265
+-4346
+-5815
+-5376
+4965
+-5125
+1420
+-8540
+9269
+7011
+9780
+7532
+-3809
+-477
+-1208
+-4877
+1578
+-7769
+3591
+6786
+-2749
+3984
+174
+-6810
+1008
+3663
+2467
+7724
+-635
+-4050
+4402
+-3418
+-1594
+-2010
+-7004
+-209
+-3078
+6282
+-9281
+208
+-9277
+-7800
+5288
+1444
+6076
+-3029
+-5967
+7686
+4715
+2679
+-869
+9624
+-1586
+-4722
+7695
+8320
+-2120
+7944
+7595
+6211
+-300
+5116
+4158
+7708
+3527
+2735
+6452
+-3069
+-329
+-2584
+-2533
+6462
+-2166
+-3935
+4412
+1290
+-794
+4109
+-7740
+-5537
+-482
+-9438
+8115
+964
+9786
+7135
+2971
+-5384
+9747
+5822
+-9165
+3894
+-8217
+-1132
+4328
+2456
+7449
+-7581
+-7126
+-5530
+5859
+-4079
+5210
+-1333
+9465
+-9256
+-1408
+-8496
+-3134
+8073
+1189
+-336
+-4302
+9023
+1002
+-1499
+8938
+2601
+-2901
+-1821
+-96
+9670
+-5431
+-6001
+-9047
+1383
+4631
+-7740
+-5890
+4069
+8522
+-9912
+3606
+1157
+1882
+-3168
+-7982
+-2549
+9075
+5631
+5176
+-1420
+7776
+9242
+673
+9107
+6928
+-5373
+-9928
+245
+-7338
+8095
+9154
+-5034
+4453
+7494
+5264
+6800
+-5697
+-211
+-5413
+9615
+-9363
+-4669
+-1213
+-6296
+4904
+-4896
+-794
+-3995
+7234
+-7022
+6793
+5246
+4498
+7004
+-6770
+8413
+-6866
+-2022
+472
+-9688
+-5211
+5092
+8360
+-2390
+-7443
+-398
+9479
+7726
+-169
+-664
+-5512
+-3111
+-6469
+3944
+4959
+6875
+-1407
+-9861
+-8750
+9174
+7939
+-7594
+-6962
+4890
+-9273
+5958
+2088
+2793
+2469
+-812
+4891
+9843
+1331
+8289
+-9732
+-1217
+-9417
+7741
+9206
+-8759
+2267
+-6313
+1343
+-9431
+-7418
+1796
+2563
+5046
+7015
+1083
+2974
+2690
+-7836
+-4745
+-119
+4152
+5858
+9062
+67
+-2010
+918
+6967
+3422
+-1262
+-4997
+3145
+-9192
+-5743
+4732
+-7554
+-8491
+-8868
+9651
+-1017
+-9819
+-317
+3847
+73
+-474
+6973
+8706
+-4699
+4419
+5963
+9687
+-6994
+-1693
+-1731
+7956
+5502
+-6476
+-7960
+-4586
+125
+-5624
+-5518
+-1577
+-2329
+5336
+6643
+2902
+-6185
+-9372
+1556
+4714
+2140
+7637
+7702
+-1468
+8837
+6967
+-2927
+7860
+3738
+1902
+-9689
+35
+-7799
+-572
+9126
+3630
+-1453
+1572
+2690
+3851
+-5445
+-5561
+-3412
+-6446
+-7927
+439
+-3904
+4974
+-4623
+6230
+3748
+-9226
+-1568
+8658
+4004
+7495
+-8981
+794
+6981
+4191
+-4079
+-9181
+-6040
+-3214
+718
+2058
+-9971
+4263
+852
+-5254
+-6949
+-3167
+8302
+6699
+8589
+4682
+-3282
+-7431
+-4623
+2535
+5264
+8197
+-4207
+-5265
+-3439
+7384
+6161
+905
+7645
+9555
+9799
+274
+-8040
+-7102
+-4940
+-1371
+-5590
+-4977
+-5973
+-8346
+4184
+3599
+-413
+296
+1402
+-2581
+-3651
+-6040
+5392
+6309
+7104
+-8315
+962
+-9029
+7061
+-7745
+1550
+-9941
+-2714
+2043
+-7332
+-7363
+9687
+9657
+5429
+949
+6465
+6031
+2783
+-8072
+-2664
+-7811
+-4399
+-7170
+5349
+6794
+208
+-1285
+5564
+8916
+-3438
+-9599
+91
+1022
+-6753
+-882
+8525
+-3598
+-9102
+9357
+7859
+4279
+-1580
+-7119
+3814
+8634
+9611
+6875
+254
+8061
+-3451
+-3866
+-9581
+5573
+-3847
+7973
+-8582
+-5589
+-8319
+-4340
+-3352
+3332
+463
+-306
+-4128
+-9610
+4702
+2087
+-6775
+-3067
+1443
+-7307
+-2081
+8097
+2515
+-9850
+-1538
+8107
+-9027
+-3704
+-1284
+-6156
+496
+-7342
+9354
+2901
+1531
+-1698
+-8356
+1503
+978
+9245
+264
+-9753
+154
+8275
+2687
+1899
+-1388
+-2947
+9624
+-1559
+7043
+-2955
+2165
+7383
+-6630
+-9628
+8879
+-4988
+-7641
+1854
+6172
+-980
+860
+-1626
+-6586
+-5112
+-7356
+6958
+3984
+4168
+2986
+-2926
+-4756
+-2059
+-5555
+-2710
+8388
+-6088
+603
+7474
+2380
+-9540
+-5835
+-5612
+-5502
+1602
+8932
+3821
+-2144
+-2036
+5637
+5023
+-8199
+-8048
+-1808
+7477
+8700
+6558
+1540
+-4365
+-9246
+-9409
+1255
+9872
+8705
+8299
+-3321
+9525
+-3469
+8274
+-3511
+7454
+5171
+2766
+-9950
+2932
+4899
+-1092
+6427
+1538
+4622
+7836
+-2880
+6921
+4456
+-1327
+-5234
+262
+-11
+-6122
+2047
+2408
+1719
+-6747
+-3434
+7820
+6145
+-6185
+2671
+2553
+-4760
+-3391
+-3498
+358
+-9367
+9234
+3617
+-1206
+275
+8017
+-3035
+-1155
+-7873
+4881
+1564
+-5729
+1378
+-4096
+8718
+2917
+-5307
+68
+-5233
+-366
+-518
+-6071
+-773
+-9450
+7921
+8922
+6623
+4336
+2450
+-7625
+2639
+3968
+-9880
+-2230
+1121
+5351
+4406
+3409
+-4581
+310
+-2992
+711
+-686
+5364
+-9941
+823
+-4243
+-9452
+-6885
+-7654
+-2515
+-1996
+-9862
+2995
+4043
+9584
+-7974
+2519
+449
+6377
+3883
+-9200
+-2590
+3738
+3515
+8647
+8505
+-4972
+-4213
+-5117
+93
+-8069
+-5150
+-2383
+819
+-3469
+-9332
+-3176
+-3626
+-9747
+-3720
+5637
+3069
+558
+-4041
+5383
+1529
+-192
+4456
+7458
+9797
+4380
+7322
+253
+9790
+-1230
+9930
+3805
+1371
+5502
+-741
+3289
+3365
+-9460
+-7204
+-1330
+7824
+8516
+6903
+2605
+-5482
+-4244
+582
+5627
+-1801
+6223
+8719
+-9875
+-6129
+4419
+-2315
+-9175
+8107
+-907
+3417
+-9471
+-981
+8565
+-4359
+-1345
+5569
+-5793
+273
+-614
+-6239
+-1169
+7362
+8158
+1666
+-672
+898
+1679
+3738
+2787
+-2160
+4147
+-6229
+6978
+-6132
+-138
+1846
+-2545
+-2524
+-3257
+1126
+8837
+-6299
+1470
+5984
+2783
+-2174
+4201
+-6458
+198
+2604
+-1240
+2753
+849
+-8086
+9223
+-4066
+-159
+-1743
+3938
+-1080
+3667
+9749
+-2242
+-1103
+8155
+1083
+-6841
+-1329
+-1127
+-7117
+-7345
+9664
+-8391
+-8799
+-41
+-4323
+6160
+569
+-3244
+-4857
+-5757
+2747
+9615
+-1360
+-4257
+6216
+9893
+4550
+-6076
+9731
+5838
+8294
+9484
+2851
+-7975
+-8632
+2321
+4294
+-2855
+1652
+-5813
+-8735
+-6503
+-4399
+7608
+-3067
+901
+9080
+8720
+1899
+-2448
+866
+-773
+-9609
+7043
+3966
+-4340
+4082
+2246
+-8412
+2621
+5981
+3793
+-5212
+638
+6180
+-307
+403
+2517
+-3362
+-4338
+-4639
+8659
+8153
+5464
+3261
+-9228
+5364
+4397
+-3489
+6656
+-304
+-3271
+6995
+-8629
+-1442
+-9897
+7701
+2087
+2161
+-9875
+-5373
+-1672
+-668
+8642
+-464
+1626
+1662
+-3578
+-9574
+8803
+-8284
+-6139
+8134
+7159
+7303
+5115
+9882
+4082
+7588
+9745
+-7119
+-898
+-1425
+-1344
+1139
+-3817
+4824
+-6270
+9001
+-5997
+-1132
+114
+-2677
+-3123
+-2622
+-8307
+-3438
+820
+8846
+4066
+1938
+9186
+-8249
+2165
+-59
+8672
+-6450
+1884
+1180
+-5696
+-4252
+5947
+6798
+-4509
+6049
+572
+-6475
+7367
+-1283
+-9470
+62
+-8584
+-126
+-1627
+3126
+1205
+-6555
+9767
+1602
+8477
+-4766
+2199
+-6635
+-3717
+9458
+-3153
+-3451
+1255
+-284
+-6483
+3676
+-6052
+-1268
+-7265
+6309
+-2904
+792
+-700
+-3498
+-9968
+-4611
+-3797
+532
+-3137
+1039
+-3438
+-3751
+-9250
+4251
+-473
+2853
+-2909
+-7684
+-3751
+2344
+4487
+-8337
+-6007
+9959
+6454
+-6164
+-7750
+84
+-1818
+777
+-9200
+-1566
+-7522
+1240
+-8699
+-4128
+-4509
+-7204
+4615
+1684
+-6371
+9118
+5393
+3232
+-8481
+-8640
+8044
+-2211
+1873
+2468
+-5650
+2802
+-3111
+-1895
+-2990
+-2941
+-677
+-2323
+-6479
+-5035
+-56
+-8213
+-1585
+-5997
+-9607
+2915
+-5802
+3487
+1069
+3633
+-1261
+-2512
+4366
+-2139
+-2022
+-8217
+4484
+-515
+2851
+-5234
+5837
+8108
+856
+1177
+-9539
+-5037
+-1527
+849
+6180
+6361
+5618
+4685
+7147
+-6207
+7701
+4476
+-5973
+-9194
+2616
+4440
+-8960
+8595
+636
+8762
+3621
+-1726
+-1572
+3663
+-2011
+-9330
+8615
+7234
+-7974
+-2998
+-7863
+9614
+5017
+8948
+-7556
+4433
+5036
+-8367
+7645
+-8476
+8719
+2621
+1863
+5464
+3781
+-9373
+8580
+1205
+-2430
+-8532
+-828
+6730
+-3646
+157
+4152
+-188
+-7925
+-2145
+8251
+2497
+2480
+-5564
+-8182
+-4467
+6742
+-8832
+8352
+-1989
+-2389
+-288
+-8093
+-3611
+380
+-1828
+-7710
+2291
+-8725
+9118
+-8785
+-6048
+-7035
+-3579
+287
+2707
+636
+3241
+8410
+6886
+1748
+-8806
+-6510
+-129
+7895
+3534
+-7119
+-4797
+3145
+9335
+2764
+582
+-246
+955
+9938
+-839
+-5139
+5671
+-6645
+-7019
+3683
+5078
+-356
+7196
+8348
+4700
+-5747
+3648
+9532
+9239
+8522
+-7694
+3405
+8376
+-9115
+6040
+1609
+8970
+7877
+3655
+9439
+1088
+180
+-6966
+2656
+-4578
+7251
+7903
+9404
+-3076
+9401
+-1392
+9458
+3322
+-6206
+2276
+4705
+-3380
+486
+-4288
+9637
+2456
+5645
+1813
+-4933
+7505
+-6450
+1624
+-1335
+-3717
+-1285
+-6243
+7153
+-5595
+-6744
+-6904
+-7633
+-5267
+-6665
+8300
+1544
+9784
+9760
+3140
+-5630
+6727
+-8494
+9874
+6310
+-3575
+288
+-6158
+2751
+9695
+-6784
+-3047
+792
+9364
+3663
+7260
+-2861
+-3087
+1398
+3591
+-2372
+-4353
+-547
+6699
+2081
+-13
+-2166
+1197
+-3828
+-2389
+-4611
+-7117
+-7795
+-3712
+-1210
+2197
+-9055
+5809
+3661
+-4701
+1605
+-9591
+9024
+2456
+1556
+-812
+4627
+-3362
+-3199
+4424
+5867
+-300
+9954
+2267
+9455
+4352
+8816
+4063
+5544
+-7125
+-8501
+6295
+-3378
+-4750
+-8174
+-7477
+-8837
+2983
+-5106
+-4013
+-6156
+-6317
+5431
+-3564
+934
+9972
+4284
+4232
+6419
+-5381
+-9769
+-2166
+-987
+2468
+-9106
+-6948
+141
+-5984
+4946
+-2708
+4932
+-9203
+-2322
+-4271
+-1554
+2621
+4628
+4416
+-5375
+-4344
+6910
+6574
+-1937
+-8622
+-8186
+-7665
+-9216
+5765
+7182
+-4743
+8148
+-8654
+-8264
+-975
+1634
+-2265
+-5849
+4132
+5494
+-5093
+4147
+-1006
+-7566
+2517
+2515
+1083
+1489
+-9188
+8583
+-8413
+-8983
+9784
+-6555
+3621
+-3155
+9677
+-8031
+-5125
+-1066
+-5459
+9957
+4488
+-1684
+6389
+1559
+2664
+6798
+4864
+-9194
+8932
+-9583
+7906
+1692
+-9926
+9186
+-8663
+5532
+-9100
+702
+-6637
+-2906
+-635
+-2265
+-6873
+8910
+4464
+7490
+-4925
+-4793
+-8806
+-5315
+3153
+2702
+7719
+1290
+-7073
+1887
+5346
+61
+-4294
+-8490
+2770
+6599
+7106
+4627
+-254
+288
+-2432
+9575
+-4349
+2745
+2574
+3001
+-7585
+-5233
+-663
+-207
+-4650
+9079
+-8893
+3389
+3236
+-5964
+-8734
+-4583
+-5166
+-8765
+2320
+-5201
+6004
+5706
+-2512
+1932
+-7662
+9132
+-6299
+2787
+-6357
+3768
+6475
+6675
+8022
+7066
+1385
+-7574
+7846
+7133
+9849
+3709
+-7936
+-7802
+-6670
+1444
+-7718
+-9854
+8044
+6377
+1902
+3895
+-6017
+-3154
+3753
+1998
+-2230
+8642
+-2257
+-7318
+5781
+-3719
+7525
+-5022
+1708
+2028
+19
+-4213
+-7133
+-5855
+5345
+8545
+-2268
+-9850
+3661
+6975
+3962
+2156
+-5517
+-8532
+907
+-8708
+2569
+1556
+-2652
+4092
+2299
+-7105
+6475
+1071
+-9164
+-3790
+9948
+-6871
+-9817
+-2427
+3232
+-9044
+-2275
+-9628
+2194
+4135
+-3816
+-8851
+6631
+3261
+2879
+-4035
+-1210
+5768
+392
+1995
+-2990
+-2529
+-5465
+-4986
+4538
+-5042
+-3020
+4488
+-9651
+-5736
+-5009
+-8733
+-1770
+1916
+-7713
+7409
+7899
+2939
+4221
+-9051
+-9544
+-9534
+-3371
+6069
+-4248
+6454
+-3816
+-2196
+-2133
+957
+5569
+1668
+5631
+4934
+-4098
+-1730
+1540
+-5723
+-8187
+9845
+3261
+-1330
+9536
+-3336
+-9885
+5165
+-4594
+3145
+-6890
+2718
+-6240
+-8439
+-1513
+212
+-4581
+582
+-1365
+8517
+8900
+-1402
+48
+-7913
+-3571
+5171
+6491
+9586
+-2160
+-2542
+-3282
+8926
+1606
+8131
+2267
+-8893
+5378
+2880
+-4035
+3228
+-5068
+-7148
+-5993
+3289
+9382
+-3707
+7394
+1309
+-1266
+1258
+-4152
+-7633
+271
+-1330
+1444
+-6469
+-4416
+3236
+-2998
+4465
+-7752
+-7595
+7130
+9447
+8185
+-254
+-7503
+9299
+6229
+6895
+-6377
+7288
+869
+-2295
+-7101
+-807
+-7363
+-6774
+-9990
+3976
+4236
+-9543
+-1460
+-9945
+1666
+9250
+1822
+2088
+-747
+5932
+3051
+-9673
+6452
+-2032
+2467
+-1268
+-9183
+6706
+955
+6244
+8609
+1368
+5593
+-8947
+6454
+-6332
+-7974
+4262
+-9788
+8938
+-8118
+8562
+9747
+-8515
+-4866
+7939
+-8722
+-2512
+-7966
+4131
+-5287
+-3061
+4838
+3527
+-8837
+-7718
+8314
+8324
+141
+8084
+-9480
+2719
+-307
+4871
+546
+2497
+5779
+-1337
+872
+-7634
+4183
+9584
+5957
+-7750
+-5930
+-8617
+2647
+5991
+2558
+-7304
+-5396
+-4105
+1731
+-8567
+8131
+-7264
+3365
+-3262
+1127
+1944
+6975
+3877
+180
+3611
+-133
+8682
+-5299
+-3566
+-9194
+7065
+8438
+-7590
+-7905
+4167
+-47
+-7299
+2991
+1045
+-4419
+-6444
+-7538
+-1857
+823
+-9023
+1894
+-7376
+-2124
+-729
+7043
+599
+-6950
+9554
+-9216
+7251
+-1777
+-3406
+7246
+1655
+430
+6999
+2995
+8280
+-7304
+-5835
+8280
+7037
+9868
+-5574
+-6493
+-8350
+-5496
+-3051
+8971
+-2745
+-6040
+-2293
+6
+-7126
+3254
+-1772
+8186
+-3777
+-4256
+1121
+7383
+2212
+-8182
+-9791
+4705
+7609
+-394
+8222
+7967
+4364
+-9804
+9657
+7432
+9629
+-6921
+-5686
+-392
+-8852
+7676
+4732
+-6461
+-3619
+-6441
+8719
+-2894
+594
+-1548
+2325
+2618
+3225
+2756
+-1193
+-1321
+-6879
+5189
+8042
+-5417
+3665
+-3940
+-1081
+-3192
+-4644
+556
+3387
+-379
+5611
+-7624
+-3911
+-2154
+348
+5404
+8158
+1996
+-1982
+-5677
+-7757
+-6755
+8210
+-887
+-6309
+-5653
+6239
+7378
+8494
+1259
+1122
+1491
+-8574
+7106
+2430
+1002
+-1583
+-3406
+-3867
+9420
+-2933
+-7942
+9615
+3805
+4008
+-5454
+1559
+5618
+-5307
+-139
+-1580
+-6426
+4510
+-8187
+-6007
+8589
+-1916
+1552
+9695
+1815
+-8031
+4661
+8664
+9952
+9653
+-2657
+-4006
+-8858
+-6140
+8968
+-5764
+8181
+403
+-1213
+9682
+8364
+955
+-6185
+-2573
+479
+658
+9098
+-6536
+-5137
+-5058
+-8804
+-3078
+-2244
+5846
+-9472
+1819
+8181
+-9815
+-2526
+-2132
+2537
+-4056
+5439
+2647
+957
+-9468
+9484
+6674
+6928
+-2199
+-8272
+-1021
+7787
+-5237
+9668
+-6974
+6372
+-8799
+9760
+-2928
+-5270
+2399
+9997
+-585
+-2841
+9519
+3507
+-9041
+-4853
+-7554
+-4745
+1394
+1926
+6602
+6272
+3502
+-8289
+-4087
+2726
+8257
+-3067
+-728
+-4102
+-7580
+792
+360
+8274
+479
+9716
+-4345
+-691
+1528
+-3712
+3422
+8161
+-5959
+-8640
+-4305
+-190
+2507
+5337
+-794
+-3656
+8741
+278
+-4209
+-8379
+-3766
+-9292
+6358
+3721
+-3717
+1100
+-3995
+-3214
+-8072
+7923
+4351
+-3007
+7622
+-4191
+6398
+1903
+-3955
+2895
+-6774
+-3705
+5768
+9684
+-2551
+1917
+-3512
+8009
+2790
+-1802
+-6948
+9419
+-4968
+-129
+-8120
+5351
+-6710
+8160
+-1284
+-3847
+-2545
+-282
+-4518
+3068
+8303
+-6604
+-5636
+-1026
+-2926
+-2422
+-6811
+-5307
+-3425
+3322
+105
+-6104
+-2348
+-3673
+-3114
+277
+5606
+-3452
+-2521
+-4924
+-5459
+-5790
+-7721
+3364
+-8540
+-662
+-686
+-2592
+5461
+7659
+-6671
+-5308
+9340
+-5519
+1845
+-6184
+-5546
+-3642
+7956
+-886
+-2139
+8897
+5765
+-5011
+-2231
+6795
+-7622
+8993
+3525
+-2114
+-7232
+5768
+-7129
+6446
+8066
+-2066
+-8686
+1862
+-7180
+6999
+-1110
+-2365
+-7116
+5711
+1784
+569
+7288
+4603
+4565
+-7535
+17
+6282
+7950
+821
+1506
+6199
+-4320
+8502
+-5969
+6870
+-2173
+-4401
+-3708
+-3134
+-7729
+-3637
+-2412
+-2356
+5683
+5115
+8739
+-1068
+5360
+-5612
+1644
+-1945
+-3148
+-9284
+8926
+-3893
+-2060
+541
+6098
+3066
+5464
+6743
+2325
+-8039
+-2011
+5569
+-8408
+-5824
+-2825
+8952
+-3818
+-1103
+7378
+-8884
+-1333
+-3825
+582
+-1832
+508
+6624
+3989
+3989
+9662
+-8309
+-9011
+1149
+-9628
+1652
+-9372
+7373
+5494
+-662
+4538
+-6250
+2661
+6881
+5611
+2408
+-886
+-4419
+-4502
+-4783
+-3768
+8307
+-9590
+2434
+5932
+-8488
+-876
+-1133
+17
+3454
+3551
+-5928
+-6842
+9933
+-6682
+1815
+-5232
+-144
+-4797
+1833
+-5381
+8456
+-3322
+-9176
+-4228
+-4787
+6187
+-9814
+449
+3665
+7511
+2753
+2719
+3642
+9997
+-8901
+-7033
+8324
+-2554
+-4019
+-663
+2414
+-8397
+7439
+-8876
+8801
+-141
+8491
+-7245
+-3136
+-8217
+5596
+-586
+2380
+572
+-2123
+9867
+-8741
+2904
+1222
+-5736
+-8494
+2621
+5294
+9878
+7420
+-1283
+-7594
+9606
+-5466
+-2886
+-8220
+9831
+8310
+1863
+1598
+-2219
+-278
+9067
+-8368
+-284
+-366
+624
+1416
+-955
+9952
+8742
+7505
+-8960
+1873
+2614
+-6671
+-2408
+-8873
+7373
+2897
+8910
+3962
+9103
+-5267
+-6469
+-4256
+-3900
+1122
+9127
+8375
+8608
+1692
+-9940
+-4056
+3877
+-66
+5134
+7063
+3404
+-9278
+1332
+-2921
+-7857
+6093
+2433
+-5761
+-3226
+6619
+-2889
+-4066
+4056
+-6962
+-7057
+-2275
+-877
+5268
+-9788
+-1086
+2738
+4752
+8397
+-4868
+7019
+-1442
+4484
+-2953
+-3642
+-8147
+-14
+-9139
+-826
+8452
+1012
+2145
+9401
+9400
+-2853
+6282
+2165
+-3859
+7802
+2409
+9865
+-3615
+5684
+-6890
+6174
+-5849
+5913
+-8300
+1935
+-7060
+6547
+9044
+350
+-4415
+-4669
+6693
+-6189
+-8998
+6471
+6093
+6973
+4416
+2146
+-1177
+4675
+3208
+-2946
+8129
+-1235
+2132
+7719
+-7791
+8762
+4428
+-433
+-9926
+-9885
+4328
+428
+-772
+-4714
+4387
+4453
+4780
+-2173
+4436
+-5610
+-1520
+7617
+-7264
+-9493
+6228
+-937
+1916
+6078
+3341
+2595
+8197
+-4254
+5148
+-2920
+-1402
+636
+4260
+-134
+-5588
+1398
+6294
+-4425
+3745
+-4013
+1932
+7233
+-1170
+9476
+-8112
+-6185
+660
+-3547
+9893
+5635
+-4623
+4421
+-6547
+4419
+-8381
+155
+3738
+2468
+2599
+4693
+-9786
+-3756
+-669
+-933
+-4984
+8161
+212
+-3393
+-3248
+-399
+8169
+80
+3910
+5371
+-930
+-9981
+2790
+-8362
+-8615
+8664
+-6326
+-2515
+3135
+4360
+5186
+-461
+5106
+-8496
+-5818
+-7095
+2517
+-646
+2515
+9154
+8828
+2156
+2399
+2678
+312
+-4302
+1692
+2777
+3405
+-6569
+1055
+222
+5044
+-1206
+8394
+-9177
+3822
+8803
+-850
+-1998
+9501
+7205
+5980
+-8105
+-8536
+-9060
+5994
+-577
+9551
+-4596
+7938
+1995
+-5705
+590
+-6262
+-9609
+-9968
+4811
+5845
+6515
+4605
+-9471
+1293
+-6747
+-9403
+5544
+-961
+4025
+-7901
+-3917
+-5720
+9292
+-7834
+8672
+1626
+3283
+7906
+3709
+7051
+3226
+2246
+-8787
+9865
+3029
+-2584
+-1996
+-9675
+2215
+-196
+1072
+-8181
+-1937
+2937
+-5326
+1274
+-1591
+-1293
+3229
+-4998
+9226
+-9014
+2152
+-6936
+1532
+-3364
+-2066
+-7228
+7587
+1565
+2018
+4790
+2345
+-3819
+-3607
+4294
+8693
+-1018
+3480
+-5660
+2812
+9055
+-4077
+-1261
+1311
+6207
+1406
+-9804
+-6389
+-7510
+-4743
+6331
+-5140
+-2383
+-5306
+2773
+8071
+1851
+5671
+1884
+-427
+2773
+-9027
+-6595
+1594
+24
+1868
+1415
+77
+-7240
+-9438
+8091
+788
+-6706
+3391
+-5969
+-2545
+7234
+2408
+-4561
+5239
+955
+-9138
+-230
+5639
+-138
+-601
+-7559
+1562
+-3149
+7149
+-8801
+8865
+-51
+7314
+6282
+145
+3837
+7840
+1380
+-3136
+-4061
+6448
+5914
+5182
+2877
+9553
+63
+-3149
+-5769
+-3994
+-6495
+8352
+7981
+-1097
+6146
+6351
+5822
+9871
+-5296
+6091
+-2139
+6371
+5131
+418
+7948
+1529
+6582
+8337
+-3940
+-1586
+-4067
+-2378
+1117
+312
+-4717
+6351
+-7228
+1634
+-8446
+-1577
+-5861
+4935
+8202
+4796
+-6313
+-2884
+-8281
+1984
+5093
+-9702
+6786
+-5757
+-2153
+-7126
+3588
+4581
+8888
+-1907
+6610
+-4813
+5404
+8477
+-5662
+4262
+-6511
+-5225
+4125
+5476
+2197
+-3438
+-6873
+-1802
+-825
+-6458
+-8435
+9669
+4665
+7576
+-3368
+-3543
+-5069
+7694
+1378
+-4455
+-8738
+-7115
+-7661
+7938
+-7687
+6727
+-8003
+5544
+-749
+-671
+590
+5981
+8868
+3836
+-5416
+3332
+-9986
+-7248
+-3938
+-3642
+-2154
+2019
+6944
+4665
+-1504
+9981
+-8664
+-2343
+6584
+1428
+2680
+-9870
+6789
+-5792
+-8096
+-4086
+-7299
+-2973
+8793
+-7746
+-4305
+-9675
+-798
+-6856
+-5677
+4536
+-6158
+2660
+-1247
+9540
+8456
+3794
+-3981
+-9019
+-5861
+-8722
+9855
+-9220
+-4633
+-2378
+-898
+5666
+5360
+6670
+9935
+-1382
+-5727
+-7082
+-5033
+9500
+-1483
+-6201
+-7130
+-3935
+5888
+8197
+8444
+-7109
+9964
+7617
+-9790
+-3336
+-3315
+-2926
+-914
+9001
+62
+-8435
+-9085
+-4354
+5544
+-8112
+8490
+-7528
+4350
+-3752
+-2633
+2470
+-8684
+2054
+-430
+-1644
+-8302
+1657
+-5855
+-4676
+-1145
+-828
+9678
+5257
+-8853
+1150
+-7273
+-7899
+2534
+2126
+4970
+8313
+4040
+-1280
+2515
+8947
+-8306
+7947
+2515
+-4216
+2663
+-5336
+-1151
+3715
+5458
+239
+-5743
+-2120
+3889
+7001
+5605
+7939
+-572
+256
+-5947
+4355
+4471
+-8491
+-8918
+157
+4313
+2447
+9346
+-3123
+7009
+-753
+-8512
+-4783
+1692
+-9792
+-9096
+-5081
+-3048
+-6505
+-5704
+6508
+3727
+2726
+5315
+-7148
+5427
+-7423
+-1937
+-6792
+7469
+5550
+2468
+256
+3867
+-6196
+955
+4695
+4544
+-269
+172
+565
+-7136
+7043
+2865
+-7629
+5915
+-6804
+1911
+-221
+8213
+8473
+-6670
+7246
+5774
+8689
+6
+1916
+-4308
+-6803
+5321
+3790
+2836
+5464
+-6366
+9923
+-8230
+5079
+8155
+6584
+4570
+-9443
+-9674
+-4998
+7051
+-8351
+9503
+-7595
+-5929
+8710
+-6117
+-9438
+7359
+-2889
+9290
+-4113
+3153
+4135
+4430
+3374
+-4568
+6385
+-8151
+-3330
+-237
+3667
+-8782
+4271
+8964
+2943
+1747
+4352
+6848
+-2769
+2326
+2807
+287
+-4478
+-5537
+-4465
+-4363
+-5100
+4980
+-8151
+5264
+-5459
+994
+-6085
+-9459
+9419
+8825
+-1629
+2000
+9466
+-8684
+-6252
+3289
+-8163
+-1764
+-5183
+7622
+4570
+2677
+6142
+3261
+9454
+3494
+-1693
+-9903
+-279
+-9419
+-2515
+-1914
+3178
+-2430
+-7170
+-7702
+5118
+-7368
+-3943
+2997
+-8678
+-8272
+-7274
+2267
+-9083
+8926
+-422
+12
+244
+5806
+-6747
+477
+5688
+1083
+-1062
+7288
+-8086
+416
+7776
+2766
+1481
+5909
+9423
+6531
+7403
+-7559
+-3795
+-8248
+-631
+7609
+8448
+-9755
+-9671
+242
+-1365
+4510
+9512
+-5076
+5097
+-5734
+-3309
+1496
+5085
+2734
+3032
+-4714
+-211
+-3790
+6795
+-2166
+6111
+8175
+665
+-314
+-6795
+6204
+9138
+9062
+4036
+9245
+1991
+603
+-6156
+8682
+-8195
+2215
+2829
+-5589
+4042
+-9983
+9136
+3667
+-1283
+-7778
+2660
+-5883
+-869
+-1158
+1813
+-4350
+-8919
+5868
+4238
+8334
+795
+-4639
+9819
+8322
+-2551
+-7962
+902
+8565
+242
+-4647
+-6889
+-4468
+-7512
+8313
+2307
+1021
+9060
+-4258
+-9597
+6005
+-7499
+4950
+-8181
+-3250
+-7624
+9010
+-2365
+8196
+5171
+-9967
+-779
+-2657
+-778
+-1878
+3671
+6
+-3364
+-3093
+3222
+-8697
+-3746
+-6588
+3051
+8248
+-4399
+5637
+-5172
+-8112
+-2583
+-1644
+-2598
+-2265
+-5532
+-49
+-713
+-5989
+-6807
+8737
+7688
+-5487
+-1914
+7895
+-192
+5313
+6189
+-9168
+-1945
+-7587
+1676
+3480
+-6768
+1451
+-7186
+1707
+-23
+1847
+4998
+-2601
+6557
+4752
+-9047
+-9866
+157
+-6710
+4294
+-1627
+-1241
+7023
+-721
+-3364
+-5311
+-6039
+-2445
+1416
+9745
+2557
+-2166
+5364
+-254
+-2599
+9532
+-5734
+-8759
+-8915
+-6393
+-8540
+8886
+4732
+1309
+9987
+1529
+3637
+-4198
+-7752
+-8927
+-4308
+-7522
+5789
+3114
+-9633
+-9945
+9920
+-6643
+-1870
+2811
+-997
+-552
+-6319
+8860
+-2146
+8061
+-2422
+-6366
+820
+-8644
+2608
+-2307
+-8843
+4538
+-1271
+-3309
+9401
+-382
+4211
+-2621
+-1130
+2313
+-1085
+2635
+9333
+8492
+-3717
+-9210
+-2769
+-2971
+2126
+2654
+5432
+-6357
+-3279
+2194
+4377
+5752
+-144
+-5033
+-1974
+7777
+2650
+1629
+-3886
+8372
+-8591
+-2769
+1205
+-2973
+-3794
+-7569
+3291
+4696
+3417
+-8009
+-6293
+-4296
+4987
+7066
+-8622
+6740
+-6569
+-2880
+-1353
+5036
+-2545
+1925
+-5807
+7012
+1837
+-4949
+-2020
+1039
+-1627
+8013
+-3533
+-1155
+-5697
+-6185
+3910
+6819
+-176
+7183
+920
+5461
+5688
+-3607
+-3452
+5532
+-5524
+6478
+-4669
+8793
+-5619
+9298
+1728
+24
+-1808
+6219
+5311
+-195
+-5206
+-7538
+2862
+-3732
+-9543
+-7
+-5750
+-1951
+-2926
+5932
+-3573
+5675
+-8558
+3982
+-6680
+9677
+-4878
+-5421
+3683
+7246
+4456
+2686
+-349
+-7694
+-8187
+7215
+6527
+-4326
+-9557
+-4329
+4935
+-7590
+9203
+-5034
+2865
+7454
+4256
+-8988
+-4195
+-4589
+-8550
+-15
+1754
+8186
+8887
+7106
+8169
+3044
+1316
+4732
+3225
+6172
+-4710
+2233
+-2791
+9948
+-5108
+9420
+-1280
+-8021
+8762
+-6167
+5625
+7632
+-9434
+1955
+-2112
+7043
+-8905
+-3694
+1338
+2503
+188
+-8849
+-2191
+-6411
+6387
+5580
+7442
+-1720
+1434
+-5573
+-7310
+7777
+-1460
+2675
+-1227
+-6908
+4811
+942
+6513
+-6555
+-7033
+582
+7520
+4904
+-7718
+-8697
+172
+8438
+-6384
+-4013
+5159
+-1063
+-7991
+8084
+993
+7521
+3816
+7586
+-7526
+-9543
+-15
+5768
+-6085
+-8785
+6903
+-9903
+1253
+-6792
+3837
+-1460
+-9234
+8043
+5697
+9552
+-7288
+2279
+7251
+4229
+-3443
+-3512
+4538
+5139
+-53
+-2791
+1555
+5857
+172
+994
+-3893
+-3646
+-5001
+9943
+-6017
+-8199
+5311
+6372
+1833
+4406
+7967
+783
+6321
+2076
+-1929
+-8074
+866
+603
+-4949
+4227
+3740
+806
+-2337
+1679
+3122
+5315
+9405
+8793
+3405
+-5784
+-6366
+3455
+6714
+-535
+-3766
+-4271
+-7151
+-2820
+7280
+9635
+6282
+-8556
+1833
+3127
+-1223
+-5561
+-3898
+-1811
+-6389
+-5358
+7825
+604
+-6735
+2560
+8816
+634
+8213
+3617
+-5643
+-9769
+8097
+4387
+9485
+6546
+-9261
+-8476
+-7580
+-434
+6729
+-3531
+-3948
+7460
+5404
+244
+-410
+-9505
+-2682
+7756
+4072
+2043
+6004
+-9200
+2618
+2283
+-3201
+-1640
+-5287
+3294
+-6816
+3721
+-8011
+-8384
+82
+-8678
+221
+6150
+6875
+2207
+6040
+3738
+1893
+4350
+-3226
+5843
+828
+-7243
+8793
+-8394
+6678
+-5708
+-5473
+955
+8115
+1016
+2803
+208
+6507
+9042
+1899
+-366
+-5530
+4120
+7446
+-7801
+-2068
+1998
+6967
+3279
+-2360
+8776
+5711
+8131
+-8827
+-1995
+-3497
+4082
+8932
+8360
+-2091
+-1673
+-4518
+-7528
+6395
+2430
+-7430
+-3098
+3250
+1815
+-6164
+5660
+2450
+-7011
+-2412
+2596
+-6104
+9476
+-2190
+744
+-6755
+536
+-3279
+-9246
+1714
+5707
+-2786
+-9357
+-6586
+5833
+-5821
+9086
+5956
+-7745
+7984
+7494
+-1723
+-700
+-2930
+62
+9468
+8796
+2165
+4440
+-6479
+419
+-6199
+-24
+2109
+-2022
+-7425
+5109
+-1132
+-3200
+3018
+3499
+-1367
+4022
+-9438
+-6763
+-7947
+8742
+2499
+1368
+3632
+-1489
+4478
+-812
+9290
+9116
+-5270
+-6086
+-7259
+7153
+-2931
+416
+-5705
+6856
+7473
+-8104
+2637
+8155
+256
+-3891
+-2301
+7474
+6627
+9759
+1071
+-5933
+-3406
+398
+-7314
+1802
+-9661
+-2028
+-1262
+1622
+7613
+-1640
+3471
+9133
+6729
+2729
+-3321
+8155
+-4606
+979
+-3072
+1241
+-1284
+-9661
+9920
+-5713
+-2548
+4954
+569
+-889
+-219
+6404
+-6492
+6317
+-2240
+-3911
+7738
+-2278
+1262
+1259
+-6461
+9524
+8764
+9176
+-2301
+-3581
+5268
+-8362
+-9591
+9510
+4598
+-4257
+9921
+7311
+-7037
+-2719
+-6390
+9601
+-694
+-184
+-6231
+1406
+-7542
+-7744
+-8525
+8251
+-5433
+-7050
+5402
+-3076
+9002
+-4213
+-177
+1166
+403
+7260
+-2052
+-7982
+1604
+7995
+689
+2185
+-7307
+1205
+-4296
+3254
+-1894
+-4195
+182
+-8221
+-502
+-3583
+8456
+9865
+-8769
+5632
+2740
+2686
+-1740
+3641
+-8584
+-3657
+-3732
+9063
+-2200
+-9330
+1055
+-8384
+740
+700
+-1824
+-5517
+-2301
+9604
+4994
+4544
+8364
+-4802
+-6856
+-4880
+-8094
+4429
+-5183
+-874
+6767
+-9189
+-3999
+5118
+6486
+2830
+-1724
+572
+-5306
+8397
+5213
+-400
+6319
+4294
+2380
+-9105
+-8194
+3665
+-1334
+4464
+7720
+4146
+-3751
+-7272
+1657
+3114
+-2526
+-6555
+2838
+112
+6526
+-1499
+4840
+-812
+7283
+4120
+8236
+3400
+4544
+6838
+9269
+-3002
+9597
+177
+9276
+-1285
+111
+1598
+-4784
+-7674
+-4005
+-516
+-8346
+2557
+-6904
+3665
+-8710
+685
+1995
+-61
+-4960
+8384
+-4213
+1848
+-8337
+-7059
+5797
+-3682
+9485
+9445
+256
+-8351
+324
+3576
+-5743
+902
+-745
+5255
+-6816
+-5489
+-4822
+-6504
+-1659
+-7834
+1049
+4652
+6963
+-3078
+2934
+-543
+3543
+654
+7505
+-9617
+3426
+-4965
+7644
+2621
+-4951
+-843
+1212
+-4282
+7233
+-8388
+9726
+-1956
+2467
+-7523
+-8446
+436
+-9863
+-7231
+-3058
+-5648
+2283
+-8350
+-53
+1871
+649
+-4583
+2138
+-1499
+-2967
+-5911
+-3268
+-4743
+-2114
+7785
+-4098
+740
+9505
+-5663
+-6334
+-4674
+-1330
+6436
+3241
+-5616
+-3712
+-1790
+1902
+-9102
+-1322
+-8015
+-7307
+2541
+1237
+-2011
+6835
+-5028
+6168
+7300
+7592
+-8605
+3153
+2654
+-971
+8719
+1568
+-6672
+-5668
+-2270
+8352
+5789
+-8497
+2757
+5088
+551
+4722
+5907
+4422
+4818
+80
+-3477
+-5415
+-3787
+-4722
+9845
+5371
+-7444
+-8598
+-4258
+-2791
+3127
+-8350
+3092
+1336
+-2700
+-6775
+-115
+-3399
+9670
+8397
+957
+-7529
+5414
+-6817
+281
+-552
+-7960
+8186
+8129
+-6481
+-4618
+1029
+4627
+-9751
+-7136
+6464
+-8519
+9106
+-4410
+-5035
+-6061
+-6884
+2741
+4914
+4886
+7663
+5565
+-6636
+3038
+2500
+9999
+-306
+-4578
+6125
+-9777
+7906
+3534
+1564
+-4044
+2515
+-3964
+-7709
+-6774
+-9716
+2618
+9952
+-5459
+-2466
+-2464
+7694
+6296
+1916
+-353
+4146
+-8156
+6526
+-646
+-48
+-4068
+4754
+-9791
+1119
+9687
+-2526
+7029
+-778
+2753
+-4895
+2647
+-4910
+1783
+2907
+-8391
+2515
+6558
+-4963
+-1103
+-3720
+-9078
+582
+-5957
+-7633
+-9023
+8397
+-4076
+-6208
+6471
+3466
+-9551
+-3497
+-8920
+7701
+9098
+-2011
+-6183
+1102
+-5994
+57
+-392
+2858
+3494
+-6156
+3698
+4356
+1293
+0
+8006
+6008
+-2906
+-3123
+3350
+9665
+-8572
+8912
+2862
+-7564
+-6199
+-9329
+-6303
+-7722
+6477
+-9697
+-9451
+-1574
+-8272
+-3113
+9109
+-1775
+-7978
+-3563
+3064
+-8582
+-8041
+7174
+3507
+-7115
+3061
+-2896
+7057
+-15
+786
+5586
+8186
+-7369
+-1213
+4296
+-7369
+-6198
+-559
+-4410
+3750
+2309
+-9287
+-2549
+-8603
+-5933
+-2183
+6641
+-8553
+-9002
+2654
+466
+-1868
+7494
+-2515
+454
+9767
+-1397
+9757
+9405
+4747
+6317
+3586
+8665
+-2612
+5521
+-1422
+835
+6903
+-6252
+4963
+8213
+2918
+729
+-3202
+3241
+2968
+-115
+-3712
+2744
+-3082
+2548
+7829
+1420
+-2112
+4704
+-6450
+-3319
+-1730
+-9037
+-355
+4046
+-2035
+-8470
+-4391
+-5487
+-641
+3469
+-6275
+-7137
+-4572
+5610
+5106
+8851
+1029
+-8162
+2109
+-6689
+-8337
+4145
+-7633
+6408
+8374
+8013
+-4235
+-8017
+4944
+-9287
+-1075
+-671
+1499
+3930
+2194
+8690
+-6303
+-4256
+-8919
+8846
+-7264
+-9187
+2679
+7420
+3603
+2885
+4796
+-5855
+5808
+-2535
+-311
+4504
+5905
+4628
+9691
+9053
+-5699
+5690
+3420
+4125
+-2515
+6295
+-118
+850
+-4646
+-5269
+-3750
+-6777
+1044
+-5802
+5364
+4043
+-1780
+6207
+-6656
+9455
+4106
+7319
+7577
+8788
+-9667
+8262
+-8722
+8373
+-8585
diff --git a/day20.rkt b/day20.rkt
new file mode 100644
index 0000000..5284034
--- /dev/null
+++ b/day20.rkt
@@ -0,0 +1,94 @@
+#lang racket
+
+(require data/queue)
+
+(define data (for/list ([(n i) (in-indexed (file->list "day20-sterni"))])
+               (vector n i)))
+
+(define (move zip n)
+  (cond [(= n 0) zip]
+        [(< n 0) (if (null? (car zip))
+                   (move (cons (reverse (cdr zip)) '()) n)
+                   (move (cons (cdr (car zip))
+                               (cons (car (car zip)) (cdr zip)))
+                         (+ n 1)))]
+        [(> n 0) (if (null? (cdr zip))
+                   (move (cons '() (reverse (car zip))) n)
+                   (move (cons (cons (car (cdr zip)) (car zip))
+                               (cdr (cdr zip)))
+                         (- n 1)))]))
+
+(define (peek zip)
+  (if (null? (cdr zip))
+    (peek (move (move zip 1) -1))
+    (car (cdr zip))))
+
+(define (zip->list zip)
+  (append (reverse (car zip)) (cdr zip)))
+
+(define (find ring elt)
+  (let ([ring (move (move ring 1) -1)])
+    (if (equal? (vector-ref (peek ring) 1) elt)
+      ring
+      (find (move ring 1) elt))))
+
+(define (find-val ring elt)
+  (let ([ring (move (move ring 1) -1)])
+    (if (equal? (vector-ref (peek ring) 0) elt)
+      ring
+      (find-val (move ring 1) elt))))
+
+; (move (cons (list 1 2 3) (list 4 5 6)) 2)
+; (move (move (cons (list 1 2 3) (list 4 5 6)) 100) -100)
+
+(define ring (cons '() data))
+
+(define (shift ring n)
+  (let* ([n (remainder n (- (length data) 1))]
+         [ring (move (move ring 1) -1)]
+         [e (peek ring)]
+         [ring (cons (car ring) (cdr (cdr ring)))]  ; drop e
+         [ring (move ring n)]
+         [ring (cons (car ring) (cons e (cdr ring)))]  ; insert e
+         [ring (move ring (- n 1))]
+         )
+    ring))
+
+; (shift (cons (list #(1 1) #(2 2) #(3 3)) (list #(4 4) #(5 5) #(6 6))) 2)
+
+(for ([(_ i) (in-indexed data)])
+  (set! ring (find ring i))
+  (set! ring (shift ring (vector-ref (peek ring) 0))))
+
+(let* ([_ (set! ring (find-val ring 0))]
+       [_ (set! ring (move ring 1000))]
+       [a (vector-ref (peek ring) 0)]
+       [_ (set! ring (move ring 1000))]
+       [b (vector-ref (peek ring) 0)]
+       [_ (set! ring (move ring 1000))]
+       [c (vector-ref (peek ring) 0)])
+  (+ a b c))
+;; 16533
+
+
+(define data2 (for/list ([(n i) (in-indexed (file->list "day20"))])
+                (vector (* n 811589153) i)))
+
+(define ring2 (cons '() data2))
+
+(for ([_ (in-inclusive-range 1 10)])
+  (for ([(_ i) (in-indexed data2)])
+    (set! ring2 (find ring2 i))
+    (set! ring2 (shift ring2 (vector-ref (peek ring2) 0)))))
+
+(zip->list ring2)
+
+(let* ([_ (set! ring2 (find-val ring2 0))]
+       [_ (set! ring2 (move ring2 1000))]
+       [a (vector-ref (peek ring2) 0)]
+       [_ (set! ring2 (move ring2 1000))]
+       [b (vector-ref (peek ring2) 0)]
+       [_ (set! ring2 (move ring2 1000))]
+       [c (vector-ref (peek ring2) 0)])
+  (+ a b c))
+;; 4789999181006