summaryrefslogtreecommitdiff
path: root/input
diff options
context:
space:
mode:
authorxander <xander@biltopia.org>2025-12-07 13:12:06 +0100
committerxander <xander@biltopia.org>2025-12-07 13:12:06 +0100
commit516e6ed4a9066fa43d6159b2a0ec58416ab28013 (patch)
tree9925207e97b9e6e1fd83a55bdb878c43071cf73a /input
downloadaoc2025-516e6ed4a9066fa43d6159b2a0ec58416ab28013.tar.xz
aoc2025-516e6ed4a9066fa43d6159b2a0ec58416ab28013.zip
solve up to day 7
Diffstat (limited to 'input')
-rw-r--r--input/1/1.txt4768
-rw-r--r--input/1/example.txt10
-rw-r--r--input/2/1.txt1
-rw-r--r--input/2/example.txt1
-rw-r--r--input/3/1.txt200
-rw-r--r--input/3/example.txt4
-rw-r--r--input/4/1.txt136
-rw-r--r--input/4/example.txt10
-rw-r--r--input/5/1.txt1187
-rw-r--r--input/5/example.txt11
-rw-r--r--input/6/1.txt5
-rw-r--r--input/6/example.txt4
-rw-r--r--input/7/1.txt142
-rw-r--r--input/7/example.txt16
14 files changed, 6495 insertions, 0 deletions
diff --git a/input/1/1.txt b/input/1/1.txt
new file mode 100644
index 0000000..776d310
--- /dev/null
+++ b/input/1/1.txt
@@ -0,0 +1,4768 @@
+R6
+R18
+L39
+L36
+L11
+L24
+R3
+L47
+L11
+R5
+L49
+L12
+L7
+R39
+L9
+R50
+R4
+L30
+L19
+L44
+R43
+R16
+L40
+L19
+L3
+R27
+R10
+R5
+R7
+R41
+R16
+L12
+R27
+R22
+R4
+R28
+R46
+L42
+R29
+R17
+L31
+L12
+R34
+R43
+R32
+L16
+R44
+L37
+R31
+L21
+R74
+L56
+L47
+L97
+L43
+L45
+L12
+R48
+R10
+L58
+L70
+L30
+R45
+L45
+L10
+L18
+L72
+R14
+R97
+L55
+L56
+L99
+L5
+L73
+L36
+R13
+L75
+L25
+L13
+L87
+R59
+R41
+R19
+R4
+R58
+L81
+L97
+L3
+L79
+R26
+L39
+R92
+L13
+L30
+R80
+L17
+R4
+L24
+L66
+R37
+L33
+L38
+R90
+R78
+R32
+R154
+L54
+L11
+L89
+R91
+L829
+L44
+L18
+L759
+R42
+L83
+R93
+R349
+R58
+R859
+L94
+L65
+R1
+L1
+R760
+L68
+L33
+L59
+L97
+L403
+L32
+L868
+L59
+R10
+L13
+L30
+L31
+L90
+R327
+R58
+L88
+L84
+R13
+L32
+L81
+L78
+L22
+L91
+R235
+L87
+R67
+L24
+L4
+R4
+L45
+R88
+L69
+L391
+R87
+L604
+L562
+L204
+L87
+L48
+L79
+L10
+L76
+R89
+R93
+L47
+L35
+R34
+L109
+L461
+L53
+R404
+L15
+R953
+R47
+R47
+L33
+R28
+R22
+R39
+R69
+L872
+R28
+R72
+R950
+R250
+L893
+R51
+L358
+R631
+R327
+R21
+R63
+R34
+L76
+R96
+L63
+R67
+L92
+R46
+R46
+R88
+R95
+L96
+R56
+R57
+R187
+R52
+L795
+L44
+R68
+L12
+R96
+R81
+L33
+R83
+L19
+R39
+L41
+L36
+L924
+R89
+L6
+R26
+L11
+L377
+R77
+R59
+L67
+L88
+L83
+L38
+L843
+L140
+L297
+L34
+L90
+R60
+L2
+L52
+R15
+R54
+L45
+L81
+R45
+L73
+L9
+R2
+L127
+L386
+L61
+R81
+R82
+R18
+L24
+R24
+L44
+R644
+R39
+L65
+L74
+R80
+L80
+L62
+L38
+R598
+R52
+R561
+R31
+R1
+R502
+L63
+L9
+L52
+R79
+L5
+L92
+R598
+L1
+R63
+R12
+L38
+R80
+L73
+R91
+R56
+L24
+L90
+L90
+L56
+R31
+L66
+R4
+L33
+R70
+L96
+R59
+L205
+R5
+L89
+L77
+L44
+L985
+L44
+L450
+L11
+R36
+L48
+R58
+R54
+L18
+L810
+R70
+R22
+R168
+L32
+R70
+L70
+R33
+L13
+L56
+R631
+L27
+L94
+L74
+R54
+R63
+L17
+L10
+L790
+R13
+R53
+L442
+L24
+R55
+R45
+R78
+L69
+L9
+L175
+R30
+L86
+R631
+L17
+R87
+R79
+R51
+L19
+R19
+L9
+R9
+R9
+R33
+L41
+R499
+L57
+L33
+L37
+R73
+R48
+L27
+R62
+R371
+L79
+L59
+R44
+R298
+R85
+R824
+R66
+L79
+R70
+R29
+L96
+L68
+R89
+L54
+L470
+R78
+R39
+R4
+L555
+R634
+L68
+R42
+L74
+R87
+L39
+R52
+L55
+R80
+R75
+R1
+L1
+R62
+L49
+L17
+L96
+L21
+R130
+R91
+R92
+R76
+R32
+R69
+R731
+R4
+R89
+L82
+R73
+R16
+L44
+L56
+L280
+L96
+L412
+R988
+L28
+R928
+L435
+R55
+R844
+L90
+L50
+L224
+R47
+R53
+L23
+R617
+R43
+R72
+L77
+L32
+R412
+R288
+L46
+L53
+R99
+R76
+R59
+L35
+L239
+L55
+R494
+L16
+L624
+L14
+R54
+L45
+L42
+R87
+L62
+L404
+L26
+R86
+L80
+R479
+L15
+L778
+R52
+L552
+L44
+L56
+L1
+L81
+L18
+R98
+R54
+R9
+L61
+L72
+L728
+R82
+L99
+R96
+L974
+R95
+L18
+R18
+R78
+L3
+L76
+R1
+L24
+L76
+L223
+R54
+L94
+L85
+L98
+R62
+L16
+R30
+L55
+R25
+L17
+L99
+L784
+L778
+R88
+R83
+R7
+R59
+R15
+R29
+R58
+R39
+R221
+R79
+R82
+R18
+R58
+R42
+R5
+R95
+R33
+L33
+L81
+L99
+R54
+L74
+R976
+R12
+R160
+L216
+L615
+L17
+L798
+L288
+R49
+L63
+L65
+L602
+R67
+L59
+L24
+L17
+R30
+L56
+R31
+L5
+R111
+L158
+L53
+L664
+R64
+L53
+R79
+R743
+L671
+L98
+L70
+R70
+R19
+L89
+R670
+L83
+L57
+L44
+L45
+L71
+L63
+L37
+R96
+L82
+R40
+L86
+L405
+R76
+L39
+R56
+L277
+R2
+L550
+L31
+L544
+L563
+R51
+R769
+R91
+L72
+L635
+L896
+R12
+L97
+R956
+L385
+L87
+L94
+R94
+R55
+L90
+L65
+R79
+L79
+R83
+R517
+L227
+L81
+L109
+L8
+R30
+L5
+L93
+L1
+R94
+R59
+L26
+L72
+L61
+R77
+R67
+L29
+R85
+R95
+L98
+L97
+R20
+L32
+R591
+L275
+L38
+L18
+L2
+R32
+R82
+R40
+L69
+L9
+L16
+L6
+L46
+L12
+L42
+R59
+R59
+L18
+R890
+L89
+L27
+L55
+L979
+L40
+R230
+L30
+L3
+L79
+R82
+L29
+L719
+L52
+L41
+L59
+L80
+R81
+R549
+R64
+L61
+L794
+L959
+R80
+L154
+R25
+L79
+R84
+R94
+L50
+R17
+L48
+L11
+R189
+L1
+L5
+R28
+R31
+R96
+R804
+R909
+L431
+R22
+L68
+L32
+R907
+L7
+L713
+L67
+L69
+L535
+R73
+L3
+L24
+L77
+L96
+R14
+R1
+R96
+R87
+R13
+L16
+R42
+L26
+R38
+R62
+L298
+R98
+R19
+L446
+R80
+R62
+R82
+R12
+L14
+R31
+L99
+R73
+R424
+R76
+R76
+R276
+L54
+L698
+R20
+R15
+L11
+L138
+R28
+R586
+R39
+L39
+L31
+L69
+R65
+R56
+R79
+R86
+R71
+R32
+R11
+R31
+R69
+R97
+R284
+R19
+L44
+L756
+L49
+R49
+R208
+L97
+R389
+L725
+R748
+R47
+R20
+L90
+L8
+R33
+L25
+R9
+L58
+L51
+L68
+L28
+L41
+R37
+L51
+L49
+R14
+L14
+L569
+L86
+R55
+L73
+L33
+L36
+R53
+R89
+L11
+R8
+L94
+L3
+L8
+L52
+R27
+L67
+R689
+L89
+L290
+R30
+R60
+R85
+L85
+R86
+R14
+R45
+L49
+R4
+R29
+R9
+R441
+L685
+L746
+L18
+L37
+L47
+R54
+L58
+L242
+R27
+R67
+L22
+R1
+R27
+R21
+L43
+L78
+R40
+L14
+R74
+L3
+L53
+R75
+L19
+R82
+L82
+R38
+R93
+R94
+L14
+R88
+L99
+R65
+R35
+L88
+R12
+L4
+L20
+R25
+R13
+R62
+L39
+L62
+L13
+L606
+L227
+R47
+R47
+R53
+L31
+R58
+R73
+R91
+L16
+L73
+R47
+R51
+R21
+L721
+R90
+R27
+R24
+R19
+R24
+L16
+R32
+L208
+R13
+L222
+L332
+L51
+L35
+L29
+R949
+L684
+R99
+R38
+L38
+R662
+L45
+L49
+R732
+R29
+L83
+R51
+R59
+L821
+L735
+L49
+L49
+R75
+L336
+R966
+L350
+R43
+L95
+R77
+R69
+L515
+L98
+R56
+R106
+L101
+L60
+L42
+L3
+L94
+R437
+R63
+L84
+R84
+L54
+L46
+R93
+R7
+L581
+R181
+R854
+L686
+L88
+R33
+R87
+R83
+R48
+L231
+L63
+R63
+R7
+R93
+R885
+R15
+R47
+L70
+L54
+R1
+L93
+L31
+L90
+L110
+L7
+R27
+R73
+R365
+L58
+L65
+L525
+L10
+R30
+R9
+L429
+R90
+L39
+L28
+L33
+L3
+L597
+L69
+L108
+L54
+L63
+R98
+L5
+R215
+L282
+L32
+R946
+R45
+R48
+L39
+L154
+R484
+L29
+R442
+L11
+R80
+L12
+L68
+R168
+R20
+R98
+R78
+L96
+L27
+R23
+R80
+L376
+R598
+R88
+R26
+L89
+R294
+R85
+L102
+L82
+L18
+R44
+R41
+R56
+L91
+R50
+L60
+R60
+R471
+R529
+R60
+L60
+R66
+L62
+L346
+L94
+L64
+L57
+L2
+R97
+L73
+R235
+R96
+L15
+R619
+R14
+R80
+L67
+R73
+L45
+L55
+L37
+R37
+R4
+R96
+R790
+L13
+R23
+L43
+L57
+R77
+L77
+R87
+L787
+L2
+L598
+R59
+L24
+R65
+L644
+L47
+L51
+R586
+R34
+L21
+L45
+L24
+R33
+L5
+R84
+L731
+L69
+R52
+R48
+R30
+L48
+L582
+R16
+L310
+R94
+R10
+L19
+L91
+R4
+L14
+R510
+R11
+R71
+L482
+R47
+L47
+L10
+L56
+L24
+L74
+R64
+R80
+R87
+R16
+R229
+R94
+R29
+R25
+L5
+L55
+L1
+L536
+L63
+L6
+L933
+L66
+R18
+R56
+R31
+L28
+R28
+R70
+R30
+L83
+R183
+L378
+R878
+R93
+R50
+L8
+R60
+R705
+L25
+L33
+L42
+L99
+R62
+R37
+R911
+R50
+R94
+L55
+L106
+R52
+R40
+L86
+R87
+R437
+L49
+L35
+L13
+L88
+R45
+R46
+L62
+L68
+L55
+L67
+L94
+R19
+L3
+L25
+R45
+R80
+L67
+L806
+R76
+L86
+L27
+R55
+L76
+R31
+L45
+L10
+L45
+R312
+R88
+R93
+L2
+L91
+R827
+L27
+L291
+R33
+R78
+L42
+L78
+L786
+L680
+R53
+R15
+L50
+L37
+R75
+L60
+L81
+R51
+L74
+L26
+R34
+R66
+L82
+L18
+R67
+L925
+L49
+R150
+L1
+L18
+L59
+L65
+L48
+L78
+L60
+L82
+R68
+L78
+L5
+R83
+R7
+L7
+L96
+R96
+R64
+L664
+L42
+R42
+R83
+L49
+R92
+R94
+L20
+R38
+L74
+L447
+R99
+R784
+L11
+R854
+L43
+L3
+L64
+R7
+R38
+R74
+R51
+L3
+L41
+L14
+R55
+R64
+L464
+L977
+L313
+L6
+R92
+R4
+L34
+R34
+R542
+R61
+L90
+L60
+L53
+L93
+R94
+R137
+R78
+R42
+L19
+R94
+L833
+R967
+R333
+R80
+L80
+L87
+R21
+R756
+R17
+R72
+R1
+L219
+R75
+R35
+L60
+R94
+L10
+R105
+L50
+L421
+L29
+R47
+L11
+L36
+L74
+L338
+L93
+L26
+L69
+L723
+L77
+L83
+L17
+L82
+R41
+R61
+R7
+L80
+R8
+R58
+R87
+R34
+L36
+R2
+L18
+R24
+L63
+L48
+L35
+R44
+R96
+L84
+L73
+L43
+L88
+L12
+L48
+L889
+L63
+L65
+L80
+L23
+L32
+R397
+R616
+L36
+R76
+L35
+L18
+L16
+R409
+R196
+R11
+L926
+R62
+L867
+L47
+L94
+L56
+L94
+R22
+R827
+R73
+L87
+R71
+L87
+R44
+L37
+L3
+R403
+R27
+R69
+R45
+L45
+R41
+R1
+L443
+R701
+R15
+R8
+R77
+L73
+L27
+L70
+L9
+L436
+L61
+L8
+L68
+R63
+L71
+R8
+L48
+L306
+R87
+L68
+L68
+R83
+L97
+R45
+L64
+R88
+R259
+R894
+L53
+R695
+L95
+L43
+L57
+R16
+R36
+R49
+R736
+R50
+L70
+L479
+R11
+R16
+L134
+L49
+R21
+L387
+L16
+R63
+R37
+L73
+L81
+R554
+L17
+R36
+R451
+R30
+R31
+R51
+L42
+L140
+L82
+L18
+L11
+L5
+L84
+R929
+R71
+L715
+L33
+R848
+L91
+L82
+L27
+R227
+L12
+R82
+R77
+R26
+L45
+R45
+R757
+R43
+R97
+R3
+R901
+L1
+R11
+L10
+L831
+L26
+R56
+R55
+R36
+L85
+L77
+R38
+L45
+L22
+L271
+L933
+R63
+L97
+R55
+L65
+L80
+L265
+R13
+L15
+L78
+L27
+L77
+R90
+L68
+R85
+R70
+L64
+R64
+L44
+L26
+L90
+R60
+L70
+R70
+L15
+R21
+L39
+L46
+L24
+L43
+L66
+L5
+R17
+R43
+R657
+L92
+R40
+R63
+R88
+L99
+R78
+L88
+L13
+R81
+R90
+L738
+R13
+R52
+R215
+R59
+R13
+L695
+R63
+R70
+L61
+L20
+R68
+L287
+L80
+R24
+R556
+L226
+R426
+R67
+L291
+R24
+L594
+L6
+L41
+L38
+L21
+R386
+L10
+R1
+R35
+L39
+R23
+R72
+R32
+R57
+L598
+L8
+L51
+L753
+R53
+L3
+R58
+L529
+R95
+L93
+L95
+R93
+L826
+R52
+R54
+R94
+R23
+R82
+R95
+R489
+R29
+L18
+R28
+R72
+R435
+R743
+L78
+R59
+L669
+L42
+R58
+R87
+L93
+R94
+R72
+R34
+R35
+R65
+R77
+R83
+R940
+L35
+R35
+R78
+L978
+R49
+R29
+L80
+L43
+R45
+L18
+R3
+R15
+R331
+L180
+R16
+R210
+R27
+R196
+L891
+L9
+L52
+L85
+L34
+R91
+R821
+R59
+R84
+L8
+R62
+R8
+L46
+L7
+R77
+L70
+L136
+L860
+R1
+R709
+R40
+L96
+L58
+R613
+L10
+L68
+L51
+R159
+L43
+L176
+R42
+L843
+R77
+R988
+L788
+L82
+R82
+L191
+R91
+L898
+R98
+L31
+L69
+R97
+R3
+R24
+L61
+L16
+L84
+R37
+R63
+L79
+R16
+L613
+L10
+R23
+R96
+L91
+L31
+L92
+L23
+L459
+R39
+L522
+L577
+R87
+R73
+R57
+R90
+R92
+L14
+L25
+R38
+R86
+L24
+R77
+L178
+L99
+L98
+L94
+R43
+L69
+L82
+L80
+L42
+R6
+L28
+L56
+L16
+L761
+L23
+L98
+R98
+R38
+R94
+L532
+R28
+R90
+L18
+L62
+R548
+L8
+L87
+L83
+L34
+R87
+L97
+L86
+R443
+R79
+L501
+R1
+R13
+R52
+R33
+L98
+R46
+L466
+R96
+L76
+L582
+R82
+R47
+R53
+R8
+R18
+L57
+R31
+R865
+L65
+L70
+L94
+R59
+L43
+R48
+L19
+L54
+L13
+L6
+R72
+L855
+R75
+R784
+L29
+L66
+R478
+L613
+L51
+L18
+R4
+R68
+R85
+R13
+L44
+L711
+R531
+R51
+R36
+R87
+R19
+L24
+R97
+R76
+R30
+R28
+R69
+R1
+R99
+R34
+L68
+L51
+R629
+L95
+R811
+R140
+L94
+R77
+L47
+R95
+R169
+L90
+L10
+L77
+L45
+R87
+L65
+R77
+L99
+R78
+L73
+L83
+L93
+L7
+L89
+L92
+L1
+R58
+L76
+R67
+L67
+L68
+L48
+R16
+L174
+L84
+R58
+L51
+R51
+R845
+R25
+L487
+R628
+R19
+R470
+R35
+L45
+R910
+L7
+L31
+R738
+R789
+R24
+L6
+L81
+R2
+L57
+R75
+R48
+L160
+R30
+L29
+R81
+R584
+L36
+R736
+L77
+R61
+L84
+L665
+R34
+R31
+L687
+L113
+L47
+L41
+L76
+L76
+L241
+R354
+R45
+R14
+L32
+L47
+L253
+L28
+R28
+L60
+L40
+R923
+L60
+L163
+R399
+L16
+R17
+R72
+L72
+L6
+L60
+R66
+R96
+L23
+R28
+L1
+R81
+L1
+R68
+L67
+L32
+L20
+R213
+R25
+R33
+R270
+L70
+R425
+L48
+L377
+L25
+L42
+L33
+R104
+L85
+L19
+R669
+R331
+R57
+L40
+L217
+L63
+R15
+L98
+L18
+L55
+L384
+L69
+L85
+L72
+R429
+R45
+L45
+L52
+L62
+R44
+R56
+R414
+L876
+L224
+R641
+R9
+R11
+R78
+R1
+R496
+R98
+R17
+R49
+L506
+R590
+L862
+R93
+R39
+L5
+R51
+R238
+L38
+L644
+R999
+L61
+L94
+R691
+R4
+L55
+L60
+L780
+L481
+R33
+R65
+R83
+R22
+L22
+L430
+R1
+R29
+R83
+R817
+R93
+L14
+L76
+L903
+R39
+R94
+L3
+L43
+L729
+R65
+R12
+R237
+R28
+L12
+L37
+R30
+R65
+R43
+L31
+R42
+L68
+L8
+R72
+R13
+L9
+R73
+L97
+L176
+L584
+L15
+R950
+L629
+R98
+L59
+L61
+R2
+R519
+L227
+L4
+L80
+R90
+R85
+R89
+L767
+R45
+L34
+R65
+R617
+R371
+R29
+L48
+L52
+L214
+R293
+L7
+R28
+L39
+L61
+L56
+L63
+R590
+L6
+R35
+L73
+L327
+R99
+L399
+R827
+R30
+L21
+L636
+R88
+R5
+L70
+R680
+L111
+R8
+L35
+R40
+L5
+L70
+R38
+R46
+L90
+L88
+R19
+R71
+R14
+R60
+R51
+R30
+R319
+L97
+L49
+R46
+L44
+L556
+L90
+L10
+R88
+R12
+R86
+R13
+L88
+R89
+R926
+L26
+R57
+L492
+L65
+R623
+L46
+L72
+R1
+L46
+L60
+L80
+L20
+L40
+L46
+R914
+R361
+R94
+R11
+R33
+L51
+R86
+R692
+L754
+L74
+R174
+R683
+R17
+R91
+L45
+R54
+L55
+R55
+L84
+R98
+R86
+L154
+R62
+L535
+L73
+L354
+L38
+L8
+R97
+L69
+R72
+L30
+R330
+R57
+L81
+L59
+L96
+R24
+R37
+L51
+L31
+R71
+R80
+L24
+R373
+R485
+L85
+R19
+L150
+R31
+L660
+R760
+L63
+R23
+L279
+R63
+R56
+L988
+R2
+L35
+R70
+R91
+L440
+R49
+R13
+R34
+R19
+R31
+L387
+L478
+L81
+R73
+R27
+R38
+R12
+R36
+L86
+R55
+L160
+R5
+R51
+R45
+R59
+R96
+L49
+R98
+R95
+R694
+R11
+L10
+L14
+L839
+R97
+R98
+L532
+R75
+R16
+R71
+L88
+L49
+R75
+L55
+R55
+R53
+R21
+L55
+L19
+L48
+R20
+L68
+L5
+R1
+L35
+L48
+R83
+R61
+R439
+R35
+R65
+L65
+R25
+R957
+L871
+R54
+L37
+R42
+L14
+R65
+R44
+L54
+L19
+R96
+R177
+L98
+R98
+R51
+L75
+L76
+R9
+L3
+R628
+R24
+L43
+R67
+R189
+L189
+R43
+R270
+R80
+R20
+R62
+L49
+R94
+R19
+R579
+R3
+R97
+L625
+L32
+L578
+R90
+L55
+R10
+L83
+L33
+R61
+L98
+R74
+L90
+L41
+R534
+L84
+R305
+R45
+R21
+L621
+L1
+R29
+R72
+R44
+L44
+R65
+L41
+R76
+L256
+L44
+R33
+R67
+R37
+R63
+R95
+L95
+R8
+L208
+R85
+R867
+R48
+L95
+R36
+R556
+L47
+R8
+L58
+L84
+L116
+L56
+R56
+L93
+R43
+L15
+R31
+L26
+L40
+R10
+L10
+R19
+L63
+L656
+R57
+L91
+L57
+L87
+R13
+R85
+R171
+R57
+L68
+R20
+L22
+R264
+L31
+L11
+L38
+L50
+L12
+R947
+R53
+R203
+R86
+L17
+R17
+L89
+L41
+R89
+L6
+R58
+R46
+R54
+L26
+L308
+R76
+L42
+L58
+L27
+L37
+R22
+L789
+R64
+R86
+R809
+L30
+L291
+L12
+R363
+L61
+L39
+R65
+R98
+R26
+L45
+R56
+L748
+R22
+L20
+R50
+L4
+L76
+R76
+R685
+R29
+L68
+L64
+L82
+L49
+L71
+L190
+L290
+R887
+R49
+R85
+R16
+R11
+R12
+L62
+R2
+R91
+L880
+R30
+L64
+L677
+L12
+L84
+R82
+L24
+R48
+R65
+R33
+R92
+L27
+L472
+R712
+R87
+L26
+R26
+R19
+R81
+L82
+R94
+R36
+L48
+R77
+L287
+R78
+R421
+L176
+L86
+L27
+L98
+R586
+R79
+L67
+R20
+R74
+R33
+L78
+R17
+L43
+L815
+L827
+R19
+L488
+L95
+L17
+R176
+R24
+R51
+L451
+L72
+R71
+L41
+R42
+R32
+R67
+L99
+L49
+R154
+R54
+R96
+R45
+R11
+R89
+R363
+L646
+R83
+R95
+R69
+R375
+R61
+L53
+R91
+L13
+L66
+L959
+L9
+R46
+R13
+L66
+R12
+L66
+R70
+R96
+L496
+L647
+R47
+L60
+L63
+R23
+L94
+L6
+L4
+L96
+L74
+R74
+L1
+L99
+R2
+R86
+L47
+R84
+L17
+L8
+L78
+L670
+L52
+R6
+R94
+L95
+L36
+L3
+R50
+R16
+R68
+R28
+L99
+L34
+R5
+L49
+L82
+L57
+R81
+L18
+L49
+R74
+R32
+L32
+R579
+R34
+R62
+R51
+R99
+L62
+L79
+R6
+R30
+L920
+L23
+L26
+L49
+L602
+L52
+L70
+L78
+R70
+R12
+L52
+L90
+R73
+R4
+L33
+L76
+R470
+L78
+L56
+R56
+L29
+R94
+R97
+L81
+L81
+L272
+L76
+L72
+L344
+R864
+L76
+R53
+L77
+L43
+R43
+L9
+L5
+L52
+L88
+R35
+R42
+L75
+R794
+R58
+R180
+R51
+R469
+L41
+L29
+L430
+L449
+L77
+L74
+R89
+R55
+R56
+R680
+R99
+R21
+R2
+L402
+R218
+L6
+R99
+R989
+L10
+L577
+R56
+L69
+L1
+R701
+R191
+L1
+R510
+R7
+R93
+L14
+R14
+R42
+L124
+R776
+R44
+L67
+R29
+L753
+R53
+L92
+R71
+R83
+R315
+R95
+L23
+L70
+R47
+R307
+R46
+L17
+L862
+R95
+L34
+L61
+L14
+L467
+R81
+R4
+R38
+R58
+L92
+L18
+L790
+L5
+L83
+R488
+L369
+R529
+L75
+R43
+R72
+R57
+L457
+L65
+R67
+L659
+R81
+L824
+L540
+R40
+R7
+L19
+L88
+L57
+L68
+L75
+L60
+L725
+L15
+L550
+L59
+R902
+R190
+L1
+L4
+L78
+L35
+L190
+L75
+R71
+L70
+R370
+L78
+R233
+L22
+R96
+R42
+R258
+R58
+L82
+R24
+L740
+R613
+R7
+R81
+L66
+L95
+L79
+L17
+L25
+L79
+R83
+L49
+R36
+L34
+R764
+R99
+L99
+R61
+R858
+R81
+L82
+R7
+L25
+R40
+R55
+R53
+L30
+R86
+R96
+L94
+L6
+R12
+L82
+L68
+L62
+L33
+L96
+L71
+R79
+L97
+R18
+R73
+L62
+R588
+R18
+L17
+R99
+R63
+R938
+L70
+R8
+R62
+R9
+L71
+R6
+R256
+R24
+R83
+L22
+R4
+L99
+R99
+R15
+L56
+L44
+L90
+L14
+L105
+L95
+R2
+R99
+R32
+R25
+L77
+R19
+L80
+R88
+R92
+R19
+R25
+L92
+R41
+R6
+L63
+R30
+L66
+R52
+R624
+L985
+L30
+R694
+L88
+R333
+R52
+L52
+L62
+L38
+R83
+R7
+L90
+R94
+L63
+R66
+L197
+L776
+L33
+L52
+L39
+L68
+L935
+R31
+R49
+L69
+R992
+L43
+L12
+R194
+R25
+R16
+R320
+L228
+R26
+R826
+R29
+L52
+L2
+R34
+R67
+R34
+R53
+R213
+R78
+L298
+R20
+R20
+L96
+R91
+R85
+L61
+L39
+R988
+L72
+L16
+L69
+L507
+R76
+L280
+L25
+L33
+L62
+R8
+L8
+R42
+L42
+R98
+L7
+L4
+R97
+R6
+R410
+R54
+R63
+R683
+L28
+L72
+R70
+R30
+R31
+R69
+L66
+L34
+R45
+R555
+L71
+L24
+L36
+L481
+L139
+L31
+L18
+R50
+L50
+L96
+L968
+L659
+L68
+R15
+L82
+L764
+L96
+R18
+R16
+R11
+R73
+L8
+R14
+L506
+R136
+L22
+L31
+R70
+R11
+R21
+L785
+L15
+L785
+R61
+R39
+L68
+R68
+R39
+R69
+R92
+R99
+R41
+L50
+R89
+L79
+L88
+R88
+L25
+R63
+R26
+R48
+L471
+R620
+L59
+R12
+R54
+L30
+L2
+R64
+L97
+R97
+R939
+L24
+L815
+R392
+R69
+L61
+R67
+R86
+L53
+R81
+L81
+L841
+R8
+R133
+L105
+L26
+R14
+R47
+R70
+L149
+R28
+R25
+R96
+L95
+R84
+R760
+R51
+R60
+L33
+R408
+R69
+L94
+R90
+L646
+R46
+L61
+R27
+R24
+R16
+L5
+L301
+R718
+R5
+R77
+L305
+L95
+L92
+L8
+L5
+L87
+R75
+L20
+L334
+L5
+L24
+L5
+R5
+R858
+L38
+L20
+L68
+R67
+L31
+L99
+R70
+L39
+R36
+L336
+R92
+R8
+L51
+R51
+R25
+L525
+L88
+L12
+L35
+L31
+L58
+L2
+R26
+R54
+R52
+L32
+R20
+R992
+L1
+R15
+R30
+R76
+R12
+L31
+L828
+L67
+R8
+L239
+R39
+L13
+R13
+L39
+L61
+R88
+L15
+L73
+L98
+R277
+R121
+L553
+L22
+R50
+R29
+L66
+R662
+R83
+R18
+L42
+R41
+R38
+L71
+R55
+L22
+L94
+L659
+L52
+R5
+L543
+R48
+L9
+R10
+R12
+L95
+L201
+R178
+R921
+R86
+L7
+L22
+L724
+R46
+L49
+L68
+R17
+L67
+L992
+R42
+R17
+R92
+L27
+R35
+L76
+R13
+L61
+L41
+R79
+L17
+R73
+R112
+R73
+R779
+L88
+L193
+R252
+L35
+R57
+L27
+R862
+R38
+L70
+R69
+L45
+L14
+R46
+R14
+L33
+R273
+R94
+L14
+R17
+R63
+L74
+R857
+L127
+R44
+L79
+R714
+L35
+R470
+R72
+L72
+L877
+R2
+R90
+R434
+L74
+R373
+R29
+R53
+L250
+R24
+R26
+R285
+L85
+L55
+L3
+L70
+L975
+R819
+L16
+R19
+R11
+R340
+L70
+R87
+L78
+R64
+R27
+R20
+R80
+R72
+R69
+R43
+L84
+R949
+L149
+R390
+R12
+R5
+R12
+R281
+R61
+L70
+L91
+L53
+R76
+R54
+L25
+L47
+L25
+R54
+R77
+R8
+R5
+R78
+R17
+R55
+L82
+R40
+L432
+L17
+L481
+R16
+L90
+L76
+L52
+R30
+R4
+L35
+L25
+R326
+R83
+L73
+L10
+R49
+L21
+R972
+L15
+L49
+L336
+L4
+R64
+R440
+L28
+R128
+L3
+L97
+L82
+R23
+R59
+R53
+R36
+L608
+L26
+L93
+R281
+L317
+R74
+L99
+L13
+L27
+R481
+R58
+L49
+R49
+R74
+R26
+R913
+L15
+R19
+L72
+L89
+R90
+R922
+L23
+R50
+L48
+R682
+R74
+L20
+R98
+L381
+R704
+L152
+L652
+L21
+L11
+R13
+R6
+R5
+R90
+R28
+L36
+L63
+R672
+R91
+R326
+L84
+R477
+R56
+L49
+R839
+R85
+R76
+R23
+L26
+L10
+L66
+L21
+R40
+R64
+L95
+R89
+R59
+L57
+R70
+L513
+R43
+L32
+L93
+L36
+R37
+R360
+L60
+L68
+L80
+R32
+R64
+L10
+L14
+L1
+R73
+L69
+L77
+L549
+R2
+R73
+R48
+L532
+R32
+L472
+L628
+R99
+R855
+L54
+L67
+R10
+L865
+L89
+R962
+L66
+R98
+L983
+L91
+R42
+L752
+R96
+R66
+L61
+L42
+R32
+R12
+L39
+R83
+L46
+L80
+L50
+R30
+R42
+L42
+L33
+R33
+R48
+R52
+R44
+R56
+R33
+R79
+R88
+L81
+L396
+R77
+L94
+L27
+L20
+L59
+R42
+L77
+L963
+L2
+L85
+R24
+R276
+L5
+L10
+R93
+R7
+R37
+R937
+L37
+L37
+L31
+L69
+R921
+L21
+L14
+L919
+R933
+R62
+R35
+L90
+R670
+R23
+R78
+R22
+R54
+L74
+R782
+L324
+R62
+L16
+R4
+L88
+R23
+R577
+R528
+L35
+L53
+R360
+L8
+L89
+R97
+L5
+R5
+L33
+L879
+L188
+R29
+L93
+L9
+L61
+R53
+R81
+R82
+L937
+R76
+R79
+R78
+R20
+R502
+L19
+R19
+R29
+R71
+R57
+L28
+R38
+R262
+L34
+L46
+L49
+L27
+R27
+R320
+L8
+L78
+R66
+L80
+L20
+L35
+L18
+L536
+L11
+L4
+R65
+L61
+L33
+R862
+R92
+R76
+R3
+L21
+L79
+L139
+R45
+R694
+R94
+R671
+R130
+R34
+L29
+R22
+L22
+R94
+L94
+L37
+L23
+L69
+R4
+R62
+L44
+R7
+R65
+L84
+L12
+L97
+L43
+R71
+L13
+R15
+L38
+R43
+R44
+L26
+L25
+L31
+L69
+L451
+R409
+R41
+L69
+R57
+L87
+L65
+R65
+L631
+R831
+R59
+L86
+R3
+L81
+L46
+L478
+L171
+R60
+L960
+L51
+R151
+L597
+L3
+L48
+R50
+L30
+L68
+R523
+L66
+R37
+R216
+L14
+L20
+R90
+L70
+R58
+L22
+R116
+L166
+L80
+L83
+R77
+R226
+L98
+R72
+R14
+L63
+L92
+R54
+L25
+R2
+R10
+L94
+R670
+L44
+R68
+L82
+R363
+R293
+R29
+L60
+L11
+R41
+R2
+L87
+R40
+R96
+R280
+L92
+R888
+R434
+L34
+R26
+L726
+L58
+L73
+R131
+R319
+L93
+L74
+R85
+R29
+R34
+R38
+R62
+L97
+R97
+R36
+R171
+L91
+L765
+R179
+R70
+L21
+R93
+L27
+L345
+R48
+L208
+L17
+R16
+R3
+R16
+L98
+R4
+L235
+L29
+R48
+R885
+L1
+L20
+L12
+R40
+R49
+R511
+L5
+L25
+L70
+R80
+L73
+L64
+L78
+R933
+L4
+L94
+L23
+R45
+L12
+L38
+R28
+R803
+L6
+R3
+L65
+R2
+R73
+R17
+L1
+L26
+R20
+L20
+R79
+L64
+L17
+L98
+R95
+R87
+L82
+L6
+R30
+R39
+R62
+L11
+L32
+R51
+L90
+L65
+R22
+L66
+L34
+L68
+R90
+R26
+L137
+L73
+R519
+R43
+L49
+R81
+L60
+L1
+R96
+L48
+L22
+L56
+L11
+R70
+R96
+L78
+L2
+L40
+L247
+R69
+R81
+R37
+L16
+L199
+R192
+R52
+R55
+L87
+R55
+R32
+R64
+R36
+R326
+R66
+R17
+L9
+L88
+L89
+L23
+L3
+R3
+R56
+L856
+R71
+R29
+R23
+R52
+L270
+R7
+L75
+L37
+R95
+L26
+R10
+R58
+L29
+L52
+L218
+L38
+R4
+L47
+R943
+R75
+R44
+L23
+R55
+R49
+L8
+R56
+L48
+L51
+R37
+R81
+R33
+L49
+R47
+L98
+L14
+R14
+R57
+R432
+R25
+R418
+L32
+R71
+L25
+R54
+R53
+L353
+R56
+L5
+R14
+L65
+L46
+R23
+R723
+L87
+L69
+L44
+L39
+L61
+L72
+L58
+L86
+L484
+L71
+L84
+L145
+L74
+R48
+L174
+L929
+R93
+R642
+R56
+R938
+L95
+R42
+R45
+R14
+R49
+R34
+L89
+L66
+R20
+L54
+L550
+R454
+L474
+R70
+L83
+R93
+L46
+R36
+L46
+L54
+L4
+R42
+L804
+L237
+R488
+L885
+L569
+R85
+L182
+L12
+R48
+L70
+L748
+L52
+L69
+L31
+R826
+L35
+L71
+L886
+R66
+R43
+R9
+R48
+L977
+R42
+L29
+L97
+R61
+L7
+L90
+R95
+R32
+L13
+R83
+L49
+L95
+R95
+L351
+R7
+R50
+R66
+L3
+L20
+R162
+L62
+L87
+L13
+R52
+R48
+L658
+R63
+L5
+L24
+R32
+L40
+R32
+L11
+R13
+R97
+L30
+R31
+L21
+R68
+R49
+R560
+L89
+L55
+L60
+L52
+R625
+R751
+L54
+R95
+L94
+R677
+L88
+R45
+R565
+R25
+L3
+L170
+L98
+L13
+R37
+R56
+R9
+L451
+R86
+R85
+R30
+L15
+L96
+L118
+L5
+R869
+L92
+R49
+L7
+L131
+L44
+R75
+R58
+R63
+R279
+R75
+L80
+L95
+L25
+R37
+L68
+R156
+R116
+R24
+L190
+R51
+R193
+L47
+R30
+R78
+L590
+R87
+L52
+L92
+R192
+L43
+L14
+L943
+L6
+R6
+L91
+L9
+L271
+L56
+R27
+L977
+L74
+R96
+R55
+R57
+L89
+L78
+L90
+L57
+L57
+R14
+L26
+R93
+L66
+L1
+R27
+R62
+R11
+R72
+R28
+L60
+R52
+R821
+L96
+R83
+L634
+R34
+L48
+R705
+R95
+R48
+L951
+L85
+L81
+R202
+L85
+L718
+R57
+L28
+L777
+L40
+R45
+R61
+R29
+L29
+L809
+L44
+R54
+R16
+L20
+R103
+L78
+L59
+R37
+R95
+R71
+R72
+R25
+R37
+R896
+R37
+L33
+R58
+R42
+L93
+L941
+L92
+R41
+L74
+L73
+R68
+R64
+R82
+L70
+R88
+L973
+L772
+L82
+R33
+R636
+L42
+R8
+L27
+L43
+L81
+L57
+L43
+L28
+L22
+R56
+L735
+R10
+L38
+R60
+L30
+R79
+L294
+R85
+R275
+L15
+R34
+R6
+L8
+R8
+L726
+L74
+R77
+L88
+R27
+L371
+L30
+L3
+L549
+R10
+L740
+R64
+L97
+R82
+L82
+L131
+R31
+L85
+L4
+R18
+L229
+L55
+R59
+L4
+L337
+L63
+R877
+R567
+R56
+R84
+L243
+L19
+R1
+R777
+R58
+R42
+R21
+L21
+L61
+L39
+L315
+R92
+R23
+R28
+L528
+R13
+R87
+L61
+R4
+L143
+L80
+R80
+R517
+L54
+R37
+R60
+R40
+R96
+L28
+L45
+L79
+L75
+R35
+L68
+L36
+R1
+R99
+R7
+L7
+R76
+L73
+R2
+R17
+R207
+L81
+R15
+R34
+R3
+L16
+L684
+R54
+R960
+R86
+R946
+R69
+R85
+L67
+R773
+R61
+R87
+R32
+R14
+L869
+L855
+L69
+R33
+R85
+L741
+R82
+L34
+R70
+R50
+R48
+L71
+R15
+R56
+R26
+R79
+L16
+L70
+R81
+R794
+L76
+R14
+R83
+L515
+R92
+L69
+L23
+R74
+R1
+L77
+R2
+L62
+L38
+R37
+R63
+L140
+L853
+R493
+R390
+R26
+L16
+R98
+L183
+R85
+R58
+R889
+R53
+L26
+L96
+R33
+R1
+R88
+L23
+L277
+L66
+R507
+R19
+R18
+R977
+R45
+R93
+L684
+L96
+L78
+L35
+R74
+R26
+R39
+L22
+L38
+L79
+R24
+R354
+L78
+L677
+R22
+L56
+L289
+L13
+R14
+L58
+L43
+L503
+R19
+R16
+L32
+R65
+L68
+L99
+L67
+L31
+R460
+L73
+L87
+L2
+L98
+R91
+R9
+L379
+R79
+L68
+R28
+R242
+R66
+L4
+R66
+L33
+L71
+R31
+L57
+L2
+R90
+R69
+L57
+L86
+R71
+L737
+L80
+R232
+R79
+L179
+R52
+L20
+R77
+L67
+L42
+L8
+R97
+R40
+L29
+R4
+L59
+L53
+R16
+L62
+L67
+R21
+L346
+L93
+R48
+L96
+R998
+L45
+L85
+R32
+L23
+R70
+R40
+R51
+R97
+L7
+L41
+R53
+L153
+R474
+L10
+L764
+L36
+L14
+L22
+L152
+R24
+L80
+L23
+R503
+L80
+R11
+L24
+R38
+L813
+L103
+L29
+R70
+R69
+R21
+L202
+R479
+R63
+R125
+L780
+R45
+L790
+L36
+L64
+L48
+L52
+R22
+L432
+L84
+L13
+R70
+R17
+R20
+R4
+L207
+L565
+L85
+R53
+L28
+R11
+R25
+R31
+R61
+L87
+R987
+R60
+L60
+L14
+L75
+R60
+L71
+L780
+R17
+R55
+L92
+L464
+L87
+R28
+L83
+R96
+R610
+R681
+L21
+R50
+L10
+L86
+L88
+R39
+R835
+L32
+L68
+R304
+R14
+L29
+R547
+L89
+R53
+R616
+L16
+L51
+L29
+L56
+R136
+L1
+R301
+R923
+R777
+R813
+L413
+R5
+L791
+R86
+R63
+L19
+L97
+R82
+L29
+L53
+L35
+L645
+R245
+R351
+R2
+L65
+L99
+R35
+L38
+L98
+L9
+L91
+R80
+L94
+R44
+R387
+L73
+L55
+R729
+R63
+L805
+L76
+L306
+L474
+R29
+L422
+R78
+R995
+R248
+R56
+R96
+R2
+R66
+L77
+R71
+L293
+L269
+R24
+L64
+R940
+R48
+R967
+L48
+L65
+L2
+R3
+L78
+R460
+L73
+R62
+L74
+L11
+L76
+L90
+L63
+L61
+R129
+L28
+L797
+L15
+R21
+R6
+L15
+R99
+R1
+L61
+L5
+L8
+L726
+L69
+L703
+R1
+R58
+L721
+L83
+L75
+L83
+R75
+L2
+R64
+R736
+R52
+L30
+R378
+R750
+L85
+R37
+L13
+L224
+R37
+R29
+L55
+R826
+L273
+L51
+R56
+L83
+R51
+R22
+L74
+L48
+L82
+R2
+R80
+R555
+L45
+L10
+R555
+L66
+L88
+L20
+L781
+L609
+R44
+R65
+L575
+L25
+L34
+R31
+L87
+R93
+R97
+R73
+R33
+L5
+R999
+L2
+L16
+L2
+L80
+R66
+R2
+L18
+L28
+R78
+L798
+R798
+L94
+L980
+L22
+R99
+R85
+R77
+R7
+L39
+R67
+R36
+R84
+R80
+L973
+L754
+R27
+L30
+R3
+R7
+L71
+L13
+R4
+L92
+L240
+L80
+R52
+L40
+R96
+L28
+R96
+R19
+R17
+R913
+R387
+R19
+R62
+L36
+L26
+L419
+L34
+L87
+R36
+L703
+R88
+R59
+L59
+R13
+R13
+L26
+R44
+L344
+L98
+L88
+R201
+R50
+R21
+L17
+L20
+L49
+L17
+L83
+R14
+L14
+R169
+R85
+R46
+L7
+R7
+R719
+R5
+R15
+L39
+R640
+R60
+R573
+R592
+L65
+R74
+R26
+R59
+L59
+L4
+R64
+L60
+R370
+R71
+R59
+L30
+R30
+L14
+R414
+R29
+L561
+R32
+L64
+R64
+L42
+R24
+L482
+L89
+L11
+R86
+L69
+R24
+L5
+R76
+R88
+R61
+L61
+L16
+R816
+R56
+L96
+L460
+R60
+L14
+R76
+R49
+R888
+L59
+R71
+R29
+R53
+R347
+L90
+L10
+R35
+R88
+L635
+L5
+L637
+L16
+L30
+R89
+L59
+R70
+R99
+L305
+L22
+R82
+R599
+R33
+L582
+R96
+R931
+L231
+R51
+R78
+R11
+L40
+L42
+R85
+R568
+R618
+R921
+R50
+L68
+R68
+L52
+R52
+R5
+L5
+R8
+L53
+L60
+L27
+L51
+R34
+R53
+L4
+L26
+R72
+R148
+R35
+R68
+R103
+R55
+L14
+R59
+L136
+L54
+L93
+L17
+R64
+L8
+R88
+R556
+R12
+R38
+R50
+L73
+R79
+L824
+R418
+R53
+R761
+R786
+L513
+L87
+L65
+R7
+R1
+R22
+L65
+L17
+L86
+R858
+R12
+R12
+L696
+L2
+L81
+L26
+L74
+R86
+L4
+R18
+L38
+L62
+R94
+R6
+L95
+R56
+L61
+R36
+L94
+L47
+R98
+R7
+R41
+R59
+R30
+R54
+R16
+R69
+R31
+L88
+R11
+R86
+R91
+L30
+R30
+R6
+L6
+L94
+L6
+R93
+R67
+L61
+R1
+L84
+R84
+R81
+R37
+R34
+L87
+L62
+L65
+L30
+L8
+L97
+R15
+L22
+R9
+R28
+L16
+R44
+R30
+L2
+L6
+R1
+R36
+L27
+L28
+R23
+L4
+R39
+L46
+R40
+R13
+L28
+R1
+R45
+L37
+R6
+R18
+R37
+L6
+L41
+L27
+R11
+R13
+L12
+R40
+R18
+R46
+R49
+R46
+L29
+R35
+R48
+L10
+R10
+R16
+R40
+L26
+R42
+R6
+R30
+R19
+L43
diff --git a/input/1/example.txt b/input/1/example.txt
new file mode 100644
index 0000000..53287c7
--- /dev/null
+++ b/input/1/example.txt
@@ -0,0 +1,10 @@
+L68
+L30
+R48
+L5
+R60
+L55
+L1
+L99
+R14
+L82
diff --git a/input/2/1.txt b/input/2/1.txt
new file mode 100644
index 0000000..2e84484
--- /dev/null
+++ b/input/2/1.txt
@@ -0,0 +1 @@
+4077-5314,527473787-527596071,709-872,2487-3128,6522872-6618473,69137-81535,7276-8396,93812865-93928569,283900-352379,72-83,7373727756-7373754121,41389868-41438993,5757-6921,85-102,2-16,205918-243465,842786811-842935210,578553879-578609405,9881643-10095708,771165-985774,592441-692926,7427694-7538897,977-1245,44435414-44469747,74184149-74342346,433590-529427,19061209-19292668,531980-562808,34094-40289,4148369957-4148478173,67705780-67877150,20-42,8501-10229,1423280262-1423531012,1926-2452,85940-109708,293-351,53-71
diff --git a/input/2/example.txt b/input/2/example.txt
new file mode 100644
index 0000000..a3f22ef
--- /dev/null
+++ b/input/2/example.txt
@@ -0,0 +1 @@
+11-22,95-115,998-1012,1188511880-1188511890,222220-222224,1698522-1698528,446443-446449,38593856-38593862,565653-565659,824824821-824824827,2121212118-2121212124
diff --git a/input/3/1.txt b/input/3/1.txt
new file mode 100644
index 0000000..76f86aa
--- /dev/null
+++ b/input/3/1.txt
@@ -0,0 +1,200 @@
+3443334373333545324339252335233845533545245422755419334136447332543353734352333342352363164324383844
+3433434334423225944433232334354334442333333924335333942343333233383543372333445344524534333323244433
+6445452443354336524556464436667635356536446542335532632338343422556865453434662554935342463434223136
+2522122122222222213514222332223223222122232532121112132223123212333143222121122332225253222212321211
+1222223242242124231221324122442244142124714212424435424317222323122242413232232443422232242244223233
+2234122222122211233222212122322222222222222212122222222222213223132341322332622221213243232112232212
+2356223112523523532351855315332431353232242235731412344613124336231133453223225343122332352374734222
+3343432333333433333353345383224352442322423613343232333233333222334353244322433323333349333323335332
+7342322222321224721259321122442322323912322222234431214315422526522422685252123223422224521263228262
+2321237353323325232227232324323625332343235343331932233222233323332333243732354322373633211232251338
+6587278866858777575848766583196774727779775755865586583751787657778977475965868675678578574775877768
+4243433343343335433332333662344232834535534353463535333433445334453536554362335333523333323222363333
+1222334223412222322312213223222224223224132322142333222313223222232233432133232522222122322232231432
+7266252247353442465575262453542242436244617535242642143465626662245355662263447433233352622264565552
+2252222223221222222322222211322222222222221222222222342312212222112222122222223221212222222121122311
+2252214253222222122211254121212253225342223513152224242122222322183252332223252231255521212124562145
+3232233343223221533552323233322812243222732333237371343223233422352234325413334443214233362223323333
+2342443423434526262344243443334434122353342643463324544542333433334534234212574643223435444444424243
+4234533874331232443932333323515328233454263273334347334324342533222225345733324339333234342333346138
+3225147738277523635463338685217615828176126784146642842386623467638862577174577655862764255576728659
+2222222222232222223122123222122222122122221122112122322222221225232222322222222222232211222112321222
+3479323224342333223222511252232243342322124343433333222423222214453551323235444432472352233322223245
+5463572146329235254353543532352353454434345543284253144835282525757726144212437443336453583455472233
+1222222122232121321224222122262222222212333232225232224222221222242225213721321323323223221132222221
+2341322341242324233451232255415814465512213322234248221211241242354232236212222122232223323452163412
+4454463265754646433444423485756661531442323357343522334426252546663346334245634521226274343347414441
+2647576354734635436333353353454273639633652433471856516225325343333553543454645525636257353443245656
+2434324664221452323121333334642342424422623424453634123334432232245624343446312873326264222232333352
+4341452433364323733343336332333324343344332343333633633443322323333313333234234432234323431333333333
+6539633785395567855785537696565568653433836276358445868355445588635456465735423644556666765566984565
+5242415277566773245362345636373244476363461772322135753412671171452255524256317474564632275365114489
+5234163333754933332443335632313411333333435246363534333435423743312133323253334516354442325433433232
+3232234523232335215332112333353212123545233533533432535143412323324442133233323333783335322314234332
+2222515311121345232324112232115452512513542442222322424443353212315524445431541121234353443231126789
+5313558143442512332546524125525243435455455424424335433324525342573623365424335654441164544354311347
+4455478257574554847563757556444944565455455661632453455457564745577344644385255775475355544554747447
+2222232222222816322121246651222326222342622252382321342283266252222222222222242222444422514231522245
+3343354327136217325663353616348466432624634323433348426344653794243336744293233743844836947223741433
+3424514445433844253564465344255143437345442344265435573554434425523544446613523362352333543424443543
+5335334765735554437649555196451745532315534523724335121443954695742359425344662446569273433433285945
+2632132473654522564767555356372445554543232535557673147423535263276525772527545342377672238656452562
+2312222333232122222223322222123224132232117122222412222122222224222222233321231121233242223222222221
+2352343234122223331264242632222252623232732252223228213733221142225222432527252213236244322222166222
+6434334432333333343432343433343213434333343372212235334424444233425312392255343327333342132323433234
+5637729423342234152122554387233542421266513424335373189249459522522285272426525523426355763452253544
+1222224233242322222222322233127322233331232132232223311212222822331232222124432222231246524221147222
+6475424747754497572362542656556457796568568769777433767624437569464776754776472354349766637572346952
+4242222221222222222222222241423224227112212222431231243222222422223222213324423211114226224421322222
+2213222222622232212222223221212232282221212223122422223124223222211233223231222234322223221122222212
+2421282221212151722211942221412212222232462252222222123322443224232253652231215222222144121223122124
+4353553222439342433445142433224325445464296514322425542453344221214414622423225234311424415513324222
+7622223151232222622212261222225152432242222226541222225324222524227222912222226682216221522423132222
+2412122222222214212322222212232322122232222141121221221112223212222222121122212222153121222222222222
+5551445735555524563425535545654564354444474555454574445775535664655549547554356643253394147355724553
+4457645566443248644666166554434865162753945446668549887534547977635566947447756334473445448979859463
+4363236852223895223662223424222622133211426312533541631223245257332312283241622222732255422423143263
+7432633323845322632582333598134366362223433935433566532323943332684232343362342236334532533418353332
+2542233541433411138234313242333621227213233443133332323344333233222231713334242211312224219332333637
+2252222665222222221322662222212211552222211452262222224722122173622231222227322222221254722231226122
+3755643313323333363755235253262279952396239263391354672333352621235382239432339636273433638355225232
+2112222225522752212222322211371222222222323122212315226215232212531334441421242323454351422225231222
+3234333533435132444344333334664343545434442324443333534333344333444324454344334323333433333334344344
+2222322622213282452522332221222222222232237432127221321321122233273922222222221222322221351222222221
+6129227274182272122984145224242222212132121124251451229412228226221232476134172221272227222222122155
+5272642647797454676726755477544645676654764686657874246376647346444767677484784466478486765477654455
+2221322222422121222122222221131222222122233232222242313222222232112122222212222212222223222422122212
+5852443543485534276376753656457653426447353379363769566362532752436883455659574766487634785555455141
+3372243334531332343136312123221323323126233222322232133332451333144344433215223243473223254363323231
+6435635764515673424343364453865733636633363326333443646576676843474316743743464566487654635434473765
+7645533351466656354332363646543565635855315535354323363632543755466655466643453344655147253433363544
+6986642968797789943597848365783697649676485763847693779673977765435987957576777545514656248774774678
+4222121222522325222112142222212212322212224112221222232122222413223243222222222422122222212232322322
+2232326121335233421131252223622233132322252512122232321538152334322542223222243521522222222112234654
+5342444664463483453437262633322135233373726432336234672536344245545365424532564533336433673244443256
+4634442425423525234475454552964857432553554548383544655653648152538648253744555326645255634434473446
+3218226214142132122212222233223212123122212232223132225271222223221212223322221231335522313224222226
+2223232222322722424241212521222421221141222232411222523223221222222222212221721113142222212122322832
+6565355545444463543535732644355667541335646434342233544316656665576522423334433535833453474524725733
+2532421333243234235353643313631443343384344333535334433435354323343433334323346325333133753542451122
+2282522432124725336322227335422122425322352722132212342221432235233253227133223321347513256225422232
+1253452292222333352435422435523532548132651242426224244225244233229332335341426244532272222222335646
+3627486635954534544524423344731347284252435743355334643685384393434345325534523334455563353332459254
+5423322244233223525424126524225544252424522547455545364463456265663534342325442235743323428465155724
+2124423262221415144242322112633222242422632221411232626232161222242254221232322512221224433442149222
+4345666479678668698677636849647678774678647888345593879897757987766298795455995675544798996739548647
+2212321232222212222326242272323631122322221222624225222421324221112222222222321142226212211212152315
+2641322223673222544141472338955335463224333238122225843432223232331345234424313224332335382352433334
+3535633432363242933333233533333634323414323432223351932543244454243532494323343253375832553563634263
+3585452227854556644975675429775442784231428228835285613535476485625633466326666686231288136933765346
+2265522222225222223422622222221227222533812222245322652243312129222222252522412124212421342332262222
+2221222221222222322111222222212212222222222222122222231122125211231222121221232332222222222222122222
+2224321242222222725222422222222122211221122322222211222333727121222212224213222211222221224313222222
+1222122244341212123222222221222434223222533222841142312423212122223221422122324123221223224232222221
+2212122424418142325432427234222223221121244272224222242122152212323212222542131441141222122222222242
+5247422325224324334251313334573324744323231653313243244343732543343543445533324254144222323444435434
+2222222213222221242412221222422412242222422222222243422222223322223312321222222224312222114242222122
+3433323211432232132333342315221231212122422222223222342532222232222322332322322122223362212332333222
+3336366236534333312658733734812673565367363633493427564523237435227565326333443426834362824644625364
+4357465572665564346562471343766669441943122463423433275637564576536879724267437222494748333653233755
+3251333123384395933353113591332432852332831353331563423331133323737233324232263533334453333438225331
+2221233222523121122232352233223273222162222122321221542123231721423323212234231221312422922232222122
+2347428434388444244454353267556431343444247474423244667448648646734446449355246426429447447667877484
+8223133312212352535242443324233233122222333322183335482423333235243223512333422218371255223152232273
+2333348272232421233328232223363248533322333433625354362434431131835242333338324343538422217313221333
+5244525525422225172222145521135243655351423435465222523127525225526564112232412222533344243322536522
+9337955566474353798357579763925278522639273594985695778467379693266636984829236465674439753475477496
+5547684493542734555559255658454363554452343755544534537387472843235652634565243655331467564552451353
+5443467255446574437533432441334544864864564822444474948446244458644346434464462464463723442446823442
+3333233243233313323577324313231333124332733833133632283286333128323233723332236333523233313333333333
+2362233252522234655222212124632222112222322122222112221223222831251242212221222221321513222221211222
+3354445327232543341248374345453445344433254354223343445433432334362532333452434254535453343443334323
+2231223332232221232122123312222342235222314222312123223211232212412222222332522222222222222221222222
+3122331422322226223252212432593231242142222522332233122321422322323232222323233321232322222422234232
+5335733324234435724423153333323142342535232253531532334343232333323333332253345522324353321633553533
+7169583588263547243342327722838442434722247325245338435256142653493663273773412363285334461371345338
+4315513145533243342177352723333231323465427245425542334392472445333535435572234447721542443115232365
+3598423344472794382532464291685232264482695248493462263157561768216278292523392646639572838674538327
+5523624134533422152411233222312342243132221333546324352223533333222363434433244244332322322232432323
+3133434421232232322223432222233332324722323233331323533243353212312734323222423233123422231133223222
+1422224443333422222353325323342344452434323253344243334431234423231122423323333343332321514234352443
+6395962918225862223357365712226336244825423496424453226299443829425838422422455423268785482242284422
+3643114411566633356554625155132613411634514446251351451346145565241362514361644441451632322655242789
+2523714443344511337123154283355233333362325372532226255455454325224258142552122322214274532253344542
+4553125267216322224232816122612162222321662422222425226932562221235674623355612326234343362433233388
+3333533343821121333522355383343333222333258325323354223327324343334123332322635322435442333344443333
+6223236422282522227431235325123474353122322463322133332647342441122434275163313223265554642123242324
+4272223622412225314212212522622282231832158451323322143823522223912742424122242624132257322244172622
+2224222155323132318342733243342211324912221342623533153232229332522461213221394315222126282217724553
+6444253222632333533343433313232463344324312623234253462151234425362314252346225462342332342362424424
+2333241133333142327223122676122234324325133273451333273432236333232332232333236323362153333511332423
+2622841423321437487245225223923344285242626133252223413726244525122143252222415613238265333255832251
+7422224429353455322152232434625152493853521211212124252942555212213414354224236532225745625232632442
+3121212122222223222222222233222122222412222231412232222222212312126222224221263242221221322222425232
+1334232453342333332322323332343444333323332332422144234453433372346432334433432241233234325432428322
+4945325934553842923574553641695874566754752896523778566836675548475879374364474775377487434446674963
+6343131336333332332234332243632221332242336323333233566232333233223122243233263333613433462363213243
+4333211242332332426414263423453341422333426442332334443334429325223544144442343223423232831223344343
+2334153354134131432442236224421112742323323244414422323512245431275123471434432283112342424431424633
+4534545535564344523732653644424324543536135645545423554446415556545453735455962344345435336344554543
+2363222824233642423243512331621435342321233333215422632323234242613332365438333521365224113394232852
+4234136254444236238432341433752234334336334422354254469347244244342434345315585233442384445354243237
+4213323213431314121332114434141344444132141313113144413112241421311141443321321323123232313423456789
+1343343443443323445354253424327354255342342311441633334435533523333353313235234233634523433234344332
+5655679687663778498467668476986855546947369596975837586696386596866728486757888448648436677688744654
+3553138525342232333314525344432255238835138282723438363743582321542582452873523723234747438252551324
+1244425125443553423454413427556553352248144443433327253355534353453583252542243233453442241554262342
+3562433533563245323438323433411123433324332336533472132253433543363323234135233413133324733323254353
+2123422622317222566221113211225224252222222223115262222714215782223271172282226233213626222212112286
+5476553333435254792363268464263246612943846133375433833334943323443374332644824426453562217343432234
+4533642264534842545364852444441433449423574454644384446843456444473434416342274464344364385466363414
+2553333321342232354553153452423232423344343223613573335643346441233334315233323233343363233523343343
+2222122722241242292222356221123322226212122223232272922122221222222222222224221234223222123212222226
+5864635976747746353755462554626715346468766683655468485847178685788563655943775686234852636677785234
+5324243244361436658433613342334233432254342453534463542344644316552243454822324453631535225254253294
+3453465234532143223414332162355225264753223414256623521652441223656325347156535254834235331452533438
+6443223813144537317435135263352345442373348642424725321731533252432336742322612245432474352545511431
+3363234564333333633362497243233343333343232733343233373234353332222323252736233393322333331339342333
+2443241324223433443655642336433232343343424334342342462334333433333433331432243334433433534344333343
+3554232454243364236347249222743222233228673743534134573522736256331443444342222542223762256765223254
+6144442432122352232123514333244422243233343432231362232243222232322324364352313323321442422233132232
+2122212322372122222222222321222131214222371422362222122122232222211221242222132322223223231222262222
+2121322232422324224223321222222133322225221127322327222222222212261222211172237241224222313222831352
+2229635382476445685567731513152346112256322232543768242126227657323575572257232242593845123284628282
+5655256356356414345348335574336464513646333545552444463142264644665355634532334363315632454645333363
+5775734453444434342446531444443324364553424442434221434233244443472343444234253341324134443444444452
+4944744464449343448344334242424449135452434444442445125458448357443444566344252364452444645474443444
+3422332723526222126332462442345336322829222323332243332421224453374332363222253692321272226427422244
+1232224222233122222212222212242242251422222331232222224322412232223222222223222512222223232222212222
+4236256464656326563412244364635525426422634252632461235444142224656474455665246462444765633675457545
+2152122472281322122422332422413243816824222232214231732243244344324224232712123213212322234142222211
+2932465313335325342244258274323563332423235344543152367233333833243933515436234398833237345311334453
+2114253242242421423325334211224322232222528233533327155232252235223221222362473522525312223222232233
+5545266544555454739575555554595564556554734454655655335157553145285634363484534535356572535555555445
+1424532124222222254421422423224222232253545224231125421422154425524445252421325221222444516522624512
+3233333333342334313334333333433442243332332333342333232312434542536322123339641324442444353532643343
+2275626231322521112322222222922235213331343334636156264463556442336445312221254224121422443332233252
+5837142312346243343356333272244344123354234255432544353533222412333245424233233747442331352442123538
+5533323435353234535633313423234233335433453252323232333843534232436744552133933546334663514483435357
+3623223233325322353532522322331221252232213314224354323422522335252353312322222423233112433123221533
+6652245353237562224222366245152425252254226743346226624254245223535363551226362625322232156213225223
+4543555325658545647363554356555443423347242844527854452256659352673744625422335545354444223763472395
+4245563467623222649626215474422425222222132294244413412343221442222261722633262264432241483142229485
+2433343343337543237236132281673423448424333333552783873366244273333455532631745524431327358417325638
+3523658544374454355545552357541541335445545455345734554554435546434545543335443345457348554555335564
+4532522232233224231184748922225222633234231854726422522552364922513448222412423427223235652546122276
+2241143324516423222423252632222332262332412223243324221422563224212222326224223252336342523222241222
+3324423341314144313333533531425435353455343223324323347435382244243545333322314324555144535334434322
+2344548144254334453735464536325454213654552425352355442444483443453414594244432335443433414334452463
+3313233111537242432322483232452144525253231342333532223212231233232243332542222231354233435224322224
+2132225222222331233221342122122132221232221232321232221222129222222222122221422223223222272222222221
+4345522253633552315442253235632134352442253424533523252245252522444225557251515244245575432556443315
+3675458614467383556471586343723636656299942262685272282858229627727742762492461557426175333293623532
+4566623243142426752274652321653253226553252545512454645454622272473122432663222326222544542294121527
+3432462388237445235355765535373547537452574467533462214534572777243567763523753574545535544266433765
+2343332222544322122633132333623133123542226536423422232822232421335332631422322432332122223154431422
+6426245323142423422454352443241244243226424352452344247545342462216226332484222425426222464333526234
+2235322223332225333123422223222423532421412344863121233237412433122343327322222221512112332343132224
+2225223322223234232321542252323222232322222321351322123227212331322222451232322231233322245353422214
+2333333328623223462232333243232533325132733333332323339273385336343233432354366373333326362532233213
+2645652857354336436442542255243563154464359244632516353543234545556466266556433433385634565844314346
diff --git a/input/3/example.txt b/input/3/example.txt
new file mode 100644
index 0000000..7255fca
--- /dev/null
+++ b/input/3/example.txt
@@ -0,0 +1,4 @@
+987654321111111
+811111111111119
+234234234234278
+818181911112111
diff --git a/input/4/1.txt b/input/4/1.txt
new file mode 100644
index 0000000..654e8ef
--- /dev/null
+++ b/input/4/1.txt
@@ -0,0 +1,136 @@
+@@@@@.@..@@.@@..@..@@@@.@@@...@@...@@.@@@@.@..@@....@.....@@..@@@@@@.@@.@@.@@.@@.@..@@@@@.@@@@@@@.@@@@@.@@@@@@@@@@@.@..@@@@..@@.@....@.@
+.@@@@..@@@@@@..@.@@.@@@.@@@..@@@@@@.@...@@@@@.@@@@.@.@@.....@@@@@@.@@@@@.@@@@..@@.@.@@.@.@@.@@@@.@@.@@@@@@@.@@@..@@@@....@@@..@....@@...
+.@@.@@....@@@..@.@.@@@@@@@@@.@@.@.@.@@@@..@@.@.@@@.@@@....@.@.@.@.@@.@..@@@@@@.@@@@@.@@@@.@..@.@@@@@.@@@@@@@..@@@@.@@@.@@@.@@@.@.@@@.@..
+.@@@....@@@.@@.@@...@@.@@@@@@@@@@....@@.@@@@@@@@..@@.@..@@@.@.@....@...@@@.@..@@.@@@@@@..@.@@@@@@@@@@.@.@@@....@@..@@@..@@@@.@@.@@.@@@@.
+@@@@@@.@@@..@@@..@@.@.@@@....@@@@..@@@.@..@.@@@@@@@@.@@@@.@.@.@@@@..@@.@..@@@@@@@...@@@.@@@@@@@.@@@@@@@..@@.@@@@@@@.@@.@@@@@@@.@...@@@@@
+@@@..@.@@@@@..@@@....@.@@@@.@.@@@@.@.....@.......@..@...@@@...@@@@.@.@@.@.@@.@.@.@@@.@.......@@..@.@@..@@@@@@@@@@@@.@@.@@@...@..@@@@@.@.
+@@@.@@@@.@@.@@@.@.@@.@.@..@@@@@@@@..@@@@@.@..@@@@.@@@..@@..@@.@@@@@@..@@@@@@@@.@.@@@.@...@.@.@@@@@@...@@@@.@@@@@@@..@.@@.@.@@@@@@@@@.@@.
+@@...@@@@...@@@@@@@@@.@@@.@@@@..@@@@.@@@@@@.@.@.@.@@@@@.@@@@@.@@@@@@@@.@@..@.@.....@.@@@@@@.@@@.@..@@.@@@.@@@..@.@@@@...@@@@.....@@@.@@.
+@.@@@.@.@.....@@.@@.@@@@...@@@@...@@@.@@@@@@@@@@@@@@.@@@@@@..@..@@.@@@@@..@@.@@@.@@@..@.@@@@@@.@@..@.@@@.@@@@@@@@@@@.@@@@@....@@@.@@@@@@
+@@@@@@@@@.@@@@@@@.@...@.@..@@@..@..@@..@@.@@.@@@.@.@@@@@@@@@@@.@.@.@@@@@@.@@@.@@.@@@@.@.@@@@@@@@@..@@@@@@.@...@.@.@@.@.@@@@@@.@@@@@.@.@.
+@@@...@.@@@@....@..@@.@@@@.@.@@.@@@.@.@...@@@@@@@@..@@@@.@@@@@@@......@...@..@@@@@@@@@@.@@.@@@@..@@@@...@@.@..@@@.@..@@@.@..@@@@@@@@.@@@
+@@.@..@@.@@@.@@..@..@@@.@@@@@.@@@@@@@@@@@@@.@@..@@..@.@.@@@@.@.@..@@..@.@@.@@@.@@@@@@@@@@@@@@@.@@..@@@@@@@@@@@@@@@@@@.@@.@.@@@@..@@.@@@.
+@@@@.@.@@.@@@@@@@@@@.@@@.......@@@@.@..@@.@.@@@.@@@.@@.@.@@.@.@@@.@@@.@.@@@.@@@@@@@@@.@..@@.@@..@@@@@@@@.@.@@..@@@.@@@.@@.@@@@.@@@@.@.@.
+.@@@.@@.@..@@@@.@..@@..@@.@@.@@@..@@@@@.@.@@@.@@@@@@@@.@@@..@@@..@..@@@@@.@@@.@@.@@.@..@@@@@.@@@@@.@@.@..@@@@.@.@@..@@.@@@@.@@.@@@@@@@@@
+@@.@.@@.@.@....@@@@..@.@@@@@@@...@@@@@.@@...@@@.@@@..@....@@.@@@.@.@@..@.@@@..@@@.@.@@@...@.@@@@..@@.@@@.@..@@@@@..@@.@@@@@@@@.@@@@@@@..
+.@.@@.@@@@.@.@@.@..@......@.@.@.@.@@@.@@@.@@@@.@@@@@.@@@@@@@@...@.@.@.@.@.@.@@.@@@@@@@@..@@@@.@@@@@..@.@@.@@.@@.@@@@@@@@.@.@.@@.@@@@..@@
+@@@.@@@@@.@@@.@.@@.@@.@@@..@.@@.@@@@..@.@..@@@@.@@@@.@@@.@@.@@@.@@@@@@@.@@@@...@@@@..@...@@.@@@@@@@@@..@@@@@@@@@@@.@@@@@.@@@@@@..@@..@@@
+@.@@@@@.@@@.@@.@@@.@@..@.@@@.@@@@@@...@..@@@@@@@@@.@@@@@@@@@@@@@@@@.@@@@@.@@@@@@@@@@@@.@.@@.@@...@.@@.@.@.@@@.@@@..@@@@@.@.@@@@@..@..@..
+@@....@..@.@@.@@@@@@@.@@@.@@@@@.@@.@@.@....@@..@@.@.@@.@@.@@@@.@.@@.@@@@..@@@@@@.@@..@@@@@.@@@@@.@.@@@@...@@@@.@@@@@@@.@@@@@@@@@@..@@@.@
+@@@@@....@...@@@.@@@@.@@.@.@@@@@...@@@@.@.@@..@@.@@@@@.@@.......@..@@@@@@..@@...@@@.....@.@@@@.@@@@..@@@..@@.@@@..@.@.@.@@@.@...@..@@@@@
+...@@@@@@..@@@..@@@@.@.@@@@@@.@.@@@...@.@@@.@@@@@@@@@.@@...@@.@@..@@@@...@@@@.@@.@@..@.@@.@@@.@@@@@@@.@..@.@...@..@.@....@@@..@@@@@@@@@@
+@.@@@@@...@..@@@.@@@.@.@.@@@.@@@....@.@@@.@@..@.@@@@@@.@@..@@@@@@..@@.@@.@.@@@..@.@..@@..@@@@@@@.@.@@@.@@@.@.@@..@@@@@@@@@@@@..@@..@@.@.
+@..@..@..@@@@@..@@...@@.@@@@.@@.@@.@.@@@.@@..@@..@@@..@.@@@@..@@@@.@@@@.@@.@@@.@@@@@@@...@@.@@..@.@@@@@@.@@@@@@.@.@.@.@.@@@.@..@.@@.@.@@
+@@....@@@@@..@@@@@.@@@@@@...@@@@..@@@..@@@@@@@..@.@@@@@@@@.@.@@@@@@@@@@..@.@...@.@.@@..@@.@.@@.@@@@.@@.@@@.@@@..@@...@@@.@@.@@@@.@.@@@.@
+.@@@.@@.@.@.@@@.@@@@@@@.@.@@@.@@@@@@@@.@...@.@..@@.@@@@@....@@@...@.@..@@@@.@.@@.@..@@@@@@@@@.@.@@@.@@..@.@@.@.@@@@@.@@@.@@@@@.@@.@@.@@@
+.@@@@@.@.@@@@@@.@..@.@.@.@@@@....@@.@..@@.@@...@@.@@.@@@..@@@.....@@@.@@...@.@@.@@@@..@@@@.@@....@@..@.@.@@.@@@@@@@@.@@@.@.@.@.@@@@@@..@
+...@@@.@.@@.@.@@.@@@@@@@.@@..@..@@..@@.@@@@@.@@@@..@.@.@..@@.@..@.@@@@@@@.@.@@@@@.@..@@@@.@@.@...@..@@@@@@.@@@@@@@@@@@..@@@@@@@@.@.@@.@@
+@@@...@@@@@...@@..@.@.@@.@@@@..@@@.@@@@.@@@.@@@@@@@@@.@.@..@@@.@@@@@@@@.@.@@@@@@.@@@...@.@.@@@@@..@@@.@.@@.@@@.@..@@@.@@@@@.@@.@....@.@@
+@@.@@@@..@.@@@@@@@.@.@@@@@@@..@@.@@...@@@..@@@@@@@@@.@...@@@@.@@...@@@@@.@.@@@@..@.@@@@...@@.@@@@...@@@.@.@@@.@@.@.@@@.@@.@@...@@..@@@@@
+.@@...@@@@@@.@.@@@.@...@@@@@@..@@@@@.@@.@@@@@@@@@@@@.@@@@@.@.@@..@@@@@.@@.@..@@.@.@@@.@@@..@..@@@.@.@@@@@.@.@@.@@.@.@@.@@@..@@@@@.@@@@@@
+@@..@@@@@@.@@.@@@.@@@@@@.@@@@@...@..@@@.@@@.@.@..@.@@@.@@@.@@@@@@.@@@..@@.@..@..@.@@@@@.@...@@...@@@@.@@.@.@@..@@@.@.@@.@.@@@@.@@...@.@.
+@.@.@@.@@@.@.@@@.@.@@@.@.@...@@@.@@...@@.....@...@@..@.@@.@.@@@@@@@.@@.@@@@@@@.@.@@@.@..@.@.@..@@@@.@@.@.@.@.@@@@@@..@.@@.@@@.@@@..@@..@
+@.@.@@@@.@@@@..@..@@.@@@@@@......@@@..@@..@.@@@@@.@@@@.@.@.@.@..@..@.@...@@@@@@.@.@@@@.@@.@@@@@.@.@@.@@@@@...@.@@@@@.@@@@@.@...@@.@@.@@@
+..@@.@@.@@@@..@....@@@@..@@.@.@.@@@@.@@.@@@...@@@.@@..@....@@...@@@@.@@@@@....@@@@.@@.@@@@.@@@...@.@@@.@@@@.@@@....@.@@.@@.@...@@..@@@@@
+@..@@.@@.@.@@@@@@.@@@@@@.@..@@@@.@.@@.@.@@.@@...@@@@@@.@@@@@...@@@@@@...@.@@@@@...@@@..@..@@@@.@@.@@.@@@@..@@@@@@@@@@@@@@.@@.@.@@.@.@.@@
+@@@@.@.@@@.@@.@@.@@@.@..@...@@.@@@.@@@@@...@.@@@.@@@..@.@.@.@.....@@@@@@.@.@@@.@@.@@....@.@..@@@.....@@.@@@..@@@..@@.@@@.@@@.@@.@@@...@@
+...@..@@.@..@@@@@@@.@@@.@@@@.@.@@@@@@@@@@@@.@@..@.@@@@@.@@@@@@@@.@@.@...@@.@@@@@@@.@@@@.@..@...@.@@@@..@@..@@.@@@.@.@...@@...@..@.@@@.@@
+@@@@@@.@@.@.@.@@@.....@@@@@@@..@.@@@....@@@.@.@@@@..@@.@@@@...@@@@@@..@@@@.@..@.@.@@@.@.@@@@@.@@@@@@@@@...@@.@@@@@@@..@@...@@@@@@@.@.@.@
+@@@@.@@@.@@.@.@.@@@@@@@@@.@@@@@...@.@.@@@.@@..@@@@@@@@@@@.@..@@..@@@@.@@..@@@@@@@@@@.@@..@....@@@@@@@@@.@...@@@@@.@@@.@@@@@..@@@.@@@.@@@
+@.@@.@@..@@....@@.@@.@@@@@.@@@@@@@@@@@@@@..@@.@@@....@..@@@@.@..@.@@@@@@@@@.@@@...@.@@.@@...@@..@@..@.@@@@.@@@@.@.@@.@.@@.@@@@@@@@@..@.@
+.@@@@@.@....@@.@.@@.@@@@@.@@.@@@@.@.@@.@.@@@.@@..@.@@@..@@.@..@@..@.@@@@@.@.@@@@..@@@@@...@@@.@.@@@@@@@@@@.@@@@.@@.@@@@..@@@.@@.@@@@@@.@
+..@..@@@@@..@@@.@@@@@.@@@...@@.@@@@..@@@@@@@..@@@@.@@.@.@@.@@...@@..@@@.@@.@.@@@@...@..@@.@@@..@@..@.@@@@@@..@@@.@@@.@@.@@.@@@@...@.@@@.
+@@@@@@@@@@@@.@@@.@@...@@@.@.@@.@@.@@.@.@....@@@@@.@.@@@@@@@@.@.@.@@@.@@@..@@@.@.@@...@@..@@@.@@@.@@@@@@@..@@@@@@@.@.@@@.@.@@@@@...@.@@@.
+.@@@.@@.@..@@..@@.@@@.@@.@.@@@.@@@@@.@@@@@@@@.@.@.@@.@@@@@..@...@@@.@.@@@@@@@.@.@..@..@...@....@.@..@@@@@.@@@.@..@@@@.@@@.@.@@@@...@.@@@
+..@@@..@@@@..@@@@.@@.@@@.@.....@@@@@@@@@.@@@@@@.@@@@@..@...@@@@@@@@@.@@.@@@@@@@..@@@@@@.@@.@@@@@.@.@@@@@@@.@@@@@@@@@..@@..@.@@@..@@@.@@@
+@@@@@.@@..@..@.@..@.@@@@@@.@@@@@@@@.@@@@@@@@..@@.@..@@@@@@@@.@@@@@@...@@.....@.@@@@@@....@..@@.@..@.@@.@@.@@@.@@@@@@@.@@...@@.@@@@@@@@@@
+.@.@@...@@.@.@.@@.@@@@@@@@@.@.@@@...@@..@@.@@@@.@@@@@@@@@.@@@@@@@@@...@...@@@@@.@@@@@@@@@@@@@.@@@@@@.@@@@@@@.@.@@@@.@.@.@.@.@@@@@.@@@..@
+@..@@@@@.@..@@@@@@@.@@@.@@.@...@@@.@@@.@@.@.@@@.@@@@@@@.@...@@@..@@@@@@@..@.@.@..@@.@@..@@@..@@.@.@@@@@@@@.@@@@.@.@..@@.@@@@..@@@@@@@@@@
+@@..@@.@@@@@@@@@@@@@.@.@.@@@.@@@@@@@.@@@@@..@.@@.@..@@@.@.@.@.@@.@...@.@@@@..@@@@.@.@.@@.@..@.@@.@@@.@@@@@.@.@@@.@.@@@@@.@.@.@@.@@@...@@
+@@@.@@@.@@@@@.@...@.@@@@@.@@..@..@@@..@.@.@@@@@@......@.@@.@@@@@@..@@@@@@@@@..@..@.@.@@.@@@@.@@@@.@..@@@..@@...@@@.@@@@@@.@.@......@.@@@
+@@@..@..@...@@@@@@@@@@.@@@..@.@@..@@@.@@@@.@@..@@@@@..@.@..@@@@.@.@.@..@@@.@@.@.@@.@...@.@@@@@@.@..@@@@@@@@@@@@@@@.@@@@@.@@.@@@@@.@.@@..
+..@@@.@@...@@@@@..@@.@@.@@@@@@@@.@@@@@@...@@....@@...@@@@@@@@@@@.@@.@@@...@@@.@@@@.@.@@@@.@@.@@@.@@@@@@@@@@..@@.@..@@.@@.@@@@.@.@@.@...@
+.@@.@@..@@@@@.@@..@@@@@@.@....@.@@@@..@.@..@.@@@...@@@.@.@@@@@@@.@.@@.@@.@@.@@.@@...@@@@@@.@@@@.@.@@@@@@@@...@@.@@@.@@.@@@@@.@...@@@@@@@
+.@@@@.@@@@@.@@@.@@.@.@.@@@.@.@.@@..@@@.@@...@@.@@.@@.@@@.@@@@@@.@.@@@.@..@..@@.@..@@@@@.@@.@.@@.@@.@..@@.@..@@@@.@@..@@@.@@@@@@@@.@.@..@
+@@.@....@@@.@@.@@..@.@.@.@.@.@@..@@@@@.@@@..@@....@@.@@@..@@@@@..@.@.@@@@.@@@@.@@@@...@@@..@@@@@@.@..@@@.@@@@@@@@@@@..@@..@@@@.@@.@.@..@
+..@.@@.@.@@@....@@@.@.@@@@@@@@@@.@@@...@.@@.@@.@@@@@@@.@.@@@@@@@@.@...@@@.@@@@@..@.@@.@..@.@@@@@..@@@@@@@@@@..@@.@@@@.@@@@@@@@@@...@..@.
+@@..@@.@@@@@@@..@@..@@@@.@.@.@@.@.@@@@.@@@.@.@@..@....@@@.@@@....@@.@@@.@@...@@@..@@.@@...@@@.@@@....@@@.@@@.@@@@..@@..@.@@.@@..@@@.@@@@
+@@.@.@@@@@@@@@@@@@..@@@..@@.@@@@@@@@@@@@.@..@.@@@@@.@.@@@..@@.@@@@@...@@..@@@..@...@@.@..@.@...@@....@.@@.@..@.@@@@@@.@@@.@.@@.@.@@.@@..
+@.@.@@@@@@@@@@..@..@@.@.@@@@@@@@.@@..@@@@@.@@@@@.@..@..@@@.@@@.@@@@.@.....@@@@.@@@@@@@@@@.@@@@@.@@@..@@@.@@@..@.....@@...@..@.@@@..@@@@@
+....@@@@.@..@@@.@@@@...@@@@.@.@.@.@@..@....@@..@@@.@....@@@.@@@..@@@@@....@..@@.@.@.@@.@@@.@..@@@@.@....@@@@@@.@@@@..@.@@.@.@@.@.@@@.@.@
+@.@...@@@@@@@@@.@@@@@@.@.@.@@@..@@.@.@.@@@@@@.@@....@.@@..@.@.@@@@.@@@@@@.@@@.@@.@..@@.@.@@@...@@@.@.@@..@.@@.@.@.@@@@@@@@.@@@@@...@@@@.
+@@.@.@@@@@.@@@.@@@.@@@.@@@..@@@.@.@.@@@@.@..@@@@.@@@@@@@@@.@@...@@@.@@.@..@....@@@@@@@.@.@@@@@@.@@..@.@@@.@@@@@@...@.@.@....@.@.@@.@@@@.
+@@@.....@..@@@@.@.@@@@@@@...@.@@@.@@@.@@.@@@@@@...@@.@.@@@...@@@@@@@..@@@...@.@...@@@@@.@@..@...@@@@@.@@@.@.@@@.@@..@.@@..@@@@@@@.@.@..@
+@@@@@@@.@.@@..@@@@@@@@@...@.@.@@@@.@..@.@.@.@@.@@.@@..@@@.@@@@@.@@@@@.@@@@.@.@@.@@.@.@@..@@@@..@..@@@@@@.@.@@@@@...@@.@..@..@.@@.@.@@..@
+@.@@@@@@@@..@@...@@@.@@@@..@.@@@@@@...@.@@.@@@@@@.@@@@.@@..@.@.@@..@@..@@.@..@.@@..@..@@@@...@@@.@@.@@.@@.@@@@@..@@@.@..@.@@.@@@@@@...@.
+@@.@.@@@@@@@@@@@@..@@@..@.@@@.@.@@@.@@@@...@@@@@@.@.@@@..@@@@@@@.@.@@@@@..@@@...@@@..@@..@...@@@@@..@@..@.@@.@.@@@@@@@@@@.@..@@@.@@@@.@.
+..@@...@@@@@@@.@@.@.@@@@@@@..@@.@@@@..@@@@.@@..@@@.@@.@@.@@.@@.@.@@@..@...@.@@@@@.@@@@@@@@.@.@..@@@@@.@@.....@@@@..@@.@@@.....@@@@@..@@.
+.@.@@@..@@@.@@@@@@..@@@@@@..@....@@@@@.@@@@@@.@@@...@@@@...@..@@.@@@@@@@@@@.@.@@@.@.@@..@.@@@@.@@.@.@..@.@@@@@@@..@@@@@@@@@..@.@....@.@@
+@@@@@@@@@..@@...@@@@.@@@@.@....@.@@@@@@.@@@@@@@.@@.@.@@.@@@..@@@@@@.@@.@@.@@@@@@...@@@@@@@@@.@@@@..@@@..@..@..@@.@.@@@.@@@...@@...@..@@@
+@@@..@.@@@.@@@..@.@...@@.@@@...@.@@..@.@@@@@@.@....@@.@@.@@@@@@@@.@@@@@@..@@.@.@.@@@@@..@..@@@.@.@..@@.@@...@.@@@@@.@..@@..@...@@.@@@..@
+@..@@.@@@@@@.@.@@..@.@@@@@.@@@@@@@.@.@@@.@..@@@@@.@@@@@@@..@.@@@@@...@@@.@@.@.@@.@..@.@..@@@..@@@@@@@@@@@..@@.@.@@@@@.@@@..@@@......@@.@
+.@@.@.@@@.@@.@.@@@@..@@@@@@..@..@@@@....@.@..@@.@@@@..@@@@.@@@@@@@@@...@.@@.@@@@.@@@@@@@@@..@.@@@@@@@@@@@@@@.@@@..@@.@@.....@@@@@@@@@...
+@...@@@@.@@@@.@@@.@...@.@.@@.@@..@@..@..@@@@..@.@@.@@@.@@@@@@@@.@@@.@...@.@....@.@@.@@.@@.@..@@.@@.@@.@@.@@@@@.@@@@.@@@@@.@@.@@@@@..@.@@
+@@@@@@@@..@@...@@..@@.@@@.@.@.@@@..@.@@@.@.@.@@@.@@@.@@...@@@@.@.@@@@@@@.@.@@@.@@.@@@.@@.@@@@@@.@.@@.@.@.@@@..@@@@.@@@@@@@....@@.@@...@@
+@@@.@@@@@@@@@@@.@..@.@....@@@@@.@@@@@..@@@@.@@......@@@@@@@.@.@@@.@..@@@@.@.@@@@@.@@@.@..@.@@...@.@.@.@@.@...@..@@@..@@@.@..@@@@.@..@@@@
+...@@.@@@.@@.@@@@@..@@..@@.@@...@.@@.@..@.@@@@.@@@...@..@@@@@@@@@@@@@.@@@@.@.@.@@.@@@.@.@@@@.@..@@@@.@.@@.@@.@@....@@..@@@@...@@@@@.@@.@
+@@@@@......@@.@@@.@@...@@@@@@@.@.@@@....@@.@..@@.@@.@@@@@@@@@@@@..@....@@.@.@@.@@@@@@@@.@.@@@.@.@.@@@@@@@@@..@@@@.@...@.@@@@@@@..@.@..@.
+@@@.@@.@.@@@@.@@@.@@@.@@@@..@..@@@@.@@@.@....@@@@@.@.@@@@@@.@.@@@@@@...@@..@@@.@@..@..@..@.@..@@@@.@@@@@@@@@@@.@@@.@@@@.@.@@@.@@...@..@.
+...@.@@@.@.@@.@@@@@...@@.@@@@....@@@@@@@@@@@..@@.@..@@...@..@@.@@@@.@..@.@@@....@@@@.@@.@.@@@@@@@...@.@@..@.@@@.@@@@@..@@@@@.@@@@@@@@@@@
+@@.@@@@@@@....@..@@@@@...@@.@@@@@....@.@.@@.@@@.@@.@@@@@.@@@@@@@@@@@.@.@@.@@@@@..@.@@@@@@@.@..@.@.@.@@@@..@@@@@@.@..@@@..@..@@@...@@.@..
+@@@..@.@@@.@...@@@..@.........@@.@.@@@@.@..@@@@@@@@.@@@@.@@@@@@@.@@..@..@@@..@.@@@...@@@..@.@.@@@@.@.@@..@@@@.@..@@.@@@@..@@@.@@.@..@@..
+@.@@@@@..@@@.@@.@.@@.@@@@@@@..@.@@.@.@@@..@.@@@.@@@@@@.@@@@@..@@.@@..@@@@@...@@@@.@@@.@@@..@@.@@@@@..@@@@@.@@@@.@...@.@.@.@..@@@.@@@@@..
+.@@@....@@...@.@.@@.@.@@@@@@@@@@.@.@..@@.@@.@@....@..@@.@..@@@.@@@@@@.@@@.@@@@.@@..@..@.@..@@@@.@@@.@@@@@@@.@@@@.@@@@@@@@.@@@@.@@@@.@.@@
+@@@@@@@@.@@@.@.@@@@@@@.@......@@.@@@.@..@@@.@.@..@@.@@.@.@.@.@@.@@@@.@@@@@.@.@@@.@@.@.@.@@@@.@@..@@@.@@..@@@@.@@@@@..@@@.@@@@.@@.@.@@@.@
+@.@@@@..@@@@@...@@@@.@..@@@@@.@.@..@@.@@@....@..@@@....@.@@@..@..@@.@@@@..@@@@@@@...@...@@.@@@@@@..@@@@@@..@@@@@@@@.@@@.@@@@.@.@@.@.@@@@
+@@.@@.@@.@@@@@.@.@@@.@..@@..@@@@@..@@@@@@@@@..@..@@@..@@@@@.@@..@@@@@@...@.@@@..@@..@@@.@@.@@@.@..@..@@@.@@..@@@@.@@@@@@.@.@..@@@..@.@.@
+.@@@@@.@@@@@.@@@@@@@@@@@@.@@.@@....@@.@@.@@@@@@.@.@@@.@.@.@.@@@@@.@....@.@@.@@.@@.@@@@...@@@.@..@..@.@@@@@..@.@..@@@@@@@@@@@@@@.@@@@...@
+..@..@@@.@..@@..@@@..@@@.@..@.@@@.@@@@@@.@.@.@@@@@..@@@@@.@..@.@@.@@@.@@@@@..@@@...@@@@.@@@@@@.@.@@@@.@@.@@....@....@@......@@@@@@..@@..
+@@@@@@@.@.@@@@.@.@@.@@@@.@.@@@@.@.@@@.@@@@@@.@@@..@@.@..@@..@..@.@.@.@@@.@..@@...@.@@.@@@@.@...@.@@@@.@@..@@@@@@@.@@@@.@@@@@..@@@.@@@...
+.@@@..@@@@.@@@.@@@@@.@@@...@..@..@@@@@..@.@@@..@@@@.@.@@@@.@@@.@.@@@.@@@@@@.@@@@..@@@.@.@.@@@....@@@@@@..@@@.@@..@.@@.@@..@.@@@@@@.@@@@.
+@@.@..@.@@@@@.@@@@@@@@@.@.@@@@@@.@.@.@@...@..@..@.@@@@@@@@@@.@.@@.@...@..@.@.@@..@@@.@..@@@@..@@..@.@.@@@@@@.@.@.@@@@@@@..@.@@@@.@@@@@@@
+.@..@..@@.@@...@.@@@@@@@.@@@@@@.@@.@@.@...@..@@@.@..@@@@..@...@@@.@..@.@@.@@@.@@.@.@@@@..@...@.@.@@.@@..@..@@.@@@.@...@@..@@@@@@..@@....
+@@@..@@@@@@@.@@.@@@@..@..@@@...@@@@@@@@@.@.@..@@@..@@@@.@.@....@..@@@@@..@@@@@@@@@.@@@.@..@@@@@@..@@@...@.@@@@@.@@.@.@.@...@@@.@.@@..@@.
+@@@.@.@@@@....@.@@@.@@@@@@@@@@@@@@@.@@.@.@@@@@@@@@.@.@@.@@.@@@.@@.@@.@@@@@@@@.@@.@..@..@@.@@.@@@....@@..@@@@@@@@@@....@@@@@..@@.@@.@@@@.
+@..@@@@@@@@@@..@@..@.@.@.@@@@@@@@@@@@.@.@@.@@.@@..@.@@@@@.@@@@@@@@.@@@..@.@....@@..@@.@..@..@@@.@.@..@.@..@@@@@@@@@@..@.@.@@@..@@@@@@.@.
+@@@@@.@@..@@@@@@@@@@@.@@@.....@.@@....@@@.@@@@.@.@@@@.@.@@.@@....@@.@@@@.@@.@..@..@@@@@..@@@..@@..@@@@.@@@.@..@@.@..@@...@@@@...@@@@.@@@
+@@.@..@@..@...@@@.@.@....@@..@@@@.@@@@..@@@.@@@.@@@..@@@@..@@@@@@@@..@@@@@@@@.@..@....@.@.@@@@@@.@@@@@....@@@@@....@@@@.@@@....@@.@@.@@@
+@@.@@@@.@@..@.@.@..@@.@...@@..@@@..@@@@..@@@@.@@.@..@...@.@@@@.@@@@@@.@...@@@....@@@@.@.@@..@@.@@@@@@@..@..@@.@@@@@@@@@@.@.@.@@@...@.@@@
+.@..@@@@@..@@@@.@@@.@@..@@@@..@@@.@@.@..@.@..@@...@@.@@@@@@@.@@@@@@.@@.@@.@@@@@@@@@@..@...@@.@@@@..@@@@.@@.@@.@..@...@@@@...@.@@@@@..@@@
+....@@@..@.@@@@@@.@@@@.@@@..@.@.@@.@@@@..@@@.@@@@.@.@@.@@..@..@@@......@.@@@@.@@.@.@.@@..@.@....@@@.@@.@@@@....@@@@@.@.@@@..@..@@.@@@..@
+@@@@@.@.@@@@@..@@.@@@.@.@@@@.@...@@@.@.@@@@@@@@@@@@@..@@@@@..@@@@@.@.@.@@.@@@..@@@@...@..@@.@.@@@.@@@@@..@.@.@@@.@.@.@.@..@@@@..@.@@@@..
+.@.@.@@@.@.@@.@@@.@@@@..@.@@@@..@.@@@.@@.@.@.@.@@@@..@@@.@@@@.@@@@@@@@@.@.@@@@@.@.@.@@@@@.@.@@.@.@@@.@@.@.@..@@@.@@@@@.@@@@@@@@..@@@@@@@
+@..@@..@@..@..@@@.@@.@@.@@@.@.@@.@@@@..@@.@...@@.@@...@@@@..@.@.@...@.@.@.@@@@@@@@@.@@@@@@@@.@@.@@..@.@.....@...@@.@@.@@..@@@@...@@@@@@@
+@@@.@@.@@@..@@@.@@@@@@.@@@.@@@.@@.@@@.@@.@.@..@@.@@...@@.@@.....@.@@@@.@@@.@.@@@@@.@@..@.@@@@@@.@.@@@@.@@.@..@@@@..@@@@.@@@@..@@@@@..@@@
+.@..@@@@@@@@.@@.@@.@.@@.........@@.@@.@@@..@@..@@.@.@.@..@@@@.@@@@@@.@@@..@@@.@@@@.@@.@@.@@..@@@@@@@@.@@@@...@@@@@@...@@@@@.@....@@@@@@@
+@@.@.@@@.@.@@...@.@@.@@@.@@@@@.@..@@.@@@.@...@@@@@@@@.@@@.@@@@@@.@@@.@.@.@@@.@.@@@@..@..@@..@..@@.....@..@@....@.@@@@@@.@@@@@@.@@.@@@@@.
+@..@@@@@@.@.@@@@.@.@@.@@.....@.@.@@@.@@@.@@@....@.@@@.@@@.@@.@@@@.@@.@@.@@@......@@@.@@@@@@@@...@@@.@.@@@..@....@.@.@.@@.@@.....@@....@@
+@.@@@.@@@@@.@@.@.@...@@.@@@@@.@@@@.@.@@.@@...@@.@@@@@@@@@@@@@@@@.@@.@@@@@@@.@@@@@@..@@@@@@@..@.@@.@..@.@.@@@@@.@@@@@@@@.@@@@.@@@@@@@..@.
+@@.@.@@@@....@.@.@@@@@@.@@..@@@@@@@.@.@.@@@.@@@@@...@.@@....@@.@@.@@@@@.@.@.@@..@.@.@@@..@@.@@@..@@@@@@.@@@@@...@.@@@@@.@@@@.@@.@.@.@@@@
+@.@.@.@@@@@...@.@@.@@.@@@@@...@.@@..@@.@.@@@.@.@..@@.@@.@..@..@@@@@@@@@.@@@....@@..@.@@.@.@.@@@.@..@@@@@@@@@@.@.@@..@@.@@@@@@@@@@@@.@@.@
+.@...@@@.@@.@@@.@@@@@@@.@@@@@@.@.@@.@@.@@.@@@@.@....@..@...@@.@@@@@@@.@@@@@@@@@@@@.@@@@@@...@@@@@..@@@.@.@..@@@@@.@@@...@@@@@.@@@@@@@@@@
+.@@..@.@.@@.@@.@@@@@@@@.....@.@@.@..@@@.@@.@@.@@@@.....@.@@@@@.@@@..@.@@....@.@.@@..@..@.@@@..@@.@.@@.@@.@@@@.@@@@@..@@@@@@@...@@.@.@..@
+.@.@@..@@@@@....@@@@@@@.@..@.@@@@@..@.@.@@@@@@@@@.@.@@...@.@@.@.@@.@@.@@@@@.@..@..@.@.@@@@@@@...@..@@@@@@@@.@@@@@.@.@.@@@@@.@.@.@.@.@@@@
+@.@@@.@@@.@@@@.@@@@@@.@@.@@.@.@@..@...@@..@.@.@@..@@@.@.@@.@@@.@@@...@@@@.@..@@@.@.@@..@@@@@@...@@.@@@@@.@@.@@...@.@.@@.@..@@......@@@.@
+.@@..@@@@@@@@@...@@.@@@@@@@.@@@@..@@@.@.@@..@@.@.@.@....@@@@@@@@.@@@.@.....@@@@...@@.@@.@.@@.@..@@@.@@@@@@@@@...@.@.@.@@@@.@@@.@@@.@@@.@
+@@@...@..@@@@.@@.@@@@@.@@@@@..@@@@@@@@@.@@@..@@..@@@@.@@.@.@...@.@.@@@@@@@@@@..@@@@@@.@@...@@.@..@@@@@.@@@@@@@@.@@...@@.@.@@.@@@..@@.@@@
+@@@.@@@@@@.@@.@.@@.@@@.@..@.@.....@@@@@.@@....@@.@..@@@@@.@@@..@@@..@@.@@@.@@@.@@.@@@@@@.@.@@@..@@@@.@@@..@@@..@@@.@@@....@.@@@.@...@.@.
+@.@@.@@@@.@@@..@.@@@.@@.@@...@...@@..@@@@@@.@@.@@@@@@@..@@@@@@@@@.@.@@.@@@@@@..@@..@.@..@.@@@@..@@@@@@@@.@@@.@@@@..@.@.@@.@@.@@@@@@.@@@@
+@..@@...@.@.@@@.@.@.....@..@.@@..@.@..@@@@.@@@..@@.@@@..@@.@@..@.@...@..@@.@..@@@.@@.@@@.@@@.@@.@@@@.@@@.@@@@.@...@@@@@.@@@@@..@@@@.@..@
+.@.@@@.@@.@@.@@.@@@.@@@@@@@@..@@@...@.@@.@@.@@.@@@@@@@@.@.....@.@.@@@@@@@.@.@.@@@@@.@@@@@@@@@@@@@.@@.@@..@.@...@.@@@..@@@.@@.@.@@.@.@..@
+@@@..@@@.@@@@@@@@@@.@..@@.@@@.@@@@@@..@@..@@@.@.@....@@@@@@.@@@@@@@@.@@...@@@..@@...@@@..@.@@..@@@@@..@@@@.@@@.@.@@@@...@..@.@.@@.@@.@..
+..@@.@.@.@@..@...@..@...@@@.@@@@@@@@@..@@@@@@..@@@@.@@@@.@@@@...@@@@@@@@@@.@@@@@@@@..@.@@@@@@@@....@@@@@@@@@@....@@....@@@@..@.@@@.@.@@@
+@.@.@@@@.@@.@.@.@@..@.@@@@.@@.@@@@.@@@@@.@@@.@@@@@@@@@.@@@@.@@.@.@@@@.@@@@.@@@@..@@@@.@.@@.@.@.@@@@@@@.@@.@@@@@...@@@@.@@@@@@@..@@@@.@@@
+.@@.@@@@@@.@.@.@@@@@@..@..@@@@....@@..@@@.@@@@@...@@@@@.@@..@@@@..@.@.@@@@.@.@...@...@@.@..@@@...@@@..@.@@@@@...@@..@@@@.@@@@@...@@.@.@@
+@@@@@....@...@@..@.@...@...@@@@@@.@.@@@@.@@@@@@@.@..@@@@@@@@..@@@@...@@.@@.@.@@.@@...@@@@.@.@@@.@@..@@@@.@@@....@...@.@.@@.@.@..@..@.@@@
+..@.@@.@@@@@@@@.@@.@@.@@@...@@..@@@@@@@.@..@@..@@@.@@.@@.@...@@.@@@@@.@@@@@..@@@.@.@@.@@@@.@@@.@@@..@.@@@@@@@..@@@....@@@@....@@@..@.@@@
+@@@.@@@.@@...@..@.@....@@@.@@..@@.@@@.@@.@@@.@@..@..@..@.@@@.@.@@@@@@@.@@..@@.@@@.@.@@@@@.@.@@@@@@@@..@@..@.@@.@@.@.@..@@.@..@.@@@@@@@@.
+@@@@@.@@@.@..@@@.@@@@@@@@@@@.@@.@@@@@.@@@@@.@@..@@@@.@..@.@@@@@@...@@@@@@.@@..@@.@@.@@.@@..@@@@.@@.@...@@@@@@...@.@@@@@.@@@@@@@@@@@@.@.@
+@.@..@..@....@@@@.@.@@@@@.@@@.@@@@@.@@@@@@@@...@@.@@@.@.@..@..@..@@@@@..@@.@@..@.@@.@@.@.@.@..@@.@@.@...@.@@@@@@.@.@..@.@@.@..@@@..@@@@@
+@.@@@.@@.@@@@.@...@@@.@@@.@@@@@@@@.@@@@@@@@@@.@@@....@@@@.@@@...@@@.@.@@@@.@.@@@..@..@..@@.@@@@@@.@...@@@.@@@@.@@@@@@@@@....@@@.@@.@.@@.
+@@@@..@@@@@.@@@@@@.@@@@...@..@@@.@@@@@@@.@.@@@.@.@.@@@@.@...@.@.@.@@...@@@@@@@@..@@@.@@...@@.@@@.@@@.@@@@@@@@@.@@@@.@@@..@@@@.@@@.@@@.@.
+.@@@@@.@@@..@@@@@.@@@@@.@..@....@@.@@.@@@.@@@@@@@.@@@....@@@@@@@@@@@.@@..@.....@.@.@@@@@@@@..@...@@@.@@@@@@@@.@@.@@.@@@@.@@@@@.@@@..@.@.
+@@..@.@.@.@@@@@.@.@@@....@.@.@.@.@@@@.@@@.@..@@@@@@..@@.@@@...@@@@@...@..@@@@.@.@@..@.@@.@@@@.@@@.@@@.@...@@@.@@@.@.@@@@.@@@@@@....@.@..
+@.@.@@@@.@@@.@.@@@@..@@@@@@.@..@@@..@@.@@@@..@@@@.@.@.@.@@@.@.@.@@@@@@.@.@.@...@...@@..@@@@@.@@..@@@@@@@@@.@@@@.@@@.@.@@@@@@.@@@@@...@@.
+.@.@..@@@@@@@.@@@@@@.@..@..@@@@@@@@@@@@@@@.@.@....@@@@@@@.@.@@.@@..@@@@.@.@.@.@@.@@.@@@@.@.@@@.@.@@@@@@@..@..@@@@@@@@.@@@@@@@.@.@.@.@@@@
+...@@@@@@..@.@@@@@@@..@@@..@@@@@@@.@@...@..@@@.@@@@@...@.@.@.@@@@@@@@@@@..@@@@.@@@@.@...@.@@.@..@@.@@.@..@@@.@@@@@@@@.@.@.@.@@@..@@.@.@.
diff --git a/input/4/example.txt b/input/4/example.txt
new file mode 100644
index 0000000..8209399
--- /dev/null
+++ b/input/4/example.txt
@@ -0,0 +1,10 @@
+..@@.@@@@.
+@@@.@.@.@@
+@@@@@.@.@@
+@.@@@@..@.
+@@.@@@@.@@
+.@@@@@@@.@
+.@.@.@.@@@
+@.@@@.@@@@
+.@@@@@@@@.
+@.@.@@@.@.
diff --git a/input/5/1.txt b/input/5/1.txt
new file mode 100644
index 0000000..59f2f83
--- /dev/null
+++ b/input/5/1.txt
@@ -0,0 +1,1187 @@
+436639876131680-436867778393908
+197700960860637-198893061877806
+255753644093984-256141049798709
+2351348670325-2617031498963
+132305455060243-136355961131249
+435738105327068-436449599122321
+103525263650762-109263601125387
+325790710810736-327242721326766
+14267065719571-19713754885181
+193190914974227-194389809136271
+293982406793751-295216301045006
+323845023844190-329536560310239
+292907892178176-294163809044607
+441279431671536-441734947012175
+195881464266764-197136077647965
+438992222880514-439720188043393
+1138886722630-1854190426883
+2351348670325-2617031498963
+260402819310713-260801313119541
+254684163193254-254912091501406
+320106355013024-320106355013024
+302542078244300-305345714739584
+298727251504138-300461809160696
+396167498820829-398717779535761
+4400855877487-4868742298198
+257130691987536-257951515966143
+541881978152383-541881978152383
+196610234096194-198190244156017
+349383978844235-349762616770401
+183960576643697-184978726668743
+444969405647581-446718802519496
+61304715018545-66159151881093
+81520617554440-87934729706190
+259834369549045-260402819310713
+434587230987565-435466102099160
+475435666013023-481706905967204
+533947161016854-541881978152383
+514845169944552-518052420123995
+416462519847165-420821553093953
+396167498820829-398717779535761
+466870584819758-468197356102742
+377045912599205-379402019526561
+121492005967889-128192960880608
+165350397722588-166567604961683
+523602216130118-528877477075963
+486794930310861-490399985238635
+346668568123798-347498421357501
+263741759784930-270004591104064
+453510559403827-453510559403827
+255753644093984-255883541623862
+237029632750300-240866198325708
+66159151881095-67650364848459
+494183422785944-500125695261257
+345448231703112-345736097412168
+299884465540750-301450036951233
+342394384522054-342917428478173
+342394384522054-343269756664439
+439720188043393-439932277547991
+199278226329158-200874723399666
+156628599411913-156628599411913
+114849046814540-118625964441381
+348650279799842-349135926566982
+251363096532313-251754519029658
+2351348670325-3059454811610
+121492005967889-128192960880608
+215903109993819-220160520317358
+4595724410262-4868742298198
+11764600261815-16408688324351
+305345714739585-309765283857435
+343686692179376-343965801195004
+198536528306933-199895172276409
+290236924432701-290236924432701
+448383547620704-449913008882160
+382502598531196-390914491628140
+405909420201677-410130541503465
+183960576643697-188237935670008
+51962013277697-53813300126585
+434353281411495-435243524406101
+223464595521448-223464595521448
+453510559403828-459559466120965
+252153126561253-252392000276325
+191071678578795-192431819097039
+362692344706710-370654124816167
+296854251448735-298173173031698
+443669236357665-445234551662341
+354976739042432-359653081133687
+3059454811610-3402903612047
+437155425700716-437395474195479
+553779369768552-558816033078841
+1854190426883-2617031498963
+202597802194011-206543173679956
+1138886722630-1854190426883
+192264299244619-193376425428411
+349135926566982-349762616770401
+255522055688549-255883541623862
+257951515966143-258174481575672
+255883541623862-256689490174132
+387931485549597-390914491628140
+6447002120018-6846703895094
+507044218634982-510418885916604
+523602216130118-528877477075963
+6846703895094-7184163411933
+132305455060243-138392298598800
+282461539896047-290236924432701
+426299821128178-431250671557138
+91615122525877-99193390510674
+77643299597-926402139635
+23129086310222-29305409989803
+295643608940970-297332743231859
+263741759784930-263741759784930
+494183422785944-494183422785944
+450219329929070-452081472445466
+477672953090653-481706905967204
+42025986713405-48342473949310
+7741071773556-8327653006670
+214028105426882-215903109993818
+254527097937093-254684163193254
+291709376480177-293396513721433
+112530102990519-118625964441381
+242070259011311-249530233518231
+297760250261113-299278734305541
+416462519847164-416462519847164
+56632535322167-58731225107501
+334482514270603-339477569119550
+81520617554439-81520617554439
+58203914594292-59974261998034
+349383978844235-349762616770401
+2135269863759-2859607276208
+8327653006670-9225102488933
+55390560834705-57384780686928
+34160582965213-38080109850518
+433924147210519-434104886793942
+514845169944552-521116262869677
+166567604961684-166567604961684
+6004431119448-6179579759733
+442544600864973-444396613753445
+314203428586513-320106355013023
+141827641940356-148641129957012
+445992312922664-447520263642758
+54576882197287-56478874126451
+272180081867612-276826775088461
+175555988602786-176659954496397
+483295065685033-487816296558127
+242070259011311-249530233518231
+5051996523582-6004431119448
+1854190426883-2135269863759
+194141831401666-195323930008516
+449106805556747-451175636597919
+233591212883937-240866198325708
+223464595521449-230205054673550
+463724193285528-470600784408067
+348650279799842-348863902351621
+352280675243247-358773687775854
+48342473949310-48342473949310
+431250671557139-431250671557139
+447099768779328-448528894445876
+349383978844235-350138800479175
+103525263650762-103525263650762
+350917040198065-351121872602028
+155000750859284-156628599411913
+50733245894011-52622686819434
+171762399865226-180370699099141
+438627291261910-439468151658994
+294843638106269-296309821215654
+73049437165533-77659104685675
+410879657749-1138886722630
+31094751119447-34160582965212
+433195393462687-433650918405706
+433924147210519-434353281411495
+256141049798709-257023728478502
+374512141167076-377045912599203
+94512132119711-96626145043644
+350028006993020-350408432945327
+405909420201677-405909420201677
+558816033078842-561397097410102
+544924158791414-547465000068998
+194756336340510-196079385685652
+206543173679958-208800572147213
+253635004041523-253905636443611
+348863902351621-349762616770401
+4868742298198-5051996523582
+52847898151490-55115334701038
+274411757710907-279797390154032
+29305409989804-29305409989804
+334482514270603-336538665223902
+547465000069000-551608311243321
+
+350335533203126
+385360574958796
+234262113724981
+294830210489023
+478442158496421
+51060125845386
+489366011838543
+20467539616968
+309493089007385
+35476059920709
+516315157936106
+155843407835959
+456007142767771
+256248574496120
+117783252868310
+486322683612937
+175548061347876
+103964673729519
+249065312035976
+498092818843638
+72408239042494
+384863483578993
+480381880152261
+508904657505666
+141339195200670
+468527710921237
+240801362189672
+311624504474432
+267406879792256
+489790658687327
+172167204303582
+50742356801602
+409406749330462
+77312713808414
+474988254396465
+418028548325337
+203875723280166
+483556396831593
+274006514846650
+44162860853548
+236512782028922
+389003547781439
+97921956237812
+556595697000648
+207306737894164
+481950981140956
+122120359619218
+421488833582880
+318231942684891
+5761995102493
+235532974377623
+55763363544356
+353131795479559
+480489941763012
+94729503790645
+454791687732076
+526770326242653
+535146521681209
+430576500558725
+452804092737195
+167227885430837
+243240581180090
+207903495107687
+146666694218178
+210446424146226
+315494139920614
+446055563038145
+469572585798137
+47134806315711
+65382688781008
+6704514273820
+125525849945174
+216069220801594
+353194438127928
+111704888772907
+245978198462529
+556083956728719
+265743891386149
+120231141741495
+545284921187842
+397142470206228
+2914072097246
+320917378370749
+83386731174984
+418734755997286
+419574342385671
+335717636222461
+494793895423597
+223114699995722
+245599537185358
+365729873777363
+318608968969843
+427361798993788
+302196474473106
+283309598904556
+52428079676476
+538475062255329
+31115840248736
+312547528854616
+233910930594751
+115402673489436
+289957426559612
+151941978545988
+185874224269791
+509254517148165
+87483544474577
+361665510982486
+22442789669325
+402902102113318
+114530458429352
+74472503629811
+406841547599155
+236307603614021
+93528502139832
+377323554623858
+451429078651943
+93363731336668
+449744910433794
+548536035872863
+454145837835578
+475534011143611
+525649090440277
+303096921429072
+288960097387298
+364869866612129
+144937651290974
+441898870983094
+150166133135437
+495494237098195
+191201011747014
+468992254208908
+499863204504806
+24892464308673
+452470235372565
+61264210943118
+353365099308890
+2005600991552
+363508877872418
+557836774701927
+467719783836099
+546504846786729
+473888696863993
+511757753137477
+146280052846099
+266090868158842
+44964568205745
+92510698819492
+44049250730300
+240775881464072
+205074962701912
+184272633037162
+525514956307074
+365377265731443
+50788057369242
+134263171872264
+507103608334781
+448450171436406
+211123397837915
+528265207063504
+291853043601474
+549862060291166
+424108510909056
+283586104321846
+123701407478435
+227612611990824
+336420836095420
+539387439130632
+122079067379608
+229277523070520
+238003497073187
+38995216298170
+335806679080051
+306486852894838
+23795428097255
+180282177990399
+546137401853254
+232416498423919
+33285088052369
+76066140890754
+193290140301613
+499805085633896
+43337073440385
+429787346686911
+192927486506573
+211038043491124
+293032821411478
+243763645806763
+560629851358885
+537228036886047
+427847529028482
+44242024721859
+65731056630098
+155970437870471
+325990440518626
+388430555198874
+136132983443499
+540726756836203
+292559818825276
+244352202573471
+106316808502106
+410410586015926
+48426601921587
+181567510763963
+118072282589142
+106494543793667
+363582544211396
+304777829542749
+86942979495455
+84554465680621
+416590337967435
+479472288183507
+366216950049031
+306892600764410
+329450395319355
+550866675560102
+510535310472069
+317129496346605
+185308997168686
+327101122524533
+540877633468895
+193627093388125
+416876991364870
+417529557558348
+227499069849278
+397910116190177
+331933049256207
+520890291673750
+62217465500801
+553873886997682
+63605908906508
+173269523333398
+519001772512600
+305983930747469
+405486560469617
+539490225847749
+482433167612850
+454292040562867
+265805731868422
+142195748895645
+137593007471463
+230427725651681
+192700146268862
+15002883669233
+184404393246163
+272906145343591
+309729177460290
+317263563199829
+144708657780242
+114310461634963
+288568045429530
+225536134912638
+60707676760834
+115242733560461
+495185370761280
+235876755089517
+208107639941041
+348187702003158
+12904927621583
+165367311459622
+295457123959426
+219930318193898
+19043785910845
+338502378066123
+197264511405876
+520603954987306
+506715026610138
+265894659354076
+485388940068705
+494048371764580
+315622097097757
+253991283332714
+447704507963800
+51864842580539
+525073614236087
+446939056087325
+279295679728212
+80638543252164
+285638213741042
+224187531810143
+279524199887892
+186821738562114
+144881090223203
+198185990675999
+245325001365227
+376426022305901
+325855676545988
+186255794691783
+356294789705458
+539525945293020
+351269615643208
+304419654683550
+32996904990448
+525508918556984
+557244194331309
+319036241459597
+55103779028235
+113064457699087
+57870840608143
+439141147444072
+57828702776882
+286015033624460
+7762072158558
+223656672078296
+193564137438167
+534359123879040
+176922211075803
+305140187899636
+207743709951953
+292763506515034
+136929097153961
+353832774528044
+264860851142312
+129557229248886
+349921485593099
+520714758443675
+93092192949047
+374599574821953
+363221209235065
+216154337365793
+365774816589257
+397567141486590
+296631611876851
+248467879605740
+125185995834579
+406182968984545
+42188163981751
+246977315681721
+179506212825220
+389928186679853
+555750182006516
+205213910579475
+34895823631967
+129556898836918
+519169255693079
+275895777691751
+107187211210198
+237980334370650
+295176304479507
+127691425191387
+207333881364859
+337625495738410
+522245821730736
+113114791655341
+177437435245675
+177194089716495
+307931092900459
+385161056302666
+518618957916859
+26121486542669
+83261854220697
+438862947516233
+365037235100453
+523524240482758
+39049839274644
+162096928927647
+541260969900525
+223946260538682
+252185130164848
+95816552446210
+535633244766886
+114229384442459
+288630683873686
+192747459989976
+241726879176480
+81157613842641
+238386992905380
+467291052089506
+430437825044600
+73475224149330
+396158902280731
+16091670037687
+424870639400583
+492666201901775
+318757381207574
+14685487769412
+476193072794385
+235182011932630
+225473098603578
+505817046791470
+352819279357014
+478463151289923
+16345235096602
+429741187473253
+73549121829547
+8573061642485
+38870989832564
+175140441494098
+143672211811467
+91159778841005
+194349640774626
+59241446475351
+245228532110776
+38044681650664
+77237064743202
+73198381611822
+104716606354910
+508121933075497
+302885321766154
+62148733403893
+294985457958459
+347620995463151
+145696091652920
+145573778187879
+215432784827727
+47311538911018
+356994488349310
+416263051335457
+267902365076734
+359046479193283
+192322917472933
+257035518900533
+487680646496929
+268421586578880
+56496267577450
+177985804450780
+173404137006538
+251655153872098
+452053347034663
+367072364385785
+70610711163465
+562253761390897
+38996558124924
+178582443195523
+348530867097407
+243795265740137
+484365645434191
+342417907282479
+407862752418873
+56364941532306
+482877662606935
+451646806363799
+62240110110332
+535843423215812
+406752359584699
+95827666082447
+187713215199074
+297224790712345
+192154689782220
+346753671504076
+284041880612235
+510436777566029
+309312946785960
+547301816650623
+287259927243741
+113530740453224
+45434698397451
+62982791019947
+214355819532745
+182915378576399
+7948207155585
+520244802580691
+166922771771084
+477760097313198
+560168939407503
+37281470801212
+472246704252716
+43381598096678
+269050299745852
+427294382592471
+99139161125895
+518541002269434
+409011824576078
+308899998997829
+550325898675705
+524331937170139
+282676832247312
+86132648344975
+307777606411601
+358916972434869
+236741518523411
+318978414004033
+231010712166659
+383891393419821
+459238395291798
+320596561731144
+387119936718599
+195211200728721
+448219528654728
+29244240551664
+17597308067329
+159146901454577
+49270538548912
+2427344390356
+155981875931572
+53351586242363
+198287856701980
+236311277873271
+546347262496577
+129990381648173
+467427296856269
+304131219228490
+1157560491232
+444183484196883
+235329314968580
+545264874533863
+364059739420789
+137034554096394
+381126041358073
+43628568996155
+528519120305109
+388937595803291
+217145294038584
+17389090174703
+195919232562390
+300162820880823
+314588955800373
+108671986848175
+241338337100107
+329208898832313
+234787895771582
+239848280934618
+498909678520551
+145658130456776
+189240493717556
+388876097204842
+247477111980740
+53867598130951
+61984582869740
+215224095656928
+507487146581447
+118060523785480
+323906933986147
+219174738596332
+389946475638394
+431040709119388
+135060750000040
+389157043060177
+73243619047108
+203689837956886
+485826931236200
+369938245429324
+273910814455024
+389055368445187
+510361561873841
+307606438398878
+518933413032260
+234024861072984
+519172379042536
+457904973043967
+501057872369242
+256598064895820
+409215086811804
+37793599493711
+498335356691302
+449472105728770
+271625859279111
+300092182559524
+298592199451515
+266934014432111
+455477437923449
+232759119822502
+448673981866378
+47316316772808
+15340919637791
+264786597709871
+36725199173728
+340268725338906
+427945720816710
+525630847706665
+268255843916453
+265750770421474
+259454162893178
+558466898233196
+457866529306107
+273109008804782
+210282731078572
+142429911176230
+75088701038842
+441617167465005
+366240041862759
+451270644202131
+398855414473903
+109057614331362
+55977658623470
+427139803038574
+293329250112719
+205018011348883
+559703115036774
+159333800427091
+224360666007307
+447177812658009
+191128228157881
+74943858619523
+172573214918508
+387399708957803
+218078298882496
+195568266529732
+228829935154819
+275961163179489
+550491805513006
+548218443021336
+208365943788739
+144352515620560
+282607101482790
+8274775675752
+56045524196333
+328091182388585
+469758062559351
+377563268786608
+557992496540156
+185449140720657
+383355777621512
+365547903978770
+236731499122202
+496608539777453
+416746892936693
+338326908521089
+28526629215640
+179724316537608
+385471082271645
+185491038732272
+116429947867893
+205939765934505
+555391007906677
+62755608266965
+417369336169553
+215602206359600
+60820800301773
+335285777672037
+269998317946937
+481262532435947
+16522151939220
+429459061577461
+248382716427584
+296662293820211
+418734458100433
+32320952211623
+420466996717905
+333332158104802
+390375811415981
+105702418625371
+366552772597254
+47855601705658
+192071774026783
+45621945037236
+377029031798650
+98189397886622
+446973952425719
+138021210848926
+178569649117302
+293105867870769
+81652320636119
+298825573668776
+284232934820775
+154690884178639
+133239323980123
+114522878457874
+91764309013649
+362940306301148
+455162353537361
+18460319323838
+306862905070115
+442973468244840
+17483635283493
+358418731925598
+434913379782982
+8484360320988
+132598327945002
+26980128322506
+25811004188634
+390231028374099
+380603448338658
+145943052416454
+559073959457316
+223593651735886
+545478564672272
+467802870583398
+299814347294366
+385324228319559
+177483354597704
+475998737825129
+304158679714957
+115635040500149
+364896031821143
+23187460314348
+95139913138122
+219586350407531
+362054684326468
+475103619263391
+560492315791414
+349787817169619
+515746153064109
+22487563790678
+287119826967871
+539464336413908
+244330585656069
+127069165162062
+357692004496152
+107327944999226
+276807376694206
+316284295981652
+38965919826305
+93692824689788
+213010741884323
+249488955418106
+380579679941806
+107674029193042
+198443625525465
+296324693730294
+14852103824275
+96618476088857
+468552712705725
+193971558175143
+525696462589531
+447280046959418
+536405799454170
+97977578106157
+516583183151712
+5563314188620
+399616447886004
+417202828527573
+483069718599709
+328694525220932
+384368322682664
+83422477961746
+31333667164060
+526335480994287
+233182844423274
+47478593118534
+397682396387259
+316273176238421
+454405946176112
+97421033252163
+2234849224190
+377231141670636
+456218700593158
+183987805788552
+194495680726909
+51515950375873
+228517623369942
+244472732958757
+390550574863594
+161229765665043
+481346506890947
+549263114568170
+176799201970835
+300339075331394
+518792141519158
+448789454464804
+155327014095772
+235160828838351
+104264942590199
+453515466475636
+176605077477901
+326717554248644
+42776286692453
+274615837144431
+447817416261963
+337824579175221
+172202342070460
+276483559792372
+254110170660191
+58153423620945
+43303503704323
+490410262523498
+267422245465704
+352533241673597
+182929067296611
+442867760904183
+24984554515132
+118016260270951
+307486759117545
+205099037842139
+297935653130510
+93101941544800
+178401890896640
+510076073486583
+353025246631866
+417211022829377
+497538740562489
+517593989229898
+85784635838591
+441057969418203
+247585870156658
+314622836369165
+358754429367923
+430123080356332
+199112820188122
+33783569804963
+75162909071003
+474106747323220
+345692882399984
+350343898995797
+17942693713226
+106845850117544
+317828690062067
+83573424694712
+63494535578801
+444407677285520
+103654938369132
+242438081026732
+526968242800863
+180213290097916
+262723516213345
+77230952072784
+193215134156420
+480896973548618
+285249307033482
+146464411142333
+18319440396198
+539265872743833
+134458351753147
+216813625637649
+236001270067552
+351588926393082
+517364282014045
+206699483321012
+269451693523172
+124412413211111
+265715354358310
+59109809813080
+416180649957460
+226235225375827
+363003238616165
+176453080285209
+35232926624253
+238970794341328
+457725227034292
+467501413622165
+424040480962121
+278669759502932
+546547288129340
+521495786924721
+119954411300682
+4639052571615
+516476336639880
+430116252278635
+24778200054684
+17487178330737
+211667819224560
+25125413973346
+411355776884705
+245987139676212
+354685274153181
+365371621459302
+147572350259503
+58555221088890
+331234396802940
+396392382488469
+207147915873631
+288824942338228
+224865305555546
+77334582249242
+263789967668607
+1608590816984
+545782143964917
+439725159715989
+48080832801616
+33792847092087
+25929447389340
+519079159855026
+125982133816588
+426614578624183
+437367058809330
+303697793935365
+114274053891440
+338111764338511
+544946413287104
+339101297061374
+166139400936980
+248028935503564
+478070789941675
+345537295704448
+534411977698376
+326074158905107
+229379087117005
+33066301851353
+136455842691843
+427275637182732
+525696843099220
+61790654998415
+204513922476504
+53636298852254
+517421264301419
+426343741871955
+196659201545557
+287163313488857
+286247862430081
+202793498434151
+98166881026715
+288054311494975
+134713392645450
+93098744337497
+319425306746364
+331101912939558
+151598845441234
+109489797445724
+450653351903818
+477988342867372
+385991512961749
+33282794076459
+145729801092378
+23473433102165
+527743797997284
+36554656395796
+61711754967740
+300419539931760
+374789103857705
+387574026436934
+287671641636459
+499816085229578
+555815288028522
+514316544291227
+117166793718106
+303283750575194
+243455872780372
+485612352528873
+558085705343358
+483317554500975
+477645813981218
+316391304100105
+546360087365755
+324158100663886
+327504985090857
+204728776515463
+280206442600760
+500496936344179
+136517720187609
+434073056928477
+450650554201985
+358984004811241
+356467169269031
+562456272273029
+28392388413323
+417968216910045
+526654474535198
+54950516257959
+53178099677859
+305099509010718
+367405219355916
+73252365889941
+1539279800352
+201526106502214
+276572317110923
+83608669927734
+141714416464935
+267756548100747
+237327357484946
+83451662953011
+225885973021310
+132869904167174
+537410846040249
+425848211676393
+268994342274960
+208464381560359
+91098144557508
+114983424419607
+133698258010346
+235857685962191
+48274039725146
+156887154332837
+15255604514178
+284213794291857
+550465382003962
+362232019945087
+359086047556744
+374768515611132
+396808642280769
+94831734336644
+412989252804170
+83862807377606
+94943210744398
+453532417747573
+43308745180999
+218785147438857
+346948021495876
+383150956958196
+199858400211026
+31870242576099
+200041218696351
+443483000481261
+25553480682221
+436712276096262
+407641268867040
+451874991975388
+426554608097422
+6259084817637
+148286494726676
+478671150687313
+150281614101687
+38917217989541
+539401202390532
+446579096428256
+117172710712819
+218793566500934
+186435642484689
+118987391037016
+550038020369094
+329303314596481
+349141810370996
+389350147844854
+478744362489155
+536701248319379
+98098886944833
+31879487059553
+531388488714611
+327623095481859
+55364872385510
+14473791845353
+426776256058947
diff --git a/input/5/example.txt b/input/5/example.txt
new file mode 100644
index 0000000..2e9078d
--- /dev/null
+++ b/input/5/example.txt
@@ -0,0 +1,11 @@
+3-5
+10-14
+16-20
+12-18
+
+1
+5
+8
+11
+17
+32
diff --git a/input/6/1.txt b/input/6/1.txt
new file mode 100644
index 0000000..231aa84
--- /dev/null
+++ b/input/6/1.txt
@@ -0,0 +1,5 @@
+8373 899 988 15 29 814 685 613 685 476 54 1 442 32 642 86 1 85 47 7 578 98 1 99 579 143 8 12 235 8974 21 4 61 6 73 624 464 51 8 98 42 18 566 837 138 44 5 5 52 75 16 8 683 5 82 8642 2 28 67 63 978 59 9652 128 4668 187 96 751 4254 555 548 298 25 8 73 3238 3228 57 926 99 83 1 379 7497 56 34 98 245 18 76 18 58 881 28 519 7246 83 356 368 738 1 15 79 144 4 62 11 21 792 314 4 855 2 289 96 9 7 57 722 4 1 816 361 49 49 95 39 39 299 556 617 23 484 71 5 4 54 5 65 32 24 127 697 5453 57 72 1 12 16 9 22 9297 9517 92 21 94 9 8 76 3868 4 93 56 44 41 386 49 7 44 42 868 1 76 46 74 53 69 889 26 553 5 9335 6 5 21 3 4 72 584 3 1243 84 8 13 289 538 7563 221 527 28 411 431 8 384 221 314 63 21 24 67 742 8 87 68 76 48 9 6858 2 789 535 68 45 776 4 3328 713 39 69 21 1 632 43 1895 581 74 48 16 464 25 843 86 461 2 37 8826 35 18 77 9171 93 847 17 8 3886 25 3 8 143 82 986 45 3656 695 8 462 4 764 91 738 93 783 892 1 36 85 82 97 17 82 72 94 822 28 6975 5384 9 815 53 44 3218 587 2752 45 79 81 959 1 184 31 979 645 8 2 7 22 21 9 521 25 13 69 925 797 247 8 4 84 47 13 43 91 145 53 582 83 816 71 66 88 1845 74 9577 48 2 22 781 328 1 81 398 28 26 133 58 5 26 978 8 29 466 938 62 83 71 2 99 399 485 7 288 66 3 55 234 23 18 546 849 792 188 52 3 62 24 42 14 9 8 46 358 98 57 79 1468 73 25 38 65 755 41 18 59 622 765 148 251 31 56 353 7 54 58 464 35 3 8 6 64 54 2 771 141 9856 118 453 8852 292 3 64 51 84 4258 11 2263 47 77 26 52 571 4 38 54 57 58 13 38 7 317 89 13 951 339 521 9241 796 63 4 4784 76 338 7 671 6 31 82 155 313 8773 942 2 45 145 54 8 93 452 418 61 77 9 3 4 32 7 545 1 8 66 59 1 3199 79 5 4 1381 4548 69 98 112 2633 83 77 235 6 5 5 9 41 455 76 3833 62 23 5 3 614 96 75 3 765 62 6793 28 8439 297 744 265 33 16 4 2 88 9 64 9 17 75 8 941 3774 12 11 49 5 31 8 73 574 62 96 5 364 7 8 89 8767 2817 44 127 5964 274 4229 29 47 984 27 529 236 7 58 611 86 3797 94 21 72 834 71 76 181 424 63 7 84 3152 247 9 37 23 3 3 8 686 8 749 3912 58 84 21 61 597 166 37 66 6541 52 8 562 4 924 45 99 857 9 14 6 644 23 287 2 68 61 25 77 611 76 88 69 4 2 36 22 5 91 947 848 6 3122 9 33 3258 364 9 191 231 895 962 86 3 423 7 8791 395 52 2 3 5 7 26 19 352 82 7827 9826 29 4 4 48 888 76 6255 1 3 33 735 9 77 67 3255 89 6 766 8273 42 18 838 1 319 237 8 846 978 393 6 157 281 1 84 568 143 38 7 358 13 697 39 96 4 69 11 5 77 43 14 75 6 84 43 3162 3 3 37 3922 821 5 4 5 141 1 97 22 63 3 214 4429 97 1822 5 9289 94 7 284 69 9891 28 922 4 8539 88 6 64 154 573 34 62 28 84 25 54 391 457 45 256 5 1 65 794 9 413 14 85 938 27 24 3236 39 7611 41 19 92 62 784 351 665 2 84 93 7447 28 842 667 26 6 268 45 387 95 297 914 69 925 617 67 214 33 371 16 378 178 532 38 425 799 21 46 315 59 38 2 76 149 8987 89 6 64 45 62 39 74 7756 66 22 5146 4 93 937 822 9 6324 7932 547 44 623 292 89 7287 41 64 2 243 65 3 55 5192 679 833 211 777 999 78 5 96 6 9746 41 633 59 97 36 6747 143 335 64 1 67 77 4 1512 782 1 41 669 257 57 445 77 1 24 46 8 9669 1793 9 69 53 922 21 2 6 8 45 86 72 85 45 371 8 3 47 677 39 189 63 793 6 9 63 489 616 23 72 538 31 46 61 6 532 56 374 4 7839 633 36 46 69 27 51 41 6678 69 6 7631 561 96 86 8 15 4413 85 82 9698 4 467 4 84 55 78 4 212 8364 48 863 598 2 15 387 611 752 64 5898 1895 8 83 261 8 214 44 64 972 79 4935 7 6 433 139 3874 22 317 71 46 981 223 32 18 833 8 37 53 77 1 6 64 933 223 24 111 473 7 86
+788 995 548 18 25 562 387 193 833 474 54 4 131 55 338 986 12 49 772 9 554 31 2 975 187 861 75 44 131 7843 32 775 24 1 24 68 674 13 88 42 76 65 284 522 259 934 89 72 28 688 52 9 878 35 44 3742 5 65 279 24 411 78 8173 385 9997 477 734 341 3958 948 548 7971 676 42 56 469 7787 69 583 11 96 59 793 6634 15 74 951 335 564 95 297 14 644 66 663 8696 25 476 1975 338 3286 9 67 352 68 661 17 12 861 128 4 31 4 644 381 832 3837 2 995 41 15 5 141 49 41 12 53 65 72 437 256 39 157 96 85 8 23 45 51 56 64 471 169 3834 25 34 5 17 98 18 55 268 5725 838 74 56 445 44 66 5645 89 35 324 35 58 994 11 69 793 54 566 27 58 19 72 4783 49 433 71 932 56 321 76 181 56 36 6 96 344 36 5971 14 29 38 284 2684 3893 176 486 74 989 613 316 996 389 565 33 33 777 913 22 829 77 89 36 354 554 2482 151 147 84 31 72 724 39 3854 887 691 94 43 46 545 12 7751 369 15 32 31 921 39 787 72 632 69 4 9894 47 42 619 5613 533 321 31 85 727 872 7 47 938 98 278 16 7418 542 2 256 85 425 14 664 58 46 327 79 564 61 42 4635 31 31 36 778 845 74 4546 8459 169 647 18 7 9753 316 7578 17 94 19 77 18 6984 683 644 731 58 5 48 87 41 43 876 19 796 6 931 815 691 9 79 99 46 134 11 67 911 49 238 6 162 98 47 35 8818 93 4538 73 89 98 116 739 7 45 913 68 82 22 14 89 41 816 3 99 21 997 16 631 824 6 89 462 784 72 8563 33 15 59 848 12 48 325 8893 494 6775 18 517 41 84 64 22 6 4 62 448 58 684 64 3539 848 76 29 23 153 59 555 69 15 939 957 114 95 45 89 6 66 195 431 834 34 51 94 356 72 2 2176 453 3611 993 785 1657 846 6 26 89 84 1422 59 3926 24 17 93 74 841 49 98 847 43 62 69 845 24 628 12 57 162 625 445 569 594 93 26 7683 563 118 2 356 92 85 72 93 989 5377 442 92 69 231 277 5 6617 242 568 21 33 5 44 6 97 7 268 361 1 23 26 817 2891 467 74 34 3111 343 99 65 72 686 45 673 281 81 95 4 52 99 387 83 5385 78 988 776 2 868 53 65 6 263 23 6472 37 2811 599 76 32 29 25 41 6 94 78 35 1 98 91 2 554 2762 94 24 624 42 58 2 348 861 15 99 3 542 16 82 56 4277 5694 52 831 3212 643 3586 39 67 739 76 531 735 6 47 39 867 5165 441 92 331 577 38 31 245 698 474 9 12 3324 819 87 53 953 3897 62 42 856 68 442 1129 14 31 5 81 561 719 95 37 7935 373 98 781 279 163 4 68 562 48 84 86 257 952 539 7 15 3457 46 87 77 126 88 32 9 96 82 82 4 38 29 7 5 9689 8 25 8224 916 92 118 367 977 397 39 345 355 2 4415 284 118 81 81 63 7 62 8233 378 38 1853 8586 38 19 85 87 871 35 4649 6 5 26 618 38 291 36 7923 432 84 899 2342 677 54 21 37 655 531 5 229 742 56 5 288 979 35 41 192 975 5 17 236 66 326 23 89 28 92 38 5 336 31 28 57 74 48 14 4534 6 31 22 188 681 43 57 84 775 441 7 58 34 5 625 615 57 3947 69 4498 94 6 218 18 212 83 778 196 7416 82 87 263 654 383 13 77 8993 698 28 34 978 742 77 635 1 1 29 662 48 357 155 558 45 24 659 5325 72 9526 8 87 36 14 491 39 531 2 12 27 7453 8 6378 634 1891 45 548 31 477 38 96 269 16 143 433 97 661 56 926 31 881 132 974 642 58 279 396 85 899 327 84 2 35 125 2453 38 1 32 13 95 847 337 8952 36 35 6538 2 91 192 624 54 3958 3872 552 3 28 551 36 265 13 38 79 395 432 34 39 9312 3146 454 823 441 856 873 5 81 54 5895 62 757 356 87 69 4458 6364 2616 54 96 41 45 3 6668 449 26 74 643 36 25 573 34 57 366 49 9 738 5147 63 51 561 882 2845 69 58 75 79 798 31 54 34 256 54 78 54 2656 93 716 62 143 9 91 12 87 298 25 63 651 45 31 28 539 361 92 857 99 991 773 68 85 52 64 21 12 8384 23 18 619 313 37 13 9 2 998 19 16 2251 5 5329 2 3773 19 45 74 24 5121 716 913 849 99 265 336 257 496 471 9632 9647 814 77 341 5 585 27 98 951 676 18 554 26 694 127 1854 17 135 99 35 457 218 1284 1499 722 5 426 714 92 54 8 36 532 664 58 471 659 281 89
+187 579 537 41 215 5566 982 287 466 725 8 32 538 81 475 754 527 81 612 83 24 93 21 1222 41 933 417 35 69 3922 55 215 16 81 85 43 744 53 59 757 65 36 861 612 222 269 97 24 25 112 4 69 44 39 7553 711 82 63 3668 79 16 63 2115 271 7794 29 536 43 8752 9 87 1833 435 378 33 959 1828 86 943 28 389 16 994 1517 37 96 946 918 223 84 433 8 828 64 5671 54 24 534 7166 535 6478 6 63 8 46 4291 83 4 543 8363 84 3 83 393 4922 545 4924 3 19 85 38 3 16 766 88 23 87 54 9 41 688 38 578 379 69 527 9 32 38 5 22 132 837 529 42 72 96 274 12 264 549 468 477 868 58 77 274 42 26 81 872 12 855 11 91 311 29 32 1289 922 578 528 22 44 6 9435 42 94 817 886 627 996 538 596 77 48 88 59 253 82 449 42 75 76 395 4311 8155 77 217 87 576 118 578 937 833 152 956 1 1135 7558 4 775 318 61 6 182 587 7765 537 77 93 43 669 66 87 3476 517 3791 25 84 21 57 17 115 655 43 41 16 955 3754 49 7 937 13 8 265 72 44 579 349 194 693 7 21 92 3463 5 88 682 54 491 67 656 749 81 798 95 697 154 355 72 9 4 95 122 93 19 4777 6 31 85 3246 511 111 68 827 448 315 56 3 3717 384 114 79 89 23 9 84 5287 656 433 453 48 16 91 79 49 478 15 76 967 1 4853 17 534 5 218 92 5 269 79 74 33 13 61 9 847 15 46 5 242 14 428 1 189 51 815 211 4 86 68 89 46 21 51 97 29 547 11 45 47 479 65 174 242 84 32 327 819 94 9175 5 78 13 932 86 48 581 9279 852 6516 58 317 14 172 35 59 43 45 9 711 22 863 43 3781 195 89 4 18 763 58 112 64 35 77 956 842 71 56 43 1 76 524 939 669 88 51 32 452 66 9 2897 693 9221 546 22 168 163 58 3 14 19 891 97 164 7 58 93 551 389 96 359 1725 31 56 27 911 55 42 16 29 44 53 769 433 483 85 59 5297 896 338 66 157 83 44 16 15 2937 3168 7 146 93 857 9184 99 9825 918 1 49 49 86 244 35 83 46 179 571 74 87 53 986 864 547 85 38 1858 169 4 81 38 283 36 653 928 686 88 82 366 11 371 77 1372 55 4836 737 29 712 3 28 32 8 86 457 99 7811 97 96 99 48 41 87 3 16 812 42 5 622 48 1 411 1291 41 49 988 352 3595 55 624 187 37 65 88 471 23 326 66 9356 227 6 667 2767 215 415 86 58 79 1 69 819 64 29 57 6367 6383 272 11 562 525 98 58 512 48 7874 44 766 1719 393 24 73 467 2693 68 51 675 18 7 7513 92 19 5 386 782 11 38 11 7527 741 381 35 553 22 5 562 62 38 17 78 529 598 542 36 63 6886 69 69 94 138 53 23 14 28 64 63 5 9 71 5 5 1191 26 129 4931 228 35 876 43 854 1425 246 446 264 423 2513 249 868 442 58 84 4 82 2751 627 4 858 6557 28 62 273 63 573 36 627 21 6 95 54 65 443 49 7726 598 15 264 5747 679 47 8 12 446 811 5 21 35 94 5271 147 27 51 75 79 537 5 42 49 116 756 26 54 855 68 88 124 552 938 53 24 32 762 41 9954 722 323 3 63 67 22 81 86 6 782 5 81 99 92 185 126 166 9528 56 8514 81 53 273 371 949 96 122 458 951 33 451 437 424 758 57 78 3943 363 71 99 366 334 14 72 94 47 9 459 31 14 175 767 66 6 241 3451 753 9386 5 99 76 61 816 35 61 38 75 58 4324 9 5173 243 9383 79 535 51 996 81 77 183 94 242 2159 52 492 63 176 16 292 899 167 841 26 773 1398 17 717 7675 22 32 99 144 8885 9 28 32 87 94 468 657 8978 14 19 425 4 59 425 955 773 127 879 386 2 78 821 39 319 945 4 722 71 2718 76 84 634 5419 226 173 493 266 8184 47 92 27 566 4 681 265 19 723 9879 3166 7343 14 19 81 39 553 844 788 17 53 66 25 91 788 55 737 211 67 9 34 71 24 918 569 726 9139 59 27 98 19 147 98 57 8 495 57 27 95 8263 48 948 56 217 8 24 789 19 955 568 34 57 76 33 17 681 36 18 15 544 278 472 48 74 27 52 15 65 8844 23 93 158 537 532 69 625 3 982 1 85 4676 9 4416 71 2582 35 393 56 79 6412 246 575 191 88 194 346 671 434 964 2564 5162 542 28 182 53 1 34 21 2275 668 7 4429 47 187 445 819 39 426 66 88 484 974 4797 7857 932 84 159 772 87 52 65 16 148 798 897 6 74 8283 79
+65 454 297 88 754 9295 77 83 53 418 6 93 93 6 97 227 392 9 744 74 77 82 25 8638 4 76 464 88 72 4718 33 271 92 83 41 9 879 76 48 543 98 4 434 875 748 167 55 55 1 443 3 71 88 92 6266 8 98 53 6275 95 29 61 8985 623 885 1 612 4 194 7 82 9195 474 516 9 44 182 59 22 27 262 357 142 6259 56 5 744 59 644 5874 913 6 194 55 1514 4 62 277 4258 138 1439 8 89 2 31 7565 35 2 9 8926 94 9 13 552 3389 662 4188 6 86 36 879 4 27 659 36 57 5 3 9 1 33 64 19 761 97 449 9 43 16 9 94 72 6 117 32 38 71 198 8 446 223 7 1 858 75 47 537 74 99 4 617 45 723 9 69 17 62 71 3667 637 768 989 59 77 4 1477 18 44 4366 94 651 4 416 788 67 93 88 45 6 456 9 35 17 89 22 7476 374 36 451 9 83 26 887 634 4 228 188 9 9945 8259 3 187 949 9 5 239 343 6 685 16 32 19 857 7 51 697 77 6954 14 23 84 1 4 437 98 48 15 71 65 1573 76 3 533 73 9 95 16 26 284 16 462 961 3 29 4 5951 83 35 742 6 389 81 843 987 41 738 16 71 232 43 78 5 7 11 695 38 49 2121 7 55 11 7889 41 432 2 85 217 292 91 7 15 744 11 35 37 79 9 82 9216 125 7 563 41 69 63 28 3 1996 58 52 682 2 4835 5 251 93 355 35 1 166 71 28 53 74 1 3 47 76 527 6 55 94 312 5 333 17 967 28 41 6 3 8 3 33 34 91 5 655 75 14 37 131 49 7681 792 12 32 8 183 49 9429 8 53 213 57 38 82 545 9797 473 3187 65 711 61 546 3 11 76 45 7 999 99 456 25 8476 931 89 6 848 228 7 744 81 4 47 855 762 553 16 4 16 41 947 464 7163 61 45 12 787 58 28 1361 275 5877 539 28 52 329 57 9 59 33 276 96 19 9 5 991 918 6 33 627 3711 22 19 2 464 81 93 21 25 4 38 82 792 74 14 158 8876 443 15 37 755 44 37 61 84 7225 36 2 375 64 22 4889 19 5551 41 1 63 6 248 6556 83 14 633 166 856 64 74 59 986 5 868 14 31 39 44 3 11 91 571 56 759 574 837 31 97 454 64 61 87 2 1 8577 714 75 71 7 35 27 6 2 9 77 2378 82 9 3 69 31 76 18 81 334 51 13 688 31 48 776 1894 767 4 184 889 7765 13 892 59 47 7 895 4 26 529 2 17 84 2 492 8139 77 2 87 12 1 5 66 9 92 99 9 1718 983 471 3 979 94 12 52 5 43 6319 31 834 791 677 99 12 413 9615 46 11 23 73 4 8 55 57 8 277 162 47 97 63 766 755 676 1 478 4 8 687 86 67 1 74 39 543 523 456 3 6672 32 9 7 951 2 59 13 29 54 43 63 7 64 7 66 5296 97 944 13 52 72 89 68 89 2132 249 119 381 877 96 475 674 976 911 42 48 89 2392 9 2 717 664 4 31 367 42 18 78 95 39 873 779 5 36 359 92 2722 156 73 69 54 599 59 1 149 893 217 72 4 53 1 1164 336 82 42 7 7 842 9 46 14 625 54 4 32 168 5 83 938 3565 487 17 83 615 311 64 19 147 611 5 34 21 75 18 29 3 561 3 24 83 41 121 682 865 7557 86 862 38 616 29 662 775 41 349 294 85 4 3585 969 6 9 9 39 9955 145 29 8 274 9 6 73 22 157 5 81 41 23 179 588 72 8 692 793 612 3636 2 15 8 5 945 75 91 97 58 77 25 7 2646 929 2993 31 91 94 7 3 78 598 35 77 1872 92 56 22 855 19 43 386 43 627 86 184 3264 1 913 4862 19 446 4 2 337 8 58 34 3 46 198 691 4 36 44 965 33 29 64 73 534 933 71 776 2 8 655 31 393 843 7 867 37 5653 63 98 7 3256 312 63 75 3 8697 36 44 64 176 3 6 846 71 978 116 4227 9272 92 78 9 5 314 11 631 486 57 3 84 95 57 49 537 998 48 47 3 1 86 498 278 323 5927 41 84 15 33 783 8 21 9 22 67 23 81 7954 27 873 28 3 18 27 242 3 191 461 46 2 99 18 65 563 6 29 47 921 8 8 4 38 56 55 93 62 21 49 63 36 134 211 31 262 6 76 5 34 3434 44 9546 38 5679 9 362 32 18 33 467 549 136 15 388 656 157 373 889 695 7981 569 35 686 45 8 53 55 3467 7694 7 7842 38 743 289 95 17 873 11 13 616 42 8844 6578 999 37 728 237 55 52 26 13 74 33 466 1 1 2513 98
++ * * * + + * * * * + + * * + * * * * * * * * + * * * * * + * + + * + * * + * * * + + * * + * + * + * * * + + + * + + + + + + + + + * * + * + + * * * + + * + + * + + + * * * * * + + * * * + + + * + + + * * + * + * * + + * + + * + * + + + * * + + + + * + * * + + + + + * + * + + * * * + + * * * * + * * + + + + + + + + + * * * + + * * * + * * + + + * + * * + + * + + + * + * * + * + * * * * + + + * + * * * + * * * * + + * + * * * + * + * * * * * + * + * + * + * + + + * * * * + + * + + * + + + * + + * * * * + + * + + + * * + + * * * * * * * + * * * + * + + * * + * * + + * * + + + * + * * * * * + * * + * * + + + + * * * * + * * + + * * * + + * + + * * + + * + + + + * * * + * * + + + + + + + * * + + * + + * * + + * * + + * + * * + * + * + + + * + * + + * + * * * * + * + * + + * * * * * + * * + * * * * + + + * * * * * + + + * * + + * * + + + + + * * * + + * + + + + * * + * * * * * + + * + * + + + + + * + * + + + * * + + + + + + * * * * + * + + + * + * * * + + * * + + * * * + + + * * * * * + * * + * + + * * + * * * * + * + * + * * * + * + + * * + + * * + + * * * + + * + * * * + * * + + + * * + * + * * + + * * * * * + + * * + + + + * * + + * + + + + * + * * * + + + * * + * * + + * + * * + + * * + * + * + * * * + + + * + + * * + * + * * * * * + + + * * + + * * * + + + * + * + * * + * * * + + * + + + * + + + * * + * * * + * + + + * * * + * + * * + * * + + + + + * + * + * * + * * * * + + * * * + * * * * + * + * * * + * + * * * * * * * * + + * + * + + * * + + * + * + + + + * * + * + * + * * * * + * + + + + * + * * * * + * + + + * * + + * + * * + + + * + * + * * * * + + * + * + + * + * + + * * + + * + + + + + * + + * + * * * + + * + + * * + + * + + * + + + * + + * * * + + * + + * * * * + * + * + * * + * + + + + * * * * * + + * + + * * + + * + * + + + * + + * + + * + * + * + * + * + * + * * + + * * * * * * + * * * * + * + + + + + + * * + * + + + + + * * * + * + * * + * + + + + * + + + + + * * * * * * * + + * * * + * + * + + + + + + + + * * + * * * + + + * * + + * * * * + + + * + + \ No newline at end of file
diff --git a/input/6/example.txt b/input/6/example.txt
new file mode 100644
index 0000000..337b837
--- /dev/null
+++ b/input/6/example.txt
@@ -0,0 +1,4 @@
+123 328 51 64
+ 45 64 387 23
+ 6 98 215 314
+* + * +
diff --git a/input/7/1.txt b/input/7/1.txt
new file mode 100644
index 0000000..43c81ba
--- /dev/null
+++ b/input/7/1.txt
@@ -0,0 +1,142 @@
+......................................................................S......................................................................
+.............................................................................................................................................
+......................................................................^......................................................................
+.............................................................................................................................................
+.....................................................................^.^.....................................................................
+.............................................................................................................................................
+....................................................................^...^....................................................................
+.............................................................................................................................................
+...................................................................^.^...^...................................................................
+.............................................................................................................................................
+..................................................................^.....^.^..................................................................
+.............................................................................................................................................
+.................................................................^.^.^.^.^.^.................................................................
+.............................................................................................................................................
+................................................................^.^.^...^.^.^................................................................
+.............................................................................................................................................
+...............................................................^.^.^.^.^.^.^.^...............................................................
+.............................................................................................................................................
+..............................................................^.^.^.^.^.....^.^..............................................................
+.............................................................................................................................................
+.............................................................^.^.^.^.^.^.^.^.^.^.............................................................
+.............................................................................................................................................
+............................................................^.^.....^.^.^.^.^.^.^............................................................
+.............................................................................................................................................
+...........................................................^...^.^...^.^.^...^.^.^...........................................................
+.............................................................................................................................................
+..........................................................^.^.^.^.^.^...^.^.^...^.^..........................................................
+.............................................................................................................................................
+.........................................................^...^.....^.^...^.^.^.^.^.^.........................................................
+.............................................................................................................................................
+........................................................^.^...^.^...^.^.^.^.^.^...^.^........................................................
+.............................................................................................................................................
+.......................................................^...^.^...^.^...^.^...^.....^.^.......................................................
+.............................................................................................................................................
+......................................................^...^...^.^...^.^.^.^.^.^.^.^...^......................................................
+.............................................................................................................................................
+.....................................................^.^.^.^.^.^.^...^.^.^.^...^.^.^.^.^.....................................................
+.............................................................................................................................................
+....................................................^.^.^...^.^...^.^...^.^.^.^.^.^.^...^....................................................
+.............................................................................................................................................
+...................................................^.^.^.^.^.^.^...^.^.^.^.^.^.....^.^.^.^...................................................
+.............................................................................................................................................
+..................................................^.^...^.^.^.....^...^...^.^...^.^...^...^..................................................
+.............................................................................................................................................
+.................................................^.......^.^.^.....^.^.^.^.^.^.^.^...^...^.^.................................................
+.............................................................................................................................................
+................................................^...^.^.^...^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^................................................
+.............................................................................................................................................
+...............................................^.^.....^.^.^.^...^.^.^.^.^...^...^...^.^.....^...............................................
+.............................................................................................................................................
+..............................................^...^...^.^.^...^...^.....^.^.......^.....^.....^..............................................
+.............................................................................................................................................
+.............................................^.^.^.....^.^.....^.^.....^.......^.^.^.^.^.^.^.^.^.............................................
+.............................................................................................................................................
+............................................^.^.....^.^.^.........^.^...^.^...^...^.^.^.^...^...^............................................
+.............................................................................................................................................
+...........................................^.^.....^.......^.^.^...^.^.^.^.^.^.^.....^...^.^...^.^...........................................
+.............................................................................................................................................
+..........................................^.^.....^.^.^.^...^.^...^.^.^.^.^.^.^.....^.^.^...^...^.^..........................................
+.............................................................................................................................................
+.........................................^.^.....^.^.......^.........^.^.^.^...^.^.^.^...^.^.....^.^.........................................
+.............................................................................................................................................
+........................................^.^.^.^...^...^...^.^.^.^.^.^.^.^.^.^...^.....^.^.^.^.^.^...^........................................
+.............................................................................................................................................
+.......................................^.....^.^.^.......^.^...^.....^.^.^...^...^.^.^.^.^.^.^.^.^...^.......................................
+.............................................................................................................................................
+......................................^.^.....^...^.^.^.^.^...^.^.^.....^.^.....^.^.^.^.^...^.^.^.^...^......................................
+.............................................................................................................................................
+.....................................^.^...^.^.^.^.^.^.^.^.^.^.^.^.^.^...^.^.^.^.^.^...^.^.........^.^.^.....................................
+.............................................................................................................................................
+....................................^.^.^.^.^.^.^.^.^.....^.^.^...^...^...^.^.....^.^.^...^.^...^...^.^.^....................................
+.............................................................................................................................................
+...................................^.^.....^.^.^...^...^.^...^...^.......^.^.^.^.^.^.^...^.^.^.^.^.^.^.^.^...................................
+.............................................................................................................................................
+..................................^.^.^.^.^.^.^.^.^.^...^.^...^...^.^.^.^.^.^.^.^.....^.^.^...^.....^.^...^..................................
+.............................................................................................................................................
+.................................^.^.^.^.......^...^.^.^...^.^.^.....^.^...^.^.^.^...^.^.^.^...^.^.^.^...^.^.................................
+.............................................................................................................................................
+................................^.^.^.........^.^...^.^...^.^.^.^.^...^.^...^.^.....^...^.^.^...^...^.^...^.^................................
+.............................................................................................................................................
+...............................^.....^.^.....^.^.^.^.....^.^.^.^.^.^.^.^.^.....^.....^.^...^.....^.^.^.^.^.^.^...............................
+.............................................................................................................................................
+..............................^.^.^.^.^.^.....^.^.^.^.^.....^.^.^.^.^.^.....^...^.^...^.^.^.^.^.^.^...^.^.^...^..............................
+.............................................................................................................................................
+.............................^...^...^.^.^.^...^.^.......^.^...^...^.^...^.^.^.^...^...^.^.^.....^.^.^...^.^.^.^.............................
+.............................................................................................................................................
+............................^...^.^...^.^.^.^...^.^...^...........^.^.^.^.^.^.....^.^.^.^.^.^.^.^.^...^.....^.^.^............................
+.............................................................................................................................................
+...........................^.^...^.^.^...^.^.^.^.^.^.^.^.....^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^...^.^.^.^.^.^.^.^...........................
+.............................................................................................................................................
+..........................^.^.^...^.^...^.^.^...^...^.^.^.^.^...^.^.^.^.^.^.^...^.^.^.^.^.^.^.^.^...^.^.^.....^.^.^..........................
+.............................................................................................................................................
+.........................^...^...^.^.^.^.^...^...^.......^.^...^.^...^.^.^...^.^.^.^...^.^.^.^...^.^...^.^...^.^.^.^.........................
+.............................................................................................................................................
+........................^.^.^.^.^.^.^...^...^.^.^...^.^.^.^.^.^...^...^...^.^.^.....^.^...^.^...^.^.^.^.^.......^.^.^........................
+.............................................................................................................................................
+.......................^.^.^.^.^.^.^.^.........^.^.^.^...^.^...^...^.^.^.^.^...^.^...^.^.^...^...^.^.^.^...^.^.^.^...^.......................
+.............................................................................................................................................
+......................^.^.^.^.......^.^.^.^.^...^...^...^.^.^...^.....^.^.^...........^.^.^.^.^...^.^.^.^.^.^.^...^.^.^......................
+.............................................................................................................................................
+.....................^.^.^...^...^...^.........^...^.^...^.^.^...^.^.^.^...^.^.^...^.^...^...^...^...^.^.^.....^.^.^...^.....................
+.............................................................................................................................................
+....................^.^.^.....^.^.^...^...^.^.^.^.^.^.^.^.^.^.^.....^...........^...^.^.^.^.^.^.^...^.....^.^...^...^.^.^....................
+.............................................................................................................................................
+...................^.....^.....^.......^.^.^.^.^.^.^.^.^.^.....^.^.^.^.^.^.......^...^.^.^...^.^.^.^.^.^.^.^.^.....^.^...^...................
+.............................................................................................................................................
+..................^.^.^...^.^.^.^.^...^.^.^...^.^.^.^.^.^.^.^.^...^.^.^.^.^...^...^...^.^.^.^.^...^.^...^...^.^.^...^...^.^..................
+.............................................................................................................................................
+.................^.^.^.^.^.^...^.^.^.^.^.^...^.^.^.^.^...^.......^...^.^.^.^.^...^.^.^.^.^.^.^.^.^.^.^...^.^.^.^...^...^.^.^.................
+.............................................................................................................................................
+................^...^.^.^.^.^...^...^.^...^...^.^.^...^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^...^...^.^.^.^.^.....^.^.^.^.^.^................
+.............................................................................................................................................
+...............^.....^.^.^.^.^.......^.^.^...^.^.^.^.^.^...^.^.^.^.^.....^.^.^.....^.^.^.^...^.....^.^.^...^.^...^.^.^.^.^...^...............
+.............................................................................................................................................
+..............^.^.^.^.^.^.^...^.^.^.^.^.^.^.^.^.^.^...^.^...^.^.......^.^.^.^.....^...^.........^.....^...^.^.^.^.^...^.^.^.^.^..............
+.............................................................................................................................................
+.............^.^.^...^.....^.....^...^.^...^.^...^.^.^.^.^.^.^.^...^.^.^...^.^...^.....^.^.^.^.^.^...^.^...^.^...^.^.^.^.^.....^.............
+.............................................................................................................................................
+............^.^.^...^.^.^.^.^.^.^...^.^...^...^.^.^.^.^.^...^...^.^.^.^...^.^.^.^.....^.....^.^...^...^...^.^.^.^.^.^.......^.^.^............
+.............................................................................................................................................
+...........^...^.^...^.^.^.^.^.^...^.^.^.^.^.^.^.^.^.^.^.^...........^.^...^.^...^...^.^.^.^.^.^...^.....^.......^.^.^.^...^...^.^...........
+.............................................................................................................................................
+..........^.^.^.^...^...^...^.^.^.....^.^...^.^.^.^...^.^...^.^.^.^...^.^.....^.^...^.^.^.^...^.^.^.^.^...^...^.^.^.^.^.^...^.^.^.^..........
+.............................................................................................................................................
+.........^.....^...^.^...^.^.^.^.^.^.^...^.^...^.^.^.^.^...^...^.......^.^...^.^.^.^.^.^.^.....^...^.....^.^.^.^.^.^.^.^.^...^.^.^.^.........
+.............................................................................................................................................
+........^.^.^.^.^...^...^.^.^...^.^.^.^...^.^.^.^...^.^...^.^.^.^.....^.^.^.^.....^.^.^.....^.^.^.^...^.^...^.....^.^.^.^.^.^...^.^.^........
+.............................................................................................................................................
+.......^.^.......^.....^.^.^.^...^.^.^.^.^...^.....^.^.^.^.^.^.^.^.^.^...^.....^...^.^...^.^.^.^...^.^.^.......^.^...^.........^.^.^.^.......
+.............................................................................................................................................
+......^.^...^.....^.^.^.^...^.^.^.^.^.^...^.......^.....^.^.....^.^.^...^.^.^.^...^.^.^.^.^...^.^.^.^.^...^.^.^.^.....^.....^.^.^.^.^.^......
+.............................................................................................................................................
+.....^.^.^.^.....^...^.^.^.^.^.....^...^.^...^.^.^.^...^.^.^.....^.^...^...^.^.^.^.....^.^.......^...^...^.^.......^.....^.^...^.^.^.^.^.....
+.............................................................................................................................................
+....^.^.....^.^.^.^...^.^.....^.....^.^.^.^.^.^.^.^.^.^.....^.^.^.^.^...^.^.^.^...^.^.^.^.^.^...^...^...^.^.^...^.....^...^...^...^.....^....
+.............................................................................................................................................
+...^...^.^.^.^.^...^...^.^.^.^.^...^.^.^...^.^.^.^...^...^.^.^.^...^...^...^...^.^.^.^.^.........^.....^...^.^...^.........^.^.^...^...^.^...
+.............................................................................................................................................
+..^.^.....^.^.^.......^...^.^.^...^.^.....^.^...^.^...^.....^.^.....^.^.^...^...^.^.^...^.^.....^.....^...^...^.^.^...^.^.^.^.^...^.^.^.^.^..
+.............................................................................................................................................
+.^.^.^.^.^.^.^...^.^...^.^...^.^.....^.....^.^.^.^.^.^.^.^.^...^.^...^...^.....^.^.^.^.^...^.^.^.^...^.^.^.^.^.^.......^.^...^.^.^.^.^...^.^.
+.............................................................................................................................................
diff --git a/input/7/example.txt b/input/7/example.txt
new file mode 100644
index 0000000..57a2466
--- /dev/null
+++ b/input/7/example.txt
@@ -0,0 +1,16 @@
+.......S.......
+...............
+.......^.......
+...............
+......^.^......
+...............
+.....^.^.^.....
+...............
+....^.^...^....
+...............
+...^.^...^.^...
+...............
+..^...^.....^..
+...............
+.^.^.^.^.^...^.
+...............