Camel Cards

Advent of Code 2023 [Day 7]

07-12-2023

Your all-expenses-paid trip turns out to be a one-way, five-minute ride in an airship. (At least it’s a cool airship!) It drops you off at the edge of a vast desert and descends back to Island Island.

“Did you bring the parts?”

You turn around to see an Elf completely covered in white clothing, wearing goggles, and riding a large camel.

“Did you bring the parts?” she asks again, louder this time. You aren’t sure what parts she’s looking for; you’re here to figure out why the sand stopped.

“The parts! For the sand, yes! Come with me; I will show you.” She beckons you onto the camel.

After riding a bit across the sands of Desert Island, you can see what look like very large rocks covering half of the horizon. The Elf explains that the rocks are all along the part of Desert Island that is directly above Island Island, making it hard to even get there. Normally, they use big machines to move the rocks and filter the sand, but the machines have broken down because Desert Island recently stopped receiving the parts they need to fix the machines.

You’ve already assumed it’ll be your job to figure out why the parts stopped when she asks if you can help. You agree automatically.

Because the journey will take a few days, she offers to teach you the game of Camel Cards. Camel Cards is sort of similar to poker except it’s designed to be easier to play while riding a camel.

In Camel Cards, you get a list of hands, and your goal is to order them based on the strength of each hand. A hand consists of five cards labeled one of A, K, Q, J, T, 9, 8, 7, 6, 5, 4, 3, or 2. The relative strength of each card follows this order, where A is the highest and 2 is the lowest.

Every hand is exactly one type. From strongest to weakest, they are:

Hands are primarily ordered based on type; for example, every full house is stronger than any three of a kind.

If two hands have the same type, a second ordering rule takes effect. Start by comparing the first card in each hand. If these cards are different, the hand with the stronger first card is considered stronger. If the first card in each hand have the same label, however, then move on to considering the second card in each hand. If they differ, the hand with the higher second card wins; otherwise, continue with the third card in each hand, then the fourth, then the fifth.

So, 33332 and 2AAAA are both four of a kind hands, but 33332 is stronger because its first card is stronger. Similarly, 77888 and 77788 are both a full house, but 77888 is stronger because its third card is stronger (and both hands have the same first and second card).

To play Camel Cards, you are given a list of hands and their corresponding bid (your puzzle input). For example:

32T3K 765
T55J5 684
KK677 28
KTJJT 220
QQQJA 483

This example shows five hands; each hand is followed by its bid amount. Each hand wins an amount equal to its bid multiplied by its rank, where the weakest hand gets rank 1, the second-weakest hand gets rank 2, and so on up to the strongest hand. Because there are five hands in this example, the strongest hand will have rank 5 and its bid will be multiplied by 5.

So, the first step is to put the hands in order of strength:

Now, you can determine the total winnings of this set of hands by adding up the result of multiplying each hand’s bid with its rank (765 * 1 + 220 * 2 + 28 * 3 + 684 * 4 + 483 * 5). So the total winnings in this example are 6440.

Find the rank of every hand in your set. What are the total winnings?

To make things a little more interesting, the Elf introduces one additional rule. Now, J cards are jokers - wildcards that can act like whatever card would make the hand the strongest type possible.

To balance this, J cards are now the weakest individual cards, weaker even than 2. The other cards stay in the same order: A, K, Q, T, 9, 8, 7, 6, 5, 4, 3, 2, J.

J cards can pretend to be whatever card is best for the purpose of determining hand type; for example, QJJQ2 is now considered four of a kind. However, for the purpose of breaking ties between two hands of the same type, J is always treated as J, not the card it’s pretending to be: JKKK2 is weaker than QQQQ2 because J is weaker than Q.

Now, the above example goes very differently:

32T3K 765
T55J5 684
KK677 28
KTJJT 220
QQQJA 483

With the new joker rule, the total winnings in this example are 5905.

Using the new joker rule, find the rank of every hand in your set. What are the new total winnings?

func SameScore(char rune, joker bool) uint {
	switch char {
	case 'A':
		return 14
	case 'K':
		return 13
	case 'Q':
		return 12
	case 'J':
		if joker {
			return 1
		}
		return 11
	case 'T':
		return 10
	case '9':
		return 9
	case '8':
		return 8
	case '7':
		return 7
	case '6':
		return 6
	case '5':
		return 5
	case '4':
		return 4
	case '3':
		return 3
	case '2':
		return 2
	default:
		return 0
	}
}

type Hand struct {
	Cards [5]rune
	Bid   uint
}

func (h *Hand) GetMatches(joker bool) uint {
	counts := make(map[rune]int)
	for _, r := range h.Cards {
		counts[r]++
	}

	if joker {
		for counts['J'] > 0 {
			vMaxNotJoker := -1
			var card rune
			for k, v := range counts {
				if k == 'J' {
					continue
				}
				if v > vMaxNotJoker {
					vMaxNotJoker = v
					card = k
				}
			}
			counts['J']--
			counts[card]++
		}
	}

	values := sort.IntSlice{}
	for _, v := range counts {
		values = append(values, v)
	}
	sort.Sort(sort.Reverse(values))

	switch values[0] {
	case 5:
		return 7
	case 4:
		return 6
	case 3:
		if values[1] == 2 {
			return 5
		}
		return 4
	case 2:
		if values[1] == 2 {
			return 3
		}
		return 2
	case 1:
		return 1
	default:
		return 0
	}
}

func (h *Hand) String() string {
	return fmt.Sprintf("Cards: [%s %s %s %s %s], Bid: %d",
		string(h.Cards[0]), string(h.Cards[1]),
		string(h.Cards[2]), string(h.Cards[3]),
		string(h.Cards[4]), h.Bid,
	)
}

type HandList struct {
	Hands []Hand
}

func (l *HandList) GetWinnings(joker bool) uint {
	sort.Slice(l.Hands, func(i, j int) bool {

		matches1 := l.Hands[i].GetMatches(joker)
		matches2 := l.Hands[j].GetMatches(joker)
		if matches1 < matches2 {
			return true
		}
		if matches1 > matches2 {
			return false
		}

		for c := 0; c < 5; c++ {
			card1 := SameScore(l.Hands[i].Cards[c], joker)
			card2 := SameScore(l.Hands[j].Cards[c], joker)
			if card1 < card2 {
				return true
			}
			if card1 > card2 {
				return false
			}
		}

		return true
	})

	winnings := uint(0)
	for i := 0; i < len(l.Hands); i++ {
		winnings += l.Hands[i].Bid * (uint(i) + 1)
	}
	return winnings
}

func (l *HandList) String() string {
	stringList := ""
	for pos, hand := range l.Hands {
		stringList += hand.String() + fmt.Sprintf(", Winnings: %d\n", hand.Bid*(uint(pos)+1))
	}
	return stringList
}

func TestHandList_GetWinnings(t *testing.T) {
	hl := &camelcards.HandList{
		Hands: []camelcards.Hand{
			{
				Cards: [5]rune{'3', '2', 'T', '3', 'K'},
				Bid:   765,
			},
			{
				Cards: [5]rune{'T', '5', '5', 'J', '5'},
				Bid:   684,
			},
			{
				Cards: [5]rune{'K', 'K', '6', '7', '7'},
				Bid:   28,
			},
			{
				Cards: [5]rune{'K', 'T', 'J', 'J', 'T'},
				Bid:   220,
			},
			{
				Cards: [5]rune{'Q', 'Q', 'Q', 'J', 'A'},
				Bid:   483,
			},
		},
	}

	t.Run("Example Test 2", func(t *testing.T) {
		l := hl
		if got := l.GetWinnings(true); got != 5905 {
			t.Errorf("HandList.GetWinnings() = %v, want 5905", got)
		}
	})

	t.Run("Example Test 1", func(t *testing.T) {
		l := hl
		if got := l.GetWinnings(false); got != 6440 {
			t.Errorf("HandList.GetWinnings() = %v, want 6440", got)
		}
	})
}

func main() {
	file, err := os.Open("input.txt")
	if err != nil {
		log.Println(err.Error())
	}
	defer file.Close()
	scanner := bufio.NewScanner(file)

	handList := camelcards.HandList{}
	for scanner.Scan() {
		line := strings.Split(scanner.Text(), " ")
		cards := []rune(line[0])

		bid, err := strconv.Atoi(line[1])
		if err != nil {
			log.Fatalln(err.Error())
		}

		handList.Hands = append(handList.Hands, camelcards.Hand{
			Cards: [5]rune(cards),
			Bid:   uint(bid),
		})
	}

	if err := scanner.Err(); err != nil {
		log.Println(err.Error())
	}

	points1 := handList.GetWinnings(false)
	dump1 := handList.String()
	points2 := handList.GetWinnings(true)
	dump2 := handList.String()
	log.Printf("\n---\n%s---\n%s---\nsum: %d, %d\n", dump1, dump2, points1, points2)
}

If you’re new to Advent of Code, it’s an annual event that takes place throughout December, featuring a series of programming puzzles that get progressively more challenging as Christmas approaches.

Click to show the input
8A7J7 301
QAAT7 677
J3K4K 622
KJJ62 577
49AAA 298
45585 855
33KKK 115
4Q777 438
7KK77 836
5T55T 397
85855 56
Q6Q38 157
AA8AA 85
32J33 293
KKQQA 247
888J4 944
2AJ2K 482
33777 338
KT434 696
K3K63 648
86866 136
93983 584
57857 489
5JJ2Q 76
82335 133
J25T4 559
9TQ2A 211
596J6 926
ATAAA 513
6KKKQ 277
AAA22 554
J2265 332
8Q3QQ 486
6735A 28
Q5555 595
J9888 262
5QQQ2 626
J7777 953
643TA 572
8579Q 99
23294 683
55J54 501
9JK93 567
64388 941
3J8T5 40
29K29 422
JQ4K2 401
AA6A3 78
2KK44 821
9AA2A 884
43434 386
J7A67 177
4JKKT 956
AA999 296
2A2T9 519
9T9KT 342
Q5J5A 19
QJK7A 925
AA9AA 337
4T2QT 751
77888 324
343QT 914
33229 576
J5Q5Q 169
22952 620
J4444 17
T9JTT 172
48888 729
28522 138
66363 302
68TTJ 778
5Q885 66
24KJ3 229
5A68K 731
A79A7 906
QQQAQ 698
J34AJ 109
TTTTJ 503
3J528 183
5A5AA 598
5AAAA 782
TT77J 968
24Q62 178
T6K7A 811
99788 53
494K6 560
7JQ87 327
Q9QQQ 597
496Q2 392
2252K 995
Q85TA 2
KT66Q 165
383T6 509
9997Q 724
4TT4T 368
35TQA 707
33534 24
KKKJ4 469
A9TAA 830
A445A 481
3Q63Q 192
AATAT 680
2225J 436
Q4869 471
A4JA4 330
5K35T 545
TK3A4 877
8K62J 596
9Q7T8 582
898KK 813
5AJJA 504
T5TKQ 289
6T88Q 359
A8AAJ 526
393J3 817
Q2Q22 212
Q8Q22 89
265T8 757
Q2584 807
T33TT 853
T22TA 391
46999 61
9AA9J 57
6T538 674
3T253 271
63TAJ 395
34943 323
6QQQQ 497
TA75K 938
4T467 141
36AQK 197
884A4 228
77277 453
AQ854 50
Q56QJ 456
T4TKT 319
K63Q4 30
79793 110
AJKQ6 421
22278 996
222TT 357
42J74 647
Q4QAT 634
66574 951
2KK22 446
Q65Q3 533
77887 267
58533 719
287K9 51
Q5656 199
564AQ 106
QJ579 77
9732T 46
JAK23 808
688K8 364
A993A 651
Q9QQ9 93
74777 929
QT722 723
76QAQ 621
8K836 573
77557 783
A5555 65
TTT6T 643
83595 933
J3J97 734
JTTA3 87
TTAQA 282
A555A 765
4TQTT 538
T777Q 763
T82J9 63
83359 213
AQQAQ 363
47AT9 311
96A9T 310
K5TK5 450
ATKK8 429
7K777 541
5TJAK 987
KAQ73 687
TTATA 874
J4TJ2 857
666KK 204
AA777 990
J98A8 946
7A95A 288
3K2K3 820
79K42 112
A65KT 300
596T8 266
J5664 585
75585 964
73AT2 491
2J2KT 375
6888T 480
A5765 992
KK555 224
AT2TA 514
TTTTQ 753
Q4348 273
KK66K 887
44JQ9 67
Q339Q 341
833Q8 574
K456T 766
J98KK 209
K4644 328
43935 79
8848K 380
K22A2 834
8654Q 703
4K2AT 96
K276J 863
8K64J 320
AAA7A 571
72747 950
4A4Q9 120
66636 814
33637 881
KK2AK 895
J8677 851
A48A8 430
56656 866
55355 976
66J77 370
3353J 896
56556 237
3KJ5Q 270
J22J2 261
AJ2AA 163
JJJJJ 517
48A28 819
K4443 799
TJTJ5 345
T3K9J 868
49AJ9 605
45455 741
KJJKK 754
63333 789
76677 989
AJ774 264
JKJ2A 531
TQQQT 809
Q6KJ6 411
KQK7Q 704
2A4Q5 410
68KK8 652
8K938 194
72J22 242
9J672 43
7Q6Q5 903
64666 95
J2372 798
A263T 781
JK598 909
55J92 625
A2567 343
4A7A7 174
8KA3J 68
JQTQ3 528
74444 127
QA5AT 306
T9K7T 254
75TT7 166
83388 325
888Q8 982
8Q7A6 84
2K7JA 663
T9959 937
3KA87 921
4KJ92 786
28A83 442
99T8J 699
TKKKK 457
25552 431
TTATK 862
QJQKK 664
QJQQ9 552
T4J77 206
Q7777 352
QJ747 534
9K9KK 656
44646 479
5T64Q 455
QQQQK 475
73478 827
Q3J33 975
Q655Q 930
7T7T7 231
53A72 409
3333A 833
29928 787
97J58 307
T2555 673
Q44A5 382
J5A57 144
7J447 131
8KK99 600
99555 349
43682 205
63259 518
AA3A8 591
J444J 58
52J23 772
5KK3K 660
5KT2K 329
54K6K 252
49J24 864
673Q5 780
TT848 333
227A5 424
JT9J5 675
7K9QJ 825
732Q7 461
24343 859
TJ333 604
T33AJ 149
KJ5KK 129
54555 249
25222 3
TQJA3 38
7Q7Q7 460
999J4 557
J6766 831
K4KKK 185
363K3 566
K888J 885
55855 488
97979 565
2597T 493
77456 233
Q9Q5Q 202
99K23 98
63763 7
TQ498 849
74626 590
K44KK 73
9AA97 498
Q6696 706
95555 697
69969 670
JQ294 203
24246 425
6QJ6A 16
AQAAA 916
6K6JK 313
9AK99 41
4T6J5 219
6Q6T6 549
96999 983
79977 522
57Q8A 732
AQ6AQ 156
284Q6 351
K88KJ 123
57A8A 606
4J97Q 592
5JTQ3 369
A467T 742
2878J 669
KKAJ6 668
T5TTT 570
8AA88 665
3238A 428
67286 979
88585 997
T6866 132
88T83 912
68888 832
A95TK 371
T8Q33 167
333K8 286
KK888 722
7TAK7 281
A7J77 216
9T85Q 969
54444 918
77822 151
9KJ2T 759
Q8483 536
9JJA9 788
J8Q8T 272
27KJQ 958
76666 671
5T932 182
887T4 628
6499T 607
447Q4 718
9736J 716
AQJAQ 611
T4933 690
3TJAJ 923
K7722 412
77737 22
775AQ 812
5QKQ5 362
448T8 114
A7A7A 502
4Q466 583
74744 749
7363J 939
88388 59
Q3KQT 861
42222 794
96669 294
54959 378
TTTTA 544
796JA 867
92KK9 238
9TJT9 848
8A2A2 309
687K3 515
KTKKT 610
J8659 210
22K4K 423
586Q9 55
AAA7K 599
33J73 198
K74KJ 936
55JJ5 943
Q6QJQ 801
5435J 137
QJ5QQ 553
AAA78 485
67676 404
34K33 376
8Q32J 326
A66KA 649
52K8Q 179
A32A2 561
JTQJQ 645
59KK7 11
6763Q 189
KKK88 426
8KTJ8 681
2222T 767
KK5J7 372
QQQ57 942
7A72J 904
2222J 467
7KQQQ 186
J3993 629
73437 952
8A37T 771
966J9 752
4KT29 710
82378 840
4QT72 785
3629T 934
JTK77 977
KKQ33 915
4242A 744
TQA9A 215
A6666 854
23333 170
TTT9T 587
J3377 34
6JJ66 835
A3AAA 897
96936 427
8JJJ4 686
32332 173
QJ868 640
67388 111
88988 613
4TJTT 435
T988T 702
K59K5 894
Q8Q88 688
5Q847 347
9J599 154
958K6 462
AAQQA 959
JKJKQ 846
7992T 72
9899A 510
22Q22 389
939J7 971
J4K4A 367
TT7TQ 816
KKKT3 297
97KK6 793
7QQQ7 824
ATQQA 102
J597K 797
78J88 473
87A87 42
828A7 527
K8777 107
8963J 949
29399 998
3TKA8 190
3TQ66 889
JJ5T5 985
J566T 568
T38K2 815
2J5KA 646
A8J32 184
622Q6 777
TK7QT 26
47766 790
2J5Q6 932
9K969 878
82235 64
3A3JK 152
49494 540
7JJJ7 350
39233 437
5466Q 239
Q3QQQ 961
A8J5Q 623
Q3333 739
4T396 90
25T2J 284
TK7T3 9
5555K 993
J2666 383
22292 250
J5T95 478
22T29 226
24242 126
99939 121
73373 414
78Q92 738
A5362 826
3KK2J 756
77877 291
T9TT9 879
3JJTT 145
3T363 524
6Q6QQ 619
Q2QQQ 8
8J58J 967
65KJK 398
KTA2T 464
T7JJJ 922
44888 948
2KJ2K 755
63858 353
49K4T 483
5833J 180
62822 105
99JK9 635
QAJAA 962
977T5 691
655KK 274
9966A 393
55J5T 303
284K5 589
27636 872
K29KK 774
K9JJ4 792
6JKTT 108
TK8TJ 745
T3A7K 400
9J3TQ 901
ATJKK 917
666A5 448
A5AT6 588
6T4J6 822
Q9A9A 260
594J3 241
Q3A34 279
A9999 220
7AQQ9 49
737Q3 999
JQQ8Q 882
78977 399
53333 689
2K2JQ 25
34848 800
2585T 334
5T799 908
69864 644
659TK 278
J4363 633
T9J97 101
QJ94T 615
363J6 373
J777J 379
99J93 966
TT26T 312
TA8T8 870
3J535 245
86A63 283
2KTK2 508
Q9Q2Q 162
59QJT 667
6JJKQ 71
55J25 200
89993 980
45474 581
Q4394 159
45697 346
KK99Q 496
J3J53 466
3QQ3Q 348
7843J 612
T733K 164
42589 818
Q9K36 232
QQ22Q 762
5AA3J 287
48KKK 449
7QQQJ 248
K5KJA 616
KQ387 965
Q4898 12
A3T9Q 227
K7KTT 269
JTJ22 768
85K88 875
6T666 624
97K7Q 586
7854J 804
T4TTT 609
8T44T 415
3T3KK 601
5AAAJ 258
8555K 828
4Q8JQ 593
JT823 396
J9K96 838
55565 632
7J77T 713
36353 578
5Q962 529
5KQ9T 181
82697 627
66654 88
7747J 919
A3AAJ 441
569KJ 805
TTQJ5 445
444T4 661
29959 37
62J26 955
Q4JT5 214
KQA4T 44
24424 758
2Q4AK 222
729A4 195
4Q35T 928
329T8 551
6T5T5 33
T25Q9 978
9Q9J9 407
A4KT7 911
27397 603
4244Q 490
JA255 384
2AAJ2 876
6222K 125
AA46A 360
J4343 672
JAJQ9 880
888J2 468
Q5K9J 268
A85Q9 387
J4A35 705
66A64 97
QAQQ8 700
55TJ4 31
88J58 650
693AK 679
259K2 806
9998J 176
6822T 235
9J699 913
7QQQQ 602
T7T4T 317
6226T 725
JJ9J9 316
55575 761
A6A66 796
K9T29 764
33334 608
KKK7K 893
99988 579
J8JJJ 259
4AJ89 390
9QQ84 14
9KJ3K 580
77736 433
KK22K 555
755J2 940
4JA9A 492
9Q555 484
6J687 542
99K53 910
6236J 36
9J999 54
6663J 454
85JJK 122
966J3 171
QJ2KK 747
KJA2A 676
788J5 858
78833 218
6KJ6J 308
T75AT 318
7JQ36 728
AJ8TA 354
96KTQ 899
52993 402
9K5AJ 898
Q7JQJ 748
5Q5QQ 48
A5858 148
85888 988
2TJ82 556
9AJK4 843
TJ26Q 406
2296K 356
22K22 18
KJ6KQ 253
T444T 117
6T257 715
AA444 113
39737 693
877QQ 521
TK454 735
38QA8 562
KT4A4 984
JKKKK 920
666J6 452
8JAJT 280
A62QJ 945
868TT 243
KQ66K 511
J3J33 512
T9K9K 160
66TT3 537
J3T48 234
44999 158
9876A 666
JJ73Q 546
85A3Q 20
3333K 750
6AJ73 381
Q3Q58 637
69644 654
J6669 641
8K2KK 733
33535 447
32K56 153
TA94Q 994
7979A 543
Q663Q 432
KQJ7Q 516
66K65 6
484T4 991
88387 15
96229 21
7AK62 499
88KK7 618
3K344 69
6A6KK 569
22J24 784
QKT53 837
7K2KK 1
87T95 810
2228Q 82
Q66AQ 548
J6Q66 366
5J42Q 465
8QQJ8 246
JAAKJ 630
5TT99 408
5T7Q6 779
768A7 631
22262 201
664AA 104
A96A6 128
T666K 5
3984K 684
3335K 208
79A77 891
K7K76 285
AQ8A6 678
36535 130
JT443 760
477T9 547
48A33 532
AA66A 321
56666 776
3AQKJ 888
K6Q68 83
2J727 902
3TT33 339
85Q6T 714
QT333 717
7T74T 335
J3A85 974
8J888 617
K974K 802
8777Q 947
A9Q6K 175
77757 75
7JA22 458
3K499 791
98TTJ 256
5555J 505
QTQQJ 70
T232T 506
Q9999 907
J4A88 74
A4K58 191
K3888 263
2QJ22 23
3368Q 155
QKKKQ 743
JK222 139
KQ84Q 905
T25T2 91
Q9TJJ 844
QQ8Q8 720
335KK 355
29T76 963
39AQ6 292
27222 276
88JJ8 388
52A22 134
7A95Q 86
7TTTA 314
9642K 187
A33A3 416
6Q66Q 92
93A23 403
77722 523
33J34 196
J8333 639
K8TJ5 736
222AA 116
JT3TT 970
87A65 225
82555 459
22JT2 255
Q2223 972
K63JA 143
8AQ86 653
JJ3J9 614
3A77A 365
KK9KT 47
5T959 385
7JKQ4 477
497T3 711
34A33 770
57557 869
777KJ 193
KKK5Q 892
9Q299 230
34J83 795
3KTTQ 692
66696 695
57472 960
77J26 841
TAT2T 685
33969 662
9Q393 295
QKQ88 142
TTT98 32
25555 374
265QK 924
JAAJA 440
9999K 257
346KT 500
JJ299 535
QJ4KA 135
7A422 305
A2T85 773
4T69J 52
73Q8A 463
KK6KK 420
8Q7QJ 251
QQK3K 168
66644 150
44424 444
84T53 299
AKAAK 240
6A952 35
Q5875 217
22888 829
38589 642
94848 417
32222 727
966Q9 27
JQ9QT 336
52K2T 886
J7787 721
AAQ3A 147
6K823 957
6668Q 839
AAA88 39
KJ33K 4
J5J5J 419
2A7T9 275
4A777 470
7KK7K 377
99992 418
93TA8 865
95T34 709
K34JA 322
94674 658
AJAA7 45
JQ22A 304
K83Q2 13
A6923 439
98977 331
689J6 769
99953 931
QQQJQ 94
J5AA5 871
TJTJT 413
ATA28 530
6T66T 564
KAKKK 873
T43QQ 657
TTTT2 563
9898J 118
QQQQ8 659
99997 236
88826 188
6KKK5 394
2QQJ2 495
8T864 900
888K8 655
28KQ4 361
33732 472
AA2A7 845
TTT7T 726
68A84 852
3KKKK 161
343Q2 358
75792 476
AAAJA 550
KK9A9 558
72569 737
4AT33 708
KKKQ9 119
8JJJ6 315
78A77 850
JJQJ7 140
3A5A5 740
78278 344
Q4Q44 103
44JA4 146
74T95 636
2A2AT 507
TK5Q5 474
7T982 712
AJ378 1000
75858 494
AAA99 746
72T94 981
TT77T 803
393K3 124
T8T95 265
AJA66 244
AA4TA 207
44777 638
68QT2 973
9K628 340
7595K 443
9A949 682
KJKTT 954
23T26 100
5KJ5T 434
66626 81
K33K3 856
J7555 525
JQJJ5 60
868J6 935
22299 823
J4445 539
9KKK7 890
JAA48 80
755Q5 520
4JQQJ 223
997T9 405
8A888 575
K369T 730
A5565 847
39JQ4 29
QQQJJ 694
86789 860
333J3 10
9A94A 221
J99JT 62
87888 701
AA6A2 290
T5QK4 775
35354 927
323Q3 451
25TA5 883
2954J 487
376J6 594
2K975 842
AAAA6 986