summaryrefslogtreecommitdiffstats
path: root/2024/tcl
diff options
context:
space:
mode:
Diffstat (limited to '2024/tcl')
-rwxr-xr-x2024/tcl/07.tcl54
-rw-r--r--2024/tcl/input.07.txt850
2 files changed, 904 insertions, 0 deletions
diff --git a/2024/tcl/07.tcl b/2024/tcl/07.tcl
new file mode 100755
index 0000000..9c96af9
--- /dev/null
+++ b/2024/tcl/07.tcl
@@ -0,0 +1,54 @@
+#!/bin/env tclsh
+
+source lib.tcl
+setup 7
+
+puts {Part 1: Total of valid test lines}
+
+proc op_search {ops targ cur rest} {
+ # cursed, produces exprs of the form "$cur<op>$next == $targ || ..."
+ set e1 {}
+ foreach op $ops {
+ lappend e1 [string cat {$cur} $op {$next == $targ}]
+ }
+ set e1 [join $e1 " || "]
+ # cursed, produces exprs of the form "[_op_search $e1 $e2 $targ [expr {$cur<op>$next}] $rest] || ..."
+ set e2 {}
+ foreach op $ops {
+ lappend e2 [string cat \
+ {[_op_search $e1 $e2 $targ [expr } \
+ [list [string cat {$cur} $op {$next}]] \
+ {] $rest]}]
+ }
+ set e2 [join $e2 " || "]
+
+ _op_search $e1 $e2 $targ $cur $rest
+}
+proc _op_search {e1 e2 targ cur rest} {
+ set rest [lassign $rest next]
+ if {$rest == {}} {
+ expr $e1
+ } else {
+ expr $e2
+ }
+}
+
+set test_total 0
+set cat_test_total 0
+foreach line $input {
+ lassign [split $line :] targ nums
+ set nums [lassign $nums first]
+ if [op_search {{ + } { * }} $targ $first $nums] {
+ incr test_total $targ
+ }
+ if [op_search {{ + } { * } {}} $targ $first $nums] {
+ incr test_total $targ
+ }
+}
+
+puts "Total: $test_total"
+
+puts ""
+puts {Part 2: Total of valid test lines with || operator}
+
+puts "2: $"
diff --git a/2024/tcl/input.07.txt b/2024/tcl/input.07.txt
new file mode 100644
index 0000000..19ed730
--- /dev/null
+++ b/2024/tcl/input.07.txt
@@ -0,0 +1,850 @@
+194558: 2 6 664 40 874 40 7
+127536599: 49 4 21 65 99
+26009943184: 6 6 83 31 25 72 5 4 39 4
+250121527725: 8 8 1 32 907 4 7 7 2 4 7 4
+5493508: 3 893 785 38 86
+161265973705: 3 9 827 19 380 94 50 4
+4735417467: 61 728 59 433 177
+909846124: 2 8 843 3 3 17 37 6 124
+198029: 769 307 904 1 29
+901816: 80 819 2 731 88
+946927645: 7 97 6 461 6 33 344 23
+2582705613: 2 5 2 9 1 9 992 41 1 8 9 3
+24881687: 8 261 1 6 26 5 826 83 4
+511149612: 38 13 1 149 612
+54898116619876: 859 9 2 9 291 71 987 6
+55844: 6 310 30 44
+252947: 2 3 82 514 1 59
+22739623: 7 2 3 1 992 849 5 1 1 1
+73154904: 320 193 62 48 23
+2286886554: 535 69 7 74 7 7 31 27
+542670: 97 82 1 9 81 6 534 5
+115202021757: 858 2 944 790 18
+29019948080: 6 1 494 4 6 7 6 8 97 6 40
+228355615: 6 2 4 93 102 3 8 5 609 6
+820: 51 8 274 94 2 3 39
+1416461924: 35 3 496 809 4
+84121042752: 973 62 27 3 39 6 27 8 4
+1871396: 4 6 196 588 9 4
+19587620: 6 115 8 1 2 7 8 86 4 6 3 6
+10470432342: 726 5 6 6 8 5 12 8 2 4 3 8
+1798582066: 8 42 8 98 52 78 5 506 6
+91357812180: 7 2 7 186 578 121 80
+5793402260: 9 6 602 142 1 5 113 20
+1651110912: 9 4 6 94 6 6 9 3 88 89 4
+50185405: 3 2 2 2 8 8 1 21 44 3 7 8
+282464694: 1 9 614 4 6 3 4 1 9 3 324
+3102553: 251 9 583 55 3
+4157153115552: 4 730 58 90 7 947 288
+245934: 8 10 8 9 7 933 3
+631132: 8 49 573 462 673
+91096: 8 45 6 630 23 6
+219915564: 895 13 656 79 7 242
+60397606: 4 4 6 9 326 4 5 28 63 9 1
+94631: 43 22 31
+396843552: 78 7 8 94 31 65 1 8 61 3
+133007016751: 826 213 876 863 7
+341510: 28 76 9 415 4 42 6 8 42
+8537072: 706 6 492 44 7 6 5 976
+49336: 332 84 59 2 248
+99225319: 59 5 309 336 974 521
+314206: 91 2 2 863 74
+696348: 841 69 3 4 1
+53703: 71 335 631 8 1 7 17 3
+301330900: 595 4 164 5 772
+4218324: 936 345 9 545 4 6
+28857538: 28 403 454 121 417
+39920709: 8 97 179 7 17 53 5 203
+17958912: 8 43 2 9 5 53 47 9 4 6 3 6
+93614691785: 67 755 17 5 361 37 5
+1747635: 670 8 629 5 650 1 263
+315550: 301 9 63 72 91 59
+13819: 3 855 8 2 2 87
+746659: 7 514 914 1 8 1 6 65 4
+16269: 9 71 8 8 7 1 2 182 8 6 5 3
+1148007: 8 4 318 328 9
+6313: 7 665 9 99 166
+35955356: 666 772 5 5 5 347 9
+8088777769: 6 6 3 2 6 442 1 4 6 7 8 9
+67700160: 7 240 5 374 411 3 40 2
+3324: 4 244 7 32 358 178 8 4
+112224: 2 7 654 7 24
+2064271306: 616 2 335 9 68 338
+334602: 8 697 6 1 4 38
+28180072: 5 6 18 2 4 7 34 2 7 5 75 2
+45865818: 917 2 8 2 5 8 30 4 5 429
+1427910715: 81 4 1 2 57 1 73 1 439
+14101338935: 31 98 9 860 5 1 778 7 5
+2513920830: 2 137 1 9 9 38 9 208 2 9
+41654011: 83 2 22 86 5 11
+12444729: 12 118 5 422 992 1 89
+1690796: 9 71 3 3 294
+979542634: 3 26 5 3 1 426 34
+350857: 837 34 402 6 709
+6460006: 5 58 4 994 97
+1142179697677: 8 767 154 29 599 33 7
+2857698: 23 9 58 98 54 3 6
+12929728: 5 334 5 2 387 58
+45864: 475 697 4 39
+17839: 2 5 5 98 5 39
+1192516584039: 9 66 478 40 3 9 70 6 4 1
+3960792: 49 50 95 4 8
+3168957792: 6 176 7 673 637
+1633567788: 408 5 8 867 230 267 4
+20484122: 870 218 12 9 842
+359372136: 44 9 5 8 3 8 5 7 653 9 9 3
+87365659: 6 8 3 1 143 2 2 4 5 11 5 9
+966115: 4 4 7 2 863 8 6 1 113 2
+2811977: 1 9 80 6 1 8 4 54 1 65 4 8
+24013292: 744 5 48 5 8 2 637 940
+6460261: 40 61 6 67 6 5 3 9 2
+3495387174: 753 8 8 3 219 3 7 7 1 6 1
+51810186372: 781 2 823 6 1 86 2 9 8 2
+217580: 787 16 4 2 3 98 5 1 44
+39456720: 361 444 226 3 49 502
+905124433: 434 471 124 43 1
+6576876002: 9 7 732 3 5 766 16 45 2
+1963126: 99 31 6 2 638
+1266080275: 8 9 314 8 82 5 191 83
+153864480: 30 102 1 5 7 181 184
+38532375521: 2 92 6 87 32 372 3 521
+37401: 1 3 3 133 4 446 3 4 8 9 6
+5360171: 337 1 3 2 28 7 6 80 727
+85271: 11 76 7 9 71
+1575033: 54 81 1 360 2 391
+528186760: 27 799 3 19 60
+19697: 120 1 395 38 6 3 118
+22753653: 418 2 42 6 7 6 8 9 6 2 3 3
+41407327531: 29 193 6 2 62 3 7 5 3 1
+1712838837: 28 547 3 6 837
+528793: 4 770 13 504 90
+12327567953: 9 3 4 91 9 4 32 7 788 7 3
+261635970: 987 965 502 6 267
+102576: 2 3 482 7 6 5 91 5
+33741910866: 9 50 4 7 702 989 33 2
+48987981277: 5 56 1 585 2 89 1 74 9 7
+217696: 166 311 9 1 447 7
+69372864552: 965 8 2 9 6 3 1 6 5 2 6 79
+13713662815: 904 928 7 705 467 5
+9450002: 5 43 433 5 89 959 7 9
+106661489: 9 653 9 41 963 1 492
+41544: 4 6 1 6 9
+424930: 424 928 2
+836885854509: 7 61 2 97 88 585 4 50 7
+276397099569: 6 90 99 27 489 4 9
+8389707840: 19 5 5 1 963 7 3 6 240
+1311240: 97 8 1 2 7 2 420
+11910: 234 60 3 5 4 6 4
+12163840: 35 4 24 1 1 3 7 1 2 5 64
+1041844064: 787 75 3 32 1 8 46 818
+3670018: 9 7 1 21 257 40 58
+62316: 72 917 450 2 584 3 3 2
+3315060: 31 4 9 88 6 443 4 35 4
+321250943782: 6 87 4 9 8 1 9 5 1 2 949 2
+1410596320: 9 17 218 1 7 6 3 8 7 7 8 1
+70412251: 400 3 64 7 13 6 5 1 90
+188560348: 177 2 822 648 116 8
+16477580: 8 2 71 56 6 29 368 6 2
+8613: 3 7 71 6 3 33
+13922328: 828 7 1 3 56
+55602893520: 544 4 56 78 5 65 40 6 3
+16660258566: 8 8 6 2 6 3 9 8 4 3 641
+10450080: 2 36 6 65 78 9 5 354 2 5
+750311520: 550 9 7 4 2 7 73 2 2 46 7
+559642: 1 86 300 164 2
+9370369726: 98 2 8 886 3 117 5 4 7
+56385: 99 4 2 537
+3586445: 5 7 3 988 242 5
+22802009: 56 98 74 8 2 2 57 780 2
+1339248: 873 59 26 6 1 56
+1309905070: 925 53 2 25 744 4 4 9
+625303: 8 9 7 4 5 31 7 3 9 44 6 7
+70044: 1 1 26 898 3
+3871: 7 19 9 3 68
+71230992: 772 56 1 922 38
+264685: 42 63 5 2 7 5
+2223: 370 74 159 8 3 8 382
+21742264: 771 705 1 6 4
+102401: 6 626 9 3 9 3 2 7 2 8 958
+6084806902304: 784 8 99 679 89 76 97
+9090: 8 9 4 8 86 4 55 4 314 9
+13685898: 68 2 782 76 98
+129444037960: 878 732 804 371 8 59
+376605: 99 3 97 9 5 7 6 495
+566681: 367 792 8 61 653 436
+99712: 3 776 128
+429: 6 6 17 60 3
+34883897: 38 9 70 461 23 2 7 8 8 2
+2279769: 8 346 322 2 9
+3845250: 4 1 6 21 7 7 2 708 75 2 5
+170445: 9 68 69 5 339 31 950 5
+2789204: 4 734 95 2
+2280711039: 8 95 2 1 8 1 9 5 45 6 3 9
+41412584: 54 33 476 579 5
+72694487724: 1 875 73 659 575 8 3
+3021552: 9 182 478 905 552
+2962182: 1 6 482 14 57 8 6
+109122351: 544 4 12 116 1 7 2 9 4
+11262: 11 26 3
+14319625: 2 4 596 6 8 5 4 78 4 8 7
+99052425: 99 3 32 766 1 1 965
+616079365: 64 8 676 5 4 1 89 4 1
+9952486: 7 4 8 6 376 2 6 5 9 5 7 61
+794397365918: 78 138 2 383 9 369 8
+2742: 73 21 714 1 494
+6174: 87 224 32 3 6
+7426557: 9 5 565 73 10 596 8 4 1
+1256: 32 9 7 2 6 7 2 1 3 1 9 638
+31469: 3 1 4 66 3
+88: 5 1 76 6
+390349: 43 331 9 99 3 270
+41380442: 55 930 809 44 48
+17304255028: 93 79 9 41 50 28
+302: 61 23 165 42 3 8
+17421399: 1 5 2 990 2 58 9 717 9 9
+76944407761: 248 6 455 6 2 436 66 1
+386: 37 1 1 8 4
+2001328: 5 7 82 5 1 9 4 2 8 628 4 7
+334561605: 645 7 741 99 6
+135758349: 9 683 1 6 4 7 2 4 4 7 6 9
+1575996: 75 31 5 676 56 860
+61228739: 4 608 28 608 131
+765608: 4 761 51 7 1 9 6
+58492: 3 35 557 1 7
+189165130: 2 86 1 48 5 658
+131316: 7 9 7 7 3 3 4 1 4 269 14 5
+1396348044: 20 248 528 47 52
+118440144: 5 56 423 114 27
+226846130: 1 78 127 38 595
+10532284261: 4 134 7 33 62 2 98 4 7 9
+4470342: 4 996 4 742 1 89 6
+20923: 6 9 2 357 72 859
+3344414346: 41 1 13 17 81 98
+671956: 60 7 1 956
+1030961356: 697 1 827 19 94
+702: 7 1 5 54
+327285011213: 1 4 3 385 700 5 5 6 213
+657285: 59 6 7 4 3 6 8 3 9 57 11 6
+7021190: 8 46 86 4 72 27 4 6 4 29
+280298: 79 43 402 14 521
+27840: 88 244 1 4 69 919 12
+4557: 13 32 9 63 325
+621809048003: 516 2 17 4 20 66 6 2 8 3
+9981290920: 92 5 35 4 31 28 963 76
+256794364800: 89 9 6 8 27 7 432 6 25
+30170: 287 7 5 1 719
+7877646991: 9 847 8 46 991
+1238161: 90 859 1 74 4 4
+985340154: 9 84 7 3 2 6 7 7 25 290 4
+1803833: 9 7 9 70 58 2 7 554 8 9
+1210344: 33 2 66 339 695 766 6
+2519853298: 796 316 449 3 270 26
+3223373148: 2 73 49 2 856 517 1 4 8
+522185543879: 322 92 21 398 858 7 1
+8406787598: 256 304 5 410 8
+1332308: 8 880 2 3 5 8
+41169: 9 1 7 59 3 456 6 3 5 9 85
+174020: 6 24 17 38 70
+26880: 833 1 6 32
+500519468937: 5 884 3 8 4 849 3 5 9 37
+169122020: 1 1 31 67 4 1 730
+58437765776061: 146 5 47 207 2 20 8 61
+134891688: 95 4 8 330 6 46 6 6 43 2
+254874138: 48 3 4 894 3 99 5 123
+883147390: 117 16 80 33 830
+739350: 78 9 617 35 34 8
+3576000: 6 4 800 447
+709932: 709 9 32
+948508: 16 75 925 4 35 93
+116262378: 65 954 396 3 621
+8340815451056: 23 7 54 644 5 46 48 22
+180370542845: 54 657 74 33 843
+2049814: 4 761 1 892 3
+5299296: 16 20 2 736 96
+30797: 8 744 3 4 6 589
+1938563869: 554 9 6 9 4 3 2 6 58 70
+6355523967: 72 98 214 61 1 7 6 5 69
+14486244: 3 915 2 37 4
+106933506: 8 8 696 67 3 2 700 96 8
+504: 315 3 95 1 2 89
+1904749: 724 9 52 1 29
+36501111: 50 92 91 76 877 87
+489615: 93 5 111 5 3 9 49 29
+5070676579: 843 2 1 1 6 76 570 9
+30287088: 6 709 3 7 123 1 77 4 54
+1534953: 21 6 58 8 79 7
+4501: 8 4 1 6 2 6 21 5 4 55 8 9
+1364553: 361 58 4 614 2 7 711 9
+951296: 9 8 7 537 80 6
+157469187: 477 42 82 78 46 37
+18308: 5 366 8
+71574724: 4 83 8 5 8 4 9 4 3 1 840 4
+15909264: 3 22 69 49 8 3 432
+2572928: 257 21 7 66 64
+368787: 58 578 11 24
+131429520: 214 2 4 5 2 8 639 6 4 1
+20710: 10 10 710
+117843317739: 6 4 3 6 72 8 22 1 5 913 3
+545921: 155 34 575 508 5 6
+26574: 1 5 40 311 8 73 2
+10108225092: 85 947 7 2 59 588
+115864: 3 286 26 40 4
+533300: 1 37 6 6 7 71 52 6 92
+5887: 79 6 8 8 97 7
+78471498: 87 69 935 3 47 5 7 218
+7130225595: 5 3 1 1 6 787 5 1 5 78 8 9
+94324754748: 36 5 8 37 989 47 7 8 8 3
+10450960: 2 14 485 3 54 4 4 6 4 9 7
+922: 5 7 7 9 3 3 2 5 351 2
+118080: 31 92 1 80 12
+47895: 74 632 955 99 73
+17637: 1 758 1 3 4 7 16
+2010585052452: 29 308 82 686 452
+3755524: 76 8 489 4
+39377794273: 5 6 384 8 8 2 9 9 8 2 57 5
+234573439: 39 71 4 799 22 59
+81485214698: 31 783 8 512 9 46 96
+299816765: 6 7 1 4 791 4 38 282 2 5
+20315377: 84 26 44 93 85
+29909838650: 119 639 354 6 25
+24012371: 1 67 797 83 3 87 7 1
+5799427230: 72 2 675 7 9 43 96 30
+96592181: 539 5 43 72 833
+67110: 6 2 7 8 145 5 89 4 317
+3985: 34 2 267 569 4 1 363 5
+455038: 2 675 96 7 94
+422313647: 9 424 407 1 3 650
+1324756: 3 5 9 1 3 8 9 6 532 3 7 76
+57185: 871 698 6 6 1 679 8 14
+569264: 81 3 72 8 94
+2026: 530 3 40 324 72
+414: 60 7 6 4 8
+10619851: 53 683 3 790 96 97 1
+4313455: 478 65 3 79 55
+76428: 282 3 880 6 5 44
+298105: 8 283 9 59 9 810 18 7
+1555206589901: 32 5 3 8 5 9 7 32 2 1 9 9
+416: 13 1 32
+7890761221: 36 49 4 5 5 7 8 6 9 8 42 1
+4851699947: 7 453 17 777 9 8 9
+1340172906: 2 40 199 6 306 5 55 1 6
+3060357: 45 170 76 13 4
+36750787: 799 3 65 12 7 9 9 3 55 7
+2626008: 11 2 904 6 132
+160823754: 27 320 6 7 91 846
+575944059: 1 420 4 79 1 438 2 59
+34100955: 1 81 81 664 25 5 3 21
+948113: 71 3 735 1 13
+11843363: 5 86 23 8 3 878 21 1
+414514: 816 95 65 7 9
+1441652696: 6 69 6 3 8 1 4 58 4 693 1
+383650: 684 2 8 4 7 3 4 1 86 5
+22135637: 7 4 7 932 8 77 821 704
+918291: 5 1 89 6 1 872 200 8 9 6
+1505741: 395 28 9 5 39 391
+11771: 78 39 69 2
+80708: 7 39 294 345 4 97
+421192773: 140 2 5 1 5 6 3 7 5 9 1 3
+860808: 88 4 1 4 1 78 1 31
+33372: 17 6 6 3 970 5 4 6 6
+17146536118: 5 70 9 7 2 36 9 4 2 2 7 90
+533228686848: 8 86 33 306 78 1 984
+1737309600: 1 409 50 26 538 3 90
+222943937895: 708 45 45 7 535 5 999
+636399160: 63 563 5 764 1 60
+788745: 97 116 7 529 6
+22728734: 3 78 8 6 732
+1875535455: 1 23 8 563 71 7 2 51 5
+871082: 3 769 2 47 7 3 8 1 2 6 50
+30066368: 46 9 778 9 64
+45751548: 904 89 8 740 71
+2527247: 6 30 6 117 47
+1688: 2 602 82 2 394 6
+4399: 10 338 63 71 885
+71096: 716 99 90 78 44
+3995056485: 116 4 739 5 343
+7628: 5 92 8 71 9 5
+1972250398: 23 437 584 4 6 29 8 7 6
+135886610: 7 987 5 32 9 817 3 3 85
+635383260: 698 7 981 4 90
+96912: 484 2 5 7 55
+152775: 22 689 2 8 3 94 75
+78984174: 2 7 4 405 6 1 75 6 2 4 8
+4312419238: 8 113 449 451 3 8 22 6
+418704221: 837 393 5 77 21
+195822: 1 87 38 5 8 473 3
+471: 8 149 3
+759714: 599 181 5 62 7 312
+56005: 4 175 8 5
+103: 5 8 9 31 1 49
+1923392: 8 2 7 134 1 4 1 67 2 6 16
+1260: 150 5 8 20 1
+6938: 61 3 5 38
+1540044487170: 812 2 83 83 53 63 10 3
+1134769023: 7 89 8 54 3 86 6 8 1 7 6 3
+6335: 61 77 886 9 743
+985535: 5 4 5 45 393 2 7 24 4 5 1
+2747160758: 337 85 6 4 65 7 56
+14972873: 592 2 883 85 22 1
+215170709446: 1 8 5 6 2 2 9 92 776 7 7 7
+941373552: 6 6 3 5 5 5 8 84 9 28 7 12
+6429165688: 3 5 8 5 1 8 14 291 4 2 2 4
+8531: 861 825 5 5 70 6
+16943371610: 778 6 5 626 6 8 5 8 2 10
+162627956: 3 3 1 6 5 5 95 7 2 3 956
+2151926: 5 796 3 8 49 3 11 744
+102253056: 91 9 8 7 5 7 765 1 2 4 8
+37464508: 62 44 6 508
+59290776: 7 70 770 77 6
+29405232640: 95 780 624 9 4 492 4
+11838789900: 151 7 3 1 7 6 45 3 5 881
+34152034: 682 84 17 5 9 1 3 623
+709309696188: 2 536 4 4 92 358 1 8 6 2
+49216062: 614 22 97 7 5 33 8
+3363902892: 791 59 9 968 861 1 82
+245385018: 7 9 869 2 18 249
+2723318400: 82 528 68 925
+13986: 199 3 3 146 1 2 2 46 9
+1482122661189: 90 2 694 973 3 843
+171957897: 5 174 4 49 1 6 4 4 1 7
+2328172: 90 149 4 2 108 8 39 4 7
+362: 4 33 3 9 2
+21949953: 427 71 724 441 4
+3241877525: 304 6 8 75 24 53 5 5 25
+1477881: 7 2 74 4 9 507 1 108 9
+1584451: 35 3 7 8 25 33 299 1 7 1
+245523: 44 5 18 62 3
+408: 3 44 4 2 4
+6491391180: 7 15 766 321 65 12
+49688662: 616 806 99 291 62
+7767789: 3 7 65 4 5 350 8 111 9
+333456: 4 5 7 96 6 2 32 152 5 7 4
+60014021472: 43 55 330 7 108 712
+2628581: 494 76 4 5 7 441
+844582: 97 8 68 136 4 858 310
+74777: 610 2 988 355 1 329
+4763814: 99 9 3 84 278 42 6
+94440: 7 7 5 6 2 787 1
+4016774580: 88 229 696 69 90 182
+5836537069: 567 42 7 95 65 70 2 35
+17838201034: 7 27 164 38 943
+424573: 6 70 3 965 608
+37912: 3 79 11
+16398628155: 55 763 727 49 39 707
+3809: 3 4 2 4 8 38 1 88 14 6 9
+703384666831: 1 1 8 9 5 6 7 6 93 3 366 5
+647136: 627 43 3 6 4
+210792608671: 5 81 370 4 52 661 8
+2436100: 1 7 3 49 8 6 4 3 1 241 85
+1592324703: 66 1 197 9 4 1 9 93 799
+346507254032: 39 82 841 7 3 87 25 7
+13518: 6 3 751
+126939680: 35 60 696 85 944 2
+24678: 1 6 411 8 10
+201423: 9 3 4 23 189 4 9 8 6 4 9 6
+231349613724: 27 3 4 54 27 84 94 5 9 6
+2927815253: 36 9 5 76 7 64 8 9 53
+8630377: 768 94 17 2 84 79
+462193759: 5 3 9 4 9 86 1 8 537 6 1 1
+607518720: 70 1 91 6 19 7 824 6
+468102094: 66 14 638 978 66
+128956255: 307 3 7 7 1 9 5 4 6 7 442
+193259: 1 24 5 687 59
+162357: 69 94 1 2 1 978 9
+442600: 7 4 8 2 8 5 74 992 683 8
+3767103580553: 4 1 85 6 706 45 9 50
+14847610: 9 9 5 6 8 9 9 6 7 602 2 6
+743: 68 6 7 53 275
+3050362: 35 8 8 17 2 93 4 2 8 5 2
+82156803: 2 772 3 76 3 7 22
+628792: 264 3 42 7 3 98 8
+130836627: 7 554 23 3 2 9 33 621
+144521: 260 5 1 4 5 7 410 82 37
+1792577: 55 6 95 5 4 88 3 5 19 3
+2091684: 2 9 2 843 1 9 202 4 980
+74537554512: 59 68 1 97 192 586
+1855461604: 277 9 9 93 800 4
+224859805: 587 17 1 40 2 9 929 5
+2400360483472: 8 62 8 85 54 4 1 24 1 28
+614540871: 607 7 435 8 1 164 70
+366295433435: 45 3 67 551 49 435
+91587264: 4 3 6 9 8 1 60 588 92 4 4
+630961: 6 68 5 575 478
+893: 365 73 366 2 87
+5056137: 508 1 3 74 2 3 288 9
+95290: 99 1 93 229 10 1
+582845322: 4 551 4 8 4 70 4 6 7 3 4 2
+5535: 9 7 4 79 479
+395: 2 39 5 346 3
+178405757400: 1 24 934 238 900 6
+145435392: 2 794 96 6 159
+5250: 1 25 996 5 142 3 1
+759649461: 2 8 2 1 9 8 7 298 9 5 2 9
+56934838: 4 3 885 52 62 360 9 86
+105669: 7 1 21 21 31 531
+14746: 9 390 3 2 4 686
+5769: 7 592 2 40 9
+9608753689: 479 340 188 44 59 1
+643168552301: 4 6 6 5 2 61 94 9 793 7 2
+229419862: 731 4 374 62 462 833
+2713155156616: 34 606 57 98 8 5 77 2 4
+6413421303: 28 851 75 60 81 7 9
+256402417600: 1 4 4 7 513 512 28 35 3
+1460366163: 81 4 598 16 722 3
+4060: 1 46 85 16 49
+2110348408810: 42 8 3 6 3 2 6 3 4 4 1 410
+2902057811: 731 7 1 9 105 7 67 9 8 1
+23258816649: 927 65 1 386 646
+29206983: 91 5 887 4 99 3 3
+5861730159: 94 76 9 618 157
+22973: 6 9 54 82 5 1 7 140 2 11
+371623000: 93 217 6 449 41 517
+3588: 34 7 5 26 3
+1941395: 7 2 3 6 77 70 81 840 4
+672968880: 433 7 6 3 77 4 584 8 3 5
+15674455: 7 311 36 2 52
+243523: 1 42 1 565 8
+19516: 2 458 9 6 1 41
+453896: 542 49 96 8 1 3 4
+267007884: 74 84 50 398 858
+40330241015588: 8 42 6 984 210 9 62 9 8
+585: 3 55 9 372 87 2 57
+2396434: 2 8 3 89 9 9 40 4 52 9 57
+16119246: 111 2 2 566 63 6 909 2
+20568735: 83 22 847 855 9
+7813814546: 678 1 24 8 49 35 4 7 5 6
+27282024: 3 11 9 2 1 4 354 21 836
+2964: 944 3 30 92 10
+827647: 4 4 2 764 7
+1176186495: 35 642 33 123 372
+201735728: 1 2 382 526 502
+35413156795: 235 7 3 4 4 7 7 1 3 5 9 5
+8399713: 44 49 472 4 3
+2343605: 279 7 40 30 5
+6450624: 12 5 13 52 5 6 98 30 6 8
+443217280: 6 395 16 785 88
+48700: 8 6 3 6 1 7 60 66 73 774
+80580: 7 68 56 7 3 8 3 580
+130511451943: 54 45 38 537 45 946
+8108763812: 8 2 90 9 8 763 810 1 4
+182283859: 17 43 57 3 57 3 852 7
+24897070: 46 89 28 4 755 95 2
+111250171648: 99 484 8 346 404
+23755: 5 920 55 96 5
+436019: 56 972 8 5 64 496
+928922: 9 619 662 149 205
+6451307248: 3 212 7 7 7 7 30 7 2 5 1
+86980: 8 65 13 978 2
+9786271: 7 6 89 869 59
+1532160: 89 3 106 293 79 64 6 7
+24403000: 842 97 5 94 2 55 8 2 5
+1953: 2 6 5 4 93
+990319: 990 189 130
+11412188576: 620 6 263 76 92
+249050630: 98 78 84 786 955
+742373: 5 386 1 8 15 9 6 8 7 94 1
+474024: 7 2 6 800 9 3
+142885: 28 3 9 8 8 8 15 12 8 2
+6930420: 11 98 60 870 7
+122733492: 256 38 3 38 26 42
+831978: 2 6 26 93 8 93 7
+29926896375: 554 2 54 94 9 4 69 74 5
+219383717: 22 9 958 1 785 2 930
+3407325164: 4 859 94 746 4
+6078060: 33 7 13 973 1 8 537 12
+299554515: 935 63 5 15 30 1 5
+9437408425: 1 344 72 348 12 7 19 6
+267406: 5 99 9 3 4 64 5 9 97
+6553232: 9 64 36 4 835 8 18 1 1 6
+96001080: 23 902 5 619 920
+84355: 3 5 31 540 8 4 76 7
+24298114896: 35 284 3 407 1 564
+5953350: 6 996 608 8 22 9 7 50
+79652: 7 948 6 7 89 68
+22886: 1 4 1 57 8 6
+624448: 77 97 8 6 8
+3359340: 50 74 4 2 270
+622: 2 2 3 7 538
+507934685: 3 22 396 2 3 11 2 2 46 5
+1019: 1 12 74 36 30 65
+203478: 665 11 3 6 7 8
+19277025840: 8 631 9 58 70 963 2 6 5
+344954166: 5 8 3 3 984 90 6 3 8 3 1 6
+48340800932: 8 7 10 6 746 72 2 7 1 2 2
+146059200: 9 78 741 1 1 9 245 5 8 2
+4436052529: 9 1 78 9 2 3 9 7 8 972 4 9
+43699067: 5 97 68 36 9 7
+88848: 2 6 77 3 217 9 619 8 8
+1656: 47 1 34 6 52
+9799: 41 2 42 4 18 871
+7946031: 1 6 12 63 1 7 945 86
+720410: 8 599 3 5 30 9 64 1 5 3 5
+24848528: 421 1 3 20 44 982
+867: 3 397 1 346 1 95 8 7 5 4
+94969178216: 9 82 2 275 1 7 4 879 8 4
+7272: 2 6 606
+12214232427600: 512 9 63 842 15 6 7 60
+28632: 84 9 3 15 717
+144280559: 681 43 3 498 40
+1138408: 5 2 50 638 405
+12128950928: 5 4 7 39 58 1 553 2 1 4 9
+20820892347: 8 2 1 56 716 1 2 2 8 3 9 1
+1198976: 50 1 549 488 2
+900841950944: 2 9 7 4 9 54 854 5 9 416
+346736: 30 28 42 898 104
+7603435: 25 48 8 467 3 67 8 200
+242741004: 2 4 26 99 41 9 82 5 7 9
+563920: 7 82 720 880 1
+2443160712025: 3 5 7 3 3 8 913 6 2 85 25
+2147242: 352 61 36 6
+220646436: 3 8 27 847 5 84 9 9 81 6
+149809323: 25 102 746 8 587
+144884479: 3 3 163 6 9 98 6 1 27 76
+9249: 2 8 5 7 64 3 9 58 7 4 82
+7338803: 1 810 4 3 9 9 1 21 1 7 1 2
+764: 7 8 612 1 91 45
+7381740: 9 3 29 55 74 60
+5928: 72 7 47 615 8
+466888312086: 5 53 77 93 74 3 8 20 86
+210325257: 23 7 82 3 567 8 46 3 9
+221180: 418 6 2 44 476
+6249064885203: 88 90 255 6 955 810 4
+334647013: 3 9 14 855 13
+639109705: 83 770 963 7 6
+23307480: 2 877 7 6 7 420 9
+1552566965: 51 4 321 24 79 91 3 65
+87715339226: 45 958 608 874 14 12
+12858752: 23 61 5 51 60 675 4
+1351937: 643 71 7 3 7
+9467274375: 3 1 300 6 7 1 8 7 9 1 433
+5224: 4 65 5 31 8 4 290 2 32
+364104316: 4 32 410 4 3 16
+11572855: 756 43 356 6 1
+3454145741: 345 40 62 83 741
+758500646221: 9 916 820 646 128 93
+363957360: 8 8 430 71 52 6
+338029: 67 498 5 4 2 5 527
+10068480: 4 1 9 17 8 4 25 874 8 8 2
+8299784: 27 2 4 3 2 8 44 6 1 927 4
+20579790: 520 17 3 66 462 5
+613581611446: 6 1 358 1 5 9 9 5 7 4 42 4
+60066: 7 39 136 664 71
+155277: 84 6 80 469 9 27
+96729: 8 5 3 806 9
+897244658151: 9 3 83 9 385 9 1 814 2 9
+7035873: 764 92 70 73
+4445733605: 7 6 1 2 210 1 8 891 66 5
+10609173795: 968 86 18 5 8 6 9 885
+3695: 3 70 8 44 131
+1050504: 1 5 4 1 7 95 59 12 481
+14585643: 1 918 5 9 74 38 8 9 9 43
+54685258320: 5 9 6 5 7 308 461 5 3 98
+2800483: 32 9 1 281 9 78 624 7 7
+168530073: 4 287 9 51 7 3 367 2 5 3
+395246313: 3 4 5 9 2 2 632 8 7 1 7 9
+4064256: 36 21 1 896 6
+262310522628: 2 427 9 5 4 1 83 24 49 3
+86049: 23 82 818 26 133 1
+601: 4 4 8 63 370
+1026420084: 2 5 4 95 8 737 6 522
+101164: 40 320 281 2 2
+10817105: 49 4 4 864 425 9 5
+3420: 5 4 9 299 9
+69689: 57 69 5 66 89
+265686: 70 4 948 152 52 34 8
+32990988: 688 4 54 37 2 6 1
+157066012: 26 863 70 12
+58787499: 790 78 2 3 6 53 67 43 1
+114207: 3 6 28 111 654 304 3
+4729: 23 651 1 7 4
+1292818885: 99 5 41 908 835 31
+66775434: 196 2 34 67 434
+115887: 9 2 245 1 43 2
+462669: 4 88 1 3 517 3 2 7 2 7 4 7
+135: 5 3 9
+75750: 69 941 75
+9632: 29 38 92 2 8 8
+577121008: 9 2 93 3 28 5 20 5 5 8 8 2
+6697752: 9 2 7 6 5 367 4 3 23 9 2
+3680318803: 5 9 11 9 7 7 9 8 5 437 7 7
+160907427: 300 9 9 91 9 733
+35049202177630: 22 729 703 3 295 514
+5010054861: 5 52 3 835 545 3 61
+3680392: 3 677 5 5 43 76 1 44 6 2
+540881440: 5 5 27 44 5 360 4
+84819882: 6 585 3 231 35 618
+7230186: 1 92 8 738 97
+31833026: 588 20 9 21 540 5 18 8
+8703829: 8 695 8 732 97
+2645256721889: 7 7 816 470 40 77 9 59
+96200: 128 1 4 6 74
+10937584095: 797 35 2 5 560 7 95
+69479877: 301 374 764 6 613 5
+1670542: 8 19 9 3 87 1 29 189 4 2
+57158970624683: 849 9 834 4 42 6 8 683
+155: 3 5 3 2 38 70
+80353681: 803 48 5 677 4
+243932835: 9 73 72 988 8 1 31 4
+65346: 59 79 6 7 4 2
+335768981464: 3 9 659 844 7 92 142
+89019612087: 6 9 70 9 7 680 9 2 5 6 2 7
+125382104: 376 6 8 789 52 536
+28451: 5 5 4 674 4 30 38 8 19
+5738099522: 810 920 7 7 1 77 155
+30304670: 5 9 5 4 3 97 71 695 4 6
+158763: 5 5 5 8 561
+526356306: 7 114 41 6 3 8 2 403 4 9
+1079: 240 96 579 2 66 96
+109098: 3 6 38 7 5 95 2 7 52 54
+39502269: 2 1 3 56 2 5 5 5 42 586 9
+32609: 6 54 82 127
+3070: 8 21 68 3 99
+640811159: 8 31 306 4 1 7 4 9 9 97
+2000439000: 5 281 45 791 40
+171068: 25 6 19 20 3 9 6 20 28 5
+27921957: 1 5 999 7 7 63 3 9 3 1 5 6
+612228: 250 9 34 8 26 202
+2963917: 216 14 3 98 36 59 9
+4363811: 2 132 47 33 5 22 4 33
+2568: 955 600 419 530 64
+3215582024: 3 1 902 87 8 9 99 757 4
+153840815856: 51 868 6 481 28 258
+11386: 9 6 39 52 3
+60434: 6 4 85 52 67
+23737612: 76 571 547
+3533198: 2 88 1 2 63 31 90 8
+663363: 3 1 8 603 22 41
+5587084944: 53 6 6 498 4 1 7 8 12 7
+216867168: 959 3 943 616 84 97 6
+890979341: 989 925 52 9 23 18
+7: 2 5 1
+3647893260: 793 46 9 32 60
+75777: 538 747 4 573 5 76 39
+19834461: 6 28 538 733 17
+12198733538: 22 99 98 73 35 35
+254720: 87 37 761 8 8
+60001422: 3 729 872 9 94
+31934565: 46 6 886 6 137 691
+8096760: 313 9 15 3 168 17
+38124834120: 6 660 5 53 5 7 3 7 6 5 12
+23452364967: 3 5 5 5 5 72 8 5 833 90
+30005379: 384 88 736 869 547
+3722710422: 8 1 7 966 38 2 412 8 1 1
+457: 155 216 25 25 36
+19880960508: 638 82 2 31 71 38 2 8
+25328336: 34 209 81 21 37 44
+1929959244: 5 900 7 665 97 81 93 6
+10383955921: 5 19 97 706 9 948 1
+2267298543: 7 7 752 54 93 54 3
+100433212: 80 4 6 41 1 2 271 5 9 68
+116610592490: 4 451 202 1 4 4 2 2 1 88
+20491672: 2 8 36 5 7 3 794 7 4 4 5 3
+1180313416: 419 113 257 97 3 50
+171227269984: 8 9 9 3 560 7 9 176 34
+455846: 98 9 71 43 4 41
+1674562864: 57 794 45 5 37 29
+35: 2 3 31
+87046876: 5 79 334 4 858 1 68 76
+1877: 1 6 19 289 3 610 1
+364: 4 63 15 2 95
+76836001065: 19 674 75 8 10 65
+45790962: 9 41 58 3 7 59
+3460: 7 34 2 6 2 9 3 2 9 8 5 725
+65011686: 3 4 6 235 1 5 3 8 7 1 1 6
+930: 8 8 866
+2401: 3 4 5 32
+301269: 69 9 431
+13699: 136 97 2
+317: 42 6 6 26 3
+15794075: 7 3 3 331 8 1 5 225 395
+129161328: 8 1 97 76 3 9 98 1 4 3 4 8
+567: 199 23 5 332 8
+190423850: 4 4 9 54 68 582 9 46 4
+27411835281528: 17 52 252 75 1 31 52 8
+4170: 4 9 63 2 5 50 4 7 3
+461435: 22 312 46 6 14 70 5 95
+1386: 64 665 8 400 246 3
+357696003: 10 8 5 5 5 9 4 1 345 4 6 3
+77837763: 60 1 924 27 52
+3811398362: 4 4 7 4 74 1 5 622 9 5 1 4
+292049: 5 6 91 2 26 3 2 9 8 2 1 1
+4165920: 5 254 4 198 80
+6672: 494 88 7 10 835
+43553: 8 5 2 267 313 8 362
+789021489: 950 55 86 413 284 83
+17159844237: 42 196 721 44 237
+663874848670: 45 37 6 91 73 11 1 1 6 3
+5483954201: 4 568 2 3 9 1 1 3 5 6 7 94
+1540007: 101 146 46 8 657
+9727: 27 358 58
+225373634: 385 2 5 4 4 2 1 568 73 4
+99539283888: 8 9 989 1 5 6 583 9 4 47
+392: 2 2 307 1 81
+42059103300: 941 425 612 73
+8770: 161 649 9 9 9 577 885
+190409235602: 59 1 362 89 8 77 5 602
+79553678: 2 27 137 4 1 34 8 839 2
+159028761020: 24 9 7 9 4 709 6 5 5 2 20
+1300: 37 5 925
+243433313: 805 7 6 6 3 4 6 1 8 53 3
+3124500: 103 8 67 283 30
+302625: 3 5 8 56 57 392 25 9
+1137: 18 15 346 3
+639368: 971 57 8 617 9 5 137 5
+79939450: 5 793 1 39 44 4 6
+2228247208: 4 557 221 26 208
+134042534: 446 80 38 6 8 2 3 8 83 1
+510500610672: 95 6 324 3 98 2 23 1 78
+4111: 658 6 84 8 71
+45999: 81 6 119 8 138 127 6 9
+60030845: 74 7 39 5 3 2 5 831 6 8
+35770: 9 16 197 98 72 70
+10927513483: 5 147 954 82 919 619
+10051898: 8 5 38 815 105 168 98
+131228541: 72 5 181 3 54 3
+10512: 8 438 3
+223: 3 4 9 15 192
+488096: 56 9 6 957 26
+657202356: 40 7 7 4 7 7 9 7 2 1 9 876
+1078687453562: 14 77 687 453 555 4
+13425: 4 1 3 75 3
+92796195: 30 4 36 84 5 6 27 3
+38173361: 47 8 5 729 42 419
+430285450: 896 41 4 14 48 7
+83841: 79 1 3 839 4
+237475: 2 15 377 6 8 3 22 75 4
+680057: 7 7 64 3 42 3 6 298 115
+281219: 5 7 9 5 941 752 7 6 1 7 3
+137606014: 12 3 42 1 54 91
+81445062312: 302 995 7 16 2 5 4 9 24
+430044160: 948 46 65 13 64 8
+2214: 724 6 2 6 3
+126136158224: 1 926 4 5 8 8 7 17 11 2 2
+1367286683: 72 728 470 4 1 281
+13304: 244 6 86 113 8
+691914: 4 74 662 609 90
+2198982: 1 4 2 9 546 139 4 7 2
+676192: 9 6 3 4 7 17 3 2 717 68 8
+17217: 8 5 1 2 3 9 8 22 5 894 9 4
+342783: 523 652 938 94 754
+812: 57 8 3 8 1 4
+153626591: 8 4 8 6 2 380 271 3 78
+719278: 9 5 94 103 1 83 2
+2478427: 548 14 441 7
+369291042: 3 8 8 63 413 6 6 85 3 9
+3973077: 471 1 87 84 969
+40382: 97 2 2 918 4 13 13 4 9 8
+2096301704: 300 8 104 7 481 5 67 9
+34559536583: 627 74 85 407 9 58 1
+171414: 532 894 3 7 5 8 5 3 6
+1092591435: 569 8 4 64 3 8 3 3 1
+11768133: 5 7 422 691 2 761 790
+1168: 48 4 30 506 576 4
+270957: 967 31 123 9 57
+49751803: 407 955 64 2 9 58 56
+75672: 575 2 955 2 89 24
+12708470: 66 588 413 6 6 9 4 862
+18233446903: 4 651 778 129 7
+459: 2 72 4 7 374
+10314: 5 4 49 1 6
+215952960: 565 796 6 972 80