AdventOfCode2022/2/out

2502 lines
13 KiB
Plaintext
Raw Normal View History

2022-12-03 02:53:53 +01:00
9
18
24
30
31
33
41
50
53
61
67
74
80
87
88
97
106
109
115
121
123
129
138
147
151
159
168
177
183
192
201
208
214
222
226
230
236
242
243
250
259
262
263
272
281
284
293
301
307
313
314
320
323
329
335
341
347
350
359
365
368
374
380
382
390
397
403
409
415
421
429
436
444
452
459
468
476
478
484
493
499
508
517
526
528
537
545
551
557
561
568
574
578
584
590
597
600
606
612
621
623
631
633
635
638
647
653
659
665
668
674
675
681
689
695
702
704
706
715
721
727
731
738
744
750
753
762
771
778
784
793
800
809
815
824
833
842
851
853
859
868
874
880
886
892
901
907
916
922
931
937
939
945
951
958
964
970
972
978
980
987
996
1005
1011
1014
1020
1026
1032
1041
1047
1056
1062
1071
1077
1083
1084
1093
1099
1105
1108
1111
1120
1126
1132
1135
1136
1143
1146
1152
1158
1163
1172
1181
1189
1198
1204
1210
1218
1227
1229
1232
1239
1242
1250
1257
1259
1265
1274
1280
1288
1297
1306
1312
1318
1324
1330
1336
1345
1351
1355
1361
1367
1375
1381
1389
1395
1404
1410
1418
1424
1426
1432
1441
1448
1456
1463
1471
1472
1474
1475
1481
1483
1489
1491
1493
1502
1508
1516
1523
1529
1535
1544
1547
1553
1559
1561
1567
1569
1570
1576
1582
1588
1595
1603
1612
1618
1624
1630
1639
1647
1650
1658
1667
1670
1678
1687
1693
1701
1704
1713
1722
1731
1737
1743
1749
1755
1761
1767
1776
1782
1788
1794
1797
1805
1812
1818
1821
1827
1835
1841
1849
1855
1861
1865
1867
1873
1877
1884
1888
1897
1903
1907
1913
1922
1926
1932
1940
1943
1945
1953
1955
1958
1967
1970
1979
1986
1993
1999
2005
2014
2022
2028
2036
2042
2051
2052
2053
2054
2057
2066
2073
2079
2087
2093
2094
2102
2109
2118
2124
2130
2136
2142
2145
2154
2163
2164
2172
2178
2185
2193
2199
2205
2211
2219
2223
2232
2238
2241
2243
2246
2255
2263
2269
2275
2284
2292
2301
2304
2312
2318
2322
2328
2334
2343
2349
2356
2364
2372
2381
2387
2388
2396
2402
2408
2412
2415
2421
2427
2435
2441
2443
2451
2459
2468
2474
2480
2487
2493
2501
2510
2516
2522
2530
2539
2545
2551
2560
2568
2577
2583
2589
2595
2602
2608
2614
2620
2622
2629
2631
2637
2646
2654
2661
2670
2677
2684
2690
2693
2699
2700
2708
2714
2723
2727
2728
2735
2741
2747
2756
2765
2771
2777
2785
2794
2797
2806
2809
2813
2819
2822
2825
2826
2829
2838
2847
2855
2857
2866
2875
2884
2893
2899
2908
2914
2923
2925
2931
2937
2944
2950
2952
2954
2961
2969
2971
2980
2986
2994
2997
2998
3004
3010
3018
3026
3034
3040
3043
3049
3054
3058
3066
3072
3076
3085
3091
3097
3106
3112
3115
3122
3128
3137
3146
3152
3161
3164
3170
3176
3184
3193
3201
3210
3216
3225
3231
3240
3249
3257
3259
3268
3274
3277
3286
3292
3298
3301
3310
3316
3324
3327
3334
3343
3351
3359
3365
3368
3377
3386
3392
3398
3404
3410
3418
3422
3428
3437
3443
3449
3451
3457
3461
3464
3470
3471
3474
3475
3476
3484
3492
3500
3506
3512
3518
3521
3528
3536
3542
3551
3557
3561
3570
3574
3577
3583
3589
3595
3596
3605
3612
3621
3627
3633
3639
3647
3656
3665
3671
3675
3684
3692
3698
3706
3714
3720
3726
3734
3741
3747
3755
3761
3770
3779
3785
3787
3796
3805
3811
3819
3825
3834
3835
3843
3846
3852
3861
3867
3874
3882
3885
3893
3902
3905
3914
3922
3930
3939
3945
3951
3957
3965
3969
3978
3986
3992
3993
3999
4005
4013
4019
4025
4027
4033
4035
4044
4053
4059
4065
4074
4083
4092
4098
4107
4116
4122
4128
4135
4141
4147
4156
4165
4172
4180
4182
4189
4198
4205
4214
4220
4223
4225
4231
4238
4239
4247
4249
4253
4259
4265
4271
4277
4285
4287
4293
4301
4307
4313
4322
4331
4340
4346
4352
4358
4364
4370
4376
4385
4391
4400
4406
4415
4421
4427
4436
4442
4448
4454
4462
4468
4474
4478
4484
4490
4494
4503
4509
4517
4524
4530
4533
4535
4543
4549
4558
4564
4573
4580
4582
4591
4597
4603
4611
4618
4624
4630
4631
4637
4643
4649
4655
4658
4666
4672
4681
4687
4696
4704
4713
4719
4728
4733
4739
4748
4756
4762
4764
4770
4774
4783
4789
4792
4795
4804
4808
4817
4826
4828
4834
4840
4845
4854
4860
4868
4869
4878
4884
4890
4896
4897
4905
4913
4922
4931
4937
4946
4952
4954
4963
4972
4973
4981
4989
4997
4998
5004
5010
5019
5025
5032
5041
5047
5053
5062
5068
5074
5082
5091
5099
5101
5110
5119
5128
5135
5141
5147
5153
5160
5166
5170
5179
5185
5191
5199
5208
5214
5222
5228
5237
5243
5249
5258
5267
5273
5279
5281
5287
5289
5296
5302
5304
5310
5318
5327
5336
5344
5353
5354
5355
5358
5360
5366
5372
5381
5387
5393
5399
5405
5407
5413
5422
5428
5434
5440
5449
5458
5464
5465
5467
5471
5477
5480
5482
5488
5494
5503
5509
5515
5521
5530
5538
5541
5542
5549
5557
5565
5571
5577
5583
5589
5595
5601
5603
5609
5615
5621
5629
5632
5638
5646
5652
5658
5667
5676
5677
5685
5694
5696
5702
5711
5714
5722
5726
5732
5741
5747
5756
5765
5771
5777
5783
5789
5797
5800
5806
5812
5820
5822
5828
5832
5833
5834
5840
5846
5855
5863
5871
5879
5883
5889
5898
5907
5916
5924
5926
5935
5938
5944
5945
5951
5957
5964
5971
5977
5985
5994
6000
6008
6014
6018
6024
6033
6042
6051
6057
6066
6072
6075
6081
6090
6096
6104
6110
6113
6119
6121
6130
6133
6139
6144
6147
6153
6157
6163
6172
6176
6182
6191
6197
6204
6212
6218
6227
6231
6237
6246
6252
6260
6266
6272
6278
6287
6289
6295
6302
6305
6311
6317
6326
6332
6338
6344
6347
6353
6361
6365
6371
6379
6386
6392
6401
6407
6416
6425
6433
6442
6450
6458
6465
6474
6480
6486
6492
6498
6504
6512
6521
6527
6535
6544
6550
6556
6564
6573
6579
6581
6590
6596
6605
6608
6615
6624
6626
6632
6638
6645
6652
6656
6662
6671
6674
6680
6689
6690
6696
6702
6708
6714
6723
6724
6730
6736
6742
6751
6753
6762
6763
6765
6771
6777
6786
6789
6791
6798
6804
6813
6819
6825
6831
6840
6841
6847
6853
6861
6867
6869
6877
6880
6885
6891
6899
6906
6913
6920
6926
6935
6941
6947
6956
6962
6970
6976
6982
6991
6998
7004
7013
7019
7027
7033
7039
7046
7052
7061
7063
7069
7072
7078
7087
7090
7099
7105
7113
7122
7128
7134
7143
7146
7152
7159
7165
7171
7179
7187
7190
7196
7204
7208
7214
7220
7226
7233
7236
7242
7250
7256
7262
7264
7270
7276
7285
7291
7297
7306
7315
7321
7327
7333
7342
7348
7354
7356
7365
7367
7376
7377
7383
7389
7397
7406
7408
7417
7426
7435
7444
7450
7452
7456
7462
7468
7474
7480
7486
7495
7501
7509
7515
7521
7529
7537
7543
7549
7558
7567
7574
7580
7586
7590
7596
7598
7604
7613
7619
7627
7633
7639
7645
7652
7660
7666
7673
7682
7688
7694
7696
7702
7710
7719
7728
7732
7734
7740
7741
7745
7751
7757
7763
7769
7771
7775
7784
7790
7796
7804
7805
7808
7816
7825
7831
7838
7842
7849
7851
7857
7858
7862
7868
7874
7875
7883
7891
7899
7905
7911
7919
7925
7928
7936
7942
7943
7949
7955
7962
7968
7974
7977
7986
7989
7991
7993
7995
8001
8008
8014
8022
8031
8037
8046
8052
8060
8067
8073
8079
8088
8094
8096
8104
8113
8122
8123
8132
8138
8146
8152
8161
8169
8175
8181
8190
8198
8204
8210
8216
8222
8225
8233
8239
8246
8249
8252
8258
8264
8270
8278
8287
8296
8305
8314
8320
8327
8333
8339
8348
8357
8363
8370
8373
8381
8387
8396
8403
8410
8418
8426
8432
8433
8439
8441
8448
8456
8458
8464
8470
8479
8482
8488
8494
8500
8507
8513
8522
8530
8536
8545
8551
8559
8567
8568
8569
8578
8584
8590
8596
8602
8609
8615
8624
8631
8638
8641
8646
8652
8658
8665
8674
8680
8686
8689
8695
8702
8710
8713
8719
8728
8734
8735
8743
8749
8755
8764
8771
8780
8789
8795
8801
8807
8816
8819
8825
8829
8835
8841
8847
8854
8861
8870
8872
8878
8880
8883
8891
8895
8904
8912
8918
8920
8929
8938
8947
8952
8961
8965
8971
8979
8988
8996
9002
9008
9014
9022
9028
9037
9043
9046
9048
9055
9063
9071
9079
9088
9090
9096
9102
9109
9118
9126
9132
9138
9147
9150
9156
9165
9172
9178
9187
9193
9199
9204
9213
9215
9224
9228
9230
9239
9245
9253
9259
9262
9268
9277
9281
9283
9285
9293
9296
9305
9308
9314
9316
9323
9329
9337
9343
9351
9357
9363
9369
9371
9378
9385
9394
9402
9408
9412
9418
9421
9428
9432
9435
9443
9449
9455
9461
9470
9479
9485
9491
9497
9505
9511
9514
9520
9526
9533
9540
9546
9552
9558
9564
9570
9578
9587
9596
9602
9603
9605
9611
9617
9623
9631
9632
9638
9645
9654
9657
9658
9664
9670
9679
9686
9695
9701
9709
9716
9724
9727
9729
9735
9737
9743
9750
9756
9762
9768
9774
9780
9786
9795
9801
9810
9817
9823
9830
9839
9842
9846
9852
9860
9862
9868
9874
9880
9889
9898
9902
9908
9917
9923
9929
9933
9939
9948
9955
9961
9967
9973
9979
9980
9987
9996
10002
10011
10019
10025
10033
10034
10040
10046
10052
10058
10066
10072
10078
10087
10093
10099
10108
10116
10123
10129
10135
10143
10150
10159
10168
10176
10182
10191
10197
10205
10214
10217
10223
10232
10238
10247
10254
10263
10269
10275
10281
10289
10297
10303
10312
10320
10321
10327
10336
10343
10349
10358
10367
10369
10371
10374
10381
10387
10396
10404
10410
10416
10425
10433
10442
10445
10451
10460
10469
10478
10484
10491
10500
10506
10515
10521
10527
10535
10543
10549
10556
10564
10573
10579
10582
10588
10597
10605
10611
10618
10624
10630
10636
10642
10650
10656
10663
10672
10673
10679
10687
10689
10695
10701
10708
10714
10721
10728
10734
10743
10744
10747
10750
10756
10758
10766
10772
10780
10786
10792
10798
10807
10816
10822
10831
10837
10843
10845
10854
10863
10869
10875
10884
10891
10894
10900
10906
10914
10922
10930
10936
10942
10951
10954
10958
10966
10973
10979
10988
10995
11002
11011
11020
11021
11027
11029
11034
11040
11046
11052
11057
11065
11073
11079
11085
11091
11097
11103
11109
11115
11121
11122
11125
11129
11135
11143
11146
11153
11159
11161
11167
11173
11179
11188
11197
11205
11208
11215
11216
11217
11223
11225
11231
11237
11239
11245
11251
11254
11263
11269
11277
11283
11289
11295
11303
11309
11314
11315
11321
11329
11330
11332
11340
11346
11352
11354
11357
11366
11372
11378
11387
11389
11396
11398
11400
11409
11415
11424
11430
11438
11446
11454
11463
11469
11472
11478
11480
11489
11498
11500
11506
11512
11520
11526
11532
11541
11547
11554
11558
11566
11574
11583
11589
11590
11598
11607
11613
11619
11628
11636
11642
11648
11649
11657
11663
11664
11672
11678
11685
11688
11697
11706
11712
11719
11727
11733
11739
11747
11756
11762
11770
11776
11784
11790
11799
11805
11809
11818
11824
11830
11837
11842
11850
11854
11861
11870
11876
11883
11892
11898
11904
11910
11916
11919
11925
11933
11934
11940
11946
11955
11964
11971
11980
11981
11987
11993
11999
12007
12013
12019
12025
12031
12039
12042
12051
12053
12056
12062
12068
12074
12075
12084
12090
12099
12105
12112
12118
12122
12128
12134
12140
12146
12152
12160
12168
12177
12186
12195
12204
12210
12216
12222
12228
12231
12239
12245
12248
12256
12262
12268
12270
12278
12287
12294
12303
12311
12317
12325
12331
12340
12349
12358
12364
12370
12373
12381
12388
12396
12402
12410
12416
12422
12430
12439
12445
12447
12453
12462
12471
12480
12482
12488
12497
12504
12513
12521
12530
12536
12544
12550
12552
12558
12564
12570
12576
12577
12586
12592
12598
12606
12608
12614
12620
12626
12632
12638
12645
12654
12661
12669
12670
12678
12684
12693
12701
12710
12716
12724
12730
12736
12743
12750
12756
12765
12772
12778
12782
12785
12791
12793
12801
12805
12814
12820
12826
12835
12843
12849
12853
12862
12871
12875
12877
12883
12891
12900
12906
12912
12918
12927
12933
12942
12948
12949
12958
12964
12968
12974
12978
12984
12992
12998
13001
13007
13013
13019
13020
13028
13036
13040
13049
13058
13060
13066
13075
13079
13085
13093
13099
13105
13114
13120
13127
13128
13137
13138
13144
13150
13159
13162
13168
13170
13172
13178
13184
13190
13196
13202
13208
13212
13215
13221
13230
13239
13248
13255
13258
13264
13270
13279
13288
13294
13295
13301
13310
13316
13322
13328
13334
13338
13341
13349
13355
13358
13366
13372
13375
13381
13389
13395
13404
13410
13418
13420
13428
13437
13445
13454
13460
13461
13468
13474
13483
13486
13492
13493
13495
13501
13503
13507
13514
13521
13530
13538
13544
13547
13556
13562
13569
13575
13581
13587
13593
13599
13608
13617
13623
13629
13635
13641
13648
13651
13657
13665
13673
13679
13685
13687
13693
13701
13707
13716
13717
13720
13728
13736
13742
13750
13756
13760
13768
13769
13775
13781
13784
13790
13798
13807
13815
13821
13827
13836
13843
13849
13855
13861
13863
13869
13870
13876
13882
13883
13886
13892
13899
13906
13915
13921
13927
13936
13942
13948
13957
13966
13975
13984
13993
13996
14003
14005
14011
14019
14025
14034
14042
14048
14054
14063
14072
14078
14081
14085
14093
14099
14102
14108
14115
14124
14130
14134
14143
14144
14150
14156
14162
14163
14169
14178
14187
14195
14203
14206
14212
14218
14224
14233
14239
14248
14254
14257
14263
14270
14276
14282
14288
14297
14305
14307
14313
14319
14325
14331
14340
14342
14348
14351
14353
14359
14360
14368
14376
14380
14389
14398
14404
14412
14413
14421
14428
14434
14442
14449
14455
14461
14464
14471
14477
14484
14490
14498
14504
14510
14519
14525
14527
14530
14537
14539
14545
14551
14553
14562
14571
14578
14584
14590
14596
14602
14611
14617
14623
14629
14634
14636
14642
14651
14657
14663
14665
14674
14682
14685
14687
14689
14695
14702
14708
14711
14717
14723
14731
14734
14740
14743
14749
14758
14759
14768
14777
14780
14786
14794
14800
14802
14808
14811
14820
14829
14838
14844
14853
14856
14864
14870
14876
14882
14888
14894
14897
14903
14906
14910
14919
14927
14934
14937
14938
14943
14951
14960
14963
14972
14981
14987
14990
14999
15008
15016
15018
15020
15024
15030
15036
15042
15049
15055
15061
15067
15073
15082
15090
15096
15102
15108
15111
15118
15124
15133
15135
15136
15141
15147
15153
15157
15159
15166
15175
15184
15190
15199
15201
15203
15205
15212
15218
15224
15230
15237
15245
15251
15257
15266
15269
15275
15283
15284
15290
15297
15303
15306
15315
15323
15329
15335
15341
15344
15350
15356
15363
15369
15375
15384
15390
15399
15406
15412
15420
15428
15434
15440
15449
15455
15461
15468
15474
15482
15488
15494
15500
15509
15515
15523
My score is 15523