diff --git a/AdventOfCode/AdventOfCode.csproj b/AdventOfCode/AdventOfCode.csproj
index d323b8e..19aa473 100644
--- a/AdventOfCode/AdventOfCode.csproj
+++ b/AdventOfCode/AdventOfCode.csproj
@@ -52,6 +52,9 @@
+
+
+
diff --git a/AdventOfCode/Problems/AOC2023/Day7/CamelCards.cs b/AdventOfCode/Problems/AOC2023/Day7/CamelCards.cs
new file mode 100644
index 0000000..bf8aeaf
--- /dev/null
+++ b/AdventOfCode/Problems/AOC2023/Day7/CamelCards.cs
@@ -0,0 +1,36 @@
+using AdventOfCode.Runner.Attributes;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AdventOfCode.Problems.AOC2023.Day7;
+[ProblemInfo(2023, 7, "Camel Cards")]
+internal class CamelCards : Problem
+{
+ private CamelHand[] _hands = [];
+ private CamelHand[] _jokerHands = [];
+
+ public override void LoadInput()
+ {
+ var data = ReadInputLines("input.txt");
+ _hands = data.Select(d => new CamelHand(d)).ToArray();
+ _jokerHands = data.Select(d => new CamelHand(d, true)).ToArray();
+ }
+
+ public override void CalculatePart1()
+ {
+ var x = _hands.Order();
+ Part1 = x.Select((h, i) => (i + 1) * h.Bid).Sum();
+ }
+
+ public override void CalculatePart2()
+ {
+ var x = _jokerHands.Order().Print();
+ //x.Where(x => x.Hand.Contains('J')).Print();
+ Part2 = x.Select((h, i) => (i + 1) * h.Bid).Sum();
+ }
+
+}
diff --git a/AdventOfCode/Problems/AOC2023/Day7/CamelHand.cs b/AdventOfCode/Problems/AOC2023/Day7/CamelHand.cs
new file mode 100644
index 0000000..9352765
--- /dev/null
+++ b/AdventOfCode/Problems/AOC2023/Day7/CamelHand.cs
@@ -0,0 +1,106 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AdventOfCode.Problems.AOC2023.Day7;
+internal class CamelHand : IComparable
+{
+ public static readonly List CARDS = [ '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K', 'A' ];
+ public static readonly List CARDS_JOKER = [ 'J', '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'Q', 'K', 'A' ];
+
+ public string Hand { get; set; }
+ public int Bid { get; set; }
+ public int Value { get; set; }
+ public HandType Type { get; set; }
+ public CamelHand(string data, bool useJoker = false)
+ {
+ var split = data.Split(' ');
+ Hand = split[0];
+ Bid = int.Parse(split[1]);
+ Type = useJoker ? GetJokerHandType(Hand) : GetHandType(Hand);
+ Value = CalculateValue(Hand, useJoker);
+ }
+
+ public static int CalculateValue(string hand, bool useJoker)
+ {
+ var total = 0;
+ for (int i = 0; i < hand.Length; i++)
+ {
+ var p = (hand.Length - i - 1);
+ var v = useJoker ? CARDS_JOKER.IndexOf(hand[i]) : CARDS.IndexOf(hand[i]);
+ total += (v + 1) * (int)Math.Pow(13, p);
+ }
+ return total;
+ }
+
+ public bool IsStrongerThan(CamelHand card)
+ {
+ if (Type > card.Type)
+ return true;
+ if(Type < card.Type)
+ return false;
+
+ return Value >= card.Value;
+ }
+
+ private static HandType GetJokerHandType(string hand)
+ {
+ var type = GetHandType(hand);
+ if (type == HandType.FiveOfKind)
+ return type;
+
+ if (!hand.Contains('J'))
+ return type;
+ var bestCard = hand.GroupBy(c => c)
+ .OrderByDescending(c => c.Count())
+ .First(c => c.Key != 'J').Key;
+
+ var newHand = hand.Replace('J', bestCard);
+ return GetHandType(newHand);
+ }
+ private static HandType GetHandType(string hand)
+ {
+ var cardGroups = hand.GroupBy(c => c).Select(g => g.Count()).ToArray();
+
+ if (cardGroups.Length == 1)
+ return HandType.FiveOfKind;
+ if(cardGroups.Contains(4))
+ return HandType.FourOfKind;
+ if (cardGroups.Contains(3) && cardGroups.Contains(2))
+ return HandType.FullHouse;
+ if(cardGroups.Contains(3))
+ return HandType.ThreeOfKind;
+
+ var pairs = cardGroups.Count(c => c == 2);
+ if (pairs == 2)
+ return HandType.TwoPair;
+ if (pairs == 1)
+ return HandType.OnePair;
+
+ return HandType.HighCard;
+ }
+
+ public int CompareTo(CamelHand? other)
+ {
+ if(other == null) return 1;
+ return IsStrongerThan(other) ? 1 : -1;
+ }
+
+ public override string ToString()
+ {
+ return $"[{Value}] {Hand}: {Type} | {Bid}";
+ }
+
+ public enum HandType
+ {
+ HighCard,
+ OnePair,
+ TwoPair,
+ ThreeOfKind,
+ FullHouse,
+ FourOfKind,
+ FiveOfKind
+ }
+}
diff --git a/AdventOfCode/Problems/AOC2023/Day7/input.txt b/AdventOfCode/Problems/AOC2023/Day7/input.txt
new file mode 100644
index 0000000..2efa139
--- /dev/null
+++ b/AdventOfCode/Problems/AOC2023/Day7/input.txt
@@ -0,0 +1,1000 @@
+QTTQK 749
+JQAA2 148
+37J44 319
+559J5 647
+92992 659
+55AA5 58
+KKTT8 629
+3J38J 562
+87QQQ 434
+55A55 520
+T777T 813
+76T8T 841
+8989A 649
+88Q44 857
+Q4444 362
+T4Q23 369
+AAQQA 812
+34JTQ 635
+QQA44 553
+78787 286
+K963A 63
+27T98 25
+6767A 929
+TT8TK 343
+5566J 496
+A7339 618
+28J8A 641
+Q688J 118
+6JJ46 131
+66436 473
+TK3QK 482
+5454T 724
+TTQQT 74
+ATATA 41
+4523Q 676
+642T4 599
+2A6KQ 203
+J6666 926
+J9999 325
+22232 455
+42444 757
+TTK2T 904
+QQQQ2 879
+6AT32 559
+Q4AT5 456
+66699 106
+AQ248 570
+26676 947
+K4T35 726
+A2KKA 167
+46646 679
+33882 582
+52A66 249
+252K5 293
+84449 920
+J4988 682
+8TTT3 384
+95733 832
+2JKTK 707
+85563 799
+A5A57 359
+77TTA 175
+28222 468
+J2TAK 758
+8T656 833
+9J799 327
+223T8 587
+4K692 512
+Q3JQQ 61
+KQ538 650
+KKKK6 937
+6KK99 532
+7JJ77 810
+3TT33 865
+78J78 710
+A5A54 979
+Q4663 275
+7A837 16
+KKJ5K 102
+AAAA5 753
+T6K65 554
+Q7788 185
+8Q5J4 29
+27672 677
+JQJQQ 983
+57557 6
+KK592 49
+44669 489
+AA99J 56
+T6866 472
+QQ8JJ 542
+9KK99 28
+Q22Q2 893
+K3978 581
+954A5 306
+27377 34
+KKK3J 763
+TT5JQ 708
+Q4796 593
+AAJA6 467
+4TA83 817
+J7JKJ 767
+4TKJJ 671
+Q8KTK 709
+A377A 256
+JJKAA 138
+QKKKK 215
+A8TT7 132
+5JTJ7 798
+888Q8 458
+KKK53 66
+77QAA 99
+69AKA 392
+223J9 745
+AA293 844
+45625 995
+TKKQ6 845
+52555 596
+79977 770
+5A36Q 326
+T239K 822
+33373 276
+7QTKJ 769
+J3334 886
+9J439 23
+39Q93 834
+J6J4A 168
+Q59Q5 492
+73T73 375
+3JQ33 480
+82828 560
+96842 741
+4A5T8 288
+A5A22 540
+99T4T 139
+T2J22 271
+36666 71
+J356K 83
+74478 73
+82J6T 625
+AQQQ3 785
+33J55 446
+7536T 205
+72327 216
+Q33Q3 613
+JJ335 644
+89A99 772
+6JJ66 602
+9AK99 21
+56Q76 594
+Q54J5 981
+4K44K 229
+465KK 692
+54356 648
+2T474 101
+88388 906
+K8747 658
+68226 231
+92292 912
+JT55T 377
+8A75K 962
+Q8898 973
+95559 156
+7858Q 984
+QK2K4 792
+KTK4K 942
+6738T 263
+A322A 470
+72KA5 107
+25525 933
+Q7667 487
+K8668 349
+3A3A5 481
+JJ2J2 459
+3QA23 627
+J4443 622
+5525J 787
+K99KK 222
+54353 410
+AJAA8 860
+99K98 444
+4444J 668
+3799K 110
+A4422 67
+QQTQ5 837
+58825 858
+56K2Q 846
+QQ7QK 145
+26KQT 380
+T8QQQ 820
+6TJTT 358
+28J69 549
+A6Q39 958
+95556 871
+TTQ4K 393
+TQ4K8 105
+23678 95
+3TT83 429
+TTKTT 100
+A333A 177
+58535 129
+J696Q 544
+Q3733 900
+4758K 54
+AAAJJ 226
+88J8K 606
+47K22 609
+3KKKK 253
+48A72 65
+Q6529 233
+J88J8 88
+QAAQ9 423
+99894 576
+6J363 781
+688J6 300
+39333 862
+JK433 488
+484JJ 209
+KKK7K 144
+J6AT9 415
+K46TA 853
+J765K 831
+45495 675
+57K47 206
+JQJQA 563
+AAKA7 885
+54J3K 729
+JTT2T 251
+3J47K 189
+88583 691
+JT6A5 696
+92T84 158
+22336 899
+92578 194
+J9Q99 355
+2J322 891
+555JT 478
+43T43 475
+2929J 416
+6J9JJ 966
+7778A 997
+75T46 283
+8T84Q 701
+A7JA2 19
+5QK5Q 142
+26965 201
+K26K2 528
+4T29Q 605
+89QA5 243
+75QQ5 507
+5855J 133
+689A7 440
+2483T 632
+TT44A 598
+7QQQ5 217
+7AAA7 91
+K2K22 590
+K6K66 603
+4K354 171
+37877 922
+2222J 180
+59522 695
+88247 162
+K79J5 584
+AAJJ3 509
+6993T 24
+33344 277
+J26A9 881
+AATAJ 490
+T8TTT 372
+299TT 212
+K44KK 776
+66778 80
+JAAAA 806
+233QQ 435
+64436 197
+5K555 730
+4T3J4 441
+JJTJT 453
+643T9 438
+9J933 5
+4Q8QJ 294
+55955 978
+22JAQ 350
+T2T4Q 600
+TK986 264
+949J4 971
+TQ7T4 653
+Q33QQ 383
+AA9A8 788
+76464 368
+97J95 221
+6QQQJ 882
+6AA26 267
+T5555 722
+53589 657
+66765 721
+7K28Q 186
+KK3K2 22
+3338K 854
+JK796 451
+A3AJ3 850
+2555T 337
+28A4T 38
+A99AA 536
+JA5A5 421
+JJ444 184
+2JAK9 245
+565J7 718
+75Q38 714
+33444 115
+444Q7 47
+539T5 548
+3333J 597
+T4A6A 989
+47777 916
+Q2645 547
+8AT3Q 237
+QT73T 839
+4AK3J 849
+JJJ8J 329
+Q44QJ 48
+QQ444 951
+6296K 897
+99A9A 699
+69656 140
+55565 821
+Q53QA 495
+83333 333
+3T65T 146
+AA4A4 808
+AAKTA 546
+7JTQ2 713
+TQ3TT 700
+68366 903
+9866K 907
+J36Q5 370
+4KA7J 367
+Q5AQQ 585
+63A6A 330
+6A686 522
+AA566 418
+2TTTT 643
+2TA3A 305
+TTJ99 921
+6K258 218
+33553 181
+KKQKJ 568
+22922 902
+J9KTT 836
+58324 934
+94692 964
+AT574 208
+K63T4 535
+JTT7J 116
+3T6J4 875
+63294 404
+8222J 127
+455J5 15
+8626J 2
+77KKK 51
+84A9J 408
+KJT46 967
+QQQQ9 884
+5Q2QQ 50
+66555 397
+45JT8 460
+KT8K8 232
+75K53 932
+A7678 538
+3383J 927
+2957K 959
+77772 409
+454AK 956
+A362J 228
+TTTT7 382
+8J883 660
+99KT9 639
+KK2J6 557
+84444 356
+99296 430
+5Q5JQ 285
+AAA27 972
+5T847 241
+528QJ 260
+92JA7 361
+35T9T 433
+98TQK 530
+82KJ5 727
+A6A6J 527
+8QQ48 615
+QT656 466
+29225 282
+3388J 407
+4AJ44 965
+TT877 69
+22927 311
+74922 526
+34QQ5 661
+4J844 670
+T8J48 426
+QQQ2T 498
+424J2 656
+AAA8T 616
+4JTT2 172
+43T6T 57
+796K9 321
+TT334 163
+TTT59 579
+5555Q 734
+82432 60
+3A236 257
+55544 794
+53777 230
+27KJ5 946
+952TJ 366
+7333J 502
+KAJAK 476
+88688 268
+689TA 463
+3TTKA 111
+8499T 789
+58J35 178
+7T5K8 395
+4AA3J 428
+AJ746 575
+93339 17
+46TT6 801
+3AAAA 855
+KKK8K 335
+7J777 760
+K77K7 281
+A8599 219
+4Q445 867
+59T6A 11
+K3K35 344
+888K8 454
+65T83 112
+J322A 592
+86666 317
+784A5 940
+63696 55
+8A95K 991
+K6966 736
+88QQK 59
+3J397 82
+4AK52 521
+K54KT 254
+TJ357 948
+QK5KK 130
+8T858 43
+38K5A 662
+33KQK 809
+56T66 72
+47373 743
+TAK24 664
+35T33 856
+AA7AA 44
+88Q33 32
+63636 176
+484A2 800
+44T4K 332
+4QQTQ 52
+J88AA 248
+734QT 278
+J6K88 104
+T2T2T 768
+KKKAQ 715
+T7KJ9 89
+87QAT 347
+3344J 720
+Q88Q8 304
+J8K26 373
+3QJ3K 611
+A8888 608
+63K7K 655
+5TQTQ 239
+7J2QJ 399
+4K2K2 432
+8J233 291
+QJ272 388
+999T4 500
+22Q3Q 457
+3A6QQ 869
+A3QQ3 272
+J8Q89 556
+7KK66 550
+3JKJJ 936
+72JTA 752
+7AQ9T 70
+9Q99Q 974
+Q5Q58 376
+QKTTT 954
+TTTJT 939
+KKKQQ 888
+9T4JQ 250
+AAA65 364
+62334 803
+J7Q29 949
+22J52 619
+84344 316
+746T3 589
+3483J 213
+992T2 159
+K322K 807
+Q7T77 78
+T932Q 960
+JQ67J 134
+6Q644 868
+64J92 30
+JTKTT 150
+96T69 351
+TA6J2 694
+37893 870
+7Q95A 346
+TT6J6 825
+77577 443
+TJQQT 892
+9Q9K8 533
+6Q32A 365
+J297J 652
+6J222 843
+899KK 341
+Q449Q 680
+2T4J4 200
+9J33A 259
+86K2T 174
+42433 246
+88555 155
+9J99J 779
+AA55A 552
+Q427T 442
+JJ222 663
+K9K8K 969
+QQJ87 667
+QJ866 508
+QJ445 588
+4TA74 539
+3TT3T 771
+6766J 980
+5J265 780
+88JJ4 982
+JK664 234
+298JQ 1
+Q664K 452
+6J4QT 737
+9A2A2 740
+88AAA 607
+888T9 119
+98494 994
+557T8 14
+T637J 873
+45555 642
+8J353 621
+6J6K6 985
+2897K 617
+74462 301
+JKQ3Q 151
+6J26K 81
+92462 62
+43557 474
+5Q28K 391
+QAKT2 728
+27JJ7 13
+QQ92Q 419
+AAK9T 796
+395A4 449
+55568 580
+QQTTQ 227
+9K995 595
+5AKKJ 905
+AAQQQ 925
+2TQQT 573
+53553 402
+KKK2K 424
+68KKJ 394
+QJ9A3 523
+99QK9 506
+69269 791
+927K3 379
+6Q5KQ 829
+KKKJK 345
+JK9K9 199
+2AA22 387
+5TK8T 863
+J72Q3 445
+7Q4QT 191
+AAKAJ 970
+4QT5J 381
+A3356 126
+TTATT 141
+32A73 851
+66777 610
+T48JQ 917
+3JQ96 447
+3AK98 626
+74QJ6 187
+33363 531
+Q57J8 634
+J66T6 223
+J3J33 732
+T6TTT 501
+777A3 406
+63779 950
+37777 646
+27A85 160
+TKTKT 911
+A9T24 818
+A7A88 534
+97557 398
+37988 503
+J7776 135
+64J34 202
+76JK2 874
+54584 583
+85KKK 85
+7T34A 830
+65T97 910
+9J6A9 46
+3AQ3J 204
+QA73J 693
+222Q2 315
+J2224 98
+T3T99 968
+2A2AA 883
+2824J 804
+67JA9 420
+3Q7T2 322
+7QQ77 551
+7K364 524
+35274 746
+55T77 566
+22752 612
+83855 688
+J8T55 802
+KKKK9 930
+4T888 686
+TTT23 783
+J7773 665
+63K66 328
+QK2J2 518
+99A33 990
+66A66 269
+2552T 471
+2AK3A 778
+5549Q 759
+T888J 195
+4T4T4 390
+AKAK4 400
+A2QK9 880
+96964 614
+J5454 35
+QQ3QQ 840
+58885 952
+44545 40
+QAQ8T 207
+T722T 262
+AA888 828
+TAK3A 750
+2J5QQ 92
+QQJQQ 169
+J6466 310
+A8867 479
+438Q7 774
+8QQQQ 623
+9T992 773
+J2Q36 887
+Q79Q7 165
+2584A 775
+QT857 918
+AJA9A 620
+76645 895
+44JA3 513
+8TT4T 976
+4TT49 79
+QJQQT 975
+777K7 711
+987TA 637
+29478 352
+44434 996
+KJ9KA 124
+AJ688 411
+4JTT3 748
+33K44 324
+KQJ2K 182
+37J3K 284
+99993 761
+J3393 716
+8558J 986
+T56J3 572
+KATTK 838
+85Q6K 431
+A3636 238
+A8AAA 338
+22599 265
+48248 477
+99599 318
+77999 510
+668TT 386
+8T649 633
+6666Q 913
+97K7K 342
+4Q282 236
+4AAQ8 944
+TQ95J 465
+55854 866
+55666 988
+Q35T2 412
+8J888 45
+2227Q 565
+2K5A6 97
+J94J4 331
+42224 823
+A8AQA 919
+33335 777
+TA98Q 103
+32229 640
+JJJJJ 938
+T22TJ 279
+AA5T9 805
+3335J 705
+T3J62 42
+33222 224
+T44A4 842
+QQQQ6 992
+96K2K 955
+TT6T6 631
+22828 698
+4K295 242
+8QQQJ 469
+3333T 153
+88A9A 96
+8736K 690
+5757Q 638
+9T9A9 137
+JJ555 255
+Q97Q9 287
+25K28 125
+65K6K 681
+253J4 436
+AT2T5 94
+3Q34T 943
+54Q3T 514
+KKQK4 8
+464K4 876
+3KK33 697
+28883 53
+62226 120
+8KK33 628
+QQA98 266
+3K924 824
+222K3 334
+79229 586
+9K999 685
+4Q44K 450
+797J8 963
+666J8 84
+A92J5 751
+999K6 183
+24595 894
+T46J6 504
+TQ2JA 941
+QQ77Q 764
+8QJ3J 928
+7667J 687
+28AT7 307
+52522 462
+9J2JT 340
+TTTJJ 464
+666K5 795
+56QQQ 357
+36J22 782
+42347 68
+72272 957
+96969 378
+TQQ7Q 302
+48422 673
+26662 864
+TKKKT 786
+4768T 26
+366T6 86
+79J97 336
+A4944 739
+6QQKK 961
+82K23 543
+Q9Q93 274
+T6QT3 931
+3KT35 198
+J7T6J 765
+77755 270
+284QK 511
+88668 240
+KKTK6 717
+AAAA2 193
+A4JAA 303
+4AAAA 872
+A78T6 75
+48447 684
+Q222J 354
+6357A 173
+JTK78 122
+QT6Q6 439
+K283J 558
+TJ5JQ 27
+KKK65 567
+J7648 363
+QJ475 702
+J472A 898
+5T3TT 793
+QK5QA 164
+9T97A 9
+KK495 493
+2T2T2 998
+88488 915
+T8777 601
+78888 747
+48478 517
+99898 128
+94996 289
+6Q84A 252
+46J63 114
+43AA3 33
+44TTJ 90
+Q5552 731
+69874 196
+2T228 413
+A282A 896
+49TJ6 108
+4444T 666
+26A2J 313
+22722 371
+65T3K 766
+88798 31
+K78JA 296
+7Q5TT 848
+55K5J 299
+3KK8K 297
+8KA5A 491
+JK6KK 149
+T333Q 290
+TKT7K 577
+2K3A7 414
+6K666 859
+KJ574 591
+63K26 797
+K2KAK 999
+TTT9J 703
+7JJJ2 117
+4JJ92 654
+969J6 624
+J4Q4T 683
+T5TTT 39
+A85AA 645
+7TQQ7 385
+66AA6 403
+9392Q 735
+2KT4Q 190
+95353 486
+58568 516
+739AK 852
+Q5KK2 10
+4K6T4 651
+2Q228 225
+9TTTT 901
+283QJ 136
+QQ3J3 220
+83383 235
+A99A3 485
+AA8AK 401
+J7TTQ 819
+9A772 292
+A6AAA 561
+93TTT 877
+QJ9Q9 147
+47Q77 814
+K638T 425
+AKK8A 571
+T7768 816
+QQ4Q4 497
+63262 738
+727K8 3
+88AT8 353
+K36T7 784
+4K564 12
+4AA44 339
+A2AA8 374
+65J55 312
+88988 188
+69666 309
+AAK5K 192
+77644 993
+82636 273
+5484T 396
+JKKJJ 678
+K3663 574
+TTT99 519
+838K8 515
+JKKJK 755
+2TQ84 494
+55558 258
+ATATT 109
+3TJ3T 719
+TJQAA 37
+66662 914
+58TQ5 64
+5J535 308
+7AQJ8 790
+K8JQT 578
+88885 529
+9K9J9 261
+J5555 247
+3QA86 210
+2479A 157
+JA6TJ 427
+QQ555 733
+AA5Q5 756
+AATAA 564
+8JTJT 762
+85533 725
+K52KK 537
+6A745 890
+8A429 630
+KK888 826
+T4T4T 280
+Q3AAT 669
+32958 93
+A342T 121
+K2KJK 320
+3K333 754
+6TTAA 636
+T4TTT 742
+AKAAK 389
+8JK8Q 545
+A7777 123
+T6282 815
+5Q42T 847
+99969 323
+733TJ 244
+46589 604
+J8KKK 166
+844K9 908
+Q3K56 20
+JA446 689
+5QQ7K 448
+4T927 7
+72474 211
+222T2 977
+88989 4
+8Q828 525
+2TT52 113
+36536 835
+A2JAA 923
+Q7983 295
+T6534 1000
+96939 461
+598K2 298
+QKQAA 154
+AAKAA 861
+TQ696 674
+K3Q9A 348
+QQQQ4 827
+88K84 987
+KK555 712
+22777 889
+254T4 672
+3K23K 483
+44463 811
+Q77AQ 878
+AK5KK 555
+AQAAA 214
+QA7K9 484
+TT5KK 161
+T7QQT 541
+AK6A6 422
+66967 314
+7KQ79 437
+77677 704
+T76JQ 505
+A525J 143
+83533 360
+J4Q53 36
+2K7AJ 170
+Q4AAA 87
+47774 953
+TK2KQ 935
+K67T4 909
+T8Q43 924
+33995 945
+JQA8T 569
+KKK55 744
+68866 152
+2J2TK 18
+Q7QQQ 417
+T7Q82 76
+53322 405
+TA4Q3 723
+2Q9J9 499
+36336 179
+9Q494 706
+87JK6 77
\ No newline at end of file
diff --git a/AdventOfCode/Problems/AOC2023/Day7/sample.txt b/AdventOfCode/Problems/AOC2023/Day7/sample.txt
new file mode 100644
index 0000000..03030f0
--- /dev/null
+++ b/AdventOfCode/Problems/AOC2023/Day7/sample.txt
@@ -0,0 +1,5 @@
+32T3K 765
+T55J5 684
+KTJJT 220
+KK677 28
+QQQJA 483
\ No newline at end of file
diff --git a/AdventOfCode/Problems/AOC2023/Day7/sara.txt b/AdventOfCode/Problems/AOC2023/Day7/sara.txt
new file mode 100644
index 0000000..56216df
--- /dev/null
+++ b/AdventOfCode/Problems/AOC2023/Day7/sara.txt
@@ -0,0 +1,1000 @@
+K43AT 328
+AAQ2A 410
+45452 995
+T9999 645
+J7737 326
+4TT46 891
+A3AAT 565
+ATTTJ 793
+K2TJK 441
+6J66K 640
+QQQQ7 582
+K596A 203
+48544 862
+74AJQ 103
+J333J 895
+737T4 472
+26226 863
+QQQ7A 959
+6K5J6 257
+7QAT8 10
+4K9KT 894
+TTT66 720
+57874 13
+QJ64Q 536
+8444Q 497
+46K62 642
+Q4444 256
+75K96 984
+TQJ38 237
+Q7286 460
+A2255 985
+66464 661
+32J22 294
+2T22T 880
+2AJJJ 643
+555TT 637
+7T73T 519
+3786T 124
+JT2T2 735
+K4KKK 982
+A8TT4 526
+KK8TJ 334
+54A69 554
+6KK46 912
+T7JQT 766
+99399 437
+5TJ5J 842
+QQ99T 719
+3A9QK 715
+T9TT5 684
+A7A7A 394
+A9559 883
+J2662 50
+5J2A4 44
+636Q6 319
+96K93 937
+4KKJK 924
+AA4AA 555
+AJ695 755
+63T34 476
+K7K47 644
+66K69 166
+K556Q 404
+37249 748
+77JJ9 331
+JJ655 493
+QAKA2 350
+Q7QQK 243
+A6745 363
+QTJTT 538
+44QQ4 529
+666J3 115
+TQ72A 710
+Q5777 457
+4TTJ6 773
+JJ3J6 786
+AA955 911
+4JA44 198
+Q883J 517
+J9933 199
+8453J 349
+6646Q 846
+75J8J 761
+A7A7J 596
+2J993 228
+32636 137
+Q928J 778
+KKKJJ 960
+4466J 929
+775QQ 280
+7T476 749
+979KK 355
+35373 218
+K7788 392
+25K69 289
+74776 882
+A58T2 898
+2A22A 377
+TKT78 545
+K752T 253
+77779 945
+996AA 650
+QQ3A3 859
+K6J87 626
+K22K3 765
+TT37T 94
+372K3 212
+48887 525
+2676T 72
+977A3 641
+3J67K 111
+A6388 118
+3K359 993
+AA8AA 379
+J66J6 841
+2222J 1000
+T757J 117
+99J9T 772
+88846 475
+29J28 572
+77J72 900
+A8QAK 904
+T4KJK 621
+T44TJ 140
+JK9KK 593
+849TJ 828
+59794 486
+3K5QA 318
+K2J98 11
+77744 421
+2K279 231
+6Q3QT 79
+3A999 271
+3QT79 119
+T4598 840
+666T8 717
+9JJ99 811
+QQQKK 671
+QTQQT 303
+86666 605
+47AA3 482
+52525 816
+4Q2Q4 722
+77224 609
+78688 976
+7QKA9 865
+9Q99T 989
+5342A 279
+9Q35K 999
+777AQ 764
+AJ43Q 143
+QQQQ8 744
+2Q3J9 61
+KKK99 779
+KK8KK 966
+TQ839 51
+J5JA5 148
+4942T 725
+AT999 732
+62666 499
+89725 468
+3J566 953
+Q9A58 711
+9QQ5Q 413
+78J57 726
+945TA 921
+KKAT3 938
+3A433 654
+8AA82 88
+77KK7 430
+3T777 728
+QK32T 190
+6J638 708
+QTQJA 632
+KT5A9 221
+79KT8 879
+AT474 18
+77867 756
+99799 815
+A52T4 777
+3K9J4 562
+66QQ8 730
+888AJ 351
+K68KK 49
+44442 905
+Q3A52 304
+66AT9 681
+AQ44J 838
+T6TT8 739
+JA5KK 638
+82Q2J 785
+84665 411
+8K4J4 100
+6936K 664
+7J799 474
+QKQ8K 690
+929J4 860
+6747Q 780
+QKQTQ 979
+53JQ3 635
+T54Q7 43
+9876K 301
+57555 511
+A7777 933
+7533A 121
+T77TT 378
+94977 876
+44K9Q 758
+999A9 930
+99TTT 104
+J8243 375
+QQ2Q2 947
+QAQ99 789
+22A24 91
+9TJK9 733
+666J6 267
+444T3 611
+AA4JJ 194
+888A8 568
+4Q723 804
+5T565 150
+AA23A 347
+9725Q 122
+TT8T8 234
+A9445 342
+A2288 67
+99Q44 167
+3K688 600
+6QQQK 653
+T5J34 423
+3K5T4 868
+8J99A 515
+37T8K 383
+J4T85 182
+Q7644 449
+QQ4TQ 471
+56464 824
+6J85Q 798
+4Q6QQ 986
+8864K 613
+22422 415
+T22T4 695
+6J633 574
+479AK 175
+8JAQ4 397
+5J5T8 662
+A7J99 594
+85688 391
+A3TJ6 204
+J3T33 546
+Q777J 539
+6KJTJ 812
+8TT55 660
+3Q23Q 128
+J7JJ7 585
+6T6J6 837
+5288T 964
+4J34A 767
+77K37 797
+6A665 866
+49A6J 856
+Q9QQ8 261
+QJ9JQ 158
+T5363 75
+QT994 528
+A3335 184
+QAAAA 296
+22886 672
+2922J 110
+99K99 325
+23243 967
+AA545 361
+24443 324
+J258Q 239
+7685Q 731
+T7TKK 281
+QQQTJ 429
+8J828 552
+J8484 21
+3J27A 564
+2A5T9 750
+A3QT5 154
+599J5 245
+KK7A8 71
+8888K 485
+2K859 6
+98959 922
+6J669 123
+A5552 452
+QQA6K 649
+QTQQQ 81
+Q97KK 808
+82276 845
+T6Q36 788
+5TJTT 387
+77787 108
+Q39A2 287
+66Q6Q 896
+89635 197
+TT2TJ 120
+4AA2A 560
+99KK9 534
+KK3KK 479
+65698 330
+KJ63K 775
+K6676 442
+K2226 698
+KJ444 877
+42442 802
+KK8K3 220
+88555 942
+4QQ74 87
+35959 899
+A5736 64
+A8629 941
+2TA8Q 706
+87627 250
+AA6J3 676
+47442 492
+6QJ66 507
+8K3TQ 109
+Q7777 697
+AAAA3 412
+4999A 74
+996K9 498
+323KK 522
+355JA 978
+TK2A7 864
+A9JAQ 5
+5576T 713
+Q272Q 312
+877KK 89
+K6666 658
+J876Q 368
+A63K8 336
+83AAT 106
+6TQ82 373
+7JQQQ 782
+JKTT3 834
+QQ999 129
+3AK6Q 601
+J7TJ7 200
+TK999 185
+76333 907
+JAAAA 57
+5T7T5 37
+QAQ3Q 807
+2666T 406
+4TT43 501
+84484 22
+9T99T 651
+T8675 965
+9276A 848
+98J98 776
+T2299 40
+KTATA 162
+A4K5K 179
+8888J 473
+A554K 420
+999AJ 783
+9696T 367
+KK9KK 56
+TA9AT 892
+AT7T7 38
+T3T3T 530
+23A9T 634
+QA4K2 241
+88K68 362
+T4J9Q 193
+K9T72 52
+76566 92
+9JT67 3
+3Q468 768
+4285K 206
+J28K6 285
+6J86Q 159
+A4925 521
+J5525 531
+A5A55 366
+5968T 818
+44454 320
+8QK88 962
+99996 791
+4A44A 284
+97T48 146
+39T89 686
+3497K 298
+4224T 209
+AAA3K 615
+22795 628
+2QJQQ 141
+35999 73
+73337 32
+49999 403
+JJJJ3 665
+89K74 63
+Q76K2 157
+6868J 171
+J8JJ8 853
+3TJ56 869
+42TA6 682
+33633 337
+AJQ58 135
+3J388 164
+7Q6T2 909
+6TAQT 483
+33379 327
+833AA 332
+885QJ 177
+39522 908
+93JQK 15
+323K2 236
+28A5A 384
+J99JJ 558
+4Q4QQ 360
+38A95 210
+43344 746
+3J589 288
+JJ8JJ 28
+23223 436
+TAA58 149
+2227J 414
+QQQA4 356
+A6456 754
+34444 131
+83K6K 310
+37233 41
+A7797 84
+62426 333
+2A822 569
+KAAKK 358
+T2AJ6 901
+6J822 729
+8J86J 652
+A935K 247
+TTKT3 998
+8ATAT 12
+K5622 170
+8QQ8Q 30
+82288 524
+Q4T94 445
+TAAA2 506
+7A79Q 663
+AT94K 292
+J6937 659
+5343A 694
+43JT6 851
+K4334 700
+3K3K3 607
+AJ2JA 980
+AA4AJ 422
+4K444 448
+768TJ 743
+A5AJA 35
+A33AJ 971
+KA662 952
+226Q2 113
+488Q8 295
+633T3 481
+J22K2 861
+388J8 101
+3Q524 152
+96J69 466
+882T3 315
+56J8T 258
+AAJ22 418
+Q722T 306
+3Q334 969
+A9K99 455
+AT4J3 857
+5QKA9 29
+2KKK2 242
+74433 251
+96K69 843
+KJJ5K 86
+576K8 692
+27TTA 470
+66JK9 240
+4T6Q7 496
+65T99 925
+3AT53 693
+5KTK9 931
+Q4999 855
+3QQ8Q 854
+5555T 114
+55J66 884
+7777J 409
+2JKJ5 795
+75755 23
+444JJ 308
+5JKJ5 701
+72Q77 93
+28Q28 639
+2A257 438
+95KJ4 484
+QTQ39 890
+8JK8K 195
+999KQ 463
+64JQ6 648
+49444 796
+999A8 439
+9J229 277
+22Q6Q 345
+QQ2QQ 557
+AQ45K 836
+8T3KJ 918
+8KKTK 2
+J5T55 238
+K4663 794
+QQAQQ 216
+225K5 927
+32658 389
+92276 477
+63K9T 603
+58Q32 232
+8AK52 973
+KQKQK 323
+88592 656
+22223 395
+K4TT4 354
+46KK3 850
+5T53T 163
+44996 858
+3J3K3 7
+QQ2Q4 630
+9QA2K 136
+Q5KQQ 677
+JJJJJ 974
+55475 737
+6AK5Q 736
+Q4454 997
+T8282 144
+K3333 810
+92929 59
+K44KT 427
+7A774 889
+96996 902
+79QQ9 39
+A73A3 670
+44644 224
+2Q54Q 311
+56555 724
+783J7 19
+2KKKK 950
+T74K7 799
+64464 370
+J6T62 833
+885J8 459
+84J66 617
+77579 408
+2J36T 386
+KTK2K 24
+34334 249
+44489 939
+55955 915
+736QA 58
+4J548 839
+QQQ3Q 800
+57855 934
+K5KAA 270
+A6Q22 262
+2TTTT 398
+75A2Q 759
+J2529 575
+99373 16
+78355 981
+JA587 769
+AA38Q 255
+22A77 903
+89999 827
+6JT7T 913
+A59JK 872
+6QAQA 542
+98J99 712
+K4TTQ 520
+699J9 138
+39JJT 757
+A2TJ5 419
+Q8647 96
+JT779 619
+7T5TT 417
+A433A 685
+KTJKT 707
+29T73 679
+KKAKK 31
+72758 181
+TTATT 348
+65Q7T 467
+K8222 98
+QK5KK 504
+44QJQ 259
+6T475 709
+52589 33
+58898 631
+59535 741
+4J8KK 20
+TQQTT 132
+8KT6T 784
+Q33KK 291
+T9QT5 897
+3983J 127
+73A33 556
+J2452 718
+7465Q 886
+89899 935
+6TJA6 544
+79797 447
+89J77 571
+35333 518
+7478K 875
+6TQJ4 595
+636K5 747
+QJQ5A 156
+76776 165
+45588 822
+2T6A9 622
+333QQ 273
+9J888 563
+J2577 451
+6A8J3 847
+33J33 364
+J6TA8 689
+83333 916
+9473T 371
+8397A 516
+8352K 264
+38J8J 509
+93696 523
+69JJ7 464
+T6KK2 357
+734AQ 340
+QA6AA 461
+K2AKK 443
+74TA3 987
+52TJ7 961
+67992 321
+A2972 830
+9JQ9Q 625
+TTTT4 727
+TQ898 958
+2222K 610
+8346J 508
+9ATTT 540
+J4464 655
+4JAA3 189
+73669 762
+54445 983
+39QKQ 316
+6777Q 948
+ATAAA 893
+T5KTK 388
+62KKK 77
+58647 307
+5JA88 83
+9J944 183
+5J274 133
+44K4K 920
+4TTA9 54
+AA9A6 940
+KTKTK 592
+399Q2 399
+6JQQQ 573
+A2955 233
+37Q8T 274
+QTKTT 376
+9KT59 577
+KK3Q4 598
+99595 322
+3Q339 225
+65J55 201
+AQTQQ 874
+5667J 936
+TJ8Q2 829
+T6Q45 910
+KQ4AK 380
+8AQQJ 770
+28838 402
+JAAAJ 752
+A5AA5 4
+86886 34
+46494 551
+963J5 76
+773A7 814
+67794 505
+4KJ4K 559
+J8585 230
+KT3K6 618
+23QJ8 47
+QQ464 69
+96J9Q 469
+55777 714
+J2K58 227
+K24Q2 774
+888KJ 352
+Q3TQQ 647
+K3JA4 365
+J4TKQ 548
+88J4J 78
+9J44J 489
+22525 297
+QQ9QQ 42
+2222A 82
+5A4A4 988
+K6479 36
+A2AAA 597
+6J664 699
+85555 70
+77Q7Q 222
+AA5AA 541
+QQQQJ 612
+555J5 512
+44AA3 763
+65635 45
+JKKK5 871
+T3733 949
+JQK7Q 226
+Q4QQQ 126
+47AAA 214
+7T345 673
+73862 465
+5555A 994
+AA54K 787
+KK7K7 951
+Q5585 579
+84444 314
+7333K 283
+A37JK 68
+9QA36 53
+9T78T 172
+9J567 809
+KQQ6K 26
+J7882 444
+J5TKT 490
+QQQ97 992
+TTKTT 208
+6T666 211
+72977 266
+73AT9 532
+Q5KJ2 723
+AK4AA 852
+8QJQJ 820
+73383 426
+6K4A8 260
+88222 514
+832QQ 275
+77KQ7 491
+68J88 721
+46484 153
+55552 282
+8T3Q8 627
+7KQKQ 944
+T9Q84 390
+22775 771
+TKT72 604
+74QQQ 217
+5Q44Q 196
+J2TK3 881
+J88J8 305
+72777 268
+K3KKJ 400
+222TJ 329
+J3437 527
+27QAK 696
+K7676 272
+2A22K 578
+537J2 955
+777T7 926
+5K36A 646
+T2Q95 570
+27727 65
+T885T 688
+25442 602
+Q6Q7Q 543
+875K8 586
+78K3K 107
+KTKTQ 450
+555JJ 620
+TQAJJ 792
+6977Q 813
+65696 943
+J3563 956
+5KKKK 977
+88A6A 887
+AA22A 335
+Q8AQQ 405
+4JATK 702
+A6888 567
+J765T 487
+2Q4A6 478
+JK979 510
+44T27 278
+35323 751
+A7AAA 431
+8QT82 826
+QTJ86 928
+3J773 691
+K58J8 970
+88442 160
+A3AA9 633
+6AJ55 142
+QKKQ9 178
+93TJ7 805
+389A2 97
+4373A 95
+7Q784 359
+7KJ77 393
+74J4K 14
+94TTT 968
+3QA3K 248
+66944 48
+QQKQQ 823
+AA5A7 446
+5JT22 745
+T694K 738
+Q956Q 705
+34333 675
+8T88T 17
+2T3TJ 576
+5A578 186
+4848Q 549
+T322T 566
+77775 112
+QJ599 85
+AQKQA 229
+78Q77 678
+3K9K7 831
+55524 338
+A333A 932
+JJ222 191
+JJKJQ 313
+69669 500
+33322 513
+T7TTT 781
+A44JJ 580
+2QJ8J 276
+KA7A6 803
+346KT 401
+853Q7 906
+AA6A6 666
+3QA43 9
+28J25 244
+8686A 134
+KA88A 62
+K9888 535
+4T7KA 219
+KKK6K 996
+9T994 435
+K8KQK 174
+QQAA4 246
+5K5JK 588
+QJ875 957
+46358 919
+3A393 954
+7JKK7 972
+2QKK2 716
+TKJ9K 151
+66646 703
+5KJT2 369
+7KJK8 372
+A8A8A 169
+AAA9A 187
+TT55T 878
+44654 587
+Q6QQQ 90
+7AAJA 923
+6TTTJ 674
+66676 339
+88894 870
+Q2K48 533
+TTTT9 130
+763J3 343
+88333 817
+AQ785 704
+QQ5QA 385
+737T9 116
+95595 801
+J84AK 590
+79796 102
+J3TJ4 683
+26299 503
+8T888 867
+53AAJ 608
+2A56J 46
+8955A 381
+J5A55 844
+QJ9J9 636
+44J44 669
+A7JTA 550
+7TT24 317
+57A55 396
+J3JK3 55
+3TT33 888
+84JJ6 583
+3362T 547
+49494 176
+88858 173
+6KKJ6 614
+QK662 623
+Q4223 302
+397J5 147
+J5A9T 454
+9TT2T 145
+98T85 599
+86JQ2 433
+KQ977 806
+7T6T5 1
+72QQQ 873
+KTJKK 66
+77578 161
+TQ8T8 60
+AA25A 963
+T2AA4 382
+6T52J 346
+KK55A 494
+A4A4A 680
+55454 125
+49QQQ 657
+K6J9Q 290
+77J7J 155
+5AAJ5 687
+KQJ68 606
+88898 667
+29J27 616
+TJTTT 946
+46828 269
+2T28T 188
+787K7 293
+55223 254
+T6QT6 581
+TTA6A 825
+252AA 252
+JKQKK 205
+88585 819
+TT8TT 914
+K87T5 425
+KQKKK 416
+K9K74 263
+89627 624
+94889 537
+K96AQ 502
+Q77JA 991
+66367 849
+92922 760
+KAT4K 480
+ATTAA 553
+J4447 432
+63T5T 440
+282J2 192
+JKKKK 753
+6A74K 25
+46747 407
+TT3J9 299
+5KKK9 80
+6TA22 353
+T5795 265
+24TK9 202
+5Q555 207
+T5A45 341
+2K24J 742
+AJA9A 8
+45555 456
+88699 668
+66Q86 344
+AAA85 99
+7736T 591
+A6Q6Q 223
+A252J 589
+TTTKK 309
+77AAK 458
+68A9K 629
+6TK66 300
+2J242 885
+TAA68 488
+2Q72J 734
+936KA 213
+59JA4 180
+AA999 105
+843J9 990
+T4T44 215
+4ATAA 561
+J5333 821
+77774 424
+9AA6J 27
+JTJTT 790
+443KK 975
+TT8T9 286
+74Q89 832
+58QTA 453
+39393 917
+88234 740
+Q62AJ 374
+999Q9 235
+8Q828 428
+QJQJQ 462
+2K7TJ 139
+AJ239 835
+29499 434
+97J77 495
+99J99 584
+464J5 168
\ No newline at end of file
diff --git a/AdventOfCode/Runner/Extensions.cs b/AdventOfCode/Runner/Extensions.cs
new file mode 100644
index 0000000..4e446aa
--- /dev/null
+++ b/AdventOfCode/Runner/Extensions.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AdventOfCode.Runner;
+public static class Extensions
+{
+ public static IEnumerable Print(this IEnumerable values)
+ {
+ foreach (var item in values)
+ {
+ Console.WriteLine(item);
+ }
+ return values;
+ }
+}