diff --git a/2016/03/1.pl b/2016/03/1.pl new file mode 100644 index 0000000..467836e --- /dev/null +++ b/2016/03/1.pl @@ -0,0 +1,16 @@ +use 5.20.0; + +use Algorithm::Combinatorics qw/ partitions /; +use List::AllUtils qw/ sum any all /; + +use DDP; + +my $possible; +while(<>) { + my @x = split ' '; + use DDP; p @x; + next unless all { $x[$_] < sum( @x ) - $x[$_] } 0..2; + $possible++; +} + +say $possible; diff --git a/2016/03/2.pl b/2016/03/2.pl new file mode 100644 index 0000000..bb164bf --- /dev/null +++ b/2016/03/2.pl @@ -0,0 +1,24 @@ +use 5.20.0; + +use Algorithm::Combinatorics qw/ partitions /; +use List::AllUtils qw/ sum any all natatime /; + +use DDP; + +my $possible; +my(@a,@b,@c); +while(<>) { + my @x = split ' '; + push @a, shift @x; + push @b, shift @x; + push @c, shift @x; +} + +my $it = natatime 3, @a, @b, @c; + +while( my @x = $it->() ) { + next unless all { $x[$_] < sum( @x ) - $x[$_] } 0..2; + $possible++; +} + +say $possible; diff --git a/2016/03/input.txt b/2016/03/input.txt new file mode 100644 index 0000000..0657580 --- /dev/null +++ b/2016/03/input.txt @@ -0,0 +1,1902 @@ + 883 357 185 + 572 189 424 + 842 206 272 + 55 656 94 + 612 375 90 + 663 550 179 + 183 487 470 + 551 664 431 + 714 728 853 + 548 456 329 + 531 783 592 + 49 749 478 + 529 866 959 + 94 883 73 + 438 33 953 + 818 113 644 + 839 111 817 + 41 54 276 + 82 464 354 + 891 567 488 + 909 559 165 + 752 53 36 + 797 146 382 + 700 94 368 + 121 944 167 + 125 262 102 + 152 720 123 + 410 205 520 + 810 760 469 + 529 733 243 + 474 236 596 + 264 676 726 + 508 786 466 + 122 611 632 + 462 310 219 + 539 903 633 + 328 320 339 + 219 212 723 + 207 202 572 + 787 936 452 + 736 219 387 + 109 720 521 + 450 28 253 + 838 143 73 + 903 146 249 + 197 297 582 + 531 353 362 + 669 164 767 + 112 830 680 + 289 824 912 + 344 37 448 + 142 576 70 + 121 708 932 + 51 779 887 + 388 311 650 + 673 229 702 + 539 177 846 + 457 784 411 + 90 358 532 + 371 516 135 + 61 144 602 + 320 404 612 + 286 306 943 + 788 550 573 + 448 442 998 + 614 689 727 + 989 540 667 + 576 564 648 + 735 30 190 + 645 406 486 + 177 779 300 + 585 374 781 + 543 924 610 + 678 843 802 + 860 363 510 + 98 191 534 + 246 726 137 + 223 816 514 + 866 662 540 + 849 652 433 + 697 354 516 + 14 979 755 + 580 965 629 + 596 786 540 + 661 581 167 + 628 588 159 + 98 179 7 + 17 748 855 + 822 24 907 + 829 722 102 + 238 724 601 + 495 266 554 + 265 493 390 + 956 658 757 + 629 366 760 + 824 705 264 + 421 311 412 + 405 15 408 + 45 327 494 + 468 271 219 + 259 168 576 + 406 253 787 + 844 403 178 + 482 740 80 + 638 508 220 + 456 839 566 + 453 70 286 + 301 802 397 + 158 618 953 + 207 676 112 + 280 455 959 + 638 318 56 + 300 854 699 + 662 598 729 + 397 591 848 + 896 790 751 + 524 976 396 + 959 162 5 + 360 168 26 + 887 305 26 + 57 184 117 + 475 370 601 + 448 507 601 + 447 382 420 + 702 805 595 + 613 644 277 + 179 437 493 + 180 424 114 + 159 280 518 + 461 12 644 + 87 359 577 + 518 362 527 + 549 537 352 + 496 676 336 + 368 608 38 + 315 595 313 + 444 480 966 + 200 368 839 + 48 891 156 + 18 893 202 + 27 540 58 + 84 601 839 + 413 67 880 + 399 563 291 + 125 867 706 + 138 330 20 + 59 564 700 + 903 379 578 + 916 302 602 + 830 107 36 + 760 492 936 + 750 767 475 + 514 517 901 + 755 424 277 + 757 247 600 + 110 204 870 + 276 455 334 + 374 201 22 + 239 414 313 + 183 300 975 + 128 266 62 + 61 60 927 + 673 163 863 + 889 795 451 + 661 701 879 + 191 487 284 + 375 687 178 + 335 769 306 + 243 811 299 + 327 466 794 + 271 782 995 + 699 769 820 + 201 543 178 + 547 591 834 + 395 757 809 + 201 249 758 + 215 836 100 + 37 820 915 + 656 692 468 + 647 411 825 + 265 67 791 + 628 482 700 + 775 463 564 + 514 114 401 + 725 369 879 + 927 263 781 + 714 644 171 + 666 411 330 + 238 384 483 + 319 3 607 + 725 451 249 + 682 446 801 + 861 502 285 + 869 792 792 + 662 853 730 + 616 534 844 + 447 594 680 + 400 67 268 + 821 738 506 + 521 859 726 + 466 567 813 + 509 222 823 + 515 12 969 + 688 210 184 + 850 442 856 + 906 527 77 + 654 411 914 + 447 821 385 + 268 524 689 + 597 786 645 + 884 37 581 + 383 679 421 + 939 672 677 + 434 184 807 + 65 648 369 + 485 741 575 + 405 572 785 + 396 857 863 + 76 441 157 + 359 622 424 + 240 186 337 + 534 456 92 + 764 707 664 + 314 438 825 + 496 466 992 + 502 989 538 + 643 959 586 + 585 457 153 + 79 585 871 + 84 550 272 + 123 197 803 + 479 104 456 + 212 393 670 + 650 369 297 + 650 606 387 + 830 756 393 + 992 718 62 + 97 494 148 + 449 692 519 + 498 967 499 + 89 979 860 + 83 963 588 + 54 23 311 + 673 467 650 + 475 287 868 + 234 591 575 + 757 312 897 + 572 349 851 + 290 339 256 + 296 701 265 + 615 715 684 + 494 382 663 + 355 289 420 + 919 637 921 + 696 347 535 + 841 362 731 + 671 593 764 + 963 339 585 + 266 778 843 + 305 830 705 + 244 127 310 + 455 548 100 + 538 701 891 + 425 953 790 + 332 21 519 + 314 496 511 + 45 508 15 + 439 873 549 + 498 730 931 + 137 416 800 + 973 339 247 + 702 248 241 + 391 142 5 + 472 859 159 + 169 459 169 + 328 520 269 + 896 70 172 + 462 741 404 + 809 732 468 + 903 706 39 + 363 221 700 + 855 491 672 + 666 167 656 + 472 110 324 + 805 198 577 + 886 59 948 + 451 227 599 + 726 235 483 + 223 17 366 + 750 14 402 + 953 15 587 + 883 794 769 + 872 884 87 + 602 621 739 + 949 222 917 + 204 159 982 + 825 309 124 + 704 336 87 + 607 509 888 + 156 586 932 + 457 234 816 + 555 104 490 + 957 235 967 + 995 24 823 + 964 204 290 + 424 218 990 + 209 398 686 + 300 534 908 + 485 878 269 + 99 509 575 + 704 556 223 + 791 359 481 + 626 767 47 + 495 120 51 + 545 703 15 + 691 903 416 + 901 686 973 + 385 418 592 + 548 253 276 + 696 471 260 + 190 286 513 + 526 20 889 + 468 648 70 + 708 641 861 + 502 496 932 + 738 754 831 + 341 300 195 + 378 985 436 + 868 149 497 + 854 958 199 + 408 865 450 + 404 450 645 + 23 417 879 + 766 675 71 + 784 813 724 + 906 357 730 + 863 712 260 + 935 654 683 + 200 930 817 + 413 983 480 + 423 100 262 + 776 910 453 + 501 934 216 + 317 986 285 + 512 157 150 + 467 216 343 + 443 291 541 + 225 114 837 + 937 680 501 + 832 876 639 + 200 318 515 + 5 650 470 + 1 795 555 + 5 164 242 + 71 943 29 + 983 552 4 + 983 983 31 + 173 212 570 + 237 789 413 + 223 795 751 + 170 800 150 + 208 852 693 + 341 227 620 + 134 616 565 + 72 185 316 + 196 470 516 + 530 537 615 + 319 109 806 + 449 519 609 + 164 590 468 + 376 567 703 + 295 88 771 + 347 279 2 + 641 553 802 + 428 706 807 + 443 545 892 + 253 422 204 + 199 255 802 + 235 822 364 + 843 246 645 + 873 820 883 + 663 549 177 + 482 532 649 + 790 343 693 + 740 385 598 + 731 634 523 + 53 784 77 + 430 843 619 + 376 487 205 + 670 640 716 + 941 795 476 + 55 103 628 + 897 889 822 + 814 305 222 + 690 537 745 + 142 236 948 + 425 668 618 + 692 168 785 + 483 532 429 + 919 831 425 + 877 227 192 + 287 971 288 + 817 474 401 + 193 46 437 + 711 499 49 + 816 658 769 + 843 726 179 + 26 776 876 + 10 401 375 + 142 433 162 + 154 431 242 + 106 619 785 + 633 110 874 + 589 690 885 + 883 177 315 + 675 454 728 + 650 371 801 + 628 24 914 + 562 706 21 + 698 731 915 + 860 838 118 + 845 158 221 + 87 856 123 + 458 337 398 + 165 298 481 + 561 125 191 + 96 601 775 + 807 197 672 + 897 725 134 + 778 749 388 + 417 187 188 + 720 595 552 + 728 351 111 + 651 558 827 + 131 343 736 + 983 958 666 + 236 104 197 + 851 854 858 + 727 348 932 + 332 634 556 + 638 983 822 + 363 443 5 + 900 440 67 + 725 452 60 + 669 31 860 + 476 925 730 + 891 935 176 + 107 308 901 + 701 653 493 + 598 834 599 + 563 511 316 + 938 546 134 + 739 66 380 + 472 838 187 + 629 816 295 + 154 497 164 + 521 454 248 + 399 878 848 + 582 664 768 + 259 560 361 + 566 815 290 + 432 590 482 + 715 175 618 + 599 14 81 + 138 161 624 + 101 43 140 + 103 787 2 + 109 743 142 + 389 882 539 + 44 957 497 + 396 123 45 + 551 864 500 + 457 694 442 + 780 560 190 + 472 212 225 + 548 160 36 + 388 87 249 + 781 550 431 + 402 53 137 + 401 505 369 + 55 755 278 + 680 97 165 + 709 823 278 + 998 35 39 + 741 390 545 + 649 399 520 + 512 919 703 + 63 879 464 + 549 617 431 + 600 393 555 + 423 262 149 + 898 541 619 + 854 927 956 + 219 376 475 + 650 897 957 + 622 113 877 + 483 100 181 + 744 12 882 + 204 363 432 + 65 5 74 + 151 358 504 + 184 700 295 + 310 687 50 + 283 374 268 + 183 456 717 + 992 3 960 + 958 460 837 + 270 611 56 + 450 9 537 + 449 600 578 + 487 322 724 + 122 187 445 + 469 141 291 + 687 293 117 + 865 316 222 + 553 39 230 + 234 283 99 + 138 889 117 + 219 822 34 + 620 501 721 + 959 775 560 + 455 594 895 + 450 497 624 + 937 700 239 + 725 244 649 + 864 364 68 + 571 575 492 + 479 628 467 + 394 655 881 + 789 540 967 + 494 870 227 + 874 873 724 + 829 804 301 + 51 73 711 + 138 569 412 + 974 212 329 + 977 676 680 + 643 181 437 + 66 347 266 + 696 425 486 + 235 234 285 + 346 202 801 + 502 31 627 + 443 505 321 + 102 611 84 + 376 115 276 + 471 366 178 + 413 101 325 + 60 451 305 + 540 356 671 + 14 130 964 + 538 445 539 + 116 731 537 + 985 716 629 + 979 134 227 + 685 700 62 + 706 645 380 + 59 857 327 + 701 173 813 + 729 222 721 + 57 127 943 + 332 476 463 + 959 944 367 + 709 863 471 + 476 761 505 + 205 133 508 + 523 810 20 + 32 858 369 + 491 788 775 + 510 253 729 + 55 108 547 + 934 276 830 + 924 294 792 + 12 655 849 + 539 600 144 + 530 98 795 + 368 114 594 + 389 747 612 + 313 660 207 + 201 388 740 + 674 410 917 + 645 146 957 + 508 773 103 + 179 814 687 + 550 106 614 + 692 691 359 + 451 195 838 + 865 743 563 + 186 838 351 + 80 67 875 + 104 881 593 + 396 521 344 + 740 362 647 + 960 221 826 + 391 788 920 + 109 345 103 + 378 453 917 + 557 970 894 + 544 978 635 + 37 238 273 + 575 676 157 + 866 350 306 + 432 876 238 + 232 756 91 + 175 682 152 + 365 704 112 + 381 220 77 + 90 470 610 + 373 614 664 + 727 522 734 + 681 402 764 + 61 885 45 + 708 578 315 + 264 675 515 + 618 452 638 + 953 700 825 + 860 262 801 + 534 961 961 + 367 745 253 + 841 921 534 + 878 675 708 + 724 817 638 + 824 144 679 + 158 841 152 + 900 157 60 + 919 717 967 + 41 869 935 + 685 264 19 + 153 591 578 + 583 794 572 + 571 925 530 + 651 910 445 + 635 457 785 + 682 28 281 + 774 896 69 + 108 925 345 + 449 939 762 + 430 7 20 + 41 949 750 + 979 932 595 + 178 682 209 + 954 317 551 + 416 449 835 + 787 502 943 + 923 841 121 + 167 83 665 + 824 91 160 + 737 10 818 + 787 582 603 + 568 932 682 + 408 805 345 + 96 335 254 + 592 816 19 + 615 570 259 + 71 933 662 + 930 892 406 + 950 147 676 + 388 907 573 + 271 921 839 + 202 27 905 + 686 421 840 + 496 896 901 + 446 785 69 + 178 281 753 + 911 192 852 + 817 386 786 + 39 910 593 + 699 702 370 + 661 274 891 + 733 144 425 + 214 73 540 + 796 200 641 + 472 286 533 + 522 353 528 + 103 117 71 + 229 504 16 + 697 288 862 + 486 415 866 + 231 268 350 + 832 244 380 + 668 183 362 + 804 437 204 + 763 426 861 + 974 537 831 + 155 85 204 + 365 756 566 + 392 829 402 + 400 15 108 + 853 381 351 + 475 372 343 + 756 550 692 + 926 561 697 + 592 27 541 + 537 696 360 + 701 88 358 + 390 771 109 + 611 475 497 + 543 446 287 + 190 864 655 + 388 316 855 + 205 154 847 + 377 407 94 + 721 713 577 + 942 606 627 + 341 665 974 + 532 497 182 + 437 548 306 + 782 68 189 + 841 868 797 + 248 927 16 + 929 796 786 + 273 818 377 + 941 963 399 + 965 719 91 + 474 41 434 + 744 233 28 + 374 248 435 + 991 8 252 + 381 258 745 + 999 252 932 + 701 259 659 + 315 987 734 + 854 950 312 + 174 484 355 + 482 543 321 + 477 192 199 + 833 197 697 + 442 135 293 + 604 74 701 + 173 225 342 + 499 356 35 + 362 398 351 + 624 875 241 + 575 839 220 + 441 67 130 + 426 133 810 + 336 71 372 + 110 178 446 + 34 16 325 + 889 760 298 + 874 752 85 + 838 909 379 + 419 960 66 + 595 97 315 + 127 313 221 + 111 601 62 + 149 664 286 + 880 270 33 + 741 208 420 + 930 150 448 + 225 561 886 + 535 229 389 + 695 595 934 + 615 169 527 + 514 863 681 + 155 925 151 + 536 884 48 + 861 887 226 + 777 45 177 + 821 243 863 + 834 310 830 + 290 189 32 + 448 619 518 + 468 146 353 + 93 750 558 + 451 180 449 + 689 173 284 + 631 241 193 + 745 703 106 + 102 57 865 + 731 660 782 + 109 408 370 + 879 772 344 + 812 389 269 + 97 762 999 + 962 886 367 + 975 524 850 + 828 10 335 + 369 591 254 + 603 586 294 + 695 898 10 + 395 510 979 + 916 525 983 + 201 847 398 + 616 838 468 + 469 410 295 + 840 322 545 + 607 312 935 + 689 8 660 + 843 70 692 + 886 469 512 + 157 448 396 + 282 335 772 + 381 312 207 + 275 431 867 + 993 629 264 + 163 602 384 + 969 86 366 + 258 78 349 + 293 387 62 + 47 363 376 + 891 408 489 + 811 399 744 + 431 10 371 + 884 588 879 + 222 413 915 + 887 273 891 + 347 908 466 + 251 752 164 + 421 370 582 + 74 143 505 + 478 74 682 + 486 113 886 + 798 570 188 + 872 249 269 + 300 475 345 + 464 392 8 + 125 461 499 + 421 169 497 + 895 731 849 + 230 973 912 + 806 633 129 + 666 732 998 + 258 798 714 + 441 64 341 + 173 260 562 + 160 361 825 + 100 531 787 + 797 894 208 + 95 706 503 + 855 735 343 + 204 816 930 + 392 81 925 + 543 821 12 + 449 126 560 + 391 740 654 + 786 824 810 + 557 45 805 + 734 735 775 + 337 730 217 + 755 58 797 + 789 780 196 + 94 836 666 + 79 243 645 + 39 320 397 + 100 78 685 + 379 283 14 + 503 297 863 + 191 65 875 + 197 120 43 + 365 885 206 + 226 786 238 + 497 217 68 + 582 18 477 + 214 205 412 + 928 450 478 + 525 209 472 + 558 653 363 + 62 392 723 + 946 533 378 + 985 314 795 + 158 265 692 + 389 208 433 + 450 303 289 + 838 598 854 + 475 289 717 + 381 836 856 + 368 317 953 + 849 43 436 + 746 326 567 + 702 15 170 + 649 422 338 + 709 422 325 + 857 286 297 + 435 609 296 + 474 764 10 + 907 316 997 + 918 3 325 + 434 312 859 + 41 297 427 + 667 299 935 + 635 1 882 + 997 780 421 + 787 879 88 + 509 200 470 + 652 478 262 + 645 516 57 + 57 709 226 + 191 289 179 + 456 366 606 + 388 89 616 + 767 427 690 + 203 325 257 + 754 678 647 + 400 993 429 + 569 403 174 + 790 640 408 + 993 353 310 + 823 611 301 + 251 851 161 + 571 871 329 + 671 593 422 + 157 853 331 + 804 530 790 + 136 866 751 + 696 592 143 + 359 908 905 + 282 19 723 + 529 926 358 + 213 991 268 + 173 703 238 + 247 420 28 + 706 912 331 + 502 829 677 + 756 223 490 + 402 172 660 + 556 175 162 + 702 173 785 + 615 694 448 + 226 6 112 + 402 694 471 + 20 482 248 + 41 585 646 + 57 485 663 + 218 326 423 + 444 475 399 + 647 458 154 + 528 136 328 + 719 102 20 + 757 230 308 + 72 662 908 + 520 429 747 + 541 936 218 + 822 445 787 + 741 582 302 + 201 522 831 + 706 64 391 + 190 692 439 + 814 683 283 + 46 713 864 + 914 162 701 + 951 833 239 + 943 435 510 + 272 37 157 + 789 434 532 + 397 156 450 + 634 157 489 + 961 14 193 + 908 932 601 + 296 75 193 + 700 944 685 + 819 92 20 + 528 901 971 + 555 905 972 + 157 762 22 + 419 159 191 + 456 702 210 + 383 863 452 + 554 997 145 + 713 145 404 + 786 39 737 + 375 892 100 + 415 917 722 + 117 504 779 + 507 752 766 + 396 623 49 + 887 342 67 + 288 672 952 + 686 960 931 + 945 124 102 + 886 250 919 + 751 350 824 + 725 608 983 + 348 552 770 + 984 259 501 + 327 336 972 + 198 421 926 + 284 207 688 + 612 970 225 + 262 855 522 + 480 883 310 + 468 531 25 + 189 472 852 + 451 216 849 + 728 731 93 + 418 526 351 + 979 256 418 + 808 933 134 + 853 574 803 + 304 469 892 + 710 633 205 + 864 302 81 + 627 358 268 + 135 328 524 + 534 185 718 + 467 450 409 + 593 708 403 + 27 66 829 + 610 747 496 + 583 274 602 + 494 674 484 + 249 779 608 + 294 848 720 + 614 655 225 + 660 362 907 + 360 561 402 + 324 71 98 + 141 537 358 + 800 506 565 + 483 499 651 + 555 51 406 + 950 190 985 + 901 935 441 + 105 950 586 + 143 359 409 + 848 468 387 + 983 403 736 + 225 619 976 + 640 915 995 + 424 631 33 + 204 955 760 + 316 938 745 + 260 20 393 + 28 840 233 + 712 944 239 + 713 225 78 + 608 393 512 + 361 489 345 + 898 146 345 + 135 447 60 + 585 317 68 + 667 405 60 + 56 453 618 + 872 921 84 + 928 813 581 + 966 605 191 + 987 565 862 + 219 160 932 + 987 200 425 + 793 797 354 + 360 792 326 + 534 596 767 + 717 376 450 + 566 613 511 + 287 573 470 + 690 927 172 + 660 572 434 + 789 83 142 + 63 233 840 + 838 154 965 + 565 160 700 + 196 277 963 + 419 369 633 + 577 949 480 + 632 959 854 + 676 13 780 + 860 460 348 + 4 182 179 + 858 527 498 + 108 484 168 + 217 781 748 + 252 419 906 + 892 578 157 + 939 633 33 + 312 613 141 + 11 925 675 + 16 544 776 + 15 640 696 + 494 599 450 + 441 668 495 + 103 122 42 + 238 355 680 + 656 458 572 + 792 279 965 + 375 532 863 + 412 697 542 + 392 842 842 + 430 743 885 + 115 330 195 + 316 588 906 + 464 742 603 + 509 251 285 + 939 885 788 + 77 187 775 + 124 226 63 + 58 97 828 + 459 955 453 + 462 537 181 + 513 722 469 + 159 529 825 + 132 903 664 + 132 902 408 + 264 990 993 + 353 924 843 + 543 307 168 + 770 41 513 + 797 499 400 + 197 520 412 + 869 374 160 + 204 780 864 + 919 517 929 + 382 354 611 + 213 419 294 + 234 167 784 + 697 784 106 + 119 270 173 + 674 981 217 + 792 688 561 + 52 232 358 + 744 678 338 + 371 262 772 + 378 87 690 + 349 306 102 + 21 933 362 + 691 895 760 + 707 68 844 + 402 835 155 + 630 818 870 + 995 234 998 + 370 468 259 + 738 622 579 + 597 760 784 + 371 168 769 + 804 679 591 + 993 722 976 + 312 716 575 + 678 823 545 + 892 132 141 + 173 168 394 + 335 696 157 + 362 619 263 + 165 408 285 + 438 304 327 + 598 275 414 + 7 304 440 + 510 533 10 + 519 740 435 + 736 936 310 + 601 872 327 + 989 295 546 + 281 183 118 + 367 809 512 + 505 662 485 + 342 182 231 + 348 208 893 + 42 260 677 + 799 748 136 + 863 968 975 + 467 807 924 + 174 681 891 + 123 666 352 + 189 94 715 + 755 868 341 + 811 831 682 + 79 630 795 + 544 711 108 + 830 734 140 + 594 333 87 + 234 430 748 + 377 258 209 + 566 608 661 + 218 376 953 + 411 528 889 + 591 471 146 + 32 279 673 + 852 990 551 + 863 953 883 + 385 619 852 + 380 138 70 + 34 522 782 + 558 443 396 + 375 228 589 + 538 317 447 + 207 659 326 + 398 316 787 + 591 461 895 + 130 619 945 + 536 576 666 + 657 104 399 + 170 333 180 + 230 269 331 + 396 548 321 + 336 934 217 + 582 902 881 + 617 371 960 + 645 830 400 + 514 914 392 + 132 103 91 + 73 28 400 + 50 766 590 + 30 782 749 + 909 975 365 + 377 951 886 + 557 679 894 + 391 350 324 + 293 99 803 + 658 428 553 + 131 32 389 + 669 837 424 + 641 858 548 + 911 951 693 + 603 482 721 + 554 544 781 + 441 798 526 + 370 607 860 + 149 238 954 + 261 146 904 + 399 203 191 + 160 308 810 + 442 643 115 + 434 480 729 + 501 265 760 + 618 500 866 + 757 39 66 + 667 466 858 + 572 234 181 + 578 582 768 + 59 531 771 + 547 409 290 + 428 333 277 + 194 269 32 + 873 860 651 + 508 688 698 + 871 270 599 + 50 592 936 + 165 503 817 + 143 344 438 + 131 946 345 + 145 951 742 + 245 974 515 + 683 481 119 + 664 142 769 + 485 338 832 + 53 899 816 + 243 10 654 + 206 897 855 + 64 86 846 + 21 648 831 + 64 734 107 + 35 397 769 + 87 602 352 + 59 977 728 + 729 490 466 + 665 122 411 + 63 495 137 + 652 888 98 + 988 30 263 + 547 879 244 + 302 856 726 + 311 834 572 + 102 747 751 + 969 339 359 + 392 274 775 + 694 269 873 + 56 223 158 + 192 362 855 + 164 404 908 + 21 898 215 + 395 591 622 + 396 437 463 + 562 311 754 + 877 149 633 + 877 335 159 + 803 977 189 + 626 11 64 + 527 979 221 + 699 730 234 + 676 89 783 + 119 657 697 + 296 777 492 + 368 342 353 + 155 937 441 + 280 10 143 + 251 906 211 + 29 899 69 + 692 60 924 + 693 298 998 + 1 254 155 + 105 323 801 + 264 819 399 + 262 526 604 + 505 128 367 + 696 344 463 + 251 270 639 + 503 705 408 + 387 62 827 + 352 727 908 + 42 847 394 + 137 55 12 + 122 831 381 + 955 276 197 + 476 326 328 + 585 472 260 + 606 465 97 + 123 501 760 + 724 441 759 + 48 221 656 + 612 553 101 + 643 502 754 + 357 116 876 + 686 498 749 + 977 424 155 + 786 608 725 + 844 586 684 + 298 752 204 + 192 542 786 + 253 379 977 + 344 169 789 + 721 302 949 + 39 77 750 + 715 332 403 + 673 584 536 + 344 558 512 + 378 26 273 + 332 911 590 + 17 857 696 + 335 215 130 + 6 631 822 + 313 334 846 + 314 544 585 + 904 824 30 + 554 716 892 + 534 852 899 + 93 456 94 + 75 609 558 + 99 409 530 + 293 903 630 + 446 8 660 + 392 911 45 + 597 483 681 + 508 300 498 + 115 411 825 + 830 687 953 + 321 438 65 + 655 785 985 + 370 194 598 + 276 274 201 + 527 227 555 + 654 493 212 + 737 828 721 + 527 718 622 + 961 619 453 + 15 384 255 + 952 511 422 + 352 289 263 + 680 653 930 + 797 503 738 + 645 341 276 + 59 545 311 + 605 827 34 + 383 642 450 + 10 706 91 + 372 569 513 + 157 223 873 + 108 364 228 + 125 324 776 + 542 239 337 + 607 270 382 + 106 120 174 + 233 345 428 + 185 574 87 + 141 533 497 + 525 391 677 + 642 355 72 + 545 512 643 + 640 254 137 + 779 155 629 + 857 383 639 + 872 314 975 + 756 397 798 + 938 277 351 + 233 215 781 + 204 268 343 + 210 77 959 + 882 683 904 + 20 893 572 + 873 538 685 + 16 419 290 + 417 389 511 + 418 92 766 + 775 730 670 + 874 736 217 + 689 891 573 + 774 125 271 + 500 372 739 + 686 313 602 + 123 37 539 + 93 613 815 + 29 627 437 + 634 290 498 + 657 765 180 + 515 803 558 + 521 459 495 + 552 263 327 + 906 321 725 + 883 107 663 + 181 18 848 + 935 101 364 + 278 246 602 + 236 201 695 + 66 108 590 + 897 616 274 + 474 292 285 + 503 880 542 + 717 308 557 + 337 750 885 + 657 732 572 + 112 861 681 + 96 782 391 + 17 995 476 + 3 728 696 + 690 277 382 + 692 476 366 + 323 318 188 + 48 559 411 + 302 829 601 + 850 513 702 + 884 477 37 + 64 275 702 + 31 906 635 + 957 885 400 + 954 216 977 + 445 432 662 + 759 381 487 + 472 139 739 + 506 236 504 + 474 433 570 + 626 281 453 + 491 643 385 + 93 198 339 + 423 624 46 + 145 83 560 + 798 195 359 + 822 136 855 + 361 692 668 + 361 566 423 + 76 649 771 + 149 604 545 + 134 203 767 + 122 407 821 + 51 681 714 + 689 374 587 + 731 892 170 + 851 894 777 + 55 847 668 + 816 58 280 + 993 161 599 + 474 159 614 + 925 132 818 + 785 266 383 + 238 350 539 + 606 121 295 + 226 771 325 + 483 570 761 + 376 633 995 + 81 447 197 + 134 411 369 + 130 663 501 + 306 631 164 + 789 280 97 + 764 387 253 + 156 724 676 + 641 88 695 + 796 701 650 + 182 784 60 + 774 925 464 + 728 199 444 + 611 669 31 + 188 459 840 + 522 407 848 + 32 584 759 + 284 771 859 + 256 898 654 + 418 92 303 + 457 194 665 + 285 239 676 + 290 256 358 + 595 303 550 + 763 166 789 + 832 271 790 + 503 203 109 + 736 220 773 + 687 827 332 + 820 860 953 + 491 37 640 + 246 579 212 + 322 392 201 + 166 871 13 + 803 621 502 + 801 551 205 + 26 535 701 + 453 913 491 + 585 547 16 + 169 862 475 + 703 907 649 + 191 929 759 + 678 505 351 + 953 202 510 + 952 245 217 + 926 96 414 + 260 380 758 + 658 282 385 + 914 617 519 + 599 485 558 + 701 482 596 + 624 3 154 + 263 572 573 + 336 599 530 + 268 85 588 + 19 283 719 + 520 588 765 + 540 658 728 + 761 266 405 + 261 751 844 + 884 542 789 + 773 531 662 + 808 587 278 + 36 905 405 + 771 858 766 + 732 822 488 + 146 397 748 + 871 866 367 + 595 910 610 + 784 256 250 + 279 667 794 + 691 323 842 + 692 832 704 + 555 211 406 + 532 65 830 + 140 279 467 + 104 153 77 + 357 213 341 + 360 279 360 + 205 776 912 + 379 590 54 + 354 820 968 + 446 358 532 + 440 976 254 + 66 618 453 + 659 465 477 + 736 159 309 + 863 460 402 + 731 115 819 + 971 866 444 + 615 804 639 + 568 247 909 + 394 577 904 + 931 548 28 + 232 193 648 + 804 766 441 + 606 637 688 + 58 299 622 + 631 153 469 + 574 179 306 + 785 685 25 + 487 719 999 + 892 172 987 + 271 662 876 + 528 745 791 + 695 682 400 + 724 320 294 + 63 697 209 + 749 674 192 + 494 249 14 + 523 82 434 + 68 184 442 + 95 271 888 + 966 741 856 + 987 508 328 + 252 222 203 + 9 283 929 + 255 231 757 + 752 377 750 + 294 123 538 + 974 475 379 + 906 127 323 + 600 140 915 + 864 21 960 + 948 181 37 + 956 704 528 + 17 842 502 + 454 36 498 + 193 718 494 + 365 698 52 + 345 434 43 + 686 529 7 + 461 179 50 + 531 612 959 + 540 603 815 + 6 357 965 + 63 96 542 + 204 123 258 + 228 57 446 + 189 688 805 + 909 822 264 + 993 583 560 + 821 884 363 + 804 421 176 + 70 813 340 + 311 100 136 + 286 749 71 + 47 756 89 + 99 556 681 + 738 915 149 + 794 430 737 + 566 360 529 + 379 594 941 + 370 937 685 + 670 659 945 + 731 682 518 + 472 196 787 + 58 364 90 + 227 435 835 + 210 203 921 + 83 843 508 + 892 190 764 + 890 716 285 + 899 523 173 + 84 187 618 + 901 473 493 + 826 879 786 + 589 974 301 + 391 177 890 + 339 791 486 + 441 815 26 + 281 176 459 + 597 738 331 + 260 298 568 + 809 915 369 + 466 621 199 + 631 626 934 + 815 154 963 + 461 897 504 + 601 849 580 + 492 854 892 + 568 858 94 + 118 515 547 + 497 966 598 + 951 850 810 + 851 922 478 + 109 371 592 + 816 430 590 + 332 395 162 + 690 675 446 + 402 461 692 + 607 518 728 + 862 159 426 + 661 606 992 + 196 483 812 + 605 598 817 + 708 296 453 + 424 640 421 + 530 601 176 + 290 78 882 + 600 827 998 + 547 903 777 + 148 209 464 + 294 842 554 + 173 699 93 + 361 414 303 + 262 112 941 + 518 321 807 + 635 731 864 + 921 136 839 + 364 869 379 + 519 396 480 + 169 528 403 + 352 284 335 + 868 344 857 + 847 482 817 + 452 395 89 + 410 576 64 + 623 78 123 + 212 532 69 + 183 165 106 + 181 745 469 + 174 866 387 + 251 546 493 + 113 800 387 + 297 320 266 + 549 981 517 + 871 813 752 + 704 332 930 + 758 226 567 + 13 673 279 + 745 491 433 + 819 536 820 + 982 934 446 + 246 479 972 + 607 444 768 + 475 442 462 + 769 5 420 + 41 853 454 + 481 410 592 + 517 444 288 + 816 462 734 + 32 217 132 + 847 623 630 + 358 905 980 + 416 403 44 + 686 880 968 + 533 685 842 + 567 736 282 + 169 484 662 + 244 812 121 + 430 818 235 + 370 929 120 + 550 542 715 + 827 67 682 + 849 476 265 + 696 631 260 + 674 550 157 + 999 137 233 + 552 849 24 + 549 578 234 + 70 481 220 + 355 618 184 + 911 451 667 + 956 167 608 + 398 41 885 + 412 511 504 + 12 510 891 + 861 335 349 + 898 266 264 + 38 387 384 + 312 726 606 + 895 649 822 + 622 428 308 + 242 211 880 + 289 59 370 + 442 271 792 + 93 396 324 + 125 524 408 + 62 601 163 + 546 305 154 + 696 757 304 + 540 678 418 + 546 780 625 + 645 903 228 + 125 923 493 + 565 750 743 + 698 582 376 + 351 334 847 + 163 745 507 + 315 67 101 + 426 739 424 + 164 775 888 + 914 493 871 + 808 954 59 + 114 768 583 + 449 616 297 + 340 345 315 + 863 647 82 + 358 294 61 + 752 696 102 + 76 568 427 + 416 165 204 + 447 488 625 + 98 660 275 + 730 662 74 + 710 418 233 + 709 508 64 + 178 220 108 + 767 672 62 + 157 416 180 + 374 377 221 + 533 266 188 + 401 4 258 + 795 742 166 + 543 745 415 + 921 840 971 + 871 806 988 + 59 148 36 + 459 221 759 + 601 323 943 + 361 334 737 + 919 10 243 + 729 364 142 + 541 365 374 + 641 765 945 + 667 937 985 + 556 998 695 + 628 614 243 + 573 619 872 + 363 228 681 + 756 419 319 + 40 481 888 + 719 126 786 + 145 787 395 + 97 696 476 + 74 809 443 + 221 147 967 + 465 173 537 + 495 42 430 + 931 497 289 + 39 409 154 + 965 774 179 + 371 401 197 + 385 673 834 + 142 767 901 + 475 101 704 + 228 903 590 + 402 903 365 + 364 291 749 + 706 118 214 + 765 346 868 + 494 365 779 + 950 573 944 + 669 785 482 + 117 495 812 + 209 580 864 + 328 465 303 + 828 287 388 + 803 272 523 + 341 34 586 + 504 212 542 + 813 201 30 + 431 142 515 + 368 276 639 + 609 707 722 + 950 824 931 + 67 328 842 + 68 407 651 + 91 293 706 + 145 782 761 + 10 590 838 + 147 425 890 + 565 526 432 + 923 794 922 + 752 597 939 + 175 897 256 + 390 34 802 + 341 916 918 + 786 564 829 + 830 441 771 + 540 695 77 + 281 341 64 + 995 556 526 + 927 882 588 + 846 247 51 + 866 31 619 + 65 230 584 + 514 940 991 + 339 849 979 + 358 679 21 + 487 830 423 + 788 226 267 + 550 960 405 + 48 513 533 + 84 867 743 + 103 598 589 + 827 183 81 + 798 378 218 + 197 396 194 + 935 866 664 + 481 949 597 + 475 921 584 + 809 502 727 + 881 478 942 + 404 579 649 + 844 260 921 + 585 463 984 + 679 271 113 + 329 220 387 + 566 77 251 + 596 194 261 + 480 735 850 + 111 828 242 + 385 658 608 + 472 984 743 + 948 579 848 + 532 458 644 + 874 628 33 + 969 882 536 + 412 768 517 + 805 663 449 + 838 279 297 + 131 888 560 + 942 185 226 + 413 186 182 + 663 51 52 + 99 798 344 + 478 785 868 + 380 97 857 + 60 617 583 + 42 317 648 + 104 682 300 + 359 442 620 + 801 437 194 + 718 14 453 + 608 557 865 + 111 56 857 + 554 538 27 + 482 953 632 + 460 30 133 + 41 965 723 + 238 413 620 + 222 366 58 + 427 323 608 + 613 402 520 + 401 211 328 + 725 312 215