Commit d91e0b5
Changed files (20)
2024/go/02/main.go
@@ -0,0 +1,110 @@
+package main
+
+import (
+ "advent/internal/aoc"
+ "log"
+ "strconv"
+ "strings"
+)
+
+type direction int
+
+const (
+ unknown direction = iota
+ increasing direction = iota
+ decreasing direction = iota
+ volitile direction = iota
+)
+
+type report struct {
+ levels []int
+ direction direction
+ safe bool
+ violations int
+}
+
+func parse(line string) report {
+ sl := strings.Split(line, " ")
+
+ r := report{
+ levels: make([]int, len(sl), len(sl)),
+ direction: unknown,
+ safe: true,
+ violations: 0,
+ }
+
+ previousLevel := -1
+ for i, s := range sl {
+
+ level, err := strconv.Atoi(s)
+ if err != nil {
+ log.Fatalf("failed to parse level=%q: %s\n", s, err)
+ }
+ r.levels[i] = level
+
+ if previousLevel == -1 {
+ previousLevel = level
+ continue
+ }
+
+ direction := unknown
+ if level > previousLevel {
+ direction = increasing
+ }
+ if level < previousLevel {
+ direction = decreasing
+ }
+ if r.direction == unknown {
+ r.direction = direction
+ }
+ if (r.direction == increasing && direction == decreasing) ||
+ (r.direction == decreasing && direction == increasing) {
+ r.direction = volitile
+ r.safe = false
+ r.violations += 1
+ }
+
+ diff := level - previousLevel
+ if diff < 0 {
+ diff = -diff
+ }
+ if diff < 1 || diff > 3 {
+ r.safe = false
+ r.violations += 1
+ }
+
+ previousLevel = level
+ }
+ //fmt.Printf("%+v\n", r)
+ return r
+}
+
+func solvePart1(input []string) (solution int) {
+ safeReportSum := 0
+ for _, l := range input {
+ r := parse(l)
+ if r.safe {
+ safeReportSum += 1
+ }
+ }
+ return safeReportSum
+}
+
+func solvePart2(input []string) (solution int) {
+ safeReportSum := 0
+ for _, l := range input {
+ r := parse(l)
+ if r.safe || r.violations == 1 {
+ safeReportSum += 1
+ }
+ }
+ return safeReportSum
+}
+
+func main() {
+ day := aoc.Day2
+ aoc.SolveExample(day, aoc.Part1, solvePart1, 2)
+ aoc.SolvePuzzle(day, aoc.Part1, solvePart1, 564)
+ aoc.SolveExample(day, aoc.Part2, solvePart2, 4)
+ aoc.SolvePuzzle(day, aoc.Part2, solvePart2, aoc.UnknownExpected)
+}
2024/go/03/main.go
@@ -0,0 +1,66 @@
+package main
+
+import (
+ "advent/internal/aoc"
+ "regexp"
+ "strconv"
+ "strings"
+)
+
+const (
+ dontRegex = `don't\(\).*?(do\(\)|$)`
+ mulRegex = `mul\([0-9]+,[0-9]+\)`
+ mulPrefix = "mul("
+ mulSuffix = ")"
+ mulSep = ","
+ findAll = -1
+)
+
+func mul(s string) int {
+ s = strings.TrimPrefix(s, mulPrefix)
+ s = strings.TrimSuffix(s, mulSuffix)
+ numbers := strings.Split(s, mulSep)
+ // TODO assert length, check errors
+ l, _ := strconv.Atoi(numbers[0])
+ r, _ := strconv.Atoi(numbers[1])
+ return l * r
+}
+
+func solvePart1(input []string) (solution int) {
+ r := regexp.MustCompile(mulRegex)
+
+ sum := 0
+ for _, line := range input {
+ matches := r.FindAllString(line, findAll)
+ for _, m := range matches {
+ v := mul(m)
+ sum += v
+ //fmt.Printf("%s=%d\n", m, v)
+ }
+ }
+ return sum
+}
+
+func solvePart2(input []string) (solution int) {
+ d := regexp.MustCompile(dontRegex)
+ r := regexp.MustCompile(mulRegex)
+
+ sum := 0
+ for _, line := range input {
+ line = d.ReplaceAllString(line, "")
+ matches := r.FindAllString(line, findAll)
+ for _, m := range matches {
+ v := mul(m)
+ sum += v
+ }
+ }
+ return sum
+}
+
+func main() {
+ day := aoc.Day3
+ aoc.SolveExample(day, aoc.Part1, solvePart1, 161)
+ aoc.SolvePuzzle(day, aoc.Part1, solvePart1, 189600467)
+ aoc.SolveExample(day, aoc.Part2, solvePart2, 48)
+ aoc.SolvePuzzle(day, aoc.Part2, solvePart2, 107069718)
+}
2024/go/internal/aoc/aoc.go
@@ -90,14 +90,14 @@ func (i Input) Calculate() (err error) {
solution := i.Solve(input)
if i.Expected == UnknownExpected {
- fmt.Printf("%8d\n", solution)
+ fmt.Printf("%12d\n", solution)
return nil
}
if solution != i.Expected {
- fmt.Printf("%8d ❌\n", solution)
+ fmt.Printf("%12d ❌\n", solution)
return nil
}
- fmt.Printf("%8d ✅\n", solution)
+ fmt.Printf("%12d ✅\n", solution)
return nil
}
2024/go/template/main.go
@@ -1,7 +1,7 @@
package main
import (
- "advent2024/internal/aoc"
+ "advent/internal/aoc"
)
func solvePart1(input []string) (solution int) {
2024/go/Justfile
@@ -6,9 +6,13 @@ clean:
build-all:
just build 01
+ just build 02
+ just build 03
run-all: clean build-all
bin/01
+ bin/02
+ bin/03
template day:
cp -r template {{day}}
2024/input/01-e1.txt
@@ -0,0 +1,6 @@
+3 4
+4 3
+2 5
+1 3
+3 9
+3 3
2024/input/01-e2.txt
@@ -0,0 +1,1 @@
+01-e1.txt
\ No newline at end of file
2024/input/01-p1.txt
@@ -0,0 +1,1000 @@
+62619 25903
+30326 94750
+84092 60901
+37915 71402
+15035 84878
+18777 73294
+95618 11556
+40228 14340
+64337 95628
+74895 95628
+60933 57743
+63659 71402
+96094 71097
+83473 16153
+37963 81398
+28922 62792
+33312 56198
+33041 32752
+42401 98096
+91919 15189
+90401 91974
+59102 81363
+36684 83913
+77675 26541
+20021 57743
+60735 67798
+23105 29010
+86145 20180
+34121 42958
+45549 94750
+21335 97630
+30251 83564
+98372 27653
+60916 15189
+81588 93448
+31108 43699
+57324 77707
+62333 95456
+63344 70149
+18409 84619
+39611 51457
+60844 56450
+24661 20851
+83216 54572
+26451 13071
+40779 25903
+69948 80817
+80307 79233
+74779 15189
+51254 25615
+78563 21903
+44445 11964
+19525 66306
+59383 24932
+51882 27120
+15214 94897
+25903 62440
+19142 37258
+89958 55770
+93819 95582
+92302 60901
+92207 21547
+46605 72682
+47019 87607
+91181 18344
+33427 58733
+63738 67384
+58722 92349
+68791 62680
+37498 71342
+42522 37702
+36868 17661
+93701 66457
+59077 81363
+29985 32727
+97380 39888
+91074 51996
+34578 43591
+36474 76040
+83694 30713
+23025 21910
+65352 18691
+26765 46401
+29699 58503
+22892 42958
+33183 14340
+93681 94750
+87781 44627
+73912 61890
+69862 47551
+83666 50441
+14505 93279
+76546 60901
+85046 15189
+96647 63933
+20361 60901
+54414 74008
+73807 42958
+88028 37620
+47837 67798
+39975 79734
+59258 37388
+30532 95336
+63303 99491
+29900 77971
+18886 30672
+69149 16262
+71315 12428
+92786 77707
+81870 71402
+28377 80029
+38482 83084
+42311 43457
+40133 67348
+47350 58722
+94899 39437
+80383 73056
+50777 29099
+82097 66680
+57866 94991
+93259 95336
+83163 66970
+12322 68796
+86718 60901
+62860 16276
+61538 74693
+78862 71402
+71051 79270
+65274 94750
+95081 95454
+35994 69752
+23142 21903
+41794 28870
+81143 82713
+98552 53936
+42716 27120
+31949 81363
+24961 69060
+37205 12866
+53468 93380
+56879 73099
+68473 63243
+25609 86891
+63903 58722
+42541 42958
+95908 40858
+80056 74693
+23919 68796
+88345 37620
+47504 51825
+63031 43591
+83304 92302
+44174 18382
+53110 27120
+92382 57743
+95060 74693
+20870 31509
+38624 73935
+23048 21277
+71387 51004
+94750 71744
+86172 42002
+66293 20509
+17059 42958
+67035 10373
+75394 37620
+41855 43093
+23490 70386
+14833 60901
+17857 59270
+48666 62028
+19457 15189
+97382 74244
+59739 52959
+45275 92302
+15577 57743
+87651 18920
+98358 58538
+56785 68796
+17775 94456
+68554 36320
+85702 54050
+12351 64531
+75012 73099
+24159 72040
+14167 95347
+90037 27340
+57691 43591
+47008 18691
+10950 69642
+57987 23221
+77285 25903
+54353 19109
+75869 79832
+50446 46147
+84638 42958
+17751 60901
+67211 58733
+44169 48158
+91044 38933
+79885 11964
+78386 67798
+69398 72938
+21600 84819
+50224 81272
+78056 88646
+56837 31411
+39171 61608
+78080 43591
+54257 92150
+82021 15189
+19615 98246
+24648 76873
+45477 11964
+59179 59232
+66194 25903
+40847 58733
+34375 33041
+11740 67798
+94666 55770
+68611 91621
+91769 13515
+35492 58722
+84448 92302
+56613 62766
+99254 74693
+96650 10088
+39437 51388
+33069 91054
+52418 71402
+75251 80449
+31445 36392
+71195 53910
+72666 41650
+17608 95908
+12078 45665
+17604 64904
+78291 34090
+57437 57743
+91805 96758
+99250 95908
+64757 58722
+87843 64996
+88951 45003
+74539 77911
+58846 18920
+16307 94750
+69837 95908
+76898 40815
+16205 71402
+98688 46854
+69901 42958
+53438 34139
+19832 60901
+71402 55957
+38182 59508
+75973 52291
+63146 58733
+38891 52963
+83937 42855
+13073 58733
+25736 58733
+25961 91001
+98087 36622
+62673 45577
+81720 30395
+42981 58722
+99960 94750
+89819 73483
+46042 93254
+94494 58722
+90404 16308
+88078 95908
+59505 94750
+94839 18691
+51439 60901
+45408 94213
+46301 96771
+82342 95336
+87415 50494
+68995 18920
+69097 57463
+52090 76541
+57743 71402
+92558 26149
+33393 14340
+17956 77707
+93740 44925
+84324 81363
+99452 11104
+77578 58733
+23972 67830
+95336 94750
+96712 98246
+41647 76926
+74996 47307
+31798 81363
+84956 55640
+33185 57743
+74028 83220
+12168 40375
+27300 95908
+73132 82757
+11593 37620
+76794 99477
+53045 67798
+16203 67839
+43013 30796
+21653 66822
+99785 60901
+41534 99505
+34746 98777
+91326 15189
+41238 10056
+27120 89435
+61455 55770
+32332 12560
+74212 58722
+79815 43591
+51266 24297
+29290 42582
+32564 81503
+33451 58722
+74693 44992
+90825 95908
+18434 37620
+51381 69567
+51357 80756
+41367 42958
+18034 87111
+35090 48309
+52050 19848
+31615 18691
+26163 55382
+54155 98380
+32766 95628
+66811 70762
+56835 74954
+68966 98773
+64000 80941
+17133 28149
+46113 11964
+44129 95908
+75450 11493
+33226 67397
+61957 64071
+75928 43095
+93920 67730
+65403 24083
+43381 95908
+81291 46446
+41878 68263
+92914 41085
+34436 57743
+79389 40570
+56226 23464
+79465 94750
+30601 22367
+74416 85052
+69119 20905
+78029 31117
+56600 20434
+88792 76040
+70653 15946
+26166 44783
+29517 60996
+85852 80100
+39106 11294
+77438 83568
+37856 46541
+58097 37572
+83261 77394
+71449 21903
+15327 71144
+66853 18920
+76787 51780
+62338 39437
+97231 72705
+93048 20279
+45014 58733
+48454 25802
+16977 52014
+24139 15189
+97186 68796
+63132 55770
+28951 95908
+52068 94750
+92193 25450
+94762 68225
+94439 75090
+49183 76040
+15650 72780
+43617 25654
+48000 57743
+44802 20665
+69533 40698
+99506 71402
+10188 81093
+45642 12405
+41525 95628
+63406 58722
+38086 82686
+78248 92302
+35534 25903
+40908 60096
+34570 54450
+50290 20272
+49022 76863
+69525 15189
+77707 77671
+72455 71402
+26834 55770
+68910 42924
+54344 16132
+67895 92302
+74034 55770
+29963 11964
+28687 48072
+47125 58722
+15698 23211
+25279 33041
+35856 58733
+29506 92630
+83164 58503
+25652 43591
+10150 60901
+68681 75492
+25928 62173
+90996 60901
+34150 25903
+45505 24919
+32302 16979
+70135 60901
+47220 38697
+66939 18691
+60367 74693
+46402 54059
+37333 38708
+15675 56777
+94947 64270
+92421 64575
+18644 18920
+85453 55949
+24398 25465
+51537 60901
+73029 18691
+10372 21582
+13221 60772
+96312 48448
+41962 18894
+95628 25903
+86774 67798
+97328 94768
+12739 83965
+35805 55770
+71377 51057
+27624 21704
+47608 15189
+33867 40404
+97161 68446
+20645 11768
+14224 78983
+62080 95908
+19102 75534
+63525 59254
+17179 68796
+98286 45885
+34018 97839
+99672 15422
+76115 25674
+51884 85901
+34047 27120
+29743 21903
+93768 76389
+97460 34263
+19836 94750
+83921 86722
+65076 81363
+79604 45182
+73999 95908
+51995 44729
+46824 23356
+76384 95908
+45206 95435
+48366 72348
+37898 82291
+31126 58733
+22018 83516
+12071 67798
+83202 27120
+56135 58733
+75630 37620
+14382 65093
+45237 50541
+25430 29954
+28105 70054
+67794 58722
+35237 21506
+38802 62056
+60276 31607
+35441 47957
+16202 21963
+86355 16631
+73689 21903
+69007 30198
+45510 98246
+85154 11881
+62930 58733
+70284 37620
+49335 84284
+81363 88599
+59481 25903
+45212 47786
+15302 95908
+45855 37620
+88386 92865
+11859 37620
+73264 60901
+83068 42996
+84915 76266
+17696 95628
+14367 52703
+30852 76040
+71184 78571
+42578 22158
+41197 33041
+96461 98246
+97118 60120
+77919 13391
+11964 71571
+75993 93850
+76867 23238
+22690 95908
+23262 37620
+25242 25903
+73440 44034
+98379 41045
+15645 53820
+55979 45441
+98508 64885
+34278 91871
+92424 21903
+99804 27550
+98275 39480
+77311 66522
+71457 71402
+45125 58722
+46725 31005
+11667 35829
+88568 38127
+84705 93869
+49426 58722
+95141 37826
+60901 17434
+51036 13775
+66121 55476
+99712 76291
+64183 76040
+14340 42364
+41256 42609
+88529 38809
+24137 86477
+50030 84350
+28692 39437
+76103 18691
+55768 95504
+81529 82684
+32989 68796
+62430 57117
+47161 95628
+98041 77707
+17293 60901
+26322 25201
+18691 68796
+53748 27211
+79920 61870
+13414 98246
+37753 42958
+99192 43795
+47951 78295
+65705 80132
+93270 18691
+49617 22313
+58116 68802
+41599 77917
+88070 73053
+57636 74708
+61320 55770
+28126 68211
+45326 68796
+83242 78622
+64432 95336
+66184 14776
+79662 78288
+31559 31202
+55770 37957
+23887 14766
+42104 12084
+86533 73495
+66370 77751
+90530 95628
+95401 43591
+43376 95257
+70768 58733
+12478 71571
+15957 17223
+81250 57743
+60475 10079
+40232 74136
+19774 97772
+18621 16958
+14875 76440
+90673 30928
+23096 58503
+97595 45435
+73191 42958
+81767 97406
+54334 56241
+27617 47748
+74196 73890
+83232 16958
+75027 74693
+80951 58733
+34912 42958
+85763 46782
+46474 94750
+66031 90078
+84048 71118
+94904 37620
+65760 66261
+85805 41397
+71175 16972
+48344 75703
+13102 88952
+42495 95358
+26249 18691
+19568 58733
+31959 55770
+55075 71571
+32241 88856
+94349 14340
+15189 16227
+28021 74374
+13676 33041
+59997 24406
+54305 41257
+37110 55770
+35881 32739
+21529 12177
+79138 42450
+29787 24438
+34894 68796
+21203 81363
+56933 66257
+95760 97152
+60050 94750
+41753 34287
+39341 95186
+49927 42958
+74695 31124
+57847 92741
+20288 98129
+51699 52019
+19072 68796
+82231 43640
+60534 20761
+10461 58503
+36149 27120
+96959 79965
+77827 60351
+91876 56195
+25787 60363
+86997 67798
+68922 46729
+19622 81363
+66080 91186
+27682 55770
+25942 65557
+89459 14340
+79797 74254
+96138 98246
+33238 59314
+30173 67798
+95078 68796
+54586 39437
+75238 37620
+39202 29637
+16867 19899
+82302 53887
+45302 27732
+30954 95908
+83543 98246
+54381 95336
+34144 12236
+17402 90976
+92020 71571
+62781 15189
+29546 99770
+11926 90890
+69879 68796
+76480 16106
+33328 50342
+58455 58733
+86164 14225
+33489 92807
+76961 26383
+77335 89466
+26454 94750
+67798 52555
+92671 42002
+23218 60901
+58564 34904
+19943 11014
+16341 11964
+35741 37620
+25711 95628
+70338 23595
+73099 14679
+40606 57743
+79029 84965
+40776 84207
+57543 57743
+55122 67798
+54036 89387
+34686 95336
+78969 19676
+93072 27772
+81688 14502
+18807 15639
+70774 57743
+87430 74693
+91599 26911
+37620 39437
+61886 71402
+58325 62504
+42822 33723
+67981 95908
+48046 77843
+45220 45628
+78085 33041
+46449 58722
+98918 59087
+32267 76647
+31728 27120
+15735 10521
+57336 58733
+86936 74693
+73719 50149
+84110 74693
+31202 27513
+68796 77160
+58416 69672
+57865 37620
+71850 50968
+53522 77707
+21173 42834
+92464 92615
+29744 37620
+52306 22486
+98899 16166
+22476 91919
+59967 19305
+43591 36485
+31809 63171
+79033 56343
+67656 98246
+13587 95822
+27782 42530
+19352 22300
+96569 42958
+95188 73716
+85777 27120
+76336 25264
+11596 51174
+62131 35355
+32737 87896
+21792 94314
+97535 42958
+67772 30847
+23372 10581
+91532 33811
+55873 74693
+36678 12576
+45099 73044
+43192 55240
+21903 55521
+88321 67798
+24368 39437
+79046 21903
+22881 95336
+41519 18920
+33709 68796
+72476 25903
+58512 27120
+86413 14340
+72964 16152
+96531 19099
+98791 73099
+17155 90626
+42612 27830
+55602 12838
+25290 30145
+59246 42958
+66301 29947
+36333 96445
+24171 58722
+87662 10983
+42958 71773
+58636 68421
+98695 25903
+87852 33041
+74343 57743
+39643 33041
+85380 27500
+48388 42958
+37761 77707
+97130 37620
+43580 38826
+47926 98004
+90396 18691
+45920 71402
+81997 71402
+94726 94750
+48358 27344
+71254 22993
+80275 34237
+72241 72611
+34532 68796
+55121 34876
+29318 57743
+75556 21903
+91485 21903
+58503 37620
+76040 58722
+64723 58001
+66467 95336
+53823 12613
+48859 61366
+76368 18920
+26043 94750
+60819 43935
+49793 74693
+49787 20795
+23373 58699
+69380 73099
+75462 63798
+45493 77707
+33090 98246
+40903 27639
+96473 76040
+89947 55467
+97538 76040
+94950 97842
+83847 64791
+51408 85287
+90641 25175
+59205 68796
+37106 21903
+31891 69062
+52732 21031
+16958 21903
+12830 12782
+88886 21500
+96198 96776
+10176 25136
+71571 42958
+16588 60751
+49639 94413
+94373 37620
+57909 42958
+23337 70169
+40204 10854
+51290 89920
+57936 61689
+52963 95336
+78553 55770
+28898 94685
+56962 20975
+98246 27120
+13251 31202
+12386 16958
+44211 44328
+51354 95336
+51903 84162
+74681 67073
+78792 46321
+47448 76040
+54001 41269
+83049 71402
+18666 88848
+91604 77707
+18218 74693
+70012 74693
+64340 15653
+61733 94750
+53459 25903
+89495 48179
+50543 14337
+53778 68796
+19573 76040
+48966 37491
+79009 65520
+75853 64389
+72020 55770
+85683 36279
+14091 95628
+81225 85177
+20253 99653
+83272 12892
+80793 74693
+60228 51271
+25762 30744
+45133 41216
+20563 87233
+58733 68796
+18187 58733
+27577 74693
+19450 72555
+54043 43176
+48494 42958
+88375 99208
+72864 49040
+23351 45233
+89758 20480
+11846 71402
+71123 37789
+85916 73099
+26278 42958
+45147 40390
+47700 94750
+71287 43591
+21893 95628
+30860 91205
+88771 25107
+63695 15189
+54022 78028
+18920 18691
+54215 53466
+37444 55606
+33508 79502
+51867 25903
+11633 73099
+95809 57743
+59336 58775
+92131 73399
+80096 28127
+92889 37549
+58711 16441
+56446 95908
+78562 16751
+87872 94750
+81757 64583
+94079 25109
+57657 60516
+87129 85261
+24276 41375
+58930 42002
+99351 74693
+49268 42002
+42002 64504
+81164 30052
+33506 60901
+54186 99255
+84054 85285
+63793 71402
+84019 21903
+12310 27120
+37386 33041
+72232 52481
+50872 43591
+88150 39972
+36699 31090
+11657 88797
+66278 81363
+20963 61397
+12046 55357
+81706 82079
+39853 71402
+59229 21903
+29455 80276
+14789 15466
+51944 81395
+26965 60546
+74750 55770
+80093 74559
+40585 65129
+79995 14340
+91325 69036
+36866 32940
+96216 67016
+45649 43967
+63836 21903
+57153 67798
+65895 27120
+41014 58733
+81492 95336
+55192 94646
+74304 65351
+91142 74386
+61587 43591
2024/input/01-p2.txt
@@ -0,0 +1,1 @@
+01-p1.txt
\ No newline at end of file
2024/input/02-e1.txt
@@ -0,0 +1,6 @@
+7 6 4 2 1
+1 2 7 8 9
+9 7 6 2 1
+1 3 2 4 5
+8 6 4 4 1
+1 3 6 7 9
2024/input/02-e2.txt
@@ -0,0 +1,1 @@
+02-e1.txt
\ No newline at end of file
2024/input/02-p1.txt
@@ -0,0 +1,1000 @@
+85 86 87 88 85
+30 32 35 36 36
+75 77 79 81 84 87 91
+9 11 13 15 16 18 21 27
+72 73 76 75 77 80 81
+7 9 8 11 12 10
+95 97 98 95 95
+64 67 68 69 70 67 68 72
+5 7 5 8 14
+33 35 35 38 39 41 43
+88 89 92 93 96 96 98 96
+62 65 67 70 72 72 72
+83 86 89 92 93 93 95 99
+27 28 30 31 31 38
+31 33 34 38 40 42
+32 34 36 40 38
+12 13 14 16 20 22 22
+31 32 34 38 39 43
+44 47 48 50 53 57 60 65
+22 25 26 33 35
+6 8 15 18 15
+49 52 55 62 62
+39 41 42 48 50 51 53 57
+41 42 44 47 53 54 59
+48 47 50 51 52 54 57 58
+24 22 23 24 26 23
+33 30 32 33 33
+49 47 50 53 55 59
+15 12 14 16 23
+87 85 82 83 85 87
+48 47 49 46 47 45
+13 11 8 10 10
+50 47 44 47 51
+78 77 79 81 83 86 84 91
+41 39 41 41 44
+15 12 15 15 16 17 15
+60 57 60 60 63 63
+22 20 21 21 24 28
+87 86 88 88 90 93 98
+13 12 14 18 20
+72 70 74 75 78 79 77
+51 50 53 54 58 58
+69 67 68 71 72 75 79 83
+7 5 7 9 13 15 18 24
+34 32 34 40 41
+6 4 7 9 11 18 16
+31 29 32 35 40 42 42
+64 63 65 71 73 76 79 83
+63 60 63 65 70 76
+22 22 23 26 29 31 34
+34 34 35 37 34
+66 66 68 70 71 71
+16 16 18 21 24 26 30
+55 55 56 58 59 60 67
+76 76 77 78 77 80
+19 19 16 18 17
+37 37 40 43 44 47 46 46
+17 17 16 18 20 22 26
+10 10 12 9 12 18
+3 3 3 6 9
+34 34 36 39 40 40 39
+19 19 20 23 23 26 26
+28 28 31 31 35
+36 36 37 37 39 44
+75 75 78 79 80 82 86 89
+23 23 24 28 29 31 30
+30 30 34 36 37 38 41 41
+10 10 12 13 17 18 22
+25 25 27 31 33 34 40
+1 1 8 10 11 12
+11 11 14 15 20 19
+76 76 79 86 86
+79 79 86 88 92
+64 64 67 68 70 73 80 87
+4 8 10 11 12
+46 50 52 54 55 57 59 58
+46 50 51 52 55 58 60 60
+22 26 29 32 36
+62 66 67 68 71 73 79
+56 60 63 64 63 66 67
+49 53 55 58 57 56
+27 31 34 31 31
+73 77 75 78 81 85
+10 14 16 17 16 23
+64 68 71 71 72 75 77 78
+38 42 43 43 42
+12 16 16 19 20 20
+65 69 71 73 76 77 77 81
+47 51 52 53 53 56 58 64
+25 29 31 34 36 39 43 44
+13 17 18 22 23 25 22
+30 34 38 39 41 41
+28 32 36 39 42 43 47
+32 36 39 41 45 46 53
+77 81 88 91 94
+63 67 68 69 76 74
+25 29 34 37 39 39
+74 78 79 84 85 86 90
+14 18 23 24 26 31
+35 41 44 47 48 50 51
+47 53 56 57 59 61 64 62
+13 19 22 25 28 31 34 34
+56 63 64 66 70
+65 70 71 74 79
+41 46 44 45 46 48
+13 19 16 18 16
+74 80 77 78 78
+41 46 47 46 48 52
+31 37 36 39 44
+42 48 48 51 53
+7 14 15 15 17 15
+60 67 67 69 69
+21 28 28 29 33
+59 65 68 70 73 73 79
+40 45 49 50 53 56 58 59
+83 88 92 95 93
+35 40 42 43 46 48 52 52
+72 79 80 84 85 89
+37 44 47 51 53 54 57 63
+37 42 43 44 51 54
+75 82 83 89 90 92 90
+48 53 60 62 65 68 71 71
+4 11 14 19 23
+72 79 80 85 86 88 89 96
+65 62 61 60 63
+55 54 53 50 49 48 48
+14 11 10 8 4
+24 22 20 19 18 16 15 9
+78 75 77 75 73 70 69 68
+74 73 70 73 72 74
+23 21 18 19 19
+80 77 79 77 76 72
+78 75 76 74 71 68 63
+88 85 83 83 81
+44 42 42 39 38 41
+34 31 31 29 29
+76 73 72 72 69 65
+78 77 74 72 72 67
+76 74 70 69 66
+84 82 79 76 72 70 69 71
+21 18 14 13 11 11
+67 66 62 61 58 55 53 49
+66 64 61 57 54 51 46
+77 74 73 71 69 67 61 60
+28 25 19 17 15 13 12 14
+16 14 8 6 6
+90 88 85 84 78 74
+79 77 72 69 66 65 62 57
+83 86 85 82 80
+31 34 31 30 31
+9 11 8 7 5 5
+65 68 65 63 59
+74 77 75 74 71 70 63
+32 33 30 28 27 29 26
+9 11 9 7 4 7 5 6
+92 95 94 93 90 91 91
+26 28 31 28 25 24 20
+18 19 18 15 17 11
+18 21 21 19 16 15
+10 11 8 7 6 6 4 6
+51 53 53 50 49 49
+72 73 72 71 71 70 67 63
+91 93 90 88 87 87 86 81
+58 60 56 53 51
+12 13 9 8 10
+5 6 2 1 1
+47 49 47 45 44 43 39 35
+52 53 52 51 50 46 41
+88 89 87 80 79
+17 19 18 11 13
+57 58 55 50 47 46 46
+30 31 29 27 25 23 16 12
+56 59 58 56 50 43
+29 29 26 24 23 22 20
+64 64 62 61 60 58 60
+62 62 60 57 57
+63 63 62 60 57 55 52 48
+19 19 18 17 15 14 9
+25 25 28 26 24 21 18 16
+41 41 39 38 37 39 41
+68 68 71 70 69 68 67 67
+68 68 65 68 65 61
+51 51 52 50 44
+92 92 89 89 86
+48 48 46 46 47
+92 92 91 88 88 88
+10 10 10 8 7 3
+50 50 48 47 45 45 43 37
+85 85 84 82 81 80 76 75
+60 60 58 54 51 48 50
+83 83 79 76 76
+62 62 61 57 53
+75 75 72 69 65 59
+96 96 93 92 90 89 83 82
+94 94 91 90 85 84 83 85
+44 44 37 34 31 31
+28 28 26 25 22 21 14 10
+71 71 69 66 61 55
+82 78 75 73 70
+60 56 54 52 51 50 51
+69 65 62 60 58 55 52 52
+23 19 16 14 11 10 6
+81 77 75 73 71 66
+10 6 8 7 5
+65 61 59 60 63
+76 72 70 68 69 68 65 65
+57 53 50 52 48
+87 83 82 79 81 78 73
+39 35 33 32 32 29 27 24
+98 94 93 92 92 89 87 90
+63 59 58 58 58
+30 26 26 23 19
+42 38 37 36 34 34 33 27
+44 40 39 35 34
+16 12 8 7 4 1 2
+93 89 85 82 81 80 77 77
+43 39 37 33 31 27
+52 48 44 42 35
+21 17 16 10 7 4 2 1
+71 67 62 61 58 57 54 57
+21 17 15 10 8 8
+54 50 47 44 39 35
+62 58 53 51 44
+66 59 56 53 52
+41 35 32 31 30 29 31
+44 37 35 34 32 31 30 30
+30 24 21 20 17 13
+35 30 27 26 20
+33 27 25 27 25
+55 48 45 42 45 47
+8 3 1 4 1 1
+82 77 74 75 71
+93 86 85 87 86 85 83 78
+80 74 72 71 71 69 68 65
+51 44 43 43 44
+73 68 65 64 62 62 59 59
+77 70 69 68 65 65 64 60
+91 85 82 82 79 72
+37 30 27 23 22 19 17
+91 85 83 80 76 75 74 76
+58 51 47 44 44
+45 39 37 35 31 28 24
+42 35 32 29 25 18
+67 61 59 54 53 52
+23 17 16 9 6 8
+39 34 29 26 24 23 21 21
+24 17 15 14 9 5
+97 92 90 87 81 79 78 71
+52 52 52 54 55 57 59 64
+83 87 88 89 93 93
+79 85 88 87 84
+41 41 43 43 41
+77 75 74 73 74 74
+12 19 19 22 24 24
+33 33 40 42 46
+92 86 82 80 74
+17 18 16 13 12 10 7 2
+63 68 71 72 70 71 72 72
+78 83 90 93 93
+27 28 28 29 31 33 35 38
+48 47 50 51 55
+53 53 51 48 45
+25 21 18 15 14 11 11 7
+28 33 36 38 41 39 43
+40 46 53 56 61
+70 69 70 75 73
+38 42 43 45 47 48 53
+35 38 37 34 33 30 28
+73 72 77 80 81
+92 88 85 82 82 81 78 76
+44 48 50 51 52 52 55 52
+59 64 64 67 71
+29 34 36 42 44 47 46
+53 52 53 60 63 70
+51 53 56 58 58 58
+83 80 76 74 71 65
+58 62 63 65 67 70
+87 87 84 77 77
+25 29 32 32 39
+68 70 73 75 75 78 79 78
+53 48 44 41 39 35
+73 72 75 72 79
+62 63 65 68 71 74 79
+35 39 46 48 50 52 53 57
+48 46 49 51 52 52 50
+50 50 51 53 56 56 56
+96 93 91 90 84
+27 23 20 13 11 6
+77 82 83 81 84
+91 91 87 84 86
+77 77 79 79 83
+18 18 19 23 24 28
+65 65 63 62 60 53
+85 87 88 87 86 85 84 80
+35 31 29 25 22 15
+6 7 4 1 2
+77 82 85 88 89 92 93 97
+35 36 35 34 31 24 18
+48 50 53 56 62 64
+75 71 70 73 72 71 68 66
+56 55 58 59 62 63 67 71
+22 22 26 27 29 31 32 32
+70 74 75 73 75 76 77 77
+29 30 32 35 33 36 37 43
+71 67 64 64 59
+95 97 96 95 95 93 91 87
+88 91 93 94 91 90
+92 88 87 83 81 80 76
+4 7 9 10 11 13 10
+19 18 21 25 27 30 30
+32 31 28 23 22 20 13
+31 35 38 41 45 48 49
+72 71 72 71 65
+72 72 70 65 67
+33 30 28 24 27
+73 70 67 64 63 61 61
+58 58 59 58 56 58
+71 77 78 81 83 86 86
+64 66 63 63 61
+47 51 51 53 54 55 55
+46 42 39 36 35 33 35 31
+84 86 85 79 79
+66 63 61 59 55 51
+67 69 72 74 75 81 88
+44 47 48 51 52 56 57 61
+94 94 96 94 89
+46 46 46 43 37
+73 72 74 77 79 82 84 89
+61 56 50 49 48 47 47
+31 27 25 24 22 23 22 22
+48 43 41 39 32
+40 33 30 28 25 25 21
+44 50 54 57 58 61 67
+49 51 45 44 41 44
+26 26 22 19 16 14 13
+46 52 52 54 56 53
+59 61 58 56 56 53 51 45
+27 28 33 36 39 43
+73 71 72 74 76 81 84 88
+48 43 42 40 40 38
+17 23 25 25 27 32
+96 91 88 90 88 84
+20 25 26 31 34
+19 16 16 18 21 23 26 32
+65 69 72 74 75 79
+57 53 53 51 48 49
+29 29 28 28 27 26 24 25
+91 92 89 86 82 76
+22 21 22 24 25 26 27
+91 92 94 96 97 97
+43 47 50 55 61
+22 15 13 10 6 4 5
+37 36 33 30 28 24 21
+19 19 16 14 11 11 7
+45 45 48 49 50 48 48
+28 28 27 25 25
+60 62 60 59 56 52 49 49
+14 14 17 15 16 17 22
+14 17 14 11 10 6
+9 9 11 10 14
+27 23 21 18 15 15
+54 56 63 65 67 70 70
+15 15 17 18 20 23 27
+37 36 37 41 44 45
+55 62 64 66 69 70 72 73
+72 67 65 58 56 50
+5 11 13 16 20 19
+66 73 75 75 76 79 80 82
+18 21 25 27 28
+55 55 59 62 63 62
+48 48 42 41 39 32
+67 69 66 64 63 56 54
+42 42 43 46 45 44
+43 47 49 53 54 55 57 63
+14 13 7 5 1
+59 56 57 55 56 56
+97 97 98 99 97
+33 33 31 28 26 23 19
+25 25 27 29 30
+85 81 84 82 84
+81 80 81 84 87 89 91 90
+77 78 79 82 82 84 87 91
+34 30 29 27 25 22 24
+24 24 25 26 27 30 37
+77 81 85 87 84
+28 25 26 28 26 24
+96 90 86 85 83 82 80
+9 8 5 5 5
+55 52 53 53 54 54
+73 72 73 74 81 81
+96 93 95 93 89
+48 47 46 43 37 37
+53 57 59 60 62 60 62 61
+68 70 68 66 62 61 59 61
+82 81 81 83 87
+17 17 14 10 9 2
+73 78 80 84 86
+20 13 14 11 11
+75 79 80 77 80 84
+94 91 92 95 97 97
+89 89 88 85 84 85 82 82
+79 78 80 77 79 83
+7 8 9 13 14 17 16
+70 73 74 71 69 68
+69 63 60 59 56 58 55 57
+35 31 30 23 20 17 13
+45 40 36 35 35
+32 28 26 21 19 17 17
+56 53 50 44 43 46
+60 59 58 56 52
+74 74 80 82 83 86
+84 84 87 90 93 95 95
+25 30 33 35 36 39 41 48
+12 10 13 13 14 16 19
+72 66 64 62 59 55
+90 91 89 91 92 93 97
+71 70 70 68 64
+36 32 25 24 27
+36 36 34 30 29 26 22
+26 19 18 17 14 11
+28 21 19 17 17
+20 20 18 16 14 13 16
+81 78 79 81 85 91
+38 34 31 28 27 26 25 20
+71 71 64 61 59 57
+20 20 22 20 19
+57 55 52 55 53 52
+71 72 70 71 73 76 78 78
+1 3 6 8 9 13 13
+19 18 16 12 12
+48 50 53 53 58
+90 91 88 84 83 82 80 78
+45 49 51 52 53 55 54
+15 13 10 10 9 7
+29 33 34 36 37 38 39 39
+15 21 24 25 26 30 30
+49 48 46 44 41 40 38 36
+82 85 88 91 93 95 96 97
+70 73 75 78 81 84 87 88
+71 72 73 75 78 80
+65 62 61 60 58 57 54 53
+89 91 94 95 98
+83 85 86 87 89 90
+13 11 10 9 6
+69 70 71 73 76
+86 87 90 91 93 94
+81 78 75 72 70
+75 78 79 82 84
+88 85 84 81 79 76
+65 62 60 59 56 55 52 51
+90 88 87 85 82
+36 35 33 30 28 25 23
+70 69 66 63 62
+4 5 7 8 11
+44 43 42 41 39
+6 7 8 11 14 16
+27 28 30 31 32 33
+84 82 81 80 78 77 74
+74 71 70 67 65 62 59 58
+53 56 59 61 63 65
+85 86 87 89 92 93 95 96
+49 50 53 56 58 59 61 63
+72 69 66 65 63
+57 55 54 51 50 48
+55 57 58 61 63 64 66 68
+19 21 24 26 27
+60 59 58 55 53 50 48 47
+77 76 74 71 70 68 66 63
+3 4 7 10 11 14 15 17
+58 57 54 52 49
+77 75 74 72 70
+80 77 74 72 70 68 67
+33 30 27 24 21 20 17
+44 45 46 48 50 52 54 57
+72 73 76 78 81 82 85
+88 91 92 93 94 97 98 99
+23 20 19 18 15 12 11
+39 40 43 44 45 48
+84 87 88 91 94 95
+38 35 32 30 27 26 23 22
+34 35 36 38 41 42 43
+61 63 66 68 69
+51 54 56 57 59 60
+63 66 67 70 71 74 77
+17 16 13 12 9 8
+63 61 59 57 55 52 50
+61 64 65 67 70 72 74 76
+74 72 69 68 65 64
+12 15 16 18 20
+97 95 94 91 88
+67 68 69 70 73 76 78
+51 54 57 58 61 63 65
+45 44 41 38 36 35 32
+70 73 76 78 79 81 82
+18 15 14 13 11 9 6
+44 41 40 39 36 35
+33 34 37 38 40
+30 29 26 24 21 19
+29 30 31 32 33 36 38
+48 46 45 43 41 40
+83 84 87 88 90
+48 49 51 52 53 54 57
+68 71 73 74 76 78 81 83
+79 81 84 86 87 90
+63 64 67 68 71 73
+47 49 50 51 52 53 54 56
+95 93 90 89 88 85 83 81
+46 44 42 41 40 38 35 34
+87 86 84 81 78 75 73
+84 87 90 91 92 94
+87 86 83 81 80
+11 9 6 5 3 2
+10 8 5 4 3
+49 46 44 43 40 38
+34 37 38 39 41 43 44 46
+47 50 52 54 57
+87 86 84 81 78 75
+81 84 85 87 88 91 92 94
+32 35 38 39 42 45 48 50
+74 73 71 70 69 68
+41 40 37 36 34 32 29 27
+13 15 16 19 21 23
+17 16 14 12 10 7 4
+66 69 72 73 74 75 77
+13 11 8 7 6 3 1
+13 16 17 20 21 23
+32 30 28 25 23 21
+75 73 70 67 64
+22 23 26 27 30
+67 70 72 74 75 76 79
+52 51 50 49 46 44 41 38
+64 62 59 57 55 54 52
+34 37 38 39 40 42 45
+14 11 10 7 5
+1 4 6 9 11
+75 72 70 69 67 65 64
+22 19 16 15 14
+86 85 84 83 82 79 77
+88 85 84 81 78 77 76 73
+15 14 12 10 8 7 4
+53 54 57 60 63 64 66
+72 70 67 66 63 61
+21 24 27 29 30 32 34
+21 19 18 17 15 14
+16 13 11 9 6
+49 52 53 56 58 61 64 67
+57 56 54 51 48 46 43 41
+90 91 94 95 96 97 98
+59 62 64 65 67
+33 30 27 24 21 18
+25 23 22 20 19 17
+3 4 5 7 9 11
+57 54 52 50 47 44 43 41
+86 88 91 93 94
+54 55 58 59 62 63
+91 94 95 96 99
+86 89 92 94 96
+69 70 73 74 76 77
+3 6 7 8 10 13
+65 63 60 57 56 55 53
+13 15 18 20 22
+14 13 11 10 7 6 3
+5 6 9 11 14 15
+59 62 63 65 66
+62 65 67 69 70 71 74 75
+70 69 67 64 61 59
+70 68 66 64 61 58 55 52
+3 6 7 8 9
+11 13 15 16 18 20 23
+95 93 91 89 86 83 81 79
+25 23 22 21 18 17
+63 64 67 70 71 73
+94 93 90 88 86 83
+86 84 83 80 78
+17 16 13 11 8 5 2 1
+78 79 82 84 86 88 91
+69 68 67 65 63
+77 78 79 81 83 85 87 90
+77 75 72 71 69 66
+76 77 80 81 83 85
+82 81 79 76 74 72
+63 61 58 56 53 52
+65 66 69 71 74 77 78
+37 40 41 44 47
+90 89 87 84 82
+69 72 73 76 78 81
+10 11 13 14 16 19 22
+52 51 48 47 44
+75 76 79 81 84
+82 80 77 76 75 74
+78 77 75 74 72 70 68
+12 13 15 16 17 20 22 25
+12 9 7 5 3 2
+44 42 40 37 36
+65 67 69 70 73 75 78
+92 91 89 86 83 82
+98 96 93 92 90 88
+77 74 72 71 70 69 68
+74 73 71 69 68
+85 88 91 93 95
+12 10 9 6 5 3 1
+88 87 84 82 81 80
+5 6 9 10 11 14
+20 19 17 16 14 12
+50 47 45 43 40 39
+57 54 52 49 48 46
+79 80 81 82 85
+93 90 89 88 86
+6 9 10 11 12 14 17 19
+4 7 9 10 12
+45 44 42 40 39
+1 3 6 7 9 10 13
+37 36 33 31 28 26 25 22
+25 24 23 21 19
+78 81 84 86 89
+23 21 19 16 13 10 9 7
+82 81 78 75 74 72 71 69
+94 93 90 87 84 81
+90 89 87 84 82 81 78 76
+86 83 82 80 79 76 75 72
+65 62 59 57 55 53
+41 44 47 50 53
+99 96 93 91 88 85 83 81
+94 91 90 87 85 82 81 79
+50 47 45 44 42 40 39
+79 82 84 85 86 89 91
+28 26 24 21 20 19
+22 23 25 26 27 29 30
+42 45 48 49 50 51
+90 88 87 86 84 83
+14 15 16 18 21 24
+91 89 88 87 84 83
+7 10 11 14 15 16 17
+60 58 56 55 52 51 48 47
+88 91 93 94 96
+91 88 85 83 81 78 76 74
+54 51 50 48 45 42 41 40
+84 86 89 90 92 94 96
+16 13 12 10 7
+47 49 51 53 54 55
+43 45 47 49 50 53
+97 94 92 89 86 83 81
+85 88 89 90 92 93 94
+51 53 55 58 60 61 63 65
+61 63 64 66 69 71 73
+60 58 57 56 54
+56 54 53 52 50
+89 87 84 81 78 76 73 70
+15 16 17 20 21
+34 36 37 38 41 44
+41 40 39 36 33 32 30 27
+91 92 94 96 97 98 99
+12 14 17 20 21
+40 43 44 47 50 52 54 55
+49 52 53 54 56 59 61
+91 89 86 84 82 79 78 75
+43 45 47 50 51 54 57
+51 48 45 42 41
+34 33 32 30 29
+55 57 58 60 61 64
+62 59 58 55 54
+61 63 66 69 72 74
+55 53 52 49 48 47
+20 22 25 27 30 32 34 35
+71 73 76 78 79 81
+35 36 38 39 41 44 47 48
+60 63 66 69 71 73 76 79
+90 89 86 84 82 80
+71 73 76 77 80 82 84 87
+81 82 83 86 87 89
+42 40 38 37 34
+97 96 93 91 89 86
+11 12 15 16 18
+1 2 5 8 10 12
+8 7 6 3 2 1
+71 70 67 65 64
+91 89 88 85 82 79
+69 67 65 63 61 60 58
+53 52 50 49 46 44 42 41
+21 19 18 17 14 13 11
+93 92 91 90 87 84
+34 31 29 27 26 24 23 20
+86 84 82 81 78 77
+71 73 74 75 76 79 81 82
+28 31 32 33 34 36 39
+53 56 58 60 62 65 68 69
+50 51 54 55 58
+59 61 64 65 66
+81 83 86 87 89
+65 64 62 61 60
+75 74 72 71 68 67 64 63
+29 31 34 37 39 41 43 46
+51 48 46 43 42 39 36
+34 35 38 39 42 45 48
+34 32 31 29 27 24 22 20
+28 27 26 24 21 20 17 15
+27 30 31 33 35 37 39
+47 44 41 39 36 35
+60 62 63 65 67 68 70 71
+28 31 32 34 37
+38 41 42 43 45
+65 64 61 60 59
+78 81 84 86 87 90 91 93
+45 42 41 38 37 36
+72 75 76 79 81 82 84 86
+81 78 77 74 73 72 69 66
+70 71 74 76 77 80 82 83
+17 15 12 9 8 7 6
+42 44 45 48 51 53 55
+60 58 57 55 54
+36 33 32 31 29
+49 50 53 54 56 58 60
+71 72 75 76 78 80 82 85
+38 35 32 29 26
+30 33 36 37 40
+65 62 61 58 56 54 52
+28 31 33 36 38 41 43 45
+85 83 81 80 79 77 74 71
+72 69 68 66 64 61
+48 50 52 53 54 56 58
+78 80 81 83 86 88
+57 55 52 50 49 46 45 42
+85 88 90 91 93 94
+91 89 87 86 83 82 80 77
+77 78 81 84 87 88 90 93
+67 68 69 71 74 77 78
+65 64 61 59 58 57
+24 26 29 32 35 38
+64 67 68 69 72 74 76
+82 80 77 75 73 70
+12 15 16 19 21 23 26 28
+90 88 85 84 81 80 78 75
+18 20 22 23 25 28
+79 78 77 75 73
+69 68 67 64 61
+58 60 62 64 66
+35 36 38 41 44 45
+81 84 86 87 90 91 93 96
+78 75 72 70 67 64 61 60
+5 6 9 11 13 15 17
+51 53 54 55 57 60 61
+41 38 36 34 31 29 28
+47 50 52 53 56 59 60
+27 25 22 20 18 16 13 10
+46 48 50 51 52
+93 92 90 89 88
+63 62 60 57 54 53 50 48
+82 84 86 87 90 91
+26 29 30 31 34 35 38 40
+79 77 76 74 72 70
+25 27 28 30 31
+84 85 86 88 90 92
+26 29 30 31 33 36 38
+59 62 65 66 69 70 71
+4 5 7 9 12
+10 12 14 15 16 19 22
+44 47 50 53 56 59 62 63
+85 87 89 90 91 93
+31 34 37 39 42 45 46
+32 33 34 35 36 37 39 40
+78 77 76 74 72
+37 40 42 44 47 49 52
+11 9 8 6 4 3 2
+24 22 19 18 16 13
+36 34 32 29 28 25 23 21
+87 84 81 79 76 75 73
+83 85 87 88 91 94 97 99
+36 33 32 30 29 27 24
+86 85 83 82 79 77 74
+59 56 54 52 49 48 47
+78 79 82 83 85 87 88
+36 39 42 45 47 50
+87 89 90 93 94 96 99
+93 94 95 97 98
+20 17 15 14 11 9 6 3
+73 70 67 66 64
+84 85 87 90 92 94 97
+49 46 45 43 40
+4 7 8 9 12
+28 26 24 21 18 16
+15 16 19 20 23
+14 15 16 17 20 22
+45 46 49 50 53 54 56 58
+58 57 55 54 51 49
+52 55 58 61 62 65 67 70
+28 30 31 34 35 38
+40 38 35 32 30 29 26 24
+91 88 85 84 82 79 77
+35 34 32 29 27 26 25
+60 57 55 52 51
+85 88 90 91 94 97
+13 16 18 19 22 24 25
+41 42 43 44 45 48 49
+32 34 36 38 41 42
+13 14 17 20 22 25
+51 48 46 44 43
+60 63 65 66 68 71 72 74
+17 20 22 25 27 30
+75 77 80 82 85 87
+73 74 77 80 82 85
+78 77 74 72 69 67
+21 19 17 15 13 11
+43 46 47 50 52
+79 80 82 85 86
+74 76 78 80 82 84 87 90
+92 90 88 86 84 82 79
+12 10 9 7 6 3
+11 9 8 7 6
+29 28 27 24 22 20
+75 76 78 80 82
+66 64 62 60 57 56 55
+58 56 54 53 52 50 47 45
+13 14 17 19 21 24 25 26
+14 17 19 22 25 27 30 32
+90 89 86 84 83 81 80
+52 49 46 45 42 41
+39 40 41 43 46
+53 56 58 61 62
+83 81 79 77 75 72 70
+59 60 62 65 66
+34 35 36 39 40 41 43 45
+80 81 82 83 86 89 90 92
+17 16 14 11 10 8 5
+20 18 16 14 12 11 8 5
+54 51 50 47 45 42 40 39
+96 93 92 90 89 87 85
+85 87 90 91 93 95 96 99
+49 50 53 55 57
+16 19 21 24 25
+64 65 68 69 71 73
+23 26 29 32 34 37 38 41
+79 82 85 87 90
+88 89 92 94 95 98
+22 20 19 17 14 11
+74 72 71 69 66 64 61
+29 26 25 24 22 19
+56 54 53 52 49 48 45
+28 31 34 36 37 38 40
+23 22 21 18 16 15 12
+43 44 47 50 52 53 55 58
+92 91 88 85 82 80
+41 43 44 47 48 51 53
+18 16 13 11 9 7 6 4
+84 85 88 90 91 92 93 96
+57 58 61 62 64 67 70 73
+57 58 59 62 63
+26 24 23 21 18 17
+95 93 92 91 88 85 82
+63 65 67 68 71 72 75
+85 86 89 92 95 97 99
+29 27 26 25 22 21 18
+40 42 45 46 47 49
+43 45 47 49 50 53 55
+94 92 89 88 86 83 82 80
+28 27 26 23 21
+85 88 90 92 94 96 97
+58 56 54 52 49 46 45 42
+64 67 69 72 74 75 76 78
+8 10 11 13 16 19 20
+97 96 94 92 90
+59 61 62 64 66 69 71
+74 73 70 68 66
+20 23 25 27 28 30 32
+34 31 30 29 27 25 22 19
+44 42 40 39 38 36 34
+93 90 88 85 82 79 76 73
+69 68 66 64 63 60 58 56
+13 12 10 8 7 6 5 3
+68 71 74 75 76
+40 39 36 34 31 28 27 25
+48 45 44 42 39 38 37
+68 70 72 75 78 80 83
+84 87 88 91 93 96 99
+45 44 41 39 37 35
+16 14 11 9 8 6 3 2
+77 80 81 83 86 87
+18 21 23 26 27 28 30 31
+12 15 16 19 21 24
+27 29 31 32 33 35
+77 76 74 73 70 67 64 63
+28 30 33 35 36 37 38
+49 48 46 43 40 37 34 32
+75 77 80 82 83 85 88 91
+20 17 14 13 12 10 9 6
+63 60 57 55 54
+18 21 24 25 26
+63 65 68 70 73
+88 87 85 84 83 80
+61 64 67 68 70
+21 22 24 27 29 32 34
+52 51 49 48 46 43
+82 81 78 76 74 73 71
+24 21 20 19 17
+66 63 62 61 58 57 54 51
+69 66 64 62 61 59 57 56
+14 17 19 20 21 24
+3 4 5 8 9 11 13 15
+81 79 78 75 74 73
+30 31 33 34 36 37 40
+66 63 62 60 58 56 55 52
+15 16 18 20 21
+77 79 81 82 83 84 87
+7 8 9 11 12 15 17
+19 16 14 12 10 8 7 6
+42 45 47 49 52
+42 39 36 33 30 28 26
+32 30 28 25 22 21 20
+73 70 69 67 65 64
+10 12 13 14 15 18
+72 69 66 64 63
+75 76 79 81 82 85 87
+63 66 69 71 74
+17 14 13 10 8 7 5 2
+52 55 57 58 60 62
+41 42 45 48 50 51
+61 60 58 56 55 54 51
+56 57 59 60 63 64 66
+79 78 77 76 75 73 70 68
+93 91 89 87 85 84
+39 38 37 36 33 31 29 28
+32 35 38 39 42 44 45
+12 15 18 19 22 25
+88 90 91 92 95 96 98
+45 43 41 38 35 33
+22 20 17 16 14
+52 50 49 47 45 42
+98 95 94 93 91
+6 7 9 10 11 12 15 18
+55 58 61 62 64 66 68
+67 69 72 75 76 78
+96 93 90 87 84
+58 60 63 66 69
+51 52 53 56 57 58 59
+24 26 29 32 35 36
+35 32 29 27 25 22 19 16
+34 33 31 28 27 26
+45 44 41 38 37 34
+32 31 30 29 27 24 23
+59 60 63 65 66 69
+61 59 58 55 53 51 48
+80 81 84 87 90 92
+67 64 63 61 58 56
+58 61 64 65 67 68 69
+52 55 56 58 59 60
+76 75 72 69 67 64 62
+78 81 82 83 85 88
+48 46 44 42 41 39 36 33
+65 64 63 60 59 57 54 51
+56 58 59 60 61 63
+64 66 69 72 74 77 79 81
+36 34 32 30 28 26 23
+82 80 79 77 76 74 72
+22 24 27 28 31
+67 66 63 61 59 58 55
+55 57 59 62 63 64
+4 5 7 9 10 12 14
+57 58 59 62 64 65 67 68
+21 19 16 14 11 10 8 5
+33 31 29 26 24 22 19
+66 63 60 59 57
+54 51 50 47 46 44 43
+97 94 93 92 89 86
+16 19 22 23 25 27
+46 44 43 41 40 39
+74 72 70 68 66 65 63 60
+55 54 51 50 48 45
+17 18 21 22 23 26 28 30
+61 62 65 66 67
+77 75 73 70 67 64 61 60
+48 50 53 56 59 61 64 65
+75 78 79 81 83 86
+52 54 56 59 61 63 66 68
+45 42 40 39 36 35 32 31
+77 75 73 71 70
+60 57 55 52 51 50 48 47
+70 73 75 77 79 82 84 85
+75 77 79 81 84 86 88
+49 52 53 55 57 60
+80 81 83 84 85 87 90 93
+16 17 19 21 22 24
+61 58 55 53 51 48 47 46
+70 68 65 63 61 58 55 54
+3 6 8 10 11
+89 87 86 84 82 81 79
+27 29 32 33 36 38 41 43
+47 49 50 51 52 55 56
+28 29 31 32 35 38
+90 89 88 87 85 84
+38 37 34 33 32 29 26 23
+67 66 65 62 59
+66 63 61 60 59 58 57
+21 20 19 17 15 12 9 8
+18 21 23 24 27
+8 10 13 15 16
+29 28 25 23 20
+63 61 58 57 55 54
+53 54 55 58 60 63 64
+13 12 10 7 6 4
+35 33 32 30 27 24 21 18
+69 67 64 63 61 60 58 55
2024/input/02-p2.txt
@@ -0,0 +1,1 @@
+02-p1.txt
\ No newline at end of file
2024/input/03-e1.txt
@@ -0,0 +1,1 @@
+xmul(2,4)&mul[3,7]!^don't()_mul(5,5)+mul(32,64](mul(11,8)undo()?mul(8,5))
2024/input/03-e2.txt
@@ -0,0 +1,1 @@
+03-e1.txt
\ No newline at end of file
2024/input/03-e3.txt
@@ -0,0 +1,12 @@
+mul(498,303);when()}!(%mul(846,233)-,what()($where()how():}mul(334,117)]~>?,<,%^,mul(886,213)/:from()?-how()~}mul(343,197) mul(33,616)~%*~why()^*-from()mul(757,847){{who()why()#mul(927,553)>-?&!-@[mul(589,387)what():[?mul(865,934)#/ (why()+from()when();mul(804,792)-where(144,652)(mul(620,348);];]$mul(584,827):who()^%from()mul(381,633)why()@ when()where()?<;@#do()'< mul(643,715)@@#/>&-@?when(295,120)mul(465,37))]#mul(742,669)?mul(519,650)mul(546,337)@what(),{'^mul(769,202)^mul(808,254)/#why()@~mul(71,204)from();mul(150,335)[mul(302,220)>[$*~
+
+don't()mul(385,231)what()?*mul(852,324)#$}<{mul(838,178)<;+}@/*mul(579,121)select()why()*{{:mul(810,214)don't(){what()/)who()*%mul(273,606)&]from()@:why()@mul(788,896) }& don't()select()mul(568,713)$$'<who();[[+what()mul(404,402)+<what()why()mul(931,692)*;when()^where()who()what():<mul(815,388)where(),%~select()/select()what()!mul(492,448)+$)mul(962,335)who()}[<)where()>from()@+mul(390,36):@who();&from()mul(984,787)/mul(209,744)why()%[:what()mul(929,15)+how() who()@what()$!mul(751,670)$]from()mul(821,742)why()}:/why()>mul(445,950)>:mul(174,953)-where()how()+:mul(529,661)+{+@@why()##mul(513,442)how(827,318)}~}where()#@-:mul(941,152)~[,+{&@why()+mul(468,787)how()!$from()^^>%~from()mul(497,717)mul(930,672)mul(313,480)^%where()~-))#^select()mul(407,85)<#who()mul(776,808)~select()$?@,<mul(373,713)?')who()$?[>@mul(420,163)mul(666,491)$:+
+
+do()mul(823,835){who()?,mul(728,808))[who()/^<;select()~:mul(38,577)+>mul(985,224):/what()where()[%*what()mul(31,270)<><from()@$;mul(233,598)why()/&}mul(326,395)from(),-;-*:
+
+don't() &[who()[mul(730,832)%who()who()@how()(,mul(628,729)mul(332,18){-mul(908,439))<}mul(185,715)what()~!>when()[?!!mul(895,903)%who()select()>/when()!mul(367,623)'#+mul(362,189)&from()'#$':$?{mul(571,203)what()mul(615,719)what(),what() )^mul(663,163)$@;&'select()mul(93,614)~(from()mul(490,261)#mul(530,933)}[from()];don't()$%what()%~'&'what()mul(134,307)}from()%;&why(65,575)?/mul(657,957)where()mul(969,590))how()when()how(){mul(534,951)@},mul(141,80<'mul(573,576)why()mul(952,460from()+<?$;where(),mul(810,772)+:${?mul(334,140)~<)select()%>#;;mul(36,336)&don't()&}how()why()select()^mul(267:+(+#'~<mul(894,946)^))mul(633,59)when()mul(335,809)$mul(680[>mul(654,481)--mul(17,334)'!*why())how();-$mul(886,695)mul(954,476)where()!mul(73,181)?@mul(326,125)!@{)*mul(945,965)what()-select()~^who(884,691)how(846,544)mul(346,328)!<^~+-when(871,168):-mul(653,891why()when()how()why()mul(603,626)~+when()where(639,311),#mul(527,536)how()]%{/!-
+
+do()'<when()mul(914,232){:~]&why(937,467)mul(116,640)where()mul(391,784~mul(44,854),+<where();/;@^when()mul(919,687)#))mul(70,882)<how()who()+what()(*/:mul(96,388){^-$why(625,585)-mul(240,319);$:where()how()<$[]mul(524,524)]&*&%&mul(124,571)<,}&{#where()@mul(727,591)how()}&#[:?:mul(481,435),when()who()$[:mul(245,145)where() [/-who()what()how()^mul(943,836)%!'when()mul(703,555)$)[mul(227why()mul(923,88)/}& select()mul(908,970)'+how()<who(628,728)/select()%
+
+don't()mul&<{/who()mul(199,227)[),how()[~select()mul(540,629)select()mul(167,775)&;}mul(275,320)^mul(911,818)from()when()+-,*,>@mul(368,63)
+
2024/input/03-p1.txt
@@ -0,0 +1,6 @@
+mul(498,303);when()}!(%mul(846,233)-,what()($where()how():}mul(334,117)]~>?,<,%^,mul(886,213)/:from()?-how()~}mul(343,197) mul(33,616)~%*~why()^*-from()mul(757,847){{who()why()#mul(927,553)>-?&!-@[mul(589,387)what():[?mul(865,934)#/ (why()+from()when();mul(804,792)-where(144,652)(mul(620,348);];]$mul(584,827):who()^%from()mul(381,633)why()@ when()where()?<;@#do()'< mul(643,715)@@#/>&-@?when(295,120)mul(465,37))]#mul(742,669)?mul(519,650)mul(546,337)@what(),{'^mul(769,202)^mul(808,254)/#why()@~mul(71,204)from();mul(150,335)[mul(302,220)>[$*~don't()mul(385,231)what()?*mul(852,324)#$}<{mul(838,178)<;+}@/*mul(579,121)select()why()*{{:mul(810,214)don't(){what()/)who()*%mul(273,606)&]from()@:why()@mul(788,896) }& don't()select()mul(568,713)$$'<who();[[+what()mul(404,402)+<what()why()mul(931,692)*;when()^where()who()what():<mul(815,388)where(),%~select()/select()what()!mul(492,448)+$)mul(962,335)who()}[<)where()>from()@+mul(390,36):@who();&from()mul(984,787)/mul(209,744)why()%[:what()mul(929,15)+how() who()@what()$!mul(751,670)$]from()mul(821,742)why()}:/why()>mul(445,950)>:mul(174,953)-where()how()+:mul(529,661)+{+@@why()##mul(513,442)how(827,318)}~}where()#@-:mul(941,152)~[,+{&@why()+mul(468,787)how()!$from()^^>%~from()mul(497,717)mul(930,672)mul(313,480)^%where()~-))#^select()mul(407,85)<#who()mul(776,808)~select()$?@,<mul(373,713)?')who()$?[>@mul(420,163)mul(666,491)$:+do()mul(823,835){who()?,mul(728,808))[who()/^<;select()~:mul(38,577)+>mul(985,224):/what()where()[%*what()mul(31,270)<><from()@$;mul(233,598)why()/&}mul(326,395)from(),-;-*:don't() &[who()[mul(730,832)%who()who()@how()(,mul(628,729)mul(332,18){-mul(908,439))<}mul(185,715)what()~!>when()[?!!mul(895,903)%who()select()>/when()!mul(367,623)'#+mul(362,189)&from()'#$':$?{mul(571,203)what()mul(615,719)what(),what() )^mul(663,163)$@;&'select()mul(93,614)~(from()mul(490,261)#mul(530,933)}[from()];don't()$%what()%~'&'what()mul(134,307)}from()%;&why(65,575)?/mul(657,957)where()mul(969,590))how()when()how(){mul(534,951)@},mul(141,80<'mul(573,576)why()mul(952,460from()+<?$;where(),mul(810,772)+:${?mul(334,140)~<)select()%>#;;mul(36,336)&don't()&}how()why()select()^mul(267:+(+#'~<mul(894,946)^))mul(633,59)when()mul(335,809)$mul(680[>mul(654,481)--mul(17,334)'!*why())how();-$mul(886,695)mul(954,476)where()!mul(73,181)?@mul(326,125)!@{)*mul(945,965)what()-select()~^who(884,691)how(846,544)mul(346,328)!<^~+-when(871,168):-mul(653,891why()when()how()why()mul(603,626)~+when()where(639,311),#mul(527,536)how()]%{/!-do()'<when()mul(914,232){:~]&why(937,467)mul(116,640)where()mul(391,784~mul(44,854),+<where();/;@^when()mul(919,687)#))mul(70,882)<how()who()+what()(*/:mul(96,388){^-$why(625,585)-mul(240,319);$:where()how()<$[]mul(524,524)]&*&%&mul(124,571)<,}&{#where()@mul(727,591)how()}&#[:?:mul(481,435),when()who()$[:mul(245,145)where() [/-who()what()how()^mul(943,836)%!'when()mul(703,555)$)[mul(227why()mul(923,88)/}& select()mul(908,970)'+how()<who(628,728)/select()%don't()mul&<{/who()mul(199,227)[),how()[~select()mul(540,629)select()mul(167,775)&;}mul(275,320)^mul(911,818)from()when()+-,*,>@mul(368,63)
+how()@]]from()select(976,708)?;what())mul(649,499)}&?how(792,889)~who()why(){do()mul(569,139)^[mul(701,8)why()!#[>'who()from()%mul(288,867)mul(706&*~>?select()@mul(819,789)(@%mul(180,466)from()[why()}&}mul(766,269)</how(){/mul(883,183)#-'>}@mul(827,216);???!mul(670,899)!-[%(<@^do()*}mul(475*mul(462,887)'@[])[?&mul(754,83)%]%(<who()mul(712,726)(/~mul(591,638)when(737,732)] mul(205,289){[{why():{where() ~where(736,522)mul(611,153)[)where()[{+how()mul(256^-*(when()~^mul(996,964){;/*-who()?mul(359,517)from();(when()don't()~]]!mul(716,400){{^:when();*mul(359,667)<]mul(361,744),mul(83,482){)how()mul(612,903)?select()@mul(273,252)#^/ @?+mul(656,57)mul(20,332)-who()from()from()([-where()#mul(701,637)from(19,111)^,when()where(913,373)what()how()why()select()mul(648,774)mul(313,368)@^!<!from()?*select()-mul(576,9)}where()mul(745,88!/[):mul(659,543)]:who()~[+select()mul(669,630what()]~*why()mul(15,604)^*? %#%,-don't()select()/#mul(959,4)+~,%}how()#select(289,441)why();mul(787,874)why()select()]]%~mul(133,880)?mul(898,168)~select()(mul(843,146)(%where()&<select()%$who()mul(870,481);*when()^mul>~from()}when()?mul(379,965)@why()mul(63,665)+[-{mul(543,711);>?/)(&mul(535,403)?')(mul(603,306)* when())what()-*mul(22,75)#who()<:{where(780,74)]mulwho()'#from()~?how() ,{<mul(715,646)who()}:/:%who()mul(56,345)-select()!^where()&?mul(281,647)(&select()mul(690,172))?who()]*mul(512,128)'&,[why()mul(509,250)#;how() how()<<>{+mul(576,621)why()why();mul^;+^'mul(977,718)}why()>'[~ mul(179,326)#[mul(735,639)where() when()<mul(971,82)^~(;select()why()how()what()where()when()don't()^[]]$mul(285,677);where(523,328)when()#-!,(<mul(891,918)- $mul(746,775)] ?@}select()select(103,294)@mul(651,55)[from()@+why()$#mul(425$}#[when():+@[when()@do()select() +;%how()+~'mul(653,737)-[)mul(450,954)don't()what()mul(82,395)from()who(){{ why()who()from()mul(757,278)from()<[{&^mul(812,129)why()(#select()when()what()what()mul(153,205)+where()$mul(844,143)'where()don't()-what()where()@,'>/from()$mul(779,50)don't()<mul(819,958)]select()@mul(138,940from()from()do(),@'(#from()]^mul(382,411)mul(262,685)from()>'<:)'>:}mul(232,847){where()mul(63,282)>mul(737,540)why()+!>don't()when() ']what()#,mul(778,85)how()[mul(809,798)![ $where()%<who()how()/mul(551,122)what()mul(346,544)why()#mul(424,338)!$don't()how()how():{>>' }]mul(587,975)-?# }-]mul(800,437)$mul{[mul(603,103)>-/#why()mul(285,453)who();+{@ when()]don't()+[what(730,765) mul(399,137)%]select()#<[^>mul(146,316)~][from() mul(687,295)mul(347,287)when()>!from()&mul);<<from()mul(400,956)#;why()}<who();mul(743,166)}>when()+;{^mul(267,700){~,!]?<mul(888,527)$~> how()mul(779,914)select()&>^/%?<why()mul(337,111)where()how()<-mul(457,594)*/how()mul(328,728)>}>-$*^mul(387,58)^who()&mul(157,49)#?/mul(35,606)when()')from()?%mul(451,146)'(where()mul(977,491)mul(916,789))&#how()how()>don't()^*mul(437,605)[how() mul(626,940)^*%/mul(884,929)select()mul(84,192)mul(111,274)what()mul(95where()![[(who()[mul(593,249)]]@#when()why()-/mul(230,390)#~],(:mul(840,931)mul(421,658)from(653,680)>&mul(34,90)>when()&}:why()mul(956,881)!when())$^]@who()select()where()mul(94,737)from()who()mul(816,357)')^<when(97,556)}/)select(167,991)mul(888,358);what()]{-when()%>^mul(454,208)$&mul(136,496){$what()mul(897,490)>'mul(376,325){why(),%]#<mul(219,353)(mul(659,921)who(){what())mul(224,414)
+&&^(?when()^why() mul(91,818)what()what()*do()-mul(217,631)mul(28,181)'!from()mul(949,185)/,&what(964,586)what()who()mul(353,335(what() where()!select():mul(736,902);who()who()mul(877,853)&<%from()^($>what()mul(953,618)+from()mul(378,46)mul(138,440)who()#where() ><mul(554~what()~how()!select()%mul(387,205)&mul(285,757)~<{<)>(from()#mul(708,59)&why()mul(830,439)mul(468,479)why()<$,~},mul(279,437)<why()^}>%([mul(276,252)-#$mul(596,842)from()mul(873,817)*{{from()#(%^mul(765,528)!<< what())^mul$how()<select()why()mul(592,403)mul(647,574)-$how()??<,,mul(423,736)< when()?(mul(666,851) ]mul(410,586):mul(519,320),how())(?@mul(531,672)>}/what() +:mul(411,270,,({(]!mul(627,262)/how()**how()$''+mul(791,814);-;;:mul(990,764)}where())))&((!mul(5,111)~how()from()&,how()mul(492,492)from()[$,+) @(mul(999,416)$&who(959,257)&mul(722,457)@how()) ^>;)@{mul(221,679)?who()$+{-^*{mul(241,314)how()][!mul(940,32){$(~@'+>mul(453,515*;mul(215,275)~/[,why(21,55)(who()',>mul(567,83)mul(330,717)>#!mul(611,308)+&select()(})/mul(744what(424,184)?mul(377,16)):(<[@mul(757,897)#^mul(404,155)%don't()}what(573,178)what()+mul(204,894)%mul(34,307))mul(794,115) +)from()}mul(515,433)^mul(529,684)from()why()where()?mul(956,914)(])?[mul(645,179)+mul(400,263)from()select()&^*mul(422,526){~;what()/)#don't()*%!/(mul(326,211)*%@select()from()[~&mul(456{why()from(138,423)-^(&!?mul(995,210):;when()why()how()!mul(394,185)how()!~who() ^how()'where():mul(348,18)mul(194who()&~*~&{/%mul(505,325) *%mul(459,604)>)) ~ -where()~{mul(579,481)mul(135,794)-*mul(453,355)~/](![from()mul(443,346)mul*[,~%why()-{do()/when(43,713)mul(136,26){^when()why()'mul(108,341)[@?!',+@who()mul(195]{&@{?:how()what()select()don't():]]#mul;what()&?:mul(541,941),&;-what(75,560)who()what()?how()mul(314,260)!)mul(250,620)>#mul(612,209),#?;mul(661,597)/mul(563,594)when()!:!mul(683,595)*what()when())'how();@mul(287,255)how()/^mul(345,555) who()/when()mul(681,924) 'mul(189,542)'mul(102,360)why()!'how()-?;,mul(874,55)+:!>what()mul(538,354)**]~how()who()mul(277,851),where(802,203)<{(];'?mul(268,251)~{:]mul(139,820){^^[ /;when() what()mul(775,595)/,)^;&where(),mul(644,487)?(mul(590,599what()%-who(){mul(112,571){$mul'/#mul(835,137)$&(mul(201,460)how()from()*@where()mul(934,320),[what()where())? :don't()&+'mul(66,8)~ mul(465,911)]?how()what(),;/:*-don't()#:?where()$mul(951,775)from()%@{who()who()!mul(78,456)^[from(),mul(144,347)']where()#([ @[]mul(660,565)}}~mul(738,761)-mul(514,849)mul(648,439who()+<,*/when()!why()mul(904,440)^ select())!@-mul(442,126% #?{mul(47,20)%mul(113,81)/;&+{@mul(504,712);select() mul(720,642)when()*#who()<-'];;mul(821,613)?select()!>when(){mul ,mul(597,943)$-what()*when()where()-}select(){mul(999,17)select(230,593),% mul(920,227)>where()@!~(select()!*mul(301,278)mul(538,232*!/when()mul(283,204)'who() ]mul(861,903)what()? %{* <-mul(112,180)'?(!mul(121,398)']<~/mul(363,850)])from()mul<>?!!from()when()select()!mul(551,325)[where())-:{#)mul(114}}:,,mul(341,114)from()?why() from()# mul(611,400))what()% from()}/when()'mul(874,416)'@&~+]mul(916,295what()@why()how()>where()-^mul(988,626)select()#!)who()why()mul(597,791)};mul(160,184) from()~{;!where()mul(332,928)where()(#!/usr/bin/perl+^who()]:,~}select():mul(810,730)when()mul(312;&what(415,542)who(560,710)who()from()^mul(828,831)> }how(595,281)!why()*/:mul(70,967)
+(do(){,-how()<(how()[{why()mul(16,675))+don't()!>-((&what()!mulwhere()+( mul(446,260)#+&how()}}when()<mul(517,657)how()$)' ?>who()/do()[,who()]>-~<mul(370,491)*]*}/'&mul(451,243)mul(459,272)^]' >from(),mul(200,312);$mul(997,25);?where(203,706)&?}select(),mul(553,783)@^~mul(779,661)%)mul(252,997)what()from();%mul(439,801)select()#?')~;%}mul?why()+!mul(385,635)@)^):!*)how()mul(563,131)#&mul(720,10)~#<+]^!:@how()mul(24,633)~mul(103,646)mul(331,217)~#mulwhy()@-$> mul(288,357)how() when();;why()<+mul(513,580)?when(299,618)!<^-mul(318,287) }mul(88,924)mul(220,403<what()mul(180,327)where()? @mul(766,852),mul(758,342)#&<when()select()^]}mul(354,76)select()^(+don't()mul(371,236)!where(){mul(679,524$}];do()%mul(334,640)#]*how()}&@from()+mul(927when();':when()who()when(90,761)why()why()&mul(894,120)&-?'^^do()}^;from()&,]:<%mul(433,887)?$when()from()select())when(){'mul(84,915)[ <>mul(264,790)mul(78,811),,(<why()}:}~mul(407,891)-~;who(){/when()what()what()mul(56,769)how()}>/who()who()mul(978,770)[what()$)]#:%mul <when()}mul(970,37):select()why()(?<^ ?<mul(357,272)>mul(57,890)'(mul(146,967)[<#%)^;how()]>mul(166,279)]mul(24,319)%;select()-!/don't()>:mul(858,696)mul(622,496)*{{-~why()how()what()-mul(973%}+> mul(904,891)*(:{%mul(618,932)&!~*mul(77,889)}%~{mul(206,797)select()what() who()+*what(499,999)?@@mul(114,405)(()where()}/){]}mul(841,73)@!where(581,676)]#from(879,459)}^mulhow()do()}select()~!~)[why(364,979)who(533,785)mul(839,475)[{;>)(@what()mul(597,209)-$-^select()mul(453+;:#:?&mul(972,784)what()#select()%/[select()[,how()mul(436,10)]!~)select() mul(982,995select()~/<why()]~select(409,236)do();:+-where()';)mul(580,7)%mul(844,208) #^mul(353,253)?from()where()mulwhat(){select()why()mul(698,22)&?how():,from()what()]where()mul(260,416)who()when()+select(632,146)}mul(214,946)&how(860,45)!mul[from()>%(,do()#who()]!,/*mul(718,383)when()>^*mul(803,383)when(); mul(568,612)/from()from()}what(219,960)from()*don't()@@why();who()where()mul(222,279){ mul(758,766)what()who()!how(38,972)~;],select()/mul(974,879)!don't()mul(368,975)where()^$[^&] -{mul(153,172)what()&+)[mul(97,652)when(534,157)~,:where()do()%%@]?&when(435,925)what(){mul(155,627)?{;@#mul(466,775)(;mul(834,395)//>()-don't() $mul(329,300)<+&'@^mul(469,14)*&why(99,525)',mul(427who()*@< ?do()[>from()when()?#,'&:mul(585,898)mul(128,392)-(?[,where()'^where(575,788)+mul(378,473how() '$'#@who()from()<mul(979,827)what()^mul(637,26)&what()*why()!how()mul(643<{}who()where()mul(443,856)>how()?(//mul(768,590)when()-: ](where()who()(mul(716,399)/~)@mul(754,670)what()mul(656,266):(;%!]mul(595,874)why()%@<^?mul(702,835)(![&&/+%mul(421,278)}where()-%^'+mul(842,496)/?@:]mul(282,851)~@)how())mul(543,112))]+^)mul(133,862);#)when()who()why()when(58,966),,mul(513,202)@mul(716,648)(mul(793,735)what()]where()%+-/mul(359,127)-+}/mul(116,988)when()mul(153,16):'@$who():~-mul(441,603)'how(){ #why()%{{mul(877,856)select()who(777,457)select()from())how(345,367)from()mul(447,557)%/$-select(),when()+what()mul(189,616)what()}mul(822,616)mul(454,622)how()&who()&#do():> mul(353,679)^(@select()<;mul(414,440)why()+how()&,]#-&mul(402,532)-})~#$-!<mul(895,294)/;( }>mul(883,415):<@]*from() mul(28,253){where()? <!&,why()?mul(633,240)]--+^{how()%]mul(649,701)]:!why()+who())mul(126,903)]what()@select()$from()mul(587,84)mul(911,475)do()!];when()*;[where(),mul(370,958)what()/>what()select()~mul(259,972)-(]<}>when()from()$mul(650,381)~from()}from()who()>mul(72,307),who()where()?@<when()@why()mul(585,731)mul(272,301)-%who()when(202,213)*mul(884,335)]@@why()$do()~#mul(786,141)
+where()}/what(611,646)!mul(470,537)}who()what()]-$[what()mul(341,864)<(+from()}>{where()mul(706,447)from(671,711))~mul(601,925)} ;what()[mul(533,851~{&what()(@{<'where()mul(799,568)%<why()~]'+$mul(169,116)~<why()from()-^;mul(447,48);from()'how()mul(643,718)select()+ ?<,$mul(622,397):*>where()<when()&))mul(410,76)/[mul(951,998)% #'~}-mul(954,766)-when():do()when()where())^:?mul(460,200]how()$&$/;&who()mul(126,104)when()}$when()+$why()%what()who()mul(777,781)-$@,+(^mul(138,32) /;mul(604,605)':*mul(457,205)from()mul(968,111);+?)!mul(185,427)/#mul(589,783)?#who(284,112)@<'[->mul$>select()[)#^:mul(414,93)]mul(16,757)&[who(),/mul(629,760)&''how(),from()mul(951,329)^mul(781,711):/',+'{%when();mul(661,844)/why()<^}#mul(337,134)!)mul(339,829)([how()+&~how(512,132)!;:mul(696,374))}/what()from()mul(640,944)'{*how()what(279,739)why(843,673)?<mul(930,104)from(71,501)> &!where()mul(347,404)^?>!$&mul(316,524) when()]mul(875,937)$(@]$don't()/who():/]mul(833,846)who()mul(190,362))mul(183,740)how()}mul(14,502):why();why()<mul(752,588),who()where(877,731)&*,%who()where()mul(817,369)+?how(166,381)}mul(787,226)from()>'mul(341,888)mul(668,734)]/what())**&(do()how()*:select()}*:]mul(604{mul(123,983)#&why()mul(159,440)mul(437,830)~};'])[?mul(36,75)mul(836,766),?*select()who()mul(548,488)%--where(521,841))$]do():-from()*mul(355]<+>:mul(58,505)what()from(49,769)mul(108*]~>mul(131,644)?!from()mul(11,884):where()!;select();+[select()mul(358,741)<mul(788,402what()?who()mul(232,817){;from(); mul(452,48)(>(*?]do()(?{@^mul(117,14)^+;what()from()}mul(847,203)/who()where()from(567,960)when()</:~mul(592,204)[}where()*don't()?mul(212,912)who()mul(73,318)how()*who(597,691)){&-mul(971,304)where()mul(64,983)#who()mul(662,2!when()@where(522,361)select(63,12)&+what()!$mul(678,247)when()mul(878,222)]>how()%~'}mul(677,415)mul(91,507)when()*when()from()*(mul(935,477) from()@ mul(556,85)?)@mul(196,674)^;*+#$mul(531,124)!what()%select(){who()}';~mul(67,663)when()'?mul(205,527)@:+ ?:why() %mul(513,956/}:,'@+$who()-mul(963,914)@from()why()how(292,305)!from(980,892)mul(456,909)!who()<(*@select()&why()mul(947,805)who()how()^}mul(154,935)+?when()('};]>^mul(855,799){who()]+*{mul(823,352)*<$when()+)^&(do()mul(623,916)(['])^what(){select()mul(815,135)}mul(464,34)' <what()@&how()] mul(223,241)mul(595,176):!select()?~)</mul(707,895) how()>^)-^~where()where()mul(50,471)*{select()from() mul~:why()when()<when()?mul(131,929) [mul(45,134)'+:how()]select()@when()%<mul(755,746)who()why(){^mul(592,378)%}mul(88,624)where(901,919)?(how()how()]mul(533,3^where()who()]-mul(394,600)?)~from():mul(139,515),mul(531,61);$$how()mul>[why();%, }-where()#mul(184,632)~]+'select()}what()mul(675,164)mul(360,852)mul(875,801):where(811,851)mul(702,746)mul(29,632)[{^]-:!{ who(719,324)mul(720,687);:/[#*mul(431,415)mul(123,914]&?%$how()mul(655,184)]@?how()*$(-what()mul(323,687)mul(474,75);mul(846,335):%;do()~?where()~mul{}?%mul(446,300)^how(),<&from()#!#from()mul(423,746)how()what()don't()what()+*<mul(231,901)}from()mul(580,914)why()#%{}@^<mul(325,335)~mul(97,85)how() select()how()*]{{mul(138,378)mul(232,238)how(816,837)who()mul(855,527)!$}%[who()select(222,409)do()+) mul(853,840)#mul(974,262)*when()/<mul(85,995):]how()when() mul(883,291)?))select()}mul(218,597)when()!why())+mul(920,414)mul(263,33)
+~-$'&&^!<mul(959,544)@where()#:?%)/)-mul(730,399)::mul(799,976)<mul(83%*/who(215,306)do()% '~mul(47,623):) <select())?mul(36,132)~don't()+,+,'#],(mul(479,758];select()<~?[,when():mul(433,783)],where()/do()'who()$+what()-^mul(620,968)?/]-}why()!]#mul(826,251)&?mul(953,890)$~{where()$}}[+mul(671%{why()!$]}^mul(651,483)how()[[(do()*:;$*mul(818,404)~where()}what()[} mul(750,606)mul(909,386)why()how()&how(){{how()mul(208,481)mul(793,351)}-['}:}who()mul(42,668)[do()}select()??from():&?)mul(85,533):~?$+when()^how()&do())<when()mul(831';,'where()when()'+from()^mul(952,914))mul(960,931)who()from()<what()*%why()when()-@mul(829,638);when(){ mul(661,694)>#:mul(268,185)@do()!>?~;@]mul(657,833) ,(who()-who()mul(415,876)]&#?@'!/&mul(437,971)^,+mul(884,392):mul(183,497)^from()mul(204,743)^'>}who()$;}mul(892,574)+ from()?$mul(922,854))select()#,+>where(),*mul(551,303)?}mul(261,657)?why()}why()when()%-mul(124,265!mul(979,380)/@select()}>why()+#mul(384,303)$,@@-mul[mul(479,548)-]#> ?:!do()how()@&mul(917,657{:$&mul(966,387)}what())[-]mul(183,849)^^who()&<,mul(669,375)mul(323,459)$%/from()~+}when()mul(789,390)'+mul(804,927)#who()mul(102,842)$$)how()from()select()][mul(380,252) )>when()where()how()who():#where(184,552)mul(244,943)$&$*}*-mul(727,613)(#why()}>mul(807,274)mul(577,489)mul(731,223)>where()/!]? %where()mul(359,604)/$;$+}mul(182,17)why()-how()mul(792,962)why()/{-(how()%'select()mul(997,718)/{mul(7,739)select();:mul(800,703)[when()' #~why()where()*mul(345,374)mul(308,927)how()%@how()mul(233,785)#{!select()mul(208,457)#from()}what()mul(347,911)where()from()@;(mul(492,896)&;?+<![:!<mul(211,499))!%]mul(12,519)'?--/,mul(158,834)::$why()who(171,915),#mul(807,360)?}}}do(){~] <'>, mul(948,682)+~when()}from()mul(930,691)[&]*((#mul(600,425){what()'{)@,where();:mul(844,671)~+)#<where()when():{mul(124,928)where()*: -@mul(194,634)why(466,842)'-mul(402,954)!why()?mul(256,694)don't()&mul(797,748)from()<why()<don't():~why()when()who(){mul(44,366)&{^mul(957,373)*select()$%why()~mul(956,708)'/}how()do()%from()+select()]+when()mul(381,888)(!?#{ from()mul(423,132) ($~$@?mul(225,981);;+who():<)%^mul(840,611)!)mul(763,490)&why()@{where()mul(852,987)*!what()(mul(680,776)mul(436,532)from(52,270);) ^mul(28,580)how()>,(mul(446,155)$%@/:mul(749,494)mul(24,97)where(6,997)&where()?why(449,637)mul(631,323))mul(192,700));/$]what()mul(820,765)who()(>%>mul(702,770)*-[;}(mul(438,245)@)]^/'#mul(554,294)!mul(34,410)where()$<#how(360,499)@#mul(585,680)<^};mul(295,437)where()] {+mul(607,28)why()#% do();mul(96,932)]why()+who(){<,[where()mul(271,645);^:{mul(411,161)]<>do()@';when() (mul(41,299)(!what()*select(387,698)$]mul(942,465)^?~what(),*?-'from()mul(70,415)why()'from()how()mul(682,699)!^-when()?when()#mul(473,999) {<mul(676,919)+??<#?mul(119,628)<&~from()}:mul(740,385)mul(444,907)@~,*$<, $@don't()~:+@how()select()what()%$mul(389,212);;what()%[how()mul(210,340):how()'-mul(80,124)&-how()>(~>^why()}mul(240,258)+why()&%mul(579,916)!(]((select(112,996)#($,mul(584,139)%
2024/input/03-p2-oneline.txt
@@ -0,0 +1,1 @@
+mul(498,303);when()}!(%mul(846,233)-,what()($where()how():}mul(334,117)]~>?,<,%^,mul(886,213)/:from()?-how()~}mul(343,197) mul(33,616)~%*~why()^*-from()mul(757,847){{who()why()#mul(927,553)>-?&!-@[mul(589,387)what():[?mul(865,934)#/ (why()+from()when();mul(804,792)-where(144,652)(mul(620,348);];]$mul(584,827):who()^%from()mul(381,633)why()@ when()where()?<;@#do()'< mul(643,715)@@#/>&-@?when(295,120)mul(465,37))]#mul(742,669)?mul(519,650)mul(546,337)@what(),{'^mul(769,202)^mul(808,254)/#why()@~mul(71,204)from();mul(150,335)[mul(302,220)>[$*~don't()mul(385,231)what()?*mul(852,324)#$}<{mul(838,178)<;+}@/*mul(579,121)select()why()*{{:mul(810,214)don't(){what()/)who()*%mul(273,606)&]from()@:why()@mul(788,896) }& don't()select()mul(568,713)$$'<who();[[+what()mul(404,402)+<what()why()mul(931,692)*;when()^where()who()what():<mul(815,388)where(),%~select()/select()what()!mul(492,448)+$)mul(962,335)who()}[<)where()>from()@+mul(390,36):@who();&from()mul(984,787)/mul(209,744)why()%[:what()mul(929,15)+how() who()@what()$!mul(751,670)$]from()mul(821,742)why()}:/why()>mul(445,950)>:mul(174,953)-where()how()+:mul(529,661)+{+@@why()##mul(513,442)how(827,318)}~}where()#@-:mul(941,152)~[,+{&@why()+mul(468,787)how()!$from()^^>%~from()mul(497,717)mul(930,672)mul(313,480)^%where()~-))#^select()mul(407,85)<#who()mul(776,808)~select()$?@,<mul(373,713)?')who()$?[>@mul(420,163)mul(666,491)$:+do()mul(823,835){who()?,mul(728,808))[who()/^<;select()~:mul(38,577)+>mul(985,224):/what()where()[%*what()mul(31,270)<><from()@$;mul(233,598)why()/&}mul(326,395)from(),-;-*:don't() &[who()[mul(730,832)%who()who()@how()(,mul(628,729)mul(332,18){-mul(908,439))<}mul(185,715)what()~!>when()[?!!mul(895,903)%who()select()>/when()!mul(367,623)'#+mul(362,189)&from()'#$':$?{mul(571,203)what()mul(615,719)what(),what() )^mul(663,163)$@;&'select()mul(93,614)~(from()mul(490,261)#mul(530,933)}[from()];don't()$%what()%~'&'what()mul(134,307)}from()%;&why(65,575)?/mul(657,957)where()mul(969,590))how()when()how(){mul(534,951)@},mul(141,80<'mul(573,576)why()mul(952,460from()+<?$;where(),mul(810,772)+:${?mul(334,140)~<)select()%>#;;mul(36,336)&don't()&}how()why()select()^mul(267:+(+#'~<mul(894,946)^))mul(633,59)when()mul(335,809)$mul(680[>mul(654,481)--mul(17,334)'!*why())how();-$mul(886,695)mul(954,476)where()!mul(73,181)?@mul(326,125)!@{)*mul(945,965)what()-select()~^who(884,691)how(846,544)mul(346,328)!<^~+-when(871,168):-mul(653,891why()when()how()why()mul(603,626)~+when()where(639,311),#mul(527,536)how()]%{/!-do()'<when()mul(914,232){:~]&why(937,467)mul(116,640)where()mul(391,784~mul(44,854),+<where();/;@^when()mul(919,687)#))mul(70,882)<how()who()+what()(*/:mul(96,388){^-$why(625,585)-mul(240,319);$:where()how()<$[]mul(524,524)]&*&%&mul(124,571)<,}&{#where()@mul(727,591)how()}&#[:?:mul(481,435),when()who()$[:mul(245,145)where() [/-who()what()how()^mul(943,836)%!'when()mul(703,555)$)[mul(227why()mul(923,88)/}& select()mul(908,970)'+how()<who(628,728)/select()%don't()mul&<{/who()mul(199,227)[),how()[~select()mul(540,629)select()mul(167,775)&;}mul(275,320)^mul(911,818)from()when()+-,*,>@mul(368,63)NEWLINEhow()@]]from()select(976,708)?;what())mul(649,499)}&?how(792,889)~who()why(){do()mul(569,139)^[mul(701,8)why()!#[>'who()from()%mul(288,867)mul(706&*~>?select()@mul(819,789)(@%mul(180,466)from()[why()}&}mul(766,269)</how(){/mul(883,183)#-'>}@mul(827,216);???!mul(670,899)!-[%(<@^do()*}mul(475*mul(462,887)'@[])[?&mul(754,83)%]%(<who()mul(712,726)(/~mul(591,638)when(737,732)] mul(205,289){[{why():{where() ~where(736,522)mul(611,153)[)where()[{+how()mul(256^-*(when()~^mul(996,964){;/*-who()?mul(359,517)from();(when()don't()~]]!mul(716,400){{^:when();*mul(359,667)<]mul(361,744),mul(83,482){)how()mul(612,903)?select()@mul(273,252)#^/ @?+mul(656,57)mul(20,332)-who()from()from()([-where()#mul(701,637)from(19,111)^,when()where(913,373)what()how()why()select()mul(648,774)mul(313,368)@^!<!from()?*select()-mul(576,9)}where()mul(745,88!/[):mul(659,543)]:who()~[+select()mul(669,630what()]~*why()mul(15,604)^*? %#%,-don't()select()/#mul(959,4)+~,%}how()#select(289,441)why();mul(787,874)why()select()]]%~mul(133,880)?mul(898,168)~select()(mul(843,146)(%where()&<select()%$who()mul(870,481);*when()^mul>~from()}when()?mul(379,965)@why()mul(63,665)+[-{mul(543,711);>?/)(&mul(535,403)?')(mul(603,306)* when())what()-*mul(22,75)#who()<:{where(780,74)]mulwho()'#from()~?how() ,{<mul(715,646)who()}:/:%who()mul(56,345)-select()!^where()&?mul(281,647)(&select()mul(690,172))?who()]*mul(512,128)'&,[why()mul(509,250)#;how() how()<<>{+mul(576,621)why()why();mul^;+^'mul(977,718)}why()>'[~ mul(179,326)#[mul(735,639)where() when()<mul(971,82)^~(;select()why()how()what()where()when()don't()^[]]$mul(285,677);where(523,328)when()#-!,(<mul(891,918)- $mul(746,775)] ?@}select()select(103,294)@mul(651,55)[from()@+why()$#mul(425$}#[when():+@[when()@do()select() +;%how()+~'mul(653,737)-[)mul(450,954)don't()what()mul(82,395)from()who(){{ why()who()from()mul(757,278)from()<[{&^mul(812,129)why()(#select()when()what()what()mul(153,205)+where()$mul(844,143)'where()don't()-what()where()@,'>/from()$mul(779,50)don't()<mul(819,958)]select()@mul(138,940from()from()do(),@'(#from()]^mul(382,411)mul(262,685)from()>'<:)'>:}mul(232,847){where()mul(63,282)>mul(737,540)why()+!>don't()when() ']what()#,mul(778,85)how()[mul(809,798)![ $where()%<who()how()/mul(551,122)what()mul(346,544)why()#mul(424,338)!$don't()how()how():{>>' }]mul(587,975)-?# }-]mul(800,437)$mul{[mul(603,103)>-/#why()mul(285,453)who();+{@ when()]don't()+[what(730,765) mul(399,137)%]select()#<[^>mul(146,316)~][from() mul(687,295)mul(347,287)when()>!from()&mul);<<from()mul(400,956)#;why()}<who();mul(743,166)}>when()+;{^mul(267,700){~,!]?<mul(888,527)$~> how()mul(779,914)select()&>^/%?<why()mul(337,111)where()how()<-mul(457,594)*/how()mul(328,728)>}>-$*^mul(387,58)^who()&mul(157,49)#?/mul(35,606)when()')from()?%mul(451,146)'(where()mul(977,491)mul(916,789))&#how()how()>don't()^*mul(437,605)[how() mul(626,940)^*%/mul(884,929)select()mul(84,192)mul(111,274)what()mul(95where()![[(who()[mul(593,249)]]@#when()why()-/mul(230,390)#~],(:mul(840,931)mul(421,658)from(653,680)>&mul(34,90)>when()&}:why()mul(956,881)!when())$^]@who()select()where()mul(94,737)from()who()mul(816,357)')^<when(97,556)}/)select(167,991)mul(888,358);what()]{-when()%>^mul(454,208)$&mul(136,496){$what()mul(897,490)>'mul(376,325){why(),%]#<mul(219,353)(mul(659,921)who(){what())mul(224,414)NEWLINE&&^(?when()^why() mul(91,818)what()what()*do()-mul(217,631)mul(28,181)'!from()mul(949,185)/,&what(964,586)what()who()mul(353,335(what() where()!select():mul(736,902);who()who()mul(877,853)&<%from()^($>what()mul(953,618)+from()mul(378,46)mul(138,440)who()#where() ><mul(554~what()~how()!select()%mul(387,205)&mul(285,757)~<{<)>(from()#mul(708,59)&why()mul(830,439)mul(468,479)why()<$,~},mul(279,437)<why()^}>%([mul(276,252)-#$mul(596,842)from()mul(873,817)*{{from()#(%^mul(765,528)!<< what())^mul$how()<select()why()mul(592,403)mul(647,574)-$how()??<,,mul(423,736)< when()?(mul(666,851) ]mul(410,586):mul(519,320),how())(?@mul(531,672)>}/what() +:mul(411,270,,({(]!mul(627,262)/how()**how()$''+mul(791,814);-;;:mul(990,764)}where())))&((!mul(5,111)~how()from()&,how()mul(492,492)from()[$,+) @(mul(999,416)$&who(959,257)&mul(722,457)@how()) ^>;)@{mul(221,679)?who()$+{-^*{mul(241,314)how()][!mul(940,32){$(~@'+>mul(453,515*;mul(215,275)~/[,why(21,55)(who()',>mul(567,83)mul(330,717)>#!mul(611,308)+&select()(})/mul(744what(424,184)?mul(377,16)):(<[@mul(757,897)#^mul(404,155)%don't()}what(573,178)what()+mul(204,894)%mul(34,307))mul(794,115) +)from()}mul(515,433)^mul(529,684)from()why()where()?mul(956,914)(])?[mul(645,179)+mul(400,263)from()select()&^*mul(422,526){~;what()/)#don't()*%!/(mul(326,211)*%@select()from()[~&mul(456{why()from(138,423)-^(&!?mul(995,210):;when()why()how()!mul(394,185)how()!~who() ^how()'where():mul(348,18)mul(194who()&~*~&{/%mul(505,325) *%mul(459,604)>)) ~ -where()~{mul(579,481)mul(135,794)-*mul(453,355)~/](![from()mul(443,346)mul*[,~%why()-{do()/when(43,713)mul(136,26){^when()why()'mul(108,341)[@?!',+@who()mul(195]{&@{?:how()what()select()don't():]]#mul;what()&?:mul(541,941),&;-what(75,560)who()what()?how()mul(314,260)!)mul(250,620)>#mul(612,209),#?;mul(661,597)/mul(563,594)when()!:!mul(683,595)*what()when())'how();@mul(287,255)how()/^mul(345,555) who()/when()mul(681,924) 'mul(189,542)'mul(102,360)why()!'how()-?;,mul(874,55)+:!>what()mul(538,354)**]~how()who()mul(277,851),where(802,203)<{(];'?mul(268,251)~{:]mul(139,820){^^[ /;when() what()mul(775,595)/,)^;&where(),mul(644,487)?(mul(590,599what()%-who(){mul(112,571){$mul'/#mul(835,137)$&(mul(201,460)how()from()*@where()mul(934,320),[what()where())? :don't()&+'mul(66,8)~ mul(465,911)]?how()what(),;/:*-don't()#:?where()$mul(951,775)from()%@{who()who()!mul(78,456)^[from(),mul(144,347)']where()#([ @[]mul(660,565)}}~mul(738,761)-mul(514,849)mul(648,439who()+<,*/when()!why()mul(904,440)^ select())!@-mul(442,126% #?{mul(47,20)%mul(113,81)/;&+{@mul(504,712);select() mul(720,642)when()*#who()<-'];;mul(821,613)?select()!>when(){mul ,mul(597,943)$-what()*when()where()-}select(){mul(999,17)select(230,593),% mul(920,227)>where()@!~(select()!*mul(301,278)mul(538,232*!/when()mul(283,204)'who() ]mul(861,903)what()? %{* <-mul(112,180)'?(!mul(121,398)']<~/mul(363,850)])from()mul<>?!!from()when()select()!mul(551,325)[where())-:{#)mul(114}}:,,mul(341,114)from()?why() from()# mul(611,400))what()% from()}/when()'mul(874,416)'@&~+]mul(916,295what()@why()how()>where()-^mul(988,626)select()#!)who()why()mul(597,791)};mul(160,184) from()~{;!where()mul(332,928)where()(#!/usr/bin/perl+^who()]:,~}select():mul(810,730)when()mul(312;&what(415,542)who(560,710)who()from()^mul(828,831)> }how(595,281)!why()*/:mul(70,967)NEWLINE(do(){,-how()<(how()[{why()mul(16,675))+don't()!>-((&what()!mulwhere()+( mul(446,260)#+&how()}}when()<mul(517,657)how()$)' ?>who()/do()[,who()]>-~<mul(370,491)*]*}/'&mul(451,243)mul(459,272)^]' >from(),mul(200,312);$mul(997,25);?where(203,706)&?}select(),mul(553,783)@^~mul(779,661)%)mul(252,997)what()from();%mul(439,801)select()#?')~;%}mul?why()+!mul(385,635)@)^):!*)how()mul(563,131)#&mul(720,10)~#<+]^!:@how()mul(24,633)~mul(103,646)mul(331,217)~#mulwhy()@-$> mul(288,357)how() when();;why()<+mul(513,580)?when(299,618)!<^-mul(318,287) }mul(88,924)mul(220,403<what()mul(180,327)where()? @mul(766,852),mul(758,342)#&<when()select()^]}mul(354,76)select()^(+don't()mul(371,236)!where(){mul(679,524$}];do()%mul(334,640)#]*how()}&@from()+mul(927when();':when()who()when(90,761)why()why()&mul(894,120)&-?'^^do()}^;from()&,]:<%mul(433,887)?$when()from()select())when(){'mul(84,915)[ <>mul(264,790)mul(78,811),,(<why()}:}~mul(407,891)-~;who(){/when()what()what()mul(56,769)how()}>/who()who()mul(978,770)[what()$)]#:%mul <when()}mul(970,37):select()why()(?<^ ?<mul(357,272)>mul(57,890)'(mul(146,967)[<#%)^;how()]>mul(166,279)]mul(24,319)%;select()-!/don't()>:mul(858,696)mul(622,496)*{{-~why()how()what()-mul(973%}+> mul(904,891)*(:{%mul(618,932)&!~*mul(77,889)}%~{mul(206,797)select()what() who()+*what(499,999)?@@mul(114,405)(()where()}/){]}mul(841,73)@!where(581,676)]#from(879,459)}^mulhow()do()}select()~!~)[why(364,979)who(533,785)mul(839,475)[{;>)(@what()mul(597,209)-$-^select()mul(453+;:#:?&mul(972,784)what()#select()%/[select()[,how()mul(436,10)]!~)select() mul(982,995select()~/<why()]~select(409,236)do();:+-where()';)mul(580,7)%mul(844,208) #^mul(353,253)?from()where()mulwhat(){select()why()mul(698,22)&?how():,from()what()]where()mul(260,416)who()when()+select(632,146)}mul(214,946)&how(860,45)!mul[from()>%(,do()#who()]!,/*mul(718,383)when()>^*mul(803,383)when(); mul(568,612)/from()from()}what(219,960)from()*don't()@@why();who()where()mul(222,279){ mul(758,766)what()who()!how(38,972)~;],select()/mul(974,879)!don't()mul(368,975)where()^$[^&] -{mul(153,172)what()&+)[mul(97,652)when(534,157)~,:where()do()%%@]?&when(435,925)what(){mul(155,627)?{;@#mul(466,775)(;mul(834,395)//>()-don't() $mul(329,300)<+&'@^mul(469,14)*&why(99,525)',mul(427who()*@< ?do()[>from()when()?#,'&:mul(585,898)mul(128,392)-(?[,where()'^where(575,788)+mul(378,473how() '$'#@who()from()<mul(979,827)what()^mul(637,26)&what()*why()!how()mul(643<{}who()where()mul(443,856)>how()?(//mul(768,590)when()-: ](where()who()(mul(716,399)/~)@mul(754,670)what()mul(656,266):(;%!]mul(595,874)why()%@<^?mul(702,835)(![&&/+%mul(421,278)}where()-%^'+mul(842,496)/?@:]mul(282,851)~@)how())mul(543,112))]+^)mul(133,862);#)when()who()why()when(58,966),,mul(513,202)@mul(716,648)(mul(793,735)what()]where()%+-/mul(359,127)-+}/mul(116,988)when()mul(153,16):'@$who():~-mul(441,603)'how(){ #why()%{{mul(877,856)select()who(777,457)select()from())how(345,367)from()mul(447,557)%/$-select(),when()+what()mul(189,616)what()}mul(822,616)mul(454,622)how()&who()&#do():> mul(353,679)^(@select()<;mul(414,440)why()+how()&,]#-&mul(402,532)-})~#$-!<mul(895,294)/;( }>mul(883,415):<@]*from() mul(28,253){where()? <!&,why()?mul(633,240)]--+^{how()%]mul(649,701)]:!why()+who())mul(126,903)]what()@select()$from()mul(587,84)mul(911,475)do()!];when()*;[where(),mul(370,958)what()/>what()select()~mul(259,972)-(]<}>when()from()$mul(650,381)~from()}from()who()>mul(72,307),who()where()?@<when()@why()mul(585,731)mul(272,301)-%who()when(202,213)*mul(884,335)]@@why()$do()~#mul(786,141)NEWLINEwhere()}/what(611,646)!mul(470,537)}who()what()]-$[what()mul(341,864)<(+from()}>{where()mul(706,447)from(671,711))~mul(601,925)} ;what()[mul(533,851~{&what()(@{<'where()mul(799,568)%<why()~]'+$mul(169,116)~<why()from()-^;mul(447,48);from()'how()mul(643,718)select()+ ?<,$mul(622,397):*>where()<when()&))mul(410,76)/[mul(951,998)% #'~}-mul(954,766)-when():do()when()where())^:?mul(460,200]how()$&$/;&who()mul(126,104)when()}$when()+$why()%what()who()mul(777,781)-$@,+(^mul(138,32) /;mul(604,605)':*mul(457,205)from()mul(968,111);+?)!mul(185,427)/#mul(589,783)?#who(284,112)@<'[->mul$>select()[)#^:mul(414,93)]mul(16,757)&[who(),/mul(629,760)&''how(),from()mul(951,329)^mul(781,711):/',+'{%when();mul(661,844)/why()<^}#mul(337,134)!)mul(339,829)([how()+&~how(512,132)!;:mul(696,374))}/what()from()mul(640,944)'{*how()what(279,739)why(843,673)?<mul(930,104)from(71,501)> &!where()mul(347,404)^?>!$&mul(316,524) when()]mul(875,937)$(@]$don't()/who():/]mul(833,846)who()mul(190,362))mul(183,740)how()}mul(14,502):why();why()<mul(752,588),who()where(877,731)&*,%who()where()mul(817,369)+?how(166,381)}mul(787,226)from()>'mul(341,888)mul(668,734)]/what())**&(do()how()*:select()}*:]mul(604{mul(123,983)#&why()mul(159,440)mul(437,830)~};'])[?mul(36,75)mul(836,766),?*select()who()mul(548,488)%--where(521,841))$]do():-from()*mul(355]<+>:mul(58,505)what()from(49,769)mul(108*]~>mul(131,644)?!from()mul(11,884):where()!;select();+[select()mul(358,741)<mul(788,402what()?who()mul(232,817){;from(); mul(452,48)(>(*?]do()(?{@^mul(117,14)^+;what()from()}mul(847,203)/who()where()from(567,960)when()</:~mul(592,204)[}where()*don't()?mul(212,912)who()mul(73,318)how()*who(597,691)){&-mul(971,304)where()mul(64,983)#who()mul(662,2!when()@where(522,361)select(63,12)&+what()!$mul(678,247)when()mul(878,222)]>how()%~'}mul(677,415)mul(91,507)when()*when()from()*(mul(935,477) from()@ mul(556,85)?)@mul(196,674)^;*+#$mul(531,124)!what()%select(){who()}';~mul(67,663)when()'?mul(205,527)@:+ ?:why() %mul(513,956/}:,'@+$who()-mul(963,914)@from()why()how(292,305)!from(980,892)mul(456,909)!who()<(*@select()&why()mul(947,805)who()how()^}mul(154,935)+?when()('};]>^mul(855,799){who()]+*{mul(823,352)*<$when()+)^&(do()mul(623,916)(['])^what(){select()mul(815,135)}mul(464,34)' <what()@&how()] mul(223,241)mul(595,176):!select()?~)</mul(707,895) how()>^)-^~where()where()mul(50,471)*{select()from() mul~:why()when()<when()?mul(131,929) [mul(45,134)'+:how()]select()@when()%<mul(755,746)who()why(){^mul(592,378)%}mul(88,624)where(901,919)?(how()how()]mul(533,3^where()who()]-mul(394,600)?)~from():mul(139,515),mul(531,61);$$how()mul>[why();%, }-where()#mul(184,632)~]+'select()}what()mul(675,164)mul(360,852)mul(875,801):where(811,851)mul(702,746)mul(29,632)[{^]-:!{ who(719,324)mul(720,687);:/[#*mul(431,415)mul(123,914]&?%$how()mul(655,184)]@?how()*$(-what()mul(323,687)mul(474,75);mul(846,335):%;do()~?where()~mul{}?%mul(446,300)^how(),<&from()#!#from()mul(423,746)how()what()don't()what()+*<mul(231,901)}from()mul(580,914)why()#%{}@^<mul(325,335)~mul(97,85)how() select()how()*]{{mul(138,378)mul(232,238)how(816,837)who()mul(855,527)!$}%[who()select(222,409)do()+) mul(853,840)#mul(974,262)*when()/<mul(85,995):]how()when() mul(883,291)?))select()}mul(218,597)when()!why())+mul(920,414)mul(263,33)NEWLINE~-$'&&^!<mul(959,544)@where()#:?%)/)-mul(730,399)::mul(799,976)<mul(83%*/who(215,306)do()% '~mul(47,623):) <select())?mul(36,132)~don't()+,+,'#],(mul(479,758];select()<~?[,when():mul(433,783)],where()/do()'who()$+what()-^mul(620,968)?/]-}why()!]#mul(826,251)&?mul(953,890)$~{where()$}}[+mul(671%{why()!$]}^mul(651,483)how()[[(do()*:;$*mul(818,404)~where()}what()[} mul(750,606)mul(909,386)why()how()&how(){{how()mul(208,481)mul(793,351)}-['}:}who()mul(42,668)[do()}select()??from():&?)mul(85,533):~?$+when()^how()&do())<when()mul(831';,'where()when()'+from()^mul(952,914))mul(960,931)who()from()<what()*%why()when()-@mul(829,638);when(){ mul(661,694)>#:mul(268,185)@do()!>?~;@]mul(657,833) ,(who()-who()mul(415,876)]&#?@'!/&mul(437,971)^,+mul(884,392):mul(183,497)^from()mul(204,743)^'>}who()$;}mul(892,574)+ from()?$mul(922,854))select()#,+>where(),*mul(551,303)?}mul(261,657)?why()}why()when()%-mul(124,265!mul(979,380)/@select()}>why()+#mul(384,303)$,@@-mul[mul(479,548)-]#> ?:!do()how()@&mul(917,657{:$&mul(966,387)}what())[-]mul(183,849)^^who()&<,mul(669,375)mul(323,459)$%/from()~+}when()mul(789,390)'+mul(804,927)#who()mul(102,842)$$)how()from()select()][mul(380,252) )>when()where()how()who():#where(184,552)mul(244,943)$&$*}*-mul(727,613)(#why()}>mul(807,274)mul(577,489)mul(731,223)>where()/!]? %where()mul(359,604)/$;$+}mul(182,17)why()-how()mul(792,962)why()/{-(how()%'select()mul(997,718)/{mul(7,739)select();:mul(800,703)[when()' #~why()where()*mul(345,374)mul(308,927)how()%@how()mul(233,785)#{!select()mul(208,457)#from()}what()mul(347,911)where()from()@;(mul(492,896)&;?+<![:!<mul(211,499))!%]mul(12,519)'?--/,mul(158,834)::$why()who(171,915),#mul(807,360)?}}}do(){~] <'>, mul(948,682)+~when()}from()mul(930,691)[&]*((#mul(600,425){what()'{)@,where();:mul(844,671)~+)#<where()when():{mul(124,928)where()*: -@mul(194,634)why(466,842)'-mul(402,954)!why()?mul(256,694)don't()&mul(797,748)from()<why()<don't():~why()when()who(){mul(44,366)&{^mul(957,373)*select()$%why()~mul(956,708)'/}how()do()%from()+select()]+when()mul(381,888)(!?#{ from()mul(423,132) ($~$@?mul(225,981);;+who():<)%^mul(840,611)!)mul(763,490)&why()@{where()mul(852,987)*!what()(mul(680,776)mul(436,532)from(52,270);) ^mul(28,580)how()>,(mul(446,155)$%@/:mul(749,494)mul(24,97)where(6,997)&where()?why(449,637)mul(631,323))mul(192,700));/$]what()mul(820,765)who()(>%>mul(702,770)*-[;}(mul(438,245)@)]^/'#mul(554,294)!mul(34,410)where()$<#how(360,499)@#mul(585,680)<^};mul(295,437)where()] {+mul(607,28)why()#% do();mul(96,932)]why()+who(){<,[where()mul(271,645);^:{mul(411,161)]<>do()@';when() (mul(41,299)(!what()*select(387,698)$]mul(942,465)^?~what(),*?-'from()mul(70,415)why()'from()how()mul(682,699)!^-when()?when()#mul(473,999) {<mul(676,919)+??<#?mul(119,628)<&~from()}:mul(740,385)mul(444,907)@~,*$<, $@don't()~:+@how()select()what()%$mul(389,212);;what()%[how()mul(210,340):how()'-mul(80,124)&-how()>(~>^why()}mul(240,258)+why()&%mul(579,916)!(]((select(112,996)#($,mul(584,139)%
2024/input/03-p2.txt
@@ -0,0 +1,1 @@
+03-p2-oneline.txt
\ No newline at end of file
2024/input/README.md
@@ -0,0 +1,32 @@
+# Input Files
+
+Filename format:
+
+`{{ day }}-{{ type }}{{ part }}.txt`
+
+Where:
+
+ - day: `01`, `02`, `03` ... `25`
+ - type: `e` for example or `p` for puzzel input type
+ - part: `1` part 1, `2` part 2
+
+Symlinks are encouraged when content doesnt change
+
+### Examples:
+
+```
+01-e1.txt
+01-p1.txt
+01-e2.txt
+01-p2.txt
+...
+09-e1.txt
+09-p1.txt
+09-e2.txt
+09-p2.txt
+...
+25-e1.txt
+25-p1.txt
+25-e2.txt
+25-p2.txt
+```