1
0
This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.
half-reif-benchmarks/data/mznc2020/code-generator/mips_gcc.cfgbuild.control_flow_insn_p.dzn

119 lines
340 KiB
MiniZinc

MAXF = 2147483646;
MAXO = 257;
MAXP = 1014;
MAXT = 494;
MAXI = 27;
MAXC = 91;
MAXR = 1410;
optimize_cycles = true;
bb_ops = [0..40, 41..71, 72..95, 96..114, 115..143, 144..162, 163..179, 180..197, 198..214, 215..235, 236..257];
bb_operands = [0..118, 119..221, 222..304, 305..380, 381..516, 517..594, 595..699, 700..775, 776..880, 881..938, 939..1014];
bb_temps = [0..57, 58..107, 108..148, 149..185, 186..249, 250..288, 289..340, 341..377, 378..429, 430..456, 457..494];
bb_subsumed = [2..2 union 5..5, 2..2 union 5..5, 2..2 union 5..5, 2..2 union 5..5, 5..5, 2..2 union 5..5, 5..5, 2..2 union 5..5, 5..5, 5..5, 2..2 union 5..5];
bb_frequency = [8388607, 8388599, 1398099, 1398099, 873812, 546132, 729087, 1398100, 873812, 8, 8388599];
bb_maxcycle = [91, 60, 43, 40, 55, 38, 31, 37, 31, 42, 55];
bb_optional_min = [0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0];
bb_order = [1, 2, 5, 3, 11, 10, 4, 6, 8, 7, 9];
op_operands = array1d(0..257, [0..21, {}, {}, 22..23, 24..25, 26..27, 28..29, 30..31, 32..33, 34..35, 36..37, 38..39, 40..41, 42..43, 44..45, 46..47, 48..49, 50..51, 52..53, 54..55, 56..57, 58..59, 60..61, 62..64, 65..66, 67..68, 69..70, 71..72, 73..74, 75..76, 77..78, 79..80, 81..82, 83..84, 85..86, 87..88, 89..90, 91..92, 93..94, 95..96, 97..118, 119..140, 141..142, 143..144, 145..146, 147..148, 149..150, 151..152, 153..154, 155..156, 157..158, 159..160, 161..162, 163..164, 165..166, 167..168, 169..171, 172..173, 174..175, 176..177, 178..179, 180..181, 182..183, 184..186, 187..188, 189..190, 191..192, 193..194, 195..196, 197..198, 199..199, 200..221, 222..241, 242..243, 244..245, 246..247, 248..249, 250..251, 252..253, 254..255, 256..257, 258..258, 259..260, 261..263, 264..265, 266..266, 267..268, 269..271, 272..273, 274..275, 276..278, 279..280, 281..282, 283..284, {}, 285..304, 305..325, 326..327, 328..329, 330..331, 332..333, 334..335, 336..337, 338..339, 340..341, 342..343, 344..345, 346..347, 348..349, 350..351, 352..353, 354..355, 356..357, 358..359, 360..380, 381..401, 402..403, 404..405, 406..407, 408..409, 410..411, 412..413, 414..415, 416..417, 418..419, 420..420, 421..422, 423..424, 425..426, 427..428, 429..429, 430..454, 455..473, 474..475, 476..477, 478..479, 480..481, 482..483, 484..485, 486..487, 488..489, 490..491, 492..493, 494..516, 517..539, 540..541, 542..543, 544..545, 546..547, 548..549, 550..551, 552..553, 554..555, 556..557, 558..559, 560..561, 562..563, 564..565, 566..567, 568..569, 570..571, 572..572, 573..594, 595..615, 616..617, 618..619, 620..621, 622..623, 624..625, 626..626, 627..628, 629..630, 631..631, 632..654, 655..673, 674..675, 676..677, 678..679, {}, 680..699, 700..721, 722..723, 724..725, 726..727, 728..729, 730..731, 732..733, 734..735, 736..737, 738..739, 740..741, 742..743, 744..745, 746..747, 748..749, 750..751, 752..753, 754..775, 776..796, 797..798, 799..800, 801..802, 803..804, 805..806, 807..807, 808..809, 810..811, 812..812, 813..835, 836..854, 855..856, 857..858, 859..860, {}, 861..880, 881..885, 886..887, 888..889, 890..891, 892..893, 894..895, 896..897, 898..899, 900..901, 902..903, 904..905, 906..907, 908..908, 909..910, 911..912, 913..914, 915..916, 917..917, 918..928, 929..934, 935..938, 939..958, 959..960, 961..962, 963..964, 965..966, 967..968, 969..970, 971..972, 973..974, 975..976, 977..978, 979..980, 981..982, 983..984, 985..986, 987..988, 989..990, 991..992, 993..994, {}, 995..995, 996..1014]);
op_instructions = array1d(0..257, [2..2, 3..3, 0..0 union 4..4, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 6..6, 0..0 union 6..6, 0..0 union 6..6, 0..0 union 6..6, 0..0 union 6..6, 0..0 union 6..6, 0..0 union 6..6, 0..0 union 6..6, 0..0 union 7..7, 0..0 union 7..7, 0..0 union 7..7, 0..0 union 7..7, 0..0 union 7..7, 0..0 union 7..7, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 9..9, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 10..10, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 11..11, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 12..12, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 13..13, 2..2, 2..2, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..6, 11..11, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 14..14, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 15..15, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 9..9, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 15..15, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 9..9, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 16..16, 2..2, 2..2, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 15..15, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 15..15, 0..0 union 5..6, 17..17, 0..0 union 5..5 union 8..8, 18..18, 0..0 union 5..6, 17..17, 0..0 union 5..5 union 8..8, 19..19, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 20..20, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 21..21, 2..2, 2..2, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 15..15, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 15..15, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 15..15, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 13..13, 2..2, 2..2, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 15..15, 11..11, 0..0 union 5..6, 11..11, 0..0 union 5..6, 22..22, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 23..23, 2..2, 1..1, 0..0 union 5..6, 11..11, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 13..13, 2..2, 2..2, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 15..15, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 15..15, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 24..24, 2..2, 2..2, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 15..15, 22..22, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 23..23, 2..2, 1..1, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 21..21, 2..2, 2..2, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 15..15, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 15..15, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 13..13, 2..2, 2..2, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 15..15, 22..22, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 23..23, 2..2, 1..1, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 21..21, 2..2, 2..2, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 15..15, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 15..15, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 15..15, 11..11, 0..0 union 5..6, 22..22, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 23..23, 2..2, 1..1, 2..2, 2..2, 0..0 union 5..6, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 0..0 union 8..8, 0..0 union 8..8, 0..0 union 8..8, 0..0 union 8..8, 0..0 union 8..8, 0..0 union 8..8, 0..0 union 8..8, 0..0 union 8..8, 0..0 union 25..25, 0..0 union 25..25, 0..0 union 25..25, 0..0 union 25..25, 0..0 union 25..25, 0..0 union 25..25, 0..0 union 5..5 union 8..8, 0..0 union 26..26, 27..27, 2..2]);
op_type = array1d(0..257, [4, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, 0, 14, 14, 0, 14, 14, 0, 14, 14, 14, 14, 14, 14, 1, 5, 4, 14, 14, 14, 14, 0, 14, 14, 0, 14, 14, 0, 14, 14, 14, 0, 14, 14, 0, 14, 14, 14, 0, 14, 14, 14, 14, 14, 14, 1, 5, 4, 14, 14, 14, 0, 14, 14, 0, 14, 0, 14, 0, 14, 0, 14, 0, 14, 14, 0, 14, 14, 14, 1, 5, 4, 14, 14, 14, 14, 0, 14, 14, 0, 14, 14, 0, 14, 14, 14, 14, 14, 1, 5, 4, 14, 14, 14, 14, 0, 0, 14, 0, 14, 0, 14, 14, 14, 14, 2, 13, 6, 14, 0, 14, 14, 14, 14, 14, 14, 14, 1, 5, 4, 14, 14, 14, 14, 14, 14, 0, 14, 14, 0, 14, 14, 14, 14, 14, 14, 1, 5, 4, 14, 14, 14, 14, 0, 0, 14, 14, 2, 13, 6, 14, 14, 14, 1, 5, 4, 14, 14, 14, 14, 14, 0, 14, 14, 0, 14, 14, 14, 14, 14, 14, 1, 5, 4, 14, 14, 14, 14, 0, 0, 14, 14, 2, 13, 6, 14, 14, 14, 1, 5, 4, 14, 14, 0, 14, 14, 0, 14, 14, 0, 0, 14, 0, 14, 14, 14, 14, 2, 13, 6, 5, 4, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 1, 5]);
op_mand = array1d(0..257, [true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, true, false, false, true, false, false, true, false, false, false, false, false, false, true, true, true, false, false, false, false, true, false, false, true, false, false, true, false, false, false, true, false, false, true, false, false, false, true, false, false, false, false, false, false, true, true, true, false, false, false, true, false, false, true, false, true, false, true, false, true, false, true, false, false, true, false, false, false, true, true, true, false, false, false, false, true, false, false, true, false, false, true, false, false, false, false, false, true, true, true, false, false, false, false, true, true, false, true, false, true, false, false, false, false, true, true, true, false, true, false, false, false, false, false, false, false, true, true, true, false, false, false, false, false, false, true, false, false, true, false, false, false, false, false, false, true, true, true, false, false, false, false, true, true, false, false, true, true, true, false, false, false, true, true, true, false, false, false, false, false, true, false, false, true, false, false, false, false, false, false, true, true, true, false, false, false, false, true, true, false, false, true, true, true, false, false, false, true, true, true, false, false, true, false, false, true, false, false, true, true, false, true, false, false, false, false, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true]);
atom_regs = array1d(-1..17, [{}, 0..1410, 0..31, 0..31, 1..1, 24..24, 30..30, 32..32, 33..64, 33..64, 33..33 union 35..35 union 37..37 union 39..39 union 41..41 union 43..43 union 45..45 union 47..47 union 49..49 union 51..51 union 53..53 union 55..55 union 57..57 union 59..59 union 61..61 union 63..63, 33..33 union 35..35 union 37..37 union 39..39 union 41..41 union 43..43 union 45..45 union 47..47 union 49..49 union 51..51 union 53..53 union 55..55 union 57..57 union 59..59 union 61..61 union 63..63, 33..33, 65..65, 66..66, 67..738, 67..67 union 69..69 union 71..71 union 73..73 union 75..75 union 77..77 union 79..79 union 81..81 union 83..83 union 85..85 union 87..87 union 89..89 union 91..91 union 93..93 union 95..95 union 97..97 union 99..99 union 101..101 union 103..103 union 105..105 union 107..107 union 109..109 union 111..111 union 113..113 union 115..115 union 117..117 union 119..119 union 121..121 union 123..123 union 125..125 union 127..127 union 129..129 union 131..131 union 133..133 union 135..135 union 137..137 union 139..139 union 141..141 union 143..143 union 145..145 union 147..147 union 149..149 union 151..151 union 153..153 union 155..155 union 157..157 union 159..159 union 161..161 union 163..163 union 165..165 union 167..167 union 169..169 union 171..171 union 173..173 union 175..175 union 177..177 union 179..179 union 181..181 union 183..183 union 185..185 union 187..187 union 189..189 union 191..191 union 193..193 union 195..195 union 197..197 union 199..199 union 201..201 union 203..203 union 205..205 union 207..207 union 209..209 union 211..211 union 213..213 union 215..215 union 217..217 union 219..219 union 221..221 union 223..223 union 225..225 union 227..227 union 229..229 union 231..231 union 233..233 union 235..235 union 237..237 union 239..239 union 241..241 union 243..243 union 245..245 union 247..247 union 249..249 union 251..251 union 253..253 union 255..255 union 257..257 union 259..259 union 261..261 union 263..263 union 265..265 union 267..267 union 269..269 union 271..271 union 273..273 union 275..275 union 277..277 union 279..279 union 281..281 union 283..283 union 285..285 union 287..287 union 289..289 union 291..291 union 293..293 union 295..295 union 297..297 union 299..299 union 301..301 union 303..303 union 305..305 union 307..307 union 309..309 union 311..311 union 313..313 union 315..315 union 317..317 union 319..319 union 321..321 union 323..323 union 325..325 union 327..327 union 329..329 union 331..331 union 333..333 union 335..335 union 337..337 union 339..339 union 341..341 union 343..343 union 345..345 union 347..347 union 349..349 union 351..351 union 353..353 union 355..355 union 357..357 union 359..359 union 361..361 union 363..363 union 365..365 union 367..367 union 369..369 union 371..371 union 373..373 union 375..375 union 377..377 union 379..379 union 381..381 union 383..383 union 385..385 union 387..387 union 389..389 union 391..391 union 393..393 union 395..395 union 397..397 union 399..399 union 401..401 union 403..403 union 405..405 union 407..407 union 409..409 union 411..411 union 413..413 union 415..415 union 417..417 union 419..419 union 421..421 union 423..423 union 425..425 union 427..427 union 429..429 union 431..431 union 433..433 union 435..435 union 437..437 union 439..439 union 441..441 union 443..443 union 445..445 union 447..447 union 449..449 union 451..451 union 453..453 union 455..455 union 457..457 union 459..459 union 461..461 union 463..463 union 465..465 union 467..467 union 469..469 union 471..471 union 473..473 union 475..475 union 477..477 union 479..479 union 481..481 union 483..483 union 485..485 union 487..487 union 489..489 union 491..491 union 493..493 union 495..495 union 497..497 union 499..499 union 501..501 union 503..503 union 505..505 union 507..507 union 509..509 union 511..511 union 513..513 union 515..515 union 517..517 union 519..519 union 521..521 union 523..523 union 525..525 union 527..527 union 529..529 union 531..531 union 533..533 union 535..535 union 537..537 union 539..539 union 541..541 union 543..543 union 545..545 union 547..547 union 549..549 union 551..551 union 553..553 union 555..555 union 557..557 union 559..559 union 561..561 union 563..563 union 565..565 union 567..567 union 569..569 union 571..571 union 573..573 union 575..575 union 577..577 union 579..579 union 581..581 union 583..583 union 585..585 union 587..587 union 589..589 union 591..591 union 593..593 union 595..595 union 597..597 union 599..599 union 601..601 union 603..603 union 605..605 union 607..607 union 609..609 union 611..611 union 613..613 union 615..615 union 617..617 union 619..619 union 621..621 union 623..623 union 625..625 union 627..627 union 629..629 union 631..631 union 633..633 union 635..635 union 637..637 union 639..639 union 641..641 union 643..643 union 645..645 union 647..647 union 649..649 union 651..651 union 653..653 union 655..655 union 657..657 union 659..659 union 661..661 union 663..663 union 665..665 union 667..667 union 669..669 union 671..671 union 673..673 union 675..675 union 677..677 union 679..679 union 681..681 union 683..683 union 685..685 union 687..687 union 689..689 union 691..691 union 693..693 union 695..695 union 697..697 union 699..699 union 701..701 union 703..703 union 705..705 union 707..707 union 709..709 union 711..711 union 713..713 union 715..715 union 717..717 union 719..719 union 721..721 union 723..723 union 725..725 union 727..727 union 729..729 union 731..731 union 733..733 union 735..735 union 737..737, 739..1410, 739..739 union 741..741 union 743..743 union 745..745 union 747..747 union 749..749 union 751..751 union 753..753 union 755..755 union 757..757 union 759..759 union 761..761 union 763..763 union 765..765 union 767..767 union 769..769 union 771..771 union 773..773 union 775..775 union 777..777 union 779..779 union 781..781 union 783..783 union 785..785 union 787..787 union 789..789 union 791..791 union 793..793 union 795..795 union 797..797 union 799..799 union 801..801 union 803..803 union 805..805 union 807..807 union 809..809 union 811..811 union 813..813 union 815..815 union 817..817 union 819..819 union 821..821 union 823..823 union 825..825 union 827..827 union 829..829 union 831..831 union 833..833 union 835..835 union 837..837 union 839..839 union 841..841 union 843..843 union 845..845 union 847..847 union 849..849 union 851..851 union 853..853 union 855..855 union 857..857 union 859..859 union 861..861 union 863..863 union 865..865 union 867..867 union 869..869 union 871..871 union 873..873 union 875..875 union 877..877 union 879..879 union 881..881 union 883..883 union 885..885 union 887..887 union 889..889 union 891..891 union 893..893 union 895..895 union 897..897 union 899..899 union 901..901 union 903..903 union 905..905 union 907..907 union 909..909 union 911..911 union 913..913 union 915..915 union 917..917 union 919..919 union 921..921 union 923..923 union 925..925 union 927..927 union 929..929 union 931..931 union 933..933 union 935..935 union 937..937 union 939..939 union 941..941 union 943..943 union 945..945 union 947..947 union 949..949 union 951..951 union 953..953 union 955..955 union 957..957 union 959..959 union 961..961 union 963..963 union 965..965 union 967..967 union 969..969 union 971..971 union 973..973 union 975..975 union 977..977 union 979..979 union 981..981 union 983..983 union 985..985 union 987..987 union 989..989 union 991..991 union 993..993 union 995..995 union 997..997 union 999..999 union 1001..1001 union 1003..1003 union 1005..1005 union 1007..1007 union 1009..1009 union 1011..1011 union 1013..1013 union 1015..1015 union 1017..1017 union 1019..1019 union 1021..1021 union 1023..1023 union 1025..1025 union 1027..1027 union 1029..1029 union 1031..1031 union 1033..1033 union 1035..1035 union 1037..1037 union 1039..1039 union 1041..1041 union 1043..1043 union 1045..1045 union 1047..1047 union 1049..1049 union 1051..1051 union 1053..1053 union 1055..1055 union 1057..1057 union 1059..1059 union 1061..1061 union 1063..1063 union 1065..1065 union 1067..1067 union 1069..1069 union 1071..1071 union 1073..1073 union 1075..1075 union 1077..1077 union 1079..1079 union 1081..1081 union 1083..1083 union 1085..1085 union 1087..1087 union 1089..1089 union 1091..1091 union 1093..1093 union 1095..1095 union 1097..1097 union 1099..1099 union 1101..1101 union 1103..1103 union 1105..1105 union 1107..1107 union 1109..1109 union 1111..1111 union 1113..1113 union 1115..1115 union 1117..1117 union 1119..1119 union 1121..1121 union 1123..1123 union 1125..1125 union 1127..1127 union 1129..1129 union 1131..1131 union 1133..1133 union 1135..1135 union 1137..1137 union 1139..1139 union 1141..1141 union 1143..1143 union 1145..1145 union 1147..1147 union 1149..1149 union 1151..1151 union 1153..1153 union 1155..1155 union 1157..1157 union 1159..1159 union 1161..1161 union 1163..1163 union 1165..1165 union 1167..1167 union 1169..1169 union 1171..1171 union 1173..1173 union 1175..1175 union 1177..1177 union 1179..1179 union 1181..1181 union 1183..1183 union 1185..1185 union 1187..1187 union 1189..1189 union 1191..1191 union 1193..1193 union 1195..1195 union 1197..1197 union 1199..1199 union 1201..1201 union 1203..1203 union 1205..1205 union 1207..1207 union 1209..1209 union 1211..1211 union 1213..1213 union 1215..1215 union 1217..1217 union 1219..1219 union 1221..1221 union 1223..1223 union 1225..1225 union 1227..1227 union 1229..1229 union 1231..1231 union 1233..1233 union 1235..1235 union 1237..1237 union 1239..1239 union 1241..1241 union 1243..1243 union 1245..1245 union 1247..1247 union 1249..1249 union 1251..1251 union 1253..1253 union 1255..1255 union 1257..1257 union 1259..1259 union 1261..1261 union 1263..1263 union 1265..1265 union 1267..1267 union 1269..1269 union 1271..1271 union 1273..1273 union 1275..1275 union 1277..1277 union 1279..1279 union 1281..1281 union 1283..1283 union 1285..1285 union 1287..1287 union 1289..1289 union 1291..1291 union 1293..1293 union 1295..1295 union 1297..1297 union 1299..1299 union 1301..1301 union 1303..1303 union 1305..1305 union 1307..1307 union 1309..1309 union 1311..1311 union 1313..1313 union 1315..1315 union 1317..1317 union 1319..1319 union 1321..1321 union 1323..1323 union 1325..1325 union 1327..1327 union 1329..1329 union 1331..1331 union 1333..1333 union 1335..1335 union 1337..1337 union 1339..1339 union 1341..1341 union 1343..1343 union 1345..1345 union 1347..1347 union 1349..1349 union 1351..1351 union 1353..1353 union 1355..1355 union 1357..1357 union 1359..1359 union 1361..1361 union 1363..1363 union 1365..1365 union 1367..1367 union 1369..1369 union 1371..1371 union 1373..1373 union 1375..1375 union 1377..1377 union 1379..1379 union 1381..1381 union 1383..1383 union 1385..1385 union 1387..1387 union 1389..1389 union 1391..1391 union 1393..1393 union 1395..1395 union 1397..1397 union 1399..1399 union 1401..1401 union 1403..1403 union 1405..1405 union 1407..1407 union 1409..1409]);
calleesaved = 16..23 union 53..64;
callersaved = 1..15 union 24..25 union 28..28 union 30..52;
infinite = 67..1410;
range = [0..1410, 0..31, 1..15, 24..25, 30..31, 32..32, 33..64, 33..52, 65..65, 66..66, 67..738, 739..1410];
bounded = [false, false, false, false, false, false, false, false, false, false, false, false];
res_cap = [2, 1, 1, 1, 1];
res_con = array2d(1..5, 0..27, [0, 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
res_dur = array2d(1..5, 0..27, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]);
res_off = array2d(1..5, 0..27, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
congr = [17..17 union 96..96 union 112..112 union 134..134 union 149..149 union 215..215 union 237..237 union 276..276 union 299..299 union 320..320 union 359..359 union 375..375 union 396..396 union 412..412 union 416..416 union 476..476 union 493..493 union 509..509 union 532..532 union 588..588 union 610..610 union 694..694 union 715..715 union 753..753 union 769..769 union 791..791 union 875..875 union 881..881 union 904..904 union 935..935 union 954..954 union 1011..1011, 18..18 union 113..113 union 135..135 union 216..216 union 238..238 union 300..300 union 321..321 union 376..376 union 397..397 union 510..510 union 533..533 union 589..589 union 611..611 union 695..695 union 716..716 union 770..770 union 792..792 union 876..876 union 882..882 union 936..936 union 955..955 union 1012..1012, 19..19 union 114..114 union 136..136 union 217..217 union 239..239 union 301..301 union 322..322 union 377..377 union 398..398 union 511..511 union 534..534 union 590..590 union 612..612 union 696..696 union 717..717 union 771..771 union 793..793 union 877..877 union 883..883 union 937..937 union 956..956 union 1013..1013, 20..20 union 115..115 union 137..137 union 218..218 union 240..240 union 302..302 union 323..323 union 378..378 union 399..399 union 512..512 union 535..535 union 591..591 union 613..613 union 697..697 union 718..718 union 772..772 union 794..794 union 878..878 union 884..884 union 938..938 union 957..957 union 1014..1014, 97..97 union 119..119, 98..98 union 120..120 union 201..201 union 223..223 union 285..285 union 306..306 union 361..361 union 382..382 union 495..495 union 518..518 union 574..574 union 596..596 union 680..680 union 701..701 union 755..755 union 777..777 union 861..861 union 940..940, 99..99 union 121..121 union 202..202 union 224..224 union 286..286 union 307..307 union 362..362 union 383..383 union 496..496 union 519..519 union 575..575 union 597..597 union 681..681 union 702..702 union 756..756 union 778..778 union 862..862 union 941..941, 100..100 union 122..122 union 203..203 union 225..225 union 287..287 union 308..308 union 363..363 union 384..384 union 497..497 union 520..520 union 576..576 union 598..598 union 682..682 union 703..703 union 757..757 union 779..779 union 863..863 union 942..942, 101..101 union 123..123 union 204..204 union 226..226 union 288..288 union 309..309 union 364..364 union 385..385 union 498..498 union 521..521 union 577..577 union 599..599 union 683..683 union 704..704 union 758..758 union 780..780 union 864..864 union 943..943, 102..102 union 124..124 union 205..205 union 227..227 union 289..289 union 310..310 union 365..365 union 386..386 union 499..499 union 522..522 union 578..578 union 600..600 union 684..684 union 705..705 union 759..759 union 781..781 union 865..865 union 944..944, 103..103 union 125..125 union 206..206 union 228..228 union 290..290 union 311..311 union 366..366 union 387..387 union 500..500 union 523..523 union 579..579 union 601..601 union 685..685 union 706..706 union 760..760 union 782..782 union 866..866 union 945..945, 104..104 union 126..126 union 207..207 union 229..229 union 291..291 union 312..312 union 367..367 union 388..388 union 501..501 union 524..524 union 580..580 union 602..602 union 686..686 union 707..707 union 761..761 union 783..783 union 867..867 union 946..946, 105..105 union 127..127 union 208..208 union 230..230 union 292..292 union 313..313 union 368..368 union 389..389 union 502..502 union 525..525 union 581..581 union 603..603 union 687..687 union 708..708 union 762..762 union 784..784 union 868..868 union 947..947, 106..106 union 128..128 union 209..209 union 231..231 union 293..293 union 314..314 union 369..369 union 390..390 union 503..503 union 526..526 union 582..582 union 604..604 union 688..688 union 709..709 union 763..763 union 785..785 union 869..869 union 948..948, 107..107 union 129..129 union 210..210 union 232..232 union 294..294 union 315..315 union 370..370 union 391..391 union 504..504 union 527..527 union 583..583 union 605..605 union 689..689 union 710..710 union 764..764 union 786..786 union 870..870 union 949..949, 108..108 union 130..130 union 211..211 union 233..233 union 295..295 union 316..316 union 371..371 union 392..392 union 505..505 union 528..528 union 584..584 union 606..606 union 690..690 union 711..711 union 765..765 union 787..787 union 871..871 union 950..950, 109..109 union 131..131 union 212..212 union 234..234 union 296..296 union 317..317 union 372..372 union 393..393 union 506..506 union 529..529 union 585..585 union 607..607 union 691..691 union 712..712 union 766..766 union 788..788 union 872..872 union 951..951, 110..110 union 132..132 union 213..213 union 235..235 union 297..297 union 318..318 union 373..373 union 394..394 union 507..507 union 530..530 union 586..586 union 608..608 union 692..692 union 713..713 union 767..767 union 789..789 union 873..873 union 952..952, 111..111 union 133..133 union 214..214 union 236..236 union 298..298 union 319..319 union 374..374 union 395..395 union 508..508 union 531..531 union 587..587 union 609..609 union 693..693 union 714..714 union 768..768 union 790..790 union 874..874 union 953..953, 116..116 union 138..138, 117..117 union 139..139 union 885..885, 118..118 union 140..140, 200..200 union 222..222 union 305..305 union 700..700, 219..219 union 241..241 union 303..303 union 324..324 union 379..379 union 400..400 union 513..513 union 536..536 union 592..592 union 614..614 union 698..698 union 719..719 union 773..773 union 795..795 union 879..879 union 958..958, 220..220 union 325..325 union 720..720, 221..221 union 304..304 union 516..516 union 539..539 union 594..594 union 699..699 union 721..721 union 775..775 union 880..880 union 939..939, 258..258 union 262..262, 266..266 union 270..270, 360..360 union 381..381 union 573..573 union 595..595, 380..380 union 401..401 union 593..593 union 615..615, 411..411 union 429..429, 420..420 union 434..434, 436..436 union 455..455, 437..437 union 456..456, 438..438 union 457..457, 439..439 union 458..458, 440..440 union 459..459, 441..441 union 460..460, 442..442 union 461..461, 443..443 union 462..462, 444..444 union 463..463, 445..445 union 464..464, 446..446 union 465..465, 447..447 union 466..466, 448..448 union 467..467, 449..449 union 468..468, 450..450 union 469..469, 451..451 union 470..470, 452..452 union 471..471, 453..453 union 472..472, 454..454 union 473..473, 494..494 union 517..517, 514..514 union 537..537, 515..515 union 538..538, 625..625 union 631..631, 626..626 union 634..634, 636..636 union 655..655, 637..637 union 656..656, 638..638 union 657..657, 639..639 union 658..658, 640..640 union 659..659, 641..641 union 660..660, 642..642 union 661..661, 643..643 union 662..662, 644..644 union 663..663, 645..645 union 664..664, 646..646 union 665..665, 647..647 union 666..666, 648..648 union 667..667, 649..649 union 668..668, 650..650 union 669..669, 651..651 union 670..670, 652..652 union 671..671, 653..653 union 672..672, 654..654 union 673..673, 754..754 union 776..776, 774..774 union 796..796, 806..806 union 812..812, 807..807 union 815..815, 817..817 union 836..836, 818..818 union 837..837, 819..819 union 838..838, 820..820 union 839..839, 821..821 union 840..840, 822..822 union 841..841, 823..823 union 842..842, 824..824 union 843..843, 825..825 union 844..844, 826..826 union 845..845, 827..827 union 846..846, 828..828 union 847..847, 829..829 union 848..848, 830..830 union 849..849, 831..831 union 850..850, 832..832 union 851..851, 833..833 union 852..852, 834..834 union 853..853, 835..835 union 854..854, 903..903 union 917..917, 908..908 union 922..922, 923..923 union 929..929, 924..924 union 930..930, 925..925 union 931..931, 926..926 union 932..932, 927..927 union 933..933, 928..928 union 934..934];
strictly_congr = [0..0 union 430..430 union 438..438 union 457..457 union 632..632 union 638..638 union 657..657 union 813..813 union 819..819 union 838..838 union 918..918, 1..1 union 411..411 union 429..429 union 625..625 union 631..631 union 806..806 union 812..812 union 903..903 union 917..917, 2..2 union 435..435 union 635..635 union 816..816 union 996..996, 3..3 union 997..997, 4..4 union 998..998, 5..5 union 999..999, 6..6 union 1000..1000, 7..7 union 1001..1001, 8..8 union 1002..1002, 9..9 union 1003..1003, 10..10 union 1004..1004, 11..11 union 1005..1005, 12..12 union 1006..1006, 13..13 union 1007..1007, 14..14 union 1008..1008, 15..15 union 1009..1009, 16..16 union 1010..1010, 17..17 union 96..96 union 112..112 union 134..134 union 149..149 union 215..215 union 237..237 union 276..276 union 299..299 union 320..320 union 359..359 union 375..375 union 396..396 union 412..412 union 416..416 union 476..476 union 493..493 union 509..509 union 532..532 union 588..588 union 610..610 union 694..694 union 715..715 union 753..753 union 769..769 union 791..791 union 875..875 union 881..881 union 904..904 union 935..935 union 954..954 union 1011..1011, 18..18 union 113..113 union 135..135 union 216..216 union 238..238 union 300..300 union 321..321 union 376..376 union 397..397 union 510..510 union 533..533 union 589..589 union 611..611 union 695..695 union 716..716 union 770..770 union 792..792 union 876..876 union 882..882 union 936..936 union 955..955 union 1012..1012, 19..19 union 114..114 union 136..136 union 217..217 union 239..239 union 301..301 union 322..322 union 377..377 union 398..398 union 511..511 union 534..534 union 590..590 union 612..612 union 696..696 union 717..717 union 771..771 union 793..793 union 877..877 union 883..883 union 937..937 union 956..956 union 1013..1013, 20..20 union 115..115 union 137..137 union 218..218 union 240..240 union 302..302 union 323..323 union 378..378 union 399..399 union 512..512 union 535..535 union 591..591 union 613..613 union 697..697 union 718..718 union 772..772 union 794..794 union 878..878 union 884..884 union 938..938 union 957..957 union 1014..1014, 21..21 union 420..420 union 434..434 union 626..626 union 634..634 union 807..807 union 815..815 union 908..908 union 922..922, 97..97 union 119..119, 98..98 union 120..120 union 201..201 union 223..223 union 285..285 union 306..306 union 361..361 union 382..382 union 495..495 union 518..518 union 574..574 union 596..596 union 680..680 union 701..701 union 755..755 union 777..777 union 861..861 union 940..940, 99..99 union 121..121 union 202..202 union 224..224 union 286..286 union 307..307 union 362..362 union 383..383 union 496..496 union 519..519 union 575..575 union 597..597 union 681..681 union 702..702 union 756..756 union 778..778 union 862..862 union 941..941, 100..100 union 122..122 union 203..203 union 225..225 union 287..287 union 308..308 union 363..363 union 384..384 union 497..497 union 520..520 union 576..576 union 598..598 union 682..682 union 703..703 union 757..757 union 779..779 union 863..863 union 942..942, 101..101 union 123..123 union 204..204 union 226..226 union 288..288 union 309..309 union 364..364 union 385..385 union 498..498 union 521..521 union 577..577 union 599..599 union 683..683 union 704..704 union 758..758 union 780..780 union 864..864 union 943..943, 102..102 union 124..124 union 205..205 union 227..227 union 289..289 union 310..310 union 365..365 union 386..386 union 499..499 union 522..522 union 578..578 union 600..600 union 684..684 union 705..705 union 759..759 union 781..781 union 865..865 union 944..944, 103..103 union 125..125 union 206..206 union 228..228 union 290..290 union 311..311 union 366..366 union 387..387 union 500..500 union 523..523 union 579..579 union 601..601 union 685..685 union 706..706 union 760..760 union 782..782 union 866..866 union 945..945, 104..104 union 126..126 union 207..207 union 229..229 union 291..291 union 312..312 union 367..367 union 388..388 union 501..501 union 524..524 union 580..580 union 602..602 union 686..686 union 707..707 union 761..761 union 783..783 union 867..867 union 946..946, 105..105 union 127..127 union 208..208 union 230..230 union 292..292 union 313..313 union 368..368 union 389..389 union 502..502 union 525..525 union 581..581 union 603..603 union 687..687 union 708..708 union 762..762 union 784..784 union 868..868 union 947..947, 106..106 union 128..128 union 209..209 union 231..231 union 293..293 union 314..314 union 369..369 union 390..390 union 503..503 union 526..526 union 582..582 union 604..604 union 688..688 union 709..709 union 763..763 union 785..785 union 869..869 union 948..948, 107..107 union 129..129 union 210..210 union 232..232 union 294..294 union 315..315 union 370..370 union 391..391 union 504..504 union 527..527 union 583..583 union 605..605 union 689..689 union 710..710 union 764..764 union 786..786 union 870..870 union 949..949, 108..108 union 130..130 union 211..211 union 233..233 union 295..295 union 316..316 union 371..371 union 392..392 union 505..505 union 528..528 union 584..584 union 606..606 union 690..690 union 711..711 union 765..765 union 787..787 union 871..871 union 950..950, 109..109 union 131..131 union 212..212 union 234..234 union 296..296 union 317..317 union 372..372 union 393..393 union 506..506 union 529..529 union 585..585 union 607..607 union 691..691 union 712..712 union 766..766 union 788..788 union 872..872 union 951..951, 110..110 union 132..132 union 213..213 union 235..235 union 297..297 union 318..318 union 373..373 union 394..394 union 507..507 union 530..530 union 586..586 union 608..608 union 692..692 union 713..713 union 767..767 union 789..789 union 873..873 union 952..952, 111..111 union 133..133 union 214..214 union 236..236 union 298..298 union 319..319 union 374..374 union 395..395 union 508..508 union 531..531 union 587..587 union 609..609 union 693..693 union 714..714 union 768..768 union 790..790 union 874..874 union 953..953, 116..116 union 138..138, 117..117 union 139..139 union 885..885, 118..118 union 140..140, 200..200 union 222..222 union 305..305 union 700..700, 219..219 union 241..241 union 303..303 union 324..324 union 379..379 union 400..400 union 513..513 union 536..536 union 592..592 union 614..614 union 698..698 union 719..719 union 773..773 union 795..795 union 879..879 union 958..958, 220..220 union 325..325 union 720..720, 221..221 union 304..304 union 516..516 union 539..539 union 594..594 union 699..699 union 721..721 union 775..775 union 880..880 union 939..939, 258..258 union 262..262, 266..266 union 270..270, 360..360 union 381..381 union 573..573 union 595..595, 380..380 union 401..401 union 593..593 union 615..615, 431..431 union 439..439 union 458..458 union 639..639 union 658..658 union 820..820 union 839..839 union 919..919, 432..432 union 440..440 union 459..459 union 640..640 union 659..659 union 821..821 union 840..840 union 920..920, 433..433 union 451..451 union 470..470 union 633..633 union 651..651 union 670..670 union 814..814 union 832..832 union 851..851 union 921..921 union 925..925 union 931..931, 436..436 union 455..455 union 636..636 union 655..655 union 817..817 union 836..836 union 923..923 union 929..929, 437..437 union 456..456 union 637..637 union 656..656 union 818..818 union 837..837, 441..441 union 460..460 union 641..641 union 660..660 union 822..822 union 841..841, 442..442 union 461..461 union 642..642 union 661..661 union 823..823 union 842..842, 443..443 union 462..462 union 643..643 union 662..662 union 824..824 union 843..843, 444..444 union 463..463 union 644..644 union 663..663 union 825..825 union 844..844, 445..445 union 464..464 union 645..645 union 664..664 union 826..826 union 845..845, 446..446 union 465..465 union 646..646 union 665..665 union 827..827 union 846..846, 447..447 union 466..466 union 647..647 union 666..666 union 828..828 union 847..847, 448..448 union 467..467 union 648..648 union 667..667 union 829..829 union 848..848, 449..449 union 468..468 union 649..649 union 668..668 union 830..830 union 849..849, 450..450 union 469..469 union 650..650 union 669..669 union 831..831 union 850..850 union 924..924 union 930..930, 452..452 union 471..471 union 652..652 union 671..671 union 833..833 union 852..852 union 926..926 union 932..932, 453..453 union 472..472 union 653..653 union 672..672 union 834..834 union 853..853 union 927..927 union 933..933, 454..454 union 473..473 union 654..654 union 673..673 union 835..835 union 854..854 union 928..928 union 934..934, 494..494 union 517..517, 514..514 union 537..537, 515..515 union 538..538, 754..754 union 776..776, 774..774 union 796..796];
preassign_operand = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 420, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 626, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 807, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 908, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 935, 936, 937, 938, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014];
preassign_reg = [4, 25, 2, 16, 17, 18, 19, 20, 21, 22, 23, 53, 55, 57, 59, 61, 63, 0, 26, 27, 29, 31, 31, 25, 4, 5, 6, 28, 31, 2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 24, 28, 30, 32, 33, 31, 25, 4, 28, 31, 2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 24, 28, 30, 32, 33, 31, 25, 4, 28, 31, 2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 24, 28, 30, 32, 33, 31, 25, 4, 5, 6, 28, 31, 1, 24, 28, 30, 32, 33, 0, 26, 27, 29, 2, 16, 17, 18, 19, 20, 21, 22, 23, 53, 55, 57, 59, 61, 63, 0, 26, 27, 29];
aligned_def = [];
aligned_use = [];
aligned_defi = [];
aligned_usei = [];
aligned_dist = [];
adj_from = [97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 112, 113, 113, 114, 114, 115, 115, 116, 117, 117, 118, 200, 200, 200, 201, 201, 201, 201, 202, 202, 202, 202, 203, 203, 203, 203, 204, 204, 204, 204, 205, 205, 205, 205, 206, 206, 206, 206, 207, 207, 207, 207, 208, 208, 208, 208, 209, 209, 209, 209, 210, 210, 210, 210, 211, 211, 211, 211, 212, 212, 212, 212, 213, 213, 213, 213, 214, 214, 214, 214, 215, 215, 215, 215, 216, 216, 216, 216, 217, 217, 217, 217, 218, 218, 218, 218, 219, 219, 219, 219, 220, 220, 221, 221, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 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, 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, 513, 514, 515, 516, 516, 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, 594, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 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, 775, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880];
adj_to = [119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 881, 135, 882, 136, 883, 137, 884, 138, 139, 885, 140, 222, 305, 700, 223, 306, 701, 940, 224, 307, 702, 941, 225, 308, 703, 942, 226, 309, 704, 943, 227, 310, 705, 944, 228, 311, 706, 945, 229, 312, 707, 946, 230, 313, 708, 947, 231, 314, 709, 948, 232, 315, 710, 949, 233, 316, 711, 950, 234, 317, 712, 951, 235, 318, 713, 952, 236, 319, 714, 953, 237, 320, 715, 954, 238, 321, 716, 955, 239, 322, 717, 956, 240, 323, 718, 957, 241, 324, 719, 958, 325, 720, 721, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 939, 381, 595, 382, 596, 383, 597, 384, 598, 385, 599, 386, 600, 387, 601, 388, 602, 389, 603, 390, 604, 391, 605, 392, 606, 393, 607, 394, 608, 395, 609, 396, 610, 397, 611, 398, 612, 399, 613, 400, 614, 401, 615, 517, 518, 940, 519, 941, 520, 942, 521, 943, 522, 944, 523, 945, 524, 946, 525, 947, 526, 948, 527, 949, 528, 950, 529, 951, 530, 952, 531, 953, 532, 954, 533, 955, 534, 956, 535, 957, 536, 958, 537, 538, 539, 939, 595, 596, 940, 597, 941, 598, 942, 599, 943, 600, 944, 601, 945, 602, 946, 603, 947, 604, 948, 605, 949, 606, 950, 607, 951, 608, 952, 609, 953, 610, 954, 611, 955, 612, 956, 613, 957, 614, 958, 615, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 939, 776, 777, 940, 778, 941, 779, 942, 780, 943, 781, 944, 782, 945, 783, 946, 784, 947, 785, 948, 786, 949, 787, 950, 788, 951, 789, 952, 790, 953, 791, 954, 792, 955, 793, 956, 794, 957, 795, 958, 796, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 939];
quasi_adj_from = [];
quasi_adj_to = [];
long_latency_index = array2d(1..33, 1..4, [134..134 union 237..237 union 320..320 union 396..396 union 532..532 union 610..610 union 715..715 union 791..791 union 881..881 union 954..954, {}, 112..112 union 215..215 union 299..299 union 375..375 union 509..509 union 588..588 union 694..694 union 769..769 union 875..875, {}, 135..135 union 238..238 union 321..321 union 397..397 union 533..533 union 611..611 union 716..716 union 792..792 union 882..882 union 955..955, {}, 113..113 union 216..216 union 300..300 union 376..376 union 510..510 union 589..589 union 695..695 union 770..770 union 876..876, {}, 136..136 union 239..239 union 322..322 union 398..398 union 534..534 union 612..612 union 717..717 union 793..793 union 883..883 union 956..956, {}, 114..114 union 217..217 union 301..301 union 377..377 union 511..511 union 590..590 union 696..696 union 771..771 union 877..877, {}, 137..137 union 240..240 union 323..323 union 399..399 union 535..535 union 613..613 union 718..718 union 794..794 union 884..884 union 957..957, {}, 115..115 union 218..218 union 302..302 union 378..378 union 512..512 union 591..591 union 697..697 union 772..772 union 878..878, {}, 119..119, 75..75, 97..97, 0..0 union 2..2, 120..120 union 223..223 union 306..306 union 382..382 union 518..518 union 596..596 union 701..701 union 777..777 union 940..940, {}, 98..98 union 201..201 union 285..285 union 361..361 union 495..495 union 574..574 union 680..680 union 755..755 union 861..861, {}, 121..121 union 224..224 union 307..307 union 383..383 union 519..519 union 597..597 union 702..702 union 778..778 union 941..941, {}, 99..99 union 202..202 union 286..286 union 362..362 union 496..496 union 575..575 union 681..681 union 756..756 union 862..862, {}, 122..122 union 225..225 union 308..308 union 384..384 union 520..520 union 598..598 union 703..703 union 779..779 union 942..942, {}, 100..100 union 203..203 union 287..287 union 363..363 union 497..497 union 576..576 union 682..682 union 757..757 union 863..863, {}, 123..123 union 226..226 union 309..309 union 385..385 union 521..521 union 599..599 union 704..704 union 780..780 union 943..943, {}, 101..101 union 204..204 union 288..288 union 364..364 union 498..498 union 577..577 union 683..683 union 758..758 union 864..864, {}, 124..124 union 227..227 union 310..310 union 386..386 union 522..522 union 600..600 union 705..705 union 781..781 union 944..944, {}, 102..102 union 205..205 union 289..289 union 365..365 union 499..499 union 578..578 union 684..684 union 759..759 union 865..865, {}, 125..125 union 228..228 union 311..311 union 387..387 union 523..523 union 601..601 union 706..706 union 782..782 union 945..945, {}, 103..103 union 206..206 union 290..290 union 366..366 union 500..500 union 579..579 union 685..685 union 760..760 union 866..866, {}, 126..126 union 229..229 union 312..312 union 388..388 union 524..524 union 602..602 union 707..707 union 783..783 union 946..946, {}, 104..104 union 207..207 union 291..291 union 367..367 union 501..501 union 580..580 union 686..686 union 761..761 union 867..867, {}, 127..127 union 230..230 union 313..313 union 389..389 union 525..525 union 603..603 union 708..708 union 784..784 union 947..947, {}, 105..105 union 208..208 union 292..292 union 368..368 union 502..502 union 581..581 union 687..687 union 762..762 union 868..868, {}, 128..128 union 231..231 union 314..314 union 390..390 union 526..526 union 604..604 union 709..709 union 785..785 union 948..948, {}, 106..106 union 209..209 union 293..293 union 369..369 union 503..503 union 582..582 union 688..688 union 763..763 union 869..869, {}, 129..129 union 232..232 union 315..315 union 391..391 union 527..527 union 605..605 union 710..710 union 786..786 union 949..949, {}, 107..107 union 210..210 union 294..294 union 370..370 union 504..504 union 583..583 union 689..689 union 764..764 union 870..870, {}, 130..130 union 233..233 union 316..316 union 392..392 union 528..528 union 606..606 union 711..711 union 787..787 union 950..950, {}, 108..108 union 211..211 union 295..295 union 371..371 union 505..505 union 584..584 union 690..690 union 765..765 union 871..871, {}, 131..131 union 234..234 union 317..317 union 393..393 union 529..529 union 607..607 union 712..712 union 788..788 union 951..951, {}, 109..109 union 212..212 union 296..296 union 372..372 union 506..506 union 585..585 union 691..691 union 766..766 union 872..872, {}, 132..132 union 235..235 union 318..318 union 394..394 union 530..530 union 608..608 union 713..713 union 789..789 union 952..952, {}, 110..110 union 213..213 union 297..297 union 373..373 union 507..507 union 586..586 union 692..692 union 767..767 union 873..873, {}, 133..133 union 236..236 union 319..319 union 395..395 union 531..531 union 609..609 union 714..714 union 790..790 union 953..953, {}, 111..111 union 214..214 union 298..298 union 374..374 union 508..508 union 587..587 union 693..693 union 768..768 union 874..874, {}, 138..138, 74..74, 116..116, 3..3, 139..139 union 885..885, 73..73, 117..117, 4..4, 140..140, {}, 118..118, 1..1 union 5..5, 222..222 union 305..305 union 700..700, 71..72, 200..200, 8..8 union 75..75, 241..241 union 324..324 union 400..400 union 536..536 union 614..614 union 719..719 union 795..795 union 958..958, 58..64, 219..219 union 303..303 union 379..379 union 513..513 union 592..592 union 698..698 union 773..773 union 879..879, 9..9 union 12..12 union 16..16 union 23..23 union 28..28 union 31..31 union 35..35 union 38..38 union 58..64 union 74..74, 325..325 union 720..720, 69..70, 220..220, 6..7 union 10..10 union 73..73, 539..539 union 721..721 union 939..939, 55..57, 221..221 union 304..304 union 516..516 union 594..594 union 699..699 union 775..775 union 880..880, 11..11 union 13..13 union 26..26 union 30..30 union 32..32 union 37..37 union 39..39 union 55..56, 381..381 union 595..595, 67..67, 360..360 union 573..573, 15..15 union 27..27 union 68..68 union 71..71, 401..401 union 615..615, 65..65, 380..380 union 593..593, 14..14 union 17..17 union 29..29 union 66..66 union 69..69, 517..517, 68..68, 494..494, 19..19 union 22..22 union 67..67, 537..537, 66..66, 514..514, 18..18 union 20..20 union 24..24 union 65..65, 538..538, {}, 515..515, 21..21 union 25..25, 776..776, {}, 754..754, 34..34 union 72..72, 796..796, {}, 774..774, 33..33 union 36..36 union 70..70]);
long_latency_def = array1d(0..75, [68, 80, 88, 90, 92, 94, 160, 181, 192, 194, 196, 198, 282, 284, 333, 353, 355, 357, 409, 422, 424, 481, 483, 485, 487, 489, 491, 565, 567, 569, 571, 677, 679, 731, 745, 747, 749, 751, 858, 860, 966, 968, 970, 972, 974, 976, 978, 980, 982, 984, 986, 988, 990, 992, 994, 539, 721, 939, 241, 324, 400, 536, 614, 719, 795, 401, 537, 381, 517, 325, 720, 305, 700, 139, 138, 119]);
long_latency_use = array1d(0..75, [97, 118, 97, 116, 117, 118, 220, 220, 200, 219, 220, 221, 303, 304, 380, 360, 379, 380, 514, 494, 514, 515, 494, 513, 514, 515, 516, 573, 592, 593, 594, 698, 699, 774, 754, 773, 774, 775, 879, 880, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 996, 594, 775, 996, 303, 379, 513, 592, 698, 773, 879, 514, 593, 494, 573, 380, 774, 360, 754, 220, 219, 200]);
operand_definer = array1d(0..1014, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 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, 56, 57, 57, 58, 58, 59, 59, 60, 60, 61, 61, 62, 62, 63, 63, 63, 64, 64, 65, 65, 66, 66, 67, 67, 68, 68, 69, 69, 70, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 73, 73, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79, 80, 80, 81, 82, 82, 83, 83, 83, 84, 84, 85, 86, 86, 87, 87, 87, 88, 88, 89, 89, 90, 90, 90, 91, 91, 92, 92, 93, 93, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 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, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125, 126, 126, 127, 127, 128, 128, 129, 129, 130, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 133, 133, 134, 134, 135, 135, 136, 136, 137, 137, 138, 138, 139, 139, 140, 140, 141, 141, 142, 142, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 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, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 164, 164, 165, 165, 166, 166, 167, 167, 168, 168, 169, 170, 170, 171, 171, 172, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 175, 175, 176, 176, 177, 177, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 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, 196, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 199, 199, 200, 200, 201, 201, 202, 202, 203, 203, 204, 205, 205, 206, 206, 207, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 210, 210, 211, 211, 212, 212, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 215, 215, 215, 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, 228, 228, 229, 229, 230, 230, 231, 231, 232, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 234, 234, 234, 234, 234, 234, 235, 235, 235, 235, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 237, 237, 238, 238, 239, 239, 240, 240, 241, 241, 242, 242, 243, 243, 244, 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, 249, 250, 250, 251, 251, 252, 252, 253, 253, 254, 254, 256, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257]);
operand_use = array1d(0..1014, [false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, false, true, false, true, true, false, true, false, false, true, false, true, true, false, true, false, true, false, true, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, false, true, false, true, false, true, false, true, false, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, true, false, true, false, true, false, false, true, false, true, false, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, true, false, true, false, true, false, false, true, false, true, false, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, false, true, false, true, false, true, false, true, false, true, true, true, true, true, true, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]);
operand_lastuse = array1d(0..1014, [false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, false, false, false, false, false, true, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, true, false, false, false, false, false, false, true, true, false, false, false, false, false, false, true, true, false, false, false, false, false, false, true, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]);
operand_temps = array1d(0..1014, [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, -1..0, -1..-1 union 22..22, -1..-1 union 1..1, -1..-1 union 23..23, -1..-1 union 2..2, -1..-1 union 24..24, -1..-1 union 3..3, -1..-1 union 25..25, -1..-1 union 4..4, -1..-1 union 26..26, -1..-1 union 5..5, -1..-1 union 27..27, -1..-1 union 6..6, -1..-1 union 28..28, -1..-1 union 7..7, -1..-1 union 29..29, -1..-1 union 8..8, -1..-1 union 30..30, -1..-1 union 9..9, -1..-1 union 31..31, -1..-1 union 10..10, -1..-1 union 32..32, -1..-1 union 11..11, -1..-1 union 33..33, -1..-1 union 12..12, -1..-1 union 34..34, -1..-1 union 13..13, -1..-1 union 35..35, -1..-1 union 14..14, -1..-1 union 36..36, -1..-1 union 15..15, -1..-1 union 37..37, -1..-1 union 16..16, -1..-1 union 38..38, -1..-1 union 21..21, -1..-1 union 39..39, -1..-1 union 1..1 union 23..23, -1..-1 union 40..40, -1..-1 union 2..2 union 24..24, -1..-1 union 41..41, 2..2 union 24..24 union 41..41, 1..1 union 23..23 union 40..40, 42..42, -1..-1 union 42..42, -1..-1 union 43..43, -1..0 union 22..22, -1..-1 union 44..44, 0..0 union 22..22 union 44..44 union 54..54, 45..45, -1..-1 union 45..45, -1..-1 union 46..46, -1..-1 union 45..46, -1..-1 union 47..47, 45..47, 48..48, -1..-1 union 48..48, -1..-1 union 49..49, -1..-1 union 48..49, -1..-1 union 50..50, 48..50 union 57..57, 51..51, -1..-1 union 51..51, -1..-1 union 52..52, -1..-1 union 51..52, -1..-1 union 53..53, -1..0 union 22..22, -1..-1 union 54..54, -1..-1 union 21..21 union 39..39, -1..-1 union 55..55, -1..-1 union 42..43, -1..-1 union 56..56, -1..-1 union 48..49, -1..-1 union 57..57, 51..53, 17..17, 0..0 union 22..22 union 44..44 union 54..54, 3..3 union 25..25, 4..4 union 26..26, 5..5 union 27..27, 6..6 union 28..28, 7..7 union 29..29, 8..8 union 30..30, 9..9 union 31..31, 10..10 union 32..32, 11..11 union 33..33, 12..12 union 34..34, 13..13 union 35..35, 14..14 union 36..36, 15..15 union 37..37, 16..16 union 38..38, 17..17, 18..18, 19..19, 20..20, 21..21 union 39..39 union 55..55, 42..43 union 56..56, 48..50 union 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, -1..-1 union 58..58, -1..-1 union 80..80, -1..-1 union 77..77, -1..-1 union 81..81, -1..-1 union 78..78, -1..-1 union 82..82, -1..-1 union 79..79, -1..-1 union 83..83, 73..73, 84..84, -1..-1 union 84..84, -1..-1 union 85..85, -1..-1 union 79..79 union 83..83, -1..-1 union 86..86, 79..79 union 83..83 union 86..86, 87..87, -1..-1 union 87..87, -1..-1 union 88..88, -1..-1 union 78..78 union 82..82, -1..-1 union 89..89, 78..78 union 82..82 union 89..89 union 99..99 union 106..106, 90..90, -1..-1 union 90..90, -1..-1 union 91..91, -1..-1 union 87..88, -1..-1 union 92..92, -1..-1 union 90..91, -1..-1 union 93..93, 87..88 union 92..92, 90..91 union 93..93, 94..94, -1..-1 union 94..94, -1..-1 union 95..95, -1..-1 union 94..95, -1..-1 union 96..96, 94..96, 97..97, -1..-1 union 97..97, -1..-1 union 98..98, -1..-1 union 78..78 union 82..82, -1..-1 union 99..99, -1..-1 union 97..98, -1..-1 union 100..100, 97..98 union 100..100, 78..78 union 82..82 union 89..89 union 99..99 union 106..106, 101..101, -1..-1 union 101..101, -1..-1 union 102..102, -1..-1 union 101..102, -1..-1 union 103..103, -1..-1 union 58..58 union 80..80, -1..-1 union 104..104, -1..-1 union 77..77 union 81..81, -1..-1 union 105..105, -1..-1 union 78..78 union 82..82, -1..-1 union 106..106, -1..-1 union 84..85, -1..-1 union 107..107, 101..103, 58..58 union 80..80 union 104..104, 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 union 81..81 union 105..105, 78..78 union 82..82 union 89..89 union 99..99 union 106..106, 84..85 union 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, -1..-1 union 108..108, -1..-1 union 128..128, -1..-1 union 127..127, -1..-1 union 129..129, -1..-1 union 108..108 union 128..128, -1..-1 union 130..130, 108..108 union 128..128 union 130..130, 131..131, -1..-1 union 131..131, -1..-1 union 132..132, -1..-1 union 131..132, -1..-1 union 133..133, 131..133, 134..134, -1..-1 union 134..134, -1..-1 union 135..135, 136..136, -1..-1 union 134..135, -1..-1 union 137..137, 134..135 union 137..137, 136..136, 138..138, -1..-1 union 138..138, -1..-1 union 139..139, 140..140, -1..-1 union 138..139, -1..-1 union 141..141, 138..139 union 141..141, 140..140, 142..142, -1..-1 union 142..142, -1..-1 union 143..143, -1..-1 union 142..143, -1..-1 union 144..144, 123..123, 142..144, 145..145, -1..-1 union 145..145, -1..-1 union 146..146, -1..-1 union 127..127 union 129..129, -1..-1 union 147..147, -1..-1 union 145..146, -1..-1 union 148..148, 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 union 129..129 union 147..147, 145..146 union 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..167, 168..168, 169..169, -1..-1 union 149..149, -1..-1 union 170..170, -1..-1 union 168..168, -1..-1 union 171..171, -1..-1 union 169..169, -1..-1 union 172..172, -1..-1 union 169..169 union 172..172, -1..-1 union 173..173, 169..169 union 172..173 union 185..185, 174..174, -1..-1 union 174..174, -1..-1 union 175..175, -1..-1 union 174..175, -1..-1 union 176..176, 174..176, 177..177, -1..-1 union 177..177, -1..-1 union 178..178, -1..-1 union 177..178, -1..-1 union 179..179, 177..179, 180..180, -1..-1 union 180..180, -1..-1 union 181..181, -1..-1 union 180..181, -1..-1 union 182..182, -1..-1 union 149..149 union 170..170, -1..-1 union 183..183, -1..-1 union 168..168 union 171..171, -1..-1 union 184..184, -1..-1 union 169..169 union 172..172, -1..-1 union 185..185, 180..182, 164..164, 149..149 union 170..170 union 183..183, 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..167, 168..168 union 171..171 union 184..184, 169..169 union 172..173 union 185..185, 186..186, 187..187, 188..188, 189..189, 190..190, 191..191, 192..192, 193..193, 194..194, 195..195, 196..196, 197..197, 198..198, 199..199, 200..200, 201..201, 202..202, 203..203, 204..204, 205..205, 206..206, -1..-1 union 186..186, -1..-1 union 207..207, -1..-1 union 205..205, -1..-1 union 208..208, -1..-1 union 206..206, -1..-1 union 209..209, -1..-1 union 206..206 union 209..209, -1..-1 union 210..210, 206..206 union 209..210 union 218..218 union 247..247, 211..211, 201..201, 212..212, -1..-1 union 212..212, -1..-1 union 213..213, 201..201, 214..214, -1..-1 union 214..214, -1..-1 union 215..215, 216..216, -1..-1 union 186..186 union 207..207, -1..-1 union 217..217, -1..-1 union 206..206 union 209..209, -1..-1 union 218..218, -1..-1 union 212..213, -1..-1 union 219..219, -1..-1 union 214..215, -1..-1 union 220..220, 211..211, 186..186 union 207..207 union 217..217 union 245..245, 212..213 union 219..219, 214..215 union 220..220, 206..206 union 209..210 union 218..218 union 247..247, 216..216, 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..239, 240..240, 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..239, 240..240, -1..-1 union 221..221, -1..-1 union 241..241, 201..201, 242..242, -1..-1 union 242..242, -1..-1 union 243..243, -1..-1 union 221..221 union 241..241, -1..-1 union 244..244, -1..-1 union 186..186 union 207..207, -1..-1 union 245..245, -1..-1 union 205..205 union 208..208, -1..-1 union 246..246, -1..-1 union 206..206 union 209..209, -1..-1 union 247..247, -1..-1 union 221..221 union 241..241, -1..-1 union 248..248, -1..-1 union 242..243, -1..-1 union 249..249, 221..221 union 241..241 union 244..244 union 248..248, 201..201, 186..186 union 207..207 union 217..217 union 245..245, 187..187, 188..188, 189..189, 190..190, 191..191, 192..192, 193..193, 194..194, 195..195, 196..196, 197..197, 198..198, 199..199, 200..200, 201..201, 202..202, 203..203, 204..204, 205..205 union 208..208 union 246..246, 206..206 union 209..210 union 218..218 union 247..247, 221..221 union 241..241 union 244..244 union 248..248, 242..243 union 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, -1..-1 union 250..250, -1..-1 union 273..273, -1..-1 union 269..269, -1..-1 union 274..274, -1..-1 union 270..270, -1..-1 union 275..275, -1..-1 union 271..271, -1..-1 union 276..276, -1..-1 union 272..272, -1..-1 union 277..277, -1..-1 union 271..271 union 276..276, -1..-1 union 278..278, 271..271 union 276..276 union 278..278, 279..279, -1..-1 union 279..279, -1..-1 union 280..280, -1..-1 union 279..280, -1..-1 union 281..281, 279..281, 282..282, -1..-1 union 282..282, -1..-1 union 283..283, -1..-1 union 282..283, -1..-1 union 284..284, -1..-1 union 250..250 union 273..273, -1..-1 union 285..285, -1..-1 union 269..269 union 274..274, -1..-1 union 286..286, -1..-1 union 270..270 union 275..275, -1..-1 union 287..287, -1..-1 union 272..272 union 277..277, -1..-1 union 288..288, 282..284, 250..250 union 273..273 union 285..285, 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 union 274..274 union 286..286, 270..270 union 275..275 union 287..287, 272..272 union 277..277 union 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, -1..-1 union 289..289, -1..-1 union 310..310, -1..-1 union 308..308, -1..-1 union 311..311, -1..-1 union 309..309, -1..-1 union 312..312, -1..-1 union 309..309 union 312..312, -1..-1 union 313..313, 309..309 union 312..313 union 317..317, 314..314, 315..315, -1..-1 union 289..289 union 310..310, -1..-1 union 316..316, -1..-1 union 309..309 union 312..312, -1..-1 union 317..317, 314..314, 289..289 union 310..310 union 316..316, 309..309 union 312..313 union 317..317, 315..315, 318..318, 319..319, 320..320, 321..321, 322..322, 323..323, 324..324, 325..325, 326..326, 327..327, 328..328, 329..329, 330..330, 331..331, 332..332, 333..333, 334..334, 335..335, 336..336, 337..337, 319..319, 320..320, 321..321, 322..322, 323..323, 324..324, 325..325, 326..326, 327..327, 328..328, 329..329, 330..330, 331..331, 332..332, 333..333, 334..334, 335..335, 336..336, 337..337, -1..-1 union 318..318, -1..-1 union 338..338, -1..-1 union 308..308 union 311..311, -1..-1 union 339..339, -1..-1 union 318..318 union 338..338, -1..-1 union 340..340, 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 union 311..311 union 339..339, 318..318 union 338..338 union 340..340, 341..341, 342..342, 343..343, 344..344, 345..345, 346..346, 347..347, 348..348, 349..349, 350..350, 351..351, 352..352, 353..353, 354..354, 355..355, 356..356, 357..357, 358..358, 359..359, 360..360, 361..361, 362..362, -1..-1 union 341..341, -1..-1 union 363..363, -1..-1 union 360..360, -1..-1 union 364..364, -1..-1 union 361..361, -1..-1 union 365..365, -1..-1 union 362..362, -1..-1 union 366..366, -1..-1 union 361..361 union 365..365, -1..-1 union 367..367, 361..361 union 365..365 union 367..367 union 376..376, 368..368, -1..-1 union 368..368, -1..-1 union 369..369, -1..-1 union 368..369, -1..-1 union 370..370, 368..370, 371..371, -1..-1 union 371..371, -1..-1 union 372..372, -1..-1 union 371..372, -1..-1 union 373..373, -1..-1 union 341..341 union 363..363, -1..-1 union 374..374, -1..-1 union 360..360 union 364..364, -1..-1 union 375..375, -1..-1 union 361..361 union 365..365, -1..-1 union 376..376, -1..-1 union 362..362 union 366..366, -1..-1 union 377..377, 371..373, 356..356, 341..341 union 363..363 union 374..374, 342..342, 343..343, 344..344, 345..345, 346..346, 347..347, 348..348, 349..349, 350..350, 351..351, 352..352, 353..353, 354..354, 355..355, 356..356, 357..357, 358..358, 359..359, 360..360 union 364..364 union 375..375, 361..361 union 365..365 union 367..367 union 376..376, 362..362 union 366..366 union 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, -1..-1 union 378..378, -1..-1 union 399..399, -1..-1 union 397..397, -1..-1 union 400..400, -1..-1 union 398..398, -1..-1 union 401..401, -1..-1 union 398..398 union 401..401, -1..-1 union 402..402, 398..398 union 401..402 union 406..406, 403..403, 404..404, -1..-1 union 378..378 union 399..399, -1..-1 union 405..405, -1..-1 union 398..398 union 401..401, -1..-1 union 406..406, 403..403, 378..378 union 399..399 union 405..405, 398..398 union 401..402 union 406..406, 404..404, 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..424, 425..425, 426..426, 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..424, 425..425, 426..426, -1..-1 union 407..407, -1..-1 union 427..427, -1..-1 union 397..397 union 400..400, -1..-1 union 428..428, -1..-1 union 407..407 union 427..427, -1..-1 union 429..429, 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 union 400..400 union 428..428, 407..407 union 427..427 union 429..429, 430..430, 431..431, 432..432, 433..433, 434..434, -1..-1 union 434..434, -1..-1 union 435..435, -1..-1 union 434..435, -1..-1 union 436..436, 434..436 union 439..439 union 442..442 union 447..447, 437..437, -1..-1 union 437..437, -1..-1 union 438..438, -1..-1 union 434..435, -1..-1 union 439..439, 434..436 union 439..439 union 442..442 union 447..447, 440..440, -1..-1 union 440..440, -1..-1 union 441..441, -1..-1 union 434..435, -1..-1 union 442..442, 434..436 union 439..439 union 442..442 union 447..447, 443..443, 430..430, 444..444, -1..-1 union 444..444, -1..-1 union 445..445, 446..446, -1..-1 union 434..435, -1..-1 union 447..447, -1..-1 union 437..438, -1..-1 union 448..448, -1..-1 union 440..441, -1..-1 union 449..449, -1..-1 union 444..445, -1..-1 union 450..450, 443..443, 437..438 union 448..448, 444..445 union 450..450, 440..441 union 449..449, 434..436 union 439..439 union 442..442 union 447..447, 446..446, 451..451, 452..452, 453..453, 454..454, 455..455, 456..456, 451..451, 452..452, 453..453, 454..454, 455..455, 456..456, 430..430, 431..431, 432..432, 433..433, 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..469, 470..470, 471..471, 472..472, 473..473, 474..474, 475..475, 476..476, -1..-1 union 457..457, -1..-1 union 477..477, -1..-1 union 476..476, -1..-1 union 478..478, -1..-1 union 476..476 union 478..478, -1..-1 union 479..479, -1..-1 union 458..458, -1..-1 union 480..480, -1..-1 union 459..459, -1..-1 union 481..481, -1..-1 union 460..460, -1..-1 union 482..482, -1..-1 union 461..461, -1..-1 union 483..483, -1..-1 union 462..462, -1..-1 union 484..484, -1..-1 union 463..463, -1..-1 union 485..485, -1..-1 union 464..464, -1..-1 union 486..486, -1..-1 union 465..465, -1..-1 union 487..487, -1..-1 union 466..466, -1..-1 union 488..488, -1..-1 union 467..467, -1..-1 union 489..489, -1..-1 union 468..468, -1..-1 union 490..490, -1..-1 union 469..469, -1..-1 union 491..491, -1..-1 union 470..470, -1..-1 union 492..492, -1..-1 union 471..471, -1..-1 union 493..493, -1..-1 union 457..457 union 477..477, -1..-1 union 494..494, 476..476 union 478..479, 457..457 union 477..477 union 494..494, 458..458 union 480..480, 459..459 union 481..481, 460..460 union 482..482, 461..461 union 483..483, 462..462 union 484..484, 463..463 union 485..485, 464..464 union 486..486, 465..465 union 487..487, 466..466 union 488..488, 467..467 union 489..489, 468..468 union 490..490, 469..469 union 491..491, 470..470 union 492..492, 471..471 union 493..493, 472..472, 473..473, 474..474, 475..475]);
operand_atom = array2d(0..1014, 0..27, [-1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1]);
related_temps = [0..0 union 22..22 union 44..44 union 54..54, 1..1 union 23..23 union 40..40, 2..2 union 24..24 union 41..41, 3..3 union 25..25, 4..4 union 26..26, 5..5 union 27..27, 6..6 union 28..28, 7..7 union 29..29, 8..8 union 30..30, 9..9 union 31..31, 10..10 union 32..32, 11..11 union 33..33, 12..12 union 34..34, 13..13 union 35..35, 14..14 union 36..36, 15..15 union 37..37, 16..16 union 38..38, 21..21 union 39..39 union 55..55, 42..43 union 56..56, 45..47, 48..50 union 57..57, 51..53, 58..58 union 80..80 union 104..104, 77..77 union 81..81 union 105..105, 78..78 union 82..82 union 89..89 union 99..99 union 106..106, 79..79 union 83..83 union 86..86, 84..85 union 107..107, 87..88 union 92..92, 90..91 union 93..93, 94..96, 97..98 union 100..100, 101..103, 108..108 union 128..128 union 130..130, 127..127 union 129..129 union 147..147, 131..133, 134..135 union 137..137, 138..139 union 141..141, 142..144, 145..146 union 148..148, 149..149 union 170..170 union 183..183, 168..168 union 171..171 union 184..184, 169..169 union 172..173 union 185..185, 174..176, 177..179, 180..182, 186..186 union 207..207 union 217..217 union 245..245, 205..205 union 208..208 union 246..246, 206..206 union 209..210 union 218..218 union 247..247, 212..213 union 219..219, 214..215 union 220..220, 221..221 union 241..241 union 244..244 union 248..248, 242..243 union 249..249, 250..250 union 273..273 union 285..285, 269..269 union 274..274 union 286..286, 270..270 union 275..275 union 287..287, 271..271 union 276..276 union 278..278, 272..272 union 277..277 union 288..288, 279..281, 282..284, 289..289 union 310..310 union 316..316, 308..308 union 311..311 union 339..339, 309..309 union 312..313 union 317..317, 318..318 union 338..338 union 340..340, 341..341 union 363..363 union 374..374, 360..360 union 364..364 union 375..375, 361..361 union 365..365 union 367..367 union 376..376, 362..362 union 366..366 union 377..377, 368..370, 371..373, 378..378 union 399..399 union 405..405, 397..397 union 400..400 union 428..428, 398..398 union 401..402 union 406..406, 407..407 union 427..427 union 429..429, 434..436 union 439..439 union 442..442 union 447..447, 437..438 union 448..448, 440..441 union 449..449, 444..445 union 450..450, 457..457 union 477..477 union 494..494, 458..458 union 480..480, 459..459 union 481..481, 460..460 union 482..482, 461..461 union 483..483, 462..462 union 484..484, 463..463 union 485..485, 464..464 union 486..486, 465..465 union 487..487, 466..466 union 488..488, 467..467 union 489..489, 468..468 union 490..490, 469..469 union 491..491, 470..470 union 492..492, 471..471 union 493..493, 476..476 union 478..479];
temp_definer = array1d(0..494, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 133, 134, 135, 136, 137, 138, 139, 140, 141, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 164, 165, 166, 167, 168, 169, 170, 171, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 175, 176, 177, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 199, 200, 201, 202, 203, 204, 205, 206, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 210, 211, 212, 215, 215, 215, 215, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 233, 233, 233, 233, 233, 233, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254]);
temp_def = array1d(0..494, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 171, 173, 175, 177, 179, 181, 183, 186, 188, 190, 192, 194, 196, 198, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 243, 245, 247, 249, 251, 253, 255, 257, 258, 260, 263, 265, 266, 268, 271, 273, 275, 278, 280, 282, 284, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 327, 329, 331, 333, 335, 337, 339, 341, 343, 345, 347, 349, 351, 353, 355, 357, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 403, 405, 407, 409, 411, 413, 415, 417, 419, 420, 422, 424, 426, 428, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 475, 477, 479, 481, 483, 485, 487, 489, 491, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 541, 543, 545, 547, 549, 551, 553, 555, 557, 559, 561, 563, 565, 567, 569, 571, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 617, 619, 621, 623, 625, 626, 628, 630, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 675, 677, 679, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 723, 725, 727, 729, 731, 733, 735, 737, 739, 741, 743, 745, 747, 749, 751, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 798, 800, 802, 804, 806, 807, 809, 811, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 856, 858, 860, 881, 882, 883, 884, 885, 887, 889, 891, 893, 895, 897, 899, 901, 903, 905, 907, 908, 910, 912, 914, 916, 923, 924, 925, 926, 927, 928, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 960, 962, 964, 966, 968, 970, 972, 974, 976, 978, 980, 982, 984, 986, 988, 990, 992, 994]);
temp_width = array1d(0..494, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 20, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 20, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 20, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15, 2, 1, 2, 1, 20, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1]);
temp_minlive = array1d(0..494, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]);
temp_uses = array1d(0..494, [22..22 union 67..67 union 69..69 union 87..87 union 97..97, 24..24 union 58..58 union 63..63, 26..26 union 60..60 union 62..62, 28..28 union 98..98, 30..30 union 99..99, 32..32 union 100..100, 34..34 union 101..101, 36..36 union 102..102, 38..38 union 103..103, 40..40 union 104..104, 42..42 union 105..105, 44..44 union 106..106, 46..46 union 107..107, 48..48 union 108..108, 50..50 union 109..109, 52..52 union 110..110, 54..54 union 111..111, 96..96 union 112..112, 113..113, 114..114, 115..115, 56..56 union 89..89 union 116..116, 67..67 union 69..69 union 87..87 union 97..97, 58..58 union 63..63, 60..60 union 62..62, 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, 89..89 union 116..116, 63..63, 62..62, 65..65 union 91..91 union 117..117, 91..91 union 117..117, 69..69 union 97..97, 71..71 union 73..73 union 75..75, 73..73 union 75..75, 75..75, 77..77 union 79..79 union 81..81 union 93..93 union 118..118, 79..79 union 81..81 union 93..93 union 118..118, 81..81 union 118..118, 83..83 union 85..85 union 95..95, 85..85 union 95..95, 95..95, 69..69 union 97..97, 116..116, 117..117, 81..81 union 118..118, 141..141 union 191..191 union 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, 149..149 union 215..215, 216..216, 217..217, 218..218, 143..143 union 193..193 union 219..219, 145..145 union 159..159 union 161..161 union 180..180 union 185..185 union 195..195 union 220..220, 147..147 union 153..153 union 155..155, 191..191 union 200..200, 193..193 union 219..219, 159..159 union 161..161 union 180..180 union 185..185 union 195..195 union 220..220, 153..153 union 155..155, 151..151 union 197..197 union 221..221, 197..197 union 221..221, 155..155, 157..157 union 165..165 union 169..169, 165..165 union 169..169, 161..161 union 185..185 union 220..220, 163..163 union 167..167 union 170..170, 167..167 union 170..170, 169..169, 170..170, 172..172 union 174..174 union 176..176, 174..174 union 176..176, 176..176, 178..178 union 182..182 union 184..184, 182..182 union 184..184, 161..161 union 185..185 union 220..220, 184..184, 187..187 union 189..189 union 199..199, 189..189 union 199..199, 199..199, 200..200, 219..219, 161..161 union 185..185 union 220..220, 221..221, 242..242 union 246..246 union 248..248, 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, 276..276 union 299..299, 300..300, 301..301, 302..302, 244..244 union 281..281 union 303..303, 246..246 union 248..248, 281..281 union 303..303, 248..248, 250..250 union 252..252 union 254..254, 252..252 union 254..254, 254..254, 256..256 union 259..259 union 261..261, 259..259 union 261..261, 262..262, 261..261, 264..264 union 267..267 union 269..269, 267..267 union 269..269, 270..270, 269..269, 272..272 union 274..274 union 277..277, 274..274 union 277..277, 277..277, 279..279 union 283..283 union 304..304, 283..283 union 304..304, 303..303, 304..304, 326..326 union 352..352 union 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, 359..359 union 375..375, 376..376, 377..377, 378..378, 328..328 union 354..354 union 379..379, 330..330 union 332..332 union 334..334 union 356..356 union 380..380, 352..352 union 360..360, 354..354 union 379..379, 332..332 union 334..334 union 356..356 union 380..380, 334..334 union 380..380, 336..336 union 338..338 union 340..340, 338..338 union 340..340, 340..340, 342..342 union 344..344 union 346..346, 344..344 union 346..346, 346..346, 348..348 union 350..350 union 358..358, 350..350 union 358..358, 358..358, 360..360, 379..379, 334..334 union 380..380, 402..402 union 421..421 union 430..430 union 482..482 union 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, 412..412 union 416..416 union 476..476 union 493..493 union 509..509, 510..510, 511..511, 512..512, 404..404 union 484..484 union 513..513, 406..406 union 408..408 union 410..410 union 423..423 union 433..433 union 486..486 union 514..514, 421..421 union 430..430 union 482..482 union 494..494, 484..484 union 513..513, 408..408 union 410..410 union 423..423 union 433..433 union 486..486 union 514..514, 410..410 union 433..433 union 514..514, 429..429, 414..414 union 425..425 union 431..431, 425..425 union 431..431, 418..418 union 427..427 union 432..432, 427..427 union 432..432, 434..434, 430..430 union 494..494, 410..410 union 433..433 union 514..514, 431..431, 432..432, 474..474 union 480..480 union 488..488 union 492..492 union 515..515, 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..469, 470..470, 471..471, 472..472, 473..473, 480..480 union 488..488 union 492..492 union 515..515, 478..478 union 490..490 union 516..516, 490..490 union 516..516, 492..492 union 515..515, 430..430 union 494..494, 513..513, 410..410 union 433..433 union 514..514, 492..492 union 515..515, 516..516, 540..540 union 564..564 union 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, 542..542 union 566..566 union 592..592, 544..544 union 568..568 union 593..593, 546..546 union 550..550 union 552..552, 548..548 union 570..570 union 594..594, 564..564 union 573..573, 566..566 union 592..592, 568..568 union 593..593, 550..550 union 552..552, 570..570 union 594..594, 552..552, 554..554 union 556..556 union 558..558, 556..556 union 558..558, 558..558, 560..560 union 562..562 union 572..572, 562..562 union 572..572, 572..572, 573..573, 592..592, 593..593, 594..594, 616..616 union 627..627 union 632..632, 680..680, 681..681, 682..682, 683..683, 684..684, 685..685, 686..686, 687..687, 688..688, 689..689, 690..690, 691..691, 692..692, 693..693, 694..694, 695..695, 696..696, 697..697, 618..618 union 676..676 union 698..698, 620..620 union 622..622 union 624..624 union 629..629 union 633..633, 627..627 union 632..632, 676..676 union 698..698, 622..622 union 624..624 union 629..629 union 633..633, 624..624 union 633..633, 631..631, 634..634, 632..632, 624..624 union 633..633, 674..674 union 678..678 union 699..699, 655..655, 656..656, 657..657, 658..658, 659..659, 660..660, 661..661, 662..662, 663..663, 664..664, 665..665, 666..666, 667..667, 668..668, 669..669, 670..670, 671..671, 672..672, 673..673, 678..678 union 699..699, 698..698, 699..699, 722..722 union 744..744 union 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, 753..753 union 769..769, 770..770, 771..771, 772..772, 724..724 union 746..746 union 773..773, 726..726 union 730..730 union 732..732 union 748..748 union 774..774, 728..728 union 750..750 union 775..775, 744..744 union 754..754, 746..746 union 773..773, 730..730 union 732..732 union 748..748 union 774..774, 750..750 union 775..775, 732..732 union 774..774, 734..734 union 736..736 union 738..738, 736..736 union 738..738, 738..738, 740..740 union 742..742 union 752..752, 742..742 union 752..752, 752..752, 754..754, 773..773, 732..732 union 774..774, 775..775, 797..797 union 808..808 union 813..813, 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, 799..799 union 857..857 union 879..879, 801..801 union 803..803 union 805..805 union 810..810 union 814..814, 808..808 union 813..813, 857..857 union 879..879, 803..803 union 805..805 union 810..810 union 814..814, 805..805 union 814..814, 812..812, 815..815, 813..813, 805..805 union 814..814, 855..855 union 859..859 union 880..880, 836..836, 837..837, 838..838, 839..839, 840..840, 841..841, 842..842, 843..843, 844..844, 845..845, 846..846, 847..847, 848..848, 849..849, 850..850, 851..851, 852..852, 853..853, 854..854, 859..859 union 880..880, 879..879, 880..880, 904..904 union 935..935, 936..936, 937..937, 938..938, 886..886 union 888..888 union 890..890 union 894..894 union 896..896 union 900..900 union 902..902 union 909..909 union 921..921, 888..888 union 890..890 union 894..894 union 896..896 union 900..900 union 902..902 union 909..909 union 921..921, 890..890 union 896..896 union 902..902 union 921..921, 892..892 union 911..911 union 918..918, 911..911 union 918..918, 890..890 union 896..896 union 902..902 union 921..921, 898..898 union 913..913 union 920..920, 913..913 union 920..920, 890..890 union 896..896 union 902..902 union 921..921, 917..917, 906..906 union 915..915 union 919..919, 915..915 union 919..919, 922..922, 890..890 union 896..896 union 902..902 union 921..921, 918..918, 920..920, 919..919, 929..929, 930..930, 931..931, 932..932, 933..933, 934..934, 959..959 union 993..993 union 996..996, 965..965 union 997..997, 967..967 union 998..998, 969..969 union 999..999, 971..971 union 1000..1000, 973..973 union 1001..1001, 975..975 union 1002..1002, 977..977 union 1003..1003, 979..979 union 1004..1004, 981..981 union 1005..1005, 983..983 union 1006..1006, 985..985 union 1007..1007, 987..987 union 1008..1008, 989..989 union 1009..1009, 991..991 union 1010..1010, 1011..1011, 1012..1012, 1013..1013, 1014..1014, 961..961 union 963..963 union 995..995, 993..993 union 996..996, 963..963 union 995..995, 995..995, 997..997, 998..998, 999..999, 1000..1000, 1001..1001, 1002..1002, 1003..1003, 1004..1004, 1005..1005, 1006..1006, 1007..1007, 1008..1008, 1009..1009, 1010..1010, 996..996]);
packed_pq = array2d(1..0, 1..0, []);
before_pred = [62, 63, 75, 155, 169, 170, 176, 184, 248, 254, 258, 261, 262, 266, 269, 270, 277, 340, 346, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 429, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 552, 558, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 631, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 738, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 812, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 908, 908, 908, 908, 908, 908, 917, 918, 918, 918, 918, 918, 918, 919, 919, 919, 919, 919, 919, 920, 920, 920, 920, 920, 920, 921, 921, 921, 921, 921, 921, 922, 922, 922, 922, 922, 922];
before_succ = [64, 64, 76, 156, 171, 171, 177, 186, 249, 255, 263, 263, 263, 271, 271, 271, 278, 341, 347, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 450, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 553, 559, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 650, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 739, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 831, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 923, 924, 925, 926, 927, 928, 924, 923, 924, 925, 926, 927, 928, 923, 924, 925, 926, 927, 928, 923, 924, 925, 926, 927, 928, 923, 924, 925, 926, 927, 928, 923, 924, 925, 926, 927, 928];
before_cond = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
nogood = [6, 11, 14, 16, 18, 19, 20, 25, 30, 35, 37, 39, 43, 47, 51, 53, 55, 57, 62, 64, 69, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125];
across_op = [131, 173, 208, 233];
across_regs = [{}, {}, {}, {}];
across_items = [1..30, 31..50, 51..70, 71..74];
across_item_temp = [186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 217, 218, 242, 245, 247, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 311, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 400, 430, 431, 432, 433];
across_item_cond = [129, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 131, 136, 141, 147, 154, 157, 160, 161, 167, 168, 169, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 171, 177, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 179, 185, 1, 1, 1, 1];
setacross_op = [131, 173, 208, 233];
setacross_regs = [{}, {}, {}, {}];
setacross_tempsets = [1..21, 22..40, 41..59, 60..63];
difftemp = [];
diffreg = [62..63, 95..96, 97..118, 119..140, 169..170, 184..185, 200..221, 222..241, 261..262, 269..270, 276..277, 285..304, 305..325, 358..359, 360..380, 381..401, 492..493, 494..516, 517..539, 573..594, 595..615, 680..699, 700..721, 752..753, 754..775, 776..796, 861..880, 881..885, 935..938, 939..958, 996..1014];
domop_operands = [];
domop_temps = [];
domuse_p = [22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 65, 67, 69, 71, 73, 77, 79, 81, 83, 85, 87, 89, 91, 93, 96, 141, 143, 145, 147, 149, 151, 153, 157, 159, 161, 161, 163, 165, 167, 172, 174, 178, 180, 182, 185, 187, 189, 191, 193, 195, 197, 242, 244, 246, 250, 252, 256, 259, 264, 267, 272, 274, 276, 279, 281, 283, 326, 328, 330, 332, 334, 336, 338, 342, 344, 348, 350, 352, 354, 356, 359, 402, 404, 406, 408, 410, 410, 412, 412, 414, 416, 416, 418, 421, 423, 425, 427, 430, 433, 474, 474, 476, 476, 478, 480, 480, 482, 484, 486, 488, 488, 490, 492, 493, 540, 542, 544, 546, 548, 550, 554, 556, 560, 562, 564, 566, 568, 570, 616, 618, 624, 627, 674, 676, 678, 722, 724, 726, 728, 730, 732, 734, 736, 740, 742, 744, 746, 748, 750, 753, 797, 799, 805, 808, 855, 857, 859, 890, 892, 896, 898, 902, 904, 906, 911, 913, 915, 959, 961, 963, 965, 967, 969, 971, 973, 975, 977, 979, 981, 983, 985, 987, 989, 991, 993];
domuse_q = [97, 63, 62, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 116, 63, 62, 117, 97, 97, 75, 75, 118, 118, 118, 95, 95, 97, 116, 117, 118, 112, 200, 219, 220, 155, 215, 221, 155, 169, 220, 185, 220, 170, 169, 170, 176, 176, 184, 220, 184, 220, 199, 199, 200, 219, 220, 221, 248, 303, 248, 254, 254, 261, 261, 269, 269, 277, 277, 299, 304, 303, 304, 360, 379, 380, 380, 380, 340, 340, 346, 346, 358, 358, 360, 379, 380, 375, 494, 513, 514, 514, 433, 514, 493, 509, 431, 493, 509, 432, 494, 514, 431, 432, 494, 514, 492, 515, 493, 509, 516, 492, 515, 494, 513, 514, 492, 515, 516, 515, 509, 573, 592, 593, 552, 594, 552, 558, 558, 572, 572, 573, 592, 593, 594, 632, 698, 633, 632, 699, 698, 699, 754, 773, 774, 775, 774, 774, 738, 738, 752, 752, 754, 773, 774, 775, 769, 813, 879, 814, 813, 880, 879, 880, 921, 918, 921, 920, 921, 935, 919, 918, 920, 919, 996, 995, 995, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 996];
domuse_r = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 21, 1, 2, 64, 0, 0, 70, 70, 76, 76, 76, 82, 82, 0, 21, 64, 76, 17, 119, 138, 139, 140, 134, 150, 140, 156, 139, 139, 139, 162, 156, 162, 171, 171, 177, 139, 177, 139, 186, 186, 119, 138, 139, 150, 222, 241, 222, 249, 249, 255, 255, 263, 263, 271, 271, 237, 278, 241, 278, 305, 324, 325, 325, 325, 335, 335, 341, 341, 347, 347, 305, 324, 325, 320, 381, 400, 401, 401, 401, 401, 396, 396, 413, 396, 396, 417, 381, 401, 413, 417, 381, 401, 435, 435, 396, 396, 477, 435, 435, 381, 400, 401, 435, 435, 477, 435, 396, 517, 536, 537, 538, 539, 538, 553, 553, 559, 559, 517, 536, 537, 539, 595, 614, 615, 595, 635, 614, 635, 700, 719, 720, 721, 720, 720, 733, 733, 739, 739, 700, 719, 720, 721, 715, 776, 795, 796, 776, 816, 795, 816, 885, 891, 885, 897, 885, 881, 905, 891, 897, 905, 939, 958, 958, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 939];
infassign = array2d(1..79, 1..4, [22, 10, 79, 87, 23, 10, 88, 88, 24, 10, 89, 89, 25, 10, 90, 90, 26, 10, 91, 91, 27, 10, 92, 92, 28, 10, 93, 93, 29, 10, 94, 94, 30, 10, 95, 95, 31, 10, 96, 96, 32, 10, 97, 97, 33, 10, 67, 67, 34, 10, 69, 69, 35, 10, 71, 71, 36, 10, 73, 73, 37, 10, 75, 75, 38, 10, 77, 77, 39, 10, 98, 107, 43, 10, 108, 116, 46, 10, 117, 117, 49, 10, 118, 119, 52, 10, 120, 120, 80, 10, 79, 87, 81, 10, 98, 107, 82, 10, 108, 116, 83, 10, 118, 119, 85, 10, 121, 128, 88, 10, 129, 129, 91, 10, 130, 130, 95, 10, 131, 131, 98, 10, 132, 132, 102, 10, 133, 133, 128, 10, 79, 87, 129, 10, 98, 107, 132, 10, 134, 134, 135, 10, 135, 135, 139, 10, 136, 136, 143, 10, 137, 137, 146, 10, 121, 128, 170, 10, 79, 87, 171, 10, 98, 107, 172, 10, 108, 116, 175, 10, 138, 138, 178, 10, 139, 139, 181, 10, 140, 140, 207, 10, 79, 87, 208, 10, 98, 107, 209, 10, 108, 116, 213, 10, 141, 141, 215, 10, 142, 142, 241, 10, 143, 144, 243, 10, 121, 128, 273, 10, 79, 87, 274, 10, 98, 107, 275, 10, 108, 116, 276, 10, 143, 144, 277, 10, 121, 128, 280, 10, 145, 145, 283, 10, 146, 146, 310, 10, 79, 87, 311, 10, 98, 107, 312, 10, 108, 116, 338, 10, 121, 128, 363, 10, 79, 87, 364, 10, 98, 107, 365, 10, 108, 116, 366, 10, 121, 128, 369, 10, 147, 147, 372, 10, 148, 148, 399, 10, 79, 87, 400, 10, 98, 107, 401, 10, 108, 116, 427, 10, 121, 128, 435, 10, 108, 116, 438, 10, 149, 149, 441, 10, 150, 150, 445, 10, 151, 151, 477, 10, 121, 128, 478, 10, 98, 107]);
space = array1d(-1..17, [-1, 0, 1, 1, 2, 3, 4, 5, 6, 6, 6, 6, 7, 8, 9, 10, 10, 11, 11]);
dominate_ing = [3, 4, 5, 20, 24, 25, 27, 30, 31, 33, 42, 43, 44, 44, 44, 45, 47, 50, 51, 53, 57, 60, 61, 64, 73, 74, 77, 80, 84, 88, 91, 97, 98, 99, 99, 100, 102, 105, 108, 116, 116, 117, 118, 118, 118, 119, 122, 124, 126, 127, 133, 135, 136, 145, 146, 147, 148, 149, 152, 155, 164, 165, 166, 166, 167, 175, 181, 182, 183, 183, 184, 185, 187, 190, 199, 200, 201, 201, 202, 210, 216, 216, 216, 216, 217, 219, 220, 222, 223, 226, 237, 238];
dominate_ed = [25, 21, 22, 36, 37, 35, 28, 31, 38, 34, 66, 67, 51, 61, 68, 48, 69, 54, 61, 55, 58, 62, 68, 65, 75, 92, 78, 82, 86, 89, 93, 110, 111, 100, 112, 112, 103, 106, 109, 126, 137, 138, 119, 127, 139, 127, 128, 129, 137, 139, 136, 141, 140, 157, 158, 159, 150, 160, 153, 156, 170, 176, 167, 171, 171, 177, 192, 193, 185, 194, 195, 194, 188, 191, 205, 211, 202, 206, 206, 212, 217, 220, 223, 228, 220, 229, 223, 230, 228, 231, 254, 239];
dominate_instructions = [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 8..8, 8..8, 8..8, 8..8, 8..8, 8..8, {}, {}, {}, {}, {}, {}, {}, {}, 8..8, {}, {}, {}, {}, {}, {}, 8..8, {}, 8..8, 8..8, {}, {}, {}, {}, 8..8, 8..8, {}, 8..8, 8..8, 8..8, {}, {}, {}, {}, {}, {}, {}, {}, 8..8, {}, 8..8, 8..8, {}, {}, {}, 8..8, {}, 8..8, 8..8, {}, {}, 8..8, {}, 8..8, 8..8, {}, {}, {}, {}, 8..8, {}, 8..8, 8..8, {}, {}, 8..8, 8..8, 8..8, 8..8, {}, {}, {}, {}, {}, {}, 8..8, 8..8];
dominate_temps = [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}];
precedence = [235, 245, 259, 265, 273, 291, 301, 309, 315, 321, 339, 345, 362, 367, 387, 412, 420, 426, 430, 434, 438, 442, 446, 450, 454, 458, 462, 466, 470, 474, 478, 482, 486, 490, 494, 498, 502, 506, 510, 514, 518, 522, 526, 530, 534, 538, 542, 546, 550, 554, 558, 562, 566, 570, 574, 578, 582, 586, 590, 596, 602, 608, 614, 620, 626, 632, 638, 644, 650, 656, 662, 668, 674, 680, 686, 692, 698, 704, 710, 716, 722, 728, 734, 740, 746, 752, 758, 764, 770, 776, 782, 788, 794, 800, 806, 812, 818, 824, 830, 836, 842, 848, 854, 860, 866, 872, 878, 884, 890, 896, 902, 908, 914, 920, 926, 932, 938, 944, 950, 956, 960, 966, 970, 976, 980, 986, 990, 996, 1000, 1006, 1010, 1016, 1020, 1024, 1028, 1032, 1036, 1040, 1044, 1048, 1052, 1056, 1060, 1064, 1068, 1072, 1076, 1080, 1084, 1088, 1092, 1094, 1096, 1098, 1100, 1102, 1104, 1106, 1108, 1110, 1112, 1114, 1116, 1118, 1120, 1122, 1124, 1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140, 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1156, 1158, 1160, 1162, 1164, 1166, 1168, 1170, 1172, 1174, 1176, 1178, 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194, 1196, 1198, 1200, 1202, 1204, 1206, 1208, 1210, 1212, 1214, 1216, 1218, 1220, 1222, 1224, 1227, 1229, 1232, 1234, 1237, 1239, 1242, 1244, 1247, 1249, 1251, 1253, 1256, 1258, 1260, 1262, 1265, 1267, 1269, 1271, 1273, 1275, 1278, 1280, 1282, 1284, 1287, 1289, 1291, 1293, 1295, 1297, 1300, 1302, 1304, 1306, 1308, 1310, 1312, 1314, 1316, 1318, 1321, 1323, 1326, 1328, 1330, 1332, 1335, 1337, 1339, 1341, 1344, 1346, 1348, 1350, 1353, 1355, 1357, 1359, 1362, 1364, 1366, 1368, 1371, 1373, 1375, 1377, 1379, 1381, 1384, 1386, 1389, 1391, 1394, 1396, 1398, 1400, 1403, 1405, 1407, 1409, 1412, 1414, 1416, 1418, 1421, 1423, 1425, 1427, 1429, 1431, 1433, 1435, 1437, 1439, 1442, 1444, 1447, 1449, 1452, 1454, 1456, 1458, 1461, 1463, 1466, 1468, 1470, 1472, 1474, 1476, 1478, 1480, 1482, 1484, 1487, 1489, 1492, 1494, 1496, 1498, 1500, 1502, 1504, 1506, 1508, 1510, 1512, 1514, 1516, 1518, 1521, 1523, 1526, 1528, 1531, 1533, 1536, 1538, 1541, 1543, 1545, 1547, 1550, 1552, 1554, 1556, 1559, 1561, 1563, 1565, 1567, 1569, 1571, 1573, 1575, 1577, 1579, 1581, 1584, 1586, 1589, 1591, 1594, 1596, 1598, 1600, 1602, 1604, 1606, 1608, 1611, 1613, 1615, 1617, 1619, 1621, 1624, 1626, 1629, 1631, 1634, 1636, 1639, 1641, 1643, 1645, 1648, 1650, 1652, 1654, 1657, 1659, 1661, 1663, 1665, 1667, 1669, 1671, 1673, 1675, 1677, 1679, 1682, 1684, 1687, 1689, 1692, 1694, 1696, 1698, 1700, 1702, 1704, 1706, 1709, 1711, 1713, 1715, 1717, 1719, 1722, 1724, 1726, 1729, 1731, 1733, 1736, 1738, 1740, 1743, 1745, 1747, 1749, 1751, 1753, 1755, 1757, 1759, 1761, 1763, 1765, 1767, 1769, 1771, 1773, 1775, 1777, 1779, 1781, 1783, 1785, 1787, 1789, 1791, 1793, 1795, 1797, 1799, 1801, 1803, 1805, 1807, 1809, 1811, 1813, 1815, 1817, 1819, 1821, 1823, 1825, 1827, 1829, 1831, 1833, 1835, 1837, 1839, 1841, 1843, 1845, 1847, 1849, 1851, 1853, 1855, 1858, 1861, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063];
table_exists_ops = [];
table_iffall_ops = [];
relation_ops = [51..51 union 61..61 union 68..68, 116..116 union 126..126 union 137..137, 118..119 union 127..127 union 139..139, 217..217 union 220..220 union 223..223 union 228..228, 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, 240..240, 241..241, 242..242, 243..243, 244..244, 245..245, 246..246, 247..247, 248..248, 249..249, 250..250, 251..251, 252..252, 253..253, 4..4 union 21..21, 5..5 union 22..22, 20..20 union 36..36, 24..24 union 37..37, 27..28, 33..34, 42..42 union 66..66, 43..43 union 67..67, 45..45 union 48..48, 47..47 union 69..69, 50..50 union 54..54, 53..53 union 55..55, 57..58, 60..60 union 62..62, 64..65, 73..73 union 75..75, 74..74 union 92..92, 77..78, 80..80 union 82..82, 84..84 union 86..86, 88..89, 91..91 union 93..93, 97..97 union 110..110, 98..98 union 111..111, 102..103, 105..106, 108..109, 117..117 union 138..138, 122..122 union 128..128, 124..124 union 129..129, 135..135 union 141..141, 145..145 union 157..157, 146..146 union 158..158, 147..147 union 159..159, 148..148 union 150..150, 149..149 union 160..160, 152..153, 155..156, 164..164 union 170..170, 165..165 union 176..176, 175..175 union 177..177, 181..181 union 192..192, 182..182 union 193..193, 184..184 union 195..195, 187..188, 190..191, 199..199 union 205..205, 200..200 union 211..211, 210..210 union 212..212, 219..219 union 229..229, 222..222 union 230..230, 226..226 union 231..231, 237..237 union 254..254, 238..239, 3..3 union 25..25 union 35..35, 30..31 union 38..38, 99..100 union 112..112, 116..116 union 126..126 union 137..137, 133..133 union 136..136 union 140..140, 166..167 union 171..171, 183..183 union 185..185 union 194..194, 201..202 union 206..206, 44..44 union 51..51 union 61..61 union 68..68, 118..119 union 127..127 union 139..139, 216..217 union 220..220 union 223..223 union 228..228];
relation_temps = [{}, {}, {}, {}, 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, 997..997, 998..998, 999..999, 1000..1000, 1001..1001, 1002..1002, 1003..1003, 1004..1004, 1005..1005, 1006..1006, 1007..1007, 1008..1008, 1009..1009, 1010..1010, 58..58 union 63..63, 60..60 union 62..62, 89..89 union 116..116, 91..91 union 117..117, 73..73 union 75..75, 85..85 union 95..95, 191..191 union 200..200, 193..193 union 219..219, 153..153 union 155..155, 197..197 union 221..221, 165..165 union 169..169, 167..167 union 170..170, 174..174 union 176..176, 182..182 union 184..184, 189..189 union 199..199, 246..246 union 248..248, 281..281 union 303..303, 252..252 union 254..254, 259..259 union 261..261, 267..267 union 269..269, 274..274 union 277..277, 283..283 union 304..304, 352..352 union 360..360, 354..354 union 379..379, 338..338 union 340..340, 344..344 union 346..346, 350..350 union 358..358, 484..484 union 513..513, 425..425 union 431..431, 427..427 union 432..432, 490..490 union 516..516, 564..564 union 573..573, 566..566 union 592..592, 568..568 union 593..593, 550..550 union 552..552, 570..570 union 594..594, 556..556 union 558..558, 562..562 union 572..572, 627..627 union 632..632, 676..676 union 698..698, 678..678 union 699..699, 744..744 union 754..754, 746..746 union 773..773, 750..750 union 775..775, 736..736 union 738..738, 742..742 union 752..752, 808..808 union 813..813, 857..857 union 879..879, 859..859 union 880..880, 911..911 union 918..918, 913..913 union 920..920, 915..915 union 919..919, 993..993 union 996..996, 963..963 union 995..995, 67..67 union 69..69 union 87..87 union 97..97, 79..79 union 81..81 union 93..93 union 118..118, 332..332 union 334..334 union 356..356 union 380..380, 421..421 union 430..430 union 482..482 union 494..494, 480..480 union 488..488 union 492..492 union 515..515, 622..622 union 624..624 union 629..629 union 633..633, 730..730 union 732..732 union 748..748 union 774..774, 803..803 union 805..805 union 810..810 union 814..814, 159..159 union 161..161 union 180..180 union 185..185 union 195..195 union 220..220, 408..408 union 410..410 union 423..423 union 433..433 union 486..486 union 514..514, 888..888 union 890..890 union 894..894 union 896..896 union 900..900 union 902..902 union 909..909 union 921..921];
relation_ntuples = [3, 5, 7, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 4, 3, 3, 3, 4, 3, 3, 4, 3, 3, 3, 3, 4, 3, 3, 3, 3, 3, 4, 4, 10, 10, 13, 11, 10, 12, 13, 12, 31, 31, 158];
relation_range = [1..9, 10..24, 25..52, 53..68, 69..72, 73..76, 77..80, 81..84, 85..88, 89..92, 93..96, 97..100, 101..104, 105..108, 109..112, 113..116, 117..120, 121..124, 125..128, 129..132, 133..136, 137..140, 141..144, 145..148, 149..152, 153..156, 157..160, 161..164, 165..168, 169..172, 173..176, 177..180, 181..192, 193..204, 205..216, 217..228, 229..240, 241..252, 253..268, 269..284, 285..300, 301..312, 313..324, 325..336, 337..348, 349..360, 361..372, 373..388, 389..400, 401..412, 413..424, 425..436, 437..448, 449..460, 461..476, 477..488, 489..500, 501..512, 513..524, 525..536, 537..548, 549..560, 561..572, 573..588, 589..600, 601..616, 617..632, 633..644, 645..656, 657..668, 669..684, 685..696, 697..708, 709..724, 725..736, 737..748, 749..760, 761..772, 773..788, 789..800, 801..812, 813..824, 825..836, 837..848, 849..864, 865..880, 881..950, 951..1020, 1021..1111, 1112..1188, 1189..1258, 1259..1342, 1343..1433, 1434..1517, 1518..1827, 1828..2137, 2138..4191];
ints = [0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 3, 1, 25, 0, 4, 1, 26, 0, 5, 1, 27, 0, 6, 1, 28, 0, 7, 1, 29, 0, 8, 1, 30, 0, 9, 1, 31, 0, 10, 1, 32, 0, 11, 1, 33, 0, 12, 1, 34, 0, 13, 1, 35, 0, 14, 1, 36, 0, 15, 1, 37, 0, 16, 1, 38, 0, 458, 1, 480, 0, 459, 1, 481, 0, 460, 1, 482, 0, 461, 1, 483, 0, 462, 1, 484, 0, 463, 1, 485, 0, 464, 1, 486, 0, 465, 1, 487, 0, 466, 1, 488, 0, 467, 1, 489, 0, 468, 1, 490, 0, 469, 1, 491, 0, 470, 1, 492, 0, 471, 1, 493, 0, 0, -1, 1, 1, 0, -1, 23, 1, 1, 23, 40, 0, 0, -1, 2, 1, 0, -1, 24, 1, 1, 24, 41, 0, 0, -1, 21, 1, 0, -1, 39, 1, 1, 39, 55, 0, 0, -1, 42, 1, 0, -1, 43, 1, 1, 43, 56, 0, 0, -1, 45, 1, 0, -1, 46, 1, 1, 46, 47, 0, 0, -1, 51, 1, 0, -1, 52, 1, 1, 52, 53, 0, 0, -1, 58, 0, 1, 58, 104, 1, 0, -1, 80, 1, 1, 80, 104, 0, 0, -1, 77, 0, 1, 77, 105, 1, 0, -1, 81, 1, 1, 81, 105, 0, 0, -1, 79, 0, 1, 79, 86, 1, 0, -1, 83, 1, 1, 83, 86, 0, 0, -1, 84, 1, 0, -1, 85, 1, 1, 85, 107, 0, 0, -1, 87, 1, 0, -1, 88, 1, 1, 88, 92, 0, 0, -1, 90, 1, 0, -1, 91, 1, 1, 91, 93, 0, 0, -1, 94, 1, 0, -1, 95, 1, 1, 95, 96, 0, 0, -1, 97, 1, 0, -1, 98, 1, 1, 98, 100, 0, 0, -1, 101, 1, 0, -1, 102, 1, 1, 102, 103, 0, 0, -1, 108, 0, 1, 108, 130, 1, 0, -1, 128, 1, 1, 128, 130, 0, 0, -1, 127, 1, 0, -1, 129, 1, 1, 129, 147, 0, 0, -1, 131, 1, 0, -1, 132, 1, 1, 132, 133, 0, 0, -1, 134, 1, 0, -1, 135, 1, 1, 135, 137, 0, 0, -1, 138, 1, 0, -1, 139, 1, 1, 139, 141, 0, 0, -1, 142, 1, 0, -1, 143, 1, 1, 143, 144, 0, 0, -1, 145, 1, 0, -1, 146, 1, 1, 146, 148, 0, 0, -1, 149, 0, 1, 149, 183, 1, 0, -1, 170, 1, 1, 170, 183, 0, 0, -1, 168, 1, 0, -1, 171, 1, 1, 171, 184, 0, 0, -1, 174, 1, 0, -1, 175, 1, 1, 175, 176, 0, 0, -1, 177, 1, 0, -1, 178, 1, 1, 178, 179, 0, 0, -1, 180, 1, 0, -1, 181, 1, 1, 181, 182, 0, 0, -1, 205, 1, 0, -1, 208, 1, 1, 208, 246, 0, 0, -1, 212, 1, 0, -1, 213, 1, 1, 213, 219, 0, 0, -1, 214, 1, 0, -1, 215, 1, 1, 215, 220, 0, 0, -1, 242, 1, 0, -1, 243, 1, 1, 243, 249, 0, 0, -1, 250, 0, 1, 250, 285, 1, 0, -1, 273, 1, 1, 273, 285, 0, 0, -1, 269, 1, 0, -1, 274, 1, 1, 274, 286, 0, 0, -1, 270, 0, 1, 270, 287, 1, 0, -1, 275, 1, 1, 275, 287, 0, 0, -1, 271, 0, 1, 271, 278, 1, 0, -1, 276, 1, 1, 276, 278, 0, 0, -1, 272, 1, 0, -1, 277, 1, 1, 277, 288, 0, 0, -1, 279, 1, 0, -1, 280, 1, 1, 280, 281, 0, 0, -1, 282, 1, 0, -1, 283, 1, 1, 283, 284, 0, 0, -1, 289, 0, 1, 289, 316, 1, 0, -1, 310, 1, 1, 310, 316, 0, 0, -1, 308, 1, 0, -1, 311, 1, 1, 311, 339, 0, 0, -1, 318, 1, 0, -1, 338, 1, 1, 338, 340, 0, 0, -1, 341, 0, 1, 341, 374, 1, 0, -1, 363, 1, 1, 363, 374, 0, 0, -1, 360, 1, 0, -1, 364, 1, 1, 364, 375, 0, 0, -1, 362, 1, 0, -1, 366, 1, 1, 366, 377, 0, 0, -1, 368, 1, 0, -1, 369, 1, 1, 369, 370, 0, 0, -1, 371, 1, 0, -1, 372, 1, 1, 372, 373, 0, 0, -1, 378, 0, 1, 378, 405, 1, 0, -1, 399, 1, 1, 399, 405, 0, 0, -1, 397, 1, 0, -1, 400, 1, 1, 400, 428, 0, 0, -1, 407, 1, 0, -1, 427, 1, 1, 427, 429, 0, 0, -1, 437, 1, 0, -1, 438, 1, 1, 438, 448, 0, 0, -1, 440, 1, 0, -1, 441, 1, 1, 441, 449, 0, 0, -1, 444, 1, 0, -1, 445, 1, 1, 445, 450, 0, 0, -1, 457, 0, 1, 457, 494, 1, 0, -1, 477, 1, 1, 477, 494, 0, 0, -1, 476, 0, 1, 476, 479, 1, 0, -1, 478, 1, 1, 478, 479, 0, 0, 0, -1, 0, -1, 0, 1, 0, 0, -1, 0, -1, 22, 1, 0, 0, -1, 22, -1, 22, 1, 1, 0, 0, 22, -1, 44, 1, 1, 0, 22, 0, -1, 44, 1, 1, 0, 22, 22, -1, 44, 1, 1, 0, 22, 44, -1, 44, 1, 1, 1, 0, 44, 22, 54, 1, 1, 1, 22, 44, 0, 54, 1, 1, 1, 22, 44, 22, 54, 0, 0, 0, -1, 48, -1, 48, 1, 0, 0, -1, 48, -1, 49, 1, 0, 0, -1, 49, -1, 49, 1, 1, 0, 48, 49, -1, 50, 1, 1, 0, 49, 48, -1, 50, 1, 1, 0, 49, 49, -1, 50, 1, 1, 0, 49, 50, -1, 50, 1, 1, 1, 48, 50, 49, 57, 1, 1, 1, 49, 50, 48, 57, 1, 1, 1, 49, 50, 49, 57, 0, 0, 0, -1, 169, -1, 169, 0, 1, 0, 169, 173, -1, 169, 0, 1, 0, 169, 173, -1, 173, 0, 1, 1, 169, 173, 169, 185, 1, 0, 0, -1, 169, -1, 172, 1, 0, 0, -1, 172, -1, 172, 1, 1, 0, 169, 172, -1, 173, 1, 1, 0, 172, 169, -1, 173, 1, 1, 0, 172, 172, -1, 173, 1, 1, 0, 172, 173, -1, 173, 1, 1, 1, 169, 173, 172, 185, 1, 1, 1, 172, 173, 169, 185, 1, 1, 1, 172, 173, 172, 185, 0, 1, 0, 186, 217, -1, 186, 0, 1, 1, 186, 217, 186, 245, 1, 0, 0, -1, 186, -1, 207, 1, 0, 0, -1, 207, -1, 186, 1, 1, 0, 186, 207, -1, 217, 1, 1, 0, 207, 186, -1, 217, 1, 1, 0, 207, 207, -1, 217, 1, 1, 0, 207, 217, -1, 186, 1, 1, 1, 186, 217, 207, 245, 1, 1, 1, 207, 217, 186, 245, 1, 1, 1, 207, 217, 207, 245, 0, 0, 0, -1, -1, 221, 221, 1, 0, 0, -1, -1, 221, 241, 1, 0, 0, -1, -1, 241, 241, 1, 1, 0, 221, -1, 241, 244, 1, 1, 0, 241, -1, 221, 244, 1, 1, 0, 241, -1, 241, 244, 1, 1, 0, 241, -1, 244, 244, 1, 1, 1, 221, 241, 244, 248, 1, 1, 1, 241, 221, 244, 248, 1, 1, 1, 241, 241, 244, 248, 0, 0, 0, -1, 309, -1, 309, 0, 1, 0, 309, 313, -1, 313, 0, 1, 1, 309, 313, 309, 317, 1, 0, 0, -1, 309, -1, 312, 1, 0, 0, -1, 312, -1, 312, 1, 1, 0, 309, 312, -1, 313, 1, 1, 0, 312, 309, -1, 313, 1, 1, 0, 312, 312, -1, 313, 1, 1, 0, 312, 313, -1, 313, 1, 1, 1, 309, 313, 312, 317, 1, 1, 1, 312, 313, 309, 317, 1, 1, 1, 312, 313, 312, 317, 0, 0, 0, -1, 361, -1, 361, 0, 1, 0, 361, 367, -1, 361, 0, 1, 0, 361, 367, -1, 367, 0, 1, 1, 361, 367, 361, 376, 1, 0, 0, -1, 361, -1, 365, 1, 0, 0, -1, 365, -1, 365, 1, 1, 0, 361, 365, -1, 367, 1, 1, 0, 365, 361, -1, 367, 1, 1, 0, 365, 365, -1, 367, 1, 1, 0, 365, 367, -1, 367, 1, 1, 1, 361, 367, 365, 376, 1, 1, 1, 365, 367, 361, 376, 1, 1, 1, 365, 367, 365, 376, 0, 0, 0, -1, 398, -1, 398, 0, 1, 0, 398, 402, -1, 402, 0, 1, 1, 398, 402, 398, 406, 1, 0, 0, -1, 398, -1, 401, 1, 0, 0, -1, 401, -1, 401, 1, 1, 0, 398, 401, -1, 402, 1, 1, 0, 401, 398, -1, 402, 1, 1, 0, 401, 401, -1, 402, 1, 1, 0, 401, 402, -1, 402, 1, 1, 1, 398, 402, 401, 406, 1, 1, 1, 401, 402, 398, 406, 1, 1, 1, 401, 402, 401, 406, 0, 0, 0, 0, -1, 78, -1, 78, -1, 78, 0, 1, 0, 0, 78, 89, -1, 89, -1, 78, 0, 1, 0, 0, 78, 89, -1, 89, -1, 89, 0, 1, 1, 0, 78, 89, 78, 89, -1, 99, 0, 1, 1, 0, 78, 89, 78, 99, -1, 78, 0, 1, 1, 0, 78, 89, 78, 99, -1, 99, 1, 0, 0, 0, -1, 78, -1, 78, -1, 82, 1, 0, 0, 0, -1, 78, -1, 82, -1, 82, 1, 0, 0, 0, -1, 82, -1, 82, -1, 82, 1, 1, 0, 0, 78, 78, -1, 82, -1, 89, 1, 1, 0, 0, 78, 82, -1, 82, -1, 89, 1, 1, 0, 0, 78, 82, -1, 89, -1, 89, 1, 1, 0, 0, 82, 78, -1, 78, -1, 89, 1, 1, 0, 0, 82, 78, -1, 82, -1, 89, 1, 1, 0, 0, 82, 78, -1, 89, -1, 89, 1, 1, 0, 0, 82, 82, -1, 82, -1, 89, 1, 1, 0, 0, 82, 82, -1, 89, -1, 89, 1, 1, 0, 0, 82, 89, -1, 89, -1, 89, 1, 1, 1, 0, 78, 78, 82, 89, -1, 99, 1, 1, 1, 0, 78, 82, 78, 89, -1, 99, 1, 1, 1, 0, 78, 82, 82, 89, -1, 99, 1, 1, 1, 0, 78, 89, 82, 89, -1, 99, 1, 1, 1, 0, 78, 89, 82, 99, -1, 99, 1, 1, 1, 0, 82, 78, 78, 89, -1, 99, 1, 1, 1, 0, 82, 78, 82, 89, -1, 99, 1, 1, 1, 0, 82, 82, 78, 89, -1, 99, 1, 1, 1, 0, 82, 82, 82, 89, -1, 99, 1, 1, 1, 0, 82, 89, 78, 89, -1, 99, 1, 1, 1, 0, 82, 89, 78, 99, -1, 99, 1, 1, 1, 0, 82, 89, 82, 89, -1, 99, 1, 1, 1, 0, 82, 89, 82, 99, -1, 99, 0, 1, 0, 0, 206, 210, -1, 210, -1, 206, 0, 1, 1, 0, 206, 210, 206, 210, -1, 218, 0, 1, 1, 0, 206, 210, 206, 218, -1, 206, 0, 1, 1, 1, 206, 210, 206, 218, 206, 247, 1, 0, 0, 0, -1, 206, -1, 206, -1, 209, 1, 0, 0, 0, -1, 206, -1, 209, -1, 206, 1, 1, 0, 0, 206, 206, -1, 209, -1, 210, 1, 1, 0, 0, 206, 209, -1, 209, -1, 210, 1, 1, 0, 0, 206, 210, -1, 209, -1, 210, 1, 1, 0, 0, 209, 206, -1, 206, -1, 210, 1, 1, 0, 0, 209, 206, -1, 209, -1, 210, 1, 1, 0, 0, 209, 206, -1, 210, -1, 206, 1, 1, 0, 0, 209, 209, -1, 209, -1, 210, 1, 1, 0, 0, 209, 210, -1, 209, -1, 210, 1, 1, 1, 0, 206, 206, 209, 210, -1, 218, 1, 1, 1, 0, 206, 209, 206, 210, -1, 218, 1, 1, 1, 0, 206, 209, 209, 210, -1, 218, 1, 1, 1, 0, 206, 210, 209, 210, -1, 218, 1, 1, 1, 0, 209, 206, 206, 210, -1, 218, 1, 1, 1, 0, 209, 206, 209, 210, -1, 218, 1, 1, 1, 0, 209, 209, 206, 210, -1, 218, 1, 1, 1, 0, 209, 209, 209, 210, -1, 218, 1, 1, 1, 0, 209, 210, 206, 210, -1, 218, 1, 1, 1, 0, 209, 210, 209, 210, -1, 218, 1, 1, 1, 1, 206, 210, 206, 218, 209, 247, 1, 1, 1, 1, 206, 210, 209, 218, 206, 247, 1, 1, 1, 1, 206, 210, 209, 218, 209, 247, 1, 1, 1, 1, 209, 210, 206, 218, 206, 247, 1, 1, 1, 1, 209, 210, 206, 218, 209, 247, 1, 1, 1, 1, 209, 210, 209, 218, 206, 247, 1, 1, 1, 1, 209, 210, 209, 218, 209, 247, 0, 0, 0, 0, 0, -1, 434, -1, 434, -1, 434, -1, 434, 0, 1, 0, 0, 0, 434, 436, -1, 436, -1, 436, -1, 436, 0, 1, 1, 0, 0, 434, 436, 434, 436, -1, 436, -1, 439, 0, 1, 1, 0, 0, 434, 436, 434, 436, -1, 439, -1, 439, 0, 1, 1, 0, 0, 434, 436, 434, 439, -1, 439, -1, 439, 0, 1, 1, 1, 0, 434, 436, 434, 436, 434, 439, -1, 442, 0, 1, 1, 1, 0, 434, 436, 434, 439, 434, 439, -1, 442, 0, 1, 1, 1, 0, 434, 436, 434, 439, 434, 442, -1, 442, 1, 0, 0, 0, 0, -1, 434, -1, 434, -1, 434, -1, 435, 1, 0, 0, 0, 0, -1, 434, -1, 434, -1, 435, -1, 435, 1, 0, 0, 0, 0, -1, 434, -1, 435, -1, 434, -1, 435, 1, 0, 0, 0, 0, -1, 434, -1, 435, -1, 435, -1, 435, 1, 0, 0, 0, 0, -1, 435, -1, 434, -1, 434, -1, 435, 1, 0, 0, 0, 0, -1, 435, -1, 434, -1, 435, -1, 435, 1, 0, 0, 0, 0, -1, 435, -1, 435, -1, 434, -1, 435, 1, 0, 0, 0, 0, -1, 435, -1, 435, -1, 435, -1, 435, 1, 1, 0, 0, 0, 434, 434, -1, 434, -1, 435, -1, 436, 1, 1, 0, 0, 0, 434, 434, -1, 435, -1, 434, -1, 436, 1, 1, 0, 0, 0, 434, 434, -1, 435, -1, 435, -1, 436, 1, 1, 0, 0, 0, 434, 434, -1, 435, -1, 436, -1, 436, 1, 1, 0, 0, 0, 434, 435, -1, 434, -1, 434, -1, 436, 1, 1, 0, 0, 0, 434, 435, -1, 434, -1, 435, -1, 436, 1, 1, 0, 0, 0, 434, 435, -1, 434, -1, 436, -1, 436, 1, 1, 0, 0, 0, 434, 435, -1, 435, -1, 434, -1, 436, 1, 1, 0, 0, 0, 434, 435, -1, 435, -1, 435, -1, 436, 1, 1, 0, 0, 0, 434, 435, -1, 435, -1, 436, -1, 436, 1, 1, 0, 0, 0, 434, 435, -1, 436, -1, 434, -1, 436, 1, 1, 0, 0, 0, 434, 435, -1, 436, -1, 436, -1, 436, 1, 1, 0, 0, 0, 435, 434, -1, 434, -1, 434, -1, 436, 1, 1, 0, 0, 0, 435, 434, -1, 434, -1, 435, -1, 436, 1, 1, 0, 0, 0, 435, 434, -1, 434, -1, 436, -1, 436, 1, 1, 0, 0, 0, 435, 434, -1, 435, -1, 434, -1, 436, 1, 1, 0, 0, 0, 435, 434, -1, 435, -1, 435, -1, 436, 1, 1, 0, 0, 0, 435, 434, -1, 435, -1, 436, -1, 436, 1, 1, 0, 0, 0, 435, 434, -1, 436, -1, 434, -1, 436, 1, 1, 0, 0, 0, 435, 434, -1, 436, -1, 436, -1, 436, 1, 1, 0, 0, 0, 435, 435, -1, 434, -1, 434, -1, 436, 1, 1, 0, 0, 0, 435, 435, -1, 434, -1, 435, -1, 436, 1, 1, 0, 0, 0, 435, 435, -1, 434, -1, 436, -1, 436, 1, 1, 0, 0, 0, 435, 435, -1, 435, -1, 434, -1, 436, 1, 1, 0, 0, 0, 435, 435, -1, 435, -1, 435, -1, 436, 1, 1, 0, 0, 0, 435, 435, -1, 435, -1, 436, -1, 436, 1, 1, 0, 0, 0, 435, 435, -1, 436, -1, 434, -1, 436, 1, 1, 0, 0, 0, 435, 435, -1, 436, -1, 436, -1, 436, 1, 1, 0, 0, 0, 435, 436, -1, 434, -1, 434, -1, 436, 1, 1, 0, 0, 0, 435, 436, -1, 434, -1, 436, -1, 436, 1, 1, 0, 0, 0, 435, 436, -1, 436, -1, 434, -1, 436, 1, 1, 0, 0, 0, 435, 436, -1, 436, -1, 436, -1, 436, 1, 1, 1, 0, 0, 434, 434, 434, 435, -1, 436, -1, 439, 1, 1, 1, 0, 0, 434, 434, 435, 434, -1, 436, -1, 439, 1, 1, 1, 0, 0, 434, 434, 435, 435, -1, 436, -1, 439, 1, 1, 1, 0, 0, 434, 434, 435, 436, -1, 434, -1, 439, 1, 1, 1, 0, 0, 434, 434, 435, 436, -1, 436, -1, 439, 1, 1, 1, 0, 0, 434, 434, 435, 436, -1, 439, -1, 439, 1, 1, 1, 0, 0, 434, 435, 434, 434, -1, 436, -1, 439, 1, 1, 1, 0, 0, 434, 435, 434, 435, -1, 436, -1, 439, 1, 1, 1, 0, 0, 434, 435, 434, 436, -1, 434, -1, 439, 1, 1, 1, 0, 0, 434, 435, 434, 436, -1, 436, -1, 439, 1, 1, 1, 0, 0, 434, 435, 434, 436, -1, 439, -1, 439, 1, 1, 1, 0, 0, 434, 435, 435, 434, -1, 436, -1, 439, 1, 1, 1, 0, 0, 434, 435, 435, 435, -1, 436, -1, 439, 1, 1, 1, 0, 0, 434, 435, 435, 436, -1, 434, -1, 439, 1, 1, 1, 0, 0, 434, 435, 435, 436, -1, 436, -1, 439, 1, 1, 1, 0, 0, 434, 435, 435, 436, -1, 439, -1, 439, 1, 1, 1, 0, 0, 434, 436, 435, 434, -1, 434, -1, 439, 1, 1, 1, 0, 0, 434, 436, 435, 434, -1, 436, -1, 439, 1, 1, 1, 0, 0, 434, 436, 435, 434, -1, 439, -1, 439, 1, 1, 1, 0, 0, 434, 436, 435, 436, -1, 434, -1, 439, 1, 1, 1, 0, 0, 434, 436, 435, 436, -1, 436, -1, 439, 1, 1, 1, 0, 0, 434, 436, 435, 436, -1, 439, -1, 439, 1, 1, 1, 0, 0, 434, 436, 435, 439, -1, 434, -1, 439, 1, 1, 1, 0, 0, 434, 436, 435, 439, -1, 439, -1, 439, 1, 1, 1, 0, 0, 435, 434, 434, 434, -1, 436, -1, 439, 1, 1, 1, 0, 0, 435, 434, 434, 435, -1, 436, -1, 439, 1, 1, 1, 0, 0, 435, 434, 434, 436, -1, 434, -1, 439, 1, 1, 1, 0, 0, 435, 434, 434, 436, -1, 436, -1, 439, 1, 1, 1, 0, 0, 435, 434, 434, 436, -1, 439, -1, 439, 1, 1, 1, 0, 0, 435, 434, 435, 434, -1, 436, -1, 439, 1, 1, 1, 0, 0, 435, 434, 435, 435, -1, 436, -1, 439, 1, 1, 1, 0, 0, 435, 434, 435, 436, -1, 434, -1, 439, 1, 1, 1, 0, 0, 435, 434, 435, 436, -1, 436, -1, 439, 1, 1, 1, 0, 0, 435, 434, 435, 436, -1, 439, -1, 439, 1, 1, 1, 0, 0, 435, 435, 434, 434, -1, 436, -1, 439, 1, 1, 1, 0, 0, 435, 435, 434, 435, -1, 436, -1, 439, 1, 1, 1, 0, 0, 435, 435, 434, 436, -1, 434, -1, 439, 1, 1, 1, 0, 0, 435, 435, 434, 436, -1, 436, -1, 439, 1, 1, 1, 0, 0, 435, 435, 434, 436, -1, 439, -1, 439, 1, 1, 1, 0, 0, 435, 435, 435, 434, -1, 436, -1, 439, 1, 1, 1, 0, 0, 435, 435, 435, 435, -1, 436, -1, 439, 1, 1, 1, 0, 0, 435, 435, 435, 436, -1, 434, -1, 439, 1, 1, 1, 0, 0, 435, 435, 435, 436, -1, 436, -1, 439, 1, 1, 1, 0, 0, 435, 435, 435, 436, -1, 439, -1, 439, 1, 1, 1, 0, 0, 435, 436, 434, 434, -1, 434, -1, 439, 1, 1, 1, 0, 0, 435, 436, 434, 434, -1, 436, -1, 439, 1, 1, 1, 0, 0, 435, 436, 434, 434, -1, 439, -1, 439, 1, 1, 1, 0, 0, 435, 436, 434, 436, -1, 434, -1, 439, 1, 1, 1, 0, 0, 435, 436, 434, 436, -1, 436, -1, 439, 1, 1, 1, 0, 0, 435, 436, 434, 436, -1, 439, -1, 439, 1, 1, 1, 0, 0, 435, 436, 434, 439, -1, 434, -1, 439, 1, 1, 1, 0, 0, 435, 436, 434, 439, -1, 439, -1, 439, 1, 1, 1, 0, 0, 435, 436, 435, 434, -1, 434, -1, 439, 1, 1, 1, 0, 0, 435, 436, 435, 434, -1, 436, -1, 439, 1, 1, 1, 0, 0, 435, 436, 435, 434, -1, 439, -1, 439, 1, 1, 1, 0, 0, 435, 436, 435, 436, -1, 434, -1, 439, 1, 1, 1, 0, 0, 435, 436, 435, 436, -1, 436, -1, 439, 1, 1, 1, 0, 0, 435, 436, 435, 436, -1, 439, -1, 439, 1, 1, 1, 0, 0, 435, 436, 435, 439, -1, 434, -1, 439, 1, 1, 1, 0, 0, 435, 436, 435, 439, -1, 439, -1, 439, 1, 1, 1, 1, 0, 434, 434, 434, 436, 435, 439, -1, 442, 1, 1, 1, 1, 0, 434, 434, 435, 436, 434, 439, -1, 442, 1, 1, 1, 1, 0, 434, 434, 435, 436, 435, 439, -1, 442, 1, 1, 1, 1, 0, 434, 435, 434, 436, 434, 439, -1, 442, 1, 1, 1, 1, 0, 434, 435, 434, 436, 435, 439, -1, 442, 1, 1, 1, 1, 0, 434, 435, 435, 436, 434, 439, -1, 442, 1, 1, 1, 1, 0, 434, 435, 435, 436, 435, 439, -1, 442, 1, 1, 1, 1, 0, 434, 436, 434, 434, 435, 439, -1, 442, 1, 1, 1, 1, 0, 434, 436, 434, 436, 435, 439, -1, 442, 1, 1, 1, 1, 0, 434, 436, 434, 439, 435, 434, -1, 442, 1, 1, 1, 1, 0, 434, 436, 434, 439, 435, 439, -1, 442, 1, 1, 1, 1, 0, 434, 436, 434, 439, 435, 442, -1, 442, 1, 1, 1, 1, 0, 434, 436, 435, 434, 434, 439, -1, 442, 1, 1, 1, 1, 0, 434, 436, 435, 434, 435, 439, -1, 442, 1, 1, 1, 1, 0, 434, 436, 435, 436, 434, 439, -1, 442, 1, 1, 1, 1, 0, 434, 436, 435, 436, 435, 439, -1, 442, 1, 1, 1, 1, 0, 434, 436, 435, 439, 434, 434, -1, 442, 1, 1, 1, 1, 0, 434, 436, 435, 439, 434, 439, -1, 442, 1, 1, 1, 1, 0, 434, 436, 435, 439, 434, 442, -1, 442, 1, 1, 1, 1, 0, 434, 436, 435, 439, 435, 434, -1, 442, 1, 1, 1, 1, 0, 434, 436, 435, 439, 435, 439, -1, 442, 1, 1, 1, 1, 0, 434, 436, 435, 439, 435, 442, -1, 442, 1, 1, 1, 1, 0, 435, 434, 434, 436, 434, 439, -1, 442, 1, 1, 1, 1, 0, 435, 434, 434, 436, 435, 439, -1, 442, 1, 1, 1, 1, 0, 435, 434, 435, 436, 434, 439, -1, 442, 1, 1, 1, 1, 0, 435, 434, 435, 436, 435, 439, -1, 442, 1, 1, 1, 1, 0, 435, 435, 434, 436, 434, 439, -1, 442, 1, 1, 1, 1, 0, 435, 435, 434, 436, 435, 439, -1, 442, 1, 1, 1, 1, 0, 435, 435, 435, 436, 434, 439, -1, 442, 1, 1, 1, 1, 0, 435, 435, 435, 436, 435, 439, -1, 442, 1, 1, 1, 1, 0, 435, 436, 434, 434, 434, 439, -1, 442, 1, 1, 1, 1, 0, 435, 436, 434, 434, 435, 439, -1, 442, 1, 1, 1, 1, 0, 435, 436, 434, 436, 434, 439, -1, 442, 1, 1, 1, 1, 0, 435, 436, 434, 436, 435, 439, -1, 442, 1, 1, 1, 1, 0, 435, 436, 434, 439, 434, 434, -1, 442, 1, 1, 1, 1, 0, 435, 436, 434, 439, 434, 439, -1, 442, 1, 1, 1, 1, 0, 435, 436, 434, 439, 434, 442, -1, 442, 1, 1, 1, 1, 0, 435, 436, 434, 439, 435, 434, -1, 442, 1, 1, 1, 1, 0, 435, 436, 434, 439, 435, 439, -1, 442, 1, 1, 1, 1, 0, 435, 436, 434, 439, 435, 442, -1, 442, 1, 1, 1, 1, 0, 435, 436, 435, 434, 434, 439, -1, 442, 1, 1, 1, 1, 0, 435, 436, 435, 434, 435, 439, -1, 442, 1, 1, 1, 1, 0, 435, 436, 435, 436, 434, 439, -1, 442, 1, 1, 1, 1, 0, 435, 436, 435, 436, 435, 439, -1, 442, 1, 1, 1, 1, 0, 435, 436, 435, 439, 434, 434, -1, 442, 1, 1, 1, 1, 0, 435, 436, 435, 439, 434, 439, -1, 442, 1, 1, 1, 1, 0, 435, 436, 435, 439, 434, 442, -1, 442, 1, 1, 1, 1, 0, 435, 436, 435, 439, 435, 434, -1, 442, 1, 1, 1, 1, 0, 435, 436, 435, 439, 435, 439, -1, 442, 1, 1, 1, 1, 0, 435, 436, 435, 439, 435, 442, -1, 442];
calleesaved_spill = [6..6 union 240..240, 7..7 union 241..241, 8..8 union 242..242, 9..9 union 243..243, 10..10 union 244..244, 11..11 union 245..245, 12..12 union 246..246, 13..13 union 247..247, 14..14 union 248..248, 15..15 union 249..249, 16..16 union 250..250, 17..17 union 251..251, 18..18 union 252..252, 19..19 union 253..253];
cs_spill_transpose = array2d(1..2, 1..14, [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253]);
activator_insns = [6..8 union 25..25];
activator_ops = [2..2 union 255..255];
value_precede_min = [1, 1];
value_precede_max = [179, 179];
value_precede_regs = [1..1 union 3..3 union 7..15 union 24..24 union 30..30, 16..23];
value_precede_temps = [22, 23, 24, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 207, 208, 209, 210, 211, 212, 213, 214, 215, 217, 218, 219, 220, 241, 242, 243, 244, 245, 246, 247, 248, 249, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 310, 311, 312, 313, 314, 316, 317, 338, 339, 340, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 399, 400, 401, 402, 403, 405, 406, 427, 428, 429, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 447, 448, 449, 450, 477, 478, 479, 494];
lat_table = array2d(1..1651, 1..4, [0, 2, 0, 1, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 2, 5, 1, 0, 2, 6, 1, 0, 2, 7, 1, 0, 2, 8, 1, 0, 2, 9, 1, 0, 2, 10, 1, 0, 2, 11, 1, 0, 2, 12, 1, 0, 2, 13, 1, 0, 2, 14, 1, 0, 2, 15, 1, 0, 2, 16, 1, 0, 2, 17, 1, 0, 2, 18, 1, 0, 2, 19, 1, 0, 2, 20, 1, 0, 2, 21, 1, 3, 0, 22, 0, 3, 0, 23, 0, 3, 5, 22, 0, 3, 5, 23, 1, 3, 6, 22, 0, 3, 6, 23, 1, 4, 0, 24, 0, 4, 0, 25, 0, 4, 5, 24, 0, 4, 5, 25, 1, 4, 6, 24, 0, 4, 6, 25, 1, 5, 0, 26, 0, 5, 0, 27, 0, 5, 5, 26, 0, 5, 5, 27, 1, 5, 6, 26, 0, 5, 6, 27, 1, 6, 0, 28, 0, 6, 0, 29, 0, 6, 6, 28, 0, 6, 6, 29, 1, 7, 0, 30, 0, 7, 0, 31, 0, 7, 6, 30, 0, 7, 6, 31, 1, 8, 0, 32, 0, 8, 0, 33, 0, 8, 6, 32, 0, 8, 6, 33, 1, 9, 0, 34, 0, 9, 0, 35, 0, 9, 6, 34, 0, 9, 6, 35, 1, 10, 0, 36, 0, 10, 0, 37, 0, 10, 6, 36, 0, 10, 6, 37, 1, 11, 0, 38, 0, 11, 0, 39, 0, 11, 6, 38, 0, 11, 6, 39, 1, 12, 0, 40, 0, 12, 0, 41, 0, 12, 6, 40, 0, 12, 6, 41, 1, 13, 0, 42, 0, 13, 0, 43, 0, 13, 6, 42, 0, 13, 6, 43, 1, 14, 0, 44, 0, 14, 0, 45, 0, 14, 7, 44, 0, 14, 7, 45, 1, 15, 0, 46, 0, 15, 0, 47, 0, 15, 7, 46, 0, 15, 7, 47, 1, 16, 0, 48, 0, 16, 0, 49, 0, 16, 7, 48, 0, 16, 7, 49, 1, 17, 0, 50, 0, 17, 0, 51, 0, 17, 7, 50, 0, 17, 7, 51, 1, 18, 0, 52, 0, 18, 0, 53, 0, 18, 7, 52, 0, 18, 7, 53, 1, 19, 0, 54, 0, 19, 0, 55, 0, 19, 7, 54, 0, 19, 7, 55, 1, 20, 0, 56, 0, 20, 0, 57, 0, 20, 5, 56, 0, 20, 5, 57, 1, 20, 6, 56, 0, 20, 6, 57, 1, 21, 0, 58, 0, 21, 0, 59, 0, 21, 5, 58, 0, 21, 5, 59, 1, 21, 8, 58, 0, 21, 8, 59, 3, 22, 0, 60, 0, 22, 0, 61, 0, 22, 5, 60, 0, 22, 5, 61, 1, 22, 8, 60, 0, 22, 8, 61, 3, 23, 9, 62, 0, 23, 9, 63, 0, 23, 9, 64, 1, 24, 0, 65, 0, 24, 0, 66, 0, 24, 5, 65, 0, 24, 5, 66, 1, 24, 6, 65, 0, 24, 6, 66, 1, 25, 0, 67, 0, 25, 0, 68, 0, 25, 5, 67, 0, 25, 5, 68, 1, 25, 8, 67, 0, 25, 8, 68, 3, 26, 10, 69, 0, 26, 10, 70, 3, 27, 0, 71, 0, 27, 0, 72, 0, 27, 5, 71, 0, 27, 5, 72, 1, 27, 6, 71, 0, 27, 6, 72, 1, 28, 0, 73, 0, 28, 0, 74, 0, 28, 5, 73, 0, 28, 5, 74, 1, 28, 8, 73, 0, 28, 8, 74, 3, 29, 11, 75, 0, 29, 11, 76, 1, 30, 0, 77, 0, 30, 0, 78, 0, 30, 5, 77, 0, 30, 5, 78, 1, 30, 6, 77, 0, 30, 6, 78, 1, 31, 0, 79, 0, 31, 0, 80, 0, 31, 5, 79, 0, 31, 5, 80, 1, 31, 8, 79, 0, 31, 8, 80, 3, 32, 12, 81, 0, 32, 12, 82, 1, 33, 0, 83, 0, 33, 0, 84, 0, 33, 5, 83, 0, 33, 5, 84, 1, 33, 6, 83, 0, 33, 6, 84, 1, 34, 0, 85, 0, 34, 0, 86, 0, 34, 5, 85, 0, 34, 5, 86, 1, 34, 8, 85, 0, 34, 8, 86, 3, 35, 0, 87, 0, 35, 0, 88, 0, 35, 5, 87, 0, 35, 5, 88, 1, 35, 8, 87, 0, 35, 8, 88, 3, 36, 0, 89, 0, 36, 0, 90, 0, 36, 5, 89, 0, 36, 5, 90, 1, 36, 8, 89, 0, 36, 8, 90, 3, 37, 0, 91, 0, 37, 0, 92, 0, 37, 5, 91, 0, 37, 5, 92, 1, 37, 8, 91, 0, 37, 8, 92, 3, 38, 0, 93, 0, 38, 0, 94, 0, 38, 5, 93, 0, 38, 5, 94, 1, 38, 8, 93, 0, 38, 8, 94, 3, 39, 13, 95, 0, 39, 13, 96, 0, 40, 2, 97, 0, 40, 2, 98, 0, 40, 2, 99, 0, 40, 2, 100, 0, 40, 2, 101, 0, 40, 2, 102, 0, 40, 2, 103, 0, 40, 2, 104, 0, 40, 2, 105, 0, 40, 2, 106, 0, 40, 2, 107, 0, 40, 2, 108, 0, 40, 2, 109, 0, 40, 2, 110, 0, 40, 2, 111, 0, 40, 2, 112, 0, 40, 2, 113, 0, 40, 2, 114, 0, 40, 2, 115, 0, 40, 2, 116, 0, 40, 2, 117, 0, 40, 2, 118, 0, 41, 2, 119, 1, 41, 2, 120, 1, 41, 2, 121, 1, 41, 2, 122, 1, 41, 2, 123, 1, 41, 2, 124, 1, 41, 2, 125, 1, 41, 2, 126, 1, 41, 2, 127, 1, 41, 2, 128, 1, 41, 2, 129, 1, 41, 2, 130, 1, 41, 2, 131, 1, 41, 2, 132, 1, 41, 2, 133, 1, 41, 2, 134, 1, 41, 2, 135, 1, 41, 2, 136, 1, 41, 2, 137, 1, 41, 2, 138, 1, 41, 2, 139, 1, 41, 2, 140, 1, 42, 0, 141, 0, 42, 0, 142, 0, 42, 5, 141, 0, 42, 5, 142, 1, 42, 6, 141, 0, 42, 6, 142, 1, 43, 0, 143, 0, 43, 0, 144, 0, 43, 5, 143, 0, 43, 5, 144, 1, 43, 6, 143, 0, 43, 6, 144, 1, 44, 0, 145, 0, 44, 0, 146, 0, 44, 5, 145, 0, 44, 5, 146, 1, 44, 6, 145, 0, 44, 6, 146, 1, 45, 0, 147, 0, 45, 0, 148, 0, 45, 5, 147, 0, 45, 5, 148, 1, 45, 6, 147, 0, 45, 6, 148, 1, 46, 11, 149, 0, 46, 11, 150, 1, 47, 0, 151, 0, 47, 0, 152, 0, 47, 5, 151, 0, 47, 5, 152, 1, 47, 6, 151, 0, 47, 6, 152, 1, 48, 0, 153, 0, 48, 0, 154, 0, 48, 5, 153, 0, 48, 5, 154, 1, 48, 8, 153, 0, 48, 8, 154, 3, 49, 14, 155, 0, 49, 14, 156, 1, 50, 0, 157, 0, 50, 0, 158, 0, 50, 5, 157, 0, 50, 5, 158, 1, 50, 6, 157, 0, 50, 6, 158, 1, 51, 0, 159, 0, 51, 0, 160, 0, 51, 5, 159, 0, 51, 5, 160, 1, 51, 8, 159, 0, 51, 8, 160, 3, 52, 15, 161, 0, 52, 15, 162, 3, 53, 0, 163, 0, 53, 0, 164, 0, 53, 5, 163, 0, 53, 5, 164, 1, 53, 6, 163, 0, 53, 6, 164, 1, 54, 0, 165, 0, 54, 0, 166, 0, 54, 5, 165, 0, 54, 5, 166, 1, 54, 8, 165, 0, 54, 8, 166, 3, 55, 0, 167, 0, 55, 0, 168, 0, 55, 5, 167, 0, 55, 5, 168, 1, 55, 8, 167, 0, 55, 8, 168, 3, 56, 9, 169, 0, 56, 9, 170, 0, 56, 9, 171, 1, 57, 0, 172, 0, 57, 0, 173, 0, 57, 5, 172, 0, 57, 5, 173, 1, 57, 6, 172, 0, 57, 6, 173, 1, 58, 0, 174, 0, 58, 0, 175, 0, 58, 5, 174, 0, 58, 5, 175, 1, 58, 8, 174, 0, 58, 8, 175, 3, 59, 15, 176, 0, 59, 15, 177, 3, 60, 0, 178, 0, 60, 0, 179, 0, 60, 5, 178, 0, 60, 5, 179, 1, 60, 6, 178, 0, 60, 6, 179, 1, 61, 0, 180, 0, 61, 0, 181, 0, 61, 5, 180, 0, 61, 5, 181, 1, 61, 8, 180, 0, 61, 8, 181, 3, 62, 0, 182, 0, 62, 0, 183, 0, 62, 5, 182, 0, 62, 5, 183, 1, 62, 8, 182, 0, 62, 8, 183, 3, 63, 9, 184, 0, 63, 9, 185, 0, 63, 9, 186, 1, 64, 0, 187, 0, 64, 0, 188, 0, 64, 5, 187, 0, 64, 5, 188, 1, 64, 6, 187, 0, 64, 6, 188, 1, 65, 0, 189, 0, 65, 0, 190, 0, 65, 5, 189, 0, 65, 5, 190, 1, 65, 8, 189, 0, 65, 8, 190, 3, 66, 0, 191, 0, 66, 0, 192, 0, 66, 5, 191, 0, 66, 5, 192, 1, 66, 8, 191, 0, 66, 8, 192, 3, 67, 0, 193, 0, 67, 0, 194, 0, 67, 5, 193, 0, 67, 5, 194, 1, 67, 8, 193, 0, 67, 8, 194, 3, 68, 0, 195, 0, 68, 0, 196, 0, 68, 5, 195, 0, 68, 5, 196, 1, 68, 8, 195, 0, 68, 8, 196, 3, 69, 0, 197, 0, 69, 0, 198, 0, 69, 5, 197, 0, 69, 5, 198, 1, 69, 8, 197, 0, 69, 8, 198, 3, 70, 16, 199, 0, 71, 2, 200, 0, 71, 2, 201, 0, 71, 2, 202, 0, 71, 2, 203, 0, 71, 2, 204, 0, 71, 2, 205, 0, 71, 2, 206, 0, 71, 2, 207, 0, 71, 2, 208, 0, 71, 2, 209, 0, 71, 2, 210, 0, 71, 2, 211, 0, 71, 2, 212, 0, 71, 2, 213, 0, 71, 2, 214, 0, 71, 2, 215, 0, 71, 2, 216, 0, 71, 2, 217, 0, 71, 2, 218, 0, 71, 2, 219, 0, 71, 2, 220, 0, 71, 2, 221, 0, 72, 2, 222, 1, 72, 2, 223, 1, 72, 2, 224, 1, 72, 2, 225, 1, 72, 2, 226, 1, 72, 2, 227, 1, 72, 2, 228, 1, 72, 2, 229, 1, 72, 2, 230, 1, 72, 2, 231, 1, 72, 2, 232, 1, 72, 2, 233, 1, 72, 2, 234, 1, 72, 2, 235, 1, 72, 2, 236, 1, 72, 2, 237, 1, 72, 2, 238, 1, 72, 2, 239, 1, 72, 2, 240, 1, 72, 2, 241, 1, 73, 0, 242, 0, 73, 0, 243, 0, 73, 5, 242, 0, 73, 5, 243, 1, 73, 6, 242, 0, 73, 6, 243, 1, 74, 0, 244, 0, 74, 0, 245, 0, 74, 5, 244, 0, 74, 5, 245, 1, 74, 6, 244, 0, 74, 6, 245, 1, 75, 0, 246, 0, 75, 0, 247, 0, 75, 5, 246, 0, 75, 5, 247, 1, 75, 8, 246, 0, 75, 8, 247, 3, 76, 15, 248, 0, 76, 15, 249, 3, 77, 0, 250, 0, 77, 0, 251, 0, 77, 5, 250, 0, 77, 5, 251, 1, 77, 6, 250, 0, 77, 6, 251, 1, 78, 0, 252, 0, 78, 0, 253, 0, 78, 5, 252, 0, 78, 5, 253, 1, 78, 8, 252, 0, 78, 8, 253, 3, 79, 15, 254, 0, 79, 15, 255, 3, 80, 0, 256, 0, 80, 0, 257, 0, 80, 5, 256, 0, 80, 5, 257, 1, 80, 6, 256, 0, 80, 6, 257, 1, 81, 17, 258, 1, 82, 0, 259, 0, 82, 0, 260, 0, 82, 5, 259, 0, 82, 5, 260, 1, 82, 8, 259, 0, 82, 8, 260, 3, 83, 18, 261, 0, 83, 18, 262, 0, 83, 18, 263, 1, 84, 0, 264, 0, 84, 0, 265, 0, 84, 5, 264, 0, 84, 5, 265, 1, 84, 6, 264, 0, 84, 6, 265, 1, 85, 17, 266, 1, 86, 0, 267, 0, 86, 0, 268, 0, 86, 5, 267, 0, 86, 5, 268, 1, 86, 8, 267, 0, 86, 8, 268, 3, 87, 19, 269, 0, 87, 19, 270, 0, 87, 19, 271, 1, 88, 0, 272, 0, 88, 0, 273, 0, 88, 5, 272, 0, 88, 5, 273, 1, 88, 6, 272, 0, 88, 6, 273, 1, 89, 0, 274, 0, 89, 0, 275, 0, 89, 5, 274, 0, 89, 5, 275, 1, 89, 8, 274, 0, 89, 8, 275, 3, 90, 20, 276, 0, 90, 20, 277, 0, 90, 20, 278, 1, 91, 0, 279, 0, 91, 0, 280, 0, 91, 5, 279, 0, 91, 5, 280, 1, 91, 6, 279, 0, 91, 6, 280, 1, 92, 0, 281, 0, 92, 0, 282, 0, 92, 5, 281, 0, 92, 5, 282, 1, 92, 8, 281, 0, 92, 8, 282, 3, 93, 0, 283, 0, 93, 0, 284, 0, 93, 5, 283, 0, 93, 5, 284, 1, 93, 8, 283, 0, 93, 8, 284, 3, 95, 2, 285, 0, 95, 2, 286, 0, 95, 2, 287, 0, 95, 2, 288, 0, 95, 2, 289, 0, 95, 2, 290, 0, 95, 2, 291, 0, 95, 2, 292, 0, 95, 2, 293, 0, 95, 2, 294, 0, 95, 2, 295, 0, 95, 2, 296, 0, 95, 2, 297, 0, 95, 2, 298, 0, 95, 2, 299, 0, 95, 2, 300, 0, 95, 2, 301, 0, 95, 2, 302, 0, 95, 2, 303, 0, 95, 2, 304, 0, 96, 2, 305, 1, 96, 2, 306, 1, 96, 2, 307, 1, 96, 2, 308, 1, 96, 2, 309, 1, 96, 2, 310, 1, 96, 2, 311, 1, 96, 2, 312, 1, 96, 2, 313, 1, 96, 2, 314, 1, 96, 2, 315, 1, 96, 2, 316, 1, 96, 2, 317, 1, 96, 2, 318, 1, 96, 2, 319, 1, 96, 2, 320, 1, 96, 2, 321, 1, 96, 2, 322, 1, 96, 2, 323, 1, 96, 2, 324, 1, 96, 2, 325, 1, 97, 0, 326, 0, 97, 0, 327, 0, 97, 5, 326, 0, 97, 5, 327, 1, 97, 6, 326, 0, 97, 6, 327, 1, 98, 0, 328, 0, 98, 0, 329, 0, 98, 5, 328, 0, 98, 5, 329, 1, 98, 6, 328, 0, 98, 6, 329, 1, 99, 0, 330, 0, 99, 0, 331, 0, 99, 5, 330, 0, 99, 5, 331, 1, 99, 6, 330, 0, 99, 6, 331, 1, 100, 0, 332, 0, 100, 0, 333, 0, 100, 5, 332, 0, 100, 5, 333, 1, 100, 8, 332, 0, 100, 8, 333, 3, 101, 15, 334, 0, 101, 15, 335, 3, 102, 0, 336, 0, 102, 0, 337, 0, 102, 5, 336, 0, 102, 5, 337, 1, 102, 6, 336, 0, 102, 6, 337, 1, 103, 0, 338, 0, 103, 0, 339, 0, 103, 5, 338, 0, 103, 5, 339, 1, 103, 8, 338, 0, 103, 8, 339, 3, 104, 15, 340, 0, 104, 15, 341, 3, 105, 0, 342, 0, 105, 0, 343, 0, 105, 5, 342, 0, 105, 5, 343, 1, 105, 6, 342, 0, 105, 6, 343, 1, 106, 0, 344, 0, 106, 0, 345, 0, 106, 5, 344, 0, 106, 5, 345, 1, 106, 8, 344, 0, 106, 8, 345, 3, 107, 15, 346, 0, 107, 15, 347, 3, 108, 0, 348, 0, 108, 0, 349, 0, 108, 5, 348, 0, 108, 5, 349, 1, 108, 6, 348, 0, 108, 6, 349, 1, 109, 0, 350, 0, 109, 0, 351, 0, 109, 5, 350, 0, 109, 5, 351, 1, 109, 8, 350, 0, 109, 8, 351, 3, 110, 0, 352, 0, 110, 0, 353, 0, 110, 5, 352, 0, 110, 5, 353, 1, 110, 8, 352, 0, 110, 8, 353, 3, 111, 0, 354, 0, 111, 0, 355, 0, 111, 5, 354, 0, 111, 5, 355, 1, 111, 8, 354, 0, 111, 8, 355, 3, 112, 0, 356, 0, 112, 0, 357, 0, 112, 5, 356, 0, 112, 5, 357, 1, 112, 8, 356, 0, 112, 8, 357, 3, 113, 13, 358, 0, 113, 13, 359, 0, 114, 2, 360, 0, 114, 2, 361, 0, 114, 2, 362, 0, 114, 2, 363, 0, 114, 2, 364, 0, 114, 2, 365, 0, 114, 2, 366, 0, 114, 2, 367, 0, 114, 2, 368, 0, 114, 2, 369, 0, 114, 2, 370, 0, 114, 2, 371, 0, 114, 2, 372, 0, 114, 2, 373, 0, 114, 2, 374, 0, 114, 2, 375, 0, 114, 2, 376, 0, 114, 2, 377, 0, 114, 2, 378, 0, 114, 2, 379, 0, 114, 2, 380, 0, 115, 2, 381, 1, 115, 2, 382, 1, 115, 2, 383, 1, 115, 2, 384, 1, 115, 2, 385, 1, 115, 2, 386, 1, 115, 2, 387, 1, 115, 2, 388, 1, 115, 2, 389, 1, 115, 2, 390, 1, 115, 2, 391, 1, 115, 2, 392, 1, 115, 2, 393, 1, 115, 2, 394, 1, 115, 2, 395, 1, 115, 2, 396, 1, 115, 2, 397, 1, 115, 2, 398, 1, 115, 2, 399, 1, 115, 2, 400, 1, 115, 2, 401, 1, 116, 0, 402, 0, 116, 0, 403, 0, 116, 5, 402, 0, 116, 5, 403, 1, 116, 6, 402, 0, 116, 6, 403, 1, 117, 0, 404, 0, 117, 0, 405, 0, 117, 5, 404, 0, 117, 5, 405, 1, 117, 6, 404, 0, 117, 6, 405, 1, 118, 0, 406, 0, 118, 0, 407, 0, 118, 5, 406, 0, 118, 5, 407, 1, 118, 6, 406, 0, 118, 6, 407, 1, 119, 0, 408, 0, 119, 0, 409, 0, 119, 5, 408, 0, 119, 5, 409, 1, 119, 8, 408, 0, 119, 8, 409, 3, 120, 15, 410, 0, 120, 15, 411, 3, 121, 11, 412, 0, 121, 11, 413, 1, 122, 0, 414, 0, 122, 0, 415, 0, 122, 5, 414, 0, 122, 5, 415, 1, 122, 6, 414, 0, 122, 6, 415, 1, 123, 11, 416, 0, 123, 11, 417, 1, 124, 0, 418, 0, 124, 0, 419, 0, 124, 5, 418, 0, 124, 5, 419, 1, 124, 6, 418, 0, 124, 6, 419, 1, 125, 22, 420, 2, 126, 0, 421, 0, 126, 0, 422, 0, 126, 5, 421, 0, 126, 5, 422, 1, 126, 8, 421, 0, 126, 8, 422, 3, 127, 0, 423, 0, 127, 0, 424, 0, 127, 5, 423, 0, 127, 5, 424, 1, 127, 8, 423, 0, 127, 8, 424, 3, 128, 0, 425, 0, 128, 0, 426, 0, 128, 5, 425, 0, 128, 5, 426, 1, 128, 8, 425, 0, 128, 8, 426, 3, 129, 0, 427, 0, 129, 0, 428, 0, 129, 5, 427, 0, 129, 5, 428, 1, 129, 8, 427, 0, 129, 8, 428, 3, 130, 23, 429, 0, 131, 2, 430, 0, 131, 2, 431, 0, 131, 2, 432, 0, 131, 2, 433, 0, 131, 2, 434, 0, 131, 2, 435, 1, 131, 2, 436, 1, 131, 2, 437, 1, 131, 2, 438, 1, 131, 2, 439, 1, 131, 2, 440, 1, 131, 2, 441, 1, 131, 2, 442, 1, 131, 2, 443, 1, 131, 2, 444, 1, 131, 2, 445, 1, 131, 2, 446, 1, 131, 2, 447, 1, 131, 2, 448, 1, 131, 2, 449, 1, 131, 2, 450, 1, 131, 2, 451, 1, 131, 2, 452, 1, 131, 2, 453, 1, 131, 2, 454, 1, 132, 1, 455, 0, 132, 1, 456, 0, 132, 1, 457, 0, 132, 1, 458, 0, 132, 1, 459, 0, 132, 1, 460, 0, 132, 1, 461, 0, 132, 1, 462, 0, 132, 1, 463, 0, 132, 1, 464, 0, 132, 1, 465, 0, 132, 1, 466, 0, 132, 1, 467, 0, 132, 1, 468, 0, 132, 1, 469, 0, 132, 1, 470, 0, 132, 1, 471, 0, 132, 1, 472, 0, 132, 1, 473, 0, 133, 0, 474, 0, 133, 0, 475, 0, 133, 5, 474, 0, 133, 5, 475, 1, 133, 6, 474, 0, 133, 6, 475, 1, 134, 11, 476, 0, 134, 11, 477, 1, 135, 0, 478, 0, 135, 0, 479, 0, 135, 5, 478, 0, 135, 5, 479, 1, 135, 6, 478, 0, 135, 6, 479, 1, 136, 0, 480, 0, 136, 0, 481, 0, 136, 5, 480, 0, 136, 5, 481, 1, 136, 8, 480, 0, 136, 8, 481, 3, 137, 0, 482, 0, 137, 0, 483, 0, 137, 5, 482, 0, 137, 5, 483, 1, 137, 8, 482, 0, 137, 8, 483, 3, 138, 0, 484, 0, 138, 0, 485, 0, 138, 5, 484, 0, 138, 5, 485, 1, 138, 8, 484, 0, 138, 8, 485, 3, 139, 0, 486, 0, 139, 0, 487, 0, 139, 5, 486, 0, 139, 5, 487, 1, 139, 8, 486, 0, 139, 8, 487, 3, 140, 0, 488, 0, 140, 0, 489, 0, 140, 5, 488, 0, 140, 5, 489, 1, 140, 8, 488, 0, 140, 8, 489, 3, 141, 0, 490, 0, 141, 0, 491, 0, 141, 5, 490, 0, 141, 5, 491, 1, 141, 8, 490, 0, 141, 8, 491, 3, 142, 13, 492, 0, 142, 13, 493, 0, 143, 2, 494, 0, 143, 2, 495, 0, 143, 2, 496, 0, 143, 2, 497, 0, 143, 2, 498, 0, 143, 2, 499, 0, 143, 2, 500, 0, 143, 2, 501, 0, 143, 2, 502, 0, 143, 2, 503, 0, 143, 2, 504, 0, 143, 2, 505, 0, 143, 2, 506, 0, 143, 2, 507, 0, 143, 2, 508, 0, 143, 2, 509, 0, 143, 2, 510, 0, 143, 2, 511, 0, 143, 2, 512, 0, 143, 2, 513, 0, 143, 2, 514, 0, 143, 2, 515, 0, 143, 2, 516, 0, 144, 2, 517, 1, 144, 2, 518, 1, 144, 2, 519, 1, 144, 2, 520, 1, 144, 2, 521, 1, 144, 2, 522, 1, 144, 2, 523, 1, 144, 2, 524, 1, 144, 2, 525, 1, 144, 2, 526, 1, 144, 2, 527, 1, 144, 2, 528, 1, 144, 2, 529, 1, 144, 2, 530, 1, 144, 2, 531, 1, 144, 2, 532, 1, 144, 2, 533, 1, 144, 2, 534, 1, 144, 2, 535, 1, 144, 2, 536, 1, 144, 2, 537, 1, 144, 2, 538, 1, 144, 2, 539, 1, 145, 0, 540, 0, 145, 0, 541, 0, 145, 5, 540, 0, 145, 5, 541, 1, 145, 6, 540, 0, 145, 6, 541, 1, 146, 0, 542, 0, 146, 0, 543, 0, 146, 5, 542, 0, 146, 5, 543, 1, 146, 6, 542, 0, 146, 6, 543, 1, 147, 0, 544, 0, 147, 0, 545, 0, 147, 5, 544, 0, 147, 5, 545, 1, 147, 6, 544, 0, 147, 6, 545, 1, 148, 0, 546, 0, 148, 0, 547, 0, 148, 5, 546, 0, 148, 5, 547, 1, 148, 6, 546, 0, 148, 6, 547, 1, 149, 0, 548, 0, 149, 0, 549, 0, 149, 5, 548, 0, 149, 5, 549, 1, 149, 6, 548, 0, 149, 6, 549, 1, 150, 0, 550, 0, 150, 0, 551, 0, 150, 5, 550, 0, 150, 5, 551, 1, 150, 8, 550, 0, 150, 8, 551, 3, 151, 15, 552, 0, 151, 15, 553, 3, 152, 0, 554, 0, 152, 0, 555, 0, 152, 5, 554, 0, 152, 5, 555, 1, 152, 6, 554, 0, 152, 6, 555, 1, 153, 0, 556, 0, 153, 0, 557, 0, 153, 5, 556, 0, 153, 5, 557, 1, 153, 8, 556, 0, 153, 8, 557, 3, 154, 15, 558, 0, 154, 15, 559, 3, 155, 0, 560, 0, 155, 0, 561, 0, 155, 5, 560, 0, 155, 5, 561, 1, 155, 6, 560, 0, 155, 6, 561, 1, 156, 0, 562, 0, 156, 0, 563, 0, 156, 5, 562, 0, 156, 5, 563, 1, 156, 8, 562, 0, 156, 8, 563, 3, 157, 0, 564, 0, 157, 0, 565, 0, 157, 5, 564, 0, 157, 5, 565, 1, 157, 8, 564, 0, 157, 8, 565, 3, 158, 0, 566, 0, 158, 0, 567, 0, 158, 5, 566, 0, 158, 5, 567, 1, 158, 8, 566, 0, 158, 8, 567, 3, 159, 0, 568, 0, 159, 0, 569, 0, 159, 5, 568, 0, 159, 5, 569, 1, 159, 8, 568, 0, 159, 8, 569, 3, 160, 0, 570, 0, 160, 0, 571, 0, 160, 5, 570, 0, 160, 5, 571, 1, 160, 8, 570, 0, 160, 8, 571, 3, 161, 24, 572, 0, 162, 2, 573, 0, 162, 2, 574, 0, 162, 2, 575, 0, 162, 2, 576, 0, 162, 2, 577, 0, 162, 2, 578, 0, 162, 2, 579, 0, 162, 2, 580, 0, 162, 2, 581, 0, 162, 2, 582, 0, 162, 2, 583, 0, 162, 2, 584, 0, 162, 2, 585, 0, 162, 2, 586, 0, 162, 2, 587, 0, 162, 2, 588, 0, 162, 2, 589, 0, 162, 2, 590, 0, 162, 2, 591, 0, 162, 2, 592, 0, 162, 2, 593, 0, 162, 2, 594, 0, 163, 2, 595, 1, 163, 2, 596, 1, 163, 2, 597, 1, 163, 2, 598, 1, 163, 2, 599, 1, 163, 2, 600, 1, 163, 2, 601, 1, 163, 2, 602, 1, 163, 2, 603, 1, 163, 2, 604, 1, 163, 2, 605, 1, 163, 2, 606, 1, 163, 2, 607, 1, 163, 2, 608, 1, 163, 2, 609, 1, 163, 2, 610, 1, 163, 2, 611, 1, 163, 2, 612, 1, 163, 2, 613, 1, 163, 2, 614, 1, 163, 2, 615, 1, 164, 0, 616, 0, 164, 0, 617, 0, 164, 5, 616, 0, 164, 5, 617, 1, 164, 6, 616, 0, 164, 6, 617, 1, 165, 0, 618, 0, 165, 0, 619, 0, 165, 5, 618, 0, 165, 5, 619, 1, 165, 6, 618, 0, 165, 6, 619, 1, 166, 0, 620, 0, 166, 0, 621, 0, 166, 5, 620, 0, 166, 5, 621, 1, 166, 6, 620, 0, 166, 6, 621, 1, 167, 0, 622, 0, 167, 0, 623, 0, 167, 5, 622, 0, 167, 5, 623, 1, 167, 8, 622, 0, 167, 8, 623, 3, 168, 15, 624, 0, 168, 15, 625, 3, 169, 22, 626, 2, 170, 0, 627, 0, 170, 0, 628, 0, 170, 5, 627, 0, 170, 5, 628, 1, 170, 8, 627, 0, 170, 8, 628, 3, 171, 0, 629, 0, 171, 0, 630, 0, 171, 5, 629, 0, 171, 5, 630, 1, 171, 8, 629, 0, 171, 8, 630, 3, 172, 23, 631, 0, 173, 2, 632, 0, 173, 2, 633, 0, 173, 2, 634, 0, 173, 2, 635, 1, 173, 2, 636, 1, 173, 2, 637, 1, 173, 2, 638, 1, 173, 2, 639, 1, 173, 2, 640, 1, 173, 2, 641, 1, 173, 2, 642, 1, 173, 2, 643, 1, 173, 2, 644, 1, 173, 2, 645, 1, 173, 2, 646, 1, 173, 2, 647, 1, 173, 2, 648, 1, 173, 2, 649, 1, 173, 2, 650, 1, 173, 2, 651, 1, 173, 2, 652, 1, 173, 2, 653, 1, 173, 2, 654, 1, 174, 1, 655, 0, 174, 1, 656, 0, 174, 1, 657, 0, 174, 1, 658, 0, 174, 1, 659, 0, 174, 1, 660, 0, 174, 1, 661, 0, 174, 1, 662, 0, 174, 1, 663, 0, 174, 1, 664, 0, 174, 1, 665, 0, 174, 1, 666, 0, 174, 1, 667, 0, 174, 1, 668, 0, 174, 1, 669, 0, 174, 1, 670, 0, 174, 1, 671, 0, 174, 1, 672, 0, 174, 1, 673, 0, 175, 0, 674, 0, 175, 0, 675, 0, 175, 5, 674, 0, 175, 5, 675, 1, 175, 6, 674, 0, 175, 6, 675, 1, 176, 0, 676, 0, 176, 0, 677, 0, 176, 5, 676, 0, 176, 5, 677, 1, 176, 8, 676, 0, 176, 8, 677, 3, 177, 0, 678, 0, 177, 0, 679, 0, 177, 5, 678, 0, 177, 5, 679, 1, 177, 8, 678, 0, 177, 8, 679, 3, 179, 2, 680, 0, 179, 2, 681, 0, 179, 2, 682, 0, 179, 2, 683, 0, 179, 2, 684, 0, 179, 2, 685, 0, 179, 2, 686, 0, 179, 2, 687, 0, 179, 2, 688, 0, 179, 2, 689, 0, 179, 2, 690, 0, 179, 2, 691, 0, 179, 2, 692, 0, 179, 2, 693, 0, 179, 2, 694, 0, 179, 2, 695, 0, 179, 2, 696, 0, 179, 2, 697, 0, 179, 2, 698, 0, 179, 2, 699, 0, 180, 2, 700, 1, 180, 2, 701, 1, 180, 2, 702, 1, 180, 2, 703, 1, 180, 2, 704, 1, 180, 2, 705, 1, 180, 2, 706, 1, 180, 2, 707, 1, 180, 2, 708, 1, 180, 2, 709, 1, 180, 2, 710, 1, 180, 2, 711, 1, 180, 2, 712, 1, 180, 2, 713, 1, 180, 2, 714, 1, 180, 2, 715, 1, 180, 2, 716, 1, 180, 2, 717, 1, 180, 2, 718, 1, 180, 2, 719, 1, 180, 2, 720, 1, 180, 2, 721, 1, 181, 0, 722, 0, 181, 0, 723, 0, 181, 5, 722, 0, 181, 5, 723, 1, 181, 6, 722, 0, 181, 6, 723, 1, 182, 0, 724, 0, 182, 0, 725, 0, 182, 5, 724, 0, 182, 5, 725, 1, 182, 6, 724, 0, 182, 6, 725, 1, 183, 0, 726, 0, 183, 0, 727, 0, 183, 5, 726, 0, 183, 5, 727, 1, 183, 6, 726, 0, 183, 6, 727, 1, 184, 0, 728, 0, 184, 0, 729, 0, 184, 5, 728, 0, 184, 5, 729, 1, 184, 6, 728, 0, 184, 6, 729, 1, 185, 0, 730, 0, 185, 0, 731, 0, 185, 5, 730, 0, 185, 5, 731, 1, 185, 8, 730, 0, 185, 8, 731, 3, 186, 15, 732, 0, 186, 15, 733, 3, 187, 0, 734, 0, 187, 0, 735, 0, 187, 5, 734, 0, 187, 5, 735, 1, 187, 6, 734, 0, 187, 6, 735, 1, 188, 0, 736, 0, 188, 0, 737, 0, 188, 5, 736, 0, 188, 5, 737, 1, 188, 8, 736, 0, 188, 8, 737, 3, 189, 15, 738, 0, 189, 15, 739, 3, 190, 0, 740, 0, 190, 0, 741, 0, 190, 5, 740, 0, 190, 5, 741, 1, 190, 6, 740, 0, 190, 6, 741, 1, 191, 0, 742, 0, 191, 0, 743, 0, 191, 5, 742, 0, 191, 5, 743, 1, 191, 8, 742, 0, 191, 8, 743, 3, 192, 0, 744, 0, 192, 0, 745, 0, 192, 5, 744, 0, 192, 5, 745, 1, 192, 8, 744, 0, 192, 8, 745, 3, 193, 0, 746, 0, 193, 0, 747, 0, 193, 5, 746, 0, 193, 5, 747, 1, 193, 8, 746, 0, 193, 8, 747, 3, 194, 0, 748, 0, 194, 0, 749, 0, 194, 5, 748, 0, 194, 5, 749, 1, 194, 8, 748, 0, 194, 8, 749, 3, 195, 0, 750, 0, 195, 0, 751, 0, 195, 5, 750, 0, 195, 5, 751, 1, 195, 8, 750, 0, 195, 8, 751, 3, 196, 13, 752, 0, 196, 13, 753, 0, 197, 2, 754, 0, 197, 2, 755, 0, 197, 2, 756, 0, 197, 2, 757, 0, 197, 2, 758, 0, 197, 2, 759, 0, 197, 2, 760, 0, 197, 2, 761, 0, 197, 2, 762, 0, 197, 2, 763, 0, 197, 2, 764, 0, 197, 2, 765, 0, 197, 2, 766, 0, 197, 2, 767, 0, 197, 2, 768, 0, 197, 2, 769, 0, 197, 2, 770, 0, 197, 2, 771, 0, 197, 2, 772, 0, 197, 2, 773, 0, 197, 2, 774, 0, 197, 2, 775, 0, 198, 2, 776, 1, 198, 2, 777, 1, 198, 2, 778, 1, 198, 2, 779, 1, 198, 2, 780, 1, 198, 2, 781, 1, 198, 2, 782, 1, 198, 2, 783, 1, 198, 2, 784, 1, 198, 2, 785, 1, 198, 2, 786, 1, 198, 2, 787, 1, 198, 2, 788, 1, 198, 2, 789, 1, 198, 2, 790, 1, 198, 2, 791, 1, 198, 2, 792, 1, 198, 2, 793, 1, 198, 2, 794, 1, 198, 2, 795, 1, 198, 2, 796, 1, 199, 0, 797, 0, 199, 0, 798, 0, 199, 5, 797, 0, 199, 5, 798, 1, 199, 6, 797, 0, 199, 6, 798, 1, 200, 0, 799, 0, 200, 0, 800, 0, 200, 5, 799, 0, 200, 5, 800, 1, 200, 6, 799, 0, 200, 6, 800, 1, 201, 0, 801, 0, 201, 0, 802, 0, 201, 5, 801, 0, 201, 5, 802, 1, 201, 6, 801, 0, 201, 6, 802, 1, 202, 0, 803, 0, 202, 0, 804, 0, 202, 5, 803, 0, 202, 5, 804, 1, 202, 8, 803, 0, 202, 8, 804, 3, 203, 15, 805, 0, 203, 15, 806, 3, 204, 22, 807, 2, 205, 0, 808, 0, 205, 0, 809, 0, 205, 5, 808, 0, 205, 5, 809, 1, 205, 8, 808, 0, 205, 8, 809, 3, 206, 0, 810, 0, 206, 0, 811, 0, 206, 5, 810, 0, 206, 5, 811, 1, 206, 8, 810, 0, 206, 8, 811, 3, 207, 23, 812, 0, 208, 2, 813, 0, 208, 2, 814, 0, 208, 2, 815, 0, 208, 2, 816, 1, 208, 2, 817, 1, 208, 2, 818, 1, 208, 2, 819, 1, 208, 2, 820, 1, 208, 2, 821, 1, 208, 2, 822, 1, 208, 2, 823, 1, 208, 2, 824, 1, 208, 2, 825, 1, 208, 2, 826, 1, 208, 2, 827, 1, 208, 2, 828, 1, 208, 2, 829, 1, 208, 2, 830, 1, 208, 2, 831, 1, 208, 2, 832, 1, 208, 2, 833, 1, 208, 2, 834, 1, 208, 2, 835, 1, 209, 1, 836, 0, 209, 1, 837, 0, 209, 1, 838, 0, 209, 1, 839, 0, 209, 1, 840, 0, 209, 1, 841, 0, 209, 1, 842, 0, 209, 1, 843, 0, 209, 1, 844, 0, 209, 1, 845, 0, 209, 1, 846, 0, 209, 1, 847, 0, 209, 1, 848, 0, 209, 1, 849, 0, 209, 1, 850, 0, 209, 1, 851, 0, 209, 1, 852, 0, 209, 1, 853, 0, 209, 1, 854, 0, 210, 0, 855, 0, 210, 0, 856, 0, 210, 5, 855, 0, 210, 5, 856, 1, 210, 6, 855, 0, 210, 6, 856, 1, 211, 0, 857, 0, 211, 0, 858, 0, 211, 5, 857, 0, 211, 5, 858, 1, 211, 8, 857, 0, 211, 8, 858, 3, 212, 0, 859, 0, 212, 0, 860, 0, 212, 5, 859, 0, 212, 5, 860, 1, 212, 8, 859, 0, 212, 8, 860, 3, 214, 2, 861, 0, 214, 2, 862, 0, 214, 2, 863, 0, 214, 2, 864, 0, 214, 2, 865, 0, 214, 2, 866, 0, 214, 2, 867, 0, 214, 2, 868, 0, 214, 2, 869, 0, 214, 2, 870, 0, 214, 2, 871, 0, 214, 2, 872, 0, 214, 2, 873, 0, 214, 2, 874, 0, 214, 2, 875, 0, 214, 2, 876, 0, 214, 2, 877, 0, 214, 2, 878, 0, 214, 2, 879, 0, 214, 2, 880, 0, 215, 2, 881, 1, 215, 2, 882, 1, 215, 2, 883, 1, 215, 2, 884, 1, 215, 2, 885, 1, 216, 0, 886, 0, 216, 0, 887, 0, 216, 5, 886, 0, 216, 5, 887, 1, 216, 6, 886, 0, 216, 6, 887, 1, 217, 0, 888, 0, 217, 0, 889, 0, 217, 5, 888, 0, 217, 5, 889, 1, 217, 8, 888, 0, 217, 8, 889, 3, 218, 15, 890, 0, 218, 15, 891, 3, 219, 0, 892, 0, 219, 0, 893, 0, 219, 5, 892, 0, 219, 5, 893, 1, 219, 6, 892, 0, 219, 6, 893, 1, 220, 0, 894, 0, 220, 0, 895, 0, 220, 5, 894, 0, 220, 5, 895, 1, 220, 8, 894, 0, 220, 8, 895, 3, 221, 15, 896, 0, 221, 15, 897, 3, 222, 0, 898, 0, 222, 0, 899, 0, 222, 5, 898, 0, 222, 5, 899, 1, 222, 6, 898, 0, 222, 6, 899, 1, 223, 0, 900, 0, 223, 0, 901, 0, 223, 5, 900, 0, 223, 5, 901, 1, 223, 8, 900, 0, 223, 8, 901, 3, 224, 15, 902, 0, 224, 15, 903, 3, 225, 11, 904, 0, 225, 11, 905, 1, 226, 0, 906, 0, 226, 0, 907, 0, 226, 5, 906, 0, 226, 5, 907, 1, 226, 6, 906, 0, 226, 6, 907, 1, 227, 22, 908, 2, 228, 0, 909, 0, 228, 0, 910, 0, 228, 5, 909, 0, 228, 5, 910, 1, 228, 8, 909, 0, 228, 8, 910, 3, 229, 0, 911, 0, 229, 0, 912, 0, 229, 5, 911, 0, 229, 5, 912, 1, 229, 8, 911, 0, 229, 8, 912, 3, 230, 0, 913, 0, 230, 0, 914, 0, 230, 5, 913, 0, 230, 5, 914, 1, 230, 8, 913, 0, 230, 8, 914, 3, 231, 0, 915, 0, 231, 0, 916, 0, 231, 5, 915, 0, 231, 5, 916, 1, 231, 8, 915, 0, 231, 8, 916, 3, 232, 23, 917, 0, 233, 2, 918, 0, 233, 2, 919, 0, 233, 2, 920, 0, 233, 2, 921, 0, 233, 2, 922, 0, 233, 2, 923, 1, 233, 2, 924, 1, 233, 2, 925, 1, 233, 2, 926, 1, 233, 2, 927, 1, 233, 2, 928, 1, 234, 1, 929, 0, 234, 1, 930, 0, 234, 1, 931, 0, 234, 1, 932, 0, 234, 1, 933, 0, 234, 1, 934, 0, 235, 2, 935, 0, 235, 2, 936, 0, 235, 2, 937, 0, 235, 2, 938, 0, 236, 2, 939, 1, 236, 2, 940, 1, 236, 2, 941, 1, 236, 2, 942, 1, 236, 2, 943, 1, 236, 2, 944, 1, 236, 2, 945, 1, 236, 2, 946, 1, 236, 2, 947, 1, 236, 2, 948, 1, 236, 2, 949, 1, 236, 2, 950, 1, 236, 2, 951, 1, 236, 2, 952, 1, 236, 2, 953, 1, 236, 2, 954, 1, 236, 2, 955, 1, 236, 2, 956, 1, 236, 2, 957, 1, 236, 2, 958, 1, 237, 0, 959, 0, 237, 0, 960, 0, 237, 5, 959, 0, 237, 5, 960, 1, 237, 6, 959, 0, 237, 6, 960, 1, 238, 0, 961, 0, 238, 0, 962, 0, 238, 5, 961, 0, 238, 5, 962, 1, 238, 6, 961, 0, 238, 6, 962, 1, 239, 0, 963, 0, 239, 0, 964, 0, 239, 5, 963, 0, 239, 5, 964, 1, 239, 8, 963, 0, 239, 8, 964, 3, 240, 0, 965, 0, 240, 0, 966, 0, 240, 8, 965, 0, 240, 8, 966, 3, 241, 0, 967, 0, 241, 0, 968, 0, 241, 8, 967, 0, 241, 8, 968, 3, 242, 0, 969, 0, 242, 0, 970, 0, 242, 8, 969, 0, 242, 8, 970, 3, 243, 0, 971, 0, 243, 0, 972, 0, 243, 8, 971, 0, 243, 8, 972, 3, 244, 0, 973, 0, 244, 0, 974, 0, 244, 8, 973, 0, 244, 8, 974, 3, 245, 0, 975, 0, 245, 0, 976, 0, 245, 8, 975, 0, 245, 8, 976, 3, 246, 0, 977, 0, 246, 0, 978, 0, 246, 8, 977, 0, 246, 8, 978, 3, 247, 0, 979, 0, 247, 0, 980, 0, 247, 8, 979, 0, 247, 8, 980, 3, 248, 0, 981, 0, 248, 0, 982, 0, 248, 25, 981, 0, 248, 25, 982, 3, 249, 0, 983, 0, 249, 0, 984, 0, 249, 25, 983, 0, 249, 25, 984, 3, 250, 0, 985, 0, 250, 0, 986, 0, 250, 25, 985, 0, 250, 25, 986, 3, 251, 0, 987, 0, 251, 0, 988, 0, 251, 25, 987, 0, 251, 25, 988, 3, 252, 0, 989, 0, 252, 0, 990, 0, 252, 25, 989, 0, 252, 25, 990, 3, 253, 0, 991, 0, 253, 0, 992, 0, 253, 25, 991, 0, 253, 25, 992, 3, 254, 0, 993, 0, 254, 0, 994, 0, 254, 5, 993, 0, 254, 5, 994, 1, 254, 8, 993, 0, 254, 8, 994, 3, 256, 27, 995, 0, 257, 2, 996, 0, 257, 2, 997, 0, 257, 2, 998, 0, 257, 2, 999, 0, 257, 2, 1000, 0, 257, 2, 1001, 0, 257, 2, 1002, 0, 257, 2, 1003, 0, 257, 2, 1004, 0, 257, 2, 1005, 0, 257, 2, 1006, 0, 257, 2, 1007, 0, 257, 2, 1008, 0, 257, 2, 1009, 0, 257, 2, 1010, 0, 257, 2, 1011, 0, 257, 2, 1012, 0, 257, 2, 1013, 0, 257, 2, 1014, 0]);
MINL = 0;
MAXL = 3;
preschedule_op = [];
preschedule_cycle = [];
exrelated_p = [];
exrelated_q = [];
exrelated_rows = [];
exrelated_ext = array2d(1..0, 1..0, []);
bypass_table = array2d(1..0, 1..0, []);
adhoc = [2064, 2065, 2066, 2067];
temp_domain = array1d(0..494, [4..4, 25..25, 2..2, 16..16, 17..17, 18..18, 19..19, 20..20, 21..21, 22..22, 23..23, 53..53, 55..55, 57..57, 59..59, 61..61, 63..63, 0..0, 26..26, 27..27, 29..29, 31..31, -1..31 union 79..87, -1..31 union 88..88, -1..31 union 89..89, -1..-1 union 90..90, -1..-1 union 91..91, -1..-1 union 92..92, -1..-1 union 93..93, -1..-1 union 94..94, -1..-1 union 95..95, -1..-1 union 96..96, -1..-1 union 97..97, -1..-1 union 67..67, -1..-1 union 69..69, -1..-1 union 71..71, -1..-1 union 73..73, -1..-1 union 75..75, -1..-1 union 77..77, -1..31 union 98..107, -1..31, -1..31, 0..31, -1..31 union 108..116, -1..31, 0..31, -1..31 union 117..117, -1..31, 0..31, -1..31 union 118..119, -1..31, 0..31, -1..31 union 120..120, -1..-1 union 1..31, -1..31, -1..-1 union 1..25 union 28..28 union 30..31, -1..-1 union 1..25 union 28..28 union 30..31, -1..31, 1..25 union 28..28 union 30..31 union 79..87, 16..16 union 90..90, 17..17 union 91..91, 18..18 union 92..92, 19..19 union 93..93, 20..20 union 94..94, 21..21 union 95..95, 22..22 union 96..96, 23..23 union 97..97, 53..53 union 67..67, 55..55 union 69..69, 57..57 union 71..71, 59..59 union 73..73, 61..61 union 75..75, 63..63 union 77..77, 0..0, 26..26, 27..27, 29..29, 1..25 union 28..28 union 30..31 union 98..107, 1..25 union 28..28 union 30..31 union 108..116, 1..25 union 28..28 union 30..31 union 118..119, -1..31 union 79..87, -1..31 union 98..107, -1..31 union 108..116, -1..31 union 118..119, 0..31, -1..31 union 121..128, -1..31, 0..31, -1..31 union 129..129, -1..31, 0..31, -1..31 union 130..130, -1..31, -1..31, 0..31, -1..31 union 131..131, -1..31, 0..31, -1..31 union 132..132, -1..31, -1..31, 0..31, -1..31 union 133..133, -1..31, -1..-1 union 1..25 union 28..28 union 30..31, -1..-1 union 1..25 union 28..28 union 30..31, -1..-1, -1..-1 union 1..25 union 28..28 union 30..31, 1..25 union 28..28 union 30..31 union 79..87, 16..16 union 90..90, 17..17 union 91..91, 18..18 union 92..92, 19..19 union 93..93, 20..20 union 94..94, 21..21 union 95..95, 22..22 union 96..96, 23..23 union 97..97, 53..53 union 67..67, 55..55 union 69..69, 57..57 union 71..71, 59..59 union 73..73, 61..61 union 75..75, 63..63 union 77..77, 0..0, 26..26, 27..27, 29..29, 1..25 union 28..28 union 30..31 union 98..107, -1..31 union 79..87, -1..31 union 98..107, -1..31, 0..31, -1..31 union 134..134, -1..31, 0..31, -1..31 union 135..135, 0..31, -1..31, 0..31, -1..31 union 136..136, 0..31, -1..31, 0..31, -1..31 union 137..137, -1..-1 union 1..31, 0..31, -1..31 union 121..128, -1..-1 union 1..25 union 28..28 union 30..31, -1..-1 union 1..25 union 28..28 union 30..31, 1..25 union 28..28 union 30..31 union 79..87, 16..16 union 90..90, 17..17 union 91..91, 18..18 union 92..92, 19..19 union 93..93, 20..20 union 94..94, 21..21 union 95..95, 22..22 union 96..96, 23..23 union 97..97, 53..53 union 67..67, 55..55 union 69..69, 57..57 union 71..71, 59..59 union 73..73, 61..61 union 75..75, 63..63 union 77..77, 0..0, 26..26, 27..27, 29..29, 1..25 union 28..28 union 30..31 union 98..107, 1..25 union 28..28 union 30..31 union 108..116, -1..31 union 79..87, -1..31 union 98..107, -1..31 union 108..116, -1..31, 0..31, -1..31 union 138..138, -1..31, 0..31, -1..31 union 139..139, -1..31, 0..31, -1..31 union 140..140, -1..-1 union 1..31, -1..-1 union 1..25 union 28..28 union 30..31, -1..-1 union 1..25 union 28..28 union 30..31, -1..31, 1..25 union 28..28 union 30..31 union 79..87, 16..16 union 90..90, 17..17 union 91..91, 18..18 union 92..92, 19..19 union 93..93, 20..20 union 94..94, 21..21 union 95..95, 22..22 union 96..96, 23..23 union 97..97, 53..53 union 67..67, 55..55 union 69..69, 57..57 union 71..71, 59..59 union 73..73, 61..61 union 75..75, 63..63 union 77..77, 0..0, 26..26, 27..27, 29..29, 1..25 union 28..28 union 30..31 union 98..107, 1..25 union 28..28 union 30..31 union 108..116, -1..31 union 79..87, -1..31 union 98..107, -1..31 union 108..116, -1..31, 25..25, 0..31, -1..31 union 141..141, 0..31, -1..31 union 142..142, 31..31, -1..-1 union 1..25 union 28..28 union 30..31, -1..31, -1..-1 union 5..5, -1..-1 union 6..6, 2..2, 1..1, 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, 24..24, 28..28, 30..30, 32..32, 33..33, -1..31 union 143..144, 0..31, -1..31 union 121..128, -1..-1 union 1..31, -1..-1 union 1..25 union 28..28 union 30..31, -1..-1 union 1..25 union 28..28 union 30..31, -1..31, -1..-1 union 1..31, -1..-1 union 1..25 union 28..28 union 30..31, 1..25 union 28..28 union 30..31 union 79..87, 16..16 union 90..90, 17..17 union 91..91, 18..18 union 92..92, 19..19 union 93..93, 20..20 union 94..94, 21..21 union 95..95, 22..22 union 96..96, 23..23 union 97..97, 53..53 union 67..67, 55..55 union 69..69, 57..57 union 71..71, 59..59 union 73..73, 61..61 union 75..75, 63..63 union 77..77, 0..0, 26..26, 27..27, 29..29, 1..25 union 28..28 union 30..31 union 98..107, 1..25 union 28..28 union 30..31 union 108..116, 1..25 union 28..28 union 30..31 union 143..144, 1..25 union 28..28 union 30..31 union 121..128, -1..31 union 79..87, -1..31 union 98..107, -1..31 union 108..116, -1..31 union 143..144, -1..31 union 121..128, -1..31, 0..31, -1..31 union 145..145, -1..31, 0..31, -1..31 union 146..146, -1..31, -1..-1 union 1..25 union 28..28 union 30..31, -1..-1 union 1..25 union 28..28 union 30..31, -1..-1 union 1..25 union 28..28 union 30..31, -1..-1 union 1..25 union 28..28 union 30..31, 1..25 union 28..28 union 30..31 union 79..87, 16..16 union 90..90, 17..17 union 91..91, 18..18 union 92..92, 19..19 union 93..93, 20..20 union 94..94, 21..21 union 95..95, 22..22 union 96..96, 23..23 union 97..97, 53..53 union 67..67, 55..55 union 69..69, 57..57 union 71..71, 59..59 union 73..73, 61..61 union 75..75, 63..63 union 77..77, 0..0, 26..26, 27..27, 29..29, 1..25 union 28..28 union 30..31 union 98..107, 1..25 union 28..28 union 30..31 union 108..116, -1..31 union 79..87, -1..31 union 98..107, -1..31 union 108..116, -1..31, 25..25, 31..31, -1..-1 union 4..4, -1..31, 2..2, 1..1, 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, 24..24, 28..28, 30..30, 32..32, 33..33, -1..31 union 121..128, -1..-1 union 1..25 union 28..28 union 30..31, -1..-1 union 1..25 union 28..28 union 30..31, 1..25 union 28..28 union 30..31 union 79..87, 16..16 union 90..90, 17..17 union 91..91, 18..18 union 92..92, 19..19 union 93..93, 20..20 union 94..94, 21..21 union 95..95, 22..22 union 96..96, 23..23 union 97..97, 53..53 union 67..67, 55..55 union 69..69, 57..57 union 71..71, 59..59 union 73..73, 61..61 union 75..75, 63..63 union 77..77, 0..0, 26..26, 27..27, 29..29, 1..25 union 28..28 union 30..31 union 98..107, 1..25 union 28..28 union 30..31 union 108..116, 1..25 union 28..28 union 30..31 union 121..128, -1..31 union 79..87, -1..31 union 98..107, -1..31 union 108..116, -1..31 union 121..128, -1..31, 0..31, -1..31 union 147..147, -1..31, 0..31, -1..31 union 148..148, -1..-1 union 1..31, -1..-1 union 1..25 union 28..28 union 30..31, -1..-1 union 1..25 union 28..28 union 30..31, -1..31, -1..-1 union 1..25 union 28..28 union 30..31, 1..25 union 28..28 union 30..31 union 79..87, 16..16 union 90..90, 17..17 union 91..91, 18..18 union 92..92, 19..19 union 93..93, 20..20 union 94..94, 21..21 union 95..95, 22..22 union 96..96, 23..23 union 97..97, 53..53 union 67..67, 55..55 union 69..69, 57..57 union 71..71, 59..59 union 73..73, 61..61 union 75..75, 63..63 union 77..77, 0..0, 26..26, 27..27, 29..29, 1..25 union 28..28 union 30..31 union 98..107, 1..25 union 28..28 union 30..31 union 108..116, -1..31 union 79..87, -1..31 union 98..107, -1..31 union 108..116, -1..31, 25..25, 31..31, -1..-1 union 4..4, -1..31, 2..2, 1..1, 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, 24..24, 28..28, 30..30, 32..32, 33..33, -1..31 union 121..128, -1..-1 union 1..25 union 28..28 union 30..31, -1..-1 union 1..25 union 28..28 union 30..31, 0..0, 26..26, 27..27, 29..29, 1..25 union 28..28 union 30..31 union 108..116, -1..31 union 108..116, -1..31, 0..31, -1..31 union 149..149, -1..31, 0..31, -1..31 union 150..150, -1..31, 25..25, 0..31, -1..31 union 151..151, 31..31, -1..-1, -1..-1 union 4..4, -1..-1 union 6..6, -1..-1 union 5..5, 1..1, 24..24, 28..28, 30..30, 32..32, 33..33, 1..25 union 28..28 union 30..31 union 121..128, 16..16 union 90..90, 17..17 union 91..91, 18..18 union 92..92, 19..19 union 93..93, 20..20 union 94..94, 21..21 union 95..95, 22..22 union 96..96, 23..23 union 97..97, 53..53 union 67..67, 55..55 union 69..69, 57..57 union 71..71, 59..59 union 73..73, 61..61 union 75..75, 63..63 union 77..77, 0..0, 26..26, 27..27, 29..29, 1..25 union 28..28 union 30..31 union 98..107, -1..31 union 121..128, -1..31 union 98..107, -1..31, -1..-1 union 16..16, -1..-1 union 17..17, -1..-1 union 18..18, -1..-1 union 19..19, -1..-1 union 20..20, -1..-1 union 21..21, -1..-1 union 22..22, -1..-1 union 23..23, -1..-1 union 53..53, -1..-1 union 55..55, -1..-1 union 57..57, -1..-1 union 59..59, -1..-1 union 61..61, -1..-1 union 63..63, -1..-1 union 2..2]);
wcet = array2d(1..578, 1..3, [0, 2, 1, 1, 3, 2, 2, 0, 0, 2, 4, 1, 3, 0, 0, 3, 5, 1, 3, 6, 1, 4, 0, 0, 4, 5, 1, 4, 6, 1, 5, 0, 0, 5, 5, 1, 5, 6, 1, 6, 0, 0, 6, 6, 1, 7, 0, 0, 7, 6, 1, 8, 0, 0, 8, 6, 1, 9, 0, 0, 9, 6, 1, 10, 0, 0, 10, 6, 1, 11, 0, 0, 11, 6, 1, 12, 0, 0, 12, 6, 1, 13, 0, 0, 13, 6, 1, 14, 0, 0, 14, 7, 1, 15, 0, 0, 15, 7, 1, 16, 0, 0, 16, 7, 1, 17, 0, 0, 17, 7, 1, 18, 0, 0, 18, 7, 1, 19, 0, 0, 19, 7, 1, 20, 0, 0, 20, 5, 1, 20, 6, 1, 21, 0, 0, 21, 5, 1, 21, 8, 3, 22, 0, 0, 22, 5, 1, 22, 8, 3, 23, 9, 1, 24, 0, 0, 24, 5, 1, 24, 6, 1, 25, 0, 0, 25, 5, 1, 25, 8, 3, 26, 10, 3, 27, 0, 0, 27, 5, 1, 27, 6, 1, 28, 0, 0, 28, 5, 1, 28, 8, 3, 29, 11, 1, 30, 0, 0, 30, 5, 1, 30, 6, 1, 31, 0, 0, 31, 5, 1, 31, 8, 3, 32, 12, 1, 33, 0, 0, 33, 5, 1, 33, 6, 1, 34, 0, 0, 34, 5, 1, 34, 8, 3, 35, 0, 0, 35, 5, 1, 35, 8, 3, 36, 0, 0, 36, 5, 1, 36, 8, 3, 37, 0, 0, 37, 5, 1, 37, 8, 3, 38, 0, 0, 38, 5, 1, 38, 8, 3, 39, 13, 1, 40, 0, 0, 41, 2, 1, 42, 0, 0, 42, 5, 1, 42, 6, 1, 43, 0, 0, 43, 5, 1, 43, 6, 1, 44, 0, 0, 44, 5, 1, 44, 6, 1, 45, 0, 0, 45, 5, 1, 45, 6, 1, 46, 11, 1, 47, 0, 0, 47, 5, 1, 47, 6, 1, 48, 0, 0, 48, 5, 1, 48, 8, 3, 49, 14, 1, 50, 0, 0, 50, 5, 1, 50, 6, 1, 51, 0, 0, 51, 5, 1, 51, 8, 3, 52, 15, 3, 53, 0, 0, 53, 5, 1, 53, 6, 1, 54, 0, 0, 54, 5, 1, 54, 8, 3, 55, 0, 0, 55, 5, 1, 55, 8, 3, 56, 9, 1, 57, 0, 0, 57, 5, 1, 57, 6, 1, 58, 0, 0, 58, 5, 1, 58, 8, 3, 59, 15, 3, 60, 0, 0, 60, 5, 1, 60, 6, 1, 61, 0, 0, 61, 5, 1, 61, 8, 3, 62, 0, 0, 62, 5, 1, 62, 8, 3, 63, 9, 1, 64, 0, 0, 64, 5, 1, 64, 6, 1, 65, 0, 0, 65, 5, 1, 65, 8, 3, 66, 0, 0, 66, 5, 1, 66, 8, 3, 67, 0, 0, 67, 5, 1, 67, 8, 3, 68, 0, 0, 68, 5, 1, 68, 8, 3, 69, 0, 0, 69, 5, 1, 69, 8, 3, 70, 16, 1, 71, 0, 0, 72, 2, 1, 73, 0, 0, 73, 5, 1, 73, 6, 1, 74, 0, 0, 74, 5, 1, 74, 6, 1, 75, 0, 0, 75, 5, 1, 75, 8, 3, 76, 15, 3, 77, 0, 0, 77, 5, 1, 77, 6, 1, 78, 0, 0, 78, 5, 1, 78, 8, 3, 79, 15, 3, 80, 0, 0, 80, 5, 1, 80, 6, 1, 81, 17, 1, 82, 0, 0, 82, 5, 1, 82, 8, 3, 83, 18, 1, 84, 0, 0, 84, 5, 1, 84, 6, 1, 85, 17, 1, 86, 0, 0, 86, 5, 1, 86, 8, 3, 87, 19, 1, 88, 0, 0, 88, 5, 1, 88, 6, 1, 89, 0, 0, 89, 5, 1, 89, 8, 3, 90, 20, 1, 91, 0, 0, 91, 5, 1, 91, 6, 1, 92, 0, 0, 92, 5, 1, 92, 8, 3, 93, 0, 0, 93, 5, 1, 93, 8, 3, 94, 21, 1, 95, 0, 0, 96, 2, 1, 97, 0, 0, 97, 5, 1, 97, 6, 1, 98, 0, 0, 98, 5, 1, 98, 6, 1, 99, 0, 0, 99, 5, 1, 99, 6, 1, 100, 0, 0, 100, 5, 1, 100, 8, 3, 101, 15, 3, 102, 0, 0, 102, 5, 1, 102, 6, 1, 103, 0, 0, 103, 5, 1, 103, 8, 3, 104, 15, 3, 105, 0, 0, 105, 5, 1, 105, 6, 1, 106, 0, 0, 106, 5, 1, 106, 8, 3, 107, 15, 3, 108, 0, 0, 108, 5, 1, 108, 6, 1, 109, 0, 0, 109, 5, 1, 109, 8, 3, 110, 0, 0, 110, 5, 1, 110, 8, 3, 111, 0, 0, 111, 5, 1, 111, 8, 3, 112, 0, 0, 112, 5, 1, 112, 8, 3, 113, 13, 1, 114, 0, 0, 115, 2, 1, 116, 0, 0, 116, 5, 1, 116, 6, 1, 117, 0, 0, 117, 5, 1, 117, 6, 1, 118, 0, 0, 118, 5, 1, 118, 6, 1, 119, 0, 0, 119, 5, 1, 119, 8, 3, 120, 15, 3, 121, 11, 1, 122, 0, 0, 122, 5, 1, 122, 6, 1, 123, 11, 1, 124, 0, 0, 124, 5, 1, 124, 6, 1, 125, 22, 2, 126, 0, 0, 126, 5, 1, 126, 8, 3, 127, 0, 0, 127, 5, 1, 127, 8, 3, 128, 0, 0, 128, 5, 1, 128, 8, 3, 129, 0, 0, 129, 5, 1, 129, 8, 3, 130, 23, 1, 131, 2, 1, 132, 1, 0, 133, 0, 0, 133, 5, 1, 133, 6, 1, 134, 11, 1, 135, 0, 0, 135, 5, 1, 135, 6, 1, 136, 0, 0, 136, 5, 1, 136, 8, 3, 137, 0, 0, 137, 5, 1, 137, 8, 3, 138, 0, 0, 138, 5, 1, 138, 8, 3, 139, 0, 0, 139, 5, 1, 139, 8, 3, 140, 0, 0, 140, 5, 1, 140, 8, 3, 141, 0, 0, 141, 5, 1, 141, 8, 3, 142, 13, 1, 143, 0, 0, 144, 2, 1, 145, 0, 0, 145, 5, 1, 145, 6, 1, 146, 0, 0, 146, 5, 1, 146, 6, 1, 147, 0, 0, 147, 5, 1, 147, 6, 1, 148, 0, 0, 148, 5, 1, 148, 6, 1, 149, 0, 0, 149, 5, 1, 149, 6, 1, 150, 0, 0, 150, 5, 1, 150, 8, 3, 151, 15, 3, 152, 0, 0, 152, 5, 1, 152, 6, 1, 153, 0, 0, 153, 5, 1, 153, 8, 3, 154, 15, 3, 155, 0, 0, 155, 5, 1, 155, 6, 1, 156, 0, 0, 156, 5, 1, 156, 8, 3, 157, 0, 0, 157, 5, 1, 157, 8, 3, 158, 0, 0, 158, 5, 1, 158, 8, 3, 159, 0, 0, 159, 5, 1, 159, 8, 3, 160, 0, 0, 160, 5, 1, 160, 8, 3, 161, 24, 1, 162, 0, 0, 163, 2, 1, 164, 0, 0, 164, 5, 1, 164, 6, 1, 165, 0, 0, 165, 5, 1, 165, 6, 1, 166, 0, 0, 166, 5, 1, 166, 6, 1, 167, 0, 0, 167, 5, 1, 167, 8, 3, 168, 15, 3, 169, 22, 2, 170, 0, 0, 170, 5, 1, 170, 8, 3, 171, 0, 0, 171, 5, 1, 171, 8, 3, 172, 23, 1, 173, 2, 1, 174, 1, 0, 175, 0, 0, 175, 5, 1, 175, 6, 1, 176, 0, 0, 176, 5, 1, 176, 8, 3, 177, 0, 0, 177, 5, 1, 177, 8, 3, 178, 21, 1, 179, 0, 0, 180, 2, 1, 181, 0, 0, 181, 5, 1, 181, 6, 1, 182, 0, 0, 182, 5, 1, 182, 6, 1, 183, 0, 0, 183, 5, 1, 183, 6, 1, 184, 0, 0, 184, 5, 1, 184, 6, 1, 185, 0, 0, 185, 5, 1, 185, 8, 3, 186, 15, 3, 187, 0, 0, 187, 5, 1, 187, 6, 1, 188, 0, 0, 188, 5, 1, 188, 8, 3, 189, 15, 3, 190, 0, 0, 190, 5, 1, 190, 6, 1, 191, 0, 0, 191, 5, 1, 191, 8, 3, 192, 0, 0, 192, 5, 1, 192, 8, 3, 193, 0, 0, 193, 5, 1, 193, 8, 3, 194, 0, 0, 194, 5, 1, 194, 8, 3, 195, 0, 0, 195, 5, 1, 195, 8, 3, 196, 13, 1, 197, 0, 0, 198, 2, 1, 199, 0, 0, 199, 5, 1, 199, 6, 1, 200, 0, 0, 200, 5, 1, 200, 6, 1, 201, 0, 0, 201, 5, 1, 201, 6, 1, 202, 0, 0, 202, 5, 1, 202, 8, 3, 203, 15, 3, 204, 22, 2, 205, 0, 0, 205, 5, 1, 205, 8, 3, 206, 0, 0, 206, 5, 1, 206, 8, 3, 207, 23, 1, 208, 2, 1, 209, 1, 0, 210, 0, 0, 210, 5, 1, 210, 6, 1, 211, 0, 0, 211, 5, 1, 211, 8, 3, 212, 0, 0, 212, 5, 1, 212, 8, 3, 213, 21, 1, 214, 0, 0, 215, 2, 1, 216, 0, 0, 216, 5, 1, 216, 6, 1, 217, 0, 0, 217, 5, 1, 217, 8, 3, 218, 15, 3, 219, 0, 0, 219, 5, 1, 219, 6, 1, 220, 0, 0, 220, 5, 1, 220, 8, 3, 221, 15, 3, 222, 0, 0, 222, 5, 1, 222, 6, 1, 223, 0, 0, 223, 5, 1, 223, 8, 3, 224, 15, 3, 225, 11, 1, 226, 0, 0, 226, 5, 1, 226, 6, 1, 227, 22, 2, 228, 0, 0, 228, 5, 1, 228, 8, 3, 229, 0, 0, 229, 5, 1, 229, 8, 3, 230, 0, 0, 230, 5, 1, 230, 8, 3, 231, 0, 0, 231, 5, 1, 231, 8, 3, 232, 23, 1, 233, 2, 1, 234, 1, 0, 235, 0, 0, 236, 2, 1, 237, 0, 0, 237, 5, 1, 237, 6, 1, 238, 0, 0, 238, 5, 1, 238, 6, 1, 239, 0, 0, 239, 5, 1, 239, 8, 3, 240, 0, 0, 240, 8, 3, 241, 0, 0, 241, 8, 3, 242, 0, 0, 242, 8, 3, 243, 0, 0, 243, 8, 3, 244, 0, 0, 244, 8, 3, 245, 0, 0, 245, 8, 3, 246, 0, 0, 246, 8, 3, 247, 0, 0, 247, 8, 3, 248, 0, 0, 248, 25, 3, 249, 0, 0, 249, 25, 3, 250, 0, 0, 250, 25, 3, 251, 0, 0, 251, 25, 3, 252, 0, 0, 252, 25, 3, 253, 0, 0, 253, 25, 3, 254, 0, 0, 254, 5, 1, 254, 8, 3, 255, 0, 0, 255, 26, 1, 256, 27, 1, 257, 0, 0]);
expr_op = [1, 6, 6, 6, 12, 1, 6, 6, 6, 12, 1, 6, 6, 1, 6, 1, 6, 1, 5, 5, 6, 6, 12, 12, 1, 6, 6, 12, 12, 1, 6, 6, 12, 12, 1, 6, 1, 6, 1, 6, 6, 12, 1, 6, 6, 12, 1, 6, 6, 12, 1, 6, 1, 6, 1, 6, 1, 6, 6, 12, 12, 1, 6, 1, 6, 6, 12, 12, 1, 6, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 6, 1, 1, 0, 6, 6, 12, 1, 1, 0, 1, 6, 1, 6, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 6, 1, 6, 12, 1, 0, 1, 1, 1, 0, 6, 6, 12, 1, 1, 0, 1, 0, 6, 6, 12, 1, 1, 0, 6, 8, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 1, 6, 8, 3, 6, 3, 6, 3, 6, 3, 1, 6, 8, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 1, 6, 8, 3, 6, 3, 1, 6, 8, 3, 6, 3, 6, 3, 1, 6, 8, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 1, 6, 8, 3, 6, 3, 6, 3, 6, 3, 1, 8, 3, 3, 3, 3, 6, 3, 1, 6, 8, 3, 6, 3, 1, 8, 3, 3, 6, 3, 1, 6, 8, 3, 6, 3, 3, 6, 3, 6, 3, 6, 3, 3, 6, 3, 6, 3, 1, 6, 8, 3, 6, 3, 1, 8, 3, 3, 3, 3, 3, 3, 3, 3, 6, 3, 6, 3, 6, 3, 3, 1, 8, 3, 6, 3, 1, 6, 8, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 1, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 1, 6, 8, 3, 6, 3, 6, 3, 1, 8, 5, 4, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 7, 4, 0, 8, 7, 4, 0, 8, 7, 4, 0, 8, 7, 4, 0, 8, 7, 4, 0, 8, 7, 4, 0, 8, 7, 4, 0, 8, 7, 4, 0, 8, 7, 4, 0, 8, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 7, 4, 0, 8, 5, 4, 7, 4, 0, 8, 7, 4, 0, 8, 5, 4, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 7, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 5, 4, 0, 8, 7, 4, 0, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 5, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 6, 8, 3, 6, 8, 3, 6, 8, 3, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8];
expr_arg1 = [0, 408, 433, 514, 210, 0, 421, 430, 494, 217, 0, 515, 699, 0, 880, 0, 996, 0, 68, 228, 402, 494, 186, 207, 0, 404, 513, 205, 208, 0, 406, 514, 206, 209, 0, 408, 0, 421, 0, 423, 514, 218, 0, 482, 494, 245, 0, 486, 514, 247, 0, 494, 0, 513, 0, 514, 0, 618, 698, 308, 311, 0, 698, 0, 799, 879, 397, 400, 0, 879, 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 484, 513, 246, 0, 0, 0, 0, 423, 0, 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 516, 0, 516, 243, 0, 0, 0, 0, 0, 0, 676, 698, 339, 0, 0, 0, 0, 0, 857, 879, 428, 0, 0, 0, 62, 1, 186, 63, 189, 97, 191, 97, 193, 97, 195, 98, 197, 99, 199, 100, 201, 101, 203, 102, 205, 103, 207, 104, 209, 105, 211, 106, 213, 107, 215, 108, 217, 109, 219, 110, 221, 111, 223, 116, 225, 117, 227, 118, 229, 118, 231, 118, 233, 0, 62, 1, 236, 63, 239, 116, 241, 117, 243, 0, 155, 41, 246, 155, 249, 161, 251, 161, 253, 169, 255, 170, 257, 0, 169, 41, 260, 170, 263, 0, 185, 41, 266, 185, 269, 185, 271, 0, 200, 41, 274, 200, 277, 219, 279, 219, 281, 220, 283, 220, 285, 220, 287, 221, 289, 0, 248, 72, 292, 248, 295, 254, 297, 261, 299, 0, 72, 292, 295, 297, 299, 269, 307, 0, 254, 72, 310, 261, 313, 0, 72, 310, 313, 269, 319, 0, 410, 115, 322, 410, 325, 8, 430, 328, 431, 330, 432, 332, 3, 433, 335, 433, 337, 0, 431, 115, 340, 432, 343, 0, 115, 22, 9, 45, 27, 32, 4, 41, 49, 515, 355, 515, 357, 515, 359, 164, 0, 115, 143, 516, 365, 0, 890, 215, 368, 890, 371, 896, 373, 896, 375, 896, 377, 902, 379, 902, 381, 902, 383, 902, 385, 0, 215, 368, 371, 373, 375, 377, 379, 381, 383, 385, 918, 398, 919, 400, 920, 402, 921, 404, 921, 406, 921, 408, 921, 410, 0, 918, 215, 413, 919, 416, 920, 418, 0, 2, 2, 422, 3, 424, 0, 2, 4, 428, 0, 2, 5, 432, 0, 2, 6, 436, 0, 2, 7, 440, 0, 2, 8, 444, 0, 2, 9, 448, 0, 2, 10, 452, 0, 2, 11, 456, 0, 2, 12, 460, 0, 2, 13, 464, 0, 2, 14, 468, 0, 2, 15, 472, 0, 2, 16, 476, 0, 2, 17, 480, 0, 2, 18, 484, 0, 2, 19, 488, 0, 2, 20, 492, 0, 2, 21, 496, 0, 2, 22, 500, 0, 2, 24, 504, 0, 2, 25, 508, 0, 2, 27, 512, 0, 2, 28, 516, 0, 2, 30, 520, 0, 2, 31, 524, 0, 2, 33, 528, 0, 2, 34, 532, 0, 2, 35, 536, 0, 2, 36, 540, 0, 2, 37, 544, 0, 2, 38, 548, 0, 21, 21, 552, 0, 22, 22, 556, 0, 25, 25, 560, 0, 28, 28, 564, 0, 31, 31, 568, 0, 34, 34, 572, 0, 35, 35, 576, 0, 36, 36, 580, 0, 37, 37, 584, 0, 38, 38, 588, 0, 48, 48, 592, 48, 594, 0, 51, 51, 598, 51, 600, 0, 54, 54, 604, 54, 606, 0, 55, 55, 610, 55, 612, 0, 58, 58, 616, 58, 618, 0, 61, 61, 622, 61, 624, 0, 62, 62, 628, 62, 630, 0, 65, 65, 634, 65, 636, 0, 66, 66, 640, 66, 642, 0, 67, 67, 646, 67, 648, 0, 69, 69, 652, 69, 654, 0, 75, 75, 658, 75, 660, 0, 78, 78, 664, 78, 666, 0, 82, 82, 670, 82, 672, 0, 86, 86, 676, 86, 678, 0, 89, 89, 682, 89, 684, 0, 92, 92, 688, 92, 690, 0, 93, 93, 694, 93, 696, 0, 100, 100, 700, 100, 702, 0, 103, 103, 706, 103, 708, 0, 106, 106, 712, 106, 714, 0, 109, 109, 718, 109, 720, 0, 110, 110, 724, 110, 726, 0, 111, 111, 730, 111, 732, 0, 112, 112, 736, 112, 738, 0, 119, 119, 742, 119, 744, 0, 126, 126, 748, 126, 750, 0, 127, 127, 754, 127, 756, 0, 128, 128, 760, 128, 762, 0, 129, 129, 766, 129, 768, 0, 136, 136, 772, 136, 774, 0, 137, 137, 778, 137, 780, 0, 138, 138, 784, 138, 786, 0, 139, 139, 790, 139, 792, 0, 140, 140, 796, 140, 798, 0, 141, 141, 802, 141, 804, 0, 150, 150, 808, 150, 810, 0, 153, 153, 814, 153, 816, 0, 156, 156, 820, 156, 822, 0, 157, 157, 826, 157, 828, 0, 158, 158, 832, 158, 834, 0, 159, 159, 838, 159, 840, 0, 160, 160, 844, 160, 846, 0, 167, 167, 850, 167, 852, 0, 170, 170, 856, 170, 858, 0, 171, 171, 862, 171, 864, 0, 176, 176, 868, 176, 870, 0, 177, 177, 874, 177, 876, 0, 185, 185, 880, 185, 882, 0, 188, 188, 886, 188, 888, 0, 191, 191, 892, 191, 894, 0, 192, 192, 898, 192, 900, 0, 193, 193, 904, 193, 906, 0, 194, 194, 910, 194, 912, 0, 195, 195, 916, 195, 918, 0, 202, 202, 922, 202, 924, 0, 205, 205, 928, 205, 930, 0, 206, 206, 934, 206, 936, 0, 211, 211, 940, 211, 942, 0, 212, 212, 946, 212, 948, 0, 217, 217, 952, 217, 954, 0, 217, 217, 958, 0, 220, 220, 962, 220, 964, 0, 220, 220, 968, 0, 223, 223, 972, 223, 974, 0, 223, 223, 978, 0, 229, 229, 982, 229, 984, 0, 229, 229, 988, 0, 230, 230, 992, 230, 994, 0, 230, 230, 998, 0, 231, 231, 1002, 231, 1004, 0, 231, 231, 1008, 0, 237, 237, 1012, 255, 1014, 0, 238, 238, 1018, 0, 239, 239, 1022, 0, 239, 239, 1026, 0, 240, 240, 1030, 0, 241, 241, 1034, 0, 242, 242, 1038, 0, 243, 243, 1042, 0, 244, 244, 1046, 0, 245, 245, 1050, 0, 246, 246, 1054, 0, 247, 247, 1058, 0, 248, 248, 1062, 0, 249, 249, 1066, 0, 250, 250, 1070, 0, 251, 251, 1074, 0, 252, 252, 1078, 0, 253, 253, 1082, 0, 254, 254, 1086, 0, 254, 254, 1090, 0, 1, 422, 2, 422, 1, 424, 3, 424, 1, 428, 4, 428, 1, 432, 5, 432, 1, 436, 6, 436, 1, 440, 7, 440, 1, 444, 8, 444, 1, 448, 9, 448, 1, 452, 10, 452, 1, 456, 11, 456, 1, 460, 12, 460, 1, 464, 13, 464, 1, 468, 14, 468, 1, 472, 15, 472, 1, 476, 16, 476, 1, 480, 17, 480, 1, 484, 18, 484, 1, 488, 19, 488, 1, 492, 20, 492, 1, 496, 21, 496, 1, 500, 22, 500, 1, 504, 24, 504, 1, 508, 25, 508, 1, 512, 27, 512, 1, 516, 28, 516, 1, 520, 30, 520, 1, 524, 31, 524, 1, 528, 33, 528, 1, 532, 34, 532, 1, 536, 35, 536, 1, 540, 36, 540, 1, 544, 37, 544, 1, 548, 38, 548, 42, 41, 1225, 42, 1225, 43, 41, 1230, 43, 1230, 44, 41, 1235, 44, 1235, 45, 41, 1240, 45, 1240, 47, 41, 1245, 47, 1245, 41, 592, 48, 592, 50, 41, 1254, 50, 1254, 41, 598, 51, 598, 53, 41, 1263, 53, 1263, 41, 604, 54, 604, 41, 610, 55, 610, 57, 41, 1276, 57, 1276, 41, 616, 58, 616, 60, 41, 1285, 60, 1285, 41, 622, 61, 622, 41, 628, 62, 628, 64, 41, 1298, 64, 1298, 41, 634, 65, 634, 41, 640, 66, 640, 41, 646, 67, 646, 41, 652, 69, 652, 73, 72, 1319, 73, 1319, 74, 72, 1324, 74, 1324, 72, 658, 75, 658, 77, 72, 1333, 77, 1333, 72, 664, 78, 664, 80, 72, 1342, 80, 1342, 72, 670, 82, 670, 84, 72, 1351, 84, 1351, 72, 676, 86, 676, 88, 72, 1360, 88, 1360, 72, 682, 89, 682, 91, 72, 1369, 91, 1369, 72, 688, 92, 688, 72, 694, 93, 694, 97, 96, 1382, 97, 1382, 98, 96, 1387, 98, 1387, 99, 96, 1392, 99, 1392, 96, 700, 100, 700, 102, 96, 1401, 102, 1401, 96, 706, 103, 706, 105, 96, 1410, 105, 1410, 96, 712, 106, 712, 108, 96, 1419, 108, 1419, 96, 718, 109, 718, 96, 724, 110, 724, 96, 730, 111, 730, 96, 736, 112, 736, 116, 115, 1440, 116, 1440, 117, 115, 1445, 117, 1445, 118, 115, 1450, 118, 1450, 115, 742, 119, 742, 122, 115, 1459, 122, 1459, 124, 115, 1464, 124, 1464, 115, 748, 126, 748, 115, 754, 127, 754, 115, 760, 128, 760, 115, 766, 129, 766, 133, 115, 1485, 133, 1485, 135, 115, 1490, 135, 1490, 115, 772, 136, 772, 115, 778, 137, 778, 115, 784, 138, 784, 115, 790, 139, 790, 115, 796, 140, 796, 115, 802, 141, 802, 145, 144, 1519, 145, 1519, 146, 144, 1524, 146, 1524, 147, 144, 1529, 147, 1529, 148, 144, 1534, 148, 1534, 149, 144, 1539, 149, 1539, 144, 808, 150, 808, 152, 144, 1548, 152, 1548, 144, 814, 153, 814, 155, 144, 1557, 155, 1557, 144, 820, 156, 820, 144, 826, 157, 826, 144, 832, 158, 832, 144, 838, 159, 838, 144, 844, 160, 844, 164, 163, 1582, 164, 1582, 165, 163, 1587, 165, 1587, 166, 163, 1592, 166, 1592, 163, 850, 167, 850, 163, 856, 170, 856, 163, 862, 171, 862, 175, 163, 1609, 175, 1609, 163, 868, 176, 868, 163, 874, 177, 874, 181, 180, 1622, 181, 1622, 182, 180, 1627, 182, 1627, 183, 180, 1632, 183, 1632, 184, 180, 1637, 184, 1637, 180, 880, 185, 880, 187, 180, 1646, 187, 1646, 180, 886, 188, 886, 190, 180, 1655, 190, 1655, 180, 892, 191, 892, 180, 898, 192, 898, 180, 904, 193, 904, 180, 910, 194, 910, 180, 916, 195, 916, 199, 198, 1680, 199, 1680, 200, 198, 1685, 200, 1685, 201, 198, 1690, 201, 1690, 198, 922, 202, 922, 198, 928, 205, 928, 198, 934, 206, 934, 210, 198, 1707, 210, 1707, 198, 940, 211, 940, 198, 946, 212, 946, 216, 215, 1720, 216, 1720, 215, 952, 219, 215, 1727, 219, 1727, 215, 962, 222, 215, 1734, 222, 1734, 215, 972, 226, 215, 1741, 226, 1741, 215, 982, 215, 992, 215, 1002, 236, 1012, 237, 1012, 236, 1018, 238, 1018, 236, 1022, 239, 1022, 236, 1030, 240, 1030, 240, 1030, 236, 1034, 241, 1034, 241, 1034, 236, 1038, 242, 1038, 242, 1038, 236, 1042, 243, 1042, 243, 1042, 236, 1046, 244, 1046, 244, 1046, 236, 1050, 245, 1050, 245, 1050, 236, 1054, 246, 1054, 246, 1054, 236, 1058, 247, 1058, 247, 1058, 236, 1062, 248, 1062, 248, 1062, 236, 1066, 249, 1066, 249, 1066, 236, 1070, 250, 1070, 250, 1070, 236, 1074, 251, 1074, 251, 1074, 236, 1078, 252, 1078, 252, 1078, 236, 1082, 253, 1082, 253, 1082, 236, 1086, 254, 1086, 236, 1014, 255, 1014, 221, 41, 1856, 303, 72, 1859, 303, 72, 1862, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 23, 23, 26, 26, 29, 29, 29, 32, 39, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 46, 46, 49, 49, 52, 52, 56, 56, 59, 59, 63, 70, 71, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 76, 76, 79, 79, 81, 81, 83, 83, 85, 85, 87, 87, 90, 90, 94, 95, 96, 96, 96, 96, 96, 101, 101, 104, 104, 107, 113, 114, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 120, 120, 120, 121, 121, 123, 123, 125, 125, 130, 130, 131, 131, 131, 131, 132, 134, 134, 142, 143, 144, 144, 144, 144, 151, 151, 154, 161, 162, 163, 163, 163, 163, 163, 163, 168, 168, 168, 169, 169, 172, 172, 173, 173, 173, 173, 174, 178, 179, 180, 180, 180, 180, 186, 186, 189, 196, 197, 198, 198, 198, 198, 198, 198, 203, 203, 203, 204, 204, 207, 207, 208, 208, 208, 208, 209, 213, 214, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 218, 218, 221, 221, 224, 224, 225, 225, 227, 227, 232, 232, 233, 233, 233, 234, 236, 236, 256, 257, 131, 173, 208, 233];
expr_arg2 = [0, 209, 209, 210, 0, 0, 207, 207, 217, 0, 0, 221, 318, 0, 407, 0, 457, 0, 0, 0, 186, 207, 0, 0, 0, 205, 208, 0, 0, 0, 206, 209, 0, 0, 0, 206, 0, 186, 0, 206, 218, 0, 0, 186, 245, 0, 0, 206, 247, 0, 0, 186, 0, 205, 0, 206, 0, 308, 311, 0, 0, 0, 308, 0, 397, 400, 0, 0, 0, 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, 0, 0, 0, 208, 246, 0, 0, 0, 0, 0, 209, 0, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 0, 243, 0, 0, 0, 0, 0, 0, 0, 311, 339, 0, 0, 0, 0, 0, 0, 400, 428, 0, 0, 0, 0, 24, 39, 187, 23, 187, 22, 187, 44, 187, 54, 187, 25, 187, 26, 187, 27, 187, 28, 187, 29, 187, 30, 187, 31, 187, 32, 187, 33, 187, 34, 187, 35, 187, 36, 187, 37, 187, 38, 187, 39, 187, 43, 187, 49, 187, 50, 187, 57, 187, 0, 41, 39, 237, 40, 237, 55, 237, 56, 237, 0, 83, 56, 247, 86, 247, 82, 247, 89, 247, 88, 247, 91, 247, 0, 92, 56, 261, 93, 261, 0, 82, 63, 267, 89, 267, 99, 267, 0, 80, 70, 275, 104, 275, 81, 275, 105, 275, 82, 275, 89, 275, 99, 275, 85, 275, 0, 128, 83, 293, 130, 293, 132, 293, 135, 293, 0, 87, 302, 302, 302, 302, 139, 302, 0, 133, 83, 311, 137, 311, 0, 87, 316, 316, 141, 316, 0, 209, 131, 323, 210, 323, 323, 217, 323, 213, 323, 215, 323, 323, 210, 323, 218, 323, 0, 219, 131, 341, 220, 341, 0, 142, 346, 346, 346, 346, 346, 346, 346, 346, 241, 346, 244, 346, 248, 346, 346, 0, 142, 363, 249, 363, 0, 435, 232, 369, 436, 369, 435, 369, 436, 369, 439, 369, 435, 369, 436, 369, 439, 369, 442, 369, 0, 233, 388, 388, 388, 388, 388, 388, 388, 388, 388, 438, 388, 445, 388, 441, 388, 435, 388, 436, 388, 439, 388, 442, 388, 0, 448, 233, 414, 450, 414, 449, 414, 0, 3, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 38, 0, 0, 0, 39, 8, 0, 0, 39, 8, 0, 0, 39, 8, 0, 0, 39, 8, 0, 0, 39, 8, 0, 0, 39, 8, 0, 0, 39, 8, 0, 0, 39, 8, 0, 0, 39, 8, 0, 0, 39, 8, 0, 0, 70, 0, 0, 8, 0, 0, 70, 0, 0, 8, 0, 0, 70, 0, 0, 8, 0, 0, 70, 0, 0, 8, 0, 0, 70, 0, 0, 8, 0, 0, 70, 0, 0, 8, 0, 0, 70, 0, 0, 8, 0, 0, 70, 0, 0, 8, 0, 0, 70, 0, 0, 8, 0, 0, 70, 0, 0, 8, 0, 0, 70, 0, 0, 8, 0, 0, 94, 0, 0, 8, 0, 0, 94, 0, 0, 8, 0, 0, 94, 0, 0, 8, 0, 0, 94, 0, 0, 8, 0, 0, 94, 0, 0, 8, 0, 0, 94, 0, 0, 8, 0, 0, 94, 0, 0, 8, 0, 0, 113, 0, 0, 8, 0, 0, 113, 0, 0, 8, 0, 0, 113, 0, 0, 8, 0, 0, 113, 0, 0, 8, 0, 0, 113, 0, 0, 8, 0, 0, 113, 0, 0, 8, 0, 0, 113, 0, 0, 8, 0, 0, 142, 0, 0, 8, 0, 0, 142, 0, 0, 8, 0, 0, 142, 0, 0, 8, 0, 0, 142, 0, 0, 8, 0, 0, 142, 0, 0, 8, 0, 0, 142, 0, 0, 8, 0, 0, 142, 0, 0, 8, 0, 0, 142, 0, 0, 8, 0, 0, 142, 0, 0, 8, 0, 0, 142, 0, 0, 8, 0, 0, 142, 0, 0, 8, 0, 0, 161, 0, 0, 8, 0, 0, 161, 0, 0, 8, 0, 0, 161, 0, 0, 8, 0, 0, 161, 0, 0, 8, 0, 0, 161, 0, 0, 8, 0, 0, 161, 0, 0, 8, 0, 0, 161, 0, 0, 8, 0, 0, 178, 0, 0, 8, 0, 0, 178, 0, 0, 8, 0, 0, 178, 0, 0, 8, 0, 0, 178, 0, 0, 8, 0, 0, 178, 0, 0, 8, 0, 0, 196, 0, 0, 8, 0, 0, 196, 0, 0, 8, 0, 0, 196, 0, 0, 8, 0, 0, 196, 0, 0, 8, 0, 0, 196, 0, 0, 8, 0, 0, 196, 0, 0, 8, 0, 0, 196, 0, 0, 8, 0, 0, 213, 0, 0, 8, 0, 0, 213, 0, 0, 8, 0, 0, 213, 0, 0, 8, 0, 0, 213, 0, 0, 8, 0, 0, 213, 0, 0, 8, 0, 0, 235, 0, 0, 5, 0, 0, 235, 8, 0, 0, 235, 0, 0, 5, 0, 0, 235, 8, 0, 0, 235, 0, 0, 5, 0, 0, 235, 8, 0, 0, 235, 0, 0, 5, 0, 0, 235, 8, 0, 0, 235, 0, 0, 5, 0, 0, 235, 8, 0, 0, 235, 0, 0, 5, 0, 0, 235, 8, 0, 0, 255, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 256, 8, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 256, 8, 0, 0, 2, 1093, 39, 1095, 3, 1097, 39, 1099, 4, 1101, 39, 1103, 5, 1105, 39, 1107, 6, 1109, 39, 1111, 7, 1113, 39, 1115, 8, 1117, 39, 1119, 9, 1121, 39, 1123, 10, 1125, 39, 1127, 11, 1129, 39, 1131, 12, 1133, 39, 1135, 13, 1137, 39, 1139, 14, 1141, 39, 1143, 15, 1145, 39, 1147, 16, 1149, 39, 1151, 17, 1153, 39, 1155, 18, 1157, 39, 1159, 19, 1161, 39, 1163, 20, 1165, 39, 1167, 21, 1169, 39, 1171, 22, 1173, 39, 1175, 24, 1177, 39, 1179, 25, 1181, 39, 1183, 27, 1185, 39, 1187, 28, 1189, 39, 1191, 30, 1193, 39, 1195, 31, 1197, 39, 1199, 33, 1201, 39, 1203, 34, 1205, 39, 1207, 35, 1209, 39, 1211, 36, 1213, 39, 1215, 37, 1217, 39, 1219, 38, 1221, 39, 1223, 0, 42, 1226, 70, 1228, 0, 43, 1231, 70, 1233, 0, 44, 1236, 70, 1238, 0, 45, 1241, 70, 1243, 0, 47, 1246, 70, 1248, 48, 1250, 70, 1252, 0, 50, 1255, 70, 1257, 51, 1259, 70, 1261, 0, 53, 1264, 70, 1266, 54, 1268, 70, 1270, 55, 1272, 70, 1274, 0, 57, 1277, 70, 1279, 58, 1281, 70, 1283, 0, 60, 1286, 70, 1288, 61, 1290, 70, 1292, 62, 1294, 70, 1296, 0, 64, 1299, 70, 1301, 65, 1303, 70, 1305, 66, 1307, 70, 1309, 67, 1311, 70, 1313, 69, 1315, 70, 1317, 0, 73, 1320, 94, 1322, 0, 74, 1325, 94, 1327, 75, 1329, 94, 1331, 0, 77, 1334, 94, 1336, 78, 1338, 94, 1340, 0, 80, 1343, 94, 1345, 82, 1347, 94, 1349, 0, 84, 1352, 94, 1354, 86, 1356, 94, 1358, 0, 88, 1361, 94, 1363, 89, 1365, 94, 1367, 0, 91, 1370, 94, 1372, 92, 1374, 94, 1376, 93, 1378, 94, 1380, 0, 97, 1383, 113, 1385, 0, 98, 1388, 113, 1390, 0, 99, 1393, 113, 1395, 100, 1397, 113, 1399, 0, 102, 1402, 113, 1404, 103, 1406, 113, 1408, 0, 105, 1411, 113, 1413, 106, 1415, 113, 1417, 0, 108, 1420, 113, 1422, 109, 1424, 113, 1426, 110, 1428, 113, 1430, 111, 1432, 113, 1434, 112, 1436, 113, 1438, 0, 116, 1441, 142, 1443, 0, 117, 1446, 142, 1448, 0, 118, 1451, 142, 1453, 119, 1455, 142, 1457, 0, 122, 1460, 142, 1462, 0, 124, 1465, 142, 1467, 126, 1469, 142, 1471, 127, 1473, 142, 1475, 128, 1477, 142, 1479, 129, 1481, 142, 1483, 0, 133, 1486, 142, 1488, 0, 135, 1491, 142, 1493, 136, 1495, 142, 1497, 137, 1499, 142, 1501, 138, 1503, 142, 1505, 139, 1507, 142, 1509, 140, 1511, 142, 1513, 141, 1515, 142, 1517, 0, 145, 1520, 161, 1522, 0, 146, 1525, 161, 1527, 0, 147, 1530, 161, 1532, 0, 148, 1535, 161, 1537, 0, 149, 1540, 161, 1542, 150, 1544, 161, 1546, 0, 152, 1549, 161, 1551, 153, 1553, 161, 1555, 0, 155, 1558, 161, 1560, 156, 1562, 161, 1564, 157, 1566, 161, 1568, 158, 1570, 161, 1572, 159, 1574, 161, 1576, 160, 1578, 161, 1580, 0, 164, 1583, 178, 1585, 0, 165, 1588, 178, 1590, 0, 166, 1593, 178, 1595, 167, 1597, 178, 1599, 170, 1601, 178, 1603, 171, 1605, 178, 1607, 0, 175, 1610, 178, 1612, 176, 1614, 178, 1616, 177, 1618, 178, 1620, 0, 181, 1623, 196, 1625, 0, 182, 1628, 196, 1630, 0, 183, 1633, 196, 1635, 0, 184, 1638, 196, 1640, 185, 1642, 196, 1644, 0, 187, 1647, 196, 1649, 188, 1651, 196, 1653, 0, 190, 1656, 196, 1658, 191, 1660, 196, 1662, 192, 1664, 196, 1666, 193, 1668, 196, 1670, 194, 1672, 196, 1674, 195, 1676, 196, 1678, 0, 199, 1681, 213, 1683, 0, 200, 1686, 213, 1688, 0, 201, 1691, 213, 1693, 202, 1695, 213, 1697, 205, 1699, 213, 1701, 206, 1703, 213, 1705, 0, 210, 1708, 213, 1710, 211, 1712, 213, 1714, 212, 1716, 213, 1718, 0, 216, 1721, 235, 1723, 217, 1725, 0, 219, 1728, 235, 1730, 220, 1732, 0, 222, 1735, 235, 1737, 223, 1739, 0, 226, 1742, 235, 1744, 229, 1746, 230, 1748, 231, 1750, 237, 1752, 256, 1754, 238, 1756, 256, 1758, 239, 1760, 256, 1762, 240, 1764, 256, 1766, 256, 1768, 241, 1770, 256, 1772, 256, 1774, 242, 1776, 256, 1778, 256, 1780, 243, 1782, 256, 1784, 256, 1786, 244, 1788, 256, 1790, 256, 1792, 245, 1794, 256, 1796, 256, 1798, 246, 1800, 256, 1802, 256, 1804, 247, 1806, 256, 1808, 256, 1810, 248, 1812, 256, 1814, 256, 1816, 249, 1818, 256, 1820, 256, 1822, 250, 1824, 256, 1826, 256, 1828, 251, 1830, 256, 1832, 256, 1834, 252, 1836, 256, 1838, 256, 1840, 253, 1842, 256, 1844, 256, 1846, 254, 1848, 256, 1850, 255, 1852, 256, 1854, 107, 70, 1857, 129, 94, 1860, 147, 94, 1863, 1, 23, 26, 39, 40, 23, 26, 29, 32, 39, 39, 40, 29, 39, 32, 39, 40, 39, 40, 39, 46, 49, 52, 56, 56, 59, 63, 70, 71, 70, 71, 56, 70, 56, 70, 59, 70, 63, 70, 70, 71, 70, 76, 79, 81, 83, 83, 85, 87, 87, 90, 94, 95, 79, 94, 83, 94, 83, 94, 87, 94, 87, 94, 90, 94, 94, 95, 95, 94, 101, 104, 107, 113, 114, 104, 113, 107, 113, 113, 114, 113, 120, 121, 123, 125, 130, 131, 132, 134, 142, 143, 130, 131, 142, 131, 142, 131, 142, 131, 142, 131, 142, 130, 132, 142, 143, 143, 142, 143, 143, 142, 151, 154, 161, 162, 154, 161, 161, 162, 161, 168, 169, 172, 174, 178, 179, 172, 173, 178, 173, 178, 173, 178, 172, 174, 178, 179, 179, 179, 178, 186, 189, 196, 197, 189, 196, 196, 197, 196, 203, 204, 207, 209, 213, 214, 207, 208, 213, 208, 213, 208, 213, 207, 209, 213, 214, 214, 214, 213, 218, 221, 224, 225, 227, 232, 232, 233, 234, 235, 232, 233, 232, 233, 232, 233, 233, 235, 233, 235, 233, 235, 232, 234, 235, 235, 256, 257, 257, 256, 125, 169, 204, 227];
expr_arg3 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 12, 0, 0, 12, 0, 0, 13, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 0, 1, 1, 0, 1, 0, 1, 1, 1, -1, 1, 1, 1, 1, 5, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, -1, 1, 1, 1, 1, 8, 1, 1, 10, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, -1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, -1, 1, 1, 1, 1, 1, 6, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, -1, 1, 1, 1, 0, 0, 1, 1, -1, 1, 1, 1, 1, 1, 0, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, -1, 1, 1, 1, 0, 1, -1, 1, 1, 1, 1, 1, 0, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, -1, 1, 1, 1, 0, 1, -1, 1, 1, 1, 1, 1, 1, 8, 11, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, -1, 1, 1, 0, 1, 1, 1, -1, -2, -2, -2, -2];
expr_children = [{}, {}, {}, {}, {}, 2..5, {}, {}, {}, {}, 7..10, {}, {}, 12..13, {}, 12..12 union 15..15, {}, 12..12 union 17..17, {}, {}, {}, {}, {}, {}, 21..24, {}, {}, {}, {}, 26..29, {}, {}, {}, {}, 31..34, {}, 4..5 union 33..33 union 36..36, {}, 9..10 union 23..23 union 38..38, {}, {}, {}, 33..33 union 40..42, {}, {}, {}, 23..23 union 44..46, {}, {}, {}, 33..33 union 48..50, {}, 23..23 union 52..52, {}, 28..28 union 54..54, {}, 33..33 union 56..56, {}, {}, {}, {}, 58..61, {}, 60..60 union 63..63, {}, {}, {}, {}, 65..68, {}, 67..67 union 70..70, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 9..10 union 38..38, 44..46, 22..22 union 24..24, 52..52 union 126..128, 27..27 union 29..29, 54..54 union 130..130, 4..5 union 36..36, 40..42, 48..50, 32..32 union 34..34, 56..56 union 132..135, 7..7 union 9..10 union 23..23, {}, 23..23 union 45..46 union 138..138, 22..23, 137..137 union 139..140, {}, {}, {}, 28..28 union 142..144, 27..28, 145..146, 2..2 union 4..5 union 33..33, {}, 33..33 union 41..42 union 149..149, {}, 33..33 union 49..50 union 151..151, 32..33, 148..148 union 150..150 union 152..153, 4..4 union 33..33 union 36..36, 2..4, 155..156, 9..9 union 23..23 union 38..38, 7..9, 158..159, 33..33 union 40..41, {}, 86..86 union 162..162, {}, {}, 86..86 union 164..165, 163..163 union 166..166, 23..23 union 44..45, 33..33 union 48..49, 59..59 union 61..61, 63..63 union 170..170, {}, {}, {}, 60..60 union 172..174, 59..60, 175..176, 66..66 union 68..68, 70..70 union 178..178, {}, {}, {}, 67..67 union 180..182, 66..67, 183..184, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 188..188 union 190..190 union 192..192 union 194..194 union 196..196 union 198..198 union 200..200 union 202..202 union 204..204 union 206..206 union 208..208 union 210..210 union 212..212 union 214..214 union 216..216 union 218..218 union 220..220 union 222..222 union 224..224 union 226..226 union 228..228 union 230..230 union 232..232 union 234..234, {}, {}, {}, {}, {}, {}, {}, {}, {}, 238..238 union 240..240 union 242..242 union 244..244, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 248..248 union 250..250 union 252..252 union 254..254 union 256..256 union 258..258, {}, {}, {}, {}, {}, 262..262 union 264..264, {}, {}, {}, {}, {}, {}, {}, 268..268 union 270..270 union 272..272, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 276..276 union 278..278 union 280..280 union 282..282 union 284..284 union 286..286 union 288..288 union 290..290, {}, {}, {}, {}, {}, {}, {}, {}, {}, 294..294 union 296..296 union 298..298 union 300..300, {}, {}, {}, {}, {}, {}, {}, 303..306 union 308..308, {}, {}, {}, {}, {}, 312..312 union 314..314, {}, {}, {}, {}, {}, 317..318 union 320..320, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 324..324 union 326..327 union 329..329 union 331..331 union 333..334 union 336..336 union 338..338, {}, {}, {}, {}, {}, 342..342 union 344..344, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 347..354 union 356..356 union 358..358 union 360..361, {}, {}, {}, {}, 364..364 union 366..366, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 370..370 union 372..372 union 374..374 union 376..376 union 378..378 union 380..380 union 382..382 union 384..384 union 386..386, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 389..397 union 399..399 union 401..401 union 403..403 union 405..405 union 407..407 union 409..409 union 411..411, {}, {}, {}, {}, {}, {}, {}, 415..415 union 417..417 union 419..419, {}, {}, {}, {}, {}, 421..421 union 423..423 union 425..425, {}, {}, {}, 423..423 union 427..427 union 429..429, {}, {}, {}, 423..423 union 431..431 union 433..433, {}, {}, {}, 423..423 union 435..435 union 437..437, {}, {}, {}, 423..423 union 439..439 union 441..441, {}, {}, {}, 423..423 union 443..443 union 445..445, {}, {}, {}, 423..423 union 447..447 union 449..449, {}, {}, {}, 423..423 union 451..451 union 453..453, {}, {}, {}, 423..423 union 455..455 union 457..457, {}, {}, {}, 423..423 union 459..459 union 461..461, {}, {}, {}, 423..423 union 463..463 union 465..465, {}, {}, {}, 423..423 union 467..467 union 469..469, {}, {}, {}, 423..423 union 471..471 union 473..473, {}, {}, {}, 423..423 union 475..475 union 477..477, {}, {}, {}, 423..423 union 479..479 union 481..481, {}, {}, {}, 423..423 union 483..483 union 485..485, {}, {}, {}, 423..423 union 487..487 union 489..489, {}, {}, {}, 423..423 union 491..491 union 493..493, {}, {}, {}, 423..423 union 495..495 union 497..497, {}, {}, {}, 423..423 union 499..499 union 501..501, {}, {}, {}, 423..423 union 503..503 union 505..505, {}, {}, {}, 423..423 union 507..507 union 509..509, {}, {}, {}, 423..423 union 511..511 union 513..513, {}, {}, {}, 423..423 union 515..515 union 517..517, {}, {}, {}, 423..423 union 519..519 union 521..521, {}, {}, {}, 423..423 union 523..523 union 525..525, {}, {}, {}, 423..423 union 527..527 union 529..529, {}, {}, {}, 423..423 union 531..531 union 533..533, {}, {}, {}, 423..423 union 535..535 union 537..537, {}, {}, {}, 423..423 union 539..539 union 541..541, {}, {}, {}, 423..423 union 543..543 union 545..545, {}, {}, {}, 423..423 union 547..547 union 549..549, {}, {}, {}, 497..497 union 551..551 union 553..553, {}, {}, {}, 501..501 union 555..555 union 557..557, {}, {}, {}, 509..509 union 559..559 union 561..561, {}, {}, {}, 517..517 union 563..563 union 565..565, {}, {}, {}, 525..525 union 567..567 union 569..569, {}, {}, {}, 533..533 union 571..571 union 573..573, {}, {}, {}, 537..537 union 575..575 union 577..577, {}, {}, {}, 541..541 union 579..579 union 581..581, {}, {}, {}, 545..545 union 583..583 union 585..585, {}, {}, {}, 549..549 union 587..587 union 589..589, {}, {}, {}, {}, {}, 591..591 union 593..593 union 595..595, {}, {}, {}, {}, {}, 597..597 union 599..599 union 601..601, {}, {}, {}, {}, {}, 603..603 union 605..605 union 607..607, {}, {}, {}, {}, {}, 609..609 union 611..611 union 613..613, {}, {}, {}, {}, {}, 615..615 union 617..617 union 619..619, {}, {}, {}, {}, {}, 621..621 union 623..623 union 625..625, {}, {}, {}, {}, {}, 627..627 union 629..629 union 631..631, {}, {}, {}, {}, {}, 633..633 union 635..635 union 637..637, {}, {}, {}, {}, {}, 639..639 union 641..641 union 643..643, {}, {}, {}, {}, {}, 645..645 union 647..647 union 649..649, {}, {}, {}, {}, {}, 651..651 union 653..653 union 655..655, {}, {}, {}, {}, {}, 657..657 union 659..659 union 661..661, {}, {}, {}, {}, {}, 663..663 union 665..665 union 667..667, {}, {}, {}, {}, {}, 669..669 union 671..671 union 673..673, {}, {}, {}, {}, {}, 675..675 union 677..677 union 679..679, {}, {}, {}, {}, {}, 681..681 union 683..683 union 685..685, {}, {}, {}, {}, {}, 687..687 union 689..689 union 691..691, {}, {}, {}, {}, {}, 693..693 union 695..695 union 697..697, {}, {}, {}, {}, {}, 699..699 union 701..701 union 703..703, {}, {}, {}, {}, {}, 705..705 union 707..707 union 709..709, {}, {}, {}, {}, {}, 711..711 union 713..713 union 715..715, {}, {}, {}, {}, {}, 717..717 union 719..719 union 721..721, {}, {}, {}, {}, {}, 723..723 union 725..725 union 727..727, {}, {}, {}, {}, {}, 729..729 union 731..731 union 733..733, {}, {}, {}, {}, {}, 735..735 union 737..737 union 739..739, {}, {}, {}, {}, {}, 741..741 union 743..743 union 745..745, {}, {}, {}, {}, {}, 747..747 union 749..749 union 751..751, {}, {}, {}, {}, {}, 753..753 union 755..755 union 757..757, {}, {}, {}, {}, {}, 759..759 union 761..761 union 763..763, {}, {}, {}, {}, {}, 765..765 union 767..767 union 769..769, {}, {}, {}, {}, {}, 771..771 union 773..773 union 775..775, {}, {}, {}, {}, {}, 777..777 union 779..779 union 781..781, {}, {}, {}, {}, {}, 783..783 union 785..785 union 787..787, {}, {}, {}, {}, {}, 789..789 union 791..791 union 793..793, {}, {}, {}, {}, {}, 795..795 union 797..797 union 799..799, {}, {}, {}, {}, {}, 801..801 union 803..803 union 805..805, {}, {}, {}, {}, {}, 807..807 union 809..809 union 811..811, {}, {}, {}, {}, {}, 813..813 union 815..815 union 817..817, {}, {}, {}, {}, {}, 819..819 union 821..821 union 823..823, {}, {}, {}, {}, {}, 825..825 union 827..827 union 829..829, {}, {}, {}, {}, {}, 831..831 union 833..833 union 835..835, {}, {}, {}, {}, {}, 837..837 union 839..839 union 841..841, {}, {}, {}, {}, {}, 843..843 union 845..845 union 847..847, {}, {}, {}, {}, {}, 849..849 union 851..851 union 853..853, {}, {}, {}, {}, {}, 855..855 union 857..857 union 859..859, {}, {}, {}, {}, {}, 861..861 union 863..863 union 865..865, {}, {}, {}, {}, {}, 867..867 union 869..869 union 871..871, {}, {}, {}, {}, {}, 873..873 union 875..875 union 877..877, {}, {}, {}, {}, {}, 879..879 union 881..881 union 883..883, {}, {}, {}, {}, {}, 885..885 union 887..887 union 889..889, {}, {}, {}, {}, {}, 891..891 union 893..893 union 895..895, {}, {}, {}, {}, {}, 897..897 union 899..899 union 901..901, {}, {}, {}, {}, {}, 903..903 union 905..905 union 907..907, {}, {}, {}, {}, {}, 909..909 union 911..911 union 913..913, {}, {}, {}, {}, {}, 915..915 union 917..917 union 919..919, {}, {}, {}, {}, {}, 921..921 union 923..923 union 925..925, {}, {}, {}, {}, {}, 927..927 union 929..929 union 931..931, {}, {}, {}, {}, {}, 933..933 union 935..935 union 937..937, {}, {}, {}, {}, {}, 939..939 union 941..941 union 943..943, {}, {}, {}, {}, {}, 945..945 union 947..947 union 949..949, {}, {}, {}, {}, {}, 951..951 union 953..953 union 955..955, {}, {}, {}, 953..953 union 957..957 union 959..959, {}, {}, {}, {}, {}, 961..961 union 963..963 union 965..965, {}, {}, {}, 963..963 union 967..967 union 969..969, {}, {}, {}, {}, {}, 971..971 union 973..973 union 975..975, {}, {}, {}, 973..973 union 977..977 union 979..979, {}, {}, {}, {}, {}, 981..981 union 983..983 union 985..985, {}, {}, {}, 983..983 union 987..987 union 989..989, {}, {}, {}, {}, {}, 991..991 union 993..993 union 995..995, {}, {}, {}, 993..993 union 997..997 union 999..999, {}, {}, {}, {}, {}, 1001..1001 union 1003..1003 union 1005..1005, {}, {}, {}, 1003..1003 union 1007..1007 union 1009..1009, {}, {}, {}, {}, {}, 1011..1011 union 1013..1013 union 1015..1015, {}, {}, {}, 1015..1015 union 1017..1017 union 1019..1019, {}, {}, {}, 1015..1015 union 1021..1021 union 1023..1023, {}, {}, {}, 1023..1023 union 1025..1025 union 1027..1027, {}, {}, {}, 1015..1015 union 1029..1029 union 1031..1031, {}, {}, {}, 1015..1015 union 1033..1033 union 1035..1035, {}, {}, {}, 1015..1015 union 1037..1037 union 1039..1039, {}, {}, {}, 1015..1015 union 1041..1041 union 1043..1043, {}, {}, {}, 1015..1015 union 1045..1045 union 1047..1047, {}, {}, {}, 1015..1015 union 1049..1049 union 1051..1051, {}, {}, {}, 1015..1015 union 1053..1053 union 1055..1055, {}, {}, {}, 1015..1015 union 1057..1057 union 1059..1059, {}, {}, {}, 1015..1015 union 1061..1061 union 1063..1063, {}, {}, {}, 1015..1015 union 1065..1065 union 1067..1067, {}, {}, {}, 1015..1015 union 1069..1069 union 1071..1071, {}, {}, {}, 1015..1015 union 1073..1073 union 1075..1075, {}, {}, {}, 1015..1015 union 1077..1077 union 1079..1079, {}, {}, {}, 1015..1015 union 1081..1081 union 1083..1083, {}, {}, {}, 1015..1015 union 1085..1085 union 1087..1087, {}, {}, {}, 1087..1087 union 1089..1089 union 1091..1091, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}];
sets = [186..186 union 207..207 union 217..217 union 245..245, 187..187, 188..188, 189..189, 190..190, 191..191, 192..192, 193..193, 194..194, 195..195, 196..196, 197..197, 198..198, 199..199, 200..200, 201..201, 202..202, 203..203, 204..204, 205..205 union 208..208 union 246..246, 206..206 union 209..210 union 218..218 union 247..247, 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 union 311..311 union 339..339, 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 union 400..400 union 428..428, 430..430, 431..431, 432..432, 433..433];