diff --git a/23/.envrc b/23/.envrc
deleted file mode 100644
index 3550a30..0000000
--- a/23/.envrc
+++ /dev/null
@@ -1 +0,0 @@
-use flake
diff --git a/23/elixir/.formatter.exs b/23/elixir/.formatter.exs
deleted file mode 100644
index d2cda26..0000000
--- a/23/elixir/.formatter.exs
+++ /dev/null
@@ -1,4 +0,0 @@
-# Used by "mix format"
-[
-  inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"]
-]
diff --git a/23/elixir/.gitignore b/23/elixir/.gitignore
deleted file mode 100644
index e23ab19..0000000
--- a/23/elixir/.gitignore
+++ /dev/null
@@ -1,26 +0,0 @@
-# The directory Mix will write compiled artifacts to.
-/_build/
-
-# If you run "mix test --cover", coverage assets end up here.
-/cover/
-
-# The directory Mix downloads your dependencies sources to.
-/deps/
-
-# Where third-party dependencies like ExDoc output generated docs.
-/doc/
-
-# Ignore .fetch files in case you like to edit your project deps locally.
-/.fetch
-
-# If the VM crashes, it generates a dump, let's ignore it too.
-erl_crash.dump
-
-# Also ignore archive artifacts (built via "mix archive.build").
-*.ez
-
-# Ignore package tarball (built via "mix hex.build").
-aoc-*.tar
-
-# Temporary files, for example, from tests.
-/tmp/
diff --git a/23/elixir/Makefile b/23/elixir/Makefile
deleted file mode 100644
index 369016a..0000000
--- a/23/elixir/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-day%:
-	mix run -e "AOC.Day$*.solve()"
diff --git a/23/elixir/README.md b/23/elixir/README.md
deleted file mode 100644
index 7069072..0000000
--- a/23/elixir/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Aoc
-
-**TODO: Add description**
-
-## Installation
-
-If [available in Hex](https://hex.pm/docs/publish), the package can be installed
-by adding `aoc` to your list of dependencies in `mix.exs`:
-
-```elixir
-def deps do
-  [
-    {:aoc, "~> 0.1.0"}
-  ]
-end
-```
-
-Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
-and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
-be found at <https://hexdocs.pm/aoc>.
-
diff --git a/23/elixir/inputs/day7.txt b/23/elixir/inputs/day7.txt
deleted file mode 100644
index 00fdfcc..0000000
--- a/23/elixir/inputs/day7.txt
+++ /dev/null
@@ -1,1000 +0,0 @@
-7227Q 52
-67Q64 732
-33Q33 573
-58ATQ 939
-93K53 840
-55AJ8 496
-6ATAT 863
-26J77 1
-TTQAT 381
-2J2J2 322
-342Q2 409
-3444Q 864
-77J67 31
-772QJ 796
-5388J 956
-7JJ7J 88
-5Q555 626
-77AK8 588
-J2222 661
-36T93 934
-5Q365 343
-K3K3K 283
-5959A 537
-44477 560
-6AA5K 208
-5J445 262
-28228 61
-646A6 503
-KK4Q8 471
-A426T 500
-AQ9JA 643
-J784T 348
-22J48 6
-A5AJ5 220
-62235 545
-84JJJ 206
-48464 669
-44844 637
-Q8537 969
-95663 751
-JTQK7 305
-33TTT 335
-4T925 32
-9777Q 738
-2QQ66 971
-TQQ9T 657
-69437 176
-2555J 849
-55AAA 26
-94TT4 531
-89T66 55
-387J8 663
-KKKKJ 198
-K4KK4 870
-622J2 330
-6283A 337
-JQQQ2 349
-666AA 706
-9794J 966
-99A9T 771
-53J53 477
-7JT3J 829
-KK524 765
-Q4QQ4 486
-J7367 519
-KK4TJ 937
-Q4983 168
-74A77 997
-Q2244 464
-242J4 625
-J2839 326
-T927T 773
-2Q992 875
-77722 467
-8K645 959
-AJTJ3 650
-64Q35 98
-QQTQ4 973
-24492 438
-T8AK7 983
-K439T 924
-7AJ7J 426
-T88T5 801
-9J939 267
-7K557 458
-T9KQ3 231
-34444 720
-44TTT 781
-AA3A9 177
-78878 479
-4K474 932
-3TT65 634
-98898 113
-26286 702
-37736 673
-9Q9K3 103
-9TT92 755
-8AAJ8 845
-55A55 356
-K2222 184
-7777Q 950
-64392 649
-36653 891
-22AA2 201
-55943 367
-AQA2Q 178
-4T693 806
-385J5 429
-246Q6 930
-32J2Q 428
-59Q83 128
-8684Q 828
-482Q9 668
-243QA 250
-JQTQQ 656
-45645 354
-7J648 534
-44633 638
-A3283 284
-38262 830
-QAT67 976
-7662Q 241
-266T2 355
-3AA67 958
-JTTTT 51
-A3T22 739
-6A45J 978
-969JJ 965
-69K98 413
-8Q33Q 239
-886QQ 135
-Q44JK 525
-TT6TT 64
-77773 451
-8AKK8 172
-QTQ2T 872
-QQTQ7 642
-44666 387
-J4Q74 225
-4J968 542
-Q6939 831
-2773T 420
-55565 313
-76666 9
-5J4J4 212
-TTJQJ 601
-358K2 725
-JQ78Q 597
-3K3TK 685
-QKQQQ 261
-5Q59Q 762
-Q77QQ 756
-KK2J2 728
-TKKK5 879
-9KQ9K 785
-Q83JK 96
-39998 256
-TTJ3T 852
-66866 192
-2567T 211
-76969 20
-KAKKK 735
-9Q5QQ 808
-JQ87K 67
-J8887 320
-J9763 36
-A6464 75
-K5AA5 996
-TTJ7T 890
-7KKK7 450
-72752 817
-K2J32 915
-T25J7 72
-QQ6Q6 53
-27T7J 577
-98J89 236
-23525 404
-44244 34
-2K8J7 509
-AK427 108
-7K6KA 466
-374J7 553
-533K3 78
-8J6K2 301
-J7577 995
-T88T8 903
-626K6 265
-2A96A 462
-T4987 279
-JJTKJ 69
-77767 641
-2Q232 210
-444JJ 133
-7Q7JQ 508
-5555K 888
-46462 874
-KQKKK 474
-96737 10
-7AT28 234
-2QJTA 229
-9T8T8 111
-373KJ 263
-95599 605
-A7Q66 719
-82555 291
-9KK8T 810
-Q87KK 102
-TT2TT 792
-888T8 772
-9J767 972
-9496J 774
-4KJ44 511
-KA5KK 790
-4J222 944
-2325A 961
-AQJ5A 118
-J555J 698
-9899J 862
-5496K 590
-A97J4 287
-77JA3 695
-959Q9 79
-29927 516
-K88A3 400
-9997J 541
-58A6J 452
-2QTKA 447
-777KK 154
-47J2K 907
-QJ5A4 592
-JAA8J 730
-K5J55 982
-3QQQ3 85
-725QK 140
-5KK55 678
-A5AQ9 871
-3J639 149
-99899 623
-7AAA7 152
-7777J 401
-75492 895
-TQ549 900
-2A7TT 991
-2J36J 559
-95K83 433
-44TTA 778
-98J9Q 378
-55TQ9 581
-3AK7T 50
-94399 869
-Q43JA 109
-34KKJ 569
-88499 27
-22525 737
-7T9K6 523
-337J9 141
-99959 339
-JK9K9 444
-5T55T 680
-339T9 562
-JJKKK 366
-KJTJK 814
-9KJ55 299
-5969J 672
-92273 416
-6TQ68 107
-T36K5 938
-K26K6 884
-5625J 93
-44393 196
-55558 100
-96666 521
-4938T 813
-2QQ8Q 244
-8887T 885
-KT92Q 189
-6K766 60
-67676 481
-QQ524 427
-58598 520
-4J454 777
-6Q82Q 303
-6Q6J3 435
-83993 670
-32232 873
-T488T 795
-622J6 893
-53323 914
-J77J7 205
-55954 385
-KJK48 251
-96AQK 861
-QJT45 653
-K3826 835
-44447 546
-4T877 793
-88333 701
-QQQJ8 566
-36663 799
-66Q5Q 41
-A44Q9 43
-47KKK 783
-23J22 3
-67JQQ 289
-K43J7 484
-QJQQQ 89
-32T65 709
-4646T 515
-T3A29 535
-75665 952
-KQQ2T 837
-AJTT4 578
-QK4Q4 288
-6J6JJ 312
-28887 138
-33TK4 599
-77J2J 946
-566J5 63
-333A5 457
-A2A66 575
-6296T 611
-3TQ46 373
-J888J 726
-KKJ4K 948
-J5T4A 455
-4T74T 962
-473A8 431
-ATATA 514
-4Q385 269
-K65K6 383
-398K4 715
-65JT7 630
-8A6J9 419
-QA5JQ 585
-Q45KA 754
-AAA66 173
-4949Q 733
-K9972 22
-KTKKK 422
-5JQ22 502
-K787K 302
-TT8TJ 527
-265KA 363
-KK7KK 745
-6263K 498
-65J2K 565
-26322 104
-44Q74 731
-23383 276
-KQ948 687
-9552J 504
-75JA6 95
-3JJ33 994
-28824 716
-2A8JK 13
-22868 38
-88388 987
-A955Q 963
-54T86 547
-55547 671
-5TK7Q 417
-4Q35K 842
-33353 492
-96A85 878
-Q6QAQ 867
-K55KJ 822
-97QK2 398
-K6229 162
-4TT84 518
-Q67AJ 628
-2TT22 776
-2QJ24 766
-A8TT8 418
-A74Q2 704
-77T7T 399
-774JT 789
-6A845 371
-8JQ5Q 970
-55645 757
-68788 896
-5J2J7 350
-K88J6 853
-3AAA3 160
-3J777 125
-3666K 247
-5QA98 887
-QJ272 106
-45555 767
-3T3T3 441
-4448T 260
-A9A9A 550
-76JA6 591
-6T4T8 984
-KT7JK 748
-727T2 253
-8Q77A 364
-Q8448 507
-T3JJ9 707
-8Q88Q 555
-A84AA 370
-7QQ26 804
-35377 616
-TK3KK 87
-T764T 688
-AT9A8 45
-A6AA5 328
-57T63 315
-62622 627
-66366 788
-JKQKQ 980
-6T5AQ 841
-58585 693
-3KA73 411
-44884 949
-AA958 615
-4Q26A 886
-57AJ7 564
-84J48 342
-633TJ 295
-29222 606
-Q222Q 453
-JAQAA 818
-T6TTJ 290
-Q3KAJ 563
-666TT 844
-K28QQ 286
-KK46K 811
-T2222 714
-8A883 463
-JJ73J 83
-AJK26 538
-72A34 266
-TKK9Q 877
-333AA 382
-8T28T 470
-888A5 910
-5A365 664
-88JKK 310
-55235 551
-K2KKK 308
-AA688 809
-62T6Q 57
-AA2A4 336
-9999K 268
-44J8T 227
-67877 461
-K33QK 21
-Q44JQ 423
-TK787 71
-A78A6 749
-QJAQQ 331
-J2A52 935
-965TT 54
-598J5 729
-K8KKJ 857
-K5J6K 340
-QJQ22 47
-685QA 230
-9999J 617
-A9339 321
-953T4 920
-33373 859
-8JJ8T 922
-42K39 116
-QQ432 449
-K24K2 345
-4A442 802
-3JKK3 758
-6JTTQ 185
-5K9J7 124
-7A779 325
-68868 998
-JQ355 224
-TK456 568
-93793 150
-449J9 33
-57777 248
-666KK 750
-T333J 703
-466AA 613
-5JJ8Q 226
-AQTQT 779
-33355 23
-33TQ3 974
-8J588 992
-KJKKQ 832
-34J97 694
-K9993 70
-QQQ9Q 228
-4K9AQ 148
-7KKJ9 379
-99944 571
-TT3Q8 297
-T2QA9 921
-JJ55T 561
-J6KAQ 607
-4735Q 259
-3J547 223
-64464 574
-77J94 919
-626Q6 923
-J3832 631
-96QK3 391
-A4J4A 421
-J77KK 723
-K8354 285
-JATQ9 273
-28732 209
-72779 666
-4J255 243
-777K7 202
-JJQ5J 645
-82A47 612
-888T4 97
-22K2K 736
-T35Q8 752
-94238 700
-5K242 324
-5QJ5A 927
-4T6KA 892
-74J8A 960
-4J4JK 791
-A76QQ 159
-988A8 143
-86J32 39
-7QK32 512
-7TTTT 483
-KK27K 252
-8A366 529
-8333J 182
-52QQ5 164
-95926 219
-AK33A 977
-A368K 988
-QQA5Q 858
-5999J 848
-KK9JK 110
-6Q2Q2 570
-AAKK7 600
-555Q3 277
-2A2A6 614
-38853 2
-JTA82 608
-8J668 636
-J999K 30
-QJ35T 505
-AQ7AA 121
-777KJ 389
-J6282 465
-8K2T3 332
-43Q82 760
-66T6K 734
-7A77A 454
-A98AA 99
-QQ7QQ 362
-99J9J 129
-444TJ 74
-A7263 16
-74749 699
-2K2KK 137
-8K6JQ 146
-6TJ58 902
-72222 123
-9A97A 415
-37TT6 380
-88882 651
-66555 311
-55J55 270
-77A72 430
-33Q5Q 193
-TTQ44 369
-3TT8T 278
-428T3 132
-AK897 214
-7QQQJ 697
-9AK62 157
-96466 487
-J522J 238
-9J7A9 394
-QQK77 584
-Q72T4 24
-26662 169
-9KK32 908
-45QJ6 576
-45QKJ 690
-KK248 696
-AAAA4 652
-2T2QQ 681
-9992J 216
-47777 929
-KJT5J 73
-5TA64 593
-55AA5 780
-7QT35 58
-8JTJ6 648
-K4K54 712
-44Q49 539
-KT427 665
-TJ3T3 191
-T7758 945
-A9347 609
-942J2 386
-QQ9J9 81
-J7445 957
-7A54J 889
-QK44K 207
-7KJ99 683
-7888Q 925
-44J44 583
-365K8 794
-88983 675
-2T2QJ 375
-28K2J 222
-84A8T 372
-72796 264
-3KKAK 708
-59559 722
-7JK35 5
-J8Q88 913
-QA543 942
-86A68 866
-T4A4A 746
-QAQQQ 640
-J8T8T 408
-77JT6 679
-J5779 323
-86AA3 803
-TAAA3 376
-5J6K5 217
-78253 787
-TTTK3 357
-Q8599 368
-QTTTT 199
-77K3K 309
-TKJKK 644
-7Q554 307
-KKQKQ 445
-77866 403
-44355 272
-J6969 968
-985A3 667
-JJQQQ 333
-5J9JT 281
-6T4A4 156
-KA9J2 999
-22329 405
-3QK93 692
-2T2TT 827
-22999 240
-TK7JJ 101
-7287A 567
-J4J24 360
-AAJ53 424
-JAA45 769
-77282 981
-7777T 548
-43533 572
-93932 180
-7AAAA 926
-8K888 782
-4747J 495
-684QJ 40
-73495 855
-2552J 293
-7QKT2 497
-AA4A6 163
-2T8TT 897
-7J746 407
-3J234 807
-Q3QQQ 358
-AJAJA 66
-8K5Q5 115
-K9TTJ 485
-33Q7Q 186
-T7797 604
-69989 443
-J666T 11
-J2233 532
-94969 410
-889Q8 17
-K97A6 298
-73T3J 334
-663J6 821
-54QQT 770
-4AAA4 432
-4334A 967
-JJJJJ 647
-JK2TT 904
-2774A 280
-K8KJA 834
-AJ38A 763
-3KKKJ 836
-69693 1000
-48J47 955
-7KA7K 905
-33244 691
-5A435 557
-87KA8 472
-J2484 341
-K35K5 815
-K8Q2A 29
-KK3Q4 390
-7J77A 300
-84T5T 589
-7893T 964
-22AAA 235
-QKK6Q 142
-T6A48 122
-T22T9 167
-KA53Q 686
-68J5K 947
-64625 727
-3T5T3 120
-2992J 846
-A3K8J 145
-QK99J 838
-4A4AQ 91
-KKK8K 491
-AAA28 480
-42772 304
-T222A 204
-K6Q37 558
-Q5K6A 352
-8QJQ8 682
-832J8 147
-Q388T 170
-9555J 12
-7KTT9 658
-KAAKK 911
-TKTTT 174
-44TJ2 993
-6KK6K 136
-5A5TA 494
-AAJ22 15
-633Q3 740
-QQQ4Q 933
-4A4Q2 237
-33555 402
-Q9A23 549
-3Q343 936
-9Q799 14
-3KKKQ 618
-JKK54 876
-96996 25
-2T374 439
-4QJAQ 374
-JQ64K 718
-464Q6 187
-J9252 271
-88Q38 396
-K4J55 912
-5JT73 434
-KK6J4 195
-A8AAA 388
-79793 353
-877J7 943
-J4484 662
-A434J 812
-TTQJ7 493
-63333 711
-22262 540
-474QQ 975
-Q22K2 393
-K5KK2 621
-QQ62T 524
-J6666 188
-AAQAA 883
-65666 126
-778K8 65
-8A3T9 90
-AA392 392
-T593T 151
-QQ2KK 654
-765KA 953
-Q5QQ7 475
-4KTK4 677
-66243 580
-895TJ 175
-QT345 436
-3332T 865
-2T5J9 414
-24J9K 181
-5557A 249
-J3J5J 513
-75555 741
-659T2 689
-TQ5TJ 530
-7T48A 194
-23332 629
-KJKK6 490
-43J33 344
-K55KK 624
-A8JAA 622
-68J89 880
-KJQT9 44
-98989 526
-Q3QT4 602
-764QQ 134
-772Q7 127
-6K6T5 274
-383Q8 139
-JK677 764
-TTT4T 56
-76K82 153
-JAAAA 717
-33JJ5 684
-8TTKT 985
-8T74T 928
-88J88 916
-74938 660
-3TK74 338
-T98K5 397
-99A69 488
-24A6K 197
-43A42 144
-TT9J9 579
-J837Q 552
-44464 820
-82A5A 329
-ATAAJ 183
-83899 190
-88TQT 292
-69482 130
-36J36 4
-458T7 860
-4Q29Q 473
-KKK4K 676
-4K756 800
-8J8JJ 898
-TTTT9 881
-88J28 203
-42422 744
-QQQKK 112
-4J2Q7 327
-57922 582
-44A44 37
-35559 705
-T8TQQ 246
-JQ29K 536
-9A999 825
-62TT2 499
-K3567 218
-72J22 215
-87487 377
-5J655 489
-26769 816
-577A7 851
-44T86 131
-7QQ72 460
-28QJ3 954
-243K7 979
-24J97 724
-4QKT3 742
-A88AA 619
-363AA 610
-T24TJ 117
-92AJ6 587
-J666J 596
-Q7J36 850
-Q3968 901
-8J7JK 798
-5J9T3 84
-29Q22 674
-5588J 598
-7747T 833
-735A6 384
-44944 68
-44J26 365
-52555 77
-Q4TT3 476
-K88TK 440
-6JJTT 632
-KTA54 759
-KKT5T 254
-A85A5 80
-96J6J 469
-9KKKK 556
-37733 18
-KJJ66 282
-2Q882 989
-JJ8JJ 868
-TTJTJ 603
-AKAAA 710
-J6TT6 49
-Q7JT7 448
-8T728 319
-86J55 161
-8K5KK 805
-KKATT 459
-T929J 743
-2238J 86
-99929 119
-82Q5T 314
-22297 7
-Q58QQ 437
-8A8Q5 46
-87J2Q 761
-T2A35 823
-9TQQQ 395
-2KT69 232
-5T566 506
-J33QQ 179
-2T652 275
-KT228 909
-9T229 82
-TA696 986
-Q3585 317
-AQKAA 42
-J9JJ9 713
-QQ448 951
-T664T 786
-J2J5J 824
-67677 635
-QQQQT 899
-333J3 442
-Q2QQ2 753
-8K79T 917
-J82A2 839
-T5TTT 155
-4K4Q8 721
-A7JAJ 306
-4Q44Q 940
-2J6KJ 854
-77979 59
-57575 296
-QK66Q 166
-Q5QQK 257
-8Q5J2 528
-TKJ27 882
-TT7T5 843
-2227A 94
-45784 594
-AQK97 468
-98TTT 446
-2886T 346
-JAA66 826
-44333 478
-A33J3 114
-Q82T6 620
-J833Q 165
-4T98J 105
-44499 775
-Q5Q5Q 245
-37477 931
-28QKT 655
-3K388 213
-J3838 19
-83444 48
-7TTAT 316
-87777 768
-KJTK5 639
-QQQ27 200
-22299 797
-99K9A 412
-44454 586
-J689T 894
-86888 294
-TATTA 456
-24452 517
-54Q42 62
-T97TT 646
-QJAAJ 533
-23K8Q 359
-AAJ5A 941
-59985 747
-6TT55 510
-Q6892 784
-Q66Q7 595
-A2223 28
-6989J 221
-944A6 659
-7K524 171
-49498 544
-55Q29 8
-8A787 351
-A7Q7Q 242
-92444 406
-558J2 255
-7JT77 258
-493K9 233
-7A333 501
-9TQ9Q 554
-J92KT 76
-9TJ67 522
-43443 906
-9TTT9 92
-66266 918
-AKKAA 543
-7ATJJ 361
-K86J6 482
-22422 633
-AAATQ 318
-64637 856
-72777 347
-6QQ66 158
-37377 990
-A8624 35
-27276 847
-22954 425
-TK4JT 819
diff --git a/23/elixir/inputs/day7_example.txt b/23/elixir/inputs/day7_example.txt
deleted file mode 100644
index e3500c3..0000000
--- a/23/elixir/inputs/day7_example.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-32T3K 765
-T55J5 684
-KK677 28
-KTJJT 220
-QQQJA 483
diff --git a/23/elixir/inputs/day8.txt b/23/elixir/inputs/day8.txt
deleted file mode 100644
index 2937e6c..0000000
--- a/23/elixir/inputs/day8.txt
+++ /dev/null
@@ -1,796 +0,0 @@
-LLRLRRLLRLRRLLRLRRLRRRLRLRLRRRLLRLRRRLRLRRRLRLRLLLRRLRLRLLRLRRLRRRLRRRLLRRLRLRRRLRRLRRRLRLLRRLRRRLRRRLRRLRLRRLLLRLRLLRRRLRRLLRLRLRRLLRLRRLLRLRRLRRLLRRRLRLRLRRRLLRRRLRRLRRRLRRRLRLRRRLRRLLLRRRLRLLLRRRLRLLRLLRRRLLRRLRRRLRRRLRLLRLRLRRRLLRRLRRRLRRLRLLRRRLRRLRRRLRRRLRRRLRLRRRLRRRLRLRRRR
-
-XGS = (FDM, XCS)
-PJD = (XJN, PCV)
-FLJ = (VRH, NBF)
-RXS = (DNN, DHH)
-DQD = (NTV, CRQ)
-HGJ = (QJF, JTK)
-JDL = (QHC, TKN)
-VMX = (DVX, KDB)
-SPX = (FMD, MQS)
-DSQ = (BNF, PDJ)
-XJQ = (QST, MFT)
-BGX = (MSH, JQQ)
-CMT = (FSP, SCN)
-BVV = (LPL, LPL)
-MBR = (BHB, RMB)
-VVP = (QTP, TJC)
-BFC = (SMR, SMR)
-DTN = (CMN, NVG)
-BVN = (BKM, KPN)
-BCR = (MHM, MPT)
-NDK = (NHG, RVN)
-FRR = (NKL, KKN)
-XDP = (GBQ, VGF)
-KCS = (CXN, GGR)
-HLG = (FMQ, NXV)
-MTP = (KFV, QCH)
-VFH = (GPQ, RFK)
-HSG = (JKV, KNK)
-THL = (CPG, BBF)
-FJP = (CVM, BVF)
-TGR = (LNL, JGD)
-JJD = (QLT, QMC)
-DQK = (NDK, NFS)
-KFN = (PJK, XSJ)
-QLN = (NKV, MGT)
-GJR = (HBJ, HLG)
-JXD = (NFK, KMD)
-CGM = (QHF, PJR)
-FPM = (DHB, VBS)
-NMK = (MVX, MFM)
-SJQ = (VBD, GKP)
-XVX = (KCS, TNV)
-FNC = (BCR, LQB)
-KLA = (XKM, DNG)
-CHD = (TPM, BHH)
-RMV = (PBC, QPM)
-BXH = (QDC, LKX)
-VQK = (HRJ, LBX)
-VNR = (SDB, JQL)
-TQS = (JPX, NLL)
-RPK = (KTX, XKP)
-AAA = (XMG, HJX)
-NQS = (TGB, RDK)
-JKK = (SFX, VDH)
-DKM = (RXJ, DXF)
-VGF = (MXT, LKT)
-KQN = (KTG, NCT)
-MXV = (HFT, QJM)
-CKP = (FMC, JPT)
-HGP = (JMV, DXV)
-VRC = (NVR, NHK)
-DPR = (VBV, FLJ)
-VBL = (PXB, BVN)
-GSG = (KSL, VSX)
-FNK = (VPD, NKN)
-LVB = (SQB, SQB)
-PRF = (HNP, TDG)
-TGV = (NVR, NHK)
-DXV = (QNK, PKL)
-KMP = (KVB, VMR)
-BTR = (LKF, PJD)
-QHC = (DFT, DTJ)
-RXM = (LRG, NPH)
-KTX = (RFR, QRT)
-JHR = (BRV, QRB)
-JDH = (BFX, DTN)
-JLQ = (TTV, GKH)
-CMQ = (HQL, PJP)
-DJF = (JTK, QJF)
-KVB = (MXL, PTK)
-DMD = (HXP, ZZZ)
-XJV = (CRV, JLM)
-JXR = (JMQ, LQM)
-DFT = (DRN, JQM)
-JSC = (XFX, XFX)
-CKB = (VVK, XBK)
-RFJ = (CKP, QMH)
-HRP = (LQT, CJV)
-HXJ = (CKB, FCT)
-DMX = (CRV, JLM)
-XBK = (LVB, FXN)
-JVP = (SKF, LCK)
-JLV = (VPT, DMK)
-SXK = (TNR, MTF)
-DTJ = (JQM, DRN)
-KLN = (FDX, NPN)
-SKG = (BTR, HXG)
-RFR = (XCT, FHN)
-FKB = (JJL, CGM)
-HNP = (DKR, JLQ)
-HKC = (FDM, XCS)
-QQN = (MTP, DCG)
-QRX = (RPJ, PQM)
-SMD = (BBD, DSQ)
-SFJ = (JMR, JMR)
-CJZ = (QMH, CKP)
-PGB = (SDJ, LQF)
-CMS = (XSG, TFG)
-JMV = (PKL, QNK)
-GHH = (RHT, RXS)
-NLN = (XJX, MVC)
-RCG = (DCG, MTP)
-XHF = (SSF, CBS)
-PNC = (GPB, MJJ)
-RXC = (XHF, LDN)
-XVM = (NKR, KQG)
-MTF = (FKN, FKV)
-FGM = (JPJ, DFG)
-MTG = (RRX, FFL)
-HCC = (RFS, PBH)
-TJL = (RPJ, PQM)
-RDK = (RLT, MMJ)
-CSD = (MDQ, HSG)
-KVP = (VRC, TGV)
-QJM = (LSF, DQK)
-TTV = (RCC, LXJ)
-TJC = (RDG, LFV)
-BFS = (FFL, RRX)
-BRV = (NRJ, HCN)
-HXP = (XMG, HJX)
-NJK = (MJT, GBX)
-DGV = (NDH, DPB)
-RGD = (KBH, XDP)
-CRV = (QBD, QLJ)
-RPS = (LPH, PRR)
-PLF = (BHH, TPM)
-SJF = (LFB, NMD)
-HLQ = (XJX, MVC)
-SJR = (XKM, DNG)
-TQP = (BTG, QJG)
-MTJ = (JPJ, DFG)
-SQB = (RFJ, RFJ)
-KPN = (VTC, LDH)
-BDZ = (CQP, HRP)
-QFC = (XJQ, PMR)
-XMV = (HTS, RXT)
-MQS = (FXV, VCL)
-TLQ = (XMV, TSC)
-TCQ = (CXH, RCV)
-KNK = (CBD, VQK)
-GHD = (DBJ, VPK)
-TKP = (TXK, MPJ)
-CCC = (NKL, KKN)
-QFN = (TJD, JDJ)
-DVJ = (GQM, QKJ)
-TNC = (PVV, PMJ)
-HJX = (DQD, JDR)
-NFF = (JMR, GTZ)
-JSB = (SLS, HSC)
-NVR = (CTV, PNS)
-FNV = (XLK, FNC)
-JVR = (TGB, RDK)
-TXM = (SNN, DMZ)
-CNF = (KLN, BDB)
-QRG = (PDS, MHP)
-QVV = (JJD, RLL)
-XML = (VMR, KVB)
-TLB = (NTD, VKD)
-SDJ = (CNQ, FNV)
-TKN = (DTJ, DFT)
-HFK = (LPF, XPH)
-LJP = (SFJ, SFJ)
-SMX = (RQV, DDH)
-JBL = (XML, KMP)
-NDA = (PBF, FHP)
-LRP = (XKP, KTX)
-JCK = (BGC, CNF)
-XCF = (SPJ, CVR)
-VNV = (CMQ, JPQ)
-BPJ = (XVP, DXQ)
-MVC = (QFC, DLV)
-QRK = (SDJ, LQF)
-BFX = (CMN, NVG)
-JMQ = (MFC, RXD)
-JPQ = (PJP, HQL)
-FCN = (NPH, LRG)
-RXQ = (FMG, GJF)
-DVX = (GSS, CFM)
-CSH = (VQF, PTV)
-STM = (CFH, BMQ)
-NVF = (CSH, VHC)
-CKG = (VSX, KSL)
-BLG = (QHJ, DLB)
-RCB = (VVX, XCF)
-MGX = (HGT, HGP)
-NVG = (KMC, VSM)
-JLM = (QBD, QLJ)
-NKR = (HCD, RQC)
-QKJ = (VXK, TRR)
-XSJ = (TCQ, PCL)
-HQP = (HSJ, DGV)
-NPQ = (RBR, FNB)
-DDH = (PTQ, KQN)
-KTG = (DHL, KSX)
-MHP = (FCX, VCB)
-LBA = (CKP, QMH)
-GBX = (DLC, JRX)
-TKX = (RNJ, PPC)
-FHK = (KCV, NBK)
-CJV = (RCG, QQN)
-PPC = (JDH, SBM)
-KKN = (KVP, HBC)
-HBT = (XDM, PGN)
-CNC = (FVV, TCX)
-MXL = (BMP, BPJ)
-XVP = (TRL, HVN)
-XLX = (JSK, KNX)
-FCT = (VVK, XBK)
-CFH = (VRX, XMK)
-TNV = (CXN, GGR)
-JHK = (VQR, LDL)
-JPJ = (JBL, NBC)
-TNR = (FKV, FKN)
-RXJ = (SKG, BFK)
-QDV = (RHT, RXS)
-QQQ = (XHH, JVP)
-HGS = (MFV, DKC)
-NBK = (LNV, QLN)
-LDL = (CRJ, PRF)
-JRL = (KJS, PVK)
-FXR = (HCS, CMT)
-NVX = (GJR, GTQ)
-CFM = (SMT, SXK)
-TFG = (SPN, TLF)
-PPF = (KJN, NXJ)
-VPV = (HQP, KRB)
-MGT = (TJL, QRX)
-LGB = (KBH, XDP)
-BNS = (CTP, CBL)
-KSX = (BFS, MTG)
-GDD = (NBP, STP)
-CJQ = (VHM, JNQ)
-GQC = (NTD, VKD)
-FMC = (SKX, LRF)
-PTQ = (KTG, NCT)
-KNG = (BRV, QRB)
-KQG = (RQC, HCD)
-NSG = (HXJ, LBP)
-QPM = (KPK, XVX)
-CXH = (LGS, LQR)
-LCF = (GBS, MHB)
-VBD = (MBR, NBJ)
-SDB = (SVM, JJM)
-DCR = (FVK, KGG)
-BDJ = (XRG, CQL)
-JMR = (VRM, NFN)
-XFR = (LQM, JMQ)
-MBP = (CBL, CTP)
-GVD = (CLB, FMF)
-MFH = (PPC, RNJ)
-PTK = (BMP, BPJ)
-LGJ = (PXP, HJK)
-GKP = (MBR, NBJ)
-HXG = (LKF, PJD)
-NBC = (XML, KMP)
-SJG = (LPF, XPH)
-BKM = (VTC, LDH)
-DKC = (NQS, JVR)
-JSJ = (TQP, RLR)
-PMR = (QST, MFT)
-BRM = (PRR, LPH)
-KRL = (BGX, XNX)
-TCX = (GQC, TLB)
-QLJ = (FPS, JFN)
-HCD = (FXR, PJJ)
-TBN = (DSJ, VPV)
-FFL = (NBB, FKB)
-GRN = (HCC, NJF)
-LQB = (MHM, MPT)
-SFX = (LGB, RGD)
-HJB = (VNR, KFT)
-HRJ = (GLC, CHR)
-MJT = (DLC, JRX)
-FHN = (HHG, RMV)
-VTJ = (BFC, JTL)
-CQP = (CJV, LQT)
-VCB = (NGR, JRL)
-VNN = (JKK, SCK)
-XNT = (RXQ, LJS)
-SCN = (TNC, LGP)
-FMF = (TKP, NNT)
-VSM = (HNF, RLF)
-CNQ = (FNC, XLK)
-MPT = (TLQ, SBG)
-DSJ = (KRB, HQP)
-CXV = (QRK, PGB)
-LBX = (GLC, CHR)
-VBV = (NBF, VRH)
-TJQ = (LCH, HTJ)
-CPG = (QVC, CJQ)
-KJN = (PLB, DGH)
-NCM = (VTJ, SXJ)
-FXV = (NCM, SDH)
-XRG = (DPR, MXD)
-LCM = (PMN, VCS)
-SHN = (SMK, PHG)
-MXD = (FLJ, VBV)
-FDJ = (LKV, BKX)
-JDR = (NTV, CRQ)
-XDR = (LPV, XTH)
-RNJ = (JDH, SBM)
-FHP = (MGQ, HJB)
-PVH = (GPQ, GPQ)
-MGM = (RBS, HPR)
-VFQ = (RBR, FNB)
-XRV = (LCH, HTJ)
-DGP = (FDJ, GTJ)
-HJV = (DHB, VBS)
-KPK = (TNV, KCS)
-CMX = (DBJ, VPK)
-BHH = (VRN, SMX)
-PJL = (NLS, SCL)
-SPJ = (RXM, FCN)
-NTV = (TSJ, BSR)
-FXN = (SQB, GLR)
-DTK = (VVP, TCD)
-DBJ = (MFH, TKX)
-DCJ = (BTP, GVD)
-NMD = (DJB, MGC)
-PBC = (XVX, KPK)
-FRS = (KMD, NFK)
-LNL = (SQC, DTK)
-NGH = (XKL, HPT)
-RFS = (CHD, PLF)
-DMK = (JJT, FHK)
-SNS = (SHN, BMD)
-RLR = (BTG, QJG)
-FDM = (GRN, CBK)
-PLB = (CCT, JTT)
-VTC = (CMS, XSC)
-XKM = (QGF, TBN)
-MVJ = (SLB, TXM)
-PKL = (CSQ, SJQ)
-SLB = (SNN, SNN)
-JKV = (VQK, CBD)
-BBD = (BNF, PDJ)
-GSS = (SXK, SMT)
-LRG = (SPB, TGR)
-FDN = (JXD, FRS)
-XKX = (HXC, PGT)
-PDJ = (FRR, CCC)
-HXM = (VNN, VJG)
-QMC = (CXV, TLH)
-GLG = (GGV, VBL)
-RXT = (LCF, GBT)
-TGL = (NXJ, KJN)
-JPT = (SKX, LRF)
-NLL = (SPX, DDQ)
-BHB = (RGP, FQL)
-XKN = (HBT, XXG)
-RLT = (JLB, BDJ)
-SHF = (HGP, HGT)
-HKV = (DLB, QHJ)
-SVM = (XDR, BLN)
-PMN = (QTL, QRG)
-CXN = (JLV, FMT)
-GQV = (PJK, XSJ)
-HMM = (MGX, SHF)
-VSC = (PDH, XVM)
-LCK = (NSG, JPR)
-JQL = (JJM, SVM)
-FRQ = (SVG, DCR)
-TDG = (JLQ, DKR)
-SMT = (TNR, MTF)
-GBT = (GBS, MHB)
-QMH = (JPT, FMC)
-DXJ = (CMQ, JPQ)
-JJM = (XDR, BLN)
-DDQ = (FMD, MQS)
-NDH = (VVQ, DCM)
-LSF = (NFS, NDK)
-VGM = (STS, XNT)
-PJR = (GXF, JDL)
-XFC = (XVM, PDH)
-LBP = (CKB, FCT)
-KFT = (SDB, JQL)
-TTT = (QLS, GCV)
-LPH = (SJF, BPT)
-JGS = (XKL, HPT)
-VDH = (LGB, RGD)
-VHC = (VQF, PTV)
-NKN = (GDD, XDC)
-RND = (VGM, PSD)
-QVC = (VHM, JNQ)
-JJL = (QHF, PJR)
-QRB = (NRJ, HCN)
-MJJ = (FQT, RXC)
-NNA = (HRP, CQP)
-PBF = (MGQ, HJB)
-VRT = (DSS, FDN)
-DCM = (CLV, JCK)
-QLS = (SJR, SJR)
-RMT = (XHH, JVP)
-DMR = (MLF, MVJ)
-QJG = (NLN, HLQ)
-DLV = (XJQ, PMR)
-LKF = (XJN, PCV)
-VQR = (PRF, CRJ)
-SXJ = (BFC, JTL)
-MDQ = (KNK, JKV)
-QVD = (BVF, CVM)
-TGG = (LPL, BDZ)
-HDJ = (HGB, HSH)
-HTT = (LHQ, HGS)
-SKX = (HXM, JMF)
-FCX = (NGR, JRL)
-HSJ = (NDH, DPB)
-BFK = (HXG, BTR)
-XSG = (SPN, TLF)
-NCD = (MFM, MVX)
-PHG = (BKS, SMD)
-XMK = (QVD, FJP)
-FXL = (PGT, HXC)
-KBH = (VGF, GBQ)
-CBG = (QDC, LKX)
-LDN = (SSF, CBS)
-SVG = (FVK, KGG)
-BVF = (GHH, QDV)
-SPB = (LNL, JGD)
-LQR = (QXX, LCM)
-KHV = (JSK, KNX)
-LFV = (XFJ, XKN)
-QHG = (JJD, RLL)
-HGB = (LRP, RPK)
-NRJ = (DXJ, VNV)
-LKT = (PNC, LJX)
-MSH = (CDN, DMS)
-MLF = (SLB, SLB)
-MMJ = (JLB, BDJ)
-VRM = (HSR, HTT)
-MHM = (TLQ, SBG)
-LRF = (HXM, JMF)
-VHM = (PVH, VFH)
-FQL = (XRV, TJQ)
-MPJ = (LFS, CFJ)
-LMF = (CNC, KCC)
-JTK = (XJR, DGP)
-HFT = (DQK, LSF)
-RQV = (PTQ, KQN)
-LDT = (BMQ, CFH)
-RGP = (TJQ, XRV)
-SDH = (VTJ, SXJ)
-LKV = (JVB, TFD)
-KDD = (XFX, XGV)
-CVM = (GHH, QDV)
-PLS = (DVX, KDB)
-VCL = (NCM, SDH)
-SCK = (SFX, VDH)
-LJX = (MJJ, GPB)
-JTT = (LMF, SVS)
-PHV = (KRL, SVD)
-PDS = (VCB, FCX)
-VPD = (XDC, GDD)
-VRJ = (HXP, HXP)
-LPV = (HKC, XGS)
-BDB = (FDX, NPN)
-DXF = (BFK, SKG)
-FMG = (JGS, NGH)
-NXV = (LJP, SBT)
-PQM = (QVV, QHG)
-SNN = (PBF, FHP)
-LGP = (PMJ, PVV)
-FKV = (CBG, BXH)
-VJG = (JKK, SCK)
-JPR = (HXJ, LBP)
-TPM = (SMX, VRN)
-KXT = (VQR, LDL)
-NPN = (FRQ, SRD)
-TRL = (DCJ, BLS)
-CBK = (NJF, HCC)
-KMD = (GQV, KFN)
-GQM = (TRR, VXK)
-QST = (RMT, QQQ)
-XDM = (KXT, JHK)
-TLH = (QRK, PGB)
-VRH = (BNS, MBP)
-VVK = (LVB, LVB)
-HVN = (BLS, DCJ)
-TLJ = (HSG, MDQ)
-QLQ = (STM, LDT)
-LKX = (DBT, XTS)
-VXK = (DKM, KKV)
-XKL = (NPQ, VFQ)
-LDP = (BPH, RCB)
-VRN = (RQV, DDH)
-LJS = (FMG, GJF)
-FMT = (DMK, VPT)
-BPT = (LFB, NMD)
-RLL = (QMC, QLT)
-JNQ = (PVH, VFH)
-HJK = (JSC, KDD)
-QHF = (JDL, GXF)
-DGH = (JTT, CCT)
-PVV = (RND, XCQ)
-XFX = (VRJ, VRJ)
-NRN = (GQM, QKJ)
-VPK = (TKX, MFH)
-GLC = (PPF, TGL)
-JJT = (KCV, NBK)
-FVK = (XQS, PJL)
-VRD = (RCB, BPH)
-GPQ = (BVV, BVV)
-XCT = (HHG, RMV)
-VMR = (PTK, MXL)
-NTD = (XJV, DMX)
-CBS = (GHD, CMX)
-SNZ = (DNG, XKM)
-QTP = (LFV, RDG)
-DMZ = (FHP, PBF)
-LQT = (RCG, QQN)
-FPS = (RBX, DMR)
-LGS = (LCM, QXX)
-ZZZ = (HJX, XMG)
-RCV = (LQR, LGS)
-PBH = (CHD, PLF)
-JPX = (DDQ, SPX)
-DNN = (MXV, DVB)
-QRT = (XCT, FHN)
-HHG = (PBC, QPM)
-SBM = (BFX, DTN)
-JVB = (VSC, XFC)
-QNK = (CSQ, SJQ)
-BPM = (KNG, JHR)
-HBC = (TGV, VRC)
-MGQ = (VNR, KFT)
-BTP = (CLB, FMF)
-SVD = (BGX, XNX)
-RHT = (DHH, DNN)
-KJS = (FRN, JSB)
-BLS = (GVD, BTP)
-TJD = (JXR, XFR)
-RMS = (HJV, FPM)
-MFV = (JVR, NQS)
-DXQ = (HVN, TRL)
-HSC = (BRM, RPS)
-CCP = (GGV, VBL)
-GTB = (QKQ, PHV)
-RBX = (MLF, MLF)
-MDN = (GBX, MJT)
-HXC = (KPF, DJL)
-HSR = (HGS, LHQ)
-BMD = (PHG, SMK)
-GTZ = (NFN, VRM)
-LDH = (CMS, XSC)
-NXJ = (PLB, DGH)
-FGR = (GJR, GTQ)
-KKV = (RXJ, DXF)
-XCQ = (PSD, VGM)
-JQQ = (DMS, CDN)
-XCS = (GRN, CBK)
-JQM = (FNK, DKQ)
-DNG = (QGF, TBN)
-GBQ = (MXT, LKT)
-QLT = (TLH, CXV)
-HTL = (NLL, JPX)
-DLB = (VRF, THL)
-GTQ = (HBJ, HLG)
-NBB = (CGM, JJL)
-GPB = (FQT, RXC)
-QBD = (FPS, JFN)
-NHG = (NRN, DVJ)
-TRR = (KKV, DKM)
-DJB = (XKX, FXL)
-CBD = (HRJ, LBX)
-CFJ = (BPM, RPN)
-TXK = (CFJ, LFS)
-TCD = (QTP, TJC)
-XTS = (GLG, CCP)
-PGN = (KXT, JHK)
-BMP = (XVP, DXQ)
-CQL = (MXD, DPR)
-HGT = (DXV, JMV)
-JDJ = (XFR, JXR)
-KRB = (HSJ, DGV)
-BSR = (VRT, GTK)
-RMB = (RGP, FQL)
-BKS = (BBD, DSQ)
-LQM = (RXD, MFC)
-RQC = (FXR, PJJ)
-TSC = (RXT, HTS)
-XPH = (HGJ, DJF)
-NPH = (TGR, SPB)
-SCL = (HDJ, PQL)
-XHH = (LCK, SKF)
-CBL = (MTJ, FGM)
-VQF = (QLQ, XLH)
-LPL = (HRP, CQP)
-VKD = (DMX, XJV)
-XJX = (DLV, QFC)
-KCC = (TCX, FVV)
-GJK = (RMS, RFL)
-JTL = (SMR, TTT)
-XMG = (JDR, DQD)
-PQL = (HSH, HGB)
-LCH = (GJK, DMM)
-PMJ = (RND, XCQ)
-FRN = (SLS, HSC)
-CHR = (PPF, TGL)
-DFG = (NBC, JBL)
-PJJ = (HCS, CMT)
-CRJ = (HNP, TDG)
-RLF = (JSJ, GMJ)
-GKH = (LXJ, RCC)
-RNT = (TJD, JDJ)
-CLV = (CNF, BGC)
-DRN = (FNK, DKQ)
-RDG = (XKN, XFJ)
-BNF = (CCC, FRR)
-HQH = (HPR, RBS)
-QJF = (DGP, XJR)
-NJF = (PBH, RFS)
-FKN = (CBG, BXH)
-FSP = (LGP, TNC)
-RXD = (SJG, HFK)
-PCL = (RCV, CXH)
-CLB = (NNT, TKP)
-XNX = (JQQ, MSH)
-VVQ = (JCK, CLV)
-DHH = (DVB, MXV)
-MXT = (LJX, PNC)
-MFC = (SJG, HFK)
-QKQ = (SVD, KRL)
-CVR = (FCN, RXM)
-RFK = (BVV, TGG)
-NBP = (HQH, MGM)
-QXX = (VCS, PMN)
-PVK = (FRN, JSB)
-HCN = (DXJ, VNV)
-XLK = (LQB, BCR)
-HPR = (HMM, CNT)
-VDF = (PHV, QKQ)
-KNX = (LGJ, CMC)
-PXB = (KPN, BKM)
-HNF = (GMJ, JSJ)
-DKR = (GKH, TTV)
-NGR = (KJS, PVK)
-QDC = (XTS, DBT)
-LPF = (DJF, HGJ)
-LXJ = (FGR, NVX)
-NBJ = (RMB, BHB)
-QGF = (DSJ, VPV)
-KSL = (QFN, RNT)
-DHL = (BFS, MTG)
-STP = (MGM, HQH)
-FMQ = (LJP, LJP)
-TGB = (RLT, MMJ)
-TLF = (NCD, NMK)
-NLS = (PQL, HDJ)
-HRG = (SHN, BMD)
-DMM = (RMS, RFL)
-VPT = (JJT, FHK)
-SKF = (JPR, NSG)
-NFN = (HTT, HSR)
-KGG = (PJL, XQS)
-DHB = (CSD, TLJ)
-QVA = (VRM, NFN)
-SSF = (GHD, CMX)
-LFB = (DJB, MGC)
-GMJ = (TQP, RLR)
-HTS = (GBT, LCF)
-FQT = (LDN, XHF)
-TFD = (VSC, XFC)
-CMC = (PXP, HJK)
-VBS = (CSD, TLJ)
-DLC = (KHV, XLX)
-NKV = (TJL, QRX)
-KFV = (GSG, CKG)
-GGV = (BVN, PXB)
-DKQ = (NKN, VPD)
-SLS = (RPS, BRM)
-PJP = (VDF, GTB)
-BTG = (NLN, HLQ)
-VCS = (QTL, QRG)
-CSQ = (GKP, VBD)
-CCT = (LMF, SVS)
-NNT = (TXK, MPJ)
-XTH = (XGS, HKC)
-SMK = (BKS, SMD)
-HCS = (SCN, FSP)
-HPT = (NPQ, VFQ)
-KPF = (NVF, CDF)
-PDH = (KQG, NKR)
-PCV = (NJK, MDN)
-XXG = (PGN, XDM)
-MGC = (FXL, XKX)
-QTL = (PDS, MHP)
-JLB = (CQL, XRG)
-RVN = (DVJ, NRN)
-CTP = (FGM, MTJ)
-RCC = (FGR, NVX)
-CDF = (VHC, CSH)
-NKL = (HBC, KVP)
-PTV = (XLH, QLQ)
-BBF = (QVC, CJQ)
-TSJ = (VRT, GTK)
-GCV = (SJR, SNZ)
-NBF = (MBP, BNS)
-PSD = (XNT, STS)
-XLH = (LDT, STM)
-NFK = (GQV, KFN)
-VVX = (CVR, SPJ)
-PNS = (VMX, PLS)
-RBR = (HRG, SNS)
-SBT = (SFJ, NFF)
-DBT = (CCP, GLG)
-RPN = (KNG, JHR)
-XFJ = (HBT, XXG)
-JSK = (LGJ, CMC)
-CNT = (SHF, MGX)
-HBJ = (FMQ, NXV)
-VRX = (FJP, QVD)
-RBS = (CNT, HMM)
-STS = (RXQ, LJS)
-DVB = (QJM, HFT)
-JRX = (XLX, KHV)
-RPJ = (QHG, QVV)
-KDB = (GSS, CFM)
-LHQ = (MFV, DKC)
-RRX = (FKB, NBB)
-HTJ = (GJK, DMM)
-CDN = (VRD, LDP)
-NFS = (RVN, NHG)
-XJR = (GTJ, FDJ)
-NCT = (DHL, KSX)
-NHK = (CTV, PNS)
-BGC = (KLN, BDB)
-XJN = (MDN, NJK)
-MFT = (RMT, QQQ)
-RFL = (HJV, FPM)
-XQS = (NLS, SCL)
-BPH = (XCF, VVX)
-SBG = (TSC, XMV)
-LNV = (MGT, NKV)
-QCH = (CKG, GSG)
-JMF = (VNN, VJG)
-LQF = (FNV, CNQ)
-MVX = (HKV, BLG)
-SQC = (VVP, TCD)
-PGT = (DJL, KPF)
-MFM = (BLG, HKV)
-FMD = (VCL, FXV)
-VRF = (BBF, CPG)
-GTJ = (LKV, BKX)
-XGV = (VRJ, DMD)
-CTV = (PLS, VMX)
-GLR = (RFJ, CJZ)
-PXP = (JSC, KDD)
-SRD = (SVG, DCR)
-GGR = (FMT, JLV)
-HSH = (RPK, LRP)
-GXF = (QHC, TKN)
-GBS = (TQS, HTL)
-MHB = (HTL, TQS)
-GTK = (DSS, FDN)
-DJL = (CDF, NVF)
-DPB = (VVQ, DCM)
-DCG = (KFV, QCH)
-FDX = (SRD, FRQ)
-XKP = (QRT, RFR)
-FVV = (GQC, TLB)
-DMS = (VRD, LDP)
-SVS = (KCC, CNC)
-PRR = (SJF, BPT)
-LFS = (RPN, BPM)
-BLN = (XTH, LPV)
-SPN = (NMK, NCD)
-CMN = (KMC, VSM)
-QHJ = (THL, VRF)
-JGD = (DTK, SQC)
-KCV = (QLN, LNV)
-CRQ = (TSJ, BSR)
-JFN = (RBX, DMR)
-GJF = (NGH, JGS)
-VSX = (RNT, QFN)
-HQL = (VDF, GTB)
-KMC = (HNF, RLF)
-XSC = (TFG, XSG)
-XDC = (STP, NBP)
-PJK = (TCQ, PCL)
-DSS = (JXD, FRS)
-SMR = (QLS, QLS)
-BMQ = (VRX, XMK)
-FNB = (SNS, HRG)
-BKX = (TFD, JVB)
diff --git a/23/elixir/inputs/day8_example1.txt b/23/elixir/inputs/day8_example1.txt
deleted file mode 100644
index 9029a1b..0000000
--- a/23/elixir/inputs/day8_example1.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-RL
-
-AAA = (BBB, CCC)
-BBB = (DDD, EEE)
-CCC = (ZZZ, GGG)
-DDD = (DDD, DDD)
-EEE = (EEE, EEE)
-GGG = (GGG, GGG)
-ZZZ = (ZZZ, ZZZ)
diff --git a/23/elixir/inputs/day8_example2.txt b/23/elixir/inputs/day8_example2.txt
deleted file mode 100644
index 7d1b58d..0000000
--- a/23/elixir/inputs/day8_example2.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-LLR
-
-AAA = (BBB, BBB)
-BBB = (AAA, ZZZ)
-ZZZ = (ZZZ, ZZZ)
diff --git a/23/elixir/inputs/day8_example3.txt b/23/elixir/inputs/day8_example3.txt
deleted file mode 100644
index 5b3fa58..0000000
--- a/23/elixir/inputs/day8_example3.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-LR
-
-11A = (11B, XXX)
-11B = (XXX, 11Z)
-11Z = (11B, XXX)
-22A = (22B, XXX)
-22B = (22C, 22C)
-22C = (22Z, 22Z)
-22Z = (22B, 22B)
-XXX = (XXX, XXX)
diff --git a/23/elixir/lib/day.ex b/23/elixir/lib/day.ex
deleted file mode 100644
index db3ec5d..0000000
--- a/23/elixir/lib/day.ex
+++ /dev/null
@@ -1,46 +0,0 @@
-defmodule AOC.Day do
-  defmacro __using__(opts) do
-    day = Keyword.get(opts, :day)
-    debug = Keyword.get(opts, :debug, false)
-    trim = Keyword.get(opts, :trim, true)
-    input_file = Keyword.get(opts, :input, nil)
-
-    quote do
-      def solve do
-        input =
-          AOC.Day.input_lines(unquote(day), unquote(trim), unquote(input_file))
-          |> parse_input()
-
-        if unquote(debug) do
-          IO.inspect(input)
-        end
-
-        part1_solution = part1(input)
-        IO.puts("Part 1: #{part1_solution}")
-
-        part2_solution = part2(input)
-        IO.puts("Part 2: #{part2_solution}")
-      end
-    end
-  end
-
-  def input_lines(day, trim, input_file) do
-    lines =
-      input_file_name(day, input_file)
-      |> File.stream!()
-
-    if trim do
-      Enum.map(lines, &String.trim/1)
-    else
-      lines
-    end
-  end
-
-  def input_file_name(day, input_file) do
-    if input_file do
-      Path.join([File.cwd!(), "inputs", "day#{day}_#{input_file}.txt"])
-    else
-      Path.join([File.cwd!(), "inputs", "day#{day}.txt"])
-    end
-  end
-end
diff --git a/23/elixir/lib/days/day7.ex b/23/elixir/lib/days/day7.ex
deleted file mode 100644
index e03d7b5..0000000
--- a/23/elixir/lib/days/day7.ex
+++ /dev/null
@@ -1,170 +0,0 @@
-defmodule AOC.Day7 do
-  # use AOC.Day, day: 7, input: "example"
-  use AOC.Day, day: 7
-
-  @type_to_power %{
-    five_of_a_kind: 6,
-    four_of_a_kind: 5,
-    full_house: 4,
-    three_of_a_kind: 3,
-    two_pair: 2,
-    one_pair: 1,
-    high_card: 0
-  }
-
-  @card_to_power %{
-    ?A => 14,
-    ?K => 13,
-    ?Q => 12,
-    ?J => 11,
-    ?T => 10,
-    ?9 => 9,
-    ?8 => 8,
-    ?7 => 7,
-    ?6 => 6,
-    ?5 => 5,
-    ?4 => 4,
-    ?3 => 3,
-    ?2 => 2
-  }
-
-  def parse_input(lines) do
-    lines
-    |> Enum.map(fn line ->
-      [hand, bid] = String.split(line, " ")
-
-      {hand, String.to_integer(bid)}
-    end)
-  end
-
-  def replace_jokers(hand, card) do
-    Enum.map(hand, fn
-      ?J -> card
-      c -> c
-    end)
-  end
-
-  def best_joker_replacement(hand) do
-    freqs = Enum.frequencies(hand)
-            |> Enum.reject(fn {card, _count} -> card == ?J end)
-
-    cond do
-      Enum.any?(freqs, fn {_card, count} -> count == 4 end) -> 
-        {card, _} = Enum.find(freqs, fn {_card, count} -> count == 4 end)
-        card
-      Enum.any?(freqs, fn {_card, count} -> count == 3 end) -> 
-        {card, _} = Enum.find(freqs, fn {_card, count} -> count == 3 end)
-        card
-      Enum.any?(freqs, fn {_card, count} -> count == 2 end) -> 
-        doubles = Enum.filter(freqs, fn {_card, count} -> count == 2 end)
-        if length(doubles) == 1 do
-          hd(doubles) |> elem(0)
-        else
-          [{double1, _}, {double2, _}] = doubles
-          if Map.fetch!(@card_to_power, double1) >= Map.fetch!(@card_to_power, double2) do
-            double1
-          else
-            double2
-          end
-        end
-      true ->
-        freqs
-        |> Enum.map(fn {card, _count} -> card end)
-        |> Enum.sort(fn card1, card2 -> 
-          Map.fetch!(@card_to_power, card1) >= Map.fetch!(@card_to_power, card2)
-        end)
-        |> hd()
-    end
-  end
-
-  def find_best_joker_configuration(hand) do
-    freqs = Enum.frequencies(hand)
-    joker_count = Map.get(freqs, ?J, 0)
-    
-    case joker_count do
-      0 -> hand
-      5 -> 'AAAAA'
-      _ ->
-        joker_replacement = best_joker_replacement(hand)
-        
-        replace_jokers(hand, joker_replacement)
-    end
-  end
-
-  def hand_to_type(hand, joker_rule) do
-    freqs = hand
-    |> String.to_charlist()
-    |> then(fn hand ->
-      if joker_rule do
-        find_best_joker_configuration(hand)
-      else
-        hand
-      end
-    end)
-    |> Enum.frequencies()
-    |> Enum.map(fn {_k, v} -> v end)
-
-    cond do
-      Enum.member?(freqs, 5) -> :five_of_a_kind
-      Enum.member?(freqs, 4) -> :four_of_a_kind
-      Enum.member?(freqs, 3) and Enum.member?(freqs, 2) -> :full_house
-      Enum.member?(freqs, 3) -> :three_of_a_kind
-      Enum.count(freqs, & &1==2) == 2 -> :two_pair
-      Enum.member?(freqs, 2) -> :one_pair
-      true -> :high_card
-    end
-  end
-
-  def compare_same_type_hands(hand1, hand2, joker_rule) do
-    hand1 = String.to_charlist(hand1)
-    hand2 = String.to_charlist(hand2)
-
-    Enum.zip(hand1, hand2)
-    |> compare_same_type_hands2(joker_rule)
-  end
-
-  def compare_same_type_hands2([], _), do: true
-
-  def compare_same_type_hands2([{card1, card2} | tl], joker_rule) do
-    if card1 == card2 do
-      compare_same_type_hands2(tl, joker_rule)
-    else
-      cond do
-        joker_rule and card1 == ?J -> false
-        joker_rule and card2 == ?J -> true
-        true -> Map.fetch!(@card_to_power, card1) >= Map.fetch!(@card_to_power, card2)
-      end
-    end
-  end
-
-  def sort_hands(hands, joker_rule \\ false) do
-    Enum.sort(hands, fn {hand1, _bid1}, {hand2, _bid2} ->
-      type1 = hand_to_type(hand1, joker_rule)
-      type2 = hand_to_type(hand2, joker_rule)
-
-      if type1 == type2 do
-        compare_same_type_hands(hand1, hand2, joker_rule)
-      else
-        Map.fetch!(@type_to_power, type1) >= Map.fetch!(@type_to_power, type2)
-      end
-    end)
-  end
-
-  def part1(input) do
-    input
-    |> sort_hands()
-    |> Enum.reverse()
-    |> Enum.with_index(1)
-    |> Enum.map(fn {{_card, bid}, rank} -> rank * bid end)
-    |> Enum.sum()
-  end
-
-  def part2(input) do
-    input
-    |> sort_hands(true)
-    |> Enum.reverse()
-    |> Enum.with_index(1)
-    |> Enum.map(fn {{_card, bid}, rank} -> rank * bid end)
-    |> Enum.sum()
-  end
-end
diff --git a/23/elixir/lib/days/day8.ex b/23/elixir/lib/days/day8.ex
deleted file mode 100644
index 9cd8794..0000000
--- a/23/elixir/lib/days/day8.ex
+++ /dev/null
@@ -1,81 +0,0 @@
-defmodule AOC.Day8 do
-  # use AOC.Day, day: 8, input: "example1"
-  # use AOC.Day, day: 8, input: "example2"
-  # use AOC.Day, day: 8, input: "example3"
-  use AOC.Day, day: 8
-
-  @start "AAA"
-  @stop "ZZZ"
-
-  def parse_input([instructions, _ | nodes]) do
-    instructions = instructions |> String.to_charlist() |> Stream.cycle()
-    nodes = Enum.map(nodes, fn s ->
-      %{"id" => id, "left" => left, "right" => right} = Regex.named_captures(~r/^(?<id>[[:alnum:]]{3}) = \((?<left>[[:alnum:]]{3}), (?<right>[[:alnum:]]{3})\)$/, s)
-
-      {id, {left, right}}
-    end)
-    |> Enum.into(%{})
-
-    {instructions, nodes}
-  end
-
-  def reach_end(instructions, nodes) do
-    Enum.reduce_while(instructions, {@start, 0}, fn instruction, {current_node, step_count} ->
-      if current_node == @stop do
-        {:halt, step_count}
-      else
-        {left, right} = Map.fetch!(nodes, current_node)
-        next_node = case instruction do
-          ?L -> left
-          ?R -> right
-        end
-
-        {:cont, {next_node, step_count + 1}}
-      end
-    end)
-  end
-
-  def part1({instructions, nodes}) do
-    reach_end(instructions, nodes)
-  end
-
-  def find_cycle(instructions, nodes, start) do
-    Enum.reduce_while(instructions, {start, 0, nil}, fn instruction, {current_node, step_count, last_end_count}->
-      if String.ends_with?(current_node, "Z") and last_end_count != nil do
-        {:halt, {last_end_count, step_count - last_end_count}}
-      else
-        last_end_count = if String.ends_with?(current_node, "Z"), do: step_count, else: last_end_count
-        {left, right} = Map.fetch!(nodes, current_node)
-        next_node = case instruction do
-          ?L -> left
-          ?R -> right
-        end
-
-        {:cont, {next_node, step_count + 1, last_end_count}}
-      end
-    end)
-  end
-
-  def brute_force_find_cycle(cycles) do
-    Stream.repeatedly(fn -> nil end) |> Enum.reduce_while(cycles, fn _, cycles ->
-      all_ended = cycles |> Enum.map(&elem(&1, 0)) |> Enum.uniq() |> length() == 1
-
-      if all_ended do
-        {:halt, cycles |> hd() |> elem(0)}
-      else
-        [{count, cycle_count} | tl] = Enum.sort(cycles)
-        IO.inspect(count)
-        {:cont, [{count + cycle_count, cycle_count} | tl]}
-      end
-    end)
-  end
-
-  def part2({instructions, nodes}) do
-    IO.puts("Use LCM for the following numbers :)")
-    Enum.filter(nodes, fn {k, _v} -> String.ends_with?(k, "A") end)
-    |> Enum.map(fn {k, _v} -> find_cycle(instructions, nodes, k) end)
-    |> Enum.map(&elem(&1, 0))
-    |> Enum.map(&Integer.to_string/1)
-    |> Enum.join(" ")
-  end
-end
diff --git a/23/elixir/mix.exs b/23/elixir/mix.exs
deleted file mode 100644
index 333c6a7..0000000
--- a/23/elixir/mix.exs
+++ /dev/null
@@ -1,28 +0,0 @@
-defmodule AOC.MixProject do
-  use Mix.Project
-
-  def project do
-    [
-      app: :aoc,
-      version: "0.1.0",
-      elixir: "~> 1.15",
-      start_permanent: Mix.env() == :prod,
-      deps: deps()
-    ]
-  end
-
-  # Run "mix help compile.app" to learn about applications.
-  def application do
-    [
-      extra_applications: [:logger]
-    ]
-  end
-
-  # Run "mix help deps" to learn about dependencies.
-  defp deps do
-    [
-      # {:dep_from_hexpm, "~> 0.3.0"},
-      # {:dep_from_git, git: "https://github.com/elixir-lang/my_dep.git", tag: "0.1.0"}
-    ]
-  end
-end
diff --git a/23/elixir/mix.lock b/23/elixir/mix.lock
deleted file mode 100644
index 5823706..0000000
--- a/23/elixir/mix.lock
+++ /dev/null
@@ -1,3 +0,0 @@
-%{
-  "math": {:hex, :math, "0.7.0", "12af548c3892abf939a2e242216c3e7cbfb65b9b2fe0d872d05c6fb609f8127b", [:mix], [], "hexpm", "7987af97a0c6b58ad9db43eb5252a49fc1dfe1f6d98f17da9282e297f594ebc2"},
-}
diff --git a/23/elixir/test/aoc_test.exs b/23/elixir/test/aoc_test.exs
deleted file mode 100644
index a426096..0000000
--- a/23/elixir/test/aoc_test.exs
+++ /dev/null
@@ -1,8 +0,0 @@
-defmodule AocTest do
-  use ExUnit.Case
-  doctest Aoc
-
-  test "greets the world" do
-    assert Aoc.hello() == :world
-  end
-end
diff --git a/23/elixir/test/test_helper.exs b/23/elixir/test/test_helper.exs
deleted file mode 100644
index 869559e..0000000
--- a/23/elixir/test/test_helper.exs
+++ /dev/null
@@ -1 +0,0 @@
-ExUnit.start()
diff --git a/23/flake.lock b/23/flake.lock
deleted file mode 100644
index f09ea9c..0000000
--- a/23/flake.lock
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-  "nodes": {
-    "nixpkgs": {
-      "locked": {
-        "lastModified": 1701693815,
-        "narHash": "sha256-7BkrXykVWfkn6+c1EhFA3ko4MLi3gVG0p9G96PNnKTM=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "09ec6a0881e1a36c29d67497693a67a16f4da573",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "ref": "nixpkgs-unstable",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "root": {
-      "inputs": {
-        "nixpkgs": "nixpkgs"
-      }
-    }
-  },
-  "root": "root",
-  "version": 7
-}
diff --git a/23/flake.nix b/23/flake.nix
deleted file mode 100644
index c370c6c..0000000
--- a/23/flake.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-  description = "A Nix-flake-based Elixir development environment";
-
-  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
-
-  outputs = { self, nixpkgs }:
-    let
-      supportedSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
-      forEachSupportedSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: f {
-        pkgs = import nixpkgs { inherit system; };
-      });
-    in
-    {
-      devShells = forEachSupportedSystem ({ pkgs }: {
-        default = pkgs.mkShell {
-          packages = (with pkgs; [ elixir_1_15 gnumake ]) ++
-            # Linux only
-            pkgs.lib.optionals (pkgs.stdenv.isLinux) (with pkgs; [ gigalixir inotify-tools libnotify ]);
-        };
-      });
-    };
-}