diff --git a/data/queen14_14.graph b/data/queen14_14.graph deleted file mode 100644 index b4f9767631359ac0e4f0e89cfe7f55b8e5840485..0000000000000000000000000000000000000000 --- a/data/queen14_14.graph +++ /dev/null @@ -1,8374 +0,0 @@ -c 18 ? -p 196 -e 1 16 -e 1 31 -e 1 46 -e 1 61 -e 1 76 -e 1 91 -e 1 106 -e 1 121 -e 1 136 -e 1 151 -e 1 166 -e 1 181 -e 1 196 -e 1 2 -e 1 3 -e 1 4 -e 1 5 -e 1 6 -e 1 7 -e 1 8 -e 1 9 -e 1 10 -e 1 11 -e 1 12 -e 1 13 -e 1 14 -e 1 15 -e 1 29 -e 1 43 -e 1 57 -e 1 71 -e 1 85 -e 1 99 -e 1 113 -e 1 127 -e 1 141 -e 1 155 -e 1 169 -e 1 183 -e 2 17 -e 2 32 -e 2 47 -e 2 62 -e 2 77 -e 2 92 -e 2 107 -e 2 122 -e 2 137 -e 2 152 -e 2 167 -e 2 182 -e 2 15 -e 2 3 -e 2 4 -e 2 5 -e 2 6 -e 2 7 -e 2 8 -e 2 9 -e 2 10 -e 2 11 -e 2 12 -e 2 13 -e 2 14 -e 2 16 -e 2 30 -e 2 44 -e 2 58 -e 2 72 -e 2 86 -e 2 100 -e 2 114 -e 2 128 -e 2 142 -e 2 156 -e 2 170 -e 2 184 -e 2 1 -e 3 18 -e 3 33 -e 3 48 -e 3 63 -e 3 78 -e 3 93 -e 3 108 -e 3 123 -e 3 138 -e 3 153 -e 3 168 -e 3 16 -e 3 29 -e 3 4 -e 3 5 -e 3 6 -e 3 7 -e 3 8 -e 3 9 -e 3 10 -e 3 11 -e 3 12 -e 3 13 -e 3 14 -e 3 17 -e 3 31 -e 3 45 -e 3 59 -e 3 73 -e 3 87 -e 3 101 -e 3 115 -e 3 129 -e 3 143 -e 3 157 -e 3 171 -e 3 185 -e 3 2 -e 3 1 -e 4 19 -e 4 34 -e 4 49 -e 4 64 -e 4 79 -e 4 94 -e 4 109 -e 4 124 -e 4 139 -e 4 154 -e 4 17 -e 4 30 -e 4 43 -e 4 5 -e 4 6 -e 4 7 -e 4 8 -e 4 9 -e 4 10 -e 4 11 -e 4 12 -e 4 13 -e 4 14 -e 4 18 -e 4 32 -e 4 46 -e 4 60 -e 4 74 -e 4 88 -e 4 102 -e 4 116 -e 4 130 -e 4 144 -e 4 158 -e 4 172 -e 4 186 -e 4 3 -e 4 2 -e 4 1 -e 5 20 -e 5 35 -e 5 50 -e 5 65 -e 5 80 -e 5 95 -e 5 110 -e 5 125 -e 5 140 -e 5 18 -e 5 31 -e 5 44 -e 5 57 -e 5 6 -e 5 7 -e 5 8 -e 5 9 -e 5 10 -e 5 11 -e 5 12 -e 5 13 -e 5 14 -e 5 19 -e 5 33 -e 5 47 -e 5 61 -e 5 75 -e 5 89 -e 5 103 -e 5 117 -e 5 131 -e 5 145 -e 5 159 -e 5 173 -e 5 187 -e 5 4 -e 5 3 -e 5 2 -e 5 1 -e 6 21 -e 6 36 -e 6 51 -e 6 66 -e 6 81 -e 6 96 -e 6 111 -e 6 126 -e 6 19 -e 6 32 -e 6 45 -e 6 58 -e 6 71 -e 6 7 -e 6 8 -e 6 9 -e 6 10 -e 6 11 -e 6 12 -e 6 13 -e 6 14 -e 6 20 -e 6 34 -e 6 48 -e 6 62 -e 6 76 -e 6 90 -e 6 104 -e 6 118 -e 6 132 -e 6 146 -e 6 160 -e 6 174 -e 6 188 -e 6 5 -e 6 4 -e 6 3 -e 6 2 -e 6 1 -e 7 22 -e 7 37 -e 7 52 -e 7 67 -e 7 82 -e 7 97 -e 7 112 -e 7 20 -e 7 33 -e 7 46 -e 7 59 -e 7 72 -e 7 85 -e 7 8 -e 7 9 -e 7 10 -e 7 11 -e 7 12 -e 7 13 -e 7 14 -e 7 21 -e 7 35 -e 7 49 -e 7 63 -e 7 77 -e 7 91 -e 7 105 -e 7 119 -e 7 133 -e 7 147 -e 7 161 -e 7 175 -e 7 189 -e 7 6 -e 7 5 -e 7 4 -e 7 3 -e 7 2 -e 7 1 -e 8 23 -e 8 38 -e 8 53 -e 8 68 -e 8 83 -e 8 98 -e 8 21 -e 8 34 -e 8 47 -e 8 60 -e 8 73 -e 8 86 -e 8 99 -e 8 9 -e 8 10 -e 8 11 -e 8 12 -e 8 13 -e 8 14 -e 8 22 -e 8 36 -e 8 50 -e 8 64 -e 8 78 -e 8 92 -e 8 106 -e 8 120 -e 8 134 -e 8 148 -e 8 162 -e 8 176 -e 8 190 -e 8 7 -e 8 6 -e 8 5 -e 8 4 -e 8 3 -e 8 2 -e 8 1 -e 9 24 -e 9 39 -e 9 54 -e 9 69 -e 9 84 -e 9 22 -e 9 35 -e 9 48 -e 9 61 -e 9 74 -e 9 87 -e 9 100 -e 9 113 -e 9 10 -e 9 11 -e 9 12 -e 9 13 -e 9 14 -e 9 23 -e 9 37 -e 9 51 -e 9 65 -e 9 79 -e 9 93 -e 9 107 -e 9 121 -e 9 135 -e 9 149 -e 9 163 -e 9 177 -e 9 191 -e 9 8 -e 9 7 -e 9 6 -e 9 5 -e 9 4 -e 9 3 -e 9 2 -e 9 1 -e 10 25 -e 10 40 -e 10 55 -e 10 70 -e 10 23 -e 10 36 -e 10 49 -e 10 62 -e 10 75 -e 10 88 -e 10 101 -e 10 114 -e 10 127 -e 10 11 -e 10 12 -e 10 13 -e 10 14 -e 10 24 -e 10 38 -e 10 52 -e 10 66 -e 10 80 -e 10 94 -e 10 108 -e 10 122 -e 10 136 -e 10 150 -e 10 164 -e 10 178 -e 10 192 -e 10 9 -e 10 8 -e 10 7 -e 10 6 -e 10 5 -e 10 4 -e 10 3 -e 10 2 -e 10 1 -e 11 26 -e 11 41 -e 11 56 -e 11 24 -e 11 37 -e 11 50 -e 11 63 -e 11 76 -e 11 89 -e 11 102 -e 11 115 -e 11 128 -e 11 141 -e 11 12 -e 11 13 -e 11 14 -e 11 25 -e 11 39 -e 11 53 -e 11 67 -e 11 81 -e 11 95 -e 11 109 -e 11 123 -e 11 137 -e 11 151 -e 11 165 -e 11 179 -e 11 193 -e 11 10 -e 11 9 -e 11 8 -e 11 7 -e 11 6 -e 11 5 -e 11 4 -e 11 3 -e 11 2 -e 11 1 -e 12 27 -e 12 42 -e 12 25 -e 12 38 -e 12 51 -e 12 64 -e 12 77 -e 12 90 -e 12 103 -e 12 116 -e 12 129 -e 12 142 -e 12 155 -e 12 13 -e 12 14 -e 12 26 -e 12 40 -e 12 54 -e 12 68 -e 12 82 -e 12 96 -e 12 110 -e 12 124 -e 12 138 -e 12 152 -e 12 166 -e 12 180 -e 12 194 -e 12 11 -e 12 10 -e 12 9 -e 12 8 -e 12 7 -e 12 6 -e 12 5 -e 12 4 -e 12 3 -e 12 2 -e 12 1 -e 13 28 -e 13 26 -e 13 39 -e 13 52 -e 13 65 -e 13 78 -e 13 91 -e 13 104 -e 13 117 -e 13 130 -e 13 143 -e 13 156 -e 13 169 -e 13 14 -e 13 27 -e 13 41 -e 13 55 -e 13 69 -e 13 83 -e 13 97 -e 13 111 -e 13 125 -e 13 139 -e 13 153 -e 13 167 -e 13 181 -e 13 195 -e 13 12 -e 13 11 -e 13 10 -e 13 9 -e 13 8 -e 13 7 -e 13 6 -e 13 5 -e 13 4 -e 13 3 -e 13 2 -e 13 1 -e 14 27 -e 14 40 -e 14 53 -e 14 66 -e 14 79 -e 14 92 -e 14 105 -e 14 118 -e 14 131 -e 14 144 -e 14 157 -e 14 170 -e 14 183 -e 14 28 -e 14 42 -e 14 56 -e 14 70 -e 14 84 -e 14 98 -e 14 112 -e 14 126 -e 14 140 -e 14 154 -e 14 168 -e 14 182 -e 14 196 -e 14 13 -e 14 12 -e 14 11 -e 14 10 -e 14 9 -e 14 8 -e 14 7 -e 14 6 -e 14 5 -e 14 4 -e 14 3 -e 14 2 -e 14 1 -e 15 30 -e 15 45 -e 15 60 -e 15 75 -e 15 90 -e 15 105 -e 15 120 -e 15 135 -e 15 150 -e 15 165 -e 15 180 -e 15 195 -e 15 16 -e 15 17 -e 15 18 -e 15 19 -e 15 20 -e 15 21 -e 15 22 -e 15 23 -e 15 24 -e 15 25 -e 15 26 -e 15 27 -e 15 28 -e 15 29 -e 15 43 -e 15 57 -e 15 71 -e 15 85 -e 15 99 -e 15 113 -e 15 127 -e 15 141 -e 15 155 -e 15 169 -e 15 183 -e 15 2 -e 15 1 -e 16 31 -e 16 46 -e 16 61 -e 16 76 -e 16 91 -e 16 106 -e 16 121 -e 16 136 -e 16 151 -e 16 166 -e 16 181 -e 16 196 -e 16 29 -e 16 17 -e 16 18 -e 16 19 -e 16 20 -e 16 21 -e 16 22 -e 16 23 -e 16 24 -e 16 25 -e 16 26 -e 16 27 -e 16 28 -e 16 30 -e 16 44 -e 16 58 -e 16 72 -e 16 86 -e 16 100 -e 16 114 -e 16 128 -e 16 142 -e 16 156 -e 16 170 -e 16 184 -e 16 15 -e 16 3 -e 16 2 -e 16 1 -e 17 32 -e 17 47 -e 17 62 -e 17 77 -e 17 92 -e 17 107 -e 17 122 -e 17 137 -e 17 152 -e 17 167 -e 17 182 -e 17 30 -e 17 43 -e 17 18 -e 17 19 -e 17 20 -e 17 21 -e 17 22 -e 17 23 -e 17 24 -e 17 25 -e 17 26 -e 17 27 -e 17 28 -e 17 31 -e 17 45 -e 17 59 -e 17 73 -e 17 87 -e 17 101 -e 17 115 -e 17 129 -e 17 143 -e 17 157 -e 17 171 -e 17 185 -e 17 16 -e 17 15 -e 17 4 -e 17 3 -e 17 2 -e 18 33 -e 18 48 -e 18 63 -e 18 78 -e 18 93 -e 18 108 -e 18 123 -e 18 138 -e 18 153 -e 18 168 -e 18 31 -e 18 44 -e 18 57 -e 18 19 -e 18 20 -e 18 21 -e 18 22 -e 18 23 -e 18 24 -e 18 25 -e 18 26 -e 18 27 -e 18 28 -e 18 32 -e 18 46 -e 18 60 -e 18 74 -e 18 88 -e 18 102 -e 18 116 -e 18 130 -e 18 144 -e 18 158 -e 18 172 -e 18 186 -e 18 17 -e 18 16 -e 18 15 -e 18 5 -e 18 4 -e 18 3 -e 19 34 -e 19 49 -e 19 64 -e 19 79 -e 19 94 -e 19 109 -e 19 124 -e 19 139 -e 19 154 -e 19 32 -e 19 45 -e 19 58 -e 19 71 -e 19 20 -e 19 21 -e 19 22 -e 19 23 -e 19 24 -e 19 25 -e 19 26 -e 19 27 -e 19 28 -e 19 33 -e 19 47 -e 19 61 -e 19 75 -e 19 89 -e 19 103 -e 19 117 -e 19 131 -e 19 145 -e 19 159 -e 19 173 -e 19 187 -e 19 18 -e 19 17 -e 19 16 -e 19 15 -e 19 6 -e 19 5 -e 19 4 -e 20 35 -e 20 50 -e 20 65 -e 20 80 -e 20 95 -e 20 110 -e 20 125 -e 20 140 -e 20 33 -e 20 46 -e 20 59 -e 20 72 -e 20 85 -e 20 21 -e 20 22 -e 20 23 -e 20 24 -e 20 25 -e 20 26 -e 20 27 -e 20 28 -e 20 34 -e 20 48 -e 20 62 -e 20 76 -e 20 90 -e 20 104 -e 20 118 -e 20 132 -e 20 146 -e 20 160 -e 20 174 -e 20 188 -e 20 19 -e 20 18 -e 20 17 -e 20 16 -e 20 15 -e 20 7 -e 20 6 -e 20 5 -e 21 36 -e 21 51 -e 21 66 -e 21 81 -e 21 96 -e 21 111 -e 21 126 -e 21 34 -e 21 47 -e 21 60 -e 21 73 -e 21 86 -e 21 99 -e 21 22 -e 21 23 -e 21 24 -e 21 25 -e 21 26 -e 21 27 -e 21 28 -e 21 35 -e 21 49 -e 21 63 -e 21 77 -e 21 91 -e 21 105 -e 21 119 -e 21 133 -e 21 147 -e 21 161 -e 21 175 -e 21 189 -e 21 20 -e 21 19 -e 21 18 -e 21 17 -e 21 16 -e 21 15 -e 21 8 -e 21 7 -e 21 6 -e 22 37 -e 22 52 -e 22 67 -e 22 82 -e 22 97 -e 22 112 -e 22 35 -e 22 48 -e 22 61 -e 22 74 -e 22 87 -e 22 100 -e 22 113 -e 22 23 -e 22 24 -e 22 25 -e 22 26 -e 22 27 -e 22 28 -e 22 36 -e 22 50 -e 22 64 -e 22 78 -e 22 92 -e 22 106 -e 22 120 -e 22 134 -e 22 148 -e 22 162 -e 22 176 -e 22 190 -e 22 21 -e 22 20 -e 22 19 -e 22 18 -e 22 17 -e 22 16 -e 22 15 -e 22 9 -e 22 8 -e 22 7 -e 23 38 -e 23 53 -e 23 68 -e 23 83 -e 23 98 -e 23 36 -e 23 49 -e 23 62 -e 23 75 -e 23 88 -e 23 101 -e 23 114 -e 23 127 -e 23 24 -e 23 25 -e 23 26 -e 23 27 -e 23 28 -e 23 37 -e 23 51 -e 23 65 -e 23 79 -e 23 93 -e 23 107 -e 23 121 -e 23 135 -e 23 149 -e 23 163 -e 23 177 -e 23 191 -e 23 22 -e 23 21 -e 23 20 -e 23 19 -e 23 18 -e 23 17 -e 23 16 -e 23 15 -e 23 10 -e 23 9 -e 23 8 -e 24 39 -e 24 54 -e 24 69 -e 24 84 -e 24 37 -e 24 50 -e 24 63 -e 24 76 -e 24 89 -e 24 102 -e 24 115 -e 24 128 -e 24 141 -e 24 25 -e 24 26 -e 24 27 -e 24 28 -e 24 38 -e 24 52 -e 24 66 -e 24 80 -e 24 94 -e 24 108 -e 24 122 -e 24 136 -e 24 150 -e 24 164 -e 24 178 -e 24 192 -e 24 23 -e 24 22 -e 24 21 -e 24 20 -e 24 19 -e 24 18 -e 24 17 -e 24 16 -e 24 15 -e 24 11 -e 24 10 -e 24 9 -e 25 40 -e 25 55 -e 25 70 -e 25 38 -e 25 51 -e 25 64 -e 25 77 -e 25 90 -e 25 103 -e 25 116 -e 25 129 -e 25 142 -e 25 155 -e 25 26 -e 25 27 -e 25 28 -e 25 39 -e 25 53 -e 25 67 -e 25 81 -e 25 95 -e 25 109 -e 25 123 -e 25 137 -e 25 151 -e 25 165 -e 25 179 -e 25 193 -e 25 24 -e 25 23 -e 25 22 -e 25 21 -e 25 20 -e 25 19 -e 25 18 -e 25 17 -e 25 16 -e 25 15 -e 25 12 -e 25 11 -e 25 10 -e 26 41 -e 26 56 -e 26 39 -e 26 52 -e 26 65 -e 26 78 -e 26 91 -e 26 104 -e 26 117 -e 26 130 -e 26 143 -e 26 156 -e 26 169 -e 26 27 -e 26 28 -e 26 40 -e 26 54 -e 26 68 -e 26 82 -e 26 96 -e 26 110 -e 26 124 -e 26 138 -e 26 152 -e 26 166 -e 26 180 -e 26 194 -e 26 25 -e 26 24 -e 26 23 -e 26 22 -e 26 21 -e 26 20 -e 26 19 -e 26 18 -e 26 17 -e 26 16 -e 26 15 -e 26 13 -e 26 12 -e 26 11 -e 27 42 -e 27 40 -e 27 53 -e 27 66 -e 27 79 -e 27 92 -e 27 105 -e 27 118 -e 27 131 -e 27 144 -e 27 157 -e 27 170 -e 27 183 -e 27 28 -e 27 41 -e 27 55 -e 27 69 -e 27 83 -e 27 97 -e 27 111 -e 27 125 -e 27 139 -e 27 153 -e 27 167 -e 27 181 -e 27 195 -e 27 26 -e 27 25 -e 27 24 -e 27 23 -e 27 22 -e 27 21 -e 27 20 -e 27 19 -e 27 18 -e 27 17 -e 27 16 -e 27 15 -e 27 14 -e 27 13 -e 27 12 -e 28 41 -e 28 54 -e 28 67 -e 28 80 -e 28 93 -e 28 106 -e 28 119 -e 28 132 -e 28 145 -e 28 158 -e 28 171 -e 28 184 -e 28 42 -e 28 56 -e 28 70 -e 28 84 -e 28 98 -e 28 112 -e 28 126 -e 28 140 -e 28 154 -e 28 168 -e 28 182 -e 28 196 -e 28 27 -e 28 26 -e 28 25 -e 28 24 -e 28 23 -e 28 22 -e 28 21 -e 28 20 -e 28 19 -e 28 18 -e 28 17 -e 28 16 -e 28 15 -e 28 14 -e 28 13 -e 29 44 -e 29 59 -e 29 74 -e 29 89 -e 29 104 -e 29 119 -e 29 134 -e 29 149 -e 29 164 -e 29 179 -e 29 194 -e 29 30 -e 29 31 -e 29 32 -e 29 33 -e 29 34 -e 29 35 -e 29 36 -e 29 37 -e 29 38 -e 29 39 -e 29 40 -e 29 41 -e 29 42 -e 29 43 -e 29 57 -e 29 71 -e 29 85 -e 29 99 -e 29 113 -e 29 127 -e 29 141 -e 29 155 -e 29 169 -e 29 183 -e 29 16 -e 29 15 -e 29 3 -e 29 1 -e 30 45 -e 30 60 -e 30 75 -e 30 90 -e 30 105 -e 30 120 -e 30 135 -e 30 150 -e 30 165 -e 30 180 -e 30 195 -e 30 43 -e 30 31 -e 30 32 -e 30 33 -e 30 34 -e 30 35 -e 30 36 -e 30 37 -e 30 38 -e 30 39 -e 30 40 -e 30 41 -e 30 42 -e 30 44 -e 30 58 -e 30 72 -e 30 86 -e 30 100 -e 30 114 -e 30 128 -e 30 142 -e 30 156 -e 30 170 -e 30 184 -e 30 29 -e 30 17 -e 30 16 -e 30 15 -e 30 4 -e 30 2 -e 31 46 -e 31 61 -e 31 76 -e 31 91 -e 31 106 -e 31 121 -e 31 136 -e 31 151 -e 31 166 -e 31 181 -e 31 196 -e 31 44 -e 31 57 -e 31 32 -e 31 33 -e 31 34 -e 31 35 -e 31 36 -e 31 37 -e 31 38 -e 31 39 -e 31 40 -e 31 41 -e 31 42 -e 31 45 -e 31 59 -e 31 73 -e 31 87 -e 31 101 -e 31 115 -e 31 129 -e 31 143 -e 31 157 -e 31 171 -e 31 185 -e 31 30 -e 31 29 -e 31 18 -e 31 17 -e 31 16 -e 31 5 -e 31 3 -e 31 1 -e 32 47 -e 32 62 -e 32 77 -e 32 92 -e 32 107 -e 32 122 -e 32 137 -e 32 152 -e 32 167 -e 32 182 -e 32 45 -e 32 58 -e 32 71 -e 32 33 -e 32 34 -e 32 35 -e 32 36 -e 32 37 -e 32 38 -e 32 39 -e 32 40 -e 32 41 -e 32 42 -e 32 46 -e 32 60 -e 32 74 -e 32 88 -e 32 102 -e 32 116 -e 32 130 -e 32 144 -e 32 158 -e 32 172 -e 32 186 -e 32 31 -e 32 30 -e 32 29 -e 32 19 -e 32 18 -e 32 17 -e 32 6 -e 32 4 -e 32 2 -e 33 48 -e 33 63 -e 33 78 -e 33 93 -e 33 108 -e 33 123 -e 33 138 -e 33 153 -e 33 168 -e 33 46 -e 33 59 -e 33 72 -e 33 85 -e 33 34 -e 33 35 -e 33 36 -e 33 37 -e 33 38 -e 33 39 -e 33 40 -e 33 41 -e 33 42 -e 33 47 -e 33 61 -e 33 75 -e 33 89 -e 33 103 -e 33 117 -e 33 131 -e 33 145 -e 33 159 -e 33 173 -e 33 187 -e 33 32 -e 33 31 -e 33 30 -e 33 29 -e 33 20 -e 33 19 -e 33 18 -e 33 7 -e 33 5 -e 33 3 -e 34 49 -e 34 64 -e 34 79 -e 34 94 -e 34 109 -e 34 124 -e 34 139 -e 34 154 -e 34 47 -e 34 60 -e 34 73 -e 34 86 -e 34 99 -e 34 35 -e 34 36 -e 34 37 -e 34 38 -e 34 39 -e 34 40 -e 34 41 -e 34 42 -e 34 48 -e 34 62 -e 34 76 -e 34 90 -e 34 104 -e 34 118 -e 34 132 -e 34 146 -e 34 160 -e 34 174 -e 34 188 -e 34 33 -e 34 32 -e 34 31 -e 34 30 -e 34 29 -e 34 21 -e 34 20 -e 34 19 -e 34 8 -e 34 6 -e 34 4 -e 35 50 -e 35 65 -e 35 80 -e 35 95 -e 35 110 -e 35 125 -e 35 140 -e 35 48 -e 35 61 -e 35 74 -e 35 87 -e 35 100 -e 35 113 -e 35 36 -e 35 37 -e 35 38 -e 35 39 -e 35 40 -e 35 41 -e 35 42 -e 35 49 -e 35 63 -e 35 77 -e 35 91 -e 35 105 -e 35 119 -e 35 133 -e 35 147 -e 35 161 -e 35 175 -e 35 189 -e 35 34 -e 35 33 -e 35 32 -e 35 31 -e 35 30 -e 35 29 -e 35 22 -e 35 21 -e 35 20 -e 35 9 -e 35 7 -e 35 5 -e 36 51 -e 36 66 -e 36 81 -e 36 96 -e 36 111 -e 36 126 -e 36 49 -e 36 62 -e 36 75 -e 36 88 -e 36 101 -e 36 114 -e 36 127 -e 36 37 -e 36 38 -e 36 39 -e 36 40 -e 36 41 -e 36 42 -e 36 50 -e 36 64 -e 36 78 -e 36 92 -e 36 106 -e 36 120 -e 36 134 -e 36 148 -e 36 162 -e 36 176 -e 36 190 -e 36 35 -e 36 34 -e 36 33 -e 36 32 -e 36 31 -e 36 30 -e 36 29 -e 36 23 -e 36 22 -e 36 21 -e 36 10 -e 36 8 -e 36 6 -e 37 52 -e 37 67 -e 37 82 -e 37 97 -e 37 112 -e 37 50 -e 37 63 -e 37 76 -e 37 89 -e 37 102 -e 37 115 -e 37 128 -e 37 141 -e 37 38 -e 37 39 -e 37 40 -e 37 41 -e 37 42 -e 37 51 -e 37 65 -e 37 79 -e 37 93 -e 37 107 -e 37 121 -e 37 135 -e 37 149 -e 37 163 -e 37 177 -e 37 191 -e 37 36 -e 37 35 -e 37 34 -e 37 33 -e 37 32 -e 37 31 -e 37 30 -e 37 29 -e 37 24 -e 37 23 -e 37 22 -e 37 11 -e 37 9 -e 37 7 -e 38 53 -e 38 68 -e 38 83 -e 38 98 -e 38 51 -e 38 64 -e 38 77 -e 38 90 -e 38 103 -e 38 116 -e 38 129 -e 38 142 -e 38 155 -e 38 39 -e 38 40 -e 38 41 -e 38 42 -e 38 52 -e 38 66 -e 38 80 -e 38 94 -e 38 108 -e 38 122 -e 38 136 -e 38 150 -e 38 164 -e 38 178 -e 38 192 -e 38 37 -e 38 36 -e 38 35 -e 38 34 -e 38 33 -e 38 32 -e 38 31 -e 38 30 -e 38 29 -e 38 25 -e 38 24 -e 38 23 -e 38 12 -e 38 10 -e 38 8 -e 39 54 -e 39 69 -e 39 84 -e 39 52 -e 39 65 -e 39 78 -e 39 91 -e 39 104 -e 39 117 -e 39 130 -e 39 143 -e 39 156 -e 39 169 -e 39 40 -e 39 41 -e 39 42 -e 39 53 -e 39 67 -e 39 81 -e 39 95 -e 39 109 -e 39 123 -e 39 137 -e 39 151 -e 39 165 -e 39 179 -e 39 193 -e 39 38 -e 39 37 -e 39 36 -e 39 35 -e 39 34 -e 39 33 -e 39 32 -e 39 31 -e 39 30 -e 39 29 -e 39 26 -e 39 25 -e 39 24 -e 39 13 -e 39 11 -e 39 9 -e 40 55 -e 40 70 -e 40 53 -e 40 66 -e 40 79 -e 40 92 -e 40 105 -e 40 118 -e 40 131 -e 40 144 -e 40 157 -e 40 170 -e 40 183 -e 40 41 -e 40 42 -e 40 54 -e 40 68 -e 40 82 -e 40 96 -e 40 110 -e 40 124 -e 40 138 -e 40 152 -e 40 166 -e 40 180 -e 40 194 -e 40 39 -e 40 38 -e 40 37 -e 40 36 -e 40 35 -e 40 34 -e 40 33 -e 40 32 -e 40 31 -e 40 30 -e 40 29 -e 40 27 -e 40 26 -e 40 25 -e 40 14 -e 40 12 -e 40 10 -e 41 56 -e 41 54 -e 41 67 -e 41 80 -e 41 93 -e 41 106 -e 41 119 -e 41 132 -e 41 145 -e 41 158 -e 41 171 -e 41 184 -e 41 42 -e 41 55 -e 41 69 -e 41 83 -e 41 97 -e 41 111 -e 41 125 -e 41 139 -e 41 153 -e 41 167 -e 41 181 -e 41 195 -e 41 40 -e 41 39 -e 41 38 -e 41 37 -e 41 36 -e 41 35 -e 41 34 -e 41 33 -e 41 32 -e 41 31 -e 41 30 -e 41 29 -e 41 28 -e 41 27 -e 41 26 -e 41 13 -e 41 11 -e 42 55 -e 42 68 -e 42 81 -e 42 94 -e 42 107 -e 42 120 -e 42 133 -e 42 146 -e 42 159 -e 42 172 -e 42 185 -e 42 56 -e 42 70 -e 42 84 -e 42 98 -e 42 112 -e 42 126 -e 42 140 -e 42 154 -e 42 168 -e 42 182 -e 42 196 -e 42 41 -e 42 40 -e 42 39 -e 42 38 -e 42 37 -e 42 36 -e 42 35 -e 42 34 -e 42 33 -e 42 32 -e 42 31 -e 42 30 -e 42 29 -e 42 28 -e 42 27 -e 42 14 -e 42 12 -e 43 58 -e 43 73 -e 43 88 -e 43 103 -e 43 118 -e 43 133 -e 43 148 -e 43 163 -e 43 178 -e 43 193 -e 43 44 -e 43 45 -e 43 46 -e 43 47 -e 43 48 -e 43 49 -e 43 50 -e 43 51 -e 43 52 -e 43 53 -e 43 54 -e 43 55 -e 43 56 -e 43 57 -e 43 71 -e 43 85 -e 43 99 -e 43 113 -e 43 127 -e 43 141 -e 43 155 -e 43 169 -e 43 183 -e 43 30 -e 43 29 -e 43 17 -e 43 15 -e 43 4 -e 43 1 -e 44 59 -e 44 74 -e 44 89 -e 44 104 -e 44 119 -e 44 134 -e 44 149 -e 44 164 -e 44 179 -e 44 194 -e 44 57 -e 44 45 -e 44 46 -e 44 47 -e 44 48 -e 44 49 -e 44 50 -e 44 51 -e 44 52 -e 44 53 -e 44 54 -e 44 55 -e 44 56 -e 44 58 -e 44 72 -e 44 86 -e 44 100 -e 44 114 -e 44 128 -e 44 142 -e 44 156 -e 44 170 -e 44 184 -e 44 43 -e 44 31 -e 44 30 -e 44 29 -e 44 18 -e 44 16 -e 44 5 -e 44 2 -e 45 60 -e 45 75 -e 45 90 -e 45 105 -e 45 120 -e 45 135 -e 45 150 -e 45 165 -e 45 180 -e 45 195 -e 45 58 -e 45 71 -e 45 46 -e 45 47 -e 45 48 -e 45 49 -e 45 50 -e 45 51 -e 45 52 -e 45 53 -e 45 54 -e 45 55 -e 45 56 -e 45 59 -e 45 73 -e 45 87 -e 45 101 -e 45 115 -e 45 129 -e 45 143 -e 45 157 -e 45 171 -e 45 185 -e 45 44 -e 45 43 -e 45 32 -e 45 31 -e 45 30 -e 45 19 -e 45 17 -e 45 15 -e 45 6 -e 45 3 -e 46 61 -e 46 76 -e 46 91 -e 46 106 -e 46 121 -e 46 136 -e 46 151 -e 46 166 -e 46 181 -e 46 196 -e 46 59 -e 46 72 -e 46 85 -e 46 47 -e 46 48 -e 46 49 -e 46 50 -e 46 51 -e 46 52 -e 46 53 -e 46 54 -e 46 55 -e 46 56 -e 46 60 -e 46 74 -e 46 88 -e 46 102 -e 46 116 -e 46 130 -e 46 144 -e 46 158 -e 46 172 -e 46 186 -e 46 45 -e 46 44 -e 46 43 -e 46 33 -e 46 32 -e 46 31 -e 46 20 -e 46 18 -e 46 16 -e 46 7 -e 46 4 -e 46 1 -e 47 62 -e 47 77 -e 47 92 -e 47 107 -e 47 122 -e 47 137 -e 47 152 -e 47 167 -e 47 182 -e 47 60 -e 47 73 -e 47 86 -e 47 99 -e 47 48 -e 47 49 -e 47 50 -e 47 51 -e 47 52 -e 47 53 -e 47 54 -e 47 55 -e 47 56 -e 47 61 -e 47 75 -e 47 89 -e 47 103 -e 47 117 -e 47 131 -e 47 145 -e 47 159 -e 47 173 -e 47 187 -e 47 46 -e 47 45 -e 47 44 -e 47 43 -e 47 34 -e 47 33 -e 47 32 -e 47 21 -e 47 19 -e 47 17 -e 47 8 -e 47 5 -e 47 2 -e 48 63 -e 48 78 -e 48 93 -e 48 108 -e 48 123 -e 48 138 -e 48 153 -e 48 168 -e 48 61 -e 48 74 -e 48 87 -e 48 100 -e 48 113 -e 48 49 -e 48 50 -e 48 51 -e 48 52 -e 48 53 -e 48 54 -e 48 55 -e 48 56 -e 48 62 -e 48 76 -e 48 90 -e 48 104 -e 48 118 -e 48 132 -e 48 146 -e 48 160 -e 48 174 -e 48 188 -e 48 47 -e 48 46 -e 48 45 -e 48 44 -e 48 43 -e 48 35 -e 48 34 -e 48 33 -e 48 22 -e 48 20 -e 48 18 -e 48 9 -e 48 6 -e 48 3 -e 49 64 -e 49 79 -e 49 94 -e 49 109 -e 49 124 -e 49 139 -e 49 154 -e 49 62 -e 49 75 -e 49 88 -e 49 101 -e 49 114 -e 49 127 -e 49 50 -e 49 51 -e 49 52 -e 49 53 -e 49 54 -e 49 55 -e 49 56 -e 49 63 -e 49 77 -e 49 91 -e 49 105 -e 49 119 -e 49 133 -e 49 147 -e 49 161 -e 49 175 -e 49 189 -e 49 48 -e 49 47 -e 49 46 -e 49 45 -e 49 44 -e 49 43 -e 49 36 -e 49 35 -e 49 34 -e 49 23 -e 49 21 -e 49 19 -e 49 10 -e 49 7 -e 49 4 -e 50 65 -e 50 80 -e 50 95 -e 50 110 -e 50 125 -e 50 140 -e 50 63 -e 50 76 -e 50 89 -e 50 102 -e 50 115 -e 50 128 -e 50 141 -e 50 51 -e 50 52 -e 50 53 -e 50 54 -e 50 55 -e 50 56 -e 50 64 -e 50 78 -e 50 92 -e 50 106 -e 50 120 -e 50 134 -e 50 148 -e 50 162 -e 50 176 -e 50 190 -e 50 49 -e 50 48 -e 50 47 -e 50 46 -e 50 45 -e 50 44 -e 50 43 -e 50 37 -e 50 36 -e 50 35 -e 50 24 -e 50 22 -e 50 20 -e 50 11 -e 50 8 -e 50 5 -e 51 66 -e 51 81 -e 51 96 -e 51 111 -e 51 126 -e 51 64 -e 51 77 -e 51 90 -e 51 103 -e 51 116 -e 51 129 -e 51 142 -e 51 155 -e 51 52 -e 51 53 -e 51 54 -e 51 55 -e 51 56 -e 51 65 -e 51 79 -e 51 93 -e 51 107 -e 51 121 -e 51 135 -e 51 149 -e 51 163 -e 51 177 -e 51 191 -e 51 50 -e 51 49 -e 51 48 -e 51 47 -e 51 46 -e 51 45 -e 51 44 -e 51 43 -e 51 38 -e 51 37 -e 51 36 -e 51 25 -e 51 23 -e 51 21 -e 51 12 -e 51 9 -e 51 6 -e 52 67 -e 52 82 -e 52 97 -e 52 112 -e 52 65 -e 52 78 -e 52 91 -e 52 104 -e 52 117 -e 52 130 -e 52 143 -e 52 156 -e 52 169 -e 52 53 -e 52 54 -e 52 55 -e 52 56 -e 52 66 -e 52 80 -e 52 94 -e 52 108 -e 52 122 -e 52 136 -e 52 150 -e 52 164 -e 52 178 -e 52 192 -e 52 51 -e 52 50 -e 52 49 -e 52 48 -e 52 47 -e 52 46 -e 52 45 -e 52 44 -e 52 43 -e 52 39 -e 52 38 -e 52 37 -e 52 26 -e 52 24 -e 52 22 -e 52 13 -e 52 10 -e 52 7 -e 53 68 -e 53 83 -e 53 98 -e 53 66 -e 53 79 -e 53 92 -e 53 105 -e 53 118 -e 53 131 -e 53 144 -e 53 157 -e 53 170 -e 53 183 -e 53 54 -e 53 55 -e 53 56 -e 53 67 -e 53 81 -e 53 95 -e 53 109 -e 53 123 -e 53 137 -e 53 151 -e 53 165 -e 53 179 -e 53 193 -e 53 52 -e 53 51 -e 53 50 -e 53 49 -e 53 48 -e 53 47 -e 53 46 -e 53 45 -e 53 44 -e 53 43 -e 53 40 -e 53 39 -e 53 38 -e 53 27 -e 53 25 -e 53 23 -e 53 14 -e 53 11 -e 53 8 -e 54 69 -e 54 84 -e 54 67 -e 54 80 -e 54 93 -e 54 106 -e 54 119 -e 54 132 -e 54 145 -e 54 158 -e 54 171 -e 54 184 -e 54 55 -e 54 56 -e 54 68 -e 54 82 -e 54 96 -e 54 110 -e 54 124 -e 54 138 -e 54 152 -e 54 166 -e 54 180 -e 54 194 -e 54 53 -e 54 52 -e 54 51 -e 54 50 -e 54 49 -e 54 48 -e 54 47 -e 54 46 -e 54 45 -e 54 44 -e 54 43 -e 54 41 -e 54 40 -e 54 39 -e 54 28 -e 54 26 -e 54 24 -e 54 12 -e 54 9 -e 55 70 -e 55 68 -e 55 81 -e 55 94 -e 55 107 -e 55 120 -e 55 133 -e 55 146 -e 55 159 -e 55 172 -e 55 185 -e 55 56 -e 55 69 -e 55 83 -e 55 97 -e 55 111 -e 55 125 -e 55 139 -e 55 153 -e 55 167 -e 55 181 -e 55 195 -e 55 54 -e 55 53 -e 55 52 -e 55 51 -e 55 50 -e 55 49 -e 55 48 -e 55 47 -e 55 46 -e 55 45 -e 55 44 -e 55 43 -e 55 42 -e 55 41 -e 55 40 -e 55 27 -e 55 25 -e 55 13 -e 55 10 -e 56 69 -e 56 82 -e 56 95 -e 56 108 -e 56 121 -e 56 134 -e 56 147 -e 56 160 -e 56 173 -e 56 186 -e 56 70 -e 56 84 -e 56 98 -e 56 112 -e 56 126 -e 56 140 -e 56 154 -e 56 168 -e 56 182 -e 56 196 -e 56 55 -e 56 54 -e 56 53 -e 56 52 -e 56 51 -e 56 50 -e 56 49 -e 56 48 -e 56 47 -e 56 46 -e 56 45 -e 56 44 -e 56 43 -e 56 42 -e 56 41 -e 56 28 -e 56 26 -e 56 14 -e 56 11 -e 57 72 -e 57 87 -e 57 102 -e 57 117 -e 57 132 -e 57 147 -e 57 162 -e 57 177 -e 57 192 -e 57 58 -e 57 59 -e 57 60 -e 57 61 -e 57 62 -e 57 63 -e 57 64 -e 57 65 -e 57 66 -e 57 67 -e 57 68 -e 57 69 -e 57 70 -e 57 71 -e 57 85 -e 57 99 -e 57 113 -e 57 127 -e 57 141 -e 57 155 -e 57 169 -e 57 183 -e 57 44 -e 57 43 -e 57 31 -e 57 29 -e 57 18 -e 57 15 -e 57 5 -e 57 1 -e 58 73 -e 58 88 -e 58 103 -e 58 118 -e 58 133 -e 58 148 -e 58 163 -e 58 178 -e 58 193 -e 58 71 -e 58 59 -e 58 60 -e 58 61 -e 58 62 -e 58 63 -e 58 64 -e 58 65 -e 58 66 -e 58 67 -e 58 68 -e 58 69 -e 58 70 -e 58 72 -e 58 86 -e 58 100 -e 58 114 -e 58 128 -e 58 142 -e 58 156 -e 58 170 -e 58 184 -e 58 57 -e 58 45 -e 58 44 -e 58 43 -e 58 32 -e 58 30 -e 58 19 -e 58 16 -e 58 6 -e 58 2 -e 59 74 -e 59 89 -e 59 104 -e 59 119 -e 59 134 -e 59 149 -e 59 164 -e 59 179 -e 59 194 -e 59 72 -e 59 85 -e 59 60 -e 59 61 -e 59 62 -e 59 63 -e 59 64 -e 59 65 -e 59 66 -e 59 67 -e 59 68 -e 59 69 -e 59 70 -e 59 73 -e 59 87 -e 59 101 -e 59 115 -e 59 129 -e 59 143 -e 59 157 -e 59 171 -e 59 185 -e 59 58 -e 59 57 -e 59 46 -e 59 45 -e 59 44 -e 59 33 -e 59 31 -e 59 29 -e 59 20 -e 59 17 -e 59 7 -e 59 3 -e 60 75 -e 60 90 -e 60 105 -e 60 120 -e 60 135 -e 60 150 -e 60 165 -e 60 180 -e 60 195 -e 60 73 -e 60 86 -e 60 99 -e 60 61 -e 60 62 -e 60 63 -e 60 64 -e 60 65 -e 60 66 -e 60 67 -e 60 68 -e 60 69 -e 60 70 -e 60 74 -e 60 88 -e 60 102 -e 60 116 -e 60 130 -e 60 144 -e 60 158 -e 60 172 -e 60 186 -e 60 59 -e 60 58 -e 60 57 -e 60 47 -e 60 46 -e 60 45 -e 60 34 -e 60 32 -e 60 30 -e 60 21 -e 60 18 -e 60 15 -e 60 8 -e 60 4 -e 61 76 -e 61 91 -e 61 106 -e 61 121 -e 61 136 -e 61 151 -e 61 166 -e 61 181 -e 61 196 -e 61 74 -e 61 87 -e 61 100 -e 61 113 -e 61 62 -e 61 63 -e 61 64 -e 61 65 -e 61 66 -e 61 67 -e 61 68 -e 61 69 -e 61 70 -e 61 75 -e 61 89 -e 61 103 -e 61 117 -e 61 131 -e 61 145 -e 61 159 -e 61 173 -e 61 187 -e 61 60 -e 61 59 -e 61 58 -e 61 57 -e 61 48 -e 61 47 -e 61 46 -e 61 35 -e 61 33 -e 61 31 -e 61 22 -e 61 19 -e 61 16 -e 61 9 -e 61 5 -e 61 1 -e 62 77 -e 62 92 -e 62 107 -e 62 122 -e 62 137 -e 62 152 -e 62 167 -e 62 182 -e 62 75 -e 62 88 -e 62 101 -e 62 114 -e 62 127 -e 62 63 -e 62 64 -e 62 65 -e 62 66 -e 62 67 -e 62 68 -e 62 69 -e 62 70 -e 62 76 -e 62 90 -e 62 104 -e 62 118 -e 62 132 -e 62 146 -e 62 160 -e 62 174 -e 62 188 -e 62 61 -e 62 60 -e 62 59 -e 62 58 -e 62 57 -e 62 49 -e 62 48 -e 62 47 -e 62 36 -e 62 34 -e 62 32 -e 62 23 -e 62 20 -e 62 17 -e 62 10 -e 62 6 -e 62 2 -e 63 78 -e 63 93 -e 63 108 -e 63 123 -e 63 138 -e 63 153 -e 63 168 -e 63 76 -e 63 89 -e 63 102 -e 63 115 -e 63 128 -e 63 141 -e 63 64 -e 63 65 -e 63 66 -e 63 67 -e 63 68 -e 63 69 -e 63 70 -e 63 77 -e 63 91 -e 63 105 -e 63 119 -e 63 133 -e 63 147 -e 63 161 -e 63 175 -e 63 189 -e 63 62 -e 63 61 -e 63 60 -e 63 59 -e 63 58 -e 63 57 -e 63 50 -e 63 49 -e 63 48 -e 63 37 -e 63 35 -e 63 33 -e 63 24 -e 63 21 -e 63 18 -e 63 11 -e 63 7 -e 63 3 -e 64 79 -e 64 94 -e 64 109 -e 64 124 -e 64 139 -e 64 154 -e 64 77 -e 64 90 -e 64 103 -e 64 116 -e 64 129 -e 64 142 -e 64 155 -e 64 65 -e 64 66 -e 64 67 -e 64 68 -e 64 69 -e 64 70 -e 64 78 -e 64 92 -e 64 106 -e 64 120 -e 64 134 -e 64 148 -e 64 162 -e 64 176 -e 64 190 -e 64 63 -e 64 62 -e 64 61 -e 64 60 -e 64 59 -e 64 58 -e 64 57 -e 64 51 -e 64 50 -e 64 49 -e 64 38 -e 64 36 -e 64 34 -e 64 25 -e 64 22 -e 64 19 -e 64 12 -e 64 8 -e 64 4 -e 65 80 -e 65 95 -e 65 110 -e 65 125 -e 65 140 -e 65 78 -e 65 91 -e 65 104 -e 65 117 -e 65 130 -e 65 143 -e 65 156 -e 65 169 -e 65 66 -e 65 67 -e 65 68 -e 65 69 -e 65 70 -e 65 79 -e 65 93 -e 65 107 -e 65 121 -e 65 135 -e 65 149 -e 65 163 -e 65 177 -e 65 191 -e 65 64 -e 65 63 -e 65 62 -e 65 61 -e 65 60 -e 65 59 -e 65 58 -e 65 57 -e 65 52 -e 65 51 -e 65 50 -e 65 39 -e 65 37 -e 65 35 -e 65 26 -e 65 23 -e 65 20 -e 65 13 -e 65 9 -e 65 5 -e 66 81 -e 66 96 -e 66 111 -e 66 126 -e 66 79 -e 66 92 -e 66 105 -e 66 118 -e 66 131 -e 66 144 -e 66 157 -e 66 170 -e 66 183 -e 66 67 -e 66 68 -e 66 69 -e 66 70 -e 66 80 -e 66 94 -e 66 108 -e 66 122 -e 66 136 -e 66 150 -e 66 164 -e 66 178 -e 66 192 -e 66 65 -e 66 64 -e 66 63 -e 66 62 -e 66 61 -e 66 60 -e 66 59 -e 66 58 -e 66 57 -e 66 53 -e 66 52 -e 66 51 -e 66 40 -e 66 38 -e 66 36 -e 66 27 -e 66 24 -e 66 21 -e 66 14 -e 66 10 -e 66 6 -e 67 82 -e 67 97 -e 67 112 -e 67 80 -e 67 93 -e 67 106 -e 67 119 -e 67 132 -e 67 145 -e 67 158 -e 67 171 -e 67 184 -e 67 68 -e 67 69 -e 67 70 -e 67 81 -e 67 95 -e 67 109 -e 67 123 -e 67 137 -e 67 151 -e 67 165 -e 67 179 -e 67 193 -e 67 66 -e 67 65 -e 67 64 -e 67 63 -e 67 62 -e 67 61 -e 67 60 -e 67 59 -e 67 58 -e 67 57 -e 67 54 -e 67 53 -e 67 52 -e 67 41 -e 67 39 -e 67 37 -e 67 28 -e 67 25 -e 67 22 -e 67 11 -e 67 7 -e 68 83 -e 68 98 -e 68 81 -e 68 94 -e 68 107 -e 68 120 -e 68 133 -e 68 146 -e 68 159 -e 68 172 -e 68 185 -e 68 69 -e 68 70 -e 68 82 -e 68 96 -e 68 110 -e 68 124 -e 68 138 -e 68 152 -e 68 166 -e 68 180 -e 68 194 -e 68 67 -e 68 66 -e 68 65 -e 68 64 -e 68 63 -e 68 62 -e 68 61 -e 68 60 -e 68 59 -e 68 58 -e 68 57 -e 68 55 -e 68 54 -e 68 53 -e 68 42 -e 68 40 -e 68 38 -e 68 26 -e 68 23 -e 68 12 -e 68 8 -e 69 84 -e 69 82 -e 69 95 -e 69 108 -e 69 121 -e 69 134 -e 69 147 -e 69 160 -e 69 173 -e 69 186 -e 69 70 -e 69 83 -e 69 97 -e 69 111 -e 69 125 -e 69 139 -e 69 153 -e 69 167 -e 69 181 -e 69 195 -e 69 68 -e 69 67 -e 69 66 -e 69 65 -e 69 64 -e 69 63 -e 69 62 -e 69 61 -e 69 60 -e 69 59 -e 69 58 -e 69 57 -e 69 56 -e 69 55 -e 69 54 -e 69 41 -e 69 39 -e 69 27 -e 69 24 -e 69 13 -e 69 9 -e 70 83 -e 70 96 -e 70 109 -e 70 122 -e 70 135 -e 70 148 -e 70 161 -e 70 174 -e 70 187 -e 70 84 -e 70 98 -e 70 112 -e 70 126 -e 70 140 -e 70 154 -e 70 168 -e 70 182 -e 70 196 -e 70 69 -e 70 68 -e 70 67 -e 70 66 -e 70 65 -e 70 64 -e 70 63 -e 70 62 -e 70 61 -e 70 60 -e 70 59 -e 70 58 -e 70 57 -e 70 56 -e 70 55 -e 70 42 -e 70 40 -e 70 28 -e 70 25 -e 70 14 -e 70 10 -e 71 86 -e 71 101 -e 71 116 -e 71 131 -e 71 146 -e 71 161 -e 71 176 -e 71 191 -e 71 72 -e 71 73 -e 71 74 -e 71 75 -e 71 76 -e 71 77 -e 71 78 -e 71 79 -e 71 80 -e 71 81 -e 71 82 -e 71 83 -e 71 84 -e 71 85 -e 71 99 -e 71 113 -e 71 127 -e 71 141 -e 71 155 -e 71 169 -e 71 183 -e 71 58 -e 71 57 -e 71 45 -e 71 43 -e 71 32 -e 71 29 -e 71 19 -e 71 15 -e 71 6 -e 71 1 -e 72 87 -e 72 102 -e 72 117 -e 72 132 -e 72 147 -e 72 162 -e 72 177 -e 72 192 -e 72 85 -e 72 73 -e 72 74 -e 72 75 -e 72 76 -e 72 77 -e 72 78 -e 72 79 -e 72 80 -e 72 81 -e 72 82 -e 72 83 -e 72 84 -e 72 86 -e 72 100 -e 72 114 -e 72 128 -e 72 142 -e 72 156 -e 72 170 -e 72 184 -e 72 71 -e 72 59 -e 72 58 -e 72 57 -e 72 46 -e 72 44 -e 72 33 -e 72 30 -e 72 20 -e 72 16 -e 72 7 -e 72 2 -e 73 88 -e 73 103 -e 73 118 -e 73 133 -e 73 148 -e 73 163 -e 73 178 -e 73 193 -e 73 86 -e 73 99 -e 73 74 -e 73 75 -e 73 76 -e 73 77 -e 73 78 -e 73 79 -e 73 80 -e 73 81 -e 73 82 -e 73 83 -e 73 84 -e 73 87 -e 73 101 -e 73 115 -e 73 129 -e 73 143 -e 73 157 -e 73 171 -e 73 185 -e 73 72 -e 73 71 -e 73 60 -e 73 59 -e 73 58 -e 73 47 -e 73 45 -e 73 43 -e 73 34 -e 73 31 -e 73 21 -e 73 17 -e 73 8 -e 73 3 -e 74 89 -e 74 104 -e 74 119 -e 74 134 -e 74 149 -e 74 164 -e 74 179 -e 74 194 -e 74 87 -e 74 100 -e 74 113 -e 74 75 -e 74 76 -e 74 77 -e 74 78 -e 74 79 -e 74 80 -e 74 81 -e 74 82 -e 74 83 -e 74 84 -e 74 88 -e 74 102 -e 74 116 -e 74 130 -e 74 144 -e 74 158 -e 74 172 -e 74 186 -e 74 73 -e 74 72 -e 74 71 -e 74 61 -e 74 60 -e 74 59 -e 74 48 -e 74 46 -e 74 44 -e 74 35 -e 74 32 -e 74 29 -e 74 22 -e 74 18 -e 74 9 -e 74 4 -e 75 90 -e 75 105 -e 75 120 -e 75 135 -e 75 150 -e 75 165 -e 75 180 -e 75 195 -e 75 88 -e 75 101 -e 75 114 -e 75 127 -e 75 76 -e 75 77 -e 75 78 -e 75 79 -e 75 80 -e 75 81 -e 75 82 -e 75 83 -e 75 84 -e 75 89 -e 75 103 -e 75 117 -e 75 131 -e 75 145 -e 75 159 -e 75 173 -e 75 187 -e 75 74 -e 75 73 -e 75 72 -e 75 71 -e 75 62 -e 75 61 -e 75 60 -e 75 49 -e 75 47 -e 75 45 -e 75 36 -e 75 33 -e 75 30 -e 75 23 -e 75 19 -e 75 15 -e 75 10 -e 75 5 -e 76 91 -e 76 106 -e 76 121 -e 76 136 -e 76 151 -e 76 166 -e 76 181 -e 76 196 -e 76 89 -e 76 102 -e 76 115 -e 76 128 -e 76 141 -e 76 77 -e 76 78 -e 76 79 -e 76 80 -e 76 81 -e 76 82 -e 76 83 -e 76 84 -e 76 90 -e 76 104 -e 76 118 -e 76 132 -e 76 146 -e 76 160 -e 76 174 -e 76 188 -e 76 75 -e 76 74 -e 76 73 -e 76 72 -e 76 71 -e 76 63 -e 76 62 -e 76 61 -e 76 50 -e 76 48 -e 76 46 -e 76 37 -e 76 34 -e 76 31 -e 76 24 -e 76 20 -e 76 16 -e 76 11 -e 76 6 -e 76 1 -e 77 92 -e 77 107 -e 77 122 -e 77 137 -e 77 152 -e 77 167 -e 77 182 -e 77 90 -e 77 103 -e 77 116 -e 77 129 -e 77 142 -e 77 155 -e 77 78 -e 77 79 -e 77 80 -e 77 81 -e 77 82 -e 77 83 -e 77 84 -e 77 91 -e 77 105 -e 77 119 -e 77 133 -e 77 147 -e 77 161 -e 77 175 -e 77 189 -e 77 76 -e 77 75 -e 77 74 -e 77 73 -e 77 72 -e 77 71 -e 77 64 -e 77 63 -e 77 62 -e 77 51 -e 77 49 -e 77 47 -e 77 38 -e 77 35 -e 77 32 -e 77 25 -e 77 21 -e 77 17 -e 77 12 -e 77 7 -e 77 2 -e 78 93 -e 78 108 -e 78 123 -e 78 138 -e 78 153 -e 78 168 -e 78 91 -e 78 104 -e 78 117 -e 78 130 -e 78 143 -e 78 156 -e 78 169 -e 78 79 -e 78 80 -e 78 81 -e 78 82 -e 78 83 -e 78 84 -e 78 92 -e 78 106 -e 78 120 -e 78 134 -e 78 148 -e 78 162 -e 78 176 -e 78 190 -e 78 77 -e 78 76 -e 78 75 -e 78 74 -e 78 73 -e 78 72 -e 78 71 -e 78 65 -e 78 64 -e 78 63 -e 78 52 -e 78 50 -e 78 48 -e 78 39 -e 78 36 -e 78 33 -e 78 26 -e 78 22 -e 78 18 -e 78 13 -e 78 8 -e 78 3 -e 79 94 -e 79 109 -e 79 124 -e 79 139 -e 79 154 -e 79 92 -e 79 105 -e 79 118 -e 79 131 -e 79 144 -e 79 157 -e 79 170 -e 79 183 -e 79 80 -e 79 81 -e 79 82 -e 79 83 -e 79 84 -e 79 93 -e 79 107 -e 79 121 -e 79 135 -e 79 149 -e 79 163 -e 79 177 -e 79 191 -e 79 78 -e 79 77 -e 79 76 -e 79 75 -e 79 74 -e 79 73 -e 79 72 -e 79 71 -e 79 66 -e 79 65 -e 79 64 -e 79 53 -e 79 51 -e 79 49 -e 79 40 -e 79 37 -e 79 34 -e 79 27 -e 79 23 -e 79 19 -e 79 14 -e 79 9 -e 79 4 -e 80 95 -e 80 110 -e 80 125 -e 80 140 -e 80 93 -e 80 106 -e 80 119 -e 80 132 -e 80 145 -e 80 158 -e 80 171 -e 80 184 -e 80 81 -e 80 82 -e 80 83 -e 80 84 -e 80 94 -e 80 108 -e 80 122 -e 80 136 -e 80 150 -e 80 164 -e 80 178 -e 80 192 -e 80 79 -e 80 78 -e 80 77 -e 80 76 -e 80 75 -e 80 74 -e 80 73 -e 80 72 -e 80 71 -e 80 67 -e 80 66 -e 80 65 -e 80 54 -e 80 52 -e 80 50 -e 80 41 -e 80 38 -e 80 35 -e 80 28 -e 80 24 -e 80 20 -e 80 10 -e 80 5 -e 81 96 -e 81 111 -e 81 126 -e 81 94 -e 81 107 -e 81 120 -e 81 133 -e 81 146 -e 81 159 -e 81 172 -e 81 185 -e 81 82 -e 81 83 -e 81 84 -e 81 95 -e 81 109 -e 81 123 -e 81 137 -e 81 151 -e 81 165 -e 81 179 -e 81 193 -e 81 80 -e 81 79 -e 81 78 -e 81 77 -e 81 76 -e 81 75 -e 81 74 -e 81 73 -e 81 72 -e 81 71 -e 81 68 -e 81 67 -e 81 66 -e 81 55 -e 81 53 -e 81 51 -e 81 42 -e 81 39 -e 81 36 -e 81 25 -e 81 21 -e 81 11 -e 81 6 -e 82 97 -e 82 112 -e 82 95 -e 82 108 -e 82 121 -e 82 134 -e 82 147 -e 82 160 -e 82 173 -e 82 186 -e 82 83 -e 82 84 -e 82 96 -e 82 110 -e 82 124 -e 82 138 -e 82 152 -e 82 166 -e 82 180 -e 82 194 -e 82 81 -e 82 80 -e 82 79 -e 82 78 -e 82 77 -e 82 76 -e 82 75 -e 82 74 -e 82 73 -e 82 72 -e 82 71 -e 82 69 -e 82 68 -e 82 67 -e 82 56 -e 82 54 -e 82 52 -e 82 40 -e 82 37 -e 82 26 -e 82 22 -e 82 12 -e 82 7 -e 83 98 -e 83 96 -e 83 109 -e 83 122 -e 83 135 -e 83 148 -e 83 161 -e 83 174 -e 83 187 -e 83 84 -e 83 97 -e 83 111 -e 83 125 -e 83 139 -e 83 153 -e 83 167 -e 83 181 -e 83 195 -e 83 82 -e 83 81 -e 83 80 -e 83 79 -e 83 78 -e 83 77 -e 83 76 -e 83 75 -e 83 74 -e 83 73 -e 83 72 -e 83 71 -e 83 70 -e 83 69 -e 83 68 -e 83 55 -e 83 53 -e 83 41 -e 83 38 -e 83 27 -e 83 23 -e 83 13 -e 83 8 -e 84 97 -e 84 110 -e 84 123 -e 84 136 -e 84 149 -e 84 162 -e 84 175 -e 84 188 -e 84 98 -e 84 112 -e 84 126 -e 84 140 -e 84 154 -e 84 168 -e 84 182 -e 84 196 -e 84 83 -e 84 82 -e 84 81 -e 84 80 -e 84 79 -e 84 78 -e 84 77 -e 84 76 -e 84 75 -e 84 74 -e 84 73 -e 84 72 -e 84 71 -e 84 70 -e 84 69 -e 84 56 -e 84 54 -e 84 42 -e 84 39 -e 84 28 -e 84 24 -e 84 14 -e 84 9 -e 85 100 -e 85 115 -e 85 130 -e 85 145 -e 85 160 -e 85 175 -e 85 190 -e 85 86 -e 85 87 -e 85 88 -e 85 89 -e 85 90 -e 85 91 -e 85 92 -e 85 93 -e 85 94 -e 85 95 -e 85 96 -e 85 97 -e 85 98 -e 85 99 -e 85 113 -e 85 127 -e 85 141 -e 85 155 -e 85 169 -e 85 183 -e 85 72 -e 85 71 -e 85 59 -e 85 57 -e 85 46 -e 85 43 -e 85 33 -e 85 29 -e 85 20 -e 85 15 -e 85 7 -e 85 1 -e 86 101 -e 86 116 -e 86 131 -e 86 146 -e 86 161 -e 86 176 -e 86 191 -e 86 99 -e 86 87 -e 86 88 -e 86 89 -e 86 90 -e 86 91 -e 86 92 -e 86 93 -e 86 94 -e 86 95 -e 86 96 -e 86 97 -e 86 98 -e 86 100 -e 86 114 -e 86 128 -e 86 142 -e 86 156 -e 86 170 -e 86 184 -e 86 85 -e 86 73 -e 86 72 -e 86 71 -e 86 60 -e 86 58 -e 86 47 -e 86 44 -e 86 34 -e 86 30 -e 86 21 -e 86 16 -e 86 8 -e 86 2 -e 87 102 -e 87 117 -e 87 132 -e 87 147 -e 87 162 -e 87 177 -e 87 192 -e 87 100 -e 87 113 -e 87 88 -e 87 89 -e 87 90 -e 87 91 -e 87 92 -e 87 93 -e 87 94 -e 87 95 -e 87 96 -e 87 97 -e 87 98 -e 87 101 -e 87 115 -e 87 129 -e 87 143 -e 87 157 -e 87 171 -e 87 185 -e 87 86 -e 87 85 -e 87 74 -e 87 73 -e 87 72 -e 87 61 -e 87 59 -e 87 57 -e 87 48 -e 87 45 -e 87 35 -e 87 31 -e 87 22 -e 87 17 -e 87 9 -e 87 3 -e 88 103 -e 88 118 -e 88 133 -e 88 148 -e 88 163 -e 88 178 -e 88 193 -e 88 101 -e 88 114 -e 88 127 -e 88 89 -e 88 90 -e 88 91 -e 88 92 -e 88 93 -e 88 94 -e 88 95 -e 88 96 -e 88 97 -e 88 98 -e 88 102 -e 88 116 -e 88 130 -e 88 144 -e 88 158 -e 88 172 -e 88 186 -e 88 87 -e 88 86 -e 88 85 -e 88 75 -e 88 74 -e 88 73 -e 88 62 -e 88 60 -e 88 58 -e 88 49 -e 88 46 -e 88 43 -e 88 36 -e 88 32 -e 88 23 -e 88 18 -e 88 10 -e 88 4 -e 89 104 -e 89 119 -e 89 134 -e 89 149 -e 89 164 -e 89 179 -e 89 194 -e 89 102 -e 89 115 -e 89 128 -e 89 141 -e 89 90 -e 89 91 -e 89 92 -e 89 93 -e 89 94 -e 89 95 -e 89 96 -e 89 97 -e 89 98 -e 89 103 -e 89 117 -e 89 131 -e 89 145 -e 89 159 -e 89 173 -e 89 187 -e 89 88 -e 89 87 -e 89 86 -e 89 85 -e 89 76 -e 89 75 -e 89 74 -e 89 63 -e 89 61 -e 89 59 -e 89 50 -e 89 47 -e 89 44 -e 89 37 -e 89 33 -e 89 29 -e 89 24 -e 89 19 -e 89 11 -e 89 5 -e 90 105 -e 90 120 -e 90 135 -e 90 150 -e 90 165 -e 90 180 -e 90 195 -e 90 103 -e 90 116 -e 90 129 -e 90 142 -e 90 155 -e 90 91 -e 90 92 -e 90 93 -e 90 94 -e 90 95 -e 90 96 -e 90 97 -e 90 98 -e 90 104 -e 90 118 -e 90 132 -e 90 146 -e 90 160 -e 90 174 -e 90 188 -e 90 89 -e 90 88 -e 90 87 -e 90 86 -e 90 85 -e 90 77 -e 90 76 -e 90 75 -e 90 64 -e 90 62 -e 90 60 -e 90 51 -e 90 48 -e 90 45 -e 90 38 -e 90 34 -e 90 30 -e 90 25 -e 90 20 -e 90 15 -e 90 12 -e 90 6 -e 91 106 -e 91 121 -e 91 136 -e 91 151 -e 91 166 -e 91 181 -e 91 196 -e 91 104 -e 91 117 -e 91 130 -e 91 143 -e 91 156 -e 91 169 -e 91 92 -e 91 93 -e 91 94 -e 91 95 -e 91 96 -e 91 97 -e 91 98 -e 91 105 -e 91 119 -e 91 133 -e 91 147 -e 91 161 -e 91 175 -e 91 189 -e 91 90 -e 91 89 -e 91 88 -e 91 87 -e 91 86 -e 91 85 -e 91 78 -e 91 77 -e 91 76 -e 91 65 -e 91 63 -e 91 61 -e 91 52 -e 91 49 -e 91 46 -e 91 39 -e 91 35 -e 91 31 -e 91 26 -e 91 21 -e 91 16 -e 91 13 -e 91 7 -e 91 1 -e 92 107 -e 92 122 -e 92 137 -e 92 152 -e 92 167 -e 92 182 -e 92 105 -e 92 118 -e 92 131 -e 92 144 -e 92 157 -e 92 170 -e 92 183 -e 92 93 -e 92 94 -e 92 95 -e 92 96 -e 92 97 -e 92 98 -e 92 106 -e 92 120 -e 92 134 -e 92 148 -e 92 162 -e 92 176 -e 92 190 -e 92 91 -e 92 90 -e 92 89 -e 92 88 -e 92 87 -e 92 86 -e 92 85 -e 92 79 -e 92 78 -e 92 77 -e 92 66 -e 92 64 -e 92 62 -e 92 53 -e 92 50 -e 92 47 -e 92 40 -e 92 36 -e 92 32 -e 92 27 -e 92 22 -e 92 17 -e 92 14 -e 92 8 -e 92 2 -e 93 108 -e 93 123 -e 93 138 -e 93 153 -e 93 168 -e 93 106 -e 93 119 -e 93 132 -e 93 145 -e 93 158 -e 93 171 -e 93 184 -e 93 94 -e 93 95 -e 93 96 -e 93 97 -e 93 98 -e 93 107 -e 93 121 -e 93 135 -e 93 149 -e 93 163 -e 93 177 -e 93 191 -e 93 92 -e 93 91 -e 93 90 -e 93 89 -e 93 88 -e 93 87 -e 93 86 -e 93 85 -e 93 80 -e 93 79 -e 93 78 -e 93 67 -e 93 65 -e 93 63 -e 93 54 -e 93 51 -e 93 48 -e 93 41 -e 93 37 -e 93 33 -e 93 28 -e 93 23 -e 93 18 -e 93 9 -e 93 3 -e 94 109 -e 94 124 -e 94 139 -e 94 154 -e 94 107 -e 94 120 -e 94 133 -e 94 146 -e 94 159 -e 94 172 -e 94 185 -e 94 95 -e 94 96 -e 94 97 -e 94 98 -e 94 108 -e 94 122 -e 94 136 -e 94 150 -e 94 164 -e 94 178 -e 94 192 -e 94 93 -e 94 92 -e 94 91 -e 94 90 -e 94 89 -e 94 88 -e 94 87 -e 94 86 -e 94 85 -e 94 81 -e 94 80 -e 94 79 -e 94 68 -e 94 66 -e 94 64 -e 94 55 -e 94 52 -e 94 49 -e 94 42 -e 94 38 -e 94 34 -e 94 24 -e 94 19 -e 94 10 -e 94 4 -e 95 110 -e 95 125 -e 95 140 -e 95 108 -e 95 121 -e 95 134 -e 95 147 -e 95 160 -e 95 173 -e 95 186 -e 95 96 -e 95 97 -e 95 98 -e 95 109 -e 95 123 -e 95 137 -e 95 151 -e 95 165 -e 95 179 -e 95 193 -e 95 94 -e 95 93 -e 95 92 -e 95 91 -e 95 90 -e 95 89 -e 95 88 -e 95 87 -e 95 86 -e 95 85 -e 95 82 -e 95 81 -e 95 80 -e 95 69 -e 95 67 -e 95 65 -e 95 56 -e 95 53 -e 95 50 -e 95 39 -e 95 35 -e 95 25 -e 95 20 -e 95 11 -e 95 5 -e 96 111 -e 96 126 -e 96 109 -e 96 122 -e 96 135 -e 96 148 -e 96 161 -e 96 174 -e 96 187 -e 96 97 -e 96 98 -e 96 110 -e 96 124 -e 96 138 -e 96 152 -e 96 166 -e 96 180 -e 96 194 -e 96 95 -e 96 94 -e 96 93 -e 96 92 -e 96 91 -e 96 90 -e 96 89 -e 96 88 -e 96 87 -e 96 86 -e 96 85 -e 96 83 -e 96 82 -e 96 81 -e 96 70 -e 96 68 -e 96 66 -e 96 54 -e 96 51 -e 96 40 -e 96 36 -e 96 26 -e 96 21 -e 96 12 -e 96 6 -e 97 112 -e 97 110 -e 97 123 -e 97 136 -e 97 149 -e 97 162 -e 97 175 -e 97 188 -e 97 98 -e 97 111 -e 97 125 -e 97 139 -e 97 153 -e 97 167 -e 97 181 -e 97 195 -e 97 96 -e 97 95 -e 97 94 -e 97 93 -e 97 92 -e 97 91 -e 97 90 -e 97 89 -e 97 88 -e 97 87 -e 97 86 -e 97 85 -e 97 84 -e 97 83 -e 97 82 -e 97 69 -e 97 67 -e 97 55 -e 97 52 -e 97 41 -e 97 37 -e 97 27 -e 97 22 -e 97 13 -e 97 7 -e 98 111 -e 98 124 -e 98 137 -e 98 150 -e 98 163 -e 98 176 -e 98 189 -e 98 112 -e 98 126 -e 98 140 -e 98 154 -e 98 168 -e 98 182 -e 98 196 -e 98 97 -e 98 96 -e 98 95 -e 98 94 -e 98 93 -e 98 92 -e 98 91 -e 98 90 -e 98 89 -e 98 88 -e 98 87 -e 98 86 -e 98 85 -e 98 84 -e 98 83 -e 98 70 -e 98 68 -e 98 56 -e 98 53 -e 98 42 -e 98 38 -e 98 28 -e 98 23 -e 98 14 -e 98 8 -e 99 114 -e 99 129 -e 99 144 -e 99 159 -e 99 174 -e 99 189 -e 99 100 -e 99 101 -e 99 102 -e 99 103 -e 99 104 -e 99 105 -e 99 106 -e 99 107 -e 99 108 -e 99 109 -e 99 110 -e 99 111 -e 99 112 -e 99 113 -e 99 127 -e 99 141 -e 99 155 -e 99 169 -e 99 183 -e 99 86 -e 99 85 -e 99 73 -e 99 71 -e 99 60 -e 99 57 -e 99 47 -e 99 43 -e 99 34 -e 99 29 -e 99 21 -e 99 15 -e 99 8 -e 99 1 -e 100 115 -e 100 130 -e 100 145 -e 100 160 -e 100 175 -e 100 190 -e 100 113 -e 100 101 -e 100 102 -e 100 103 -e 100 104 -e 100 105 -e 100 106 -e 100 107 -e 100 108 -e 100 109 -e 100 110 -e 100 111 -e 100 112 -e 100 114 -e 100 128 -e 100 142 -e 100 156 -e 100 170 -e 100 184 -e 100 99 -e 100 87 -e 100 86 -e 100 85 -e 100 74 -e 100 72 -e 100 61 -e 100 58 -e 100 48 -e 100 44 -e 100 35 -e 100 30 -e 100 22 -e 100 16 -e 100 9 -e 100 2 -e 101 116 -e 101 131 -e 101 146 -e 101 161 -e 101 176 -e 101 191 -e 101 114 -e 101 127 -e 101 102 -e 101 103 -e 101 104 -e 101 105 -e 101 106 -e 101 107 -e 101 108 -e 101 109 -e 101 110 -e 101 111 -e 101 112 -e 101 115 -e 101 129 -e 101 143 -e 101 157 -e 101 171 -e 101 185 -e 101 100 -e 101 99 -e 101 88 -e 101 87 -e 101 86 -e 101 75 -e 101 73 -e 101 71 -e 101 62 -e 101 59 -e 101 49 -e 101 45 -e 101 36 -e 101 31 -e 101 23 -e 101 17 -e 101 10 -e 101 3 -e 102 117 -e 102 132 -e 102 147 -e 102 162 -e 102 177 -e 102 192 -e 102 115 -e 102 128 -e 102 141 -e 102 103 -e 102 104 -e 102 105 -e 102 106 -e 102 107 -e 102 108 -e 102 109 -e 102 110 -e 102 111 -e 102 112 -e 102 116 -e 102 130 -e 102 144 -e 102 158 -e 102 172 -e 102 186 -e 102 101 -e 102 100 -e 102 99 -e 102 89 -e 102 88 -e 102 87 -e 102 76 -e 102 74 -e 102 72 -e 102 63 -e 102 60 -e 102 57 -e 102 50 -e 102 46 -e 102 37 -e 102 32 -e 102 24 -e 102 18 -e 102 11 -e 102 4 -e 103 118 -e 103 133 -e 103 148 -e 103 163 -e 103 178 -e 103 193 -e 103 116 -e 103 129 -e 103 142 -e 103 155 -e 103 104 -e 103 105 -e 103 106 -e 103 107 -e 103 108 -e 103 109 -e 103 110 -e 103 111 -e 103 112 -e 103 117 -e 103 131 -e 103 145 -e 103 159 -e 103 173 -e 103 187 -e 103 102 -e 103 101 -e 103 100 -e 103 99 -e 103 90 -e 103 89 -e 103 88 -e 103 77 -e 103 75 -e 103 73 -e 103 64 -e 103 61 -e 103 58 -e 103 51 -e 103 47 -e 103 43 -e 103 38 -e 103 33 -e 103 25 -e 103 19 -e 103 12 -e 103 5 -e 104 119 -e 104 134 -e 104 149 -e 104 164 -e 104 179 -e 104 194 -e 104 117 -e 104 130 -e 104 143 -e 104 156 -e 104 169 -e 104 105 -e 104 106 -e 104 107 -e 104 108 -e 104 109 -e 104 110 -e 104 111 -e 104 112 -e 104 118 -e 104 132 -e 104 146 -e 104 160 -e 104 174 -e 104 188 -e 104 103 -e 104 102 -e 104 101 -e 104 100 -e 104 99 -e 104 91 -e 104 90 -e 104 89 -e 104 78 -e 104 76 -e 104 74 -e 104 65 -e 104 62 -e 104 59 -e 104 52 -e 104 48 -e 104 44 -e 104 39 -e 104 34 -e 104 29 -e 104 26 -e 104 20 -e 104 13 -e 104 6 -e 105 120 -e 105 135 -e 105 150 -e 105 165 -e 105 180 -e 105 195 -e 105 118 -e 105 131 -e 105 144 -e 105 157 -e 105 170 -e 105 183 -e 105 106 -e 105 107 -e 105 108 -e 105 109 -e 105 110 -e 105 111 -e 105 112 -e 105 119 -e 105 133 -e 105 147 -e 105 161 -e 105 175 -e 105 189 -e 105 104 -e 105 103 -e 105 102 -e 105 101 -e 105 100 -e 105 99 -e 105 92 -e 105 91 -e 105 90 -e 105 79 -e 105 77 -e 105 75 -e 105 66 -e 105 63 -e 105 60 -e 105 53 -e 105 49 -e 105 45 -e 105 40 -e 105 35 -e 105 30 -e 105 27 -e 105 21 -e 105 15 -e 105 14 -e 105 7 -e 106 121 -e 106 136 -e 106 151 -e 106 166 -e 106 181 -e 106 196 -e 106 119 -e 106 132 -e 106 145 -e 106 158 -e 106 171 -e 106 184 -e 106 107 -e 106 108 -e 106 109 -e 106 110 -e 106 111 -e 106 112 -e 106 120 -e 106 134 -e 106 148 -e 106 162 -e 106 176 -e 106 190 -e 106 105 -e 106 104 -e 106 103 -e 106 102 -e 106 101 -e 106 100 -e 106 99 -e 106 93 -e 106 92 -e 106 91 -e 106 80 -e 106 78 -e 106 76 -e 106 67 -e 106 64 -e 106 61 -e 106 54 -e 106 50 -e 106 46 -e 106 41 -e 106 36 -e 106 31 -e 106 28 -e 106 22 -e 106 16 -e 106 8 -e 106 1 -e 107 122 -e 107 137 -e 107 152 -e 107 167 -e 107 182 -e 107 120 -e 107 133 -e 107 146 -e 107 159 -e 107 172 -e 107 185 -e 107 108 -e 107 109 -e 107 110 -e 107 111 -e 107 112 -e 107 121 -e 107 135 -e 107 149 -e 107 163 -e 107 177 -e 107 191 -e 107 106 -e 107 105 -e 107 104 -e 107 103 -e 107 102 -e 107 101 -e 107 100 -e 107 99 -e 107 94 -e 107 93 -e 107 92 -e 107 81 -e 107 79 -e 107 77 -e 107 68 -e 107 65 -e 107 62 -e 107 55 -e 107 51 -e 107 47 -e 107 42 -e 107 37 -e 107 32 -e 107 23 -e 107 17 -e 107 9 -e 107 2 -e 108 123 -e 108 138 -e 108 153 -e 108 168 -e 108 121 -e 108 134 -e 108 147 -e 108 160 -e 108 173 -e 108 186 -e 108 109 -e 108 110 -e 108 111 -e 108 112 -e 108 122 -e 108 136 -e 108 150 -e 108 164 -e 108 178 -e 108 192 -e 108 107 -e 108 106 -e 108 105 -e 108 104 -e 108 103 -e 108 102 -e 108 101 -e 108 100 -e 108 99 -e 108 95 -e 108 94 -e 108 93 -e 108 82 -e 108 80 -e 108 78 -e 108 69 -e 108 66 -e 108 63 -e 108 56 -e 108 52 -e 108 48 -e 108 38 -e 108 33 -e 108 24 -e 108 18 -e 108 10 -e 108 3 -e 109 124 -e 109 139 -e 109 154 -e 109 122 -e 109 135 -e 109 148 -e 109 161 -e 109 174 -e 109 187 -e 109 110 -e 109 111 -e 109 112 -e 109 123 -e 109 137 -e 109 151 -e 109 165 -e 109 179 -e 109 193 -e 109 108 -e 109 107 -e 109 106 -e 109 105 -e 109 104 -e 109 103 -e 109 102 -e 109 101 -e 109 100 -e 109 99 -e 109 96 -e 109 95 -e 109 94 -e 109 83 -e 109 81 -e 109 79 -e 109 70 -e 109 67 -e 109 64 -e 109 53 -e 109 49 -e 109 39 -e 109 34 -e 109 25 -e 109 19 -e 109 11 -e 109 4 -e 110 125 -e 110 140 -e 110 123 -e 110 136 -e 110 149 -e 110 162 -e 110 175 -e 110 188 -e 110 111 -e 110 112 -e 110 124 -e 110 138 -e 110 152 -e 110 166 -e 110 180 -e 110 194 -e 110 109 -e 110 108 -e 110 107 -e 110 106 -e 110 105 -e 110 104 -e 110 103 -e 110 102 -e 110 101 -e 110 100 -e 110 99 -e 110 97 -e 110 96 -e 110 95 -e 110 84 -e 110 82 -e 110 80 -e 110 68 -e 110 65 -e 110 54 -e 110 50 -e 110 40 -e 110 35 -e 110 26 -e 110 20 -e 110 12 -e 110 5 -e 111 126 -e 111 124 -e 111 137 -e 111 150 -e 111 163 -e 111 176 -e 111 189 -e 111 112 -e 111 125 -e 111 139 -e 111 153 -e 111 167 -e 111 181 -e 111 195 -e 111 110 -e 111 109 -e 111 108 -e 111 107 -e 111 106 -e 111 105 -e 111 104 -e 111 103 -e 111 102 -e 111 101 -e 111 100 -e 111 99 -e 111 98 -e 111 97 -e 111 96 -e 111 83 -e 111 81 -e 111 69 -e 111 66 -e 111 55 -e 111 51 -e 111 41 -e 111 36 -e 111 27 -e 111 21 -e 111 13 -e 111 6 -e 112 125 -e 112 138 -e 112 151 -e 112 164 -e 112 177 -e 112 190 -e 112 126 -e 112 140 -e 112 154 -e 112 168 -e 112 182 -e 112 196 -e 112 111 -e 112 110 -e 112 109 -e 112 108 -e 112 107 -e 112 106 -e 112 105 -e 112 104 -e 112 103 -e 112 102 -e 112 101 -e 112 100 -e 112 99 -e 112 98 -e 112 97 -e 112 84 -e 112 82 -e 112 70 -e 112 67 -e 112 56 -e 112 52 -e 112 42 -e 112 37 -e 112 28 -e 112 22 -e 112 14 -e 112 7 -e 113 128 -e 113 143 -e 113 158 -e 113 173 -e 113 188 -e 113 114 -e 113 115 -e 113 116 -e 113 117 -e 113 118 -e 113 119 -e 113 120 -e 113 121 -e 113 122 -e 113 123 -e 113 124 -e 113 125 -e 113 126 -e 113 127 -e 113 141 -e 113 155 -e 113 169 -e 113 183 -e 113 100 -e 113 99 -e 113 87 -e 113 85 -e 113 74 -e 113 71 -e 113 61 -e 113 57 -e 113 48 -e 113 43 -e 113 35 -e 113 29 -e 113 22 -e 113 15 -e 113 9 -e 113 1 -e 114 129 -e 114 144 -e 114 159 -e 114 174 -e 114 189 -e 114 127 -e 114 115 -e 114 116 -e 114 117 -e 114 118 -e 114 119 -e 114 120 -e 114 121 -e 114 122 -e 114 123 -e 114 124 -e 114 125 -e 114 126 -e 114 128 -e 114 142 -e 114 156 -e 114 170 -e 114 184 -e 114 113 -e 114 101 -e 114 100 -e 114 99 -e 114 88 -e 114 86 -e 114 75 -e 114 72 -e 114 62 -e 114 58 -e 114 49 -e 114 44 -e 114 36 -e 114 30 -e 114 23 -e 114 16 -e 114 10 -e 114 2 -e 115 130 -e 115 145 -e 115 160 -e 115 175 -e 115 190 -e 115 128 -e 115 141 -e 115 116 -e 115 117 -e 115 118 -e 115 119 -e 115 120 -e 115 121 -e 115 122 -e 115 123 -e 115 124 -e 115 125 -e 115 126 -e 115 129 -e 115 143 -e 115 157 -e 115 171 -e 115 185 -e 115 114 -e 115 113 -e 115 102 -e 115 101 -e 115 100 -e 115 89 -e 115 87 -e 115 85 -e 115 76 -e 115 73 -e 115 63 -e 115 59 -e 115 50 -e 115 45 -e 115 37 -e 115 31 -e 115 24 -e 115 17 -e 115 11 -e 115 3 -e 116 131 -e 116 146 -e 116 161 -e 116 176 -e 116 191 -e 116 129 -e 116 142 -e 116 155 -e 116 117 -e 116 118 -e 116 119 -e 116 120 -e 116 121 -e 116 122 -e 116 123 -e 116 124 -e 116 125 -e 116 126 -e 116 130 -e 116 144 -e 116 158 -e 116 172 -e 116 186 -e 116 115 -e 116 114 -e 116 113 -e 116 103 -e 116 102 -e 116 101 -e 116 90 -e 116 88 -e 116 86 -e 116 77 -e 116 74 -e 116 71 -e 116 64 -e 116 60 -e 116 51 -e 116 46 -e 116 38 -e 116 32 -e 116 25 -e 116 18 -e 116 12 -e 116 4 -e 117 132 -e 117 147 -e 117 162 -e 117 177 -e 117 192 -e 117 130 -e 117 143 -e 117 156 -e 117 169 -e 117 118 -e 117 119 -e 117 120 -e 117 121 -e 117 122 -e 117 123 -e 117 124 -e 117 125 -e 117 126 -e 117 131 -e 117 145 -e 117 159 -e 117 173 -e 117 187 -e 117 116 -e 117 115 -e 117 114 -e 117 113 -e 117 104 -e 117 103 -e 117 102 -e 117 91 -e 117 89 -e 117 87 -e 117 78 -e 117 75 -e 117 72 -e 117 65 -e 117 61 -e 117 57 -e 117 52 -e 117 47 -e 117 39 -e 117 33 -e 117 26 -e 117 19 -e 117 13 -e 117 5 -e 118 133 -e 118 148 -e 118 163 -e 118 178 -e 118 193 -e 118 131 -e 118 144 -e 118 157 -e 118 170 -e 118 183 -e 118 119 -e 118 120 -e 118 121 -e 118 122 -e 118 123 -e 118 124 -e 118 125 -e 118 126 -e 118 132 -e 118 146 -e 118 160 -e 118 174 -e 118 188 -e 118 117 -e 118 116 -e 118 115 -e 118 114 -e 118 113 -e 118 105 -e 118 104 -e 118 103 -e 118 92 -e 118 90 -e 118 88 -e 118 79 -e 118 76 -e 118 73 -e 118 66 -e 118 62 -e 118 58 -e 118 53 -e 118 48 -e 118 43 -e 118 40 -e 118 34 -e 118 27 -e 118 20 -e 118 14 -e 118 6 -e 119 134 -e 119 149 -e 119 164 -e 119 179 -e 119 194 -e 119 132 -e 119 145 -e 119 158 -e 119 171 -e 119 184 -e 119 120 -e 119 121 -e 119 122 -e 119 123 -e 119 124 -e 119 125 -e 119 126 -e 119 133 -e 119 147 -e 119 161 -e 119 175 -e 119 189 -e 119 118 -e 119 117 -e 119 116 -e 119 115 -e 119 114 -e 119 113 -e 119 106 -e 119 105 -e 119 104 -e 119 93 -e 119 91 -e 119 89 -e 119 80 -e 119 77 -e 119 74 -e 119 67 -e 119 63 -e 119 59 -e 119 54 -e 119 49 -e 119 44 -e 119 41 -e 119 35 -e 119 29 -e 119 28 -e 119 21 -e 119 7 -e 120 135 -e 120 150 -e 120 165 -e 120 180 -e 120 195 -e 120 133 -e 120 146 -e 120 159 -e 120 172 -e 120 185 -e 120 121 -e 120 122 -e 120 123 -e 120 124 -e 120 125 -e 120 126 -e 120 134 -e 120 148 -e 120 162 -e 120 176 -e 120 190 -e 120 119 -e 120 118 -e 120 117 -e 120 116 -e 120 115 -e 120 114 -e 120 113 -e 120 107 -e 120 106 -e 120 105 -e 120 94 -e 120 92 -e 120 90 -e 120 81 -e 120 78 -e 120 75 -e 120 68 -e 120 64 -e 120 60 -e 120 55 -e 120 50 -e 120 45 -e 120 42 -e 120 36 -e 120 30 -e 120 22 -e 120 15 -e 120 8 -e 121 136 -e 121 151 -e 121 166 -e 121 181 -e 121 196 -e 121 134 -e 121 147 -e 121 160 -e 121 173 -e 121 186 -e 121 122 -e 121 123 -e 121 124 -e 121 125 -e 121 126 -e 121 135 -e 121 149 -e 121 163 -e 121 177 -e 121 191 -e 121 120 -e 121 119 -e 121 118 -e 121 117 -e 121 116 -e 121 115 -e 121 114 -e 121 113 -e 121 108 -e 121 107 -e 121 106 -e 121 95 -e 121 93 -e 121 91 -e 121 82 -e 121 79 -e 121 76 -e 121 69 -e 121 65 -e 121 61 -e 121 56 -e 121 51 -e 121 46 -e 121 37 -e 121 31 -e 121 23 -e 121 16 -e 121 9 -e 121 1 -e 122 137 -e 122 152 -e 122 167 -e 122 182 -e 122 135 -e 122 148 -e 122 161 -e 122 174 -e 122 187 -e 122 123 -e 122 124 -e 122 125 -e 122 126 -e 122 136 -e 122 150 -e 122 164 -e 122 178 -e 122 192 -e 122 121 -e 122 120 -e 122 119 -e 122 118 -e 122 117 -e 122 116 -e 122 115 -e 122 114 -e 122 113 -e 122 109 -e 122 108 -e 122 107 -e 122 96 -e 122 94 -e 122 92 -e 122 83 -e 122 80 -e 122 77 -e 122 70 -e 122 66 -e 122 62 -e 122 52 -e 122 47 -e 122 38 -e 122 32 -e 122 24 -e 122 17 -e 122 10 -e 122 2 -e 123 138 -e 123 153 -e 123 168 -e 123 136 -e 123 149 -e 123 162 -e 123 175 -e 123 188 -e 123 124 -e 123 125 -e 123 126 -e 123 137 -e 123 151 -e 123 165 -e 123 179 -e 123 193 -e 123 122 -e 123 121 -e 123 120 -e 123 119 -e 123 118 -e 123 117 -e 123 116 -e 123 115 -e 123 114 -e 123 113 -e 123 110 -e 123 109 -e 123 108 -e 123 97 -e 123 95 -e 123 93 -e 123 84 -e 123 81 -e 123 78 -e 123 67 -e 123 63 -e 123 53 -e 123 48 -e 123 39 -e 123 33 -e 123 25 -e 123 18 -e 123 11 -e 123 3 -e 124 139 -e 124 154 -e 124 137 -e 124 150 -e 124 163 -e 124 176 -e 124 189 -e 124 125 -e 124 126 -e 124 138 -e 124 152 -e 124 166 -e 124 180 -e 124 194 -e 124 123 -e 124 122 -e 124 121 -e 124 120 -e 124 119 -e 124 118 -e 124 117 -e 124 116 -e 124 115 -e 124 114 -e 124 113 -e 124 111 -e 124 110 -e 124 109 -e 124 98 -e 124 96 -e 124 94 -e 124 82 -e 124 79 -e 124 68 -e 124 64 -e 124 54 -e 124 49 -e 124 40 -e 124 34 -e 124 26 -e 124 19 -e 124 12 -e 124 4 -e 125 140 -e 125 138 -e 125 151 -e 125 164 -e 125 177 -e 125 190 -e 125 126 -e 125 139 -e 125 153 -e 125 167 -e 125 181 -e 125 195 -e 125 124 -e 125 123 -e 125 122 -e 125 121 -e 125 120 -e 125 119 -e 125 118 -e 125 117 -e 125 116 -e 125 115 -e 125 114 -e 125 113 -e 125 112 -e 125 111 -e 125 110 -e 125 97 -e 125 95 -e 125 83 -e 125 80 -e 125 69 -e 125 65 -e 125 55 -e 125 50 -e 125 41 -e 125 35 -e 125 27 -e 125 20 -e 125 13 -e 125 5 -e 126 139 -e 126 152 -e 126 165 -e 126 178 -e 126 191 -e 126 140 -e 126 154 -e 126 168 -e 126 182 -e 126 196 -e 126 125 -e 126 124 -e 126 123 -e 126 122 -e 126 121 -e 126 120 -e 126 119 -e 126 118 -e 126 117 -e 126 116 -e 126 115 -e 126 114 -e 126 113 -e 126 112 -e 126 111 -e 126 98 -e 126 96 -e 126 84 -e 126 81 -e 126 70 -e 126 66 -e 126 56 -e 126 51 -e 126 42 -e 126 36 -e 126 28 -e 126 21 -e 126 14 -e 126 6 -e 127 142 -e 127 157 -e 127 172 -e 127 187 -e 127 128 -e 127 129 -e 127 130 -e 127 131 -e 127 132 -e 127 133 -e 127 134 -e 127 135 -e 127 136 -e 127 137 -e 127 138 -e 127 139 -e 127 140 -e 127 141 -e 127 155 -e 127 169 -e 127 183 -e 127 114 -e 127 113 -e 127 101 -e 127 99 -e 127 88 -e 127 85 -e 127 75 -e 127 71 -e 127 62 -e 127 57 -e 127 49 -e 127 43 -e 127 36 -e 127 29 -e 127 23 -e 127 15 -e 127 10 -e 127 1 -e 128 143 -e 128 158 -e 128 173 -e 128 188 -e 128 141 -e 128 129 -e 128 130 -e 128 131 -e 128 132 -e 128 133 -e 128 134 -e 128 135 -e 128 136 -e 128 137 -e 128 138 -e 128 139 -e 128 140 -e 128 142 -e 128 156 -e 128 170 -e 128 184 -e 128 127 -e 128 115 -e 128 114 -e 128 113 -e 128 102 -e 128 100 -e 128 89 -e 128 86 -e 128 76 -e 128 72 -e 128 63 -e 128 58 -e 128 50 -e 128 44 -e 128 37 -e 128 30 -e 128 24 -e 128 16 -e 128 11 -e 128 2 -e 129 144 -e 129 159 -e 129 174 -e 129 189 -e 129 142 -e 129 155 -e 129 130 -e 129 131 -e 129 132 -e 129 133 -e 129 134 -e 129 135 -e 129 136 -e 129 137 -e 129 138 -e 129 139 -e 129 140 -e 129 143 -e 129 157 -e 129 171 -e 129 185 -e 129 128 -e 129 127 -e 129 116 -e 129 115 -e 129 114 -e 129 103 -e 129 101 -e 129 99 -e 129 90 -e 129 87 -e 129 77 -e 129 73 -e 129 64 -e 129 59 -e 129 51 -e 129 45 -e 129 38 -e 129 31 -e 129 25 -e 129 17 -e 129 12 -e 129 3 -e 130 145 -e 130 160 -e 130 175 -e 130 190 -e 130 143 -e 130 156 -e 130 169 -e 130 131 -e 130 132 -e 130 133 -e 130 134 -e 130 135 -e 130 136 -e 130 137 -e 130 138 -e 130 139 -e 130 140 -e 130 144 -e 130 158 -e 130 172 -e 130 186 -e 130 129 -e 130 128 -e 130 127 -e 130 117 -e 130 116 -e 130 115 -e 130 104 -e 130 102 -e 130 100 -e 130 91 -e 130 88 -e 130 85 -e 130 78 -e 130 74 -e 130 65 -e 130 60 -e 130 52 -e 130 46 -e 130 39 -e 130 32 -e 130 26 -e 130 18 -e 130 13 -e 130 4 -e 131 146 -e 131 161 -e 131 176 -e 131 191 -e 131 144 -e 131 157 -e 131 170 -e 131 183 -e 131 132 -e 131 133 -e 131 134 -e 131 135 -e 131 136 -e 131 137 -e 131 138 -e 131 139 -e 131 140 -e 131 145 -e 131 159 -e 131 173 -e 131 187 -e 131 130 -e 131 129 -e 131 128 -e 131 127 -e 131 118 -e 131 117 -e 131 116 -e 131 105 -e 131 103 -e 131 101 -e 131 92 -e 131 89 -e 131 86 -e 131 79 -e 131 75 -e 131 71 -e 131 66 -e 131 61 -e 131 53 -e 131 47 -e 131 40 -e 131 33 -e 131 27 -e 131 19 -e 131 14 -e 131 5 -e 132 147 -e 132 162 -e 132 177 -e 132 192 -e 132 145 -e 132 158 -e 132 171 -e 132 184 -e 132 133 -e 132 134 -e 132 135 -e 132 136 -e 132 137 -e 132 138 -e 132 139 -e 132 140 -e 132 146 -e 132 160 -e 132 174 -e 132 188 -e 132 131 -e 132 130 -e 132 129 -e 132 128 -e 132 127 -e 132 119 -e 132 118 -e 132 117 -e 132 106 -e 132 104 -e 132 102 -e 132 93 -e 132 90 -e 132 87 -e 132 80 -e 132 76 -e 132 72 -e 132 67 -e 132 62 -e 132 57 -e 132 54 -e 132 48 -e 132 41 -e 132 34 -e 132 28 -e 132 20 -e 132 6 -e 133 148 -e 133 163 -e 133 178 -e 133 193 -e 133 146 -e 133 159 -e 133 172 -e 133 185 -e 133 134 -e 133 135 -e 133 136 -e 133 137 -e 133 138 -e 133 139 -e 133 140 -e 133 147 -e 133 161 -e 133 175 -e 133 189 -e 133 132 -e 133 131 -e 133 130 -e 133 129 -e 133 128 -e 133 127 -e 133 120 -e 133 119 -e 133 118 -e 133 107 -e 133 105 -e 133 103 -e 133 94 -e 133 91 -e 133 88 -e 133 81 -e 133 77 -e 133 73 -e 133 68 -e 133 63 -e 133 58 -e 133 55 -e 133 49 -e 133 43 -e 133 42 -e 133 35 -e 133 21 -e 133 7 -e 134 149 -e 134 164 -e 134 179 -e 134 194 -e 134 147 -e 134 160 -e 134 173 -e 134 186 -e 134 135 -e 134 136 -e 134 137 -e 134 138 -e 134 139 -e 134 140 -e 134 148 -e 134 162 -e 134 176 -e 134 190 -e 134 133 -e 134 132 -e 134 131 -e 134 130 -e 134 129 -e 134 128 -e 134 127 -e 134 121 -e 134 120 -e 134 119 -e 134 108 -e 134 106 -e 134 104 -e 134 95 -e 134 92 -e 134 89 -e 134 82 -e 134 78 -e 134 74 -e 134 69 -e 134 64 -e 134 59 -e 134 56 -e 134 50 -e 134 44 -e 134 36 -e 134 29 -e 134 22 -e 134 8 -e 135 150 -e 135 165 -e 135 180 -e 135 195 -e 135 148 -e 135 161 -e 135 174 -e 135 187 -e 135 136 -e 135 137 -e 135 138 -e 135 139 -e 135 140 -e 135 149 -e 135 163 -e 135 177 -e 135 191 -e 135 134 -e 135 133 -e 135 132 -e 135 131 -e 135 130 -e 135 129 -e 135 128 -e 135 127 -e 135 122 -e 135 121 -e 135 120 -e 135 109 -e 135 107 -e 135 105 -e 135 96 -e 135 93 -e 135 90 -e 135 83 -e 135 79 -e 135 75 -e 135 70 -e 135 65 -e 135 60 -e 135 51 -e 135 45 -e 135 37 -e 135 30 -e 135 23 -e 135 15 -e 135 9 -e 136 151 -e 136 166 -e 136 181 -e 136 196 -e 136 149 -e 136 162 -e 136 175 -e 136 188 -e 136 137 -e 136 138 -e 136 139 -e 136 140 -e 136 150 -e 136 164 -e 136 178 -e 136 192 -e 136 135 -e 136 134 -e 136 133 -e 136 132 -e 136 131 -e 136 130 -e 136 129 -e 136 128 -e 136 127 -e 136 123 -e 136 122 -e 136 121 -e 136 110 -e 136 108 -e 136 106 -e 136 97 -e 136 94 -e 136 91 -e 136 84 -e 136 80 -e 136 76 -e 136 66 -e 136 61 -e 136 52 -e 136 46 -e 136 38 -e 136 31 -e 136 24 -e 136 16 -e 136 10 -e 136 1 -e 137 152 -e 137 167 -e 137 182 -e 137 150 -e 137 163 -e 137 176 -e 137 189 -e 137 138 -e 137 139 -e 137 140 -e 137 151 -e 137 165 -e 137 179 -e 137 193 -e 137 136 -e 137 135 -e 137 134 -e 137 133 -e 137 132 -e 137 131 -e 137 130 -e 137 129 -e 137 128 -e 137 127 -e 137 124 -e 137 123 -e 137 122 -e 137 111 -e 137 109 -e 137 107 -e 137 98 -e 137 95 -e 137 92 -e 137 81 -e 137 77 -e 137 67 -e 137 62 -e 137 53 -e 137 47 -e 137 39 -e 137 32 -e 137 25 -e 137 17 -e 137 11 -e 137 2 -e 138 153 -e 138 168 -e 138 151 -e 138 164 -e 138 177 -e 138 190 -e 138 139 -e 138 140 -e 138 152 -e 138 166 -e 138 180 -e 138 194 -e 138 137 -e 138 136 -e 138 135 -e 138 134 -e 138 133 -e 138 132 -e 138 131 -e 138 130 -e 138 129 -e 138 128 -e 138 127 -e 138 125 -e 138 124 -e 138 123 -e 138 112 -e 138 110 -e 138 108 -e 138 96 -e 138 93 -e 138 82 -e 138 78 -e 138 68 -e 138 63 -e 138 54 -e 138 48 -e 138 40 -e 138 33 -e 138 26 -e 138 18 -e 138 12 -e 138 3 -e 139 154 -e 139 152 -e 139 165 -e 139 178 -e 139 191 -e 139 140 -e 139 153 -e 139 167 -e 139 181 -e 139 195 -e 139 138 -e 139 137 -e 139 136 -e 139 135 -e 139 134 -e 139 133 -e 139 132 -e 139 131 -e 139 130 -e 139 129 -e 139 128 -e 139 127 -e 139 126 -e 139 125 -e 139 124 -e 139 111 -e 139 109 -e 139 97 -e 139 94 -e 139 83 -e 139 79 -e 139 69 -e 139 64 -e 139 55 -e 139 49 -e 139 41 -e 139 34 -e 139 27 -e 139 19 -e 139 13 -e 139 4 -e 140 153 -e 140 166 -e 140 179 -e 140 192 -e 140 154 -e 140 168 -e 140 182 -e 140 196 -e 140 139 -e 140 138 -e 140 137 -e 140 136 -e 140 135 -e 140 134 -e 140 133 -e 140 132 -e 140 131 -e 140 130 -e 140 129 -e 140 128 -e 140 127 -e 140 126 -e 140 125 -e 140 112 -e 140 110 -e 140 98 -e 140 95 -e 140 84 -e 140 80 -e 140 70 -e 140 65 -e 140 56 -e 140 50 -e 140 42 -e 140 35 -e 140 28 -e 140 20 -e 140 14 -e 140 5 -e 141 156 -e 141 171 -e 141 186 -e 141 142 -e 141 143 -e 141 144 -e 141 145 -e 141 146 -e 141 147 -e 141 148 -e 141 149 -e 141 150 -e 141 151 -e 141 152 -e 141 153 -e 141 154 -e 141 155 -e 141 169 -e 141 183 -e 141 128 -e 141 127 -e 141 115 -e 141 113 -e 141 102 -e 141 99 -e 141 89 -e 141 85 -e 141 76 -e 141 71 -e 141 63 -e 141 57 -e 141 50 -e 141 43 -e 141 37 -e 141 29 -e 141 24 -e 141 15 -e 141 11 -e 141 1 -e 142 157 -e 142 172 -e 142 187 -e 142 155 -e 142 143 -e 142 144 -e 142 145 -e 142 146 -e 142 147 -e 142 148 -e 142 149 -e 142 150 -e 142 151 -e 142 152 -e 142 153 -e 142 154 -e 142 156 -e 142 170 -e 142 184 -e 142 141 -e 142 129 -e 142 128 -e 142 127 -e 142 116 -e 142 114 -e 142 103 -e 142 100 -e 142 90 -e 142 86 -e 142 77 -e 142 72 -e 142 64 -e 142 58 -e 142 51 -e 142 44 -e 142 38 -e 142 30 -e 142 25 -e 142 16 -e 142 12 -e 142 2 -e 143 158 -e 143 173 -e 143 188 -e 143 156 -e 143 169 -e 143 144 -e 143 145 -e 143 146 -e 143 147 -e 143 148 -e 143 149 -e 143 150 -e 143 151 -e 143 152 -e 143 153 -e 143 154 -e 143 157 -e 143 171 -e 143 185 -e 143 142 -e 143 141 -e 143 130 -e 143 129 -e 143 128 -e 143 117 -e 143 115 -e 143 113 -e 143 104 -e 143 101 -e 143 91 -e 143 87 -e 143 78 -e 143 73 -e 143 65 -e 143 59 -e 143 52 -e 143 45 -e 143 39 -e 143 31 -e 143 26 -e 143 17 -e 143 13 -e 143 3 -e 144 159 -e 144 174 -e 144 189 -e 144 157 -e 144 170 -e 144 183 -e 144 145 -e 144 146 -e 144 147 -e 144 148 -e 144 149 -e 144 150 -e 144 151 -e 144 152 -e 144 153 -e 144 154 -e 144 158 -e 144 172 -e 144 186 -e 144 143 -e 144 142 -e 144 141 -e 144 131 -e 144 130 -e 144 129 -e 144 118 -e 144 116 -e 144 114 -e 144 105 -e 144 102 -e 144 99 -e 144 92 -e 144 88 -e 144 79 -e 144 74 -e 144 66 -e 144 60 -e 144 53 -e 144 46 -e 144 40 -e 144 32 -e 144 27 -e 144 18 -e 144 14 -e 144 4 -e 145 160 -e 145 175 -e 145 190 -e 145 158 -e 145 171 -e 145 184 -e 145 146 -e 145 147 -e 145 148 -e 145 149 -e 145 150 -e 145 151 -e 145 152 -e 145 153 -e 145 154 -e 145 159 -e 145 173 -e 145 187 -e 145 144 -e 145 143 -e 145 142 -e 145 141 -e 145 132 -e 145 131 -e 145 130 -e 145 119 -e 145 117 -e 145 115 -e 145 106 -e 145 103 -e 145 100 -e 145 93 -e 145 89 -e 145 85 -e 145 80 -e 145 75 -e 145 67 -e 145 61 -e 145 54 -e 145 47 -e 145 41 -e 145 33 -e 145 28 -e 145 19 -e 145 5 -e 146 161 -e 146 176 -e 146 191 -e 146 159 -e 146 172 -e 146 185 -e 146 147 -e 146 148 -e 146 149 -e 146 150 -e 146 151 -e 146 152 -e 146 153 -e 146 154 -e 146 160 -e 146 174 -e 146 188 -e 146 145 -e 146 144 -e 146 143 -e 146 142 -e 146 141 -e 146 133 -e 146 132 -e 146 131 -e 146 120 -e 146 118 -e 146 116 -e 146 107 -e 146 104 -e 146 101 -e 146 94 -e 146 90 -e 146 86 -e 146 81 -e 146 76 -e 146 71 -e 146 68 -e 146 62 -e 146 55 -e 146 48 -e 146 42 -e 146 34 -e 146 20 -e 146 6 -e 147 162 -e 147 177 -e 147 192 -e 147 160 -e 147 173 -e 147 186 -e 147 148 -e 147 149 -e 147 150 -e 147 151 -e 147 152 -e 147 153 -e 147 154 -e 147 161 -e 147 175 -e 147 189 -e 147 146 -e 147 145 -e 147 144 -e 147 143 -e 147 142 -e 147 141 -e 147 134 -e 147 133 -e 147 132 -e 147 121 -e 147 119 -e 147 117 -e 147 108 -e 147 105 -e 147 102 -e 147 95 -e 147 91 -e 147 87 -e 147 82 -e 147 77 -e 147 72 -e 147 69 -e 147 63 -e 147 57 -e 147 56 -e 147 49 -e 147 35 -e 147 21 -e 147 7 -e 148 163 -e 148 178 -e 148 193 -e 148 161 -e 148 174 -e 148 187 -e 148 149 -e 148 150 -e 148 151 -e 148 152 -e 148 153 -e 148 154 -e 148 162 -e 148 176 -e 148 190 -e 148 147 -e 148 146 -e 148 145 -e 148 144 -e 148 143 -e 148 142 -e 148 141 -e 148 135 -e 148 134 -e 148 133 -e 148 122 -e 148 120 -e 148 118 -e 148 109 -e 148 106 -e 148 103 -e 148 96 -e 148 92 -e 148 88 -e 148 83 -e 148 78 -e 148 73 -e 148 70 -e 148 64 -e 148 58 -e 148 50 -e 148 43 -e 148 36 -e 148 22 -e 148 8 -e 149 164 -e 149 179 -e 149 194 -e 149 162 -e 149 175 -e 149 188 -e 149 150 -e 149 151 -e 149 152 -e 149 153 -e 149 154 -e 149 163 -e 149 177 -e 149 191 -e 149 148 -e 149 147 -e 149 146 -e 149 145 -e 149 144 -e 149 143 -e 149 142 -e 149 141 -e 149 136 -e 149 135 -e 149 134 -e 149 123 -e 149 121 -e 149 119 -e 149 110 -e 149 107 -e 149 104 -e 149 97 -e 149 93 -e 149 89 -e 149 84 -e 149 79 -e 149 74 -e 149 65 -e 149 59 -e 149 51 -e 149 44 -e 149 37 -e 149 29 -e 149 23 -e 149 9 -e 150 165 -e 150 180 -e 150 195 -e 150 163 -e 150 176 -e 150 189 -e 150 151 -e 150 152 -e 150 153 -e 150 154 -e 150 164 -e 150 178 -e 150 192 -e 150 149 -e 150 148 -e 150 147 -e 150 146 -e 150 145 -e 150 144 -e 150 143 -e 150 142 -e 150 141 -e 150 137 -e 150 136 -e 150 135 -e 150 124 -e 150 122 -e 150 120 -e 150 111 -e 150 108 -e 150 105 -e 150 98 -e 150 94 -e 150 90 -e 150 80 -e 150 75 -e 150 66 -e 150 60 -e 150 52 -e 150 45 -e 150 38 -e 150 30 -e 150 24 -e 150 15 -e 150 10 -e 151 166 -e 151 181 -e 151 196 -e 151 164 -e 151 177 -e 151 190 -e 151 152 -e 151 153 -e 151 154 -e 151 165 -e 151 179 -e 151 193 -e 151 150 -e 151 149 -e 151 148 -e 151 147 -e 151 146 -e 151 145 -e 151 144 -e 151 143 -e 151 142 -e 151 141 -e 151 138 -e 151 137 -e 151 136 -e 151 125 -e 151 123 -e 151 121 -e 151 112 -e 151 109 -e 151 106 -e 151 95 -e 151 91 -e 151 81 -e 151 76 -e 151 67 -e 151 61 -e 151 53 -e 151 46 -e 151 39 -e 151 31 -e 151 25 -e 151 16 -e 151 11 -e 151 1 -e 152 167 -e 152 182 -e 152 165 -e 152 178 -e 152 191 -e 152 153 -e 152 154 -e 152 166 -e 152 180 -e 152 194 -e 152 151 -e 152 150 -e 152 149 -e 152 148 -e 152 147 -e 152 146 -e 152 145 -e 152 144 -e 152 143 -e 152 142 -e 152 141 -e 152 139 -e 152 138 -e 152 137 -e 152 126 -e 152 124 -e 152 122 -e 152 110 -e 152 107 -e 152 96 -e 152 92 -e 152 82 -e 152 77 -e 152 68 -e 152 62 -e 152 54 -e 152 47 -e 152 40 -e 152 32 -e 152 26 -e 152 17 -e 152 12 -e 152 2 -e 153 168 -e 153 166 -e 153 179 -e 153 192 -e 153 154 -e 153 167 -e 153 181 -e 153 195 -e 153 152 -e 153 151 -e 153 150 -e 153 149 -e 153 148 -e 153 147 -e 153 146 -e 153 145 -e 153 144 -e 153 143 -e 153 142 -e 153 141 -e 153 140 -e 153 139 -e 153 138 -e 153 125 -e 153 123 -e 153 111 -e 153 108 -e 153 97 -e 153 93 -e 153 83 -e 153 78 -e 153 69 -e 153 63 -e 153 55 -e 153 48 -e 153 41 -e 153 33 -e 153 27 -e 153 18 -e 153 13 -e 153 3 -e 154 167 -e 154 180 -e 154 193 -e 154 168 -e 154 182 -e 154 196 -e 154 153 -e 154 152 -e 154 151 -e 154 150 -e 154 149 -e 154 148 -e 154 147 -e 154 146 -e 154 145 -e 154 144 -e 154 143 -e 154 142 -e 154 141 -e 154 140 -e 154 139 -e 154 126 -e 154 124 -e 154 112 -e 154 109 -e 154 98 -e 154 94 -e 154 84 -e 154 79 -e 154 70 -e 154 64 -e 154 56 -e 154 49 -e 154 42 -e 154 34 -e 154 28 -e 154 19 -e 154 14 -e 154 4 -e 155 170 -e 155 185 -e 155 156 -e 155 157 -e 155 158 -e 155 159 -e 155 160 -e 155 161 -e 155 162 -e 155 163 -e 155 164 -e 155 165 -e 155 166 -e 155 167 -e 155 168 -e 155 169 -e 155 183 -e 155 142 -e 155 141 -e 155 129 -e 155 127 -e 155 116 -e 155 113 -e 155 103 -e 155 99 -e 155 90 -e 155 85 -e 155 77 -e 155 71 -e 155 64 -e 155 57 -e 155 51 -e 155 43 -e 155 38 -e 155 29 -e 155 25 -e 155 15 -e 155 12 -e 155 1 -e 156 171 -e 156 186 -e 156 169 -e 156 157 -e 156 158 -e 156 159 -e 156 160 -e 156 161 -e 156 162 -e 156 163 -e 156 164 -e 156 165 -e 156 166 -e 156 167 -e 156 168 -e 156 170 -e 156 184 -e 156 155 -e 156 143 -e 156 142 -e 156 141 -e 156 130 -e 156 128 -e 156 117 -e 156 114 -e 156 104 -e 156 100 -e 156 91 -e 156 86 -e 156 78 -e 156 72 -e 156 65 -e 156 58 -e 156 52 -e 156 44 -e 156 39 -e 156 30 -e 156 26 -e 156 16 -e 156 13 -e 156 2 -e 157 172 -e 157 187 -e 157 170 -e 157 183 -e 157 158 -e 157 159 -e 157 160 -e 157 161 -e 157 162 -e 157 163 -e 157 164 -e 157 165 -e 157 166 -e 157 167 -e 157 168 -e 157 171 -e 157 185 -e 157 156 -e 157 155 -e 157 144 -e 157 143 -e 157 142 -e 157 131 -e 157 129 -e 157 127 -e 157 118 -e 157 115 -e 157 105 -e 157 101 -e 157 92 -e 157 87 -e 157 79 -e 157 73 -e 157 66 -e 157 59 -e 157 53 -e 157 45 -e 157 40 -e 157 31 -e 157 27 -e 157 17 -e 157 14 -e 157 3 -e 158 173 -e 158 188 -e 158 171 -e 158 184 -e 158 159 -e 158 160 -e 158 161 -e 158 162 -e 158 163 -e 158 164 -e 158 165 -e 158 166 -e 158 167 -e 158 168 -e 158 172 -e 158 186 -e 158 157 -e 158 156 -e 158 155 -e 158 145 -e 158 144 -e 158 143 -e 158 132 -e 158 130 -e 158 128 -e 158 119 -e 158 116 -e 158 113 -e 158 106 -e 158 102 -e 158 93 -e 158 88 -e 158 80 -e 158 74 -e 158 67 -e 158 60 -e 158 54 -e 158 46 -e 158 41 -e 158 32 -e 158 28 -e 158 18 -e 158 4 -e 159 174 -e 159 189 -e 159 172 -e 159 185 -e 159 160 -e 159 161 -e 159 162 -e 159 163 -e 159 164 -e 159 165 -e 159 166 -e 159 167 -e 159 168 -e 159 173 -e 159 187 -e 159 158 -e 159 157 -e 159 156 -e 159 155 -e 159 146 -e 159 145 -e 159 144 -e 159 133 -e 159 131 -e 159 129 -e 159 120 -e 159 117 -e 159 114 -e 159 107 -e 159 103 -e 159 99 -e 159 94 -e 159 89 -e 159 81 -e 159 75 -e 159 68 -e 159 61 -e 159 55 -e 159 47 -e 159 42 -e 159 33 -e 159 19 -e 159 5 -e 160 175 -e 160 190 -e 160 173 -e 160 186 -e 160 161 -e 160 162 -e 160 163 -e 160 164 -e 160 165 -e 160 166 -e 160 167 -e 160 168 -e 160 174 -e 160 188 -e 160 159 -e 160 158 -e 160 157 -e 160 156 -e 160 155 -e 160 147 -e 160 146 -e 160 145 -e 160 134 -e 160 132 -e 160 130 -e 160 121 -e 160 118 -e 160 115 -e 160 108 -e 160 104 -e 160 100 -e 160 95 -e 160 90 -e 160 85 -e 160 82 -e 160 76 -e 160 69 -e 160 62 -e 160 56 -e 160 48 -e 160 34 -e 160 20 -e 160 6 -e 161 176 -e 161 191 -e 161 174 -e 161 187 -e 161 162 -e 161 163 -e 161 164 -e 161 165 -e 161 166 -e 161 167 -e 161 168 -e 161 175 -e 161 189 -e 161 160 -e 161 159 -e 161 158 -e 161 157 -e 161 156 -e 161 155 -e 161 148 -e 161 147 -e 161 146 -e 161 135 -e 161 133 -e 161 131 -e 161 122 -e 161 119 -e 161 116 -e 161 109 -e 161 105 -e 161 101 -e 161 96 -e 161 91 -e 161 86 -e 161 83 -e 161 77 -e 161 71 -e 161 70 -e 161 63 -e 161 49 -e 161 35 -e 161 21 -e 161 7 -e 162 177 -e 162 192 -e 162 175 -e 162 188 -e 162 163 -e 162 164 -e 162 165 -e 162 166 -e 162 167 -e 162 168 -e 162 176 -e 162 190 -e 162 161 -e 162 160 -e 162 159 -e 162 158 -e 162 157 -e 162 156 -e 162 155 -e 162 149 -e 162 148 -e 162 147 -e 162 136 -e 162 134 -e 162 132 -e 162 123 -e 162 120 -e 162 117 -e 162 110 -e 162 106 -e 162 102 -e 162 97 -e 162 92 -e 162 87 -e 162 84 -e 162 78 -e 162 72 -e 162 64 -e 162 57 -e 162 50 -e 162 36 -e 162 22 -e 162 8 -e 163 178 -e 163 193 -e 163 176 -e 163 189 -e 163 164 -e 163 165 -e 163 166 -e 163 167 -e 163 168 -e 163 177 -e 163 191 -e 163 162 -e 163 161 -e 163 160 -e 163 159 -e 163 158 -e 163 157 -e 163 156 -e 163 155 -e 163 150 -e 163 149 -e 163 148 -e 163 137 -e 163 135 -e 163 133 -e 163 124 -e 163 121 -e 163 118 -e 163 111 -e 163 107 -e 163 103 -e 163 98 -e 163 93 -e 163 88 -e 163 79 -e 163 73 -e 163 65 -e 163 58 -e 163 51 -e 163 43 -e 163 37 -e 163 23 -e 163 9 -e 164 179 -e 164 194 -e 164 177 -e 164 190 -e 164 165 -e 164 166 -e 164 167 -e 164 168 -e 164 178 -e 164 192 -e 164 163 -e 164 162 -e 164 161 -e 164 160 -e 164 159 -e 164 158 -e 164 157 -e 164 156 -e 164 155 -e 164 151 -e 164 150 -e 164 149 -e 164 138 -e 164 136 -e 164 134 -e 164 125 -e 164 122 -e 164 119 -e 164 112 -e 164 108 -e 164 104 -e 164 94 -e 164 89 -e 164 80 -e 164 74 -e 164 66 -e 164 59 -e 164 52 -e 164 44 -e 164 38 -e 164 29 -e 164 24 -e 164 10 -e 165 180 -e 165 195 -e 165 178 -e 165 191 -e 165 166 -e 165 167 -e 165 168 -e 165 179 -e 165 193 -e 165 164 -e 165 163 -e 165 162 -e 165 161 -e 165 160 -e 165 159 -e 165 158 -e 165 157 -e 165 156 -e 165 155 -e 165 152 -e 165 151 -e 165 150 -e 165 139 -e 165 137 -e 165 135 -e 165 126 -e 165 123 -e 165 120 -e 165 109 -e 165 105 -e 165 95 -e 165 90 -e 165 81 -e 165 75 -e 165 67 -e 165 60 -e 165 53 -e 165 45 -e 165 39 -e 165 30 -e 165 25 -e 165 15 -e 165 11 -e 166 181 -e 166 196 -e 166 179 -e 166 192 -e 166 167 -e 166 168 -e 166 180 -e 166 194 -e 166 165 -e 166 164 -e 166 163 -e 166 162 -e 166 161 -e 166 160 -e 166 159 -e 166 158 -e 166 157 -e 166 156 -e 166 155 -e 166 153 -e 166 152 -e 166 151 -e 166 140 -e 166 138 -e 166 136 -e 166 124 -e 166 121 -e 166 110 -e 166 106 -e 166 96 -e 166 91 -e 166 82 -e 166 76 -e 166 68 -e 166 61 -e 166 54 -e 166 46 -e 166 40 -e 166 31 -e 166 26 -e 166 16 -e 166 12 -e 166 1 -e 167 182 -e 167 180 -e 167 193 -e 167 168 -e 167 181 -e 167 195 -e 167 166 -e 167 165 -e 167 164 -e 167 163 -e 167 162 -e 167 161 -e 167 160 -e 167 159 -e 167 158 -e 167 157 -e 167 156 -e 167 155 -e 167 154 -e 167 153 -e 167 152 -e 167 139 -e 167 137 -e 167 125 -e 167 122 -e 167 111 -e 167 107 -e 167 97 -e 167 92 -e 167 83 -e 167 77 -e 167 69 -e 167 62 -e 167 55 -e 167 47 -e 167 41 -e 167 32 -e 167 27 -e 167 17 -e 167 13 -e 167 2 -e 168 181 -e 168 194 -e 168 182 -e 168 196 -e 168 167 -e 168 166 -e 168 165 -e 168 164 -e 168 163 -e 168 162 -e 168 161 -e 168 160 -e 168 159 -e 168 158 -e 168 157 -e 168 156 -e 168 155 -e 168 154 -e 168 153 -e 168 140 -e 168 138 -e 168 126 -e 168 123 -e 168 112 -e 168 108 -e 168 98 -e 168 93 -e 168 84 -e 168 78 -e 168 70 -e 168 63 -e 168 56 -e 168 48 -e 168 42 -e 168 33 -e 168 28 -e 168 18 -e 168 14 -e 168 3 -e 169 184 -e 169 170 -e 169 171 -e 169 172 -e 169 173 -e 169 174 -e 169 175 -e 169 176 -e 169 177 -e 169 178 -e 169 179 -e 169 180 -e 169 181 -e 169 182 -e 169 183 -e 169 156 -e 169 155 -e 169 143 -e 169 141 -e 169 130 -e 169 127 -e 169 117 -e 169 113 -e 169 104 -e 169 99 -e 169 91 -e 169 85 -e 169 78 -e 169 71 -e 169 65 -e 169 57 -e 169 52 -e 169 43 -e 169 39 -e 169 29 -e 169 26 -e 169 15 -e 169 13 -e 169 1 -e 170 185 -e 170 183 -e 170 171 -e 170 172 -e 170 173 -e 170 174 -e 170 175 -e 170 176 -e 170 177 -e 170 178 -e 170 179 -e 170 180 -e 170 181 -e 170 182 -e 170 184 -e 170 169 -e 170 157 -e 170 156 -e 170 155 -e 170 144 -e 170 142 -e 170 131 -e 170 128 -e 170 118 -e 170 114 -e 170 105 -e 170 100 -e 170 92 -e 170 86 -e 170 79 -e 170 72 -e 170 66 -e 170 58 -e 170 53 -e 170 44 -e 170 40 -e 170 30 -e 170 27 -e 170 16 -e 170 14 -e 170 2 -e 171 186 -e 171 184 -e 171 172 -e 171 173 -e 171 174 -e 171 175 -e 171 176 -e 171 177 -e 171 178 -e 171 179 -e 171 180 -e 171 181 -e 171 182 -e 171 185 -e 171 170 -e 171 169 -e 171 158 -e 171 157 -e 171 156 -e 171 145 -e 171 143 -e 171 141 -e 171 132 -e 171 129 -e 171 119 -e 171 115 -e 171 106 -e 171 101 -e 171 93 -e 171 87 -e 171 80 -e 171 73 -e 171 67 -e 171 59 -e 171 54 -e 171 45 -e 171 41 -e 171 31 -e 171 28 -e 171 17 -e 171 3 -e 172 187 -e 172 185 -e 172 173 -e 172 174 -e 172 175 -e 172 176 -e 172 177 -e 172 178 -e 172 179 -e 172 180 -e 172 181 -e 172 182 -e 172 186 -e 172 171 -e 172 170 -e 172 169 -e 172 159 -e 172 158 -e 172 157 -e 172 146 -e 172 144 -e 172 142 -e 172 133 -e 172 130 -e 172 127 -e 172 120 -e 172 116 -e 172 107 -e 172 102 -e 172 94 -e 172 88 -e 172 81 -e 172 74 -e 172 68 -e 172 60 -e 172 55 -e 172 46 -e 172 42 -e 172 32 -e 172 18 -e 172 4 -e 173 188 -e 173 186 -e 173 174 -e 173 175 -e 173 176 -e 173 177 -e 173 178 -e 173 179 -e 173 180 -e 173 181 -e 173 182 -e 173 187 -e 173 172 -e 173 171 -e 173 170 -e 173 169 -e 173 160 -e 173 159 -e 173 158 -e 173 147 -e 173 145 -e 173 143 -e 173 134 -e 173 131 -e 173 128 -e 173 121 -e 173 117 -e 173 113 -e 173 108 -e 173 103 -e 173 95 -e 173 89 -e 173 82 -e 173 75 -e 173 69 -e 173 61 -e 173 56 -e 173 47 -e 173 33 -e 173 19 -e 173 5 -e 174 189 -e 174 187 -e 174 175 -e 174 176 -e 174 177 -e 174 178 -e 174 179 -e 174 180 -e 174 181 -e 174 182 -e 174 188 -e 174 173 -e 174 172 -e 174 171 -e 174 170 -e 174 169 -e 174 161 -e 174 160 -e 174 159 -e 174 148 -e 174 146 -e 174 144 -e 174 135 -e 174 132 -e 174 129 -e 174 122 -e 174 118 -e 174 114 -e 174 109 -e 174 104 -e 174 99 -e 174 96 -e 174 90 -e 174 83 -e 174 76 -e 174 70 -e 174 62 -e 174 48 -e 174 34 -e 174 20 -e 174 6 -e 175 190 -e 175 188 -e 175 176 -e 175 177 -e 175 178 -e 175 179 -e 175 180 -e 175 181 -e 175 182 -e 175 189 -e 175 174 -e 175 173 -e 175 172 -e 175 171 -e 175 170 -e 175 169 -e 175 162 -e 175 161 -e 175 160 -e 175 149 -e 175 147 -e 175 145 -e 175 136 -e 175 133 -e 175 130 -e 175 123 -e 175 119 -e 175 115 -e 175 110 -e 175 105 -e 175 100 -e 175 97 -e 175 91 -e 175 85 -e 175 84 -e 175 77 -e 175 63 -e 175 49 -e 175 35 -e 175 21 -e 175 7 -e 176 191 -e 176 189 -e 176 177 -e 176 178 -e 176 179 -e 176 180 -e 176 181 -e 176 182 -e 176 190 -e 176 175 -e 176 174 -e 176 173 -e 176 172 -e 176 171 -e 176 170 -e 176 169 -e 176 163 -e 176 162 -e 176 161 -e 176 150 -e 176 148 -e 176 146 -e 176 137 -e 176 134 -e 176 131 -e 176 124 -e 176 120 -e 176 116 -e 176 111 -e 176 106 -e 176 101 -e 176 98 -e 176 92 -e 176 86 -e 176 78 -e 176 71 -e 176 64 -e 176 50 -e 176 36 -e 176 22 -e 176 8 -e 177 192 -e 177 190 -e 177 178 -e 177 179 -e 177 180 -e 177 181 -e 177 182 -e 177 191 -e 177 176 -e 177 175 -e 177 174 -e 177 173 -e 177 172 -e 177 171 -e 177 170 -e 177 169 -e 177 164 -e 177 163 -e 177 162 -e 177 151 -e 177 149 -e 177 147 -e 177 138 -e 177 135 -e 177 132 -e 177 125 -e 177 121 -e 177 117 -e 177 112 -e 177 107 -e 177 102 -e 177 93 -e 177 87 -e 177 79 -e 177 72 -e 177 65 -e 177 57 -e 177 51 -e 177 37 -e 177 23 -e 177 9 -e 178 193 -e 178 191 -e 178 179 -e 178 180 -e 178 181 -e 178 182 -e 178 192 -e 178 177 -e 178 176 -e 178 175 -e 178 174 -e 178 173 -e 178 172 -e 178 171 -e 178 170 -e 178 169 -e 178 165 -e 178 164 -e 178 163 -e 178 152 -e 178 150 -e 178 148 -e 178 139 -e 178 136 -e 178 133 -e 178 126 -e 178 122 -e 178 118 -e 178 108 -e 178 103 -e 178 94 -e 178 88 -e 178 80 -e 178 73 -e 178 66 -e 178 58 -e 178 52 -e 178 43 -e 178 38 -e 178 24 -e 178 10 -e 179 194 -e 179 192 -e 179 180 -e 179 181 -e 179 182 -e 179 193 -e 179 178 -e 179 177 -e 179 176 -e 179 175 -e 179 174 -e 179 173 -e 179 172 -e 179 171 -e 179 170 -e 179 169 -e 179 166 -e 179 165 -e 179 164 -e 179 153 -e 179 151 -e 179 149 -e 179 140 -e 179 137 -e 179 134 -e 179 123 -e 179 119 -e 179 109 -e 179 104 -e 179 95 -e 179 89 -e 179 81 -e 179 74 -e 179 67 -e 179 59 -e 179 53 -e 179 44 -e 179 39 -e 179 29 -e 179 25 -e 179 11 -e 180 195 -e 180 193 -e 180 181 -e 180 182 -e 180 194 -e 180 179 -e 180 178 -e 180 177 -e 180 176 -e 180 175 -e 180 174 -e 180 173 -e 180 172 -e 180 171 -e 180 170 -e 180 169 -e 180 167 -e 180 166 -e 180 165 -e 180 154 -e 180 152 -e 180 150 -e 180 138 -e 180 135 -e 180 124 -e 180 120 -e 180 110 -e 180 105 -e 180 96 -e 180 90 -e 180 82 -e 180 75 -e 180 68 -e 180 60 -e 180 54 -e 180 45 -e 180 40 -e 180 30 -e 180 26 -e 180 15 -e 180 12 -e 181 196 -e 181 194 -e 181 182 -e 181 195 -e 181 180 -e 181 179 -e 181 178 -e 181 177 -e 181 176 -e 181 175 -e 181 174 -e 181 173 -e 181 172 -e 181 171 -e 181 170 -e 181 169 -e 181 168 -e 181 167 -e 181 166 -e 181 153 -e 181 151 -e 181 139 -e 181 136 -e 181 125 -e 181 121 -e 181 111 -e 181 106 -e 181 97 -e 181 91 -e 181 83 -e 181 76 -e 181 69 -e 181 61 -e 181 55 -e 181 46 -e 181 41 -e 181 31 -e 181 27 -e 181 16 -e 181 13 -e 181 1 -e 182 195 -e 182 196 -e 182 181 -e 182 180 -e 182 179 -e 182 178 -e 182 177 -e 182 176 -e 182 175 -e 182 174 -e 182 173 -e 182 172 -e 182 171 -e 182 170 -e 182 169 -e 182 168 -e 182 167 -e 182 154 -e 182 152 -e 182 140 -e 182 137 -e 182 126 -e 182 122 -e 182 112 -e 182 107 -e 182 98 -e 182 92 -e 182 84 -e 182 77 -e 182 70 -e 182 62 -e 182 56 -e 182 47 -e 182 42 -e 182 32 -e 182 28 -e 182 17 -e 182 14 -e 182 2 -e 183 184 -e 183 185 -e 183 186 -e 183 187 -e 183 188 -e 183 189 -e 183 190 -e 183 191 -e 183 192 -e 183 193 -e 183 194 -e 183 195 -e 183 196 -e 183 170 -e 183 169 -e 183 157 -e 183 155 -e 183 144 -e 183 141 -e 183 131 -e 183 127 -e 183 118 -e 183 113 -e 183 105 -e 183 99 -e 183 92 -e 183 85 -e 183 79 -e 183 71 -e 183 66 -e 183 57 -e 183 53 -e 183 43 -e 183 40 -e 183 29 -e 183 27 -e 183 15 -e 183 14 -e 183 1 -e 184 185 -e 184 186 -e 184 187 -e 184 188 -e 184 189 -e 184 190 -e 184 191 -e 184 192 -e 184 193 -e 184 194 -e 184 195 -e 184 196 -e 184 183 -e 184 171 -e 184 170 -e 184 169 -e 184 158 -e 184 156 -e 184 145 -e 184 142 -e 184 132 -e 184 128 -e 184 119 -e 184 114 -e 184 106 -e 184 100 -e 184 93 -e 184 86 -e 184 80 -e 184 72 -e 184 67 -e 184 58 -e 184 54 -e 184 44 -e 184 41 -e 184 30 -e 184 28 -e 184 16 -e 184 2 -e 185 186 -e 185 187 -e 185 188 -e 185 189 -e 185 190 -e 185 191 -e 185 192 -e 185 193 -e 185 194 -e 185 195 -e 185 196 -e 185 184 -e 185 183 -e 185 172 -e 185 171 -e 185 170 -e 185 159 -e 185 157 -e 185 155 -e 185 146 -e 185 143 -e 185 133 -e 185 129 -e 185 120 -e 185 115 -e 185 107 -e 185 101 -e 185 94 -e 185 87 -e 185 81 -e 185 73 -e 185 68 -e 185 59 -e 185 55 -e 185 45 -e 185 42 -e 185 31 -e 185 17 -e 185 3 -e 186 187 -e 186 188 -e 186 189 -e 186 190 -e 186 191 -e 186 192 -e 186 193 -e 186 194 -e 186 195 -e 186 196 -e 186 185 -e 186 184 -e 186 183 -e 186 173 -e 186 172 -e 186 171 -e 186 160 -e 186 158 -e 186 156 -e 186 147 -e 186 144 -e 186 141 -e 186 134 -e 186 130 -e 186 121 -e 186 116 -e 186 108 -e 186 102 -e 186 95 -e 186 88 -e 186 82 -e 186 74 -e 186 69 -e 186 60 -e 186 56 -e 186 46 -e 186 32 -e 186 18 -e 186 4 -e 187 188 -e 187 189 -e 187 190 -e 187 191 -e 187 192 -e 187 193 -e 187 194 -e 187 195 -e 187 196 -e 187 186 -e 187 185 -e 187 184 -e 187 183 -e 187 174 -e 187 173 -e 187 172 -e 187 161 -e 187 159 -e 187 157 -e 187 148 -e 187 145 -e 187 142 -e 187 135 -e 187 131 -e 187 127 -e 187 122 -e 187 117 -e 187 109 -e 187 103 -e 187 96 -e 187 89 -e 187 83 -e 187 75 -e 187 70 -e 187 61 -e 187 47 -e 187 33 -e 187 19 -e 187 5 -e 188 189 -e 188 190 -e 188 191 -e 188 192 -e 188 193 -e 188 194 -e 188 195 -e 188 196 -e 188 187 -e 188 186 -e 188 185 -e 188 184 -e 188 183 -e 188 175 -e 188 174 -e 188 173 -e 188 162 -e 188 160 -e 188 158 -e 188 149 -e 188 146 -e 188 143 -e 188 136 -e 188 132 -e 188 128 -e 188 123 -e 188 118 -e 188 113 -e 188 110 -e 188 104 -e 188 97 -e 188 90 -e 188 84 -e 188 76 -e 188 62 -e 188 48 -e 188 34 -e 188 20 -e 188 6 -e 189 190 -e 189 191 -e 189 192 -e 189 193 -e 189 194 -e 189 195 -e 189 196 -e 189 188 -e 189 187 -e 189 186 -e 189 185 -e 189 184 -e 189 183 -e 189 176 -e 189 175 -e 189 174 -e 189 163 -e 189 161 -e 189 159 -e 189 150 -e 189 147 -e 189 144 -e 189 137 -e 189 133 -e 189 129 -e 189 124 -e 189 119 -e 189 114 -e 189 111 -e 189 105 -e 189 99 -e 189 98 -e 189 91 -e 189 77 -e 189 63 -e 189 49 -e 189 35 -e 189 21 -e 189 7 -e 190 191 -e 190 192 -e 190 193 -e 190 194 -e 190 195 -e 190 196 -e 190 189 -e 190 188 -e 190 187 -e 190 186 -e 190 185 -e 190 184 -e 190 183 -e 190 177 -e 190 176 -e 190 175 -e 190 164 -e 190 162 -e 190 160 -e 190 151 -e 190 148 -e 190 145 -e 190 138 -e 190 134 -e 190 130 -e 190 125 -e 190 120 -e 190 115 -e 190 112 -e 190 106 -e 190 100 -e 190 92 -e 190 85 -e 190 78 -e 190 64 -e 190 50 -e 190 36 -e 190 22 -e 190 8 -e 191 192 -e 191 193 -e 191 194 -e 191 195 -e 191 196 -e 191 190 -e 191 189 -e 191 188 -e 191 187 -e 191 186 -e 191 185 -e 191 184 -e 191 183 -e 191 178 -e 191 177 -e 191 176 -e 191 165 -e 191 163 -e 191 161 -e 191 152 -e 191 149 -e 191 146 -e 191 139 -e 191 135 -e 191 131 -e 191 126 -e 191 121 -e 191 116 -e 191 107 -e 191 101 -e 191 93 -e 191 86 -e 191 79 -e 191 71 -e 191 65 -e 191 51 -e 191 37 -e 191 23 -e 191 9 -e 192 193 -e 192 194 -e 192 195 -e 192 196 -e 192 191 -e 192 190 -e 192 189 -e 192 188 -e 192 187 -e 192 186 -e 192 185 -e 192 184 -e 192 183 -e 192 179 -e 192 178 -e 192 177 -e 192 166 -e 192 164 -e 192 162 -e 192 153 -e 192 150 -e 192 147 -e 192 140 -e 192 136 -e 192 132 -e 192 122 -e 192 117 -e 192 108 -e 192 102 -e 192 94 -e 192 87 -e 192 80 -e 192 72 -e 192 66 -e 192 57 -e 192 52 -e 192 38 -e 192 24 -e 192 10 -e 193 194 -e 193 195 -e 193 196 -e 193 192 -e 193 191 -e 193 190 -e 193 189 -e 193 188 -e 193 187 -e 193 186 -e 193 185 -e 193 184 -e 193 183 -e 193 180 -e 193 179 -e 193 178 -e 193 167 -e 193 165 -e 193 163 -e 193 154 -e 193 151 -e 193 148 -e 193 137 -e 193 133 -e 193 123 -e 193 118 -e 193 109 -e 193 103 -e 193 95 -e 193 88 -e 193 81 -e 193 73 -e 193 67 -e 193 58 -e 193 53 -e 193 43 -e 193 39 -e 193 25 -e 193 11 -e 194 195 -e 194 196 -e 194 193 -e 194 192 -e 194 191 -e 194 190 -e 194 189 -e 194 188 -e 194 187 -e 194 186 -e 194 185 -e 194 184 -e 194 183 -e 194 181 -e 194 180 -e 194 179 -e 194 168 -e 194 166 -e 194 164 -e 194 152 -e 194 149 -e 194 138 -e 194 134 -e 194 124 -e 194 119 -e 194 110 -e 194 104 -e 194 96 -e 194 89 -e 194 82 -e 194 74 -e 194 68 -e 194 59 -e 194 54 -e 194 44 -e 194 40 -e 194 29 -e 194 26 -e 194 12 -e 195 196 -e 195 194 -e 195 193 -e 195 192 -e 195 191 -e 195 190 -e 195 189 -e 195 188 -e 195 187 -e 195 186 -e 195 185 -e 195 184 -e 195 183 -e 195 182 -e 195 181 -e 195 180 -e 195 167 -e 195 165 -e 195 153 -e 195 150 -e 195 139 -e 195 135 -e 195 125 -e 195 120 -e 195 111 -e 195 105 -e 195 97 -e 195 90 -e 195 83 -e 195 75 -e 195 69 -e 195 60 -e 195 55 -e 195 45 -e 195 41 -e 195 30 -e 195 27 -e 195 15 -e 195 13 -e 196 195 -e 196 194 -e 196 193 -e 196 192 -e 196 191 -e 196 190 -e 196 189 -e 196 188 -e 196 187 -e 196 186 -e 196 185 -e 196 184 -e 196 183 -e 196 182 -e 196 181 -e 196 168 -e 196 166 -e 196 154 -e 196 151 -e 196 140 -e 196 136 -e 196 126 -e 196 121 -e 196 112 -e 196 106 -e 196 98 -e 196 91 -e 196 84 -e 196 76 -e 196 70 -e 196 61 -e 196 56 -e 196 46 -e 196 42 -e 196 31 -e 196 28 -e 196 16 -e 196 14 -e 196 1 diff --git a/src/edu/caltech/cs2/coloring/NodeGraph.java b/src/edu/caltech/cs2/coloring/NodeGraph.java index fd2fe1cc4c311ddd095785882629df73a0219677..cd11d84ed535be0decd179e4cde919a4f387e460 100644 --- a/src/edu/caltech/cs2/coloring/NodeGraph.java +++ b/src/edu/caltech/cs2/coloring/NodeGraph.java @@ -8,19 +8,29 @@ import edu.caltech.cs2.interfaces.ISet; public class NodeGraph { + private final Node[] nodes; + + /** + * Represents one node in the graph + */ private static class Node { public int name; public int color; - public ISet<Node> neighbors; - public ISet<Integer> neighborColors; - public ISet<Integer> neighborsColored; + public ISet<Node> neighbors; // The set of this node's neighboring nodes + public ISet<Integer> neighborColors; // The colors which its neighbors use + public ISet<Integer> neighborsUncolored; // The names of its neighbors which aren't yet colored public Node(int name, int color) { this.name = name; this.color = color; this.neighbors = new ChainingHashSet<>(); this.neighborColors = new ChainingHashSet<>(); - this.neighborsColored = new ChainingHashSet<>(); + this.neighborsUncolored = new ChainingHashSet<>(); + } + + public void addNeighbor(Node neighbor) { + this.neighbors.add(neighbor); + this.neighborsUncolored.add(neighbor.name); } @Override @@ -41,8 +51,12 @@ public class NodeGraph { return this.name; } } - private final Node[] nodes; + /** + * Creates a new graph + * @param n The (fixed) number of vertices for the graph to have. They will be + * "named" with the numbers 0 through n. + */ public NodeGraph(int n) { this.nodes = new Node[n]; for (int i = 0; i < n; i++) { @@ -50,70 +64,101 @@ public class NodeGraph { } } - public int numberOfVertices() { - return this.nodes.length; - } - + /** + * Whether or not a vertex is colored yet + * @param n The name of the vertex + * @return True if the vertex has a color, false if it doesn't yet + */ public boolean isColored(int n) { return this.nodes[n].color != 0; } + /** + * Gets the color of a given vertex + * @param n The name of the vertex + * @return The vertex's color, or 0 if it doesn't have one yet + */ public int getColor(int n) { return this.nodes[n].color; } + /** + * Sets the color of a vertex + * @param n The name of the vertex to set the color of + * @param color The color to set it to + */ public void setColor(int n, int color) { if (this.isColored(n)) { - throw new IllegalArgumentException("" + n + " already has a color."); + throw new IllegalArgumentException(n + " already has a color."); } if (color <= 0) { - throw new IllegalArgumentException("only numbers >= 1 are valid colors"); + throw new IllegalArgumentException("Only numbers >= 1 are valid colors, not " + color); } checkColoringIsValid(n, color); this.nodes[n].color = color; for (Node m : this.nodes[n].neighbors) { m.neighborColors.add(color); - m.neighborsColored.add(n); + m.neighborsUncolored.remove(n); } } - private void checkColoringIsValid(int n, int color) { - ISet<Integer> adjs = this.neighbors(n); - for (int v : adjs) { - if (this.nodes[v].color == color) { - throw new IllegalColoringException(); - } + /** + * Gets a vertex's neighbors + * @param n The name of the vertex + * @return A list of the names of that vertex's neighbors + */ + public ISet<Integer> neighbors(int n) { + ISet<Integer> adj = new ChainingHashSet<>(); + + ISet<Node> neighbors = this.nodes[n].neighbors; + for (Node neigh : neighbors) { + adj.add(neigh.name); } + return adj; } - - public void addEdge(int n, int m) { - this.nodes[n].neighbors.add(this.nodes[m]); - this.nodes[m].neighbors.add(this.nodes[n]); - } + /** + * Gets the degree of saturation of a given vertex + * (i.e., the number of unique colors across its neighbors) + * @param n The name of the vertex + * @return Its degree of saturation + */ public int degreeOfSaturation(int n) { return this.nodes[n].neighborColors.size(); } - public int numNeighbors(int n) { - return this.nodes[n].neighbors.size() - this.nodes[n].neighborsColored.size(); + /** + * Gets the number of uncolored neighbors of a given vertex + * @param n The name of the vertex + * @return How many of its neighbors don't yet have colors + */ + public int numUncoloredNeighbors(int n) { + return this.nodes[n].neighborsUncolored.size(); } + + /** + * Gets the (fixed) number of vertices in the graph + * @return The total number of vertices + */ public int numVertices() { return this.nodes.length; } - public ISet<Integer> neighbors(int n) { - ISet<Integer> adj = new ChainingHashSet<>(); - - ISet<Node> neighbors = this.nodes[n].neighbors; - for (Node neigh : neighbors) { - adj.add(neigh.name); - } - - return adj; + /** + * Adds an edge between two vertices + * @param n The name of one vertex + * @param m The name of the other vertex + */ + public void addEdge(int n, int m) { + this.nodes[n].addNeighbor(this.nodes[m]); + this.nodes[m].addNeighbor(this.nodes[n]); } + /** + * Gets the current coloring of the graph + * @return A map between each vertex's name and its color + */ public IDictionary<Integer, Integer> getColoring() { IDictionary<Integer, Integer> coloring = new ChainingHashDictionary<>(MoveToFrontDictionary::new); for (Node n : this.nodes) { @@ -122,6 +167,22 @@ public class NodeGraph { return coloring; } + /** + * Checks if a vertex can validly be colored with a given color + * @param n The name of the vertex + * @param color The color for it to have + * @throws IllegalColoringException If this would cause an illegal coloring + */ + private void checkColoringIsValid(int n, int color) { + ISet<Integer> adjs = this.neighbors(n); + for (int v : adjs) { + if (this.nodes[v].color == color) { + throw new IllegalColoringException(); + } + } + + } + @Override public String toString() { StringBuilder result = new StringBuilder("{"); @@ -130,4 +191,4 @@ public class NodeGraph { } return result + "}"; } -} \ No newline at end of file +} diff --git a/tests/edu/caltech/cs2/datastructures/MinFourHeapTests.java b/tests/edu/caltech/cs2/datastructures/MinFourHeapTests.java index ee7ec0fbe9e99712db8ef33c952e9df22d1ba738..2e1ec7e24c9782ccad68d8b3b68d2ddc65c7d76a 100644 --- a/tests/edu/caltech/cs2/datastructures/MinFourHeapTests.java +++ b/tests/edu/caltech/cs2/datastructures/MinFourHeapTests.java @@ -96,7 +96,7 @@ public class MinFourHeapTests { @Tag("C") @Order(3) @DisplayName("Attempting to modify the priority of a nonexistent element throws an exception") - @TestDescription("This test checks that if an element doesn't exist in the heap, you're implementation " + + @TestDescription("This test checks that if an element doesn't exist in the heap, your implementation " + "should not be able to call increaseKey and decreaseKey on such element.") @TestHint("Make sure you are throwing an exception for nonexistent elements in increaseKey and decreaseKey") @DependsOn({"increaseKey", "decreaseKey"}) @@ -111,6 +111,25 @@ public class MinFourHeapTests { }); } + @Test + @Tag("C") + @Order(3) + @DisplayName("Calling increaseKey with a lower priority or decreaseKey with a higher priority throws an exception") + @TestDescription("This test checks that increaseKey and decreaseKey only accept the arguments they should.") + @TestHint("Make sure you are throwing an exception when increaseKey is asked to decrease a key's priority, " + + "and vice versa for decreaseKey.") + @DependsOn({"increaseKey", "decreaseKey"}) + public void testChangeKeyWrongWay() { + MinFourHeap<Integer> heap = new MinFourHeap<>(); + heap.enqueue(new IPriorityQueue.PQElement<>(10, 10)); + assertThrows(IllegalArgumentException.class, () -> { + heap.increaseKey(new IPriorityQueue.PQElement<>(10, 9)); + }); + assertThrows(IllegalArgumentException.class, () -> { + heap.decreaseKey(new IPriorityQueue.PQElement<>(10, 11)); + }); + } + @Test @Tag("C") @Order(4) @@ -298,7 +317,7 @@ public class MinFourHeapTests { @TestHint("Make sure that all these methods exist (i.e. you have written a percolateDown (or equiv. name) method and findSmallestChild method) and that you are accounting for:\n" + "1. Cases where some or all of the children are null and/or out of bounds\n" + "2. Cases where all children have a higher priority than their parent, so no swapping should occur") - @DependsOn({"enqueue", "size", "increaseKey", "decreaseKey", "data (field)"}) + @DependsOn({"enqueue", "size", "dequeue", "increaseKey", "decreaseKey", "data (field)"}) @CsvSource({"100, 30000, 15000", "42, 10000, 5000"}) public void stressTestIncreaseDecrease(int seed, int size, int numToReplace) { MinFourHeap<Integer> heap = new MinFourHeap<>(); @@ -360,7 +379,7 @@ public class MinFourHeapTests { @TestHint("Make sure that all these methods exist (i.e. you have written a percolateDown (or equiv. name) method and findSmallestChild method) and that you are accounting for:\n" + "1. Cases where some or all of the children are null and/or out of bounds\n" + "2. Cases where all children have a higher priority than their parent, so no swapping should occur") - @DependsOn({"enqueue", "dequeue", "size", "data (field)"}) + @DependsOn({"enqueue", "dequeue", "size", "data (field)", "keyToIndexMap (field)"}) public void stressTestEnqueueDequeue(int seed, int size) { MinFourHeap<Integer> heap = new MinFourHeap<>(); Comparator<Integer> c = new IntegerComparator(); diff --git a/tests/edu/caltech/cs2/project06/DSaturTests.java b/tests/edu/caltech/cs2/project06/DSaturTests.java index 9a96489c27394d6c3c666a250e3a24a07e2f7f35..b762057cee9857af09ec11fefc9ffd9cb376fbc9 100644 --- a/tests/edu/caltech/cs2/project06/DSaturTests.java +++ b/tests/edu/caltech/cs2/project06/DSaturTests.java @@ -189,7 +189,7 @@ public class DSaturTests { "mulsol.i.5.graph", "myciel2.graph", "myciel3.graph", "myciel4.graph", "myciel5.graph", "myciel6.graph", "myciel7.graph", "queen10_10.graph", "queen11_11.graph", - "queen12_12.graph", "queen13_13.graph", "queen14_14.graph", + "queen12_12.graph", "queen13_13.graph", "queen15_15.graph", "queen16_16.graph", "queen5_5.graph", "queen6_6.graph", "queen7_7.graph", "queen8_12.graph", "queen8_8.graph", "queen9_9.graph", "school1.graph",