aoc2025

Advent of Code 2025
git clone git://git.rr3.xyz/aoc2025
Log | Files | Refs | Submodules

input.txt (18665B)


      1    4  82 68 85 74 6  56 14 2  8669 66 13 927  3 235 44   52 16  37  61 82 1774  96 15 775 789 91 374 6579 714 42  269   82 592 53 99 1   6 8   351 553 2122 9  85 8   4   9 98 562  7 8111 3   1958 133 44  458 84 5439 78 96 68 48 242   46 441 42 18 51 31  89 563 5541 964 4393  74 79  26 288 385 11 183 85 94 7439 444 85 587 56 73  9   43 285 242 32   15 247 77   52  75  6  71 75   85 96 143 51  36   1 58 7373 54  3572  5 64 763  76 34 79   43 651 2121 731 3   76  65   372  28 61 8  553 638 472 56 7   25 796  992 356  3 54  7 63   9 192 31 5  2  19 78  183 5868 2762 33   3 516 33  448 7737 99 72 426 96 21 4789 292 69  2  5   324 234  1  699 96 33 676 14 258 63 9342 856 8  994 23 48   4   66   4  6 35  522  74 37  62 831  87 282 139 99  1 55 5  917 5818  3 59  461 4773 78 58  2 98    4 981 468 658 973 6   898   9 165 45 69   85   7 2  69   44 218 21 77  6 989 7  66  7171 663 26 8  9797 85    2 239 92 54 14 7     9 6  116 8827 71 244 276 68  4  95 83 582  44    2  9  698 8236 768 45   197 41 341 62 68 7   56  433 8   88 94 5  74 28  14 28  8 934  22  43 4339 67  62 57 48 28 453 78 82   542 36 27  32 3826 137  532  88 498 4734 15  7 11 814 49  9 38  15    5 69  7 741 45 829 19  83  3 8  111 612  12 9  1  78 91 637  2 659 2    12 12 64 37 352 44 95 4   2916 2  842 3548 51  161 2   48  9    8 822 26  53 62     6 23 79  27 35  2  7  12 37 994 926  4 762  96 558 8586 81   2 81  34 41   51     5 7463 9366 13   95 6   71 2   845 26 414   975 2141 6   81 72 773 47 9589 374 42 81  98 3697 456 26 6855 65 1  54 9  764 97 819 726 7249 74 766 64 64   86 73  936 624 39   3 969 63 88 851 9447 7974 172 578  1 9  7   6431 6   448 487  1 6129 352 886 85 84 6   869 65 145 453 63 23 53 57 52 94 463 232 6   566 182  69 826 54  25  5 2    63 336  7338 597 99 11 955 811 51  9 77  4 246 9   43 31 84 196 61 32 512 4271 7134 1  553  5   35 68 52 65 3   31 179 4195  5 67 2  462 861  3 389 99 92 55 89 113 93 84 95  55 296 44 536 343 95   2 278 916 321 76 49 88 259  946 29 4  18 48 224 85 492  71 15 781 66 77 13  59 7727 24 66  363 57 1984 1  657 17  5 68  68 313  27 53 32  632 771 649 527 45    6 9868 7   98 62    92 34  799 5  76 5  8113 95 313 94 15 53  2593 363 376 221 46 2139 9     3 874 22   43 7  89   7736 9   74    9 84 213 932 6    16 6   3412 3   146 27  9 95   97 2    999  918 17 9461  44   4 158 85 25  144    8 877 921 885 85 187  858 994 29  4747 53 271 469 17 972 11 71 312 149  2 75   67 48 24 27 17  47 4731 9291 155 58 6  146 318  16 147 36   99 4    9172 979 13 7963 5   938  8376 95  6 256 488   17 5  874 8723 45 496 6   621   2  96 42 716 194 32   6 441 6176 86  2 75   4 58 56 574  916 65    2   44 17 954 93   9 91 1   266  81 5484  45  5 46 46 54  26  4  33 226 732 625 313  4 64 32 68  4   8 56  6  98  27 937  621 74 52 631 91 196   5 48 75 61 93 38 27 11 93   16 519 288 991 27  371 5  969 94 468 729  723  4 78 892  268 82 875 83    2   1 5   518 27 1      8 55 711 3   917 9  7   77 19  641 548 2833 42 657 713 72 4   2253 29 8332  7 28 14  288 547 926 86 36 6693 67 653 27 61 1293 7972 176 745 478 46  84 6    65 231  876 78 57 82   4 64 61 32 379   3 3     54  75 3  294 374 96   63 882  47 5  458 56 83 49 513 99 153 7753 74 48 46  36 193   23 997 8  6113   4 1256 1788 615  46 64 32 45 5634 32 773 31 862   9 9199  89 62  54 61 33 45  93  39 683 82 75  345 3    2 173 45 97 82 79 676 149  3 88 7  4439 412 999 51  47  33 67 942 18 18 4388 1  132 8   468 3    12 28 99  79 56 84 83 71 35 5  81 5   715 79 73 69 258    7 53 173 39  2  5  47  64 37 8258 62 4481 915  78 5  62 67 48  624 4978 593 7  8   1 187 729 157 68  2  93   3721 132 28 6794 43   4 15 59 994 274 88   6 727 753 1747 5   1  8 7  871 66  65 18 42  558    7 95 6  5866 4473 2    7 483 946 98    56 4777 2  4   556 388  2 84  84
      2    6  87 39 72 56 12 69 79 58 4378 86 49 146  5 412 85 7751 577 69 813 55 9942 753 49 734 587 15 779 148  499 961  55   93  93 51 73 54 69 6   539 734 6659 23 88 39  7 894 52 69  11 6536 269 7963 227 63  871 76 7929 51 31 48 84 921  571 887 32 65  8 24 335 373 1259 216 6154  79 627 36 827 29  17 977 69 35 6987 822 41 421 43 79  7  222 569 994 196  51 472 869 511 174  9  71 477  64 38 265 64  69 348 14  346 493 1246  7 38 673  82 34 3337 41 863 2826  78 41  356 61   314  46 29 93 841  71 889 38 95  64 366 3633 228 18 84  5 88 752 292 93 58 31 17 181 174 1928  443 76 636 741 323 678  261 86 99 128 79 41 5499  81 241 48 278 326 4914 39 893 47 81 249 61 889 98 9428 472 68 34  99 135  43  56 112  3 99  984  64 32  54 342  96 957 467  6  5 28 33 631  383  3 785 757 688   4 99  9 46    2 486 51  923 657 36  698 318 721 67 878  52   8 8  42  415 325 15 77  8 243 89 23  3871 638 25 35 6859 165  51  53 96 49 19 6849 92 27 468 9576 75 299  51 63 15  41 68 7671 667   8  3 3555 4911 645 8521 669 13 473 62 44 82  17 1432 8   94 26 6  43 47  23 72  5 536  92 795 3884 56 232 31 34 72 717 24 46    99 46 34  74 5186 5964  13 442 896 5464 91  5 76 696 2   9 668 14   98 99  3 241 18 956 72  22 43 95 117 2577 53 17 4  12  3 499  9 883 57   13 87 96 75 75  22 69 3   8117 89 194 4372 943 337 5   76  39 549 989 99  42 1346  55 92 69 229 14  3  8 766 55 825 717  4 421 213 936 7324 11  63 81  31 845  5222  12 4762 9197 57 1132 21  41 17  116 59 6445  327 6249 47  31 81 159 24 6396 439 85 518 26 1854 425 79 1422 79 32  4 17 288 32 472 566 9696 13 152 48 329  84 86  84  744 559  5 974 92 93 146 588  1543 331 643 72 5  17  2722 1   147 983  2 3271 597 788 21 18 56  349 22 141 624 83 52 98 24 39 96 828 677 422 856  18 154 166 29  59 52 134  83 7468 6126 781 23 97 921 656 42 59 4   6 324 796 63 55 72 47  12 45 316 6694 7486 68 622  5  591 35 83 81 185 61 532 4278  8 97 52 347 975 89 631 98 41 36 44 661 92 45 29 663 695 31 876 685 52  22 375 116 965 41 63 87 7183 991 86 45 17  2 987 97 9842 21 52 899 71 72 52  51 2548 35 189 393 58 7517 7  986 86 56 252 25 186  16 26 892 187 692 34  445 991 868 6467 91  98 9313 314 657 877 99 25 78 5927 14 894 56 73 67  6148 579 115 334 69  293 98    6 315 484  16 97 562  4861 1   65   31 81 135 368 86  624 54  6126 44  497 97 46 66   11 9    461  178 48 1756 846 391 228 47 38  8212  39 949 443 321 43 958  838 952 145 9113 71 144 438 34 654 3  7  719 588 78 42  932 71 86 52 24 529 9649 2131 629 14 4  56  5289 12 214 76 1752 27    393 954 98  933 13  143  6962 72  5 813 832   15 86 677 8174 94 778 3   853  24  53 62 862 37  21  56 728 3828 37 56 67 239 57  5 753  993 95    1   47 81 683 46  73 59 97  193 651 7694  54  8 94 39 631 27  7 815 363 142 542 487  3 42 59 935 6  72 498 22 36 153 294  171 87 74 746 54 764  17 15 76 77 39 62 68 24 31 4247 535 659 691 76  985 7  552 21 418 297  398 46 16 525 8772 45 816 21   36   4 767 553 52 58   832 16 921 72  528 3  312 34 95  169 196 8917 75 428 174 76 25  1332 18 3336 75 87 176 693 127 174 76 62 9154 67 437 95 9  9627 1477 992 155 693 275  5 1519 49 863 3753 74 29 46  43 56 72 46 453  63 77   642  21 94 857 229 283  67 896 499 8  346 15 24 72 197 83 857 9616 78  7 37  37 636  453 937 65 3688  59  421 9591 7725 75 39 97 33 2451 29 559 34 328  32 6495 784 18 864 98  6 45  683 57 919 26 641 858 168  8 842 44 18 13 12 524 597  7 45 31 723  122 522 3  926 773 23 632 64 58 3548 9  292 458 398 58   96 64 24  68 75 89 64 62 66 2  67 156 211  9 34 88 673   12 52 817 886 36 9  36  36 21  158 18 9551 396  22 33 99 54 61  558 9476 648 8  54  2 853 789 394 197 9  4262 2485 488 43 1364 99 799 99 32 54  674 53  35 586 24  7623 97 34  7 2  62  15  57 27 789 439   53 84 4  7226 4115 8   96 398  89 484   83 6751 74 5   922 514 47 95 519
      3  827 446 82 72 76 21 31 32 96 3257 21 21 171  2 31  17 9178 977 11 469 58  712 162 4    1 132 91  84 72   741 576  55 7822   7 53 37 14 63 284 386 524 2824 67  9 61  5 116 27 97  13  145 259 2786 921 78 5846 2  9264 82 95 5  43 365 2841 795 4  26  1 19 763 518 7755 29  7363 684 489 72 227 93  13 694 81 45 848  661 85 32  99 92 35  972 676 327 4387 21  39 339 794 911  2 639 6869 23 81 38  261 26 812  3  313 941 168  65 23 2966 11 37 8918  5 334 947   62 394 259 6416  11 232 39 15 73   53 751 25 51 658 525 8963 248 86 47  5 97 354 59  62 56 39 82 286 391 3347  669 47 382 818 749 896  666 15 78 955 96 87 4981   7 817 53 298  77 2238 29  52 16 8  191 48 292 23 3896 89  88 68  2  7254 181 87 896 27 128  44  97 641 97 646  12  94 631  4 27 21 52 671   15 18 374 191 886   8 75 51 65   64 812 4   841 215 487 164 313 575 51 329 978 339 14 73 6976  56 2  82 97 843 33 783 54   248 59 48  577 5766 39  41 91 3  34 5918 46 47 894 6959 88  32  68 62 96  86 53 6996 336 929  4 2236 9665 148 9481 395 26 632 22 56 34  75 8461 43  48 14 42 47 851 61 72  9 835 834 812  151 19 353 46 21 76 796 67 89    57 75 28 697 9918 4272  55 226 167 43   97 53 38 561 4  53 768 796 791 5  97 981 9  466 61  82 23 59 263 4475 11 75 65 18  5 559  6 927 664  54 29 25 66 1   55 94 11  4945 54  67 7998 253  41 737 86  82 257  59 35  39 2111 775 98 21 726 77 68 14 517 24 884  72 86 18  847 455 922  14 396 52 866 8682 2461 594 2826   87 78 5235 549 76 756 213 22 3512 9959 1651 881 12 75 32  86 718   88 24 998 94  117 797 95 1895 56 74  7 77 968 93  12 528 11   56 252 94 1635 21 638 96  54  238  1 576 54 19 866 994    79 513 175 12 52 771 5177 83  49  483 59 878  287 115 63 34 14  534 51 946 996 71 82 46 33 17 51 466 832 984  67   5 832 155 28 894 98 166 188 1848 4874 92  34 24 162 191 24 62 2   5 824 827 11  8 57 3   93 96 141 6579 419  89 652  5 5713 58 37 91 552 85 393 829  52 81 76 44  626 74 16  98 11 75 59 489 82 77 14 279 512  3 181 675  8  93 183 394 168 69 21 21 8185 951 83 51 68  4  29 97 4254 23 51 333 28 62 31 919  553 26 258  68 62  242 87 53  48 48 164 79 824  27  4 698 266 355 87  763 444 753 845  369 92 6998 931 291 241 17 59 53 3539 92 695 5  36 119  334  72 85  665 84  887 774 553 568 1527 14 39 4271 2619 746 651 792 68 611 167 91 6674 257 1771 55  787 81 73 264 684 44   4893 789 29  439 561 361 884 37 71  9261  38 673 784 426 46 9228 279  47 172 3178 82 446 217 83 334 9  4   49   7 82 85 7686 57 52 83 47 288  718  166 894 37 8  92  4278 32 761 15 8639 6326  872 535 6    48 93  9923   17 44 86 953 956 2936 71 375 3188 23 635 68  93  163  39 38  49 57  96 658 459 42   86 25 51 782 24  8 218   94 21 4534 8768 27 882 76 519 88 38  631 464 2465 243  6 74 57 773  4 36 152 877 463 665 211 19 5  23 153 53 83 137 37 84 662 582  751 91 29 18  76 974  75 75 86 32 49 9  44 62 55 5154 512  81 96  858 755 16 817 11 747 746 5796 54 16 366 3893 1  129 78 5667 282 729  47 71 27   646 33 853 455  34 72 592 59 168 237 392 153  39 186 729 78 288 25   76  687 61  2 317 72   55 228 21 17  779 17  58 41 4  4263 4786 466 81  563 955  3 6758 51 138 3429 99 72 44 885 3  47 66  24 636 9473 896 672 17 992  78 246 541 655 897 6   19 57 23 57 214 34 374  548 61  9 919 65 216 7841 973 22   13 116  456 862  4254 83 94 75 88 7532 2  393 56 756 952 1916 698  2 647 77  3 566 735 96 572 47 422 155 729 69 169 52 73 89 47 41  191  2 47 39 567  433 696 8  968 486 62 968 62 66 2783 2  187 861  91 85    4 32 95 314 35 81 89 2  22 9  99 297 682  2 36 66 5879 826 25  97 977 46 57 91 741 22   41 28  824 714 163 53 65 81 85  591  164 52  96 98 73 325  16 791 535 96 1297 1738 145 9  3686 89 295 49 43 86  19  15 472 233 4   3372 79 54  9 13 11  72 727 31 583 41  1299 97 51 6367 5137 273 52 333  78 4217 644 7587 17 99 5682 19  29 27 938
      4 9472 154 36 76  5 89 37  5 28    6 95 49  82 66 7   44 8183 524 38 819 11    7 825 9    8 397 48  79 64   619 147   1 3246   6 16 11 95 77 439 62  463  668 42  9 67 75 314 42 3   39   12 435 83   458 8  1974 8  6    62  1 1  76 319 9586 295 2  27  8 73 722 9   6487 23  8667 416 853 68  82 65   8 127 81 8  53   565 22 93  97  8 11 9511  89  34 8237  3  52 312 389 715 52 444 4487 77 62 14  946  6 733  7    1 937 71   88  4 1185 33  6 7137  7 1   296   81 954 749 3223   6 712 56 32 5    77   4  7 91 144 429 3589  62 42 35 21 5  972 6    9 53 82 12 977  53   15    7  5 114 169 588 191   35 96 84 68  5  52 3611   9 682 35 424  93 2698 29   6 29 2  752 35 428 13 264  25  73 58  3  4646 614 58 413 29 368   3 695 961 17 545 837  21 54   3 76 22 12 293   57 41 262 766 592   3 92 98 43 7171 94  1   52  11  638  63 282 9   25 996 612 465 85 14 7415  96 9  9  87 585 13 919 51     6 53 76  682 3997 33  72 42 3  5  5112 54 37   2 3248 66  22   8 33 67 792 22 9236 939 555 49 8724 672  313 9386 533 38 63  2  23 886 75 2212 351 75 97 33 69 289 39 82 14 982 154 598   13 91 194 9   9 86  91  4 3387  82  7 52 522 8958 9942   2 643 574 36    3 96 13 97  9  77 143 783 686 4  87 779 9  762 976 51 53 43   6 4459 4  96 45 93  8 519 52 615 234 238 57 68 79 3   61 51 477 7717 76   6 3912 332   9 354 218 45 664   8 25 358 1372 818 33 93 375 37 51 86 696 39 93   26 51 38  823 276 988  95 976 55 216 5135 7337 814   41   54  7 9963 132 21 175 868 5  6725 1637 97   248 97 71 65  65 535   66 44 817 5    35 942 65 5414 73 76  8 82 733 96   9 534 2    3  8   7  7935 2  821 33  7   935 25   6 42 91 85  14     57 644 829 21 35 417 1839 672 33  69  87 44   62  23  77  3 622 71   6   5 997 98  3 31 52 87  9  92 47  964   2   1 654 97  17 797 22 662 496 3144   86 58  87  2 13   93  3 32 6  76 6   562 9   1 14 8    4 18  81 7765 66   61 53  87 8427 34 63  9 826 66 6   67   56 6  49 29  423 34 18  7  58 7  57  58 51 75 81 831 54   4 172 97   5 545 835  45 372 75 84 22 8734 7   18 98 73  2   6 78 8956 11 79 512 87 53  1 449   46 8  245  98 2     4 26 38   3 26 144 2  3   948  4 282 962 387 1   112 636 444 213  149 71 4365 635 541 878 32 42 29   75 81 647 2  27 919    2  35 69   25 46   62 566 747 513 6521 94 46 1911 4664 173 213 798 48 111   9 85 8692 422 8193 658 871  9 92 627 778 2837 8523 17  85   82 683 839 955 89 144 6742 185 546 9   848  7 1616 964  85 451 332   7  52  48 1  622 6  8   55   5 69 59 1548 41 58 23 63 672   99  799 17  51 21 26  8341 24 547 93 6633 8885  452 741 8     9 844 3218    9 9  11 94  844 3698 14 25  6952 82  92 775 6   189 544 65   1 17  76 819 23  5     2 46 44 372 6   8 4588  79 96 6373 1469 3  99  37 272 97 54 1998 971   21 417 54 88 43 922  4 49 915   3 334 722 13  48 9  9  329 75 96 925 81 38 112 293 1774  9 68 22   2 199 292 87  6 98 11 8  45 69 4  7866  88   2 9   356 778 21 17  15  36 61  4384 24 8   81 6931 9  911 21 5578 729 475  29 49 752 2867 13 527 221  43 48 548 85 862 933 816 16   45   4  14  1 665 29   13  434 63  9 453 7     8 56  1  89   27 8    2 27 3   872 2552 253 4    59 898  1 1678 71 77  6925  7 78 84 726 2  86 71  34 286 2752 933 655 57  32   1 422 264 698 383 47  76 18 67 53 668  5 25    78 29  4 769 99 663 8321 444 29   22 839   56 6    3487  7 28 69 27   11 5  639 88 59  963  739 833  1 343 69  1 794 447 24  76 52 849  13 843 44 161 29 51 22  9 97  5   72 79 76 22   772 848 8  872 379 5  652  7 81 925  21  98 823   3 2736  8 89 39 532 29 69 63 2  84 53  7 546  11  3 64  6 2196 613 3   14 536 31 48 77 148 81   65 65   58 466 858 24 25 19 858 852  299 84  57 47 89 447  88 41  672 51 2335 9395 234 5  753  78 872 44 73 28  64  83 777  77 6   954  22 24 33 82 83   4 468 96 647 9   5715 52 99  694 6722 734 92   6  76 4265 993  676 37 96 2159 54  94 13 354
      5 +    +   +  *  *  *  +  *  *  +    *  +  *   *  +   +  +    +   *  +   *  +    *   +  *   *   *  *   +    *   +   +   +    +   *  +  *  *  *   *   *   +    *  +  *  +  *   *  *   +  +    *   +    *   +  +    *  +    +  +  +  *  *   +    +   *  +  +  +  +   *   +    *   +    *   *   *  +   *   *  +   +  *  +    *   *  +   *  *  +  +    *   *   +    +  *   +   +   *   *  *   +    *  +  *   +   *  +   *  +    +   +    *  +  +    +  *  +    *  +   +    +   +   *   +    *   +   *  +  +   *   *   +  +  *   *   +    *   +  +  *  +  *   *   *  *  +  *  *   *   +    +    *  *   *   +   *   +    +  *  +   *  +  +    +   +   *  *   *   +    *  +   +  +  *   *  +   +  +    *   *  +   +  +    *   *  +   +  *   *   *   +   +  *   *   +   *   +  +  +  +  *   +    *  *   +   +    +  +  +  +  +    +   *   *   *   *   +   *   *   *  *   *   *   *  *  +    +   *  *  +  *   *  *   +    +   +  *  +    +    *  *   *  *  *  +    +  *  *   +    +  *   *   +  *  *   *  +    *   +   +  +    +    *   +    *   *  *   *  *  +   +  +    +   +  *  *  +  +   +  *  *  +   *   *   +    +  *   *  *  *  +   +  +    *   +  +  +   +    +    *   *   +   +    *  *  *  +   *  *  *   *   *   +  *  *   *  *   +   +  *  +  *   +    +  *  *  *  *  *   +  +   +   +   *  +  *  +   *  +  *   +    *  *   +    +   *   *   +   *  *   *   +  *   +    +   *  *  *   *  *  *  *   +  *   *   +  *   +   *   +    *  *   *  *   +    +    +   +    +    *  +    +   *  *   *   *  +    +    +    +   +  +  *   *  +    *   *  *   *  +    *   +  +    *  +  *  +  +   +  +   *   +    +  +   *  +    +  *   +   *   +   *  *   +  *  *   +    +    *   +   +  *  +   +    *   *   *   *  +    *   +   +  *  *   *   *  +   *   *  *  *  *  *  +  +   *   *   *   *   +   *   +  *   *  +   *   +    +    *   +  *  *   *   *  +  +  *  *   +   *  *  +  *   *  +  +   +    +    *  *   *  +    +  *  *  +   *  *   +    *  *  *  +   +   +  *   +  *  *  +  +   *  +  +  *   *   +  +   *   *  *   *   +   *   *  +  +  +    *   *  +  *  *  *   +  +    +  *  *   *  *  *  *   +    *  +   +   *  +    *  *   +  *  *   *  *   *   *  *   *   +   +   *   +   *   +    *   *  +    +   +   +   *  +  +  +    *  +   +  *  *   +    +   +   *   +  +    *   *   *   +    *  *  +    +    +   +   *   *  +   *   +  +    *   +    *   *   *  *  *   *   +    +    +   +  +    *   +   *   +  *   +    +   +   *   *   *  +    *   +   +   +    +  +   *   +  *   *  *  *   +   +  *  +    *  *  *  *  *   +    +    *   +  *  *   +    *  +   *  +    +    +    *   +  +    +   +    +    *  *  *   *   +    *  +   +    *  +   *   +   +   *   +  +   *   +  *   +   +    *  *  *  *   *  *  +    +   +  +    +    *  *   *  +   *  *  +    *   +    *   +  *  +  *   *  +  *   *   *   +   +   *  *  *  *   +  *  *   +  *  +   +   +    *  *  +   +  *   +   *  +  +  *  *  *  +  *  +    *   *   *   +   +   *  *   *  *   +   +    *  +  +   +    *  *   +  +    +   *   *   *  *   +    *  *   +   +   +  *   *  *   *   *   +    *  *   +   +  *   +    +  +    *  *  *   *   +   *   +  *  +    *  *   *  *  +    +    +   +   *   +   +  +    *  +   +    +  *  +  +   *  +  +  +   *   +    +   *   *  +   *   *   *   *   *   *  *   *  +  +  +   +  *   +    *  *  *   *  *   +    +   +  +    *   +    +    +    *  +  +  *  +    +  +   *  *   *   +    +   +  *   *  *  +   *   +  +   *  *   +   *   *  *   +  *  *  *  *   *   *  +  +  +    *   *   +  *   *   *  +   *  +  +    *  *   +   *   +    *  *  *  *   +  *  *  *  +  *  *  *   +   *  +  +  +    *   +  *   *   +  *  *  +   +  +    +  +    +   +   *  +  *  +   *   +    +   +  *  *  *   +   *   +   +  +    +    *   *  +    *  +   +  +  +   *   *  *   *   +   +    *  +  *  +  *   *  +   *  *   +   +    +  *  +    +    +   *  *   *   +    *   +    *  *  +    *   *  +  +