diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..836fcd1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +out_a64 diff --git a/aoc25_1/Makefile b/aoc25_1/Makefile new file mode 100644 index 0000000..a885cf8 --- /dev/null +++ b/aoc25_1/Makefile @@ -0,0 +1,2 @@ +build: + gcc -g src/aoc25.c src/*.s -o out_a64 diff --git a/aoc25_1/aoc25_1.txt b/aoc25_1/aoc25_1.txt new file mode 100644 index 0000000..df294ad --- /dev/null +++ b/aoc25_1/aoc25_1.txt @@ -0,0 +1,4136 @@ +L 10 +L 24 +R 17 +R 48 +L 36 +R 11 +R 45 +R 5 +L 41 +R 1 +L 1 +R 42 +L 4 +L 13 +L 15 +L 46 +R 45 +R 14 +L 34 +R 46 +L 1 +L 5 +L 26 +R 10 +L 10 +R 50 +L 19 +L 24 +L 48 +L 37 +R 33 +R 14 +R 33 +R 5 +L 41 +L 35 +L 35 +L 6 +R 13 +L 37 +R 40 +R 46 +R 24 +R 9 +R 13 +R 26 +L 5 +L 38 +R 8 +L 62 +R 5 +R 22 +R 25 +R 9 +R 29 +R 15 +L 9 +R 9 +R 41 +L 56 +R 32 +R 9 +L 33 +R 7 +L 81 +L 8 +L 11 +R 26 +L 55 +L 64 +L 1 +R 46 +L 89 +R 65 +R 83 +R 15 +L 77 +R 51 +R 10 +L 10 +R 56 +R 48 +L 4 +L 91 +L 77 +L 32 +R 52 +R 51 +R 69 +L 82 +R 45 +L 39 +R 24 +R 44 +R 10 +R 26 +R 13 +L 73 +R 60 +R 39 +L 67 +L 745 +R 40 +R 33 +L 64 +R 41 +L 77 +L 76 +L 38 +L 86 +R 632 +L 6 +R 29 +L 555 +L 83 +L 56 +R 34 +L 95 +R 14 +L 59 +L 667 +L 88 +R 17 +L 17 +L 47 +L 60 +L 38 +R 45 +L 41 +R 364 +L 6 +R 83 +L 9 +R 146 +L 66 +L 51 +R 80 +L 967 +L 65 +L 533 +L 35 +L 84 +L 16 +R 84 +L 584 +L 29 +R 29 +R 72 +R 728 +R 69 +L 369 +R 53 +L 53 +L 4 +R 4 +R 88 +R 84 +R 28 +L 6 +R 146 +L 91 +L 97 +R 48 +R 27 +R 53 +R 20 +L 92 +R 52 +L 69 +R 9 +R 804 +R 2 +L 62 +L 44 +R 40 +L 40 +R 44 +R 56 +L 82 +L 60 +R 642 +R 11 +L 411 +L 58 +R 59 +L 1 +R 635 +R 97 +R 968 +L 86 +R 86 +L 36 +R 36 +R 71 +R 229 +L 11 +R 98 +R 2 +L 731 +L 57 +R 97 +L 41 +L 824 +R 67 +L 9 +R 329 +R 280 +R 62 +L 87 +L 21 +L 93 +L 41 +L 20 +L 58 +L 69 +L 84 +R 11 +L 73 +R 64 +R 65 +L 33 +L 299 +R 37 +L 61 +R 20 +L 56 +L 87 +L 77 +L 28 +R 69 +L 18 +R 376 +L 234 +R 21 +R 75 +R 18 +R 93 +R 20 +L 92 +R 6 +R 79 +R 85 +L 63 +R 93 +L 61 +L 39 +R 96 +R 66 +L 36 +R 227 +R 39 +L 92 +R 93 +L 93 +R 56 +R 41 +L 22 +L 72 +R 34 +L 15 +L 44 +R 17 +R 95 +R 10 +L 26 +L 74 +L 85 +L 54 +R 639 +L 10 +R 10 +L 13 +R 859 +L 46 +L 80 +L 523 +L 97 +L 83 +L 17 +L 288 +L 82 +L 29 +L 920 +R 79 +L 89 +L 92 +R 32 +R 88 +R 1 +R 64 +R 30 +R 185 +R 16 +L 60 +L 66 +L 28 +R 67 +R 58 +L 94 +L 72 +L 91 +R 14 +R 30 +R 47 +R 91 +R 9 +L 410 +L 90 +R 819 +L 19 +L 57 +L 42 +L 5 +L 83 +R 42 +R 634 +L 65 +R 76 +L 72 +R 974 +R 75 +L 26 +R 88 +R 61 +R 614 +L 942 +L 383 +L 83 +R 38 +L 44 +L 33 +R 44 +L 11 +L 61 +R 37 +R 222 +R 2 +R 368 +L 3 +R 62 +L 27 +L 56 +L 344 +L 285 +L 515 +L 93 +L 7 +L 42 +L 58 +L 37 +R 54 +R 49 +L 8 +R 22 +R 20 +R 79 +R 21 +L 280 +L 389 +R 51 +R 112 +L 32 +L 62 +R 342 +R 58 +R 16 +R 1 +L 48 +R 19 +R 75 +R 22 +L 12 +L 91 +R 70 +R 2 +R 46 +L 1 +R 25 +R 43 +L 29 +R 71 +R 91 +R 882 +L 323 +L 46 +R 305 +L 18 +L 95 +L 78 +R 14 +L 37 +L 13 +L 60 +R 669 +L 51 +R 29 +R 588 +L 113 +L 6 +L 88 +L 59 +R 782 +R 75 +L 29 +R 57 +L 13 +L 93 +L 26 +R 5 +L 15 +L 59 +L 47 +R 823 +R 710 +L 56 +R 554 +L 184 +R 16 +L 80 +R 33 +L 59 +L 9 +R 62 +L 85 +R 47 +L 2 +R 76 +R 88 +R 329 +L 48 +L 88 +R 36 +R 39 +R 50 +R 25 +L 14 +L 99 +R 94 +L 95 +R 971 +R 29 +L 16 +L 560 +R 76 +L 69 +R 67 +L 98 +R 431 +R 91 +L 42 +R 20 +L 91 +L 69 +R 51 +R 42 +R 42 +L 85 +L 90 +L 603 +R 55 +R 43 +R 72 +L 47 +L 96 +L 17 +L 88 +L 19 +R 66 +L 84 +R 84 +R 40 +R 53 +L 59 +R 922 +R 78 +R 38 +L 38 +L 73 +L 23 +R 74 +L 780 +R 45 +L 343 +R 97 +R 92 +L 12 +R 1 +R 22 +R 57 +R 69 +R 19 +R 55 +R 36 +R 98 +L 96 +R 821 +L 359 +R 42 +R 58 +L 93 +L 7 +R 98 +R 26 +R 54 +R 1 +L 485 +L 81 +L 20 +R 7 +L 87 +L 13 +R 44 +L 44 +R 636 +R 7 +R 57 +R 67 +L 62 +L 19 +R 93 +R 505 +R 76 +R 55 +R 66 +R 19 +R 27 +L 31 +L 54 +L 6 +R 75 +L 11 +R 31 +R 7 +R 408 +R 54 +L 81 +R 87 +L 592 +R 5 +R 81 +R 773 +L 273 +R 40 +L 979 +R 104 +R 59 +L 24 +R 62 +R 60 +L 13 +R 636 +R 494 +L 39 +L 15 +L 17 +R 87 +L 55 +L 26 +L 74 +R 30 +L 535 +L 95 +R 98 +L 7 +L 391 +R 29 +L 88 +L 641 +R 42 +R 28 +L 63 +R 36 +L 43 +R 59 +R 94 +L 21 +L 474 +L 17 +L 847 +L 78 +R 83 +L 99 +R 48 +R 64 +R 88 +L 298 +R 93 +R 288 +R 32 +L 15 +R 4 +L 39 +L 73 +R 62 +L 26 +L 28 +R 37 +L 458 +R 63 +L 703 +R 50 +L 52 +L 43 +R 50 +L 93 +L 473 +L 78 +L 73 +R 91 +L 18 +L 56 +L 44 +R 74 +L 96 +R 22 +R 91 +L 647 +L 34 +L 10 +R 50 +R 16 +L 85 +L 81 +L 539 +R 39 +R 35 +L 535 +L 31 +R 31 +L 20 +L 575 +L 76 +L 129 +R 796 +R 950 +L 46 +L 91 +L 72 +L 27 +R 37 +R 77 +L 75 +L 68 +R 56 +L 52 +R 23 +L 97 +L 11 +L 15 +L 7 +L 64 +R 37 +L 51 +R 25 +L 84 +L 39 +R 51 +R 21 +R 771 +L 45 +R 135 +L 71 +L 724 +R 94 +R 66 +L 517 +L 83 +L 13 +R 91 +R 22 +R 56 +R 633 +R 1 +R 27 +R 75 +L 2 +R 45 +L 43 +R 30 +L 16 +L 91 +R 12 +L 193 +R 66 +L 47 +L 50 +R 79 +R 97 +R 8 +L 3 +L 867 +R 187 +L 704 +L 47 +L 954 +L 38 +L 45 +R 684 +R 86 +L 70 +R 684 +R 24 +R 23 +L 52 +L 36 +L 59 +L 34 +L 566 +L 21 +R 21 +L 89 +R 55 +L 66 +L 82 +L 50 +R 32 +L 40 +L 60 +R 87 +L 198 +R 311 +L 296 +L 504 +R 23 +R 34 +R 20 +L 77 +R 82 +R 18 +L 39 +L 61 +R 53 +L 38 +L 52 +R 37 +L 36 +R 74 +R 619 +L 57 +L 30 +R 641 +L 16 +L 95 +R 15 +L 67 +L 34 +R 28 +R 67 +R 30 +R 56 +R 41 +R 67 +L 72 +R 56 +L 47 +L 77 +R 37 +L 29 +R 72 +L 243 +L 18 +L 894 +L 99 +R 83 +L 76 +R 70 +L 66 +R 40 +R 40 +L 97 +L 83 +R 14 +R 83 +L 97 +L 538 +R 91 +L 63 +R 10 +R 95 +L 95 +R 49 +R 51 +R 42 +R 48 +R 3 +R 322 +R 85 +R 97 +L 97 +L 262 +R 86 +R 622 +L 1 +R 55 +R 919 +R 81 +L 279 +R 4 +L 425 +R 758 +L 15 +L 48 +L 795 +L 95 +L 505 +R 47 +L 16 +R 69 +R 70 +R 30 +R 79 +L 645 +R 66 +R 983 +R 26 +L 79 +R 5 +R 28 +L 82 +L 81 +L 5 +R 5 +L 845 +R 345 +R 90 +R 53 +L 343 +L 40 +L 60 +L 9 +L 7 +L 380 +L 104 +L 66 +L 970 +L 64 +L 73 +L 27 +R 87 +R 702 +L 789 +R 26 +R 7 +L 58 +L 47 +L 28 +R 11 +R 89 +R 30 +R 56 +L 905 +L 70 +L 11 +R 62 +R 38 +R 1 +R 97 +L 893 +R 95 +L 150 +L 50 +L 89 +R 789 +R 53 +R 47 +L 55 +L 33 +R 45 +R 19 +R 27 +L 57 +L 25 +R 54 +L 98 +R 16 +L 818 +R 25 +L 371 +R 738 +L 67 +R 84 +L 97 +L 50 +L 39 +R 39 +L 37 +R 36 +R 59 +L 630 +L 65 +L 35 +L 325 +L 48 +L 48 +R 459 +L 3 +L 61 +R 35 +L 36 +R 62 +L 684 +R 76 +R 35 +R 607 +R 80 +R 92 +L 93 +L 71 +L 42 +L 23 +L 77 +L 566 +L 14 +R 33 +R 47 +R 89 +R 287 +R 82 +L 97 +L 399 +L 31 +L 51 +R 51 +L 22 +L 209 +L 15 +R 70 +R 51 +R 529 +L 14 +L 21 +R 61 +R 539 +R 8 +R 35 +L 41 +R 40 +R 24 +L 475 +R 29 +R 80 +L 94 +L 99 +L 22 +L 865 +R 66 +L 12 +R 66 +L 40 +R 10 +R 90 +R 89 +L 43 +L 646 +R 61 +R 58 +R 81 +R 22 +L 15 +L 99 +L 8 +R 93 +L 78 +R 714 +L 11 +R 28 +L 46 +R 39 +R 61 +R 82 +R 18 +R 44 +R 20 +L 78 +L 86 +R 97 +L 28 +R 31 +L 4 +R 47 +L 68 +R 50 +R 575 +L 59 +L 277 +L 564 +L 74 +L 57 +R 954 +L 349 +R 47 +R 53 +L 53 +L 94 +R 42 +L 966 +L 3 +R 52 +R 765 +R 21 +L 522 +L 994 +L 32 +L 890 +R 44 +R 50 +L 94 +L 17 +L 83 +L 81 +L 82 +L 37 +L 40 +R 40 +L 95 +L 73 +R 43 +R 25 +R 11 +R 32 +L 36 +L 4 +L 89 +L 824 +L 590 +L 11 +R 748 +R 62 +L 51 +L 40 +R 44 +R 548 +R 73 +L 31 +L 42 +L 29 +L 52 +L 902 +R 504 +L 21 +L 56 +L 47 +L 86 +L 1 +R 86 +R 603 +R 1 +R 54 +L 54 +R 21 +L 59 +L 9 +R 547 +R 1 +L 1 +L 90 +L 13 +L 82 +R 85 +R 483 +R 27 +L 10 +L 9 +R 42 +R 49 +L 954 +R 272 +R 86 +L 59 +R 85 +L 12 +R 18 +R 74 +R 985 +R 323 +R 30 +R 70 +R 217 +R 20 +L 40 +L 5 +R 27 +R 25 +R 84 +R 10 +L 98 +L 55 +L 73 +R 44 +L 50 +R 37 +L 43 +L 99 +L 701 +L 14 +L 20 +L 16 +L 57 +L 93 +R 41 +R 13 +R 46 +R 54 +R 46 +R 61 +L 361 +R 71 +L 71 +L 31 +L 38 +L 31 +R 50 +R 97 +R 586 +R 86 +R 81 +L 45 +R 45 +L 28 +L 30 +L 42 +R 27 +L 27 +L 301 +L 99 +R 32 +R 87 +R 81 +L 59 +L 56 +R 34 +L 19 +R 43 +L 43 +L 40 +R 23 +R 17 +L 35 +R 34 +R 301 +R 71 +L 71 +R 86 +L 70 +L 16 +L 77 +R 77 +L 288 +L 24 +L 88 +L 89 +R 60 +L 23 +L 48 +R 13 +L 646 +R 48 +R 85 +R 12 +L 68 +L 344 +L 48 +L 552 +R 79 +R 85 +L 15 +L 28 +L 521 +R 7 +R 93 +L 96 +R 96 +L 52 +L 364 +L 84 +L 48 +L 652 +R 608 +R 92 +R 67 +R 33 +R 15 +R 30 +R 55 +L 38 +R 83 +L 7 +R 162 +L 14 +R 14 +L 49 +R 39 +L 89 +R 99 +R 84 +L 10 +L 674 +L 860 +L 91 +L 51 +L 91 +R 89 +L 61 +L 70 +R 73 +R 662 +L 47 +R 847 +R 74 +L 311 +L 63 +R 14 +R 67 +R 19 +L 20 +R 26 +L 16 +R 40 +L 30 +L 12 +R 6 +L 86 +L 9 +L 99 +R 853 +R 36 +L 61 +R 17 +L 92 +R 75 +R 72 +R 73 +L 73 +L 29 +L 927 +R 95 +L 71 +L 68 +R 908 +R 73 +R 8 +L 41 +L 48 +L 11 +L 414 +L 89 +R 32 +R 82 +R 45 +R 55 +R 31 +R 90 +L 21 +R 49 +R 651 +R 24 +L 64 +L 60 +L 69 +L 753 +L 78 +R 22 +L 19 +R 11 +R 13 +R 373 +R 35 +L 32 +L 81 +R 35 +R 40 +R 14 +R 31 +L 42 +L 903 +L 77 +L 137 +L 19 +L 688 +R 72 +R 52 +L 81 +L 3 +R 84 +L 12 +R 3 +L 60 +L 15 +L 88 +R 625 +L 53 +R 4 +R 496 +L 41 +R 11 +R 30 +L 96 +L 54 +R 45 +L 1 +R 706 +R 27 +L 27 +L 99 +R 86 +L 70 +R 66 +L 3 +R 105 +L 785 +L 926 +L 734 +L 757 +R 853 +L 11 +R 36 +L 61 +L 4 +L 60 +R 64 +L 29 +R 61 +R 51 +R 42 +L 25 +R 34 +R 21 +R 97 +R 85 +L 86 +R 48 +R 9 +R 92 +L 35 +L 65 +R 77 +R 22 +L 99 +R 176 +L 75 +L 24 +L 19 +R 42 +L 28 +L 10 +L 58 +L 4 +L 88 +R 79 +L 891 +R 37 +R 88 +L 625 +R 97 +L 67 +L 30 +L 274 +L 26 +L 31 +R 31 +L 80 +L 96 +L 41 +R 61 +R 90 +R 66 +L 40 +L 60 +R 26 +L 33 +L 40 +L 53 +L 454 +L 646 +R 9 +R 25 +R 26 +L 89 +R 8 +L 26 +R 858 +L 311 +L 39 +R 67 +L 48 +R 20 +R 15 +R 37 +L 97 +L 740 +L 14 +R 99 +R 5 +L 5 +L 13 +L 84 +R 4 +L 39 +R 32 +L 12 +L 88 +R 3 +R 97 +R 828 +L 61 +L 604 +R 37 +R 38 +R 62 +L 26 +R 19 +R 26 +L 35 +L 28 +L 304 +R 63 +L 318 +R 388 +L 16 +R 950 +R 50 +R 31 +R 23 +R 81 +L 58 +R 28 +L 82 +R 12 +R 886 +R 65 +L 55 +R 27 +R 473 +R 64 +L 64 +L 23 +L 445 +L 32 +L 55 +L 75 +R 10 +R 1 +R 32 +L 24 +R 211 +L 145 +R 60 +L 754 +R 13 +L 74 +R 75 +R 25 +L 818 +R 18 +L 98 +L 2 +R 9 +R 4 +R 58 +L 21 +L 350 +L 67 +L 33 +L 58 +L 34 +R 94 +R 98 +L 58 +R 86 +R 72 +L 53 +R 153 +L 881 +L 219 +L 279 +L 21 +L 210 +L 940 +R 97 +R 60 +L 75 +L 132 +R 18 +L 671 +L 48 +L 75 +R 71 +R 86 +R 19 +L 40 +L 61 +R 1 +R 39 +R 61 +L 42 +R 42 +L 72 +L 228 +R 15 +R 85 +L 60 +R 60 +R 81 +R 70 +L 35 +R 71 +R 61 +R 52 +R 16 +R 22 +R 62 +L 56 +R 956 +L 46 +L 954 +L 772 +R 23 +R 9 +L 67 +R 922 +L 415 +L 60 +R 43 +L 522 +R 39 +L 373 +L 296 +R 869 +L 57 +R 94 +R 49 +L 47 +R 47 +L 73 +L 72 +R 148 +R 95 +R 916 +R 30 +L 55 +R 45 +R 80 +L 76 +R 409 +R 67 +R 798 +L 84 +L 225 +L 74 +R 83 +R 42 +L 5 +L 95 +L 28 +R 488 +L 36 +R 21 +R 36 +L 961 +L 79 +L 81 +L 54 +L 21 +R 75 +R 82 +L 82 +R 35 +L 75 +R 32 +R 7 +L 99 +L 48 +R 48 +L 22 +L 2 +R 805 +R 70 +R 69 +R 806 +R 3 +L 87 +L 83 +L 40 +R 48 +R 22 +L 4 +R 15 +L 38 +R 38 +R 4 +L 84 +R 83 +R 17 +R 65 +L 85 +R 47 +R 12 +R 41 +L 687 +R 66 +L 17 +L 7 +L 32 +L 17 +R 339 +L 77 +R 32 +R 954 +L 54 +R 64 +R 36 +L 730 +L 34 +L 36 +R 11 +L 321 +L 90 +L 8 +R 912 +R 29 +L 19 +L 33 +R 719 +L 58 +L 18 +L 24 +R 549 +L 54 +R 92 +R 319 +R 94 +R 992 +R 22 +L 93 +L 87 +L 34 +R 36 +R 64 +L 67 +L 486 +R 604 +R 49 +R 794 +R 6 +R 164 +L 368 +L 96 +L 49 +R 38 +R 11 +R 58 +L 10 +L 26 +R 10 +R 68 +L 5 +L 66 +R 271 +L 53 +L 847 +R 68 +R 832 +R 11 +R 802 +R 87 +L 9 +L 12 +L 28 +L 70 +L 532 +R 95 +R 92 +L 98 +R 33 +R 487 +L 32 +R 74 +L 38 +R 38 +L 18 +L 845 +L 220 +L 913 +R 99 +L 3 +R 63 +R 77 +L 12 +R 59 +L 87 +R 98 +L 98 +R 6 +R 52 +L 430 +L 961 +L 411 +L 56 +R 37 +L 637 +R 6 +R 94 +L 43 +L 72 +R 76 +R 95 +L 248 +L 73 +R 65 +R 19 +R 81 +L 9 +L 3 +R 12 +L 511 +L 78 +R 38 +L 49 +R 87 +R 13 +L 717 +L 63 +R 18 +L 746 +R 438 +L 514 +L 16 +R 22 +R 94 +R 66 +L 67 +L 15 +L 50 +L 750 +R 564 +R 62 +R 74 +R 94 +R 23 +L 17 +L 27 +R 27 +R 99 +L 954 +R 55 +R 94 +L 94 +L 88 +L 484 +L 80 +L 94 +L 219 +L 79 +L 75 +R 19 +R 52 +L 44 +L 89 +L 19 +L 102 +L 98 +R 26 +R 574 +R 46 +L 91 +R 45 +R 63 +L 63 +L 93 +R 34 +R 59 +L 75 +L 25 +L 705 +R 64 +R 64 +L 25 +L 24 +L 55 +L 119 +L 60 +L 92 +R 60 +L 460 +R 68 +R 45 +L 61 +L 17 +L 551 +L 232 +R 16 +R 49 +L 80 +R 15 +R 410 +L 16 +L 42 +R 48 +L 69 +L 3 +L 73 +R 45 +L 35 +L 38 +L 27 +L 35 +L 65 +L 26 +R 26 +R 56 +L 77 +R 919 +R 672 +R 133 +L 49 +R 52 +L 87 +R 33 +R 48 +L 23 +L 77 +L 787 +R 49 +R 33 +L 195 +R 72 +R 28 +L 87 +R 386 +R 27 +R 57 +R 92 +L 414 +L 77 +R 16 +R 286 +R 56 +R 77 +R 19 +L 60 +L 278 +L 88 +L 16 +L 55 +L 68 +L 973 +R 14 +R 86 +R 17 +L 47 +R 90 +L 48 +R 88 +R 60 +R 88 +L 45 +L 55 +R 52 +L 94 +L 206 +R 33 +R 35 +L 68 +R 91 +L 299 +L 70 +R 53 +R 51 +L 11 +R 285 +R 96 +R 4 +L 96 +R 96 +L 298 +R 60 +R 1 +L 45 +R 82 +L 67 +L 358 +L 43 +L 36 +L 96 +L 34 +L 66 +L 27 +L 91 +R 14 +R 51 +L 72 +R 36 +R 658 +R 34 +L 86 +R 783 +L 10 +R 29 +R 42 +L 61 +L 57 +R 57 +R 117 +R 83 +R 25 +L 25 +L 16 +L 87 +L 39 +R 72 +L 30 +L 780 +L 98 +R 76 +R 60 +L 94 +R 42 +R 94 +L 23 +L 677 +L 39 +R 39 +R 44 +R 608 +R 4 +L 356 +L 82 +L 18 +L 384 +R 84 +R 19 +L 89 +R 646 +L 47 +L 80 +R 365 +R 9 +L 91 +L 92 +R 9 +L 649 +R 51 +R 49 +L 13 +R 86 +R 39 +L 12 +L 38 +L 44 +L 52 +R 59 +R 68 +R 5 +L 26 +L 67 +L 5 +R 62 +R 32 +L 721 +R 27 +R 647 +L 97 +L 250 +L 36 +R 36 +R 31 +R 36 +L 667 +R 96 +L 796 +R 383 +R 84 +R 28 +R 5 +L 66 +L 79 +R 355 +R 88 +L 98 +L 52 +R 98 +R 90 +L 92 +L 44 +R 30 +L 17 +L 79 +L 18 +R 52 +R 94 +L 81 +L 81 +L 1 +L 531 +L 768 +L 54 +R 154 +L 11 +L 44 +L 645 +L 652 +R 73 +R 516 +L 63 +R 26 +R 25 +L 325 +L 63 +L 22 +L 19 +L 696 +L 54 +L 1 +L 645 +R 243 +R 21 +R 819 +R 55 +L 43 +L 22 +L 73 +R 736 +L 22 +L 105 +L 85 +R 81 +R 34 +R 61 +R 38 +R 45 +R 17 +R 26 +L 426 +R 76 +L 76 +R 627 +L 38 +L 6 +L 73 +L 89 +R 79 +L 805 +R 88 +L 83 +L 54 +L 846 +L 71 +R 71 +R 71 +R 29 +R 24 +L 69 +R 45 +R 12 +R 585 +L 14 +R 31 +R 686 +L 53 +R 691 +R 73 +L 11 +R 18 +L 18 +R 12 +R 84 +L 96 +R 35 +L 98 +L 20 +R 59 +L 83 +L 393 +R 92 +R 60 +L 152 +L 98 +L 32 +R 9 +R 49 +L 28 +L 25 +R 35 +R 75 +R 53 +R 44 +L 87 +R 57 +R 557 +L 9 +R 30 +R 87 +R 65 +L 82 +R 93 +L 93 +L 81 +R 20 +R 89 +L 391 +L 37 +R 67 +R 33 +L 33 +R 63 +R 70 +R 6 +L 6 +L 70 +R 54 +R 416 +L 93 +R 790 +R 92 +R 14 +R 439 +R 11 +L 53 +R 48 +L 63 +L 85 +R 3 +L 3 +L 36 +L 20 +R 53 +R 35 +R 29 +L 28 +L 133 +R 1 +L 28 +L 41 +L 79 +R 47 +L 97 +R 7 +R 90 +L 81 +L 19 +R 4 +L 41 +L 72 +R 18 +R 49 +R 98 +R 44 +L 753 +R 17 +L 764 +R 38 +L 138 +L 25 +L 19 +L 1 +R 45 +L 120 +R 34 +R 863 +R 44 +R 753 +R 26 +L 40 +L 4 +L 56 +L 80 +L 273 +R 153 +L 71 +L 78 +R 78 +L 34 +R 5 +R 36 +L 46 +R 22 +R 88 +R 93 +L 23 +L 56 +R 19 +L 50 +L 46 +L 637 +R 57 +L 43 +L 14 +R 301 +R 90 +L 82 +R 660 +L 46 +R 70 +L 93 +R 43 +R 11 +R 13 +L 67 +L 95 +L 79 +R 20 +R 446 +R 8 +L 25 +L 175 +L 84 +L 94 +R 26 +L 48 +L 431 +L 769 +R 13 +R 52 +L 291 +L 74 +R 804 +L 98 +L 862 +L 44 +R 42 +L 842 +L 65 +L 35 +L 55 +L 76 +R 31 +R 27 +R 34 +L 62 +L 49 +R 301 +L 5 +R 54 +R 977 +L 731 +R 91 +R 63 +L 15 +R 35 +R 42 +R 53 +R 16 +L 31 +R 26 +R 74 +L 35 +L 54 +R 45 +R 744 +L 725 +R 688 +R 24 +L 81 +L 6 +R 56 +R 44 +R 3 +R 97 +L 3 +L 97 +L 45 +R 62 +R 514 +R 69 +R 97 +R 303 +L 94 +R 594 +R 87 +R 15 +R 56 +R 42 +L 19 +R 19 +L 48 +L 995 +L 774 +L 99 +R 16 +R 3 +R 97 +L 93 +L 12 +R 53 +R 56 +R 138 +R 6 +L 564 +R 49 +L 761 +R 25 +L 197 +L 74 +L 93 +L 33 +L 33 +R 77 +R 58 +L 792 +L 539 +L 871 +R 65 +L 4 +R 39 +L 55 +L 45 +R 97 +L 50 +L 47 +L 92 +R 63 +R 129 +R 21 +L 68 +R 47 +R 58 +L 818 +L 40 +R 36 +R 12 +R 352 +L 19 +L 81 +L 23 +R 23 +L 49 +R 788 +L 39 +R 534 +R 881 +R 55 +L 301 +R 96 +L 91 +L 87 +R 13 +R 36 +R 73 +L 9 +R 45 +L 26 +L 93 +R 31 +L 76 +L 65 +L 52 +L 64 +L 59 +R 87 +R 72 +R 505 +R 95 +L 927 +L 72 +R 99 +R 97 +R 81 +L 73 +R 30 +R 65 +R 90 +R 995 +L 801 +R 16 +R 15 +R 85 +R 65 +L 24 +R 29 +L 470 +L 79 +L 39 +L 82 +L 89 +R 89 +L 53 +R 815 +L 370 +L 252 +L 77 +R 510 +R 64 +R 34 +R 4 +R 25 +R 97 +L 97 +R 42 +R 42 +R 854 +L 38 +R 51 +L 442 +L 9 +L 95 +R 66 +R 16 +R 8 +L 51 +L 60 +R 5 +R 11 +R 8 +R 14 +R 998 +L 63 +L 94 +L 85 +R 22 +L 934 +L 19 +R 53 +L 68 +R 68 +R 22 +R 78 +R 49 +R 54 +L 407 +L 96 +R 281 +R 73 +L 54 +L 353 +L 47 +R 58 +L 60 +L 98 +L 261 +L 21 +R 51 +L 69 +R 27 +L 66 +R 574 +R 41 +L 97 +L 179 +L 41 +L 713 +R 93 +L 39 +R 7 +L 7 +L 22 +L 78 +R 28 +L 96 +R 68 +L 31 +L 85 +R 38 +L 83 +L 74 +R 35 +R 5 +R 95 +L 66 +L 34 +R 85 +L 52 +R 67 +L 5 +L 78 +R 83 +R 58 +R 927 +L 50 +L 35 +L 3 +R 72 +L 69 +R 58 +R 66 +L 42 +R 214 +L 96 +R 640 +R 41 +R 467 +L 95 +L 65 +R 12 +L 54 +R 15 +L 97 +L 99 +R 35 +R 71 +R 58 +L 45 +R 16 +R 74 +L 19 +L 55 +L 66 +L 519 +R 128 +R 88 +R 69 +L 38 +L 262 +L 37 +L 70 +R 7 +L 35 +L 65 +R 70 +L 70 +R 42 +L 138 +R 93 +L 97 +R 15 +L 15 +L 86 +R 91 +R 97 +L 3 +L 540 +R 629 +L 88 +R 47 +R 8 +L 2 +L 753 +R 84 +L 84 +L 22 +L 78 +R 44 +L 44 +L 23 +L 63 +L 44 +L 62 +R 66 +L 953 +R 79 +L 49 +R 97 +L 48 +R 44 +L 44 +L 77 +R 1 +R 776 +R 637 +L 15 +L 78 +L 33 +L 78 +R 288 +L 63 +R 42 +L 83 +R 83 +L 177 +L 43 +R 20 +L 78 +R 6 +R 48 +L 76 +L 66 +R 870 +R 92 +L 20 +R 603 +L 494 +L 85 +L 18 +R 52 +R 59 +R 7 +L 10 +R 10 +R 36 +R 464 +L 33 +R 13 +L 56 +R 76 +R 60 +R 21 +R 20 +L 21 +L 25 +L 55 +R 23 +R 77 +L 27 +L 84 +L 52 +R 76 +L 90 +L 623 +R 81 +R 14 +R 84 +R 21 +R 53 +R 647 +R 35 +L 857 +L 78 +L 22 +R 10 +L 991 +R 38 +L 35 +L 52 +L 76 +L 89 +L 83 +L 37 +R 37 +R 20 +L 20 +R 742 +L 91 +R 49 +L 36 +R 685 +R 852 +L 1 +L 821 +L 702 +L 148 +R 20 +L 49 +R 41 +L 78 +L 67 +L 56 +L 50 +L 84 +L 111 +L 312 +L 83 +L 24 +R 25 +R 99 +L 998 +L 502 +L 72 +R 72 +R 77 +L 77 +L 296 +L 904 +R 58 +R 142 +R 825 +L 612 +R 46 +L 33 +L 537 +R 15 +R 63 +R 33 +L 569 +R 20 +R 711 +R 98 +R 40 +L 34 +L 66 +R 73 +R 20 +R 20 +L 91 +R 48 +R 30 +L 74 +L 623 +L 51 +L 10 +R 58 +L 99 +L 450 +R 49 +L 79 +R 79 +R 20 +L 20 +R 95 +L 89 +R 63 +R 31 +L 76 +R 172 +L 89 +L 7 +L 705 +R 5 +R 53 +R 77 +L 44 +R 32 +L 18 +L 95 +L 94 +L 85 +R 29 +R 245 +R 31 +L 931 +L 2 +R 102 +L 33 +R 33 +R 57 +R 19 +R 46 +L 34 +L 58 +R 74 +R 60 +R 87 +R 519 +L 70 +L 4 +R 4 +R 44 +L 44 +R 23 +R 77 +L 39 +L 48 +L 888 +R 82 +R 74 +R 20 +R 799 +R 333 +R 11 +R 56 +L 42 +L 77 +L 57 +R 153 +R 23 +R 436 +R 64 +R 45 +R 534 +L 35 +L 44 +L 33 +L 167 +L 19 +R 50 +L 6 +R 93 +L 15 +L 93 +R 37 +L 347 +L 4 +R 426 +R 53 +L 61 +L 19 +R 5 +R 24 +R 310 +R 31 +R 525 +L 8 +R 27 +L 9 +L 39 +L 87 +R 52 +L 489 +R 29 +L 66 +L 93 +L 45 +L 16 +L 91 +R 573 +R 47 +L 75 +R 452 +R 48 +R 65 +L 72 +R 407 +R 20 +R 74 +R 31 +R 77 +L 4 +L 28 +L 507 +L 26 +R 34 +R 37 +L 33 +R 155 +L 6 +L 79 +R 55 +R 292 +R 3 +R 17 +R 81 +R 635 +L 47 +L 81 +L 638 +R 838 +R 87 +R 413 +R 62 +L 62 +L 11 +R 39 +R 19 +L 73 +L 86 +R 74 +R 38 +R 57 +L 17 +L 982 +L 58 +R 82 +L 97 +L 727 +L 26 +R 99 +L 9 +R 78 +R 22 +L 408 +L 378 +R 89 +R 74 +L 267 +L 39 +L 593 +R 52 +L 55 +L 897 +L 92 +L 91 +R 97 +R 58 +R 28 +L 317 +R 17 +R 4 +R 16 +L 69 +R 584 +L 61 +L 94 +L 12 +L 23 +R 46 +L 91 +L 867 +L 233 +L 75 +R 44 +R 610 +R 21 +R 76 +R 2 +L 74 +L 54 +R 15 +L 79 +L 77 +R 66 +R 65 +R 269 +L 9 +R 558 +R 70 +R 49 +L 378 +L 10 +R 43 +R 61 +L 93 +R 13 +L 13 +R 31 +R 61 +L 16 +R 24 +L 24 +R 34 +L 10 +L 196 +R 91 +R 5 +R 38 +R 83 +L 84 +R 63 +L 489 +L 15 +R 144 +R 40 +R 20 +R 465 +L 521 +L 44 +L 612 +R 54 +R 7 +L 79 +R 30 +L 73 +L 86 +L 67 +R 26 +R 89 +R 51 +L 40 +L 26 +R 26 +L 5 +L 35 +L 60 +L 31 +L 78 +L 6 +R 41 +L 5 +L 563 +L 15 +R 44 +L 95 +L 45 +R 53 +L 82 +R 58 +L 94 +L 82 +R 12 +L 90 +R 756 +L 747 +L 31 +R 51 +L 14 +R 163 +L 72 +L 31 +R 3 +L 14 +R 14 +L 33 +R 33 +L 6 +R 964 +R 48 +L 67 +R 30 +R 31 +L 46 +R 79 +R 767 +L 1 +L 7 +R 63 +R 528 +R 32 +R 85 +L 43 +R 56 +L 63 +L 82 +R 738 +R 21 +L 96 +R 8 +R 82 +L 15 +L 366 +R 6 +R 33 +L 27 +L 240 +L 84 +L 861 +R 53 +L 98 +R 86 +R 92 +R 314 +L 520 +R 106 +L 15 +R 15 +R 29 +L 532 +L 75 +R 841 +L 97 +L 45 +L 49 +R 92 +L 69 +L 65 +R 26 +R 44 +L 86 +L 14 +R 58 +L 47 +L 13 +L 98 +L 7 +R 193 +R 14 +L 91 +L 18 +R 9 +R 40 +L 55 +L 21 +R 43 +R 85 +R 606 +L 92 +R 94 +L 55 +R 20 +R 36 +L 1 +L 99 +R 99 +L 9 +R 9 +L 72 +R 71 +L 78 +L 34 +L 887 +L 46 +L 94 +R 74 +R 66 +L 857 +L 9 +L 34 +R 953 +L 253 +R 48 +L 82 +R 59 +L 25 +L 85 +R 49 +R 49 +R 87 +R 9 +R 69 +R 22 +R 9 +R 91 +L 106 +R 283 +R 97 +R 68 +L 42 +L 39 +R 39 +R 939 +R 61 +L 575 +R 75 +R 36 +R 65 +L 1 +L 47 +L 13 +R 60 +R 99 +L 599 +R 8 +L 20 +L 89 +L 99 +L 746 +L 407 +R 93 +R 60 +R 30 +L 20 +L 47 +R 67 +L 30 +L 65 +L 582 +L 53 +L 49 +R 49 +L 38 +L 98 +R 36 +R 28 +L 859 +L 40 +R 40 +L 80 +R 28 +L 33 +L 70 +L 96 +R 82 +R 19 +R 343 +R 38 +L 799 +L 1 +L 78 +R 78 +R 39 +L 37 +L 802 +L 18 +R 18 +L 263 +L 13 +L 80 +R 64 +R 82 +R 40 +R 70 +L 68 +L 232 +L 61 +L 770 +R 40 +L 24 +R 7 +R 8 +R 97 +L 97 +R 86 +R 14 +L 861 +R 46 +R 15 +R 68 +R 146 +R 30 +L 44 +L 829 +L 71 +L 5 +R 42 +R 74 +L 66 +L 79 +R 71 +R 263 +L 77 +L 18 +R 33 +R 385 +L 8 +R 85 +L 4 +R 66 +R 62 +R 32 +R 205 +R 336 +L 82 +R 994 +L 80 +L 88 +L 88 +L 64 +R 44 +L 20 +R 10 +R 88 +R 28 +R 41 +R 35 +R 85 +L 84 +L 38 +L 398 +R 47 +R 873 +L 96 +R 96 +R 1 +L 12 +L 98 +L 51 +R 18 +L 39 +R 881 +R 90 +R 82 +R 28 +L 23 +L 70 +R 93 +L 39 +L 242 +L 68 +R 49 +L 47 +R 47 +R 87 +R 13 +L 48 +L 5 +L 47 +R 595 +L 95 +R 145 +L 45 +R 876 +R 64 +L 97 +R 64 +L 48 +R 31 +L 90 +R 12 +R 88 +L 956 +L 44 +L 44 +R 96 +R 16 +R 548 +L 16 +R 891 +R 9 +L 45 +R 34 +R 11 +L 28 +L 23 +L 68 +L 71 +L 42 +L 82 +R 659 +L 26 +L 19 +L 41 +L 28 +L 1 +R 70 +R 76 +L 87 +L 959 +R 70 +R 47 +L 47 +R 94 +R 34 +R 32 +L 258 +R 898 +R 50 +R 177 +L 15 +R 88 +L 73 +R 282 +R 91 +L 78 +R 48 +L 65 +R 95 +R 55 +L 55 +R 1 +L 78 +R 78 +R 49 +R 89 +L 39 +R 98 +R 70 +R 32 +L 76 +R 96 +L 82 +L 10 +R 72 +L 32 +R 32 +R 792 +R 782 +R 226 +L 609 +R 9 +L 83 +L 37 +L 77 +R 9 +L 88 +L 97 +L 7 +R 880 +R 1 +L 1 +L 96 +L 4 +L 14 +L 86 +L 21 +L 63 +L 29 +L 69 +R 82 +R 33 +L 43 +R 11 +R 35 +L 277 +L 1 +L 722 +L 21 +R 85 +L 4 +L 896 +L 32 +L 49 +L 19 +L 568 +R 68 +L 387 +L 79 +R 67 +L 92 +R 9 +L 18 +L 49 +L 15 +L 53 +L 47 +L 36 +L 333 +R 33 +L 43 +L 57 +R 13 +L 38 +R 34 +R 89 +L 698 +R 98 +L 81 +R 83 +R 6 +R 32 +L 20 +L 40 +L 46 +L 14 +R 82 +L 751 +L 51 +R 372 +L 92 +L 60 +R 74 +L 51 +R 29 +L 615 +R 45 +L 206 +R 606 +L 55 +L 11 +R 10 +R 56 +R 77 +L 75 +L 98 +L 602 +R 98 +R 90 +R 610 +R 59 +R 41 +R 21 +L 21 +R 24 +R 71 +L 72 +L 859 +L 645 +L 45 +R 368 +R 32 +L 14 +L 14 +L 46 +L 212 +L 88 +L 858 +R 58 +L 85 +R 383 +R 2 +R 98 +L 59 +R 446 +L 81 +L 85 +L 168 +R 49 +L 24 +L 40 +L 26 +R 66 +R 24 +R 80 +L 14 +L 28 +R 518 +L 5 +L 48 +L 539 +L 47 +L 55 +R 30 +L 637 +L 11 +R 56 +R 22 +L 7 +R 89 +L 65 +R 328 +L 84 +R 80 +L 63 +L 36 +L 96 +R 32 +R 76 +R 834 +L 23 +L 364 +L 29 +L 9 +R 91 +R 58 +R 66 +L 30 +R 30 +R 56 +L 756 +R 4 +R 26 +R 3 +R 29 +L 81 +R 537 +L 19 +R 1 +R 93 +R 889 +R 387 +R 31 +L 28 +L 708 +R 79 +L 43 +R 224 +L 26 +L 98 +L 3 +R 3 +R 16 +L 33 +R 21 +R 5 +R 34 +R 57 +L 30 +L 287 +R 494 +L 77 +L 473 +L 7 +L 71 +R 551 +L 898 +L 81 +R 79 +R 56 +L 56 +L 291 +R 57 +L 366 +R 638 +R 462 +L 778 +R 53 +R 52 +R 23 +L 50 +R 85 +L 425 +L 60 +R 66 +L 66 +L 85 +L 10 +L 5 +L 99 +L 50 +R 949 +L 82 +L 28 +L 490 +R 512 +R 88 +R 36 +R 64 +L 181 +L 66 +L 23 +R 72 +L 751 +L 51 +L 75 +R 24 +R 65 +L 30 +L 88 +R 675 +L 93 +R 96 +L 74 +R 42 +R 1 +L 43 +L 14 +R 606 +L 492 +R 99 +R 1 +L 4 +R 94 +L 90 +L 6 +L 245 +L 50 +R 92 +L 38 +L 53 +R 93 +R 25 +L 81 +R 16 +L 653 +R 371 +R 25 +R 404 +R 70 +R 30 +R 76 +L 976 +R 9 +R 9 +R 80 +L 98 +L 387 +L 43 +R 30 +L 22 +L 13 +R 11 +L 76 +R 812 +R 43 +R 13 +R 28 +L 82 +L 614 +R 54 +R 446 +R 195 +L 95 +R 71 +R 5 +L 59 +L 63 +L 57 +L 60 +L 37 +R 44 +L 444 +L 75 +L 96 +L 29 +L 5 +R 1 +R 63 +L 59 +L 242 +R 76 +R 963 +R 16 +L 417 +R 998 +L 91 +R 37 +L 6 +L 34 +L 871 +L 51 +R 22 +L 90 +R 6 +L 56 +R 40 +R 66 +L 90 +L 686 +L 29 +L 6 +R 78 +L 84 +R 32 +R 62 +R 88 +L 285 +L 46 +L 60 +R 1 +L 310 +R 69 +L 12 +L 88 +R 884 +R 28 +R 16 +L 39 +L 89 +L 52 +L 28 +R 263 +R 417 +R 47 +R 107 +R 69 +R 40 +R 37 +L 15 +L 60 +R 275 +R 10 +L 94 +L 96 +R 80 +L 2 +L 98 +R 47 +L 47 +R 294 +R 93 +R 496 +L 60 +R 88 +R 89 +R 14 +R 886 +R 6 +R 25 +R 19 +R 76 +R 6 +R 68 +R 11 +R 42 +L 553 +L 923 +R 8 +L 885 +R 98 +R 2 +L 33 +L 84 +L 83 +L 2 +L 83 +R 421 +R 44 +R 20 +R 80 +R 28 +R 92 +L 473 +R 53 +R 7 +L 87 +R 22 +L 75 +R 81 +L 54 +R 34 +L 67 +L 81 +R 40 +R 89 +L 43 +R 54 +R 37 +R 13 +R 50 +L 2 +L 25 +L 73 +R 73 +L 54 +R 65 +L 84 +L 17 +R 74 +L 39 +L 98 +R 80 +L 14 +L 19 +L 510 +R 43 +R 25 +L 88 +L 37 +R 30 +R 327 +L 69 +R 75 +L 2 +R 39 +R 511 +L 11 +L 26 +R 36 +L 10 +R 30 +L 30 +L 69 +L 47 +L 84 +L 98 +R 898 +L 62 +L 93 +L 725 +R 373 +R 639 +R 42 +L 774 +L 68 +L 32 +R 25 +R 12 +R 82 +L 619 +L 98 +L 202 +L 18 +L 58 +R 90 +R 63 +R 5 +L 63 +L 19 +R 13 +L 413 +R 14 +R 606 +L 520 +L 58 +R 83 +L 25 +L 97 +R 98 +L 1 +L 74 +L 876 +L 81 +R 33 +R 17 +L 57 +L 62 +L 51 +L 498 +L 65 +R 214 +R 982 +L 82 +L 78 +R 94 +L 716 +R 71 +L 71 +L 6 +R 42 +R 99 +L 35 +R 6 +R 30 +L 88 +L 48 +L 12 +R 66 +L 45 +R 76 +L 29 +L 653 +L 103 +R 1 +R 99 +L 17 +R 17 +L 231 +R 71 +R 260 +R 16 +R 44 +R 40 +R 80 +R 220 +R 116 +L 11 +L 505 +L 37 +R 37 +L 84 +R 866 +L 810 +R 28 +R 23 +R 32 +L 8 +R 53 +L 41 +R 2 +L 11 +L 28 +R 731 +L 53 +R 84 +R 38 +L 65 +L 62 +L 95 +L 75 +L 86 +R 61 +L 439 +L 76 +L 85 +R 44 +R 77 +R 91 +L 987 +R 6 +L 88 +R 57 +R 82 +R 18 +R 81 +L 909 +L 72 +R 34 +R 97 +L 31 +L 50 +L 29 +R 992 +L 73 +L 708 +R 36 +R 32 +L 61 +L 83 +R 54 +L 21 +L 93 +R 42 +R 39 +R 85 +L 29 +R 67 +R 97 +L 90 +L 507 +L 59 +R 70 +L 52 +L 59 +L 74 +L 8 +L 58 +R 75 +R 94 +L 28 +R 299 +R 461 +R 451 +L 855 +L 33 +L 20 +L 62 +L 51 +R 9 +L 88 +R 73 +L 760 +R 696 +L 55 +R 634 +L 77 +R 580 +L 58 +R 55 +R 62 +R 638 +R 47 +L 847 +L 62 +L 238 +L 4 +L 26 +R 44 +L 14 +L 99 +L 774 +L 40 +R 13 +R 366 +R 65 +R 36 +R 33 +L 93 +L 86 +R 304 +L 25 +R 42 +R 95 +R 95 +R 68 +R 960 +R 40 +R 734 +L 634 +R 116 +R 84 +R 98 +R 17 +L 15 +L 58 +L 42 +L 57 +L 43 +R 44 +L 25 +L 19 +L 73 +L 41 +L 19 +R 33 +L 58 +L 39 +L 29 +R 35 +L 9 +L 928 +R 72 +L 44 +R 77 +R 23 +R 92 +R 8 +R 648 +L 35 +L 67 +L 85 +L 27 +L 76 +L 558 +R 98 +L 61 +R 71 +R 267 +R 67 +R 58 +L 65 +R 57 +L 16 +L 64 +R 88 +R 943 +L 43 +R 41 +R 695 +L 95 +L 36 +R 95 +R 68 +R 59 +L 53 +R 26 +R 11 +R 28 +L 717 +R 1 +L 23 +L 83 +R 41 +L 501 +R 91 +L 48 +R 57 +L 560 +L 8 +R 75 +R 36 +R 67 +R 19 +L 41 +L 58 +R 17 +R 69 +L 16 +L 68 +L 46 +L 74 +R 16 +L 64 +R 75 +R 67 +L 13 +L 36 +R 86 +L 53 +R 32 +R 21 +R 8 +L 79 +L 54 +R 92 +R 34 +R 29 +R 84 +R 86 +L 30 +R 53 +R 77 +L 28 +R 64 +L 98 +L 38 +R 3 +L 3 +L 60 +L 40 +L 28 +L 14 +L 88 +L 70 +R 94 +L 61 +R 30 +L 63 +R 27 +R 22 +L 93 +R 44 +L 3 +L 46 +R 9 +R 2 +R 44 +R 50 +L 16 +L 36 +L 32 +R 4 +R 45 +L 16 +R 24 +L 36 +R 35 +L 40 +L 39 +R 5 +R 33 +R 10 +R 33 +L 38 +R 49 +L 27 +R 20 +R 18 +R 7 +R 15 +L 28 +R 19 +R 16 +L 20 +L 3 +L 17 +R 40 +L 39 +L 40 +R 6 +L 36 +R 50 +L 35 +R 36 +L 49 +L 8 +R 39 +L 30 +L 9 +R 34 +R 39 +L 35 diff --git a/aoc25_1/src/aoc25.c b/aoc25_1/src/aoc25.c new file mode 100644 index 0000000..16118c1 --- /dev/null +++ b/aoc25_1/src/aoc25.c @@ -0,0 +1,43 @@ +#include +#include + +extern int left(int a, int b); +extern int right(int a, int b); +extern int count(int a, int b); + +int main(void) { + int dial = 50; + int rotation; + char direction[2]; + int password = 0; + + FILE *fptr = fopen("aoc25_1.txt", "r"); + + if (fptr == NULL) { + printf("Error, puzzle input aoc25_1.txt not found\n"); + return (1); + } + + printf("DIAL starts at %d\n", dial); + + while (fscanf(fptr, "%s %d", direction, &rotation) == 2) { + printf("DIRECTION %s ROTATION %d\n", direction, rotation); + + if (strcmp(direction, "L") == 0) { + dial = left(dial, rotation); + printf("DIAL is now %d\n", dial); + } + + if (strcmp(direction, "R") == 0) { + dial = right(dial, rotation); + printf("DIAL is now %d\n", dial); + } + + password = count(password, dial); + printf("PASSWORD is now %d\n", password); + } + + fclose(fptr); + + return (0); +} diff --git a/aoc25_1/src/count.s b/aoc25_1/src/count.s new file mode 100644 index 0000000..91ea3ec --- /dev/null +++ b/aoc25_1/src/count.s @@ -0,0 +1,12 @@ + .global count + .type count, "function" + .p2align 4 + +count: + cmp w1, #0 + b.eq count1 + b finish +count1: + add w0, w0, #1 +finish: + ret diff --git a/aoc25_1/src/left.s b/aoc25_1/src/left.s new file mode 100644 index 0000000..e0badf2 --- /dev/null +++ b/aoc25_1/src/left.s @@ -0,0 +1,17 @@ + .global left + .type left, "function" + .p2align 4 + +left: + subs w0, w0, #1 + b.lt loop99 + b left1 +left1: + subs w1, w1, #1 + b.eq finish + b left +loop99: + mov w0, #99 + b left1 +finish: + ret diff --git a/aoc25_1/src/right.s b/aoc25_1/src/right.s new file mode 100644 index 0000000..acb768e --- /dev/null +++ b/aoc25_1/src/right.s @@ -0,0 +1,18 @@ + .global right + .type right, "function" + .p2align 4 + +right: + adds w0, w0, #1 + cmp w0, #99 + b.gt loop0 + b right1 +right1: + subs w1, w1, #1 + b.eq finish + b right +loop0: + mov w0, #0 + b right1 +finish: + ret