From a00d173e0d03a289518b05b365416fd5a02d378b Mon Sep 17 00:00:00 2001 From: Mattrixwv Date: Wed, 18 Dec 2024 19:42:59 -0500 Subject: [PATCH] Complete day 7 --- .../adventOfCode24/ProblemSelector.java | 6 +- .../adventOfCode24/days/Problem13.java | 118 +++ .../adventOfCode24/days/Problem14.java | 124 +++ src/main/resources/days/Problem13.txt | 850 ++++++++++++++++++ 4 files changed, 1097 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/mattrixwv/adventOfCode24/days/Problem13.java create mode 100644 src/main/java/com/mattrixwv/adventOfCode24/days/Problem14.java create mode 100644 src/main/resources/days/Problem13.txt diff --git a/src/main/java/com/mattrixwv/adventOfCode24/ProblemSelector.java b/src/main/java/com/mattrixwv/adventOfCode24/ProblemSelector.java index fe0162c..1b2f100 100644 --- a/src/main/java/com/mattrixwv/adventOfCode24/ProblemSelector.java +++ b/src/main/java/com/mattrixwv/adventOfCode24/ProblemSelector.java @@ -11,6 +11,8 @@ import com.mattrixwv.adventOfCode24.days.Problem1; import com.mattrixwv.adventOfCode24.days.Problem10; import com.mattrixwv.adventOfCode24.days.Problem11; import com.mattrixwv.adventOfCode24.days.Problem12; +import com.mattrixwv.adventOfCode24.days.Problem13; +import com.mattrixwv.adventOfCode24.days.Problem14; import com.mattrixwv.adventOfCode24.days.Problem2; import com.mattrixwv.adventOfCode24.days.Problem3; import com.mattrixwv.adventOfCode24.days.Problem4; @@ -26,7 +28,7 @@ public class ProblemSelector{ //Holds the valid problem numbers protected static final List PROBLEM_NUMBERS = List.of( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12 + 10, 11, 12, 13, 14 ); @@ -51,6 +53,8 @@ public class ProblemSelector{ case 10 : day = new Problem10(); break; case 11 : day = new Problem11(); break; case 12 : day = new Problem12(); break; + case 13 : day = new Problem13(); break; + case 14 : day = new Problem14(); break; default: throw new InvalidParameterException(); } return day; diff --git a/src/main/java/com/mattrixwv/adventOfCode24/days/Problem13.java b/src/main/java/com/mattrixwv/adventOfCode24/days/Problem13.java new file mode 100644 index 0000000..faf3dc7 --- /dev/null +++ b/src/main/java/com/mattrixwv/adventOfCode24/days/Problem13.java @@ -0,0 +1,118 @@ +package com.mattrixwv.adventOfCode24.days; + + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +import com.mattrixwv.Stopwatch; +import com.mattrixwv.Triple; + + +public class Problem13 extends Problem{ + private static final String inputFileName = "days/Problem13.txt"; + private List, List>> values; + + + public Problem13(){ + super(); + description = "Find the sum of the answers of the equations that have solutions."; + result = "Unresolved"; + } + + public String runSolution(){ + Stopwatch timer = new Stopwatch(); + timer.start(); + + + //Read the file + values = new ArrayList<>(); + try(Scanner scanner = new Scanner(this.getClass().getClassLoader().getResourceAsStream(inputFileName))){ + scanner.useDelimiter("\n"); + while(scanner.hasNext()){ + String inputLine = scanner.next(); + if(inputLine.isBlank()){ + continue; + } + long answer = Long.parseLong(inputLine.split(":")[0]); + List elements = new ArrayList<>(); + String elementsString = inputLine.split(":")[1]; + for(String elementString : elementsString.split(" ")){ + if(elementString.isBlank()){ + continue; + } + long element = Long.parseLong(elementString); + elements.add(element); + } + List equations = new ArrayList<>(); + for(int cnt = 0;cnt < elements.size() - 1;++cnt){ + equations.add('+'); + } + values.add(new Triple, List>(answer, elements, equations)); + } + } + + long sum = 0; + for(Triple, List> value : values){ + if(hasSolution(value)){ + sum += value.getA(); + } + } + + + //Save the result + timer.stop(); + result = "The sum of the answers of the equations that have solutions is " + sum + ".\nIt took " + timer.toString() + " to run the algorithm."; + return result; + } + + private boolean hasSolution(Triple, List> value){ + //Loop through all possibilities for the equations and return true if one matches + for(int cnt = 0;cnt < (Math.pow(2, value.getC().size()));++cnt){ + long equationValue = value.getB().get(0); + for(int eqnCnt = 0;eqnCnt < value.getC().size();++eqnCnt){ + Character eqnIndicator = value.getC().get(eqnCnt); + if(eqnIndicator == '+'){ + equationValue += value.getB().get(eqnCnt + 1); + } + else if(eqnIndicator == '*'){ + equationValue *= value.getB().get(eqnCnt + 1); + } + } + //If the values match then return true + if(equationValue == value.getA()){ + return true; + } + //If they don't match, advance to the next equation iteration + else{ + advanceEquations(value.getC()); + } + } + return false; + } + + private void advanceEquations(List eqn){ + advanceEquations(eqn, 0); + } + + private void advanceEquations(List eqn, int index){ + if(index >= eqn.size()){ + return; + } + + if(eqn.get(index) == '+'){ + eqn.set(index, '*'); + } + else if(eqn.get(index) == '*'){ + eqn.set(index, '+'); + advanceEquations(eqn, index + 1); + } + } +} + + +/* +Find the sum of the answers of the equations that have solutions. +The sum of the answers of the equations that have solutions is 42283209483350. +It took 56.421 milliseconds to run the algorithm. +*/ diff --git a/src/main/java/com/mattrixwv/adventOfCode24/days/Problem14.java b/src/main/java/com/mattrixwv/adventOfCode24/days/Problem14.java new file mode 100644 index 0000000..1ae4ce1 --- /dev/null +++ b/src/main/java/com/mattrixwv/adventOfCode24/days/Problem14.java @@ -0,0 +1,124 @@ +package com.mattrixwv.adventOfCode24.days; + + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +import com.mattrixwv.Stopwatch; +import com.mattrixwv.Triple; + + +public class Problem14 extends Problem{ + private static final String inputFileName = "days/Problem13.txt"; + private List, List>> values; + + + public Problem14(){ + super(); + description = "Find the sum of the answers of the equations that have solutions."; + result = "Unresolved"; + } + + public String runSolution(){ + Stopwatch timer = new Stopwatch(); + timer.start(); + + + //Read the file + values = new ArrayList<>(); + try(Scanner scanner = new Scanner(this.getClass().getClassLoader().getResourceAsStream(inputFileName))){ + scanner.useDelimiter("\n"); + while(scanner.hasNext()){ + String inputLine = scanner.next(); + if(inputLine.isBlank()){ + continue; + } + long answer = Long.parseLong(inputLine.split(":")[0]); + List elements = new ArrayList<>(); + String elementsString = inputLine.split(":")[1]; + for(String elementString : elementsString.split(" ")){ + if(elementString.isBlank()){ + continue; + } + long element = Long.parseLong(elementString); + elements.add(element); + } + List equations = new ArrayList<>(); + for(int cnt = 0;cnt < elements.size() - 1;++cnt){ + equations.add('+'); + } + values.add(new Triple, List>(answer, elements, equations)); + } + } + + long sum = 0; + for(Triple, List> value : values){ + if(hasSolution(value)){ + sum += value.getA(); + } + } + + + //Save the result + timer.stop(); + result = "The sum of the answers of the equations that have solutions is " + sum + ".\nIt took " + timer.toString() + " to run the algorithm."; + return result; + } + + private boolean hasSolution(Triple, List> value){ + //Loop through all possibilities for the equations and return true if one matches + for(int cnt = 0;cnt < (Math.pow(3, value.getC().size()));++cnt){ + long equationValue = value.getB().get(0); + for(int eqnCnt = 0;eqnCnt < value.getC().size();++eqnCnt){ + Character eqnIndicator = value.getC().get(eqnCnt); + if(eqnIndicator == '+'){ + equationValue += value.getB().get(eqnCnt + 1); + } + else if(eqnIndicator == '*'){ + equationValue *= value.getB().get(eqnCnt + 1); + } + else if(eqnIndicator == '|'){ + equationValue = Long.parseLong(Long.toString(equationValue) + Long.toString(value.getB().get(eqnCnt + 1))); + } + } + //If the values match then return true + if(equationValue == value.getA()){ + return true; + } + //If they don't match, advance to the next equation + else{ + advanceEquations(value.getC()); + } + } + return false; + } + + private void advanceEquations(List eqn){ + advanceEquations(eqn, 0); + } + + private void advanceEquations(List eqn, int index){ + if(index >= eqn.size()){ + return; + } + + if(eqn.get(index) == '+'){ + eqn.set(index, '*'); + } + else if(eqn.get(index) == '*'){ + eqn.set(index, '|'); + } + else if(eqn.get(index) == '|'){ + eqn.set(index, '+'); + advanceEquations(eqn, index + 1); + } + } +} + + +/* +Find the sum of the answers of the equations that have solutions. +The sum of the answers of the equations that have solutions is 1026766857276279. +It took 1.238 seconds to run the algorithm. +*/ diff --git a/src/main/resources/days/Problem13.txt b/src/main/resources/days/Problem13.txt new file mode 100644 index 0000000..a7d0eed --- /dev/null +++ b/src/main/resources/days/Problem13.txt @@ -0,0 +1,850 @@ +921381619: 151 17 53 4 115 9 +2468269904976: 31 15 9 6 33 860 9 464 +382683795: 7 3 369 9 2 4 6 629 3 65 +493358476147: 8 2 219 7 41 269 60 7 +35389305: 95 9 7 9 657 +381705: 8 6 7 4 5 78 9 7 8 500 4 9 +5041638126: 5 837 97 9 81 762 +1320: 4 4 155 9 6 7 6 8 4 1 39 1 +1863750: 8 214 62 5 3 15 70 +2178131: 44 495 63 8 60 +88391: 88 319 3 61 8 +1437492: 242 594 5 4 3 +39606: 20 6 55 1 6 +655407: 5 15 64 75 927 480 +398215: 4 549 6 4 9 3 9 2 374 73 +50977548: 8 70 5 971 7 1 6 +55931683954: 52 1 5 13 5 4 8 165 9 5 4 +6067: 944 67 6 1 +9234259: 7 171 9 6 1 6 6 8 1 2 15 4 +110173778: 3 7 8 8 6 1 5 889 3 51 5 8 +43339: 5 831 8 358 6 4 1 6 3 2 1 +159939322: 661 57 849 6 5 54 373 +2027: 7 85 3 1 7 7 49 5 6 3 25 +669: 7 2 634 20 6 +17262: 88 98 2 5 9 +1149387: 43 286 59 1 1 93 +68607: 52 6 9 818 1 86 4 7 2 7 +1179: 230 935 14 +2622280313: 6 71 6 28 85 77 569 +68269: 6 3 2 6 58 6 43 478 8 6 1 +1919: 3 382 10 758 5 +208840153: 556 59 693 9 490 193 +675262124708: 7 7 348 7 1 7 6 740 5 6 8 +2410: 5 597 4 2 +3322862: 7 449 179 1 862 +101172088153: 9 33 78 720 88 152 1 +3652794: 480 6 4 663 2 22 4 5 6 3 +6436320: 621 6 72 148 3 20 +215: 20 96 10 40 49 +427764: 1 6 7 6 8 34 3 640 516 +440365: 66 66 47 35 30 +47966: 5 8 4 4 88 8 404 9 7 5 8 2 +62724: 95 532 23 +57528121: 1 4 91 787 6 38 769 +91700: 7 4 2 1 9 7 46 4 2 6 700 +37764145026: 7 4 2 297 4 9 36 71 46 6 +295134900: 9 38 146 11 782 56 5 +37601765: 57 76 868 5 +62923502103: 74 4 25 40 531 20 98 5 +26823465: 272 9 35 264 4 5 531 +2487: 765 3 92 1 99 +2529312: 84 24 7 3 12 +1637010: 2 978 94 508 78 3 +8263374: 55 859 4 9 93 4 4 400 +38586944: 60 291 9 8 16 8 +280986: 46 181 513 137 6 +12001298792: 5 2 2 8 98 4 49 312 5 6 7 +2435931840: 25 302 41 31 60 24 +124890: 91 2 8 770 2 65 9 7 74 +18713952: 6 88 2 17 4 2 55 289 5 +45414145: 946 48 79 515 20 5 +838940082: 2 2 1 7 810 9 400 8 1 1 +42491871: 35 935 894 7 7 36 6 9 +67136: 3 3 987 9 653 7 1 6 +196808: 8 5 971 25 8 8 +300127: 567 9 6 52 295 +97634: 9 8 4 706 21 8 7 6 9 1 6 5 +13500: 58 59 8 2 54 +20597976800: 160 378 57 239 32 25 +35516: 789 5 1 9 2 +7436: 64 79 52 +278202800666: 67 280 827 5 666 +1505600: 875 66 8 50 4 +1795281840: 50 7 706 36 8 726 90 +107565659952671: 5 67 9 747 8 6 667 671 +1192: 6 751 26 404 5 +8887669132908: 222 4 766 9 132 908 +1854258: 1 2 34 1 555 +6558840937442: 6 690 68 16 8 6 6 33 8 1 +129633369600: 10 144 57 8 75 8 28 94 +12481942724: 2 12 9 7 64 1 22 2 6 5 5 9 +5118: 6 6 5 72 6 +2213209: 59 94 399 4 351 +193890819: 754 63 68 698 7 5 344 +1865867640: 4 594 140 51 437 +1192734: 35 983 681 1 39 1 2 3 6 +229262448: 87 61 48 9 4 8 +236: 47 21 42 8 2 +11438552: 4 5 4 52 8 8 156 3 3 3 5 4 +51372: 81 317 2 9 9 +14926299: 4 410 41 7 879 +92221434: 2 4 11 6 6 58 1 1 13 37 +232662095: 88 9 51 8 5 80 9 2 573 +88538: 43 110 577 168 7 73 9 +67080: 4 1 555 6 20 +73985688: 8 4 9 3 142 3 3 2 1 67 6 6 +55162: 860 9 7 921 61 +353082: 45 77 65 8 2 +79876023: 5 2 1 26 8 7 577 1 251 3 +5120023506591: 4 3 9 7 35 2 5 9 1 6 589 +2745360: 9 97 1 7 1 9 620 36 +260208: 3 6 4 4 6 834 +1987: 8 177 51 894 857 +18653647736: 7 4 9 7 9 7 1 6 9 989 7 8 +8404619: 39 19 99 46 21 +700756: 5 77 26 8 7 +11056673257: 817 565 8 673 257 +367502081048: 2 10 18 280 1 542 4 3 8 +2155018750: 34 7 1 9 5 2 9 3 9 5 2 25 +34340: 387 17 85 +3906299374845: 684 7 626 8 52 6 6 603 +44709: 5 6 1 5 73 897 7 40 8 9 6 +3658360: 3 7 8 783 5 8 74 52 2 7 8 +205754: 7 1 3 2 251 5 5 3 94 6 7 +12821761638: 8 63 8 530 273 6 +36642: 407 9 7 5 +630: 12 9 5 6 +3275445474: 7 5 3 47 5 7 5 7 53 861 6 +527243973: 2 1 9 669 865 1 7 341 3 +3480399446: 507 81 9 591 446 +3070305: 505 6 2 399 15 +1640: 782 8 850 +28524251: 5 3 5 7 943 8 5 8 82 3 5 +2324815245: 244 5 6 2 50 7 1 5 9 601 +6144738: 50 539 9 720 222 +3031840: 140 8 3 53 6 12 2 16 +1412: 71 4 2 127 999 +68108: 78 87 4 9 7 40 73 +18386767: 23 6 6 399 40 1 96 8 8 7 +4895070: 114 430 6 89 13 7 48 2 +1445010267: 140 172 6 20 9 6 267 1 +184395935510: 6 7 63 1 779 1 4 35 1 1 +581612152: 94 790 1 89 88 +12158: 94 80 1 851 189 5 13 +17298: 3 5 8 6 890 17 26 +12104: 4 2 9 8 89 +330012535: 935 9 7 347 8 7 5 35 +5926834229: 10 49 268 3 42 31 1 +236534: 6 29 62 514 20 +407176: 11 70 583 6 58 4 3 56 +174485619: 30 727 7 8 19 +1447698: 9 93 454 694 4 +1623495: 754 6 8 267 36 59 32 8 +1029256486: 4 6 28 851 405 486 +1141793460: 9 2 542 263 1 89 5 +64848615552: 53 8 42 733 9 552 +19865815560: 6 612 9 9 3 4 1 7 5 560 +6781811909: 2 48 5 9 3 4 1 2 3 2 382 5 +180653900: 893 70 85 17 2 +15776: 9 4 4 1 1 4 7 49 410 8 8 +38043495: 6 6 71 867 381 3 49 5 +2164: 1 9 5 48 4 +5099570: 40 44 7 74 39 1 7 +523358085: 6 3 1 345 57 5 6 7 80 5 +313232852: 86 1 9 4 32 852 +5572622946: 27 429 5 4 136 884 98 +256309: 126 678 6 3 7 +55242: 59 3 99 9 +67073: 8 662 6 9 4 +2855276025: 5 9 83 846 75 7 947 +744419: 74 44 11 8 +922354: 810 74 35 3 352 +42404360: 66 735 919 51 857 +1119050: 288 9 5 5 751 60 +15605220: 3 517 8 7 73 744 1 49 +13431861: 4 3 87 47 9 1 778 76 7 +999054043: 3 5 666 540 43 +645492272: 74 853 1 4 8 3 12 71 8 4 +2760: 2 625 7 3 125 +1038279: 456 6 9 3 1 219 +853960: 648 9 6 9 143 669 2 8 +568861: 4 8 4 38 11 919 +7048493: 704 522 9 318 3 +618793529: 95 944 2 690 62 13 74 +634970423: 56 49 228 493 227 +4686974532934: 66 71 974 5 32 937 +902066181: 8 175 24 1 6 11 180 +322781417072: 8 544 5 2 103 9 4 2 6 8 4 +2725561: 636 5 60 841 721 +1119196: 3 93 791 8 4 +201905628: 502 89 4 8 741 6 28 +147190: 56 6 169 95 2 +25987767615: 5 7 6 1 50 59 24 23 45 +256334049: 2 6 6 7 7 9 35 39 6 5 634 +175863701640: 5 797 585 690 857 88 +354420: 454 71 12 1 660 +55101768626: 9 612 2 11 6 1 60 8 626 +242998276296: 5 44 9 94 66 5 37 8 +123186: 7 412 3 7 14 +219529: 31 3 5 140 432 +243736650: 725 4 7 40 455 4 2 25 3 +13452: 24 79 4 5 4 7 5 9 65 1 6 3 +34505: 90 366 54 601 910 +86754: 8 29 35 54 41 6 +131263: 362 5 6 2 8 6 9 7 6 39 88 +329539098: 738 4 8 5 9 3 4 83 8 5 6 7 +54253284673: 311 7 9 3 2 4 4 1 923 2 1 +11944208073: 216 459 62 5 89 7 1 +620286: 2 2 3 71 26 8 5 6 +106164448683: 676 4 586 67 683 +2146341: 74 185 96 493 9 81 3 +11686: 56 59 2 368 +5093059: 448 6 2 701 8 995 +7888620849: 91 2 912 84 6 6 8 3 1 7 2 +429651624: 903 61 1 13 7 75 2 8 8 +67145781078: 4 284 1 7 1 7 361 7 9 62 +9282: 2 8 45 64 78 +34208: 9 2 297 80 57 5 11 8 +60780: 969 3 97 4 4 52 76 1 8 5 +1803915: 3 5 3 244 7 3 452 7 3 1 5 +78529956: 5 125 839 43 6 6 6 3 6 +7218: 3 3 203 34 112 +299562674895: 5 44 6 52 7 408 2 7 55 +12392: 5 3 1 83 9 606 7 117 8 +2934736: 106 173 4 20 2 8 +1137542408: 8 1 6 5 6 1 9 227 8 580 8 +39122793600000: 930 704 8 925 95 85 1 +1426128: 46 344 1 381 88 +111827301: 2 6 45 2 5 4 7 8 6 5 130 1 +365958739: 407 899 39 26 739 +1275415344: 222 41 849 238 24 +278389: 195 9 61 48 105 666 1 +596362212619: 9 9 6 848 2 8 5 1 3 4 619 +524871: 2 262 774 9 88 +637055: 67 619 928 6 441 +1059: 74 397 36 544 8 +8257244360: 72 371 60 6 16 322 8 +1616924: 262 1 53 29 4 +410: 6 6 258 52 1 88 +39792060: 855 37 65 63 660 +72142852: 716 1 81 361 85 2 +1913107: 371 178 71 64 49 +1736233420: 3 552 80 233 419 +49640440: 1 26 47 4 75 18 5 79 92 +11298830449: 1 66 620 767 5 72 43 6 +59784348893: 9 34 8 3 7 2 87 4 893 +224952: 757 62 5 1 273 +2063516: 555 235 653 9 4 +2576: 45 749 12 50 3 8 +14312444365: 3 19 718 90 7 9 95 365 +76745952: 4 9 4 262 2 2 44 8 540 8 +367072: 2 1 709 6 831 27 55 6 +232008: 1 305 526 9 5 31 4 +121111296: 3 868 634 27 61 992 3 +443867455192419: 7 634 674 5 5 19 241 9 +54180: 409 23 914 515 5 +5497: 2 1 4 4 15 4 1 9 2 928 2 5 +23135875: 31 901 8 535 3 2 965 +128675053: 84 344 61 7 73 573 81 +46818628: 2 4 33 4 8 6 4 281 69 59 +3391392583: 829 24 286 596 7 +1480860: 8 3 1 5 66 412 1 84 9 2 6 +26161296: 8 7 8 3 9 77 8 5 3 49 8 6 +2240113336: 1 18 7 7 636 9 93 8 6 1 +296310: 8 1 3 23 2 6 6 9 95 51 +629061: 17 370 1 5 1 +471915894: 6 9 6 3 58 4 4 58 67 5 1 4 +155126: 2 51 303 5 596 +129260: 7 3 9 11 1 2 51 6 7 8 572 +29303: 5 60 437 851 47 +8715: 2 59 8 9 1 1 14 7 +208942: 2 3 202 941 1 +972119272: 55 4 13 5 5 8 2 6 9 98 5 8 +68630: 340 390 93 293 447 +339819: 6 42 78 9 819 +3943205: 1 776 9 3 23 8 76 600 5 +122: 5 30 3 8 9 +244560: 2 5 29 6 4 5 95 1 2 5 +15286250: 2 7 865 7 5 2 7 4 3 7 2 5 +3544: 8 6 403 1 26 8 +24677285389: 764 6 86 1 53 1 997 9 +4173: 3 517 76 564 6 7 +32669230: 953 13 13 71 470 +5900: 5 8 3 103 25 +436992: 908 9 8 39 885 8 2 3 +3748350321: 1 5 38 9 5 755 1 7 26 1 +1082657: 46 971 65 1 6 57 +82821: 27 3 1 8 2 1 +209115467: 41 823 5 431 36 +1463088: 113 65 263 1 705 4 44 +281281702: 32 879 11 5 3 4 68 +1749630998: 906 84 242 95 5 4 7 21 +4236895: 912 97 79 649 9 6 169 +80676324: 280 5 711 604 81 +287018808: 249 6 7 3 7 8 9 4 6 9 6 8 +6821407440: 8 7 7 3 8 5 25 3 42 108 4 +48402984: 7 941 49 521 2 +154177: 1 904 765 564 69 100 +145805: 4 356 5 81 5 +27324167028: 4 9 91 1 455 74 1 5 7 1 5 +1382057583275: 9 9 8 987 4 9 8 931 7 5 +4251225: 841 47 877 5 5 +1293618786: 73 9 48 4 65 1 9 631 7 +1509531: 2 64 46 37 57 +119: 7 3 32 68 9 +56518734636: 875 714 84 923 98 +127637: 41 356 879 3 7 +57878: 8 6 26 38 60 43 +5496493: 3 4 70 1 4 386 792 4 4 2 +555307279283: 2 754 5 40 7 5 1 6 8 9 8 3 +101954032: 13 769 219 4 924 989 +299753: 56 6 3 4 2 8 9 565 6 5 1 6 +10895644032: 490 517 8 8 2 31 48 7 8 +25515: 1 7 6 402 61 3 1 9 4 123 +31863: 772 7 4 882 73 +5903109158: 83 6 27 2 5 9 995 7 7 23 +491: 5 3 474 9 +30327: 94 4 1 12 78 63 +585207299016: 27 2 3 557 5 3 5 3 9 54 4 +12235179064: 33 6 919 5 613 55 62 +6951690: 6 1 8 516 90 +67144672: 33 76 880 96 7 +1996: 672 4 910 410 +3897400: 7 720 74 8 50 +133874895: 9 506 64 545 231 +5728413652: 572 84 135 26 123 +85102760464: 8 5 102 760 457 7 +16796069: 4 212 23 22 118 9 54 +5995272: 1 73 27 424 3 +744523304: 7 565 71 13 304 +18318: 49 43 9 9 4 3 39 6 2 8 4 2 +737: 631 2 98 3 1 2 +21717206169: 2 413 9 206 169 +1864368: 29 25 7 1 7 25 698 2 8 +52086: 2 69 14 5 3 4 740 9 5 6 +60073021: 1 79 891 745 5 2 417 1 +594603121: 5 6 2 32 603 12 1 +6534366: 69 441 754 61 6 93 1 +2222532: 8 608 82 44 4 +12515364150: 4 571 4 547 41 50 +97888: 50 20 8 52 4 78 2 6 64 +10901: 24 1 7 62 51 +22620806120271: 139 86 449 75 841 7 3 +2245401109: 4 2 660 1 1 9 3 6 2 50 1 8 +277: 7 251 8 9 2 +14852: 7 4 91 9 2 +4146916: 24 1 559 324 290 206 +231534211: 231 53 4 14 7 6 5 8 45 +1509314: 9 2 1 3 28 3 5 9 645 1 9 5 +5490: 6 56 546 2 9 +8664: 96 26 293 99 3 +36024025857: 3 2 7 8 8 4 4 5 7 758 51 6 +4565: 7 50 76 175 58 +82491558152: 1 12 46 8 875 8 1 2 7 5 2 +270358: 45 6 35 8 +3216271: 5 643 108 973 190 +30092958: 7 18 51 223 21 +17869034: 177 174 581 935 34 +3717: 5 2 11 3 5 1 3 2 396 4 7 7 +2768294331: 8 6 4 9 63 2 3 2 94 332 2 +424113: 8 53 113 +19839204: 330 5 46 19 87 6 6 9 8 7 +47394565: 94 243 546 5 65 +18876: 9 9 4 45 60 1 44 +3812492: 23 4 250 107 556 +23404: 3 5 342 8 16 4 44 +31276875: 1 7 5 85 7 75 561 6 46 3 +627038130: 2 7 1 8 8 736 5 27 926 8 +46142: 2 757 5 5 2 86 2 7 3 3 2 1 +2912793: 7 64 39 68 6 81 +6079: 868 7 2 +121252507369: 4 2 5 55 5 102 1 5 7 3 7 1 +21332264400: 969 98 9 4 52 6 40 3 +1536679: 9 5 33 12 679 +424346015: 98 917 45 8 5 1 50 4 6 9 +203371476: 3 465 576 62 714 76 +10028200: 8 2 9 222 65 1 350 76 +13533: 2 2 50 249 87 +24219: 22 8 2 1 5 89 1 4 7 878 9 +3315495139: 7 487 85 67 139 +51596: 81 625 83 318 570 +89990990: 3 883 4 13 977 990 +249854822: 3 10 7 292 6 94 32 7 71 +9773661337440: 8 62 1 455 552 148 53 +66134166: 9 8 7 90 704 166 +14055123: 9 94 554 4 50 3 8 23 +2612365509: 1 238 6 9 7 29 2 872 8 5 +171134: 611 4 70 1 52 1 +2676: 2 6 2 3 2 708 47 34 59 3 +3683048470: 96 75 30 375 83 5 43 +256973: 53 63 246 9 7 55 87 1 +102520: 7 4 65 88 +2225933284: 851 9 5 71 7 8 906 5 4 +37542604686: 29 6 4 410 4 71 805 9 6 +67520: 94 68 5 80 5 424 4 292 +327564: 5 6 16 6 4 2 44 1 1 8 3 81 +1901: 69 43 77 9 2 +1620: 3 24 8 132 893 4 6 2 7 +90857794: 9 9 701 1 4 5 9 8 6 1 933 +115700268: 6 53 486 389 5 +82219400127: 3 2 983 9 4 8 878 6 6 3 9 +21136652: 8 24 8 2 46 14 4 568 +1427939521: 9 67 32 48 74 1 +67108800: 9 6 25 2 88 50 +16641: 6 94 48 922 1 +26292540384: 5 672 450 29 9 6 496 +1001612: 6 755 1 6 55 8 2 54 5 4 +2414151168: 158 19 30 58 572 24 +2720: 1 4 6 1 2 3 3 808 3 18 4 4 +938345: 2 232 5 1 7 2 2 3 15 5 2 +99930: 9 1 7 7 4 1 1 2 65 18 1 30 +601775660952: 1 87 978 897 8 684 +4497464: 7 918 71 5 8 +12560094: 9 89 7 28 80 413 1 +4129444: 1 64 8 446 57 22 +174200: 86 35 64 11 4 5 +27057: 1 89 3 51 7 +1786: 9 5 178 9 58 +54693: 20 39 927 +5768720477232: 506 5 132 8 5 6 38 7 2 6 +31146600: 2 8 36 2 78 322 851 +3947: 468 7 98 8 565 +15842712170: 8 28 1 9 4 519 94 7 191 +636169: 4 7 3 1 82 8 67 5 1 3 1 4 +56: 5 1 6 2 2 8 8 +723061: 425 1 1 12 10 17 +533263: 609 3 572 8 8 +17028: 23 74 8 +173600: 9 2 7 9 2 102 4 892 1 7 8 +3459956367: 799 866 5 286 367 +769029: 714 269 4 15 385 365 +122265: 8 30 4 9 27 55 +8777213: 5 16 943 4 13 +36537408: 184 3 2 3 96 229 +119835239049: 712 5 3 66 79 8 269 1 8 +490999: 2 648 26 31 29 +8607: 4 111 49 52 79 +20410230: 2 3 629 3 6 1 5 8 26 46 5 +12082408000: 55 45 496 204 80 5 5 +66449600: 3 657 39 782 56 425 +35525: 988 22 5 5 7 1 +16848414: 2 11 27 6 6 8 9 430 7 22 +6782776812: 769 35 777 4 252 +151673550: 740 7 846 4 2 86 5 6 90 +202544: 4 9 45 7 7 17 3 9 8 69 39 +2259213: 2 59 2 14 73 669 +2796643972: 3 5 3 6 9 655 5 88 5 4 71 +1114: 65 54 33 455 507 +414708: 25 690 9 8 4 5 36 5 4 6 +60829779: 9 6 447 9 5 7 14 5 7 4 2 3 +89712: 7 97 4 18 8 89 +876: 3 9 73 +4931115: 3 89 957 5 1 8 5 7 2 39 7 +317: 2 14 3 4 46 131 59 29 +54352570: 6 79 4 8 570 +420090892: 91 411 8 4 7 39 7 9 340 +444999585: 94 789 4 47 6 591 312 +8010: 3 3 1 20 4 9 1 +356488880: 608 6 63 60 58 +1091418: 10 90 93 5 7 476 +15: 1 7 7 +8823837: 1 2 458 58 9 33 +16091: 8 577 715 8 4 6 4 3 9 23 +6816: 8 7 33 71 2 +766544540: 1 3 2 467 7 10 708 8 9 3 +1501932255: 8 53 9 7 5 347 3 5 35 3 +4323983: 8 7 497 41 42 +20608289166: 83 3 726 2 8 57 75 59 7 +441181: 7 2 653 8 94 4 31 7 76 +304653: 378 72 7 62 587 +710454: 2 9 84 6 54 +2213436462: 70 54 477 99 6 9 7 6 +98118: 3 53 987 765 8 1 1 6 9 +954219672: 82 1 43 5 2 9 283 22 4 3 +21095946: 534 837 50 6 385 6 51 +5642566761: 56 3 93 32 6 67 61 +7228316: 7 36 8 2 3 5 14 8 103 4 1 +2210044: 309 5 85 7 8 789 57 +423890: 444 8 822 34 7 2 48 50 +93519: 3 40 59 458 8 2 71 +364041: 93 13 8 64 284 8 229 +381903882: 585 881 4 1 741 6 627 +29806891120: 37 76 766 760 262 +27067872: 4 50 6 4 9 7 876 328 +597359623: 25 5 8 7 71 1 626 8 375 +226280: 3 1 64 190 1 87 80 +8668962: 87 369 4 30 8 9 +56506: 92 4 833 47 59 +33034306813209: 75 478 203 7 7 88 7 5 9 +5454: 6 121 259 5 525 4 +2583507: 55 6 7 2 2 4 2 477 4 66 9 +8103808659: 730 3 9 9 6 669 4 5 51 +1479: 4 20 58 27 60 +38403454: 426 7 9 445 9 +262947960: 571 625 8 2 46 +10686030: 17 516 8 61 782 +176430814: 502 8 9 2 2 1 5 3 809 7 7 +5859: 5 5 1 2 9 801 +742331: 6 80 1 62 331 +2688: 8 1 33 6 179 92 9 8 8 +87255: 5 989 12 64 5 9 9 5 6 9 +3484800: 1 1 659 1 2 3 2 6 439 9 9 +69072003: 592 19 934 10 3 9 3 9 7 +22651682: 152 6 12 423 9 35 32 +1637105035: 321 5 3 34 394 109 4 4 +126733857845: 2 3 8 17 6 292 5 9 6 7 35 +15673587443: 15 3 8 4 4 5 9 8 2 30 4 2 +8280845: 8 5 5 7 2 5 5 1 160 1 9 5 +543205950: 1 1 83 813 7 575 +913793237: 382 56 8 31 427 +186: 2 33 1 27 3 +6193984: 18 3 769 2 49 6 42 8 +792960: 55 4 7 8 30 8 +573332: 572 6 7 29 3 +2770: 682 1 4 42 +33547801: 44 1 85 748 1 +1158: 827 81 99 3 148 +6568267: 4 9 2 9 8 2 4 2 26 5 4 1 +490159312: 9 477 12 403 9 31 2 +277338: 6 45 5 2 2 2 4 51 7 47 9 +13693: 2 9 6 5 486 767 2 7 1 6 +3236553: 1 2 923 116 584 1 7 4 3 +4247408169: 257 4 828 499 9 +811681: 4 152 89 15 1 +798692501: 707 6 8 1 8 40 2 5 7 55 1 +9646: 4 9 5 38 4 7 6 8 67 240 7 +126767: 42 3 7 941 626 967 21 +22174513201: 615 1 9 5 87 18 4 5 1 +2030602840: 7 4 5 5 7 4 499 291 8 23 +59705: 997 59 5 216 661 +158861736: 7 4 8 5 92 2 23 6 4 1 391 +388211068124: 1 8 4 972 76 4 70 44 80 +3471981: 8 82 123 32 429 +2358948: 84 5 3 6 9 3 70 7 5 279 3 +29130: 1 1 362 609 6 5 +3581662081: 26 717 12 49 4 480 +242349: 1 41 23 879 8 2 751 3 +24494406076: 6 669 72 18 217 28 +307: 12 8 34 8 1 4 100 1 64 +110577: 86 791 72 4 1 8 9 1 29 +5601800: 85 1 2 8 9 5 482 566 5 8 +346475: 779 6 7 74 74 7 +6550: 178 162 19 88 2 +7620480200: 840 1 70 9 4 3 5 6 1 5 5 8 +22327095: 6 30 719 6 6 7 1 2 6 821 +290392426890: 6 2 1 37 102 9 7 916 90 +3730: 9 59 56 7 6 6 49 81 +1820729: 8 20 1 22 517 882 7 +9773663881: 315 2 794 8 31 1 +51709: 51 168 541 +2909966984: 3 84 914 9 6 82 126 8 +5650: 384 2 2 25 5 320 1 2 7 5 +67037: 166 403 61 78 +1097: 83 15 4 95 610 +138311712: 74 80 9 24 77 54 +9617790661: 546 65 271 576 1 84 +23606: 58 9 6 5 58 +592711: 23 233 434 859 1 +367570476000: 7 87 40 3 5 265 2 2 949 +930322983: 5 39 3 70 6 3 4 8 5 8 6 6 +10598202: 2 3 9 429 5 8 9 486 +168268: 822 445 90 4 31 +102663: 235 4 7 674 763 1 33 +4155840: 9 521 76 50 4 6 4 520 3 +3814732: 95 36 81 2 4 +211072962: 1 43 9 6 6 1 648 7 58 3 +203168: 902 5 4 8 7 +115360: 85 21 5 8 7 876 21 5 16 +33175346: 165 8 2 1 4 8 4 4 910 6 +146864809872: 97 370 716 682 6 +474: 27 1 3 393 +13660390: 4 55 3 930 23 +8634: 522 3 931 3 297 5 841 +2036934: 70 23 33 4 69 83 3 75 9 +44976: 18 13 60 5 9 24 +30108: 4 9 75 6 2 8 10 766 1 4 +4710889260: 38 267 77 9 670 +265: 233 6 4 1 18 4 +8588112: 9 42 8 12 9 8 3 6 6 6 306 +9189: 78 984 764 5 59 +386270725: 361 48 1 3 46 8 928 5 +439867720: 699 540 5 320 71 +2695: 176 9 6 54 11 +3755136727: 1 596 7 3 6 5 7 9 5 5 6 4 +8204553: 35 389 3 43 2 928 3 7 +1723349698390: 282 5 8 60 330 5 499 2 +654152568: 47 7 1 1 36 5 6 4 95 8 69 +276811: 4 8 4 9 2 2 732 1 7 34 74 +30093: 89 47 9 209 21 +9676896: 7 4 74 952 32 96 +24238: 258 15 500 439 5 193 +2340832027: 9 7 26 57 5 4 37 2 829 +28458657220: 7 98 32 949 5 21 5 7 85 +45796: 427 30 96 +22908: 8 27 255 6 8 2 6 +282270: 485 97 6 +83375383: 29 31 9 246 53 83 +98597156: 985 9 7 150 6 +34364: 932 4 3 523 8 332 +36426613: 98 3 3 413 13 +27600: 7 1 54 2 195 1 8 6 +24645: 89 173 600 4 7 9 3 497 +172383: 4 872 91 1 48 44 499 +75150808: 939 3 808 43 8 +176064: 275 80 7 1 8 +510457: 900 4 618 53 482 6 3 +13245932772: 4 9 8 7 82 201 1 327 72 +409502: 3 78 879 5 42 2 9 54 +94584: 80 64 87 984 7 +3708: 6 44 53 9 4 +63299: 205 514 87 1 745 +32577552: 1 3 910 6 2 5 624 42 14 +1117720: 500 53 5 86 20 +5150880: 8 96 336 7 64 36 280 +548952899: 758 1 722 81 873 899 +1884772: 585 805 246 22 2 2 +7597152319: 9 6 8 126 4 8 3 405 3 21 +42262503: 5 4 44 30 16 6 4 8 391 1 +7979383048: 8 9 780 914 24 30 50 +7650: 93 8 200 7 64 978 +34843752: 932 3 67 2 93 +811400: 8 4 193 16 50 +730815110: 2 8 8 1 1 8 6 872 8 5 23 2 +1129344: 6 375 518 408 +123738198: 921 54 8 311 6 +85345942: 1 38 7 4 5 361 22 +4508: 63 7 1 9 9 +5465754: 671 9 34 9 56 +1482: 24 248 7 5 87 +1614554399: 53 818 449 5 6 929 +304361731: 66 3 8 5 6 3 5 6 51 4 867 +145: 25 69 37 7 7 +132104: 1 6 4 8 4 8 1 50 1 44 8 2 +944283906000: 6 86 150 90 971 783 +34131285540: 4 4 4 3 4 6 647 4 3 5 66 +380: 3 52 3 91 231 +124239549: 6 23 9 39 549 +593603191: 9 885 8 74 2 7 9 63 6 8 5 +3102852: 3 2 85 499 23 39 228 +3886014: 56 76 913 9 277 +41609227198: 336 5 18 84 8 5 7 1 1 98 +49859000: 4 6 38 32 334 41 8 +297479190156: 738 332 3 239 508 +1631870: 2 84 5 388 363 80 8 3 5 +871885: 9 30 3 27 92 3 1 +240: 3 5 2 8 +6046146756: 4 3 332 4 6 4 83 9 289 9 +151958806: 904 51 6 4 4 1 7 6 +7704: 3 9 642 +160847177919: 804 235 889 59 2 1 +1493583: 96 2 864 63 9 24 +623494700801: 56 4 19 5 5 1 604 3 343 +6031402: 53 51 52 611 12 396 6 +541373: 8 8 11 3 9 756 77 +201684005: 23 9 704 69 49 6 700 5 +4708723: 3 7 67 7 1 8 98 77 2 6 2 5 +53297615311: 2 2 3 239 6 1 1 5 311 +4791801014: 9 956 7 8 2 309 1 3 62 8 +14410560: 554 65 5 82 80 +327972699: 33 3 529 3 522 99 +458454690: 7 46 865 46 89 +12284: 2 1 3 143 308 2 3 2 4 4 +17438: 638 9 3 9 203 +78327169: 3 885 500 67 59 716 +32375064: 699 69 61 1 394 99 84 +399150997: 1 5 7 78 13 40 757 4 33 +1170925: 62 81 24 70 19 25 +17150: 7 3 6 741 409 +19662: 1 757 209 1 2 +84630: 36 4 64 9 390 +23384190: 216 52 108 6 24 +480226824001: 5 3 8 893 275 7 8 291 1 +2153844: 5 66 1 45 1 701 54 539 +10815938219403: 5 9 63 687 79 98 30 6 +604591: 8 50 1 5 7 1 4 63 53 6 8 6 +704631: 11 64 631 +5548: 9 8 7 59 824 4 +27947442: 1 1 794 70 10 432 +331: 2 33 5 1 +1504193664: 4 3 7 196 60 1 8 3 3 43 8 +31350058016: 3 1 7 53 96 346 106 4 8 +81193315: 811 9 3 306 8 +226784880: 1 4 247 8 5 2 7 9 8 849 +8226: 90 83 2 299 455 +30316870: 8 61 73 851 846 +236440248: 8 36 694 87 89 +2693846076564: 49 886 9 346 6 56 4 +204127695: 509 8 7 4 4 3 9 5 9 719 1 +33329: 3 4 476 9 1 +9674665: 92 4 74 66 5 +837500: 24 8 2 5 670 +34652123531: 2 92 4 6 35 18 3 7 192 8 +344922: 2 6 1 25 6 3 1 9 1 1 994 4 +3042092: 30 4 13 92 639 61 +1496043: 40 97 364 2 3 +147: 9 13 2 28 1 +8480096: 5 1 5 836 7 3 2 6 7 539 9 +151031: 5 433 521 7 8 615 +4481295: 462 7 21 7 65 +46591325: 11 29 58 793 703 +67720665600: 7 5 602 8 2 9 31 8 5 1 9 2 +33480821524: 5 3 673 61 8 2 7 9 6 7 24 +794096355800: 5 3 8 4 3 6 4 4 459 91 4 5 +1804: 9 92 74 2 +5132160: 5 7 9 5 2 3 2 8 1 9 32 486 +199957518054: 1 194 99 964 6 4 3 6 9 6 +1046: 6 4 8 8 5 80 7 239 +432340440: 5 9 526 309 190 +1265235: 6 52 4 6 4 4 1 5 975 660 +5571945840: 75 332 3 2 79 6 472 +92459: 10 760 791 8 2 1 48 +515446: 1 2 86 5 1 4 34 77 68 4 6 +174383: 6 28 7 56 83 +199584: 6 8 6 44 6 9 +19616454: 46 6 282 71 432 +2537: 12 1 6 2 54 4 481 +372086736912: 2 71 90 8 78 2 792 471 +643051629: 2 720 9 67 642 909 81 +1169060547357: 48 20 214 487 94 5 5 7 +564725: 81 4 424 396 624 5 +571610479600: 966 97 4 6 360 610 +31209961: 246 8 163 33 324 7 4 9 +68400: 5 902 99 514 5 9 +8598892528: 1 670 8 75 768 8 7 5 6 8 +267913079: 7 539 71 4 296 79 +45254106: 841 29 27 520 66 +4048: 8 722 5 6 177 217 +17548790680: 91 619 421 73 740 +2580750: 361 2 425 9 50 5 1 +125490: 7 984 251 71 60 15 +600817156: 433 91 953 9 4 8 2 1 2 +4401306000: 8 5 5 863 42 4 1 4 8 3 5 +3964416: 1 1 6 7 1 2 9 6 460 4 768 +9109110: 8 3 458 3 265 +3234420: 5 24 7 38 612 +49103565551: 98 98 859 91 96 62 47 +238498274: 2 98 8 98 274 +30590: 146 6 5 8 3 8 5 44 7 84 +27963329: 228 436 3 94 446 2 19 +3564210: 77 8 45 39 703 +505284618307: 486 9 7 586 385 3 7 +35992: 918 5 418 7 935 +85130265: 7 74 2 5 5 9 2 302 5 3 9 3 +8605326: 56 2 100 851 64 6 8 +4685044: 9 17 669 422 7 +249951: 80 712 69 9 29 +798: 14 760 21 3 1 +76180: 8 3 7 2 65 +1564172: 343 76 2 6 80 +34832: 68 9 10 8 7 +12963338: 1 1 283 229 7 5 7 2 1 8 +13329988: 1 6 4 6 440 9 3 29 6 1 28 +1530877: 9 7 5 7 3 7 78 5 5 5 118 9 +1474: 1 6 9 674 2 +307825: 6 5 681 10 3 911 +86163: 7 7 10 7 3 1 50 3 2 2 1 77 +60159978: 21 98 336 6 87 +392781: 4 555 2 7 81 +785465: 98 8 9 5 65 +323021: 74 351 96 62 1 +654120743: 28 3 599 980 13 +44980863025: 18 135 32 58 3 9 9 5 7 5 +1341782402: 2 9 96 8 46 3 9 8 7 30 2 +118477: 118 326 4 140 7 +168705: 2 727 37 4 7 54 28 5 +2971606226: 3 3 905 234 8 112 3 26 +156465: 91 29 313 53 9 +22467701: 2 2 368 3 5 2 95 3 7 6 3 8 +7586568: 5 19 7 2 6 8 2 2 9 618 +501857: 552 909 9 8 72 +244683327: 9 2 920 8 50 5 8 7 601 +29511845: 295 11 845 +1112640: 686 8 2 93 751 1 2 407 +46650: 5 83 80 454 75 +214341961: 1 1 45 315 9 1 5 185 84 +10464105206: 4 36 50 1 1 6 15 4 96 8 6 +3304: 23 5 3 4 7 +752987896: 7 5 2 987 896 +1114: 58 76 980 +171875: 27 9 4 3 7 78 91 6 7 8 3 +17220: 893 2 531 9 12 +47658: 36 75 948 45 3 +306742: 371 59 7 96 2 68 36 +587181961: 9 5 405 6 3 9 5 4 5 648 1 +318928959: 125 84 88 32 9 1 62 +2687: 821 4 44 9 3 53 +13193910: 44 67 8 61 558 1 +257428: 1 13 792 25 28 +78352814: 7 593 64 118 81 1 +3398720: 38 559 5 4 8 +269853: 248 5 2 373 307 +30522: 310 8 6 2 762 +14947413846: 398 374 622 138 46 +656518: 4 776 5 47 263 3 59 2 9 +529254: 9 7 8 86 48 870 +13113110010: 64 4 9 22 7 3 535 689 +2485853: 17 835 35 62 28 517 +152623595970: 69 11 7 3 561 656 75 6 +908760624: 440 2 16 75 6 8 43 +783296: 78 32 96 +140095272: 658 8 36 28 6 944 8 +63079: 888 8 5 7 5 4 +1162196965: 209 1 6 6 878 97 9 2 3 1 +18608078: 822 8 65 2 4 1 9 9 7 1 4 8 +70896: 90 72 6 6 64 2 9 8 2 4 6 6 +1512896: 7 87 7 4 614 +4131513: 198 2 5 48 92 7 1 3 +105455: 7 8 27 6 6 2 4 1 552 23 +48402944: 67 5 896 83 8 +10325088: 3 4 7 4 209 7 7 19 389 3 +151744: 928 9 45 9 2 45 553 +11415140: 2 676 6 4 96 20 8 1 91 9 +60890: 7 2 918 306 7 27 5 7 3 1 +244184: 2 7 7 3 87 9 886 233 1 +4064: 13 54 7 54 68 +71333392: 427 7 35 53 80 3 227 4 +2278795802: 9 2 16 4 5 434 771 62 +871745190: 4 926 69 4 566 4 929 6 +1114: 98 6 9 91 87 +2163554: 3 298 8 82 66 +538760700700: 997 705 90 6 700 +24293746: 80 975 4 3 46 +24178721: 8 3 165 2 5 9 97 27 7 29 +290290824: 4 4 662 4 6 8 43 8 9 123 +12398354364: 336 4 5 118 92 40 124 +19644: 94 233 10 4 6 +3412148: 87 6 80 6 4 93 6 452 +408634: 5 8 41 7 38 34 +12560011: 3 7 927 18 736 8 6 893 +755885: 84 87 68 1 65 +2996347: 2 16 926 331 48 +331426080529726: 71 7 963 480 52 9 726 +2370482: 2 37 5 998 232 +917717: 9 461 97 +205212: 402 18 6 272 294 +735: 9 6 61 1 32 5 +30294660: 17 7 213 3 6 5 6 985 +438311753: 5 30 2 75 8 3 3 1 17 53 +119952: 8 9 588 4 3 +121: 5 1 7 74 5 +974805267: 3 8 9 28 7 6 33 24 706 3 +20133: 8 74 22 905 +4889785: 870 81 396 69 6 25 +63926: 4 799 20 1 6 +378014219744: 572 59 2 8 4 696 2 8 2 7 +8867147: 6 9 4 9 13 9 5 413 2 6 5 7 +831974987: 7 59 471 7 611 116 +95749: 9 563 7 4 42 +48146: 2 57 36 8 658 +10424368: 62 694 3 8 12 5 8 214 +45528: 484 5 22 88 560 +31387356: 1 20 871 3 572 +4861808: 4 923 8 3 438 8 +1636200: 20 7 28 88 8 9 9 51 9 7 2 +309698953200: 46 5 7 5 1 8 5 981 5 78 7 +2703870365: 693 3 390 365 +985320011: 4 43 840 5 6 5 255 1 2 +219659: 35 8 6 1 3 9 11 8 8 3 2 5 +3525158: 836 694 8 1 382 6 8 54 +8928859: 98 3 505 143 6