Browse Source

Solved part1

Piotr Czajkowski 2 weeks ago
parent
commit
2649c96cf8
2 changed files with 4734 additions and 0 deletions
  1. 75 0
      01/code.go
  2. 4659 0
      01/input

+ 75 - 0
01/code.go

@@ -0,0 +1,75 @@
+package main
+
+import (
+	"bufio"
+	"fmt"
+	"log"
+	"os"
+)
+
+type Rotation struct {
+	Direction byte
+	Clicks    int
+}
+
+func readInput(file *os.File) []Rotation {
+	scanner := bufio.NewScanner(file)
+	var rotations []Rotation
+
+	for scanner.Scan() {
+		line := scanner.Text()
+		if line == "" {
+			break
+		}
+
+		var direction byte
+		var clicks int
+		n, err := fmt.Sscanf(line, "%c%d", &direction, &clicks)
+		if n != 2 || err != nil {
+			log.Fatalf("Bad input: %s", line)
+		}
+
+		rotations = append(rotations, Rotation{Direction: direction, Clicks: clicks})
+	}
+
+	return rotations
+}
+
+func part1(rotations []Rotation) int {
+	var zeros int
+	dial := 50
+
+	for _, rotation := range rotations {
+		if rotation.Direction == 'L' {
+			dial -= rotation.Clicks
+		} else {
+			dial += rotation.Clicks
+		}
+
+		dial %= 100
+		if dial < 0 {
+			dial += 100
+		}
+
+		if dial == 0 {
+			zeros++
+		}
+	}
+
+	return zeros
+}
+
+func main() {
+	if len(os.Args) < 2 {
+		log.Fatal("You need to specify a file!")
+	}
+
+	filePath := os.Args[1]
+	file, err := os.Open(filePath)
+	if err != nil {
+		log.Fatalf("Failed to open %s!\n", filePath)
+	}
+
+	rotations := readInput(file)
+	fmt.Println("Part1:", part1(rotations))
+}

+ 4659 - 0
01/input

@@ -0,0 +1,4659 @@
+R19
+L18
+L17
+R21
+R8
+L23
+L42
+L37
+R21
+L9
+L14
+R38
+R10
+R19
+R27
+L47
+L13
+L3
+L45
+L13
+L43
+L31
+R15
+R17
+R11
+R50
+R10
+L23
+R7
+R2
+R49
+R23
+L8
+R11
+L44
+R19
+R18
+R14
+R41
+L3
+R6
+R42
+L47
+L6
+L20
+R13
+R10
+R45
+L1
+L9
+R47
+R10
+R28
+R22
+R93
+L10
+R75
+L65
+L64
+L97
+R24
+R22
+L85
+L18
+L65
+L17
+L53
+L79
+R55
+R85
+L8
+L9
+R95
+R14
+L41
+R41
+R62
+L37
+R15
+L17
+L60
+R77
+R60
+L36
+R36
+L32
+R32
+L45
+L55
+R23
+L62
+R39
+R64
+L57
+L7
+R60
+L89
+L70
+L89
+R72
+L84
+R48
+L866
+L15
+R877
+R56
+R94
+R40
+L23
+R54
+R35
+L321
+R21
+L32
+R872
+R56
+R50
+L340
+L6
+R44
+L44
+L67
+R94
+L95
+R68
+R32
+L32
+L57
+L99
+R7
+L589
+R81
+R957
+R67
+R31
+R683
+R19
+R12
+L14
+R2
+L80
+R502
+L88
+R15
+L10
+L739
+L4
+L66
+L24
+L42
+R45
+L88
+L75
+R491
+L48
+R11
+R14
+L14
+R81
+L81
+R63
+R37
+R8
+L47
+R39
+R73
+L73
+R947
+R973
+R42
+L75
+R13
+L207
+L45
+L59
+R11
+R42
+L42
+R15
+L615
+L32
+L151
+L86
+L42
+L2
+R77
+L64
+R87
+R13
+R189
+L89
+R22
+R90
+R88
+R56
+R91
+R53
+R71
+L71
+R68
+L16
+R42
+R6
+L70
+L30
+R17
+L89
+R59
+R13
+L14
+R14
+L87
+R573
+L386
+R9
+L32
+L2
+R46
+L1
+L35
+L46
+R61
+R91
+R3
+L64
+L30
+L76
+R999
+R17
+R86
+R62
+R71
+R471
+R5
+R65
+R76
+L76
+L91
+L9
+L86
+L94
+L75
+R55
+R93
+L24
+L89
+L80
+L86
+L14
+R86
+L86
+L19
+R32
+R87
+L738
+L62
+L44
+L750
+L6
+L98
+R366
+R65
+R67
+R86
+R514
+R164
+R20
+R46
+L60
+R30
+L62
+R62
+R55
+R45
+R84
+L86
+L99
+R1
+R414
+L62
+R893
+R97
+R73
+L739
+L76
+R362
+R17
+L211
+R41
+L25
+L112
+L64
+R66
+L15
+R52
+L76
+L35
+R38
+R129
+L72
+L6
+R11
+L30
+R21
+R9
+L54
+L46
+L94
+R280
+L59
+R84
+L616
+R595
+R745
+L35
+R334
+R114
+R95
+L43
+R12
+L51
+R55
+R84
+L91
+L706
+R2
+R95
+R76
+L76
+R397
+R15
+R927
+L39
+L23
+L77
+L74
+R34
+R440
+R21
+L221
+L45
+R45
+L80
+L16
+L7
+L14
+L283
+L18
+R18
+R839
+L239
+R91
+L91
+R66
+R54
+R37
+R42
+L99
+R836
+L11
+R575
+R54
+R41
+L29
+R94
+R40
+L72
+R72
+L556
+R10
+L854
+R21
+L79
+R15
+R331
+L83
+L32
+L88
+L35
+L50
+R29
+L210
+R65
+L346
+L38
+L44
+R44
+R314
+R79
+L56
+L14
+R77
+R1
+L20
+L581
+R49
+L28
+L725
+R54
+R450
+R53
+R73
+L57
+L79
+R726
+L37
+L79
+R50
+R29
+L879
+R92
+R1
+L55
+R62
+L550
+R95
+R932
+R70
+L97
+L63
+R10
+L214
+L33
+L50
+L834
+R534
+R31
+L31
+R41
+L70
+L71
+L94
+L406
+R43
+R264
+R48
+R53
+L36
+R56
+R85
+R71
+L127
+R79
+R986
+L22
+R74
+R26
+R13
+L47
+L66
+R45
+L63
+L677
+R636
+R59
+R97
+L97
+R23
+L32
+R24
+L654
+L81
+L280
+L598
+L2
+R98
+R286
+L247
+R632
+L39
+L11
+L38
+R32
+R87
+R28
+L24
+L61
+L62
+R82
+L63
+R627
+R73
+R526
+R74
+R23
+L23
+R84
+R37
+R6
+R18
+L45
+L61
+R58
+R63
+L91
+L69
+L60
+L40
+L52
+R118
+L66
+R28
+R872
+L50
+L54
+L96
+L50
+R520
+R30
+L78
+R578
+R242
+R47
+L21
+L68
+R46
+R54
+L55
+R48
+R7
+R93
+R726
+R81
+L8
+R25
+R983
+R255
+L752
+L52
+R83
+L75
+R92
+L29
+L47
+R25
+R66
+R34
+L352
+R92
+L44
+R30
+L321
+R56
+L303
+L58
+R64
+R936
+R118
+L57
+L72
+L49
+R58
+L98
+L54
+R63
+L62
+R8
+R8
+L28
+R51
+R43
+L39
+L46
+L63
+L781
+L256
+R101
+R32
+R985
+R38
+L975
+L538
+L1
+L203
+R25
+R592
+R64
+L664
+R37
+R63
+L34
+R34
+R64
+R536
+R689
+L89
+R13
+R587
+L27
+L573
+L747
+R462
+L15
+L78
+L16
+L99
+R71
+L60
+L125
+L93
+L863
+R71
+R92
+L92
+L8
+R72
+L72
+L23
+R323
+L66
+R139
+L187
+R14
+L42
+L53
+L92
+R87
+L46
+R46
+R12
+L12
+L30
+R75
+L645
+R73
+L44
+R71
+R50
+R15
+R235
+L57
+L426
+L60
+R39
+L96
+L1
+R1
+L3
+R6
+L37
+L766
+L420
+L80
+L42
+R66
+R50
+L58
+L81
+L35
+L365
+R565
+L369
+L6
+R75
+R42
+R8
+L50
+R2
+L81
+L21
+L23
+R80
+R47
+R96
+R50
+L314
+L36
+L97
+R460
+L63
+L103
+L86
+L11
+L43
+R43
+R45
+R55
+R27
+L19
+R92
+L4
+L33
+R98
+L87
+R60
+R66
+L82
+L621
+L44
+L85
+R65
+R67
+R18
+R82
+L9
+R9
+R30
+L44
+R774
+R81
+R49
+R91
+R11
+L92
+L14
+L60
+R81
+R593
+R62
+R38
+R36
+R277
+R90
+R93
+R75
+L59
+R37
+R824
+L73
+R69
+L79
+L241
+R27
+R726
+R5
+R82
+R98
+R513
+L55
+L18
+R41
+L92
+L52
+L8
+R784
+R90
+L4
+L56
+R98
+L667
+R12
+L73
+R21
+L821
+R149
+L6
+R25
+L21
+R53
+L46
+L19
+R12
+R569
+L99
+L90
+L65
+R36
+R302
+R37
+L37
+R388
+L88
+L61
+R16
+R14
+L85
+R16
+R602
+R698
+R57
+R43
+R56
+L80
+L76
+L71
+L601
+R4
+L69
+R5
+L115
+R21
+L74
+L23
+R68
+L23
+L63
+R41
+R18
+L18
+L784
+L26
+L38
+R48
+L98
+L91
+R62
+L73
+L811
+R39
+R72
+L97
+L93
+R935
+L45
+L31
+R36
+R95
+R51
+L15
+L36
+R410
+L805
+L5
+L86
+R86
+L71
+R371
+R43
+R10
+R61
+L59
+R11
+R34
+R11
+L93
+L18
+R58
+L79
+R588
+R233
+R9
+R91
+L496
+L4
+R92
+L40
+R1
+L828
+L85
+R61
+R66
+L998
+R83
+R64
+L45
+L71
+L32
+R42
+R653
+L49
+R79
+R92
+R15
+L6
+R6
+L45
+R194
+R29
+L78
+L76
+R76
+L37
+R359
+L5
+L17
+R92
+L957
+R62
+L8
+R11
+L78
+R11
+L457
+R57
+R72
+L5
+L52
+R51
+L14
+L48
+R460
+L617
+L80
+L154
+R68
+L57
+L357
+R32
+L32
+L52
+L48
+L467
+R12
+R855
+R51
+R49
+L90
+R90
+L73
+R40
+R91
+R32
+R10
+L88
+L46
+R851
+R683
+R7
+R649
+R313
+L544
+R75
+L92
+L9
+R198
+L97
+L61
+R61
+R53
+R68
+R65
+L685
+R99
+R55
+R12
+L51
+R89
+L5
+L35
+L64
+L98
+R97
+R453
+L53
+R37
+R40
+R5
+R54
+R42
+R45
+L3
+L12
+L83
+L181
+L44
+R4
+L62
+R7
+L49
+L46
+L36
+R72
+L90
+L98
+L2
+R73
+R79
+R548
+R696
+R4
+L347
+R47
+L89
+L11
+L572
+L22
+R94
+L885
+L15
+L62
+L76
+R70
+L830
+L61
+L41
+R24
+L93
+L31
+R63
+R51
+R821
+L24
+L47
+R41
+R42
+L970
+L77
+R32
+R68
+R49
+R251
+L49
+R49
+L63
+L37
+L43
+L36
+R51
+L58
+R86
+L549
+L9
+R36
+L996
+R56
+L28
+R76
+L38
+R22
+L12
+R974
+R68
+R22
+R2
+R7
+L731
+R660
+L132
+L46
+L24
+R88
+R13
+L59
+R66
+L55
+R364
+L75
+L806
+R6
+R98
+R65
+R28
+L39
+R468
+L58
+R328
+R610
+L8
+R181
+L51
+L39
+L7
+R44
+L67
+R9
+L62
+R427
+L81
+L88
+L25
+L33
+L68
+L388
+L420
+R76
+L25
+R325
+R13
+R14
+R7
+R166
+L50
+R24
+R54
+R72
+L14
+L179
+R759
+R634
+R55
+L89
+R34
+R61
+R67
+L8
+R395
+L10
+R77
+R18
+L71
+L596
+L690
+L78
+L73
+L93
+L376
+L59
+L64
+R382
+L88
+L33
+R39
+L43
+L57
+L28
+L57
+L52
+R416
+L65
+L99
+L62
+R45
+R41
+L682
+R43
+L91
+L98
+R89
+R75
+R25
+L79
+R571
+R8
+L1
+L99
+L76
+R76
+R60
+L10
+L40
+R82
+L92
+L21
+L91
+L88
+L264
+R58
+R83
+L779
+R286
+L15
+L63
+R53
+R587
+R66
+R88
+L15
+R64
+R35
+L84
+L59
+R74
+L33
+R71
+L953
+L25
+R7
+L470
+L112
+R73
+R8
+R51
+R10
+L76
+L56
+L10
+R788
+L499
+R80
+R58
+L327
+R49
+L49
+R74
+R74
+L633
+L15
+R948
+L48
+L47
+L153
+L40
+R3
+L63
+L86
+L59
+L95
+R8
+R36
+L57
+R98
+R93
+L17
+R79
+L96
+R95
+L99
+L87
+R687
+L63
+R63
+L79
+L21
+R156
+L31
+L38
+L826
+L51
+R75
+R69
+R95
+L25
+L24
+R99
+R12
+R89
+L5
+L95
+L59
+R86
+R44
+R51
+L3
+L19
+L687
+R987
+L970
+R92
+L66
+L56
+R36
+R32
+L46
+R64
+L60
+R74
+R53
+R22
+R25
+R3
+R83
+L86
+R81
+L65
+L81
+L33
+L830
+L829
+R65
+L36
+L72
+R4
+L304
+L71
+R28
+L395
+R899
+L296
+R35
+L70
+L30
+L24
+L76
+R33
+L33
+L411
+R1
+L79
+R89
+L29
+R17
+R12
+R13
+L265
+L111
+R18
+L455
+R15
+L63
+L21
+L454
+R23
+L16
+L89
+L95
+R17
+L517
+R60
+L6
+L854
+L35
+R35
+R23
+L823
+L36
+L92
+R38
+R99
+L37
+R928
+L69
+L31
+L81
+L79
+L76
+L87
+L80
+L97
+R26
+L276
+L81
+L69
+R69
+R17
+L91
+L87
+R812
+L20
+L14
+R14
+L69
+R9
+L40
+L8
+L462
+R62
+L92
+L92
+R87
+L69
+R74
+L92
+R92
+R893
+L91
+L86
+L51
+R91
+R47
+L48
+L72
+L360
+L46
+R823
+L367
+L33
+R57
+R879
+R48
+L38
+R54
+L30
+R32
+L791
+R663
+R26
+L828
+R26
+L6
+L92
+R35
+L53
+L34
+R41
+L55
+R266
+L90
+R89
+L99
+L38
+R38
+R95
+L9
+R163
+L26
+L23
+L820
+R20
+R563
+L64
+L30
+R48
+L317
+R58
+L47
+R89
+L66
+L90
+R48
+R5
+L447
+R37
+R69
+L68
+R912
+R905
+L78
+L36
+L91
+L75
+L25
+L797
+R77
+R83
+L90
+R827
+R64
+R36
+L18
+R14
+R64
+L60
+R364
+L986
+L78
+L579
+L43
+R479
+R43
+R4
+L96
+R68
+R171
+R53
+L946
+R43
+L997
+L62
+L38
+R3
+R777
+L80
+R61
+R341
+L39
+L563
+R118
+R37
+L47
+R92
+L21
+L54
+L76
+L252
+L997
+R23
+L1
+L22
+L73
+L5
+R478
+R884
+R16
+L99
+R71
+R57
+L28
+L88
+L93
+L8
+L5
+R52
+L59
+L88
+L55
+R55
+L12
+L22
+L74
+L404
+R61
+L461
+R236
+L92
+R28
+L57
+L42
+R510
+L80
+R97
+R79
+R621
+L45
+R11
+R98
+L64
+R979
+R21
+R21
+R15
+L94
+R82
+L24
+L98
+R98
+L72
+R72
+R9
+L9
+R30
+R9
+L39
+L669
+R69
+L84
+R84
+L87
+R11
+R76
+L906
+L421
+R27
+L655
+L10
+L35
+L713
+R69
+R90
+R54
+R32
+L32
+L56
+L211
+L33
+L3
+R53
+R11
+L610
+L38
+L13
+L29
+R9
+L80
+L42
+R45
+L73
+R423
+L11
+L10
+L32
+L95
+R83
+R12
+R9
+R92
+R63
+L74
+R11
+L31
+L270
+L164
+R863
+R62
+L61
+L886
+R60
+L35
+L38
+L316
+R715
+L15
+L64
+R79
+L44
+R26
+L64
+L95
+L83
+L185
+R56
+L94
+R783
+R372
+L72
+L11
+L89
+L757
+L87
+R44
+L58
+R90
+L32
+L28
+R74
+L42
+L4
+L971
+R89
+R982
+L71
+R71
+R5
+R14
+R81
+R82
+L82
+R72
+R91
+R13
+R24
+R10
+R90
+L74
+R90
+R84
+L59
+R59
+R19
+R990
+R896
+R95
+R88
+L48
+L240
+L147
+L53
+L3
+L44
+L53
+R993
+R167
+L47
+L13
+L82
+R61
+L88
+L91
+L2
+L652
+R54
+L32
+R93
+R139
+L6
+L94
+L21
+L59
+L72
+R23
+L3
+R86
+R62
+R37
+R57
+R90
+R37
+L72
+L65
+R58
+R47
+R24
+L51
+L83
+L14
+L781
+L98
+L89
+R83
+L20
+R25
+R84
+L10
+L45
+R70
+R24
+L36
+L88
+R40
+L40
+L406
+R65
+R2
+R39
+R29
+R71
+L86
+R444
+L52
+L90
+L79
+L237
+R14
+R93
+L88
+L19
+L838
+R48
+L77
+L646
+L59
+L28
+R27
+R73
+R81
+R46
+L28
+R69
+R32
+R33
+R58
+L86
+R41
+R622
+R84
+L3
+L949
+R78
+L72
+R94
+L70
+L330
+L67
+R67
+R89
+R63
+R43
+L28
+R33
+R6
+L306
+L34
+R61
+L29
+R2
+L66
+R666
+L18
+R33
+R41
+L956
+L65
+L66
+R43
+L73
+R9
+L21
+R68
+R5
+R31
+L60
+R522
+R60
+L212
+R56
+R83
+L80
+L8
+R33
+L75
+R48
+L498
+L29
+L71
+R8
+R61
+L18
+R49
+R93
+L8
+L985
+L21
+R35
+R33
+R53
+L82
+R82
+L48
+L2
+R430
+L379
+L1
+L29
+R29
+L52
+R52
+L94
+R34
+R11
+R5
+R799
+R342
+R3
+R855
+L55
+L59
+R59
+R744
+L974
+L70
+L14
+L1
+L85
+R356
+R36
+L360
+L32
+L59
+R659
+L20
+R33
+L461
+R87
+L85
+R346
+L35
+R35
+L14
+L5
+R5
+R4
+L9
+L81
+L76
+L148
+R61
+L37
+L5
+R57
+R48
+L17
+R72
+L55
+L79
+R5
+R74
+L2
+R2
+R56
+L79
+L362
+R85
+R407
+L207
+R1
+L94
+R93
+L18
+R41
+L2
+L621
+L82
+R37
+L88
+R485
+L52
+R11
+L11
+R57
+R30
+L87
+L64
+L19
+R10
+L67
+R40
+L31
+R31
+L3
+L29
+L68
+L15
+R15
+R470
+R49
+R581
+R5
+R54
+L91
+L855
+R87
+L3
+R447
+R380
+R844
+L45
+R77
+L24
+L536
+R11
+R96
+L45
+R98
+L469
+R18
+L46
+L3
+R75
+L658
+R52
+L69
+L3
+R3
+L4
+L967
+L29
+R490
+L906
+R89
+L10
+L35
+L38
+R3
+R28
+R18
+L231
+R54
+R18
+R20
+R268
+R607
+R25
+L96
+L4
+R51
+R49
+L44
+R66
+L791
+L55
+L32
+L37
+L7
+R45
+R55
+R61
+L647
+L33
+R16
+R3
+L97
+L485
+R22
+L40
+R83
+R550
+L91
+R58
+R46
+L66
+R95
+L575
+R54
+L53
+R99
+R92
+L91
+L768
+L88
+R55
+R45
+L45
+R99
+L99
+R316
+L16
+L32
+L68
+R46
+R865
+L48
+L42
+R79
+R609
+L9
+L85
+L15
+L36
+R36
+R58
+L58
+L720
+L46
+L473
+L793
+R32
+R68
+L14
+R66
+R80
+L12
+L77
+L68
+R39
+R12
+L94
+L60
+L25
+R27
+L2
+R66
+R57
+L49
+L21
+R23
+R84
+L5
+R23
+L388
+L30
+R902
+R71
+L73
+R146
+R508
+R46
+R1
+R67
+L32
+L56
+L780
+L3
+R303
+R13
+L526
+R35
+R78
+L43
+R43
+R530
+L30
+R12
+L41
+L81
+R48
+L64
+R98
+L53
+R28
+L86
+R76
+R63
+R70
+R78
+L984
+L503
+R470
+R98
+R92
+R77
+R2
+L35
+L65
+L53
+R53
+R68
+L68
+L880
+R40
+R471
+R55
+R49
+R10
+R52
+R38
+R584
+L256
+L63
+R65
+R235
+R8
+L88
+L20
+L58
+L69
+L73
+L98
+L70
+R532
+R50
+R86
+L861
+L29
+R59
+R531
+R88
+R50
+L739
+L99
+L121
+R55
+R108
+R69
+L383
+R72
+R40
+R13
+R47
+R80
+L680
+R3
+R97
+R343
+R57
+L56
+R65
+R511
+L58
+R46
+R92
+L54
+L46
+L952
+L57
+L91
+L60
+R60
+R31
+R69
+R68
+R480
+R80
+R72
+R98
+R454
+R60
+R168
+R32
+R588
+L17
+R54
+L37
+R316
+L77
+L5
+R66
+R317
+L17
+R784
+L60
+R609
+R92
+R675
+R80
+L80
+L7
+R507
+R81
+R42
+R977
+L35
+L65
+L40
+L644
+L99
+L4
+R19
+L534
+R26
+L24
+R19
+R11
+R560
+R53
+L36
+L28
+L845
+R51
+R15
+R95
+L95
+R80
+L80
+L24
+L76
+L63
+R99
+L36
+L28
+R70
+L363
+L79
+L27
+R27
+R26
+R24
+L471
+L79
+R70
+R289
+R341
+R107
+L7
+L672
+R965
+R2
+R71
+L44
+L22
+L36
+R30
+R25
+L56
+R454
+R54
+L635
+L4
+L32
+R47
+R11
+R34
+L92
+R80
+L80
+R540
+L84
+L42
+L556
+L57
+R999
+L63
+R13
+R13
+R48
+R889
+R10
+R190
+R72
+R28
+L95
+L59
+R89
+R20
+R30
+L29
+R823
+L79
+R62
+L77
+R915
+R14
+L619
+L507
+R12
+L94
+L64
+R3
+L45
+L2
+R93
+R528
+R34
+L20
+L21
+L612
+L7
+L34
+R956
+R77
+R56
+L948
+L45
+L9
+L346
+L97
+L3
+L72
+L71
+L57
+R93
+L83
+R90
+L99
+R399
+R9
+R976
+L885
+L48
+L93
+L56
+R97
+L61
+L39
+L37
+L63
+L633
+L67
+R54
+R46
+R42
+L17
+L425
+R645
+R55
+R31
+R94
+R788
+R87
+R85
+R15
+L264
+R565
+L601
+L33
+L53
+L81
+R67
+R661
+R39
+R64
+R561
+L61
+R736
+L57
+R76
+L71
+R22
+R28
+L8
+L719
+R3
+L51
+R277
+L33
+R74
+L41
+R67
+R33
+R70
+R830
+L14
+L94
+L92
+R38
+R762
+L5
+R24
+R638
+L67
+L90
+R457
+L43
+L314
+R50
+R50
+L157
+L43
+L84
+L6
+R90
+L29
+L39
+R59
+L22
+L58
+L83
+R72
+R12
+R5
+R6
+L58
+R50
+L15
+L20
+R6
+L43
+R60
+L803
+R907
+L7
+L47
+R52
+R95
+R768
+R32
+R69
+R221
+R33
+L123
+R21
+L666
+R808
+L63
+R4
+R58
+R53
+R9
+L39
+R34
+L19
+R28
+R227
+L652
+L269
+R75
+L95
+L26
+R12
+L65
+L73
+R86
+L45
+L98
+L105
+L17
+L83
+R17
+R83
+L75
+R75
+R5
+L5
+R5
+L65
+L3
+R568
+R171
+L90
+L86
+R21
+R79
+R41
+R59
+R37
+L32
+L618
+R13
+R84
+R30
+R715
+R71
+L9
+R8
+R39
+R62
+L57
+R38
+R29
+R90
+L50
+R69
+R887
+R94
+R473
+L41
+R68
+R419
+L23
+L96
+R34
+L40
+R43
+R63
+L473
+L856
+R60
+R69
+R573
+R954
+R73
+L17
+R45
+R72
+L14
+R243
+L29
+L27
+L73
+L30
+L787
+R93
+R52
+L13
+L15
+L27
+R27
+R69
+R31
+L93
+L7
+L37
+R17
+L82
+L98
+R34
+R166
+R33
+L33
+L307
+L78
+L16
+R142
+L65
+L676
+R259
+L53
+L51
+L55
+L34
+R88
+R11
+R33
+L88
+L10
+R98
+L30
+L29
+R573
+L12
+L358
+R12
+R46
+L16
+R19
+L479
+L634
+L40
+L93
+L57
+R54
+R701
+R927
+R792
+L74
+R52
+R48
+R62
+R831
+L93
+L95
+R95
+R641
+R28
+R231
+R83
+R17
+R42
+L49
+R7
+R25
+L24
+R9
+L833
+R23
+L92
+L57
+R8
+L27
+L96
+R75
+R589
+R149
+L11
+R632
+R31
+R53
+L27
+L927
+L468
+R13
+R55
+R92
+L592
+L52
+R16
+R636
+L55
+L30
+L31
+L84
+R25
+L30
+R41
+L736
+L621
+R21
+R94
+R616
+R16
+R74
+L84
+R5
+L21
+R64
+L75
+L89
+L61
+L7
+L26
+L6
+L7
+R547
+L61
+R94
+L13
+L9
+R949
+L16
+R86
+L28
+L42
+L34
+R64
+L54
+L942
+R48
+R18
+R40
+L24
+L55
+R53
+R74
+L88
+L9
+L27
+R95
+R88
+R54
+R80
+R19
+R947
+R81
+L36
+L886
+R88
+L94
+R6
+L28
+L491
+R36
+L363
+R7
+L70
+R50
+R149
+L641
+L59
+L992
+R93
+L5
+R98
+R2
+L456
+L10
+R874
+L16
+L58
+R74
+L61
+L39
+R267
+L160
+L827
+R45
+R78
+R97
+R39
+L70
+L42
+R68
+R49
+R94
+R62
+R406
+L38
+L44
+R76
+R95
+R305
+L42
+R82
+L74
+L49
+R46
+R37
+L42
+R10
+R8
+R22
+R655
+R595
+L48
+R36
+L420
+L16
+R284
+L84
+L79
+L522
+L59
+L540
+R18
+L818
+R46
+R60
+L28
+R45
+R762
+R70
+R745
+L80
+R668
+R39
+R30
+L72
+L21
+R92
+L24
+L32
+R984
+R90
+R26
+L6
+L57
+L78
+L50
+L15
+L511
+L55
+R86
+R17
+L12
+R84
+L3
+L32
+L717
+L451
+R2
+L302
+L689
+R89
+L663
+R28
+R35
+L25
+L46
+R91
+L79
+R33
+L74
+L359
+L29
+L124
+L92
+R4
+R85
+R15
+L875
+L24
+L1
+L93
+L7
+R63
+R72
+L35
+R18
+L54
+R17
+L81
+R34
+L83
+R561
+R224
+L79
+L157
+R32
+R17
+L49
+R16
+R71
+R13
+R744
+R44
+R42
+L30
+L19
+L81
+R52
+L79
+L473
+L55
+R4
+R61
+R8
+R41
+R50
+L20
+R11
+R57
+R3
+L60
+R97
+R79
+R43
+L92
+L18
+L39
+L65
+L305
+L647
+L53
+L41
+L59
+L32
+R932
+L780
+R48
+L68
+L4
+R27
+L20
+L49
+R39
+L151
+R58
+R716
+R84
+L419
+R19
+L131
+L14
+L262
+R632
+R75
+R95
+L95
+L85
+L46
+R542
+L11
+R77
+R48
+L387
+R62
+R32
+R366
+L39
+R759
+L12
+R757
+R80
+L36
+R78
+L744
+R69
+L510
+L76
+R49
+R75
+L48
+L79
+L221
+R12
+R88
+R88
+R875
+R36
+L32
+L67
+R9
+L9
+R86
+L856
+R70
+R62
+R638
+R22
+R78
+R391
+L86
+L705
+R29
+R71
+R888
+R92
+R70
+L66
+L81
+R97
+R44
+R87
+L893
+L38
+L437
+L63
+R81
+L62
+L19
+R81
+L738
+L682
+L55
+R86
+L44
+R74
+R46
+L68
+R639
+R61
+L39
+R567
+R98
+R88
+L14
+L98
+R36
+L57
+R219
+R24
+R76
+L85
+L26
+L81
+L8
+L656
+R50
+R28
+R93
+R885
+R86
+R14
+L74
+R74
+L53
+L41
+L50
+R5
+L72
+L474
+R15
+L30
+L20
+L99
+L19
+R963
+L70
+L2
+R47
+L66
+R73
+R6
+L50
+L63
+R148
+R52
+L26
+R226
+L47
+L860
+L93
+R5
+R36
+R59
+R27
+L42
+L53
+R436
+R32
+R73
+R94
+R33
+R51
+L53
+L74
+R76
+L78
+L22
+R31
+R69
+R87
+L10
+R923
+R35
+R65
+L73
+L27
+R26
+R974
+L75
+L26
+L99
+R31
+L31
+R38
+L85
+L453
+R7
+R59
+L66
+R98
+R65
+R37
+L53
+R53
+L145
+L98
+R35
+R37
+R38
+R53
+L20
+L93
+L741
+L29
+L72
+L65
+R25
+L222
+L761
+R78
+L6
+L214
+L39
+R69
+L48
+R17
+L42
+R43
+L25
+R25
+L94
+R78
+L93
+L75
+L57
+L830
+L97
+R68
+L74
+R974
+R81
+R19
+L226
+L74
+L97
+R97
+R46
+L87
+L19
+L40
+L63
+L969
+L68
+R10
+R17
+L27
+L460
+R45
+R125
+R19
+R71
+L62
+L9
+L38
+R38
+L429
+R6
+R94
+R87
+R66
+L56
+L97
+L96
+L31
+L555
+R18
+R64
+R16
+L79
+L44
+R7
+L30
+L99
+L71
+L12
+R81
+R20
+L189
+R78
+L39
+L54
+L31
+R28
+L63
+R20
+R361
+L87
+R6
+L105
+R86
+R158
+R42
+L50
+R76
+R409
+R16
+R49
+L39
+R39
+L571
+R71
+L62
+L16
+L83
+R62
+L3
+R2
+L93
+L745
+L62
+R47
+R53
+R81
+R119
+R52
+R248
+R853
+R52
+R826
+R69
+L96
+R36
+R760
+L95
+R38
+L49
+R6
+R48
+L948
+L28
+L72
+L37
+L89
+R751
+L25
+R4
+L304
+R41
+L65
+R91
+R52
+L19
+R83
+R64
+L47
+R84
+L84
+R19
+R881
+L628
+R43
+R52
+R33
+R635
+R77
+R88
+R143
+R32
+R25
+L98
+R33
+L78
+L85
+L64
+R44
+L52
+L231
+R37
+L31
+R25
+R785
+R15
+R43
+L143
+R16
+R410
+L26
+R28
+R36
+L92
+L33
+L39
+L89
+L8
+R497
+L66
+R66
+L93
+R93
+L11
+R11
+L789
+R41
+L52
+L56
+L44
+R9
+L9
+L43
+L7
+L50
+L368
+L3
+R71
+L69
+R841
+L575
+R69
+L66
+R111
+L93
+L18
+R71
+L482
+R911
+R24
+L56
+R23
+R9
+R12
+L12
+R294
+R644
+R883
+R108
+R35
+R78
+R428
+R95
+L65
+R74
+R26
+R45
+L40
+R97
+R620
+L22
+R253
+R47
+R225
+R75
+L44
+R52
+L8
+R809
+R35
+L40
+R6
+L29
+R40
+L884
+R213
+R87
+R63
+L11
+L283
+R74
+L80
+R35
+R76
+R70
+R19
+R99
+R73
+R276
+R52
+L86
+R41
+R22
+R181
+R942
+L80
+L56
+L64
+L61
+R707
+L78
+R132
+R65
+L61
+R36
+L40
+L877
+R177
+L890
+L310
+R81
+L81
+L8
+L80
+R44
+L56
+R52
+R13
+R619
+R94
+L71
+R66
+L82
+L40
+R49
+L59
+R59
+R44
+R67
+R88
+L17
+R18
+L739
+R39
+R12
+R54
+L6
+R966
+R12
+L9
+R71
+L83
+R79
+L57
+R47
+L5
+R76
+L15
+L174
+L68
+L41
+R341
+L60
+L66
+L933
+L429
+L12
+L59
+R859
+L36
+L88
+R20
+R4
+L112
+L306
+R47
+L33
+R41
+L637
+L23
+R23
+L507
+L881
+L601
+L31
+L80
+L378
+L76
+L24
+L22
+R3
+L88
+R585
+R31
+R36
+L67
+L33
+L43
+R876
+R47
+L53
+R79
+L73
+R27
+R65
+R99
+R881
+L72
+L41
+L59
+R88
+L36
+L84
+R757
+R655
+R318
+L98
+R92
+L892
+R62
+L14
+L48
+L6
+L92
+R98
+L982
+R35
+R22
+L94
+R93
+R1
+R45
+R13
+L33
+R42
+L525
+R94
+L961
+R528
+L58
+L91
+R519
+L81
+L67
+R77
+L57
+R815
+L435
+R973
+L73
+R58
+R16
+R80
+L454
+L85
+L15
+R50
+R550
+L15
+L82
+L708
+R962
+L948
+R291
+R13
+L13
+L839
+R235
+R48
+R56
+L3
+L16
+L59
+R378
+R641
+L15
+L797
+R62
+L785
+R7
+L74
+L564
+L275
+R51
+R32
+L3
+R83
+L64
+R830
+R23
+R76
+L36
+L73
+L6
+R23
+L311
+R246
+L673
+R30
+R72
+R32
+R68
+R616
+R711
+L61
+L486
+L810
+R71
+R54
+R5
+R41
+R67
+L23
+L66
+L19
+R19
+R81
+R12
+R65
+R697
+R13
+R55
+L73
+R31
+L396
+L4
+R12
+L180
+R78
+L110
+R57
+R43
+R2
+R212
+R398
+R288
+R796
+R81
+L14
+L77
+R17
+R81
+L570
+R92
+R94
+R95
+R613
+R92
+L140
+R520
+L91
+R65
+L54
+L74
+L81
+L70
+L75
+R35
+L783
+R22
+L38
+R80
+R84
+R93
+R5
+L91
+R41
+L84
+R34
+R23
+R15
+R28
+L64
+L997
+R25
+L98
+R23
+L4
+L188
+R685
+R824
+R30
+R89
+R74
+R52
+R50
+L65
+R536
+R19
+L356
+R56
+L10
+R218
+R22
+L24
+L37
+L44
+R20
+R90
+L148
+R64
+L6
+L880
+L47
+L97
+R78
+L54
+R23
+L24
+R4
+R97
+R53
+R44
+R17
+L86
+R72
+L23
+L5
+L72
+R27
+R41
+R84
+L536
+R84
+L7
+R7
+L691
+R91
+L56
+L52
+R130
+R97
+L36
+R15
+R2
+L89
+L38
+L73
+L692
+L54
+R946
+R97
+R13
+L92
+R844
+L62
+R96
+L28
+L85
+L83
+L695
+L35
+L18
+R48
+R69
+L86
+L83
+L80
+R71
+L652
+L239
+R52
+R948
+R48
+L62
+R39
+L14
+L43
+L68
+R44
+R56
+L79
+R879
+L6
+R63
+R592
+L20
+L73
+L94
+L18
+L73
+L38
+R87
+L98
+R78
+L19
+R19
+L62
+L22
+L67
+R64
+L14
+R401
+R14
+R76
+L90
+L65
+R531
+L158
+R92
+L12
+L99
+L45
+R42
+R14
+R10
+R25
+R65
+L60
+L5
+R65
+L21
+R29
+L15
+R38
+R6
+L670
+L67
+R92
+L75
+R88
+L5
+L198
+R453
+R68
+L20
+L88
+L779
+L28
+R89
+R3
+L25
+R25
+R23
+L23
+R59
+L564
+L776
+L52
+L67
+R83
+R38
+R79
+R29
+R97
+R874
+R70
+R10
+L98
+L603
+L60
+L41
+L88
+R810
+L95
+L9
+L96
+R67
+R495
+R538
+L47
+L62
+R50
+L22
+L86
+R67
+L52
+L55
+L93
+L272
+L90
+L90
+R52
+R94
+R906
+L55
+R92
+L723
+L14
+R88
+L88
+R96
+R63
+R741
+L81
+L43
+L97
+L79
+R154
+L15
+L39
+L92
+L207
+R31
+L2
+R70
+L19
+L14
+R62
+R844
+L73
+L754
+R29
+R36
+L597
+R46
+R65
+R75
+L61
+R80
+R553
+R57
+L12
+L98
+L73
+R57
+L32
+L41
+R31
+R65
+L5
+L342
+L79
+R85
+R91
+L76
+R56
+R44
+R84
+R390
+R21
+R132
+R7
+L97
+R46
+L6
+R23
+R227
+L72
+L55
+R33
+L331
+R98
+R85
+R3
+L534
+R12
+L66
+L69
+L78
+L17
+R50
+R31
+L17
+L19
+L481
+L23
+R23
+L86
+L49
+L776
+R84
+L47
+R71
+R3
+R33
+L33
+L414
+R746
+R75
+R93
+L320
+R20
+L43
+R104
+L761
+L189
+R99
+R90
+L60
+L6
+L93
+R59
+L88
+R88
+R806
+R18
+L623
+R99
+R44
+R56
+R5
+L24
+R19
+L30
+R30
+R68
+L22
+L46
+R665
+R35
+R50
+L33
+L21
+L96
+L45
+L84
+R29
+L66
+R66
+L275
+R46
+L71
+R74
+L1
+R10
+R618
+L29
+L93
+R59
+R62
+R391
+R48
+L56
+R17
+L83
+L17
+L34
+L42
+R79
+R76
+R6
+R93
+R22
+L17
+L83
+R87
+L87
+R51
+L51
+L580
+L40
+R62
+L98
+R756
+L95
+L18
+R59
+L593
+L354
+L99
+L24
+R93
+R35
+L4
+R794
+R2
+R59
+R8
+R2
+R43
+R57
+L88
+R41
+R77
+L68
+L189
+L32
+L78
+L28
+R88
+L948
+L40
+R67
+L88
+R90
+R99
+L17
+L451
+R53
+L434
+R72
+R9
+L27
+R32
+L602
+L73
+R78
+R26
+R66
+R84
+L84
+R16
+R84
+L215
+L557
+L328
+R503
+R494
+L92
+R61
+R486
+L15
+R54
+L746
+R59
+R97
+R99
+R73
+R62
+L80
+L456
+R18
+R78
+L95
+R83
+R10
+R21
+L45
+R21
+L50
+R60
+L85
+L282
+L33
+R77
+L17
+R21
+R19
+L139
+L61
+R728
+L470
+R650
+L2
+R53
+L26
+R62
+R605
+R26
+R610
+L38
+R50
+R3
+L73
+L78
+L65
+L16
+R81
+L23
+L71
+R22
+R26
+R82
+L88
+R2
+R744
+L72
+L22
+R84
+L184
+R83
+L25
+L58
+L57
+R5
+L48
+L60
+L40
+R40
+R81
+L66
+L55
+R95
+L584
+L11
+L79
+R80
+R22
+L111
+L38
+R26
+L34
+R34
+R45
+L950
+L44
+R49
+L801
+L99
+L50
+R35
+R68
+R12
+L998
+L80
+R13
+R99
+L67
+L32
+R667
+R33
+L19
+R119
+L36
+R15
+R21
+L15
+R66
+L20
+R169
+L17
+L83
+R1
+R99
+R72
+L72
+L82
+L66
+R48
+R47
+R53
+L20
+R47
+L46
+L681
+L8
+R43
+L35
+L59
+R53
+R48
+L55
+L94
+R48
+R67
+R67
+L60
+L58
+L57
+L38
+R38
+R51
+L86
+R55
+R85
+R69
+L63
+L4
+R2
+R91
+R720
+R449
+L56
+L113
+R50
+R62
+R45
+R43
+R60
+L826
+R13
+R5
+R48
+L740
+R3
+L84
+L79
+L81
+R83
+R52
+R6
+L855
+L59
+R54
+L42
+L58
+L55
+L45
+L99
+R99
+R26
+R841
+R11
+L50
+R741
+R285
+L72
+L57
+R4
+L12
+L32
+R28
+R55
+L868
+R22
+R7
+R41
+R30
+L31
+R31
+L422
+L54
+L20
+L23
+R19
+L197
+R18
+L60
+L87
+L11
+L553
+L10
+L38
+R38
+R10
+R568
+R939
+L317
+L957
+L8
+L11
+R61
+R15
+L1
+L11
+R82
+R30
+L13
+R35
+R27
+L36
+L356
+L58
+R9
+R74
+L71
+R370
+L13
+R95
+R637
+R47
+R553
+R25
+L25
+L90
+R83
+L793
+L22
+R681
+L59
+L57
+L2
+L81
+R40
+R116
+R26
+L218
+R90
+L2
+R580
+L92
+R15
+R95
+R90
+L9
+R156
+R153
+R959
+L83
+L56
+R80
+L37
+L99
+L64
+R36
+R67
+L35
+R32
+R49
+L49
+L30
+R30
+L37
+L31
+R68
+R54
+L20
+L95
+R4
+R449
+L9
+L59
+R76
+L92
+R77
+R23
+L78
+R70
+R336
+L36
+L88
+L85
+L27
+L856
+L49
+R526
+R15
+R568
+R10
+R53
+R4
+R29
+L26
+R84
+L41
+L217
+R960
+L93
+R29
+R4
+R29
+L77
+R55
+L5
+R37
+L5
+R19
+L53
+R32
+L235
+R3
+R95
+R5
+R8
+L52
+R10
+R934
+L12
+L88
+L225
+R25
+L93
+L638
+R31
+L86
+L53
+R49
+L38
+R39
+L511
+R7
+R20
+R44
+R17
+R382
+L89
+R76
+R443
+R308
+L627
+R19
+R49
+L31
+L17
+L87
+R7
+L524
+R3
+R12
+R92
+R96
+R23
+L23
+L91
+L23
+R25
+L632
+L95
+L65
+L19
+L78
+R22
+L44
+L55
+L92
+L37
+L81
+L35
+L8
+R27
+L88
+L846
+L61
+L8
+L16
+R69
+R31
+L186
+L84
+L515
+L44
+L71
+L62
+R62
+R32
+R68
+R92
+L75
+R167
+L83
+L1
+L34
+R34
+L3
+R41
+L64
+R26
+L29
+R29
+L465
+L135
+R44
+R3
+R38
+L85
+L29
+L44
+L27
+R9
+R91
+L621
+L79
+L46
+L599
+R4
+R944
+L403
+R18
+L18
+L35
+L419
+R348
+L94
+L113
+R735
+L25
+L98
+R82
+L32
+R12
+L61
+L30
+R32
+R82
+R32
+R84
+R70
+R30
+R38
+L31
+R48
+R37
+L11
+L81
+R54
+R59
+R17
+L90
+R406
+R54
+L90
+L10
+L34
+L29
+R63
+R17
+R90
+R81
+R62
+L50
+R231
+L31
+L26
+R76
+R38
+R12
+R528
+R3
+R84
+R85
+R71
+L59
+R339
+R49
+R18
+R26
+R56
+L22
+L48
+L89
+R26
+L67
+L62
+L38
+L343
+R43
+R57
+L3
+L254
+L96
+L504
+L14
+L41
+R91
+R864
+L14
+R197
+L15
+R32
+L35
+R8
+L97
+R24
+L69
+L31
+L97
+R143
+R698
+L81
+R637
+L31
+L45
+L329
+R50
+L98
+R559
+R2
+L63
+R92
+L37
+L59
+R161
+L2
+L62
+L48
+L43
+R705
+R48
+R77
+L77
+L74
+R64
+L62
+L23
+R86
+R75
+L22
+R31
+R73
+L59
+R28
+R70
+R43
+L30
+R56
+R44
+L11
+R36
+R21
+R54
+L85
+L89
+R274
+L31
+L569
+L87
+L70
+R257
+R427
+L52
+R25
+L88
+R88
+R49
+R66
+L15
+L14
+R93
+L9
+L70
+L46
+L187
+L77
+R884
+R23
+L85
+L75
+L16
+L21
+L15
+L485
+L36
+L64
+L47
+L53
+L94
+L46
+R40
+L19
+L688
+L93
+R999
+L90
+R59
+R5
+L73
+R92
+L7
+L85
+L29
+R97
+R7
+L33
+R81
+R40
+L63
+R13
+R83
+L12
+L36
+L5
+R36
+R13
+R88
+R20
+L30
+L99
+R76
+L47
+R69
+R31
+R50
+L35
+L52
+L26
+L37
+R83
+R48
+L48
+R17
+L18
+L82
+L78
+R45
+R33
+R55
+R85
+L3
+R63
+R79
+R4
+L45
+R99
+R40
+L4
+R40
+R18
+L41
+L7
+L38
+L13
+R44
+R42
+L44
+L14
+R9
+L9
+R33
+R30
+R22
+R43
+L20
+R23
+R4
+R2
+L13
+L14
+L19
+L35
+L2
+R15
+L33
+R47
+R24
+L36
+L37
+R38
+L33
+L48
+R11
+R3
+R25
+R26
+R12
+R43
+L26
+L3
+R8
+R44
+L38
+L31
+L35
+R43