github.com/jefffederman/gophe@v0.0.0-20221203163656-b38beff92772/dptables.go (about) 1 package gophe 2 3 var Choose = [53][10]uint32{ 4 { 5 1, 0, 0, 0, 0, 6 0, 0, 0, 0, 0, 7 }, 8 { 9 1, 1, 0, 0, 0, 10 0, 0, 0, 0, 0, 11 }, 12 { 13 1, 2, 1, 0, 0, 14 0, 0, 0, 0, 0, 15 }, 16 { 17 1, 3, 3, 1, 0, 18 0, 0, 0, 0, 0, 19 }, 20 { 21 1, 4, 6, 4, 1, 22 0, 0, 0, 0, 0, 23 }, 24 { 25 1, 5, 10, 10, 5, 26 1, 0, 0, 0, 0, 27 }, 28 { 29 1, 6, 15, 20, 15, 30 6, 1, 0, 0, 0, 31 }, 32 { 33 1, 7, 21, 35, 35, 34 21, 7, 1, 0, 0, 35 }, 36 { 37 1, 8, 28, 56, 70, 38 56, 28, 8, 1, 0, 39 }, 40 { 41 1, 9, 36, 84, 126, 42 126, 84, 36, 9, 1, 43 }, 44 { 45 1, 10, 45, 120, 210, 46 252, 210, 120, 45, 10, 47 }, 48 { 49 1, 11, 55, 165, 330, 50 462, 462, 330, 165, 55, 51 }, 52 { 53 1, 12, 66, 220, 495, 54 792, 924, 792, 495, 220, 55 }, 56 { 57 1, 13, 78, 286, 715, 58 1287, 1716, 1716, 1287, 715, 59 }, 60 { 61 1, 14, 91, 364, 1001, 62 2002, 3003, 3432, 3003, 2002, 63 }, 64 { 65 1, 15, 105, 455, 1365, 66 3003, 5005, 6435, 6435, 5005, 67 }, 68 { 69 1, 16, 120, 560, 1820, 70 4368, 8008, 11440, 12870, 11440, 71 }, 72 { 73 1, 17, 136, 680, 2380, 74 6188, 12376, 19448, 24310, 24310, 75 }, 76 { 77 1, 18, 153, 816, 3060, 78 8568, 18564, 31824, 43758, 48620, 79 }, 80 { 81 1, 19, 171, 969, 3876, 82 11628, 27132, 50388, 75582, 92378, 83 }, 84 { 85 1, 20, 190, 1140, 4845, 86 15504, 38760, 77520, 125970, 167960, 87 }, 88 { 89 1, 21, 210, 1330, 5985, 90 20349, 54264, 116280, 203490, 293930, 91 }, 92 { 93 1, 22, 231, 1540, 7315, 94 26334, 74613, 170544, 319770, 497420, 95 }, 96 { 97 1, 23, 253, 1771, 8855, 98 33649, 100947, 245157, 490314, 817190, 99 }, 100 { 101 1, 24, 276, 2024, 10626, 102 42504, 134596, 346104, 735471, 1307504, 103 }, 104 { 105 1, 25, 300, 2300, 12650, 106 53130, 177100, 480700, 1081575, 2042975, 107 }, 108 { 109 1, 26, 325, 2600, 14950, 110 65780, 230230, 657800, 1562275, 3124550, 111 }, 112 { 113 1, 27, 351, 2925, 17550, 114 80730, 296010, 888030, 2220075, 4686825, 115 }, 116 { 117 1, 28, 378, 3276, 20475, 118 98280, 376740, 1184040, 3108105, 6906900, 119 }, 120 { 121 1, 29, 406, 3654, 23751, 122 118755, 475020, 1560780, 4292145, 10015005, 123 }, 124 { 125 1, 30, 435, 4060, 27405, 126 142506, 593775, 2035800, 5852925, 14307150, 127 }, 128 { 129 1, 31, 465, 4495, 31465, 130 169911, 736281, 2629575, 7888725, 20160075, 131 }, 132 { 133 1, 32, 496, 4960, 35960, 134 201376, 906192, 3365856, 10518300, 28048800, 135 }, 136 { 137 1, 33, 528, 5456, 40920, 138 237336, 1107568, 4272048, 13884156, 38567100, 139 }, 140 { 141 1, 34, 561, 5984, 46376, 142 278256, 1344904, 5379616, 18156204, 52451256, 143 }, 144 { 145 1, 35, 595, 6545, 52360, 146 324632, 1623160, 6724520, 23535820, 70607460, 147 }, 148 { 149 1, 36, 630, 7140, 58905, 150 376992, 1947792, 8347680, 30260340, 94143280, 151 }, 152 { 153 1, 37, 666, 7770, 66045, 154 435897, 2324784, 10295472, 38608020, 124403620, 155 }, 156 { 157 1, 38, 703, 8436, 73815, 158 501942, 2760681, 12620256, 48903492, 163011640, 159 }, 160 { 161 1, 39, 741, 9139, 82251, 162 575757, 3262623, 15380937, 61523748, 211915132, 163 }, 164 { 165 1, 40, 780, 9880, 91390, 166 658008, 3838380, 18643560, 76904685, 273438880, 167 }, 168 { 169 1, 41, 820, 10660, 101270, 170 749398, 4496388, 22481940, 95548245, 350343565, 171 }, 172 { 173 1, 42, 861, 11480, 111930, 174 850668, 5245786, 26978328, 118030185, 445891810, 175 }, 176 { 177 1, 43, 903, 12341, 123410, 178 962598, 6096454, 32224114, 145008513, 563921995, 179 }, 180 { 181 1, 44, 946, 13244, 135751, 182 1086008, 7059052, 38320568, 177232627, 708930508, 183 }, 184 { 185 1, 45, 990, 14190, 148995, 186 1221759, 8145060, 45379620, 215553195, 886163135, 187 }, 188 { 189 1, 46, 1035, 15180, 163185, 190 1370754, 9366819, 53524680, 260932815, 1101716330, 191 }, 192 { 193 1, 47, 1081, 16215, 178365, 194 1533939, 10737573, 62891499, 314457495, 1362649145, 195 }, 196 { 197 1, 48, 1128, 17296, 194580, 198 1712304, 12271512, 73629072, 377348994, 1677106640, 199 }, 200 { 201 1, 49, 1176, 18424, 211876, 202 1906884, 13983816, 85900584, 450978066, 2054455634, 203 }, 204 { 205 1, 50, 1225, 19600, 230300, 206 2118760, 15890700, 99884400, 536878650, 2505433700, 207 }, 208 { 209 1, 51, 1275, 20825, 249900, 210 2349060, 18009460, 115775100, 636763050, 3042312350, 211 }, 212 { 213 1, 52, 1326, 22100, 270725, 214 2598960, 20358520, 133784560, 752538150, 3679075400, 215 }, 216 } 217 var dp = [5][14][10]uint32{ 218 { 219 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 220 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 221 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 222 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 223 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 224 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 225 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 226 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 227 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 228 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 229 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 230 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 231 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 232 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 233 }, 234 { 235 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 236 {1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, 237 {1, 2, 3, 4, 5, 4, 3, 2, 1, 0}, 238 {1, 3, 6, 10, 15, 18, 19, 18, 15, 10}, 239 {1, 4, 10, 20, 35, 52, 68, 80, 85, 80}, 240 {1, 5, 15, 35, 70, 121, 185, 255, 320, 365}, 241 {1, 6, 21, 56, 126, 246, 426, 666, 951, 1246}, 242 {1, 7, 28, 84, 210, 455, 875, 1520, 2415, 3535}, 243 {1, 8, 36, 120, 330, 784, 1652, 3144, 5475, 8800}, 244 {1, 9, 45, 165, 495, 1278, 2922, 6030, 11385, 19855}, 245 {1, 10, 55, 220, 715, 1992, 4905, 10890, 22110, 41470}, 246 {1, 11, 66, 286, 1001, 2992, 7887, 18722, 40612, 81367}, 247 {1, 12, 78, 364, 1365, 4356, 12232, 30888, 71214, 151580}, 248 {1, 13, 91, 455, 1820, 6175, 18395, 49205, 120055, 270270}, 249 }, 250 { 251 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 252 {1, 2, 2, 2, 2, 1, 0, 0, 0, 0}, 253 {1, 3, 5, 7, 9, 9, 7, 5, 3, 1}, 254 {1, 4, 9, 16, 25, 33, 37, 37, 33, 25}, 255 {1, 5, 14, 30, 55, 87, 120, 148, 165, 165}, 256 {1, 6, 20, 50, 105, 191, 306, 440, 575, 685}, 257 {1, 7, 27, 77, 182, 372, 672, 1092, 1617, 2197}, 258 {1, 8, 35, 112, 294, 665, 1330, 2395, 3935, 5950}, 259 {1, 9, 44, 156, 450, 1114, 2436, 4796, 8619, 14275}, 260 {1, 10, 54, 210, 660, 1773, 4200, 8952, 17415, 31240}, 261 {1, 11, 65, 275, 935, 2707, 6897, 15795, 33000, 63580}, 262 {1, 12, 77, 352, 1287, 3993, 10879, 26609, 59334, 121979}, 263 {1, 13, 90, 442, 1729, 5721, 16588, 43120, 102102, 222794}, 264 {1, 14, 104, 546, 2275, 7995, 24570, 67600, 169260, 390325}, 265 }, 266 { 267 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 268 {1, 2, 3, 3, 3, 2, 1, 0, 0, 0}, 269 {1, 3, 6, 9, 12, 13, 12, 9, 6, 3}, 270 {1, 4, 10, 19, 31, 43, 52, 55, 52, 43}, 271 {1, 5, 15, 34, 65, 107, 155, 200, 233, 245}, 272 {1, 6, 21, 55, 120, 226, 376, 561, 760, 940}, 273 {1, 7, 28, 83, 203, 428, 798, 1338, 2043, 2863}, 274 {1, 8, 36, 119, 322, 749, 1540, 2850, 4810, 7470}, 275 {1, 9, 45, 164, 486, 1234, 2766, 5580, 10271, 17419}, 276 {1, 10, 55, 219, 705, 1938, 4695, 10230, 20337, 37270}, 277 {1, 11, 66, 285, 990, 2927, 7612, 17787, 37905, 74470}, 278 {1, 12, 78, 363, 1353, 4279, 11880, 29601, 67221, 140701}, 279 {1, 13, 91, 454, 1807, 6085, 17953, 47476, 114334, 253682}, 280 {1, 14, 105, 559, 2366, 8450, 26390, 73775, 187655, 439530}, 281 }, 282 { 283 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 284 {1, 2, 3, 4, 4, 3, 2, 1, 0, 0}, 285 {1, 3, 6, 10, 14, 16, 16, 14, 10, 6}, 286 {1, 4, 10, 20, 34, 49, 62, 70, 70, 62}, 287 {1, 5, 15, 35, 69, 117, 175, 235, 285, 313}, 288 {1, 6, 21, 56, 125, 241, 411, 631, 881, 1125}, 289 {1, 7, 28, 84, 209, 449, 854, 1464, 2289, 3289}, 290 {1, 8, 36, 120, 329, 777, 1624, 3060, 5265, 8345}, 291 {1, 9, 45, 165, 494, 1270, 2886, 5910, 11055, 19071}, 292 {1, 10, 55, 220, 714, 1983, 4860, 10725, 21615, 40192}, 293 {1, 11, 66, 286, 1000, 2982, 7832, 18502, 39897, 79375}, 294 {1, 12, 78, 364, 1364, 4345, 12166, 30602, 70213, 148588}, 295 {1, 13, 91, 455, 1819, 6163, 18317, 48841, 118690, 265914}, 296 {1, 14, 105, 560, 2379, 8541, 26845, 75595, 193830, 457925}, 297 }, 298 } 299 300 var suits = [4609]byte{ 301 0, 0, 0, 0, 0, 1, 1, 1, 302 1, 1, 0, 0, 0, 1, 1, 1, 303 1, 0, 0, 0, 0, 1, 1, 1, 304 0, 0, 0, 0, 0, 1, 1, 0, 305 0, 0, 0, 0, 0, 1, 0, 0, 306 2, 2, 2, 2, 2, 0, 0, 0, 307 2, 2, 2, 2, 0, 0, 0, 0, 308 2, 2, 2, 0, 0, 0, 0, 0, 309 2, 2, 0, 0, 0, 1, 1, 1, 310 1, 0, 0, 0, 0, 1, 1, 1, 311 0, 0, 0, 0, 0, 1, 1, 0, 312 0, 0, 0, 0, 0, 1, 0, 0, 313 0, 0, 0, 0, 0, 0, 0, 0, 314 2, 2, 2, 2, 0, 0, 0, 0, 315 2, 2, 2, 0, 0, 0, 0, 0, 316 2, 2, 0, 0, 0, 0, 0, 0, 317 2, 0, 0, 0, 0, 1, 1, 1, 318 0, 0, 0, 0, 0, 1, 1, 0, 319 0, 0, 0, 0, 0, 1, 0, 0, 320 0, 0, 0, 0, 0, 0, 0, 0, 321 0, 0, 0, 0, 0, 0, 0, 0, 322 2, 2, 2, 0, 0, 0, 0, 0, 323 2, 2, 0, 0, 0, 0, 0, 0, 324 2, 0, 0, 0, 0, 0, 0, 0, 325 0, 0, 0, 0, 0, 1, 1, 0, 326 0, 0, 0, 0, 0, 1, 0, 0, 327 0, 0, 0, 0, 0, 0, 0, 0, 328 0, 0, 0, 0, 0, 0, 0, 0, 329 0, 0, 0, 0, 0, 0, 0, 0, 330 2, 2, 0, 0, 0, 0, 0, 0, 331 2, 0, 0, 0, 0, 0, 0, 0, 332 0, 0, 0, 0, 0, 0, 0, 0, 333 0, 0, 0, 0, 0, 1, 0, 0, 334 0, 0, 0, 0, 0, 0, 0, 0, 335 0, 0, 0, 0, 0, 0, 0, 0, 336 0, 0, 0, 0, 0, 0, 0, 0, 337 0, 0, 0, 0, 0, 0, 0, 0, 338 2, 0, 0, 0, 0, 0, 0, 0, 339 0, 0, 0, 0, 0, 0, 0, 0, 340 0, 0, 0, 0, 0, 0, 0, 0, 341 3, 3, 3, 3, 3, 0, 0, 0, 342 3, 3, 3, 3, 0, 0, 0, 0, 343 3, 3, 3, 0, 0, 0, 0, 0, 344 3, 3, 0, 0, 0, 0, 0, 0, 345 3, 0, 0, 0, 0, 0, 0, 0, 346 0, 0, 0, 0, 0, 0, 0, 0, 347 0, 0, 0, 0, 0, 0, 0, 0, 348 0, 0, 0, 0, 0, 0, 0, 0, 349 3, 3, 3, 3, 0, 0, 0, 0, 350 3, 3, 3, 0, 0, 0, 0, 0, 351 3, 3, 0, 0, 0, 0, 0, 0, 352 3, 0, 0, 0, 0, 0, 0, 0, 353 0, 0, 0, 0, 0, 0, 0, 0, 354 0, 0, 0, 0, 0, 0, 0, 0, 355 0, 0, 0, 0, 0, 0, 0, 0, 356 0, 0, 0, 0, 0, 0, 0, 0, 357 3, 3, 3, 0, 0, 0, 0, 0, 358 3, 3, 0, 0, 0, 0, 0, 0, 359 3, 0, 0, 0, 0, 0, 0, 0, 360 0, 0, 0, 0, 0, 0, 0, 0, 361 0, 0, 0, 0, 0, 0, 0, 0, 362 0, 0, 0, 0, 0, 0, 0, 0, 363 0, 0, 0, 0, 0, 0, 0, 0, 364 0, 0, 0, 0, 0, 0, 0, 0, 365 3, 3, 0, 0, 0, 1, 1, 1, 366 3, 0, 0, 0, 0, 1, 1, 1, 367 0, 0, 0, 0, 0, 1, 1, 0, 368 0, 0, 0, 0, 0, 1, 0, 0, 369 0, 0, 0, 0, 0, 0, 0, 0, 370 2, 2, 2, 2, 0, 0, 0, 0, 371 2, 2, 2, 0, 0, 0, 0, 0, 372 2, 2, 0, 0, 0, 0, 0, 0, 373 2, 0, 0, 0, 0, 1, 1, 1, 374 0, 0, 0, 0, 0, 1, 1, 0, 375 0, 0, 0, 0, 0, 1, 0, 0, 376 0, 0, 0, 0, 0, 0, 0, 0, 377 0, 0, 0, 0, 0, 0, 0, 0, 378 2, 2, 2, 0, 0, 0, 0, 0, 379 2, 2, 0, 0, 0, 0, 0, 0, 380 2, 0, 0, 0, 0, 0, 0, 0, 381 0, 0, 0, 0, 0, 1, 1, 0, 382 0, 0, 0, 0, 0, 1, 0, 0, 383 0, 0, 0, 0, 0, 0, 0, 0, 384 0, 0, 0, 0, 0, 0, 0, 0, 385 0, 0, 0, 0, 0, 0, 0, 0, 386 2, 2, 0, 0, 0, 0, 0, 0, 387 2, 0, 0, 0, 0, 0, 0, 0, 388 0, 0, 0, 0, 0, 0, 0, 0, 389 0, 0, 0, 0, 0, 1, 0, 0, 390 0, 0, 0, 0, 0, 0, 0, 0, 391 0, 0, 0, 0, 0, 0, 0, 0, 392 0, 0, 0, 0, 0, 0, 0, 0, 393 0, 0, 0, 0, 0, 0, 0, 0, 394 2, 0, 0, 0, 0, 0, 0, 0, 395 0, 0, 0, 0, 0, 0, 0, 0, 396 0, 0, 0, 0, 0, 0, 0, 0, 397 0, 0, 0, 0, 0, 0, 0, 0, 398 0, 0, 0, 0, 0, 0, 0, 0, 399 0, 0, 0, 0, 0, 0, 0, 0, 400 0, 0, 0, 0, 0, 0, 0, 0, 401 0, 0, 0, 0, 0, 0, 0, 0, 402 0, 0, 0, 0, 0, 0, 0, 0, 403 0, 0, 0, 0, 0, 0, 0, 0, 404 0, 0, 0, 0, 0, 0, 0, 0, 405 3, 3, 3, 3, 0, 0, 0, 0, 406 3, 3, 3, 0, 0, 0, 0, 0, 407 3, 3, 0, 0, 0, 0, 0, 0, 408 3, 0, 0, 0, 0, 0, 0, 0, 409 0, 0, 0, 0, 0, 0, 0, 0, 410 0, 0, 0, 0, 0, 0, 0, 0, 411 0, 0, 0, 0, 0, 0, 0, 0, 412 0, 0, 0, 0, 0, 0, 0, 0, 413 3, 3, 3, 0, 0, 0, 0, 0, 414 3, 3, 0, 0, 0, 0, 0, 0, 415 3, 0, 0, 0, 0, 0, 0, 0, 416 0, 0, 0, 0, 0, 0, 0, 0, 417 0, 0, 0, 0, 0, 0, 0, 0, 418 0, 0, 0, 0, 0, 0, 0, 0, 419 0, 0, 0, 0, 0, 0, 0, 0, 420 0, 0, 0, 0, 0, 0, 0, 0, 421 3, 3, 0, 0, 0, 0, 0, 0, 422 3, 0, 0, 0, 0, 0, 0, 0, 423 0, 0, 0, 0, 0, 0, 0, 0, 424 0, 0, 0, 0, 0, 0, 0, 0, 425 0, 0, 0, 0, 0, 0, 0, 0, 426 0, 0, 0, 0, 0, 0, 0, 0, 427 0, 0, 0, 0, 0, 0, 0, 0, 428 0, 0, 0, 0, 0, 0, 0, 0, 429 3, 0, 0, 0, 0, 1, 1, 1, 430 0, 0, 0, 0, 0, 1, 1, 0, 431 0, 0, 0, 0, 0, 1, 0, 0, 432 0, 0, 0, 0, 0, 0, 0, 0, 433 0, 0, 0, 0, 0, 0, 0, 0, 434 2, 2, 2, 0, 0, 0, 0, 0, 435 2, 2, 0, 0, 0, 0, 0, 0, 436 2, 0, 0, 0, 0, 0, 0, 0, 437 0, 0, 0, 0, 0, 1, 1, 0, 438 0, 0, 0, 0, 0, 1, 0, 0, 439 0, 0, 0, 0, 0, 0, 0, 0, 440 0, 0, 0, 0, 0, 0, 0, 0, 441 0, 0, 0, 0, 0, 0, 0, 0, 442 2, 2, 0, 0, 0, 0, 0, 0, 443 2, 0, 0, 0, 0, 0, 0, 0, 444 0, 0, 0, 0, 0, 0, 0, 0, 445 0, 0, 0, 0, 0, 1, 0, 0, 446 0, 0, 0, 0, 0, 0, 0, 0, 447 0, 0, 0, 0, 0, 0, 0, 0, 448 0, 0, 0, 0, 0, 0, 0, 0, 449 0, 0, 0, 0, 0, 0, 0, 0, 450 2, 0, 0, 0, 0, 0, 0, 0, 451 0, 0, 0, 0, 0, 0, 0, 0, 452 0, 0, 0, 0, 0, 0, 0, 0, 453 0, 0, 0, 0, 0, 0, 0, 0, 454 0, 0, 0, 0, 0, 0, 0, 0, 455 0, 0, 0, 0, 0, 0, 0, 0, 456 0, 0, 0, 0, 0, 0, 0, 0, 457 0, 0, 0, 0, 0, 0, 0, 0, 458 0, 0, 0, 0, 0, 0, 0, 0, 459 0, 0, 0, 0, 0, 0, 0, 0, 460 0, 0, 0, 0, 0, 0, 0, 0, 461 0, 0, 0, 0, 0, 0, 0, 0, 462 0, 0, 0, 0, 0, 0, 0, 0, 463 0, 0, 0, 0, 0, 0, 0, 0, 464 0, 0, 0, 0, 0, 0, 0, 0, 465 0, 0, 0, 0, 0, 0, 0, 0, 466 0, 0, 0, 0, 0, 0, 0, 0, 467 0, 0, 0, 0, 0, 0, 0, 0, 468 0, 0, 0, 0, 0, 0, 0, 0, 469 3, 3, 3, 0, 0, 0, 0, 0, 470 3, 3, 0, 0, 0, 0, 0, 0, 471 3, 0, 0, 0, 0, 0, 0, 0, 472 0, 0, 0, 0, 0, 0, 0, 0, 473 0, 0, 0, 0, 0, 0, 0, 0, 474 0, 0, 0, 0, 0, 0, 0, 0, 475 0, 0, 0, 0, 0, 0, 0, 0, 476 0, 0, 0, 0, 0, 0, 0, 0, 477 3, 3, 0, 0, 0, 0, 0, 0, 478 3, 0, 0, 0, 0, 0, 0, 0, 479 0, 0, 0, 0, 0, 0, 0, 0, 480 0, 0, 0, 0, 0, 0, 0, 0, 481 0, 0, 0, 0, 0, 0, 0, 0, 482 0, 0, 0, 0, 0, 0, 0, 0, 483 0, 0, 0, 0, 0, 0, 0, 0, 484 0, 0, 0, 0, 0, 0, 0, 0, 485 3, 0, 0, 0, 0, 0, 0, 0, 486 0, 0, 0, 0, 0, 0, 0, 0, 487 0, 0, 0, 0, 0, 0, 0, 0, 488 0, 0, 0, 0, 0, 0, 0, 0, 489 0, 0, 0, 0, 0, 0, 0, 0, 490 0, 0, 0, 0, 0, 0, 0, 0, 491 0, 0, 0, 0, 0, 0, 0, 0, 492 0, 0, 0, 0, 0, 0, 0, 0, 493 0, 0, 0, 0, 0, 1, 1, 0, 494 0, 0, 0, 0, 0, 1, 0, 0, 495 0, 0, 0, 0, 0, 0, 0, 0, 496 0, 0, 0, 0, 0, 0, 0, 0, 497 0, 0, 0, 0, 0, 0, 0, 0, 498 2, 2, 0, 0, 0, 0, 0, 0, 499 2, 0, 0, 0, 0, 0, 0, 0, 500 0, 0, 0, 0, 0, 0, 0, 0, 501 0, 0, 0, 0, 0, 1, 0, 0, 502 0, 0, 0, 0, 0, 0, 0, 0, 503 0, 0, 0, 0, 0, 0, 0, 0, 504 0, 0, 0, 0, 0, 0, 0, 0, 505 0, 0, 0, 0, 0, 0, 0, 0, 506 2, 0, 0, 0, 0, 0, 0, 0, 507 0, 0, 0, 0, 0, 0, 0, 0, 508 0, 0, 0, 0, 0, 0, 0, 0, 509 0, 0, 0, 0, 0, 0, 0, 0, 510 0, 0, 0, 0, 0, 0, 0, 0, 511 0, 0, 0, 0, 0, 0, 0, 0, 512 0, 0, 0, 0, 0, 0, 0, 0, 513 0, 0, 0, 0, 0, 0, 0, 0, 514 0, 0, 0, 0, 0, 0, 0, 0, 515 0, 0, 0, 0, 0, 0, 0, 0, 516 0, 0, 0, 0, 0, 0, 0, 0, 517 0, 0, 0, 0, 0, 0, 0, 0, 518 0, 0, 0, 0, 0, 0, 0, 0, 519 0, 0, 0, 0, 0, 0, 0, 0, 520 0, 0, 0, 0, 0, 0, 0, 0, 521 0, 0, 0, 0, 0, 0, 0, 0, 522 0, 0, 0, 0, 0, 0, 0, 0, 523 0, 0, 0, 0, 0, 0, 0, 0, 524 0, 0, 0, 0, 0, 0, 0, 0, 525 0, 0, 0, 0, 0, 0, 0, 0, 526 0, 0, 0, 0, 0, 0, 0, 0, 527 0, 0, 0, 0, 0, 0, 0, 0, 528 0, 0, 0, 0, 0, 0, 0, 0, 529 0, 0, 0, 0, 0, 0, 0, 0, 530 0, 0, 0, 0, 0, 0, 0, 0, 531 0, 0, 0, 0, 0, 0, 0, 0, 532 0, 0, 0, 0, 0, 0, 0, 0, 533 3, 3, 0, 0, 0, 0, 0, 0, 534 3, 0, 0, 0, 0, 0, 0, 0, 535 0, 0, 0, 0, 0, 0, 0, 0, 536 0, 0, 0, 0, 0, 0, 0, 0, 537 0, 0, 0, 0, 0, 0, 0, 0, 538 0, 0, 0, 0, 0, 0, 0, 0, 539 0, 0, 0, 0, 0, 0, 0, 0, 540 0, 0, 0, 0, 0, 0, 0, 0, 541 3, 0, 0, 0, 0, 0, 0, 0, 542 0, 0, 0, 0, 0, 0, 0, 0, 543 0, 0, 0, 0, 0, 0, 0, 0, 544 0, 0, 0, 0, 0, 0, 0, 0, 545 0, 0, 0, 0, 0, 0, 0, 0, 546 0, 0, 0, 0, 0, 0, 0, 0, 547 0, 0, 0, 0, 0, 0, 0, 0, 548 0, 0, 0, 0, 0, 0, 0, 0, 549 0, 0, 0, 0, 0, 0, 0, 0, 550 0, 0, 0, 0, 0, 0, 0, 0, 551 0, 0, 0, 0, 0, 0, 0, 0, 552 0, 0, 0, 0, 0, 0, 0, 0, 553 0, 0, 0, 0, 0, 0, 0, 0, 554 0, 0, 0, 0, 0, 0, 0, 0, 555 0, 0, 0, 0, 0, 0, 0, 0, 556 0, 0, 0, 0, 0, 0, 0, 0, 557 0, 0, 0, 0, 0, 1, 0, 0, 558 0, 0, 0, 0, 0, 0, 0, 0, 559 0, 0, 0, 0, 0, 0, 0, 0, 560 0, 0, 0, 0, 0, 0, 0, 0, 561 0, 0, 0, 0, 0, 0, 0, 0, 562 2, 0, 0, 0, 0, 0, 0, 0, 563 0, 0, 0, 0, 0, 0, 0, 0, 564 0, 0, 0, 0, 0, 0, 0, 0, 565 0, 0, 0, 0, 0, 0, 0, 0, 566 0, 0, 0, 0, 0, 0, 0, 0, 567 0, 0, 0, 0, 0, 0, 0, 0, 568 0, 0, 0, 0, 0, 0, 0, 0, 569 0, 0, 0, 0, 0, 0, 0, 0, 570 0, 0, 0, 0, 0, 0, 0, 0, 571 0, 0, 0, 0, 0, 0, 0, 0, 572 0, 0, 0, 0, 0, 0, 0, 0, 573 0, 0, 0, 0, 0, 0, 0, 0, 574 0, 0, 0, 0, 0, 0, 0, 0, 575 0, 0, 0, 0, 0, 0, 0, 0, 576 0, 0, 0, 0, 0, 0, 0, 0, 577 0, 0, 0, 0, 0, 0, 0, 0, 578 0, 0, 0, 0, 0, 0, 0, 0, 579 0, 0, 0, 0, 0, 0, 0, 0, 580 0, 0, 0, 0, 0, 0, 0, 0, 581 0, 0, 0, 0, 0, 0, 0, 0, 582 0, 0, 0, 0, 0, 0, 0, 0, 583 0, 0, 0, 0, 0, 0, 0, 0, 584 0, 0, 0, 0, 0, 0, 0, 0, 585 0, 0, 0, 0, 0, 0, 0, 0, 586 0, 0, 0, 0, 0, 0, 0, 0, 587 0, 0, 0, 0, 0, 0, 0, 0, 588 0, 0, 0, 0, 0, 0, 0, 0, 589 0, 0, 0, 0, 0, 0, 0, 0, 590 0, 0, 0, 0, 0, 0, 0, 0, 591 0, 0, 0, 0, 0, 0, 0, 0, 592 0, 0, 0, 0, 0, 0, 0, 0, 593 0, 0, 0, 0, 0, 0, 0, 0, 594 0, 0, 0, 0, 0, 0, 0, 0, 595 0, 0, 0, 0, 0, 0, 0, 0, 596 0, 0, 0, 0, 0, 0, 0, 0, 597 3, 0, 0, 0, 0, 0, 0, 0, 598 0, 0, 0, 0, 0, 0, 0, 0, 599 0, 0, 0, 0, 0, 0, 0, 0, 600 0, 0, 0, 0, 0, 0, 0, 0, 601 0, 0, 0, 0, 0, 0, 0, 0, 602 0, 0, 0, 0, 0, 0, 0, 0, 603 0, 0, 0, 0, 0, 0, 0, 0, 604 0, 0, 0, 0, 0, 0, 0, 0, 605 0, 0, 0, 0, 0, 0, 0, 0, 606 0, 0, 0, 0, 0, 0, 0, 0, 607 0, 0, 0, 0, 0, 0, 0, 0, 608 0, 0, 0, 0, 0, 0, 0, 0, 609 0, 0, 0, 0, 0, 0, 0, 0, 610 0, 0, 0, 0, 0, 0, 0, 0, 611 0, 0, 0, 0, 0, 0, 0, 0, 612 0, 0, 0, 0, 0, 0, 0, 0, 613 0, 0, 0, 0, 0, 0, 0, 0, 614 0, 0, 0, 0, 0, 0, 0, 0, 615 0, 0, 0, 0, 0, 0, 0, 0, 616 0, 0, 0, 0, 0, 0, 0, 0, 617 0, 0, 0, 0, 0, 0, 0, 0, 618 0, 0, 0, 0, 0, 0, 0, 0, 619 0, 0, 0, 0, 0, 0, 0, 0, 620 0, 0, 0, 0, 0, 0, 0, 0, 621 4, 4, 4, 4, 4, 0, 0, 0, 622 4, 4, 4, 4, 0, 0, 0, 0, 623 4, 4, 4, 0, 0, 0, 0, 0, 624 4, 4, 0, 0, 0, 0, 0, 0, 625 4, 0, 0, 0, 0, 0, 0, 0, 626 0, 0, 0, 0, 0, 0, 0, 0, 627 0, 0, 0, 0, 0, 0, 0, 0, 628 0, 0, 0, 0, 0, 0, 0, 0, 629 4, 4, 4, 4, 0, 0, 0, 0, 630 4, 4, 4, 0, 0, 0, 0, 0, 631 4, 4, 0, 0, 0, 0, 0, 0, 632 4, 0, 0, 0, 0, 0, 0, 0, 633 0, 0, 0, 0, 0, 0, 0, 0, 634 0, 0, 0, 0, 0, 0, 0, 0, 635 0, 0, 0, 0, 0, 0, 0, 0, 636 0, 0, 0, 0, 0, 0, 0, 0, 637 4, 4, 4, 0, 0, 0, 0, 0, 638 4, 4, 0, 0, 0, 0, 0, 0, 639 4, 0, 0, 0, 0, 0, 0, 0, 640 0, 0, 0, 0, 0, 0, 0, 0, 641 0, 0, 0, 0, 0, 0, 0, 0, 642 0, 0, 0, 0, 0, 0, 0, 0, 643 0, 0, 0, 0, 0, 0, 0, 0, 644 0, 0, 0, 0, 0, 0, 0, 0, 645 4, 4, 0, 0, 0, 0, 0, 0, 646 4, 0, 0, 0, 0, 0, 0, 0, 647 0, 0, 0, 0, 0, 0, 0, 0, 648 0, 0, 0, 0, 0, 0, 0, 0, 649 0, 0, 0, 0, 0, 0, 0, 0, 650 0, 0, 0, 0, 0, 0, 0, 0, 651 0, 0, 0, 0, 0, 0, 0, 0, 652 0, 0, 0, 0, 0, 0, 0, 0, 653 4, 0, 0, 0, 0, 0, 0, 0, 654 0, 0, 0, 0, 0, 0, 0, 0, 655 0, 0, 0, 0, 0, 0, 0, 0, 656 0, 0, 0, 0, 0, 0, 0, 0, 657 0, 0, 0, 0, 0, 0, 0, 0, 658 0, 0, 0, 0, 0, 0, 0, 0, 659 0, 0, 0, 0, 0, 0, 0, 0, 660 0, 0, 0, 0, 0, 0, 0, 0, 661 0, 0, 0, 0, 0, 0, 0, 0, 662 0, 0, 0, 0, 0, 0, 0, 0, 663 0, 0, 0, 0, 0, 0, 0, 0, 664 0, 0, 0, 0, 0, 0, 0, 0, 665 0, 0, 0, 0, 0, 0, 0, 0, 666 0, 0, 0, 0, 0, 0, 0, 0, 667 0, 0, 0, 0, 0, 0, 0, 0, 668 0, 0, 0, 0, 0, 0, 0, 0, 669 0, 0, 0, 0, 0, 0, 0, 0, 670 0, 0, 0, 0, 0, 0, 0, 0, 671 0, 0, 0, 0, 0, 0, 0, 0, 672 0, 0, 0, 0, 0, 0, 0, 0, 673 0, 0, 0, 0, 0, 0, 0, 0, 674 0, 0, 0, 0, 0, 0, 0, 0, 675 0, 0, 0, 0, 0, 0, 0, 0, 676 0, 0, 0, 0, 0, 0, 0, 0, 677 0, 0, 0, 0, 0, 0, 0, 0, 678 0, 0, 0, 0, 0, 0, 0, 0, 679 0, 0, 0, 0, 0, 0, 0, 0, 680 0, 0, 0, 0, 0, 0, 0, 0, 681 0, 0, 0, 0, 0, 0, 0, 0, 682 0, 0, 0, 0, 0, 0, 0, 0, 683 0, 0, 0, 0, 0, 0, 0, 0, 684 0, 0, 0, 0, 0, 0, 0, 0, 685 4, 4, 4, 4, 0, 0, 0, 0, 686 4, 4, 4, 0, 0, 0, 0, 0, 687 4, 4, 0, 0, 0, 0, 0, 0, 688 4, 0, 0, 0, 0, 0, 0, 0, 689 0, 0, 0, 0, 0, 0, 0, 0, 690 0, 0, 0, 0, 0, 0, 0, 0, 691 0, 0, 0, 0, 0, 0, 0, 0, 692 0, 0, 0, 0, 0, 0, 0, 0, 693 4, 4, 4, 0, 0, 0, 0, 0, 694 4, 4, 0, 0, 0, 0, 0, 0, 695 4, 0, 0, 0, 0, 0, 0, 0, 696 0, 0, 0, 0, 0, 0, 0, 0, 697 0, 0, 0, 0, 0, 0, 0, 0, 698 0, 0, 0, 0, 0, 0, 0, 0, 699 0, 0, 0, 0, 0, 0, 0, 0, 700 0, 0, 0, 0, 0, 0, 0, 0, 701 4, 4, 0, 0, 0, 0, 0, 0, 702 4, 0, 0, 0, 0, 0, 0, 0, 703 0, 0, 0, 0, 0, 0, 0, 0, 704 0, 0, 0, 0, 0, 0, 0, 0, 705 0, 0, 0, 0, 0, 0, 0, 0, 706 0, 0, 0, 0, 0, 0, 0, 0, 707 0, 0, 0, 0, 0, 0, 0, 0, 708 0, 0, 0, 0, 0, 0, 0, 0, 709 4, 0, 0, 0, 0, 0, 0, 0, 710 0, 0, 0, 0, 0, 0, 0, 0, 711 0, 0, 0, 0, 0, 0, 0, 0, 712 0, 0, 0, 0, 0, 0, 0, 0, 713 0, 0, 0, 0, 0, 0, 0, 0, 714 0, 0, 0, 0, 0, 0, 0, 0, 715 0, 0, 0, 0, 0, 0, 0, 0, 716 0, 0, 0, 0, 0, 0, 0, 0, 717 0, 0, 0, 0, 0, 0, 0, 0, 718 0, 0, 0, 0, 0, 0, 0, 0, 719 0, 0, 0, 0, 0, 0, 0, 0, 720 0, 0, 0, 0, 0, 0, 0, 0, 721 0, 0, 0, 0, 0, 0, 0, 0, 722 0, 0, 0, 0, 0, 0, 0, 0, 723 0, 0, 0, 0, 0, 0, 0, 0, 724 0, 0, 0, 0, 0, 0, 0, 0, 725 0, 0, 0, 0, 0, 0, 0, 0, 726 0, 0, 0, 0, 0, 0, 0, 0, 727 0, 0, 0, 0, 0, 0, 0, 0, 728 0, 0, 0, 0, 0, 0, 0, 0, 729 0, 0, 0, 0, 0, 0, 0, 0, 730 0, 0, 0, 0, 0, 0, 0, 0, 731 0, 0, 0, 0, 0, 0, 0, 0, 732 0, 0, 0, 0, 0, 0, 0, 0, 733 0, 0, 0, 0, 0, 0, 0, 0, 734 0, 0, 0, 0, 0, 0, 0, 0, 735 0, 0, 0, 0, 0, 0, 0, 0, 736 0, 0, 0, 0, 0, 0, 0, 0, 737 0, 0, 0, 0, 0, 0, 0, 0, 738 0, 0, 0, 0, 0, 0, 0, 0, 739 0, 0, 0, 0, 0, 0, 0, 0, 740 0, 0, 0, 0, 0, 0, 0, 0, 741 0, 0, 0, 0, 0, 0, 0, 0, 742 0, 0, 0, 0, 0, 0, 0, 0, 743 0, 0, 0, 0, 0, 0, 0, 0, 744 0, 0, 0, 0, 0, 0, 0, 0, 745 0, 0, 0, 0, 0, 0, 0, 0, 746 0, 0, 0, 0, 0, 0, 0, 0, 747 0, 0, 0, 0, 0, 0, 0, 0, 748 0, 0, 0, 0, 0, 0, 0, 0, 749 4, 4, 4, 0, 0, 0, 0, 0, 750 4, 4, 0, 0, 0, 0, 0, 0, 751 4, 0, 0, 0, 0, 0, 0, 0, 752 0, 0, 0, 0, 0, 0, 0, 0, 753 0, 0, 0, 0, 0, 0, 0, 0, 754 0, 0, 0, 0, 0, 0, 0, 0, 755 0, 0, 0, 0, 0, 0, 0, 0, 756 0, 0, 0, 0, 0, 0, 0, 0, 757 4, 4, 0, 0, 0, 0, 0, 0, 758 4, 0, 0, 0, 0, 0, 0, 0, 759 0, 0, 0, 0, 0, 0, 0, 0, 760 0, 0, 0, 0, 0, 0, 0, 0, 761 0, 0, 0, 0, 0, 0, 0, 0, 762 0, 0, 0, 0, 0, 0, 0, 0, 763 0, 0, 0, 0, 0, 0, 0, 0, 764 0, 0, 0, 0, 0, 0, 0, 0, 765 4, 0, 0, 0, 0, 0, 0, 0, 766 0, 0, 0, 0, 0, 0, 0, 0, 767 0, 0, 0, 0, 0, 0, 0, 0, 768 0, 0, 0, 0, 0, 0, 0, 0, 769 0, 0, 0, 0, 0, 0, 0, 0, 770 0, 0, 0, 0, 0, 0, 0, 0, 771 0, 0, 0, 0, 0, 0, 0, 0, 772 0, 0, 0, 0, 0, 0, 0, 0, 773 0, 0, 0, 0, 0, 0, 0, 0, 774 0, 0, 0, 0, 0, 0, 0, 0, 775 0, 0, 0, 0, 0, 0, 0, 0, 776 0, 0, 0, 0, 0, 0, 0, 0, 777 0, 0, 0, 0, 0, 0, 0, 0, 778 0, 0, 0, 0, 0, 0, 0, 0, 779 0, 0, 0, 0, 0, 0, 0, 0, 780 0, 0, 0, 0, 0, 0, 0, 0, 781 0, 0, 0, 0, 0, 0, 0, 0, 782 0, 0, 0, 0, 0, 0, 0, 0, 783 0, 0, 0, 0, 0, 0, 0, 0, 784 0, 0, 0, 0, 0, 0, 0, 0, 785 0, 0, 0, 0, 0, 0, 0, 0, 786 0, 0, 0, 0, 0, 0, 0, 0, 787 0, 0, 0, 0, 0, 0, 0, 0, 788 0, 0, 0, 0, 0, 0, 0, 0, 789 0, 0, 0, 0, 0, 0, 0, 0, 790 0, 0, 0, 0, 0, 0, 0, 0, 791 0, 0, 0, 0, 0, 0, 0, 0, 792 0, 0, 0, 0, 0, 0, 0, 0, 793 0, 0, 0, 0, 0, 0, 0, 0, 794 0, 0, 0, 0, 0, 0, 0, 0, 795 0, 0, 0, 0, 0, 0, 0, 0, 796 0, 0, 0, 0, 0, 0, 0, 0, 797 0, 0, 0, 0, 0, 0, 0, 0, 798 0, 0, 0, 0, 0, 0, 0, 0, 799 0, 0, 0, 0, 0, 0, 0, 0, 800 0, 0, 0, 0, 0, 0, 0, 0, 801 0, 0, 0, 0, 0, 0, 0, 0, 802 0, 0, 0, 0, 0, 0, 0, 0, 803 0, 0, 0, 0, 0, 0, 0, 0, 804 0, 0, 0, 0, 0, 0, 0, 0, 805 0, 0, 0, 0, 0, 0, 0, 0, 806 0, 0, 0, 0, 0, 0, 0, 0, 807 0, 0, 0, 0, 0, 0, 0, 0, 808 0, 0, 0, 0, 0, 0, 0, 0, 809 0, 0, 0, 0, 0, 0, 0, 0, 810 0, 0, 0, 0, 0, 0, 0, 0, 811 0, 0, 0, 0, 0, 0, 0, 0, 812 0, 0, 0, 0, 0, 0, 0, 0, 813 4, 4, 0, 0, 0, 0, 0, 0, 814 4, 0, 0, 0, 0, 0, 0, 0, 815 0, 0, 0, 0, 0, 0, 0, 0, 816 0, 0, 0, 0, 0, 0, 0, 0, 817 0, 0, 0, 0, 0, 0, 0, 0, 818 0, 0, 0, 0, 0, 0, 0, 0, 819 0, 0, 0, 0, 0, 0, 0, 0, 820 0, 0, 0, 0, 0, 0, 0, 0, 821 4, 0, 0, 0, 0, 0, 0, 0, 822 0, 0, 0, 0, 0, 0, 0, 0, 823 0, 0, 0, 0, 0, 0, 0, 0, 824 0, 0, 0, 0, 0, 0, 0, 0, 825 0, 0, 0, 0, 0, 0, 0, 0, 826 0, 0, 0, 0, 0, 0, 0, 0, 827 0, 0, 0, 0, 0, 0, 0, 0, 828 0, 0, 0, 0, 0, 0, 0, 0, 829 0, 0, 0, 0, 0, 0, 0, 0, 830 0, 0, 0, 0, 0, 0, 0, 0, 831 0, 0, 0, 0, 0, 0, 0, 0, 832 0, 0, 0, 0, 0, 0, 0, 0, 833 0, 0, 0, 0, 0, 0, 0, 0, 834 0, 0, 0, 0, 0, 0, 0, 0, 835 0, 0, 0, 0, 0, 0, 0, 0, 836 0, 0, 0, 0, 0, 0, 0, 0, 837 0, 0, 0, 0, 0, 0, 0, 0, 838 0, 0, 0, 0, 0, 0, 0, 0, 839 0, 0, 0, 0, 0, 0, 0, 0, 840 0, 0, 0, 0, 0, 0, 0, 0, 841 0, 0, 0, 0, 0, 0, 0, 0, 842 0, 0, 0, 0, 0, 0, 0, 0, 843 0, 0, 0, 0, 0, 0, 0, 0, 844 0, 0, 0, 0, 0, 0, 0, 0, 845 0, 0, 0, 0, 0, 0, 0, 0, 846 0, 0, 0, 0, 0, 0, 0, 0, 847 0, 0, 0, 0, 0, 0, 0, 0, 848 0, 0, 0, 0, 0, 0, 0, 0, 849 0, 0, 0, 0, 0, 0, 0, 0, 850 0, 0, 0, 0, 0, 0, 0, 0, 851 0, 0, 0, 0, 0, 0, 0, 0, 852 0, 0, 0, 0, 0, 0, 0, 0, 853 0, 0, 0, 0, 0, 0, 0, 0, 854 0, 0, 0, 0, 0, 0, 0, 0, 855 0, 0, 0, 0, 0, 0, 0, 0, 856 0, 0, 0, 0, 0, 0, 0, 0, 857 0, 0, 0, 0, 0, 0, 0, 0, 858 0, 0, 0, 0, 0, 0, 0, 0, 859 0, 0, 0, 0, 0, 0, 0, 0, 860 0, 0, 0, 0, 0, 0, 0, 0, 861 0, 0, 0, 0, 0, 0, 0, 0, 862 0, 0, 0, 0, 0, 0, 0, 0, 863 0, 0, 0, 0, 0, 0, 0, 0, 864 0, 0, 0, 0, 0, 0, 0, 0, 865 0, 0, 0, 0, 0, 0, 0, 0, 866 0, 0, 0, 0, 0, 0, 0, 0, 867 0, 0, 0, 0, 0, 0, 0, 0, 868 0, 0, 0, 0, 0, 0, 0, 0, 869 0, 0, 0, 0, 0, 0, 0, 0, 870 0, 0, 0, 0, 0, 0, 0, 0, 871 0, 0, 0, 0, 0, 0, 0, 0, 872 0, 0, 0, 0, 0, 0, 0, 0, 873 0, 0, 0, 0, 0, 0, 0, 0, 874 0, 0, 0, 0, 0, 0, 0, 0, 875 0, 0, 0, 0, 0, 0, 0, 0, 876 0, 0, 0, 0, 0, 0, 0, 0, 877 4, 878 }