heh
bendn 2024-12-19
parent 975d7ce · commit 5f93929
-rw-r--r--Cargo.toml2
-rw-r--r--src/inp.txt3852
-rw-r--r--src/main.rs132
3 files changed, 435 insertions, 3551 deletions
diff --git a/Cargo.toml b/Cargo.toml
index a857b58..0894f40 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -18,4 +18,4 @@ rustc-hash = { version = "2.1.0", features = ["nightly"] }
lto = true
codegen-units = 1
debug = true
-# overflow-checks = true
+overflow-checks = true
diff --git a/src/inp.txt b/src/inp.txt
index 0f55902..1a43c26 100644
--- a/src/inp.txt
+++ b/src/inp.txt
@@ -1,3450 +1,402 @@
-24,11
-6,19
-5,16
-52,41
-63,48
-61,30
-1,8
-34,17
-59,53
-37,65
-32,57
-17,19
-21,58
-17,5
-66,53
-7,19
-43,66
-55,45
-30,59
-12,13
-5,26
-42,57
-15,31
-35,66
-21,27
-55,44
-60,65
-4,19
-65,65
-9,13
-19,12
-69,49
-57,65
-69,66
-3,1
-58,65
-15,29
-39,55
-13,28
-35,67
-25,5
-13,27
-63,43
-25,1
-38,17
-19,3
-64,65
-50,57
-49,69
-59,48
-69,55
-52,65
-21,17
-59,43
-31,56
-53,35
-30,65
-14,31
-57,54
-49,58
-16,29
-61,29
-19,2
-39,69
-17,14
-13,17
-32,13
-18,27
-56,35
-64,43
-63,34
-23,23
-21,25
-14,21
-65,35
-9,19
-6,15
-65,39
-23,5
-57,31
-1,29
-25,47
-69,47
-17,27
-19,11
-68,33
-49,47
-25,12
-4,17
-26,57
-1,25
-57,37
-35,10
-17,7
-19,1
-53,37
-52,51
-33,63
-59,67
-63,62
-57,39
-5,36
-46,65
-23,21
-57,57
-59,57
-7,32
-7,5
-7,35
-65,50
-15,24
-63,47
-49,46
-1,24
-27,15
-15,12
-69,45
-47,49
-45,61
-43,59
-59,62
-67,47
-65,57
-29,15
-50,67
-60,49
-23,25
-41,60
-11,36
-67,44
-57,61
-16,5
-35,61
-25,65
-7,26
-69,69
-16,1
-15,5
-9,7
-8,31
-19,21
-60,27
-51,63
-52,67
-47,68
-53,69
-57,63
-15,4
-6,41
-49,56
-25,16
-69,37
-48,69
-31,3
-62,67
-64,55
-2,31
-29,60
-57,44
-33,6
-66,37
-44,51
-57,43
-4,41
-60,61
-16,17
-13,31
-7,3
-31,7
-51,41
-64,39
-18,9
-1,36
-39,59
-59,41
-28,7
-37,62
-27,3
-65,69
-9,27
-6,5
-17,16
-9,3
-41,63
-10,25
-13,29
-61,55
-13,23
-53,63
-2,29
-53,53
-5,32
-62,33
-26,61
-67,61
-9,28
-9,18
-37,68
-26,7
-28,63
-27,2
-69,53
-3,5
-65,51
-1,6
-37,16
-66,45
-63,64
-23,27
-58,37
-6,35
-47,67
-7,29
-50,69
-67,37
-65,53
-9,38
-59,37
-7,17
-39,65
-17,21
-5,5
-53,56
-31,10
-7,7
-56,55
-25,58
-19,25
-14,29
-5,7
-9,5
-47,63
-33,70
-4,37
-26,59
-61,42
-51,69
-11,39
-15,19
-2,19
-5,20
-58,39
-65,63
-61,47
-69,31
-1,23
-25,25
-48,65
-65,24
-21,23
-27,23
-69,42
-62,63
-61,52
-25,13
-9,21
-25,54
-39,68
-4,23
-13,32
-11,27
-27,65
-5,30
-67,64
-55,28
-8,1
-63,45
-3,13
-63,63
-29,65
-18,5
-1,13
-68,29
-61,51
-33,65
-1,21
-57,52
-3,8
-22,7
-23,59
-37,64
-23,67
-68,51
-61,31
-55,57
-65,32
-59,61
-7,44
-25,19
-3,37
-2,37
-1,18
-7,33
-47,43
-45,66
-19,18
-67,30
-53,31
-13,22
-28,17
-12,5
-67,66
-33,61
-58,47
-43,67
-28,65
-5,11
-17,2
-61,37
-28,11
-0,29
-7,24
-65,60
-55,55
-53,59
-23,1
-21,9
-33,59
-63,61
-9,1
-58,33
-5,14
-63,67
-67,67
-60,45
-70,35
-17,23
-51,44
-19,14
-18,31
-55,35
-55,69
-68,31
-67,41
-65,33
-50,47
-18,3
-59,32
-2,33
-50,37
-29,11
-30,67
-69,65
-62,27
-54,63
-17,29
-23,7
-12,21
-9,33
-44,59
-21,67
-30,51
-57,33
-61,67
-34,61
-49,60
-66,39
-3,46
-49,64
-23,65
-17,13
-53,47
-18,19
-56,41
-67,40
-47,69
-67,49
-2,3
-59,49
-12,15
-57,34
-51,55
-37,55
-8,5
-68,59
-53,33
-24,33
-4,13
-59,50
-55,47
-28,67
-15,27
-24,25
-21,13
-2,39
-15,1
-23,4
-31,68
-67,51
-42,59
-64,29
-69,59
-9,31
-7,25
-22,63
-68,45
-53,36
-28,57
-40,59
-10,5
-49,50
-47,57
-31,17
-1,26
-5,27
-0,33
-58,45
-45,65
-39,60
-43,65
-51,31
-11,10
-57,58
-62,29
-23,63
-63,51
-1,17
-69,62
-66,49
-63,33
-55,39
-70,45
-16,23
-62,49
-55,43
-9,15
-69,63
-21,15
-35,63
-21,3
-21,20
-1,37
-27,9
-69,25
-27,0
-6,47
-57,40
-23,66
-36,67
-61,63
-63,41
-59,33
-45,58
-61,54
-45,52
-1,35
-39,13
-5,35
-24,7
-27,57
-35,9
-7,27
-45,63
-55,54
-63,49
-67,62
-22,3
-63,55
-22,67
-69,36
-41,59
-29,69
-37,67
-5,10
-55,33
-9,20
-65,31
-57,51
-43,64
-51,65
-70,63
-63,40
-59,31
-67,59
-3,31
-16,33
-41,61
-35,69
-55,61
-6,3
-15,26
-51,40
-65,43
-63,46
-47,65
-57,32
-65,41
-61,43
-43,56
-5,22
-54,67
-27,11
-53,34
-26,5
-57,47
-51,47
-17,11
-14,1
-49,66
-19,20
-44,63
-27,5
-5,33
-67,43
-61,53
-59,28
-61,61
-37,63
-60,35
-3,29
-29,9
-50,43
-63,31
-13,26
-13,3
-38,55
-30,9
-21,61
-61,44
-53,55
-9,29
-10,23
-59,36
-27,62
-59,27
-17,3
-19,58
-55,30
-9,17
-4,33
-65,54
-5,9
-40,63
-50,61
-68,57
-34,63
-3,27
-59,45
-27,12
-65,47
-31,65
-25,67
-13,15
-33,13
-70,59
-4,3
-45,59
-31,60
-25,7
-32,61
-31,0
-67,56
-2,21
-3,25
-67,31
-25,3
-61,35
-30,23
-68,69
-63,52
-63,59
-62,37
-59,56
-7,31
-20,5
-65,22
-53,46
-3,21
-17,6
-59,38
-9,9
-53,57
-58,67
-57,68
-1,12
-23,9
-32,69
-69,35
-11,2
-51,62
-29,61
-25,57
-37,52
-15,65
-11,3
-3,39
-38,61
-1,39
-52,59
-56,63
-59,35
-45,69
-53,54
-5,15
-17,10
-16,21
-29,10
-15,39
-3,35
-29,19
-3,11
-7,23
-54,31
-63,56
-69,52
-31,61
-53,67
-65,62
-54,49
-15,25
-27,7
-59,42
-65,67
-63,58
-65,29
-27,4
-38,65
-69,56
-63,57
-5,6
-45,70
-45,57
-3,9
-67,35
-57,55
-61,38
-51,67
-1,27
-19,27
-1,9
-63,68
-19,22
-64,37
-19,9
-15,18
-29,57
-12,29
-37,69
-60,67
-19,13
-1,43
-59,55
-21,7
-1,4
-56,37
-48,53
-3,15
-19,26
-10,1
-61,64
-61,59
-16,25
-25,10
-2,11
-49,67
-24,57
-61,33
-65,58
-51,34
-59,51
-61,46
-25,15
-47,59
-3,7
-22,13
-29,16
-67,57
-65,37
-3,40
-25,9
-33,7
-17,12
-62,35
-15,20
-61,60
-51,61
-46,63
-65,66
-57,53
-64,47
-32,65
-8,17
-29,1
-55,34
-58,63
-9,25
-49,49
-5,1
-21,24
-59,58
-25,23
-7,15
-63,60
-11,26
-15,8
-25,59
-55,42
-11,5
-27,1
-46,47
-29,67
-20,13
-20,25
-14,5
-49,55
-29,55
-2,15
-55,65
-61,57
-3,3
-47,61
-26,15
-19,7
-67,36
-69,61
-47,51
-36,69
-40,69
-31,57
-4,31
-19,57
-19,5
-19,23
-55,41
-69,68
-49,63
-27,13
-27,59
-66,59
-39,67
-54,51
-63,44
-5,28
-8,39
-32,7
-65,42
-35,60
-13,35
-51,51
-57,45
-63,53
-55,68
-21,2
-45,60
-66,47
-29,12
-3,10
-51,59
-39,66
-8,23
-9,22
-15,17
-57,50
-53,39
-2,43
-53,44
-55,66
-52,57
-7,2
-13,24
-1,33
-8,13
-29,58
-23,11
-59,65
-51,43
-19,15
-59,52
-6,1
-24,55
-30,15
-51,68
-40,65
-24,61
-35,65
-53,52
-67,45
-1,1
-35,64
-4,1
-25,2
-19,66
-33,9
-55,60
-24,17
-53,51
-25,6
-29,8
-1,5
-3,23
-18,23
-31,1
-67,69
-61,49
-61,56
-63,70
-11,21
-61,26
-51,35
-17,28
-17,15
-19,17
-36,55
-21,11
-25,11
-65,30
-8,27
-53,45
-22,57
-59,29
-59,54
-7,43
-6,29
-55,62
-63,69
-51,36
-57,56
-7,1
-20,29
-47,58
-3,45
-43,53
-65,55
-55,59
-3,4
-66,33
-62,53
-20,21
-23,13
-5,42
-12,7
-10,37
-51,33
-5,31
-59,63
-63,32
-11,19
-22,53
-3,17
-67,52
-59,59
-17,17
-11,30
-44,55
-61,39
-3,6
-26,9
-68,49
-55,46
-49,65
-15,3
-13,25
-17,1
-25,55
-69,39
-27,63
-25,61
-27,22
-14,7
-6,23
-57,59
-53,65
-1,19
-7,10
-12,35
-5,3
-36,61
-65,26
-55,51
-60,31
-1,42
-64,35
-56,49
-13,5
-5,12
-21,1
-68,39
-5,29
-21,16
-43,69
-53,70
-5,21
-13,21
-57,41
-23,60
-3,34
-43,62
-47,55
-23,57
-1,41
-49,61
-22,11
-17,25
-67,55
-23,18
-5,25
-19,16
-69,54
-10,15
-67,42
-63,37
-59,39
-57,49
-67,53
-17,8
-36,47
-20,9
-23,3
-24,9
-63,29
-55,37
-9,4
-31,67
-31,69
-24,65
-29,7
-1,7
-39,63
-1,38
-3,41
-33,57
-26,65
-69,33
-41,57
-34,67
-24,3
-53,64
-13,11
-34,23
-12,3
-62,41
-0,15
-45,68
-2,17
-5,37
-63,39
-37,58
-51,54
-66,63
-13,2
-1,22
-61,40
-12,33
-3,19
-67,24
-39,51
-22,23
-17,65
-11,31
-5,13
-7,37
-57,67
-7,34
-19,19
-45,67
-56,65
-57,60
-51,64
-51,49
-23,15
-31,59
-24,15
-29,13
-46,61
-27,29
-23,0
-37,61
-33,69
-48,61
-13,19
-40,55
-22,9
-55,58
-24,23
-21,4
-15,21
-1,14
-53,38
-61,27
-22,21
-11,1
-53,32
-51,39
-23,14
-57,35
-69,57
-21,59
-61,58
-55,48
-18,63
-43,61
-31,9
-41,65
-65,59
-65,61
-1,31
-65,68
-5,8
-69,48
-43,68
-27,61
-27,14
-51,45
-69,51
-64,51
-52,47
-47,54
-33,67
-11,25
-68,47
-59,47
-13,1
-27,67
-20,7
-67,34
-1,0
-55,31
-15,23
-69,67
-21,5
-34,57
-9,30
-65,45
-47,56
-26,67
-65,12
-13,43
-39,37
-1,55
-41,11
-7,41
-17,62
-67,3
-32,21
-7,48
-55,53
-43,34
-41,48
-69,1
-43,63
-22,29
-67,23
-68,9
-9,49
-39,32
-31,31
-19,30
-17,59
-27,45
-51,9
-11,59
-57,21
-67,5
-51,1
-18,59
-53,13
-33,66
-39,53
-41,39
-37,10
-19,39
-13,12
-62,13
-49,15
-16,39
-33,15
-21,52
-34,55
-19,67
-21,39
-31,52
-65,13
-11,18
-51,15
-67,7
-46,29
-46,3
-27,68
-43,6
-2,67
-36,49
-59,11
-13,16
-52,7
-37,27
-55,25
-27,50
-47,7
-69,24
-35,43
-17,37
-39,18
-35,6
-34,45
-63,6
-13,44
-3,50
-7,49
-3,69
-38,31
-53,42
-41,50
-43,57
-33,47
-15,10
-29,42
-0,55
-37,17
-32,49
-21,31
-22,31
-58,17
-51,13
-15,47
-5,55
-39,20
-11,65
-51,23
-19,60
-51,7
-37,14
-15,51
-56,21
-2,55
-15,66
-35,1
-37,53
-59,19
-65,15
-26,25
-54,5
-67,10
-52,25
-65,19
-25,39
-37,2
-25,28
-12,47
-7,69
-47,23
-17,68
-0,45
-55,13
-15,55
-63,19
-61,70
-13,13
-27,44
-56,13
-67,33
-9,46
-3,54
-33,4
-40,3
-51,16
-43,25
-15,11
-33,8
-51,10
-10,45
-11,28
-46,23
-41,28
-50,17
-49,42
-43,5
-55,19
-59,9
-19,63
-15,57
-63,35
-63,27
-24,39
-3,63
-13,41
-35,41
-49,1
-16,37
-47,5
-35,53
-45,10
-34,13
-67,25
-37,13
-43,49
-11,54
-47,47
-45,29
-5,70
-64,7
-13,57
-27,31
-23,43
-35,33
-29,39
-31,53
-39,27
-9,69
-39,41
-23,28
-23,29
-39,61
-35,31
-12,39
-43,48
-65,27
-41,5
-18,51
-39,29
-58,43
-37,44
-42,67
-50,53
-17,45
-35,29
-42,25
-42,63
-11,13
-33,23
-29,27
-29,21
-45,27
-59,3
-16,53
-69,40
-23,55
-43,15
-43,27
-53,25
-41,55
-7,11
-44,25
-41,47
-24,69
-30,25
-40,35
-25,49
-35,35
-9,6
-57,25
-20,41
-9,63
-32,43
-46,5
-4,57
-54,11
-18,35
-21,70
-15,14
-14,49
-51,3
-54,23
-30,29
-1,64
-49,7
-5,17
-53,23
-4,67
-57,17
-27,27
-30,1
-17,67
-41,9
-57,26
-61,9
-9,65
-35,3
-65,5
-65,25
-31,22
-29,45
-42,41
-48,7
-39,6
-41,30
-15,33
-21,35
-35,39
-42,9
-53,3
-32,39
-24,49
-45,21
-25,69
-6,63
-3,43
-47,35
-41,12
-43,47
-33,41
-53,9
-3,67
-13,10
-9,51
-7,47
-61,6
-63,8
-54,39
-29,32
-29,70
-49,37
-8,35
-11,53
-21,55
-63,20
-23,17
-31,28
-61,13
-53,1
-21,64
-52,13
-30,55
-45,50
-11,35
-44,5
-67,15
-39,3
-61,1
-38,33
-19,68
-23,49
-37,29
-60,21
-17,54
-49,18
-39,24
-15,41
-64,9
-68,17
-60,25
-36,15
-19,54
-37,43
-12,41
-7,13
-33,31
-22,47
-17,52
-33,25
-55,24
-25,46
-19,38
-7,63
-24,43
-47,41
-69,11
-47,11
-36,19
-61,16
-35,18
-37,23
-36,41
-37,36
-66,9
-67,65
-26,43
-34,35
-13,56
-57,5
-37,11
-7,65
-68,13
-57,13
-24,37
-4,25
-30,45
-25,21
-45,9
-57,11
-37,19
-52,9
-9,11
-67,1
-15,69
-27,53
-55,17
-39,22
-23,61
-28,27
-41,21
-49,21
-46,7
-33,19
-42,5
-49,5
-28,55
-15,62
-1,58
-17,55
-0,69
-54,27
-13,61
-38,27
-30,35
-49,25
-6,61
-11,23
-61,2
-68,27
-68,7
-19,32
-53,49
-31,30
-17,63
-46,33
-35,55
-56,9
-19,61
-39,48
-57,29
-47,37
-11,62
-47,38
-49,13
-38,57
-42,33
-60,11
-29,25
-57,9
-34,47
-69,21
-38,43
-10,51
-43,1
-34,39
-25,33
-53,15
-51,22
-45,47
-26,35
-3,66
-63,23
-63,18
-33,49
-17,41
-41,49
-45,15
-29,38
-60,5
-61,8
-15,45
-47,31
-37,5
-55,15
-8,47
-31,45
-44,27
-13,68
-55,4
-68,1
-55,2
-49,32
-35,45
-47,16
-45,5
-12,49
-64,27
-31,41
-15,43
-24,63
-15,56
-65,21
-55,1
-67,68
-19,44
-59,1
-13,67
-25,41
-11,29
-65,1
-67,14
-15,7
-56,15
-27,51
-27,49
-55,49
-17,35
-11,60
-15,67
-53,5
-25,51
-43,7
-7,54
-37,12
-43,35
-17,39
-50,7
-49,3
-45,43
-49,34
-16,43
-51,29
-33,27
-17,47
-9,16
-69,7
-67,9
-20,67
-5,53
-11,45
-25,63
-33,2
-21,37
-48,1
-44,33
-41,0
-16,49
-59,17
-3,68
-39,26
-23,31
-7,66
-45,7
-36,39
-19,50
-67,63
-50,25
-20,49
-44,29
-30,19
-21,33
-29,2
-63,4
-34,41
-1,11
-49,35
-63,22
-37,37
-62,19
-43,11
-63,3
-12,63
-49,33
-41,1
-36,51
-31,13
-42,53
-37,39
-51,24
-59,22
-59,15
-3,51
-39,11
-68,21
-31,11
-49,36
-69,17
-41,18
-36,43
-27,43
-27,35
-21,51
-33,51
-37,54
-13,45
-38,47
-47,27
-67,19
-11,41
-1,63
-53,14
-57,24
-6,39
-36,31
-47,12
-69,4
-24,31
-1,53
-26,39
-44,17
-21,26
-65,0
-61,10
-3,57
-33,38
-63,13
-27,33
-5,61
-1,59
-14,45
-67,2
-47,40
-36,23
-1,48
-51,27
-21,63
-7,57
-43,19
-30,47
-37,22
-2,27
-5,66
-23,42
-69,15
-39,23
-69,5
-31,25
-51,25
-29,51
-27,38
-1,67
-48,29
-43,43
-3,53
-31,23
-23,44
-57,19
-11,66
-47,44
-21,48
-69,20
-20,37
-42,69
-15,58
-32,3
-10,13
-22,61
-51,30
-9,55
-19,41
-19,43
-23,45
-25,37
-11,55
-15,16
-9,39
-21,34
-37,33
-19,51
-37,47
-43,36
-5,47
-21,56
-27,55
-52,19
-60,19
-18,45
-37,20
-44,41
-57,30
-34,53
-18,39
-28,49
-61,17
-55,29
-35,52
-36,37
-39,12
-69,22
-7,39
-18,33
-45,30
-23,37
-60,17
-66,1
-45,31
-47,21
-5,67
-21,53
-1,62
-41,14
-41,17
-41,35
-59,23
-19,31
-23,34
-63,15
-41,51
-34,21
-37,8
-14,37
-26,55
-31,42
-67,21
-35,15
-15,37
-61,21
-47,50
-49,57
-41,3
-49,8
-57,22
-42,21
-63,1
-25,53
-40,5
-15,34
-33,33
-47,39
-53,17
-13,55
-55,16
-57,3
-21,42
-59,24
-59,14
-57,1
-52,29
-65,11
-5,63
-39,1
-37,4
-57,69
-67,11
-5,39
-65,7
-19,40
-29,52
-11,8
-34,19
-19,29
-17,33
-50,27
-61,25
-41,41
-15,15
-21,69
-33,53
-8,65
-11,67
-53,43
-25,20
-48,11
-19,53
-41,23
-14,61
-36,1
-47,26
-45,37
-11,44
-9,12
-43,13
-23,36
-31,27
-65,9
-20,35
-41,19
-45,48
-28,41
-41,44
-39,49
-67,6
-43,54
-46,35
-69,3
-29,35
-31,29
-69,19
-56,19
-34,43
-35,21
-11,61
-36,35
-17,9
-27,21
-13,39
-17,53
-28,45
-14,51
-39,10
-61,41
-48,15
-48,13
-9,68
-55,6
-27,34
-70,29
-45,13
-16,45
-48,27
-9,61
-31,33
-39,5
-33,10
-63,24
-15,64
-58,19
-45,38
-31,44
-15,53
-53,60
-15,48
-52,49
-53,19
-63,17
-11,47
-34,9
-22,51
-7,36
-27,69
-19,35
-11,57
-59,69
-15,9
-33,50
-12,65
-27,26
-46,37
-63,65
-25,35
-1,69
-36,33
-69,43
-13,63
-33,36
-44,15
-61,11
-35,13
-5,69
-5,60
-3,48
-59,25
-65,14
-7,62
-25,32
-49,40
-43,9
-49,39
-33,58
-38,9
-55,3
-51,6
-55,23
-13,7
-55,9
-1,52
-67,13
-41,22
-28,31
-41,7
-5,49
-40,37
-31,51
-49,48
-17,57
-1,3
-29,4
-19,45
-34,49
-53,11
-41,33
-58,7
-29,53
-9,54
-39,47
-39,9
-51,57
-43,18
-50,11
-61,12
-19,65
-42,37
-7,20
-45,42
-47,20
-29,41
-35,5
-51,50
-21,46
-42,15
-5,56
-51,32
-31,36
-39,33
-13,38
-14,55
-25,48
-39,15
-53,2
-2,25
-13,18
-29,47
-26,53
-40,45
-45,20
-7,59
-49,29
-32,33
-19,47
-47,48
-2,47
-27,28
-44,39
-29,63
-45,23
-13,69
-51,17
-39,45
-49,9
-43,44
-48,21
-39,39
-9,50
-35,23
-48,9
-55,11
-43,31
-5,52
-31,5
-17,42
-28,21
-9,59
-51,53
-34,3
-15,49
-29,43
-29,59
-59,0
-21,32
-28,19
-1,45
-35,7
-25,27
-11,52
-3,65
-20,63
-30,5
-53,29
-5,19
-49,11
-11,33
-39,7
-67,16
-23,53
-39,34
-26,19
-17,50
-26,49
-34,27
-55,26
-52,3
-47,29
-39,14
-57,27
-43,3
-13,53
-9,56
-57,23
-33,46
-12,55
-1,61
-9,47
-3,33
-7,58
-25,43
-43,45
-54,13
-33,17
-53,21
-33,55
-49,59
-20,53
-5,57
-21,49
-64,19
-3,47
-21,43
-9,37
-47,13
-30,63
-40,9
-37,3
-17,70
-33,45
-37,45
-70,15
-48,23
-1,65
-36,7
-45,39
-56,11
-51,11
-13,37
-27,39
-10,47
-19,46
-25,17
-19,56
-10,41
-33,5
-51,0
-17,61
-12,51
-62,23
-59,6
-9,67
-27,17
-24,21
-44,3
-16,47
-7,40
-7,61
-35,19
-69,27
-65,23
-14,53
-61,5
-5,41
-46,55
-39,46
-19,69
-23,39
-9,23
-29,17
-0,51
-31,35
-51,38
-61,3
-39,35
-41,67
-55,7
-22,41
-41,15
-45,55
-27,47
-37,57
-51,5
-15,42
-7,68
-48,19
-44,9
-34,29
-1,47
-4,59
-57,15
-39,21
-33,1
-35,25
-37,35
-49,53
-10,57
-24,45
-57,2
-16,59
-41,8
-47,2
-53,27
-21,45
-67,17
-39,50
-14,35
-51,14
-60,3
-66,19
-11,49
-33,30
-43,41
-55,63
-7,51
-37,41
-36,27
-43,23
-37,7
-27,32
-29,49
-44,23
-9,53
-39,43
-33,35
-9,60
-37,1
-25,40
-25,31
-66,21
-33,14
-47,15
-63,11
-1,57
-38,29
-69,29
-13,51
-9,57
-33,29
-3,59
-3,55
-43,46
-66,13
-30,39
-3,64
-55,67
-43,37
-1,51
-57,16
-41,25
-9,62
-58,13
-9,42
-32,25
-10,9
-44,19
-6,57
-23,50
-58,11
-25,29
-37,25
-64,3
-40,25
-31,21
-33,24
-21,29
-37,24
-57,28
-40,41
-33,39
-9,41
-50,3
-27,37
-61,23
-31,26
-61,69
-37,49
-54,9
-33,28
-49,27
-41,32
-35,57
-43,21
-59,13
-37,9
-25,45
-43,39
-31,15
-67,27
-13,47
-11,7
-49,43
-7,70
-21,21
-11,17
-41,31
-29,5
-27,41
-45,53
-41,37
-23,69
-43,29
-32,41
-47,33
-59,7
-17,69
-44,45
-42,1
-43,42
-70,9
-51,28
-19,59
-57,7
-49,52
-13,60
-13,9
-41,2
-42,31
-54,59
-41,29
-47,30
-63,7
-37,15
-49,23
-17,56
-45,19
-53,41
-53,61
-26,41
-51,37
-36,29
-9,35
-11,63
-6,53
-15,35
-27,48
-29,33
-62,1
-55,0
-47,9
-21,19
-61,19
-45,11
-33,37
-13,33
-5,43
-8,53
-7,45
-23,68
-5,50
-67,4
-10,63
-7,55
-51,21
-69,26
-35,17
-64,11
-7,8
-55,5
-48,3
-3,49
-5,65
-23,26
-3,61
-29,40
-47,19
-27,36
-21,47
-45,8
-35,37
-21,18
-38,51
-51,4
-55,27
-65,17
-31,32
-29,34
-67,39
-45,41
-55,40
-58,21
-17,49
-27,25
-66,5
-66,25
-49,17
-31,19
-20,61
-47,1
-41,16
-17,43
-40,29
-17,51
-61,15
-22,39
-12,69
-67,29
-36,57
-15,61
-46,45
-53,7
-5,23
-27,30
-41,45
-39,25
-64,17
-8,9
-32,19
-33,11
-33,43
-5,51
-50,13
-59,21
-35,49
-35,59
-33,21
-1,49
-37,31
-39,17
-9,45
-11,43
-5,45
-26,23
-29,23
-53,20
-11,70
-45,35
-61,45
-11,51
-46,17
-54,19
-1,60
-29,37
-57,4
-9,43
-41,46
-5,59
-61,14
-36,5
-16,63
-41,27
-40,53
-67,18
-47,25
-19,49
-38,41
-45,1
-31,49
-35,47
-47,24
-49,19
-22,37
-14,67
-3,62
-63,5
-7,21
-13,58
-11,69
-46,27
-43,55
-15,59
-21,57
-38,37
-25,52
-17,36
-30,21
-19,37
-23,33
-8,59
-39,19
-8,51
-49,41
-31,14
-2,57
-45,25
-35,51
-15,13
-39,4
-47,45
-3,52
-11,58
-70,5
-32,63
-31,63
-54,17
-25,30
-41,13
-11,11
-23,35
-43,12
-15,63
-10,67
-11,40
-63,16
-69,12
-10,33
-63,21
-63,9
-19,55
-41,38
-49,31
-23,41
-48,43
-38,1
-58,69
-62,11
-13,14
-48,39
-23,19
-35,12
-12,43
-5,44
-34,33
-43,17
-50,21
-47,17
-35,27
-61,65
-21,65
-47,32
-40,57
-44,13
-32,47
-43,33
-27,19
-42,11
-45,51
-31,43
-31,47
-23,51
-29,31
-13,49
-35,11
-69,9
-7,9
-13,65
-69,23
-41,43
-28,53
-30,17
-37,59
-8,43
-55,8
-58,9
-29,29
-6,49
-14,41
-31,39
-33,16
-29,3
-53,26
-65,3
-11,9
-43,51
-3,44
-49,45
-43,24
-15,68
-11,20
-37,51
-69,41
-13,64
-19,33
-45,33
-63,25
-21,41
-39,40
-5,46
-33,3
-23,47
-58,3
-42,51
-20,45
-41,53
-32,53
-37,21
-47,3
-59,5
-1,15
-39,31
-39,38
-44,1
-53,22
-45,17
-7,64
-48,35
-46,13
-16,31
-11,37
-65,49
-61,7
-41,69
-51,19
-48,5
-31,37
-45,45
-31,55
-17,31
-45,49
-7,67
-30,49
-49,51
-11,15
-3,60
-7,53
-47,53
-13,59
-39,57
-45,22
-45,3
-35,26
-41,20
-55,21
-69,13
-62,3
-18,65
-62,65
-28,52
-15,52
-25,70
-8,7
-20,30
-50,59
-1,44
-15,36
-20,15
-64,4
-56,53
-34,40
-50,58
-34,38
-1,54
-24,62
-60,60
-2,40
-3,14
-57,8
-11,6
-0,7
-54,12
-27,66
-11,38
-32,66
-4,62
-60,52
-54,24
-20,38
-44,24
-61,20
-14,12
-58,29
-68,23
-65,16
-68,36
-42,61
-8,67
-68,62
-50,33
-0,39
-12,26
-60,16
-20,48
-55,18
-14,10
-36,40
-62,6
-52,15
-41,42
-47,46
-66,12
-35,32
-40,60
-55,14
-32,55
-30,11
-32,17
-54,55
-67,48
-24,32
-65,34
-55,70
-39,42
-14,46
-12,8
-32,9
-63,28
-24,64
-34,69
-22,18
-50,34
-60,70
-16,58
-12,19
-68,54
-6,54
-69,44
-42,43
-39,56
-70,38
-12,68
-38,42
-0,19
-13,4
-16,2
-27,24
-12,45
-18,40
-38,32
-46,26
-16,68
-11,4
-52,60
-64,10
-10,65
-7,56
-0,54
-7,42
-60,34
-3,18
-70,8
-3,56
-17,32
-42,66
-14,54
-56,60
-37,40
-5,40
-15,54
-21,66
-46,36
-68,53
-12,64
-6,6
-50,32
-4,6
-4,40
-70,43
-68,42
-51,20
-70,2
-44,40
-0,38
-32,16
-8,52
-44,26
-10,44
-2,50
-70,18
-56,16
-36,70
-62,17
-37,32
-22,45
-3,20
-63,38
-37,42
-13,54
-34,42
-48,36
-22,5
-2,48
-10,43
-18,1
-48,32
-38,44
-2,49
-40,49
-22,43
-4,61
-70,22
-3,22
-63,0
-0,42
-2,38
-10,59
-32,54
-3,24
-52,23
-14,34
-34,65
-68,20
-24,40
-22,32
-26,30
-12,59
-62,51
-60,12
-56,32
-3,16
-18,43
-36,68
-2,44
-58,10
-14,15
-16,32
-53,62
-4,29
-54,16
-66,27
-8,46
-59,2
-50,70
-7,6
-10,58
-14,56
-10,2
-22,70
-28,70
-4,42
-20,47
-11,56
-13,36
-68,15
-5,62
-0,34
-22,33
-13,20
-60,28
-6,18
-68,8
-2,69
-34,11
-12,23
-39,52
-56,68
-16,12
-13,52
-19,34
-2,7
-66,41
-56,25
-54,58
-30,37
-32,67
-30,43
-58,27
-14,48
-20,68
-32,18
-52,44
-14,69
-9,58
-58,62
-36,6
-68,61
-40,38
-59,26
-20,62
-67,22
-26,28
-12,20
-42,40
-20,65
-28,13
-16,38
-18,4
-7,16
-2,63
-11,32
-32,12
-68,46
-66,46
-54,61
-12,1
-7,60
-2,41
-68,11
-62,31
-70,69
-0,10
-18,34
-62,22
-10,53
-24,35
-60,18
-33,52
-18,66
-46,53
-57,66
-52,18
-69,32
-18,30
-60,44
-23,52
-50,44
-14,60
-1,50
-20,27
-2,60
-42,13
-6,48
-2,58
-0,53
-24,68
-64,30
-18,41
-0,57
-56,47
-16,62
-66,36
-20,69
-37,48
-56,4
-61,34
-42,47
-9,26
-14,20
-56,59
-0,4
-26,36
-14,38
-24,28
-12,67
-16,50
-70,27
-20,32
-4,39
-14,19
-65,2
-66,26
-32,64
-44,36
-56,1
-50,46
-28,39
-68,65
-32,70
-8,11
-30,8
-61,66
-69,64
-22,27
-28,44
-44,34
-8,4
-34,46
-6,68
-32,37
-14,30
-6,58
-0,22
-24,26
-14,57
-28,48
-8,57
-68,68
-29,68
-52,10
-26,46
-3,38
-67,46
-69,18
-34,51
-54,62
-1,10
-58,60
-57,6
-48,51
-18,68
-52,63
-63,30
-20,33
-21,68
-46,8
-25,62
-68,4
-59,70
-45,54
-25,44
-66,22
-50,68
-46,46
-55,20
-64,45
-31,66
-30,50
-42,26
-2,54
-67,0
-56,66
-10,36
-57,0
-6,50
-70,32
-8,26
-2,34
-10,6
-56,29
-65,20
-16,30
-50,40
-64,69
-35,70
-16,61
-50,35
-36,38
-56,51
-13,34
-15,70
-69,2
-24,41
-10,54
-22,25
-70,48
-8,8
-64,38
-68,14
-7,52
-48,44
-58,1
-1,34
-66,29
-54,26
-0,60
-11,46
-21,50
-52,62
-44,43
-40,44
-20,18
-44,18
-55,52
-12,25
-7,50
-12,58
-12,57
-12,12
-6,65
-46,38
-23,30
-8,48
-26,44
-45,28
-67,54
-10,22
-15,46
-14,17
-13,42
-13,66
-12,10
-16,24
-12,24
-69,60
-69,16
-6,69
-8,15
-38,56
-18,2
-36,45
-56,7
-43,60
-6,14
-12,14
-11,14
-11,68
-44,62
-24,34
-0,56
-38,13
-44,37
-14,16
-56,6
-64,68
-32,15
-23,64
-58,52
-56,34
-23,62
-20,17
-26,54
-12,56
-70,23
-44,31
-58,56
-45,18
-10,20
-14,18
-10,62
-54,68
-28,46
-66,61
-14,11
-52,42
-48,52
-28,58
-3,2
-56,20
-54,60
-9,44
-40,68
-12,48
-52,43
-4,68
-47,52
-9,40
-2,6
-14,70
-65,44
-63,66
-29,46
-53,50
-50,42
-18,47
-30,18
-35,40
-18,44
-20,19
-48,66
-30,53
-16,11
-61,22
-26,26
-68,10
-34,37
-6,2
-28,16
-6,10
-5,64
-54,10
-47,66
-58,55
-14,58
-64,46
-62,69
-64,18
-14,63
-23,70
-2,53
-70,42
-70,11
-32,2
-18,62
-43,40
-8,62
-0,21
-56,58
-70,46
-0,26
-29,64
-70,44
-0,5
-58,2
-69,28
-30,42
-58,58
-70,0
-58,68
-42,56
-70,28
-31,2
-62,38
-14,4
-67,26
-34,28
-59,68
-60,36
-21,36
-12,11
-58,4
-62,16
-40,67
-47,8
-2,24
-5,18
-67,20
-19,48
-52,5
-18,58
-70,39
-44,0
-12,42
-10,16
-62,26
-60,66
-26,14
-43,8
-27,6
-32,44
-13,48
-46,0
-67,32
-52,12
-2,16
-46,48
-57,10
-8,2
-58,53
-51,18
-35,24
-4,44
-18,61
-57,48
-21,12
-52,31
-33,54
-32,20
-11,16
-56,46
-34,54
-8,70
-0,44
-40,58
-34,12
-41,64
-5,34
-36,9
-26,66
-64,24
-38,49
-58,36
-50,16
-32,31
-28,38
-66,55
-58,28
-47,42
-3,70
-51,8
-68,24
-39,0
-46,28
-0,62
-29,0
-37,56
-62,60
-64,36
-44,32
-42,28
-36,66
-64,28
-54,37
-15,32
-2,59
-21,40
-18,28
-32,5
-17,34
-14,68
-9,52
-32,8
-10,61
-64,60
-49,30
-28,8
-31,18
-64,67
-8,58
-35,14
-0,37
-36,17
-65,36
-42,29
-48,47
-40,12
-54,21
-33,22
-62,66
-32,30
-4,35
-38,50
-35,48
-20,54
-0,65
-10,19
-34,36
-37,6
-43,38
-48,37
-40,6
-58,40
-68,32
-46,43
-11,12
-40,51
-49,0
-39,8
-23,38
-1,56
-35,34
-54,32
-22,50
-44,44
-14,8
-8,49
-0,20
-35,54
-24,2
-36,54
-10,10
-16,56
-16,41
-28,3
-44,46
-20,20
-5,58
-32,45
-4,58
-37,66
-29,22
-57,12
-46,40
-41,24
-44,28
-5,24
-25,4
-14,22
-54,65
-46,59
-10,17
-52,21
-16,22
-30,10
-70,36
-64,40
-66,64
-44,61
-57,20
-44,57
-20,34
-20,57
-8,40
-39,54
-46,25
-58,54
-59,10
-34,68
-20,55
-38,69
-11,34
-58,64
-48,59
-4,65
-47,18
-40,4
-56,18
-8,19
-70,21
-20,0
-24,6
-38,34
-70,41
-40,19
-23,22
-36,8
-24,5
-54,48
-64,50
-64,6
-50,52
-16,67
-27,54
-58,70
-64,23
-1,30
-51,58
-60,33
-38,20
-24,12
-34,5
-8,25
-53,58
-34,31
-32,29
-48,17
-42,12
-52,50
-52,8
-3,36
-38,46
-29,24
-26,29
-38,48
-48,67
-44,35
-50,51
-30,32
-64,25
-40,70
-18,57
-64,21
-7,18
-50,49
-12,2
-63,2
-54,7
-35,0
-62,9
-37,60
-20,12
-36,62
-16,6
-40,61
-0,67
-10,31
-66,58
-42,17
-42,7
-16,46
-25,14
-4,60
-54,0
-2,12
-65,52
-40,26
-22,66
-42,45
-33,32
-54,43
-28,4
-25,50
-35,16
-42,27
-32,68
-38,4
-10,32
-48,4
-16,4
-46,14
-37,70
-0,49
-68,64
-30,33
-10,34
-60,46
-70,50
-16,57
-58,59
-22,19
-30,69
-28,54
-49,28
-28,51
-63,36
-55,22
-28,15
-18,38
-30,61
-28,9
-58,14
-34,30
-56,22
-31,12
-26,27
-31,64
-49,68
-48,30
-56,5
-4,48
-33,12
-44,56
-27,46
-43,0
-30,44
-10,69
-54,29
-12,32
-19,42
-3,12
-54,34
-33,68
-2,61
-44,52
-30,66
-38,15
-12,52
-56,57
-36,36
-8,10
-51,60
-61,24
-18,64
-0,18
-57,42
-50,19
-48,68
-36,52
-16,18
-26,50
-7,4
-36,53
-6,67
-61,28
-37,26
-44,68
-0,66
-24,54
-13,62
-46,19
-12,53
-38,24
-4,53
-54,66
-38,38
-2,36
-31,38
-38,59
-31,62
-62,70
-8,56
-48,10
-6,13
-49,16
-32,34
-2,4
-20,3
-56,31
-61,4
-50,55
-31,4
-30,24
-14,2
-18,15
-70,40
-27,64
-38,22
-47,6
-65,28
-28,64
-27,16
-62,58
-20,2
-46,11
-58,12
-33,26
-47,4
-19,64
-48,63
-38,67
-62,7
-1,32
-70,12
-62,47
-58,23
-14,13
-52,1
-16,36
-18,22
-26,48
-24,48
-30,30
-45,34
-10,70
-42,65
-68,60
-50,6
-8,60
-40,13
-16,65
-21,44
-33,42
-68,38
-50,63
-49,4
-40,14
-52,4
-69,8
-52,69
-53,16
-58,34
-42,68
-44,60
-11,22
-12,36
-61,62
-12,6
-27,42
-46,24
-18,16
-0,28
-50,48
-22,6
-10,18
-66,6
-43,14
-56,54
-64,59
-68,52
-49,14
-24,70
-38,3
-24,66
-41,40
-6,62
-70,66
-11,42
-66,17
-68,0
-14,65
-54,18
-66,7
-40,20
-42,64
-70,61
-16,69
-4,28
-1,2
-55,12
-30,34
-54,2
-15,22
-56,30
-33,56
-21,14
-38,12
-35,62
-24,10
-44,11
-56,44
-54,53
-8,0
-23,56
-70,20
-3,32
-70,55
-55,56
-59,40
+bwb, wrrbg, ubwg, rwg, urbbgrr, wugr, rububww, rbrw, ggw, grgwu, wb, gwuuubw, gbr, ugur, rug, ugw, rg, uru, wgrbgug, buwwrwu, bbbuw, urbug, rrbr, uwbr, wurr, wbwrw, bug, rggwguru, brrgub, uuwg, gww, gwb, ubrb, wgrg, rubbgwu, bbb, buu, gbgrwg, rwuwbg, uubwbu, buuu, uwurwgu, gwbugwgw, guru, brww, bwgrugb, rbbgrw, ruubg, wub, wbw, bgww, bgugg, rru, urrwuw, bwwgw, brbww, gwug, bwwwbwb, uubggg, gbgb, rbgub, bwuwgg, wrbb, buwrw, gbbwrrg, gug, wuww, u, ru, gbbbu, ugwrwgb, rgb, rwwuwuwb, ruugwrb, rgruw, wwuwwbbw, urrrbu, bwg, ub, urg, ruwg, bwr, wbwb, brbwrwww, rbwgrgub, gbb, grwwb, bwggw, urwr, rrrug, buw, gbbgrguu, rbgg, brbwur, ububwb, bur, wruru, buurbu, ggb, ggr, rggwrub, uwbbbbgb, rrrb, uwr, bwwrr, brgw, urrwug, gub, rwwb, wgw, ggur, bbrb, uwrbgbu, buubu, urb, bg, gguubbrg, gg, rwr, uubb, wwb, uwgbub, brbgrrb, ubbbrwb, ugr, ggwwug, wbgbu, grw, wrb, brr, rub, gr, guwb, ggrgr, rrb, uuurb, brw, wrg, guw, uggr, uuurgw, wrrgu, wwuu, uruuu, bwrr, wwg, bwguu, rugww, rbw, wur, buuuw, rwb, bbg, gbu, rurw, brwbbb, wbbgguw, rrrr, bwbbb, bgu, uurbb, gwrbwb, wgwrgbwg, wgrw, gugw, urrbb, rww, ruu, uwbrbb, bbbrwb, bugw, wug, wgg, rwru, r, uwg, wggr, brbwgb, uwbuwg, ubr, rbgwrrw, grwbur, grrrbb, wgr, rrbw, uurw, wbgg, buwg, wru, ruwwu, wbbbrg, grgbgbr, uuu, wrr, ubwr, rubbgb, gbrw, gbug, uwrur, ugru, uruggr, ubu, uwgg, wrgb, wbg, ug, guu, bgw, wbu, wuru, rur, wwbwwr, wbugg, wrwgwwb, rrgu, uuugg, bgbb, gb, uwugwgu, bguw, ugwgwugb, brburg, grrbw, brb, bguwb, bwugu, ubwgg, rbr, wwrb, bwgrug, rbww, gwg, rgrgu, bwbgrgb, wwbu, bwugw, uguu, uubuggwb, uwb, gbg, uubur, urwbub, uggrr, wrurb, bbr, uggg, gur, wrwrw, bbbrug, bbuw, b, wbgw, bubgubg, ggg, bru, gbuwr, ruw, wgu, ubb, gru, bb, uwbug, ugbrgu, uruwrrbb, rrug, bgbu, ggwgbrr, rwuuuuu, bgr, rrwu, ruub, burw, bbww, uuuu, gwwb, wrur, grb, br, bwwgg, gburg, ugubw, gbwbwbb, gwrgubrg, bguwwr, grgugbw, rugw, guww, brrrr, uguurb, uwwbbw, guwgu, guguubr, rwu, bbbwb, wggru, bub, rwrg, gw, bw, wrgbrb, ggbru, gwbw, wuwgu, rwgurr, gugr, rbu, wrbguww, uuww, rbuwu, uwu, rburgwu, wgbbuu, rggrur, wbr, buubb, rgwb, bgg, rwurbg, urgrg, rbrrr, rbur, wr, uwuruggr, buug, wubw, uubbbu, gwu, ubgg, rgu, uwwr, brgrgw, uuw, wwr, wu, grgwbbb, rgrbr, bbu, wuwgr, rrg, urw, urgbgr, bwwb, gurgu, rr, rgr, rbg, rgrr, uwgug, gwggbw, rgg, ubgr, ggww, gugggr, rrbgrw, rrr, ubw, uw, gbw, wrww, uwwwrwbu, bgwrugu, guur, grrruuw, ubrgg, ggrb, grg, bgrru, rurrb, ugg, wwgr, uwbrg, wuw, ubbu, rbb, www, wwubgu, ur, bububg, gwr, grgguwg, bubr, wwu, ggru, ugu, rgrru, uburu, wuu, wbugrwu, uur, urwgrwg, bwgwgwg, ubgru, burugw, wgbwrr, urr, wgb, g, ruwggg, wbb, bbrrg, wbuw, uubwugw, rwrr, uubgr, uww, gu, uubu, rrw, ugb, buuwr, uug, rbwbubgb, wgwburur, rrurr, uguw, wbrw, ggu, ruwgwb, rgw, ubrbgu, ururb, rb, ruuu, ubg, rbbbggwu, wg, wbrbbg, gwwwuu, bugg, uu, rbgwrwu, gggbbu, rbggu, wbwwr, uwbbu, ggrwu, brg, buub, bggguu, bu, gbrubgwr, wrwwb, bbw, wubrbb, bbwbbur, bww, uwwuuw
+
+wgurrgbbgwuuwwbwwuwggwrbggrbrwrgbbwwwbbbubuuwbwuuguwr
+bwuuubbguuuurgwrrrrgguugurwbubbrrgugbuwurgu
+wrguubgwbgrwubrbbgbrbuburugugbrgwruwrrgwgbgwubrgrgg
+rbbbwbruubwruurbbbrbbbwwgrurgrgwugbbrwgwwuwgwwb
+wrwrbrgrubguurbubbgbwubrgbbwrwwwburbwrrubbgruwrwrgubbgwwu
+brwrbuwbgugubwbuwgwbguwugbuwwurwurgwrurbrgwgwwwbrb
+bwrrbbruwrgggurgwuwuubuwubbwwwwgbwubwbrguwwbrugurwgrru
+burrwrgrbuwwwrwbuurrbwgbgwburrwwugubuggbguwrgurbggurwrw
+bbwrgubwgwgrwubggbrgbrgwuwggwgrbbwbbuuuugwrgbubgurgwgwbbww
+ruwbuwwgwwgubuguurbbwggugwwwugrubwbwgbggwgrr
+wuubwguggguwrwgbrrwbgubuwgrgbugrwubugggwru
+rrugrbrwrgruwbwwrbwwubbuubwrrggwruruwbbwrwbbgw
+wruubuwrgwbrwgbbwrbrbwruubrbuurbbguwubwuuguwwrrgggub
+bgugwguwgrrbwbuugwgwruwugwugugbuuwwgggwgrggbu
+bgwrbgugrgwwururrrbrwrwugwwbgrrubrgbburwrrr
+buuwbggrbrwwbgugwwugbwbbbrurgrrwrwbuubgrruwggbwbrugwr
+rwbguwuubururbugrwbguuwuubbbbwrrurgbwubwgwwwgwbgbwggrrwb
+wbbururwuuwuwrrgbgwgrubggbrburrbrgrugwuwbwrburwwb
+buubuggrbbuwbgwuwgwbwbgwrggbbbgguurwrrrubwgwrrurgruubu
+uwbwwggrrrubwbbgrwgwgwgwguurwrwwrrwwwggrwwbwrgwuuwgw
+rubbgbbrrbrubgbbggwgrrbrrurwrguggwwbuggbbgbwrwwbuwr
+wuwbruwgugrgbwgbrgrbrbwbubgbrurbgurrurggbwgwguuwgrugwubwbg
+bubgbgbwuwbggwuwgbrwbwrbuwrugwubwbwrwggwrggbbur
+uwuwurrrbwubbbwgbbgwbuuurggwrwgbwwuuwwbwwgburburbruurwugrg
+brwrrbuguuuugbrugbwggggwuuuwguubbwuurwububwgwwuggrwr
+uburugwgwruuruuugwrwrwuggrrgguubwgrbbbrrwwgruwbrurgg
+ruguwgguubbbgwbrwbggbuwrruwgrrbbbgurwgbwwwgrguurrbbuwwggu
+wbwrwbbrrgwgbuguwggrrwwuruwbuwuurruurrbruurwuuwrgu
+buuubgbwugbubrbbgwurbuuuwuwgugbrrurwgbbgrwbrrgwgww
+rugubbrbguurwrruburrubwwrubrugwwbbrwrgwrbrwwubwwrbu
+gwruuwbbgrubruubgwuwwgbrguurrwwrrrwbrrgguurbb
+rgwguuwrwbbgruwrbuwbwbbwwgbwggwubwuwwbwruwrruubrbrburrr
+rbbwurrrbwugwbburwwwrbgggbggwbwrgubrbwrwwww
+bgrwrwuwrwgrwgrrwgwrrugurrbrrrggggbwguwrwwbbrb
+rwrrbwgrbgwbrruwbuwrruwwwgrguwgggbrbrwggwbwgwbrr
+buurugugugbrugbugbwwubgwrrubruuurgwurbrrrr
+ugbrbbrwbwgguwwrbbuwwgurbuuurgwrbrgbwwgbwurrrggrwwurur
+gwgbubrbgwrrgrgrrgwrwbrurgurugguruwgwubbbrbbb
+ububbbrbrgrrgwrurgwwwbuuggwwwrwrwwugruwuuwgbwurru
+rrururggwgbrrubbbwwwwuuguubugggwrggurbgurgguwgubbgbbrg
+rgwbbgbgrgrbuuwgubgurbggbbggwgbuggwrugbwuuruugbwuuwg
+uubgbwgguuubugbwrwgwggwbuwubrrubbwbwwuubbgwbb
+ubugrgwwbgbuurgbbggwggruubrwguuruubuwrbuggbgrrrrguuu
+brrgggrrbuugbbbrbgbbbbwgwrugwgbrbuwbuubrbgr
+rgburwuwbwgrrbwgwgbgguugrrwwbgwuwubbbwwwbbuguw
+bbgrrwrwwuuwrgrubrwbgrbuuuwuwbbbbgbwbuuwrbbrwrw
+guuwbwwwrgbgwrwwbbrwruruggburuwrbguwwwwuuuwbw
+rurwuubwwrggbuwrrgbgwwbbuuwbubgbbrurwbgwbbgwruuwgb
+grrrwuruwrgwgggugwbbrugrgggbbgwwbuwbrwuwubwbbrwugrugugw
+ubgubrggrwgugguruuruwuguwwbrbuwubwubrbugrwr
+rrrwbubburgguurwbgubrggrgwrrurwuruwrrbburrgbwurwgbbwwrrb
+bubbbuwrgwbbgrgugbbrgbubrrubbbrwbbwuwrggggubwbrr
+ruwgwguwbbwrbbuuuwgrgwrbgrgurruwbgrggwbgbugruwwwrrbb
+guwrwgbuubwurbwrbbugrrwwggbugwgwugbugbgbgbub
+rbwwubrgbgwrwrrgbuwrbwuubgwrugbrubwgburbugbrwwuwuwbwwrw
+rguuubwbwgbbbububugrguurwrwgwrgbwggugwrw
+grbgbrggwubbbwbrbrwbbbwbwubuuggrruuruurbgrr
+uwrubgbwuwrurrbbguubrbwbururwgrggbwwbgbbrwrubggwrbbbggwuuwrw
+brrwbrbugubrbrwgruurwbbbgrwwwgbrugwbgrrrbrwugurruuuuwb
+ugbrwbgrbuugwrguwrbbwwrwrrbbrurwbggggwruguwbwbwuuw
+rrbrwbrbbrgrbbwwggugrwgbgugrgubggwrwrwrubwrgugbwwgbgwbu
+ggwrgwrbwggrbbugugbrwrgrrrurbrwbwrbbbwbbgrwgbbr
+rbwggrwguwwwwgubgbggbuwwwubrbbrbgbwrbrggburrrwwuwurwg
+uuwguuwwrrgurugbbbwruuuruwugrbrrgrwrgbbbuggwwrubgw
+uwwbrgguwbbbburrrbbubrbrurrbbwggurrguguwgbrurwbbbgu
+gwbrgbbbbgrwurbguwruggbrgrbbbrrbgwgrugbuuruwgwugwwb
+wrrwwwurrubwbrgbwwggurwruwubggbuurgwbwbwugugbbbwr
+ggbubrwbwbuuuurguuruwbbruwugwgwugbrgbuwwwwgrbwrw
+wguubbbwgbbbwbgrrburbgwrrrrrrbbgwwuwuurrwbrrw
+wwuubwwburbrrgrubwgggwguubwrgwgbubuuuguburbrrwurgw
+wrruugwuuuruubwrbrburuwwbwugwuwrwbwuwuurbwggwbgrbr
+bwugwggrrrwrbbwbbruurugrrbgbwurburgwrwrrbruguubuwgrgb
+wbubwgwwwrbbuurbbwwwwbwugrwbrurrruwuwugrrwugubwrbgrrgrr
+wbgbggrggwgurugurwgrwwuuurgbrggurwurwwgurrbwrbgwrw
+ubruugbbrrgwrbuuguwgruuwggururwrururugwbbrwburrur
+wwbgbuuggugrrrwwurbgbgbwwgwubgrrruurbubbgwgbrwggurbb
+rgurrurrwbrgbrbrgbguuguwugwwbggbwubgwrbbuwbrgbbrbrgbwb
+wuuuugwwwrwurbbugwguuubrguwggrgwrguwubbgrwwgrgbbgrguuwguwrw
+ugggbrubrbuwbruwguwrrguwgwrwgwrbgbuguubgggugrbwubugrr
+grbbggbrbuuurugruwbrrgrubgrbruuubwwbgwwbguwwgwwuwggrr
+bbgrgwbruguwrggwwrwwrrggwbbwgugrgbrwurwurgrubuwgr
+brurwguurrrrubbuubggbrbwwrrbrugwrbuguwbgbgwubg
+wbguwbgbrubgwrwbbgrgrbuwbgubruwbbguwwbbwugwwwwrw
+gbuuuuruwgbwubgguwgrwggbwbrrwrugrgwbwruuwrr
+wwrrugrbgrrwwrbbubgwbguuguwrgwuguwuuurguwwuwgbgg
+gguugwwrrbubwrggbbbuugubbwwrubggbbbwrgggbwguww
+gwurrgbrrbrurgbgwbgwrrgbbggrwwwbbuugrbbugrwubwb
+bbwbgrbbrbgrrruuubwwrrbwgwgwrrrrggguggbrrrubggbrrgwbubr
+gwgbbuguuuwurbggrrwrrgwbwbgbwurwgrugrwgurrwgrubwr
+ugubbgbgrwwrbgwrbwrbbbrbwurgbuurbuwrgguugrrugwbbrr
+grggbbuubwbgugguwuburrubwuubuugrgbwgurrwbubrrwburg
+rwgwggurrbwurbgwbbgugrgrrggbrugrwwrgbbwrburwgrg
+uwwrbwbrwbgubuugbgbbrbbgbwgbwbgbruwrwuwgbbw
+guwrgwrgbbguuubbburuburrbrubugrrbwgrbwbwrgwrrgrbruw
+buwwgrwuwwuuuuugwubwwggbguurbgbbuggrbwuubbbw
+rbggrbuuugrwwrwbrgrgugrbgwbuwrbuugbrbgwwurwrbwwrbggwrbburg
+ubwbrwrubbrubbgrwbwbwwugrbbgrgwgbrbwwwruwuuuuurrbuwwg
+rwwgubgwggrbgbrbgurubbbrwurrgrubrgbgrggggbgbwwwgwrg
+rugbbwwwwuwgbugubbrrggbwgbgbruguguwgubrguwwb
+rwurrrgggbrwwrrbubbwrbbbgwugwwbuuwgrbgrbrwwrubgbrwbrrgwrwg
+gbuwwbruguuubbubrbwubrruurrrrugbbrrwuggwbggw
+rbubggbgwgruwugbggwgbuubugurwrubuugrrwwwgugwuuw
+grrubbguubrbwugbubguuugbrurubgurrrbrubguwrbrrbwwuw
+bbruggrubwrbgwubbrrrrbwrrbgbuwbuguburrrgwwrwgggrbbugwubww
+uuwgubwgguwuurrbugbgrwrbwwwgburuuguwguwrwgbgrgguuwrugbr
+wggrgbrrugbgrugbrrubbbbrwwwugubrurgwwubwbggwuwgwwwwgwbgwb
+ggubuwrggbuwwwrrgrwwgururbuuwuguubrrwuubugrwugburugbbrurgw
+wgrrwubuugrbbbburgbwubwurwbwgrgwgrrrbggbgrwbwguwwg
+bggubgbuuwbrurwuwguuguwrgwgbbwugubwuwrggrrr
+bggbbwbugbwggwgurubwrwgbbggrwwwrrggwbgrrrwgrrrgbwubgrbuurw
+gbwugruwubgbuubrgbrgwggbgbrrbrbwubbbuwrgubbgwggbgbbbgubrr
+rwgubwrguurbbrwbrrgwgggbwugbbrwwuuwbguwbuwguuwbwuurwbburr
+ruwbrubububggwuuwbruwubgruurrwuwruurbuuuuwwrubruugw
+wbrrrrgbuwgruwwrbrrggwgggrbugggbgbbrruwrrwbwbggwg
+rrgbwuwugurwwbrgbrwuguburbrbbururgwbwgruuubg
+brwubwuugrruurrbgrwugubuwuurwrwggubrrbrbgbggwugurgwuubuuu
+wgburgrbwurruwbuuwbuuwwbgwrggrbguwwbuuubgw
+wwrrgwrbwwuurrgbgwwruwurbgwuuuwgbrwggugbwrubbwrgrg
+uuurbbrbgbrbbruruwurwrubrbwgrgubwbuguuurrrwgwwrw
+wwrgrwuubuurgbuwgrbwbguubbbruwbuwgrwururrrbbbggwurwbwwrbww
+bgwrwubgrbwbbwuurgbgwuubuggwbgwurrbgwgrgwguubrubwrw
+rwwgbbrrrruggbwgugurwuwgggwgwubgbrugggrbwgguugw
+uwbrrbrwruuurbuwgrurbbrgguubbrgbwrwwwwrw
+bgwwgugrrbwwwbwgwbbgrbrggwrbwrbrwuubbgrrbwbgwurgwugwur
+rgwurwrubgrgrgruwwrbrbgwbuwggbrbrrgwguggrgwgbwubwgru
+bwgrgugggugrugwrwbuuwgburbbgurwwwurrgruubggw
+gwuggrbgubgrrugrbubrgbwuugbwbbbwbwuwrubwuuuwbgwuwgguuwr
+bbgubbwrbugrwrwgburruruwbwrugwugwwwgwguguwwrgwurrrgww
+wrwgggrrbgwwggugbbbuwurggbbgbruwbbbbguuwgguubg
+rbwubgrrbrwuwrrruuruubbrurwrrubuugrrbubrbbbbrbgrwuur
+grrrguuwuruggrwgrgguuuwgbggwurwbwbwbbwruruurubugubbgr
+wgurgbuuugruubgwrrbbbbrburuwrruwggggruurugbbugrrb
+urburbwgrgubbwgubrbubbgbgrgruugwbwwburrurbuubgrguwrg
+wrrwugrrbrgwrwwuwrbggbrbgwggrbrbgrgubgrbbbbbwrggu
+wuubuguugggugwbrwbbuwgurwwgrggububrgrbguwwgbuwrr
+gwrgwubrwgwrbugurwwrbububrubggbwwgwbubbbuwrb
+rbrgubgwruwwgwurgbubbggbwrbwrgrgwbguurwwub
+rwuwbgugbuugwbgwgrwrrggwrrugrwugwgwruurwgbrgwrubrruub
+rrwgguwrgrwugugbwrrggguuwguwwgwwbbbuwbwwuuurubub
+bbwwwgbuwwrgbrugwugwuwgwwwbrwgbruububwrwrbugrwgwwuugb
+ubrurrgwgbrwgrubbbuuwuruggbwwbguwrbbwbwugwbugurbrguubur
+grugwbuwrwgrwubbbguuwgrrurggbuwbrwruwguggubgwwggrggbw
+gbuuwrwugwgrburbrwbrggbbuuwuggrwbruuururguuwwwwgrbwwruwrr
+brruururbggrbgurbrugrbrrrrgbwgggwgburrugwurrw
+rgbwuggwrugrwrbbrwbbrwwbbwbrbwurruuwrubgwrgbuugww
+wwbgrwbugrrbwrrbwrwubrwuurwgbgugbrwgwruwbugrbgugbwrrbrr
+ububuwwgbgrguuguruwugwbubgwbwgrbbwbbbrgwgbuuuwwwwgwrburu
+rgrguwrgwruuggubwwbbbbbggbrwwurrrubgwgurbbgbubwwguurgbrwr
+uggwuwgrggurgwwrugrrgguururbuwbuuuugruwwgbrubruru
+bubwuuuwurbggubbbwrgwuugwwrwubbrbbgwggggwg
+rrugubbugwugbwrbrbuuwbrrgbubbguwrwgrrwbguurwwubbwur
+gguuugggwuggbbgugwggwuguwrurrrwguwugwuubbruggurg
+ugrbwwbuuugrgwurbbrbruwgrgwrrwrugggbbgrguugwwrwgwbubrbgwgb
+ugubgubbggrggrbrwuwuugbrurggrguwbwuwuwwwbr
+wgwuwbbbwbwgurbuugggrbwbuuwwrrwuwrbbwbgrbbrrurgugwgur
+grgbbugurrwgurrbbbburbuwwggburgbrgwubwbbrruuugbruuwbrguguu
+rrbwrwugrggbggwbubgbbugruuwuwwgrurggbwbrruuruuburwugurr
+rbgruwrgbggggrguubruwbrwgrwgguubruruwrwwrwwgbbubgwg
+uurwwbguuubbugggwuuwgubrggrgwbwugurrrwrgwugurwrrubbguuuu
+wrugbbgrgbwgwwrwwrbgrwurbgburgbburgbrgbbrguwruubwbrgrgwuw
+wgrggwrrwrggwgurubburwbwrwgrgwwrbbbwbbrwrr
+bbbrgrbbbggrrubbwgbwwgururgbbbggrgwgbggrrbguuwgwrgwwbwugu
+bbbbbbrwwgwgrgbgrbwuurrruuuuggrbrubuurgrwbgbwuwgurwb
+rubrgwrgubrgbrgwrgbbbwrbuwurbuubbgbbrwgwbrguggwbbuwrrbuwgr
+rurbuuugbwwuuuuwbbbbgbgwurrbubwrgugubgwgruguggbburuwbgg
+bbggwbbrggruwwwbgbuugbguruwrgbrwwurburgbbrruuggurg
+uwrururrguubwwgurrurrwbrrbggugrrwwgrrrbubuuwbwruu
+bburgggwrrgrwwwuguwrwwrubuwrrbgrbuuugwuwrwgw
+bggggbugbwwubwgrgwubrbbwugbwuwbbbbuwgbgubrwbbgu
+guwrrgggwgugubrguwugburugugrruwurgbwuwgbbwbg
+bguwwwbbwbruuuwbwwgrbwwggbbggurugurrgbwwgu
+rgrbbbbgrrwurwbrwrrggrgrugwurwbrrruruubbbwubuwburubwgb
+brurubrrwrgwrgubrgbgubgbbbuwwrgugwrbruwuwrrguwrw
+rgrurwbrgggbrrwbbuguggugwgubrbgbrugbbwrgbrgbrbgwrgwbw
+wggbgwgggbbbbuuugwbgbrrwbbbruwgwuubbrburgwggugbubwrwggrrwr
+ugwgbugwbbbugrrgbrguwgbuguwbwgrgwrgrbrgggwggwbrrgg
+bgwbugwgwbgrgrbrubuwwrrrwrbbwuurggbbwurwrw
+urrruurgbgubwgubrrbuwwwbwgruurrwbuwgwguwrrbuwwgwuwb
+rugwbgwbwguuuubbwwuugwrwurwrrwggruwrbugwuuurwg
+gwrubwrwrwbwbgwurgurbrrbbwwugwbbbuggrrrbbwwrbuwwuuwugwgg
+rwbbrwgrbwugwwbwuwgwwugrrgwgrgrbbrwbwwbguugwuugbwrw
+uuburwrbrrrbbwrwbrrbggbgbugguuuurbwrrbrbwgggruwwbrgwuggwgr
+gubrrruuwubgbruwugugburbwbubgbrburrbwuuuwuwrw
+bwgwuuwbuwgbwuuwbrbbugrgburrurwurrbwguwbbwubgubruug
+brbggwbwggbwwrwwbwbuwburgwbrbbrubwbugrwwwwrbrbwwrw
+brbrugrburugbgwrgruwuuwwbbwuwbwbruggwguuwwrwrbg
+wwwbuwubgurwuuurgwwrgurgwbuwuwgbbuwbuugwuurrbwwgwwb
+wbgrwgrubbugbubuwugrgbgbwuwwguruurggrgwubrugrrbbgbbgb
+rurbgwrrguugugwbugwgwrgrbbwurguwbggwwrwrrwwurgbwu
+ururuububuugwuwugrrwuwrgrgurbwgrgbbwburuuugrbrwgr
+gbruggubbgrwubrwwbrgwbruwgrbbwwbuubugruuuwuw
+wwwbbgbruurrbbbwrgggrggbbgrwbbwbwuurguwuwuubgugwguwwgb
+rurbbbgwubrrrgbrruugurggbrwguugurrrggurwrguburbrwwrw
+gubggrrwbrurwurugubuubgrrbbwguuguwbwrbuuwubggbrbgwrrb
+wggburgrrbrruruurbwwrwuurruuwrrwbuwgbrwubggwwrubwggb
+rgwwwwuubgwbuubbuuubrbugwgrbbrgubwrgbwgwwubbbbbbwbbgwgw
+wwubwgubrrugbububwwbbrugbbwurruruggurbuuruuwwrw
+bwgbbrrbwrbuuuugwgrbgggwbubgbgwrgggggwrrbwugrbwbuwubbg
+gbwwuwgbgubbrubrruwwwbgwrwgrrwubuwbbwwgurrubwbr
+gwuwrgwubwrwrggburwggrruggbubwbbggbrugwgbburgugrrggwrw
+uwuuuurrrubwbwrwwrubuuuuwuugruggwbburwgrbr
+grurbggrbrggbgubwrrgwuruuwuwurwurburrubgbugwbrwu
+burbbggrrggbbubrrrbwwwwburwuuwrruwgruwwgwwrgwbwuwubururwub
+buwbrguuurrwuwbwwbuggggbbwwwwbuwbggurwuburugrguuugub
+uwububuwgbrubbwguuwurrgrurrwbggrrwwrrrgrbubwuwgwrrgbububgr
+gwuwgrbwrwwugbbgbwwuuwwrbggrruubwwwrgrrwrbrrgrbwwbgbbrw
+bwbbwrwrgguurbwgrggbrburubgwrrgubwbbgbuugwgbbbgb
+rguubugwuugbrbbuggwbwgwggwguwbrwuwgrwgugwwwrrwgbw
+bwruuggrrgbubuggwbrwwbrbwuwwugwbuwuwbubwuwuggb
+bggwwubbbbwrgburuwbwgbubbwwbrugbgwrggbrwbbbuwrubwgburgruw
+urwbbbruwbgurrruugggrbbbbwrbubwwggubgurggwbggbgwwgw
+rwwrrruwrrwuuubwburggbugwrugbgrwgbgrgggurrwbwrwguwwrwg
+wbuuuuggbbrgurgwurbrruwrrugwuuggbbwbggwugugrrgwgwrwwrg
+uurguggwrwwubgwgrggruwwuurububwwuurguuwbubgrgbuw
+uurguwuruggrbbgurgbbubrrrwwurguruugbwggwgrgwgrrwrw
+burrbwrggwgwwwwbwgbwwrwwwrurubguwwuurrgrgbbgg
+ggbrbwbwuuuurrwuwrrrrwuubgbrwwrrgubrwbrurbwrw
+wwwwggbugwrwgwuugbuuwubbgggrguuuwbbbbrrrgbgbubggrwww
+rbwwrugbwrrgrbgbgruwgwbururuurwgbrbrurwrw
+uwggbrrubrugbbbrgbwwrbubwbgwbuguwgbgbuubuggwbwbrggwbuuwu
+rbwgwrwgwuruwuruwwuwwbbwbgwgrbrwruuwrguwrw
+buruwrbgwrrwwurwubgbgggubbugwwugwbgwubbwbrwgrbuug
+wbubrgubuurbgbgguwubbgwrwrrrrwbwurbgggwbug
+brrgugbbwwbwrwrwuggbugrgrwwbbwubwuwubgrwbruggw
+rbugggrgbubuwggggruwugbwubwruwgbrgrguggbuwbwbwbwrwwr
+grubrwrbrwbubbbrbbggrrburwruwbrgbbbwuguubbrwrgrwbrgururb
+rbwrbgwrgwbrrbbwuggwuwgwwrurwubgbrwuuuubwrbwurwwurugbrwbgwrw
+uuwruurggwbbubwgrgrurwwrggrgrwwguugwwbbbgurbwbru
+uruuwrbbubrugwwwgwbgwwwbrggrbwubwrbggugwugwwrrrwg
+rwburguuwrwbbbrwrgbgrgrwgrrurwugrgrurwgbbwr
+uwrwggwuuwwbbgwgwubwggurwuuwgwwrwbubrbrubwugrrugbuwgwgbr
+wugubwuwwbrwgwuurruwwrbwwgrrwgbbbburbggbrbugubbgw
+wgrrwbrgbbbrbwuurrgwbuuurubggwrbwuwrgurgbbwrguugubwrrub
+rwugbrrwgwgbbbrwgbwruuurgubuwggbugguurrurgurgrrg
+bgwugwuruugbwrurggwuwgbbwwruburuuwwuwwbbwuwbrrbg
+bgruwbbbbguwugrrbbgbwgwwburwwbwwbbwrgwbbgurwrw
+wwbguwuwuubbbgrggrgruuurwwrbrurbgwurbruwrbgugwwguwuruwb
+wbbubbbuwrbwrwbguwgggbuwbrwrburwrbugrrwgbwwu
+ruruubwuwubrgwwuwbruugwubrgwrwbgrrbrgwrwbwg
+wgbuwrgubguruwugggruuwugbwwwbwuguuggwbwrubugbruwr
+rwrbrrrurgwbwgbbggwgwrgubbbrwbrrrgubwruurwrrbbwwrbbgrgw
+wgugrggwgwbggrwwuuuwbgwggbrbuguwwbgbruubwrru
+wwrwwguuuwguwrrgrrubggwggggwgurwwwbggruururr
+wwgbbrwuuwrrgrrwgwugbwrwbgbuurbggruwubgggwu
+grrbbgrgruwrubgbbrbgugbwgbrrbwwbubrubbguwrrgwrrug
+gwrbubgggwgbgguugwrwwwuwgurwrburwgrbgrubuuwwwwwrurg
+guguwgrwbuwgwgbuwgrurugrgwrbuugbuburuurrgrburubrgrbg
+wbgwbbuwubrgbuwwrggrwwwrugbgurwgbwubggwurgwbrwrwbgw
+wrbgrgburgwugrwubugwrwuwrggbwbgwrgbwbgbbbururgwrw
+brurwgwbgwwgurwugggrgubbwbwurbrbguuuruuuuuwgrwrrwwwrwu
+grbgbbbrbgubuwbubbbwrurgggwgwurwbubwuwbgugbgurbggwwguguwwb
+urubggbbwururggburbwububugbbwbgwbbubgggruggrgrww
+bwwbbwbwwrrwbwwbbgbgrburuwruwwrbrrbbwgrrwrgwrrbrubuggbr
+rbwruuwrwurwgubbgrwrwbwuugbrurbuwruwurwgubggrru
+grrwwrrugwwrubwbuuubrubgwgbrgugbubrurwuuuurrbug
+wgrbwggbbrwuburubbbrbbwwwgrugbbwwbrbwwuwwuuw
+ruuurbwruubbuwwbrrgwburbwugwbbwrwbrurwbuugguwww
+wbwurbubgrrbubwwgrugwwwwubwrbgrwgurwugrgguuwgrubbubwgg
+uwuuubuwggwrwuggbguwrbrbbgrbwrwwrubgrggubbwwgrrbwg
+wuuwugbgubwwubbbwggguwrgwuwrrrbuugwwubuwubgrwrr
+uggrbbgbrgrwuugbgbugbggrbgwbugwbgbgwbrrbrgruwgrbwrgr
+ruugbwrubrgwwwgwrrrwuwgbrgbrbbrurwrbruuwwrgug
+bbubbgbwrwbrbwbbgwbgrggbwguggrgwuwwurwwbruwu
+urgrrbugwwwurgbggwggugrbbuwwgbgggugubbubgr
+wwgbuwgwgwubbuwgrugwggwurburrwrrrwruggwuwrr
+brrwrwrwuwuugbgbwbguwrruubrwggubbrgwwggwwr
+ugbbwwgrbgugbwwugwruggwgrggugwruggwrbbubwbguuuwuwugrrbb
+urwwuubbgwuururbwbwgwgrwbuwrwbwugwrubwbwwruubgwbubgbg
+ubbbuwuuggguwrgggwuguuurbbruwbwgrbgbwgrbuubwurbrug
+wgwbwbwgruubgwbgurwuburrbbbgruuuggwwgbrurrwgrwuww
+uggrwrgwgubgrbbgwbrgwrbbbbuwbbugrgwuwubuurrbbgrwgbr
+uwrrwgguuruuubrwuugubugruurguwwuubrrrgbbbwrbuguuwrwgb
+uguugbwbuwbrwbbwbrgbrrwrwrwrggwuubrubbgbrrbrgwuguguuw
+gbgruuwrrububurguruuwuubwrurugwuruuwgwgbrgbrbb
+guwbgruwuggrubbuubuuubuurwuubururrbuggwruggr
+wuurwrbgguuugrwgbrubgwrwubwwuwguwwgbbbbbbgrwgwr
+wbgrgrwbwrwbruwruburuwwburwwbgrgrburwrgwbgwr
+wwuwuuurgrrrgguuwbrwgbuuuuuwrggugrwgrguuuuuubw
+gwwggggbrgwrrwubbrrbrwbgwuwwuwrrgrguwurrbburubbr
+rgguwgwggguurwrgwuururrbrgguugwgrbwwurgwuuuurr
+rwuwbguwgrbwbgggbuwwbwuubrwuwrwbbbuwwubrgw
+wwrwuurrbuuwbgburrggbrrbbrubwwgbwwrrwubgwuwwrrruugururruww
+rbrbwugrrugbugwggwurugrruwrubrgrubbrgugrgbbuggbgbbgrrgwrr
+uuwggwgbrrrgbrrbuburugburuwwggbrguwbuwbwuub
+gwburgbuwwruwbruggwruruubbuwbbwrrgrgrrwggug
+buuuubbrwgwwwbwrbubrbubgruuruwugbggguuurbrwrrgbrugwgbuu
+ububrwwwuwuuwuwubbbrbrwrrwbbrgrwggbugbbgrrugbgr
+uggwwruwwbbwbrrrubrbugwbuwbgbgbgrrguwgwgrurwwgggb
+gbguwugrwubwwwubwrbwuwbuwbuuugurgwwgrbbrrbrgwrbrgggrurguwg
+rrbwuuguggwbgwrwbrgwrrwbgwubbgrrwgurgrrbrbbrwrubuwwrbgub
+gburubbruwggrbggrrbbgrurrubgrwurwrgrguurrrgggbwrr
+bwrwubgwwrrrbwuwbuuwwurggwugbguubgwbrwgbbggwggu
+ubugwbbrbrrwbuwbrbrggbrwrurugrrrrrgubrrurrbr
+urrurrwuugbuwggbbguuwugwwrbbbwggbwurrgwwggurbgugrguwurrwwb
+wbbrgwurwrggrbrgwgugwuurrubgrgrugrrbwbrguguburrbgbgb
+uwwurbuubwwruwrwbrbubbruuwburrwrbrbwggbbbgurrggwbgguu
+wrbwbbgurwbwgrubbgrgbubgbubrrgrbuwggrwruwgurbwwwggrgguugg
+brrbubrbbwwbbbwwubwgubbwbuwwwbrggrggwrugrwgwgwbrrrgwwugr
+uwuruwwwrrbrwgrubggbugwrbuuuubwwugurwwrugrwbrrbbubb
+brbbbgrbuwggbrbgbuwwurwbbgggrrugrwbgbgbrrgrgwwbru
+wuuwrrubrbwuguubwwgwggrwwwwwgwuurbwbbwburgbrwwbwrgrgbgguu
+rrruuwbbrubbrrrburrurbwrrbwgbuggubgubwrugrrwbuwubwub
+rbgbuurgruuwrgwwrrbrugbuwrrwbbrggguurwgrrbrrgrgwuug
+brrruuwwwrgwbwbgrwuuubwwrbwuruwrwbwwbgbrwgggwb
+gwrruwburbrugwwgbgubrbwrburrggbrrwrwwrubwrwwrg
+wrrgbbbwwbgbgwgurrubrguuuwbuuurwugwrwugrwbrwb
+ggbgrrbbrgrgbgugrbbruwruuwbwgggrwruuugrwug
+rrrbwuwruggwguwrwwurggruwwwrwrrrgrbrubbbwbrbuuugrbggbbgbbu
+ggwbwgubwbggbggrruwwbwuwwrbbbggwwbgguurrurrwug
+bwbugwwrburgbwuwuwwbugwwbrgbgbwbguwubwuwbrb
+wrgbubuwgwwwwuwrrgubwubggbwwrwwruubgrrbbugwuugbwrw
+rruwuwuuugrggrrguurubwbrrrruwbguwwurwbgwbwwbwbuu
+rbbbrbbgwrbwguwgwwbwburbrrwruwwurgbgrbrrgbugwrwwrggb
+bgwruuwubrguuuuwbgrbggubbrgrbbrruwugugwbuuwbr
+wubruuggwugwbubbbrgrugwrrbgwbgrwurrgruwgbwgubbbw
+wuuwbruwrwwwbwuwwbwrbrwwggbgrbgwwwwggwwggwrgguubbrguwu
+wbbruwuwggbbbubgbuuwbrwbgrrwurugubrguuurbgrwguug
+gbggubwgguuruguuurwbgrrbwguwrbugbwbbuuuwurwwgwgbbbb
+rurrgbgwbwwubuwgubbwwrurgbrwbrbubrurwggbgrb
+gwugbwbuuwwrruggrggguruubgbwugbrruggbbbrwrgwu
+gbrwurwbbuuurubbbbgbbbrurwwbbbbwurrbwgbwurbwrwuwbur
+brgurwbwrrbwgbugbwwggburwubbwbbugurrbwwubgrgbwb
+ggugwwwrgbwbubrrgrbwwrbuwuwwwrwbuwggugbrugrrrwgrwwrrwrrggu
+rrubrwwurwrwbrrgbwruwbbwbgguubwuwrwurwruuguwwrugbwb
+uwbburrrbgburguurbuubrbbwrbuwuggwwugwgruwurguwwruuguugbbrb
+uwrggbrrubrgrrbubwwguuuwggrburrwuwruuuubrrrbgb
+uubruguwgurgwbbwrrrwgubwwbwrbrggguurrrugwwbuubgrb
+grwwgurrrbgbrwuuwbubwwbrwrgrggrbugrbbbrrwuwgrwwbrbwru
+rbgwwbbggwrbbwbbuuugrwrrrggggrrurubgwbgbrwbgbwwr
+gbrwurbrrwbgrurwuubwwrbuurgrrwgwrgrurruuubggbbbggg
+wrwbuuggrgbwrurwgubgrbruuugrubwgwrrwbrgurbrwb
+grbgwbwrrrbgwbbrugrugwwbuuwrbuwbgrgrgrrwwuwuwburrbubgbww
+wwbrbwbbubbgrbbguwwuurrbgbbguuuurbbguurgbrgwg
+uwgwbugrbrgwgrgbrrbbugbwrbrbbuubuwbwwwrubwwrbwgggurwwgu
+urgwuuuurrbrbwguurubgrwwrbrgwurwuubwruwrrggrbg
+wrbwwbrgbrgrrurbgrrrbwbwurgrbwgrrbrrbggrrwgu
+rbgrggbrggrgbwgwbbgwgwbubuwgrrbwbubggbbwugugww
+uubgwurrubrbbrbgrbgbubwrubgwwwruburgbgrrwrgwwuwuggrrrguugr
+bguubwrwgggbgwuwruwbgwwgrbbbbwwrguwggwbrwwbg
+wrwurwubbgrurbbuugurggrgugggrbwgwwwrugbuwb
+uuwwrubgurrgbwgrbbrgrurrwgwrgbwgruwrbuwrrrrgur
+wbugbgbbubgwugggbwbrbgrgrrggwrwgrwrurbwbwbbbwr
+urgburwrbwgguuurubgbrwrgwbuburguwwuwwubrwgb
+ruggurbuwgruuggruurwbwbgbgbgbubrbbrgubgwrw
+rggbbrgbrgubuuubwwwgbrugggugwggubwrrwrgwrrwb
+grwugwrbubbggurbwwuwggugubwwrgrbguurwuwurrwrruu
+bubuwuugbbuurbbgugbuuuwubuwrubgrgurrbburbrbgwbwgbrwgwrwu
+ruwrubuuugwrgbrwurbbwubuwgrrbbwbwuwrwuwrbwbgrbgbbbgb
+wubrgwuubugrwgrbbgbgbwgrrubuuuwruwuurbbruuwrurrru
+gggbrbbwgbubbgbgwwggrbrgwwwgbrubgwrbrbrwugrggburwrbbbbgb
+wubbbruurwrbwubwugwwwbwbggurburbwurwggbbuwrbrrgburbbrbbwgw
+gwuugggrrbbgwbrrrbbubrrbwguwbwguwbwbbbuwuugbwgrruwb
+gbwrrruggbugrrgrbgrrbwwrubrwugwbrgrbgbbgrbwgbg
+bbbruruwrrbburbbrbwggbrbwruwrgwwwrburuggbwruurrgrguuwrw
+gwrrggugruwrggrgwwubruwwrwubwgwwrurwbgbgwwbwbgbwb
+ugbuuwrrwuuwgggbgugrwbrwurbrgurrrrggbuurbrgugwububbg
+ugrbrrguwuwbuwwrgrrbgburgwugwrggurgguruugwubwwgbruuugbr
+rggwwwgbuwwgggbrrubwrwbubrbwrbgbgrgbwwbuwwrrurgubbrbrb
+gwrburgugwubuubbwwgwuurwbuwrwuwurbbbwgggwbbwwub
+rugbrguwrgubbbrbuwuwwbwwbbggbrurwwbguguwrurgwurubbgwrrrbw
+ugubbwwgguruguwgrwwuwwrgbuwruwwwbgwwbgwbrr
+gbuwbggwrugrrrrgwurguwrgugggggguguuugbuubuwgugwg
+grwbgurbbbgbwgbgwbubrbguuubwbwbgrbrguwbrrwwggggbbwb
+rbgwwgguburbbgrubbuuwwgwgbbrrwwbwwwurbrbbbrbwuuruuub
+wgwubrurrwwwrwgwrgrwuuuggwrggrwrugubrgbrwbgubrbw
+bbrurrubwrwguurwwbggrbwgruugbuuurbbuuruguwgrwg
+rbwwwubgubrwwgbbbbbubwbgubggbubwbggbwurbgggugbwgwrwwuruwuu
+brwrubggrurbwwbruuwuburrbwwbgwwuwruwugwuurwgburb
+rbruuuwwbbuurbguubwwwruuuwwgwuugwuwgbrbwbrbwrruwgbwuww
+rrrbrbbuuuurgrwbbuwwubuwbrgbrrwwwggbgbugbbbuwubwrrgw
+ubbgbbwgurruubbubggrrbgurrwgbrguuwuguurwubgwbwrrurbwugbbu
+bwwwbgguwbuuggrrggbbwgrrbbgbubrbrbbguwwrruwrbbugugu
+gwuwwwubwuwubwbrggrgugbwwbbrwgbwuwwbwrggrr
+wrrrurwwwuurbbgwubbgwuubuwrgbbrbwbbbruuugrgwwbwbuwbgwbrw
+guuugbrbrggbwrwwbwwwbbbbrgrruubggrbwrwrugrugrrugb
+rrgwwbrgbwuwwgrugrgurbgwuwurwuwwgbgurrgrurwbgrrurbwgu
+rgrrgwbrugugbugggbrbrrgrwrwuuugwgbwubruwgrwggwgwbururug
+bbbwggwbuwgwbwrrbuuwwrgbguubuubwgubuwrbbgwrwbgw
+wgubwwrubwguubuwburuuuubbbwgbrgruuguuububbuwb
+rbwbwrrgruwwbwrwgbbbgbrrrrgrwbbburgruwruwgggrbwwwuugwg
+buburgwrubugbwrugwbwbwbgrburrgubwbwbubuwwu
+bgwgwwuggububwwrurgurbrububruwgurwbwbgbbrrwgbrugbrrrr
+wggugwwubuubrgwbwbgwrrggubrrbggubwugwwggwbbbrbgrwwr
+ubbwwrggbgbrgbrwuwwrrrguwuwwrgrbuwrgrbbbbbwbu
+gbwuggrgbuwrbbrurwruurrgubrwwgrwrubrbwbrubugbwuurggwbgruw
+gwguwbwgrgwwgrubbwggrrurbubrugrrwuwggguwwgbw
+wwgwrgrbrgrrgrurrbwwuugurwbbbwubrbwububggub
+rbwwwgubwwubgruwuurrubburwbgurururgrwgbguub
+wgbggrugurrbgbgwgbgrugwubrbgbwrwrrwwbrbgbwugwwrbgurbr
+guggbgbgurgbubwrgwwubuwbbgbgwbruwwgwwrwugrwgurwwwg
+wwbrwrguwwbgbrgrbwugbgbwwgurbggwbbrrggwwbwugguggugbr
+wwuuuguggrubbgubbrgbwgwbruwwrbuuwwwwbrbrwbwbbwuggbwr
+wuwbggbugrurgurgurbruwurubuuugwwgwgwrbrgrwgwwwrug
+gwwgubwuuugubwrwbwgurruwrbuuuurwugbrrurbwwuwgru
+buggbrurggbggwgrrubwurgrwwwbwwbgwuuuugwugubgugbbbwugw
+wwwgrbwuwbubuwuwuruurrgwurbwwbgbuuuuuubwbrrgubgbuuwbbur
+brwrbwbgbugwbbbuwuubrrrwrwwrrururbrrggurwuuuurbuurgubugb
+uuwrbrrugurwwrbuwbuggbbbwrugbrbwrwwwwwbgrbu
+uwbgugurrrgwwrugbgwgruwwgbbbwwwrrbubwrwuwguurgwwbg
+rwgbwwgwgwruwbgwbrwubuubbgbggbbubwwbbrwuggwgrrubgr
diff --git a/src/main.rs b/src/main.rs
index f90282c..a4c1e1c 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -38,116 +38,48 @@ pub use util::prelude::*;
const WIDTH: usize = 71;
pub unsafe fn run(x: &str) -> impl Display {
- let mut grid = [[0; WIDTH + 1]; WIDTH + 1];
- let mut add = x.行().map(|x| x.μ(',').mb(|x| x.λ::<u8>()));
- loop {
- let x = add.next().unwrap();
- grid[x.1.nat()][x.0.nat()] = 1;
- if util::dijkstra(
- |x: (usize, usize)| {
- [Dir::N + x, Dir::E + x, Dir::S + x, Dir::W + x]
- .into_iter()
- .filter(|&(x, y)| grid.get(y).and_then(|y| y.get(x)) == Some(&0))
- .map(|x| (x, 1))
- },
- (0, 0),
- |x| x == (WIDTH, WIDTH),
- )
- .is_none()
- {
- return format!("{x:?}");
- }
- }
+ let mut i = x.as_bytes();
+ let towels = i
+ .take_line()
+ .ψ()
+ .to_vec()
+ .leak()
+ .split(|x| *x == b',')
+ .map(|x| x.trim_ascii())
+ .collect_vec()
+ .leak();
+ i.take_line();
- // 0
-}
-
-pub struct UnionFind {
- pub p: [u16; 5184],
- pub s: [u16; 5184],
-}
-
-impl UnionFind {
- pub const fn new() -> Self {
- Self {
- s: [1; 5184],
- p: car::map!(atools::range(), |x| x as u16),
- }
- }
-
- pub const fn find(&mut self, key: u16) -> u16 {
- if unsafe { *self.p.as_ptr().add(key as usize) } == key {
- return key;
- }
- let parent = self.find(unsafe { *self.p.as_ptr().add(key as usize) });
- unsafe { *self.p.as_mut_ptr().add(key as usize) = parent };
- parent
- }
-
- pub const fn union(&mut self, a: u16, b: u16) -> bool {
- let α = self.find(a);
- let β = self.find(b);
- if α == β {
- return false;
- }
- let a = unsafe { *self.s.as_ptr().add(α as usize) };
- let b = unsafe { *self.s.as_ptr().add(β as usize) };
- if a >= b {
- unsafe { *self.s.as_mut_ptr().add(α as usize) += b };
- unsafe { *self.p.as_mut_ptr().add(β as usize) = α };
- } else {
- unsafe { *self.s.as_mut_ptr().add(β as usize) += a };
- unsafe { *self.p.as_mut_ptr().add(α as usize) = β };
- }
- true
- }
-}
-
-pub fn part2(x: &str) -> impl Display {
- let add = x.行().map(|x| x.μ(',').mb(|x| x.λ::<u8>()));
- macro_rules! dex {
- ($x:expr, $y:expr) => {
- unsafe {
- (($y as u16)
- .unchecked_mul((WIDTH as u16 + 1))
- .unchecked_add($x as u16))
+ i.行()
+ .map(|x| {
+ fn ck(x: &'static [u8], towels: &'static [&[u8]]) -> usize {
+ util::memoize! {
+ |(x, towels) in (&[u8], &[&[u8]])| -> usize {
+ if let [] = x {
+ return 1;
+ }
+ towels
+ .iter()
+ .filter(|&&y| x.starts_with(y))
+ .map(|y| ck(&x[y.len()..], towels))
+ .sum::<usize>()
+ };
+ (x, towels)
+ }
}
- };
- }
- const W: u8 = WIDTH as u8;
- const UF: UnionFind = {
- let mut f = UnionFind::new();
- let mut i = 0;
- while i < W - 1 {
- f.union(dex!(i + 1, 0), dex!(i + 2, 0));
- f.union(dex!(i, W), dex!(i + 1, W));
- f.union(dex!(0, i + 1), dex!(0, i + 2));
- f.union(dex!(W, i), dex!(W, i + 1));
- i += 1;
- }
- f
- };
- let mut uf = UF;
- for (x, y) in add {
- let i = dex!(x, y);
- uf.union(i, dex!(x + 1, y));
- uf.union(i, dex!(x, y + 1));
- uf.union(i, dex!(x + 1, y + 1));
- if uf.find(dex!(0, 1)) == uf.find(dex!(1, 0)) {
- return format!("{},{}", x, y);
- }
- }
- dang!();
+ ck(x.to_vec().leak(), towels)
+ })
+ .sum::<usize>()
}
fn main() {
let s = include_str!("inp.txt");
- println!("{}", unsafe { part2(s) });
+ println!("{}", unsafe { run(s) });
// dbg!(exec(&program, regi));
}
#[bench]
fn benc(b: &mut test::Bencher) {
let i = boxd(include_str!("inp.txt"));
- b.iter(|| part2(i));
+ b.iter(|| unsafe { run(i) });
}