My Advent of Code solutions in Python. kevinyap.ca/2019/12/going-fast-in-advent-of-code/
advent-of-code python
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add solution for 2016/03

+1930
+22
2016/day03.py
··· 1 + import fileinput 2 + from utils import chunks 3 + 4 + 5 + def possible_tri(t): 6 + return (t[0] + t[1] > t[2]) and (t[0] + t[2] > t[1]) and (t[1] + t[2] > t[0]) 7 + 8 + 9 + triangles = [] 10 + 11 + for line in fileinput.input(): 12 + triangles.append([int(x) for x in line.split()]) 13 + 14 + print "Possible triangles: %i" % sum(possible_tri(t) for t in triangles) 15 + 16 + 17 + col_tris = [] 18 + 19 + for tris in chunks(triangles, 3): 20 + col_tris.extend(zip(*tris)) 21 + 22 + print "Column triangles: %i" % sum(possible_tri(t) for t in col_tris)
+1908
2016/input03.txt
··· 1 + 4 21 894 2 + 419 794 987 3 + 424 797 125 4 + 651 305 558 5 + 655 631 963 6 + 2 628 436 7 + 736 50 363 8 + 657 707 408 9 + 252 705 98 10 + 532 173 878 11 + 574 792 854 12 + 157 737 303 13 + 468 76 580 14 + 502 503 434 15 + 467 567 310 16 + 911 911 391 17 + 791 913 925 18 + 174 49 532 19 + 796 803 426 20 + 800 132 710 21 + 273 722 711 22 + 388 576 551 23 + 17 936 676 24 + 371 712 141 25 + 692 738 913 26 + 745 805 975 27 + 381 140 680 28 + 859 344 336 29 + 109 148 877 30 + 835 441 716 31 + 355 288 669 32 + 968 259 517 33 + 979 350 773 34 + 134 222 347 35 + 614 279 628 36 + 510 140 590 37 + 901 581 707 38 + 958 933 680 39 + 95 558 766 40 + 676 739 739 41 + 890 40 825 42 + 280 735 297 43 + 593 354 701 44 + 555 756 730 45 + 39 656 853 46 + 399 660 14 47 + 293 685 48 48 + 109 374 42 49 + 260 608 680 50 + 306 885 603 51 + 49 683 810 52 + 125 513 512 53 + 706 600 143 54 + 728 138 658 55 + 410 673 27 56 + 617 872 89 57 + 923 733 103 58 + 462 674 95 59 + 352 718 191 60 + 129 351 173 61 + 648 839 828 62 + 332 829 789 63 + 947 44 214 64 + 768 576 184 65 + 672 900 601 66 + 98 672 738 67 + 368 926 539 68 + 271 300 372 69 + 141 844 261 70 + 731 426 205 71 + 734 979 792 72 + 16 703 888 73 + 133 682 323 74 + 428 784 182 75 + 398 171 394 76 + 154 845 425 77 + 643 14 775 78 + 695 849 432 79 + 22 227 464 80 + 490 544 485 81 + 474 701 910 82 + 902 629 10 83 + 996 680 67 84 + 91 908 75 85 + 653 600 845 86 + 439 53 117 87 + 480 552 860 88 + 156 144 46 89 + 492 359 597 90 + 408 473 614 91 + 469 343 737 92 + 777 438 149 93 + 803 114 676 94 + 78 835 753 95 + 567 230 707 96 + 542 738 49 97 + 286 542 939 98 + 75 985 179 99 + 293 914 854 100 + 234 609 877 101 + 237 167 880 102 + 151 722 925 103 + 793 515 278 104 + 350 432 777 105 + 883 402 581 106 + 621 501 702 107 + 494 265 665 108 + 167 668 345 109 + 853 911 629 110 + 747 428 576 111 + 703 979 73 112 + 938 798 401 113 + 851 743 542 114 + 281 216 483 115 + 772 573 404 116 + 598 547 606 117 + 275 107 823 118 + 92 94 864 119 + 416 201 759 120 + 331 146 446 121 + 200 375 70 122 + 459 349 928 123 + 615 77 999 124 + 748 380 628 125 + 624 244 759 126 + 934 512 163 127 + 964 117 75 128 + 515 146 209 129 + 917 31 218 130 + 694 640 116 131 + 758 53 375 132 + 250 655 353 133 + 153 200 189 134 + 259 752 85 135 + 313 637 129 136 + 361 632 973 137 + 896 61 934 138 + 581 611 483 139 + 620 788 889 140 + 959 273 754 141 + 677 997 322 142 + 43 201 714 143 + 181 956 734 144 + 147 878 850 145 + 139 802 938 146 + 542 729 26 147 + 531 201 915 148 + 412 917 301 149 + 845 44 811 150 + 489 897 626 151 + 378 384 781 152 + 429 130 313 153 + 583 400 515 154 + 811 937 949 155 + 584 812 909 156 + 738 143 205 157 + 79 813 801 158 + 599 872 539 159 + 650 177 384 160 + 299 267 539 161 + 506 358 516 162 + 425 520 185 163 + 901 854 622 164 + 84 371 21 165 + 931 797 642 166 + 274 155 432 167 + 366 935 635 168 + 331 810 836 169 + 56 725 67 170 + 9 756 985 171 + 58 38 946 172 + 385 807 899 173 + 336 998 3 174 + 243 539 893 175 + 792 117 272 176 + 345 995 452 177 + 717 892 262 178 + 311 694 23 179 + 737 169 392 180 + 875 741 379 181 + 609 422 100 182 + 644 442 916 183 + 832 51 967 184 + 230 962 82 185 + 380 202 931 186 + 308 786 903 187 + 556 668 121 188 + 194 650 263 189 + 732 20 346 190 + 528 445 589 191 + 341 142 684 192 + 281 302 550 193 + 408 511 219 194 + 683 938 617 195 + 679 705 763 196 + 812 847 313 197 + 557 838 308 198 + 888 23 145 199 + 120 20 129 200 + 450 643 245 201 + 329 658 282 202 + 30 878 700 203 + 698 799 335 204 + 698 320 595 205 + 875 959 595 206 + 50 715 454 207 + 856 686 269 208 + 986 38 589 209 + 834 925 69 210 + 263 928 654 211 + 430 175 586 212 + 99 712 642 213 + 439 679 132 214 + 639 714 644 215 + 563 940 62 216 + 228 385 666 217 + 758 757 949 218 + 137 174 104 219 + 859 746 939 220 + 675 140 592 221 + 324 446 357 222 + 471 486 455 223 + 450 429 980 224 + 955 388 599 225 + 914 222 512 226 + 981 673 871 227 + 941 716 744 228 + 55 192 173 229 + 98 48 411 230 + 774 686 343 231 + 689 671 412 232 + 666 613 686 233 + 420 595 550 234 + 891 148 204 235 + 150 678 978 236 + 420 684 49 237 + 503 879 985 238 + 95 508 231 239 + 90 393 777 240 + 17 464 813 241 + 372 120 26 242 + 513 10 445 243 + 258 133 460 244 + 392 29 355 245 + 116 874 635 246 + 326 889 493 247 + 883 599 250 248 + 913 388 798 249 + 85 366 782 250 + 422 416 204 251 + 533 174 93 252 + 168 413 270 253 + 617 996 461 254 + 8 386 1 255 + 613 928 464 256 + 455 545 619 257 + 424 631 488 258 + 142 612 146 259 + 921 374 324 260 + 744 791 395 261 + 923 797 445 262 + 876 447 602 263 + 851 62 493 264 + 23 397 993 265 + 232 602 90 266 + 790 604 698 267 + 855 7 654 268 + 350 105 561 269 + 550 198 327 270 + 670 130 340 271 + 904 943 765 272 + 23 467 804 273 + 906 726 948 274 + 337 90 774 275 + 438 546 667 276 + 134 625 247 277 + 334 282 729 278 + 619 275 412 279 + 377 5 763 280 + 250 722 852 281 + 754 365 401 282 + 558 393 615 283 + 974 673 39 284 + 922 610 899 285 + 99 969 868 286 + 89 616 911 287 + 235 326 371 288 + 252 605 907 289 + 429 387 678 290 + 564 34 565 291 + 436 359 584 292 + 125 780 474 293 + 842 372 184 294 + 785 507 489 295 + 849 418 633 296 + 962 191 582 297 + 728 453 669 298 + 91 970 639 299 + 48 222 639 300 + 41 865 103 301 + 395 765 945 302 + 551 103 9 303 + 313 687 956 304 + 952 109 894 305 + 612 79 518 306 + 392 119 506 307 + 106 739 427 308 + 941 688 483 309 + 917 103 114 310 + 326 466 604 311 + 393 641 488 312 + 128 920 135 313 + 609 742 725 314 + 101 596 371 315 + 631 325 416 316 + 318 939 170 317 + 166 540 821 318 + 460 654 843 319 + 672 942 330 320 + 620 673 352 321 + 288 731 20 322 + 263 277 387 323 + 259 49 434 324 + 73 262 278 325 + 525 775 36 326 + 867 735 125 327 + 437 415 141 328 + 567 537 640 329 + 99 581 584 330 + 468 108 84 331 + 608 997 893 332 + 573 722 971 333 + 497 953 399 334 + 201 184 372 335 + 203 323 386 336 + 2 331 72 337 + 375 687 307 338 + 484 57 322 339 + 311 704 416 340 + 720 961 571 341 + 444 211 926 342 + 668 771 666 343 + 742 688 146 344 + 447 435 143 345 + 394 444 1 346 + 450 39 373 347 + 150 634 442 348 + 422 645 546 349 + 132 562 281 350 + 795 365 455 351 + 921 389 255 352 + 17 153 85 353 + 795 593 367 354 + 788 637 447 355 + 292 297 703 356 + 190 938 871 357 + 166 821 386 358 + 437 636 385 359 + 160 288 604 360 + 334 584 837 361 + 701 207 665 362 + 470 84 204 363 + 599 268 739 364 + 634 92 148 365 + 507 620 198 366 + 193 677 94 367 + 301 990 536 368 + 874 493 783 369 + 932 550 497 370 + 81 166 546 371 + 633 538 476 372 + 553 411 790 373 + 593 159 316 374 + 47 729 226 375 + 619 708 409 376 + 38 535 763 377 + 421 830 550 378 + 400 537 641 379 + 275 531 166 380 + 247 564 495 381 + 177 791 655 382 + 959 363 548 383 + 232 105 594 384 + 919 272 912 385 + 258 467 505 386 + 882 783 365 387 + 916 331 441 388 + 70 815 204 389 + 66 304 470 390 + 2 810 372 391 + 734 276 875 392 + 771 295 72 393 + 455 191 892 394 + 765 384 195 395 + 758 418 844 396 + 38 121 980 397 + 302 379 606 398 + 116 384 199 399 + 353 13 607 400 + 712 805 790 401 + 589 701 694 402 + 540 776 276 403 + 985 814 61 404 + 996 10 709 405 + 450 821 652 406 + 715 26 899 407 + 628 656 679 408 + 322 669 279 409 + 144 649 518 410 + 962 175 363 411 + 839 627 292 412 + 931 934 378 413 + 588 382 122 414 + 410 923 263 415 + 652 680 654 416 + 25 878 835 417 + 640 399 396 418 + 492 202 511 419 + 510 225 521 420 + 15 413 233 421 + 493 551 122 422 + 683 222 569 423 + 248 457 641 424 + 100 936 315 425 + 902 998 870 426 + 975 98 680 427 + 998 309 653 428 + 605 944 532 429 + 530 887 400 430 + 572 879 925 431 + 311 147 692 432 + 425 924 848 433 + 453 945 934 434 + 492 918 22 435 + 434 338 933 436 + 288 297 665 437 + 274 712 185 438 + 99 503 741 439 + 868 523 263 440 + 828 218 121 441 + 53 565 236 442 + 15 409 778 443 + 367 293 444 444 + 352 610 413 445 + 892 970 706 446 + 954 767 321 447 + 75 656 414 448 + 823 781 57 449 + 423 673 349 450 + 817 405 324 451 + 768 19 345 452 + 302 949 529 453 + 654 944 794 454 + 262 766 959 455 + 783 92 866 456 + 772 718 772 457 + 629 154 669 458 + 723 349 109 459 + 914 352 599 460 + 559 746 346 461 + 492 781 860 462 + 103 52 624 463 + 655 397 857 464 + 680 242 417 465 + 183 203 846 466 + 714 519 457 467 + 849 292 946 468 + 605 566 646 469 + 793 653 156 470 + 111 135 44 471 + 882 531 191 472 + 920 773 378 473 + 911 340 546 474 + 23 655 382 475 + 656 708 587 476 + 43 792 708 477 + 673 734 605 478 + 506 725 943 479 + 421 762 553 480 + 471 214 572 481 + 195 575 438 482 + 114 546 687 483 + 121 47 894 484 + 744 221 820 485 + 58 273 982 486 + 759 58 233 487 + 770 824 785 488 + 857 441 480 489 + 87 387 477 490 + 838 633 28 491 + 635 547 49 492 + 329 404 47 493 + 534 955 933 494 + 661 985 662 495 + 199 144 713 496 + 228 996 622 497 + 197 523 858 498 + 64 486 552 499 + 859 968 422 500 + 847 31 648 501 + 41 944 812 502 + 625 953 830 503 + 987 734 37 504 + 529 512 825 505 + 104 690 688 506 + 602 224 973 507 + 592 888 409 508 + 241 247 639 509 + 290 80 570 510 + 483 284 97 511 + 322 223 57 512 + 91 204 503 513 + 257 18 464 514 + 904 480 177 515 + 945 364 137 516 + 199 240 234 517 + 231 177 23 518 + 537 147 464 519 + 683 71 468 520 + 448 55 544 521 + 264 143 640 522 + 307 125 706 523 + 674 384 373 524 + 469 903 656 525 + 538 695 361 526 + 461 942 728 527 + 430 911 347 528 + 85 70 789 529 + 422 525 65 530 + 466 322 776 531 + 49 620 765 532 + 832 530 9 533 + 215 92 417 534 + 965 511 415 535 + 865 888 289 536 + 993 74 332 537 + 685 830 52 538 + 11 334 151 539 + 98 36 192 540 + 93 307 89 541 + 38 483 498 542 + 674 317 910 543 + 697 302 486 544 + 267 29 508 545 + 816 924 165 546 + 895 954 671 547 + 629 75 634 548 + 591 301 149 549 + 368 346 735 550 + 916 606 382 551 + 63 786 124 552 + 916 180 475 553 + 466 656 218 554 + 128 35 326 555 + 570 665 164 556 + 181 382 773 557 + 256 122 266 558 + 130 288 905 559 + 288 524 40 560 + 278 526 471 561 + 39 243 476 562 + 951 16 522 563 + 662 93 522 564 + 378 107 7 565 + 218 520 10 566 + 654 399 343 567 + 674 158 351 568 + 854 320 834 569 + 722 358 818 570 + 231 178 671 571 + 862 892 764 572 + 109 461 982 573 + 943 655 412 574 + 745 541 255 575 + 868 541 297 576 + 472 20 224 577 + 163 991 647 578 + 249 883 588 579 + 232 486 162 580 + 236 281 784 581 + 416 261 65 582 + 377 34 790 583 + 357 121 610 584 + 542 439 866 585 + 860 324 598 586 + 865 337 712 587 + 368 421 977 588 + 839 280 457 589 + 140 655 416 590 + 962 381 331 591 + 901 685 732 592 + 818 483 831 593 + 13 724 791 594 + 818 694 222 595 + 746 822 841 596 + 829 418 836 597 + 335 565 408 598 + 516 447 281 599 + 584 204 166 600 + 480 508 119 601 + 713 787 704 602 + 626 941 739 603 + 206 418 284 604 + 989 326 701 605 + 636 396 195 606 + 397 393 655 607 + 240 696 896 608 + 166 117 974 609 + 72 733 210 610 + 797 533 566 611 + 729 728 481 612 + 663 212 86 613 + 298 475 563 614 + 590 533 517 615 + 618 314 133 616 + 422 195 38 617 + 195 415 288 618 + 540 303 253 619 + 446 553 859 620 + 568 891 223 621 + 432 617 981 622 + 519 214 775 623 + 529 721 844 624 + 786 898 692 625 + 440 401 201 626 + 345 353 846 627 + 296 566 906 628 + 638 422 370 629 + 15 577 469 630 + 624 192 134 631 + 136 554 755 632 + 182 690 940 633 + 77 366 923 634 + 284 979 275 635 + 157 582 373 636 + 433 547 343 637 + 767 786 527 638 + 983 877 385 639 + 581 612 158 640 + 365 520 673 641 + 436 227 897 642 + 458 421 913 643 + 579 492 760 644 + 818 493 507 645 + 316 22 867 646 + 114 421 939 647 + 372 281 912 648 + 415 608 633 649 + 938 676 927 650 + 965 591 931 651 + 335 789 34 652 + 865 820 346 653 + 406 798 304 654 + 893 441 267 655 + 166 126 835 656 + 764 859 839 657 + 629 918 194 658 + 557 297 552 659 + 954 79 478 660 + 801 224 670 661 + 640 493 262 662 + 750 478 681 663 + 534 867 654 664 + 980 586 142 665 + 882 597 156 666 + 277 186 48 667 + 448 541 23 668 + 457 702 496 669 + 11 936 491 670 + 689 668 457 671 + 368 941 288 672 + 914 311 464 673 + 893 843 828 674 + 800 933 797 675 + 951 427 657 676 + 754 215 476 677 + 148 260 508 678 + 735 130 193 679 + 390 631 761 680 + 288 203 777 681 + 273 443 23 682 + 189 20 355 683 + 240 344 560 684 + 157 360 674 685 + 921 774 803 686 + 473 943 937 687 + 600 920 393 688 + 611 579 530 689 + 632 577 59 690 + 24 5 495 691 + 701 358 722 692 + 703 284 820 693 + 625 625 844 694 + 649 253 531 695 + 447 309 534 696 + 662 218 419 697 + 762 347 627 698 + 947 344 133 699 + 581 36 652 700 + 222 747 122 701 + 238 761 162 702 + 72 82 231 703 + 717 296 966 704 + 563 516 774 705 + 273 451 819 706 + 956 175 651 707 + 33 770 754 708 + 956 650 369 709 + 146 838 148 710 + 588 713 547 711 + 453 457 541 712 + 979 92 401 713 + 967 162 417 714 + 144 155 672 715 + 725 737 962 716 + 779 701 886 717 + 64 203 120 718 + 433 284 482 719 + 911 538 512 720 + 613 713 77 721 + 268 636 685 722 + 445 955 193 723 + 458 677 653 724 + 91 450 356 725 + 747 11 360 726 + 728 448 147 727 + 37 494 679 728 + 780 582 256 729 + 756 212 810 730 + 556 434 265 731 + 280 472 983 732 + 547 93 857 733 + 922 225 378 734 + 754 138 346 735 + 236 235 349 736 + 718 421 501 737 + 80 880 464 738 + 753 490 286 739 + 616 332 218 740 + 338 391 547 741 + 490 599 370 742 + 35 559 686 743 + 67 290 565 744 + 30 597 153 745 + 59 763 701 746 + 268 439 123 747 + 237 940 669 748 + 451 205 145 749 + 302 284 961 750 + 365 443 828 751 + 225 598 65 752 + 437 561 73 753 + 248 219 7 754 + 72 29 274 755 + 577 35 654 756 + 537 41 857 757 + 956 966 739 758 + 545 747 373 759 + 479 463 705 760 + 112 79 161 761 + 280 885 672 762 + 322 829 596 763 + 422 279 697 764 + 804 997 963 765 + 907 852 494 766 + 321 245 492 767 + 298 698 419 768 + 49 454 185 769 + 169 214 25 770 + 880 324 414 771 + 816 163 425 772 + 366 370 167 773 + 729 49 684 774 + 460 337 792 775 + 719 908 817 776 + 825 310 303 777 + 245 814 724 778 + 877 713 128 779 + 488 241 839 780 + 499 820 884 781 + 918 356 273 782 + 69 228 442 783 + 877 523 698 784 + 780 391 627 785 + 838 539 547 786 + 512 867 786 787 + 491 298 421 788 + 402 153 940 789 + 602 220 539 790 + 638 167 534 791 + 626 204 122 792 + 77 170 569 793 + 342 364 529 794 + 74 523 842 795 + 416 675 415 796 + 292 900 918 797 + 335 565 795 798 + 145 396 558 799 + 320 421 585 800 + 315 495 106 801 + 618 492 494 802 + 985 684 702 803 + 261 35 699 804 + 890 678 100 805 + 797 972 693 806 + 782 12 675 807 + 991 963 24 808 + 774 465 254 809 + 409 446 291 810 + 920 178 430 811 + 558 186 476 812 + 668 502 39 813 + 897 497 471 814 + 927 534 95 815 + 465 621 535 816 + 971 718 597 817 + 440 803 941 818 + 859 104 59 819 + 891 712 889 820 + 7 465 712 821 + 928 323 951 822 + 938 251 464 823 + 939 541 491 824 + 376 430 543 825 + 605 181 684 826 + 849 578 57 827 + 635 433 572 828 + 958 171 565 829 + 525 870 63 830 + 198 864 591 831 + 466 125 610 832 + 442 604 512 833 + 444 666 55 834 + 129 374 546 835 + 893 328 978 836 + 78 279 999 837 + 852 302 465 838 + 378 619 123 839 + 97 246 185 840 + 374 775 308 841 + 579 48 388 842 + 497 730 745 843 + 142 703 596 844 + 387 31 973 845 + 861 944 602 846 + 894 919 522 847 + 755 689 409 848 + 592 310 115 849 + 326 708 398 850 + 53 87 866 851 + 966 266 370 852 + 925 281 815 853 + 864 315 882 854 + 699 352 849 855 + 526 185 948 856 + 58 454 681 857 + 496 917 237 858 + 556 907 558 859 + 815 422 705 860 + 232 423 194 861 + 941 811 583 862 + 686 207 335 863 + 637 693 440 864 + 574 795 385 865 + 531 936 899 866 + 721 950 37 867 + 317 786 906 868 + 830 719 101 869 + 360 615 650 870 + 689 218 676 871 + 790 208 197 872 + 621 7 791 873 + 868 203 866 874 + 16 491 53 875 + 952 268 717 876 + 956 736 773 877 + 793 386 760 878 + 750 624 957 879 + 184 964 443 880 + 454 684 835 881 + 439 931 60 882 + 293 434 866 883 + 990 467 282 884 + 664 423 302 885 + 523 485 116 886 + 127 469 710 887 + 625 758 497 888 + 514 544 998 889 + 571 281 413 890 + 458 70 645 891 + 526 283 884 892 + 77 738 725 893 + 802 278 508 894 + 782 597 976 895 + 385 358 919 896 + 710 492 994 897 + 750 517 79 898 + 964 231 679 899 + 370 34 845 900 + 951 245 299 901 + 83 431 846 902 + 384 989 609 903 + 447 761 747 904 + 647 898 371 905 + 95 794 298 906 + 644 157 625 907 + 663 107 507 908 + 572 927 578 909 + 165 926 94 910 + 455 530 905 911 + 397 412 598 912 + 616 239 788 913 + 228 556 609 914 + 26 540 184 915 + 208 745 687 916 + 877 36 977 917 + 64 29 195 918 + 936 56 807 919 + 952 253 397 920 + 62 246 95 921 + 923 102 491 922 + 576 116 739 923 + 919 559 820 924 + 882 534 865 925 + 490 650 961 926 + 441 741 975 927 + 59 922 597 928 + 76 209 337 929 + 293 785 447 930 + 338 971 276 931 + 117 581 939 932 + 210 266 701 933 + 108 448 378 934 + 253 556 164 935 + 998 200 168 936 + 969 358 13 937 + 606 206 458 938 + 752 400 571 939 + 796 521 911 940 + 934 50 150 941 + 96 205 764 942 + 844 216 657 943 + 669 434 222 944 + 242 301 66 945 + 471 277 227 946 + 732 681 20 947 + 67 991 597 948 + 784 793 613 949 + 198 841 555 950 + 109 429 396 951 + 219 461 729 952 + 128 255 888 953 + 850 154 754 954 + 809 226 387 955 + 719 468 706 956 + 289 436 26 957 + 441 280 688 958 + 510 57 451 959 + 417 255 277 960 + 670 198 625 961 + 791 681 20 962 + 803 998 294 963 + 332 323 282 964 + 905 213 739 965 + 115 267 394 966 + 965 213 788 967 + 125 829 635 968 + 90 281 640 969 + 103 584 81 970 + 407 771 19 971 + 205 213 708 972 + 380 814 704 973 + 778 462 872 974 + 799 553 758 975 + 402 193 269 976 + 403 947 198 977 + 814 22 499 978 + 532 948 570 979 + 159 951 932 980 + 505 616 592 981 + 507 657 785 982 + 811 860 675 983 + 831 140 99 984 + 450 966 627 985 + 939 358 947 986 + 182 201 1 987 + 951 487 951 988 + 367 376 539 989 + 972 491 495 990 + 758 761 80 991 + 122 872 278 992 + 933 927 926 993 + 835 300 759 994 + 733 195 418 995 + 347 73 485 996 + 783 138 660 997 + 186 586 422 998 + 464 301 410 999 + 479 552 175 1000 + 532 634 83 1001 + 383 285 44 1002 + 436 431 58 1003 + 535 170 985 1004 + 632 274 488 1005 + 338 130 571 1006 + 176 582 380 1007 + 669 613 396 1008 + 705 169 719 1009 + 856 993 121 1010 + 133 966 370 1011 + 914 196 281 1012 + 798 669 132 1013 + 890 418 374 1014 + 955 705 442 1015 + 159 406 397 1016 + 404 59 893 1017 + 526 377 933 1018 + 248 442 442 1019 + 471 116 739 1020 + 292 552 575 1021 + 676 666 574 1022 + 511 172 422 1023 + 796 592 548 1024 + 697 197 477 1025 + 661 900 981 1026 + 526 779 684 1027 + 989 910 867 1028 + 482 449 661 1029 + 891 955 235 1030 + 826 260 714 1031 + 652 178 978 1032 + 234 346 905 1033 + 935 213 526 1034 + 329 593 819 1035 + 651 773 628 1036 + 879 926 371 1037 + 868 42 701 1038 + 13 891 485 1039 + 130 730 141 1040 + 454 725 922 1041 + 586 445 826 1042 + 274 99 77 1043 + 282 84 102 1044 + 318 19 73 1045 + 467 956 769 1046 + 90 409 641 1047 + 417 660 846 1048 + 417 577 381 1049 + 463 863 570 1050 + 46 323 473 1051 + 261 448 309 1052 + 499 63 834 1053 + 334 421 710 1054 + 392 296 356 1055 + 432 152 633 1056 + 48 257 572 1057 + 130 797 559 1058 + 304 136 450 1059 + 285 807 671 1060 + 715 135 563 1061 + 504 218 531 1062 + 838 139 745 1063 + 938 200 245 1064 + 866 797 168 1065 + 656 709 308 1066 + 213 654 329 1067 + 550 138 928 1068 + 454 702 780 1069 + 881 227 940 1070 + 83 894 989 1071 + 903 836 207 1072 + 134 762 835 1073 + 592 857 242 1074 + 724 922 700 1075 + 612 291 718 1076 + 874 856 943 1077 + 413 854 568 1078 + 843 169 497 1079 + 815 927 781 1080 + 236 776 958 1081 + 990 235 853 1082 + 537 229 396 1083 + 706 195 709 1084 + 13 38 102 1085 + 665 705 455 1086 + 655 735 525 1087 + 490 30 684 1088 + 291 219 12 1089 + 657 236 687 1090 + 814 779 613 1091 + 957 976 589 1092 + 705 994 456 1093 + 276 389 477 1094 + 968 752 553 1095 + 708 859 947 1096 + 267 922 639 1097 + 34 724 754 1098 + 253 262 358 1099 + 693 662 387 1100 + 386 326 592 1101 + 432 547 227 1102 + 295 465 360 1103 + 604 434 858 1104 + 627 759 610 1105 + 676 557 182 1106 + 231 538 98 1107 + 817 595 122 1108 + 153 686 713 1109 + 71 491 59 1110 + 197 631 744 1111 + 202 441 943 1112 + 509 420 915 1113 + 572 160 162 1114 + 836 976 237 1115 + 235 26 160 1116 + 729 984 367 1117 + 385 758 902 1118 + 190 475 560 1119 + 432 289 613 1120 + 435 200 247 1121 + 366 614 260 1122 + 708 445 16 1123 + 367 330 743 1124 + 397 750 311 1125 + 35 581 700 1126 + 574 182 762 1127 + 930 258 952 1128 + 739 297 845 1129 + 291 229 421 1130 + 986 463 383 1131 + 875 605 217 1132 + 215 993 9 1133 + 762 768 136 1134 + 960 561 130 1135 + 809 868 81 1136 + 843 592 612 1137 + 159 449 610 1138 + 148 831 220 1139 + 42 173 589 1140 + 152 872 608 1141 + 895 190 707 1142 + 675 245 822 1143 + 671 246 352 1144 + 401 246 973 1145 + 124 390 123 1146 + 461 579 871 1147 + 874 975 766 1148 + 472 257 751 1149 + 421 887 254 1150 + 429 259 207 1151 + 472 362 673 1152 + 392 598 763 1153 + 459 736 45 1154 + 771 314 779 1155 + 734 589 747 1156 + 206 592 287 1157 + 984 629 554 1158 + 801 590 601 1159 + 517 61 527 1160 + 389 133 105 1161 + 862 114 607 1162 + 238 748 757 1163 + 915 890 653 1164 + 984 939 697 1165 + 532 53 229 1166 + 822 196 730 1167 + 621 248 666 1168 + 901 819 307 1169 + 809 540 510 1170 + 113 719 233 1171 + 348 69 692 1172 + 842 890 213 1173 + 821 951 579 1174 + 529 323 306 1175 + 89 323 543 1176 + 440 26 722 1177 + 802 522 426 1178 + 756 657 960 1179 + 93 596 816 1180 + 866 442 378 1181 + 828 556 364 1182 + 96 121 12 1183 + 317 648 577 1184 + 253 53 633 1185 + 544 688 931 1186 + 424 790 344 1187 + 458 865 145 1188 + 562 831 363 1189 + 893 221 919 1190 + 840 92 529 1191 + 169 297 774 1192 + 838 306 682 1193 + 441 121 570 1194 + 428 389 811 1195 + 344 727 239 1196 + 196 44 826 1197 + 229 728 950 1198 + 357 615 210 1199 + 859 776 89 1200 + 935 539 212 1201 + 884 487 844 1202 + 31 508 774 1203 + 851 25 109 1204 + 436 477 675 1205 + 584 995 828 1206 + 573 794 507 1207 + 599 655 909 1208 + 303 126 412 1209 + 752 568 805 1210 + 987 391 459 1211 + 680 853 647 1212 + 778 468 531 1213 + 415 606 323 1214 + 490 746 519 1215 + 373 674 320 1216 + 200 95 319 1217 + 251 186 808 1218 + 49 280 952 1219 + 173 406 142 1220 + 421 808 498 1221 + 550 953 635 1222 + 314 384 519 1223 + 383 663 385 1224 + 116 706 387 1225 + 376 445 205 1226 + 430 181 173 1227 + 248 525 43 1228 + 274 444 534 1229 + 582 464 599 1230 + 858 68 229 1231 + 353 821 235 1232 + 564 259 256 1233 + 510 953 54 1234 + 713 337 323 1235 + 4 96 282 1236 + 711 402 41 1237 + 337 629 820 1238 + 185 206 180 1239 + 385 472 645 1240 + 455 600 405 1241 + 743 974 79 1242 + 591 819 423 1243 + 741 14 207 1244 + 290 698 121 1245 + 851 693 145 1246 + 739 993 803 1247 + 740 484 702 1248 + 304 582 551 1249 + 132 253 734 1250 + 770 178 853 1251 + 835 268 809 1252 + 759 934 619 1253 + 984 542 238 1254 + 835 741 413 1255 + 606 159 861 1256 + 699 163 862 1257 + 96 50 31 1258 + 814 712 650 1259 + 818 212 404 1260 + 32 784 659 1261 + 111 465 941 1262 + 895 376 756 1263 + 924 574 646 1264 + 341 753 965 1265 + 400 394 948 1266 + 379 471 35 1267 + 171 467 199 1268 + 528 16 634 1269 + 360 453 592 1270 + 820 44 316 1271 + 591 841 550 1272 + 724 825 255 1273 + 356 648 85 1274 + 338 530 337 1275 + 637 151 291 1276 + 811 629 578 1277 + 709 389 77 1278 + 208 856 654 1279 + 781 611 560 1280 + 165 676 590 1281 + 657 192 67 1282 + 737 322 236 1283 + 946 299 235 1284 + 410 438 205 1285 + 789 274 389 1286 + 834 318 884 1287 + 107 335 552 1288 + 283 336 8 1289 + 755 310 431 1290 + 920 497 430 1291 + 576 751 597 1292 + 9 893 607 1293 + 570 151 70 1294 + 514 330 198 1295 + 481 726 103 1296 + 324 929 124 1297 + 594 180 866 1298 + 901 125 69 1299 + 528 60 899 1300 + 705 772 441 1301 + 156 93 469 1302 + 701 849 58 1303 + 66 437 140 1304 + 424 499 152 1305 + 380 921 55 1306 + 825 124 860 1307 + 424 246 851 1308 + 832 211 94 1309 + 419 701 417 1310 + 296 310 689 1311 + 127 647 813 1312 + 881 699 761 1313 + 815 948 199 1314 + 176 386 713 1315 + 371 373 510 1316 + 356 995 411 1317 + 97 864 476 1318 + 267 888 213 1319 + 656 368 996 1320 + 921 760 863 1321 + 208 243 271 1322 + 241 16 796 1323 + 168 256 928 1324 + 213 677 471 1325 + 829 27 169 1326 + 747 648 351 1327 + 339 681 214 1328 + 398 512 176 1329 + 251 212 367 1330 + 313 846 267 1331 + 255 735 547 1332 + 271 212 356 1333 + 146 401 656 1334 + 245 891 351 1335 + 334 623 729 1336 + 498 864 547 1337 + 857 596 730 1338 + 482 834 899 1339 + 400 836 434 1340 + 78 390 440 1341 + 398 688 167 1342 + 63 564 884 1343 + 587 891 982 1344 + 594 431 168 1345 + 439 990 512 1346 + 219 905 258 1347 + 550 82 523 1348 + 631 402 199 1349 + 148 517 112 1350 + 743 670 185 1351 + 605 731 534 1352 + 651 124 537 1353 + 81 710 220 1354 + 520 635 499 1355 + 761 929 500 1356 + 741 403 917 1357 + 68 710 230 1358 + 278 538 203 1359 + 235 229 295 1360 + 470 244 126 1361 + 448 350 96 1362 + 56 247 75 1363 + 861 763 85 1364 + 571 855 522 1365 + 410 96 437 1366 + 196 552 400 1367 + 651 453 974 1368 + 458 674 706 1369 + 211 593 139 1370 + 388 134 179 1371 + 407 608 180 1372 + 640 454 445 1373 + 213 176 407 1374 + 616 447 712 1375 + 252 103 866 1376 + 242 27 981 1377 + 147 85 675 1378 + 314 370 693 1379 + 256 490 434 1380 + 296 206 544 1381 + 531 137 677 1382 + 577 524 896 1383 + 61 486 293 1384 + 677 425 436 1385 + 605 304 630 1386 + 654 542 339 1387 + 863 592 22 1388 + 914 224 711 1389 + 234 649 727 1390 + 873 159 424 1391 + 826 639 696 1392 + 136 653 407 1393 + 436 767 449 1394 + 678 875 610 1395 + 271 785 460 1396 + 569 592 969 1397 + 729 582 988 1398 + 326 139 391 1399 + 841 847 925 1400 + 425 991 861 1401 + 642 949 501 1402 + 895 661 827 1403 + 979 685 941 1404 + 724 208 801 1405 + 439 724 125 1406 + 527 998 303 1407 + 150 327 217 1408 + 7 188 418 1409 + 52 110 291 1410 + 59 211 162 1411 + 989 311 166 1412 + 377 12 561 1413 + 650 303 503 1414 + 427 496 663 1415 + 419 913 81 1416 + 364 531 661 1417 + 991 37 692 1418 + 773 394 245 1419 + 459 357 617 1420 + 949 190 23 1421 + 544 154 313 1422 + 629 156 298 1423 + 338 753 854 1424 + 282 744 855 1425 + 273 23 3 1426 + 908 784 528 1427 + 889 764 520 1428 + 65 327 55 1429 + 118 826 479 1430 + 285 34 48 1431 + 320 820 441 1432 + 652 154 358 1433 + 373 876 806 1434 + 543 778 916 1435 + 261 387 788 1436 + 695 408 734 1437 + 956 128 961 1438 + 750 302 195 1439 + 669 163 641 1440 + 197 291 528 1441 + 406 959 749 1442 + 835 747 135 1443 + 474 931 721 1444 + 374 616 113 1445 + 385 279 59 1446 + 85 772 123 1447 + 767 955 243 1448 + 782 383 174 1449 + 253 918 312 1450 + 941 99 123 1451 + 234 689 235 1452 + 950 737 269 1453 + 145 535 192 1454 + 13 352 267 1455 + 134 621 325 1456 + 897 529 864 1457 + 373 646 618 1458 + 597 968 619 1459 + 876 655 663 1460 + 83 735 132 1461 + 866 556 738 1462 + 580 162 735 1463 + 437 822 458 1464 + 482 811 492 1465 + 401 656 753 1466 + 615 435 892 1467 + 493 771 395 1468 + 721 994 734 1469 + 243 133 298 1470 + 526 873 809 1471 + 564 836 232 1472 + 768 309 254 1473 + 366 958 72 1474 + 568 606 339 1475 + 775 134 538 1476 + 255 575 619 1477 + 997 278 669 1478 + 957 88 623 1479 + 720 342 370 1480 + 213 811 197 1481 + 931 690 50 1482 + 838 814 200 1483 + 776 480 744 1484 + 638 396 519 1485 + 356 511 309 1486 + 912 125 65 1487 + 939 277 931 1488 + 305 350 864 1489 + 20 981 501 1490 + 78 931 296 1491 + 66 194 781 1492 + 572 395 560 1493 + 453 92 447 1494 + 919 312 747 1495 + 824 44 469 1496 + 367 312 862 1497 + 709 357 563 1498 + 637 984 458 1499 + 549 698 470 1500 + 248 861 48 1501 + 603 264 145 1502 + 379 795 37 1503 + 607 646 180 1504 + 826 195 197 1505 + 562 207 255 1506 + 426 29 108 1507 + 945 796 577 1508 + 292 521 686 1509 + 674 293 324 1510 + 739 14 179 1511 + 544 385 839 1512 + 236 373 943 1513 + 126 522 467 1514 + 17 521 11 1515 + 111 12 470 1516 + 232 480 781 1517 + 393 938 941 1518 + 541 520 836 1519 + 705 990 34 1520 + 800 961 999 1521 + 532 825 963 1522 + 783 931 544 1523 + 327 483 595 1524 + 578 905 886 1525 + 734 718 476 1526 + 744 158 824 1527 + 80 643 837 1528 + 118 615 866 1529 + 59 51 845 1530 + 56 598 106 1531 + 676 553 786 1532 + 660 815 795 1533 + 202 324 8 1534 + 349 876 702 1535 + 421 439 420 1536 + 717 937 924 1537 + 223 875 728 1538 + 236 895 561 1539 + 302 114 176 1540 + 314 163 38 1541 + 349 581 456 1542 + 124 526 474 1543 + 537 74 902 1544 + 618 216 612 1545 + 183 160 937 1546 + 945 731 219 1547 + 108 30 508 1548 + 935 728 300 1549 + 854 527 753 1550 + 87 473 250 1551 + 918 208 524 1552 + 554 611 73 1553 + 545 728 620 1554 + 77 596 588 1555 + 751 552 839 1556 + 615 178 163 1557 + 993 541 716 1558 + 581 615 625 1559 + 788 406 731 1560 + 655 937 322 1561 + 223 203 650 1562 + 267 376 258 1563 + 321 428 886 1564 + 379 751 439 1565 + 865 701 554 1566 + 758 180 165 1567 + 880 855 658 1568 + 53 414 748 1569 + 852 963 754 1570 + 324 813 28 1571 + 535 817 588 1572 + 364 44 581 1573 + 211 198 458 1574 + 193 192 695 1575 + 61 92 991 1576 + 205 599 445 1577 + 920 416 284 1578 + 965 956 500 1579 + 835 324 654 1580 + 627 371 100 1581 + 897 92 624 1582 + 47 382 646 1583 + 800 43 758 1584 + 804 349 363 1585 + 766 209 373 1586 + 299 499 662 1587 + 685 349 311 1588 + 23 870 624 1589 + 202 811 638 1590 + 189 231 50 1591 + 813 226 556 1592 + 546 499 403 1593 + 476 654 206 1594 + 781 604 423 1595 + 805 673 459 1596 + 26 452 406 1597 + 278 721 185 1598 + 364 442 550 1599 + 169 576 423 1600 + 808 518 616 1601 + 841 739 727 1602 + 380 504 391 1603 + 191 81 239 1604 + 895 35 203 1605 + 940 65 86 1606 + 311 717 120 1607 + 77 422 22 1608 + 318 531 139 1609 + 613 513 219 1610 + 650 825 630 1611 + 45 488 702 1612 + 470 339 498 1613 + 849 231 382 1614 + 623 154 426 1615 + 23 433 332 1616 + 810 273 385 1617 + 835 251 140 1618 + 83 577 853 1619 + 125 526 609 1620 + 174 415 846 1621 + 698 974 257 1622 + 280 869 9 1623 + 436 151 254 1624 + 603 73 174 1625 + 782 392 58 1626 + 626 457 140 1627 + 629 410 748 1628 + 40 30 560 1629 + 601 427 364 1630 + 532 766 900 1631 + 969 786 66 1632 + 558 31 848 1633 + 8 834 70 1634 + 915 887 103 1635 + 909 468 53 1636 + 738 758 163 1637 + 805 631 345 1638 + 188 364 354 1639 + 116 605 773 1640 + 366 606 20 1641 + 346 85 757 1642 + 447 812 952 1643 + 51 696 925 1644 + 425 428 977 1645 + 817 409 802 1646 + 911 218 886 1647 + 335 240 294 1648 + 17 100 608 1649 + 2 77 754 1650 + 20 100 721 1651 + 984 724 971 1652 + 446 970 606 1653 + 948 270 957 1654 + 765 492 236 1655 + 527 552 37 1656 + 365 301 253 1657 + 434 418 690 1658 + 501 250 117 1659 + 416 292 808 1660 + 180 696 352 1661 + 657 477 190 1662 + 568 244 418 1663 + 716 395 525 1664 + 725 691 472 1665 + 611 625 489 1666 + 584 930 500 1667 + 600 702 701 1668 + 202 762 713 1669 + 354 361 19 1670 + 579 524 355 1671 + 711 499 338 1672 + 430 427 492 1673 + 680 504 673 1674 + 284 396 779 1675 + 544 250 813 1676 + 247 47 933 1677 + 372 205 679 1678 + 458 583 566 1679 + 161 787 651 1680 + 438 308 536 1681 + 138 281 797 1682 + 452 223 221 1683 + 460 496 911 1684 + 401 351 611 1685 + 191 218 755 1686 + 475 452 497 1687 + 72 219 536 1688 + 906 220 214 1689 + 959 62 418 1690 + 225 697 628 1691 + 195 838 657 1692 + 411 854 328 1693 + 993 733 236 1694 + 846 838 306 1695 + 263 112 119 1696 + 158 9 149 1697 + 144 87 732 1698 + 87 82 674 1699 + 283 33 61 1700 + 888 734 364 1701 + 718 750 344 1702 + 2 485 454 1703 + 337 451 728 1704 + 341 170 577 1705 + 651 272 820 1706 + 225 562 481 1707 + 472 759 609 1708 + 63 402 607 1709 + 731 394 506 1710 + 744 680 331 1711 + 697 381 236 1712 + 336 396 451 1713 + 360 20 281 1714 + 710 608 343 1715 + 624 567 415 1716 + 778 800 390 1717 + 422 831 213 1718 + 453 294 120 1719 + 28 635 287 1720 + 788 367 373 1721 + 213 739 579 1722 + 622 560 219 1723 + 296 890 516 1724 + 733 808 384 1725 + 481 245 585 1726 + 58 647 842 1727 + 60 652 705 1728 + 2 100 202 1729 + 36 696 415 1730 + 151 786 712 1731 + 174 410 804 1732 + 867 904 58 1733 + 885 869 868 1734 + 99 679 864 1735 + 396 301 272 1736 + 744 849 192 1737 + 425 621 289 1738 + 805 71 892 1739 + 92 422 424 1740 + 873 363 573 1741 + 480 977 298 1742 + 263 514 173 1743 + 456 963 265 1744 + 636 637 203 1745 + 902 573 219 1746 + 414 405 90 1747 + 314 842 900 1748 + 251 946 787 1749 + 562 519 831 1750 + 865 20 512 1751 + 560 190 301 1752 + 915 183 779 1753 + 372 559 104 1754 + 15 434 105 1755 + 377 134 11 1756 + 178 479 303 1757 + 503 396 290 1758 + 427 522 349 1759 + 567 694 454 1760 + 630 919 58 1761 + 353 305 511 1762 + 704 867 137 1763 + 713 974 740 1764 + 911 756 703 1765 + 655 148 739 1766 + 519 212 406 1767 + 677 289 620 1768 + 983 84 724 1769 + 142 389 335 1770 + 841 384 662 1771 + 807 587 868 1772 + 888 560 138 1773 + 84 24 812 1774 + 432 278 122 1775 + 656 178 215 1776 + 234 100 209 1777 + 239 186 768 1778 + 101 342 212 1779 + 264 265 666 1780 + 575 971 78 1781 + 655 70 294 1782 + 616 902 307 1783 + 888 637 155 1784 + 929 282 916 1785 + 639 730 964 1786 + 438 345 192 1787 + 468 610 206 1788 + 51 472 217 1789 + 423 875 674 1790 + 371 748 692 1791 + 793 387 318 1792 + 642 879 775 1793 + 499 948 877 1794 + 930 102 541 1795 + 223 95 252 1796 + 588 61 258 1797 + 439 51 56 1798 + 495 666 26 1799 + 262 696 423 1800 + 276 102 416 1801 + 656 484 499 1802 + 807 663 474 1803 + 876 411 24 1804 + 351 138 143 1805 + 312 124 534 1806 + 336 200 421 1807 + 687 489 733 1808 + 751 229 941 1809 + 322 414 256 1810 + 440 575 936 1811 + 373 304 5 1812 + 689 311 931 1813 + 854 760 440 1814 + 824 432 463 1815 + 302 807 159 1816 + 842 822 499 1817 + 751 893 350 1818 + 205 284 474 1819 + 852 890 257 1820 + 91 826 609 1821 + 806 154 808 1822 + 947 710 269 1823 + 999 150 135 1824 + 291 838 260 1825 + 347 728 885 1826 + 481 454 779 1827 + 518 339 139 1828 + 767 914 644 1829 + 519 946 650 1830 + 561 56 988 1831 + 485 44 40 1832 + 42 839 457 1833 + 518 845 490 1834 + 121 535 452 1835 + 392 674 242 1836 + 502 361 491 1837 + 838 170 716 1838 + 828 458 249 1839 + 260 528 618 1840 + 359 825 228 1841 + 494 786 183 1842 + 701 160 315 1843 + 568 437 13 1844 + 577 367 383 1845 + 65 235 376 1846 + 134 948 942 1847 + 151 468 204 1848 + 67 819 813 1849 + 90 396 447 1850 + 688 334 528 1851 + 706 319 398 1852 + 609 530 604 1853 + 564 129 561 1854 + 932 584 43 1855 + 653 30 91 1856 + 262 657 302 1857 + 389 628 375 1858 + 9 664 564 1859 + 764 101 568 1860 + 754 730 927 1861 + 650 910 57 1862 + 51 379 96 1863 + 616 820 112 1864 + 100 564 98 1865 + 688 835 659 1866 + 720 466 647 1867 + 262 893 400 1868 + 425 104 167 1869 + 388 919 466 1870 + 257 765 50 1871 + 197 717 734 1872 + 101 750 750 1873 + 412 526 261 1874 + 382 762 382 1875 + 209 361 315 1876 + 470 712 398 1877 + 447 641 40 1878 + 390 267 438 1879 + 441 98 446 1880 + 402 836 333 1881 + 678 925 255 1882 + 835 35 166 1883 + 471 665 859 1884 + 390 699 875 1885 + 551 523 235 1886 + 691 639 263 1887 + 879 647 53 1888 + 331 413 118 1889 + 154 477 970 1890 + 389 406 916 1891 + 811 948 239 1892 + 408 217 244 1893 + 868 943 404 1894 + 349 276 792 1895 + 236 585 481 1896 + 320 656 546 1897 + 835 769 804 1898 + 161 728 778 1899 + 948 729 65 1900 + 835 164 940 1901 + 692 211 148 1902 + 434 58 920 1903 + 524 174 30 1904 + 572 233 25 1905 + 50 94 8 1906 + 554 421 618 1907 + 338 274 638 1908 + 346 188 656