diff --git a/data/random_unweighted_bipartite1.mtx b/data/random_unweighted_bipartite1.mtx new file mode 100644 index 0000000000..2d1f79c79f --- /dev/null +++ b/data/random_unweighted_bipartite1.mtx @@ -0,0 +1,1035 @@ +%%MatrixMarket matrix coordinate pattern symmetric +%%GraphBLAS type bool +300 300 1032 +191 1 +193 1 +197 1 +205 1 +216 1 +217 1 +232 1 +240 1 +267 1 +280 1 +202 2 +203 2 +210 2 +213 2 +223 2 +235 2 +251 2 +253 2 +285 2 +155 3 +157 3 +163 3 +222 3 +224 3 +233 3 +249 3 +272 3 +287 3 +288 3 +170 4 +227 4 +170 5 +187 5 +198 5 +215 5 +226 5 +242 5 +250 5 +261 5 +282 5 +294 5 +152 6 +203 6 +210 6 +232 6 +233 6 +244 6 +265 6 +285 6 +290 6 +159 7 +177 7 +220 7 +223 7 +226 7 +227 7 +241 7 +252 7 +254 7 +257 7 +288 7 +151 8 +215 8 +234 8 +261 8 +284 8 +292 8 +162 9 +170 9 +227 9 +278 9 +158 10 +172 10 +176 10 +218 10 +224 10 +227 10 +247 10 +281 10 +288 10 +163 11 +178 11 +193 11 +222 11 +238 11 +260 11 +176 12 +177 12 +180 12 +200 12 +231 12 +250 12 +272 12 +172 13 +181 13 +197 13 +213 13 +230 13 +241 13 +261 13 +282 13 +300 13 +154 14 +176 14 +186 14 +189 14 +219 14 +259 14 +276 14 +291 14 +296 14 +162 15 +181 15 +190 15 +194 15 +205 15 +221 15 +270 15 +286 15 +172 16 +228 16 +247 16 +291 16 +158 17 +246 17 +286 17 +287 17 +157 18 +188 18 +194 18 +200 18 +212 18 +274 18 +285 18 +161 19 +188 19 +216 19 +219 19 +225 19 +251 19 +262 19 +284 19 +196 20 +204 20 +234 20 +237 20 +245 20 +255 20 +257 20 +286 20 +207 21 +233 21 +268 21 +278 21 +167 22 +177 22 +189 22 +196 22 +218 22 +223 22 +227 22 +235 22 +276 22 +277 22 +155 23 +159 23 +167 23 +249 23 +289 23 +170 24 +173 24 +179 24 +180 24 +237 24 +259 24 +262 24 +293 24 +165 25 +215 25 +238 25 +251 25 +253 25 +266 25 +161 26 +189 26 +284 26 +288 26 +154 27 +216 27 +218 27 +235 27 +275 27 +296 27 +194 28 +208 28 +215 28 +237 28 +243 28 +248 28 +270 28 +166 29 +169 29 +208 29 +228 29 +245 29 +269 29 +181 30 +193 30 +206 30 +213 30 +225 30 +299 30 +152 31 +156 31 +172 31 +189 31 +211 31 +251 31 +259 31 +273 31 +288 31 +175 32 +203 32 +214 32 +215 32 +235 32 +265 32 +296 32 +192 33 +205 33 +217 33 +258 33 +169 34 +188 34 +225 34 +229 34 +240 34 +246 34 +271 34 +176 35 +185 35 +209 35 +211 35 +226 35 +233 35 +237 35 +251 35 +289 35 +152 36 +181 36 +187 36 +228 36 +233 36 +235 36 +244 36 +249 36 +153 37 +178 37 +193 37 +220 37 +225 37 +246 37 +259 37 +191 38 +209 38 +222 38 +252 38 +264 38 +286 38 +293 38 +189 39 +192 39 +200 39 +226 39 +237 39 +264 39 +282 39 +156 40 +174 40 +200 40 +212 40 +226 40 +159 41 +181 41 +209 41 +251 41 +252 41 +155 42 +211 42 +213 42 +214 42 +230 42 +251 42 +253 42 +277 42 +296 42 +165 43 +166 43 +180 43 +185 43 +197 43 +241 43 +249 43 +289 43 +152 44 +194 44 +197 44 +207 44 +232 44 +151 45 +172 45 +179 45 +191 45 +210 45 +248 45 +289 45 +177 46 +192 46 +194 46 +203 46 +218 46 +224 46 +230 46 +260 46 +275 46 +279 46 +155 47 +245 47 +267 47 +273 47 +275 47 +287 47 +169 48 +205 48 +253 48 +292 48 +293 48 +223 49 +251 49 +275 49 +167 50 +196 50 +202 50 +218 50 +244 50 +278 50 +286 50 +299 50 +193 51 +194 51 +226 51 +294 51 +232 52 +239 52 +246 52 +248 52 +278 52 +165 53 +176 53 +187 53 +219 53 +232 53 +237 53 +244 53 +266 53 +185 54 +186 54 +239 54 +257 54 +165 55 +175 55 +199 55 +204 55 +214 55 +260 55 +270 55 +271 55 +273 55 +285 55 +152 56 +160 56 +174 56 +196 56 +202 56 +226 56 +253 56 +283 56 +290 56 +296 56 +172 57 +186 57 +198 57 +203 57 +204 57 +274 57 +165 58 +168 58 +183 58 +192 58 +205 58 +213 58 +228 58 +233 58 +244 58 +261 58 +280 58 +281 58 +284 58 +292 58 +156 59 +170 59 +186 59 +224 59 +255 59 +276 59 +181 60 +210 60 +218 60 +240 60 +163 61 +214 61 +224 61 +239 61 +285 61 +288 61 +290 61 +296 61 +156 62 +161 62 +226 62 +280 62 +292 62 +155 63 +174 63 +226 63 +246 63 +249 63 +277 63 +296 63 +172 64 +176 64 +190 64 +231 64 +232 64 +269 64 +289 64 +295 64 +211 65 +221 65 +226 65 +227 65 +234 65 +263 65 +160 66 +174 66 +176 66 +210 66 +245 66 +269 66 +277 66 +173 67 +225 67 +258 67 +153 68 +176 68 +202 68 +219 68 +220 68 +236 68 +246 68 +257 68 +264 68 +271 68 +285 68 +290 68 +298 68 +177 69 +199 69 +219 69 +226 69 +234 69 +259 69 +271 69 +283 69 +294 69 +216 70 +226 70 +230 70 +233 70 +237 70 +254 70 +290 70 +162 71 +219 71 +275 71 +279 71 +156 72 +159 72 +180 72 +211 72 +225 72 +241 72 +242 72 +248 72 +258 72 +279 72 +281 72 +296 72 +191 73 +193 73 +210 73 +237 73 +267 73 +271 73 +287 73 +185 74 +214 74 +227 74 +293 74 +153 75 +159 75 +163 75 +179 75 +184 75 +185 75 +238 75 +155 76 +162 76 +205 76 +236 76 +253 76 +279 76 +166 77 +184 77 +248 77 +260 77 +284 77 +252 78 +260 78 +292 78 +296 78 +174 79 +191 79 +193 79 +277 79 +198 80 +199 80 +208 80 +223 80 +247 80 +290 80 +184 81 +187 81 +194 81 +198 81 +214 81 +217 81 +219 81 +241 81 +242 81 +167 82 +226 82 +228 82 +151 83 +152 83 +179 83 +188 83 +206 83 +209 83 +236 83 +288 83 +292 83 +298 83 +168 84 +191 84 +260 84 +271 84 +290 84 +186 85 +196 85 +199 85 +213 85 +246 85 +249 85 +259 85 +290 85 +200 86 +221 86 +224 86 +230 86 +246 86 +297 86 +161 87 +165 87 +182 87 +209 87 +211 87 +227 87 +247 87 +255 87 +164 88 +185 88 +194 88 +206 88 +226 88 +154 89 +167 89 +179 89 +227 89 +243 89 +268 89 +272 89 +156 90 +158 90 +162 90 +175 90 +177 90 +189 90 +209 90 +270 90 +272 90 +300 90 +174 91 +178 91 +201 91 +219 91 +221 91 +234 91 +242 91 +252 91 +278 91 +182 92 +232 92 +234 92 +237 92 +273 92 +178 93 +196 93 +199 93 +220 93 +222 93 +268 93 +283 93 +300 93 +168 94 +170 94 +177 94 +180 94 +231 94 +243 94 +247 94 +271 94 +278 94 +166 95 +181 95 +183 95 +188 95 +196 95 +204 95 +208 95 +210 95 +211 95 +230 95 +281 95 +299 95 +167 96 +190 96 +200 96 +244 96 +297 96 +155 97 +176 97 +242 97 +260 97 +276 97 +285 97 +163 98 +164 98 +182 98 +186 98 +200 98 +208 98 +239 98 +273 98 +298 98 +173 99 +177 99 +188 99 +189 99 +201 99 +238 99 +156 100 +177 100 +196 100 +210 100 +235 100 +265 100 +267 100 +277 100 +278 100 +151 101 +161 101 +168 101 +169 101 +172 101 +212 101 +214 101 +217 101 +230 101 +254 101 +259 101 +264 101 +280 101 +295 101 +297 101 +300 101 +168 102 +176 102 +185 102 +255 102 +184 103 +199 103 +241 103 +260 103 +266 103 +279 103 +220 104 +229 104 +264 104 +295 104 +159 105 +173 105 +198 105 +221 105 +223 105 +256 105 +152 106 +170 106 +171 106 +183 106 +184 106 +190 106 +217 106 +227 106 +231 106 +259 106 +262 106 +268 106 +299 106 +155 107 +171 107 +207 107 +211 107 +213 107 +246 107 +277 107 +296 107 +162 108 +195 108 +228 108 +274 108 +282 108 +175 109 +208 109 +213 109 +252 109 +259 109 +287 109 +170 110 +180 110 +227 110 +274 110 +277 110 +288 110 +258 111 +151 112 +159 112 +162 112 +195 112 +228 112 +235 112 +249 112 +184 113 +212 113 +225 113 +254 113 +282 113 +203 114 +206 114 +218 114 +223 114 +279 114 +280 114 +288 114 +174 115 +180 115 +212 115 +214 115 +215 115 +217 115 +266 115 +267 115 +271 115 +275 115 +281 115 +153 116 +164 116 +173 116 +193 116 +196 116 +210 116 +227 116 +232 116 +242 116 +283 116 +284 116 +252 117 +177 118 +255 118 +284 118 +157 119 +164 119 +175 119 +228 119 +288 119 +151 120 +175 120 +200 120 +202 120 +213 120 +232 120 +244 120 +290 120 +239 121 +241 121 +245 121 +252 121 +255 121 +263 121 +156 122 +179 122 +192 122 +205 122 +242 122 +253 122 +161 123 +182 123 +218 123 +220 123 +224 123 +232 123 +253 123 +282 123 +292 123 +295 123 +164 124 +197 124 +206 124 +253 124 +259 124 +290 124 +157 125 +178 125 +179 125 +194 125 +219 125 +221 125 +248 125 +288 125 +292 125 +175 126 +225 126 +230 126 +283 126 +170 127 +178 127 +194 127 +175 128 +211 128 +239 128 +248 128 +270 128 +287 128 +297 128 +223 129 +239 129 +262 129 +292 129 +300 129 +153 130 +154 130 +199 130 +212 130 +221 130 +271 130 +152 131 +201 131 +238 131 +252 131 +259 131 +270 131 +278 131 +179 132 +187 132 +217 132 +243 132 +264 132 +268 132 +279 132 +281 132 +285 132 +293 132 +297 132 +189 133 +156 134 +176 134 +199 134 +205 134 +211 134 +247 134 +254 134 +287 134 +288 134 +157 135 +162 135 +164 135 +166 135 +179 135 +182 135 +191 135 +196 135 +198 135 +201 135 +202 135 +206 135 +210 135 +227 135 +236 135 +239 135 +177 136 +179 136 +194 136 +197 136 +205 136 +171 137 +177 138 +205 138 +214 138 +220 138 +234 138 +257 138 +265 138 +200 139 +238 139 +251 139 +287 139 +288 139 +291 139 +297 139 +168 140 +210 140 +236 140 +252 140 +273 140 +188 141 +235 141 +245 141 +252 141 +263 141 +155 142 +208 142 +212 142 +225 142 +247 142 +253 142 +257 142 +265 142 +268 142 +271 142 +278 142 +172 143 +215 143 +224 143 +227 143 +250 143 +277 143 +169 144 +171 144 +173 144 +207 144 +216 144 +217 144 +237 144 +269 144 +284 144 +285 144 +300 144 +181 145 +209 145 +227 145 +248 145 +251 145 +277 145 +165 146 +182 146 +196 146 +226 146 +243 146 +264 146 +272 146 +289 146 +160 147 +234 147 +260 147 +263 147 +270 147 +241 148 +258 148 +287 148 +207 149 +208 149 +261 149 +263 149 +269 149 +151 150 +185 150 +221 150 +224 150 +237 150 +239 150 +259 150 +265 150 diff --git a/data/random_unweighted_bipartite2.mtx b/data/random_unweighted_bipartite2.mtx new file mode 100644 index 0000000000..3d288018ef --- /dev/null +++ b/data/random_unweighted_bipartite2.mtx @@ -0,0 +1,1031 @@ +%%MatrixMarket matrix coordinate pattern symmetric +%%GraphBLAS type bool +300 300 1028 +173 1 +179 1 +201 1 +224 1 +247 1 +269 1 +295 1 +297 1 +238 2 +250 2 +264 2 +268 2 +165 3 +180 3 +265 3 +283 3 +296 3 +297 3 +176 4 +190 4 +221 4 +279 4 +297 4 +300 4 +194 5 +195 5 +202 5 +206 5 +215 5 +223 5 +239 5 +241 5 +249 5 +259 5 +261 5 +263 5 +287 5 +292 5 +163 6 +178 6 +215 6 +229 6 +238 6 +272 6 +279 6 +174 7 +182 7 +189 7 +191 7 +200 7 +224 7 +232 7 +237 7 +246 7 +255 7 +276 7 +299 7 +156 8 +174 8 +215 8 +220 8 +225 8 +248 8 +269 8 +166 9 +171 9 +196 9 +235 9 +239 9 +273 9 +210 10 +217 10 +233 10 +244 10 +250 10 +158 11 +159 11 +201 11 +213 11 +237 11 +278 11 +162 12 +220 12 +244 12 +247 12 +280 12 +293 12 +164 13 +176 13 +179 13 +208 13 +244 13 +278 13 +154 14 +178 14 +189 14 +190 14 +198 14 +217 14 +258 14 +295 14 +172 15 +230 15 +239 15 +263 15 +152 16 +161 16 +165 16 +197 16 +238 16 +246 16 +259 16 +282 16 +297 16 +151 17 +198 17 +202 17 +227 17 +232 17 +247 17 +264 17 +290 17 +153 18 +156 18 +161 18 +191 18 +227 18 +256 18 +290 18 +152 19 +191 19 +202 19 +210 19 +226 19 +227 19 +235 19 +256 19 +278 19 +179 20 +183 20 +190 20 +193 20 +196 20 +198 20 +238 20 +277 20 +296 20 +153 21 +156 21 +161 21 +198 21 +206 21 +218 21 +219 21 +230 21 +244 21 +245 21 +154 22 +155 22 +157 22 +159 22 +185 22 +218 22 +220 22 +259 22 +260 22 +273 22 +291 22 +160 23 +189 23 +193 23 +224 23 +241 23 +244 23 +256 23 +259 23 +273 23 +300 23 +157 24 +171 24 +247 24 +248 24 +158 25 +160 25 +189 25 +211 25 +274 25 +300 25 +155 26 +174 26 +187 26 +189 26 +270 26 +285 26 +299 26 +162 27 +203 27 +209 27 +217 27 +220 27 +227 27 +234 27 +237 27 +239 27 +250 27 +276 27 +277 27 +166 28 +197 28 +227 28 +279 28 +173 29 +231 29 +239 29 +259 29 +277 29 +286 29 +287 29 +162 30 +191 30 +245 30 +259 30 +270 30 +152 31 +168 31 +170 31 +171 31 +172 31 +209 31 +213 31 +248 31 +261 31 +266 31 +297 31 +186 32 +234 32 +248 32 +268 32 +296 32 +154 33 +173 33 +189 33 +227 33 +165 34 +167 34 +184 34 +193 34 +222 34 +236 34 +242 34 +289 34 +292 34 +190 35 +201 35 +217 35 +270 35 +280 35 +154 36 +164 36 +171 36 +204 36 +214 36 +216 36 +224 36 +247 36 +248 36 +283 36 +288 36 +167 37 +190 37 +239 37 +277 37 +291 37 +157 38 +174 38 +194 38 +214 38 +259 38 +286 38 +197 39 +206 39 +230 39 +274 39 +165 40 +188 40 +191 40 +229 40 +213 41 +286 41 +298 41 +151 42 +194 42 +200 42 +205 42 +223 42 +243 42 +244 42 +275 42 +168 43 +171 43 +193 43 +195 43 +204 43 +172 44 +202 44 +241 44 +258 44 +281 44 +296 44 +177 45 +231 45 +232 45 +242 45 +247 45 +258 45 +173 46 +261 46 +162 47 +219 47 +233 47 +287 47 +163 48 +190 48 +202 48 +206 48 +238 48 +239 48 +279 48 +176 49 +191 49 +225 49 +247 49 +279 49 +188 50 +189 50 +217 50 +218 50 +220 50 +250 50 +251 50 +280 50 +285 50 +180 51 +192 51 +197 51 +203 51 +209 51 +288 51 +294 51 +299 51 +188 52 +197 52 +204 52 +221 52 +239 52 +248 52 +174 53 +178 53 +181 53 +205 53 +224 53 +248 53 +255 53 +263 53 +154 54 +168 54 +261 54 +154 55 +174 55 +191 55 +206 55 +220 55 +228 55 +297 55 +175 56 +228 56 +233 56 +278 56 +154 57 +163 57 +166 57 +177 57 +233 57 +244 57 +246 57 +272 57 +294 57 +300 57 +157 58 +182 58 +183 58 +171 59 +192 59 +194 59 +213 59 +218 59 +251 59 +265 59 +164 60 +169 60 +153 61 +159 61 +177 61 +198 61 +199 61 +249 61 +295 61 +152 62 +159 62 +175 62 +185 62 +205 62 +208 62 +256 62 +261 62 +263 62 +266 62 +269 62 +153 63 +163 63 +213 63 +230 63 +238 63 +240 63 +282 63 +290 63 +180 64 +204 64 +215 64 +222 64 +241 64 +266 64 +282 64 +174 65 +184 65 +222 65 +251 65 +256 65 +164 66 +223 66 +160 67 +181 67 +231 67 +237 67 +273 67 +297 67 +153 68 +160 68 +173 68 +176 68 +189 68 +230 68 +248 68 +263 68 +267 68 +284 68 +286 68 +300 68 +245 69 +255 69 +273 69 +283 69 +166 70 +168 70 +173 70 +185 70 +208 70 +247 70 +252 70 +282 70 +289 70 +290 70 +292 70 +180 71 +199 71 +202 71 +227 71 +228 71 +236 71 +245 71 +256 71 +276 71 +175 72 +202 72 +214 72 +217 72 +294 72 +177 73 +217 73 +219 73 +224 73 +248 73 +249 73 +300 73 +157 74 +181 74 +185 74 +186 74 +191 74 +204 74 +216 74 +231 74 +249 74 +265 74 +268 74 +278 74 +291 74 +169 75 +184 75 +230 75 +281 75 +190 76 +285 76 +163 77 +185 77 +193 77 +199 77 +206 77 +226 77 +267 77 +271 77 +153 78 +161 78 +179 78 +198 78 +217 78 +249 78 +261 78 +270 78 +286 78 +161 79 +262 79 +212 80 +231 80 +235 80 +236 80 +272 80 +280 80 +282 80 +289 80 +202 81 +228 81 +231 81 +244 81 +245 81 +288 81 +154 82 +191 82 +204 82 +215 82 +227 82 +234 82 +270 82 +278 82 +285 82 +293 82 +296 82 +162 83 +182 83 +186 83 +195 83 +197 83 +220 83 +231 83 +246 83 +284 83 +290 83 +225 84 +228 84 +250 84 +261 84 +266 84 +295 84 +152 85 +159 85 +161 85 +179 85 +187 85 +208 85 +211 85 +300 85 +181 86 +205 86 +209 86 +237 86 +240 86 +245 86 +253 86 +291 86 +184 87 +199 87 +218 87 +224 87 +244 87 +264 87 +273 87 +159 88 +171 88 +188 88 +204 88 +216 88 +275 88 +287 88 +156 89 +188 89 +213 89 +269 89 +270 89 +157 90 +168 90 +179 90 +222 90 +252 90 +269 90 +275 90 +286 90 +157 91 +163 91 +171 91 +201 91 +206 91 +263 91 +267 91 +279 91 +293 91 +152 92 +168 92 +186 92 +205 92 +225 92 +234 92 +283 92 +295 92 +159 93 +162 93 +210 93 +244 93 +174 94 +232 94 +250 94 +164 95 +187 95 +231 95 +243 95 +248 95 +279 95 +284 95 +289 95 +294 95 +296 95 +166 96 +176 96 +215 96 +257 96 +295 96 +168 97 +191 97 +192 97 +207 97 +208 97 +232 97 +242 97 +250 97 +292 97 +152 98 +171 98 +206 98 +261 98 +294 98 +297 98 +164 99 +168 99 +186 99 +188 99 +199 99 +203 99 +222 99 +282 99 +286 99 +156 100 +176 100 +177 100 +212 100 +217 100 +274 100 +169 101 +194 101 +217 101 +236 101 +281 101 +295 101 +299 101 +181 102 +190 102 +204 102 +262 102 +289 102 +153 103 +212 103 +224 103 +228 103 +234 103 +255 103 +266 103 +284 103 +174 104 +181 104 +271 104 +285 104 +171 105 +184 105 +227 105 +231 105 +243 105 +172 106 +177 106 +201 106 +209 106 +212 106 +228 106 +247 106 +284 106 +197 107 +229 107 +240 107 +260 107 +267 107 +279 107 +282 107 +288 107 +293 107 +300 107 +158 108 +166 108 +200 108 +248 108 +169 109 +175 109 +186 109 +189 109 +235 109 +270 109 +271 109 +161 110 +197 110 +224 110 +245 110 +246 110 +264 110 +275 110 +170 111 +171 111 +177 111 +179 111 +181 111 +184 111 +213 111 +216 111 +231 111 +241 111 +275 111 +298 111 +194 112 +195 112 +210 112 +227 112 +278 112 +297 112 +158 113 +162 113 +171 113 +173 113 +224 113 +254 113 +276 113 +280 113 +161 114 +200 114 +214 114 +251 114 +258 114 +271 114 +284 114 +285 114 +151 115 +176 115 +186 115 +232 115 +241 115 +265 115 +290 115 +169 116 +197 116 +202 116 +203 116 +242 116 +245 116 +263 116 +289 116 +153 117 +154 117 +166 117 +178 117 +194 117 +256 117 +274 117 +282 117 +185 118 +234 118 +239 118 +255 118 +299 118 +158 119 +174 119 +178 119 +183 119 +194 119 +197 119 +199 119 +202 119 +253 119 +267 119 +293 119 +175 120 +183 120 +199 120 +206 120 +211 120 +261 120 +267 120 +292 120 +216 121 +217 121 +244 121 +257 121 +215 122 +250 122 +256 122 +268 122 +271 122 +280 122 +233 123 +236 123 +251 123 +256 123 +175 124 +208 124 +210 124 +259 124 +288 124 +297 124 +197 125 +237 125 +241 125 +247 125 +266 125 +280 125 +296 125 +209 126 +274 126 +285 126 +297 126 +173 127 +180 127 +207 127 +217 127 +229 127 +231 127 +238 127 +241 127 +255 127 +263 127 +266 127 +283 127 +284 127 +158 128 +164 128 +187 128 +240 128 +274 128 +276 128 +279 128 +290 128 +173 129 +198 129 +246 129 +171 130 +173 130 +185 130 +207 130 +211 130 +241 130 +265 130 +291 130 +298 130 +183 131 +185 131 +233 131 +237 131 +293 131 +187 132 +198 132 +199 132 +215 132 +216 132 +221 132 +248 132 +269 132 +282 132 +193 133 +246 133 +259 133 +263 133 +274 133 +286 133 +158 134 +214 134 +216 134 +243 134 +253 134 +287 134 +300 134 +225 135 +239 135 +258 135 +264 135 +200 136 +207 136 +213 136 +229 136 +235 136 +262 136 +267 136 +269 136 +287 136 +297 136 +151 137 +207 137 +221 137 +234 137 +274 137 +298 137 +173 138 +177 138 +228 138 +251 138 +259 138 +285 138 +163 139 +167 139 +193 139 +215 139 +286 139 +152 140 +162 140 +167 140 +183 140 +221 140 +244 140 +257 140 +278 140 +281 140 +157 141 +167 141 +175 141 +184 141 +185 141 +199 141 +215 141 +167 142 +174 142 +176 142 +193 142 +234 142 +251 142 +196 143 +206 143 +215 143 +217 143 +229 143 +253 143 +272 143 +151 144 +165 144 +183 144 +206 144 +262 144 +282 144 +157 145 +260 145 +264 145 +274 145 +300 145 +164 146 +188 146 +201 146 +159 147 +174 147 +177 147 +164 148 +190 148 +198 148 +231 148 +239 148 +255 148 +164 149 +171 149 +172 149 +182 149 +198 149 +204 149 +217 149 +221 149 +236 149 +248 149 +254 149 +170 150 +172 150 +176 150 +190 150 +209 150 +230 150 +241 150 +259 150 +268 150 +269 150 +288 150 +295 150 diff --git a/data/random_unweighted_general1.mtx b/data/random_unweighted_general1.mtx new file mode 100644 index 0000000000..f57617c73b --- /dev/null +++ b/data/random_unweighted_general1.mtx @@ -0,0 +1,107 @@ +%%MatrixMarket matrix coordinate pattern symmetric +%%GraphBLAS type bool +50 50 104 +3 2 +7 4 +8 5 +9 5 +11 1 +12 3 +12 6 +15 12 +16 8 +16 11 +17 5 +17 11 +17 14 +18 8 +18 9 +19 7 +19 11 +19 12 +19 13 +21 17 +22 3 +22 9 +22 11 +23 4 +24 8 +25 7 +25 10 +25 14 +27 12 +27 25 +28 27 +29 18 +29 19 +29 28 +31 16 +31 17 +32 5 +32 23 +33 16 +33 20 +33 26 +33 27 +33 28 +33 30 +34 11 +34 20 +34 21 +34 28 +35 19 +35 27 +36 4 +36 8 +36 18 +37 6 +37 15 +37 35 +38 10 +38 27 +39 14 +39 18 +39 24 +40 10 +41 2 +41 4 +41 8 +41 11 +41 17 +41 34 +42 18 +43 14 +43 17 +43 20 +43 34 +43 35 +44 25 +44 28 +44 33 +45 7 +45 9 +45 26 +45 38 +46 10 +46 19 +46 41 +47 10 +47 19 +47 25 +47 40 +47 42 +47 43 +47 44 +48 21 +48 33 +48 45 +49 9 +49 11 +49 29 +49 30 +49 38 +49 45 +50 16 +50 30 +50 33 +50 36 diff --git a/data/random_unweighted_general2.mtx b/data/random_unweighted_general2.mtx new file mode 100644 index 0000000000..96f1491d0b --- /dev/null +++ b/data/random_unweighted_general2.mtx @@ -0,0 +1,959 @@ +%%MatrixMarket matrix coordinate pattern symmetric +%%GraphBLAS type bool +200 200 956 +7 1 +11 5 +11 8 +14 2 +14 5 +15 12 +16 3 +16 10 +18 3 +20 8 +24 9 +24 10 +25 13 +25 15 +26 10 +26 19 +28 3 +28 20 +29 3 +29 13 +29 17 +29 19 +30 12 +31 5 +31 7 +32 16 +33 1 +33 16 +33 18 +34 4 +35 2 +35 4 +36 8 +38 14 +38 18 +38 22 +39 4 +39 38 +40 6 +40 23 +40 34 +41 25 +41 31 +42 6 +43 15 +43 30 +45 8 +45 25 +45 26 +45 40 +46 18 +46 24 +47 38 +47 41 +48 30 +49 43 +50 18 +50 28 +50 31 +50 41 +51 1 +51 4 +51 29 +51 42 +51 44 +52 36 +52 39 +52 42 +53 23 +53 29 +53 32 +53 38 +53 41 +53 47 +54 15 +54 25 +54 37 +55 39 +55 49 +56 36 +57 12 +57 21 +57 49 +58 15 +58 16 +58 17 +58 56 +59 5 +59 14 +59 38 +60 24 +60 36 +60 42 +60 52 +61 48 +62 14 +63 55 +64 35 +64 51 +64 59 +65 6 +65 62 +66 12 +66 23 +66 41 +67 5 +67 12 +67 30 +67 35 +67 38 +67 51 +67 60 +68 53 +68 67 +69 13 +69 57 +69 62 +70 34 +70 45 +71 18 +71 39 +71 66 +71 67 +72 10 +72 28 +72 45 +72 64 +72 67 +73 3 +73 53 +73 66 +74 29 +74 35 +74 40 +74 63 +74 73 +75 10 +75 68 +75 73 +76 30 +76 49 +76 51 +77 23 +77 30 +77 46 +77 52 +77 71 +77 74 +77 76 +78 17 +78 38 +78 42 +78 44 +79 25 +79 55 +80 25 +80 30 +80 39 +80 58 +80 59 +80 65 +80 68 +80 71 +81 19 +81 20 +81 74 +82 6 +82 28 +82 81 +83 18 +83 26 +83 48 +83 62 +84 4 +84 35 +84 37 +84 81 +85 8 +85 15 +85 84 +86 77 +87 50 +87 72 +87 77 +87 78 +88 12 +88 20 +88 39 +88 67 +88 70 +88 83 +89 66 +90 6 +90 26 +90 52 +90 64 +91 39 +91 55 +91 60 +91 69 +91 71 +91 82 +92 37 +92 42 +92 59 +92 68 +93 26 +93 44 +93 47 +94 26 +95 19 +95 75 +95 92 +96 3 +96 22 +96 87 +96 93 +97 34 +97 56 +97 84 +98 12 +98 29 +98 40 +98 63 +99 11 +99 12 +99 58 +99 75 +99 96 +100 4 +100 43 +100 53 +101 36 +101 47 +102 19 +102 26 +102 44 +102 70 +102 78 +102 93 +103 23 +103 51 +103 64 +103 66 +103 70 +103 83 +104 12 +104 36 +104 54 +104 97 +105 13 +105 17 +105 30 +105 62 +105 92 +106 25 +106 30 +106 34 +106 39 +106 48 +106 49 +106 51 +106 72 +106 73 +106 93 +107 22 +107 24 +107 44 +107 97 +108 17 +108 25 +108 83 +109 22 +109 23 +109 47 +109 63 +109 93 +110 5 +110 16 +110 62 +110 85 +110 88 +110 97 +110 101 +111 3 +111 18 +111 20 +111 28 +111 62 +112 12 +112 24 +112 86 +113 29 +113 31 +113 38 +113 57 +113 101 +113 105 +113 106 +114 18 +114 24 +114 86 +114 90 +115 81 +115 90 +115 91 +115 112 +116 35 +116 36 +116 45 +116 70 +116 80 +116 98 +116 112 +117 28 +117 43 +117 45 +117 116 +118 27 +118 48 +118 66 +118 77 +118 91 +118 94 +119 3 +119 26 +119 29 +119 45 +119 58 +119 80 +119 91 +119 94 +119 110 +120 9 +120 11 +120 24 +120 28 +120 39 +121 10 +121 13 +121 15 +121 96 +122 2 +122 16 +122 88 +122 109 +122 120 +123 17 +123 32 +123 43 +123 47 +123 61 +123 73 +123 98 +123 121 +124 56 +124 60 +124 70 +124 93 +124 106 +124 108 +125 8 +125 12 +125 29 +125 34 +125 65 +125 68 +126 46 +126 49 +126 65 +126 74 +126 122 +127 20 +127 27 +127 68 +127 91 +127 93 +127 109 +127 120 +128 11 +128 95 +128 97 +129 6 +129 9 +129 20 +129 24 +129 65 +129 93 +129 101 +130 18 +130 21 +130 22 +130 26 +130 36 +130 48 +130 53 +130 66 +130 76 +130 77 +130 85 +130 106 +131 8 +131 24 +131 35 +131 46 +131 48 +131 61 +131 64 +131 76 +131 121 +132 16 +132 70 +132 81 +132 117 +132 119 +133 62 +133 83 +133 117 +134 9 +134 17 +134 26 +134 45 +134 51 +134 73 +134 105 +134 124 +135 8 +135 36 +135 37 +135 57 +136 31 +136 62 +136 69 +136 73 +136 103 +136 114 +136 120 +136 126 +136 135 +137 2 +137 14 +137 58 +137 60 +137 94 +137 98 +138 21 +138 36 +138 43 +138 84 +138 108 +138 120 +138 130 +139 14 +139 22 +139 23 +139 38 +139 70 +139 75 +139 102 +139 109 +139 111 +139 121 +139 125 +140 22 +140 30 +140 92 +140 131 +141 18 +141 19 +141 54 +141 67 +141 92 +141 127 +141 137 +142 62 +142 85 +142 91 +142 100 +142 116 +142 120 +143 8 +143 26 +143 30 +144 103 +144 106 +144 120 +145 52 +145 64 +145 97 +145 98 +145 100 +146 14 +146 17 +146 18 +146 52 +146 55 +146 64 +146 114 +146 122 +146 123 +146 130 +146 138 +146 142 +147 33 +147 35 +147 66 +147 91 +147 102 +147 108 +147 146 +148 12 +148 55 +148 59 +148 64 +148 70 +148 122 +148 135 +148 138 +149 2 +149 20 +149 53 +149 54 +149 82 +149 87 +149 106 +149 128 +149 147 +150 20 +150 32 +150 40 +150 117 +151 6 +151 56 +151 62 +151 121 +152 19 +152 22 +152 70 +152 78 +152 88 +152 92 +152 111 +152 132 +152 144 +153 10 +153 34 +153 36 +153 44 +153 97 +153 99 +153 101 +153 115 +153 120 +154 14 +154 51 +154 100 +155 35 +155 41 +155 86 +155 105 +155 109 +155 112 +155 131 +156 14 +156 17 +156 37 +156 57 +156 65 +156 70 +156 85 +156 105 +156 118 +157 56 +157 80 +157 85 +157 87 +157 112 +157 123 +157 135 +157 155 +158 33 +158 37 +158 58 +158 59 +158 89 +159 2 +159 28 +159 49 +159 50 +159 64 +159 65 +159 95 +159 112 +159 145 +159 151 +160 3 +160 17 +160 22 +160 42 +160 61 +160 73 +160 80 +160 92 +160 110 +160 114 +160 131 +160 152 +161 18 +161 23 +161 38 +161 44 +161 50 +161 58 +161 108 +162 4 +162 22 +162 33 +162 43 +162 50 +162 61 +162 77 +162 95 +162 117 +162 125 +162 129 +162 131 +162 157 +163 9 +163 32 +163 39 +163 85 +163 87 +163 89 +163 91 +163 102 +163 121 +163 122 +163 151 +163 160 +163 161 +164 18 +164 24 +164 34 +164 38 +164 41 +164 75 +164 91 +164 112 +164 133 +165 23 +165 82 +165 84 +165 87 +165 135 +165 143 +165 148 +166 1 +166 46 +166 52 +166 64 +166 67 +166 89 +167 24 +167 32 +167 95 +167 115 +167 121 +167 125 +168 17 +168 89 +168 124 +168 136 +168 155 +168 157 +168 158 +169 26 +169 67 +169 92 +169 100 +169 113 +170 29 +170 41 +170 58 +170 82 +170 114 +170 122 +170 126 +170 143 +170 149 +170 165 +170 167 +171 15 +171 27 +171 61 +171 83 +171 114 +171 138 +171 145 +172 17 +172 32 +172 36 +172 53 +172 54 +172 62 +172 89 +172 102 +172 157 +172 169 +173 4 +173 18 +173 66 +173 70 +173 97 +173 112 +173 125 +173 150 +173 152 +174 16 +174 68 +174 72 +174 87 +174 148 +174 163 +175 2 +175 26 +175 46 +175 76 +175 91 +175 104 +175 114 +175 116 +175 118 +175 120 +176 2 +176 23 +176 38 +176 62 +176 81 +176 126 +176 135 +176 173 +177 15 +177 34 +177 37 +177 59 +177 62 +177 91 +177 121 +177 122 +177 125 +177 142 +177 145 +177 149 +178 19 +178 55 +178 75 +178 78 +178 109 +178 129 +179 8 +179 11 +179 41 +179 45 +179 47 +179 49 +179 62 +179 70 +179 90 +179 121 +179 129 +179 134 +179 150 +179 174 +180 21 +180 38 +180 39 +180 91 +180 96 +180 118 +180 143 +181 87 +181 95 +181 98 +181 100 +181 112 +181 145 +181 180 +182 3 +182 4 +182 15 +182 27 +182 35 +182 43 +182 55 +182 88 +182 97 +182 99 +182 150 +183 19 +183 66 +183 89 +183 123 +183 156 +183 161 +184 34 +184 37 +184 95 +184 119 +184 134 +184 139 +184 141 +184 142 +184 152 +184 158 +185 52 +185 62 +185 96 +185 104 +185 107 +185 130 +186 8 +186 12 +186 54 +186 55 +186 66 +186 68 +186 74 +186 75 +186 91 +186 110 +186 142 +186 148 +186 155 +186 156 +186 176 +187 4 +187 19 +187 48 +187 92 +187 100 +187 102 +187 118 +187 132 +187 133 +187 139 +187 157 +188 1 +188 46 +188 66 +188 104 +188 147 +188 159 +189 14 +189 70 +189 73 +189 107 +189 161 +189 173 +189 176 +190 11 +190 28 +190 40 +190 58 +190 82 +190 84 +190 166 +190 188 +191 36 +191 37 +191 49 +191 55 +191 57 +191 62 +191 68 +191 90 +191 95 +191 117 +191 145 +191 146 +191 177 +192 18 +192 65 +192 76 +192 89 +192 102 +192 135 +193 3 +193 48 +193 141 +194 17 +194 25 +194 50 +194 89 +194 93 +194 121 +194 160 +194 161 +195 7 +195 16 +195 64 +195 78 +195 97 +195 101 +195 117 +195 159 +195 183 +195 185 +195 187 +196 16 +196 27 +196 47 +196 107 +196 114 +196 125 +196 131 +196 138 +196 140 +196 141 +196 142 +196 167 +196 191 +197 111 +197 118 +197 145 +197 182 +197 186 +197 195 +198 27 +198 36 +198 37 +198 55 +198 78 +198 146 +198 163 +198 180 +199 46 +199 56 +199 68 +199 72 +199 104 +199 139 +199 143 +199 157 +199 178 +200 3 +200 13 +200 29 +200 51 +200 58 +200 103 +200 122 +200 158 +200 162 +200 182 +200 187 +200 192 diff --git a/data/random_weighted_bipartite1.mtx b/data/random_weighted_bipartite1.mtx new file mode 100644 index 0000000000..7924b0b0eb --- /dev/null +++ b/data/random_weighted_bipartite1.mtx @@ -0,0 +1,1974 @@ +%%MatrixMarket matrix coordinate integer symmetric +%%GraphBLAS type uint32_t +500 500 1971 +322 224 4288596750 +448 32 4287391264 +470 68 4280514728 +331 164 4273313824 +473 50 4273231741 +474 177 4271528413 +371 206 4270497401 +344 173 4270163658 +386 44 4269100940 +263 118 4265690075 +464 166 4265292368 +371 164 4263777888 +257 73 4263765880 +308 200 4262887328 +405 103 4261272967 +415 47 4257845993 +325 199 4257485458 +264 171 4254885727 +371 144 4252327992 +258 246 4252001410 +271 135 4251663639 +326 87 4250041239 +451 138 4249638864 +260 153 4245595103 +412 137 4243457322 +436 13 4241740409 +347 162 4240028566 +441 54 4238538477 +373 234 4236940847 +323 87 4236508901 +288 200 4232883985 +349 197 4232232199 +465 23 4232183454 +326 187 4232100976 +391 81 4231510299 +455 175 4229744150 +288 239 4224731105 +309 225 4223688985 +446 187 4223248710 +302 19 4219824105 +356 143 4216126958 +390 30 4207051877 +473 20 4206185175 +430 244 4204286559 +419 163 4204220759 +480 221 4200999714 +396 94 4197193082 +341 75 4194930351 +390 79 4194456151 +332 232 4194358588 +279 42 4191683053 +472 137 4188420734 +485 105 4182743793 +372 74 4180777958 +430 30 4179668251 +373 177 4178335419 +371 250 4177154204 +363 3 4175422628 +325 85 4172205572 +343 191 4171789556 +427 11 4165984295 +425 125 4163159752 +296 97 4158984671 +345 72 4158902464 +442 230 4158341204 +299 56 4155247819 +424 8 4154629379 +486 1 4153757924 +311 56 4152132154 +498 157 4152076905 +362 25 4149512292 +465 198 4146846392 +423 90 4146308106 +365 69 4144423703 +477 124 4141705293 +355 27 4139368451 +357 28 4138397994 +350 153 4136188011 +496 191 4132416730 +488 86 4132338836 +391 63 4130381529 +254 33 4126960637 +480 67 4125818164 +486 160 4120600702 +395 211 4118109471 +255 154 4116926852 +492 164 4114702359 +457 3 4114216063 +285 35 4112730888 +440 14 4111798933 +498 246 4110667048 +383 228 4108078549 +351 74 4104024842 +470 235 4098371489 +340 168 4095770636 +390 108 4095202764 +349 247 4094125987 +292 72 4093640378 +423 118 4093187347 +320 213 4093145947 +430 108 4090339387 +307 86 4090063082 +378 237 4089137119 +420 233 4087497798 +460 23 4080633946 +464 51 4080570278 +322 19 4080099565 +466 130 4073914420 +266 168 4073876266 +327 74 4073866802 +363 125 4069644636 +393 131 4066000984 +483 60 4064853577 +322 82 4057850976 +352 232 4057635186 +262 31 4056379589 +371 67 4052668995 +382 77 4049883878 +422 166 4048019905 +486 35 4046344297 +304 217 4043265425 +478 64 4042331876 +463 31 4041751882 +449 84 4040566430 +489 121 4035507963 +399 194 4034045460 +286 189 4032634255 +462 229 4030901766 +257 172 4030895177 +499 63 4029391052 +462 203 4028351069 +323 28 4024013368 +252 163 4023067028 +261 94 4022525566 +310 237 4022471134 +425 87 4012486508 +252 108 4010434451 +459 127 4006437448 +476 155 4003723996 +490 236 4001361177 +458 121 3998903607 +281 136 3998636085 +345 134 3998245232 +445 193 3996593308 +312 183 3995408098 +460 97 3989495625 +323 152 3987632522 +298 178 3987030401 +283 196 3980777357 +317 161 3980159861 +296 81 3978807949 +447 119 3975000079 +451 206 3974906355 +430 235 3974170493 +338 1 3973759562 +401 122 3969841740 +359 11 3965540555 +466 93 3962623411 +455 154 3956020470 +267 169 3955674639 +273 161 3955399041 +470 41 3952664750 +414 157 3951272475 +271 136 3947069864 +293 184 3945359807 +453 150 3944662672 +415 89 3943434129 +439 210 3942970879 +493 7 3939906352 +327 204 3938847229 +409 67 3938252791 +342 95 3938015294 +418 161 3937571897 +488 3 3937207212 +293 199 3937043483 +334 34 3934362362 +377 189 3930625062 +363 78 3923879945 +363 126 3921168747 +258 202 3919063808 +305 231 3916275018 +308 183 3912278834 +406 41 3910970237 +319 96 3904572250 +466 37 3902330864 +494 69 3902175777 +262 211 3898835314 +269 55 3897737241 +375 51 3896918594 +273 30 3893583503 +353 207 3892275657 +288 117 3891113682 +285 182 3884143027 +466 11 3884003322 +453 64 3881498561 +466 126 3880282041 +295 49 3878735022 +407 156 3878522265 +283 81 3864207741 +332 46 3862942092 +400 147 3860354343 +433 34 3859266975 +289 8 3853990800 +318 47 3852420196 +280 81 3852377696 +372 47 3850552106 +456 129 3848004981 +315 130 3843456021 +464 116 3841842408 +359 88 3838612771 +301 107 3837925857 +346 186 3835754873 +386 227 3835588443 +335 166 3828711904 +315 247 3817689297 +404 223 3814027486 +302 209 3812652748 +253 173 3812542175 +364 173 3812479139 +401 210 3809883270 +369 177 3809066251 +358 131 3806614451 +284 143 3806526020 +315 242 3804935007 +467 11 3800943810 +470 178 3800182525 +390 65 3797312028 +311 191 3796860189 +488 197 3796338867 +421 18 3795548223 +292 245 3787889735 +435 130 3787807848 +271 70 3782004679 +435 215 3780591110 +449 74 3780384674 +312 44 3776189414 +426 107 3776163880 +471 20 3775198325 +309 92 3773419112 +414 26 3766483952 +366 137 3761437277 +344 63 3756644266 +477 108 3751777733 +289 107 3750863287 +471 220 3750660408 +329 49 3749270758 +368 23 3748371968 +384 225 3746495590 +434 19 3746284656 +257 85 3743237114 +464 68 3742923671 +297 236 3741759522 +279 159 3738187637 +294 165 3734058669 +446 94 3731217178 +341 175 3729861998 +298 208 3728929485 +438 113 3728502757 +472 199 3728176716 +492 94 3718159940 +373 25 3716381557 +267 116 3713950392 +295 207 3710992856 +265 16 3709030689 +281 3 3708829934 +253 75 3702931683 +391 1 3700192017 +496 92 3699757027 +464 173 3699634227 +326 189 3691792974 +365 25 3687820561 +460 241 3687260620 +334 195 3684202785 +457 52 3683322402 +498 249 3682597590 +440 20 3678401976 +470 231 3669063876 +383 8 3667649742 +368 148 3664637863 +400 87 3664427324 +294 174 3663995235 +463 70 3662920099 +344 124 3656798848 +437 34 3655198696 +255 110 3654739435 +358 33 3653845281 +352 53 3652836790 +259 130 3646731102 +257 6 3645228930 +471 119 3643746922 +436 249 3643208016 +412 54 3642644302 +488 49 3638527181 +289 180 3637783770 +389 8 3624997215 +440 239 3619761735 +420 208 3615129120 +486 5 3612526094 +403 167 3611426887 +289 210 3611302284 +293 110 3611254762 +437 247 3610813471 +485 190 3607405244 +364 145 3607359818 +325 196 3606936353 +363 147 3603672940 +343 113 3600463326 +412 98 3599131231 +356 162 3596527436 +313 202 3594943358 +423 75 3594038144 +320 49 3579801375 +429 89 3578710034 +322 131 3578159820 +387 206 3574189658 +399 62 3567887817 +430 183 3565717560 +285 120 3564528638 +471 116 3563918038 +375 119 3562061796 +363 208 3561305080 +465 144 3559556691 +354 152 3558661589 +273 38 3551898101 +477 137 3550020739 +260 55 3548722497 +354 188 3546353234 +367 96 3546230902 +269 125 3543404772 +477 24 3540207756 +277 82 3539787530 +446 30 3538578541 +263 123 3538120577 +491 189 3533305398 +486 138 3533277503 +424 53 3532955224 +419 117 3531693030 +433 100 3528734156 +328 3 3528010569 +298 114 3521588251 +453 143 3519738891 +275 142 3519578276 +492 58 3518739620 +391 180 3517921680 +287 169 3516985388 +373 125 3515670126 +255 184 3514851141 +433 211 3514560067 +343 86 3512242201 +288 103 3510498802 +467 84 3508241434 +354 218 3506140090 +458 97 3504904050 +251 54 3498904071 +258 205 3498441846 +373 137 3485245644 +495 215 3482510121 +313 34 3475940464 +289 76 3473573097 +437 162 3472595337 +493 115 3470670889 +276 117 3466691313 +361 18 3460663730 +348 96 3460414700 +305 240 3459873338 +475 180 3455823446 +264 142 3455596136 +392 180 3453332623 +390 5 3450647314 +335 99 3447343007 +389 147 3446049868 +315 43 3443427299 +271 12 3438873939 +252 183 3434556521 +315 12 3433399426 +463 22 3433228088 +460 218 3432887116 +450 217 3432084942 +294 107 3430600711 +408 240 3429339280 +434 93 3423938523 +305 220 3422929531 +268 169 3422156801 +459 43 3420683954 +378 6 3417279554 +301 121 3416880361 +475 166 3416737394 +397 53 3416185072 +305 206 3415179308 +416 80 3411146858 +433 199 3406944502 +471 46 3406603808 +467 230 3406552014 +306 185 3404662434 +475 175 3394193828 +366 134 3390813119 +457 217 3390494768 +468 22 3385973290 +335 138 3384387366 +281 118 3380724465 +378 60 3377938621 +444 137 3373030809 +467 151 3372248381 +426 205 3372141805 +499 240 3371092375 +447 221 3367243584 +336 136 3366750377 +374 238 3361584245 +355 66 3357403366 +381 239 3346901588 +360 204 3346750562 +424 242 3341278621 +323 155 3335142261 +496 86 3327837673 +330 79 3324284937 +460 151 3323141065 +469 192 3320265122 +328 21 3319633265 +444 200 3317458487 +375 200 3314798862 +268 122 3309236934 +364 76 3309001177 +302 188 3308479454 +499 112 3304737618 +484 43 3302255135 +380 116 3298830042 +315 71 3298775360 +312 58 3298158627 +445 228 3296819294 +264 132 3295609932 +476 215 3289108012 +278 82 3288428924 +388 45 3282996282 +286 159 3275683922 +352 91 3273858219 +287 95 3273821712 +480 195 3273283478 +387 229 3271331522 +320 62 3269756619 +322 64 3267493230 +308 51 3263623002 +454 192 3261570209 +354 247 3259183787 +495 54 3255699283 +437 130 3247448211 +385 166 3245111063 +331 47 3242042094 +338 131 3237484515 +337 89 3235127206 +255 43 3234537291 +268 112 3232855961 +359 174 3232376897 +271 150 3231797956 +267 68 3231716703 +394 70 3227543891 +484 77 3225986435 +375 101 3225339426 +346 202 3224611550 +353 156 3224261418 +438 247 3221282451 +323 86 3219451641 +272 88 3219269785 +259 203 3218588441 +256 140 3217092501 +285 93 3216523732 +320 239 3216280913 +392 182 3215098044 +266 81 3213184273 +329 136 3210482965 +329 14 3205340721 +257 20 3203738756 +325 244 3202363703 +308 50 3200679822 +371 102 3200308769 +399 129 3197915839 +335 235 3191493628 +364 159 3189929477 +453 180 3189618183 +322 14 3188787678 +499 5 3187838706 +389 5 3186725923 +469 208 3182644409 +296 145 3181320095 +410 227 3180028599 +487 72 3177932015 +340 73 3176925886 +398 99 3176177745 +408 225 3175412525 +319 97 3174380592 +272 101 3173968230 +309 87 3173398286 +258 55 3169870036 +441 20 3167020851 +299 153 3165435458 +292 65 3164919080 +252 120 3164492626 +372 59 3163705800 +493 34 3162577136 +420 118 3161476304 +374 149 3160910776 +330 154 3159452466 +376 116 3155585226 +446 182 3151669522 +468 110 3143902405 +394 71 3142816001 +424 210 3142610136 +370 102 3138754089 +330 74 3136427861 +368 24 3134770047 +406 74 3133262478 +353 80 3129579098 +482 47 3127671471 +403 239 3126570510 +387 225 3125851119 +489 48 3123898384 +361 103 3123230911 +300 46 3121348104 +460 40 3116663036 +256 239 3116237982 +494 32 3115947230 +395 206 3112466209 +343 231 3108346282 +436 217 3108282589 +469 74 3106511487 +256 148 3105139686 +396 4 3103060494 +254 175 3100994869 +386 187 3097618812 +450 141 3097521021 +373 203 3096264764 +293 8 3096227107 +453 87 3095026682 +456 25 3093230896 +395 219 3089062321 +268 163 3085858842 +284 124 3085130480 +397 222 3084594877 +314 50 3080552888 +420 245 3077746469 +433 4 3076500931 +269 40 3073442153 +448 115 3071139495 +281 85 3070856547 +393 11 3070138647 +439 111 3066323651 +395 224 3063207011 +448 151 3062506836 +371 86 3061786376 +477 90 3057711419 +313 110 3057152949 +484 140 3054565143 +276 194 3054357607 +338 195 3053549407 +401 235 3052727055 +432 26 3048583994 +372 12 3047429053 +343 220 3045452930 +309 109 3044819938 +272 193 3043890485 +497 154 3043720609 +446 189 3043231189 +259 225 3040427774 +401 244 3037778026 +456 163 3036151120 +396 214 3036091206 +326 66 3035756616 +477 133 3026140857 +479 169 3025829556 +279 187 3019953157 +310 118 3019073434 +335 194 3017754875 +455 20 3014977423 +392 171 3014322321 +298 106 3011796565 +462 106 3011084912 +348 99 3005026252 +411 210 3004320664 +336 75 3000140986 +487 143 2993665138 +434 83 2993380508 +334 245 2993258297 +289 234 2993232139 +259 217 2988911849 +448 75 2986906184 +262 107 2986754892 +271 202 2980108714 +305 210 2976148109 +481 181 2976017845 +488 10 2973666603 +464 98 2968181265 +297 237 2964276186 +257 243 2964061493 +490 174 2963407876 +257 112 2958969778 +274 101 2956735741 +379 65 2955580881 +477 31 2953469405 +322 20 2951027619 +313 171 2947057132 +349 51 2945764301 +270 222 2945325674 +362 246 2944285148 +474 112 2939032257 +375 228 2937860284 +344 150 2936719657 +345 218 2934975734 +451 180 2933700911 +342 196 2930857309 +259 166 2927981162 +311 230 2927605158 +395 6 2924841787 +428 91 2922783954 +336 96 2920996703 +335 203 2919605950 +337 170 2918930119 +283 63 2913618668 +375 45 2909612634 +290 173 2909348771 +275 104 2906315840 +286 116 2905534362 +456 77 2904525572 +458 139 2904346485 +346 211 2904047986 +367 135 2903894713 +398 183 2902688789 +371 83 2900440673 +480 181 2899850866 +440 23 2899675467 +474 75 2899037705 +309 49 2898813384 +264 146 2896257028 +286 5 2892119971 +439 224 2881419061 +259 93 2879625108 +481 111 2878144327 +333 178 2872798305 +471 33 2867901080 +343 29 2867435544 +366 207 2861638645 +286 168 2861509404 +373 215 2858277401 +356 208 2855018181 +473 106 2851348396 +369 98 2848180145 +265 243 2847725635 +445 74 2843678345 +258 66 2842351026 +442 35 2839103952 +255 187 2838911938 +287 14 2837393485 +462 222 2836822977 +382 153 2835289803 +477 2 2831189358 +491 213 2831005442 +304 150 2827844168 +450 219 2827596870 +443 71 2826584415 +427 247 2822063223 +262 205 2821255161 +489 190 2819347228 +375 91 2819343013 +331 14 2818115239 +363 203 2816190992 +470 236 2812109758 +323 64 2805765839 +487 135 2803274276 +279 132 2801495651 +369 115 2795612687 +481 13 2795571918 +332 44 2795512596 +417 160 2794217556 +362 224 2792432977 +327 231 2789068577 +479 90 2786026104 +497 182 2785346739 +398 233 2781767345 +290 150 2780684398 +453 39 2779577667 +414 90 2779177572 +380 123 2777798938 +365 172 2777565466 +426 250 2776314453 +449 41 2775079121 +277 47 2774716557 +493 169 2772971536 +267 101 2769534541 +481 249 2766572133 +282 162 2758706497 +369 56 2754619244 +339 196 2752375833 +335 151 2751035149 +404 60 2749993826 +363 190 2749937318 +479 126 2747394690 +296 150 2744498097 +492 113 2740801727 +446 230 2738910693 +485 164 2738776072 +402 54 2735298567 +319 82 2729115254 +472 175 2725499982 +466 243 2725065452 +395 169 2724779318 +301 82 2724543905 +391 137 2724029269 +383 78 2719590869 +295 127 2715946462 +290 243 2713087296 +358 51 2708813978 +352 37 2702999607 +341 41 2702872988 +476 183 2702118424 +497 31 2698686268 +266 153 2698682819 +322 7 2693242912 +394 119 2693079515 +374 177 2690622935 +405 133 2689034948 +424 27 2686238920 +447 218 2685167581 +428 21 2684057643 +440 135 2683200584 +295 249 2682406496 +268 91 2682216577 +470 13 2678693661 +334 21 2678531277 +411 235 2676818494 +434 63 2675974427 +288 127 2674961806 +465 66 2670876376 +337 165 2665809361 +327 7 2664959266 +284 18 2664402772 +464 32 2660207631 +276 132 2658420742 +278 1 2657791269 +311 126 2657598858 +308 109 2657177466 +280 202 2655977113 +352 16 2652666308 +319 231 2651777548 +465 152 2644086143 +473 214 2639260125 +395 243 2637499190 +436 169 2637213347 +483 21 2634258453 +350 209 2632698297 +386 139 2630637245 +341 100 2627294097 +497 119 2622294605 +393 184 2616711615 +348 4 2612617005 +292 183 2606621896 +273 31 2597417947 +342 77 2595303296 +403 13 2593998255 +435 147 2590817560 +468 199 2590092679 +497 180 2586537186 +350 102 2585718236 +437 199 2585202119 +491 87 2583936694 +374 76 2583290454 +425 234 2581843091 +370 221 2581159837 +373 200 2578840983 +314 156 2578813777 +396 249 2577290154 +423 196 2576484457 +322 96 2575872652 +350 34 2573269607 +280 228 2572469983 +482 171 2570988139 +403 110 2570352215 +386 113 2570066553 +387 150 2568534680 +372 141 2567613856 +335 20 2567278026 +410 241 2566254971 +496 91 2562939314 +337 195 2561598656 +447 177 2557582064 +439 26 2556904350 +310 192 2554035776 +294 120 2551149199 +407 50 2549727004 +441 228 2548100684 +350 61 2546306605 +361 224 2543750764 +483 115 2540065142 +457 196 2536935987 +453 58 2536289666 +261 93 2527394906 +290 51 2526265510 +454 75 2517121817 +407 65 2515393039 +338 142 2514866255 +477 147 2512284743 +485 250 2512198509 +265 13 2509239122 +394 114 2505528048 +328 68 2504985454 +429 82 2502608219 +483 20 2499763818 +277 30 2499567002 +394 108 2499045644 +353 17 2498850275 +476 182 2494974704 +457 42 2491746236 +306 119 2491334025 +362 6 2490610083 +306 156 2489227689 +474 88 2487889938 +253 132 2479064806 +296 86 2478289712 +261 179 2476809636 +384 77 2470900187 +475 243 2466851623 +393 128 2466261030 +353 56 2463150771 +369 237 2463109875 +344 201 2462450872 +446 172 2457396568 +464 46 2452753786 +394 35 2452376319 +494 205 2448557618 +317 17 2448460099 +361 181 2444138006 +332 114 2442442254 +435 105 2442298549 +373 202 2441578230 +412 169 2441136008 +348 174 2440555629 +452 108 2436504560 +405 162 2432965836 +465 53 2429671072 +393 91 2427455195 +375 115 2425149211 +376 245 2423775877 +371 72 2421425125 +262 89 2421189781 +257 107 2419368269 +433 162 2417789417 +486 37 2414754982 +365 182 2414626345 +487 94 2411895282 +366 25 2409989566 +484 115 2407588717 +493 135 2392323199 +375 89 2391357164 +385 212 2390848987 +370 248 2388533618 +394 125 2388272338 +285 46 2388062190 +275 191 2386659663 +433 1 2385881051 +303 139 2383074541 +317 166 2380927986 +467 245 2372992542 +361 196 2372408806 +343 94 2372180480 +388 14 2370922361 +402 241 2367770407 +301 241 2364143494 +291 54 2361112410 +335 68 2359818169 +401 69 2357297589 +479 211 2355532530 +297 16 2355194475 +425 52 2350531308 +339 69 2345014952 +263 165 2344751087 +297 159 2344374193 +315 2 2343783292 +462 149 2342958683 +399 245 2342847102 +425 51 2341705422 +476 24 2339806508 +420 62 2339475844 +318 226 2335239380 +334 181 2334881442 +427 126 2333306120 +319 170 2331003312 +325 217 2330568562 +472 11 2327302909 +286 41 2323813451 +352 221 2322722475 +296 180 2322412648 +492 157 2321156991 +293 237 2320294297 +399 54 2311077131 +403 76 2308766831 +281 73 2306624755 +326 116 2304701923 +355 57 2304166444 +347 55 2303868248 +474 86 2303796300 +402 95 2298981817 +267 56 2298909540 +365 99 2295329818 +490 187 2294122753 +267 38 2294031741 +260 80 2293654978 +408 138 2292670842 +339 99 2290352681 +295 69 2284036493 +348 45 2280437799 +387 238 2277009821 +357 191 2273634684 +378 56 2269469806 +488 13 2266078728 +426 134 2262790556 +424 63 2260628195 +319 39 2259348434 +313 98 2256594725 +406 38 2255892250 +429 163 2255722753 +485 69 2250306375 +255 239 2244980331 +491 89 2244921679 +348 191 2243394232 +364 51 2235673176 +285 240 2231595041 +325 122 2230974689 +282 81 2226942531 +349 15 2224895025 +267 6 2224512432 +416 146 2216908105 +447 52 2215062064 +391 17 2213097736 +265 49 2210289453 +406 165 2209141727 +459 56 2203089536 +266 122 2202030341 +401 174 2201197626 +335 243 2201150015 +396 132 2199439528 +475 244 2195662081 +436 78 2195002705 +415 13 2194441679 +471 219 2191980386 +426 235 2190871813 +343 26 2190336020 +256 109 2174191528 +460 28 2168069093 +399 63 2167487124 +412 131 2162401336 +432 192 2162211111 +287 85 2156227983 +381 166 2154470349 +388 40 2154132660 +466 132 2147661340 +481 19 2146642131 +433 9 2145991259 +477 21 2145190994 +261 88 2144176603 +484 103 2143651076 +293 103 2142007149 +253 111 2141861922 +349 181 2140268708 +338 132 2139077684 +429 141 2137018037 +303 103 2132933712 +360 38 2131860372 +334 159 2131618705 +348 185 2130012066 +407 106 2129267803 +453 16 2125190074 +275 127 2125040122 +486 197 2124316965 +258 68 2123044780 +450 125 2119732000 +467 77 2119443305 +314 98 2118866550 +287 223 2117758868 +259 138 2117447635 +263 186 2116712091 +294 136 2115778390 +262 117 2112816625 +384 209 2111810653 +331 57 2110016507 +390 248 2109984819 +488 19 2109919469 +400 51 2109006013 +444 147 2106458787 +390 13 2105028479 +470 58 2103775218 +272 122 2103025619 +346 156 2102686158 +314 158 2098594275 +373 242 2096516653 +263 223 2094808358 +326 159 2094081668 +440 232 2092718245 +371 192 2092171784 +489 174 2089171877 +317 35 2089061485 +489 179 2089053668 +337 116 2087462661 +292 58 2083528400 +298 91 2083503762 +315 152 2081701852 +361 216 2080483870 +286 162 2077524445 +498 51 2077450632 +329 101 2077265245 +271 101 2075096744 +340 236 2067687695 +327 15 2067402633 +436 22 2067384613 +339 172 2067271714 +366 14 2066808753 +373 32 2065629144 +376 164 2065409552 +357 92 2064467088 +359 213 2063891517 +363 217 2063529440 +386 35 2061253105 +365 80 2058195367 +496 152 2057195608 +492 56 2056950660 +347 191 2053508333 +352 115 2052901581 +459 89 2051333526 +362 92 2048328062 +257 186 2047490410 +311 198 2046071817 +486 64 2031921366 +433 114 2027312841 +278 52 2026574556 +376 107 2025274094 +458 77 2024936995 +363 52 2017404440 +441 53 2013376431 +284 65 2009439844 +413 167 2008137645 +413 201 2007148952 +431 99 2001207978 +269 13 1996592636 +336 125 1994723153 +345 123 1993361344 +275 66 1989601349 +310 191 1985198048 +393 33 1976930115 +334 146 1976178740 +352 139 1975559197 +281 240 1971567822 +470 35 1966441816 +333 26 1965115400 +446 157 1964022750 +276 113 1961215365 +498 57 1959413440 +270 77 1956977963 +474 172 1956634109 +307 94 1956585734 +364 56 1953693679 +285 224 1947525494 +394 174 1945423470 +321 49 1944440955 +495 13 1943640354 +385 14 1941795500 +390 151 1932103638 +354 36 1925001677 +361 178 1922501615 +355 83 1921617579 +492 239 1918711965 +433 84 1915784703 +479 245 1915716518 +400 69 1915299061 +404 118 1913496999 +453 196 1911682287 +414 81 1910003736 +390 156 1908600764 +343 13 1908411466 +485 111 1901755069 +437 7 1900882480 +499 46 1900806243 +408 215 1898413921 +444 206 1896919884 +355 101 1894018606 +374 163 1893320730 +291 127 1892810264 +284 224 1892483536 +466 81 1889468807 +437 43 1888732863 +328 5 1880676413 +487 53 1879507142 +259 76 1878954390 +435 119 1878324748 +487 227 1873432997 +385 63 1870083926 +308 120 1868159279 +445 72 1867647359 +301 200 1867203074 +437 139 1862944220 +378 250 1859399931 +493 235 1853593475 +316 67 1852458237 +340 8 1851840388 +361 247 1845136743 +357 63 1844992428 +330 244 1842427653 +391 184 1839345049 +286 126 1838958099 +410 30 1835574699 +330 160 1834830283 +473 158 1833158455 +294 32 1827111584 +353 53 1827000445 +335 38 1825897017 +313 106 1824864485 +498 6 1821075688 +358 125 1819627282 +396 58 1816261142 +457 56 1816248715 +406 93 1813413988 +371 124 1813315499 +383 217 1807511222 +345 17 1807347647 +334 225 1806183320 +491 74 1804013758 +254 11 1803119544 +481 212 1801653097 +272 118 1797584656 +318 38 1792409172 +364 77 1789946295 +418 122 1789722767 +372 108 1786173336 +499 238 1784112779 +353 192 1781908424 +318 176 1778735516 +405 248 1776703028 +295 120 1776211399 +385 54 1774817077 +291 188 1774275757 +272 29 1770723755 +293 205 1766843495 +438 51 1763724639 +315 146 1760659219 +400 27 1760419877 +427 33 1759127206 +361 83 1757275466 +414 141 1754682905 +471 170 1754104873 +360 170 1753600168 +303 123 1750281021 +324 5 1749698264 +416 185 1745823770 +372 50 1741009943 +360 198 1739817910 +448 226 1738795127 +267 200 1738658499 +300 161 1738307616 +318 22 1734925314 +260 118 1734687566 +306 178 1731266895 +469 21 1729532042 +269 247 1729129912 +291 4 1727864943 +452 246 1726093869 +460 5 1725240145 +380 52 1721956761 +471 138 1720893711 +480 170 1709942516 +498 144 1709699325 +437 93 1706804538 +343 218 1700282431 +393 61 1695389653 +310 190 1691956473 +351 157 1691802087 +289 32 1688379788 +360 149 1687033819 +470 36 1686503685 +433 155 1675233702 +381 206 1673605586 +456 223 1667209568 +495 125 1654574393 +330 65 1651661524 +338 46 1646840347 +418 190 1645420211 +437 65 1640706512 +336 142 1640612708 +270 33 1640133157 +405 50 1639986704 +432 125 1637306708 +251 185 1636970672 +344 2 1636914625 +472 232 1633620954 +338 226 1631778339 +444 20 1629678243 +416 174 1627525240 +448 65 1624999205 +338 213 1623856928 +268 17 1618939121 +337 52 1617378726 +339 195 1616512019 +371 157 1613424642 +427 16 1608662106 +310 73 1606426461 +339 30 1605975032 +498 132 1604877736 +281 225 1596435002 +263 199 1595253323 +388 212 1594874533 +340 161 1592630642 +349 46 1589714367 +498 31 1588284450 +303 165 1586345191 +265 83 1585356839 +310 215 1582158010 +341 237 1574402971 +376 88 1572017244 +437 149 1570085040 +401 170 1568463223 +392 213 1565258053 +433 10 1564512604 +452 119 1562833106 +436 56 1562378652 +331 130 1561516881 +455 31 1560417948 +430 247 1559385183 +377 117 1559304201 +478 115 1556541588 +393 126 1555543634 +285 51 1554668043 +251 118 1551968795 +410 151 1547523288 +397 57 1543147086 +269 185 1543039206 +475 172 1541360925 +336 118 1540941629 +337 120 1535419260 +442 98 1535153585 +309 111 1532781879 +308 246 1532461653 +251 142 1528489780 +263 239 1525398340 +283 201 1524898388 +382 33 1522600915 +269 26 1521174430 +395 33 1520348633 +433 36 1518651397 +358 6 1515053300 +329 154 1514623817 +394 9 1514135217 +481 229 1513216966 +448 149 1510797030 +341 10 1502845402 +498 25 1500309547 +311 199 1499106549 +440 63 1498271613 +333 103 1497939449 +256 237 1497715509 +294 232 1496954626 +254 169 1495153469 +341 225 1494946256 +470 100 1494105492 +356 102 1493830453 +473 29 1491747547 +484 53 1491419010 +401 152 1491281129 +256 23 1485804115 +448 126 1483306741 +496 4 1481940530 +252 99 1480524967 +260 119 1479923016 +484 82 1479376385 +336 101 1478086291 +347 18 1476482194 +374 26 1476091739 +270 185 1475604247 +359 142 1474057420 +376 249 1472134288 +320 19 1471649682 +357 96 1467246290 +314 171 1466765214 +280 39 1466677160 +347 178 1462339664 +377 148 1457877047 +289 44 1455987203 +258 42 1454898471 +495 36 1450610086 +291 34 1444484275 +432 69 1444473670 +393 241 1444465315 +407 200 1443376571 +431 249 1443049110 +384 190 1442804632 +330 53 1442141510 +412 215 1440682175 +252 97 1438014854 +390 173 1437785887 +271 49 1436535593 +389 187 1435008112 +345 144 1433473096 +382 169 1433131944 +442 16 1431865607 +272 36 1430130736 +493 247 1430056606 +478 4 1426052985 +463 34 1423664505 +445 215 1422020029 +396 207 1421076865 +409 136 1418596950 +358 66 1414187822 +465 160 1413994821 +417 143 1409710325 +483 84 1407136606 +323 94 1406578280 +480 133 1403196310 +391 182 1402011939 +395 226 1401297645 +475 179 1400145473 +462 158 1398096663 +399 16 1397466968 +280 248 1396511025 +448 135 1395549246 +436 201 1395360413 +494 93 1393844652 +352 224 1391814674 +301 162 1389417572 +338 217 1388512461 +284 167 1388186314 +373 65 1388032125 +379 129 1386378346 +456 204 1385137417 +490 18 1385072907 +369 103 1383693493 +381 70 1379373195 +408 50 1377889814 +423 127 1376053932 +412 125 1372261980 +334 172 1372082410 +271 59 1371805503 +454 157 1371786268 +376 244 1371387722 +457 239 1369643646 +295 209 1369499046 +429 202 1368553323 +260 91 1367694759 +296 177 1359696988 +273 228 1357879803 +268 64 1354300688 +369 133 1353109032 +490 95 1350712342 +452 189 1350534494 +446 23 1350067236 +384 76 1350011638 +498 207 1347211558 +383 233 1346879435 +425 131 1339225352 +467 182 1338961106 +374 70 1338682007 +338 161 1330965773 +303 109 1329968686 +353 30 1329050937 +484 195 1324082441 +276 125 1323750632 +282 24 1323597468 +363 122 1321151349 +422 31 1320211078 +452 116 1317495385 +406 245 1317202425 +428 154 1315421026 +267 49 1313818009 +302 236 1312465336 +431 179 1309622532 +272 4 1304990318 +416 157 1302556885 +405 147 1298806242 +431 177 1297466164 +474 154 1294464436 +351 89 1293157209 +393 111 1292132406 +314 72 1291862891 +442 186 1291813904 +486 44 1290996291 +275 23 1286636989 +369 158 1284545475 +463 146 1284375428 +342 203 1270310862 +500 237 1269541415 +479 221 1268692210 +380 216 1265284222 +480 66 1264024750 +340 103 1263664946 +431 155 1261120747 +413 156 1258279510 +373 117 1254560542 +425 188 1251835478 +374 122 1246729544 +363 56 1242290428 +255 171 1237268913 +373 67 1236358251 +343 68 1236105994 +398 185 1235297047 +465 239 1233879730 +263 74 1233775752 +290 119 1232986622 +481 168 1231651950 +392 40 1230954463 +452 128 1228262709 +295 196 1228260937 +426 233 1222304134 +278 125 1221348024 +378 181 1221037887 +393 67 1218638441 +411 168 1218629053 +402 16 1217225252 +391 129 1216876886 +275 173 1216368374 +288 27 1207537417 +312 221 1207176057 +466 172 1206363622 +258 123 1200708164 +303 185 1199494537 +483 117 1199283848 +390 145 1195912834 +265 248 1194354311 +289 206 1192326140 +443 119 1190183432 +441 82 1189151641 +307 215 1187896727 +319 11 1187312724 +450 3 1180622306 +363 227 1178819891 +457 123 1177889789 +432 158 1177402628 +288 228 1177348407 +366 97 1176176058 +423 1 1175489049 +326 106 1173888852 +402 49 1172969556 +399 5 1171970753 +327 73 1171792722 +457 84 1170269757 +444 8 1169774783 +332 50 1166665194 +420 117 1165694199 +411 164 1165356636 +464 207 1164975932 +393 249 1163406303 +423 83 1159560232 +462 74 1159132185 +427 18 1158434862 +352 206 1153295600 +338 233 1147439139 +367 29 1145813683 +450 149 1145376354 +309 150 1144982332 +313 90 1143689556 +319 201 1143426588 +500 155 1142720700 +455 12 1141663809 +272 123 1137064630 +269 25 1130973188 +437 239 1130429239 +378 160 1129413431 +427 224 1125836153 +383 71 1125330206 +479 146 1120657540 +260 178 1118661525 +402 245 1117571049 +440 183 1116821182 +464 103 1116455315 +471 114 1110407867 +384 139 1108594194 +460 30 1108079476 +402 194 1107740620 +469 204 1105545997 +256 137 1105473949 +459 216 1105435431 +395 205 1104187709 +350 98 1104024685 +480 85 1091972454 +328 205 1087935465 +500 195 1086013980 +306 148 1085236192 +428 153 1083625590 +500 189 1077842592 +469 31 1075402655 +322 207 1073381598 +289 221 1073308567 +427 153 1071842678 +363 142 1070757641 +438 38 1069128868 +491 181 1068452015 +279 36 1067201938 +370 41 1065527928 +386 72 1059448897 +362 16 1057273998 +413 91 1056891089 +271 56 1056352189 +434 178 1046538611 +320 21 1042771469 +486 56 1041667818 +313 166 1037349378 +330 213 1031607121 +482 99 1029559480 +484 166 1024809292 +350 179 1022209503 +276 59 1019409379 +483 171 1016706667 +483 207 1015827732 +294 26 1014021819 +337 107 1013572733 +499 205 1008207020 +359 145 1007732477 +329 211 1005035021 +370 238 1003923588 +401 167 1003733154 +401 166 1003359029 +489 228 996552859 +343 5 991674140 +310 51 989365400 +281 200 989153800 +297 166 985270435 +424 185 980400036 +354 76 977441862 +335 222 973682702 +301 62 972824689 +415 98 972321375 +292 21 972263259 +409 208 968358831 +497 192 964328634 +345 147 959466095 +468 126 957110681 +284 76 954981603 +362 66 948298202 +360 180 947919034 +479 113 946624009 +462 140 945923922 +285 185 940733824 +496 114 940102506 +361 186 937221025 +278 7 935908494 +337 8 928713815 +274 36 924918297 +252 190 924709242 +455 167 918802165 +457 2 917296253 +349 193 915768032 +275 38 915257469 +343 58 914117322 +410 177 913959662 +437 64 911281994 +416 107 911030919 +259 189 910811124 +498 70 905276497 +421 167 900257617 +256 130 896967459 +457 139 894258169 +305 147 893295018 +459 52 890791380 +421 69 885779037 +325 8 882438151 +332 35 881033996 +428 137 880463364 +358 146 877773989 +255 190 876772015 +301 226 875642421 +449 190 875073348 +437 69 874500484 +255 75 874410715 +437 54 872090237 +356 120 870648495 +282 210 866924643 +456 46 866091505 +463 60 864900011 +402 228 859327508 +463 178 856882614 +359 1 856809942 +430 101 850624250 +480 192 847855621 +370 164 847327235 +318 48 846055743 +436 190 845723946 +328 120 840263964 +319 90 838275159 +333 71 838110778 +500 79 836729066 +314 68 835564041 +399 153 831913181 +483 191 825488223 +302 56 823756266 +476 186 823607019 +356 10 823578325 +284 74 823511812 +477 236 823454097 +472 201 815259543 +277 165 812087694 +463 69 810664203 +282 208 809613081 +254 73 809571876 +466 115 809022452 +349 29 802504551 +298 10 798900597 +256 172 797369290 +412 74 797214420 +499 52 796065535 +468 201 795612278 +486 248 789860568 +466 154 789000108 +360 6 785056280 +280 142 784286977 +369 125 782418992 +282 33 782274079 +294 4 774012132 +356 51 766626510 +363 96 762272889 +263 236 758575761 +253 195 753741728 +423 172 750802750 +325 190 749123543 +450 97 748046048 +380 113 739146784 +413 11 739043269 +409 209 733711054 +446 82 732258059 +429 204 731796872 +297 132 729046480 +269 105 725158114 +280 186 724728973 +305 148 723808887 +307 220 723695942 +272 42 723396716 +436 106 720723965 +294 156 718963645 +419 112 711554562 +454 223 711429373 +323 233 709692552 +292 44 708074545 +394 94 707708979 +404 160 707577808 +400 192 707310594 +383 81 705328900 +358 72 701291478 +392 116 699443600 +435 21 699113317 +393 154 697326796 +275 213 696162665 +392 76 693412247 +296 213 692708695 +404 198 691640662 +366 61 684501097 +480 70 682451125 +494 172 681264517 +387 130 679398603 +283 22 678110971 +280 214 670746723 +471 83 665896964 +322 115 665834373 +432 96 663758609 +393 206 661353809 +252 83 659994323 +292 165 659811110 +481 85 659561419 +497 134 655363623 +412 159 649907753 +282 97 645720616 +446 25 643729832 +336 111 640560366 +433 112 639167205 +358 19 637945640 +308 1 637213155 +367 98 636958925 +378 193 634716278 +464 237 634134606 +306 189 633408613 +294 240 632551845 +334 226 631335329 +407 220 626591794 +429 149 619605769 +450 227 618634310 +435 109 618135273 +322 193 610343016 +343 149 605472854 +341 65 603675945 +475 123 601973877 +257 8 596188295 +441 86 590934977 +343 31 587856705 +395 215 587112614 +438 3 586748790 +371 240 583167080 +295 141 582005195 +288 125 576933912 +308 247 574186391 +460 135 573121346 +287 100 572965395 +279 151 572653511 +308 34 569721875 +478 203 568155396 +298 45 563711216 +274 7 559882367 +393 247 557853784 +417 98 552072550 +403 235 550047440 +286 187 549502930 +313 72 549110374 +387 132 547677331 +382 224 545777771 +408 172 545555885 +305 154 543155310 +481 240 542555533 +338 3 533569373 +329 119 533176064 +479 247 532964359 +254 222 531775410 +451 244 531345653 +289 88 531219773 +310 206 515942592 +255 132 512020878 +256 227 511959577 +285 97 509729061 +428 183 509276711 +493 110 504916294 +278 92 503674124 +385 238 498728718 +258 138 498484401 +360 221 498375102 +379 196 497528559 +271 243 496117661 +278 122 495544744 +363 219 495022499 +324 111 494986203 +454 189 494501592 +367 151 494487365 +374 218 493481664 +336 113 489942532 +278 145 488889843 +271 25 488461896 +414 194 486757118 +464 177 485262691 +426 3 484556969 +260 94 480740687 +476 195 476923968 +444 96 476758789 +499 197 474088783 +268 199 472639306 +395 41 472625705 +398 248 470633291 +311 26 467750625 +419 82 463703610 +442 249 463205611 +378 82 461211596 +312 5 456008201 +283 7 455319172 +467 62 449241987 +334 95 447422442 +346 5 445443914 +320 137 444333196 +286 164 443575031 +357 159 431286716 +456 22 429678929 +434 62 428787963 +333 146 428657726 +454 118 428561407 +472 196 425416783 +396 236 424396603 +478 225 423665711 +293 11 422639971 +421 53 416925832 +382 100 416665316 +431 205 415499940 +408 63 412995334 +348 200 410757169 +482 109 408554548 +431 144 405561921 +288 163 401612484 +397 38 400609473 +335 108 399814822 +438 194 398582729 +406 146 398039913 +463 131 397826923 +497 204 395243320 +491 111 394217163 +333 104 390820752 +400 59 390745407 +380 43 389670789 +299 49 384334445 +269 48 377469788 +494 76 375201930 +381 72 372591818 +346 88 369101986 +261 235 364858400 +466 194 364459079 +495 56 363366900 +253 186 362204759 +433 18 361479922 +481 105 358594223 +415 139 356227799 +257 130 354246167 +465 1 350514754 +389 60 347636643 +399 22 345808923 +457 169 344167091 +334 176 331798909 +278 53 328268171 +466 95 328258286 +473 104 327568787 +360 160 326304304 +260 15 323959441 +338 157 322603145 +465 201 321708551 +271 233 321296762 +336 4 320336820 +384 173 319175025 +379 236 317437167 +352 38 317159916 +272 130 316572305 +279 201 316128396 +455 238 314512504 +423 233 313308720 +281 96 312596040 +497 170 309759484 +416 127 307424278 +426 151 306710211 +346 177 306614653 +407 35 306253962 +455 71 301229690 +325 6 299155855 +343 233 298554402 +415 34 298113314 +491 152 297782820 +299 20 296935241 +406 200 294944927 +330 92 293546916 +476 128 290327686 +358 207 289018419 +265 138 287018581 +487 169 283814325 +488 156 283538487 +299 200 283008312 +398 227 282614114 +263 40 281523624 +351 79 275197923 +440 210 274129488 +376 222 272735920 +333 37 270087122 +412 202 266850656 +460 122 265300560 +458 161 264059059 +408 218 262459806 +253 205 262357804 +390 183 258942841 +481 34 256612638 +318 10 255387889 +461 54 254066639 +339 109 253432865 +466 1 251148978 +297 155 245608933 +492 206 244676950 +419 187 242817161 +367 248 241807764 +357 33 241568416 +471 241 240506283 +357 189 239927758 +336 211 239338630 +299 141 238741588 +492 124 237616225 +347 8 234665883 +274 23 233481368 +408 41 233294156 +377 96 231874733 +253 164 231269585 +423 174 230389145 +343 150 229964773 +386 247 229720017 +415 200 227402865 +426 45 226916078 +265 124 222928275 +251 72 218146130 +419 231 217984836 +426 187 217804198 +414 94 217125287 +346 82 216295180 +365 74 213775313 +382 110 213559254 +319 148 209006565 +410 42 205838821 +440 10 204756726 +392 115 203690083 +252 211 203655672 +452 24 199721593 +364 227 192490467 +365 102 190848333 +386 4 189117283 +340 149 184772810 +434 182 183306077 +494 228 181550555 +328 176 174769577 +419 123 173868641 +454 84 173083258 +460 87 169135831 +384 34 168507850 +253 29 158993017 +332 210 155508848 +487 58 141055505 +488 15 140545728 +361 49 138512448 +354 115 138259249 +302 118 137071864 +434 78 135973416 +381 74 134499551 +491 159 134055261 +406 76 133998650 +288 242 133190996 +359 228 133046866 +261 108 133020438 +449 228 131278909 +327 223 128683432 +273 48 124463454 +315 79 123521409 +489 43 122308748 +350 111 117445100 +283 203 114777240 +252 92 109619507 +460 243 107201941 +494 156 103708364 +392 140 102689208 +428 15 100979172 +439 129 100766619 +284 101 99286746 +492 219 99126150 +373 96 98664860 +397 149 97403090 +270 236 95747791 +271 111 91575776 +299 210 91565295 +351 197 83466632 +253 21 77177634 +337 230 74746295 +299 47 73619555 +376 41 64864453 +466 19 63379029 +457 138 62400944 +491 86 62050090 +337 223 62038245 +349 75 61248809 +393 190 61214682 +496 106 58535510 +385 12 57640324 +321 79 57111515 +401 231 52986238 +306 20 52661640 +254 168 49507690 +372 188 46422627 +486 237 45639798 +350 15 45535424 +276 107 40086212 +339 199 37350011 +337 211 37278040 +386 117 35029945 +325 72 34887245 +285 248 34856331 +318 84 34250138 +353 199 28979530 +430 120 28886101 +427 48 27964255 +458 129 25737036 +432 98 23310706 +316 161 23223500 +472 48 21785157 +299 101 17885600 +420 46 16100508 +320 85 12921670 +307 194 7878369 +368 13 3439237 +455 199 1392970 +332 58 320909 diff --git a/data/random_weighted_bipartite2.mtx b/data/random_weighted_bipartite2.mtx new file mode 100644 index 0000000000..498075871d --- /dev/null +++ b/data/random_weighted_bipartite2.mtx @@ -0,0 +1,742 @@ +%%MatrixMarket matrix coordinate integer symmetric +%%GraphBLAS type uint32_t +300 300 739 +178 104 4289980114 +227 19 4268645152 +218 109 4266232465 +213 94 4261875276 +198 117 4256694225 +234 39 4249894488 +253 101 4248670720 +155 89 4247210137 +231 115 4245793303 +299 88 4245051624 +224 80 4229561465 +274 7 4224624870 +212 81 4221243891 +283 68 4213602344 +243 74 4213225533 +189 112 4208832530 +277 110 4207330727 +184 78 4204621473 +171 74 4200341407 +170 19 4198938838 +162 134 4195811143 +248 10 4188176644 +197 119 4181733125 +238 81 4180641254 +235 52 4172845586 +209 85 4167606376 +189 40 4159734834 +290 2 4155584828 +224 45 4150528223 +273 131 4141186807 +152 143 4132968782 +260 13 4104314169 +252 120 4101302473 +158 5 4097170244 +152 70 4095049700 +169 56 4091066678 +202 75 4089941704 +264 146 4078272741 +182 100 4077650297 +242 33 4072434288 +255 45 4071701986 +277 76 4070985168 +168 69 4060075449 +201 27 4048075280 +283 142 4034124648 +211 70 4027170097 +184 49 4026440666 +166 106 4025490586 +246 42 4023285796 +239 57 4016665005 +169 45 3997046665 +231 7 3994195364 +247 121 3991738266 +282 60 3988822142 +277 118 3987922797 +198 11 3986932697 +183 55 3976609736 +268 22 3974656862 +236 10 3973335544 +266 106 3971569518 +183 3 3965521831 +290 43 3959938319 +297 19 3959157510 +225 131 3954339063 +190 107 3950545391 +205 119 3949716213 +186 66 3946198150 +237 133 3942500450 +198 36 3924098604 +159 146 3915949696 +218 130 3902186089 +153 28 3891767502 +200 73 3887703436 +216 18 3877125071 +267 117 3874142803 +295 5 3872961228 +168 130 3863953449 +251 35 3862851864 +181 76 3856610106 +276 120 3851354803 +231 73 3846406601 +198 106 3846346941 +176 26 3834917903 +272 124 3824720485 +191 110 3820402207 +171 78 3805654782 +175 124 3804638320 +155 118 3803003989 +167 113 3787649265 +287 95 3785059470 +208 127 3784816725 +152 59 3783713823 +176 14 3778577136 +151 128 3771390080 +275 60 3769143338 +287 107 3762913434 +300 49 3757785289 +283 21 3752570952 +167 94 3743321424 +293 145 3724095656 +171 102 3723382968 +217 140 3720977577 +155 147 3720941745 +262 56 3718069240 +177 118 3708135808 +153 98 3707376079 +228 12 3695538541 +255 52 3695461137 +161 62 3687832672 +236 98 3682736640 +229 104 3667777074 +243 147 3663939840 +236 119 3651241019 +231 41 3640562771 +160 1 3626861254 +262 103 3618205579 +229 102 3613077448 +240 35 3611325907 +285 104 3607818142 +178 133 3599040461 +289 28 3595337717 +245 85 3595028783 +294 122 3584965759 +203 91 3583223423 +228 120 3567760558 +223 104 3564280347 +289 4 3561730758 +249 50 3559890090 +200 34 3556484573 +300 11 3555959834 +235 71 3553459699 +161 50 3546286434 +228 138 3537587747 +168 133 3535162859 +266 48 3524790221 +237 40 3523196529 +290 73 3520247278 +257 112 3512942407 +248 79 3507425969 +179 131 3506232241 +227 87 3495222896 +208 81 3493936397 +234 30 3486112208 +255 3 3477954237 +243 60 3477782376 +257 32 3456478177 +240 54 3455214515 +217 100 3447723741 +228 49 3444047809 +195 76 3435812955 +204 37 3429659685 +297 98 3427479016 +194 33 3424631122 +294 143 3418226469 +262 99 3415430259 +184 111 3412907855 +160 126 3411233243 +233 70 3411041056 +222 10 3410521451 +216 123 3410300700 +156 35 3409314206 +261 93 3407523894 +219 99 3395477171 +184 55 3393011956 +167 2 3386776618 +178 121 3385233801 +169 59 3378914836 +270 69 3374544900 +232 134 3372898877 +169 54 3370556032 +199 47 3370522516 +228 69 3364925011 +289 110 3362677706 +154 55 3361501906 +187 139 3360317762 +196 138 3359382768 +190 27 3355169442 +263 38 3354653563 +250 117 3340707972 +233 100 3339818697 +299 117 3329529582 +172 113 3324510699 +290 130 3318530589 +193 23 3316155719 +217 132 3311387091 +157 128 3287634449 +178 127 3278099470 +179 54 3254611029 +235 28 3253110275 +161 109 3247674144 +281 99 3245291630 +269 103 3243842275 +210 58 3233483693 +196 97 3230786503 +238 7 3223132096 +153 84 3219016669 +174 96 3202210965 +288 15 3200927472 +245 125 3195055259 +294 75 3189461045 +300 130 3188684598 +254 147 3183340195 +266 65 3179346752 +222 43 3175582665 +266 17 3175263068 +294 81 3175082870 +284 89 3161452445 +291 34 3155441177 +279 129 3153128615 +286 87 3142729639 +168 149 3138085818 +254 49 3135104888 +258 138 3132066330 +168 22 3127070845 +209 13 3109704214 +158 46 3102913293 +235 147 3090787768 +205 135 3088251472 +245 57 3086749593 +284 68 3065444362 +204 48 3064339261 +174 12 3050650686 +199 43 3050244313 +194 88 3046823786 +266 74 3045668016 +276 104 3036370514 +198 19 3035641737 +206 103 3022414809 +248 149 3017897106 +264 144 3015751640 +211 52 3004858157 +286 86 3003453191 +270 109 2988756268 +228 50 2988074555 +193 128 2978246041 +180 64 2973492043 +213 17 2971153162 +164 48 2966132659 +172 137 2942707809 +155 38 2933522234 +196 140 2933292741 +247 35 2925270347 +264 70 2916855713 +181 97 2913999257 +161 44 2907607812 +163 144 2877019487 +158 31 2876156231 +220 40 2874787766 +284 88 2866494014 +174 46 2863686723 +213 62 2854857514 +186 44 2854826633 +222 17 2854017874 +223 30 2851652443 +184 104 2839454779 +251 50 2838787506 +188 5 2838643516 +162 14 2836063293 +252 123 2828280082 +251 37 2826933258 +284 71 2826568415 +279 116 2819921880 +277 2 2794393832 +188 7 2792385935 +187 91 2787182429 +269 114 2783820899 +165 141 2775566921 +185 131 2772158234 +202 10 2769721414 +175 12 2769630044 +161 51 2765968312 +175 98 2756864484 +288 136 2756434394 +201 109 2742093783 +162 4 2740767977 +154 135 2733161833 +272 59 2729778035 +151 136 2718825312 +244 118 2717909453 +296 66 2713952210 +270 7 2706364831 +157 86 2704839051 +299 72 2696947982 +159 128 2693400126 +204 15 2690177642 +198 130 2680726923 +255 69 2680179479 +254 40 2679306078 +179 43 2676603597 +211 143 2675825631 +203 89 2672563045 +295 92 2669182967 +166 128 2668124339 +247 23 2666420550 +248 65 2663180050 +277 124 2660319195 +198 75 2656157675 +223 119 2646228353 +242 99 2642544748 +190 10 2632945558 +151 80 2632254839 +276 58 2630407326 +276 77 2627984086 +213 36 2620362014 +254 27 2609793730 +273 80 2609212836 +223 42 2603335476 +207 38 2601309898 +221 146 2596293655 +198 10 2594865296 +191 111 2592510026 +249 146 2582991483 +259 117 2573236462 +214 115 2571203190 +300 58 2556120975 +196 117 2554113817 +292 77 2552709022 +259 118 2546021846 +261 67 2544561890 +196 129 2542001018 +160 138 2535153807 +246 109 2530664490 +260 79 2522979823 +171 86 2515757870 +155 6 2511915384 +208 31 2505877174 +237 75 2504461747 +292 53 2503131367 +231 12 2494803321 +163 77 2490928562 +267 70 2459720389 +283 9 2456022600 +237 10 2452398906 +235 103 2445825775 +207 68 2444332803 +153 106 2439679696 +263 4 2438464096 +189 101 2431990895 +170 57 2423269350 +286 127 2421708025 +221 89 2415921262 +212 27 2405582918 +295 29 2402264982 +155 34 2395893163 +252 41 2376202663 +240 92 2364292137 +292 84 2363095318 +238 95 2361991582 +165 112 2358243223 +212 85 2341199491 +234 75 2333370730 +253 47 2325397452 +290 117 2314528195 +243 96 2309543146 +227 10 2305511155 +300 51 2302921611 +186 12 2287738079 +268 18 2280442515 +250 125 2279685733 +273 36 2268678645 +163 92 2267982270 +227 134 2262784096 +243 94 2257431636 +252 45 2257293853 +292 140 2256143759 +181 44 2254232557 +257 149 2242836152 +298 129 2222264390 +262 85 2219633090 +154 36 2216100299 +290 105 2216061142 +299 14 2211701682 +287 102 2209903315 +182 72 2206888833 +240 27 2206175829 +170 4 2200210020 +174 39 2196584555 +219 140 2194012330 +234 6 2186355802 +157 33 2184399292 +183 42 2172340956 +156 93 2170331154 +171 123 2165278571 +200 76 2152449403 +214 92 2148880642 +271 124 2148425123 +192 137 2139143662 +300 67 2138813260 +277 95 2138747322 +295 132 2137439686 +271 85 2132462304 +245 29 2114125304 +231 10 2113822419 +182 122 2113108970 +280 59 2093034889 +271 12 2087120939 +225 13 2082963971 +268 82 2079367358 +235 32 2075602638 +211 123 2074395289 +300 21 2065173585 +198 12 2062884678 +240 19 2046972007 +173 66 2038208323 +250 32 2037286508 +163 134 2019075683 +241 81 2012927924 +250 147 2009435201 +173 134 2009227086 +219 135 2007026725 +237 11 2003600474 +242 119 2003166257 +200 123 1995814945 +173 48 1988782568 +295 20 1982381830 +205 102 1962972056 +258 119 1953372138 +154 101 1951894048 +183 81 1948221660 +206 127 1944921048 +273 128 1944700327 +198 126 1921675480 +155 11 1919480643 +180 11 1906597772 +246 15 1882438060 +266 126 1877748638 +152 63 1877693179 +194 114 1875900546 +259 126 1868881194 +274 24 1852389610 +195 91 1848982312 +238 39 1838015372 +162 35 1830091260 +273 53 1827929118 +227 91 1826478705 +172 124 1826286460 +281 62 1817094254 +230 85 1775603807 +252 19 1775426678 +252 133 1773501855 +205 91 1773122888 +291 80 1769005833 +243 40 1740812935 +272 78 1730952597 +265 10 1724992508 +240 127 1714808048 +296 74 1714460972 +295 144 1713244876 +293 88 1707295603 +240 5 1699737668 +198 122 1698556748 +246 18 1694865923 +248 38 1690493489 +161 124 1681152640 +275 111 1668851105 +177 14 1662336374 +298 36 1658214127 +153 39 1656412549 +242 141 1655348712 +235 39 1647222321 +167 112 1642868879 +245 40 1642118937 +204 7 1641713046 +284 43 1639794509 +234 147 1639721431 +249 107 1625900023 +156 21 1618522268 +174 70 1614134563 +155 39 1608812282 +251 145 1597768749 +275 6 1596801494 +163 9 1588305782 +276 117 1587714415 +239 134 1578108575 +163 73 1570703938 +245 129 1558638667 +247 70 1549742893 +209 40 1543265610 +246 50 1533453772 +185 115 1519055282 +279 46 1508598044 +293 72 1502265080 +196 130 1491667964 +300 91 1489778786 +152 44 1487367633 +286 29 1481673328 +262 46 1477673847 +220 10 1464805604 +268 8 1460638293 +171 94 1457102554 +253 108 1455350256 +161 123 1447719515 +183 65 1436166032 +220 5 1407168802 +154 118 1406259645 +154 7 1397177107 +162 121 1396054504 +228 20 1393232506 +154 77 1381480750 +277 141 1380745496 +215 31 1374434238 +255 19 1370749290 +207 99 1370578227 +263 37 1366045477 +271 143 1350445616 +211 42 1349144318 +222 98 1347210726 +169 105 1333965980 +159 73 1329745939 +281 14 1329302201 +180 68 1329154662 +173 33 1316936492 +218 90 1314733334 +269 48 1298844355 +266 99 1293220409 +193 66 1289364779 +181 29 1288134456 +196 79 1287036723 +215 26 1265214647 +187 93 1264880839 +249 94 1253688827 +173 140 1246647854 +176 21 1238578722 +206 72 1237326679 +210 37 1235904016 +251 71 1235083398 +180 118 1225998865 +275 44 1221635292 +174 105 1217015539 +206 144 1213107932 +266 43 1211317526 +214 134 1207424376 +180 19 1200815880 +197 83 1180967007 +182 136 1175666943 +229 25 1170993698 +250 4 1169712980 +172 65 1154518746 +228 113 1149096191 +271 18 1147932700 +200 100 1137046904 +223 134 1134746386 +183 61 1131943258 +167 33 1130103589 +191 7 1116826174 +260 25 1114298462 +160 15 1111295889 +163 1 1109432440 +250 34 1108601531 +191 122 1098614823 +240 99 1098341058 +235 138 1095370950 +252 88 1095100931 +207 139 1087273846 +205 16 1078454409 +297 78 1076738160 +272 66 1072469100 +253 121 1068818909 +200 10 1065319574 +256 96 1064819257 +197 113 1064462520 +253 8 1062225349 +251 12 1058635801 +165 123 1050324216 +204 121 1030921794 +243 8 1026312535 +299 74 1023355116 +300 53 1019634568 +222 58 1018557689 +202 44 1018020271 +208 146 1017480718 +297 103 1007645924 +207 61 997272259 +298 138 972097009 +265 117 970272401 +211 94 961428823 +267 13 961389055 +297 83 944749341 +269 24 937295553 +261 20 906596279 +185 85 906132716 +159 132 901411608 +277 65 901353185 +293 107 897131260 +259 110 894220821 +178 72 887653062 +294 149 867437639 +236 33 862705874 +233 34 847181234 +192 127 842074577 +224 116 823140226 +177 100 822232394 +191 27 822136389 +208 91 816432277 +203 41 810810588 +300 72 806936715 +194 47 806413460 +171 31 799033282 +285 17 792152390 +241 36 786339147 +193 45 778737941 +282 129 771131336 +261 110 768351161 +248 19 763260055 +217 35 762753462 +200 24 761080657 +202 20 756858642 +157 56 753778146 +296 76 751449351 +163 102 749915843 +170 68 745766478 +157 107 742359106 +213 86 739189777 +263 3 734473004 +155 20 731953446 +267 74 718109904 +273 101 716341055 +201 139 713150299 +181 86 713085385 +278 92 708815478 +201 113 695616488 +221 25 695383869 +193 136 687730016 +204 35 660011644 +166 64 651662583 +244 9 645617882 +178 130 608637376 +214 5 605359332 +287 79 603339582 +288 28 596791483 +271 136 594456518 +246 70 593114378 +244 139 587074213 +265 76 585688357 +237 37 585481679 +207 82 567386389 +282 73 566967024 +154 79 555735973 +174 81 554809907 +239 1 548816054 +280 14 547368114 +238 45 546932099 +161 126 542051987 +238 148 541938716 +194 4 541125594 +247 67 536772177 +175 20 526669963 +155 91 524672941 +276 145 523861731 +195 40 516703527 +183 50 508232208 +208 104 495027744 +292 2 484692938 +257 53 478233564 +266 40 469918040 +270 78 468452927 +158 142 466973066 +162 84 463956496 +279 149 454167894 +287 52 448051276 +285 64 444404750 +176 92 437089799 +207 40 433680500 +185 103 428814893 +260 66 424804345 +227 3 415724062 +273 126 412200550 +219 75 411017803 +216 36 377868799 +296 70 372069217 +173 9 371167189 +181 37 362293852 +214 99 361984746 +264 130 354352422 +199 94 339086181 +178 99 330495145 +172 46 329786038 +201 125 326193816 +256 143 318631289 +265 78 314568083 +300 89 311578162 +220 125 303834726 +282 33 302211218 +166 148 292492361 +159 112 284584597 +204 58 280666872 +245 24 276995620 +184 139 273675626 +275 145 266991972 +158 28 262792042 +168 53 258743395 +256 15 256346220 +222 111 232477243 +251 150 228872123 +155 81 225568197 +290 97 225137527 +254 143 218210918 +181 119 212970419 +239 69 207281913 +251 47 206301834 +212 21 204928820 +210 62 203840026 +178 140 198723287 +181 1 186319447 +161 13 181683130 +262 143 178602088 +199 83 171908714 +194 137 166954699 +201 133 162954400 +198 116 162790570 +201 18 152430194 +281 111 149558182 +287 116 147550519 +259 147 142564362 +295 49 136136600 +151 21 136016596 +265 2 111990678 +281 69 109656265 +296 23 97401591 +212 47 96397118 +264 16 91060254 +295 123 90114209 +195 63 82327361 +179 74 79566988 +224 35 77365501 +168 34 69487361 +199 80 67585148 +209 70 64826518 +277 140 54213234 +289 12 49579816 +220 133 49322219 +270 128 45812166 +297 13 44978137 +259 65 38122315 +232 50 37291942 +166 103 29618708 +249 99 14485101 +183 76 5825875 +177 133 2252753 diff --git a/data/random_weighted_general1.mtx b/data/random_weighted_general1.mtx new file mode 100644 index 0000000000..ac3b98e8ef --- /dev/null +++ b/data/random_weighted_general1.mtx @@ -0,0 +1,1982 @@ +%%MatrixMarket matrix coordinate integer symmetric +%%GraphBLAS type uint32_t +500 500 1979 +67 28 4294637803 +367 24 4294078317 +433 332 4291697088 +116 29 4288987990 +479 56 4288535034 +476 474 4287790034 +470 311 4285078648 +131 41 4284847599 +443 76 4283724995 +417 250 4281401154 +443 256 4280660828 +167 29 4278639019 +362 231 4275497757 +407 392 4270432429 +382 348 4264536137 +489 217 4256897450 +262 27 4256459585 +320 88 4256399102 +485 424 4253458256 +243 10 4250290558 +473 297 4249941075 +171 160 4246981242 +491 47 4245448783 +463 31 4243125789 +498 193 4242953792 +420 39 4241490858 +476 274 4241030707 +410 393 4240593626 +264 197 4237488771 +495 165 4235892792 +487 52 4223993880 +415 306 4222847654 +326 250 4222230878 +393 29 4218280764 +233 222 4216853760 +458 105 4215840533 +265 236 4214512832 +367 155 4214394883 +486 396 4210862529 +454 35 4210836887 +249 198 4209381118 +375 190 4204479880 +308 95 4204470773 +381 339 4203298798 +444 107 4202121974 +437 69 4197964334 +409 6 4195001191 +318 15 4194479068 +142 89 4193225687 +465 423 4193180557 +143 140 4192937079 +495 306 4192381119 +293 48 4167831061 +442 205 4165656559 +419 340 4164295739 +474 284 4162832532 +429 179 4162417519 +185 172 4159238156 +279 120 4157285133 +225 101 4156372156 +328 95 4155932237 +334 270 4152421214 +478 442 4152415869 +417 182 4151448974 +109 106 4151399015 +426 173 4150772283 +420 42 4150195061 +480 116 4149102672 +351 183 4148178313 +401 32 4147800173 +84 18 4147395482 +368 274 4141042918 +365 39 4137447871 +357 24 4135921129 +339 284 4131197596 +166 7 4130731612 +238 122 4121164226 +158 39 4120292548 +414 113 4119709003 +409 69 4118226325 +446 62 4117579205 +385 301 4112778987 +356 221 4111548506 +499 286 4111126104 +124 87 4108854759 +10 8 4106745879 +371 20 4103026054 +254 176 4102966270 +487 109 4099467958 +125 39 4099265025 +469 396 4098307125 +249 155 4094035014 +419 77 4093791552 +500 162 4091456642 +213 36 4085676098 +306 214 4085009134 +468 406 4081610773 +394 305 4079506233 +491 117 4071616299 +425 40 4065136916 +453 405 4064843651 +190 24 4063343251 +487 363 4055983578 +366 70 4053389821 +345 18 4047130571 +162 8 4044826829 +262 140 4043843574 +253 199 4043375281 +196 160 4042827900 +431 240 4042781671 +426 228 4041202930 +347 266 4040066372 +171 81 4038346379 +258 33 4037032408 +386 213 4034698170 +208 10 4029204938 +448 301 4024223887 +354 327 4023209159 +81 31 4022046275 +496 366 4019223745 +500 78 4018467934 +370 191 4016497012 +377 229 4015192805 +222 147 4015000018 +370 340 4012131670 +250 197 3999809365 +386 263 3997076161 +421 120 3996559653 +321 30 3994586594 +186 88 3994354958 +192 85 3991684993 +269 50 3991675766 +384 307 3990716499 +341 283 3990398380 +298 62 3989946033 +352 90 3988167198 +148 136 3983841659 +472 247 3980729392 +243 4 3976356674 +210 85 3975596950 +174 128 3973223747 +428 394 3972527816 +310 91 3971316827 +231 81 3969655204 +262 165 3965568852 +337 195 3962564655 +153 5 3961924071 +414 404 3961853535 +307 51 3958993872 +395 188 3953901806 +98 80 3951161463 +336 186 3948243793 +209 7 3942011418 +371 276 3940229917 +171 121 3935785410 +450 412 3931116635 +461 365 3929051607 +249 231 3928895839 +315 77 3928292952 +487 240 3926185378 +381 207 3921300007 +489 240 3920398590 +190 25 3917617855 +488 134 3916120145 +286 261 3911572568 +247 132 3906172176 +289 208 3902773029 +340 33 3902327767 +499 462 3902159297 +345 250 3900976646 +486 458 3896627928 +242 121 3895521027 +264 187 3894823383 +430 405 3893694139 +491 388 3890048346 +252 173 3886856540 +263 95 3885252101 +445 177 3884298804 +372 36 3883246643 +304 114 3883037219 +205 24 3878857757 +270 114 3877705389 +104 92 3874148126 +458 143 3873749630 +431 332 3871818088 +480 414 3870634645 +342 88 3870480541 +311 165 3863126669 +444 335 3861727792 +354 47 3861593868 +334 135 3860558799 +305 8 3859750960 +437 38 3859338909 +219 40 3855521722 +369 339 3853851831 +187 169 3851436189 +231 50 3846819233 +312 63 3844915298 +408 147 3843727787 +299 72 3841171282 +421 351 3833353807 +166 57 3833342549 +458 355 3830270487 +182 146 3828989771 +315 5 3828559391 +91 21 3828166815 +356 185 3822039390 +434 117 3821500030 +139 43 3817227286 +481 212 3814389375 +367 227 3812372360 +418 292 3811125358 +348 328 3810801918 +431 295 3809465852 +413 122 3809156291 +434 415 3808261718 +341 318 3807767229 +464 98 3801079723 +367 136 3797726082 +293 39 3791907212 +372 63 3790879186 +289 5 3789070477 +370 285 3787194905 +72 9 3786712663 +272 26 3781971053 +137 43 3781012085 +309 175 3779458178 +402 173 3777750984 +453 243 3774976164 +278 187 3772028818 +345 281 3770846563 +385 26 3769588001 +259 154 3769540674 +363 136 3764425886 +284 64 3764082970 +327 218 3762203949 +386 204 3761851195 +345 337 3761166505 +303 77 3759478551 +491 181 3759208729 +471 326 3758926222 +259 58 3758198803 +239 142 3753115717 +333 265 3753105007 +257 9 3750202960 +453 119 3737776095 +486 357 3736933500 +95 67 3736114681 +282 238 3730340331 +427 168 3729239394 +395 352 3728981191 +189 74 3728297837 +392 227 3727336806 +491 339 3725449129 +436 184 3723740278 +412 322 3720333853 +166 99 3718557847 +261 121 3716430152 +373 273 3713849703 +319 17 3710420374 +134 24 3708603809 +354 335 3702240997 +452 325 3699142775 +426 142 3698086173 +227 133 3696718473 +262 72 3691605374 +418 76 3689391598 +173 155 3687867771 +459 37 3687856962 +166 101 3686584680 +464 235 3680131635 +409 341 3668972593 +340 68 3667810513 +35 25 3661100365 +324 223 3659705030 +478 251 3658967381 +278 76 3656728963 +357 176 3656203481 +429 354 3651555448 +79 57 3649010043 +301 213 3648602642 +478 411 3643316679 +459 283 3640665686 +461 414 3640303824 +445 376 3639609942 +414 231 3639442459 +215 51 3636841541 +324 168 3634455218 +337 309 3629070720 +365 51 3626748293 +450 183 3625735250 +368 318 3625609231 +457 26 3625273169 +286 242 3625016578 +135 105 3623765827 +321 250 3622971328 +388 343 3621631535 +60 51 3621027893 +406 23 3620947783 +302 57 3620825349 +479 421 3617083513 +201 25 3613726273 +439 414 3605778963 +325 142 3604954347 +378 130 3604019792 +490 268 3599278372 +276 166 3593862637 +366 53 3593661781 +477 431 3591460226 +143 23 3579865026 +231 211 3579084605 +478 140 3578969625 +299 121 3568947356 +457 42 3568861478 +497 12 3566493678 +480 72 3564339027 +177 56 3561796235 +281 114 3561792972 +352 287 3557574203 +454 154 3554680782 +45 11 3553175175 +289 110 3552896320 +344 265 3551435034 +274 110 3549576901 +482 308 3547980058 +363 121 3547686032 +242 98 3546855483 +370 335 3543407200 +352 239 3540130951 +449 17 3537461250 +470 277 3536218664 +309 226 3536217208 +412 406 3534402207 +458 208 3533482911 +221 83 3533482084 +357 95 3529097066 +491 87 3528670481 +343 233 3528616828 +221 132 3527830894 +324 146 3524115232 +407 400 3523286787 +494 238 3520417547 +208 191 3517688908 +136 66 3515575256 +489 123 3514082709 +167 143 3513750256 +309 211 3513070502 +85 25 3510545795 +430 420 3508723200 +399 273 3503224867 +370 366 3502760833 +311 261 3502556362 +498 462 3496262630 +402 356 3492654449 +276 222 3484883978 +445 417 3482473510 +365 284 3479991638 +135 73 3478322469 +423 167 3475493051 +440 38 3470924626 +219 28 3470566495 +273 51 3469297098 +321 312 3468178943 +262 51 3466319217 +369 281 3464258559 +448 21 3462225442 +291 150 3457887652 +296 277 3457167460 +348 245 3455484676 +399 336 3452740925 +218 188 3451746135 +373 61 3444116940 +444 364 3442293376 +353 127 3440956836 +409 3 3440527322 +499 16 3437925167 +466 428 3432822423 +327 10 3426525535 +349 274 3423597060 +359 329 3421573658 +308 123 3419622707 +454 141 3418357902 +449 380 3417461692 +152 100 3417381451 +192 137 3416612022 +335 129 3414650725 +286 241 3413440154 +381 289 3407687336 +421 70 3405725782 +115 50 3404236739 +385 174 3404064190 +272 33 3398941679 +417 229 3398422650 +319 219 3396533003 +79 34 3390257788 +449 263 3389428639 +433 56 3387888190 +487 275 3387472712 +487 95 3385049697 +113 108 3382409428 +153 52 3376472836 +453 118 3376301615 +380 280 3372003135 +464 322 3370105967 +324 6 3362244601 +358 89 3361476145 +456 444 3356900632 +417 353 3355864229 +316 115 3349750812 +279 175 3345958865 +171 22 3343872683 +306 168 3340913249 +182 77 3340610445 +234 41 3340294383 +284 69 3339240879 +473 379 3338301827 +317 266 3337008262 +284 23 3333540074 +315 263 3332814807 +473 432 3329809567 +432 92 3326169713 +126 14 3322725002 +338 265 3319154171 +476 338 3316592205 +316 186 3315855157 +420 93 3313203232 +148 70 3313128656 +345 298 3310307935 +268 64 3305184850 +198 150 3304310267 +282 74 3300140951 +436 104 3299333668 +306 104 3297856271 +462 403 3293904615 +85 60 3292467419 +433 340 3291905879 +252 93 3284083771 +209 68 3283548570 +443 174 3277683160 +438 364 3277519008 +436 425 3276529893 +369 317 3273070220 +317 146 3270530471 +418 44 3262615095 +441 180 3262575852 +204 67 3262200510 +404 246 3259626226 +239 113 3256787412 +457 250 3256211326 +317 142 3255799182 +141 114 3255762889 +240 115 3255727403 +153 20 3255616859 +457 343 3250968642 +471 208 3249920562 +152 1 3247603549 +92 74 3246302676 +79 3 3245798047 +149 103 3242388056 +303 59 3241088091 +328 2 3238493824 +498 286 3236468571 +248 15 3235733867 +135 3 3235422547 +263 90 3234169912 +373 337 3231163694 +456 64 3230656722 +415 166 3229212718 +445 251 3228927899 +437 356 3226874215 +283 98 3226127357 +277 216 3226119403 +473 208 3224925012 +453 383 3224041326 +404 339 3221690043 +98 78 3220026838 +293 61 3218485845 +199 62 3217602996 +469 98 3216079012 +76 13 3212728431 +256 223 3211748734 +198 177 3210946919 +418 129 3209265886 +47 38 3208278502 +348 247 3208083480 +350 39 3207142546 +407 136 3205211784 +475 419 3203221216 +482 10 3193723819 +442 340 3192336881 +466 272 3190312872 +151 68 3188605521 +356 70 3181464798 +369 20 3178702487 +473 332 3177153494 +137 118 3174072317 +406 214 3169308781 +489 225 3168533487 +205 45 3165615263 +262 194 3163707003 +334 307 3156496606 +253 35 3156458996 +490 59 3152005991 +440 280 3151520569 +416 8 3150201184 +479 78 3149778464 +458 106 3144692814 +498 278 3141064648 +384 173 3139731363 +167 66 3139069816 +463 269 3138294461 +435 356 3134322863 +83 24 3133316801 +412 381 3131435681 +421 151 3129927885 +436 51 3129882567 +393 151 3129025111 +499 323 3128969016 +441 425 3128723967 +318 306 3128708799 +379 98 3126671945 +207 125 3121134931 +465 19 3118796006 +382 60 3116281238 +392 387 3115612841 +97 8 3113500509 +312 237 3110122956 +349 144 3109516767 +163 55 3103053233 +390 215 3100362821 +140 110 3098171175 +219 57 3095576464 +339 155 3095201039 +388 331 3094908665 +286 236 3093274078 +351 173 3092584973 +262 220 3091499521 +211 172 3086725587 +245 201 3086465036 +353 284 3084021865 +394 98 3081983439 +443 91 3079565508 +188 142 3078639319 +343 74 3078520619 +494 283 3075466359 +480 98 3075464610 +361 214 3075012724 +341 96 3073639094 +378 142 3071761158 +388 52 3071526160 +429 255 3070306279 +321 295 3063668919 +360 132 3062984723 +367 336 3062206397 +389 196 3060025517 +307 275 3058808011 +283 152 3057460392 +381 347 3054528664 +464 298 3053740302 +412 170 3053508674 +351 79 3049932676 +391 382 3048334205 +236 159 3047757837 +492 207 3045752555 +364 165 3041089262 +486 324 3038850082 +483 45 3035933576 +339 194 3035685038 +334 110 3034612134 +298 233 3031941024 +500 99 3030842499 +414 353 3030367103 +298 123 3030318039 +413 164 3028409575 +287 130 3019827866 +212 177 3015938092 +427 226 3015157801 +170 104 3004279111 +325 194 3002888323 +312 178 3001062584 +388 317 3000704953 +227 31 2996774607 +447 227 2995546383 +354 152 2995204057 +289 116 2992995788 +260 218 2990342362 +285 168 2985404114 +383 93 2983781927 +182 181 2981484084 +356 340 2980724518 +389 135 2980400699 +402 284 2979406694 +411 347 2979345986 +306 260 2974876869 +266 82 2968294583 +249 95 2965021386 +121 21 2959818481 +244 136 2958535937 +343 13 2955973196 +449 59 2953395814 +464 28 2949310144 +69 14 2947829585 +273 268 2945144921 +274 44 2939308053 +109 21 2935786845 +395 125 2930636292 +328 92 2930115905 +333 296 2929679398 +289 47 2927036458 +469 190 2925991059 +383 222 2925600163 +496 149 2925388830 +456 193 2924480733 +36 10 2923523548 +495 389 2923052064 +378 262 2922320809 +410 152 2922032702 +491 387 2919884122 +486 178 2919563722 +470 337 2916973663 +87 68 2914764221 +297 222 2912971075 +329 135 2912936425 +112 26 2911056371 +453 174 2909910438 +160 105 2908396754 +309 271 2908076954 +271 189 2903877170 +461 222 2900049628 +342 305 2899749006 +438 5 2898910424 +112 54 2898779790 +234 199 2897515088 +396 180 2895978243 +490 147 2890372208 +324 203 2885747717 +451 193 2883699679 +180 166 2883670809 +335 244 2881288486 +108 11 2879996038 +435 169 2879122024 +426 39 2878936647 +345 318 2878308251 +201 100 2875241386 +304 283 2874514271 +153 49 2873454129 +278 60 2871730970 +455 193 2870701796 +444 373 2870365408 +389 115 2869146674 +218 21 2863938031 +325 290 2857864714 +221 8 2857589211 +412 81 2857323353 +345 53 2853555783 +416 373 2851750428 +429 234 2849517946 +411 231 2844850524 +187 44 2835368088 +186 140 2833411093 +397 51 2833087163 +444 169 2831245949 +240 59 2830379374 +143 22 2827517301 +297 9 2826527259 +328 266 2825311208 +93 87 2824534425 +95 8 2823172883 +216 58 2822607276 +240 49 2820125882 +247 206 2814575519 +493 280 2814016114 +495 80 2806443338 +313 179 2804810671 +490 248 2803701722 +200 44 2803615824 +82 23 2802842510 +383 294 2802026301 +225 88 2790664578 +496 290 2790547404 +433 88 2787205482 +377 269 2786554686 +247 34 2785767246 +288 163 2785421572 +368 248 2778420373 +464 304 2774314526 +458 326 2772869445 +424 252 2769046148 +139 92 2765776573 +5 4 2762178491 +251 19 2762110055 +448 13 2759869758 +344 323 2758968612 +305 28 2757361175 +193 182 2755734149 +257 241 2754161202 +365 29 2753009319 +277 174 2751204367 +368 151 2750681499 +90 85 2744996776 +451 108 2743771163 +405 279 2742774943 +394 49 2742620773 +392 58 2742498269 +495 393 2740788829 +237 145 2734720194 +413 269 2734651132 +250 63 2732219553 +471 197 2729158190 +225 154 2726949114 +337 308 2722881535 +108 76 2722198088 +320 224 2720917612 +386 129 2720405720 +311 47 2719578041 +299 229 2717408288 +129 2 2715491410 +354 219 2712639882 +394 146 2712545752 +384 293 2712178984 +488 273 2711290698 +263 244 2707765552 +478 222 2706564867 +462 24 2706474193 +471 275 2701940192 +464 218 2700421362 +453 370 2700365238 +488 326 2697787711 +124 32 2695730665 +438 279 2695217928 +415 290 2694326257 +395 143 2693797862 +449 147 2691701910 +227 75 2691558314 +353 137 2690261210 +468 41 2688617510 +428 411 2684011065 +403 140 2683956128 +192 129 2680948381 +126 82 2680413148 +136 51 2677706906 +74 9 2673637545 +274 154 2671754402 +382 100 2667201288 +350 180 2664112278 +489 231 2663194827 +430 14 2659049457 +453 290 2657872381 +488 45 2651511292 +158 2 2648546080 +486 469 2648176478 +372 275 2646160994 +300 205 2643768315 +189 133 2640219712 +434 13 2639809732 +495 59 2637521887 +256 221 2633143940 +198 7 2631259389 +326 106 2627922688 +377 17 2626055521 +418 49 2622296618 +170 137 2618689329 +454 166 2618122366 +440 322 2617005794 +403 332 2616408793 +234 117 2614906944 +412 324 2613459110 +139 110 2612867735 +483 399 2610691025 +280 209 2610657165 +276 112 2609413327 +458 292 2605019804 +493 463 2601923621 +322 6 2601241129 +461 449 2600419228 +318 89 2598742893 +394 20 2593966454 +476 45 2586679898 +453 28 2584495724 +351 227 2581359987 +292 32 2581055105 +490 309 2577283763 +339 47 2573753423 +422 79 2569451501 +342 158 2569093761 +385 151 2569036094 +479 287 2563588011 +179 79 2562933603 +411 247 2562559976 +235 187 2560921957 +465 432 2555688771 +457 383 2553038225 +279 270 2551247810 +345 215 2542751786 +474 220 2542191339 +90 65 2540945255 +419 352 2540031710 +105 30 2538746343 +490 450 2537509621 +106 45 2534914255 +460 108 2533795844 +460 170 2533507307 +402 189 2533000532 +308 65 2528731982 +419 203 2527327087 +486 103 2527106377 +302 210 2523288995 +336 241 2519889868 +344 190 2512219471 +308 215 2510041815 +480 79 2506986496 +161 37 2503381982 +496 427 2501378959 +380 82 2500999661 +311 27 2498571850 +349 139 2489162188 +454 256 2488758433 +463 32 2488116805 +424 373 2487458415 +451 450 2484759496 +410 20 2478020894 +227 135 2477760829 +177 14 2476631089 +150 58 2475391270 +388 294 2469041013 +160 61 2463935866 +399 61 2460618248 +458 212 2458952202 +164 38 2450667036 +223 120 2447242097 +490 183 2446101215 +165 42 2445753333 +465 354 2445341042 +464 100 2443452113 +385 120 2443125751 +394 115 2441731832 +111 66 2440933793 +211 92 2440808300 +377 160 2439036176 +57 48 2432747981 +297 169 2432042107 +485 310 2429490250 +439 328 2429320517 +184 134 2428804309 +423 363 2428159180 +366 282 2427788176 +403 153 2427486824 +137 111 2426944689 +470 240 2422246687 +108 36 2419189021 +394 34 2415750343 +453 352 2413808004 +295 123 2405823021 +101 30 2405451884 +366 138 2403336176 +494 99 2399001412 +356 39 2398909630 +373 5 2398401299 +252 141 2394953930 +150 22 2394641026 +204 114 2394267419 +228 107 2391073371 +430 9 2387765855 +321 119 2387559773 +453 376 2386112883 +492 217 2386042148 +105 86 2385093985 +313 142 2384851445 +288 169 2383481204 +351 221 2382857306 +336 328 2382474363 +362 116 2380942042 +399 182 2372548433 +330 196 2369957485 +338 271 2368957498 +262 133 2366428595 +398 395 2355246597 +476 128 2354996070 +94 58 2352144265 +318 241 2351823530 +225 215 2349062863 +472 31 2348783819 +406 405 2348463707 +258 108 2345516967 +412 77 2344814190 +256 220 2341991982 +416 284 2340914501 +422 286 2338292396 +356 54 2337180046 +136 45 2335226461 +467 45 2335107495 +461 302 2334497319 +272 134 2333913667 +260 180 2333096752 +264 121 2332357940 +487 39 2330683047 +221 178 2330461394 +397 296 2328463191 +364 207 2325766273 +453 436 2325745962 +280 15 2321160919 +192 55 2317162695 +182 94 2315865172 +440 16 2315856838 +313 24 2314362130 +323 120 2305370943 +417 275 2301940839 +296 140 2294354498 +348 42 2293882398 +313 195 2291150031 +271 177 2285825148 +480 33 2283251414 +405 99 2282157945 +479 295 2281794735 +329 257 2277472703 +426 279 2276665689 +389 277 2275862644 +175 112 2271733896 +52 29 2255411915 +173 106 2254695779 +112 37 2253034741 +281 98 2251983587 +291 35 2250514562 +326 232 2247987662 +118 18 2246500983 +492 31 2245937669 +288 206 2244617088 +422 161 2241600509 +481 3 2241256494 +55 29 2239199505 +476 303 2236192601 +428 328 2234141583 +377 101 2231585299 +234 20 2231186418 +402 243 2231164084 +226 164 2229484086 +441 282 2227326000 +184 36 2227251710 +373 300 2226254261 +265 52 2223739927 +352 33 2223062001 +211 69 2221206396 +328 245 2220896565 +477 29 2220854070 +377 201 2217813279 +452 374 2207865543 +219 33 2207818164 +352 237 2206081120 +368 202 2205007023 +390 247 2201893652 +448 437 2198777897 +436 34 2194655057 +342 148 2194319889 +347 166 2194274449 +263 128 2191404873 +253 239 2188366680 +430 37 2186820135 +124 24 2177394137 +241 15 2176208115 +497 111 2175561605 +467 49 2170004926 +247 148 2169055418 +168 119 2166326565 +320 253 2165318444 +378 17 2165138831 +63 21 2162639676 +223 115 2155540577 +347 207 2152089353 +336 302 2150312877 +309 24 2149519513 +164 59 2140216853 +359 244 2136319990 +302 80 2135074865 +465 35 2134505079 +487 34 2129377586 +346 261 2127945272 +367 335 2124478068 +439 241 2124008526 +370 159 2118119043 +442 96 2117280834 +469 359 2114386129 +390 372 2113120023 +416 160 2112390489 +386 177 2112086993 +463 231 2111481526 +359 142 2111368947 +352 26 2110027669 +356 317 2109971554 +388 234 2107492701 +493 476 2107252390 +255 62 2107171136 +152 19 2106260859 +118 93 2106198516 +296 3 2105254106 +421 256 2103592212 +321 129 2099056898 +327 116 2096554357 +478 74 2095398521 +381 212 2094900759 +222 41 2092176720 +418 5 2091448723 +357 55 2090262974 +248 67 2088251033 +487 285 2085413826 +340 210 2080674642 +146 79 2077970479 +435 321 2077374571 +252 122 2075948841 +401 243 2074614014 +234 87 2073505568 +481 286 2070982940 +340 126 2069455998 +249 164 2069023638 +218 2 2068498856 +444 117 2067787238 +329 60 2065289320 +312 73 2063438826 +143 18 2060482945 +428 421 2060298166 +222 133 2056194786 +427 352 2055128247 +433 323 2051221630 +433 261 2045786291 +313 273 2045244594 +323 318 2044780141 +319 209 2043285434 +304 28 2042845402 +319 168 2039518560 +398 178 2038928175 +143 127 2026585249 +417 47 2023483660 +475 163 2015754461 +448 339 2011912034 +386 285 2010814060 +289 221 2010206413 +421 386 2008464361 +342 21 2007717176 +250 34 2005977520 +189 31 2002518812 +453 419 2001120724 +179 146 2001117890 +417 274 1997849963 +477 291 1993208539 +241 5 1992368727 +371 119 1987384916 +143 9 1983685442 +117 47 1982039338 +273 127 1980459113 +481 220 1979668412 +331 85 1972899327 +274 89 1972494296 +497 393 1969395395 +300 94 1968713666 +474 7 1965113939 +279 73 1960961160 +173 89 1959374621 +291 264 1957723457 +437 222 1956239803 +201 42 1955938444 +391 129 1954558303 +408 177 1954135964 +489 262 1953888791 +224 161 1952025627 +449 52 1948713421 +40 32 1945067286 +128 65 1942810096 +448 36 1939128530 +222 171 1935585806 +174 99 1935462832 +422 113 1935187888 +127 83 1932639839 +497 106 1929739636 +45 30 1929585964 +392 149 1926918683 +402 141 1925331372 +381 24 1923437023 +469 248 1922776927 +417 372 1920903984 +330 304 1919889439 +436 160 1912593614 +413 112 1911021755 +279 215 1909922564 +278 188 1908785210 +378 60 1906668904 +411 66 1904925990 +278 266 1902788213 +344 27 1898855823 +439 60 1894918243 +367 171 1891734327 +441 110 1889612435 +441 375 1880710101 +22 7 1878436798 +251 246 1875359773 +442 103 1875083924 +444 438 1874432322 +461 287 1873329764 +335 297 1872789499 +266 229 1872202202 +430 136 1865898380 +102 28 1865707611 +213 65 1865452796 +124 49 1864606990 +129 1 1862353105 +386 47 1861140984 +92 39 1859304111 +242 175 1857444939 +395 276 1856597874 +299 63 1854803408 +402 163 1853030014 +192 5 1852961071 +221 211 1849810948 +474 322 1846667421 +479 142 1845652330 +405 136 1845210120 +415 217 1844789311 +242 127 1840289102 +246 143 1839536471 +280 184 1838909871 +269 131 1835362455 +467 395 1833898852 +357 7 1833485089 +451 423 1832976074 +438 60 1832639926 +366 177 1832113424 +147 123 1831970736 +455 16 1826667927 +75 32 1825758685 +396 62 1820828392 +500 238 1820556547 +300 59 1817036663 +370 71 1816120200 +213 194 1815340881 +166 55 1814875556 +219 36 1813384487 +436 226 1812631297 +294 244 1812075158 +222 125 1810465519 +336 119 1804135683 +398 44 1804056980 +292 36 1801419914 +346 175 1799919914 +246 76 1797695941 +369 70 1795898810 +394 317 1791580651 +469 382 1791284588 +338 117 1789362955 +292 112 1789318063 +343 14 1786813428 +483 53 1782154369 +500 339 1781848591 +377 96 1779452003 +440 399 1778324681 +350 216 1774807431 +380 199 1774535376 +427 252 1773930092 +408 335 1773479491 +490 327 1772414036 +385 29 1771788931 +493 199 1771549318 +338 187 1767075911 +293 209 1765620586 +447 248 1759178056 +182 44 1755491578 +164 60 1753494908 +415 42 1752477435 +217 144 1751476052 +360 348 1750622076 +82 49 1748325343 +113 86 1748305961 +312 61 1748058082 +238 38 1748013383 +186 19 1741837672 +386 48 1740727101 +328 26 1739464216 +469 378 1738460432 +247 63 1738142044 +346 229 1733575525 +216 91 1732918422 +115 13 1732137056 +414 383 1731448630 +244 33 1718795204 +489 460 1713908310 +98 53 1712996141 +322 148 1708621976 +480 55 1708474764 +481 424 1703957724 +188 137 1698984109 +321 179 1698053539 +333 80 1697872695 +243 75 1697518926 +384 370 1695140830 +251 75 1693870339 +204 139 1689804348 +431 238 1686700211 +279 269 1686149279 +410 103 1683090455 +398 38 1680851992 +479 6 1680119127 +311 226 1679074071 +329 303 1677617191 +175 87 1676112956 +454 160 1673699194 +481 112 1672545062 +447 406 1671673242 +48 18 1671445995 +380 302 1668176226 +371 290 1664681272 +297 137 1663512389 +356 250 1663448718 +434 245 1660985049 +418 348 1660340360 +280 129 1657693901 +234 107 1657014297 +366 119 1656237402 +401 282 1651158637 +361 266 1650926919 +237 214 1646310768 +287 139 1642762558 +488 72 1637227905 +387 229 1636432507 +387 127 1635350032 +435 374 1629844269 +287 238 1626827961 +356 234 1624457533 +488 127 1622864919 +208 203 1622170392 +236 230 1620570794 +301 132 1620159158 +144 68 1620154739 +417 12 1614798203 +364 250 1611829539 +366 210 1610141304 +325 37 1608457761 +172 94 1607637818 +462 249 1603957520 +370 238 1602992969 +456 96 1602089075 +390 135 1601322506 +52 44 1597558518 +315 57 1596608479 +230 80 1594808818 +432 311 1591859026 +75 59 1590456085 +340 199 1589326589 +78 52 1588614601 +252 184 1579472740 +462 408 1574911850 +427 312 1571125954 +471 431 1569949261 +438 307 1569706267 +280 43 1567787475 +489 28 1566512503 +413 35 1565931750 +228 135 1560681545 +377 282 1559498821 +445 330 1556237650 +288 5 1555713539 +260 242 1555270322 +350 307 1551784214 +474 390 1550464381 +351 50 1538174472 +147 42 1537901215 +428 4 1536732136 +294 134 1531751361 +112 101 1531075952 +237 183 1527211282 +396 262 1524304488 +322 214 1520316566 +434 284 1519860952 +10 2 1518998471 +347 250 1513582591 +199 86 1510474404 +418 97 1509958541 +232 44 1508231202 +458 96 1507357823 +79 53 1504659239 +111 38 1496102918 +266 241 1494812132 +373 150 1492251321 +49 6 1491392446 +330 34 1489113800 +323 264 1488355337 +394 239 1487736535 +239 71 1487540519 +250 160 1487060081 +192 72 1486169372 +205 40 1486168783 +333 289 1485123365 +346 189 1484764133 +84 31 1481217787 +256 186 1479619791 +219 150 1476307096 +476 97 1474927935 +447 189 1473677903 +286 43 1469160637 +412 122 1462837234 +373 12 1459660749 +469 59 1448747163 +329 74 1447531537 +292 115 1447409869 +393 40 1446543526 +256 21 1442996843 +212 138 1439598913 +94 32 1438708449 +471 400 1433024615 +266 233 1427534002 +182 112 1427484193 +478 326 1425433883 +261 78 1422776039 +484 163 1420901304 +315 185 1418659620 +242 172 1418470076 +251 120 1418262805 +153 38 1417564028 +271 248 1415558229 +281 112 1412079079 +476 251 1411618417 +462 443 1411239346 +204 11 1409674540 +497 38 1408102485 +497 354 1406440616 +249 143 1402984624 +358 248 1401001627 +463 247 1396619751 +148 143 1394181908 +216 16 1391528615 +172 119 1390816115 +337 78 1390489032 +176 5 1387439260 +223 16 1386137431 +229 129 1380853535 +497 155 1380477662 +304 74 1375899670 +276 59 1374901096 +406 84 1374579114 +83 27 1374540606 +275 55 1374533330 +102 85 1372875496 +288 195 1371868574 +332 155 1371427389 +474 139 1365524721 +450 304 1364608990 +235 35 1364481321 +458 338 1364278104 +477 37 1363408819 +337 54 1362547895 +464 161 1362142612 +295 99 1362087700 +386 100 1362008300 +362 361 1360569932 +452 38 1354536752 +249 118 1349797541 +273 132 1347137629 +427 214 1346403341 +486 46 1346365419 +407 154 1346116016 +332 34 1345456074 +251 84 1341164559 +430 305 1336378129 +222 124 1334213636 +466 157 1331033292 +257 182 1324882491 +464 187 1322571011 +90 80 1322464456 +470 264 1314954626 +140 97 1310288391 +336 16 1310142290 +475 341 1307916328 +382 68 1305812431 +394 10 1302785190 +416 375 1302461481 +204 144 1298675955 +397 212 1296934594 +396 54 1294837861 +269 213 1292618483 +439 277 1286700085 +21 14 1286339476 +369 352 1282857492 +128 32 1282106234 +496 54 1277589665 +318 225 1277282099 +204 194 1273316340 +401 83 1273017965 +187 66 1272572704 +423 26 1263317458 +288 150 1260820040 +473 245 1260672165 +321 272 1256459727 +388 305 1256253188 +338 152 1255648084 +378 336 1253649751 +377 333 1253035342 +61 21 1246306035 +135 23 1244680766 +497 14 1235987149 +301 60 1225218051 +208 131 1224297507 +285 16 1222406970 +89 79 1221735563 +344 113 1221604344 +290 74 1219464910 +403 377 1217288677 +479 384 1213738374 +359 29 1213460806 +307 129 1213038381 +294 3 1212141438 +372 133 1210705679 +414 139 1208371366 +194 134 1206889750 +355 155 1203503316 +335 292 1203134094 +221 60 1200392325 +236 110 1199483566 +312 280 1199016128 +209 42 1190483889 +89 78 1187325133 +357 165 1183382491 +399 77 1182320873 +38 28 1174592629 +316 9 1173848442 +463 434 1173572735 +128 115 1168532113 +167 27 1163986349 +116 8 1162114421 +325 226 1161011762 +312 240 1159132165 +447 277 1158104222 +462 71 1157727306 +284 94 1157652213 +276 7 1157208850 +320 272 1157137373 +496 260 1156993457 +415 124 1154577613 +421 9 1151304890 +96 22 1149076403 +86 53 1143940378 +259 94 1143282930 +366 205 1141399764 +442 247 1138261686 +402 366 1137539519 +44 12 1135830726 +326 320 1132871168 +341 33 1130489795 +195 33 1129238543 +447 310 1128012055 +488 333 1120555169 +494 45 1117842262 +196 113 1117521209 +421 242 1117285159 +495 447 1115894673 +228 156 1115238407 +492 325 1107741175 +234 189 1106339267 +282 182 1104645496 +476 254 1103236220 +171 51 1099575307 +343 110 1097950106 +212 125 1097737896 +196 166 1094826952 +442 266 1094773618 +261 211 1088463173 +51 14 1087806166 +441 340 1086323920 +272 23 1076111314 +206 44 1075349568 +406 293 1074466435 +276 180 1073450193 +186 164 1072283482 +123 108 1069449278 +433 322 1069170672 +309 221 1064426372 +412 32 1059686666 +105 6 1059600784 +482 122 1055024640 +444 331 1054395331 +262 13 1054068585 +344 214 1045194566 +395 280 1044685478 +462 142 1044458718 +449 225 1041110988 +334 161 1040279157 +329 279 1029044453 +329 322 1027375572 +201 130 1026425484 +433 301 1023444961 +189 120 1021582023 +170 63 1017825070 +180 163 1015687141 +83 16 1014818733 +341 290 1014621294 +361 135 1013437421 +220 186 1009175721 +469 157 1008204972 +401 266 1007177451 +224 214 1005260674 +174 35 1005144218 +379 233 1002563894 +381 325 997518698 +398 334 995750478 +477 240 992260565 +260 14 989860556 +430 337 987205437 +383 248 986191852 +308 22 983076116 +449 74 981522939 +362 61 975173865 +219 39 975138076 +208 47 974107238 +485 383 968593428 +498 110 967197792 +197 59 963653773 +272 120 959972222 +386 77 956379350 +161 61 953670383 +431 397 950626006 +368 115 944145309 +322 35 943675574 +252 215 943092757 +438 297 940825042 +455 312 939957185 +480 377 935665315 +246 60 933334690 +211 57 933095010 +348 21 932544289 +391 337 926746363 +191 105 926342781 +403 170 926048769 +251 69 925903627 +217 58 924619864 +486 6 922739163 +374 161 917078240 +428 306 915275736 +353 23 913646286 +331 216 912548550 +177 34 908634854 +164 37 907275767 +359 306 907256605 +177 162 906382102 +416 132 903782334 +172 1 900830936 +348 342 900263412 +435 344 899853707 +346 108 899438724 +350 89 897125127 +251 157 893047352 +166 92 890546045 +393 340 885518370 +244 241 884588150 +230 70 884108193 +313 225 881977747 +478 401 881652331 +495 476 880277109 +380 344 876941696 +447 253 876636789 +296 85 875309455 +99 12 871047889 +264 223 870841035 +374 247 868415035 +350 29 867556293 +426 424 867504430 +366 263 867482168 +69 21 867334586 +261 247 866079396 +273 113 863913156 +334 292 862465389 +263 153 860143374 +317 31 859017164 +493 391 856207710 +269 94 853184471 +459 173 852364742 +249 90 850665317 +460 50 842327206 +194 146 841193661 +409 389 840358567 +43 14 838841499 +483 262 835711028 +301 215 832238858 +462 15 830406552 +478 6 829816175 +404 213 823947217 +360 53 823353303 +69 38 823145182 +411 211 809026575 +203 119 805739724 +305 228 805440099 +152 132 804002428 +300 299 799536143 +345 216 795824881 +365 298 795396237 +118 26 794362210 +492 248 792899222 +151 106 790332717 +265 249 788846397 +326 153 787857477 +376 137 785859981 +366 38 785462521 +420 349 776068586 +363 290 771410920 +72 65 771050843 +172 11 770964415 +254 218 770340349 +363 305 766679063 +310 113 762861898 +349 148 760145864 +471 30 759652384 +162 29 757098061 +446 285 756576409 +419 418 754853445 +487 466 752270527 +422 273 752097590 +222 162 751714434 +472 254 750009769 +212 88 747024360 +356 45 746958807 +313 258 743724461 +297 47 737417700 +277 153 737149047 +203 91 734142456 +346 48 733667252 +440 162 729346133 +64 10 729010077 +453 124 725726468 +462 378 724913778 +405 246 720412166 +473 48 710824972 +372 47 710180638 +137 103 708507605 +162 124 706437521 +468 219 706379278 +333 229 705467481 +223 38 705021371 +184 6 701034564 +289 274 698954852 +391 309 698340872 +129 60 697125744 +247 220 690675974 +221 17 690212982 +411 386 690008052 +309 28 689300341 +353 45 686469011 +208 60 681637366 +334 37 681599536 +400 223 681576274 +384 253 681309000 +469 430 681074444 +258 141 680358070 +422 351 675888097 +430 130 672721007 +81 71 672104353 +151 2 672003395 +413 193 671079811 +379 44 670209720 +386 264 665191975 +345 256 663532404 +281 134 661193219 +260 142 658762484 +158 131 651940804 +186 70 649452029 +280 28 649359798 +192 173 645797401 +493 378 640828769 +259 96 639145789 +455 424 638797431 +462 204 633825813 +225 29 633408576 +264 220 632958203 +402 261 631624686 +241 37 631417802 +354 114 629373997 +408 46 626865413 +346 330 624647989 +348 91 620512344 +434 343 617087818 +287 59 613942903 +497 64 613332201 +291 84 612805015 +278 202 611885775 +449 63 609843981 +406 382 609590385 +294 216 606365917 +330 121 603924934 +455 60 600529819 +295 117 600398451 +446 100 599943391 +464 174 598995516 +396 13 596450433 +405 190 592611339 +239 121 591996668 +291 247 585110166 +107 30 584311855 +441 222 583122933 +115 62 580899819 +176 20 578326234 +365 206 574265601 +301 206 573209858 +278 231 571074123 +369 166 565828000 +412 398 558712174 +487 483 557793194 +285 75 557145559 +367 283 553410128 +426 221 552614137 +308 66 550007701 +245 192 549883108 +457 153 545019461 +148 49 543449128 +408 92 542788755 +335 124 541985099 +334 175 539614629 +222 159 539395749 +288 194 537225710 +494 35 537099676 +488 355 535779223 +369 144 534327271 +398 70 533858443 +331 255 533262912 +399 376 532415378 +191 108 529935603 +189 184 529236076 +225 141 526439511 +100 36 517287188 +230 150 512959689 +291 242 512042327 +362 282 509687555 +378 117 508407318 +356 48 507147552 +455 228 504993280 +154 12 504646324 +407 268 503089714 +383 135 498330879 +459 414 497658417 +275 48 492621302 +210 66 491197673 +492 408 491045884 +138 18 487814475 +465 191 485845672 +245 219 485449954 +422 17 484669660 +378 92 483659248 +475 50 483396164 +265 238 481241290 +496 41 477949819 +252 33 477292032 +472 468 475790583 +154 11 474080634 +276 48 468967299 +458 390 464066269 +290 122 463389939 +487 294 460896741 +402 342 458537883 +445 124 456292805 +295 200 455378913 +339 68 453689245 +402 199 452693770 +376 335 450030329 +314 159 449859489 +328 60 444707277 +494 28 443544460 +365 71 439282726 +425 336 432267597 +309 212 432137457 +218 142 429792914 +259 226 424430459 +359 2 421710513 +195 88 420827561 +380 264 418192394 +371 162 416915251 +378 367 415218068 +498 365 414687709 +193 104 413414010 +308 252 413115540 +16 7 412398608 +256 155 410462031 +483 419 410320077 +436 259 404659892 +159 158 401718690 +444 404 401280387 +384 292 395283789 +216 33 393768037 +353 297 392405513 +388 384 392338197 +319 72 391837935 +348 238 391123891 +370 37 384504451 +361 236 383546833 +401 74 381963336 +266 12 381948412 +356 323 379351832 +342 185 373011266 +434 80 370474715 +325 102 368098932 +240 128 368071727 +163 19 367764455 +222 178 367750276 +444 269 367749137 +433 338 367668707 +382 279 365764211 +295 183 363293717 +470 6 363254388 +222 181 363188575 +179 112 359689870 +470 69 355286731 +310 61 352733631 +436 40 351022263 +298 88 350782592 +388 205 350433250 +368 285 349560018 +479 322 348483084 +276 181 347799124 +247 195 347786677 +434 398 346761364 +461 220 346450771 +389 16 342525823 +177 160 341127518 +242 2 340972096 +143 20 340150452 +449 77 338283804 +470 333 337344182 +303 256 333618019 +499 196 332919999 +384 85 332394006 +180 146 323938196 +459 113 323736222 +326 144 320851063 +476 64 319653129 +406 226 317022678 +384 44 316154021 +185 98 306499022 +274 196 305321154 +144 46 304566885 +399 259 302773356 +213 89 299989436 +498 236 296380212 +435 308 294795430 +297 237 293058193 +500 388 292606903 +461 380 291563265 +476 232 286104340 +187 140 286064615 +364 171 282196434 +483 162 281530124 +152 46 280789536 +235 171 276935174 +435 303 274752895 +204 38 272965012 +471 20 272220180 +446 44 256638241 +437 1 253221745 +462 175 253004932 +357 161 252622619 +402 13 251557811 +459 248 245837940 +415 266 244355812 +426 204 243423069 +372 272 237299774 +397 145 234783945 +263 235 233191244 +285 125 231727568 +222 59 231621018 +151 116 231362734 +362 294 228831414 +380 327 228477540 +335 311 227342253 +284 134 222384279 +447 13 219161874 +494 269 218754550 +431 113 218225528 +366 84 215190889 +306 234 214362758 +342 114 211669743 +264 65 209693897 +478 142 209615873 +391 257 209608910 +215 163 207352326 +94 30 204639595 +500 455 204011208 +399 308 200404536 +411 393 197775795 +401 34 196729378 +193 76 195943151 +330 151 194941624 +270 57 193442202 +137 58 183818536 +433 263 183329850 +262 36 180112688 +496 37 179337093 +200 181 179053301 +437 145 178246557 +452 219 177620302 +429 282 176235003 +475 43 173732623 +382 362 169910406 +377 120 168956514 +48 13 165381182 +426 406 165349679 +168 44 163407160 +296 95 162809947 +448 52 159542429 +304 252 158991057 +493 364 153648878 +307 214 153445997 +442 170 150952072 +353 46 148704740 +388 119 148651772 +243 76 143564886 +483 126 134160084 +223 83 131439428 +263 114 130726866 +493 181 126849614 +72 46 126040398 +378 241 125312374 +456 265 124306573 +288 90 115418394 +420 163 113480727 +321 106 112582999 +146 2 111278678 +259 230 110248589 +401 59 109499517 +259 199 108742782 +361 246 107311726 +121 100 105861292 +465 24 105761734 +442 287 105511926 +394 283 104019953 +410 65 103279219 +194 16 102679457 +358 322 99393620 +228 182 99256577 +350 119 93875954 +194 33 93479369 +162 147 90708330 +359 147 90494975 +133 100 88783681 +360 229 86634735 +435 309 80904013 +447 427 79551195 +221 37 77512322 +398 95 77224590 +350 80 76369575 +76 5 74906478 +141 32 73207403 +461 65 73060483 +429 412 68464472 +286 102 67554563 +311 46 66910812 +37 7 65545946 +486 410 64924091 +416 239 62386106 +318 111 60498515 +497 125 59479489 +313 194 56518411 +189 30 55999450 +116 80 53635734 +67 51 49836332 +322 196 46878378 +407 121 46820856 +444 414 46630407 +370 90 45187638 +479 123 43795193 +234 17 43553460 +86 49 41209688 +428 288 40901549 +404 115 36815285 +448 266 36428814 +363 175 33259484 +315 91 30246035 +378 375 29347028 +135 95 27294596 +343 277 25749064 +310 37 25198736 +443 81 23277794 +91 79 21470293 +431 33 19307060 +316 48 18996132 +457 135 16991644 +104 82 11378785 +103 42 8224039 +369 291 7897681 +130 96 57286 diff --git a/data/random_weighted_general2.mtx b/data/random_weighted_general2.mtx new file mode 100644 index 0000000000..7e283a6f98 --- /dev/null +++ b/data/random_weighted_general2.mtx @@ -0,0 +1,749 @@ +%%MatrixMarket matrix coordinate integer symmetric +%%GraphBLAS type uint32_t +300 300 746 +185 90 4294420090 +227 66 4288698439 +286 42 4285264467 +243 133 4282958305 +285 61 4282572010 +146 33 4282286901 +280 1 4279012460 +166 74 4275612843 +150 26 4258669238 +288 225 4247808534 +282 64 4230494292 +202 130 4207160081 +286 147 4181380888 +136 30 4180257543 +149 132 4174972152 +202 121 4174626935 +156 144 4174504374 +192 152 4172234668 +177 47 4159302129 +214 210 4158940818 +223 38 4157285462 +262 15 4156410170 +273 193 4146242266 +248 73 4145980808 +298 259 4114469183 +209 179 4104921312 +126 94 4103700528 +196 90 4093848577 +204 104 4070331316 +269 195 4049819034 +148 63 4041183044 +165 135 4035617629 +134 104 4035614209 +241 6 4030512038 +58 24 4030315145 +285 199 4026359903 +300 41 4026146622 +270 256 4025395815 +253 109 4019204740 +176 140 4008539746 +283 136 4006229445 +242 172 4005347696 +214 171 4003600373 +251 92 4003038984 +188 76 3997718821 +170 6 3995698473 +177 135 3983968088 +197 64 3982551139 +197 150 3976061189 +252 233 3966542176 +202 135 3955960514 +133 33 3949493380 +186 84 3947451162 +252 135 3941871046 +257 132 3940777425 +206 186 3936873391 +236 189 3934794172 +208 81 3911012501 +247 64 3901858492 +284 234 3900163003 +81 71 3895644515 +226 73 3892123642 +212 79 3889879660 +113 86 3889246870 +226 116 3888533336 +177 151 3879544452 +244 13 3879041857 +176 152 3878470909 +279 100 3873672641 +274 202 3871933910 +226 156 3865950311 +277 132 3860273015 +288 209 3853781086 +109 108 3852188916 +170 85 3850740471 +268 229 3846764464 +151 105 3844301784 +197 15 3840264150 +166 55 3832905494 +287 21 3822108056 +251 107 3818420045 +187 184 3817885747 +290 102 3812693026 +191 101 3810827742 +177 153 3810575382 +225 71 3801594788 +181 76 3787269802 +202 47 3785622285 +102 18 3782763650 +260 189 3774760560 +271 124 3769875140 +219 163 3759027160 +277 264 3758458593 +165 24 3738384875 +152 61 3735609186 +214 123 3732111346 +186 13 3731347584 +272 256 3731006317 +39 22 3728699245 +173 2 3719213601 +191 68 3704069960 +184 178 3703946360 +108 97 3687856477 +122 3 3686543966 +245 160 3682930577 +156 40 3663206063 +211 70 3656037264 +256 71 3647905532 +149 29 3646197947 +299 26 3641265561 +175 119 3634603169 +273 73 3631584453 +262 237 3630133861 +18 15 3620973559 +269 202 3614195654 +293 218 3607455228 +144 131 3606213842 +200 111 3602423448 +293 149 3596711239 +291 281 3590973220 +181 143 3577488712 +125 118 3576041005 +80 25 3567818199 +226 207 3555573664 +220 41 3548745272 +232 211 3548072436 +149 75 3546274765 +230 116 3546261994 +171 145 3544820637 +195 187 3541090638 +254 83 3536969771 +248 219 3533733796 +155 135 3531090413 +160 8 3528003932 +162 138 3526944613 +300 137 3514730224 +253 229 3510802358 +173 95 3510441274 +90 75 3504207657 +152 91 3502232722 +268 48 3502159066 +295 7 3495521042 +173 28 3486827800 +105 84 3475752799 +229 68 3471826878 +225 110 3450734225 +85 17 3442086867 +180 124 3429642630 +252 126 3427569462 +202 81 3425112686 +279 6 3421280203 +258 224 3414424816 +271 4 3413776820 +120 102 3413437444 +239 40 3410564135 +200 178 3403468586 +262 131 3394392997 +199 28 3375648607 +102 14 3373660818 +90 43 3367235583 +238 185 3366866780 +259 46 3366857107 +260 248 3361996058 +129 56 3361195474 +224 114 3353159873 +225 98 3353000425 +114 94 3347547823 +162 144 3343373064 +274 4 3342581104 +222 21 3340441392 +299 296 3339911260 +159 110 3339400828 +225 73 3339111154 +224 129 3331054830 +274 70 3328229835 +296 170 3327949591 +255 169 3320255973 +107 8 3309426618 +194 64 3299271856 +182 118 3290793177 +88 67 3272146652 +206 77 3266972144 +75 71 3265273055 +300 98 3251831496 +269 252 3251516374 +226 213 3248541710 +242 10 3245717589 +300 197 3245205705 +267 243 3242598294 +136 2 3241223603 +195 106 3238193256 +215 20 3223473387 +202 97 3202958577 +251 54 3191938291 +294 80 3188542696 +229 98 3188142900 +110 68 3187846999 +218 113 3187257829 +156 109 3182594530 +196 76 3178448396 +292 271 3177755353 +286 207 3174311608 +159 112 3174012228 +208 79 3169180702 +153 87 3163273822 +118 28 3158779145 +143 138 3154797090 +114 60 3150683613 +83 1 3146176705 +227 129 3145021703 +141 116 3132498327 +240 72 3103818040 +231 25 3102296349 +164 144 3075931840 +290 14 3066425552 +273 204 3060901247 +262 166 3052821927 +209 186 3037963130 +121 84 3034239919 +133 112 3031723367 +203 175 3017814626 +248 209 3014497948 +147 50 3003764832 +34 10 3000921116 +183 46 3000009492 +254 75 2999719657 +242 188 2996986092 +188 11 2991345758 +296 234 2978602384 +278 188 2976023248 +190 22 2975659502 +275 107 2957503877 +293 16 2948830199 +260 116 2946046264 +179 38 2944817570 +222 32 2938750098 +300 11 2930288180 +65 47 2928760201 +284 230 2925170810 +237 145 2923832485 +290 79 2922685841 +72 16 2922190360 +292 18 2920847197 +171 50 2917900925 +148 113 2916181761 +262 197 2910822800 +148 123 2908064328 +277 61 2898801888 +179 121 2897873108 +113 9 2886547566 +258 163 2880240757 +273 196 2878804994 +158 127 2867336326 +170 108 2862533387 +264 155 2859958136 +293 267 2851631595 +259 140 2849336982 +278 163 2840811566 +123 96 2836739606 +240 29 2836361900 +280 253 2815694872 +220 14 2813655054 +200 46 2811414260 +252 172 2801877030 +210 7 2799925453 +205 162 2793293355 +148 61 2783558590 +154 150 2771527340 +293 250 2771009489 +180 175 2764636715 +277 22 2757984679 +154 2 2755842004 +151 98 2749243344 +185 155 2746532844 +120 13 2742356960 +161 95 2741456010 +141 16 2729812559 +208 106 2725583304 +203 29 2720496162 +271 160 2716158381 +128 111 2708224616 +158 146 2704905845 +247 206 2687293465 +186 25 2679856552 +233 8 2662671236 +245 218 2657384878 +182 23 2647164286 +241 109 2645588114 +226 22 2638963316 +95 58 2634960736 +262 151 2628743248 +206 147 2607062513 +169 41 2587420324 +119 103 2578917764 +278 205 2570558987 +52 38 2532356039 +212 157 2527459780 +166 112 2526490102 +180 149 2518486459 +236 173 2513111663 +68 46 2498703433 +299 113 2492822217 +273 90 2485484960 +275 78 2479532567 +284 213 2470012236 +206 27 2466417629 +211 75 2464070334 +221 118 2463244270 +228 107 2457993472 +225 94 2454524346 +278 51 2449736780 +177 91 2429887586 +74 31 2427697676 +218 2 2425383869 +273 215 2421640783 +219 179 2412399304 +212 174 2412009324 +58 17 2410708441 +137 6 2408403615 +208 131 2401631052 +281 178 2397543799 +242 189 2394886142 +233 134 2392280441 +288 264 2389547199 +165 151 2384901282 +222 127 2381324992 +134 133 2371458671 +225 122 2368142712 +233 178 2363721206 +123 45 2362350052 +266 72 2358328931 +264 8 2354746079 +63 12 2352531541 +144 55 2348861662 +170 72 2346186271 +107 50 2343399231 +252 109 2341900473 +294 34 2338264204 +187 96 2319324754 +149 74 2309791152 +223 138 2306944743 +244 151 2300761832 +206 151 2296893513 +286 205 2296468393 +203 103 2295376026 +62 40 2293229507 +240 74 2278143743 +203 137 2270035923 +196 109 2247491573 +232 180 2246754375 +265 126 2246043998 +271 264 2245136578 +178 145 2238958645 +120 21 2237946590 +113 5 2237943033 +267 90 2226608347 +275 140 2225205813 +162 106 2219265278 +245 113 2196027690 +152 145 2188378314 +248 68 2180839325 +146 135 2171474580 +270 125 2168345820 +284 105 2167020593 +101 94 2157369133 +53 12 2155896053 +155 103 2152483586 +191 48 2150160536 +55 49 2141826719 +196 165 2134962370 +171 48 2125446995 +270 70 2120626599 +183 105 2117266406 +224 66 2115491698 +171 31 2114358635 +249 81 2113961613 +203 89 2112669570 +72 30 2108632666 +164 45 2106065250 +87 13 2100585556 +251 210 2100471037 +274 241 2095702066 +177 172 2094184566 +106 89 2090412791 +197 75 2088086771 +296 143 2086999443 +256 178 2080807618 +172 94 2079623355 +253 89 2073924119 +220 150 2068932071 +224 62 2064676611 +69 31 2050484858 +62 20 2049976743 +268 251 2034164287 +246 86 2024424796 +215 141 2016821826 +205 1 2014909440 +156 116 2006262302 +278 42 1986412262 +212 130 1984410836 +251 250 1982388042 +155 52 1968549380 +191 142 1958781727 +195 68 1958680218 +286 173 1953397328 +270 65 1940926060 +229 78 1931674222 +234 194 1926188677 +219 106 1922404194 +226 31 1917729101 +277 39 1914705701 +297 136 1913923118 +259 24 1912144811 +282 175 1909108192 +221 79 1894894002 +35 26 1890859978 +272 116 1888262618 +299 40 1885113479 +211 188 1884627248 +291 163 1881680338 +277 60 1880028808 +151 118 1878209027 +293 65 1876230818 +59 48 1875644458 +295 254 1866532231 +209 102 1856979576 +224 149 1856132056 +262 114 1854291459 +179 47 1852054062 +236 109 1845611788 +248 168 1845145071 +33 17 1837101227 +217 85 1834337687 +280 20 1831856701 +157 34 1826320774 +161 93 1825379355 +269 128 1816414946 +276 193 1785504071 +185 39 1784145774 +205 61 1781167171 +135 41 1771563585 +235 78 1766638666 +193 137 1766118387 +57 39 1753525015 +137 100 1732238234 +247 194 1724100389 +280 158 1723215296 +283 76 1715292414 +133 11 1701796893 +112 24 1700511894 +130 93 1693986984 +215 69 1692599456 +237 34 1692185324 +272 47 1689536355 +278 146 1681155115 +298 77 1680668165 +181 114 1678877774 +271 42 1677780785 +240 47 1661677115 +280 160 1659316134 +65 1 1658525272 +206 25 1657294764 +200 13 1646603803 +145 38 1644503448 +283 231 1639971297 +236 20 1626607579 +254 175 1607043196 +159 35 1605591139 +292 60 1600696185 +254 183 1597918369 +288 93 1597403306 +123 108 1594196374 +238 49 1593480347 +187 56 1575765200 +96 14 1563044432 +100 5 1551612034 +131 14 1551513228 +300 122 1551212855 +252 119 1548039172 +205 58 1547385692 +250 87 1540979502 +109 16 1537596394 +242 151 1536652546 +186 110 1533317456 +123 57 1527193254 +298 117 1515173848 +280 206 1490224285 +68 44 1489123757 +257 8 1487125432 +291 227 1485015777 +295 134 1471269886 +253 165 1470807098 +284 217 1470042370 +209 69 1460904564 +196 174 1459118511 +224 167 1445395542 +278 168 1437099327 +287 4 1436043427 +271 145 1435145251 +269 209 1427121112 +284 18 1421410484 +206 75 1417094261 +138 137 1414149461 +240 88 1408140724 +170 7 1396377589 +193 67 1391466688 +215 80 1386315909 +263 65 1386085678 +156 22 1375670942 +80 30 1369620565 +106 53 1356975616 +284 224 1356088716 +272 198 1355396699 +236 72 1353397744 +179 170 1352069137 +131 55 1348941532 +189 139 1348561299 +284 125 1342885974 +200 62 1328674168 +281 114 1319665664 +215 86 1313175242 +205 108 1305868643 +285 42 1305071669 +164 42 1304033557 +135 134 1298132639 +110 87 1286860124 +298 275 1279360979 +294 137 1277776660 +201 157 1258743804 +23 10 1258165912 +122 119 1251761324 +235 25 1242784462 +257 140 1238276078 +122 82 1222883315 +276 172 1216444864 +204 49 1211405506 +238 182 1202323966 +233 49 1198709666 +229 48 1190011491 +154 85 1188746203 +202 11 1188669932 +26 19 1186574966 +190 30 1185675174 +137 77 1179264967 +173 48 1178616888 +181 152 1177187126 +292 40 1166000039 +230 92 1161771102 +170 152 1161750802 +289 203 1150527367 +23 20 1145813020 +189 120 1142159412 +297 100 1135247746 +270 258 1133750913 +253 24 1101054507 +248 48 1098632136 +292 125 1096371284 +282 100 1095591616 +71 16 1095104778 +120 18 1090383025 +207 54 1083742353 +298 24 1079414110 +272 72 1068614639 +269 212 1066423871 +104 13 1053142288 +297 123 1049985073 +284 97 1048771170 +184 155 1046894343 +189 175 1042485225 +67 19 1041115251 +69 44 1040643025 +173 39 1023146841 +290 243 1012632617 +208 185 1002122457 +182 156 995001897 +223 34 993444040 +285 261 985046021 +170 70 964573888 +123 91 964366786 +251 96 961813151 +299 32 950226850 +253 125 949741610 +63 26 949539475 +208 176 937292362 +145 132 935760550 +170 36 934332844 +223 3 929036535 +247 116 926170711 +193 100 919773041 +149 112 886769140 +108 41 885453165 +184 9 880927123 +214 156 875997051 +84 25 874453832 +20 10 872798473 +16 6 844916347 +211 21 841168770 +187 87 831000955 +207 87 829692107 +217 164 826791967 +275 144 819213783 +240 103 817608436 +296 128 815813761 +214 4 797453925 +272 127 796629348 +295 16 784495781 +150 50 779508748 +223 74 761770324 +231 24 751648321 +143 51 747360973 +92 69 743243056 +238 14 736343298 +298 89 735880232 +272 157 733723493 +271 209 733421840 +150 38 713605611 +277 100 709131055 +291 170 708430640 +97 57 702677742 +232 229 699017579 +257 86 696569203 +192 69 667727599 +256 75 663622445 +254 57 662223292 +246 33 650181400 +217 3 636928720 +232 169 636420161 +29 5 636220712 +244 37 628621817 +76 29 625111018 +293 147 615197436 +295 262 609210252 +296 137 602754470 +38 25 590814470 +265 134 584816732 +251 203 582247306 +188 59 575430835 +117 49 570004362 +210 43 569509002 +138 18 551061519 +100 87 544526852 +295 195 543230566 +262 242 513117688 +266 81 512475118 +260 197 508535326 +236 91 507319879 +210 73 505832923 +185 157 502494744 +269 48 496934730 +178 35 496365528 +203 194 495806583 +296 247 490728964 +239 157 482186884 +243 131 479029807 +214 45 478209051 +145 43 471182173 +300 91 469519187 +266 249 469362312 +250 212 466835440 +90 45 460701451 +257 53 457433544 +268 129 454748383 +98 51 451891386 +182 172 447976762 +230 31 447536649 +114 111 447003860 +227 162 441839426 +266 247 436314581 +277 104 433351003 +293 2 433191300 +171 52 423640321 +226 104 423259887 +239 198 410855691 +263 161 409742114 +289 69 396846907 +208 147 387039528 +214 100 383610250 +106 25 377144478 +260 258 370047862 +190 143 366877851 +264 232 363471204 +246 218 356712750 +295 169 351151719 +259 221 319586334 +289 243 316868670 +169 151 307018945 +297 209 302990364 +56 35 298461578 +232 118 295967870 +277 23 295503846 +131 79 293659924 +253 98 289638997 +228 190 285504655 +101 8 281345087 +188 54 274286634 +286 55 269516893 +215 139 266812395 +55 16 258384903 +199 34 258287383 +219 18 249027997 +167 70 246410995 +159 64 242849346 +156 31 241231430 +290 161 241038479 +281 151 234158278 +172 139 233183549 +244 64 225271468 +296 134 223254234 +229 194 217829933 +235 91 217016712 +232 2 198533285 +232 151 192002377 +252 138 191509053 +161 60 182854203 +115 64 175092204 +156 28 172602488 +297 130 163241925 +252 103 160875865 +56 25 157228572 +70 17 156981697 +147 115 153927149 +228 51 137462285 +208 158 123869612 +282 136 117067707 +251 7 112924321 +97 6 110468214 +196 154 110022313 +248 105 109504539 +215 124 108814169 +288 144 105324630 +296 158 100844309 +208 77 88159258 +156 127 87398712 +79 10 86621576 +238 76 82305472 +268 161 79377782 +288 285 77442928 +213 162 76287002 +250 221 69370039 +234 197 61642502 +53 45 42466200 +102 26 35833381 +289 287 30776388 +103 14 28531319 +286 239 26210285 +163 109 24000577 diff --git a/experimental/benchmark/coarsening-tests/.gitignore b/experimental/benchmark/coarsening-tests/.gitignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/experimental/benchmark/coarsening-tests/CMakeLists.txt b/experimental/benchmark/coarsening-tests/CMakeLists.txt new file mode 100644 index 0000000000..81814582ed --- /dev/null +++ b/experimental/benchmark/coarsening-tests/CMakeLists.txt @@ -0,0 +1,71 @@ +cmake_minimum_required ( VERSION 3.19 ) + +# policies +# cmake_policy ( SET CMP0042 NEW ) # enable MACOSX_RPATH by default +cmake_policy ( SET CMP0048 NEW ) # VERSION variable policy +cmake_policy ( SET CMP0054 NEW ) # if ( expression ) handling policy +cmake_policy ( SET CMP0104 NEW ) # initialize CUDA architectures + +set ( CMAKE_MACOSX_RPATH TRUE ) +enable_language ( C CXX ) +include ( GNUInstallDirs ) + +message (STATUS "source: ${CMAKE_SOURCE_DIR}" ) +message (STATUS "path: ${CMAKE_MODULE_PATH}" ) +set ( LAGRAPH_ROOT "../../..") +set ( LAGRAPHX_ROOT "../../..") +set ( GRAPHBLAS_ROOT "../../../../GraphBLAS") + +# set the module path for all Find*.cmake files. +set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} + ${CMAKE_SOURCE_DIR}/cmake_modules + ${CMAKE_SOURCE_DIR}/../cmake_modules + ${CMAKE_SOURCE_DIR}/../../../cmake_modules + ${CMAKE_SOURCE_DIR}/../LAGraph/cmake_modules ) + +project ( mytests LANGUAGES C CXX ) + +add_executable ( coarsen "coarsen.cpp" ) + +#------------------------------------------------------------------------------- +# find library dependencies +#------------------------------------------------------------------------------- + +# look for all SuiteSparse packages: +find_package ( LAGraph REQUIRED ) +find_package ( LAGraphX REQUIRED ) +find_package ( GraphBLAS REQUIRED ) + +# look for all external libaries: +find_package ( OpenMP REQUIRED ) + +#------------------------------------------------------------------------------- +# add the library dependencies +#------------------------------------------------------------------------------- + +# OpenMP: +message ( STATUS "OpenMP C libraries: ${OpenMP_C_LIBRARIES} ") +message ( STATUS "OpenMP C include: ${OpenMP_C_INCLUDE_DIRS} ") +message ( STATUS "OpenMP C flags: ${OpenMP_C_FLAGS} ") +target_link_libraries ( coarsen PUBLIC ${OpenMP_C_LIBRARIES} ) +set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS} " ) +set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_C_FLAGS} " ) +include_directories ( ${OpenMP_C_INCLUDE_DIRS} ) + +# libm: +if ( NOT WIN32 ) + target_link_libraries ( coarsen PUBLIC m ) +endif ( ) + +# GraphBLAS: +target_link_libraries ( coarsen PUBLIC ${GRAPHBLAS_LIBRARIES} ) +include_directories ( ${GRAPHBLAS_INCLUDE_DIR} ) + +# LAGraph: +target_link_libraries ( coarsen PUBLIC ${LAGRAPH_LIBRARIES} ) +include_directories ( ${LAGRAPH_INCLUDE_DIR} ) + +# LAGraphX: +target_link_libraries ( coarsen PUBLIC ${LAGRAPHX_LIBRARIES} ) +include_directories ( ${LAGRAPHX_INCLUDE_DIR} ) + diff --git a/experimental/benchmark/coarsening-tests/Makefile b/experimental/benchmark/coarsening-tests/Makefile new file mode 100644 index 0000000000..2bd6d9e765 --- /dev/null +++ b/experimental/benchmark/coarsening-tests/Makefile @@ -0,0 +1,84 @@ +#------------------------------------------------------------------------------- +# my/Makefile +#------------------------------------------------------------------------------- + +# A simple Makefile for LAGraph, which relies on cmake to do the actual build. +# All the work is done in cmake so this Makefile is just for convenience. + +# To compile and run the tests: +# +# make +# make test +# +# To compile with an alternate compiler: +# +# make CC=gcc CXX=g++ +# +# To compile/install for system-wide usage (typically in /usr/local): +# +# make +# sudo make install +# +# To compile/install for elsewhere (for example, in /home/me/mystuff/lib +# and /home/me/mystuff/include), do not use this Makefile. Instead, do: +# +# cd build +# cmake -DCMAKE_INSTALL_PREFIX="/home/me/mystuff" .. +# make +# make install +# +# To clean up the files: +# +# make clean +# +# To uninstall: +# +# make uninstall +# +# To compile and run test coverage: use "make cov". Next, open your browser to +# your local file, LAGraph/build/test_coverage/index.html. Be sure to do "make +# clean" afterwards, and then "make" to compile without test coverage. + +JOBS ?= 8 + +default: library + +library: + ( cd build && cmake $(CMAKE_OPTIONS) .. && $(MAKE) --jobs=${JOBS} ) + +# compile with -g for debugging +debug: + ( cd build && cmake $(CMAKE_OPTIONS) -DCMAKE_BUILD_TYPE=Debug .. && $(MAKE) --jobs=${JOBS} ) + +all: library + +test: library + ( cd build && make test ) + +# just compile after running cmake; do not run cmake again +remake: + ( cd build && $(MAKE) --jobs=${JOBS} ) + +# just run cmake to set things up +setup: + ( cd build ; cmake $(CMAKE_OPTIONS) .. ) + +install: + ( cd build ; $(MAKE) install ) + +# remove any installed libraries and #include files +uninstall: + - xargs rm < build/install_manifest.txt + +# clean, compile, and run test coverage +cov: distclean + ( cd build && cmake -DCOVERAGE=1 .. && $(MAKE) --jobs=${JOBS} && make test_coverage ) + +# remove all files not in the distribution +clean: distclean + +purge: distclean + +distclean: + - $(RM) -rf build/* config/*.tmp + diff --git a/experimental/benchmark/coarsening-tests/build/CMakeCache.txt b/experimental/benchmark/coarsening-tests/build/CMakeCache.txt new file mode 100644 index 0000000000..2e4f68b322 --- /dev/null +++ b/experimental/benchmark/coarsening-tests/build/CMakeCache.txt @@ -0,0 +1,466 @@ +# This is the CMakeCache file. +# For build in directory: /home/vidith/projects/LAGraph/experimental/benchmark/coarsening-tests/build +# It was generated by CMake: /usr/local/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING= + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-10 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-10 + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//C compiler +CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-10 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-10 + +//Flags used by the C compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the C compiler during DEBUG builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the C compiler during RELEASE builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= + +//Value Computed by CMake. +CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/vidith/projects/LAGraph/experimental/benchmark/coarsening-tests/build/CMakeFiles/pkgRedirects + +//User executables (bin) +CMAKE_INSTALL_BINDIR:PATH=bin + +//Read-only architecture-independent data (DATAROOTDIR) +CMAKE_INSTALL_DATADIR:PATH= + +//Read-only architecture-independent data root (share) +CMAKE_INSTALL_DATAROOTDIR:PATH=share + +//Documentation root (DATAROOTDIR/doc/PROJECT_NAME) +CMAKE_INSTALL_DOCDIR:PATH= + +//C header files (include) +CMAKE_INSTALL_INCLUDEDIR:PATH=include + +//Info documentation (DATAROOTDIR/info) +CMAKE_INSTALL_INFODIR:PATH= + +//Object code libraries (lib) +CMAKE_INSTALL_LIBDIR:PATH=lib + +//Program executables (libexec) +CMAKE_INSTALL_LIBEXECDIR:PATH=libexec + +//Locale-dependent data (DATAROOTDIR/locale) +CMAKE_INSTALL_LOCALEDIR:PATH= + +//Modifiable single-machine data (var) +CMAKE_INSTALL_LOCALSTATEDIR:PATH=var + +//Man documentation (DATAROOTDIR/man) +CMAKE_INSTALL_MANDIR:PATH= + +//C header files for non-gcc (/usr/include) +CMAKE_INSTALL_OLDINCLUDEDIR:PATH=/usr/include + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Run-time variable data (LOCALSTATEDIR/run) +CMAKE_INSTALL_RUNSTATEDIR:PATH= + +//System admin executables (sbin) +CMAKE_INSTALL_SBINDIR:PATH=sbin + +//Modifiable architecture-independent data (com) +CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com + +//Read-only single-machine data (etc) +CMAKE_INSTALL_SYSCONFDIR:PATH=etc + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=mytests + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/usr/bin/readelf + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//Path to a program. +CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//The directory containing a CMake configuration file for LAGraph. +LAGraph_DIR:PATH=LAGraph_DIR-NOTFOUND + +//Value Computed by CMake +mytests_BINARY_DIR:STATIC=/home/vidith/projects/LAGraph/experimental/benchmark/coarsening-tests/build + +//Value Computed by CMake +mytests_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +mytests_SOURCE_DIR:STATIC=/home/vidith/projects/LAGraph/experimental/benchmark/coarsening-tests + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/vidith/projects/LAGraph/experimental/benchmark/coarsening-tests/build +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=27 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=8 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/local/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/local/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/local/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Path to cache edit program executable. +CMAKE_EDIT_COMMAND:INTERNAL=/usr/local/bin/ccmake +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/vidith/projects/LAGraph/experimental/benchmark/coarsening-tests +//ADVANCED property for variable: CMAKE_INSTALL_BINDIR +CMAKE_INSTALL_BINDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DATADIR +CMAKE_INSTALL_DATADIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DATAROOTDIR +CMAKE_INSTALL_DATAROOTDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DOCDIR +CMAKE_INSTALL_DOCDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_INCLUDEDIR +CMAKE_INSTALL_INCLUDEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_INFODIR +CMAKE_INSTALL_INFODIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LIBDIR +CMAKE_INSTALL_LIBDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LIBEXECDIR +CMAKE_INSTALL_LIBEXECDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LOCALEDIR +CMAKE_INSTALL_LOCALEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LOCALSTATEDIR +CMAKE_INSTALL_LOCALSTATEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_MANDIR +CMAKE_INSTALL_MANDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_OLDINCLUDEDIR +CMAKE_INSTALL_OLDINCLUDEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_RUNSTATEDIR +CMAKE_INSTALL_RUNSTATEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SBINDIR +CMAKE_INSTALL_SBINDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SHAREDSTATEDIR +CMAKE_INSTALL_SHAREDSTATEDIR-ADVANCED:INTERNAL=1 +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SYSCONFDIR +CMAKE_INSTALL_SYSCONFDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/local/share/cmake-3.27 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_TAPI +CMAKE_TAPI-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//linker supports push/pop state +_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE +//CMAKE_INSTALL_PREFIX during last run +_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX:INTERNAL=/usr/local + diff --git a/experimental/benchmark/coarsening-tests/coarsen.cpp b/experimental/benchmark/coarsening-tests/coarsen.cpp new file mode 100644 index 0000000000..1a18c87d86 --- /dev/null +++ b/experimental/benchmark/coarsening-tests/coarsen.cpp @@ -0,0 +1,54 @@ +extern "C" { + #include "LAGraph.h" + #include "LAGraphX.h" + #include "GraphBLAS.h" +} + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define pb push_back +#define f first +#define s second + +using namespace std; +using ll = long long; + +pair parse_line(string s){ + string ff, ss; + ff = ss = ""; + bool add_to_f, add_to_s; + add_to_f = add_to_s = 0; + for(int i = 0; i < s.size(); i++){ + if(s[i] == '('){ + add_to_f = 1; + } else if (s[i] == ')'){ + add_to_f = 0; + add_to_s = 1; + } + if(add_to_f){ + ff += s[i]; + } + if(add_to_s){ + ss += s[i]; + } + } + reverse(ss.begin(), ss.end()); + while(ss.back() == ' '){ + ss.pop_back(); + } + reverse(ss.begin(), ss.end()); + return {stoi(f), stoi(s)}; +} + +int main(){ + ifstream parent_in("parent.mtx"); + +} \ No newline at end of file diff --git a/experimental/benchmark/coarsening-tests/parent.mtx b/experimental/benchmark/coarsening-tests/parent.mtx new file mode 100644 index 0000000000..ee2cdc9b3f --- /dev/null +++ b/experimental/benchmark/coarsening-tests/parent.mtx @@ -0,0 +1,10001 @@ +GrB_UINT64 vector: n: 10000 entries: 10000 + (0) 0 + (1) 1 + (2) 2 + (3) 3 + (4) 4 + (5) 5 + (6) 6 + (7) 7 + (8) 8 + (9) 9 + (10) 10 + (11) 11 + (12) 12 + (13) 13 + (14) 14 + (15) 15 + (16) 16 + (17) 17 + (18) 18 + (19) 19 + (20) 20 + (21) 21 + (22) 22 + (23) 23 + (24) 24 + (25) 25 + (26) 26 + (27) 27 + (28) 28 + (29) 29 + (30) 30 + (31) 31 + (32) 32 + (33) 33 + (34) 34 + (35) 35 + (36) 36 + (37) 37 + (38) 38 + (39) 39 + (40) 40 + (41) 41 + (42) 42 + (43) 43 + (44) 44 + (45) 45 + (46) 46 + (47) 47 + (48) 48 + (49) 49 + (50) 50 + (51) 51 + (52) 52 + (53) 53 + (54) 54 + (55) 55 + (56) 56 + (57) 57 + (58) 58 + (59) 59 + (60) 60 + (61) 61 + (62) 62 + (63) 63 + (64) 64 + (65) 65 + (66) 66 + (67) 67 + (68) 68 + (69) 69 + (70) 70 + (71) 71 + (72) 72 + (73) 73 + (74) 74 + (75) 75 + (76) 76 + (77) 77 + (78) 78 + (79) 79 + (80) 80 + (81) 81 + (82) 82 + (83) 83 + (84) 84 + (85) 85 + (86) 86 + (87) 87 + (88) 88 + (89) 89 + (90) 90 + (91) 91 + (92) 92 + (93) 93 + (94) 94 + (95) 95 + (96) 96 + (97) 97 + (98) 98 + (99) 99 + (100) 100 + (101) 101 + (102) 102 + (103) 103 + (104) 104 + (105) 105 + (106) 106 + (107) 107 + (108) 108 + (109) 109 + (110) 110 + (111) 111 + (112) 112 + (113) 113 + (114) 114 + (115) 115 + (116) 116 + (117) 117 + (118) 118 + (119) 119 + (120) 120 + (121) 121 + (122) 122 + (123) 123 + (124) 124 + (125) 125 + (126) 126 + (127) 127 + (128) 128 + (129) 129 + (130) 130 + (131) 131 + (132) 132 + (133) 133 + (134) 134 + (135) 135 + (136) 136 + (137) 137 + (138) 138 + (139) 139 + (140) 140 + (141) 141 + (142) 142 + (143) 143 + (144) 144 + (145) 145 + (146) 146 + (147) 147 + (148) 148 + (149) 149 + (150) 150 + (151) 151 + (152) 152 + (153) 153 + (154) 154 + (155) 155 + (156) 156 + (157) 157 + (158) 158 + (159) 159 + (160) 160 + (161) 161 + (162) 162 + (163) 163 + (164) 164 + (165) 165 + (166) 166 + (167) 106 + (168) 168 + (169) 169 + (170) 170 + (171) 171 + (172) 172 + (173) 173 + (174) 174 + (175) 175 + (176) 176 + (177) 177 + (178) 178 + (179) 179 + (180) 180 + (181) 181 + (182) 182 + (183) 183 + (184) 184 + (185) 185 + (186) 186 + (187) 187 + (188) 188 + (189) 189 + (190) 190 + (191) 191 + (192) 192 + (193) 193 + (194) 194 + (195) 195 + (196) 107 + (197) 197 + (198) 198 + (199) 199 + (200) 200 + (201) 201 + (202) 202 + (203) 203 + (204) 204 + (205) 205 + (206) 206 + (207) 207 + (208) 208 + (209) 209 + (210) 210 + (211) 211 + (212) 212 + (213) 213 + (214) 214 + (215) 215 + (216) 216 + (217) 217 + (218) 218 + (219) 219 + (220) 220 + (221) 221 + (222) 222 + (223) 223 + (224) 224 + (225) 225 + (226) 226 + (227) 227 + (228) 228 + (229) 229 + (230) 230 + (231) 231 + (232) 232 + (233) 233 + (234) 234 + (235) 235 + (236) 236 + (237) 237 + (238) 238 + (239) 162 + (240) 240 + (241) 241 + (242) 242 + (243) 230 + (244) 244 + (245) 245 + (246) 246 + (247) 247 + (248) 248 + (249) 249 + (250) 250 + (251) 251 + (252) 252 + (253) 253 + (254) 254 + (255) 255 + (256) 256 + (257) 257 + (258) 258 + (259) 259 + (260) 260 + (261) 261 + (262) 262 + (263) 263 + (264) 264 + (265) 265 + (266) 266 + (267) 267 + (268) 268 + (269) 269 + (270) 270 + (271) 271 + (272) 272 + (273) 273 + (274) 274 + (275) 275 + (276) 276 + (277) 277 + (278) 278 + (279) 279 + (280) 280 + (281) 281 + (282) 282 + (283) 283 + (284) 284 + (285) 285 + (286) 286 + (287) 287 + (288) 288 + (289) 289 + (290) 290 + (291) 291 + (292) 292 + (293) 293 + (294) 294 + (295) 295 + (296) 296 + (297) 297 + (298) 298 + (299) 299 + (300) 300 + (301) 301 + (302) 302 + (303) 303 + (304) 304 + (305) 305 + (306) 306 + (307) 307 + (308) 308 + (309) 309 + (310) 310 + (311) 311 + (312) 312 + (313) 313 + (314) 314 + (315) 315 + (316) 316 + (317) 317 + (318) 318 + (319) 319 + (320) 320 + (321) 321 + (322) 95 + (323) 323 + (324) 324 + (325) 325 + (326) 326 + (327) 327 + (328) 328 + (329) 329 + (330) 330 + (331) 331 + (332) 332 + (333) 222 + (334) 334 + (335) 335 + (336) 336 + (337) 337 + (338) 338 + (339) 339 + (340) 340 + (341) 64 + (342) 342 + (343) 343 + (344) 344 + (345) 345 + (346) 346 + (347) 347 + (348) 348 + (349) 349 + (350) 205 + (351) 351 + (352) 352 + (353) 353 + (354) 354 + (355) 355 + (356) 356 + (357) 48 + (358) 358 + (359) 359 + (360) 360 + (361) 361 + (362) 362 + (363) 363 + (364) 364 + (365) 365 + (366) 366 + (367) 367 + (368) 368 + (369) 369 + (370) 370 + (371) 371 + (372) 372 + (373) 373 + (374) 374 + (375) 375 + (376) 376 + (377) 377 + (378) 378 + (379) 379 + (380) 380 + (381) 381 + (382) 382 + (383) 383 + (384) 384 + (385) 385 + (386) 386 + (387) 387 + (388) 388 + (389) 389 + (390) 390 + (391) 391 + (392) 392 + (393) 393 + (394) 394 + (395) 395 + (396) 396 + (397) 397 + (398) 398 + (399) 399 + (400) 400 + (401) 401 + (402) 402 + (403) 403 + (404) 404 + (405) 405 + (406) 406 + (407) 407 + (408) 408 + (409) 409 + (410) 410 + (411) 411 + (412) 412 + (413) 413 + (414) 414 + (415) 415 + (416) 416 + (417) 417 + (418) 418 + (419) 419 + (420) 420 + (421) 421 + (422) 422 + (423) 423 + (424) 269 + (425) 425 + (426) 426 + (427) 427 + (428) 428 + (429) 429 + (430) 430 + (431) 431 + (432) 432 + (433) 433 + (434) 434 + (435) 435 + (436) 436 + (437) 437 + (438) 438 + (439) 439 + (440) 440 + (441) 441 + (442) 442 + (443) 443 + (444) 444 + (445) 445 + (446) 446 + (447) 447 + (448) 448 + (449) 449 + (450) 450 + (451) 451 + (452) 452 + (453) 453 + (454) 454 + (455) 455 + (456) 456 + (457) 457 + (458) 458 + (459) 459 + (460) 460 + (461) 461 + (462) 462 + (463) 463 + (464) 464 + (465) 465 + (466) 466 + (467) 467 + (468) 468 + (469) 16 + (470) 470 + (471) 471 + (472) 472 + (473) 473 + (474) 345 + (475) 475 + (476) 476 + (477) 477 + (478) 478 + (479) 479 + (480) 480 + (481) 481 + (482) 482 + (483) 483 + (484) 484 + (485) 485 + (486) 486 + (487) 487 + (488) 488 + (489) 489 + (490) 490 + (491) 491 + (492) 492 + (493) 493 + (494) 494 + (495) 495 + (496) 496 + (497) 497 + (498) 498 + (499) 499 + (500) 500 + (501) 501 + (502) 502 + (503) 503 + (504) 504 + (505) 505 + (506) 506 + (507) 507 + (508) 508 + (509) 509 + (510) 510 + (511) 511 + (512) 512 + (513) 332 + (514) 514 + (515) 515 + (516) 516 + (517) 517 + (518) 518 + (519) 519 + (520) 520 + (521) 521 + (522) 522 + (523) 523 + (524) 524 + (525) 525 + (526) 526 + (527) 527 + (528) 528 + (529) 529 + (530) 447 + (531) 531 + (532) 532 + (533) 533 + (534) 534 + (535) 272 + (536) 415 + (537) 537 + (538) 538 + (539) 539 + (540) 540 + (541) 541 + (542) 542 + (543) 543 + (544) 544 + (545) 545 + (546) 546 + (547) 547 + (548) 548 + (549) 512 + (550) 550 + (551) 551 + (552) 552 + (553) 553 + (554) 554 + (555) 555 + (556) 556 + (557) 557 + (558) 558 + (559) 559 + (560) 560 + (561) 561 + (562) 562 + (563) 438 + (564) 564 + (565) 565 + (566) 566 + (567) 567 + (568) 568 + (569) 569 + (570) 570 + (571) 571 + (572) 572 + (573) 573 + (574) 574 + (575) 575 + (576) 576 + (577) 577 + (578) 578 + (579) 579 + (580) 580 + (581) 581 + (582) 582 + (583) 583 + (584) 584 + (585) 585 + (586) 586 + (587) 587 + (588) 588 + (589) 589 + (590) 590 + (591) 591 + (592) 592 + (593) 593 + (594) 594 + (595) 595 + (596) 596 + (597) 597 + (598) 598 + (599) 599 + (600) 600 + (601) 601 + (602) 602 + (603) 603 + (604) 604 + (605) 605 + (606) 606 + (607) 607 + (608) 608 + (609) 609 + (610) 610 + (611) 611 + (612) 612 + (613) 613 + (614) 614 + (615) 314 + (616) 616 + (617) 617 + (618) 618 + (619) 324 + (620) 620 + (621) 621 + (622) 622 + (623) 623 + (624) 624 + (625) 625 + (626) 626 + (627) 627 + (628) 628 + (629) 629 + (630) 630 + (631) 631 + (632) 632 + (633) 633 + (634) 634 + (635) 635 + (636) 636 + (637) 637 + (638) 638 + (639) 639 + (640) 640 + (641) 641 + (642) 642 + (643) 643 + (644) 644 + (645) 645 + (646) 646 + (647) 647 + (648) 648 + (649) 649 + (650) 650 + (651) 651 + (652) 652 + (653) 653 + (654) 654 + (655) 655 + (656) 656 + (657) 657 + (658) 658 + (659) 659 + (660) 660 + (661) 406 + (662) 662 + (663) 663 + (664) 664 + (665) 665 + (666) 169 + (667) 667 + (668) 668 + (669) 669 + (670) 670 + (671) 671 + (672) 672 + (673) 673 + (674) 674 + (675) 675 + (676) 676 + (677) 352 + (678) 678 + (679) 679 + (680) 680 + (681) 681 + (682) 682 + (683) 683 + (684) 684 + (685) 685 + (686) 187 + (687) 687 + (688) 631 + (689) 689 + (690) 690 + (691) 691 + (692) 692 + (693) 693 + (694) 694 + (695) 695 + (696) 696 + (697) 697 + (698) 698 + (699) 699 + (700) 700 + (701) 701 + (702) 702 + (703) 703 + (704) 704 + (705) 705 + (706) 706 + (707) 707 + (708) 571 + (709) 709 + (710) 710 + (711) 711 + (712) 712 + (713) 713 + (714) 714 + (715) 715 + (716) 716 + (717) 717 + (718) 718 + (719) 719 + (720) 720 + (721) 721 + (722) 722 + (723) 723 + (724) 153 + (725) 725 + (726) 726 + (727) 727 + (728) 728 + (729) 729 + (730) 730 + (731) 731 + (732) 732 + (733) 733 + (734) 734 + (735) 735 + (736) 343 + (737) 737 + (738) 738 + (739) 739 + (740) 740 + (741) 741 + (742) 742 + (743) 743 + (744) 744 + (745) 745 + (746) 746 + (747) 747 + (748) 748 + (749) 749 + (750) 750 + (751) 751 + (752) 752 + (753) 753 + (754) 754 + (755) 755 + (756) 756 + (757) 757 + (758) 758 + (759) 759 + (760) 760 + (761) 761 + (762) 762 + (763) 763 + (764) 764 + (765) 765 + (766) 766 + (767) 767 + (768) 768 + (769) 769 + (770) 770 + (771) 771 + (772) 772 + (773) 773 + (774) 774 + (775) 775 + (776) 776 + (777) 777 + (778) 778 + (779) 779 + (780) 780 + (781) 781 + (782) 782 + (783) 783 + (784) 784 + (785) 785 + (786) 786 + (787) 787 + (788) 788 + (789) 789 + (790) 790 + (791) 791 + (792) 792 + (793) 793 + (794) 794 + (795) 795 + (796) 273 + (797) 797 + (798) 798 + (799) 799 + (800) 181 + (801) 801 + (802) 802 + (803) 803 + (804) 804 + (805) 805 + (806) 806 + (807) 807 + (808) 808 + (809) 809 + (810) 810 + (811) 811 + (812) 812 + (813) 813 + (814) 814 + (815) 815 + (816) 816 + (817) 817 + (818) 818 + (819) 819 + (820) 820 + (821) 821 + (822) 822 + (823) 823 + (824) 824 + (825) 825 + (826) 826 + (827) 827 + (828) 828 + (829) 829 + (830) 830 + (831) 831 + (832) 832 + (833) 833 + (834) 834 + (835) 835 + (836) 836 + (837) 837 + (838) 838 + (839) 839 + (840) 511 + (841) 841 + (842) 583 + (843) 843 + (844) 844 + (845) 845 + (846) 846 + (847) 847 + (848) 848 + (849) 849 + (850) 193 + (851) 851 + (852) 852 + (853) 853 + (854) 854 + (855) 855 + (856) 856 + (857) 857 + (858) 858 + (859) 859 + (860) 860 + (861) 861 + (862) 862 + (863) 863 + (864) 864 + (865) 865 + (866) 866 + (867) 867 + (868) 868 + (869) 869 + (870) 870 + (871) 871 + (872) 872 + (873) 873 + (874) 874 + (875) 875 + (876) 876 + (877) 877 + (878) 878 + (879) 879 + (880) 880 + (881) 881 + (882) 882 + (883) 883 + (884) 884 + (885) 885 + (886) 886 + (887) 887 + (888) 888 + (889) 889 + (890) 890 + (891) 891 + (892) 892 + (893) 893 + (894) 894 + (895) 895 + (896) 896 + (897) 897 + (898) 898 + (899) 899 + (900) 900 + (901) 422 + (902) 902 + (903) 903 + (904) 904 + (905) 905 + (906) 906 + (907) 907 + (908) 908 + (909) 909 + (910) 910 + (911) 911 + (912) 912 + (913) 913 + (914) 914 + (915) 915 + (916) 299 + (917) 917 + (918) 918 + (919) 919 + (920) 920 + (921) 921 + (922) 922 + (923) 923 + (924) 924 + (925) 925 + (926) 926 + (927) 927 + (928) 928 + (929) 929 + (930) 930 + (931) 931 + (932) 932 + (933) 933 + (934) 934 + (935) 935 + (936) 936 + (937) 746 + (938) 938 + (939) 939 + (940) 940 + (941) 941 + (942) 942 + (943) 943 + (944) 944 + (945) 945 + (946) 946 + (947) 947 + (948) 948 + (949) 949 + (950) 293 + (951) 951 + (952) 952 + (953) 953 + (954) 954 + (955) 955 + (956) 956 + (957) 957 + (958) 958 + (959) 959 + (960) 960 + (961) 961 + (962) 962 + (963) 963 + (964) 964 + (965) 965 + (966) 966 + (967) 967 + (968) 968 + (969) 969 + (970) 970 + (971) 52 + (972) 972 + (973) 973 + (974) 974 + (975) 975 + (976) 976 + (977) 412 + (978) 978 + (979) 979 + (980) 980 + (981) 981 + (982) 982 + (983) 983 + (984) 984 + (985) 985 + (986) 505 + (987) 987 + (988) 988 + (989) 989 + (990) 541 + (991) 991 + (992) 992 + (993) 993 + (994) 994 + (995) 995 + (996) 996 + (997) 997 + (998) 981 + (999) 999 + (1000) 1000 + (1001) 1001 + (1002) 1002 + (1003) 1003 + (1004) 1004 + (1005) 1005 + (1006) 27 + (1007) 1007 + (1008) 1008 + (1009) 226 + (1010) 1010 + (1011) 1011 + (1012) 1012 + (1013) 1013 + (1014) 483 + (1015) 1015 + (1016) 1016 + (1017) 1017 + (1018) 1018 + (1019) 1019 + (1020) 1020 + (1021) 1021 + (1022) 1022 + (1023) 1023 + (1024) 997 + (1025) 1025 + (1026) 1026 + (1027) 1027 + (1028) 1028 + (1029) 1029 + (1030) 1030 + (1031) 1031 + (1032) 1032 + (1033) 90 + (1034) 1034 + (1035) 1035 + (1036) 1036 + (1037) 1037 + (1038) 1038 + (1039) 1039 + (1040) 1040 + (1041) 1041 + (1042) 895 + (1043) 1043 + (1044) 1044 + (1045) 1045 + (1046) 1046 + (1047) 1047 + (1048) 1048 + (1049) 1049 + (1050) 1050 + (1051) 1051 + (1052) 1052 + (1053) 1053 + (1054) 1054 + (1055) 968 + (1056) 1056 + (1057) 1057 + (1058) 1058 + (1059) 1059 + (1060) 1060 + (1061) 1061 + (1062) 1062 + (1063) 1063 + (1064) 1064 + (1065) 1065 + (1066) 439 + (1067) 1067 + (1068) 1068 + (1069) 1069 + (1070) 1070 + (1071) 1071 + (1072) 1072 + (1073) 1073 + (1074) 1074 + (1075) 1075 + (1076) 1076 + (1077) 1077 + (1078) 1078 + (1079) 1079 + (1080) 1080 + (1081) 1081 + (1082) 1082 + (1083) 1083 + (1084) 1084 + (1085) 40 + (1086) 1086 + (1087) 856 + (1088) 1088 + (1089) 1089 + (1090) 1090 + (1091) 1091 + (1092) 249 + (1093) 1093 + (1094) 1094 + (1095) 1095 + (1096) 1096 + (1097) 1097 + (1098) 1098 + (1099) 1099 + (1100) 1100 + (1101) 1101 + (1102) 1102 + (1103) 1103 + (1104) 1104 + (1105) 1105 + (1106) 1106 + (1107) 1107 + (1108) 409 + (1109) 1109 + (1110) 1110 + (1111) 1111 + (1112) 1112 + (1113) 346 + (1114) 1114 + (1115) 1115 + (1116) 1116 + (1117) 1117 + (1118) 1118 + (1119) 1119 + (1120) 1120 + (1121) 860 + (1122) 1122 + (1123) 1123 + (1124) 1124 + (1125) 918 + (1126) 1126 + (1127) 778 + (1128) 1128 + (1129) 1129 + (1130) 1130 + (1131) 1131 + (1132) 1132 + (1133) 1133 + (1134) 1134 + (1135) 1135 + (1136) 69 + (1137) 764 + (1138) 1138 + (1139) 268 + (1140) 1140 + (1141) 1141 + (1142) 1142 + (1143) 1143 + (1144) 1144 + (1145) 122 + (1146) 1146 + (1147) 1147 + (1148) 1148 + (1149) 1149 + (1150) 1150 + (1151) 1151 + (1152) 1152 + (1153) 1153 + (1154) 1154 + (1155) 1155 + (1156) 1156 + (1157) 1157 + (1158) 1158 + (1159) 1159 + (1160) 1160 + (1161) 1161 + (1162) 1162 + (1163) 1163 + (1164) 1164 + (1165) 1165 + (1166) 1166 + (1167) 1167 + (1168) 1168 + (1169) 1169 + (1170) 1170 + (1171) 908 + (1172) 1172 + (1173) 336 + (1174) 1174 + (1175) 1130 + (1176) 1176 + (1177) 1177 + (1178) 1178 + (1179) 1179 + (1180) 1180 + (1181) 1181 + (1182) 1182 + (1183) 1183 + (1184) 1184 + (1185) 1185 + (1186) 1186 + (1187) 1187 + (1188) 1188 + (1189) 1189 + (1190) 1190 + (1191) 1191 + (1192) 1192 + (1193) 1193 + (1194) 1194 + (1195) 1195 + (1196) 1196 + (1197) 1197 + (1198) 1198 + (1199) 1199 + (1200) 1200 + (1201) 1201 + (1202) 1202 + (1203) 1203 + (1204) 1204 + (1205) 1205 + (1206) 709 + (1207) 1207 + (1208) 1208 + (1209) 1209 + (1210) 39 + (1211) 1211 + (1212) 1212 + (1213) 1213 + (1214) 1214 + (1215) 66 + (1216) 1216 + (1217) 1217 + (1218) 1218 + (1219) 1219 + (1220) 873 + (1221) 1221 + (1222) 1222 + (1223) 1223 + (1224) 1224 + (1225) 1225 + (1226) 1226 + (1227) 1227 + (1228) 1228 + (1229) 1229 + (1230) 1230 + (1231) 1231 + (1232) 1232 + (1233) 514 + (1234) 1234 + (1235) 1235 + (1236) 1236 + (1237) 1237 + (1238) 1238 + (1239) 1239 + (1240) 1240 + (1241) 1241 + (1242) 1242 + (1243) 1243 + (1244) 1244 + (1245) 1245 + (1246) 1246 + (1247) 1247 + (1248) 533 + (1249) 1249 + (1250) 1250 + (1251) 1251 + (1252) 1252 + (1253) 1253 + (1254) 1254 + (1255) 1255 + (1256) 669 + (1257) 1257 + (1258) 1129 + (1259) 1259 + (1260) 1260 + (1261) 1261 + (1262) 1262 + (1263) 1263 + (1264) 1264 + (1265) 1154 + (1266) 1266 + (1267) 1267 + (1268) 1268 + (1269) 1269 + (1270) 1270 + (1271) 1271 + (1272) 1272 + (1273) 1273 + (1274) 1274 + (1275) 1275 + (1276) 1276 + (1277) 1277 + (1278) 1278 + (1279) 1279 + (1280) 1280 + (1281) 1281 + (1282) 1282 + (1283) 1283 + (1284) 329 + (1285) 1285 + (1286) 707 + (1287) 1287 + (1288) 1288 + (1289) 1289 + (1290) 1290 + (1291) 1291 + (1292) 1292 + (1293) 1293 + (1294) 1294 + (1295) 1295 + (1296) 1296 + (1297) 1297 + (1298) 207 + (1299) 1299 + (1300) 1300 + (1301) 1301 + (1302) 1302 + (1303) 1303 + (1304) 1304 + (1305) 1305 + (1306) 1306 + (1307) 1307 + (1308) 1308 + (1309) 1309 + (1310) 1310 + (1311) 1311 + (1312) 1312 + (1313) 1313 + (1314) 1314 + (1315) 1315 + (1316) 1316 + (1317) 1317 + (1318) 1318 + (1319) 1319 + (1320) 1320 + (1321) 820 + (1322) 1322 + (1323) 1323 + (1324) 1324 + (1325) 1325 + (1326) 1326 + (1327) 1327 + (1328) 1328 + (1329) 1329 + (1330) 1279 + (1331) 1331 + (1332) 1332 + (1333) 1333 + (1334) 1334 + (1335) 1335 + (1336) 1336 + (1337) 1337 + (1338) 1338 + (1339) 1339 + (1340) 1340 + (1341) 1341 + (1342) 1342 + (1343) 1343 + (1344) 1344 + (1345) 1345 + (1346) 1346 + (1347) 1347 + (1348) 1348 + (1349) 1349 + (1350) 1350 + (1351) 1351 + (1352) 1352 + (1353) 1353 + (1354) 1354 + (1355) 1355 + (1356) 1356 + (1357) 664 + (1358) 1358 + (1359) 1359 + (1360) 1360 + (1361) 706 + (1362) 17 + (1363) 1363 + (1364) 203 + (1365) 1365 + (1366) 1366 + (1367) 1367 + (1368) 1368 + (1369) 1369 + (1370) 1370 + (1371) 1371 + (1372) 1372 + (1373) 1373 + (1374) 1374 + (1375) 1375 + (1376) 1376 + (1377) 1377 + (1378) 1378 + (1379) 1379 + (1380) 1380 + (1381) 1381 + (1382) 1382 + (1383) 1383 + (1384) 1384 + (1385) 1385 + (1386) 1386 + (1387) 1387 + (1388) 657 + (1389) 1389 + (1390) 1390 + (1391) 1391 + (1392) 1392 + (1393) 1393 + (1394) 129 + (1395) 1395 + (1396) 1225 + (1397) 1397 + (1398) 531 + (1399) 1399 + (1400) 719 + (1401) 1401 + (1402) 1402 + (1403) 1403 + (1404) 1091 + (1405) 1405 + (1406) 1406 + (1407) 1407 + (1408) 1408 + (1409) 1409 + (1410) 1410 + (1411) 380 + (1412) 1412 + (1413) 1413 + (1414) 1414 + (1415) 1415 + (1416) 1416 + (1417) 1417 + (1418) 487 + (1419) 1419 + (1420) 1420 + (1421) 1421 + (1422) 1422 + (1423) 1423 + (1424) 1063 + (1425) 1425 + (1426) 1426 + (1427) 1427 + (1428) 1428 + (1429) 1429 + (1430) 645 + (1431) 570 + (1432) 1432 + (1433) 506 + (1434) 1434 + (1435) 1435 + (1436) 1025 + (1437) 1437 + (1438) 1438 + (1439) 1439 + (1440) 1440 + (1441) 1441 + (1442) 1442 + (1443) 1443 + (1444) 1444 + (1445) 1190 + (1446) 1446 + (1447) 1447 + (1448) 1448 + (1449) 1449 + (1450) 1450 + (1451) 1451 + (1452) 1185 + (1453) 1453 + (1454) 1454 + (1455) 1455 + (1456) 1456 + (1457) 1010 + (1458) 1458 + (1459) 1459 + (1460) 1460 + (1461) 1461 + (1462) 1462 + (1463) 1463 + (1464) 1464 + (1465) 1465 + (1466) 1466 + (1467) 1467 + (1468) 1468 + (1469) 296 + (1470) 1470 + (1471) 1471 + (1472) 1472 + (1473) 1473 + (1474) 1474 + (1475) 1475 + (1476) 1147 + (1477) 1477 + (1478) 1478 + (1479) 1479 + (1480) 543 + (1481) 1481 + (1482) 903 + (1483) 1483 + (1484) 915 + (1485) 1485 + (1486) 1486 + (1487) 936 + (1488) 1488 + (1489) 1489 + (1490) 1490 + (1491) 1491 + (1492) 1492 + (1493) 1493 + (1494) 1494 + (1495) 1495 + (1496) 1496 + (1497) 1497 + (1498) 1498 + (1499) 1499 + (1500) 1500 + (1501) 1501 + (1502) 1502 + (1503) 1503 + (1504) 597 + (1505) 1505 + (1506) 1506 + (1507) 1507 + (1508) 1508 + (1509) 880 + (1510) 1510 + (1511) 1511 + (1512) 1512 + (1513) 1513 + (1514) 1514 + (1515) 1515 + (1516) 1281 + (1517) 1517 + (1518) 1518 + (1519) 1519 + (1520) 1520 + (1521) 1521 + (1522) 1522 + (1523) 1523 + (1524) 1524 + (1525) 1525 + (1526) 1526 + (1527) 1527 + (1528) 1528 + (1529) 1529 + (1530) 1530 + (1531) 1531 + (1532) 1532 + (1533) 1533 + (1534) 1534 + (1535) 1535 + (1536) 1536 + (1537) 1537 + (1538) 1538 + (1539) 1539 + (1540) 1540 + (1541) 1541 + (1542) 1542 + (1543) 1543 + (1544) 1544 + (1545) 1545 + (1546) 1546 + (1547) 1547 + (1548) 1548 + (1549) 1549 + (1550) 1550 + (1551) 1551 + (1552) 1077 + (1553) 1553 + (1554) 1455 + (1555) 1555 + (1556) 1556 + (1557) 1557 + (1558) 1558 + (1559) 1559 + (1560) 1560 + (1561) 1561 + (1562) 1367 + (1563) 1563 + (1564) 1564 + (1565) 1565 + (1566) 1566 + (1567) 1567 + (1568) 503 + (1569) 1569 + (1570) 1570 + (1571) 1571 + (1572) 921 + (1573) 1573 + (1574) 757 + (1575) 1575 + (1576) 1576 + (1577) 1577 + (1578) 1578 + (1579) 1579 + (1580) 1580 + (1581) 1581 + (1582) 1582 + (1583) 1583 + (1584) 421 + (1585) 668 + (1586) 1586 + (1587) 1587 + (1588) 1588 + (1589) 790 + (1590) 1590 + (1591) 1591 + (1592) 1592 + (1593) 1593 + (1594) 1594 + (1595) 1595 + (1596) 1596 + (1597) 1597 + (1598) 1598 + (1599) 1599 + (1600) 1600 + (1601) 290 + (1602) 1602 + (1603) 1603 + (1604) 1604 + (1605) 1605 + (1606) 1606 + (1607) 1607 + (1608) 1608 + (1609) 1609 + (1610) 1610 + (1611) 1611 + (1612) 1612 + (1613) 104 + (1614) 139 + (1615) 1615 + (1616) 1616 + (1617) 1617 + (1618) 1618 + (1619) 1619 + (1620) 1620 + (1621) 1621 + (1622) 1622 + (1623) 1623 + (1624) 1624 + (1625) 276 + (1626) 1626 + (1627) 1627 + (1628) 1105 + (1629) 984 + (1630) 1630 + (1631) 1631 + (1632) 1632 + (1633) 1633 + (1634) 1617 + (1635) 1635 + (1636) 1636 + (1637) 1158 + (1638) 1638 + (1639) 1639 + (1640) 1640 + (1641) 1641 + (1642) 1642 + (1643) 1643 + (1644) 1644 + (1645) 1645 + (1646) 1646 + (1647) 434 + (1648) 1648 + (1649) 1649 + (1650) 1650 + (1651) 1651 + (1652) 395 + (1653) 1653 + (1654) 1654 + (1655) 1655 + (1656) 1439 + (1657) 1657 + (1658) 1658 + (1659) 1659 + (1660) 1660 + (1661) 1661 + (1662) 1662 + (1663) 1663 + (1664) 1664 + (1665) 1665 + (1666) 1666 + (1667) 1667 + (1668) 1668 + (1669) 1669 + (1670) 1670 + (1671) 1671 + (1672) 1672 + (1673) 1673 + (1674) 1674 + (1675) 1675 + (1676) 1676 + (1677) 1677 + (1678) 1678 + (1679) 1679 + (1680) 1680 + (1681) 1681 + (1682) 1682 + (1683) 1683 + (1684) 235 + (1685) 1685 + (1686) 1555 + (1687) 1687 + (1688) 1688 + (1689) 1689 + (1690) 1690 + (1691) 718 + (1692) 1692 + (1693) 1512 + (1694) 1694 + (1695) 450 + (1696) 1696 + (1697) 1697 + (1698) 1698 + (1699) 1699 + (1700) 1700 + (1701) 1701 + (1702) 1702 + (1703) 1703 + (1704) 1704 + (1705) 1705 + (1706) 1706 + (1707) 622 + (1708) 1708 + (1709) 1709 + (1710) 1710 + (1711) 1711 + (1712) 1712 + (1713) 1713 + (1714) 31 + (1715) 60 + (1716) 1716 + (1717) 1717 + (1718) 1718 + (1719) 154 + (1720) 1720 + (1721) 1721 + (1722) 1722 + (1723) 1723 + (1724) 1724 + (1725) 1725 + (1726) 1726 + (1727) 1727 + (1728) 519 + (1729) 1724 + (1730) 1730 + (1731) 1731 + (1732) 1732 + (1733) 1733 + (1734) 1734 + (1735) 1735 + (1736) 1736 + (1737) 1737 + (1738) 1738 + (1739) 1739 + (1740) 1740 + (1741) 1741 + (1742) 1742 + (1743) 1743 + (1744) 1744 + (1745) 1745 + (1746) 1746 + (1747) 1747 + (1748) 1748 + (1749) 1749 + (1750) 1750 + (1751) 1751 + (1752) 1752 + (1753) 1124 + (1754) 1754 + (1755) 638 + (1756) 1756 + (1757) 1757 + (1758) 1758 + (1759) 1759 + (1760) 1760 + (1761) 1761 + (1762) 1762 + (1763) 1763 + (1764) 1764 + (1765) 320 + (1766) 1766 + (1767) 1767 + (1768) 1768 + (1769) 1769 + (1770) 1770 + (1771) 1771 + (1772) 1772 + (1773) 1773 + (1774) 1774 + (1775) 1775 + (1776) 1776 + (1777) 1777 + (1778) 559 + (1779) 38 + (1780) 1780 + (1781) 1200 + (1782) 117 + (1783) 1783 + (1784) 1784 + (1785) 1785 + (1786) 1786 + (1787) 142 + (1788) 1 + (1789) 1789 + (1790) 1790 + (1791) 1791 + (1792) 1792 + (1793) 1793 + (1794) 1794 + (1795) 1795 + (1796) 1796 + (1797) 1797 + (1798) 693 + (1799) 1799 + (1800) 1800 + (1801) 1801 + (1802) 1802 + (1803) 1803 + (1804) 1804 + (1805) 1805 + (1806) 1806 + (1807) 1807 + (1808) 1808 + (1809) 1244 + (1810) 1810 + (1811) 1811 + (1812) 1812 + (1813) 1813 + (1814) 1814 + (1815) 1815 + (1816) 1816 + (1817) 1817 + (1818) 1818 + (1819) 1819 + (1820) 1820 + (1821) 1821 + (1822) 1822 + (1823) 1823 + (1824) 1824 + (1825) 146 + (1826) 1826 + (1827) 1596 + (1828) 1828 + (1829) 1829 + (1830) 1813 + (1831) 1831 + (1832) 1832 + (1833) 1833 + (1834) 1834 + (1835) 1835 + (1836) 1836 + (1837) 1837 + (1838) 1838 + (1839) 1839 + (1840) 1840 + (1841) 1841 + (1842) 1842 + (1843) 44 + (1844) 1195 + (1845) 1845 + (1846) 995 + (1847) 1847 + (1848) 1848 + (1849) 1849 + (1850) 777 + (1851) 1851 + (1852) 1852 + (1853) 1853 + (1854) 587 + (1855) 1855 + (1856) 1856 + (1857) 12 + (1858) 1858 + (1859) 1859 + (1860) 1305 + (1861) 1861 + (1862) 1862 + (1863) 1863 + (1864) 1864 + (1865) 1865 + (1866) 1866 + (1867) 1867 + (1868) 1868 + (1869) 824 + (1870) 1870 + (1871) 1871 + (1872) 1872 + (1873) 1873 + (1874) 1874 + (1875) 1875 + (1876) 1876 + (1877) 1877 + (1878) 1878 + (1879) 1879 + (1880) 1880 + (1881) 1881 + (1882) 1882 + (1883) 846 + (1884) 1884 + (1885) 1885 + (1886) 1886 + (1887) 1887 + (1888) 1888 + (1889) 1889 + (1890) 81 + (1891) 1164 + (1892) 1892 + (1893) 1893 + (1894) 1894 + (1895) 1895 + (1896) 1896 + (1897) 1897 + (1898) 1898 + (1899) 1899 + (1900) 897 + (1901) 1901 + (1902) 1902 + (1903) 1903 + (1904) 1904 + (1905) 1905 + (1906) 961 + (1907) 1907 + (1908) 1908 + (1909) 1909 + (1910) 1910 + (1911) 1911 + (1912) 1912 + (1913) 1913 + (1914) 1914 + (1915) 1915 + (1916) 1916 + (1917) 1917 + (1918) 125 + (1919) 1919 + (1920) 1920 + (1921) 1921 + (1922) 1922 + (1923) 1923 + (1924) 1051 + (1925) 1925 + (1926) 1926 + (1927) 1920 + (1928) 1928 + (1929) 1929 + (1930) 1930 + (1931) 1931 + (1932) 787 + (1933) 1933 + (1934) 1934 + (1935) 552 + (1936) 1936 + (1937) 1937 + (1938) 1938 + (1939) 1939 + (1940) 1940 + (1941) 1478 + (1942) 1942 + (1943) 1943 + (1944) 1944 + (1945) 1945 + (1946) 1946 + (1947) 1947 + (1948) 1948 + (1949) 1949 + (1950) 1950 + (1951) 1032 + (1952) 1952 + (1953) 1953 + (1954) 1954 + (1955) 1955 + (1956) 1803 + (1957) 1957 + (1958) 1958 + (1959) 1959 + (1960) 1960 + (1961) 42 + (1962) 599 + (1963) 1963 + (1964) 1964 + (1965) 1965 + (1966) 1966 + (1967) 98 + (1968) 1968 + (1969) 1969 + (1970) 1970 + (1971) 1971 + (1972) 1972 + (1973) 726 + (1974) 323 + (1975) 1514 + (1976) 1775 + (1977) 1977 + (1978) 1978 + (1979) 1979 + (1980) 1980 + (1981) 1981 + (1982) 1982 + (1983) 1983 + (1984) 1984 + (1985) 1985 + (1986) 1986 + (1987) 710 + (1988) 1988 + (1989) 1989 + (1990) 1990 + (1991) 1991 + (1992) 1992 + (1993) 964 + (1994) 1895 + (1995) 1995 + (1996) 1996 + (1997) 1997 + (1998) 1998 + (1999) 1999 + (2000) 2000 + (2001) 2001 + (2002) 2002 + (2003) 876 + (2004) 1657 + (2005) 2005 + (2006) 963 + (2007) 2007 + (2008) 2008 + (2009) 2009 + (2010) 2010 + (2011) 2011 + (2012) 1651 + (2013) 2013 + (2014) 2014 + (2015) 2015 + (2016) 2016 + (2017) 2017 + (2018) 1535 + (2019) 2019 + (2020) 1817 + (2021) 2021 + (2022) 691 + (2023) 2023 + (2024) 2024 + (2025) 2025 + (2026) 2026 + (2027) 2027 + (2028) 2028 + (2029) 2029 + (2030) 2030 + (2031) 2031 + (2032) 2032 + (2033) 2033 + (2034) 2034 + (2035) 2035 + (2036) 2036 + (2037) 2037 + (2038) 2038 + (2039) 2039 + (2040) 2040 + (2041) 2041 + (2042) 2042 + (2043) 2043 + (2044) 2044 + (2045) 2045 + (2046) 2046 + (2047) 2047 + (2048) 2048 + (2049) 754 + (2050) 2050 + (2051) 2051 + (2052) 2052 + (2053) 2053 + (2054) 2054 + (2055) 2055 + (2056) 2056 + (2057) 26 + (2058) 2058 + (2059) 516 + (2060) 2060 + (2061) 2061 + (2062) 2062 + (2063) 2063 + (2064) 453 + (2065) 2065 + (2066) 2066 + (2067) 2067 + (2068) 491 + (2069) 2069 + (2070) 2070 + (2071) 768 + (2072) 2072 + (2073) 2073 + (2074) 2074 + (2075) 2075 + (2076) 705 + (2077) 2077 + (2078) 2078 + (2079) 1224 + (2080) 2080 + (2081) 2081 + (2082) 2082 + (2083) 1110 + (2084) 2084 + (2085) 2085 + (2086) 2086 + (2087) 2087 + (2088) 2088 + (2089) 2089 + (2090) 2090 + (2091) 404 + (2092) 2092 + (2093) 2093 + (2094) 2094 + (2095) 2095 + (2096) 229 + (2097) 2097 + (2098) 2098 + (2099) 2099 + (2100) 2100 + (2101) 2101 + (2102) 1059 + (2103) 1520 + (2104) 685 + (2105) 2105 + (2106) 2106 + (2107) 2107 + (2108) 2108 + (2109) 2109 + (2110) 1403 + (2111) 2111 + (2112) 2112 + (2113) 2034 + (2114) 2114 + (2115) 2115 + (2116) 2116 + (2117) 2117 + (2118) 2118 + (2119) 2119 + (2120) 2120 + (2121) 2121 + (2122) 2122 + (2123) 2123 + (2124) 2124 + (2125) 232 + (2126) 2126 + (2127) 1730 + (2128) 1621 + (2129) 2129 + (2130) 257 + (2131) 2131 + (2132) 2132 + (2133) 2133 + (2134) 2134 + (2135) 2135 + (2136) 2136 + (2137) 2137 + (2138) 2138 + (2139) 2139 + (2140) 2140 + (2141) 2141 + (2142) 2142 + (2143) 2143 + (2144) 2144 + (2145) 2145 + (2146) 2146 + (2147) 1366 + (2148) 2148 + (2149) 2149 + (2150) 2150 + (2151) 1738 + (2152) 2152 + (2153) 2153 + (2154) 1545 + (2155) 2155 + (2156) 2156 + (2157) 2157 + (2158) 1451 + (2159) 2159 + (2160) 2160 + (2161) 2161 + (2162) 2162 + (2163) 956 + (2164) 2164 + (2165) 1456 + (2166) 2166 + (2167) 2167 + (2168) 2168 + (2169) 2169 + (2170) 2170 + (2171) 2171 + (2172) 1761 + (2173) 2173 + (2174) 2174 + (2175) 24 + (2176) 727 + (2177) 988 + (2178) 2178 + (2179) 2179 + (2180) 2180 + (2181) 2181 + (2182) 2182 + (2183) 2183 + (2184) 1167 + (2185) 2185 + (2186) 2186 + (2187) 68 + (2188) 2188 + (2189) 1630 + (2190) 2190 + (2191) 2191 + (2192) 2192 + (2193) 2193 + (2194) 2194 + (2195) 2195 + (2196) 2196 + (2197) 2197 + (2198) 2198 + (2199) 1824 + (2200) 2200 + (2201) 2201 + (2202) 1271 + (2203) 2203 + (2204) 2204 + (2205) 2205 + (2206) 989 + (2207) 2207 + (2208) 2208 + (2209) 2209 + (2210) 2210 + (2211) 1004 + (2212) 1243 + (2213) 1382 + (2214) 2214 + (2215) 2215 + (2216) 2216 + (2217) 2217 + (2218) 2218 + (2219) 1422 + (2220) 2220 + (2221) 2221 + (2222) 795 + (2223) 2223 + (2224) 965 + (2225) 2225 + (2226) 2226 + (2227) 2227 + (2228) 2228 + (2229) 2229 + (2230) 2230 + (2231) 2231 + (2232) 1741 + (2233) 2233 + (2234) 2234 + (2235) 2235 + (2236) 1587 + (2237) 2237 + (2238) 2238 + (2239) 2239 + (2240) 2240 + (2241) 722 + (2242) 319 + (2243) 28 + (2244) 2244 + (2245) 2245 + (2246) 2246 + (2247) 1760 + (2248) 2248 + (2249) 2249 + (2250) 1945 + (2251) 1876 + (2252) 2252 + (2253) 2253 + (2254) 1435 + (2255) 2255 + (2256) 2256 + (2257) 2257 + (2258) 2258 + (2259) 1580 + (2260) 2260 + (2261) 2261 + (2262) 2262 + (2263) 2263 + (2264) 2264 + (2265) 1588 + (2266) 2266 + (2267) 2267 + (2268) 2268 + (2269) 2269 + (2270) 2270 + (2271) 2271 + (2272) 149 + (2273) 2273 + (2274) 2274 + (2275) 1852 + (2276) 2276 + (2277) 2277 + (2278) 2278 + (2279) 2279 + (2280) 2280 + (2281) 2281 + (2282) 2282 + (2283) 2283 + (2284) 2284 + (2285) 2285 + (2286) 2286 + (2287) 1784 + (2288) 2288 + (2289) 2289 + (2290) 2290 + (2291) 1260 + (2292) 2292 + (2293) 1664 + (2294) 1925 + (2295) 2295 + (2296) 2296 + (2297) 2297 + (2298) 2298 + (2299) 2299 + (2300) 2300 + (2301) 2301 + (2302) 2302 + (2303) 2303 + (2304) 2304 + (2305) 2305 + (2306) 2306 + (2307) 2060 + (2308) 2308 + (2309) 2309 + (2310) 2310 + (2311) 2311 + (2312) 2312 + (2313) 2313 + (2314) 983 + (2315) 1332 + (2316) 2316 + (2317) 2317 + (2318) 2318 + (2319) 2319 + (2320) 2320 + (2321) 2321 + (2322) 2191 + (2323) 2323 + (2324) 2324 + (2325) 2325 + (2326) 2326 + (2327) 1018 + (2328) 2328 + (2329) 2329 + (2330) 2330 + (2331) 2331 + (2332) 2332 + (2333) 2333 + (2334) 2334 + (2335) 2335 + (2336) 2336 + (2337) 2337 + (2338) 2338 + (2339) 2166 + (2340) 2340 + (2341) 2341 + (2342) 2342 + (2343) 2343 + (2344) 2344 + (2345) 1914 + (2346) 2346 + (2347) 2347 + (2348) 2348 + (2349) 2349 + (2350) 2350 + (2351) 2351 + (2352) 2352 + (2353) 2353 + (2354) 2354 + (2355) 2355 + (2356) 2356 + (2357) 2357 + (2358) 2358 + (2359) 2359 + (2360) 2360 + (2361) 2361 + (2362) 2362 + (2363) 2363 + (2364) 225 + (2365) 2365 + (2366) 2366 + (2367) 930 + (2368) 2368 + (2369) 2369 + (2370) 2370 + (2371) 2371 + (2372) 1865 + (2373) 2373 + (2374) 2374 + (2375) 2375 + (2376) 1341 + (2377) 2377 + (2378) 2378 + (2379) 1438 + (2380) 2380 + (2381) 2381 + (2382) 2382 + (2383) 2383 + (2384) 2384 + (2385) 2385 + (2386) 2386 + (2387) 2387 + (2388) 2388 + (2389) 758 + (2390) 2390 + (2391) 608 + (2392) 2392 + (2393) 484 + (2394) 2394 + (2395) 2395 + (2396) 2396 + (2397) 2397 + (2398) 2398 + (2399) 2399 + (2400) 2400 + (2401) 1234 + (2402) 2402 + (2403) 2403 + (2404) 91 + (2405) 2405 + (2406) 2406 + (2407) 2407 + (2408) 2408 + (2409) 2409 + (2410) 2410 + (2411) 2411 + (2412) 2412 + (2413) 2413 + (2414) 2414 + (2415) 2415 + (2416) 2416 + (2417) 2417 + (2418) 2418 + (2419) 2419 + (2420) 2420 + (2421) 2421 + (2422) 35 + (2423) 2423 + (2424) 2424 + (2425) 2425 + (2426) 2426 + (2427) 1044 + (2428) 2428 + (2429) 2429 + (2430) 2430 + (2431) 2136 + (2432) 2432 + (2433) 2433 + (2434) 2434 + (2435) 2435 + (2436) 2436 + (2437) 2437 + (2438) 1701 + (2439) 1088 + (2440) 2440 + (2441) 2441 + (2442) 2442 + (2443) 2443 + (2444) 2444 + (2445) 2445 + (2446) 2445 + (2447) 2447 + (2448) 2448 + (2449) 2449 + (2450) 2450 + (2451) 518 + (2452) 2452 + (2453) 2453 + (2454) 2454 + (2455) 2455 + (2456) 2456 + (2457) 2457 + (2458) 2458 + (2459) 2459 + (2460) 2460 + (2461) 2461 + (2462) 2462 + (2463) 2463 + (2464) 2464 + (2465) 2465 + (2466) 2466 + (2467) 1276 + (2468) 1963 + (2469) 2469 + (2470) 2470 + (2471) 2471 + (2472) 2472 + (2473) 2473 + (2474) 2474 + (2475) 2142 + (2476) 2476 + (2477) 78 + (2478) 2478 + (2479) 2479 + (2480) 2471 + (2481) 2481 + (2482) 2482 + (2483) 1942 + (2484) 2484 + (2485) 2485 + (2486) 2486 + (2487) 2487 + (2488) 285 + (2489) 2489 + (2490) 2490 + (2491) 2491 + (2492) 51 + (2493) 2493 + (2494) 573 + (2495) 2495 + (2496) 2496 + (2497) 2497 + (2498) 2498 + (2499) 2499 + (2500) 553 + (2501) 2198 + (2502) 2502 + (2503) 2503 + (2504) 2504 + (2505) 490 + (2506) 2506 + (2507) 2507 + (2508) 2508 + (2509) 2509 + (2510) 1757 + (2511) 402 + (2512) 2512 + (2513) 2513 + (2514) 2514 + (2515) 2515 + (2516) 2217 + (2517) 1926 + (2518) 2518 + (2519) 2519 + (2520) 2520 + (2521) 2521 + (2522) 2522 + (2523) 2523 + (2524) 2524 + (2525) 2525 + (2526) 2526 + (2527) 2527 + (2528) 1207 + (2529) 2529 + (2530) 2033 + (2531) 2531 + (2532) 2532 + (2533) 2533 + (2534) 2534 + (2535) 2535 + (2536) 2536 + (2537) 2537 + (2538) 105 + (2539) 2539 + (2540) 2540 + (2541) 2541 + (2542) 2542 + (2543) 2280 + (2544) 2544 + (2545) 2545 + (2546) 993 + (2547) 2547 + (2548) 2548 + (2549) 2549 + (2550) 2550 + (2551) 2551 + (2552) 1901 + (2553) 2553 + (2554) 2503 + (2555) 2555 + (2556) 2556 + (2557) 2557 + (2558) 2558 + (2559) 2370 + (2560) 2560 + (2561) 2561 + (2562) 2562 + (2563) 620 + (2564) 2564 + (2565) 2502 + (2566) 67 + (2567) 1600 + (2568) 2568 + (2569) 2569 + (2570) 2570 + (2571) 1508 + (2572) 2572 + (2573) 2573 + (2574) 2574 + (2575) 2575 + (2576) 2576 + (2577) 2577 + (2578) 2578 + (2579) 2579 + (2580) 2580 + (2581) 2581 + (2582) 2582 + (2583) 2583 + (2584) 2584 + (2585) 2585 + (2586) 569 + (2587) 2587 + (2588) 755 + (2589) 2589 + (2590) 2590 + (2591) 2591 + (2592) 2592 + (2593) 2593 + (2594) 2594 + (2595) 2595 + (2596) 2596 + (2597) 2597 + (2598) 2598 + (2599) 304 + (2600) 2600 + (2601) 2601 + (2602) 2602 + (2603) 2603 + (2604) 2604 + (2605) 2605 + (2606) 2606 + (2607) 2607 + (2608) 2608 + (2609) 2609 + (2610) 2031 + (2611) 2611 + (2612) 2612 + (2613) 2613 + (2614) 2614 + (2615) 2615 + (2616) 2616 + (2617) 522 + (2618) 1353 + (2619) 2619 + (2620) 2620 + (2621) 2621 + (2622) 2622 + (2623) 920 + (2624) 2624 + (2625) 220 + (2626) 2626 + (2627) 396 + (2628) 1609 + (2629) 1958 + (2630) 1493 + (2631) 2631 + (2632) 2632 + (2633) 2633 + (2634) 1257 + (2635) 2635 + (2636) 1953 + (2637) 2637 + (2638) 2638 + (2639) 2639 + (2640) 2640 + (2641) 2641 + (2642) 2642 + (2643) 1622 + (2644) 2644 + (2645) 2645 + (2646) 2646 + (2647) 2647 + (2648) 2648 + (2649) 1204 + (2650) 2650 + (2651) 148 + (2652) 2225 + (2653) 2653 + (2654) 893 + (2655) 2655 + (2656) 2656 + (2657) 2657 + (2658) 1007 + (2659) 886 + (2660) 2660 + (2661) 2661 + (2662) 2662 + (2663) 2663 + (2664) 2664 + (2665) 2506 + (2666) 2666 + (2667) 2667 + (2668) 2668 + (2669) 2669 + (2670) 2670 + (2671) 2671 + (2672) 1317 + (2673) 2673 + (2674) 2674 + (2675) 2675 + (2676) 2676 + (2677) 2677 + (2678) 2678 + (2679) 2679 + (2680) 2680 + (2681) 1348 + (2682) 2682 + (2683) 2683 + (2684) 2684 + (2685) 958 + (2686) 1739 + (2687) 2520 + (2688) 2661 + (2689) 812 + (2690) 2690 + (2691) 924 + (2692) 2692 + (2693) 2693 + (2694) 1109 + (2695) 1792 + (2696) 2696 + (2697) 2697 + (2698) 1671 + (2699) 2699 + (2700) 2700 + (2701) 1870 + (2702) 2702 + (2703) 2703 + (2704) 2704 + (2705) 1692 + (2706) 305 + (2707) 2707 + (2708) 219 + (2709) 1894 + (2710) 2675 + (2711) 2704 + (2712) 2712 + (2713) 2122 + (2714) 1417 + (2715) 2715 + (2716) 2716 + (2717) 414 + (2718) 763 + (2719) 2719 + (2720) 2720 + (2721) 2721 + (2722) 2722 + (2723) 2723 + (2724) 1675 + (2725) 2725 + (2726) 1253 + (2727) 2727 + (2728) 2728 + (2729) 2729 + (2730) 2730 + (2731) 2731 + (2732) 2732 + (2733) 2733 + (2734) 2734 + (2735) 2735 + (2736) 2736 + (2737) 2737 + (2738) 1151 + (2739) 2739 + (2740) 2740 + (2741) 1232 + (2742) 1797 + (2743) 2743 + (2744) 1981 + (2745) 2745 + (2746) 1561 + (2747) 2747 + (2748) 2748 + (2749) 1374 + (2750) 2750 + (2751) 1858 + (2752) 2752 + (2753) 2753 + (2754) 2754 + (2755) 1340 + (2756) 2756 + (2757) 2757 + (2758) 2758 + (2759) 2759 + (2760) 2760 + (2761) 2761 + (2762) 489 + (2763) 2763 + (2764) 2764 + (2765) 2765 + (2766) 2766 + (2767) 88 + (2768) 2768 + (2769) 2769 + (2770) 2770 + (2771) 2771 + (2772) 2772 + (2773) 2773 + (2774) 2774 + (2775) 2775 + (2776) 2621 + (2777) 2777 + (2778) 2778 + (2779) 2779 + (2780) 2780 + (2781) 2781 + (2782) 2782 + (2783) 2783 + (2784) 2784 + (2785) 1180 + (2786) 1199 + (2787) 2787 + (2788) 2788 + (2789) 2789 + (2790) 2499 + (2791) 2791 + (2792) 2792 + (2793) 2793 + (2794) 2794 + (2795) 500 + (2796) 209 + (2797) 2797 + (2798) 2798 + (2799) 2799 + (2800) 2800 + (2801) 2801 + (2802) 2802 + (2803) 2803 + (2804) 1737 + (2805) 2805 + (2806) 2806 + (2807) 2807 + (2808) 655 + (2809) 170 + (2810) 841 + (2811) 2811 + (2812) 1873 + (2813) 2813 + (2814) 2814 + (2815) 2815 + (2816) 2816 + (2817) 2817 + (2818) 2818 + (2819) 684 + (2820) 2820 + (2821) 2821 + (2822) 2822 + (2823) 2823 + (2824) 301 + (2825) 2825 + (2826) 2826 + (2827) 2827 + (2828) 2828 + (2829) 2829 + (2830) 2830 + (2831) 2120 + (2832) 2279 + (2833) 2833 + (2834) 2834 + (2835) 2086 + (2836) 2836 + (2837) 2837 + (2838) 2838 + (2839) 1818 + (2840) 2840 + (2841) 2340 + (2842) 2455 + (2843) 2843 + (2844) 2844 + (2845) 2845 + (2846) 2846 + (2847) 2847 + (2848) 2421 + (2849) 2849 + (2850) 2850 + (2851) 2851 + (2852) 2852 + (2853) 2246 + (2854) 2854 + (2855) 2026 + (2856) 2856 + (2857) 2794 + (2858) 2858 + (2859) 1460 + (2860) 2860 + (2861) 334 + (2862) 2862 + (2863) 2863 + (2864) 2055 + (2865) 2684 + (2866) 2866 + (2867) 300 + (2868) 2697 + (2869) 2869 + (2870) 2870 + (2871) 2871 + (2872) 557 + (2873) 2873 + (2874) 793 + (2875) 2875 + (2876) 2876 + (2877) 814 + (2878) 2878 + (2879) 1416 + (2880) 2880 + (2881) 2252 + (2882) 2882 + (2883) 2883 + (2884) 2884 + (2885) 198 + (2886) 2886 + (2887) 890 + (2888) 2888 + (2889) 2889 + (2890) 2890 + (2891) 2891 + (2892) 2892 + (2893) 2893 + (2894) 2894 + (2895) 2895 + (2896) 2896 + (2897) 2897 + (2898) 161 + (2899) 2860 + (2900) 2900 + (2901) 2901 + (2902) 2902 + (2903) 2352 + (2904) 2904 + (2905) 2905 + (2906) 2906 + (2907) 2907 + (2908) 1537 + (2909) 1134 + (2910) 637 + (2911) 2911 + (2912) 2912 + (2913) 2913 + (2914) 2914 + (2915) 2915 + (2916) 2916 + (2917) 2917 + (2918) 2918 + (2919) 2919 + (2920) 2109 + (2921) 2921 + (2922) 2922 + (2923) 2046 + (2924) 2924 + (2925) 2925 + (2926) 2926 + (2927) 2927 + (2928) 2928 + (2929) 2929 + (2930) 2930 + (2931) 2931 + (2932) 2932 + (2933) 2933 + (2934) 2531 + (2935) 2935 + (2936) 2269 + (2937) 2937 + (2938) 2759 + (2939) 2939 + (2940) 2940 + (2941) 2941 + (2942) 2333 + (2943) 2943 + (2944) 2944 + (2945) 2945 + (2946) 2946 + (2947) 2054 + (2948) 2089 + (2949) 2949 + (2950) 2837 + (2951) 2951 + (2952) 2952 + (2953) 2953 + (2954) 2954 + (2955) 2955 + (2956) 2956 + (2957) 2957 + (2958) 2958 + (2959) 2834 + (2960) 1381 + (2961) 2961 + (2962) 2962 + (2963) 982 + (2964) 745 + (2965) 1808 + (2966) 2966 + (2967) 2967 + (2968) 2968 + (2969) 2969 + (2970) 1161 + (2971) 2971 + (2972) 1201 + (2973) 2973 + (2974) 2974 + (2975) 210 + (2976) 2976 + (2977) 2977 + (2978) 2978 + (2979) 2380 + (2980) 2980 + (2981) 2981 + (2982) 2982 + (2983) 2983 + (2984) 1855 + (2985) 2985 + (2986) 2986 + (2987) 46 + (2988) 2988 + (2989) 2989 + (2990) 2990 + (2991) 2991 + (2992) 2992 + (2993) 2993 + (2994) 2994 + (2995) 2995 + (2996) 2996 + (2997) 2997 + (2998) 1875 + (2999) 2999 + (3000) 143 + (3001) 2826 + (3002) 3002 + (3003) 3003 + (3004) 3004 + (3005) 3005 + (3006) 2957 + (3007) 3007 + (3008) 3008 + (3009) 3009 + (3010) 3010 + (3011) 3011 + (3012) 2729 + (3013) 2646 + (3014) 1283 + (3015) 1632 + (3016) 2093 + (3017) 3017 + (3018) 3018 + (3019) 3019 + (3020) 3020 + (3021) 3021 + (3022) 3022 + (3023) 3023 + (3024) 3024 + (3025) 2 + (3026) 2289 + (3027) 3027 + (3028) 3028 + (3029) 3029 + (3030) 3030 + (3031) 3031 + (3032) 3032 + (3033) 3033 + (3034) 1991 + (3035) 1268 + (3036) 2481 + (3037) 584 + (3038) 3038 + (3039) 3039 + (3040) 3040 + (3041) 1666 + (3042) 3042 + (3043) 3043 + (3044) 3044 + (3045) 1462 + (3046) 739 + (3047) 3047 + (3048) 3048 + (3049) 3049 + (3050) 3050 + (3051) 3051 + (3052) 3052 + (3053) 3053 + (3054) 3054 + (3055) 1954 + (3056) 3056 + (3057) 3057 + (3058) 3058 + (3059) 3059 + (3060) 1049 + (3061) 870 + (3062) 3062 + (3063) 928 + (3064) 3064 + (3065) 20 + (3066) 3066 + (3067) 542 + (3068) 3068 + (3069) 392 + (3070) 317 + (3071) 3071 + (3072) 3072 + (3073) 2044 + (3074) 3074 + (3075) 2902 + (3076) 2825 + (3077) 3077 + (3078) 3078 + (3079) 3079 + (3080) 639 + (3081) 3081 + (3082) 1465 + (3083) 3083 + (3084) 3084 + (3085) 190 + (3086) 3086 + (3087) 3087 + (3088) 3088 + (3089) 1612 + (3090) 2545 + (3091) 3091 + (3092) 3092 + (3093) 3093 + (3094) 3094 + (3095) 3095 + (3096) 3096 + (3097) 164 + (3098) 3098 + (3099) 2270 + (3100) 3100 + (3101) 3101 + (3102) 3102 + (3103) 3103 + (3104) 3104 + (3105) 1212 + (3106) 3106 + (3107) 3107 + (3108) 43 + (3109) 3109 + (3110) 3110 + (3111) 3111 + (3112) 3112 + (3113) 2324 + (3114) 3114 + (3115) 3028 + (3116) 1459 + (3117) 3117 + (3118) 3118 + (3119) 3119 + (3120) 3120 + (3121) 1810 + (3122) 3122 + (3123) 966 + (3124) 3124 + (3125) 3125 + (3126) 3126 + (3127) 2304 + (3128) 1373 + (3129) 612 + (3130) 3130 + (3131) 3131 + (3132) 3132 + (3133) 3133 + (3134) 267 + (3135) 3135 + (3136) 3136 + (3137) 354 + (3138) 3138 + (3139) 3139 + (3140) 523 + (3141) 3141 + (3142) 3142 + (3143) 3143 + (3144) 2397 + (3145) 3145 + (3146) 951 + (3147) 3147 + (3148) 3148 + (3149) 1470 + (3150) 3150 + (3151) 1640 + (3152) 3152 + (3153) 3153 + (3154) 3154 + (3155) 3062 + (3156) 3156 + (3157) 3157 + (3158) 3158 + (3159) 3159 + (3160) 3160 + (3161) 1610 + (3162) 3162 + (3163) 3163 + (3164) 3164 + (3165) 3165 + (3166) 3166 + (3167) 3167 + (3168) 3168 + (3169) 3169 + (3170) 3170 + (3171) 3171 + (3172) 3172 + (3173) 896 + (3174) 2547 + (3175) 3175 + (3176) 3176 + (3177) 3177 + (3178) 3178 + (3179) 1620 + (3180) 3180 + (3181) 3181 + (3182) 3182 + (3183) 3183 + (3184) 3184 + (3185) 3185 + (3186) 2609 + (3187) 1254 + (3188) 3188 + (3189) 1744 + (3190) 2981 + (3191) 3191 + (3192) 3192 + (3193) 3193 + (3194) 3194 + (3195) 3195 + (3196) 2931 + (3197) 600 + (3198) 3198 + (3199) 3199 + (3200) 2357 + (3201) 562 + (3202) 2209 + (3203) 2134 + (3204) 3204 + (3205) 3205 + (3206) 3206 + (3207) 3207 + (3208) 3208 + (3209) 3209 + (3210) 2983 + (3211) 3211 + (3212) 33 + (3213) 3213 + (3214) 2891 + (3215) 3215 + (3216) 3216 + (3217) 3217 + (3218) 3218 + (3219) 118 + (3220) 3220 + (3221) 3221 + (3222) 1731 + (3223) 2944 + (3224) 3224 + (3225) 3225 + (3226) 3226 + (3227) 3227 + (3228) 3228 + (3229) 974 + (3230) 3230 + (3231) 594 + (3232) 3232 + (3233) 18 + (3234) 3234 + (3235) 508 + (3236) 3236 + (3237) 208 + (3238) 3238 + (3239) 3239 + (3240) 623 + (3241) 3241 + (3242) 3242 + (3243) 3243 + (3244) 2611 + (3245) 3245 + (3246) 3246 + (3247) 3247 + (3248) 1333 + (3249) 3249 + (3250) 3250 + (3251) 3251 + (3252) 3252 + (3253) 3253 + (3254) 3254 + (3255) 938 + (3256) 1839 + (3257) 2740 + (3258) 3258 + (3259) 372 + (3260) 3260 + (3261) 3261 + (3262) 2075 + (3263) 3263 + (3264) 3264 + (3265) 588 + (3266) 3266 + (3267) 3030 + (3268) 3268 + (3269) 3269 + (3270) 2197 + (3271) 3271 + (3272) 1743 + (3273) 3273 + (3274) 1575 + (3275) 1172 + (3276) 3276 + (3277) 3277 + (3278) 3278 + (3279) 328 + (3280) 3280 + (3281) 3281 + (3282) 3282 + (3283) 1318 + (3284) 3284 + (3285) 3285 + (3286) 3286 + (3287) 3287 + (3288) 3288 + (3289) 3289 + (3290) 3290 + (3291) 3291 + (3292) 3292 + (3293) 3293 + (3294) 3294 + (3295) 3295 + (3296) 3296 + (3297) 3297 + (3298) 3298 + (3299) 3299 + (3300) 3300 + (3301) 3056 + (3302) 1365 + (3303) 3303 + (3304) 2797 + (3305) 3305 + (3306) 3306 + (3307) 3307 + (3308) 3308 + (3309) 366 + (3310) 2443 + (3311) 3311 + (3312) 1429 + (3313) 3313 + (3314) 3314 + (3315) 3315 + (3316) 3316 + (3317) 3317 + (3318) 3318 + (3319) 3319 + (3320) 479 + (3321) 2660 + (3322) 1191 + (3323) 3156 + (3324) 2001 + (3325) 1112 + (3326) 2171 + (3327) 3327 + (3328) 3328 + (3329) 3329 + (3330) 3330 + (3331) 1676 + (3332) 3332 + (3333) 3333 + (3334) 3334 + (3335) 3335 + (3336) 3336 + (3337) 644 + (3338) 3338 + (3339) 1102 + (3340) 3340 + (3341) 3341 + (3342) 3342 + (3343) 3343 + (3344) 3344 + (3345) 3345 + (3346) 3346 + (3347) 1836 + (3348) 3348 + (3349) 3349 + (3350) 1491 + (3351) 2282 + (3352) 3352 + (3353) 618 + (3354) 3354 + (3355) 3355 + (3356) 291 + (3357) 1278 + (3358) 3358 + (3359) 3359 + (3360) 2007 + (3361) 3361 + (3362) 3362 + (3363) 3363 + (3364) 3364 + (3365) 3126 + (3366) 3366 + (3367) 3367 + (3368) 1135 + (3369) 420 + (3370) 3370 + (3371) 3371 + (3372) 3372 + (3373) 3373 + (3374) 923 + (3375) 1384 + (3376) 3376 + (3377) 3377 + (3378) 1153 + (3379) 3379 + (3380) 3380 + (3381) 3381 + (3382) 1189 + (3383) 3383 + (3384) 797 + (3385) 2010 + (3386) 3386 + (3387) 1316 + (3388) 3388 + (3389) 3389 + (3390) 3390 + (3391) 3391 + (3392) 3392 + (3393) 1058 + (3394) 3394 + (3395) 2956 + (3396) 3396 + (3397) 1168 + (3398) 3398 + (3399) 3399 + (3400) 3400 + (3401) 3401 + (3402) 3402 + (3403) 3403 + (3404) 3404 + (3405) 1534 + (3406) 3406 + (3407) 3407 + (3408) 775 + (3409) 3409 + (3410) 321 + (3411) 3411 + (3412) 457 + (3413) 3413 + (3414) 3414 + (3415) 3415 + (3416) 3416 + (3417) 3417 + (3418) 2009 + (3419) 3419 + (3420) 49 + (3421) 3421 + (3422) 3422 + (3423) 1752 + (3424) 1319 + (3425) 3425 + (3426) 3426 + (3427) 3427 + (3428) 75 + (3429) 976 + (3430) 3430 + (3431) 3392 + (3432) 3432 + (3433) 874 + (3434) 2249 + (3435) 3435 + (3436) 3436 + (3437) 3437 + (3438) 3438 + (3439) 3439 + (3440) 3440 + (3441) 1218 + (3442) 3442 + (3443) 3443 + (3444) 3444 + (3445) 1446 + (3446) 3446 + (3447) 3440 + (3448) 3448 + (3449) 3449 + (3450) 199 + (3451) 2596 + (3452) 3452 + (3453) 1320 + (3454) 3454 + (3455) 1170 + (3456) 1029 + (3457) 626 + (3458) 3458 + (3459) 1116 + (3460) 393 + (3461) 784 + (3462) 3462 + (3463) 3463 + (3464) 3464 + (3465) 3465 + (3466) 3466 + (3467) 3467 + (3468) 3468 + (3469) 3469 + (3470) 3470 + (3471) 3471 + (3472) 3472 + (3473) 2930 + (3474) 1553 + (3475) 3475 + (3476) 3476 + (3477) 3477 + (3478) 309 + (3479) 3479 + (3480) 3480 + (3481) 3481 + (3482) 2937 + (3483) 2484 + (3484) 3484 + (3485) 3485 + (3486) 3486 + (3487) 3487 + (3488) 3488 + (3489) 3489 + (3490) 863 + (3491) 3491 + (3492) 3492 + (3493) 3493 + (3494) 19 + (3495) 480 + (3496) 3496 + (3497) 3497 + (3498) 999 + (3499) 3499 + (3500) 3500 + (3501) 2952 + (3502) 3502 + (3503) 3503 + (3504) 3504 + (3505) 3505 + (3506) 3391 + (3507) 3507 + (3508) 3508 + (3509) 3509 + (3510) 2037 + (3511) 3511 + (3512) 3512 + (3513) 228 + (3514) 3514 + (3515) 3515 + (3516) 145 + (3517) 2430 + (3518) 1837 + (3519) 2600 + (3520) 3520 + (3521) 3521 + (3522) 3522 + (3523) 2806 + (3524) 1115 + (3525) 3525 + (3526) 3526 + (3527) 3527 + (3528) 2463 + (3529) 3529 + (3530) 3530 + (3531) 3531 + (3532) 3532 + (3533) 1838 + (3534) 3534 + (3535) 3535 + (3536) 3536 + (3537) 3537 + (3538) 3538 + (3539) 3539 + (3540) 3540 + (3541) 3541 + (3542) 3542 + (3543) 3543 + (3544) 2061 + (3545) 1226 + (3546) 2119 + (3547) 3547 + (3548) 819 + (3549) 2328 + (3550) 3550 + (3551) 3551 + (3552) 3552 + (3553) 2092 + (3554) 1377 + (3555) 780 + (3556) 1259 + (3557) 3557 + (3558) 3558 + (3559) 3559 + (3560) 1037 + (3561) 3561 + (3562) 1527 + (3563) 3358 + (3564) 3564 + (3565) 3565 + (3566) 3566 + (3567) 3394 + (3568) 3568 + (3569) 3569 + (3570) 3570 + (3571) 3571 + (3572) 857 + (3573) 1750 + (3574) 1653 + (3575) 3575 + (3576) 2815 + (3577) 3044 + (3578) 3578 + (3579) 1982 + (3580) 3580 + (3581) 3581 + (3582) 3582 + (3583) 3583 + (3584) 3584 + (3585) 2434 + (3586) 3586 + (3587) 3587 + (3588) 3588 + (3589) 3589 + (3590) 3509 + (3591) 202 + (3592) 3592 + (3593) 3593 + (3594) 3594 + (3595) 2830 + (3596) 3379 + (3597) 3597 + (3598) 1997 + (3599) 3599 + (3600) 3463 + (3601) 3346 + (3602) 1089 + (3603) 1036 + (3604) 3604 + (3605) 22 + (3606) 3606 + (3607) 3607 + (3608) 3608 + (3609) 1434 + (3610) 3610 + (3611) 3611 + (3612) 3612 + (3613) 3613 + (3614) 2011 + (3615) 216 + (3616) 3616 + (3617) 3617 + (3618) 3618 + (3619) 1196 + (3620) 2409 + (3621) 614 + (3622) 3622 + (3623) 992 + (3624) 2205 + (3625) 3625 + (3626) 1623 + (3627) 3627 + (3628) 3628 + (3629) 3629 + (3630) 3630 + (3631) 3064 + (3632) 3632 + (3633) 3633 + (3634) 3583 + (3635) 3635 + (3636) 2363 + (3637) 3637 + (3638) 3638 + (3639) 80 + (3640) 2095 + (3641) 3641 + (3642) 3642 + (3643) 3643 + (3644) 883 + (3645) 3486 + (3646) 3515 + (3647) 3647 + (3648) 3648 + (3649) 2210 + (3650) 3650 + (3651) 3651 + (3652) 3652 + (3653) 3653 + (3654) 3654 + (3655) 560 + (3656) 3656 + (3657) 3657 + (3658) 3658 + (3659) 3659 + (3660) 3660 + (3661) 3661 + (3662) 555 + (3663) 3663 + (3664) 3664 + (3665) 3665 + (3666) 3666 + (3667) 1270 + (3668) 3668 + (3669) 3669 + (3670) 3670 + (3671) 3671 + (3672) 3672 + (3673) 3673 + (3674) 3674 + (3675) 3675 + (3676) 3676 + (3677) 3512 + (3678) 2829 + (3679) 3679 + (3680) 423 + (3681) 3681 + (3682) 609 + (3683) 540 + (3684) 3684 + (3685) 3685 + (3686) 3686 + (3687) 266 + (3688) 3485 + (3689) 3689 + (3690) 2025 + (3691) 3691 + (3692) 3692 + (3693) 3693 + (3694) 3694 + (3695) 3695 + (3696) 1607 + (3697) 3697 + (3698) 3698 + (3699) 3699 + (3700) 3700 + (3701) 2544 + (3702) 3702 + (3703) 3703 + (3704) 767 + (3705) 3705 + (3706) 3706 + (3707) 3707 + (3708) 3708 + (3709) 3709 + (3710) 3710 + (3711) 3711 + (3712) 2277 + (3713) 3713 + (3714) 79 + (3715) 3715 + (3716) 3716 + (3717) 3717 + (3718) 3718 + (3719) 2592 + (3720) 365 + (3721) 3721 + (3722) 3081 + (3723) 3723 + (3724) 1777 + (3725) 2878 + (3726) 2155 + (3727) 456 + (3728) 3728 + (3729) 3729 + (3730) 3730 + (3731) 3731 + (3732) 3732 + (3733) 464 + (3734) 389 + (3735) 1290 + (3736) 3736 + (3737) 3737 + (3738) 1401 + (3739) 1662 + (3740) 3329 + (3741) 3470 + (3742) 3742 + (3743) 3743 + (3744) 3744 + (3745) 3745 + (3746) 3746 + (3747) 3747 + (3748) 2027 + (3749) 1414 + (3750) 3750 + (3751) 3751 + (3752) 3752 + (3753) 3753 + (3754) 3754 + (3755) 3755 + (3756) 3756 + (3757) 3757 + (3758) 3758 + (3759) 888 + (3760) 3760 + (3761) 3708 + (3762) 3762 + (3763) 3286 + (3764) 3764 + (3765) 3654 + (3766) 3766 + (3767) 3767 + (3768) 3768 + (3769) 442 + (3770) 2407 + (3771) 3771 + (3772) 3772 + (3773) 3773 + (3774) 3774 + (3775) 2344 + (3776) 3776 + (3777) 3777 + (3778) 3778 + (3779) 566 + (3780) 3419 + (3781) 3781 + (3782) 3782 + (3783) 864 + (3784) 3784 + (3785) 3785 + (3786) 3786 + (3787) 3787 + (3788) 3377 + (3789) 3789 + (3790) 2461 + (3791) 3791 + (3792) 3792 + (3793) 3793 + (3794) 3794 + (3795) 3398 + (3796) 1785 + (3797) 3797 + (3798) 771 + (3799) 3799 + (3800) 3800 + (3801) 3801 + (3802) 3802 + (3803) 302 + (3804) 3804 + (3805) 3805 + (3806) 3806 + (3807) 1688 + (3808) 2215 + (3809) 2498 + (3810) 3810 + (3811) 3811 + (3812) 3812 + (3813) 3813 + (3814) 3814 + (3815) 3815 + (3816) 3816 + (3817) 3817 + (3818) 3818 + (3819) 3819 + (3820) 467 + (3821) 3821 + (3822) 3822 + (3823) 3784 + (3824) 1013 + (3825) 3825 + (3826) 721 + (3827) 3827 + (3828) 3467 + (3829) 310 + (3830) 3830 + (3831) 3831 + (3832) 3832 + (3833) 3833 + (3834) 3834 + (3835) 3835 + (3836) 3836 + (3837) 3837 + (3838) 1533 + (3839) 3839 + (3840) 1383 + (3841) 1980 + (3842) 3842 + (3843) 3843 + (3844) 3844 + (3845) 3845 + (3846) 2917 + (3847) 3514 + (3848) 3848 + (3849) 3849 + (3850) 3850 + (3851) 3851 + (3852) 3852 + (3853) 3853 + (3854) 1101 + (3855) 3855 + (3856) 3856 + (3857) 3857 + (3858) 3858 + (3859) 3859 + (3860) 3860 + (3861) 3861 + (3862) 3862 + (3863) 3264 + (3864) 1789 + (3865) 426 + (3866) 3866 + (3867) 3867 + (3868) 3868 + (3869) 3869 + (3870) 3870 + (3871) 3871 + (3872) 3872 + (3873) 2386 + (3874) 47 + (3875) 3875 + (3876) 3225 + (3877) 3877 + (3878) 3878 + (3879) 3879 + (3880) 1949 + (3881) 3881 + (3882) 3882 + (3883) 3883 + (3884) 1425 + (3885) 344 + (3886) 1483 + (3887) 3887 + (3888) 3888 + (3889) 3612 + (3890) 3890 + (3891) 3891 + (3892) 3892 + (3893) 3893 + (3894) 3894 + (3895) 3895 + (3896) 3293 + (3897) 3897 + (3898) 3671 + (3899) 3899 + (3900) 3900 + (3901) 862 + (3902) 173 + (3903) 3903 + (3904) 3904 + (3905) 3905 + (3906) 2399 + (3907) 3907 + (3908) 3908 + (3909) 3909 + (3910) 3910 + (3911) 234 + (3912) 3912 + (3913) 3913 + (3914) 3914 + (3915) 3915 + (3916) 2065 + (3917) 2526 + (3918) 939 + (3919) 1832 + (3920) 3477 + (3921) 3921 + (3922) 3922 + (3923) 3923 + (3924) 3924 + (3925) 3925 + (3926) 2773 + (3927) 3338 + (3928) 3928 + (3929) 3929 + (3930) 3930 + (3931) 3931 + (3932) 817 + (3933) 56 + (3934) 3355 + (3935) 488 + (3936) 2453 + (3937) 3937 + (3938) 1327 + (3939) 3939 + (3940) 2889 + (3941) 3941 + (3942) 3942 + (3943) 2768 + (3944) 973 + (3945) 3945 + (3946) 3946 + (3947) 3947 + (3948) 3948 + (3949) 3949 + (3950) 525 + (3951) 3224 + (3952) 3952 + (3953) 1308 + (3954) 2671 + (3955) 3955 + (3956) 3956 + (3957) 3957 + (3958) 3958 + (3959) 3818 + (3960) 3960 + (3961) 730 + (3962) 1673 + (3963) 3963 + (3964) 3964 + (3965) 3965 + (3966) 3021 + (3967) 3967 + (3968) 2229 + (3969) 3969 + (3970) 3970 + (3971) 3971 + (3972) 3972 + (3973) 3973 + (3974) 3974 + (3975) 3975 + (3976) 861 + (3977) 3977 + (3978) 2553 + (3979) 3979 + (3980) 3980 + (3981) 3981 + (3982) 1899 + (3983) 3112 + (3984) 3984 + (3985) 3985 + (3986) 1263 + (3987) 3772 + (3988) 3988 + (3989) 2758 + (3990) 3107 + (3991) 3930 + (3992) 3992 + (3993) 3993 + (3994) 3994 + (3995) 3995 + (3996) 3996 + (3997) 3997 + (3998) 3998 + (3999) 3999 + (4000) 4000 + (4001) 4001 + (4002) 1103 + (4003) 4003 + (4004) 4004 + (4005) 4005 + (4006) 4006 + (4007) 4007 + (4008) 4008 + (4009) 3380 + (4010) 55 + (4011) 4011 + (4012) 3491 + (4013) 4013 + (4014) 1467 + (4015) 4015 + (4016) 4016 + (4017) 1868 + (4018) 4018 + (4019) 4019 + (4020) 137 + (4021) 2534 + (4022) 4022 + (4023) 4023 + (4024) 1711 + (4025) 3284 + (4026) 4026 + (4027) 1214 + (4028) 163 + (4029) 4029 + (4030) 4030 + (4031) 3538 + (4032) 4032 + (4033) 4033 + (4034) 2927 + (4035) 2598 + (4036) 4036 + (4037) 3728 + (4038) 4038 + (4039) 3002 + (4040) 4040 + (4041) 4041 + (4042) 4042 + (4043) 4043 + (4044) 753 + (4045) 4045 + (4046) 1501 + (4047) 4047 + (4048) 4048 + (4049) 2626 + (4050) 3407 + (4051) 4051 + (4052) 4052 + (4053) 4053 + (4054) 3315 + (4055) 224 + (4056) 3503 + (4057) 4057 + (4058) 4058 + (4059) 4059 + (4060) 947 + (4061) 2126 + (4062) 4062 + (4063) 4063 + (4064) 277 + (4065) 4065 + (4066) 4066 + (4067) 4067 + (4068) 4068 + (4069) 944 + (4070) 4070 + (4071) 554 + (4072) 2349 + (4073) 436 + (4074) 4074 + (4075) 4075 + (4076) 4076 + (4077) 4077 + (4078) 2317 + (4079) 3250 + (4080) 4080 + (4081) 2460 + (4082) 703 + (4083) 4083 + (4084) 665 + (4085) 4085 + (4086) 3843 + (4087) 4087 + (4088) 4088 + (4089) 2900 + (4090) 4090 + (4091) 4091 + (4092) 1427 + (4093) 2632 + (4094) 4094 + (4095) 4095 + (4096) 4096 + (4097) 4097 + (4098) 2703 + (4099) 364 + (4100) 1867 + (4101) 4101 + (4102) 4003 + (4103) 4103 + (4104) 4104 + (4105) 1028 + (4106) 1449 + (4107) 4107 + (4108) 4108 + (4109) 4109 + (4110) 155 + (4111) 1106 + (4112) 1829 + (4113) 2722 + (4114) 4114 + (4115) 4115 + (4116) 2169 + (4117) 4117 + (4118) 2901 + (4119) 4119 + (4120) 461 + (4121) 4121 + (4122) 713 + (4123) 4123 + (4124) 1441 + (4125) 4125 + (4126) 1499 + (4127) 4127 + (4128) 4128 + (4129) 3148 + (4130) 1295 + (4131) 102 + (4132) 4132 + (4133) 2880 + (4134) 4134 + (4135) 4135 + (4136) 4136 + (4137) 3252 + (4138) 4138 + (4139) 1140 + (4140) 4140 + (4141) 2040 + (4142) 4142 + (4143) 4143 + (4144) 4144 + (4145) 4145 + (4146) 4146 + (4147) 4147 + (4148) 4148 + (4149) 3910 + (4150) 4150 + (4151) 4151 + (4152) 4152 + (4153) 4153 + (4154) 4154 + (4155) 4155 + (4156) 3905 + (4157) 4157 + (4158) 4158 + (4159) 4159 + (4160) 3381 + (4161) 4161 + (4162) 4162 + (4163) 3142 + (4164) 4164 + (4165) 4165 + (4166) 2309 + (4167) 4167 + (4168) 4168 + (4169) 4169 + (4170) 4170 + (4171) 1966 + (4172) 4172 + (4173) 4173 + (4174) 683 + (4175) 4175 + (4176) 4176 + (4177) 4177 + (4178) 4178 + (4179) 3308 + (4180) 4180 + (4181) 4181 + (4182) 3493 + (4183) 4183 + (4184) 4184 + (4185) 4185 + (4186) 295 + (4187) 254 + (4188) 4188 + (4189) 4189 + (4190) 2653 + (4191) 1938 + (4192) 247 + (4193) 2764 + (4194) 1823 + (4195) 4195 + (4196) 4196 + (4197) 4197 + (4198) 4198 + (4199) 4199 + (4200) 4200 + (4201) 1930 + (4202) 2489 + (4203) 4203 + (4204) 4204 + (4205) 4205 + (4206) 4123 + (4207) 4207 + (4208) 4208 + (4209) 3890 + (4210) 2735 + (4211) 4211 + (4212) 4212 + (4213) 2736 + (4214) 1027 + (4215) 4215 + (4216) 1567 + (4217) 2298 + (4218) 1687 + (4219) 212 + (4220) 4220 + (4221) 4221 + (4222) 4045 + (4223) 4223 + (4224) 4224 + (4225) 652 + (4226) 577 + (4227) 502 + (4228) 427 + (4229) 1328 + (4230) 1939 + (4231) 4231 + (4232) 61 + (4233) 1060 + (4234) 4234 + (4235) 2558 + (4236) 2657 + (4237) 3550 + (4238) 1643 + (4239) 4239 + (4240) 4240 + (4241) 4241 + (4242) 4242 + (4243) 4243 + (4244) 4244 + (4245) 4245 + (4246) 3109 + (4247) 2730 + (4248) 2157 + (4249) 4249 + (4250) 4250 + (4251) 2788 + (4252) 881 + (4253) 4253 + (4254) 4254 + (4255) 4255 + (4256) 1815 + (4257) 4257 + (4258) 4258 + (4259) 4259 + (4260) 905 + (4261) 1472 + (4262) 1093 + (4263) 4263 + (4264) 3821 + (4265) 3530 + (4266) 4266 + (4267) 4267 + (4268) 4268 + (4269) 318 + (4270) 4270 + (4271) 4271 + (4272) 3205 + (4273) 1618 + (4274) 4274 + (4275) 214 + (4276) 633 + (4277) 3632 + (4278) 21 + (4279) 4279 + (4280) 4280 + (4281) 4281 + (4282) 4282 + (4283) 4283 + (4284) 4284 + (4285) 4285 + (4286) 3997 + (4287) 4287 + (4288) 4288 + (4289) 4289 + (4290) 4290 + (4291) 4291 + (4292) 3883 + (4293) 4293 + (4294) 565 + (4295) 4295 + (4296) 3277 + (4297) 4297 + (4298) 3193 + (4299) 4299 + (4300) 65 + (4301) 1720 + (4302) 4302 + (4303) 4303 + (4304) 2167 + (4305) 4305 + (4306) 4306 + (4307) 4307 + (4308) 201 + (4309) 4309 + (4310) 4310 + (4311) 4311 + (4312) 959 + (4313) 4313 + (4314) 2423 + (4315) 1342 + (4316) 3923 + (4317) 952 + (4318) 4318 + (4319) 2450 + (4320) 4320 + (4321) 3276 + (4322) 4177 + (4323) 4323 + (4324) 681 + (4325) 4325 + (4326) 3269 + (4327) 3866 + (4328) 4328 + (4329) 4329 + (4330) 4330 + (4331) 4331 + (4332) 4332 + (4333) 1528 + (4334) 875 + (4335) 4335 + (4336) 2869 + (4337) 4337 + (4338) 4338 + (4339) 134 + (4340) 3529 + (4341) 4341 + (4342) 1219 + (4343) 4343 + (4344) 4344 + (4345) 2170 + (4346) 3815 + (4347) 4347 + (4348) 4348 + (4349) 2398 + (4350) 3291 + (4351) 1064 + (4352) 4352 + (4353) 4353 + (4354) 3087 + (4355) 4188 + (4356) 3227 + (4357) 4357 + (4358) 3717 + (4359) 4096 + (4360) 4360 + (4361) 4361 + (4362) 1193 + (4363) 4363 + (4364) 4364 + (4365) 4365 + (4366) 957 + (4367) 4367 + (4368) 4368 + (4369) 3970 + (4370) 4370 + (4371) 4371 + (4372) 4372 + (4373) 3766 + (4374) 3251 + (4375) 2640 + (4376) 3101 + (4377) 4377 + (4378) 4378 + (4379) 4379 + (4380) 4380 + (4381) 3496 + (4382) 3757 + (4383) 1704 + (4384) 2805 + (4385) 1650 + (4386) 1039 + (4387) 2774 + (4388) 4388 + (4389) 4389 + (4390) 2245 + (4391) 218 + (4392) 3071 + (4393) 4393 + (4394) 4394 + (4395) 4395 + (4396) 4353 + (4397) 3736 + (4398) 4398 + (4399) 248 + (4400) 4400 + (4401) 4401 + (4402) 4402 + (4403) 252 + (4404) 4404 + (4405) 4405 + (4406) 4406 + (4407) 4407 + (4408) 4408 + (4409) 330 + (4410) 3159 + (4411) 3118 + (4412) 2145 + (4413) 238 + (4414) 3565 + (4415) 4415 + (4416) 3111 + (4417) 3362 + (4418) 1247 + (4419) 4419 + (4420) 891 + (4421) 4421 + (4422) 3411 + (4423) 4423 + (4424) 1645 + (4425) 884 + (4426) 4426 + (4427) 2164 + (4428) 2945 + (4429) 2568 + (4430) 237 + (4431) 568 + (4432) 3285 + (4433) 194 + (4434) 4434 + (4435) 2620 + (4436) 4436 + (4437) 416 + (4438) 4438 + (4439) 4439 + (4440) 2013 + (4441) 1764 + (4442) 3305 + (4443) 4443 + (4444) 3425 + (4445) 2472 + (4446) 1659 + (4447) 4447 + (4448) 4448 + (4449) 4449 + (4450) 4450 + (4451) 4451 + (4452) 2377 + (4453) 4453 + (4454) 4454 + (4455) 4455 + (4456) 3663 + (4457) 4457 + (4458) 2569 + (4459) 4459 + (4460) 4460 + (4461) 3294 + (4462) 4075 + (4463) 1208 + (4464) 4464 + (4465) 4364 + (4466) 4466 + (4467) 4467 + (4468) 4468 + (4469) 4469 + (4470) 4470 + (4471) 4471 + (4472) 4472 + (4473) 4473 + (4474) 4474 + (4475) 4475 + (4476) 4476 + (4477) 1950 + (4478) 475 + (4479) 1490 + (4480) 1285 + (4481) 4481 + (4482) 4482 + (4483) 2838 + (4484) 4484 + (4485) 4485 + (4486) 1669 + (4487) 3648 + (4488) 4488 + (4489) 4489 + (4490) 3993 + (4491) 382 + (4492) 1969 + (4493) 3160 + (4494) 4494 + (4495) 4495 + (4496) 4496 + (4497) 4497 + (4498) 4498 + (4499) 4499 + (4500) 3929 + (4501) 4501 + (4502) 2549 + (4503) 2192 + (4504) 4504 + (4505) 2458 + (4506) 4506 + (4507) 4507 + (4508) 4508 + (4509) 4509 + (4510) 93 + (4511) 2578 + (4512) 4512 + (4513) 4513 + (4514) 1231 + (4515) 4515 + (4516) 2473 + (4517) 3366 + (4518) 4518 + (4519) 4330 + (4520) 4520 + (4521) 4521 + (4522) 3303 + (4523) 4523 + (4524) 1395 + (4525) 4030 + (4526) 4526 + (4527) 4527 + (4528) 4528 + (4529) 4529 + (4530) 2929 + (4531) 2550 + (4532) 4532 + (4533) 4533 + (4534) 4534 + (4535) 2080 + (4536) 1677 + (4537) 4537 + (4538) 4538 + (4539) 2014 + (4540) 4540 + (4541) 3230 + (4542) 4011 + (4543) 130 + (4544) 4544 + (4545) 4545 + (4546) 1217 + (4547) 1148 + (4548) 4331 + (4549) 4549 + (4550) 4550 + (4551) 3802 + (4552) 4552 + (4553) 3684 + (4554) 2969 + (4555) 1716 + (4556) 1313 + (4557) 4557 + (4558) 445 + (4559) 4559 + (4560) 4560 + (4561) 4561 + (4562) 3215 + (4563) 4563 + (4564) 4564 + (4565) 3184 + (4566) 1075 + (4567) 3152 + (4568) 4568 + (4569) 4569 + (4570) 4423 + (4571) 2836 + (4572) 4572 + (4573) 4573 + (4574) 4574 + (4575) 4575 + (4576) 2341 + (4577) 978 + (4578) 255 + (4579) 1468 + (4580) 4580 + (4581) 2278 + (4582) 4582 + (4583) 4583 + (4584) 3661 + (4585) 2186 + (4586) 4586 + (4587) 2356 + (4588) 2323 + (4589) 4589 + (4590) 4590 + (4591) 4591 + (4592) 407 + (4593) 4593 + (4594) 4594 + (4595) 124 + (4596) 4596 + (4597) 4597 + (4598) 4533 + (4599) 4599 + (4600) 4600 + (4601) 4601 + (4602) 2263 + (4603) 2292 + (4604) 3185 + (4605) 1390 + (4606) 4606 + (4607) 4607 + (4608) 4608 + (4609) 4609 + (4610) 4610 + (4611) 1702 + (4612) 4612 + (4613) 4613 + (4614) 4614 + (4615) 3088 + (4616) 4616 + (4617) 3578 + (4618) 4618 + (4619) 3316 + (4620) 4620 + (4621) 3054 + (4622) 3261 + (4623) 4623 + (4624) 4119 + (4625) 4625 + (4626) 4626 + (4627) 4627 + (4628) 4628 + (4629) 4629 + (4630) 4630 + (4631) 4631 + (4632) 4632 + (4633) 1050 + (4634) 4634 + (4635) 676 + (4636) 3937 + (4637) 4637 + (4638) 4638 + (4639) 2146 + (4640) 4640 + (4641) 1356 + (4642) 783 + (4643) 3180 + (4644) 4644 + (4645) 550 + (4646) 4646 + (4647) 4647 + (4648) 4648 + (4649) 4649 + (4650) 4650 + (4651) 4651 + (4652) 4097 + (4653) 4653 + (4654) 2429 + (4655) 3752 + (4656) 4656 + (4657) 4657 + (4658) 2335 + (4659) 4659 + (4660) 2073 + (4661) 4661 + (4662) 949 + (4663) 3024 + (4664) 45 + (4665) 3194 + (4666) 3975 + (4667) 4667 + (4668) 4668 + (4669) 4669 + (4670) 4670 + (4671) 4671 + (4672) 2757 + (4673) 2444 + (4674) 4674 + (4675) 700 + (4676) 3849 + (4677) 4677 + (4678) 1971 + (4679) 2208 + (4680) 4680 + (4681) 4196 + (4682) 4682 + (4683) 1790 + (4684) 4625 + (4685) 4685 + (4686) 4686 + (4687) 4687 + (4688) 839 + (4689) 2946 + (4690) 399 + (4691) 4691 + (4692) 4692 + (4693) 4693 + (4694) 4293 + (4695) 4695 + (4696) 4696 + (4697) 2820 + (4698) 4698 + (4699) 4699 + (4700) 1665 + (4701) 4701 + (4702) 4702 + (4703) 4703 + (4704) 3607 + (4705) 4705 + (4706) 4706 + (4707) 4460 + (4708) 4708 + (4709) 2320 + (4710) 4710 + (4711) 4711 + (4712) 4712 + (4713) 468 + (4714) 2087 + (4715) 3732 + (4716) 2577 + (4717) 4717 + (4718) 1405 + (4719) 520 + (4720) 2053 + (4721) 4450 + (4722) 4722 + (4723) 1820 + (4724) 4724 + (4725) 4725 + (4726) 1205 + (4727) 752 + (4728) 1325 + (4729) 3290 + (4730) 3833 + (4731) 4731 + (4732) 4732 + (4733) 2766 + (4734) 4734 + (4735) 4735 + (4736) 4736 + (4737) 738 + (4738) 1407 + (4739) 4739 + (4740) 4740 + (4741) 534 + (4742) 1413 + (4743) 4743 + (4744) 2669 + (4745) 4745 + (4746) 1481 + (4747) 4747 + (4748) 2673 + (4749) 4520 + (4750) 4750 + (4751) 728 + (4752) 4752 + (4753) 4220 + (4754) 3537 + (4755) 3430 + (4756) 1771 + (4757) 4757 + (4758) 1795 + (4759) 3008 + (4760) 4760 + (4761) 4761 + (4762) 4762 + (4763) 4763 + (4764) 4764 + (4765) 2712 + (4766) 1931 + (4767) 4767 + (4768) 4357 + (4769) 4769 + (4770) 111 + (4771) 4771 + (4772) 4772 + (4773) 4773 + (4774) 4774 + (4775) 4775 + (4776) 4776 + (4777) 970 + (4778) 649 + (4779) 1550 + (4780) 4067 + (4781) 4781 + (4782) 4782 + (4783) 4783 + (4784) 4784 + (4785) 2108 + (4786) 2639 + (4787) 2668 + (4788) 3195 + (4789) 3158 + (4790) 2101 + (4791) 74 + (4792) 4792 + (4793) 4793 + (4794) 217 + (4795) 174 + (4796) 4796 + (4797) 606 + (4798) 4798 + (4799) 4799 + (4800) 4800 + (4801) 4801 + (4802) 4802 + (4803) 4803 + (4804) 3289 + (4805) 3638 + (4806) 2915 + (4807) 1120 + (4808) 4808 + (4809) 4809 + (4810) 4810 + (4811) 1780 + (4812) 4497 + (4813) 3464 + (4814) 3371 + (4815) 4815 + (4816) 4816 + (4817) 882 + (4818) 2847 + (4819) 4819 + (4820) 1387 + (4821) 4821 + (4822) 4822 + (4823) 528 + (4824) 4824 + (4825) 586 + (4826) 4826 + (4827) 4827 + (4828) 4828 + (4829) 4829 + (4830) 4830 + (4831) 1304 + (4832) 2949 + (4833) 4833 + (4834) 3007 + (4835) 4835 + (4836) 2425 + (4837) 576 + (4838) 4838 + (4839) 4016 + (4840) 4840 + (4841) 4841 + (4842) 2521 + (4843) 4843 + (4844) 2403 + (4845) 72 + (4846) 3691 + (4847) 1538 + (4848) 2135 + (4849) 4620 + (4850) 4850 + (4851) 4380 + (4852) 2041 + (4853) 176 + (4854) 275 + (4855) 2240 + (4856) 4856 + (4857) 180 + (4858) 3191 + (4859) 2990 + (4860) 4860 + (4861) 1774 + (4862) 4862 + (4863) 440 + (4864) 2725 + (4865) 4865 + (4866) 527 + (4867) 4867 + (4868) 4868 + (4869) 4869 + (4870) 2371 + (4871) 1546 + (4872) 4872 + (4873) 1706 + (4874) 73 + (4875) 692 + (4876) 4876 + (4877) 4877 + (4878) 4878 + (4879) 3288 + (4880) 4880 + (4881) 2508 + (4882) 2943 + (4883) 1718 + (4884) 4884 + (4885) 2576 + (4886) 4886 + (4887) 4887 + (4888) 2383 + (4889) 794 + (4890) 4890 + (4891) 2676 + (4892) 2419 + (4893) 574 + (4894) 4894 + (4895) 4482 + (4896) 3797 + (4897) 4897 + (4898) 4898 + (4899) 1740 + (4900) 4900 + (4901) 294 + (4902) 3651 + (4903) 3040 + (4904) 4904 + (4905) 4905 + (4906) 1497 + (4907) 4907 + (4908) 2977 + (4909) 2894 + (4910) 4910 + (4911) 3176 + (4912) 4912 + (4913) 4913 + (4914) 4127 + (4915) 4915 + (4916) 4916 + (4917) 3462 + (4918) 4918 + (4919) 4919 + (4920) 4920 + (4921) 4921 + (4922) 4922 + (4923) 3860 + (4924) 4924 + (4925) 3768 + (4926) 4926 + (4927) 4927 + (4928) 4928 + (4929) 4898 + (4930) 3729 + (4931) 4931 + (4932) 3913 + (4933) 4933 + (4934) 4934 + (4935) 4935 + (4936) 1453 + (4937) 4937 + (4938) 4938 + (4939) 926 + (4940) 4940 + (4941) 4941 + (4942) 397 + (4943) 4943 + (4944) 3143 + (4945) 4945 + (4946) 2719 + (4947) 4947 + (4948) 3641 + (4949) 4949 + (4950) 1477 + (4951) 1904 + (4952) 4952 + (4953) 4953 + (4954) 4954 + (4955) 1700 + (4956) 4956 + (4957) 4957 + (4958) 4958 + (4959) 1842 + (4960) 4023 + (4961) 482 + (4962) 4962 + (4963) 4963 + (4964) 4964 + (4965) 4965 + (4966) 4966 + (4967) 2384 + (4968) 4968 + (4969) 4969 + (4970) 1721 + (4971) 1428 + (4972) 4972 + (4973) 4973 + (4974) 3131 + (4975) 4975 + (4976) 4976 + (4977) 4977 + (4978) 4978 + (4979) 2390 + (4980) 4281 + (4981) 4224 + (4982) 4982 + (4983) 4983 + (4984) 4975 + (4985) 2602 + (4986) 4986 + (4987) 942 + (4988) 4988 + (4989) 4360 + (4990) 2365 + (4991) 4991 + (4992) 1845 + (4993) 3452 + (4994) 4994 + (4995) 4995 + (4996) 4996 + (4997) 4470 + (4998) 4998 + (4999) 4999 + (5000) 5000 + (5001) 2916 + (5002) 5002 + (5003) 772 + (5004) 5004 + (5005) 5005 + (5006) 4829 + (5007) 3480 + (5008) 5008 + (5009) 1100 + (5010) 5010 + (5011) 5011 + (5012) 5012 + (5013) 1510 + (5014) 3957 + (5015) 4890 + (5016) 5016 + (5017) 564 + (5018) 185 + (5019) 2980 + (5020) 5020 + (5021) 4472 + (5022) 5022 + (5023) 178 + (5024) 5024 + (5025) 5025 + (5026) 5026 + (5027) 4508 + (5028) 5028 + (5029) 3606 + (5030) 2613 + (5031) 5031 + (5032) 5032 + (5033) 5033 + (5034) 4569 + (5035) 5035 + (5036) 1251 + (5037) 1176 + (5038) 4843 + (5039) 5039 + (5040) 5040 + (5041) 2354 + (5042) 497 + (5043) 5043 + (5044) 5044 + (5045) 5045 + (5046) 5046 + (5047) 5047 + (5048) 4285 + (5049) 3882 + (5050) 5050 + (5051) 5051 + (5052) 4691 + (5053) 2606 + (5054) 5054 + (5055) 2664 + (5056) 5056 + (5057) 3586 + (5058) 97 + (5059) 5059 + (5060) 5060 + (5061) 5061 + (5062) 805 + (5063) 3552 + (5064) 5064 + (5065) 1252 + (5066) 5066 + (5067) 766 + (5068) 5068 + (5069) 3086 + (5070) 5070 + (5071) 5071 + (5072) 5072 + (5073) 834 + (5074) 2159 + (5075) 2300 + (5076) 1897 + (5077) 5077 + (5078) 1635 + (5079) 5079 + (5080) 941 + (5081) 5081 + (5082) 679 + (5083) 2622 + (5084) 5084 + (5085) 4638 + (5086) 2411 + (5087) 4920 + (5088) 5088 + (5089) 5089 + (5090) 5090 + (5091) 5091 + (5092) 5092 + (5093) 4528 + (5094) 5094 + (5095) 2896 + (5096) 799 + (5097) 4682 + (5098) 985 + (5099) 548 + (5100) 2513 + (5101) 5101 + (5102) 3613 + (5103) 338 + (5104) 5104 + (5105) 2770 + (5106) 4735 + (5107) 374 + (5108) 5108 + (5109) 4934 + (5110) 5110 + (5111) 2416 + (5112) 2765 + (5113) 5113 + (5114) 3145 + (5115) 2532 + (5116) 5116 + (5117) 5117 + (5118) 5118 + (5119) 504 + (5120) 213 + (5121) 3020 + (5122) 5122 + (5123) 5123 + (5124) 1833 + (5125) 5125 + (5126) 4803 + (5127) 5127 + (5128) 5128 + (5129) 3124 + (5130) 2663 + (5131) 4 + (5132) 4337 + (5133) 5133 + (5134) 5134 + (5135) 2066 + (5136) 261 + (5137) 5137 + (5138) 4943 + (5139) 140 + (5140) 3979 + (5141) 4822 + (5142) 4501 + (5143) 1440 + (5144) 5144 + (5145) 2692 + (5146) 5146 + (5147) 3604 + (5148) 5148 + (5149) 2424 + (5150) 765 + (5151) 5151 + (5152) 3207 + (5153) 5020 + (5154) 3057 + (5155) 716 + (5156) 2299 + (5157) 5157 + (5158) 387 + (5159) 3994 + (5160) 1359 + (5161) 2522 + (5162) 1881 + (5163) 5163 + (5164) 3793 + (5165) 702 + (5166) 3869 + (5167) 5167 + (5168) 4005 + (5169) 5169 + (5170) 5170 + (5171) 4198 + (5172) 377 + (5173) 2342 + (5174) 5174 + (5175) 5175 + (5176) 925 + (5177) 5177 + (5178) 5178 + (5179) 4244 + (5180) 1331 + (5181) 5181 + (5182) 5182 + (5183) 4904 + (5184) 2039 + (5185) 5185 + (5186) 2303 + (5187) 3948 + (5188) 5188 + (5189) 454 + (5190) 3877 + (5191) 1882 + (5192) 4063 + (5193) 1866 + (5194) 1689 + (5195) 5195 + (5196) 899 + (5197) 3416 + (5198) 5198 + (5199) 5199 + (5200) 5200 + (5201) 4764 + (5202) 3647 + (5203) 5203 + (5204) 5204 + (5205) 2662 + (5206) 5206 + (5207) 5207 + (5208) 5208 + (5209) 1274 + (5210) 3209 + (5211) 5211 + (5212) 5212 + (5213) 5213 + (5214) 2637 + (5215) 1586 + (5216) 1847 + (5217) 5217 + (5218) 4559 + (5219) 604 + (5220) 1929 + (5221) 5221 + (5222) 5222 + (5223) 1696 + (5224) 1887 + (5225) 5225 + (5226) 2647 + (5227) 5227 + (5228) 5228 + (5229) 5229 + (5230) 4699 + (5231) 5231 + (5232) 5232 + (5233) 5233 + (5234) 5234 + (5235) 444 + (5236) 41 + (5237) 5237 + (5238) 5238 + (5239) 1104 + (5240) 2527 + (5241) 3092 + (5242) 5242 + (5243) 1540 + (5244) 4819 + (5245) 5245 + (5246) 5246 + (5247) 5247 + (5248) 5248 + (5249) 1186 + (5250) 5250 + (5251) 3078 + (5252) 5252 + (5253) 2288 + (5254) 4243 + (5255) 5255 + (5256) 5256 + (5257) 5257 + (5258) 5258 + (5259) 5259 + (5260) 5260 + (5261) 5261 + (5262) 2989 + (5263) 5263 + (5264) 133 + (5265) 3282 + (5266) 5266 + (5267) 5267 + (5268) 11 + (5269) 1888 + (5270) 99 + (5271) 1312 + (5272) 4029 + (5273) 3306 + (5274) 5274 + (5275) 5275 + (5276) 2707 + (5277) 3912 + (5278) 5278 + (5279) 2818 + (5280) 5280 + (5281) 748 + (5282) 5282 + (5283) 5283 + (5284) 521 + (5285) 5285 + (5286) 5286 + (5287) 1306 + (5288) 5288 + (5289) 5289 + (5290) 5290 + (5291) 1070 + (5292) 3587 + (5293) 5293 + (5294) 5294 + (5295) 5256 + (5296) 2343 + (5297) 5297 + (5298) 5298 + (5299) 5299 + (5300) 5300 + (5301) 3616 + (5302) 5043 + (5303) 4640 + (5304) 831 + (5305) 3652 + (5306) 5306 + (5307) 5188 + (5308) 259 + (5309) 5309 + (5310) 1421 + (5311) 2088 + (5312) 5312 + (5313) 5313 + (5314) 1423 + (5315) 5315 + (5316) 5316 + (5317) 5317 + (5318) 4757 + (5319) 1680 + (5320) 5320 + (5321) 5321 + (5322) 2537 + (5323) 4596 + (5324) 433 + (5325) 5325 + (5326) 603 + (5327) 5327 + (5328) 5328 + (5329) 3052 + (5330) 5330 + (5331) 5331 + (5332) 5332 + (5333) 166 + (5334) 179 + (5335) 5335 + (5336) 4175 + (5337) 5337 + (5338) 5338 + (5339) 3038 + (5340) 371 + (5341) 5341 + (5342) 2509 + (5343) 5343 + (5344) 1573 + (5345) 5345 + (5346) 5346 + (5347) 2524 + (5348) 5348 + (5349) 2150 + (5350) 5350 + (5351) 3850 + (5352) 2781 + (5353) 10 + (5354) 1655 + (5355) 932 + (5356) 5356 + (5357) 5357 + (5358) 3499 + (5359) 4600 + (5360) 5061 + (5361) 5361 + (5362) 4159 + (5363) 5363 + (5364) 5364 + (5365) 3232 + (5366) 1237 + (5367) 4736 + (5368) 141 + (5369) 5369 + (5370) 5370 + (5371) 5371 + (5372) 1155 + (5373) 4952 + (5374) 1611 + (5375) 2504 + (5376) 5376 + (5377) 2562 + (5378) 5378 + (5379) 1660 + (5380) 2873 + (5381) 5381 + (5382) 5382 + (5383) 5383 + (5384) 5384 + (5385) 1892 + (5386) 1177 + (5387) 5387 + (5388) 3955 + (5389) 126 + (5390) 1885 + (5391) 5391 + (5392) 4197 + (5393) 76 + (5394) 4367 + (5395) 5395 + (5396) 5396 + (5397) 2518 + (5398) 5398 + (5399) 5056 + (5400) 5400 + (5401) 2858 + (5402) 3033 + (5403) 3348 + (5404) 1603 + (5405) 5405 + (5406) 5406 + (5407) 760 + (5408) 3925 + (5409) 5409 + (5410) 5410 + (5411) 5411 + (5412) 1067 + (5413) 1968 + (5414) 5414 + (5415) 4784 + (5416) 5416 + (5417) 4628 + (5418) 2615 + (5419) 5419 + (5420) 2387 + (5421) 3998 + (5422) 413 + (5423) 5423 + (5424) 5424 + (5425) 5425 + (5426) 5426 + (5427) 2348 + (5428) 5428 + (5429) 5429 + (5430) 2115 + (5431) 5431 + (5432) 5432 + (5433) 5433 + (5434) 5434 + (5435) 5435 + (5436) 5436 + (5437) 1000 + (5438) 5438 + (5439) 5439 + (5440) 1877 + (5441) 5441 + (5442) 5442 + (5443) 2828 + (5444) 601 + (5445) 2752 + (5446) 979 + (5447) 1984 + (5448) 303 + (5449) 5449 + (5450) 1769 + (5451) 3924 + (5452) 1489 + (5453) 4526 + (5454) 5454 + (5455) 5455 + (5456) 4279 + (5457) 5457 + (5458) 5458 + (5459) 5459 + (5460) 5460 + (5461) 2560 + (5462) 5123 + (5463) 5463 + (5464) 2493 + (5465) 3332 + (5466) 5466 + (5467) 5467 + (5468) 5468 + (5469) 5016 + (5470) 5470 + (5471) 5471 + (5472) 5472 + (5473) 3468 + (5474) 5474 + (5475) 2982 + (5476) 1019 + (5477) 5477 + (5478) 5478 + (5479) 5479 + (5480) 2221 + (5481) 5481 + (5482) 3031 + (5483) 1988 + (5484) 1697 + (5485) 5485 + (5486) 1005 + (5487) 5487 + (5488) 5488 + (5489) 4348 + (5490) 5490 + (5491) 5174 + (5492) 2153 + (5493) 5493 + (5494) 4147 + (5495) 5495 + (5496) 4637 + (5497) 5497 + (5498) 5498 + (5499) 5499 + (5500) 673 + (5501) 5501 + (5502) 3805 + (5503) 5503 + (5504) 5504 + (5505) 498 + (5506) 2143 + (5507) 5507 + (5508) 5508 + (5509) 5509 + (5510) 373 + (5511) 4506 + (5512) 5512 + (5513) 1796 + (5514) 5257 + (5515) 5515 + (5516) 3409 + (5517) 5517 + (5518) 477 + (5519) 1378 + (5520) 5520 + (5521) 2540 + (5522) 849 + (5523) 470 + (5524) 5524 + (5525) 5525 + (5526) 1667 + (5527) 1178 + (5528) 3023 + (5529) 5529 + (5530) 9 + (5531) 5531 + (5532) 5532 + (5533) 4632 + (5534) 1021 + (5535) 2264 + (5536) 231 + (5537) 5537 + (5538) 1599 + (5539) 5539 + (5540) 5540 + (5541) 5541 + (5542) 4195 + (5543) 5543 + (5544) 4253 + (5545) 1908 + (5546) 3785 + (5547) 2084 + (5548) 3971 + (5549) 5549 + (5550) 1565 + (5551) 1992 + (5552) 1269 + (5553) 5553 + (5554) 1759 + (5555) 5555 + (5556) 5556 + (5557) 5557 + (5558) 2005 + (5559) 3242 + (5560) 5560 + (5561) 5561 + (5562) 5562 + (5563) 2302 + (5564) 3 + (5565) 5565 + (5566) 3627 + (5567) 5567 + (5568) 5568 + (5569) 1138 + (5570) 5570 + (5571) 4956 + (5572) 5572 + (5573) 3568 + (5574) 211 + (5575) 4762 + (5576) 5576 + (5577) 5577 + (5578) 5578 + (5579) 5579 + (5580) 5580 + (5581) 1710 + (5582) 5582 + (5583) 5583 + (5584) 5584 + (5585) 2156 + (5586) 5586 + (5587) 5587 + (5588) 5588 + (5589) 5589 + (5590) 5590 + (5591) 5591 + (5592) 5231 + (5593) 980 + (5594) 5594 + (5595) 3758 + (5596) 4529 + (5597) 5597 + (5598) 2253 + (5599) 4466 + (5600) 183 + (5601) 1084 + (5602) 3297 + (5603) 4838 + (5604) 5604 + (5605) 5605 + (5606) 5606 + (5607) 362 + (5608) 1903 + (5609) 3444 + (5610) 327 + (5611) 5611 + (5612) 5612 + (5613) 3102 + (5614) 2811 + (5615) 5615 + (5616) 1703 + (5617) 5617 + (5618) 3791 + (5619) 2316 + (5620) 1131 + (5621) 2374 + (5622) 5622 + (5623) 5623 + (5624) 2783 + (5625) 1098 + (5626) 2631 + (5627) 3870 + (5628) 5628 + (5629) 5629 + (5630) 781 + (5631) 2962 + (5632) 2597 + (5633) 3484 + (5634) 1793 + (5635) 5635 + (5636) 1035 + (5637) 5637 + (5638) 581 + (5639) 5639 + (5640) 5640 + (5641) 5540 + (5642) 103 + (5643) 5643 + (5644) 803 + (5645) 3960 + (5646) 5646 + (5647) 4146 + (5648) 821 + (5649) 5649 + (5650) 5650 + (5651) 4140 + (5652) 4475 + (5653) 5653 + (5654) 485 + (5655) 4250 + (5656) 5656 + (5657) 5657 + (5658) 4135 + (5659) 5659 + (5660) 5660 + (5661) 894 + (5662) 5435 + (5663) 5663 + (5664) 1733 + (5665) 5665 + (5666) 5169 + (5667) 5667 + (5668) 5668 + (5669) 5669 + (5670) 3635 + (5671) 5671 + (5672) 3471 + (5673) 2756 + (5674) 5674 + (5675) 3278 + (5676) 1345 + (5677) 5134 + (5678) 5678 + (5679) 5679 + (5680) 4887 + (5681) 940 + (5682) 5503 + (5683) 5683 + (5684) 2441 + (5685) 5685 + (5686) 4867 + (5687) 816 + (5688) 1119 + (5689) 5252 + (5690) 969 + (5691) 5691 + (5692) 2897 + (5693) 5693 + (5694) 5694 + (5695) 4280 + (5696) 5696 + (5697) 5697 + (5698) 3361 + (5699) 5699 + (5700) 5700 + (5701) 5701 + (5702) 5653 + (5703) 4938 + (5704) 5704 + (5705) 4180 + (5706) 311 + (5707) 2414 + (5708) 5708 + (5709) 2296 + (5710) 5710 + (5711) 5711 + (5712) 1767 + (5713) 5713 + (5714) 2591 + (5715) 934 + (5716) 5716 + (5717) 5717 + (5718) 5718 + (5719) 160 + (5720) 5720 + (5721) 3018 + (5722) 5722 + (5723) 1038 + (5724) 417 + (5725) 1560 + (5726) 1339 + (5727) 1442 + (5728) 5728 + (5729) 5729 + (5730) 4575 + (5731) 3094 + (5732) 5579 + (5733) 1766 + (5734) 5734 + (5735) 2256 + (5736) 191 + (5737) 1732 + (5738) 5738 + (5739) 4740 + (5740) 5740 + (5741) 5741 + (5742) 5742 + (5743) 2392 + (5744) 935 + (5745) 4706 + (5746) 5746 + (5747) 2188 + (5748) 5748 + (5749) 4464 + (5750) 5701 + (5751) 5751 + (5752) 2015 + (5753) 5753 + (5754) 4793 + (5755) 5755 + (5756) 5756 + (5757) 2008 + (5758) 2731 + (5759) 5759 + (5760) 3861 + (5761) 2716 + (5762) 3617 + (5763) 5763 + (5764) 5764 + (5765) 5765 + (5766) 5766 + (5767) 1712 + (5768) 5768 + (5769) 5769 + (5770) 4599 + (5771) 750 + (5772) 2081 + (5773) 4168 + (5774) 5774 + (5775) 5775 + (5776) 5776 + (5777) 3842 + (5778) 3871 + (5779) 3580 + (5780) 5780 + (5781) 2886 + (5782) 5782 + (5783) 5200 + (5784) 5784 + (5785) 858 + (5786) 697 + (5787) 5787 + (5788) 5788 + (5789) 2590 + (5790) 4669 + (5791) 1144 + (5792) 3239 + (5793) 5793 + (5794) 5794 + (5795) 5795 + (5796) 5796 + (5797) 1616 + (5798) 5798 + (5799) 5799 + (5800) 1309 + (5801) 1012 + (5802) 5449 + (5803) 5710 + (5804) 4051 + (5805) 1246 + (5806) 5806 + (5807) 4408 + (5808) 4773 + (5809) 610 + (5810) 5810 + (5811) 4540 + (5812) 5812 + (5813) 4752 + (5814) 2803 + (5815) 5815 + (5816) 2973 + (5817) 3812 + (5818) 5818 + (5819) 2308 + (5820) 5820 + (5821) 1294 + (5822) 5822 + (5823) 4792 + (5824) 5824 + (5825) 5825 + (5826) 1551 + (5827) 5827 + (5828) 3755 + (5829) 246 + (5830) 5221 + (5831) 5831 + (5832) 5832 + (5833) 3370 + (5834) 5834 + (5835) 2318 + (5836) 627 + (5837) 1454 + (5838) 5838 + (5839) 1074 + (5840) 1221 + (5841) 5841 + (5842) 2161 + (5843) 5843 + (5844) 2953 + (5845) 4918 + (5846) 5059 + (5847) 5847 + (5848) 5848 + (5849) 3956 + (5850) 2487 + (5851) 910 + (5852) 1041 + (5853) 2366 + (5854) 1099 + (5855) 2594 + (5856) 5856 + (5857) 5170 + (5858) 5297 + (5859) 5859 + (5860) 425 + (5861) 5861 + (5862) 5862 + (5863) 1082 + (5864) 1983 + (5865) 5865 + (5866) 4457 + (5867) 5044 + (5868) 4001 + (5869) 5869 + (5870) 4059 + (5871) 5871 + (5872) 245 + (5873) 386 + (5874) 5841 + (5875) 582 + (5876) 5876 + (5877) 182 + (5878) 5878 + (5879) 5879 + (5880) 5325 + (5881) 1594 + (5882) 5882 + (5883) 5883 + (5884) 3907 + (5885) 3832 + (5886) 5886 + (5887) 5887 + (5888) 5888 + (5889) 4204 + (5890) 5890 + (5891) 284 + (5892) 5892 + (5893) 1094 + (5894) 1123 + (5895) 1264 + (5896) 5896 + (5897) 4644 + (5898) 1351 + (5899) 5774 + (5900) 1521 + (5901) 1118 + (5902) 3835 + (5903) 5903 + (5904) 3685 + (5905) 5905 + (5906) 5679 + (5907) 5907 + (5908) 5908 + (5909) 5909 + (5910) 5910 + (5911) 4026 + (5912) 4287 + (5913) 1370 + (5914) 5914 + (5915) 5915 + (5916) 2067 + (5917) 5917 + (5918) 5918 + (5919) 5746 + (5920) 4165 + (5921) 2396 + (5922) 5922 + (5923) 5923 + (5924) 5924 + (5925) 2464 + (5926) 2693 + (5927) 3594 + (5928) 3967 + (5929) 2196 + (5930) 5930 + (5931) 5931 + (5932) 5932 + (5933) 5933 + (5934) 5934 + (5935) 5935 + (5936) 5936 + (5937) 5937 + (5938) 5457 + (5939) 5939 + (5940) 5940 + (5941) 5941 + (5942) 5942 + (5943) 3834 + (5944) 5711 + (5945) 4058 + (5946) 2329 + (5947) 5947 + (5948) 5948 + (5949) 2238 + (5950) 1117 + (5951) 370 + (5952) 933 + (5953) 5953 + (5954) 1311 + (5955) 4646 + (5956) 5956 + (5957) 4310 + (5958) 5958 + (5959) 4378 + (5960) 1709 + (5961) 5961 + (5962) 5751 + (5963) 5963 + (5964) 5964 + (5965) 5965 + (5966) 1355 + (5967) 5967 + (5968) 5717 + (5969) 5969 + (5970) 5970 + (5971) 5971 + (5972) 5972 + (5973) 5110 + (5974) 2131 + (5975) 5975 + (5976) 5976 + (5977) 1674 + (5978) 5978 + (5979) 5979 + (5980) 5980 + (5981) 4494 + (5982) 1515 + (5983) 5983 + (5984) 5984 + (5985) 5985 + (5986) 3247 + (5987) 156 + (5988) 4043 + (5989) 4976 + (5990) 2645 + (5991) 3504 + (5992) 5992 + (5993) 5993 + (5994) 4329 + (5995) 4254 + (5996) 5996 + (5997) 4104 + (5998) 5998 + (5999) 3208 + (6000) 6000 + (6001) 4172 + (6002) 6002 + (6003) 6003 + (6004) 1209 + (6005) 2624 + (6006) 6006 + (6007) 2048 + (6008) 175 + (6009) 6009 + (6010) 5177 + (6011) 286 + (6012) 515 + (6013) 5886 + (6014) 2043 + (6015) 4760 + (6016) 6016 + (6017) 3100 + (6018) 6018 + (6019) 2310 + (6020) 2761 + (6021) 6021 + (6022) 501 + (6023) 4032 + (6024) 6024 + (6025) 3844 + (6026) 5081 + (6027) 6027 + (6028) 2035 + (6029) 3608 + (6030) 1917 + (6031) 5378 + (6032) 6032 + (6033) 6033 + (6034) 5217 + (6035) 5148 + (6036) 2601 + (6037) 3702 + (6038) 403 + (6039) 1936 + (6040) 4799 + (6041) 4388 + (6042) 5321 + (6043) 6043 + (6044) 6044 + (6045) 5768 + (6046) 5693 + (6047) 802 + (6048) 53 + (6049) 6049 + (6050) 6050 + (6051) 6051 + (6052) 2683 + (6053) 3110 + (6054) 1315 + (6055) 6055 + (6056) 6056 + (6057) 4090 + (6058) 6058 + (6059) 2052 + (6060) 1539 + (6061) 6061 + (6062) 6062 + (6063) 6063 + (6064) 6064 + (6065) 556 + (6066) 1343 + (6067) 5468 + (6068) 3899 + (6069) 150 + (6070) 5667 + (6071) 640 + (6072) 6072 + (6073) 1636 + (6074) 5031 + (6075) 206 + (6076) 6076 + (6077) 5576 + (6078) 6078 + (6079) 5720 + (6080) 6080 + (6081) 6081 + (6082) 3119 + (6083) 6083 + (6084) 5657 + (6085) 2144 + (6086) 6086 + (6087) 4922 + (6088) 6088 + (6089) 6089 + (6090) 4439 + (6091) 5972 + (6092) 5555 + (6093) 632 + (6094) 2845 + (6095) 6095 + (6096) 6096 + (6097) 6097 + (6098) 1905 + (6099) 6099 + (6100) 6100 + (6101) 6101 + (6102) 6102 + (6103) 5466 + (6104) 2173 + (6105) 4372 + (6106) 6106 + (6107) 1326 + (6108) 6108 + (6109) 872 + (6110) 6110 + (6111) 6111 + (6112) 2085 + (6113) 2220 + (6114) 5985 + (6115) 6115 + (6116) 3947 + (6117) 2160 + (6118) 6118 + (6119) 256 + (6120) 6120 + (6121) 4580 + (6122) 6122 + (6123) 6123 + (6124) 945 + (6125) 5288 + (6126) 3051 + (6127) 6127 + (6128) 6128 + (6129) 3372 + (6130) 1713 + (6131) 6131 + (6132) 6132 + (6133) 6133 + (6134) 5763 + (6135) 5274 + (6136) 6136 + (6137) 6137 + (6138) 4745 + (6139) 798 + (6140) 6140 + (6141) 1016 + (6142) 3531 + (6143) 866 + (6144) 6144 + (6145) 5234 + (6146) 1391 + (6147) 6044 + (6148) 6148 + (6149) 6149 + (6150) 1045 + (6151) 6151 + (6152) 6152 + (6153) 1386 + (6154) 6154 + (6155) 6155 + (6156) 5025 + (6157) 1182 + (6158) 5357 + (6159) 168 + (6160) 1335 + (6161) 5490 + (6162) 5697 + (6163) 806 + (6164) 6164 + (6165) 6165 + (6166) 6166 + (6167) 6000 + (6168) 5983 + (6169) 2036 + (6170) 6170 + (6171) 3220 + (6172) 6172 + (6173) 6173 + (6174) 6174 + (6175) 6175 + (6176) 3527 + (6177) 6177 + (6178) 6178 + (6179) 6179 + (6180) 6155 + (6181) 6181 + (6182) 517 + (6183) 4650 + (6184) 6184 + (6185) 6185 + (6186) 6186 + (6187) 260 + (6188) 4161 + (6189) 5694 + (6190) 2573 + (6191) 242 + (6192) 1479 + (6193) 114 + (6194) 6194 + (6195) 6195 + (6196) 6196 + (6197) 3782 + (6198) 6198 + (6199) 6199 + (6200) 943 + (6201) 6201 + (6202) 5337 + (6203) 740 + (6204) 769 + (6205) 2846 + (6206) 3789 + (6207) 2402 + (6208) 2181 + (6209) 3228 + (6210) 6210 + (6211) 6140 + (6212) 6212 + (6213) 6213 + (6214) 1301 + (6215) 240 + (6216) 1773 + (6217) 1748 + (6218) 871 + (6219) 6219 + (6220) 6220 + (6221) 5656 + (6222) 5931 + (6223) 2002 + (6224) 6101 + (6225) 5084 + (6226) 4767 + (6227) 6227 + (6228) 5195 + (6229) 6229 + (6230) 6230 + (6231) 720 + (6232) 6232 + (6233) 2932 + (6234) 5975 + (6235) 1380 + (6236) 3777 + (6237) 6062 + (6238) 29 + (6239) 1496 + (6240) 2069 + (6241) 2850 + (6242) 6242 + (6243) 6243 + (6244) 251 + (6245) 1142 + (6246) 6246 + (6247) 2346 + (6248) 351 + (6249) 244 + (6250) 6250 + (6251) 3694 + (6252) 6252 + (6253) 4184 + (6254) 4747 + (6255) 1474 + (6256) 455 + (6257) 6257 + (6258) 6258 + (6259) 1542 + (6260) 1273 + (6261) 3984 + (6262) 37 + (6263) 6263 + (6264) 4095 + (6265) 6265 + (6266) 4953 + (6267) 4878 + (6268) 3665 + (6269) 5704 + (6270) 813 + (6271) 3432 + (6272) 2919 + (6273) 6273 + (6274) 4271 + (6275) 6275 + (6276) 3689 + (6277) 5222 + (6278) 4931 + (6279) 3888 + (6280) 6173 + (6281) 5876 + (6282) 3543 + (6283) 270 + (6284) 2961 + (6285) 4606 + (6286) 717 + (6287) 2728 + (6288) 6288 + (6289) 962 + (6290) 2495 + (6291) 6291 + (6292) 6292 + (6293) 6293 + (6294) 5411 + (6295) 6295 + (6296) 1805 + (6297) 628 + (6298) 1447 + (6299) 1156 + (6300) 6300 + (6301) 1944 + (6302) 6302 + (6303) 2024 + (6304) 6304 + (6305) 1762 + (6306) 2913 + (6307) 6307 + (6308) 6027 + (6309) 1776 + (6310) 85 + (6311) 3664 + (6312) 6312 + (6313) 2148 + (6314) 6314 + (6315) 132 + (6316) 481 + (6317) 6317 + (6318) 2141 + (6319) 3352 + (6320) 3077 + (6321) 6321 + (6322) 127 + (6323) 6323 + (6324) 5259 + (6325) 6325 + (6326) 6326 + (6327) 5738 + (6328) 189 + (6329) 6329 + (6330) 1001 + (6331) 6331 + (6332) 4419 + (6333) 2174 + (6334) 3819 + (6335) 6335 + (6336) 6336 + (6337) 2082 + (6338) 6338 + (6339) 6339 + (6340) 2907 + (6341) 4144 + (6342) 6342 + (6343) 1770 + (6344) 5567 + (6345) 6345 + (6346) 4183 + (6347) 1806 + (6348) 451 + (6349) 6349 + (6350) 5051 + (6351) 6050 + (6352) 823 + (6353) 946 + (6354) 2321 + (6355) 6355 + (6356) 2507 + (6357) 6357 + (6358) 6358 + (6359) 4352 + (6360) 6360 + (6361) 4634 + (6362) 5993 + (6363) 3188 + (6364) 3969 + (6365) 4750 + (6366) 3707 + (6367) 6367 + (6368) 2261 + (6369) 4434 + (6370) 1679 + (6371) 6371 + (6372) 233 + (6373) 6373 + (6374) 6374 + (6375) 3872 + (6376) 4653 + (6377) 2426 + (6378) 4921 + (6379) 5822 + (6380) 6380 + (6381) 1800 + (6382) 3341 + (6383) 6383 + (6384) 3559 + (6385) 6210 + (6386) 2047 + (6387) 5590 + (6388) 363 + (6389) 6118 + (6390) 1203 + (6391) 368 + (6392) 509 + (6393) 650 + (6394) 5623 + (6395) 878 + (6396) 6396 + (6397) 6397 + (6398) 3915 + (6399) 4178 + (6400) 5047 + (6401) 6401 + (6402) 5905 + (6403) 6403 + (6404) 6404 + (6405) 2816 + (6406) 6406 + (6407) 4282 + (6408) 6408 + (6409) 3492 + (6410) 6009 + (6411) 756 + (6412) 1329 + (6413) 6413 + (6414) 5787 + (6415) 5026 + (6416) 6416 + (6417) 6417 + (6418) 3551 + (6419) 4454 + (6420) 843 + (6421) 4070 + (6422) 5541 + (6423) 2266 + (6424) 4589 + (6425) 6425 + (6426) 4297 + (6427) 2852 + (6428) 307 + (6429) 3342 + (6430) 5419 + (6431) 2418 + (6432) 3271 + (6433) 1746 + (6434) 5713 + (6435) 4998 + (6436) 3307 + (6437) 358 + (6438) 6438 + (6439) 1834 + (6440) 6440 + (6441) 2090 + (6442) 6442 + (6443) 4724 + (6444) 4995 + (6445) 6445 + (6446) 6446 + (6447) 6447 + (6448) 5525 + (6449) 3618 + (6450) 3439 + (6451) 6451 + (6452) 4523 + (6453) 6453 + (6454) 2051 + (6455) 6455 + (6456) 5199 + (6457) 5460 + (6458) 6151 + (6459) 4996 + (6460) 2769 + (6461) 6461 + (6462) 5947 + (6463) 6463 + (6464) 4933 + (6465) 6465 + (6466) 3487 + (6467) 2214 + (6468) 4841 + (6469) 6469 + (6470) 6470 + (6471) 4496 + (6472) 6472 + (6473) 6473 + (6474) 6474 + (6475) 6475 + (6476) 3249 + (6477) 4894 + (6478) 4077 + (6479) 5922 + (6480) 6480 + (6481) 4258 + (6482) 5903 + (6483) 5820 + (6484) 6484 + (6485) 1590 + (6486) 5 + (6487) 5722 + (6488) 6488 + (6489) 2570 + (6490) 6490 + (6491) 6491 + (6492) 6355 + (6493) 4696 + (6494) 6494 + (6495) 1352 + (6496) 3831 + (6497) 2162 + (6498) 6498 + (6499) 6499 + (6500) 667 + (6501) 6501 + (6502) 4725 + (6503) 1376 + (6504) 2655 + (6505) 4986 + (6506) 6506 + (6507) 4612 + (6508) 6508 + (6509) 6509 + (6510) 2875 + (6511) 2152 + (6512) 2933 + (6513) 5612 + (6514) 6514 + (6515) 2262 + (6516) 6516 + (6517) 496 + (6518) 5941 + (6519) 4544 + (6520) 5151 + (6521) 1162 + (6522) 1303 + (6523) 6523 + (6524) 6195 + (6525) 4504 + (6526) 3787 + (6527) 2098 + (6528) 2021 + (6529) 5810 + (6530) 6530 + (6531) 6531 + (6532) 953 + (6533) 6533 + (6534) 3253 + (6535) 5434 + (6536) 6536 + (6537) 6537 + (6538) 6538 + (6539) 308 + (6540) 3171 + (6541) 3166 + (6542) 4267 + (6543) 6543 + (6544) 647 + (6545) 6545 + (6546) 4705 + (6547) 3686 + (6548) 5227 + (6549) 4176 + (6550) 6550 + (6551) 6551 + (6552) 6552 + (6553) 6553 + (6554) 1831 + (6555) 6555 + (6556) 385 + (6557) 6557 + (6558) 6558 + (6559) 6559 + (6560) 1863 + (6561) 3122 + (6562) 1073 + (6563) 6563 + (6564) 6564 + (6565) 2486 + (6566) 579 + (6567) 5984 + (6568) 6568 + (6569) 458 + (6570) 6570 + (6571) 5892 + (6572) 4563 + (6573) 6573 + (6574) 4155 + (6575) 744 + (6576) 4631 + (6577) 50 + (6578) 3311 + (6579) 6579 + (6580) 3083 + (6581) 6581 + (6582) 6582 + (6583) 128 + (6584) 6584 + (6585) 6585 + (6586) 1399 + (6587) 2958 + (6588) 593 + (6589) 1598 + (6590) 3019 + (6591) 6591 + (6592) 5847 + (6593) 6593 + (6594) 6594 + (6595) 3388 + (6596) 6555 + (6597) 6597 + (6598) 2515 + (6599) 2490 + (6600) 5261 + (6601) 6474 + (6602) 6473 + (6603) 5348 + (6604) 3027 + (6605) 152 + (6606) 4363 + (6607) 6440 + (6608) 3781 + (6609) 6609 + (6610) 6610 + (6611) 70 + (6612) 6612 + (6613) 2966 + (6614) 6003 + (6615) 6032 + (6616) 6616 + (6617) 1604 + (6618) 5799 + (6619) 510 + (6620) 4033 + (6621) 5848 + (6622) 2587 + (6623) 578 + (6624) 6624 + (6625) 6625 + (6626) 6626 + (6627) 6627 + (6628) 5387 + (6629) 1078 + (6630) 1107 + (6631) 6631 + (6632) 3965 + (6633) 6633 + (6634) 6634 + (6635) 1998 + (6636) 6636 + (6637) 2286 + (6638) 6638 + (6639) 4712 + (6640) 4421 + (6641) 2284 + (6642) 6642 + (6643) 2572 + (6644) 3003 + (6645) 4886 + (6646) 1267 + (6647) 2912 + (6648) 2077 + (6649) 2650 + (6650) 6650 + (6651) 6148 + (6652) 6652 + (6653) 4702 + (6654) 6557 + (6655) 5832 + (6656) 6656 + (6657) 6657 + (6658) 3135 + (6659) 2038 + (6660) 6660 + (6661) 3334 + (6662) 6662 + (6663) 3386 + (6664) 6664 + (6665) 6665 + (6666) 6666 + (6667) 6667 + (6668) 4833 + (6669) 6536 + (6670) 5181 + (6671) 898 + (6672) 6672 + (6673) 1420 + (6674) 6674 + (6675) 2892 + (6676) 2203 + (6677) 6336 + (6678) 6678 + (6679) 112 + (6680) 3581 + (6681) 4042 + (6682) 6682 + (6683) 4964 + (6684) 4259 + (6685) 4590 + (6686) 3547 + (6687) 6687 + (6688) 3319 + (6689) 3746 + (6690) 6690 + (6691) 6691 + (6692) 6692 + (6693) 6230 + (6694) 4245 + (6695) 3168 + (6696) 621 + (6697) 6697 + (6698) 359 + (6699) 3508 + (6700) 1907 + (6701) 6701 + (6702) 5597 + (6703) 5560 + (6704) 1397 + (6705) 2290 + (6706) 4255 + (6707) 6652 + (6708) 6708 + (6709) 6709 + (6710) 4915 + (6711) 6711 + (6712) 4109 + (6713) 6506 + (6714) 2905 + (6715) 6715 + (6716) 6716 + (6717) 2542 + (6718) 1819 + (6719) 5458 + (6720) 1989 + (6721) 6721 + (6722) 6722 + (6723) 6166 + (6724) 2523 + (6725) 3792 + (6726) 4211 + (6727) 4618 + (6728) 6728 + (6729) 2042 + (6730) 567 + (6731) 6404 + (6732) 611 + (6733) 3022 + (6734) 4125 + (6735) 2802 + (6736) 1079 + (6737) 6690 + (6738) 6738 + (6739) 188 + (6740) 6667 + (6741) 2406 + (6742) 6307 + (6743) 1392 + (6744) 575 + (6745) 4708 + (6746) 3095 + (6747) 6174 + (6748) 5409 + (6749) 494 + (6750) 1133 + (6751) 6751 + (6752) 6752 + (6753) 3836 + (6754) 6127 + (6755) 6755 + (6756) 747 + (6757) 5824 + (6758) 3525 + (6759) 6759 + (6760) 4015 + (6761) 6761 + (6762) 2921 + (6763) 6292 + (6764) 401 + (6765) 4008 + (6766) 6766 + (6767) 4152 + (6768) 2871 + (6769) 6769 + (6770) 6770 + (6771) 2556 + (6772) 6772 + (6773) 4448 + (6774) 6774 + (6775) 5472 + (6776) 3887 + (6777) 6777 + (6778) 5127 + (6779) 6660 + (6780) 1745 + (6781) 6781 + (6782) 6782 + (6783) 1624 + (6784) 5335 + (6785) 4370 + (6786) 2895 + (6787) 6787 + (6788) 4763 + (6789) 3958 + (6790) 4309 + (6791) 6490 + (6792) 6792 + (6793) 6793 + (6794) 3401 + (6795) 5582 + (6796) 5233 + (6797) 2798 + (6798) 1323 + (6799) 6728 + (6800) 87 + (6801) 4850 + (6802) 6802 + (6803) 5046 + (6804) 6553 + (6805) 4288 + (6806) 6806 + (6807) 624 + (6808) 2589 + (6809) 1978 + (6810) 5225 + (6811) 6766 + (6812) 4771 + (6813) 3806 + (6814) 2107 + (6815) 3448 + (6816) 789 + (6817) 6817 + (6818) 3535 + (6819) 742 + (6820) 265 + (6821) 6752 + (6822) 6822 + (6823) 3904 + (6824) 1245 + (6825) 6825 + (6826) 6826 + (6827) 6827 + (6828) 5011 + (6829) 6829 + (6830) 347 + (6831) 808 + (6832) 6832 + (6833) 6833 + (6834) 6834 + (6835) 3238 + (6836) 6836 + (6837) 4368 + (6838) 5909 + (6839) 6839 + (6840) 1293 + (6841) 5748 + (6842) 6842 + (6843) 1054 + (6844) 1619 + (6845) 478 + (6846) 6846 + (6847) 6664 + (6848) 4549 + (6849) 6514 + (6850) 5137 + (6851) 6851 + (6852) 3403 + (6853) 1408 + (6854) 6854 + (6855) 6855 + (6856) 6856 + (6857) 2116 + (6858) 5815 + (6859) 3476 + (6860) 6860 + (6861) 6024 + (6862) 6862 + (6863) 264 + (6864) 3413 + (6865) 4306 + (6866) 6866 + (6867) 172 + (6868) 2331 + (6869) 6869 + (6870) 6870 + (6871) 1498 + (6872) 6872 + (6873) 1322 + (6874) 3287 + (6875) 558 + (6876) 6033 + (6877) 776 + (6878) 6878 + (6879) 2680 + (6880) 6880 + (6881) 3068 + (6882) 2991 + (6883) 6883 + (6884) 6884 + (6885) 5088 + (6886) 3539 + (6887) 4000 + (6888) 5213 + (6889) 6889 + (6890) 6890 + (6891) 3892 + (6892) 419 + (6893) 680 + (6894) 6894 + (6895) 1768 + (6896) 6896 + (6897) 4284 + (6898) 6898 + (6899) 3830 + (6900) 1593 + (6901) 3376 + (6902) 6902 + (6903) 5818 + (6904) 6445 + (6905) 6905 + (6906) 1239 + (6907) 6907 + (6908) 545 + (6909) 2200 + (6910) 6910 + (6911) 4824 + (6912) 6912 + (6913) 3058 + (6914) 6914 + (6915) 5350 + (6916) 6916 + (6917) 1350 + (6918) 3541 + (6919) 1786 + (6920) 495 + (6921) 1578 + (6922) 5591 + (6923) 2862 + (6924) 4145 + (6925) 6925 + (6926) 3771 + (6927) 4242 + (6928) 6928 + (6929) 524 + (6930) 2607 + (6931) 4614 + (6932) 6932 + (6933) 3878 + (6934) 4085 + (6935) 138 + (6936) 845 + (6937) 660 + (6938) 281 + (6939) 6638 + (6940) 2257 + (6941) 6941 + (6942) 3611 + (6943) 6943 + (6944) 6944 + (6945) 258 + (6946) 6946 + (6947) 3436 + (6948) 6948 + (6949) 4038 + (6950) 2373 + (6951) 6951 + (6952) 1583 + (6953) 6953 + (6954) 825 + (6955) 1086 + (6956) 5537 + (6957) 1576 + (6958) 4091 + (6959) 786 + (6960) 1461 + (6961) 3900 + (6962) 6962 + (6963) 6342 + (6964) 6425 + (6965) 4912 + (6966) 6966 + (6967) 3178 + (6968) 2799 + (6969) 3364 + (6970) 6970 + (6971) 6971 + (6972) 1859 + (6973) 1816 + (6974) 1995 + (6975) 6975 + (6976) 3669 + (6977) 3164 + (6978) 6321 + (6979) 3004 + (6980) 5531 + (6981) 1990 + (6982) 6982 + (6983) 6983 + (6984) 6984 + (6985) 6985 + (6986) 6986 + (6987) 6987 + (6988) 4561 + (6989) 5454 + (6990) 6990 + (6991) 6991 + (6992) 4087 + (6993) 1922 + (6994) 6994 + (6995) 476 + (6996) 283 + (6997) 5696 + (6998) 4677 + (6999) 2986 + (7000) 7000 + (7001) 7001 + (7002) 537 + (7003) 5918 + (7004) 3217 + (7005) 4862 + (7006) 699 + (7007) 5650 + (7008) 4629 + (7009) 7009 + (7010) 7010 + (7011) 7011 + (7012) 7012 + (7013) 4134 + (7014) 6099 + (7015) 7015 + (7016) 7016 + (7017) 378 + (7018) 6759 + (7019) 4574 + (7020) 2883 + (7021) 4158 + (7022) 7022 + (7023) 6530 + (7024) 5207 + (7025) 7025 + (7026) 7026 + (7027) 1324 + (7028) 4153 + (7029) 7029 + (7030) 613 + (7031) 538 + (7032) 4671 + (7033) 3658 + (7034) 1289 + (7035) 6836 + (7036) 2787 + (7037) 14 + (7038) 4667 + (7039) 1282 + (7040) 3799 + (7041) 1426 + (7042) 7042 + (7043) 5798 + (7044) 5497 + (7045) 5072 + (7046) 2437 + (7047) 5930 + (7048) 7048 + (7049) 7049 + (7050) 1591 + (7051) 7051 + (7052) 6593 + (7053) 360 + (7054) 315 + (7055) 7055 + (7056) 7056 + (7057) 82 + (7058) 5487 + (7059) 4150 + (7060) 7060 + (7061) 1062 + (7062) 7062 + (7063) 4240 + (7064) 3839 + (7065) 7065 + (7066) 4007 + (7067) 2670 + (7068) 2993 + (7069) 1240 + (7070) 829 + (7071) 7071 + (7072) 5477 + (7073) 7073 + (7074) 4783 + (7075) 732 + (7076) 4521 + (7077) 7077 + (7078) 1571 + (7079) 2784 + (7080) 7080 + (7081) 5924 + (7082) 1337 + (7083) 7083 + (7084) 785 + (7085) 4040 + (7086) 7083 + (7087) 3922 + (7088) 3511 + (7089) 7089 + (7090) 1503 + (7091) 7091 + (7092) 3497 + (7093) 2454 + (7094) 547 + (7095) 7095 + (7096) 7096 + (7097) 7097 + (7098) 5079 + (7099) 7099 + (7100) 7100 + (7101) 1726 + (7102) 2939 + (7103) 2968 + (7104) 3637 + (7105) 1202 + (7106) 3167 + (7107) 3558 + (7108) 6345 + (7109) 6374 + (7110) 7110 + (7111) 2954 + (7112) 13 + (7113) 7113 + (7114) 71 + (7115) 4270 + (7116) 5617 + (7117) 4488 + (7118) 3851 + (7119) 3698 + (7120) 2375 + (7121) 2940 + (7122) 6447 + (7123) 4860 + (7124) 7124 + (7125) 7125 + (7126) 6243 + (7127) 4810 + (7128) 5071 + (7129) 7129 + (7130) 2633 + (7131) 7131 + (7132) 4467 + (7133) 6990 + (7134) 7134 + (7135) 2856 + (7136) 5175 + (7137) 1228 + (7138) 7138 + (7139) 7139 + (7140) 4907 + (7141) 7141 + (7142) 2099 + (7143) 3744 + (7144) 221 + (7145) 388 + (7146) 7146 + (7147) 7147 + (7148) 6627 + (7149) 2094 + (7150) 6509 + (7151) 7151 + (7152) 4407 + (7153) 2412 + (7154) 1393 + (7155) 4550 + (7156) 585 + (7157) 7157 + (7158) 7158 + (7159) 4826 + (7160) 3903 + (7161) 4164 + (7162) 4311 + (7163) 5956 + (7164) 1043 + (7165) 1822 + (7166) 589 + (7167) 376 + (7168) 4343 + (7169) 4268 + (7170) 7170 + (7171) 4796 + (7172) 3753 + (7173) 5718 + (7174) 1235 + (7175) 832 + (7176) 3981 + (7177) 1812 + (7178) 1783 + (7179) 7179 + (7180) 7180 + (7181) 7181 + (7182) 7182 + (7183) 4626 + (7184) 1525 + (7185) 3532 + (7186) 7186 + (7187) 7187 + (7188) 411 + (7189) 2870 + (7190) 7190 + (7191) 5066 + (7192) 6397 + (7193) 5674 + (7194) 7194 + (7195) 6916 + (7196) 5699 + (7197) 1448 + (7198) 5611 + (7199) 7199 + (7200) 1157 + (7201) 3442 + (7202) 7202 + (7203) 492 + (7204) 1291 + (7205) 6358 + (7206) 165 + (7207) 3354 + (7208) 7208 + (7209) 1898 + (7210) 919 + (7211) 4062 + (7212) 3011 + (7213) 6472 + (7214) 5659 + (7215) 7215 + (7216) 5509 + (7217) 2028 + (7218) 7218 + (7219) 2476 + (7220) 4731 + (7221) 2326 + (7222) 6755 + (7223) 1002 + (7224) 927 + (7225) 1524 + (7226) 6265 + (7227) 7227 + (7228) 2579 + (7229) 2536 + (7230) 1627 + (7231) 7231 + (7232) 7232 + (7233) 4828 + (7234) 671 + (7235) 3500 + (7236) 4601 + (7237) 7237 + (7238) 7238 + (7239) 4800 + (7240) 4509 + (7241) 5290 + (7242) 5865 + (7243) 2772 + (7244) 2179 + (7245) 5198 + (7246) 7246 + (7247) 6834 + (7248) 1911 + (7249) 6498 + (7250) 6095 + (7251) 972 + (7252) 4761 + (7253) 598 + (7254) 7254 + (7255) 3706 + (7256) 5247 + (7257) 2330 + (7258) 7258 + (7259) 3742 + (7260) 5649 + (7261) 7182 + (7262) 2699 + (7263) 2616 + (7264) 4693 + (7265) 5474 + (7266) 5615 + (7267) 6102 + (7268) 729 + (7269) 5008 + (7270) 6051 + (7271) 3946 + (7272) 3213 + (7273) 4426 + (7274) 2105 + (7275) 5294 + (7276) 5859 + (7277) 1646 + (7278) 7278 + (7279) 7279 + (7280) 2999 + (7281) 4018 + (7282) 4047 + (7283) 7283 + (7284) 811 + (7285) 2992 + (7286) 3589 + (7287) 7287 + (7288) 6335 + (7289) 282 + (7290) 89 + (7291) 5396 + (7292) 1985 + (7293) 5384 + (7294) 1723 + (7295) 4872 + (7296) 7296 + (7297) 3426 + (7298) 7298 + (7299) 5942 + (7300) 4057 + (7301) 0 + (7302) 7302 + (7303) 2106 + (7304) 7304 + (7305) 1194 + (7306) 2295 + (7307) 7307 + (7308) 2771 + (7309) 2056 + (7310) 379 + (7311) 3522 + (7312) 3125 + (7313) 7313 + (7314) 7314 + (7315) 204 + (7316) 3211 + (7317) 1878 + (7318) 6531 + (7319) 2682 + (7320) 6175 + (7321) 5428 + (7322) 1849 + (7323) 4670 + (7324) 7324 + (7325) 830 + (7326) 7326 + (7327) 2482 + (7328) 1349 + (7329) 4924 + (7330) 2911 + (7331) 6086 + (7332) 5035 + (7333) 7333 + (7334) 5557 + (7335) 592 + (7336) 7336 + (7337) 2436 + (7338) 1081 + (7339) 6196 + (7340) 4835 + (7341) 2814 + (7342) 4459 + (7343) 1682 + (7344) 4231 + (7345) 2876 + (7346) 7346 + (7347) 7347 + (7348) 3963 + (7349) 7349 + (7350) 4821 + (7351) 7351 + (7352) 2111 + (7353) 5572 + (7354) 7354 + (7355) 3988 + (7356) 4449 + (7357) 4910 + (7358) 5691 + (7359) 4968 + (7360) 5429 + (7361) 460 + (7362) 3345 + (7363) 6380 + (7364) 4473 + (7365) 7365 + (7366) 7366 + (7367) 6570 + (7368) 367 + (7369) 5594 + (7370) 7370 + (7371) 4036 + (7372) 6545 + (7373) 3592 + (7374) 2541 + (7375) 2440 + (7376) 3399 + (7377) 3996 + (7378) 591 + (7379) 5356 + (7380) 7380 + (7381) 1222 + (7382) 499 + (7383) 3914 + (7384) 1853 + (7385) 7385 + (7386) 4361 + (7387) 3764 + (7388) 7388 + (7389) 7389 + (7390) 3117 + (7391) 7391 + (7392) 3813 + (7393) 2338 + (7394) 929 + (7395) 2070 + (7396) 7396 + (7397) 7397 + (7398) 7397 + (7399) 7399 + (7400) 3743 + (7401) 3668 + (7402) 7402 + (7403) 654 + (7404) 6371 + (7405) 5278 + (7406) 2381 + (7407) 6178 + (7408) 7408 + (7409) 3570 + (7410) 833 + (7411) 6550 + (7412) 7412 + (7413) 1862 + (7414) 7414 + (7415) 826 + (7416) 6543 + (7417) 7417 + (7418) 4169 + (7419) 6884 + (7420) 4545 + (7421) 1566 + (7422) 7422 + (7423) 4802 + (7424) 855 + (7425) 2732 + (7426) 2575 + (7427) 236 + (7428) 3147 + (7429) 1488 + (7430) 867 + (7431) 6186 + (7432) 605 + (7433) 7433 + (7434) 4215 + (7435) 5316 + (7436) 4499 + (7437) 8 + (7438) 877 + (7439) 6962 + (7440) 7440 + (7441) 7441 + (7442) 7442 + (7443) 828 + (7444) 7097 + (7445) 2822 + (7446) 6403 + (7447) 2218 + (7448) 223 + (7449) 2100 + (7450) 4695 + (7451) 7134 + (7452) 3681 + (7453) 5400 + (7454) 1915 + (7455) 2696 + (7456) 6597 + (7457) 5122 + (7458) 7313 + (7459) 4006 + (7460) 1371 + (7461) 6854 + (7462) 7462 + (7463) 4074 + (7464) 5005 + (7465) 5578 + (7466) 7466 + (7467) 4142 + (7468) 835 + (7469) 3438 + (7470) 1211 + (7471) 3106 + (7472) 197 + (7473) 7473 + (7474) 3695 + (7475) 5862 + (7476) 2361 + (7477) 7477 + (7478) 5539 + (7479) 1722 + (7480) 7480 + (7481) 2884 + (7482) 1463 + (7483) 7483 + (7484) 7484 + (7485) 2584 + (7486) 7486 + (7487) 6338 + (7488) 7488 + (7489) 3628 + (7490) 5039 + (7491) 7491 + (7492) 3273 + (7493) 7493 + (7494) 7091 + (7495) 6480 + (7496) 381 + (7497) 7497 + (7498) 3879 + (7499) 2334 + (7500) 2433 + (7501) 6446 + (7502) 3421 + (7503) 1090 + (7504) 837 + (7505) 2050 + (7506) 7506 + (7507) 4476 + (7508) 7508 + (7509) 6902 + (7510) 3059 + (7511) 2778 + (7512) 5327 + (7513) 100 + (7514) 25 + (7515) 1902 + (7516) 1523 + (7517) 6494 + (7518) 4941 + (7519) 2914 + (7520) 2535 + (7521) 6722 + (7522) 6751 + (7523) 86 + (7524) 361 + (7525) 7525 + (7526) 7526 + (7527) 3050 + (7528) 7528 + (7529) 1802 + (7530) 6697 + (7531) 356 + (7532) 6625 + (7533) 7533 + (7534) 4205 + (7535) 2408 + (7536) 3415 + (7537) 7180 + (7538) 7538 + (7539) 1564 + (7540) 7540 + (7541) 6944 + (7542) 1717 + (7543) 2656 + (7544) 4495 + (7545) 5834 + (7546) 6295 + (7547) 5246 + (7548) 5843 + (7549) 616 + (7550) 2971 + (7551) 7304 + (7552) 7552 + (7553) 7553 + (7554) 2529 + (7555) 6966 + (7556) 7227 + (7557) 7488 + (7558) 5765 + (7559) 7559 + (7560) 1229 + (7561) 4698 + (7562) 4249 + (7563) 2180 + (7564) 7564 + (7565) 7565 + (7566) 443 + (7567) 7567 + (7568) 7399 + (7569) 7569 + (7570) 7231 + (7571) 2204 + (7572) 5211 + (7573) 6246 + (7574) 3475 + (7575) 6624 + (7576) 1597 + (7577) 1972 + (7578) 7578 + (7579) 4052 + (7580) 1937 + (7581) 3150 + (7582) 59 + (7583) 2456 + (7584) 4711 + (7585) 3810 + (7586) 5455 + (7587) 3868 + (7588) 4443 + (7589) 486 + (7590) 1379 + (7591) 4586 + (7592) 6463 + (7593) 6692 + (7594) 6551 + (7595) 5508 + (7596) 7596 + (7597) 4840 + (7598) 3659 + (7599) 7599 + (7600) 7600 + (7601) 3292 + (7602) 3857 + (7603) 6716 + (7604) 7604 + (7605) 4406 + (7606) 6181 + (7607) 3072 + (7608) 7608 + (7609) 7609 + (7610) 2951 + (7611) 4484 + (7612) 4513 + (7613) 7336 + (7614) 3389 + (7615) 1970 + (7616) 1959 + (7617) 7617 + (7618) 529 + (7619) 3718 + (7620) 3465 + (7621) 7621 + (7622) 7622 + (7623) 2474 + (7624) 4991 + (7625) 1034 + (7626) 2679 + (7627) 6078 + (7628) 3921 + (7629) 3032 + (7630) 7630 + (7631) 7631 + (7632) 7477 + (7633) 5250 + (7634) 335 + (7635) 694 + (7636) 7636 + (7637) 7526 + (7638) 5685 + (7639) 2378 + (7640) 733 + (7641) 7380 + (7642) 7642 + (7643) 3390 + (7644) 7644 + (7645) 1742 + (7646) 4173 + (7647) 7298 + (7648) 3383 + (7649) 7346 + (7650) 7650 + (7651) 7062 + (7652) 7113 + (7653) 7653 + (7654) 1685 + (7655) 1184 + (7656) 7656 + (7657) 7657 + (7658) 4649 + (7659) 7659 + (7660) 7660 + (7661) 1358 + (7662) 7662 + (7663) 3666 + (7664) 5879 + (7665) 1698 + (7666) 7009 + (7667) 838 + (7668) 5769 + (7669) 3584 + (7670) 7077 + (7671) 6058 + (7672) 7567 + (7673) 7673 + (7674) 7674 + (7675) 6948 + (7676) 7676 + (7677) 792 + (7678) 109 + (7679) 1048 + (7680) 4949 + (7681) 6914 + (7682) 4657 + (7683) 2358 + (7684) 7131 + (7685) 1654 + (7686) 3731 + (7687) 7687 + (7688) 7688 + (7689) 7689 + (7690) 7049 + (7691) 5998 + (7692) 5953 + (7693) 7693 + (7694) 7694 + (7695) 2168 + (7696) 6149 + (7697) 5890 + (7698) 6991 + (7699) 7699 + (7700) 4905 + (7701) 192 + (7702) 7702 + (7703) 714 + (7704) 1919 + (7705) 7705 + (7706) 1639 + (7707) 7707 + (7708) 7708 + (7709) 1198 + (7710) 3163 + (7711) 1458 + (7712) 2469 + (7713) 6258 + (7714) 5441 + (7715) 7715 + (7716) 3881 + (7717) 7717 + (7718) 3893 + (7719) 7719 + (7720) 3103 + (7721) 698 + (7722) 2313 + (7723) 7723 + (7724) 5729 + (7725) 2760 + (7726) 6331 + (7727) 6792 + (7728) 4453 + (7729) 1548 + (7730) 3327 + (7731) 4332 + (7732) 2635 + (7733) 7733 + (7734) 1299 + (7735) 7735 + (7736) 3837 + (7737) 4394 + (7738) 7738 + (7739) 7739 + (7740) 2739 + (7741) 3336 + (7742) 7742 + (7743) 280 + (7744) 2677 + (7745) 6898 + (7746) 1663 + (7747) 4534 + (7748) 2585 + (7749) 848 + (7750) 6293 + (7751) 4608 + (7752) 4223 + (7753) 7753 + (7754) 7754 + (7755) 532 + (7756) 7756 + (7757) 7757 + (7758) 6061 + (7759) 6568 + (7760) 7760 + (7761) 7170 + (7762) 6465 + (7763) 4774 + (7764) 1163 + (7765) 5936 + (7766) 643 + (7767) 6122 + (7768) 6687 + (7769) 7769 + (7770) 1095 + (7771) 6932 + (7772) 2337 + (7773) 1934 + (7774) 6941 + (7775) 7775 + (7776) 2997 + (7777) 6108 + (7778) 4239 + (7779) 6636 + (7780) 2347 + (7781) 6582 + (7782) 2851 + (7783) 7642 + (7784) 1517 + (7785) 1114 + (7786) 7786 + (7787) 4782 + (7788) 7788 + (7789) 158 + (7790) 5229 + (7791) 2258 + (7792) 263 + (7793) 6946 + (7794) 6975 + (7795) 7795 + (7796) 4507 + (7797) 2512 + (7798) 4947 + (7799) 7799 + (7800) 7800 + (7801) 2580 + (7802) 4743 + (7803) 7803 + (7804) 913 + (7805) 4568 + (7806) 2283 + (7807) 6184 + (7808) 4389 + (7809) 2988 + (7810) 1633 + (7811) 7811 + (7812) 4937 + (7813) 6288 + (7814) 725 + (7815) 1626 + (7816) 6781 + (7817) 4404 + (7818) 7818 + (7819) 5796 + (7820) 1841 + (7821) 6088 + (7822) 1579 + (7823) 7823 + (7824) 7824 + (7825) 5970 + (7826) 7826 + (7827) 7324 + (7828) 6907 + (7829) 4880 + (7830) 629 + (7831) 2928 + (7832) 5741 + (7833) 2234 + (7834) 7834 + (7835) 6164 + (7836) 4801 + (7837) 2462 + (7838) 429 + (7839) 6072 + (7840) 5669 + (7841) 4076 + (7842) 465 + (7843) 5436 + (7844) 7844 + (7845) 7845 + (7846) 3699 + (7847) 1152 + (7848) 4189 + (7849) 3908 + (7850) 5543 + (7851) 4068 + (7852) 7852 + (7853) 7246 + (7854) 7707 + (7855) 6984 + (7856) 1799 + (7857) 7857 + (7858) 4913 + (7859) 5478 + (7860) 7860 + (7861) 4048 + (7862) 2355 + (7863) 7863 + (7864) 5775 + (7865) 5092 + (7866) 2457 + (7867) 7867 + (7868) 3713 + (7869) 7869 + (7870) 3243 + (7871) 5010 + (7872) 4485 + (7873) 1826 + (7874) 6401 + (7875) 5756 + (7876) 5033 + (7877) 1302 + (7878) 5203 + (7879) 1040 + (7880) 3437 + (7881) 6612 + (7882) 807 + (7883) 292 + (7884) 2801 + (7885) 1758 + (7886) 4013 + (7887) 7506 + (7888) 1943 + (7889) 4674 + (7890) 4703 + (7891) 774 + (7892) 7803 + (7893) 1296 + (7894) 7894 + (7895) 5280 + (7896) 1549 + (7897) 2442 + (7898) 7898 + (7899) 5940 + (7900) 6833 + (7901) 4926 + (7902) 1965 + (7903) 5416 + (7904) 4103 + (7905) 4066 + (7906) 113 + (7907) 2844 + (7908) 1801 + (7909) 3120 + (7910) 5091 + (7911) 3642 + (7912) 1277 + (7913) 5780 + (7914) 1529 + (7915) 2734 + (7916) 2995 + (7917) 7662 + (7918) 5101 + (7919) 7314 + (7920) 6357 + (7921) 7921 + (7922) 5663 + (7923) 7923 + (7924) 7769 + (7925) 1670 + (7926) 7926 + (7927) 7927 + (7928) 5309 + (7929) 6842 + (7930) 1097 + (7931) 2276 + (7932) 7473 + (7933) 1544 + (7934) 7934 + (7935) 3010 + (7936) 1015 + (7937) 4290 + (7938) 5313 + (7939) 5964 + (7940) 7497 + (7941) 7941 + (7942) 1747 + (7943) 7943 + (7944) 815 + (7945) 6250 + (7946) 7946 + (7947) 7022 + (7948) 6769 + (7949) 1406 + (7950) 7950 + (7951) 6856 + (7952) 1223 + (7953) 4978 + (7954) 3295 + (7955) 3622 + (7956) 7956 + (7957) 6822 + (7958) 723 + (7959) 544 + (7960) 6701 + (7961) 6100 + (7962) 5255 + (7963) 2782 + (7964) 801 + (7965) 7965 + (7966) 6987 + (7967) 2178 + (7968) 4999 + (7969) 7969 + (7970) 7441 + (7971) 3526 + (7972) 1835 + (7973) 6982 + (7974) 6533 + (7975) 4538 + (7976) 2557 + (7977) 852 + (7978) 2727 + (7979) 7979 + (7980) 7980 + (7981) 7981 + (7982) 6715 + (7983) 7983 + (7984) 6855 + (7985) 34 + (7986) 7986 + (7987) 2780 + (7988) 4299 + (7989) 4022 + (7990) 6133 + (7991) 960 + (7992) 3469 + (7993) 116 + (7994) 7994 + (7995) 3236 + (7996) 7996 + (7997) 6846 + (7998) 3005 + (7999) 1848 + (8000) 7095 + (8001) 1266 + (8002) 6273 + (8003) 4876 + (8004) 6827 + (8005) 2678 + (8006) 1955 + (8007) 6928 + (8008) 5583 + (8009) 1402 + (8010) 3367 + (8011) 4148 + (8012) 7617 + (8013) 6552 + (8014) 8014 + (8015) 7986 + (8016) 3653 + (8017) 5298 + (8018) 4897 + (8019) 6438 + (8020) 4313 + (8021) 6656 + (8022) 2405 + (8023) 1354 + (8024) 975 + (8025) 7258 + (8026) 8026 + (8027) 4318 + (8028) 241 + (8029) 2216 + (8030) 955 + (8031) 3992 + (8032) 743 + (8033) 8033 + (8034) 8034 + (8035) 8035 + (8036) 3177 + (8037) 630 + (8038) 227 + (8039) 1872 + (8040) 4415 + (8041) 2362 + (8042) 6185 + (8043) 1236 + (8044) 3507 + (8045) 3774 + (8046) 157 + (8047) 4594 + (8048) 6229 + (8049) 3804 + (8050) 3599 + (8051) 4630 + (8052) 4283 + (8053) 8053 + (8054) 4405 + (8055) 2032 + (8056) 3679 + (8057) 7466 + (8058) 297 + (8059) 1076 + (8060) 8060 + (8061) 1080 + (8062) 6219 + (8063) 4162 + (8064) 6709 + (8065) 2226 + (8066) 2255 + (8067) 8067 + (8068) 809 + (8069) 8069 + (8070) 115 + (8071) 1008 + (8072) 8072 + (8073) 8073 + (8074) 6665 + (8075) 8075 + (8076) 1363 + (8077) 7422 + (8078) 8078 + (8079) 8079 + (8080) 5639 + (8081) 8081 + (8082) 5423 + (8083) 8083 + (8084) 3657 + (8085) 6912 + (8086) 2325 + (8087) 5178 + (8088) 7599 + (8089) 5668 + (8090) 6199 + (8091) 5908 + (8092) 3569 + (8093) 3710 + (8094) 8094 + (8095) 6866 + (8096) 8096 + (8097) 1250 + (8098) 5089 + (8099) 6252 + (8100) 3705 + (8101) 3414 + (8102) 6883 + (8103) 144 + (8104) 5549 + (8105) 8105 + (8106) 1415 + (8107) 5118 + (8108) 8108 + (8109) 7630 + (8110) 5565 + (8111) 8111 + (8112) 6325 + (8113) 7538 + (8114) 2737 + (8115) 8115 + (8116) 6329 + (8117) 3488 + (8118) 8118 + (8119) 2016 + (8120) 1725 + (8121) 3258 + (8122) 4969 + (8123) 7950 + (8124) 2817 + (8125) 7800 + (8126) 3853 + (8127) 546 + (8128) 6631 + (8129) 1570 + (8130) 2447 + (8131) 7414 + (8132) 4107 + (8133) 2448 + (8134) 5605 + (8135) 7786 + (8136) 909 + (8137) 6538 + (8138) 5495 + (8139) 7486 + (8140) 339 + (8141) 8141 + (8142) 6349 + (8143) 8143 + (8144) 3845 + (8145) 6994 + (8146) 4769 + (8147) 5660 + (8148) 313 + (8149) 32 + (8150) 325 + (8151) 250 + (8152) 6943 + (8153) 1642 + (8154) 4471 + (8155) 2996 + (8156) 2273 + (8157) 3096 + (8158) 6523 + (8159) 2248 + (8160) 8160 + (8161) 1986 + (8162) 5345 + (8163) 7190 + (8164) 8164 + (8165) 4816 + (8166) 3157 + (8167) 5242 + (8168) 7215 + (8169) 5524 + (8170) 1511 + (8171) 4094 + (8172) 3043 + (8173) 1486 + (8174) 6461 + (8175) 696 + (8176) 1495 + (8177) 1506 + (8178) 8178 + (8179) 3894 + (8180) 1705 + (8181) 662 + (8182) 4451 + (8183) 2890 + (8184) 8184 + (8185) 6154 + (8186) 2121 + (8187) 84 + (8188) 7969 + (8189) 6136 + (8190) 4781 + (8191) 2114 + (8192) 7333 + (8193) 914 + (8194) 7071 + (8195) 2182 + (8196) 8196 + (8197) 4582 + (8198) 5363 + (8199) 3136 + (8200) 8200 + (8201) 5882 + (8202) 967 + (8203) 8078 + (8204) 6081 + (8205) 8205 + (8206) 8206 + (8207) 8207 + (8208) 3941 + (8209) 7202 + (8210) 8210 + (8211) 2748 + (8212) 8212 + (8213) 7760 + (8214) 2533 + (8215) 6634 + (8216) 1069 + (8217) 6212 + (8218) 151 + (8219) 836 + (8220) 3091 + (8221) 30 + (8222) 5979 + (8223) 2888 + (8224) 5285 + (8225) 2140 + (8226) 7279 + (8227) 6198 + (8228) 8228 + (8229) 54 + (8230) 8230 + (8231) 5258 + (8232) 3053 + (8233) 1466 + (8234) 1287 + (8235) 8235 + (8236) 6227 + (8237) 6488 + (8238) 2267 + (8239) 3138 + (8240) 1751 + (8241) 4610 + (8242) 3521 + (8243) 1558 + (8244) 7609 + (8245) 2720 + (8246) 5299 + (8247) 8247 + (8248) 6063 + (8249) 7636 + (8250) 3703 + (8251) 8251 + (8252) 8252 + (8253) 1880 + (8254) 6317 + (8255) 408 + (8256) 375 + (8257) 7138 + (8258) 3153 + (8259) 6006 + (8260) 1419 + (8261) 8118 + (8262) 5459 + (8263) 6672 + (8264) 5517 + (8265) 8026 + (8266) 3897 + (8267) 3182 + (8268) 3443 + (8269) 5320 + (8270) 539 + (8271) 6056 + (8272) 4469 + (8273) 3858 + (8274) 2271 + (8275) 5878 + (8276) 1577 + (8277) 5910 + (8278) 4963 + (8279) 6832 + (8280) 1999 + (8281) 3130 + (8282) 5753 + (8283) 4398 + (8284) 4323 + (8285) 5934 + (8286) 8286 + (8287) 3848 + (8288) 437 + (8289) 994 + (8290) 1681 + (8291) 3862 + (8292) 3673 + (8293) 5024 + (8294) 2227 + (8295) 6128 + (8296) 2239 + (8297) 5332 + (8298) 8298 + (8299) 430 + (8300) 7795 + (8301) 8301 + (8302) 3867 + (8303) 136 + (8304) 4295 + (8305) 3314 + (8306) 1249 + (8307) 1174 + (8308) 8308 + (8309) 6662 + (8310) 5493 + (8311) 3162 + (8312) 8312 + (8313) 8313 + (8314) 2183 + (8315) 2644 + (8316) 2129 + (8317) 4958 + (8318) 2843 + (8319) 6194 + (8320) 3221 + (8321) 8321 + (8322) 7921 + (8323) 1916 + (8324) 8324 + (8325) 902 + (8326) 7349 + (8327) 4512 + (8328) 349 + (8329) 996 + (8330) 7719 + (8331) 8331 + (8332) 3697 + (8333) 1368 + (8334) 4221 + (8335) 3778 + (8336) 8336 + (8337) 1132 + (8338) 8338 + (8339) 572 + (8340) 2555 + (8341) 6016 + (8342) 5395 + (8343) 5424 + (8344) 8079 + (8345) 900 + (8346) 887 + (8347) 8347 + (8348) 3939 + (8349) 6894 + (8350) 1547 + (8351) 6312 + (8352) 2789 + (8353) 4572 + (8354) 2207 + (8355) 5734 + (8356) 3449 + (8357) 1072 + (8358) 7491 + (8359) 954 + (8360) 2925 + (8361) 1450 + (8362) 3625 + (8363) 2260 + (8364) 7025 + (8365) 8312 + (8366) 1275 + (8367) 2674 + (8368) 5317 + (8369) 7676 + (8370) 8370 + (8371) 8371 + (8372) 3643 + (8373) 6326 + (8374) 5283 + (8375) 6650 + (8376) 1149 + (8377) 5370 + (8378) 7015 + (8379) 8379 + (8380) 851 + (8381) 4648 + (8382) 4573 + (8383) 8370 + (8384) 1605 + (8385) 1522 + (8386) 8386 + (8387) 2124 + (8388) 5163 + (8389) 2614 + (8390) 7941 + (8391) 5040 + (8392) 3133 + (8393) 3540 + (8394) 8313 + (8395) 7956 + (8396) 4291 + (8397) 1886 + (8398) 5467 + (8399) 4200 + (8400) 8400 + (8401) 108 + (8402) 5263 + (8403) 348 + (8404) 2745 + (8405) 2230 + (8406) 6869 + (8407) 8407 + (8408) 8408 + (8409) 3754 + (8410) 663 + (8411) 734 + (8412) 2017 + (8413) 1864 + (8414) 5499 + (8415) 770 + (8416) 1061 + (8417) 2274 + (8418) 2833 + (8419) 7484 + (8420) 8420 + (8421) 2000 + (8422) 3715 + (8423) 4928 + (8424) 159 + (8425) 6170 + (8426) 8426 + (8427) 8427 + (8428) 5185 + (8429) 1128 + (8430) 2667 + (8431) 8431 + (8432) 6165 + (8433) 6626 + (8434) 5471 + (8435) 3132 + (8436) 1977 + (8437) 6416 + (8438) 6131 + (8439) 4656 + (8440) 4365 + (8441) 6970 + (8442) 5433 + (8443) 4132 + (8444) 5665 + (8445) 8445 + (8446) 2715 + (8447) 274 + (8448) 7943 + (8449) 658 + (8450) 8450 + (8451) 3542 + (8452) 8452 + (8453) 7600 + (8454) 8454 + (8455) 8455 + (8456) 5485 + (8457) 7994 + (8458) 1031 + (8459) 2702 + (8460) 1011 + (8461) 6120 + (8462) 8301 + (8463) 4088 + (8464) 4117 + (8465) 8108 + (8466) 8466 + (8467) 1494 + (8468) 171 + (8469) 400 + (8470) 8470 + (8471) 8471 + (8472) 1519 + (8473) 3700 + (8474) 1369 + (8475) 36 + (8476) 8476 + (8477) 7608 + (8478) 1851 + (8479) 2642 + (8480) 8480 + (8481) 8178 + (8482) 8207 + (8483) 5228 + (8484) 6761 + (8485) 5488 + (8486) 8486 + (8487) 288 + (8488) 2063 + (8489) 2564 + (8490) 5113 + (8491) 5070 + (8492) 2593 + (8493) 8493 + (8494) 8494 + (8495) 2882 + (8496) 7653 + (8497) 6300 + (8498) 4945 + (8499) 1638 + (8500) 8500 + (8501) 390 + (8502) 4341 + (8503) 4320 + (8504) 5965 + (8505) 5764 + (8506) 3767 + (8507) 4868 + (8508) 6851 + (8509) 1166 + (8510) 5117 + (8511) 904 + (8512) 3047 + (8513) 6508 + (8514) 8514 + (8515) 4438 + (8516) 1913 + (8517) 7552 + (8518) 5635 + (8519) 1360 + (8520) 749 + (8521) 3466 + (8522) 3977 + (8523) 7396 + (8524) 1297 + (8525) 7656 + (8526) 2539 + (8527) 1410 + (8528) 23 + (8529) 2306 + (8530) 8530 + (8531) 8531 + (8532) 7129 + (8533) 6406 + (8534) 1923 + (8535) 3344 + (8536) 2301 + (8537) 1690 + (8538) 6777 + (8539) 7124 + (8540) 8540 + (8541) 1432 + (8542) 7181 + (8543) 1096 + (8544) 8544 + (8545) 3650 + (8546) 449 + (8547) 5212 + (8548) 1947 + (8549) 8549 + (8550) 7621 + (8551) 2058 + (8552) 8552 + (8553) 2244 + (8554) 3481 + (8555) 4916 + (8556) 435 + (8557) 3928 + (8558) 3931 + (8559) 7080 + (8560) 3349 + (8561) 5580 + (8562) 5343 + (8563) 1500 + (8564) 889 + (8565) 8565 + (8566) 3317 + (8567) 8567 + (8568) 1437 + (8569) 394 + (8570) 2359 + (8571) 1694 + (8572) 2097 + (8573) 8573 + (8574) 1083 + (8575) 3042 + (8576) 711 + (8577) 7100 + (8578) 3825 + (8579) 5532 + (8580) 779 + (8581) 646 + (8582) 7733 + (8583) 384 + (8584) 8584 + (8585) 7754 + (8586) 8586 + (8587) 2548 + (8588) 7089 + (8589) 8589 + (8590) 7869 + (8591) 1592 + (8592) 8069 + (8593) 3154 + (8594) 7569 + (8595) 5260 + (8596) 987 + (8597) 7366 + (8598) 2019 + (8599) 2800 + (8600) 7823 + (8601) 8601 + (8602) 8602 + (8603) 2478 + (8604) 6817 + (8605) 1150 + (8606) 7739 + (8607) 8200 + (8608) 3751 + (8609) 8609 + (8610) 5553 + (8611) 8611 + (8612) 7051 + (8613) 3104 + (8614) 7011 + (8615) 8336 + (8616) 2237 + (8617) 762 + (8618) 4377 + (8619) 2382 + (8620) 6657 + (8621) 5182 + (8622) 8622 + (8623) 8623 + (8624) 2581 + (8625) 6594 + (8626) 8626 + (8627) 8627 + (8628) 6793 + (8629) 1334 + (8630) 6501 + (8631) 8631 + (8632) 8632 + (8633) 8633 + (8634) 6537 + (8635) 2926 + (8636) 8636 + (8637) 3406 + (8638) 8379 + (8639) 8450 + (8640) 2583 + (8641) 7826 + (8642) 3745 + (8643) 1756 + (8644) 8644 + (8645) 8645 + (8646) 917 + (8647) 810 + (8648) 3949 + (8649) 4900 + (8650) 2233 + (8651) 3716 + (8652) 5683 + (8653) 7528 + (8654) 1979 + (8655) 184 + (8656) 2823 + (8657) 1772 + (8658) 5759 + (8659) 8476 + (8660) 7753 + (8661) 7894 + (8662) 4053 + (8663) 4400 + (8664) 8664 + (8665) 6826 + (8666) 1159 + (8667) 8667 + (8668) 1683 + (8669) 8669 + (8670) 4827 + (8671) 8671 + (8672) 6263 + (8673) 4274 + (8674) 431 + (8675) 5094 + (8676) 1179 + (8677) 1814 + (8678) 7493 + (8679) 8679 + (8680) 6367 + (8681) 6666 + (8682) 121 + (8683) 596 + (8684) 3875 + (8685) 8286 + (8686) 8205 + (8687) 5266 + (8688) 5045 + (8689) 7442 + (8690) 8609 + (8691) 5996 + (8692) 3017 + (8693) 1648 + (8694) 6083 + (8695) 1530 + (8696) 5967 + (8697) 7898 + (8698) 7433 + (8699) 6132 + (8700) 4083 + (8701) 2750 + (8702) 2779 + (8703) 1736 + (8704) 4151 + (8705) 1794 + (8706) 6559 + (8707) 7158 + (8708) 2235 + (8709) 912 + (8710) 3093 + (8711) 8096 + (8712) 4157 + (8713) 7412 + (8714) 7673 + (8715) 7934 + (8716) 6579 + (8717) 4734 + (8718) 2893 + (8719) 5976 + (8720) 741 + (8721) 7650 + (8722) 1649 + (8723) 8723 + (8724) 1531 + (8725) 5328 + (8726) 4613 + (8727) 8480 + (8728) 7391 + (8729) 1658 + (8730) 8567 + (8731) 8731 + (8732) 561 + (8733) 2638 + (8734) 4717 + (8735) 8735 + (8736) 7029 + (8737) 7756 + (8738) 3169 + (8739) 3676 + (8740) 2201 + (8741) 8470 + (8742) 1507 + (8743) 2400 + (8744) 8744 + (8745) 5300 + (8746) 6201 + (8747) 8747 + (8748) 8033 + (8749) 5054 + (8750) 8750 + (8751) 8751 + (8752) 8752 + (8753) 5282 + (8754) 687 + (8755) 3404 + (8756) 2955 + (8757) 8757 + (8758) 885 + (8759) 5248 + (8760) 653 + (8761) 5204 + (8762) 4263 + (8763) 8622 + (8764) 8764 + (8765) 1230 + (8766) 2605 + (8767) 3170 + (8768) 1861 + (8769) 8540 + (8770) 4593 + (8771) 8771 + (8772) 8772 + (8773) 3760 + (8774) 4661 + (8775) 5562 + (8776) 3199 + (8777) 5338 + (8778) 7863 + (8779) 6708 + (8780) 8780 + (8781) 4830 + (8782) 7979 + (8783) 4680 + (8784) 7717 + (8785) 3234 + (8786) 1569 + (8787) 1526 + (8788) 4379 + (8789) 6896 + (8790) 6499 + (8791) 7824 + (8792) 879 + (8793) 8212 + (8794) 6839 + (8795) 8795 + (8796) 8081 + (8797) 200 + (8798) 6925 + (8799) 1288 + (8800) 6373 + (8801) 1026 + (8802) 1375 + (8803) 8803 + (8804) 473 + (8805) 1216 + (8806) 869 + (8807) 8807 + (8808) 3709 + (8809) 4170 + (8810) 7 + (8811) 5742 + (8812) 8812 + (8813) 3672 + (8814) 6829 + (8815) 5640 + (8816) 3479 + (8817) 8817 + (8818) 7775 + (8819) 5116 + (8820) 2777 + (8821) 5286 + (8822) 8822 + (8823) 6890 + (8824) 1023 + (8825) 8825 + (8826) 7799 + (8827) 8827 + (8828) 8803 + (8829) 1960 + (8830) 2525 + (8831) 3762 + (8832) 7559 + (8833) 1052 + (8834) 337 + (8835) 8835 + (8836) 4395 + (8837) 5766 + (8838) 3859 + (8839) 448 + (8840) 3183 + (8841) 6314 + (8842) 6455 + (8843) 398 + (8844) 1889 + (8845) 3534 + (8846) 1485 + (8847) 4344 + (8848) 391 + (8849) 6018 + (8850) 7983 + (8851) 2118 + (8852) 731 + (8853) 2608 + (8854) 6275 + (8855) 7056 + (8856) 1389 + (8857) 8164 + (8858) 2297 + (8859) 6110 + (8860) 865 + (8861) 2078 + (8862) 8235 + (8863) 8863 + (8864) 6469 + (8865) 5068 + (8866) 7553 + (8867) 428 + (8868) 1641 + (8869) 1030 + (8870) 2133 + (8871) 2394 + (8872) 2319 + (8873) 1940 + (8874) 5369 + (8875) 5022 + (8876) 2723 + (8877) 1672 + (8878) 7757 + (8879) 6674 + (8880) 8880 + (8881) 3218 + (8882) 2641 + (8883) 8764 + (8884) 2827 + (8885) 6774 + (8886) 4659 + (8887) 8880 + (8888) 2029 + (8889) 4436 + (8890) 3721 + (8891) 7604 + (8892) 5795 + (8893) 8893 + (8894) 1197 + (8895) 1272 + (8896) 2023 + (8897) 3266 + (8898) 2223 + (8899) 8060 + (8900) 7657 + (8901) 96 + (8902) 7125 + (8903) 7354 + (8904) 847 + (8905) 8905 + (8906) 4935 + (8907) 340 + (8908) 2417 + (8909) 1262 + (8910) 2045 + (8911) 2072 + (8912) 7687 + (8913) 2994 + (8914) 2449 + (8915) 8915 + (8916) 8427 + (8917) 6096 + (8918) 675 + (8919) 6080 + (8920) 1053 + (8921) 8921 + (8922) 7065 + (8923) 3454 + (8924) 5331 + (8925) 6232 + (8926) 8926 + (8927) 5032 + (8928) 551 + (8929) 4988 + (8930) 8930 + (8931) 6220 + (8932) 5289 + (8933) 3776 + (8934) 1475 + (8935) 4266 + (8936) 991 + (8937) 922 + (8938) 2793 + (8939) 4532 + (8940) 689 + (8941) 2904 + (8942) 3435 + (8943) 5512 + (8944) 7157 + (8945) 1020 + (8946) 1727 + (8947) 5414 + (8948) 2747 + (8949) 8160 + (8950) 7141 + (8951) 1344 + (8952) 7389 + (8953) 4692 + (8954) 791 + (8955) 8955 + (8956) 6115 + (8957) 1192 + (8958) 4685 + (8959) 5992 + (8960) 4199 + (8961) 6802 + (8962) 63 + (8963) 8963 + (8964) 3241 + (8965) 8400 + (8966) 7923 + (8967) 5584 + (8968) 6591 + (8969) 8772 + (8970) 7287 + (8971) 1300 + (8972) 1811 + (8973) 6584 + (8974) 7307 + (8975) 642 + (8976) 8976 + (8977) 1804 + (8978) 2479 + (8979) 5948 + (8980) 635 + (8981) 4128 + (8982) 8982 + (8983) 4954 + (8984) 4701 + (8985) 5914 + (8986) 8633 + (8987) 4468 + (8988) 1057 + (8989) 8744 + (8990) 8669 + (8991) 5128 + (8992) 5157 + (8993) 8993 + (8994) 271 + (8995) 278 + (8996) 8996 + (8997) 8544 + (8998) 4371 + (8999) 5498 + (9000) 911 + (9001) 5012 + (9002) 8471 + (9003) 6564 + (9004) 353 + (9005) 9005 + (9006) 9006 + (9007) 9007 + (9008) 4583 + (9009) 8034 + (9010) 9010 + (9011) 822 + (9012) 3675 + (9013) 9013 + (9014) 9013 + (9015) 8298 + (9016) 1791 + (9017) 7738 + (9018) 9018 + (9019) 1668 + (9020) 8627 + (9021) 8552 + (9022) 6491 + (9023) 9010 + (9024) 1255 + (9025) 3458 + (9026) 7151 + (9027) 8252 + (9028) 8731 + (9029) 6806 + (9030) 8771 + (9031) 5306 + (9032) 2415 + (9033) 6772 + (9034) 9034 + (9035) 1828 + (9036) 1763 + (9037) 7694 + (9038) 6971 + (9039) 5064 + (9040) 5671 + (9041) 2978 + (9042) 7199 + (9043) 7660 + (9044) 9044 + (9045) 9045 + (9046) 8611 + (9047) 9047 + (9048) 6413 + (9049) 9018 + (9050) 6633 + (9051) 6558 + (9052) 9052 + (9053) 110 + (9054) 7981 + (9055) 9055 + (9056) 695 + (9057) 4402 + (9058) 3505 + (9059) 7388 + (9060) 9060 + (9061) 3254 + (9062) 5971 + (9063) 1242 + (9064) 7631 + (9065) 8426 + (9066) 6951 + (9067) 9067 + (9068) 4865 + (9069) 1022 + (9070) 5933 + (9071) 3298 + (9072) 3909 + (9073) 818 + (9074) 5361 + (9075) 5932 + (9076) 1017 + (9077) 3216 + (9078) 9078 + (9079) 1856 + (9080) 8143 + (9081) 7402 + (9082) 1065 + (9083) 1444 + (9084) 1473 + (9085) 120 + (9086) 459 + (9087) 2866 + (9088) 9088 + (9089) 1602 + (9090) 4289 + (9091) 9091 + (9092) 5755 + (9093) 4966 + (9094) 6291 + (9095) 3610 + (9096) 1615 + (9097) 8644 + (9098) 8905 + (9099) 5364 + (9100) 6257 + (9101) 5784 + (9102) 2763 + (9103) 4722 + (9104) 1111 + (9105) 3074 + (9106) 3855 + (9107) 5398 + (9108) 3593 + (9109) 3942 + (9110) 5587 + (9111) 672 + (9112) 7693 + (9113) 410 + (9114) 761 + (9115) 4772 + (9116) 2195 + (9117) 7000 + (9118) 7659 + (9119) 7688 + (9120) 3575 + (9121) 6242 + (9122) 3263 + (9123) 1126 + (9124) 7179 + (9125) 342 + (9126) 6179 + (9127) 8602 + (9128) 8863 + (9129) 3972 + (9130) 3561 + (9131) 590 + (9132) 1409 + (9133) 9133 + (9134) 5245 + (9135) 1608 + (9136) 5431 + (9137) 844 + (9138) 1807 + (9139) 7644 + (9140) 3801 + (9141) 8454 + (9142) 2117 + (9143) 7440 + (9144) 8111 + (9145) 948 + (9146) 9146 + (9147) 788 + (9148) 2753 + (9149) 2350 + (9150) 9150 + (9151) 5410 + (9152) 5237 + (9153) 3330 + (9154) 369 + (9155) 5004 + (9156) 859 + (9157) 3670 + (9158) 3973 + (9159) 3296 + (9160) 5439 + (9161) 2922 + (9162) 6905 + (9163) 94 + (9164) 6787 + (9165) 8664 + (9166) 1821 + (9167) 466 + (9168) 6581 + (9169) 7042 + (9170) 2193 + (9171) 3660 + (9172) 3995 + (9173) 2976 + (9174) 3747 + (9175) 4208 + (9176) 3165 + (9177) 5604 + (9178) 5479 + (9179) 1582 + (9180) 5969 + (9181) 6862 + (9182) 9182 + (9183) 3800 + (9184) 2551 + (9185) 2466 + (9186) 6609 + (9187) 6396 + (9188) 4809 + (9189) 6 + (9190) 147 + (9191) 1754 + (9192) 9192 + (9193) 2612 + (9194) 4455 + (9195) 2228 + (9196) 9196 + (9197) 8206 + (9198) 8667 + (9199) 9199 + (9200) 3029 + (9201) 4994 + (9202) 4591 + (9203) 316 + (9204) 8955 + (9205) 2854 + (9206) 195 + (9207) 682 + (9208) 7565 + (9209) 1146 + (9210) 3417 + (9211) 8494 + (9212) 9091 + (9213) 3198 + (9214) 651 + (9215) 4552 + (9216) 1893 + (9217) 3564 + (9218) 3999 + (9219) 4668 + (9220) 3737 + (9221) 1606 + (9222) 355 + (9223) 6106 + (9224) 1165 + (9225) 2420 + (9226) 9226 + (9227) 5838 + (9228) 3009 + (9229) 6910 + (9230) 8331 + (9231) 418 + (9232) 1559 + (9233) 8210 + (9234) 4401 + (9235) 1708 + (9236) 6585 + (9237) 3814 + (9238) 5077 + (9239) 186 + (9240) 3693 + (9241) 3268 + (9242) 9242 + (9243) 5406 + (9244) 3489 + (9245) 7208 + (9246) 2285 + (9247) 8632 + (9248) 7351 + (9249) 9249 + (9250) 2353 + (9251) 6172 + (9252) 3945 + (9253) 854 + (9254) 3571 + (9255) 704 + (9256) 15 + (9257) 9257 + (9258) 8921 + (9259) 5646 + (9260) 7187 + (9261) 3246 + (9262) 5963 + (9263) 3730 + (9264) 5381 + (9265) 5090 + (9266) 9266 + (9267) 3964 + (9268) 827 + (9269) 262 + (9270) 8757 + (9271) 3226 + (9272) 1213 + (9273) 2132 + (9274) 5463 + (9275) 1412 + (9276) 8321 + (9277) 7278 + (9278) 8893 + (9279) 5586 + (9280) 9280 + (9281) 6002 + (9282) 5167 + (9283) 3692 + (9284) 5275 + (9285) 3750 + (9286) 8083 + (9287) 8586 + (9288) 8141 + (9289) 5050 + (9290) 4489 + (9291) 6516 + (9292) 3427 + (9293) 5000 + (9294) 77 + (9295) 6770 + (9296) 5589 + (9297) 3756 + (9298) 5937 + (9299) 3852 + (9300) 1513 + (9301) 9280 + (9302) 3299 + (9303) 4080 + (9304) 4973 + (9305) 9305 + (9306) 3817 + (9307) 9307 + (9308) 4307 + (9309) 1678 + (9310) 5133 + (9311) 8626 + (9312) 1143 + (9313) 4940 + (9314) 2305 + (9315) 1964 + (9316) 4041 + (9317) 9317 + (9318) 2595 + (9319) 4560 + (9320) 4815 + (9321) 5716 + (9322) 3049 + (9323) 2030 + (9324) 5827 + (9325) 9150 + (9326) 7965 + (9327) 1122 + (9328) 4919 + (9329) 2924 + (9330) 6721 + (9331) 7622 + (9332) 8825 + (9333) 4982 + (9334) 6453 + (9335) 1056 + (9336) 2813 + (9337) 2388 + (9338) 4167 + (9339) 5812 + (9340) 3139 + (9341) 6302 + (9342) 7533 + (9343) 690 + (9344) 5637 + (9345) 4108 + (9346) 751 + (9347) 1532 + (9348) 7147 + (9349) 1280 + (9350) 8723 + (9351) 1952 + (9352) 5871 + (9353) 9242 + (9354) 7705 + (9355) 3172 + (9356) 4019 + (9357) 5896 + (9358) 9358 + (9359) 9359 + (9360) 4181 + (9361) 8514 + (9362) 9362 + (9363) 2918 + (9364) 7417 + (9365) 5622 + (9366) 1749 + (9367) 3856 + (9368) 6573 + (9369) 2410 + (9370) 8679 + (9371) 462 + (9372) 6049 + (9373) 3822 + (9374) 8251 + (9375) 5346 + (9376) 119 + (9377) 6738 + (9378) 5793 + (9379) 9052 + (9380) 6825 + (9381) 1046 + (9382) 1187 + (9383) 7370 + (9384) 5869 + (9385) 634 + (9386) 1385 + (9387) 7742 + (9388) 7699 + (9389) 4302 + (9390) 2733 + (9391) 7480 + (9392) 9047 + (9393) 4962 + (9394) 9394 + (9395) 5958 + (9396) 9396 + (9397) 6144 + (9398) 595 + (9399) 3066 + (9400) 4335 + (9401) 9401 + (9402) 3079 + (9403) 1518 + (9404) 8915 + (9405) 2648 + (9406) 2941 + (9407) 8386 + (9408) 2519 + (9409) 7596 + (9410) 2369 + (9411) 9411 + (9412) 2491 + (9413) 7926 + (9414) 5267 + (9415) 3472 + (9416) 9055 + (9417) 5146 + (9418) 5383 + (9419) 4884 + (9420) 6097 + (9421) 1502 + (9422) 3181 + (9423) 5432 + (9424) 4983 + (9425) 6860 + (9426) 6383 + (9427) 8780 + (9428) 4185 + (9429) 9429 + (9430) 4597 + (9431) 3952 + (9432) 5391 + (9433) 9433 + (9434) 279 + (9435) 1492 + (9436) 5825 + (9437) 6360 + (9438) 8573 + (9439) 3656 + (9440) 2935 + (9441) 8338 + (9442) 735 + (9443) 1948 + (9444) 8105 + (9445) 5520 + (9446) 1909 + (9447) 6682 + (9448) 3711 + (9449) 9226 + (9450) 2281 + (9451) 8420 + (9452) 8993 + (9453) 9192 + (9454) 9454 + (9455) 5208 + (9456) 405 + (9457) 8930 + (9458) 463 + (9459) 2428 + (9460) 2137 + (9461) 5606 + (9462) 5315 + (9463) 5776 + (9464) 8493 + (9465) 3204 + (9466) 2311 + (9467) 7508 + (9468) 8067 + (9469) 2190 + (9470) 3723 + (9471) 1874 + (9472) 2775 + (9473) 7852 + (9474) 5887 + (9475) 326 + (9476) 6043 + (9477) 9477 + (9478) 7845 + (9479) 5504 + (9480) 8671 + (9481) 7012 + (9482) 3335 + (9483) 6484 + (9484) 659 + (9485) 5470 + (9486) 1307 + (9487) 2840 + (9488) 9429 + (9489) 2268 + (9490) 8735 + (9491) 7302 + (9492) 7867 + (9493) 6678 + (9494) 7139 + (9495) 4474 + (9496) 1471 + (9497) 452 + (9498) 5561 + (9499) 2452 + (9500) 3985 + (9501) 1464 + (9502) 4957 + (9503) 6872 + (9504) 1957 + (9505) 892 + (9506) 177 + (9507) 3980 + (9508) 8747 + (9509) 8230 + (9510) 8371 + (9511) 1840 + (9512) 4303 + (9513) 3588 + (9514) 7385 + (9515) 8308 + (9516) 3281 + (9517) 9517 + (9518) 4557 + (9519) 9266 + (9520) 2791 + (9521) 7564 + (9522) 3359 + (9523) 6470 + (9524) 617 + (9525) 5376 + (9526) 8531 + (9527) 2432 + (9528) 4207 + (9529) 5108 + (9530) 8601 + (9531) 2062 + (9532) 1505 + (9533) 8094 + (9534) 1563 + (9535) 5144 + (9536) 4647 + (9537) 2194 + (9538) 607 + (9539) 1068 + (9540) 507 + (9541) 432 + (9542) 1699 + (9543) 6442 + (9544) 3373 + (9545) 5978 + (9546) 7735 + (9547) 9547 + (9548) 5425 + (9549) 9006 + (9550) 7099 + (9551) 7186 + (9552) 773 + (9553) 1884 + (9554) 2721 + (9555) 9555 + (9556) 9433 + (9557) 4518 + (9558) 4115 + (9559) 9559 + (9560) 5935 + (9561) 3300 + (9562) 4775 + (9563) 9563 + (9564) 7073 + (9565) 2360 + (9566) 8445 + (9567) 9567 + (9568) 3557 + (9569) 9569 + (9570) 2863 + (9571) 636 + (9572) 7723 + (9573) 7254 + (9574) 1141 + (9575) 7194 + (9576) 8431 + (9577) 8996 + (9578) 9559 + (9579) 7540 + (9580) 83 + (9581) 4856 + (9582) 1581 + (9583) 7016 + (9584) 2743 + (9585) 4498 + (9586) 4527 + (9587) 5740 + (9588) 2139 + (9589) 3974 + (9590) 3891 + (9591) 3280 + (9592) 9005 + (9593) 5700 + (9594) 9594 + (9595) 3630 + (9596) 4609 + (9597) 5678 + (9598) 1227 + (9599) 4808 + (9600) 3333 + (9601) 3794 + (9602) 7055 + (9603) 9603 + (9604) 7001 + (9605) 5206 + (9606) 8053 + (9607) 9594 + (9608) 5405 + (9609) 5002 + (9610) 5529 + (9611) 9044 + (9612) 4739 + (9613) 6616 + (9614) 9133 + (9615) 674 + (9616) 5861 + (9617) 5708 + (9618) 7857 + (9619) 6870 + (9620) 2619 + (9621) 3520 + (9622) 8565 + (9623) 8976 + (9624) 2351 + (9625) 3098 + (9626) 7689 + (9627) 3396 + (9628) 2561 + (9629) 446 + (9630) 1933 + (9631) 3192 + (9632) 8247 + (9633) 4114 + (9634) 6177 + (9635) 5788 + (9636) 6137 + (9637) 7462 + (9638) 4965 + (9639) 7146 + (9640) 5293 + (9641) 4138 + (9642) 6953 + (9643) 8500 + (9644) 8115 + (9645) 3502 + (9646) 2459 + (9647) 8530 + (9648) 4325 + (9649) 1644 + (9650) 6417 + (9651) 3446 + (9652) 4651 + (9653) 5856 + (9654) 4869 + (9655) 4154 + (9656) 5341 + (9657) 6986 + (9658) 8631 + (9659) 6782 + (9660) 3633 + (9661) 526 + (9662) 701 + (9663) 8466 + (9664) 853 + (9665) 7980 + (9666) 4065 + (9667) 1372 + (9668) 6889 + (9669) 7238 + (9670) 2485 + (9671) 7296 + (9672) 9672 + (9673) 9396 + (9674) 2231 + (9675) 7326 + (9676) 4977 + (9677) 5438 + (9678) 9547 + (9679) 8184 + (9680) 8645 + (9681) 5628 + (9682) 1071 + (9683) 4972 + (9684) 9305 + (9685) 5782 + (9686) 8549 + (9687) 7834 + (9688) 1631 + (9689) 8324 + (9690) 8407 + (9691) 1556 + (9692) 931 + (9693) 9358 + (9694) 1003 + (9695) 3400 + (9696) 8807 + (9697) 2332 + (9698) 641 + (9699) 3084 + (9700) 5481 + (9701) 6880 + (9702) 9411 + (9703) 298 + (9704) 9704 + (9705) 8228 + (9706) 441 + (9707) 670 + (9708) 2497 + (9709) 8014 + (9710) 715 + (9711) 8072 + (9712) 3895 + (9713) 5442 + (9714) 9569 + (9715) 9715 + (9716) 9401 + (9717) 656 + (9718) 4627 + (9719) 7946 + (9720) 493 + (9721) 2138 + (9722) 1735 + (9723) 580 + (9724) 289 + (9725) 5806 + (9726) 5515 + (9727) 1314 + (9728) 6055 + (9729) 7218 + (9730) 1871 + (9731) 678 + (9732) 4203 + (9733) 1536 + (9734) 1347 + (9735) 5888 + (9736) 8751 + (9737) 2074 + (9738) 8455 + (9739) 4686 + (9740) 6563 + (9741) 1336 + (9742) 5883 + (9743) 7010 + (9744) 7237 + (9745) 92 + (9746) 4927 + (9747) 2700 + (9748) 9563 + (9749) 5312 + (9750) 7525 + (9751) 7232 + (9752) 4143 + (9753) 868 + (9754) 2807 + (9755) 2974 + (9756) 4481 + (9757) 2574 + (9758) 6475 + (9759) 3816 + (9760) 6213 + (9761) 9362 + (9762) 4447 + (9763) 9763 + (9764) 2395 + (9765) 8752 + (9766) 3811 + (9767) 2336 + (9768) 9199 + (9769) 5588 + (9770) 2967 + (9771) 9771 + (9772) 7347 + (9773) 9182 + (9774) 5917 + (9775) 7096 + (9776) 2821 + (9777) 1346 + (9778) 9778 + (9779) 5238 + (9780) 2603 + (9781) 7702 + (9782) 2149 + (9783) 2496 + (9784) 9517 + (9785) 4212 + (9786) 1241 + (9787) 3422 + (9788) 4257 + (9789) 712 + (9790) 123 + (9791) 4136 + (9792) 6983 + (9793) 2690 + (9794) 3039 + (9795) 1996 + (9796) 4393 + (9797) 1734 + (9798) 1443 + (9799) 4234 + (9800) 6111 + (9801) 2906 + (9802) 3175 + (9803) 9454 + (9804) 9715 + (9805) 8750 + (9806) 3773 + (9807) 2754 + (9808) 759 + (9809) 5426 + (9810) 9007 + (9811) 5382 + (9812) 4121 + (9813) 5568 + (9814) 9555 + (9815) 602 + (9816) 1661 + (9817) 8196 + (9818) 215 + (9819) 4004 + (9820) 3827 + (9821) 1160 + (9822) 5629 + (9823) 4776 + (9824) 5125 + (9825) 6076 + (9826) 2465 + (9827) 9196 + (9828) 2985 + (9829) 8822 + (9830) 8963 + (9831) 2112 + (9832) 8589 + (9833) 4564 + (9834) 1879 + (9835) 5028 + (9836) 4305 + (9837) 3582 + (9838) 9307 + (9839) 5794 + (9840) 4101 + (9841) 5980 + (9842) 3313 + (9843) 4732 + (9844) 8347 + (9845) 8982 + (9846) 9763 + (9847) 2666 + (9848) 9359 + (9849) 3402 + (9850) 6985 + (9851) 9060 + (9852) 7811 + (9853) 6152 + (9854) 331 + (9855) 3048 + (9856) 9317 + (9857) 9778 + (9858) 8623 + (9859) 7788 + (9860) 2123 + (9861) 2582 + (9862) 131 + (9863) 9034 + (9864) 1183 + (9865) 3674 + (9866) 471 + (9867) 5556 + (9868) 8817 + (9869) 782 + (9870) 2413 + (9871) 8584 + (9872) 9045 + (9873) 2514 + (9874) 9249 + (9875) 8812 + (9876) 9771 + (9877) 1238 + (9878) 6323 + (9879) 3786 + (9880) 4877 + (9881) 7844 + (9882) 4537 + (9883) 4798 + (9884) 6339 + (9885) 472 + (9886) 5915 + (9887) 4328 + (9888) 6711 + (9889) 306 + (9890) 2385 + (9891) 7996 + (9892) 1595 + (9893) 5728 + (9894) 3363 + (9895) 9088 + (9896) 383 + (9897) 1946 + (9898) 2185 + (9899) 7060 + (9900) 8835 + (9901) 3566 + (9902) 5643 + (9903) 7026 + (9904) 7927 + (9905) 3340 + (9906) 4241 + (9907) 1910 + (9908) 5371 + (9909) 9078 + (9910) 8035 + (9911) 2368 + (9912) 287 + (9913) 1188 + (9914) 5961 + (9915) 7860 + (9916) 5507 + (9917) 7048 + (9918) 1181 + (9919) 4338 + (9920) 7365 + (9921) 1292 + (9922) 3343 + (9923) 4710 + (9924) 6089 + (9925) 5232 + (9926) 6691 + (9927) 906 + (9928) 3629 + (9929) 9146 + (9930) 1543 + (9931) 8452 + (9932) 1921 + (9933) 1310 + (9934) 4347 + (9935) 9394 + (9936) 6021 + (9937) 8636 + (9938) 4687 + (9939) 8486 + (9940) 8073 + (9941) 5104 + (9942) 3141 + (9943) 3328 + (9944) 4607 + (9945) 58 + (9946) 1047 + (9947) 8926 + (9948) 5923 + (9949) 2312 + (9950) 5501 + (9951) 8408 + (9952) 1557 + (9953) 6642 + (9954) 9567 + (9955) 7110 + (9956) 907 + (9957) 3318 + (9958) 9477 + (9959) 7818 + (9960) 1261 + (9961) 3114 + (9962) 135 + (9963) 6878 + (9964) 737 + (9965) 1912 + (9966) 253 + (9967) 5330 + (9968) 101 + (9969) 3260 + (9970) 2849 + (9971) 2470 + (9972) 9257 + (9973) 3536 + (9974) 2435 + (9975) 7408 + (9976) 3245 + (9977) 1338 + (9978) 5577 + (9979) 5060 + (9980) 7715 + (9981) 62 + (9982) 8795 + (9983) 5570 + (9984) 5831 + (9985) 7708 + (9986) 1169 + (9987) 2604 + (9988) 57 + (9989) 3206 + (9990) 1541 + (9991) 6064 + (9992) 4623 + (9993) 9993 + (9994) 9993 + (9995) 804 + (9996) 625 + (9997) 4616 + (9998) 3597 + (9999) 1896 diff --git a/experimental/benchmark/matching-tests/Makefile b/experimental/benchmark/matching-tests/Makefile index 2bd6d9e765..e17b9477a9 100644 --- a/experimental/benchmark/matching-tests/Makefile +++ b/experimental/benchmark/matching-tests/Makefile @@ -1,84 +1,7 @@ -#------------------------------------------------------------------------------- -# my/Makefile -#------------------------------------------------------------------------------- - -# A simple Makefile for LAGraph, which relies on cmake to do the actual build. -# All the work is done in cmake so this Makefile is just for convenience. - -# To compile and run the tests: -# -# make -# make test -# -# To compile with an alternate compiler: -# -# make CC=gcc CXX=g++ -# -# To compile/install for system-wide usage (typically in /usr/local): -# -# make -# sudo make install -# -# To compile/install for elsewhere (for example, in /home/me/mystuff/lib -# and /home/me/mystuff/include), do not use this Makefile. Instead, do: -# -# cd build -# cmake -DCMAKE_INSTALL_PREFIX="/home/me/mystuff" .. -# make -# make install -# -# To clean up the files: -# -# make clean -# -# To uninstall: -# -# make uninstall -# -# To compile and run test coverage: use "make cov". Next, open your browser to -# your local file, LAGraph/build/test_coverage/index.html. Be sure to do "make -# clean" afterwards, and then "make" to compile without test coverage. - -JOBS ?= 8 - -default: library - -library: - ( cd build && cmake $(CMAKE_OPTIONS) .. && $(MAKE) --jobs=${JOBS} ) - -# compile with -g for debugging -debug: - ( cd build && cmake $(CMAKE_OPTIONS) -DCMAKE_BUILD_TYPE=Debug .. && $(MAKE) --jobs=${JOBS} ) - -all: library - -test: library - ( cd build && make test ) - -# just compile after running cmake; do not run cmake again -remake: - ( cd build && $(MAKE) --jobs=${JOBS} ) - -# just run cmake to set things up -setup: - ( cd build ; cmake $(CMAKE_OPTIONS) .. ) - -install: - ( cd build ; $(MAKE) install ) - -# remove any installed libraries and #include files -uninstall: - - xargs rm < build/install_manifest.txt - -# clean, compile, and run test coverage -cov: distclean - ( cd build && cmake -DCOVERAGE=1 .. && $(MAKE) --jobs=${JOBS} && make test_coverage ) - -# remove all files not in the distribution -clean: distclean - -purge: distclean - -distclean: - - $(RM) -rf build/* config/*.tmp +all: + g++ -o build/gen_bipartite gen_bipartite.cpp -fPIC -fopenmp -I../../../include -I../../../../GraphBLAS/Include -L../../../build/src -L../../../build/experimental -L../../../../GraphBLAS/build -L../../../../GraphBLAS/build/CUDA -L../../../../GraphBLAS/build/rmm_wrap -l:liblagraph.a -l:liblagraphx.a -l:libgraphblas.a && \ + g++ -o build/gen_general gen_general.cpp -fPIC -fopenmp -I../../../include -I../../../../GraphBLAS/Include -L../../../build/src -L../../../build/experimental -L../../../../GraphBLAS/build -L../../../../GraphBLAS/build/CUDA -L../../../../GraphBLAS/build/rmm_wrap -l:liblagraph.a -l:liblagraphx.a -l:libgraphblas.a && \ + g++ -o build/verify_matching verify_matching.cpp --std=c++17 -fPIC -fopenmp -I../../../include -I../../../../GraphBLAS/Include -I../../../GraphBLAS/rmm_wrap -L../../../build/src -L../../../build/experimental -L../../../../GraphBLAS/build -l:liblagraph.a -l:liblagraphx.a -l:libgraphblas.a +clean: + rm -rf build/* diff --git a/experimental/benchmark/matching-tests/bench.py b/experimental/benchmark/matching-tests/bench.py index 83cd132c0f..7c0539b4a2 100644 --- a/experimental/benchmark/matching-tests/bench.py +++ b/experimental/benchmark/matching-tests/bench.py @@ -208,4 +208,4 @@ def do_run(test): cprint(f'================================\n\n', 'light_grey') -cprint('All tests passed', 'green') \ No newline at end of file +cprint('All tests passed', 'green') diff --git a/experimental/benchmark/matching-tests/gen_bipartite.cpp b/experimental/benchmark/matching-tests/gen_bipartite.cpp index f004e4ee39..367bc09599 100644 --- a/experimental/benchmark/matching-tests/gen_bipartite.cpp +++ b/experimental/benchmark/matching-tests/gen_bipartite.cpp @@ -160,20 +160,19 @@ int maxflow(int s, int t, int n) { } int main(int argc, char **argv){ - // TODO: Right now, perf is controlled by naive. Switch this int num_nodes = atoi(argv[1]); - double sparse_factor = atof(argv[2]); - int perf = atoi(argv[3]); + double sparse_factor = atof(argv[2]); // average degree of each node in the left set + int perf = atoi(argv[3]); // whether to test performance or quality int naive; if(perf){ - naive = 1; + naive = 1; // if testing for performance, only use the naive method } else { naive = atoi(argv[4]); } if(naive){ - weighted = atoi(argv[5]); + weighted = atoi(argv[5]); // only the naive method has a weighted matching option if(weighted){ prefer_light = atoi(argv[6]); } @@ -191,7 +190,7 @@ int main(int argc, char **argv){ random_device rd; mt19937_64 gen(rd()); uniform_int_distribution seed_distr(1, 1e15); - uint64_t seed = seed_distr(gen); + uint64_t seed = 83; // seed_distr(gen); GrB_Index *rows, *cols ; uint32_t *vals ; diff --git a/experimental/benchmark/matching-tests/gen_general.cpp b/experimental/benchmark/matching-tests/gen_general.cpp index 21c2e39caa..311556e50c 100644 --- a/experimental/benchmark/matching-tests/gen_general.cpp +++ b/experimental/benchmark/matching-tests/gen_general.cpp @@ -257,7 +257,7 @@ int main(int argc, char **argv){ random_device rd; mt19937_64 gen(rd()); uniform_int_distribution seed_distr(1, 1e15); - uint64_t seed = seed_distr(gen); + uint64_t seed = 62 ;// seed_distr(gen); GrB_Index *rows, *cols ; uint32_t *vals ; diff --git a/experimental/benchmark/matching_demo.c b/experimental/benchmark/matching_demo.c index ac9c9f939b..ef84b92bca 100644 --- a/experimental/benchmark/matching_demo.c +++ b/experimental/benchmark/matching_demo.c @@ -22,7 +22,7 @@ matching_type: 0, 1, 2 for random matching, heavy edge matching, and light edge NOTE: This is the typical scenario that all other benchmark codes are used for Option 2: Run for quality -./matching_demo -q +./matching_demo -q NOTE: this option only accepts input via stdin -q option as the matrix name specifies to run for quality, not performance matching_type: 0, 1, 2 for random matching, heavy edge matching, and light edge matching respectively @@ -73,7 +73,7 @@ int main (int argc, char** argv) // read in the graph //-------------------------------------------------------------------------- if (argc < 3) { - printf ("Invalid usage, read comments\n") ; + printf ("Invalid usage, please read comments\n") ; return 0 ; } int quality = 0 ; @@ -81,13 +81,29 @@ int main (int argc, char** argv) char *matrix_name = argv [1] ; // -q option as the matrix name means to run the quality tests quality = ( strcmp (matrix_name, "-q") == 0 ) ; + char *q_argv [4] = {NULL, NULL, NULL, NULL} ; // build a new argv in the quality case + if (quality) { + if (argc != 5){ + printf("Invalid usage, please read comments\n") ; + return 0; + } + LAGRAPH_TRY (LAGraph_Malloc ((void**) &q_argv, argc - 1, sizeof(char*), msg)) ; + q_argv [0] = argv [0] ; + q_argv [1] = argv [2] ; + q_argv [2] = argv [3] ; + q_argv [3] = argv [4] ; + matrix_name = q_argv[2] ; + } else { + if (argc != 3){ + printf("Invalid usage, please read comments\n"); + return 0; + } + } force_stdin = ( strcmp (matrix_name, "stdin") == 0 ) ; - - force_stdin = force_stdin || quality ; - + LAGRAPH_TRY (LAGraph_Random_Init (msg)) ; LAGRAPH_TRY (readproblem (&G, NULL, - true, true, false, GrB_FP64, false, force_stdin ? 1 : argc, argv)) ; + true, true, false, GrB_FP64, false, force_stdin ? 1 : argc - quality, quality ? q_argv : argv)) ; GrB_Index n ; GrB_Index num_edges ; @@ -108,12 +124,8 @@ int main (int argc, char** argv) //-------------------------------------------------------------------------- // Printing E matrix, best result from ntrial runs for my own, external tests for quality (not performance) //-------------------------------------------------------------------------- - if (argc < 4) { - printf ("Invalid usage, read comments\n") ; - return 0 ; - } - int ntrials = atoi (argv [3]) ; - int matching_type = atoi (argv [2]) ; + int ntrials = atoi (q_argv [3]) ; + int matching_type = atoi (q_argv [2]) ; // best answer so far double best_val = (matching_type == 2) ? 1e18 : 0 ; diff --git a/experimental/test/test_BF.c b/experimental/test/test_BF.c index e5e88ff4e6..b1efff7c73 100644 --- a/experimental/test/test_BF.c +++ b/experimental/test/test_BF.c @@ -57,6 +57,7 @@ void setup (void) { OK (LAGraph_Init (msg)) ; OK (LAGraph_Random_Init (msg)) ; + GxB_set (GxB_BURBLE, true, GrB_GLOBAL) ; } //------------------------------------------------------------------------------ diff --git a/experimental/test/test_Coarsen_Matching.c b/experimental/test/test_Coarsen_Matching.c index 217c1985ab..c26811f6b3 100644 --- a/experimental/test/test_Coarsen_Matching.c +++ b/experimental/test/test_Coarsen_Matching.c @@ -51,17 +51,17 @@ matrix_info ; const matrix_info tests [ ] = { // random, preserve, combine - {10, 0.3, 55, LAGraph_Matching_random, 1, 1, "small-random-preserve-combine"}, - {500, 0.4, 16, LAGraph_Matching_random, 1, 1, "large-random-preserve-combine"}, + {10, 0.3, 55, LAGraph_Matching_unweighted, 1, 1, "small-random-preserve-combine"}, + {500, 0.4, 16, LAGraph_Matching_unweighted, 1, 1, "large-random-preserve-combine"}, // random, preserve, nocombine - {10, 0.3, 62, LAGraph_Matching_random, 1, 0, "small-random-preserve-nocombine"}, - {500, 0.4, 21, LAGraph_Matching_random, 1, 0, "large-random-preserve-nocombine"}, + {10, 0.3, 62, LAGraph_Matching_unweighted, 1, 0, "small-random-preserve-nocombine"}, + {500, 0.4, 21, LAGraph_Matching_unweighted, 1, 0, "large-random-preserve-nocombine"}, // random, nopreserve, combine - {10, 0.3, 23, LAGraph_Matching_random, 0, 1, "small-random-nopreserve-combine"}, - {500, 0.4, 31, LAGraph_Matching_random, 0, 1, "large-random-nopreserve-combine"}, + {10, 0.3, 23, LAGraph_Matching_unweighted, 0, 1, "small-random-nopreserve-combine"}, + {500, 0.4, 31, LAGraph_Matching_unweighted, 0, 1, "large-random-nopreserve-combine"}, // random, nopreserve, nocombine - {10, 0.3, 92, LAGraph_Matching_random, 0, 0, "small-random-nopreserve-nocombine"}, - {500, 0.4, 44, LAGraph_Matching_random, 0, 0, "large-random-nopreserve-nocombine"}, + {10, 0.3, 92, LAGraph_Matching_unweighted, 0, 0, "small-random-nopreserve-nocombine"}, + {500, 0.4, 44, LAGraph_Matching_unweighted, 0, 0, "large-random-nopreserve-nocombine"}, // same as above except weighted matching (mix of light and heavy) // random, preserve, combine diff --git a/experimental/test/test_MaximalMatching.c b/experimental/test/test_MaximalMatching.c index 95298741e2..d412dbadaa 100644 --- a/experimental/test/test_MaximalMatching.c +++ b/experimental/test/test_MaximalMatching.c @@ -19,9 +19,6 @@ NOTE: Unlike the other tests, this does not use .mtx files, but rather generates the test matrices using specified configurations and seeds with LAGraph_Random_Matrix -NOTE: Changes to LAGraph_Random may break these tests, since the LAGraph_Random implementation -used to build the test graphs may produce a different output from newer implementations -given the same seed. */ #include @@ -36,46 +33,49 @@ LAGraph_Graph G = NULL ; typedef struct { - double matching_val ; // for unweighted matchings, the size of the set. For weighted, sum of edge weights + double matching_val ; // for unweighted matchings, the size of the matching. For weighted, sum of edge weights int matching_type ; // 0: unweighted, 1: heavy, 2: light int is_exact ; // whether or not matching_val is exactly computed for this test - GrB_Index n ; // number of nodes in the graph. If bipartite, number of nodes in the left set - GrB_Index m ; // if not bipartite, should be -1. Otherwise, the number of nodes in the right set - double density ; // density of the matrix - uint64_t seed ; // seed used to generate the graph for this test - const char *name ; + const char *name ; // matrix file name } matrix_info ; const matrix_info tests [ ] = { // unweighted bipartite - { 43, 0, 1, 50, 50, 5.0 / 50, 143, "random_bipartite_bool_1" }, - { 496, 0, 1, 500, 500, 3.0 / 500, 88, "random_bipartite_bool_2" }, - { 479, 0, 0, 500, 500, 10.0 / 500, 42, "random_bipartite_bool_3" }, - { 2483, 0, 0, 2500, 2500, 100.0 / 2500, 55, "random_bipartite_bool_4" }, + { 150, 0, 1, "random_unweighted_bipartite1.mtx" }, // 42 + { 150, 0, 1, "random_unweighted_bipartite2.mtx" }, // 69 + { 143, 0, 0, "random_unweighted_bipartite1.mtx" }, // repeat + { 147, 0, 0, "random_unweighted_bipartite2.mtx" }, // repeat + // unweighted general - { 24, 0, 1, 50, -1, 5.0 / 50, 92, "random_general_bool_1" } , - { 100, 0, 1, 200, -1, 10.0 / 200, 112, "random_general_bool_2" }, - { 242, 0, 0, 500, -1, 10.0 / 500, 48, "random_general_bool_3" }, - { 1487, 0, 0, 3000, -1, 50.0 / 3000, 64, "random_general_bool_4" }, + // { 25, 0, 1, 50, -1, 5.0 / 50, 31, "unweighted_general_1" } , // 31 + { 25, 0, 1, "random_unweighted_general1.mtx"}, + // { 100, 0, 1, 200, -1, 10.0 / 200, 101, "unweighted_general_2" }, // 101 + { 100, 0, 1, "random_unweighted_general2.mtx"}, + { 24, 0, 0, "random_unweighted_general1.mtx"}, + { 95, 0, 0, "random_unweighted_general2.mtx"}, + // weighted bipartite - { 3777422047635, 1, 0, 1000, 1000, 20.0 / 1000, 130, "random_bipartite_int_1" }, - { 9851292258178, 1, 0, 2500, 2500, 30.0 / 2500, 78, "random_bipartite_int_2" }, - { 372131180649, 2, 0, 1000, 1000, 20.0 / 1000, 24, "random_bipartite_int_3" }, - { 639851753175, 2, 0, 2500, 2500, 30.0 / 2500, 178, "random_bipartite_int_4" }, + // answer, matching_type, is_exact, l_node, r_node, density, seed, name + // { 3777422047635, 1, 0, 1000, 1000, 20.0 / 1000, 83, "weighted_bipartite_1" }, + { 775940425564, 1, 0, "random_weighted_bipartite1.mtx"}, // seed: 83, nodes: 500, spf: 8 + // { 9851292258178, 1, 0, 2500, 2500, 30.0 / 2500, 78, "weighted_bipartite_2" } + { 417490248760, 1, 0, "random_weighted_bipartite2.mtx"}, // seed: 151, nodes: 300, spf: 5 + { 181453589490, 2, 0, "random_weighted_bipartite1.mtx" }, // repeat + { 133704435764, 2, 0, "random_weighted_bipartite2.mtx" }, // repeat // weighted general - { 1847843295771, 1, 0, 1000, -1, 20.0 / 1000, 155, "random_general_int_1" }, - { 9991765577349, 1, 0, 5000, -1, 50.0 / 5000, 98, "random_general_int_2" }, - { 193597661237, 2, 0, 1000, -1, 20.0 / 1000, 44, "random_general_int_3" }, - { 520480326025, 2, 0, 5000, -1, 50.0 / 5000, 101, "random_general_int_4" }, + { 783685067769, 1, 0, "random_weighted_general1.mtx" }, // seed: 137, nodes: 500, spf: 8 + { 420609293186, 1, 0, "random_weighted_general2.mtx" }, // seed: 62, nodes: 300, spf: 5 + { 165090013148, 2, 0, "random_weighted_general1.mtx" }, // repeat + { 128746478507, 2, 0, "random_weighted_general2.mtx" }, // repeat - { 0, 0, 0, 0, 0, 0.0, 0, "" } + { 0, 0, 0, "" } } ; double thresholds [ ] = { - 0.85, // random matching, exact - 0.90, // random matching, naive + 0.85, // unweighted matching, exact + 0.90, // unweighted matching, naive 0.80, // weighted matching, naive, light 0.90, // weighted matching, naive, heavy } ; @@ -98,92 +98,13 @@ void test_MaximalMatching (void) if (strlen (aname) == 0) break ; TEST_CASE (aname) ; - // graph generation below - //-------------- - if (tests [k].m != -1) { - // we want a bipartite graph - GrB_Index n = tests [k].n ; - GrB_Index m = tests [k].m ; - /* - Bipartite graph generation works as follows: Create a random n x m matrix for the top right - quadrant. The bottom left quadrant will be the transpose of this matrix. The other 2 quadrants - will be empty. - This exactly matches the process that the custom tests use - */ - GrB_Matrix A_tr = NULL ; // top-right quadrant - GrB_Index A_tr_nvals ; // number of entries in top-right quadrant - GrB_Index *tr_rows, *tr_cols ; - uint32_t *tr_vals ; - - OK (LAGraph_Random_Matrix (&A_tr, GrB_UINT32, n, m, tests [k].density, tests [k].seed, msg)) ; - - OK (GrB_Matrix_nvals (&A_tr_nvals, A_tr)) ; - - OK (GrB_Matrix_new (&A, GrB_UINT32, n + m, n + m)) ; - - OK (LAGraph_Malloc ((void**)(&tr_rows), A_tr_nvals, sizeof(GrB_Index), msg)) ; - OK (LAGraph_Malloc ((void**)(&tr_cols), A_tr_nvals, sizeof(GrB_Index), msg)) ; - OK (LAGraph_Malloc ((void**)(&tr_vals), A_tr_nvals, sizeof(uint32_t), msg)) ; - - OK (GrB_Matrix_extractTuples (tr_rows, tr_cols, tr_vals, &A_tr_nvals, A_tr)) ; - - for (GrB_Index i = 0; i < A_tr_nvals; i++) { - GrB_Index row = tr_rows[i]; - GrB_Index col = tr_cols[i]; - uint32_t val = tr_vals[i]; - OK (GrB_Matrix_setElement (A, val, row, col + n)) ; - OK (GrB_Matrix_setElement (A, val, col + n, row)) ; - } - - OK (GrB_free (&A_tr)) ; - OK (LAGraph_Free ((void**)(&tr_rows), msg)) ; - OK (LAGraph_Free ((void**)(&tr_cols), msg)) ; - OK (LAGraph_Free ((void**)(&tr_vals), msg)) ; - - } else { - GrB_Index n = tests [k].n ; - - GrB_Matrix A_dup = NULL ; - GrB_Index nvals ; - GrB_Index *rows, *cols ; - uint32_t *vals ; - - OK (LAGraph_Random_Matrix (&A_dup, GrB_UINT32, n, n, tests [k].density, tests [k].seed, msg)) ; - OK (GrB_Matrix_new (&A, GrB_UINT32, n, n)) ; - - OK (GrB_Matrix_nvals (&nvals, A_dup)) ; - - OK (LAGraph_Malloc ((void**)(&rows), nvals, sizeof(GrB_Index), msg)) ; - OK (LAGraph_Malloc ((void**)(&cols), nvals, sizeof(GrB_Index), msg)) ; - OK (LAGraph_Malloc ((void**)(&vals), nvals, sizeof(uint32_t), msg)) ; - - OK (GrB_Matrix_extractTuples (rows, cols, vals, &nvals, A_dup)) ; - - for (GrB_Index i = 0; i < nvals; i++) { - GrB_Index row = rows[i]; - GrB_Index col = cols[i]; - uint32_t val = vals[i]; - if (col < row){ - // use lower triangular entries for the entire matrix - OK (GrB_Matrix_setElement (A, val, col, row)) ; - OK (GrB_Matrix_setElement (A, val, row, col)) ; - } - } - - OK (GrB_free (&A_dup)) ; - OK (LAGraph_Free ((void**)(&rows), msg)) ; - OK (LAGraph_Free ((void**)(&cols), msg)) ; - OK (LAGraph_Free ((void**)(&vals), msg)) ; - } // old code using files //-------------- - /* snprintf (filename, LEN, LG_DATA_DIR "%s", aname) ; FILE *f = fopen (filename, "r") ; TEST_CHECK (f != NULL) ; TEST_MSG ("Filename %s is invalid", filename) ; OK (LAGraph_MMRead (&A, f, msg)) ; - */ //-------------- TEST_CHECK (A != NULL) ; @@ -256,7 +177,7 @@ void test_MaximalMatching (void) double matching_value = 0 ; if (tests [k].matching_type == 0) { - // random + // unweighted // we only care about the number of chosen edges uint64_t matching_val_int ; OK (GrB_Vector_nvals (&matching_val_int, matching)) ; diff --git a/experimental/utility/LAGraph_Incidence_Matrix.c b/experimental/utility/LAGraph_Incidence_Matrix.c index 0902d46cbb..e9d99ddbb9 100755 --- a/experimental/utility/LAGraph_Incidence_Matrix.c +++ b/experimental/utility/LAGraph_Incidence_Matrix.c @@ -19,10 +19,12 @@ have the same value. If the graph G is weighted, then both E(i,k) and E(j,k) are equal to the weight of the (i,j) edge. If G is unweighted, then both are equal to 1 (and the matrix E is thus iso-valued). -The result has the same type as the input adjacency matrix. -*/ +The type of the result is always compatible with the type of the input graph, but +may be of a larger size; UINT8, UINT16, UINT32, INT8, INT16, INT32, INT64, and BOOL becomes +a UINT64. UINT64 remains as a UINT64. FP32 and FP64 both become FP64. -//-------- +Note that complex types are NOT supported. +*/ #include "LG_internal.h" #include "LAGraphX.h" diff --git a/include/LAGraphX.h b/include/LAGraphX.h index 28fbe30739..9ad988c166 100644 --- a/include/LAGraphX.h +++ b/include/LAGraphX.h @@ -913,7 +913,7 @@ int LAGraph_FastGraphletTransform typedef enum { - LAGraph_Matching_random = 0, + LAGraph_Matching_unweighted = 0, LAGraph_Matching_heavy = 1, LAGraph_Matching_light = 2, } diff --git a/src/test/test_Cached_SymmetricStructure.c b/src/test/test_Cached_SymmetricStructure.c index d609de8e09..69f306ed4c 100644 --- a/src/test/test_Cached_SymmetricStructure.c +++ b/src/test/test_Cached_SymmetricStructure.c @@ -34,6 +34,7 @@ char filename [LEN+1] ; void setup (void) { OK (LAGraph_Init (msg)) ; + GrB_set (GrB_GLOBAL, true, GxB_BURBLE) ; } //------------------------------------------------------------------------------ diff --git a/src/test/test_ConnectedComponents.c b/src/test/test_ConnectedComponents.c index c58a81262b..b42277906b 100644 --- a/src/test/test_ConnectedComponents.c +++ b/src/test/test_ConnectedComponents.c @@ -82,7 +82,7 @@ void test_cc_matrices (void) { OK (LAGraph_Init (msg)) ; - + GrB_set (GrB_GLOBAL, true, GxB_BURBLE) ; for (int k = 0 ; ; k++) {