aboutsummaryrefslogtreecommitdiff
path: root/day7.zig
diff options
context:
space:
mode:
authorMartin Ashby <martin@ashbysoft.com>2023-12-09 20:48:21 +0000
committerMartin Ashby <martin@ashbysoft.com>2023-12-09 20:48:21 +0000
commit413fa8df4b6cfe1bef8ce36ab035b298a9645b23 (patch)
treef0cabdbc16314d6a8a8fd8269a317505fe718380 /day7.zig
parent365306bf1ebbbec117c5c767c3d221af7ae17ec9 (diff)
downloadaoc2023-413fa8df4b6cfe1bef8ce36ab035b298a9645b23.tar.gz
aoc2023-413fa8df4b6cfe1bef8ce36ab035b298a9645b23.tar.bz2
aoc2023-413fa8df4b6cfe1bef8ce36ab035b298a9645b23.tar.xz
aoc2023-413fa8df4b6cfe1bef8ce36ab035b298a9645b23.zip
day7 part 2
Diffstat (limited to 'day7.zig')
-rw-r--r--day7.zig2103
1 files changed, 1070 insertions, 1033 deletions
diff --git a/day7.zig b/day7.zig
index 0419cef..ebf96c6 100644
--- a/day7.zig
+++ b/day7.zig
@@ -1,18 +1,20 @@
const std = @import("std");
const Card = enum(u8) {
- @"2" = 0,
- @"3",
- @"4",
- @"5",
- @"6",
- @"7",
- @"8",
- @"9",
- T,
- J,
- Q,
- K,
+ J = 0,
+ //@"2" = 0,
+ @"2",
+ @"3",
+ @"4",
+ @"5",
+ @"6",
+ @"7",
+ @"8",
+ @"9",
+ T,
+ //J,
+ Q,
+ K,
A,
fn parse(ch: u8) !Card {
@@ -44,7 +46,7 @@ const Hand = struct {
fn cmp(_: void, lhs: Hand, rhs: Hand) bool {
if (@intFromEnum(lhs.handtype) < @intFromEnum(rhs.handtype)) return true;
if (@intFromEnum(lhs.handtype) > @intFromEnum(rhs.handtype)) return false;
- for (lhs.cards, rhs.cards) |lc,rc| {
+ for (lhs.cards, rhs.cards) |lc, rc| {
if (lc != rc) {
return @intFromEnum(lc) < @intFromEnum(rc);
}
@@ -59,23 +61,56 @@ const Hand = struct {
hand.cards[ix] = try Card.parse(ch);
}
const ei = @typeInfo(Card).Enum;
- var cts = [_]u8{0}**ei.fields.len;
+ var cts = [_]u8{0} ** ei.fields.len;
for (hand.cards) |card| {
cts[@intFromEnum(card)] += 1;
}
std.mem.sort(u8, &cts, {}, Hand.u8cmprev);
+
+ const jokers = std.mem.count(Card, &hand.cards, &[_]Card{.J});
hand.handtype = switch (cts[0]) {
5 => .FiveOAK,
- 4 => .FourOAK,
+ 4 => switch (jokers) {
+ 4 => .FiveOAK,
+ 1 => .FiveOAK,
+ 0 => .FourOAK,
+ else => @panic("blub"),
+ },
3 => switch (cts[1]) {
- 2 => .FullHouse,
- else => .ThreeOAK,
+ 2 => switch (jokers) {
+ 3 => .FiveOAK,
+ 2 => .FiveOAK,
+ 1 => .FourOAK,
+ 0 => .FullHouse,
+ else => @panic("blub"),
+ },
+ else => switch (jokers) {
+ 3 => .FourOAK,
+ 1 => .FourOAK,
+ 0 => .ThreeOAK,
+ else => @panic("blub"),
+ },
},
2 => switch (cts[1]) {
- 2 => .TwoPair,
- else => .OnePair,
+ 2 => switch (jokers) {
+ 2 => .FourOAK,
+ 1 => .FullHouse,
+ 0 => .TwoPair,
+ else => @panic("blub"),
+ },
+ else => switch (jokers) {
+ 2 => .ThreeOAK,
+ 1 => .ThreeOAK,
+ 0 => .OnePair,
+ else => @panic("blub"),
+ },
+ },
+ 1 => switch (jokers) {
+ 1 => .OnePair,
+ 0 => .HighCard,
+ else => @panic("blub"),
},
- else => .HighCard,
+ else => @panic("blub"),
};
return hand;
}
@@ -104,7 +139,7 @@ const Turn = struct {
}
};
-fn solve_pt1(a: std.mem.Allocator, input: []const u8) !u64 {
+fn solve(a: std.mem.Allocator, input: []const u8) !u64 {
var spl = std.mem.split(u8, input, "\n");
var al = std.ArrayList(Turn).init(a);
defer al.deinit();
@@ -122,1022 +157,1024 @@ fn solve_pt1(a: std.mem.Allocator, input: []const u8) !u64 {
return sum;
}
-test "pt1" {
- try std.testing.expectEqual(@as(u64,6440), try solve_pt1(std.testing.allocator, test_input));
+// test "pt1" {
+// try std.testing.expectEqual(@as(u64, 6440), try solve_pt1(std.testing.allocator, test_input));
+// }
+test "pt2" {
+ try std.testing.expectEqual(@as(u64, 5905), try solve(std.testing.allocator, test_input));
}
pub fn main() !void {
- try std.fmt.format(std.io.getStdOut().writer(), "day7 pt1: {}\n", .{try solve_pt1(std.heap.page_allocator, puzzle_input)});
+ try std.fmt.format(std.io.getStdOut().writer(), "day7 pt2: {}\n", .{try solve(std.heap.page_allocator, puzzle_input)});
}
-
-const test_input =
-\\32T3K 765
-\\T55J5 684
-\\KK677 28
-\\KTJJT 220
-\\QQQJA 483
+const test_input =
+ \\32T3K 765
+ \\T55J5 684
+ \\KK677 28
+ \\KTJJT 220
+ \\QQQJA 483
;
-const puzzle_input =
-\\9A35J 469
-\\75T32 237
-\\6T8JQ 427
-\\3366A 814
-\\K2AK9 982
-\\J8KTT 9
-\\94936 970
-\\Q8AK9 15
-\\3QQ32 940
-\\65555 484
-\\8K88K 674
-\\Q67T5 788
-\\77575 476
-\\KAKAA 785
-\\AA3AA 240
-\\44767 423
-\\Q923A 300
-\\KK444 650
-\\QQQ6Q 313
-\\5JA22 167
-\\7A264 837
-\\TTKTT 646
-\\K62JJ 682
-\\34A63 532
-\\7J554 393
-\\Q86T6 745
-\\9963K 718
-\\92K85 97
-\\3KKJ3 604
-\\98Q26 257
-\\7AJ6Q 132
-\\K48T5 125
-\\554J4 408
-\\T6333 178
-\\5757J 479
-\\8J222 488
-\\KKJ6A 460
-\\95T38 944
-\\23J22 796
-\\AK333 69
-\\25AK9 978
-\\77779 123
-\\K9T83 56
-\\46A39 730
-\\655J5 77
-\\A2T2A 78
-\\J8Q75 847
-\\QA82A 700
-\\TTT67 443
-\\KT9A5 343
-\\6969T 582
-\\A7779 703
-\\3QA93 597
-\\6JT6T 558
-\\28888 290
-\\26TT2 147
-\\T9356 587
-\\6T542 482
-\\3J733 140
-\\TQT72 534
-\\3K3K3 208
-\\5JA6J 833
-\\64646 277
-\\86K68 795
-\\24455 997
-\\3633K 504
-\\K3K36 790
-\\22KK2 731
-\\AA8AA 991
-\\A6666 312
-\\38395 712
-\\46J44 229
-\\52529 268
-\\49AA9 573
-\\J7J94 258
-\\87TKA 947
-\\J2999 555
-\\T9KJK 194
-\\7KK3K 146
-\\T255T 875
-\\9QAT4 475
-\\759A2 169
-\\22322 510
-\\27T69 299
-\\644K6 4
-\\44J84 227
-\\6A722 806
-\\775KJ 25
-\\37425 679
-\\7TA8T 226
-\\3Q6TK 391
-\\8T3J4 196
-\\67534 339
-\\5QQ55 565
-\\J33A3 305
-\\8A8AJ 732
-\\2QQJ5 523
-\\AAAJA 618
-\\97733 858
-\\2A6Q2 433
-\\J8QT3 390
-\\3333J 910
-\\K2AK2 884
-\\AQTTQ 810
-\\55666 855
-\\7Q7QJ 743
-\\K8KK3 489
-\\4AKKJ 619
-\\QQKQQ 373
-\\QJ59A 688
-\\2687J 622
-\\7Q77J 512
-\\578A3 120
-\\T2662 737
-\\JKJK7 807
-\\44T94 223
-\\454Q5 607
-\\75J58 551
-\\A686J 763
-\\TAT4T 108
-\\75356 591
-\\96989 977
-\\K7KTK 775
-\\5252Q 318
-\\77A5A 599
-\\22K87 359
-\\JJQQQ 930
-\\8TKT8 436
-\\A9QQ8 374
-\\4T2JA 30
-\\777AJ 463
-\\8J888 87
-\\42K8Q 657
-\\J5JJ5 713
-\\AKQJ3 45
-\\T59K4 765
-\\22A77 266
-\\K8KK8 219
-\\6T666 349
-\\72T7T 92
-\\3JQJQ 964
-\\AA2J9 672
-\\66997 803
-\\5A8A2 467
-\\KKKQ7 98
-\\67Q5J 669
-\\J57A6 503
-\\98347 331
-\\6J668 279
-\\9K7KK 319
-\\84848 337
-\\33353 974
-\\A333T 576
-\\66636 461
-\\6AAA2 281
-\\Q52QQ 691
-\\7876A 892
-\\533T8 966
-\\5A9Q7 533
-\\A6AAQ 21
-\\688Q6 100
-\\K8483 764
-\\62865 453
-\\39323 189
-\\TTJJT 498
-\\5J437 306
-\\55A7A 876
-\\9A366 562
-\\8J479 249
-\\65544 640
-\\83T88 325
-\\AK45A 321
-\\39QQ3 849
-\\83838 749
-\\43394 602
-\\33722 843
-\\T5KTJ 428
-\\JJKK9 549
-\\33737 27
-\\4KKK4 638
-\\KK398 246
-\\J6828 372
-\\99229 23
-\\2963K 577
-\\3ATJJ 862
-\\6488T 912
-\\48554 903
-\\3A353 627
-\\86923 768
-\\79A98 540
-\\77TTT 965
-\\TK2T7 188
-\\2A644 687
-\\QT943 253
-\\K2QJT 887
-\\J5KK5 915
-\\9Q2JA 980
-\\J237J 28
-\\A46Q2 264
-\\7T2TT 621
-\\A4T8J 57
-\\Q5QT5 217
-\\K9AK7 248
-\\TAJTT 973
-\\82822 919
-\\858AA 265
-\\5555J 800
-\\552J2 908
-\\Q5248 272
-\\A5KK5 529
-\\K8J9T 85
-\\888TT 477
-\\665Q5 823
-\\Q42AT 449
-\\4843A 83
-\\Q5476 885
-\\Q52T2 409
-\\6A2TJ 580
-\\92A99 483
-\\Q9Q6Q 734
-\\36662 134
-\\88899 401
-\\KQQQ9 389
-\\JQ259 658
-\\57895 639
-\\KQ654 852
-\\94273 612
-\\77KT7 987
-\\3Q4AQ 364
-\\6KQK6 651
-\\4AQ23 163
-\\34TTT 107
-\\T98T2 870
-\\J78Q9 756
-\\3K3J3 404
-\\J993J 328
-\\Q8JQA 678
-\\96759 326
-\\2J22J 383
-\\2T222 236
-\\76666 772
-\\QQ5QJ 225
-\\A47AA 505
-\\967TJ 924
-\\Q3TJ4 63
-\\2KK29 879
-\\44Q4Q 685
-\\TTQ9T 659
-\\7244J 414
-\\T22TJ 269
-\\55552 3
-\\J78TK 474
-\\3J3J3 559
-\\8QJ42 382
-\\28T86 740
-\\TKTT8 381
-\\22J44 579
-\\J8668 242
-\\88TT6 709
-\\KKKJ9 192
-\\478K2 501
-\\3Q66J 22
-\\K9KAJ 774
-\\K3333 113
-\\4TJT4 945
-\\Q55KK 609
-\\Q7272 955
-\\6AKAA 490
-\\964T5 971
-\\36Q3Q 51
-\\3T9AT 969
-\\Q8TQT 256
-\\4A833 632
-\\5499J 812
-\\44222 176
-\\6QQ6Q 317
-\\TJT2T 206
-\\A862Q 468
-\\36663 464
-\\54JK9 302
-\\8J828 103
-\\32QQ2 38
-\\66675 595
-\\2J8TQ 50
-\\2QQQQ 783
-\\333QQ 282
-\\67KKK 511
-\\2996J 518
-\\J824K 44
-\\K6656 726
-\\Q7Q5T 793
-\\KQ27T 494
-\\T2KQA 308
-\\AAAA2 441
-\\24J49 716
-\\K58TT 873
-\\7TA49 39
-\\6KQ7T 298
-\\6Q555 455
-\\66AJA 819
-\\5A9A3 922
-\\AAA88 170
-\\42324 962
-\\22Q22 616
-\\44QJQ 399
-\\9J3TA 342
-\\56K3A 588
-\\99T9A 224
-\\56T66 869
-\\77997 671
-\\53222 161
-\\8KKJT 384
-\\37777 567
-\\TKTK5 42
-\\6J622 127
-\\387Q5 417
-\\T3A73 360
-\\28AKA 868
-\\K26Q5 288
-\\J6J88 692
-\\KKKK9 690
-\\2A5QA 435
-\\K83T4 158
-\\QAA3A 104
-\\T7Q66 914
-\\A3A6A 270
-\\J888J 838
-\\3JTKQ 867
-\\7KKKK 451
-\\K7766 824
-\\Q4Q9Q 620
-\\65A33 957
-\\99A9A 781
-\\A9AAA 344
-\\44744 935
-\\6666J 804
-\\A8QJ9 155
-\\AQKAA 681
-\\6K7KJ 853
-\\A99JA 366
-\\65JJ5 47
-\\4TQ8T 769
-\\66555 457
-\\TJ226 222
-\\78777 758
-\\5K488 999
-\\Q65T4 362
-\\4Q738 80
-\\5JJ55 323
-\\8Q65A 918
-\\A5TT5 353
-\\294J3 471
-\\33Q44 102
-\\66668 254
-\\7663Q 516
-\\AAAJJ 798
-\\3344J 10
-\\85888 507
-\\68868 144
-\\588T5 124
-\\TT4TT 834
-\\QQ7QK 168
-\\75555 593
-\\849KA 446
-\\9QT7A 165
-\\5AA7A 697
-\\J99J9 213
-\\6834K 5
-\\TQQQT 292
-\\7A655 403
-\\982AQ 143
-\\A6237 334
-\\QK5T6 963
-\\99895 232
-\\56366 376
-\\34J35 231
-\\AAQAQ 150
-\\78887 485
-\\QQQQJ 263
-\\TAQ98 197
-\\425J5 895
-\\JQ7QQ 992
-\\J9JJ9 61
-\\5888J 665
-\\6J6K6 496
-\\78J82 293
-\\22292 73
-\\TT2TT 911
-\\ATAAT 322
-\\339AA 953
-\\A7465 413
-\\AA4AA 283
-\\QT3TQ 84
-\\QQA5Q 66
-\\J472J 784
-\\T3JTT 131
-\\333A4 210
-\\79299 550
-\\88A8J 594
-\\J9749 584
-\\J735K 902
-\\933JQ 109
-\\5T926 481
-\\4T4T4 561
-\\87TK6 247
-\\98964 159
-\\78997 354
-\\36JT4 29
-\\59464 771
-\\2AA5A 33
-\\77J43 244
-\\37T7T 448
-\\23QJ3 925
-\\K7K5Q 792
-\\QQQQ9 411
-\\KK568 278
-\\49TK7 961
-\\55TAA 817
-\\33J4Q 984
-\\5QJK9 105
-\\9A9J9 623
-\\AK62Q 842
-\\38333 735
-\\9A8J8 333
-\\9T243 204
-\\6K2J3 547
-\\78JKQ 959
-\\AA3A9 634
-\\KJJKT 13
-\\KJKKJ 921
-\\99934 310
-\\4J929 431
-\\55559 445
-\\TT62T 355
-\\32K25 825
-\\622A6 480
-\\334Q9 412
-\\26922 114
-\\638KJ 900
-\\364T8 462
-\\QQJT7 234
-\\TK586 525
-\\K342K 816
-\\TTT99 699
-\\JT658 315
-\\36388 24
-\\2666J 185
-\\53455 592
-\\4AJAA 304
-\\J3QQ8 228
-\\22J2A 416
-\\99768 927
-\\TKJ9A 487
-\\5A55J 744
-\\QKQ44 613
-\\336QA 81
-\\66622 200
-\\JTTTK 717
-\\59ATT 513
-\\33938 813
-\\66AKJ 466
-\\3976Q 941
-\\8888T 491
-\\JJK47 836
-\\99Q7Q 654
-\\Q896K 633
-\\Q8JKQ 553
-\\J6K6K 811
-\\2T323 750
-\\KKAKK 952
-\\Q6JJ4 929
-\\77J77 993
-\\9KQJT 989
-\\44254 857
-\\4AA5A 514
-\\TATJA 715
-\\74422 145
-\\33332 544
-\\5T5QT 311
-\\78JT8 913
-\\JKKT2 94
-\\26QK7 71
-\\444JJ 287
-\\99979 133
-\\Q999Q 314
-\\48888 649
-\\33T8K 368
-\\77T57 711
-\\4T42Q 351
-\\89Q99 89
-\\69666 846
-\\3A33A 890
-\\8Q8A3 636
-\\4A888 603
-\\9TQTA 747
-\\9AAA9 52
-\\TJ4TT 267
-\\J76J7 72
-\\K773Q 370
-\\77Q77 329
-\\636QQ 575
-\\ATQAA 917
-\\2743Q 932
-\\2KKKJ 452
-\\93929 686
-\\4ATTA 458
-\\42222 252
-\\35225 402
-\\45JKA 160
-\\4TAT6 201
-\\7A278 839
-\\4A7Q5 543
-\\Q33T6 641
-\\JQ99Q 238
-\\A793A 86
-\\78575 187
-\\49T9T 303
-\\8542K 198
-\\25A82 786
-\\77A77 363
-\\244KK 397
-\\87877 689
-\\T6T6T 778
-\\KKKK4 392
-\\22T2J 171
-\\T77A7 174
-\\99KJK 180
-\\2444J 761
-\\QAQQA 508
-\\3373T 121
-\\222TT 137
-\\736T2 8
-\\4444J 12
-\\33555 566
-\\487A4 230
-\\22626 439
-\\QQQQ8 336
-\\5T552 521
-\\QTQQQ 872
-\\63836 614
-\\66695 450
-\\AKAAA 361
-\\95A95 111
-\\644JK 701
-\\ATAAA 840
-\\9J99T 35
-\\3333A 664
-\\99992 99
-\\5A5A5 680
-\\Q7J5J 405
-\\59999 954
-\\2KTQ9 255
-\\6QQ96 149
-\\37333 67
-\\QJ6Q3 425
-\\Q6K29 415
-\\J7277 126
-\\AA29Q 220
-\\AAKJK 831
-\\27QQ2 986
-\\AJ367 891
-\\33292 666
-\\Q8786 933
-\\TAJ28 554
-\\K4448 585
-\\Q8225 931
-\\46242 598
-\\7AT98 693
-\\78J56 369
-\\TTTTJ 371
-\\TKJKK 990
-\\66767 802
-\\56956 789
-\\544K4 275
-\\46699 215
-\\26666 710
-\\AQQQQ 116
-\\6A858 757
-\\55757 142
-\\J2KA4 723
-\\6229K 906
-\\6K366 179
-\\4378K 527
-\\AA664 832
-\\72242 499
-\\2TT2Q 998
-\\5QQQ5 647
-\\5858J 856
-\\555KJ 655
-\\7788J 524
-\\36J5J 82
-\\99666 2
-\\9AKK3 177
-\\47447 596
-\\9266J 572
-\\4TTQ4 946
-\\999J9 110
-\\T74K4 899
-\\Q27J8 156
-\\98AK5 754
-\\3TJ6T 396
-\\75QK7 517
-\\K22KJ 741
-\\9699T 916
-\\66QAQ 202
-\\7329Q 32
-\\89JAT 708
-\\444Q4 841
-\\73366 880
-\\677QK 683
-\\48J84 394
-\\2966T 6
-\\9KT9K 531
-\\8544T 746
-\\2222A 934
-\\T2QKT 615
-\\8J282 430
-\\K9K9K 214
-\\336TJ 904
-\\9JTJ9 777
-\\QKAKK 68
-\\62A66 48
-\\49499 280
-\\97967 46
-\\8T66T 273
-\\94349 379
-\\57777 719
-\\2QT5K 827
-\\4TTT2 40
-\\J2252 859
-\\A3TQA 426
-\\468JA 611
-\\57745 662
-\\424AA 938
-\\J33AT 309
-\\99339 610
-\\872KJ 570
-\\K2395 571
-\\77A5Q 996
-\\JQ7Q6 340
-\\973J9 776
-\\J6K92 14
-\\5J5Q9 191
-\\Q5555 773
-\\A7KA7 11
-\\54545 851
-\\AJ9A8 968
-\\QQAJ7 821
-\\T6JTT 670
-\\3T2TT 151
-\\TTTT3 886
-\\33933 850
-\\KKKQQ 656
-\\T2TT2 54
-\\QA44J 995
-\\89J27 335
-\\3742A 212
-\\T7Q88 260
-\\TT666 75
-\\JKQ28 724
-\\548T3 698
-\\3883K 148
-\\39966 864
-\\69424 320
-\\4QJ5J 332
-\\J4297 346
-\\78A66 605
-\\82333 809
-\\4K777 644
-\\9739T 936
-\\JJ433 755
-\\88688 43
-\\3TJ33 988
-\\J37K3 628
-\\3KK3T 583
-\\A433J 195
-\\89K46 262
-\\JKKQK 545
-\\7AA27 437
-\\977T8 828
-\\757Q7 759
-\\7T7A8 805
-\\33336 19
-\\KJKKK 118
-\\44445 586
-\\84Q8K 205
-\\439K3 909
-\\6J663 762
-\\33777 975
-\\9AAQA 564
-\\JJ8JJ 91
-\\24555 696
-\\62644 707
-\\AA3J5 31
-\\6T2KQ 135
-\\24244 34
-\\3QK3K 560
-\\9J3T9 787
-\\7QTA8 705
-\\A22JA 528
-\\84844 537
-\\87667 937
-\\QJ5K4 90
-\\2K326 239
-\\59878 421
-\\7J377 536
-\\857K7 350
-\\2K2A2 704
-\\39T9T 493
-\\QKT86 829
-\\3AQJT 714
-\\7AAAJ 600
-\\9QK56 983
-\\35K33 193
-\\89888 589
-\\TQ477 432
-\\777K7 59
-\\86AQJ 17
-\\QQQJ3 407
-\\68K25 166
-\\32288 748
-\\TKTQK 65
-\\J9K56 530
-\\AA323 960
-\\27266 112
-\\22722 675
-\\73367 497
-\\Q7JJ3 16
-\\444T4 438
-\\22323 74
-\\3QQ6K 348
-\\A68J8 454
-\\42K64 367
-\\3AA7J 889
-\\AT492 398
-\\AAA6A 673
-\\2Q9QQ 95
-\\A7477 815
-\\4A8KA 444
-\\6JJ66 893
-\\84445 429
-\\7997J 101
-\\A5A6A 958
-\\K27A2 486
-\\4A4J4 327
-\\464TJ 434
-\\5554J 766
-\\KTKT8 801
-\\573K5 64
-\\JKK88 522
-\\A9999 291
-\\T787T 338
-\\39648 502
-\\46464 733
-\\AQAAA 357
-\\8TTTT 797
-\\64444 515
-\\8588T 53
-\\AKAKK 617
-\\8AJ99 888
-\\3TAAJ 874
-\\338Q3 694
-\\TT443 578
-\\86227 419
-\\9J9JQ 736
-\\22522 943
-\\823J3 866
-\\24444 519
-\\A7A7A 207
-\\5JJ99 36
-\\K2896 250
-\\66A5J 129
-\\JJJJJ 668
-\\8J548 721
-\\J8J63 385
-\\3Q442 79
-\\8K868 141
-\\AAA67 767
-\\T968K 289
-\\5QJ5K 245
-\\TKQK5 96
-\\54774 122
-\\89666 568
-\\95596 538
-\\9K3J4 380
-\\66665 20
-\\7759A 209
-\\6JTA6 702
-\\29574 88
-\\AA6A4 181
-\\Q28T4 152
-\\777KQ 386
-\\47888 271
-\\K8KKQ 738
-\\J7337 162
-\\JQA88 820
-\\QQ4QQ 276
-\\TKKTT 728
-\\JTKTK 316
-\\3J334 684
-\\9944Q 830
-\\8485A 753
-\\JKKJ8 221
-\\A9QJ6 948
-\\KJ3KQ 727
-\\Q5QQQ 695
-\\Q8QTQ 542
-\\2QQQ8 119
-\\JJ55Q 845
-\\52725 950
-\\QAJ33 808
-\\JAA7J 557
-\\Q22AA 183
-\\Q8Q8Q 661
-\\J55JT 410
-\\KKQJJ 901
-\\Q5455 539
-\\AQJJ9 956
-\\7QJ7T 896
-\\K5KKJ 994
-\\388KK 822
-\\2QQ2K 218
-\\3J4K3 285
-\\256K7 923
-\\K2KKA 157
-\\QQTKQ 139
-\\48TTT 1
-\\TTT44 770
-\\JJ777 898
-\\Q466K 117
-\\TQ4QQ 172
-\\43333 883
-\\855T3 324
-\\8T933 645
-\\579K9 347
-\\A76Q4 729
-\\3TTT3 115
-\\QJAQA 928
-\\65T65 541
-\\77A7A 625
-\\29J9J 472
-\\TKT74 926
-\\A934K 643
-\\JT533 199
-\\TT4AJ 216
-\\KKKK6 55
-\\6J3K5 676
-\\398J3 18
-\\778K8 653
-\\79773 406
-\\25446 606
-\\54323 76
-\\2T992 601
-\\8A888 241
-\\9AJQK 509
-\\3Q3QK 739
-\\KKKK8 667
-\\JJ494 590
-\\83JKT 203
-\\J9957 751
-\\JJAQQ 296
-\\4835Q 301
-\\333T3 722
-\\KKK2K 535
-\\8Q2QJ 378
-\\5J396 652
-\\TQ7J8 624
-\\5JJ22 447
-\\TT777 62
-\\TTJT7 60
-\\TA2QT 626
-\\T3Q79 791
-\\K6QQ8 294
-\\28K52 967
-\\6K374 663
-\\7877A 495
-\\24226 352
-\\88KAK 907
-\\J242T 546
-\\K77JT 465
-\\Q77Q5 863
-\\TQTQT 284
-\\49K62 26
-\\6TTT8 569
-\\Q77QQ 779
-\\99T6T 70
-\\K4AKA 130
-\\J5TT5 979
-\\KQJT8 175
-\\96K99 648
-\\A56J3 422
-\\53585 58
-\\6QJTQ 794
-\\9QJ77 388
-\\88944 235
-\\55A2Q 780
-\\9Q992 297
-\\96699 660
-\\682QJ 865
-\\6TTTK 799
-\\Q47QQ 358
-\\2929K 920
-\\J5535 752
-\\T3383 631
-\\6737Q 894
-\\9QT72 440
-\\844J9 470
-\\6AA6A 211
-\\5AA5A 981
-\\8KJ88 49
-\\55855 93
-\\5J495 261
-\\8QQQ5 629
-\\J4493 860
-\\ATTKA 818
-\\77264 877
-\\55K58 365
-\\QQ666 106
-\\238T6 459
-\\77QQK 848
-\\5757A 233
-\\84AT3 951
-\\TT7TT 642
-\\72236 345
-\\TQ333 760
-\\77744 720
-\\QQ4QK 478
-\\Q82A2 506
-\\AJ3AA 942
-\\JJ958 526
-\\AJ4A4 341
-\\A26J8 742
-\\5TK28 871
-\\865J3 136
-\\66A6A 556
-\\Q4A55 552
-\\K8429 37
-\\7QQ9Q 442
-\\323J5 375
-\\6J456 608
-\\73Q6A 424
-\\8QQ68 976
-\\J9KA7 286
-\\Q5Q5J 418
-\\74472 154
-\\KKQT9 637
-\\Q8Q88 574
-\\7543A 190
-\\KA87J 456
-\\2877K 635
-\\J76A4 330
-\\83Q69 128
-\\A88A8 377
-\\9999K 630
-\\J698Q 878
-\\67777 243
-\\A232A 844
-\\8K66J 835
-\\QJ36A 420
-\\22QQ6 782
-\\3339K 677
-\\K72QK 563
-\\86777 307
-\\323JJ 972
-\\955KQ 826
-\\33443 259
-\\88Q88 897
-\\85778 939
-\\7T268 356
-\\5T85J 861
-\\833J8 387
-\\4AA4A 7
-\\QTQJJ 725
-\\TT36T 395
-\\6KJAJ 520
-\\5J525 473
-\\T88JT 182
-\\44T66 173
-\\Q75A8 251
-\\K777A 985
-\\88T33 905
-\\99575 949
-\\62222 186
-\\22923 492
-\\J4Q42 706
-\\AA872 500
-\\JA895 153
-\\TT562 295
-\\34434 854
-\\2222J 881
-\\69K46 882
-\\TK74J 274
-\\T46TT 548
-\\K54KJ 164
-\\9999Q 184
-\\3QTJJ 400
-\\8QK59 41
-\\994Q9 1000
-\\347J4 581
-\\Q7289 138
-; \ No newline at end of file
+const puzzle_input =
+ \\9A35J 469
+ \\75T32 237
+ \\6T8JQ 427
+ \\3366A 814
+ \\K2AK9 982
+ \\J8KTT 9
+ \\94936 970
+ \\Q8AK9 15
+ \\3QQ32 940
+ \\65555 484
+ \\8K88K 674
+ \\Q67T5 788
+ \\77575 476
+ \\KAKAA 785
+ \\AA3AA 240
+ \\44767 423
+ \\Q923A 300
+ \\KK444 650
+ \\QQQ6Q 313
+ \\5JA22 167
+ \\7A264 837
+ \\TTKTT 646
+ \\K62JJ 682
+ \\34A63 532
+ \\7J554 393
+ \\Q86T6 745
+ \\9963K 718
+ \\92K85 97
+ \\3KKJ3 604
+ \\98Q26 257
+ \\7AJ6Q 132
+ \\K48T5 125
+ \\554J4 408
+ \\T6333 178
+ \\5757J 479
+ \\8J222 488
+ \\KKJ6A 460
+ \\95T38 944
+ \\23J22 796
+ \\AK333 69
+ \\25AK9 978
+ \\77779 123
+ \\K9T83 56
+ \\46A39 730
+ \\655J5 77
+ \\A2T2A 78
+ \\J8Q75 847
+ \\QA82A 700
+ \\TTT67 443
+ \\KT9A5 343
+ \\6969T 582
+ \\A7779 703
+ \\3QA93 597
+ \\6JT6T 558
+ \\28888 290
+ \\26TT2 147
+ \\T9356 587
+ \\6T542 482
+ \\3J733 140
+ \\TQT72 534
+ \\3K3K3 208
+ \\5JA6J 833
+ \\64646 277
+ \\86K68 795
+ \\24455 997
+ \\3633K 504
+ \\K3K36 790
+ \\22KK2 731
+ \\AA8AA 991
+ \\A6666 312
+ \\38395 712
+ \\46J44 229
+ \\52529 268
+ \\49AA9 573
+ \\J7J94 258
+ \\87TKA 947
+ \\J2999 555
+ \\T9KJK 194
+ \\7KK3K 146
+ \\T255T 875
+ \\9QAT4 475
+ \\759A2 169
+ \\22322 510
+ \\27T69 299
+ \\644K6 4
+ \\44J84 227
+ \\6A722 806
+ \\775KJ 25
+ \\37425 679
+ \\7TA8T 226
+ \\3Q6TK 391
+ \\8T3J4 196
+ \\67534 339
+ \\5QQ55 565
+ \\J33A3 305
+ \\8A8AJ 732
+ \\2QQJ5 523
+ \\AAAJA 618
+ \\97733 858
+ \\2A6Q2 433
+ \\J8QT3 390
+ \\3333J 910
+ \\K2AK2 884
+ \\AQTTQ 810
+ \\55666 855
+ \\7Q7QJ 743
+ \\K8KK3 489
+ \\4AKKJ 619
+ \\QQKQQ 373
+ \\QJ59A 688
+ \\2687J 622
+ \\7Q77J 512
+ \\578A3 120
+ \\T2662 737
+ \\JKJK7 807
+ \\44T94 223
+ \\454Q5 607
+ \\75J58 551
+ \\A686J 763
+ \\TAT4T 108
+ \\75356 591
+ \\96989 977
+ \\K7KTK 775
+ \\5252Q 318
+ \\77A5A 599
+ \\22K87 359
+ \\JJQQQ 930
+ \\8TKT8 436
+ \\A9QQ8 374
+ \\4T2JA 30
+ \\777AJ 463
+ \\8J888 87
+ \\42K8Q 657
+ \\J5JJ5 713
+ \\AKQJ3 45
+ \\T59K4 765
+ \\22A77 266
+ \\K8KK8 219
+ \\6T666 349
+ \\72T7T 92
+ \\3JQJQ 964
+ \\AA2J9 672
+ \\66997 803
+ \\5A8A2 467
+ \\KKKQ7 98
+ \\67Q5J 669
+ \\J57A6 503
+ \\98347 331
+ \\6J668 279
+ \\9K7KK 319
+ \\84848 337
+ \\33353 974
+ \\A333T 576
+ \\66636 461
+ \\6AAA2 281
+ \\Q52QQ 691
+ \\7876A 892
+ \\533T8 966
+ \\5A9Q7 533
+ \\A6AAQ 21
+ \\688Q6 100
+ \\K8483 764
+ \\62865 453
+ \\39323 189
+ \\TTJJT 498
+ \\5J437 306
+ \\55A7A 876
+ \\9A366 562
+ \\8J479 249
+ \\65544 640
+ \\83T88 325
+ \\AK45A 321
+ \\39QQ3 849
+ \\83838 749
+ \\43394 602
+ \\33722 843
+ \\T5KTJ 428
+ \\JJKK9 549
+ \\33737 27
+ \\4KKK4 638
+ \\KK398 246
+ \\J6828 372
+ \\99229 23
+ \\2963K 577
+ \\3ATJJ 862
+ \\6488T 912
+ \\48554 903
+ \\3A353 627
+ \\86923 768
+ \\79A98 540
+ \\77TTT 965
+ \\TK2T7 188
+ \\2A644 687
+ \\QT943 253
+ \\K2QJT 887
+ \\J5KK5 915
+ \\9Q2JA 980
+ \\J237J 28
+ \\A46Q2 264
+ \\7T2TT 621
+ \\A4T8J 57
+ \\Q5QT5 217
+ \\K9AK7 248
+ \\TAJTT 973
+ \\82822 919
+ \\858AA 265
+ \\5555J 800
+ \\552J2 908
+ \\Q5248 272
+ \\A5KK5 529
+ \\K8J9T 85
+ \\888TT 477
+ \\665Q5 823
+ \\Q42AT 449
+ \\4843A 83
+ \\Q5476 885
+ \\Q52T2 409
+ \\6A2TJ 580
+ \\92A99 483
+ \\Q9Q6Q 734
+ \\36662 134
+ \\88899 401
+ \\KQQQ9 389
+ \\JQ259 658
+ \\57895 639
+ \\KQ654 852
+ \\94273 612
+ \\77KT7 987
+ \\3Q4AQ 364
+ \\6KQK6 651
+ \\4AQ23 163
+ \\34TTT 107
+ \\T98T2 870
+ \\J78Q9 756
+ \\3K3J3 404
+ \\J993J 328
+ \\Q8JQA 678
+ \\96759 326
+ \\2J22J 383
+ \\2T222 236
+ \\76666 772
+ \\QQ5QJ 225
+ \\A47AA 505
+ \\967TJ 924
+ \\Q3TJ4 63
+ \\2KK29 879
+ \\44Q4Q 685
+ \\TTQ9T 659
+ \\7244J 414
+ \\T22TJ 269
+ \\55552 3
+ \\J78TK 474
+ \\3J3J3 559
+ \\8QJ42 382
+ \\28T86 740
+ \\TKTT8 381
+ \\22J44 579
+ \\J8668 242
+ \\88TT6 709
+ \\KKKJ9 192
+ \\478K2 501
+ \\3Q66J 22
+ \\K9KAJ 774
+ \\K3333 113
+ \\4TJT4 945
+ \\Q55KK 609
+ \\Q7272 955
+ \\6AKAA 490
+ \\964T5 971
+ \\36Q3Q 51
+ \\3T9AT 969
+ \\Q8TQT 256
+ \\4A833 632
+ \\5499J 812
+ \\44222 176
+ \\6QQ6Q 317
+ \\TJT2T 206
+ \\A862Q 468
+ \\36663 464
+ \\54JK9 302
+ \\8J828 103
+ \\32QQ2 38
+ \\66675 595
+ \\2J8TQ 50
+ \\2QQQQ 783
+ \\333QQ 282
+ \\67KKK 511
+ \\2996J 518
+ \\J824K 44
+ \\K6656 726
+ \\Q7Q5T 793
+ \\KQ27T 494
+ \\T2KQA 308
+ \\AAAA2 441
+ \\24J49 716
+ \\K58TT 873
+ \\7TA49 39
+ \\6KQ7T 298
+ \\6Q555 455
+ \\66AJA 819
+ \\5A9A3 922
+ \\AAA88 170
+ \\42324 962
+ \\22Q22 616
+ \\44QJQ 399
+ \\9J3TA 342
+ \\56K3A 588
+ \\99T9A 224
+ \\56T66 869
+ \\77997 671
+ \\53222 161
+ \\8KKJT 384
+ \\37777 567
+ \\TKTK5 42
+ \\6J622 127
+ \\387Q5 417
+ \\T3A73 360
+ \\28AKA 868
+ \\K26Q5 288
+ \\J6J88 692
+ \\KKKK9 690
+ \\2A5QA 435
+ \\K83T4 158
+ \\QAA3A 104
+ \\T7Q66 914
+ \\A3A6A 270
+ \\J888J 838
+ \\3JTKQ 867
+ \\7KKKK 451
+ \\K7766 824
+ \\Q4Q9Q 620
+ \\65A33 957
+ \\99A9A 781
+ \\A9AAA 344
+ \\44744 935
+ \\6666J 804
+ \\A8QJ9 155
+ \\AQKAA 681
+ \\6K7KJ 853
+ \\A99JA 366
+ \\65JJ5 47
+ \\4TQ8T 769
+ \\66555 457
+ \\TJ226 222
+ \\78777 758
+ \\5K488 999
+ \\Q65T4 362
+ \\4Q738 80
+ \\5JJ55 323
+ \\8Q65A 918
+ \\A5TT5 353
+ \\294J3 471
+ \\33Q44 102
+ \\66668 254
+ \\7663Q 516
+ \\AAAJJ 798
+ \\3344J 10
+ \\85888 507
+ \\68868 144
+ \\588T5 124
+ \\TT4TT 834
+ \\QQ7QK 168
+ \\75555 593
+ \\849KA 446
+ \\9QT7A 165
+ \\5AA7A 697
+ \\J99J9 213
+ \\6834K 5
+ \\TQQQT 292
+ \\7A655 403
+ \\982AQ 143
+ \\A6237 334
+ \\QK5T6 963
+ \\99895 232
+ \\56366 376
+ \\34J35 231
+ \\AAQAQ 150
+ \\78887 485
+ \\QQQQJ 263
+ \\TAQ98 197
+ \\425J5 895
+ \\JQ7QQ 992
+ \\J9JJ9 61
+ \\5888J 665
+ \\6J6K6 496
+ \\78J82 293
+ \\22292 73
+ \\TT2TT 911
+ \\ATAAT 322
+ \\339AA 953
+ \\A7465 413
+ \\AA4AA 283
+ \\QT3TQ 84
+ \\QQA5Q 66
+ \\J472J 784
+ \\T3JTT 131
+ \\333A4 210
+ \\79299 550
+ \\88A8J 594
+ \\J9749 584
+ \\J735K 902
+ \\933JQ 109
+ \\5T926 481
+ \\4T4T4 561
+ \\87TK6 247
+ \\98964 159
+ \\78997 354
+ \\36JT4 29
+ \\59464 771
+ \\2AA5A 33
+ \\77J43 244
+ \\37T7T 448
+ \\23QJ3 925
+ \\K7K5Q 792
+ \\QQQQ9 411
+ \\KK568 278
+ \\49TK7 961
+ \\55TAA 817
+ \\33J4Q 984
+ \\5QJK9 105
+ \\9A9J9 623
+ \\AK62Q 842
+ \\38333 735
+ \\9A8J8 333
+ \\9T243 204
+ \\6K2J3 547
+ \\78JKQ 959
+ \\AA3A9 634
+ \\KJJKT 13
+ \\KJKKJ 921
+ \\99934 310
+ \\4J929 431
+ \\55559 445
+ \\TT62T 355
+ \\32K25 825
+ \\622A6 480
+ \\334Q9 412
+ \\26922 114
+ \\638KJ 900
+ \\364T8 462
+ \\QQJT7 234
+ \\TK586 525
+ \\K342K 816
+ \\TTT99 699
+ \\JT658 315
+ \\36388 24
+ \\2666J 185
+ \\53455 592
+ \\4AJAA 304
+ \\J3QQ8 228
+ \\22J2A 416
+ \\99768 927
+ \\TKJ9A 487
+ \\5A55J 744
+ \\QKQ44 613
+ \\336QA 81
+ \\66622 200
+ \\JTTTK 717
+ \\59ATT 513
+ \\33938 813
+ \\66AKJ 466
+ \\3976Q 941
+ \\8888T 491
+ \\JJK47 836
+ \\99Q7Q 654
+ \\Q896K 633
+ \\Q8JKQ 553
+ \\J6K6K 811
+ \\2T323 750
+ \\KKAKK 952
+ \\Q6JJ4 929
+ \\77J77 993
+ \\9KQJT 989
+ \\44254 857
+ \\4AA5A 514
+ \\TATJA 715
+ \\74422 145
+ \\33332 544
+ \\5T5QT 311
+ \\78JT8 913
+ \\JKKT2 94
+ \\26QK7 71
+ \\444JJ 287
+ \\99979 133
+ \\Q999Q 314
+ \\48888 649
+ \\33T8K 368
+ \\77T57 711
+ \\4T42Q 351
+ \\89Q99 89
+ \\69666 846
+ \\3A33A 890
+ \\8Q8A3 636
+ \\4A888 603
+ \\9TQTA 747
+ \\9AAA9 52
+ \\TJ4TT 267
+ \\J76J7 72
+ \\K773Q 370
+ \\77Q77 329
+ \\636QQ 575
+ \\ATQAA 917
+ \\2743Q 932
+ \\2KKKJ 452
+ \\93929 686
+ \\4ATTA 458
+ \\42222 252
+ \\35225 402
+ \\45JKA 160
+ \\4TAT6 201
+ \\7A278 839
+ \\4A7Q5 543
+ \\Q33T6 641
+ \\JQ99Q 238
+ \\A793A 86
+ \\78575 187
+ \\49T9T 303
+ \\8542K 198
+ \\25A82 786
+ \\77A77 363
+ \\244KK 397
+ \\87877 689
+ \\T6T6T 778
+ \\KKKK4 392
+ \\22T2J 171
+ \\T77A7 174
+ \\99KJK 180
+ \\2444J 761
+ \\QAQQA 508
+ \\3373T 121
+ \\222TT 137
+ \\736T2 8
+ \\4444J 12
+ \\33555 566
+ \\487A4 230
+ \\22626 439
+ \\QQQQ8 336
+ \\5T552 521
+ \\QTQQQ 872
+ \\63836 614
+ \\66695 450
+ \\AKAAA 361
+ \\95A95 111
+ \\644JK 701
+ \\ATAAA 840
+ \\9J99T 35
+ \\3333A 664
+ \\99992 99
+ \\5A5A5 680
+ \\Q7J5J 405
+ \\59999 954
+ \\2KTQ9 255
+ \\6QQ96 149
+ \\37333 67
+ \\QJ6Q3 425
+ \\Q6K29 415
+ \\J7277 126
+ \\AA29Q 220
+ \\AAKJK 831
+ \\27QQ2 986
+ \\AJ367 891
+ \\33292 666
+ \\Q8786 933
+ \\TAJ28 554
+ \\K4448 585
+ \\Q8225 931
+ \\46242 598
+ \\7AT98 693
+ \\78J56 369
+ \\TTTTJ 371
+ \\TKJKK 990
+ \\66767 802
+ \\56956 789
+ \\544K4 275
+ \\46699 215
+ \\26666 710
+ \\AQQQQ 116
+ \\6A858 757
+ \\55757 142
+ \\J2KA4 723
+ \\6229K 906
+ \\6K366 179
+ \\4378K 527
+ \\AA664 832
+ \\72242 499
+ \\2TT2Q 998
+ \\5QQQ5 647
+ \\5858J 856
+ \\555KJ 655
+ \\7788J 524
+ \\36J5J 82
+ \\99666 2
+ \\9AKK3 177
+ \\47447 596
+ \\9266J 572
+ \\4TTQ4 946
+ \\999J9 110
+ \\T74K4 899
+ \\Q27J8 156
+ \\98AK5 754
+ \\3TJ6T 396
+ \\75QK7 517
+ \\K22KJ 741
+ \\9699T 916
+ \\66QAQ 202
+ \\7329Q 32
+ \\89JAT 708
+ \\444Q4 841
+ \\73366 880
+ \\677QK 683
+ \\48J84 394
+ \\2966T 6
+ \\9KT9K 531
+ \\8544T 746
+ \\2222A 934
+ \\T2QKT 615
+ \\8J282 430
+ \\K9K9K 214
+ \\336TJ 904
+ \\9JTJ9 777
+ \\QKAKK 68
+ \\62A66 48
+ \\49499 280
+ \\97967 46
+ \\8T66T 273
+ \\94349 379
+ \\57777 719
+ \\2QT5K 827
+ \\4TTT2 40
+ \\J2252 859
+ \\A3TQA 426
+ \\468JA 611
+ \\57745 662
+ \\424AA 938
+ \\J33AT 309
+ \\99339 610
+ \\872KJ 570
+ \\K2395 571
+ \\77A5Q 996
+ \\JQ7Q6 340
+ \\973J9 776
+ \\J6K92 14
+ \\5J5Q9 191
+ \\Q5555 773
+ \\A7KA7 11
+ \\54545 851
+ \\AJ9A8 968
+ \\QQAJ7 821
+ \\T6JTT 670
+ \\3T2TT 151
+ \\TTTT3 886
+ \\33933 850
+ \\KKKQQ 656
+ \\T2TT2 54
+ \\QA44J 995
+ \\89J27 335
+ \\3742A 212
+ \\T7Q88 260
+ \\TT666 75
+ \\JKQ28 724
+ \\548T3 698
+ \\3883K 148
+ \\39966 864
+ \\69424 320
+ \\4QJ5J 332
+ \\J4297 346
+ \\78A66 605
+ \\82333 809
+ \\4K777 644
+ \\9739T 936
+ \\JJ433 755
+ \\88688 43
+ \\3TJ33 988
+ \\J37K3 628
+ \\3KK3T 583
+ \\A433J 195
+ \\89K46 262
+ \\JKKQK 545
+ \\7AA27 437
+ \\977T8 828
+ \\757Q7 759
+ \\7T7A8 805
+ \\33336 19
+ \\KJKKK 118
+ \\44445 586
+ \\84Q8K 205
+ \\439K3 909
+ \\6J663 762
+ \\33777 975
+ \\9AAQA 564
+ \\JJ8JJ 91
+ \\24555 696
+ \\62644 707
+ \\AA3J5 31
+ \\6T2KQ 135
+ \\24244 34
+ \\3QK3K 560
+ \\9J3T9 787
+ \\7QTA8 705
+ \\A22JA 528
+ \\84844 537
+ \\87667 937
+ \\QJ5K4 90
+ \\2K326 239
+ \\59878 421
+ \\7J377 536
+ \\857K7 350
+ \\2K2A2 704
+ \\39T9T 493
+ \\QKT86 829
+ \\3AQJT 714
+ \\7AAAJ 600
+ \\9QK56 983
+ \\35K33 193
+ \\89888 589
+ \\TQ477 432
+ \\777K7 59
+ \\86AQJ 17
+ \\QQQJ3 407
+ \\68K25 166
+ \\32288 748
+ \\TKTQK 65
+ \\J9K56 530
+ \\AA323 960
+ \\27266 112
+ \\22722 675
+ \\73367 497
+ \\Q7JJ3 16
+ \\444T4 438
+ \\22323 74
+ \\3QQ6K 348
+ \\A68J8 454
+ \\42K64 367
+ \\3AA7J 889
+ \\AT492 398
+ \\AAA6A 673
+ \\2Q9QQ 95
+ \\A7477 815
+ \\4A8KA 444
+ \\6JJ66 893
+ \\84445 429
+ \\7997J 101
+ \\A5A6A 958
+ \\K27A2 486
+ \\4A4J4 327
+ \\464TJ 434
+ \\5554J 766
+ \\KTKT8 801
+ \\573K5 64
+ \\JKK88 522
+ \\A9999 291
+ \\T787T 338
+ \\39648 502
+ \\46464 733
+ \\AQAAA 357
+ \\8TTTT 797
+ \\64444 515
+ \\8588T 53
+ \\AKAKK 617
+ \\8AJ99 888
+ \\3TAAJ 874
+ \\338Q3 694
+ \\TT443 578
+ \\86227 419
+ \\9J9JQ 736
+ \\22522 943
+ \\823J3 866
+ \\24444 519
+ \\A7A7A 207
+ \\5JJ99 36
+ \\K2896 250
+ \\66A5J 129
+ \\JJJJJ 668
+ \\8J548 721
+ \\J8J63 385
+ \\3Q442 79
+ \\8K868 141
+ \\AAA67 767
+ \\T968K 289
+ \\5QJ5K 245
+ \\TKQK5 96
+ \\54774 122
+ \\89666 568
+ \\95596 538
+ \\9K3J4 380
+ \\66665 20
+ \\7759A 209
+ \\6JTA6 702
+ \\29574 88
+ \\AA6A4 181
+ \\Q28T4 152
+ \\777KQ 386
+ \\47888 271
+ \\K8KKQ 738
+ \\J7337 162
+ \\JQA88 820
+ \\QQ4QQ 276
+ \\TKKTT 728
+ \\JTKTK 316
+ \\3J334 684
+ \\9944Q 830
+ \\8485A 753
+ \\JKKJ8 221
+ \\A9QJ6 948
+ \\KJ3KQ 727
+ \\Q5QQQ 695
+ \\Q8QTQ 542
+ \\2QQQ8 119
+ \\JJ55Q 845
+ \\52725 950
+ \\QAJ33 808
+ \\JAA7J 557
+ \\Q22AA 183
+ \\Q8Q8Q 661
+ \\J55JT 410
+ \\KKQJJ 901
+ \\Q5455 539
+ \\AQJJ9 956
+ \\7QJ7T 896
+ \\K5KKJ 994
+ \\388KK 822
+ \\2QQ2K 218
+ \\3J4K3 285
+ \\256K7 923
+ \\K2KKA 157
+ \\QQTKQ 139
+ \\48TTT 1
+ \\TTT44 770
+ \\JJ777 898
+ \\Q466K 117
+ \\TQ4QQ 172
+ \\43333 883
+ \\855T3 324
+ \\8T933 645
+ \\579K9 347
+ \\A76Q4 729
+ \\3TTT3 115
+ \\QJAQA 928
+ \\65T65 541
+ \\77A7A 625
+ \\29J9J 472
+ \\TKT74 926
+ \\A934K 643
+ \\JT533 199
+ \\TT4AJ 216
+ \\KKKK6 55
+ \\6J3K5 676
+ \\398J3 18
+ \\778K8 653
+ \\79773 406
+ \\25446 606
+ \\54323 76
+ \\2T992 601
+ \\8A888 241
+ \\9AJQK 509
+ \\3Q3QK 739
+ \\KKKK8 667
+ \\JJ494 590
+ \\83JKT 203
+ \\J9957 751
+ \\JJAQQ 296
+ \\4835Q 301
+ \\333T3 722
+ \\KKK2K 535
+ \\8Q2QJ 378
+ \\5J396 652
+ \\TQ7J8 624
+ \\5JJ22 447
+ \\TT777 62
+ \\TTJT7 60
+ \\TA2QT 626
+ \\T3Q79 791
+ \\K6QQ8 294
+ \\28K52 967
+ \\6K374 663
+ \\7877A 495
+ \\24226 352
+ \\88KAK 907
+ \\J242T 546
+ \\K77JT 465
+ \\Q77Q5 863
+ \\TQTQT 284
+ \\49K62 26
+ \\6TTT8 569
+ \\Q77QQ 779
+ \\99T6T 70
+ \\K4AKA 130
+ \\J5TT5 979
+ \\KQJT8 175
+ \\96K99 648
+ \\A56J3 422
+ \\53585 58
+ \\6QJTQ 794
+ \\9QJ77 388
+ \\88944 235
+ \\55A2Q 780
+ \\9Q992 297
+ \\96699 660
+ \\682QJ 865
+ \\6TTTK 799
+ \\Q47QQ 358
+ \\2929K 920
+ \\J5535 752
+ \\T3383 631
+ \\6737Q 894
+ \\9QT72 440
+ \\844J9 470
+ \\6AA6A 211
+ \\5AA5A 981
+ \\8KJ88 49
+ \\55855 93
+ \\5J495 261
+ \\8QQQ5 629
+ \\J4493 860
+ \\ATTKA 818
+ \\77264 877
+ \\55K58 365
+ \\QQ666 106
+ \\238T6 459
+ \\77QQK 848
+ \\5757A 233
+ \\84AT3 951
+ \\TT7TT 642
+ \\72236 345
+ \\TQ333 760
+ \\77744 720
+ \\QQ4QK 478
+ \\Q82A2 506
+ \\AJ3AA 942
+ \\JJ958 526
+ \\AJ4A4 341
+ \\A26J8 742
+ \\5TK28 871
+ \\865J3 136
+ \\66A6A 556
+ \\Q4A55 552
+ \\K8429 37
+ \\7QQ9Q 442
+ \\323J5 375
+ \\6J456 608
+ \\73Q6A 424
+ \\8QQ68 976
+ \\J9KA7 286
+ \\Q5Q5J 418
+ \\74472 154
+ \\KKQT9 637
+ \\Q8Q88 574
+ \\7543A 190
+ \\KA87J 456
+ \\2877K 635
+ \\J76A4 330
+ \\83Q69 128
+ \\A88A8 377
+ \\9999K 630
+ \\J698Q 878
+ \\67777 243
+ \\A232A 844
+ \\8K66J 835
+ \\QJ36A 420
+ \\22QQ6 782
+ \\3339K 677
+ \\K72QK 563
+ \\86777 307
+ \\323JJ 972
+ \\955KQ 826
+ \\33443 259
+ \\88Q88 897
+ \\85778 939
+ \\7T268 356
+ \\5T85J 861
+ \\833J8 387
+ \\4AA4A 7
+ \\QTQJJ 725
+ \\TT36T 395
+ \\6KJAJ 520
+ \\5J525 473
+ \\T88JT 182
+ \\44T66 173
+ \\Q75A8 251
+ \\K777A 985
+ \\88T33 905
+ \\99575 949
+ \\62222 186
+ \\22923 492
+ \\J4Q42 706
+ \\AA872 500
+ \\JA895 153
+ \\TT562 295
+ \\34434 854
+ \\2222J 881
+ \\69K46 882
+ \\TK74J 274
+ \\T46TT 548
+ \\K54KJ 164
+ \\9999Q 184
+ \\3QTJJ 400
+ \\8QK59 41
+ \\994Q9 1000
+ \\347J4 581
+ \\Q7289 138
+;