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/mznc2019/code-generator/mips_gcc.cfgrtl.update_br_prob_note.dzn

119 lines
268 KiB
MiniZinc

MAXF = 2147483646;
MAXO = 209;
MAXP = 850;
MAXT = 416;
MAXI = 22;
MAXC = 96;
MAXR = 1154;
optimize_cycles = true;
bb_ops = [0..42, 43..69, 70..100, 101..118, 119..138, 139..151, 152..164, 165..189, 190..209];
bb_operands = [0..121, 122..253, 254..358, 359..439, 440..523, 524..590, 591..656, 657..780, 781..850];
bb_temps = [0..59, 60..122, 123..172, 173..212, 213..254, 255..287, 288..320, 321..381, 382..416];
bb_subsumed = [2..2 union 5..5, 5..5, 2..2 union 5..5, 1..2 union 5..5, 2..2 union 5..5, 2..2 union 5..5, 1..2 union 5..5, 5..5, 2..2 union 5..5];
bb_frequency = [102, 51, 32, 16, 32, 16, 8, 16, 102];
bb_maxcycle = [96, 51, 66, 36, 39, 24, 25, 46, 51];
bb_optional_min = [0, 1, 1, 0, 0, 0, 0, 0, 0];
bb_order = [1, 3, 2, 8, 5, 9, 4, 6, 7];
op_operands = array1d(0..209, [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..79, 80..81, 82..84, 85..86, 87..87, 88..89, 90..91, 92..93, 94..95, 96..97, 98..99, 100..121, 122..143, 144..145, 146..147, 148..149, 150..151, 152..153, 154..155, 156..157, 158..159, 160..161, 162..163, 164..164, 165..166, 167..168, 169..170, 171..172, 173..173, 174..198, 199..217, 218..219, 220..221, 222..223, 224..225, 226..227, 228..229, 230..231, 232..253, 254..275, 276..277, 278..279, 280..281, 282..283, 284..285, 286..287, 288..289, 290..291, 292..293, 294..295, 296..297, 298..299, 300..301, 302..303, 304..305, 306..307, 308..309, 310..311, 312..313, 314..315, 316..317, 318..319, 320..321, 322..323, 324..325, 326..327, 328..329, 330..331, 332..333, 334..358, 359..382, 383..384, 385..386, 387..388, 389..390, 391..392, 393..394, 395..396, 397..398, 399..400, 401..402, 403..404, 405..406, 407..408, 409..410, 411..412, 413..414, 415..439, 440..464, 465..466, 467..468, 469..470, 471..472, 473..474, 475..476, 477..478, 479..480, 481..482, 483..484, 485..486, 487..488, 489..490, 491..492, 493..494, 495..496, 497..498, 499..500, 501..523, 524..546, 547..548, 549..550, 551..552, 553..554, 555..556, 557..558, 559..560, 561..562, 563..564, 565..566, 567..568, 569..590, 591..612, 613..614, 615..616, 617..618, 619..620, 621..622, 623..624, 625..626, 627..628, 629..630, 631..632, 633..634, 635..656, 657..678, 679..680, 681..682, 683..684, 685..686, 687..688, 689..690, 691..692, 693..694, 695..696, 697..698, 699..700, 701..701, 702..703, 704..705, 706..707, 708..708, 709..732, 733..751, 752..753, 754..755, 756..757, 758..759, 760..761, 762..780, 781..799, 800..801, 802..803, 804..805, 806..807, 808..809, 810..811, 812..813, 814..815, 816..817, 818..819, 820..821, 822..823, 824..825, 826..827, 828..829, 830..831, {}, 832..832, 833..850]);
op_instructions = array1d(0..209, [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, 10..10, 0..0 union 5..6, 11..11, 0..0 union 5..5 union 8..8, 12..12, 0..0 union 5..6, 11..11, 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..5 union 8..8, 10..10, 14..14, 0..0 union 5..6, 14..14, 0..0 union 5..6, 15..15, 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, 1..1, 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, 17..17, 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, 10..10, 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, 10..10, 0..0 union 5..6, 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, 18..18, 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, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 17..17, 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..6, 0..0 union 5..5 union 8..8, 10..10, 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, 0..0 union 5..5 union 8..8, 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..6, 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, 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, 17..17, 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, 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, 17..17, 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, 10..10, 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, 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, 10..10, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 10..10, 14..14, 0..0 union 5..6, 15..15, 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, 1..1, 0..0 union 5..6, 0..0 union 5..5 union 8..8, 0..0 union 5..5 union 8..8, 19..19, 0..0 union 5..5 union 8..8, 2..2, 2..2, 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 20..20, 0..0 union 20..20, 0..0 union 20..20, 0..0 union 20..20, 0..0 union 20..20, 0..0 union 20..20, 0..0 union 21..21, 22..22, 2..2]);
op_type = array1d(0..209, [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, 0, 14, 0, 14, 0, 14, 14, 14, 14, 14, 1, 5, 4, 14, 14, 14, 14, 14, 0, 0, 14, 0, 14, 0, 14, 14, 14, 14, 2, 13, 6, 14, 14, 14, 14, 14, 14, 1, 5, 4, 14, 14, 14, 14, 14, 0, 14, 14, 0, 14, 14, 0, 14, 14, 14, 0, 14, 14, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 1, 5, 4, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, 14, 14, 14, 14, 14, 14, 5, 4, 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, 14, 14, 14, 14, 14, 14, 1, 5, 4, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 1, 5, 4, 14, 14, 14, 14, 14, 0, 14, 14, 14, 14, 14, 5, 4, 14, 14, 14, 14, 14, 0, 14, 14, 0, 0, 14, 0, 14, 14, 14, 2, 13, 6, 14, 14, 14, 0, 14, 5, 4, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 1, 5]);
op_mand = array1d(0..209, [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, true, false, true, false, true, false, false, false, false, false, true, true, true, false, false, false, false, false, true, true, false, true, false, true, false, false, false, false, true, true, true, false, false, false, false, false, false, true, true, true, false, false, false, false, false, true, false, false, true, false, false, true, false, false, false, true, false, false, true, false, false, false, false, false, false, false, false, false, true, true, true, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, true, true, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, true, true, true, false, false, false, false, false, false, false, false, false, false, true, true, true, false, false, false, false, false, true, false, false, false, false, false, true, true, false, false, false, false, false, true, false, false, true, true, false, true, false, false, false, true, true, true, false, false, false, true, false, true, true, 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..1154, 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..610, 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, 611..1154, 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 union 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]);
calleesaved = 16..23 union 53..64;
callersaved = 1..15 union 24..25 union 28..28 union 30..52;
infinite = 67..1154;
range = [0..1154, 0..31, 1..15, 24..25, 30..31, 32..32, 33..64, 33..52, 65..65, 66..66, 67..610, 611..1154];
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..22, [0, 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 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]);
res_dur = array2d(1..5, 0..22, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 3, 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]);
res_off = array2d(1..5, 0..22, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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]);
congr = [17..17 union 115..115 union 137..137 union 156..156 union 160..160 union 231..231 union 247..247 union 269..269 union 333..333 union 348..348 union 373..373 union 429..429 union 455..455 union 515..515 union 538..538 union 568..568 union 583..583 union 605..605 union 649..649 union 672..672 union 697..697 union 776..776 union 795..795 union 847..847, 18..18 union 116..116 union 138..138 union 248..248 union 270..270 union 349..349 union 374..374 union 430..430 union 456..456 union 516..516 union 539..539 union 584..584 union 606..606 union 650..650 union 673..673 union 777..777 union 796..796 union 848..848, 19..19 union 117..117 union 139..139 union 249..249 union 271..271 union 350..350 union 375..375 union 431..431 union 457..457 union 517..517 union 540..540 union 585..585 union 607..607 union 651..651 union 674..674 union 778..778 union 797..797 union 849..849, 20..20 union 118..118 union 140..140 union 250..250 union 272..272 union 351..351 union 376..376 union 432..432 union 458..458 union 518..518 union 541..541 union 586..586 union 608..608 union 652..652 union 675..675 union 779..779 union 798..798 union 850..850, 79..79 union 83..83, 87..87 union 99..99, 100..100 union 122..122, 101..101 union 123..123 union 233..233 union 255..255 union 334..334 union 359..359 union 415..415 union 441..441 union 501..501 union 524..524 union 569..569 union 591..591 union 635..635 union 658..658 union 762..762 union 781..781, 102..102 union 124..124 union 234..234 union 256..256 union 335..335 union 360..360 union 416..416 union 442..442 union 502..502 union 525..525 union 570..570 union 592..592 union 636..636 union 659..659 union 763..763 union 782..782, 103..103 union 125..125 union 235..235 union 257..257 union 336..336 union 361..361 union 417..417 union 443..443 union 503..503 union 526..526 union 571..571 union 593..593 union 637..637 union 660..660 union 764..764 union 783..783, 104..104 union 126..126 union 236..236 union 258..258 union 337..337 union 362..362 union 418..418 union 444..444 union 504..504 union 527..527 union 572..572 union 594..594 union 638..638 union 661..661 union 765..765 union 784..784, 105..105 union 127..127 union 237..237 union 259..259 union 338..338 union 363..363 union 419..419 union 445..445 union 505..505 union 528..528 union 573..573 union 595..595 union 639..639 union 662..662 union 766..766 union 785..785, 106..106 union 128..128 union 238..238 union 260..260 union 339..339 union 364..364 union 420..420 union 446..446 union 506..506 union 529..529 union 574..574 union 596..596 union 640..640 union 663..663 union 767..767 union 786..786, 107..107 union 129..129 union 239..239 union 261..261 union 340..340 union 365..365 union 421..421 union 447..447 union 507..507 union 530..530 union 575..575 union 597..597 union 641..641 union 664..664 union 768..768 union 787..787, 108..108 union 130..130 union 240..240 union 262..262 union 341..341 union 366..366 union 422..422 union 448..448 union 508..508 union 531..531 union 576..576 union 598..598 union 642..642 union 665..665 union 769..769 union 788..788, 109..109 union 131..131 union 241..241 union 263..263 union 342..342 union 367..367 union 423..423 union 449..449 union 509..509 union 532..532 union 577..577 union 599..599 union 643..643 union 666..666 union 770..770 union 789..789, 110..110 union 132..132 union 242..242 union 264..264 union 343..343 union 368..368 union 424..424 union 450..450 union 510..510 union 533..533 union 578..578 union 600..600 union 644..644 union 667..667 union 771..771 union 790..790, 111..111 union 133..133 union 243..243 union 265..265 union 344..344 union 369..369 union 425..425 union 451..451 union 511..511 union 534..534 union 579..579 union 601..601 union 645..645 union 668..668 union 772..772 union 791..791, 112..112 union 134..134 union 244..244 union 266..266 union 345..345 union 370..370 union 426..426 union 452..452 union 512..512 union 535..535 union 580..580 union 602..602 union 646..646 union 669..669 union 773..773 union 792..792, 113..113 union 135..135 union 245..245 union 267..267 union 346..346 union 371..371 union 427..427 union 453..453 union 513..513 union 536..536 union 581..581 union 603..603 union 647..647 union 670..670 union 774..774 union 793..793, 114..114 union 136..136 union 246..246 union 268..268 union 347..347 union 372..372 union 428..428 union 454..454 union 514..514 union 537..537 union 582..582 union 604..604 union 648..648 union 671..671 union 775..775 union 794..794, 119..119 union 141..141 union 251..251 union 273..273 union 519..519 union 542..542 union 780..780 union 799..799, 120..120 union 142..142, 121..121 union 143..143, 155..155 union 173..173, 164..164 union 178..178, 180..180 union 199..199, 181..181 union 200..200, 182..182 union 201..201, 183..183 union 202..202, 184..184 union 203..203, 185..185 union 204..204, 186..186 union 205..205, 187..187 union 206..206, 188..188 union 207..207, 189..189 union 208..208, 190..190 union 209..209, 191..191 union 210..210, 192..192 union 211..211, 193..193 union 212..212, 194..194 union 213..213, 195..195 union 214..214, 196..196 union 215..215, 197..197 union 216..216, 198..198 union 217..217, 232..232 union 254..254, 252..252 union 274..274, 253..253 union 275..275, 352..352 union 377..377 union 433..433 union 459..459, 353..353 union 378..378 union 434..434 union 460..460, 354..354 union 379..379 union 435..435 union 461..461, 355..355 union 380..380 union 436..436 union 462..462, 356..356 union 381..381 union 437..437 union 463..463, 357..357 union 382..382 union 438..438 union 464..464, 358..358 union 439..440, 520..520 union 543..543, 521..521 union 544..544, 522..522 union 545..545, 523..523 union 546..546, 587..587 union 609..609 union 653..653 union 676..676, 588..588 union 610..610 union 654..654 union 677..677, 589..589 union 611..611 union 655..655 union 678..678, 590..590 union 612..612 union 656..657, 696..696 union 708..708, 701..701 union 712..712, 714..714 union 733..733, 715..715 union 734..734, 716..716 union 735..735, 717..717 union 736..736, 718..718 union 737..737, 719..719 union 738..738, 720..720 union 739..739, 721..721 union 740..740, 722..722 union 741..741, 723..723 union 742..742, 724..724 union 743..743, 725..725 union 744..744, 726..726 union 745..745, 727..727 union 746..746, 728..728 union 747..747, 729..729 union 748..748, 730..730 union 749..749, 731..731 union 750..750, 732..732 union 751..751];
strictly_congr = [0..0 union 174..174 union 182..182 union 201..201 union 709..709 union 716..716 union 735..735, 1..1 union 155..155 union 173..173 union 696..696 union 708..708, 2..2 union 179..179 union 713..713, 3..3 union 833..833, 4..4 union 834..834, 5..5 union 835..835, 6..6 union 836..836, 7..7 union 837..837, 8..8 union 838..838, 9..9 union 839..839, 10..10 union 840..840, 11..11 union 841..841, 12..12 union 842..842, 13..13 union 843..843, 14..14 union 844..844, 15..15 union 845..845, 16..16 union 846..846, 17..17 union 115..115 union 137..137 union 156..156 union 160..160 union 231..231 union 247..247 union 269..269 union 333..333 union 348..348 union 373..373 union 429..429 union 455..455 union 515..515 union 538..538 union 568..568 union 583..583 union 605..605 union 649..649 union 672..672 union 697..697 union 776..776 union 795..795 union 847..847, 18..18 union 116..116 union 138..138 union 248..248 union 270..270 union 349..349 union 374..374 union 430..430 union 456..456 union 516..516 union 539..539 union 584..584 union 606..606 union 650..650 union 673..673 union 777..777 union 796..796 union 848..848, 19..19 union 117..117 union 139..139 union 249..249 union 271..271 union 350..350 union 375..375 union 431..431 union 457..457 union 517..517 union 540..540 union 585..585 union 607..607 union 651..651 union 674..674 union 778..778 union 797..797 union 849..849, 20..20 union 118..118 union 140..140 union 250..250 union 272..272 union 351..351 union 376..376 union 432..432 union 458..458 union 518..518 union 541..541 union 586..586 union 608..608 union 652..652 union 675..675 union 779..779 union 798..798 union 850..850, 21..21 union 164..164 union 178..178 union 701..701 union 712..712, 79..79 union 83..83, 87..87 union 99..99, 100..100 union 122..122, 101..101 union 123..123 union 233..233 union 255..255 union 334..334 union 359..359 union 415..415 union 441..441 union 501..501 union 524..524 union 569..569 union 591..591 union 635..635 union 658..658 union 762..762 union 781..781, 102..102 union 124..124 union 234..234 union 256..256 union 335..335 union 360..360 union 416..416 union 442..442 union 502..502 union 525..525 union 570..570 union 592..592 union 636..636 union 659..659 union 763..763 union 782..782, 103..103 union 125..125 union 235..235 union 257..257 union 336..336 union 361..361 union 417..417 union 443..443 union 503..503 union 526..526 union 571..571 union 593..593 union 637..637 union 660..660 union 764..764 union 783..783, 104..104 union 126..126 union 236..236 union 258..258 union 337..337 union 362..362 union 418..418 union 444..444 union 504..504 union 527..527 union 572..572 union 594..594 union 638..638 union 661..661 union 765..765 union 784..784, 105..105 union 127..127 union 237..237 union 259..259 union 338..338 union 363..363 union 419..419 union 445..445 union 505..505 union 528..528 union 573..573 union 595..595 union 639..639 union 662..662 union 766..766 union 785..785, 106..106 union 128..128 union 238..238 union 260..260 union 339..339 union 364..364 union 420..420 union 446..446 union 506..506 union 529..529 union 574..574 union 596..596 union 640..640 union 663..663 union 767..767 union 786..786, 107..107 union 129..129 union 239..239 union 261..261 union 340..340 union 365..365 union 421..421 union 447..447 union 507..507 union 530..530 union 575..575 union 597..597 union 641..641 union 664..664 union 768..768 union 787..787, 108..108 union 130..130 union 240..240 union 262..262 union 341..341 union 366..366 union 422..422 union 448..448 union 508..508 union 531..531 union 576..576 union 598..598 union 642..642 union 665..665 union 769..769 union 788..788, 109..109 union 131..131 union 241..241 union 263..263 union 342..342 union 367..367 union 423..423 union 449..449 union 509..509 union 532..532 union 577..577 union 599..599 union 643..643 union 666..666 union 770..770 union 789..789, 110..110 union 132..132 union 242..242 union 264..264 union 343..343 union 368..368 union 424..424 union 450..450 union 510..510 union 533..533 union 578..578 union 600..600 union 644..644 union 667..667 union 771..771 union 790..790, 111..111 union 133..133 union 243..243 union 265..265 union 344..344 union 369..369 union 425..425 union 451..451 union 511..511 union 534..534 union 579..579 union 601..601 union 645..645 union 668..668 union 772..772 union 791..791, 112..112 union 134..134 union 244..244 union 266..266 union 345..345 union 370..370 union 426..426 union 452..452 union 512..512 union 535..535 union 580..580 union 602..602 union 646..646 union 669..669 union 773..773 union 792..792, 113..113 union 135..135 union 245..245 union 267..267 union 346..346 union 371..371 union 427..427 union 453..453 union 513..513 union 536..536 union 581..581 union 603..603 union 647..647 union 670..670 union 774..774 union 793..793, 114..114 union 136..136 union 246..246 union 268..268 union 347..347 union 372..372 union 428..428 union 454..454 union 514..514 union 537..537 union 582..582 union 604..604 union 648..648 union 671..671 union 775..775 union 794..794, 119..119 union 141..141 union 251..251 union 273..273 union 519..519 union 542..542 union 780..780 union 799..799, 120..120 union 142..142, 121..121 union 143..143, 175..175 union 183..183 union 202..202 union 710..710 union 717..717 union 736..736, 176..176 union 184..184 union 203..203 union 718..718 union 737..737, 177..177 union 195..195 union 214..214 union 711..711 union 729..729 union 748..748, 180..180 union 199..199 union 714..714 union 733..733, 181..181 union 200..200 union 715..715 union 734..734, 185..185 union 204..204 union 719..719 union 738..738, 186..186 union 205..205 union 720..720 union 739..739, 187..187 union 206..206 union 721..721 union 740..740, 188..188 union 207..207 union 722..722 union 741..741, 189..189 union 208..208 union 723..723 union 742..742, 190..190 union 209..209 union 724..724 union 743..743, 191..191 union 210..210 union 725..725 union 744..744, 192..192 union 211..211 union 726..726 union 745..745, 193..193 union 212..212 union 727..727 union 746..746, 194..194 union 213..213 union 728..728 union 747..747, 196..196 union 215..215 union 730..730 union 749..749, 197..197 union 216..216 union 731..731 union 750..750, 198..198 union 217..217 union 732..732 union 751..751, 232..232 union 254..254, 252..252 union 274..274, 253..253 union 275..275, 352..352 union 377..377 union 433..433 union 459..459, 353..353 union 378..378 union 434..434 union 460..460, 354..354 union 379..379 union 435..435 union 461..461, 355..355 union 380..380 union 436..436 union 462..462, 356..356 union 381..381 union 437..437 union 463..463, 357..357 union 382..382 union 438..438 union 464..464, 358..358 union 439..440, 520..520 union 543..543, 521..521 union 544..544, 522..522 union 545..545, 523..523 union 546..546, 587..587 union 609..609 union 653..653 union 676..676, 588..588 union 610..610 union 654..654 union 677..677, 589..589 union 611..611 union 655..655 union 678..678, 590..590 union 612..612 union 656..657];
preassign_operand = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 164, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 701, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850];
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, 5, 28, 31, 2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 24, 28, 30, 32, 33, 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 = [100, 101, 101, 102, 102, 103, 103, 104, 104, 105, 105, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 121, 232, 233, 233, 234, 234, 235, 235, 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, 253, 334, 334, 335, 335, 336, 336, 337, 337, 338, 338, 339, 339, 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, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 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, 514, 515, 515, 516, 516, 517, 517, 518, 518, 519, 519, 520, 521, 522, 523, 569, 569, 570, 570, 571, 571, 572, 572, 573, 573, 574, 574, 575, 575, 576, 576, 577, 577, 578, 578, 579, 579, 580, 580, 581, 581, 582, 582, 583, 583, 584, 584, 585, 585, 586, 586, 587, 587, 588, 588, 589, 589, 590, 590, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780];
adj_to = [122, 123, 781, 124, 782, 125, 783, 126, 784, 127, 785, 128, 786, 129, 787, 130, 788, 131, 789, 132, 790, 133, 791, 134, 792, 135, 793, 136, 794, 137, 795, 138, 796, 139, 797, 140, 798, 141, 799, 142, 143, 254, 255, 781, 256, 782, 257, 783, 258, 784, 259, 785, 260, 786, 261, 787, 262, 788, 263, 789, 264, 790, 265, 791, 266, 792, 267, 793, 268, 794, 269, 795, 270, 796, 271, 797, 272, 798, 273, 799, 274, 275, 359, 441, 360, 442, 361, 443, 362, 444, 363, 445, 364, 446, 365, 447, 366, 448, 367, 449, 368, 450, 369, 451, 370, 452, 371, 453, 372, 454, 373, 455, 374, 456, 375, 457, 376, 458, 377, 459, 378, 460, 379, 461, 380, 462, 381, 463, 382, 464, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 440, 524, 781, 525, 782, 526, 783, 527, 784, 528, 785, 529, 786, 530, 787, 531, 788, 532, 789, 533, 790, 534, 791, 535, 792, 536, 793, 537, 794, 538, 795, 539, 796, 540, 797, 541, 798, 542, 799, 543, 544, 545, 546, 591, 658, 592, 659, 593, 660, 594, 661, 595, 662, 596, 663, 597, 664, 598, 665, 599, 666, 600, 667, 601, 668, 602, 669, 603, 670, 604, 671, 605, 672, 606, 673, 607, 674, 608, 675, 609, 676, 610, 677, 611, 678, 612, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 657, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799];
quasi_adj_from = [];
quasi_adj_to = [];
long_latency_index = array2d(1..40, 1..4, [137..137 union 269..269 union 373..373 union 455..455 union 538..538 union 605..605 union 672..672 union 795..795, {}, 115..115 union 247..247 union 348..348 union 429..429 union 515..515 union 583..583 union 649..649 union 776..776, {}, 138..138 union 270..270 union 374..374 union 456..456 union 539..539 union 606..606 union 673..673 union 796..796, {}, 116..116 union 248..248 union 349..349 union 430..430 union 516..516 union 584..584 union 650..650 union 777..777, {}, 139..139 union 271..271 union 375..375 union 457..457 union 540..540 union 607..607 union 674..674 union 797..797, {}, 117..117 union 249..249 union 350..350 union 431..431 union 517..517 union 585..585 union 651..651 union 778..778, {}, 140..140 union 272..272 union 376..376 union 458..458 union 541..541 union 608..608 union 675..675 union 798..798, {}, 118..118 union 250..250 union 351..351 union 432..432 union 518..518 union 586..586 union 652..652 union 779..779, {}, 122..122, 92..92, 100..100, 0..0 union 3..3, 123..123 union 255..255 union 359..359 union 441..441 union 524..524 union 591..591 union 658..658 union 781..781, {}, 101..101 union 233..233 union 334..334 union 415..415 union 501..501 union 569..569 union 635..635 union 762..762, {}, 124..124 union 256..256 union 360..360 union 442..442 union 525..525 union 592..592 union 659..659 union 782..782, {}, 102..102 union 234..234 union 335..335 union 416..416 union 502..502 union 570..570 union 636..636 union 763..763, {}, 125..125 union 257..257 union 361..361 union 443..443 union 526..526 union 593..593 union 660..660 union 783..783, {}, 103..103 union 235..235 union 336..336 union 417..417 union 503..503 union 571..571 union 637..637 union 764..764, {}, 126..126 union 258..258 union 362..362 union 444..444 union 527..527 union 594..594 union 661..661 union 784..784, {}, 104..104 union 236..236 union 337..337 union 418..418 union 504..504 union 572..572 union 638..638 union 765..765, {}, 127..127 union 259..259 union 363..363 union 445..445 union 528..528 union 595..595 union 662..662 union 785..785, {}, 105..105 union 237..237 union 338..338 union 419..419 union 505..505 union 573..573 union 639..639 union 766..766, {}, 128..128 union 260..260 union 364..364 union 446..446 union 529..529 union 596..596 union 663..663 union 786..786, {}, 106..106 union 238..238 union 339..339 union 420..420 union 506..506 union 574..574 union 640..640 union 767..767, {}, 129..129 union 261..261 union 365..365 union 447..447 union 530..530 union 597..597 union 664..664 union 787..787, {}, 107..107 union 239..239 union 340..340 union 421..421 union 507..507 union 575..575 union 641..641 union 768..768, {}, 130..130 union 262..262 union 366..366 union 448..448 union 531..531 union 598..598 union 665..665 union 788..788, {}, 108..108 union 240..240 union 341..341 union 422..422 union 508..508 union 576..576 union 642..642 union 769..769, {}, 131..131 union 263..263 union 367..367 union 449..449 union 532..532 union 599..599 union 666..666 union 789..789, {}, 109..109 union 241..241 union 342..342 union 423..423 union 509..509 union 577..577 union 643..643 union 770..770, {}, 132..132 union 264..264 union 368..368 union 450..450 union 533..533 union 600..600 union 667..667 union 790..790, {}, 110..110 union 242..242 union 343..343 union 424..424 union 510..510 union 578..578 union 644..644 union 771..771, {}, 133..133 union 265..265 union 369..369 union 451..451 union 534..534 union 601..601 union 668..668 union 791..791, {}, 111..111 union 243..243 union 344..344 union 425..425 union 511..511 union 579..579 union 645..645 union 772..772, {}, 134..134 union 266..266 union 370..370 union 452..452 union 535..535 union 602..602 union 669..669 union 792..792, {}, 112..112 union 244..244 union 345..345 union 426..426 union 512..512 union 580..580 union 646..646 union 773..773, {}, 135..135 union 267..267 union 371..371 union 453..453 union 536..536 union 603..603 union 670..670 union 793..793, {}, 113..113 union 245..245 union 346..346 union 427..427 union 513..513 union 581..581 union 647..647 union 774..774, {}, 136..136 union 268..268 union 372..372 union 454..454 union 537..537 union 604..604 union 671..671 union 794..794, {}, 114..114 union 246..246 union 347..347 union 428..428 union 514..514 union 582..582 union 648..648 union 775..775, {}, 141..141 union 273..273 union 542..542 union 799..799, 68..70, 119..119 union 251..251 union 519..519 union 780..780, 4..4 union 11..11 union 39..39 union 53..53 union 68..68 union 72..72 union 74..74, 142..142, 91..91, 120..120, 5..5, 143..143, {}, 121..121, 1..2 union 6..6, 254..254, {}, 232..232, 10..10 union 92..92, 274..274, 90..90, 252..252, 7..8 union 12..12 union 91..91, 275..275, 89..89, 253..253, 9..9 union 13..13, 377..377 union 459..459, 73..74, 352..352 union 433..433, 23..23 union 32..32 union 69..69 union 73..73, 378..378 union 460..460, 87..88, 353..353 union 434..434, 24..24 union 33..33 union 87..87 union 90..90, 379..379 union 461..461, 85..86, 354..354 union 435..435, 14..14 union 25..25 union 34..34 union 85..85 union 89..89, 380..380 union 462..462, 84..84, 355..355 union 436..436, 15..15 union 26..26 union 35..35 union 84..84, 381..381 union 463..463, 82..83, 356..356 union 437..437, 16..16 union 18..18 union 21..21 union 27..27 union 30..30 union 36..36 union 82..82, 382..382 union 464..464, 80..81, 357..357 union 438..438, 20..20 union 29..29 union 37..37 union 80..80, 440..440, {}, 358..358 union 439..439, 17..17 union 19..19 union 22..22 union 28..28 union 31..31 union 38..38, 543..543, 79..79, 520..520, 40..40 union 88..88, 544..544, 78..78, 521..521, 41..41 union 86..86, 545..545, 77..77, 522..522, 42..42 union 83..83, 546..546, {}, 523..523, 43..43 union 81..81, 609..609 union 676..676, 71..72, 587..587 union 653..653, 44..44 union 49..49 union 70..71, 610..610 union 677..677, 76..76, 588..588 union 654..654, 45..45 union 50..50 union 76..76 union 79..79, 611..611 union 678..678, 75..75, 589..589 union 655..655, 46..46 union 51..51 union 75..75 union 78..78, 612..612 union 657..657, {}, 590..590 union 656..656, 47..48 union 52..52 union 77..77]);
long_latency_def = array1d(0..92, [68, 70, 74, 91, 93, 95, 97, 153, 166, 221, 223, 225, 227, 229, 285, 293, 299, 299, 305, 305, 317, 319, 319, 321, 323, 325, 327, 329, 329, 331, 396, 398, 402, 404, 406, 408, 410, 412, 414, 490, 492, 494, 496, 498, 560, 562, 564, 566, 624, 628, 630, 632, 634, 761, 805, 807, 809, 811, 813, 815, 817, 819, 821, 823, 825, 827, 829, 831, 141, 273, 542, 609, 676, 377, 459, 611, 610, 545, 544, 543, 382, 464, 381, 463, 380, 379, 461, 378, 460, 275, 274, 142, 122]);
long_latency_use = array1d(0..92, [100, 121, 121, 100, 119, 120, 121, 252, 252, 253, 232, 251, 252, 253, 354, 355, 356, 358, 356, 358, 357, 356, 358, 352, 353, 354, 355, 356, 358, 357, 437, 439, 433, 434, 435, 436, 437, 438, 439, 519, 520, 521, 522, 523, 587, 588, 589, 590, 656, 653, 654, 655, 656, 780, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 251, 352, 587, 653, 780, 433, 519, 655, 654, 590, 589, 588, 438, 523, 437, 522, 436, 435, 521, 434, 520, 354, 353, 252, 232]);
operand_definer = array1d(0..850, [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, 32, 32, 33, 33, 33, 34, 34, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, 48, 48, 49, 49, 50, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 56, 56, 57, 57, 58, 58, 59, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 62, 62, 63, 63, 64, 64, 65, 65, 66, 66, 67, 67, 68, 68, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 71, 71, 72, 72, 73, 73, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79, 80, 80, 81, 81, 82, 82, 83, 83, 84, 84, 85, 85, 86, 86, 87, 87, 88, 88, 89, 89, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94, 95, 95, 96, 96, 97, 97, 98, 98, 99, 99, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 102, 102, 103, 103, 104, 104, 105, 105, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125, 125, 126, 126, 127, 127, 128, 128, 129, 129, 130, 130, 131, 131, 132, 132, 133, 133, 134, 134, 135, 135, 136, 136, 137, 137, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 140, 140, 141, 141, 142, 142, 143, 143, 144, 144, 145, 145, 146, 146, 147, 147, 148, 148, 149, 149, 150, 150, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 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, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 166, 166, 167, 167, 168, 168, 169, 169, 170, 170, 171, 171, 172, 172, 173, 173, 174, 174, 175, 175, 176, 176, 177, 178, 178, 179, 179, 180, 180, 181, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 184, 184, 185, 185, 186, 186, 187, 187, 188, 188, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 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, 208, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209]);
operand_use = array1d(0..850, [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, false, true, false, true, true, false, true, false, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, false, true, false, true, false, true, 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, 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, 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, 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]);
operand_lastuse = array1d(0..850, [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, false, false, false, false, false, false, false, true, true, 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, 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, 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, false, false, true, false, false, false, false, false, true, 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, 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, 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, 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, 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, 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, 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, true, 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, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, 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, 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, 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, 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]);
operand_temps = array1d(0..850, [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 56..56, 45..45, -1..-1 union 45..45, -1..-1 union 46..46, -1..-1 union 45..46, -1..-1 union 47..47, 45..47 union 59..59, 48..48, -1..-1 union 48..48, -1..-1 union 49..49, 50..50, -1..-1 union 48..49, -1..-1 union 51..51, 48..49 union 51..51, 50..50, 52..52, -1..-1 union 52..52, -1..-1 union 53..53, 54..54, -1..-1 union 52..53, -1..-1 union 55..55, -1..0 union 22..22, -1..-1 union 56..56, -1..-1 union 21..21 union 39..39, -1..-1 union 57..57, -1..-1 union 42..43, -1..-1 union 58..58, -1..-1 union 45..46, -1..-1 union 59..59, 52..53 union 55..55, 54..54, 0..0 union 22..22 union 44..44 union 56..56, 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 57..57, 42..43 union 58..58, 45..47 union 59..59, 60..60, 61..61, 62..62, 63..63, 64..64, 65..65, 66..66, 67..67, 68..68, 69..69, 70..70, 71..71, 72..72, 73..73, 74..74, 75..75, 76..76, 77..77, 78..78, 79..79, 80..80, 81..81, -1..-1 union 60..60, -1..-1 union 82..82, -1..-1 union 79..79, -1..-1 union 83..83, -1..-1 union 80..80, -1..-1 union 84..84, -1..-1 union 81..81, -1..-1 union 85..85, -1..-1 union 80..80 union 84..84, -1..-1 union 86..86, 80..80 union 84..84 union 86..86 union 93..93 union 121..121, 87..87, 75..75, 88..88, -1..-1 union 88..88, -1..-1 union 89..89, 75..75, 90..90, -1..-1 union 90..90, -1..-1 union 91..91, 92..92, -1..-1 union 80..80 union 84..84, -1..-1 union 93..93, -1..-1 union 81..81 union 85..85, -1..-1 union 94..94, -1..-1 union 88..89, -1..-1 union 95..95, -1..-1 union 90..91, -1..-1 union 96..96, 87..87, 81..81 union 85..85 union 94..94, 88..89 union 95..95, 90..91 union 96..96, 80..80 union 84..84 union 86..86 union 93..93 union 121..121, 92..92, 97..97, 98..98, 99..99, 100..100, 101..101, 102..102, 103..103, 104..104, 105..105, 106..106, 107..107, 108..108, 109..109, 110..110, 111..111, 112..112, 113..113, 114..114, 115..115, 116..116, 98..98, 99..99, 100..100, 101..101, 102..102, 103..103, 104..104, 105..105, 106..106, 107..107, 108..108, 109..109, 110..110, 111..111, 112..112, 113..113, 114..114, 115..115, 116..116, -1..-1 union 97..97, -1..-1 union 117..117, -1..-1 union 97..97 union 117..117, -1..-1 union 118..118, -1..-1 union 60..60 union 82..82, -1..-1 union 119..119, -1..-1 union 79..79 union 83..83, -1..-1 union 120..120, -1..-1 union 80..80 union 84..84, -1..-1 union 121..121, -1..-1 union 97..97 union 117..117, -1..-1 union 122..122, 97..97 union 117..118 union 122..122, 75..75, 60..60 union 82..82 union 119..119, 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 union 83..83 union 120..120, 80..80 union 84..84 union 86..86 union 93..93 union 121..121, 97..97 union 117..118 union 122..122, 123..123, 124..124, 125..125, 126..126, 127..127, 128..128, 129..129, 130..130, 131..131, 132..132, 133..133, 134..134, 135..135, 136..136, 137..137, 138..138, 139..139, 140..140, 141..141, 142..142, 143..143, 144..144, -1..-1 union 123..123, -1..-1 union 145..145, -1..-1 union 142..142, -1..-1 union 146..146, -1..-1 union 143..143, -1..-1 union 147..147, -1..-1 union 144..144, -1..-1 union 148..148, -1..-1 union 144..144 union 148..148, -1..-1 union 149..149, 144..144 union 148..149 union 169..169, 150..150, -1..-1 union 150..150, -1..-1 union 151..151, -1..-1 union 150..151, -1..-1 union 152..152, 150..152, 153..153, -1..-1 union 153..153, -1..-1 union 154..154, -1..-1 union 123..123 union 145..145, -1..-1 union 155..155, 123..123 union 145..145 union 155..155, 156..156, -1..-1 union 156..156, -1..-1 union 157..157, -1..-1 union 156..156, -1..-1 union 158..158, -1..-1 union 156..158, -1..-1 union 159..159, 156..159 union 166..166 union 171..171, 160..160, -1..-1 union 160..160, -1..-1 union 161..161, -1..-1 union 160..161, -1..-1 union 162..162, 160..162, 163..163, -1..-1 union 163..163, -1..-1 union 164..164, -1..-1 union 163..164, -1..-1 union 165..165, -1..-1 union 156..158, -1..-1 union 166..166, -1..-1 union 142..142 union 146..146, -1..-1 union 167..167, -1..-1 union 143..143 union 147..147, -1..-1 union 168..168, -1..-1 union 144..144 union 148..148, -1..-1 union 169..169, -1..-1 union 153..154, -1..-1 union 170..170, -1..-1 union 156..158, -1..-1 union 171..171, -1..-1 union 163..164, -1..-1 union 172..172, 163..165 union 172..172, 138..138, 124..124, 125..125, 126..126, 127..127, 128..128, 129..129, 130..130, 131..131, 132..132, 133..133, 134..134, 135..135, 136..136, 137..137, 138..138, 139..139, 140..140, 141..141, 142..142 union 146..146 union 167..167, 143..143 union 147..147 union 168..168, 144..144 union 148..149 union 169..169, 153..154 union 170..170, 156..159 union 166..166 union 171..171, 163..165 union 172..172, 156..159 union 166..166 union 171..171, 173..173, 174..174, 175..175, 176..176, 177..177, 178..178, 179..179, 180..180, 181..181, 182..182, 183..183, 184..184, 185..185, 186..186, 187..187, 188..188, 189..189, 190..190, 191..191, 192..192, 193..193, 194..194, 195..195, 196..196, -1..-1 union 191..191, -1..-1 union 197..197, -1..-1 union 192..192, -1..-1 union 198..198, -1..-1 union 193..193, -1..-1 union 199..199, -1..-1 union 194..194, -1..-1 union 200..200, -1..-1 union 195..195, -1..-1 union 201..201, -1..-1 union 196..196, -1..-1 union 202..202, -1..-1 union 195..195 union 201..201, -1..-1 union 203..203, 195..195 union 201..201 union 203..203 union 210..210, 204..204, -1..-1 union 204..204, -1..-1 union 205..205, -1..-1 union 191..191 union 197..197, -1..-1 union 206..206, -1..-1 union 192..192 union 198..198, -1..-1 union 207..207, -1..-1 union 193..193 union 199..199, -1..-1 union 208..208, -1..-1 union 194..194 union 200..200, -1..-1 union 209..209, -1..-1 union 195..195 union 201..201, -1..-1 union 210..210, -1..-1 union 196..196 union 202..202, -1..-1 union 211..211, -1..-1 union 204..205, -1..-1 union 212..212, 173..173, 174..174, 175..175, 176..176, 177..177, 178..178, 179..179, 180..180, 181..181, 182..182, 183..183, 184..184, 185..185, 186..186, 187..187, 188..188, 189..189, 190..190, 191..191 union 197..197 union 206..206, 192..192 union 198..198 union 207..207, 193..193 union 199..199 union 208..208, 194..194 union 200..200 union 209..209, 195..195 union 201..201 union 203..203 union 210..210, 196..196 union 202..202 union 211..211, 204..205 union 212..212, 213..213, 214..214, 215..215, 216..216, 217..217, 218..218, 219..219, 220..220, 221..221, 222..222, 223..223, 224..224, 225..225, 226..226, 227..227, 228..228, 229..229, 230..230, 231..231, 232..232, 233..233, 234..234, 235..235, 236..236, 237..237, -1..-1 union 213..213, -1..-1 union 238..238, -1..-1 union 232..232, -1..-1 union 239..239, -1..-1 union 233..233, -1..-1 union 240..240, -1..-1 union 234..234, -1..-1 union 241..241, -1..-1 union 235..235, -1..-1 union 242..242, -1..-1 union 236..236, -1..-1 union 243..243, -1..-1 union 237..237, -1..-1 union 244..244, -1..-1 union 213..213 union 238..238, -1..-1 union 245..245, 213..213 union 238..238 union 245..245, 246..246, -1..-1 union 246..246, -1..-1 union 247..247, -1..-1 union 235..235 union 242..242, -1..-1 union 248..248, -1..-1 union 246..247, -1..-1 union 249..249, -1..-1 union 232..232 union 239..239, -1..-1 union 250..250, -1..-1 union 233..233 union 240..240, -1..-1 union 251..251, -1..-1 union 234..234 union 241..241, -1..-1 union 252..252, -1..-1 union 236..236 union 243..243, -1..-1 union 253..253, -1..-1 union 237..237 union 244..244, -1..-1 union 254..254, 235..235 union 242..242 union 248..248, 246..247 union 249..249, 214..214, 215..215, 216..216, 217..217, 218..218, 219..219, 220..220, 221..221, 222..222, 223..223, 224..224, 225..225, 226..226, 227..227, 228..228, 229..229, 230..230, 231..231, 232..232 union 239..239 union 250..250, 233..233 union 240..240 union 251..251, 234..234 union 241..241 union 252..252, 236..236 union 243..243 union 253..253, 237..237 union 244..244 union 254..254, 255..255, 256..256, 257..257, 258..258, 259..259, 260..260, 261..261, 262..262, 263..263, 264..264, 265..265, 266..266, 267..267, 268..268, 269..269, 270..270, 271..271, 272..272, 273..273, 274..274, 275..275, 276..276, 277..277, -1..-1 union 273..273, -1..-1 union 278..278, -1..-1 union 274..274, -1..-1 union 279..279, -1..-1 union 275..275, -1..-1 union 280..280, -1..-1 union 276..276, -1..-1 union 281..281, -1..-1 union 277..277, -1..-1 union 282..282, -1..-1 union 277..277 union 282..282, -1..-1 union 283..283, -1..-1 union 273..273 union 278..278, -1..-1 union 284..284, -1..-1 union 274..274 union 279..279, -1..-1 union 285..285, -1..-1 union 275..275 union 280..280, -1..-1 union 286..286, -1..-1 union 276..276 union 281..281, -1..-1 union 287..287, 277..277 union 282..283, 269..269, 255..255, 256..256, 257..257, 258..258, 259..259, 260..260, 261..261, 262..262, 263..263, 264..264, 265..265, 266..266, 267..267, 268..268, 269..269, 270..270, 271..271, 272..272, 273..273 union 278..278 union 284..284, 274..274 union 279..279 union 285..285, 275..275 union 280..280 union 286..286, 276..276 union 281..281 union 287..287, 288..288, 289..289, 290..290, 291..291, 292..292, 293..293, 294..294, 295..295, 296..296, 297..297, 298..298, 299..299, 300..300, 301..301, 302..302, 303..303, 304..304, 305..305, 306..306, 307..307, 308..308, 309..309, -1..-1 union 306..306, -1..-1 union 310..310, -1..-1 union 307..307, -1..-1 union 311..311, -1..-1 union 308..308, -1..-1 union 312..312, -1..-1 union 309..309, -1..-1 union 313..313, -1..-1 union 309..309 union 313..313, -1..-1 union 314..314, 309..309 union 313..314, 315..315, -1..-1 union 315..315, -1..-1 union 316..316, -1..-1 union 306..306 union 310..310, -1..-1 union 317..317, -1..-1 union 307..307 union 311..311, -1..-1 union 318..318, -1..-1 union 308..308 union 312..312, -1..-1 union 319..319, -1..-1 union 315..316, -1..-1 union 320..320, 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 union 310..310 union 317..317, 307..307 union 311..311 union 318..318, 308..308 union 312..312 union 319..319, 315..316 union 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, 338..338, 339..339, 340..340, 341..341, 342..342, -1..-1 union 321..321, -1..-1 union 343..343, -1..-1 union 340..340, -1..-1 union 344..344, -1..-1 union 341..341, -1..-1 union 345..345, -1..-1 union 342..342, -1..-1 union 346..346, -1..-1 union 321..321 union 343..343, -1..-1 union 347..347, 321..321 union 343..343 union 347..347, 348..348, -1..-1 union 348..348, -1..-1 union 349..349, -1..-1 union 341..341 union 345..345, -1..-1 union 350..350, 341..341 union 345..345 union 350..350 union 355..355, 351..351, 336..336, 352..352, -1..-1 union 352..352, -1..-1 union 353..353, 354..354, -1..-1 union 341..341 union 345..345, -1..-1 union 355..355, -1..-1 union 348..349, -1..-1 union 356..356, -1..-1 union 352..353, -1..-1 union 357..357, 351..351, 352..353 union 357..357, 348..349 union 356..356, 341..341 union 345..345 union 350..350 union 355..355, 354..354, 358..358, 359..359, 360..360, 361..361, 362..362, 363..363, 364..364, 365..365, 366..366, 367..367, 368..368, 369..369, 370..370, 371..371, 372..372, 373..373, 374..374, 375..375, 376..376, 377..377, 359..359, 360..360, 361..361, 362..362, 363..363, 364..364, 365..365, 366..366, 367..367, 368..368, 369..369, 370..370, 371..371, 372..372, 373..373, 374..374, 375..375, 376..376, 377..377, -1..-1 union 358..358, -1..-1 union 378..378, -1..-1 union 342..342 union 346..346, -1..-1 union 379..379, -1..-1 union 358..358 union 378..378, -1..-1 union 380..380, 358..358 union 378..378 union 380..380, 342..342 union 346..346 union 379..379, -1..-1 union 340..340 union 344..344, -1..-1 union 381..381, 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, 338..338, 339..339, 340..340 union 344..344 union 381..381, 382..382, 383..383, 384..384, 385..385, 386..386, 387..387, 388..388, 389..389, 390..390, 391..391, 392..392, 393..393, 394..394, 395..395, 396..396, 397..397, 398..398, 399..399, 400..400, -1..-1 union 400..400, -1..-1 union 401..401, -1..-1 union 400..401, -1..-1 union 402..402, -1..-1 union 382..382, -1..-1 union 403..403, -1..-1 union 383..383, -1..-1 union 404..404, -1..-1 union 384..384, -1..-1 union 405..405, -1..-1 union 385..385, -1..-1 union 406..406, -1..-1 union 386..386, -1..-1 union 407..407, -1..-1 union 387..387, -1..-1 union 408..408, -1..-1 union 388..388, -1..-1 union 409..409, -1..-1 union 389..389, -1..-1 union 410..410, -1..-1 union 390..390, -1..-1 union 411..411, -1..-1 union 391..391, -1..-1 union 412..412, -1..-1 union 392..392, -1..-1 union 413..413, -1..-1 union 393..393, -1..-1 union 414..414, -1..-1 union 394..394, -1..-1 union 415..415, -1..-1 union 395..395, -1..-1 union 416..416, 400..402, 382..382 union 403..403, 383..383 union 404..404, 384..384 union 405..405, 385..385 union 406..406, 386..386 union 407..407, 387..387 union 408..408, 388..388 union 409..409, 389..389 union 410..410, 390..390 union 411..411, 391..391 union 412..412, 392..392 union 413..413, 393..393 union 414..414, 394..394 union 415..415, 395..395 union 416..416, 396..396, 397..397, 398..398, 399..399]);
operand_atom = array2d(0..850, 0..22, [-1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, -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, 0, -1, -1, -1, -1, -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, 0, -1, -1, -1, -1, -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, 0, -1, -1, -1, -1, -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, 0, -1, -1, -1, -1, -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, 0, -1, -1, -1, -1, -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, 0, -1, -1, -1, -1, -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, 0, -1, -1, -1, -1, -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, 0, -1, -1, -1, -1, -1, -1, 9, -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, 0, -1, -1, -1, -1, -1, -1, 9, -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, 0, -1, -1, -1, -1, -1, -1, 9, -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, 0, -1, -1, -1, -1, -1, -1, 9, -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, 0, -1, -1, -1, -1, -1, -1, 9, -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, 0, -1, -1, -1, -1, -1, -1, 9, -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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 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, 0, -1, -1, -1, -1, 1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -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, 0, -1, -1, -1, -1, -1, -1, -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, 0, -1, -1, -1, -1, -1, -1, -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, 0, -1, -1, -1, -1, -1, -1, -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, 0, -1, -1, -1, -1, -1, -1, -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, 0, -1, -1, -1, -1, -1, -1, -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, 0, -1, -1, -1, -1, -1, -1, -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, 0, -1, -1, -1, -1, -1, -1, -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, 0, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -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, 9, -1, -1, 0, -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, 9, -1, -1, 0, -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, 9, -1, -1, 0, -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, 9, -1, -1, 0, -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, 9, -1, -1, 0, -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, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -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 56..56, 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 57..57, 42..43 union 58..58, 45..47 union 59..59, 48..49 union 51..51, 52..53 union 55..55, 60..60 union 82..82 union 119..119, 79..79 union 83..83 union 120..120, 80..80 union 84..84 union 86..86 union 93..93 union 121..121, 81..81 union 85..85 union 94..94, 88..89 union 95..95, 90..91 union 96..96, 97..97 union 117..118 union 122..122, 123..123 union 145..145 union 155..155, 142..142 union 146..146 union 167..167, 143..143 union 147..147 union 168..168, 144..144 union 148..149 union 169..169, 150..152, 153..154 union 170..170, 156..159 union 166..166 union 171..171, 160..162, 163..165 union 172..172, 191..191 union 197..197 union 206..206, 192..192 union 198..198 union 207..207, 193..193 union 199..199 union 208..208, 194..194 union 200..200 union 209..209, 195..195 union 201..201 union 203..203 union 210..210, 196..196 union 202..202 union 211..211, 204..205 union 212..212, 213..213 union 238..238 union 245..245, 232..232 union 239..239 union 250..250, 233..233 union 240..240 union 251..251, 234..234 union 241..241 union 252..252, 235..235 union 242..242 union 248..248, 236..236 union 243..243 union 253..253, 237..237 union 244..244 union 254..254, 246..247 union 249..249, 273..273 union 278..278 union 284..284, 274..274 union 279..279 union 285..285, 275..275 union 280..280 union 286..286, 276..276 union 281..281 union 287..287, 277..277 union 282..283, 306..306 union 310..310 union 317..317, 307..307 union 311..311 union 318..318, 308..308 union 312..312 union 319..319, 309..309 union 313..314, 315..316 union 320..320, 321..321 union 343..343 union 347..347, 340..340 union 344..344 union 381..381, 341..341 union 345..345 union 350..350 union 355..355, 342..342 union 346..346 union 379..379, 348..349 union 356..356, 352..353 union 357..357, 358..358 union 378..378 union 380..380, 382..382 union 403..403, 383..383 union 404..404, 384..384 union 405..405, 385..385 union 406..406, 386..386 union 407..407, 387..387 union 408..408, 388..388 union 409..409, 389..389 union 410..410, 390..390 union 411..411, 391..391 union 412..412, 392..392 union 413..413, 393..393 union 414..414, 394..394 union 415..415, 395..395 union 416..416, 400..402];
temp_definer = array1d(0..416, [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, 39, 40, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 62, 63, 64, 65, 66, 67, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 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, 98, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 184, 185, 186, 188, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206]);
temp_def = array1d(0..416, [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, 79, 81, 84, 86, 87, 89, 91, 93, 95, 97, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, 163, 164, 166, 168, 170, 172, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 219, 221, 223, 225, 227, 229, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 277, 279, 281, 283, 285, 287, 289, 291, 293, 295, 297, 299, 301, 303, 305, 307, 309, 311, 313, 315, 317, 319, 321, 323, 325, 327, 329, 331, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 384, 386, 388, 390, 392, 394, 396, 398, 400, 402, 404, 406, 408, 410, 412, 414, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 466, 468, 470, 472, 474, 476, 478, 480, 482, 484, 486, 488, 490, 492, 494, 496, 498, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 548, 550, 552, 554, 556, 558, 560, 562, 564, 566, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 614, 616, 618, 620, 622, 624, 626, 628, 630, 632, 634, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 680, 682, 684, 686, 688, 690, 692, 694, 696, 698, 700, 701, 703, 705, 707, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 753, 755, 757, 761, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 801, 803, 805, 807, 809, 811, 813, 815, 817, 819, 821, 823, 825, 827, 829, 831]);
temp_width = array1d(0..416, [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, 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, 2, 1, 2, 1, 20, 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, 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, 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, 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, 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, 2, 2, 2, 2, 2, 2]);
temp_minlive = array1d(0..416, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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..416, [22..22 union 67..67 union 69..69 union 90..90 union 100..100, 24..24 union 58..58 union 63..63, 26..26 union 60..60 union 62..62, 28..28 union 101..101, 30..30 union 102..102, 32..32 union 103..103, 34..34 union 104..104, 36..36 union 105..105, 38..38 union 106..106, 40..40 union 107..107, 42..42 union 108..108, 44..44 union 109..109, 46..46 union 110..110, 48..48 union 111..111, 50..50 union 112..112, 52..52 union 113..113, 54..54 union 114..114, 115..115, 116..116, 117..117, 118..118, 56..56 union 92..92 union 119..119, 67..67 union 69..69 union 90..90 union 100..100, 58..58 union 63..63, 60..60 union 62..62, 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, 92..92 union 119..119, 63..63, 62..62, 65..65 union 94..94 union 120..120, 94..94 union 120..120, 69..69 union 100..100, 71..71 union 73..73 union 75..75 union 96..96 union 121..121, 73..73 union 75..75 union 96..96 union 121..121, 75..75 union 121..121, 77..77 union 80..80 union 82..82, 80..80 union 82..82, 83..83, 82..82, 85..85 union 88..88 union 98..98, 88..88 union 98..98, 99..99, 98..98, 69..69 union 100..100, 119..119, 120..120, 75..75 union 121..121, 144..144 union 222..222 union 232..232, 233..233, 234..234, 235..235, 236..236, 237..237, 238..238, 239..239, 240..240, 241..241, 242..242, 243..243, 244..244, 245..245, 246..246, 156..156 union 160..160 union 231..231 union 247..247, 248..248, 249..249, 250..250, 146..146 union 224..224 union 251..251, 148..148 union 152..152 union 154..154 union 165..165 union 177..177 union 226..226 union 252..252, 150..150 union 167..167 union 174..174, 222..222 union 232..232, 224..224 union 251..251, 152..152 union 154..154 union 165..165 union 177..177 union 226..226 union 252..252, 167..167 union 174..174, 154..154 union 177..177 union 252..252, 173..173, 158..158 union 169..169 union 175..175, 169..169 union 175..175, 162..162 union 171..171 union 176..176, 171..171 union 176..176, 178..178, 154..154 union 177..177 union 252..252, 174..174, 175..175, 176..176, 218..218 union 220..220 union 228..228 union 230..230 union 253..253, 199..199, 200..200, 201..201, 202..202, 203..203, 204..204, 205..205, 206..206, 207..207, 208..208, 209..209, 210..210, 211..211, 212..212, 213..213, 214..214, 215..215, 216..216, 217..217, 220..220 union 228..228 union 230..230 union 253..253, 230..230 union 253..253, 232..232, 251..251, 154..154 union 177..177 union 252..252, 230..230 union 253..253, 276..276 union 296..296 union 298..298, 334..334, 335..335, 336..336, 337..337, 338..338, 339..339, 340..340, 341..341, 342..342, 343..343, 344..344, 345..345, 346..346, 347..347, 333..333 union 348..348, 349..349, 350..350, 351..351, 278..278 union 320..320 union 352..352, 280..280 union 322..322 union 353..353, 282..282 union 284..284 union 286..286 union 324..324 union 354..354, 296..296 union 298..298, 320..320 union 352..352, 322..322 union 353..353, 284..284 union 286..286 union 324..324 union 354..354, 286..286 union 354..354, 288..288 union 290..290 union 292..292, 290..290 union 292..292, 292..292, 294..294 union 326..326 union 355..355, 326..326 union 355..355, 298..298, 300..300 union 302..302 union 304..304 union 306..306 union 318..318 union 328..328 union 356..356 union 358..358, 304..304 union 306..306 union 318..318 union 328..328 union 356..356 union 358..358, 304..304 union 306..306 union 318..318 union 328..328 union 356..356 union 358..358, 306..306 union 356..356 union 358..358, 308..308 union 310..310 union 312..312, 310..310 union 312..312, 312..312, 314..314 union 316..316 union 330..330 union 332..332 union 357..357, 316..316 union 330..330 union 332..332 union 357..357, 332..332 union 357..357, 306..306 union 356..356 union 358..358, 352..352, 353..353, 286..286 union 354..354, 355..355, 306..306 union 356..356 union 358..358, 332..332 union 357..357, 415..415, 416..416, 417..417, 418..418, 419..419, 420..420, 421..421, 422..422, 423..423, 424..424, 425..425, 426..426, 427..427, 428..428, 429..429, 430..430, 431..431, 432..432, 383..383 union 401..401 union 433..433, 385..385 union 403..403 union 434..434, 387..387 union 405..405 union 435..435, 389..389 union 407..407 union 436..436, 391..391 union 395..395 union 397..397 union 409..409 union 437..437, 393..393 union 411..411 union 438..438, 401..401 union 433..433, 403..403 union 434..434, 405..405 union 435..435, 407..407 union 436..436, 395..395 union 397..397 union 409..409 union 437..437, 411..411 union 438..438, 397..397 union 437..437, 399..399 union 413..413 union 439..439, 413..413 union 439..439, 433..433, 434..434, 435..435, 436..436, 397..397 union 437..437, 438..438, 439..439, 465..465 union 479..479 union 481..481, 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..514, 515..515, 516..516, 517..517, 518..518, 467..467 union 489..489 union 519..519, 469..469 union 491..491 union 520..520, 471..471 union 493..493 union 521..521, 473..473 union 485..485 union 499..499, 475..475 union 495..495 union 522..522, 477..477 union 497..497 union 523..523, 479..479 union 481..481, 489..489 union 519..519, 491..491 union 520..520, 493..493 union 521..521, 485..485 union 499..499, 495..495 union 522..522, 497..497 union 523..523, 481..481, 483..483 union 487..487 union 500..500, 487..487 union 500..500, 499..499, 500..500, 519..519, 520..520, 521..521, 522..522, 523..523, 569..569, 570..570, 571..571, 572..572, 573..573, 574..574, 575..575, 576..576, 577..577, 578..578, 579..579, 580..580, 581..581, 582..582, 568..568 union 583..583, 584..584, 585..585, 586..586, 547..547 union 559..559 union 587..587, 549..549 union 561..561 union 588..588, 551..551 union 563..563 union 589..589, 553..553 union 565..565 union 590..590, 555..555 union 557..557 union 567..567, 559..559 union 587..587, 561..561 union 588..588, 563..563 union 589..589, 565..565 union 590..590, 557..557 union 567..567, 567..567, 587..587, 588..588, 589..589, 590..590, 635..635, 636..636, 637..637, 638..638, 639..639, 640..640, 641..641, 642..642, 643..643, 644..644, 645..645, 646..646, 647..647, 648..648, 649..649, 650..650, 651..651, 652..652, 613..613 union 627..627 union 653..653, 615..615 union 629..629 union 654..654, 617..617 union 631..631 union 655..655, 619..619 union 621..621 union 623..623, 627..627 union 653..653, 629..629 union 654..654, 631..631 union 655..655, 621..621 union 623..623, 623..623, 625..625 union 633..633 union 656..656, 633..633 union 656..656, 653..653, 654..654, 655..655, 656..656, 679..679 union 687..687 union 689..689, 762..762, 763..763, 764..764, 765..765, 766..766, 767..767, 768..768, 769..769, 770..770, 771..771, 772..772, 773..773, 774..774, 775..775, 697..697 union 776..776, 777..777, 778..778, 779..779, 681..681 union 760..760 union 780..780, 683..683 union 693..693 union 695..695 union 702..702 union 711..711, 685..685 union 754..754 union 759..759, 687..687 union 689..689, 760..760 union 780..780, 693..693 union 695..695 union 702..702 union 711..711, 754..754 union 759..759, 689..689, 691..691 union 704..704 union 710..710, 704..704 union 710..710, 695..695 union 711..711, 708..708, 699..699 union 706..706 union 709..709, 706..706 union 709..709, 712..712, 695..695 union 711..711, 710..710, 709..709, 752..752 union 756..756 union 758..758, 733..733, 734..734, 735..735, 736..736, 737..737, 738..738, 739..739, 740..740, 741..741, 742..742, 743..743, 744..744, 745..745, 746..746, 747..747, 748..748, 749..749, 750..750, 751..751, 756..756 union 758..758, 759..759, 758..758, 780..780, 804..804 union 833..833, 806..806 union 834..834, 808..808 union 835..835, 810..810 union 836..836, 812..812 union 837..837, 814..814 union 838..838, 816..816 union 839..839, 818..818 union 840..840, 820..820 union 841..841, 822..822 union 842..842, 824..824 union 843..843, 826..826 union 844..844, 828..828 union 845..845, 830..830 union 846..846, 847..847, 848..848, 849..849, 850..850, 800..800 union 802..802 union 832..832, 802..802 union 832..832, 832..832, 833..833, 834..834, 835..835, 836..836, 837..837, 838..838, 839..839, 840..840, 841..841, 842..842, 843..843, 844..844, 845..845, 846..846]);
packed_pq = array2d(1..0, 1..0, []);
before_pred = [62, 63, 79, 82, 83, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 173, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 292, 298, 312, 481, 612, 623, 689, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 708, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, 712];
before_succ = [64, 64, 84, 84, 84, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 194, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 293, 299, 313, 482, 656, 624, 690, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 728, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732];
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];
nogood = [4, 9, 10, 15, 20, 25, 27, 31, 35, 39, 41, 43, 45, 50, 55, 59, 61, 65, 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, 98, 99, 100, 101, 102, 103];
across_op = [60, 182];
across_regs = [{}, {}];
across_items = [1..28, 29..52];
across_item_temp = [60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 86, 93, 119, 121, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 342, 344, 346, 379, 381];
across_item_cond = [106, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 113, 117, 123, 130, 133, 134, 135, 136, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 139, 142, 146, 150, 151, 152];
setacross_op = [60, 182];
setacross_regs = [{}, {}];
setacross_tempsets = [1..21, 22..41];
difftemp = [];
diffreg = [62..63, 82..83, 98..99, 100..121, 122..143, 230..231, 232..253, 254..275, 332..333, 334..358, 359..382, 415..439, 440..464, 499..500, 501..523, 524..546, 567..568, 569..590, 591..612, 635..656, 657..678, 758..759, 762..780, 781..799, 833..850];
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, 75, 77, 80, 85, 88, 90, 92, 94, 96, 144, 146, 148, 150, 152, 154, 154, 156, 156, 158, 160, 160, 162, 165, 167, 169, 171, 177, 218, 218, 220, 220, 222, 224, 226, 228, 228, 230, 231, 276, 278, 280, 282, 284, 286, 288, 290, 294, 296, 300, 302, 304, 306, 308, 310, 314, 314, 316, 316, 318, 320, 322, 324, 326, 328, 330, 330, 332, 333, 383, 385, 387, 389, 391, 393, 395, 397, 399, 401, 403, 405, 407, 409, 411, 413, 465, 467, 469, 471, 473, 475, 477, 479, 483, 485, 487, 489, 491, 493, 495, 497, 547, 549, 551, 553, 555, 557, 559, 561, 563, 565, 568, 613, 615, 617, 619, 621, 625, 627, 629, 631, 633, 679, 681, 685, 687, 691, 695, 697, 699, 704, 706, 752, 754, 756, 760, 800, 802, 804, 806, 808, 810, 812, 814, 816, 818, 820, 822, 824, 826, 828, 830];
domuse_q = [100, 63, 62, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 119, 63, 62, 120, 100, 100, 121, 121, 121, 82, 82, 98, 98, 100, 119, 120, 121, 232, 251, 252, 174, 252, 177, 252, 231, 247, 175, 231, 247, 176, 252, 174, 175, 176, 252, 230, 253, 230, 253, 232, 251, 252, 230, 253, 253, 247, 298, 352, 353, 354, 354, 354, 292, 292, 355, 298, 356, 356, 356, 356, 312, 312, 332, 357, 332, 357, 356, 352, 353, 354, 355, 356, 332, 357, 357, 348, 433, 434, 435, 436, 437, 438, 437, 437, 439, 433, 434, 435, 436, 437, 438, 439, 481, 519, 520, 521, 499, 522, 523, 481, 500, 499, 500, 519, 520, 521, 522, 523, 587, 588, 589, 590, 567, 567, 587, 588, 589, 590, 583, 653, 654, 655, 623, 623, 656, 653, 654, 655, 656, 689, 780, 759, 689, 710, 711, 776, 709, 710, 709, 758, 759, 758, 780, 832, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846];
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, 70, 76, 76, 84, 84, 0, 21, 64, 70, 122, 141, 142, 143, 142, 142, 142, 137, 137, 157, 137, 137, 161, 142, 143, 157, 161, 142, 179, 179, 179, 179, 122, 141, 142, 179, 179, 179, 137, 254, 273, 274, 275, 275, 275, 287, 287, 293, 254, 299, 299, 299, 299, 307, 307, 313, 313, 313, 313, 299, 273, 274, 275, 293, 299, 313, 313, 313, 269, 377, 378, 379, 380, 381, 382, 381, 381, 398, 377, 378, 379, 380, 381, 382, 398, 440, 459, 460, 461, 462, 463, 464, 440, 482, 462, 482, 459, 460, 461, 463, 464, 542, 543, 544, 545, 546, 546, 542, 543, 544, 545, 538, 609, 610, 611, 612, 612, 624, 609, 610, 611, 624, 657, 676, 678, 657, 690, 677, 672, 698, 690, 698, 713, 678, 713, 676, 799, 799, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794];
infassign = array2d(1..72, 1..4, [22, 10, 79, 81, 23, 10, 82, 82, 24, 10, 83, 83, 25, 10, 84, 84, 26, 10, 85, 85, 27, 10, 86, 86, 28, 10, 87, 87, 29, 10, 88, 88, 30, 10, 89, 89, 31, 10, 90, 90, 32, 10, 91, 91, 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, 92, 100, 43, 10, 101, 108, 46, 10, 109, 110, 49, 10, 111, 111, 53, 10, 112, 112, 82, 10, 79, 81, 83, 10, 92, 100, 84, 10, 101, 108, 85, 10, 109, 110, 89, 10, 113, 113, 91, 10, 114, 114, 117, 10, 115, 121, 145, 10, 79, 81, 146, 10, 92, 100, 147, 10, 101, 108, 148, 10, 115, 121, 151, 10, 122, 122, 154, 10, 123, 125, 157, 10, 126, 135, 158, 10, 126, 135, 161, 10, 136, 136, 164, 10, 137, 140, 197, 10, 92, 100, 198, 10, 101, 108, 199, 10, 115, 121, 200, 10, 123, 125, 201, 10, 126, 135, 202, 10, 137, 140, 205, 10, 126, 135, 238, 10, 126, 135, 239, 10, 92, 100, 240, 10, 101, 108, 241, 10, 115, 121, 242, 10, 123, 125, 243, 10, 126, 135, 244, 10, 137, 140, 247, 10, 141, 141, 278, 10, 92, 100, 279, 10, 101, 108, 280, 10, 115, 121, 281, 10, 126, 135, 282, 10, 137, 140, 310, 10, 92, 100, 311, 10, 101, 108, 312, 10, 115, 121, 313, 10, 126, 135, 316, 10, 126, 135, 343, 10, 126, 135, 344, 10, 92, 100, 345, 10, 101, 108, 346, 10, 115, 121, 349, 10, 142, 142, 353, 10, 143, 143, 378, 10, 144, 144, 401, 10, 92, 100]);
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, 28, 30, 34, 44, 45, 46, 46, 46, 47, 48, 51, 53, 55, 62, 63, 71, 72, 73, 74, 74, 75, 77, 80, 84, 84, 84, 85, 87, 90, 91, 92, 102, 103, 104, 105, 106, 106, 107, 108, 110, 120, 121, 122, 123, 124, 125, 126, 129, 140, 141, 142, 143, 144, 153, 154, 155, 156, 159, 166, 167, 168, 168, 169, 172, 173, 176, 184, 191];
dominate_ed = [25, 21, 22, 38, 39, 37, 28, 40, 32, 36, 64, 65, 48, 55, 66, 56, 55, 57, 58, 66, 63, 67, 81, 93, 94, 75, 95, 95, 78, 96, 85, 92, 97, 92, 88, 91, 98, 97, 111, 112, 113, 114, 108, 115, 116, 115, 117, 127, 132, 133, 134, 130, 135, 136, 131, 146, 147, 148, 149, 145, 160, 161, 162, 157, 163, 170, 188, 173, 178, 185, 179, 178, 180, 186, 192];
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 = [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 157..157, 157..157, 157..157, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}];
precedence = [161, 223, 237, 244, 263, 269, 323, 351, 357, 361, 372, 396, 410, 420, 436, 442, 446, 452, 456, 460, 464, 468, 472, 476, 480, 484, 488, 492, 496, 500, 504, 508, 512, 516, 520, 524, 528, 532, 536, 540, 544, 548, 552, 556, 560, 564, 568, 572, 576, 580, 584, 588, 592, 596, 600, 604, 608, 612, 616, 622, 628, 634, 640, 646, 652, 658, 664, 670, 676, 682, 688, 694, 700, 706, 712, 718, 724, 730, 736, 742, 748, 754, 758, 764, 768, 774, 778, 784, 788, 794, 798, 804, 808, 814, 818, 824, 828, 834, 840, 846, 852, 858, 864, 870, 876, 882, 888, 894, 900, 906, 910, 916, 920, 926, 930, 936, 940, 946, 950, 956, 960, 966, 970, 976, 980, 986, 990, 996, 1000, 1006, 1010, 1016, 1020, 1026, 1030, 1036, 1040, 1044, 1048, 1052, 1056, 1060, 1064, 1068, 1072, 1076, 1080, 1084, 1088, 1092, 1096, 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, 1226, 1228, 1230, 1232, 1235, 1237, 1240, 1242, 1245, 1247, 1250, 1252, 1254, 1256, 1259, 1261, 1264, 1266, 1268, 1270, 1272, 1274, 1276, 1278, 1280, 1282, 1285, 1287, 1289, 1291, 1293, 1295, 1297, 1299, 1301, 1303, 1305, 1307, 1310, 1312, 1315, 1317, 1320, 1322, 1325, 1327, 1329, 1331, 1334, 1336, 1338, 1340, 1343, 1345, 1347, 1349, 1352, 1354, 1357, 1359, 1361, 1363, 1366, 1368, 1370, 1372, 1375, 1377, 1379, 1381, 1383, 1385, 1387, 1389, 1391, 1393, 1395, 1397, 1399, 1401, 1403, 1405, 1408, 1410, 1413, 1415, 1418, 1420, 1423, 1425, 1428, 1430, 1433, 1435, 1437, 1440, 1442, 1444, 1446, 1448, 1450, 1452, 1454, 1456, 1459, 1461, 1464, 1466, 1469, 1471, 1474, 1476, 1479, 1481, 1484, 1486, 1489, 1491, 1493, 1495, 1498, 1500, 1502, 1504, 1506, 1508, 1510, 1512, 1514, 1516, 1518, 1520, 1522, 1524, 1526, 1528, 1531, 1533, 1536, 1538, 1541, 1543, 1546, 1548, 1551, 1553, 1555, 1557, 1559, 1561, 1563, 1565, 1567, 1569, 1571, 1573, 1576, 1578, 1581, 1583, 1586, 1588, 1591, 1593, 1595, 1598, 1600, 1602, 1604, 1606, 1608, 1611, 1613, 1616, 1618, 1621, 1623, 1626, 1628, 1630, 1633, 1635, 1637, 1640, 1642, 1644, 1646, 1648, 1651, 1653, 1655, 1657, 1659, 1661, 1663, 1665, 1667, 1669, 1671, 1673, 1675, 1677, 1679, 1681, 1683, 1685, 1687, 1689, 1691, 1693, 1695, 1697, 1699, 1701, 1703, 1705, 1707, 1709, 1711, 1713, 1715, 1717, 1719, 1721, 1723, 1725, 1727, 1729, 1731, 1733, 1735, 1737, 1739, 1741, 1743, 1745, 1747, 1749, 1751, 1753, 1755, 1757, 1759, 1762, 1765, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 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];
table_exists_ops = [83..83];
table_iffall_ops = [];
relation_ops = [46..46 union 48..48 union 55..55 union 66..66, 85..85 union 92..92 union 97..97, 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, 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, 4..4 union 21..21, 5..5 union 22..22, 20..20 union 38..38, 24..24 union 39..39, 30..30 union 32..32, 34..34 union 36..36, 44..44 union 64..64, 45..45 union 65..65, 47..47 union 56..56, 51..51 union 57..57, 53..53 union 58..58, 71..71 union 81..81, 72..72 union 93..93, 73..73 union 94..94, 77..78, 80..80 union 96..96, 87..88, 102..102 union 111..111, 103..103 union 112..112, 104..104 union 113..113, 105..105 union 114..114, 107..107 union 116..116, 110..110 union 117..117, 120..120 union 127..127, 121..121 union 132..132, 122..122 union 133..133, 123..123 union 134..134, 124..124 union 130..130, 125..125 union 135..135, 126..126 union 136..136, 129..129 union 131..131, 140..140 union 146..146, 141..141 union 147..147, 142..142 union 148..148, 143..143 union 149..149, 144..145, 153..153 union 160..160, 154..154 union 161..161, 155..155 union 162..162, 156..157, 159..159 union 163..163, 166..166 union 170..170, 167..167 union 188..188, 169..169 union 185..185, 172..172 union 179..179, 176..176 union 180..180, 184..184 union 186..186, 191..192, 3..3 union 25..25 union 37..37, 27..28 union 40..40, 62..63 union 67..67, 74..75 union 95..95, 90..91 union 98..98, 106..106 union 108..108 union 115..115, 168..168 union 173..173 union 178..178, 46..46 union 48..48 union 55..55 union 66..66, 83..85 union 92..92 union 97..97];
relation_temps = [{}, {}, 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, 833..833, 834..834, 835..835, 836..836, 837..837, 838..838, 839..839, 840..840, 841..841, 842..842, 843..843, 844..844, 845..845, 846..846, 58..58 union 63..63, 60..60 union 62..62, 92..92 union 119..119, 94..94 union 120..120, 80..80 union 82..82, 88..88 union 98..98, 222..222 union 232..232, 224..224 union 251..251, 167..167 union 174..174, 169..169 union 175..175, 171..171 union 176..176, 296..296 union 298..298, 320..320 union 352..352, 322..322 union 353..353, 290..290 union 292..292, 326..326 union 355..355, 310..310 union 312..312, 401..401 union 433..433, 403..403 union 434..434, 405..405 union 435..435, 407..407 union 436..436, 411..411 union 438..438, 413..413 union 439..439, 479..479 union 481..481, 489..489 union 519..519, 491..491 union 520..520, 493..493 union 521..521, 485..485 union 499..499, 495..495 union 522..522, 497..497 union 523..523, 487..487 union 500..500, 559..559 union 587..587, 561..561 union 588..588, 563..563 union 589..589, 565..565 union 590..590, 557..557 union 567..567, 627..627 union 653..653, 629..629 union 654..654, 631..631 union 655..655, 621..621 union 623..623, 633..633 union 656..656, 687..687 union 689..689, 760..760 union 780..780, 754..754 union 759..759, 704..704 union 710..710, 706..706 union 709..709, 756..756 union 758..758, 802..802 union 832..832, 67..67 union 69..69 union 90..90 union 100..100, 73..73 union 75..75 union 96..96 union 121..121, 220..220 union 228..228 union 230..230 union 253..253, 284..284 union 286..286 union 324..324 union 354..354, 316..316 union 330..330 union 332..332 union 357..357, 395..395 union 397..397 union 409..409 union 437..437, 693..693 union 695..695 union 702..702 union 711..711, 152..152 union 154..154 union 165..165 union 177..177 union 226..226 union 252..252, 304..304 union 306..306 union 318..318 union 328..328 union 356..356 union 358..358];
relation_ntuples = [7, 3, 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, 3, 4, 3, 3, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 3, 3, 3, 4, 3, 4, 4, 4, 3, 3, 3, 4, 10, 10, 10, 13, 10, 11, 12, 31, 31];
relation_range = [1..28, 29..37, 38..41, 42..45, 46..49, 50..53, 54..57, 58..61, 62..65, 66..69, 70..73, 74..77, 78..81, 82..85, 86..89, 90..93, 94..97, 98..101, 102..105, 106..109, 110..113, 114..117, 118..121, 122..125, 126..129, 130..133, 134..137, 138..141, 142..145, 146..149, 150..161, 162..173, 174..185, 186..197, 198..209, 210..221, 222..237, 238..249, 250..265, 266..277, 278..289, 290..305, 306..321, 322..337, 338..349, 350..361, 362..373, 374..385, 386..397, 398..409, 410..421, 422..433, 434..445, 446..461, 462..477, 478..493, 494..509, 510..525, 526..541, 542..557, 558..569, 570..585, 586..601, 602..617, 618..633, 634..649, 650..661, 662..673, 674..685, 686..701, 702..713, 714..729, 730..745, 746..761, 762..773, 774..785, 786..797, 798..813, 814..883, 884..953, 954..1023, 1024..1114, 1115..1184, 1185..1261, 1262..1345, 1346..1655, 1656..1996];
ints = [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, 1, 0, 0, 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, 382, 1, 403, 0, 383, 1, 404, 0, 384, 1, 405, 0, 385, 1, 406, 0, 386, 1, 407, 0, 387, 1, 408, 0, 388, 1, 409, 0, 389, 1, 410, 0, 390, 1, 411, 0, 391, 1, 412, 0, 392, 1, 413, 0, 393, 1, 414, 0, 394, 1, 415, 0, 395, 1, 416, 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, 57, 0, 0, -1, 42, 1, 0, -1, 43, 1, 1, 43, 58, 0, 0, -1, 48, 1, 0, -1, 49, 1, 1, 49, 51, 0, 0, -1, 52, 1, 0, -1, 53, 1, 1, 53, 55, 0, 0, -1, 60, 0, 1, 60, 119, 1, 0, -1, 82, 1, 1, 82, 119, 0, 0, -1, 79, 1, 0, -1, 83, 1, 1, 83, 120, 0, 0, -1, 81, 0, 1, 81, 94, 1, 0, -1, 85, 1, 1, 85, 94, 0, 0, -1, 88, 1, 0, -1, 89, 1, 1, 89, 95, 0, 0, -1, 90, 1, 0, -1, 91, 1, 1, 91, 96, 0, 0, -1, 123, 0, 1, 123, 155, 1, 0, -1, 145, 1, 1, 145, 155, 0, 0, -1, 142, 0, 1, 142, 167, 1, 0, -1, 146, 1, 1, 146, 167, 0, 0, -1, 143, 0, 1, 143, 168, 1, 0, -1, 147, 1, 1, 147, 168, 0, 0, -1, 150, 1, 0, -1, 151, 1, 1, 151, 152, 0, 0, -1, 153, 1, 0, -1, 154, 1, 1, 154, 170, 0, 0, -1, 160, 1, 0, -1, 161, 1, 1, 161, 162, 0, 0, -1, 191, 1, 0, -1, 197, 1, 1, 197, 206, 0, 0, -1, 192, 1, 0, -1, 198, 1, 1, 198, 207, 0, 0, -1, 193, 1, 0, -1, 199, 1, 1, 199, 208, 0, 0, -1, 194, 1, 0, -1, 200, 1, 1, 200, 209, 0, 0, -1, 196, 1, 0, -1, 202, 1, 1, 202, 211, 0, 0, -1, 204, 1, 0, -1, 205, 1, 1, 205, 212, 0, 0, -1, 213, 0, 1, 213, 245, 1, 0, -1, 238, 1, 1, 238, 245, 0, 0, -1, 232, 0, 1, 232, 250, 1, 0, -1, 239, 1, 1, 239, 250, 0, 0, -1, 233, 0, 1, 233, 251, 1, 0, -1, 240, 1, 1, 240, 251, 0, 0, -1, 234, 0, 1, 234, 252, 1, 0, -1, 241, 1, 1, 241, 252, 0, 0, -1, 235, 0, 1, 235, 248, 1, 0, -1, 242, 1, 1, 242, 248, 0, 0, -1, 236, 0, 1, 236, 253, 1, 0, -1, 243, 1, 1, 243, 253, 0, 0, -1, 237, 0, 1, 237, 254, 1, 0, -1, 244, 1, 1, 244, 254, 0, 0, -1, 246, 1, 0, -1, 247, 1, 1, 247, 249, 0, 0, -1, 273, 0, 1, 273, 284, 1, 0, -1, 278, 1, 1, 278, 284, 0, 0, -1, 274, 0, 1, 274, 285, 1, 0, -1, 279, 1, 1, 279, 285, 0, 0, -1, 275, 0, 1, 275, 286, 1, 0, -1, 280, 1, 1, 280, 286, 0, 0, -1, 276, 0, 1, 276, 287, 1, 0, -1, 281, 1, 1, 281, 287, 0, 0, -1, 277, 0, 1, 277, 283, 1, 0, -1, 282, 1, 1, 282, 283, 0, 0, -1, 306, 1, 0, -1, 310, 1, 1, 310, 317, 0, 0, -1, 307, 1, 0, -1, 311, 1, 1, 311, 318, 0, 0, -1, 308, 1, 0, -1, 312, 1, 1, 312, 319, 0, 0, -1, 309, 0, 1, 309, 314, 1, 0, -1, 313, 1, 1, 313, 314, 0, 0, -1, 315, 1, 0, -1, 316, 1, 1, 316, 320, 0, 0, -1, 321, 0, 1, 321, 347, 1, 0, -1, 343, 1, 1, 343, 347, 0, 0, -1, 340, 0, 1, 340, 381, 1, 0, -1, 344, 1, 1, 344, 381, 0, 0, -1, 342, 0, 1, 342, 379, 1, 0, -1, 346, 1, 1, 346, 379, 0, 0, -1, 348, 1, 0, -1, 349, 1, 1, 349, 356, 0, 0, -1, 352, 1, 0, -1, 353, 1, 1, 353, 357, 0, 0, -1, 358, 1, 0, -1, 378, 1, 1, 378, 380, 0, 0, -1, 400, 0, 1, 400, 402, 1, 0, -1, 401, 1, 1, 401, 402, 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, 56, 1, 1, 1, 22, 44, 0, 56, 1, 1, 1, 22, 44, 22, 56, 0, 0, 0, -1, 45, -1, 45, 1, 0, 0, -1, 45, -1, 46, 1, 0, 0, -1, 46, -1, 46, 1, 1, 0, 45, 46, -1, 47, 1, 1, 0, 46, 45, -1, 47, 1, 1, 0, 46, 46, -1, 47, 1, 1, 0, 46, 47, -1, 47, 1, 1, 1, 45, 47, 46, 59, 1, 1, 1, 46, 47, 45, 59, 1, 1, 1, 46, 47, 46, 59, 0, 0, 0, -1, -1, 97, 97, 1, 0, 0, -1, -1, 97, 117, 1, 0, 0, -1, -1, 117, 117, 1, 1, 0, 97, -1, 117, 118, 1, 1, 0, 117, -1, 97, 118, 1, 1, 0, 117, -1, 117, 118, 1, 1, 0, 117, -1, 118, 118, 1, 1, 1, 97, 117, 118, 122, 1, 1, 1, 117, 97, 118, 122, 1, 1, 1, 117, 117, 118, 122, 0, 0, 0, -1, 144, -1, 144, 0, 1, 0, 144, 149, -1, 144, 0, 1, 0, 144, 149, -1, 149, 0, 1, 1, 144, 149, 144, 169, 1, 0, 0, -1, 144, -1, 148, 1, 0, 0, -1, 148, -1, 148, 1, 1, 0, 144, 148, -1, 149, 1, 1, 0, 148, 144, -1, 149, 1, 1, 0, 148, 148, -1, 149, 1, 1, 0, 148, 149, -1, 149, 1, 1, 1, 144, 149, 148, 169, 1, 1, 1, 148, 149, 144, 169, 1, 1, 1, 148, 149, 148, 169, 0, 0, 0, -1, -1, 163, 163, 1, 0, 0, -1, -1, 163, 164, 1, 0, 0, -1, -1, 164, 164, 1, 1, 0, 163, -1, 164, 165, 1, 1, 0, 164, -1, 163, 165, 1, 1, 0, 164, -1, 164, 165, 1, 1, 0, 164, -1, 165, 165, 1, 1, 1, 163, 164, 165, 172, 1, 1, 1, 164, 163, 165, 172, 1, 1, 1, 164, 164, 165, 172, 0, 0, 0, -1, 195, -1, 195, 0, 1, 0, 195, 203, -1, 195, 1, 0, 0, -1, 195, -1, 201, 1, 0, 0, -1, 201, -1, 201, 1, 1, 0, 195, 201, -1, 203, 1, 1, 0, 201, 195, -1, 203, 1, 1, 0, 201, 201, -1, 203, 1, 1, 0, 201, 203, -1, 203, 1, 1, 1, 195, 203, 201, 210, 1, 1, 1, 201, 203, 195, 210, 1, 1, 1, 201, 203, 201, 210, 0, 0, 0, -1, 341, -1, 341, 0, 1, 0, 341, 350, -1, 350, 0, 1, 1, 341, 350, 341, 355, 1, 0, 0, -1, 341, -1, 345, 1, 0, 0, -1, 345, -1, 345, 1, 1, 0, 341, 345, -1, 350, 1, 1, 0, 345, 341, -1, 350, 1, 1, 0, 345, 345, -1, 350, 1, 1, 0, 345, 350, -1, 350, 1, 1, 1, 341, 350, 345, 355, 1, 1, 1, 345, 350, 341, 355, 1, 1, 1, 345, 350, 345, 355, 0, 1, 0, 0, 80, 86, -1, 86, -1, 80, 0, 1, 1, 0, 80, 86, 80, 86, -1, 93, 0, 1, 1, 0, 80, 86, 80, 93, -1, 80, 0, 1, 1, 1, 80, 86, 80, 93, 80, 121, 1, 0, 0, 0, -1, 80, -1, 80, -1, 84, 1, 0, 0, 0, -1, 80, -1, 84, -1, 80, 1, 1, 0, 0, 80, 80, -1, 84, -1, 86, 1, 1, 0, 0, 80, 84, -1, 84, -1, 86, 1, 1, 0, 0, 80, 86, -1, 84, -1, 86, 1, 1, 0, 0, 84, 80, -1, 80, -1, 86, 1, 1, 0, 0, 84, 80, -1, 84, -1, 86, 1, 1, 0, 0, 84, 80, -1, 86, -1, 80, 1, 1, 0, 0, 84, 84, -1, 84, -1, 86, 1, 1, 0, 0, 84, 86, -1, 84, -1, 86, 1, 1, 1, 0, 80, 80, 84, 86, -1, 93, 1, 1, 1, 0, 80, 84, 80, 86, -1, 93, 1, 1, 1, 0, 80, 84, 84, 86, -1, 93, 1, 1, 1, 0, 80, 86, 84, 86, -1, 93, 1, 1, 1, 0, 84, 80, 80, 86, -1, 93, 1, 1, 1, 0, 84, 80, 84, 86, -1, 93, 1, 1, 1, 0, 84, 84, 80, 86, -1, 93, 1, 1, 1, 0, 84, 84, 84, 86, -1, 93, 1, 1, 1, 0, 84, 86, 80, 86, -1, 93, 1, 1, 1, 0, 84, 86, 84, 86, -1, 93, 1, 1, 1, 1, 80, 86, 80, 93, 84, 121, 1, 1, 1, 1, 80, 86, 84, 93, 80, 121, 1, 1, 1, 1, 80, 86, 84, 93, 84, 121, 1, 1, 1, 1, 84, 86, 80, 93, 80, 121, 1, 1, 1, 1, 84, 86, 80, 93, 84, 121, 1, 1, 1, 1, 84, 86, 84, 93, 80, 121, 1, 1, 1, 1, 84, 86, 84, 93, 84, 121, 1, 0, 0, 0, 0, -1, 156, -1, -1, 156, 157, 1, 0, 0, 0, 0, -1, 156, -1, -1, 157, 156, 1, 0, 0, 0, 0, -1, 157, -1, -1, 157, 156, 1, 0, 1, 0, 0, 157, 156, -1, -1, 156, 159, 1, 0, 1, 0, 0, 157, 156, -1, -1, 157, 159, 1, 0, 1, 0, 0, 157, 156, -1, -1, 159, 156, 1, 0, 1, 0, 0, 157, 157, -1, -1, 157, 159, 1, 0, 1, 0, 0, 157, 157, -1, -1, 159, 156, 1, 0, 1, 0, 0, 157, 159, -1, -1, 157, 159, 1, 0, 1, 0, 0, 157, 159, -1, -1, 159, 156, 1, 0, 1, 1, 0, 157, 156, 157, -1, 159, 166, 1, 0, 1, 1, 0, 157, 157, 157, -1, 159, 166, 1, 0, 1, 1, 0, 157, 159, 157, -1, 159, 166, 1, 0, 1, 1, 0, 157, 159, 157, -1, 166, 156, 1, 1, 0, 0, 0, -1, 156, -1, -1, 157, 158, 1, 1, 0, 0, 0, -1, 157, -1, -1, 157, 158, 1, 1, 0, 0, 0, -1, 157, -1, -1, 158, 156, 1, 1, 0, 0, 0, -1, 158, -1, -1, 157, 158, 1, 1, 1, 0, 0, 156, 157, -1, -1, 158, 159, 1, 1, 1, 0, 0, 157, 156, -1, -1, 158, 159, 1, 1, 1, 0, 0, 157, 157, -1, -1, 158, 159, 1, 1, 1, 0, 0, 157, 158, -1, -1, 158, 159, 1, 1, 1, 0, 0, 157, 158, -1, -1, 159, 156, 1, 1, 1, 0, 0, 157, 159, -1, -1, 158, 159, 1, 1, 1, 1, 0, 156, 157, 158, -1, 159, 166, 1, 1, 1, 1, 0, 157, 156, 158, -1, 159, 166, 1, 1, 1, 1, 0, 157, 157, 158, -1, 159, 166, 1, 1, 1, 1, 0, 157, 158, 156, -1, 159, 166, 1, 1, 1, 1, 0, 157, 158, 158, -1, 159, 166, 1, 1, 1, 1, 0, 157, 159, 158, -1, 159, 166, 1, 1, 1, 1, 0, 157, 159, 158, -1, 166, 156];
calleesaved_spill = [6..6 union 193..193, 7..7 union 194..194, 8..8 union 195..195, 9..9 union 196..196, 10..10 union 197..197, 11..11 union 198..198, 12..12 union 199..199, 13..13 union 200..200, 14..14 union 201..201, 15..15 union 202..202, 16..16 union 203..203, 17..17 union 204..204, 18..18 union 205..205, 19..19 union 206..206];
cs_spill_transpose = array2d(1..2, 1..14, [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206]);
activator_insns = [6..8 union 20..20];
activator_ops = [2..2 union 207..207];
value_precede_min = [1, 1];
value_precede_max = [146, 146];
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, 58, 59, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 93, 94, 95, 96, 117, 118, 119, 120, 121, 122, 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, 170, 171, 172, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 355, 356, 357, 378, 379, 380, 381, 401, 402];
lat_table = array2d(1..1411, 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, 10, 75, 0, 29, 10, 76, 3, 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, 11, 79, 1, 32, 0, 80, 0, 32, 0, 81, 0, 32, 5, 80, 0, 32, 5, 81, 1, 32, 8, 80, 0, 32, 8, 81, 3, 33, 12, 82, 0, 33, 12, 83, 0, 33, 12, 84, 1, 34, 0, 85, 0, 34, 0, 86, 0, 34, 5, 85, 0, 34, 5, 86, 1, 34, 6, 85, 0, 34, 6, 86, 1, 35, 11, 87, 1, 36, 0, 88, 0, 36, 0, 89, 0, 36, 5, 88, 0, 36, 5, 89, 1, 36, 8, 88, 0, 36, 8, 89, 3, 37, 0, 90, 0, 37, 0, 91, 0, 37, 5, 90, 0, 37, 5, 91, 1, 37, 8, 90, 0, 37, 8, 91, 3, 38, 0, 92, 0, 38, 0, 93, 0, 38, 5, 92, 0, 38, 5, 93, 1, 38, 8, 92, 0, 38, 8, 93, 3, 39, 0, 94, 0, 39, 0, 95, 0, 39, 5, 94, 0, 39, 5, 95, 1, 39, 8, 94, 0, 39, 8, 95, 3, 40, 0, 96, 0, 40, 0, 97, 0, 40, 5, 96, 0, 40, 5, 97, 1, 40, 8, 96, 0, 40, 8, 97, 3, 41, 13, 98, 0, 41, 13, 99, 0, 42, 2, 100, 0, 42, 2, 101, 0, 42, 2, 102, 0, 42, 2, 103, 0, 42, 2, 104, 0, 42, 2, 105, 0, 42, 2, 106, 0, 42, 2, 107, 0, 42, 2, 108, 0, 42, 2, 109, 0, 42, 2, 110, 0, 42, 2, 111, 0, 42, 2, 112, 0, 42, 2, 113, 0, 42, 2, 114, 0, 42, 2, 115, 0, 42, 2, 116, 0, 42, 2, 117, 0, 42, 2, 118, 0, 42, 2, 119, 0, 42, 2, 120, 0, 42, 2, 121, 0, 43, 2, 122, 1, 43, 2, 123, 1, 43, 2, 124, 1, 43, 2, 125, 1, 43, 2, 126, 1, 43, 2, 127, 1, 43, 2, 128, 1, 43, 2, 129, 1, 43, 2, 130, 1, 43, 2, 131, 1, 43, 2, 132, 1, 43, 2, 133, 1, 43, 2, 134, 1, 43, 2, 135, 1, 43, 2, 136, 1, 43, 2, 137, 1, 43, 2, 138, 1, 43, 2, 139, 1, 43, 2, 140, 1, 43, 2, 141, 1, 43, 2, 142, 1, 43, 2, 143, 1, 44, 0, 144, 0, 44, 0, 145, 0, 44, 5, 144, 0, 44, 5, 145, 1, 44, 6, 144, 0, 44, 6, 145, 1, 45, 0, 146, 0, 45, 0, 147, 0, 45, 5, 146, 0, 45, 5, 147, 1, 45, 6, 146, 0, 45, 6, 147, 1, 46, 0, 148, 0, 46, 0, 149, 0, 46, 5, 148, 0, 46, 5, 149, 1, 46, 6, 148, 0, 46, 6, 149, 1, 47, 0, 150, 0, 47, 0, 151, 0, 47, 5, 150, 0, 47, 5, 151, 1, 47, 6, 150, 0, 47, 6, 151, 1, 48, 0, 152, 0, 48, 0, 153, 0, 48, 5, 152, 0, 48, 5, 153, 1, 48, 8, 152, 0, 48, 8, 153, 3, 49, 10, 154, 0, 49, 10, 155, 3, 50, 14, 156, 0, 50, 14, 157, 1, 51, 0, 158, 0, 51, 0, 159, 0, 51, 5, 158, 0, 51, 5, 159, 1, 51, 6, 158, 0, 51, 6, 159, 1, 52, 14, 160, 0, 52, 14, 161, 1, 53, 0, 162, 0, 53, 0, 163, 0, 53, 5, 162, 0, 53, 5, 163, 1, 53, 6, 162, 0, 53, 6, 163, 1, 54, 15, 164, 2, 55, 0, 165, 0, 55, 0, 166, 0, 55, 5, 165, 0, 55, 5, 166, 1, 55, 8, 165, 0, 55, 8, 166, 3, 56, 0, 167, 0, 56, 0, 168, 0, 56, 5, 167, 0, 56, 5, 168, 1, 56, 8, 167, 0, 56, 8, 168, 3, 57, 0, 169, 0, 57, 0, 170, 0, 57, 5, 169, 0, 57, 5, 170, 1, 57, 8, 169, 0, 57, 8, 170, 3, 58, 0, 171, 0, 58, 0, 172, 0, 58, 5, 171, 0, 58, 5, 172, 1, 58, 8, 171, 0, 58, 8, 172, 3, 59, 16, 173, 0, 60, 2, 174, 0, 60, 2, 175, 0, 60, 2, 176, 0, 60, 2, 177, 0, 60, 2, 178, 0, 60, 2, 179, 1, 60, 2, 180, 1, 60, 2, 181, 1, 60, 2, 182, 1, 60, 2, 183, 1, 60, 2, 184, 1, 60, 2, 185, 1, 60, 2, 186, 1, 60, 2, 187, 1, 60, 2, 188, 1, 60, 2, 189, 1, 60, 2, 190, 1, 60, 2, 191, 1, 60, 2, 192, 1, 60, 2, 193, 1, 60, 2, 194, 1, 60, 2, 195, 1, 60, 2, 196, 1, 60, 2, 197, 1, 60, 2, 198, 1, 61, 1, 199, 0, 61, 1, 200, 0, 61, 1, 201, 0, 61, 1, 202, 0, 61, 1, 203, 0, 61, 1, 204, 0, 61, 1, 205, 0, 61, 1, 206, 0, 61, 1, 207, 0, 61, 1, 208, 0, 61, 1, 209, 0, 61, 1, 210, 0, 61, 1, 211, 0, 61, 1, 212, 0, 61, 1, 213, 0, 61, 1, 214, 0, 61, 1, 215, 0, 61, 1, 216, 0, 61, 1, 217, 0, 62, 0, 218, 0, 62, 0, 219, 0, 62, 5, 218, 0, 62, 5, 219, 1, 62, 6, 218, 0, 62, 6, 219, 1, 63, 0, 220, 0, 63, 0, 221, 0, 63, 5, 220, 0, 63, 5, 221, 1, 63, 8, 220, 0, 63, 8, 221, 3, 64, 0, 222, 0, 64, 0, 223, 0, 64, 5, 222, 0, 64, 5, 223, 1, 64, 8, 222, 0, 64, 8, 223, 3, 65, 0, 224, 0, 65, 0, 225, 0, 65, 5, 224, 0, 65, 5, 225, 1, 65, 8, 224, 0, 65, 8, 225, 3, 66, 0, 226, 0, 66, 0, 227, 0, 66, 5, 226, 0, 66, 5, 227, 1, 66, 8, 226, 0, 66, 8, 227, 3, 67, 0, 228, 0, 67, 0, 229, 0, 67, 5, 228, 0, 67, 5, 229, 1, 67, 8, 228, 0, 67, 8, 229, 3, 68, 17, 230, 0, 68, 17, 231, 0, 69, 2, 232, 0, 69, 2, 233, 0, 69, 2, 234, 0, 69, 2, 235, 0, 69, 2, 236, 0, 69, 2, 237, 0, 69, 2, 238, 0, 69, 2, 239, 0, 69, 2, 240, 0, 69, 2, 241, 0, 69, 2, 242, 0, 69, 2, 243, 0, 69, 2, 244, 0, 69, 2, 245, 0, 69, 2, 246, 0, 69, 2, 247, 0, 69, 2, 248, 0, 69, 2, 249, 0, 69, 2, 250, 0, 69, 2, 251, 0, 69, 2, 252, 0, 69, 2, 253, 0, 70, 2, 254, 1, 70, 2, 255, 1, 70, 2, 256, 1, 70, 2, 257, 1, 70, 2, 258, 1, 70, 2, 259, 1, 70, 2, 260, 1, 70, 2, 261, 1, 70, 2, 262, 1, 70, 2, 263, 1, 70, 2, 264, 1, 70, 2, 265, 1, 70, 2, 266, 1, 70, 2, 267, 1, 70, 2, 268, 1, 70, 2, 269, 1, 70, 2, 270, 1, 70, 2, 271, 1, 70, 2, 272, 1, 70, 2, 273, 1, 70, 2, 274, 1, 70, 2, 275, 1, 71, 0, 276, 0, 71, 0, 277, 0, 71, 5, 276, 0, 71, 5, 277, 1, 71, 6, 276, 0, 71, 6, 277, 1, 72, 0, 278, 0, 72, 0, 279, 0, 72, 5, 278, 0, 72, 5, 279, 1, 72, 6, 278, 0, 72, 6, 279, 1, 73, 0, 280, 0, 73, 0, 281, 0, 73, 5, 280, 0, 73, 5, 281, 1, 73, 6, 280, 0, 73, 6, 281, 1, 74, 0, 282, 0, 74, 0, 283, 0, 74, 5, 282, 0, 74, 5, 283, 1, 74, 6, 282, 0, 74, 6, 283, 1, 75, 0, 284, 0, 75, 0, 285, 0, 75, 5, 284, 0, 75, 5, 285, 1, 75, 8, 284, 0, 75, 8, 285, 3, 76, 10, 286, 0, 76, 10, 287, 3, 77, 0, 288, 0, 77, 0, 289, 0, 77, 5, 288, 0, 77, 5, 289, 1, 77, 6, 288, 0, 77, 6, 289, 1, 78, 0, 290, 0, 78, 0, 291, 0, 78, 5, 290, 0, 78, 5, 291, 1, 78, 8, 290, 0, 78, 8, 291, 3, 79, 10, 292, 0, 79, 10, 293, 3, 80, 0, 294, 0, 80, 0, 295, 0, 80, 5, 294, 0, 80, 5, 295, 1, 80, 6, 294, 0, 80, 6, 295, 1, 81, 0, 296, 0, 81, 0, 297, 0, 81, 5, 296, 0, 81, 5, 297, 1, 81, 8, 296, 0, 81, 8, 297, 3, 82, 10, 298, 0, 82, 10, 299, 3, 83, 0, 300, 0, 83, 0, 301, 0, 83, 5, 300, 0, 83, 5, 301, 1, 83, 6, 300, 0, 83, 6, 301, 1, 84, 0, 302, 0, 84, 0, 303, 0, 84, 5, 302, 0, 84, 5, 303, 1, 84, 6, 302, 0, 84, 6, 303, 1, 85, 0, 304, 0, 85, 0, 305, 0, 85, 5, 304, 0, 85, 5, 305, 1, 85, 8, 304, 0, 85, 8, 305, 3, 86, 10, 306, 0, 86, 10, 307, 3, 87, 0, 308, 0, 87, 0, 309, 0, 87, 5, 308, 0, 87, 5, 309, 1, 87, 6, 308, 0, 87, 6, 309, 1, 88, 0, 310, 0, 88, 0, 311, 0, 88, 5, 310, 0, 88, 5, 311, 1, 88, 8, 310, 0, 88, 8, 311, 3, 89, 18, 312, 0, 89, 18, 313, 1, 90, 0, 314, 0, 90, 0, 315, 0, 90, 5, 314, 0, 90, 5, 315, 1, 90, 6, 314, 0, 90, 6, 315, 1, 91, 0, 316, 0, 91, 0, 317, 0, 91, 5, 316, 0, 91, 5, 317, 1, 91, 8, 316, 0, 91, 8, 317, 3, 92, 0, 318, 0, 92, 0, 319, 0, 92, 5, 318, 0, 92, 5, 319, 1, 92, 8, 318, 0, 92, 8, 319, 3, 93, 0, 320, 0, 93, 0, 321, 0, 93, 5, 320, 0, 93, 5, 321, 1, 93, 8, 320, 0, 93, 8, 321, 3, 94, 0, 322, 0, 94, 0, 323, 0, 94, 5, 322, 0, 94, 5, 323, 1, 94, 8, 322, 0, 94, 8, 323, 3, 95, 0, 324, 0, 95, 0, 325, 0, 95, 5, 324, 0, 95, 5, 325, 1, 95, 8, 324, 0, 95, 8, 325, 3, 96, 0, 326, 0, 96, 0, 327, 0, 96, 5, 326, 0, 96, 5, 327, 1, 96, 8, 326, 0, 96, 8, 327, 3, 97, 0, 328, 0, 97, 0, 329, 0, 97, 5, 328, 0, 97, 5, 329, 1, 97, 8, 328, 0, 97, 8, 329, 3, 98, 0, 330, 0, 98, 0, 331, 0, 98, 5, 330, 0, 98, 5, 331, 1, 98, 8, 330, 0, 98, 8, 331, 3, 99, 17, 332, 0, 99, 17, 333, 0, 100, 2, 334, 0, 100, 2, 335, 0, 100, 2, 336, 0, 100, 2, 337, 0, 100, 2, 338, 0, 100, 2, 339, 0, 100, 2, 340, 0, 100, 2, 341, 0, 100, 2, 342, 0, 100, 2, 343, 0, 100, 2, 344, 0, 100, 2, 345, 0, 100, 2, 346, 0, 100, 2, 347, 0, 100, 2, 348, 0, 100, 2, 349, 0, 100, 2, 350, 0, 100, 2, 351, 0, 100, 2, 352, 0, 100, 2, 353, 0, 100, 2, 354, 0, 100, 2, 355, 0, 100, 2, 356, 0, 100, 2, 357, 0, 100, 2, 358, 0, 101, 2, 359, 1, 101, 2, 360, 1, 101, 2, 361, 1, 101, 2, 362, 1, 101, 2, 363, 1, 101, 2, 364, 1, 101, 2, 365, 1, 101, 2, 366, 1, 101, 2, 367, 1, 101, 2, 368, 1, 101, 2, 369, 1, 101, 2, 370, 1, 101, 2, 371, 1, 101, 2, 372, 1, 101, 2, 373, 1, 101, 2, 374, 1, 101, 2, 375, 1, 101, 2, 376, 1, 101, 2, 377, 1, 101, 2, 378, 1, 101, 2, 379, 1, 101, 2, 380, 1, 101, 2, 381, 1, 101, 2, 382, 1, 102, 0, 383, 0, 102, 0, 384, 0, 102, 5, 383, 0, 102, 5, 384, 1, 102, 6, 383, 0, 102, 6, 384, 1, 103, 0, 385, 0, 103, 0, 386, 0, 103, 5, 385, 0, 103, 5, 386, 1, 103, 6, 385, 0, 103, 6, 386, 1, 104, 0, 387, 0, 104, 0, 388, 0, 104, 5, 387, 0, 104, 5, 388, 1, 104, 6, 387, 0, 104, 6, 388, 1, 105, 0, 389, 0, 105, 0, 390, 0, 105, 5, 389, 0, 105, 5, 390, 1, 105, 6, 389, 0, 105, 6, 390, 1, 106, 0, 391, 0, 106, 0, 392, 0, 106, 5, 391, 0, 106, 5, 392, 1, 106, 6, 391, 0, 106, 6, 392, 1, 107, 0, 393, 0, 107, 0, 394, 0, 107, 5, 393, 0, 107, 5, 394, 1, 107, 6, 393, 0, 107, 6, 394, 1, 108, 0, 395, 0, 108, 0, 396, 0, 108, 5, 395, 0, 108, 5, 396, 1, 108, 8, 395, 0, 108, 8, 396, 3, 109, 10, 397, 0, 109, 10, 398, 3, 110, 0, 399, 0, 110, 0, 400, 0, 110, 5, 399, 0, 110, 5, 400, 1, 110, 6, 399, 0, 110, 6, 400, 1, 111, 0, 401, 0, 111, 0, 402, 0, 111, 5, 401, 0, 111, 5, 402, 1, 111, 8, 401, 0, 111, 8, 402, 3, 112, 0, 403, 0, 112, 0, 404, 0, 112, 5, 403, 0, 112, 5, 404, 1, 112, 8, 403, 0, 112, 8, 404, 3, 113, 0, 405, 0, 113, 0, 406, 0, 113, 5, 405, 0, 113, 5, 406, 1, 113, 8, 405, 0, 113, 8, 406, 3, 114, 0, 407, 0, 114, 0, 408, 0, 114, 5, 407, 0, 114, 5, 408, 1, 114, 8, 407, 0, 114, 8, 408, 3, 115, 0, 409, 0, 115, 0, 410, 0, 115, 5, 409, 0, 115, 5, 410, 1, 115, 8, 409, 0, 115, 8, 410, 3, 116, 0, 411, 0, 116, 0, 412, 0, 116, 5, 411, 0, 116, 5, 412, 1, 116, 8, 411, 0, 116, 8, 412, 3, 117, 0, 413, 0, 117, 0, 414, 0, 117, 5, 413, 0, 117, 5, 414, 1, 117, 8, 413, 0, 117, 8, 414, 3, 118, 2, 415, 0, 118, 2, 416, 0, 118, 2, 417, 0, 118, 2, 418, 0, 118, 2, 419, 0, 118, 2, 420, 0, 118, 2, 421, 0, 118, 2, 422, 0, 118, 2, 423, 0, 118, 2, 424, 0, 118, 2, 425, 0, 118, 2, 426, 0, 118, 2, 427, 0, 118, 2, 428, 0, 118, 2, 429, 0, 118, 2, 430, 0, 118, 2, 431, 0, 118, 2, 432, 0, 118, 2, 433, 0, 118, 2, 434, 0, 118, 2, 435, 0, 118, 2, 436, 0, 118, 2, 437, 0, 118, 2, 438, 0, 118, 2, 439, 0, 119, 2, 440, 1, 119, 2, 441, 1, 119, 2, 442, 1, 119, 2, 443, 1, 119, 2, 444, 1, 119, 2, 445, 1, 119, 2, 446, 1, 119, 2, 447, 1, 119, 2, 448, 1, 119, 2, 449, 1, 119, 2, 450, 1, 119, 2, 451, 1, 119, 2, 452, 1, 119, 2, 453, 1, 119, 2, 454, 1, 119, 2, 455, 1, 119, 2, 456, 1, 119, 2, 457, 1, 119, 2, 458, 1, 119, 2, 459, 1, 119, 2, 460, 1, 119, 2, 461, 1, 119, 2, 462, 1, 119, 2, 463, 1, 119, 2, 464, 1, 120, 0, 465, 0, 120, 0, 466, 0, 120, 5, 465, 0, 120, 5, 466, 1, 120, 6, 465, 0, 120, 6, 466, 1, 121, 0, 467, 0, 121, 0, 468, 0, 121, 5, 467, 0, 121, 5, 468, 1, 121, 6, 467, 0, 121, 6, 468, 1, 122, 0, 469, 0, 122, 0, 470, 0, 122, 5, 469, 0, 122, 5, 470, 1, 122, 6, 469, 0, 122, 6, 470, 1, 123, 0, 471, 0, 123, 0, 472, 0, 123, 5, 471, 0, 123, 5, 472, 1, 123, 6, 471, 0, 123, 6, 472, 1, 124, 0, 473, 0, 124, 0, 474, 0, 124, 5, 473, 0, 124, 5, 474, 1, 124, 6, 473, 0, 124, 6, 474, 1, 125, 0, 475, 0, 125, 0, 476, 0, 125, 5, 475, 0, 125, 5, 476, 1, 125, 6, 475, 0, 125, 6, 476, 1, 126, 0, 477, 0, 126, 0, 478, 0, 126, 5, 477, 0, 126, 5, 478, 1, 126, 6, 477, 0, 126, 6, 478, 1, 127, 0, 479, 0, 127, 0, 480, 0, 127, 5, 479, 0, 127, 5, 480, 1, 127, 8, 479, 0, 127, 8, 480, 3, 128, 10, 481, 0, 128, 10, 482, 3, 129, 0, 483, 0, 129, 0, 484, 0, 129, 5, 483, 0, 129, 5, 484, 1, 129, 6, 483, 0, 129, 6, 484, 1, 130, 0, 485, 0, 130, 0, 486, 0, 130, 5, 485, 0, 130, 5, 486, 1, 130, 8, 485, 0, 130, 8, 486, 3, 131, 0, 487, 0, 131, 0, 488, 0, 131, 5, 487, 0, 131, 5, 488, 1, 131, 8, 487, 0, 131, 8, 488, 3, 132, 0, 489, 0, 132, 0, 490, 0, 132, 5, 489, 0, 132, 5, 490, 1, 132, 8, 489, 0, 132, 8, 490, 3, 133, 0, 491, 0, 133, 0, 492, 0, 133, 5, 491, 0, 133, 5, 492, 1, 133, 8, 491, 0, 133, 8, 492, 3, 134, 0, 493, 0, 134, 0, 494, 0, 134, 5, 493, 0, 134, 5, 494, 1, 134, 8, 493, 0, 134, 8, 494, 3, 135, 0, 495, 0, 135, 0, 496, 0, 135, 5, 495, 0, 135, 5, 496, 1, 135, 8, 495, 0, 135, 8, 496, 3, 136, 0, 497, 0, 136, 0, 498, 0, 136, 5, 497, 0, 136, 5, 498, 1, 136, 8, 497, 0, 136, 8, 498, 3, 137, 17, 499, 0, 137, 17, 500, 0, 138, 2, 501, 0, 138, 2, 502, 0, 138, 2, 503, 0, 138, 2, 504, 0, 138, 2, 505, 0, 138, 2, 506, 0, 138, 2, 507, 0, 138, 2, 508, 0, 138, 2, 509, 0, 138, 2, 510, 0, 138, 2, 511, 0, 138, 2, 512, 0, 138, 2, 513, 0, 138, 2, 514, 0, 138, 2, 515, 0, 138, 2, 516, 0, 138, 2, 517, 0, 138, 2, 518, 0, 138, 2, 519, 0, 138, 2, 520, 0, 138, 2, 521, 0, 138, 2, 522, 0, 138, 2, 523, 0, 139, 2, 524, 1, 139, 2, 525, 1, 139, 2, 526, 1, 139, 2, 527, 1, 139, 2, 528, 1, 139, 2, 529, 1, 139, 2, 530, 1, 139, 2, 531, 1, 139, 2, 532, 1, 139, 2, 533, 1, 139, 2, 534, 1, 139, 2, 535, 1, 139, 2, 536, 1, 139, 2, 537, 1, 139, 2, 538, 1, 139, 2, 539, 1, 139, 2, 540, 1, 139, 2, 541, 1, 139, 2, 542, 1, 139, 2, 543, 1, 139, 2, 544, 1, 139, 2, 545, 1, 139, 2, 546, 1, 140, 0, 547, 0, 140, 0, 548, 0, 140, 5, 547, 0, 140, 5, 548, 1, 140, 6, 547, 0, 140, 6, 548, 1, 141, 0, 549, 0, 141, 0, 550, 0, 141, 5, 549, 0, 141, 5, 550, 1, 141, 6, 549, 0, 141, 6, 550, 1, 142, 0, 551, 0, 142, 0, 552, 0, 142, 5, 551, 0, 142, 5, 552, 1, 142, 6, 551, 0, 142, 6, 552, 1, 143, 0, 553, 0, 143, 0, 554, 0, 143, 5, 553, 0, 143, 5, 554, 1, 143, 6, 553, 0, 143, 6, 554, 1, 144, 0, 555, 0, 144, 0, 556, 0, 144, 5, 555, 0, 144, 5, 556, 1, 144, 6, 555, 0, 144, 6, 556, 1, 145, 0, 557, 0, 145, 0, 558, 0, 145, 5, 557, 0, 145, 5, 558, 1, 145, 8, 557, 0, 145, 8, 558, 3, 146, 0, 559, 0, 146, 0, 560, 0, 146, 5, 559, 0, 146, 5, 560, 1, 146, 8, 559, 0, 146, 8, 560, 3, 147, 0, 561, 0, 147, 0, 562, 0, 147, 5, 561, 0, 147, 5, 562, 1, 147, 8, 561, 0, 147, 8, 562, 3, 148, 0, 563, 0, 148, 0, 564, 0, 148, 5, 563, 0, 148, 5, 564, 1, 148, 8, 563, 0, 148, 8, 564, 3, 149, 0, 565, 0, 149, 0, 566, 0, 149, 5, 565, 0, 149, 5, 566, 1, 149, 8, 565, 0, 149, 8, 566, 3, 150, 17, 567, 0, 150, 17, 568, 0, 151, 2, 569, 0, 151, 2, 570, 0, 151, 2, 571, 0, 151, 2, 572, 0, 151, 2, 573, 0, 151, 2, 574, 0, 151, 2, 575, 0, 151, 2, 576, 0, 151, 2, 577, 0, 151, 2, 578, 0, 151, 2, 579, 0, 151, 2, 580, 0, 151, 2, 581, 0, 151, 2, 582, 0, 151, 2, 583, 0, 151, 2, 584, 0, 151, 2, 585, 0, 151, 2, 586, 0, 151, 2, 587, 0, 151, 2, 588, 0, 151, 2, 589, 0, 151, 2, 590, 0, 152, 2, 591, 1, 152, 2, 592, 1, 152, 2, 593, 1, 152, 2, 594, 1, 152, 2, 595, 1, 152, 2, 596, 1, 152, 2, 597, 1, 152, 2, 598, 1, 152, 2, 599, 1, 152, 2, 600, 1, 152, 2, 601, 1, 152, 2, 602, 1, 152, 2, 603, 1, 152, 2, 604, 1, 152, 2, 605, 1, 152, 2, 606, 1, 152, 2, 607, 1, 152, 2, 608, 1, 152, 2, 609, 1, 152, 2, 610, 1, 152, 2, 611, 1, 152, 2, 612, 1, 153, 0, 613, 0, 153, 0, 614, 0, 153, 5, 613, 0, 153, 5, 614, 1, 153, 6, 613, 0, 153, 6, 614, 1, 154, 0, 615, 0, 154, 0, 616, 0, 154, 5, 615, 0, 154, 5, 616, 1, 154, 6, 615, 0, 154, 6, 616, 1, 155, 0, 617, 0, 155, 0, 618, 0, 155, 5, 617, 0, 155, 5, 618, 1, 155, 6, 617, 0, 155, 6, 618, 1, 156, 0, 619, 0, 156, 0, 620, 0, 156, 5, 619, 0, 156, 5, 620, 1, 156, 6, 619, 0, 156, 6, 620, 1, 157, 0, 621, 0, 157, 0, 622, 0, 157, 5, 621, 0, 157, 5, 622, 1, 157, 8, 621, 0, 157, 8, 622, 3, 158, 10, 623, 0, 158, 10, 624, 3, 159, 0, 625, 0, 159, 0, 626, 0, 159, 5, 625, 0, 159, 5, 626, 1, 159, 6, 625, 0, 159, 6, 626, 1, 160, 0, 627, 0, 160, 0, 628, 0, 160, 5, 627, 0, 160, 5, 628, 1, 160, 8, 627, 0, 160, 8, 628, 3, 161, 0, 629, 0, 161, 0, 630, 0, 161, 5, 629, 0, 161, 5, 630, 1, 161, 8, 629, 0, 161, 8, 630, 3, 162, 0, 631, 0, 162, 0, 632, 0, 162, 5, 631, 0, 162, 5, 632, 1, 162, 8, 631, 0, 162, 8, 632, 3, 163, 0, 633, 0, 163, 0, 634, 0, 163, 5, 633, 0, 163, 5, 634, 1, 163, 8, 633, 0, 163, 8, 634, 3, 164, 2, 635, 0, 164, 2, 636, 0, 164, 2, 637, 0, 164, 2, 638, 0, 164, 2, 639, 0, 164, 2, 640, 0, 164, 2, 641, 0, 164, 2, 642, 0, 164, 2, 643, 0, 164, 2, 644, 0, 164, 2, 645, 0, 164, 2, 646, 0, 164, 2, 647, 0, 164, 2, 648, 0, 164, 2, 649, 0, 164, 2, 650, 0, 164, 2, 651, 0, 164, 2, 652, 0, 164, 2, 653, 0, 164, 2, 654, 0, 164, 2, 655, 0, 164, 2, 656, 0, 165, 2, 657, 1, 165, 2, 658, 1, 165, 2, 659, 1, 165, 2, 660, 1, 165, 2, 661, 1, 165, 2, 662, 1, 165, 2, 663, 1, 165, 2, 664, 1, 165, 2, 665, 1, 165, 2, 666, 1, 165, 2, 667, 1, 165, 2, 668, 1, 165, 2, 669, 1, 165, 2, 670, 1, 165, 2, 671, 1, 165, 2, 672, 1, 165, 2, 673, 1, 165, 2, 674, 1, 165, 2, 675, 1, 165, 2, 676, 1, 165, 2, 677, 1, 165, 2, 678, 1, 166, 0, 679, 0, 166, 0, 680, 0, 166, 5, 679, 0, 166, 5, 680, 1, 166, 6, 679, 0, 166, 6, 680, 1, 167, 0, 681, 0, 167, 0, 682, 0, 167, 5, 681, 0, 167, 5, 682, 1, 167, 6, 681, 0, 167, 6, 682, 1, 168, 0, 683, 0, 168, 0, 684, 0, 168, 5, 683, 0, 168, 5, 684, 1, 168, 6, 683, 0, 168, 6, 684, 1, 169, 0, 685, 0, 169, 0, 686, 0, 169, 5, 685, 0, 169, 5, 686, 1, 169, 6, 685, 0, 169, 6, 686, 1, 170, 0, 687, 0, 170, 0, 688, 0, 170, 5, 687, 0, 170, 5, 688, 1, 170, 8, 687, 0, 170, 8, 688, 3, 171, 10, 689, 0, 171, 10, 690, 3, 172, 0, 691, 0, 172, 0, 692, 0, 172, 5, 691, 0, 172, 5, 692, 1, 172, 6, 691, 0, 172, 6, 692, 1, 173, 0, 693, 0, 173, 0, 694, 0, 173, 5, 693, 0, 173, 5, 694, 1, 173, 8, 693, 0, 173, 8, 694, 3, 174, 10, 695, 0, 174, 10, 696, 3, 175, 14, 697, 0, 175, 14, 698, 1, 176, 0, 699, 0, 176, 0, 700, 0, 176, 5, 699, 0, 176, 5, 700, 1, 176, 6, 699, 0, 176, 6, 700, 1, 177, 15, 701, 2, 178, 0, 702, 0, 178, 0, 703, 0, 178, 5, 702, 0, 178, 5, 703, 1, 178, 8, 702, 0, 178, 8, 703, 3, 179, 0, 704, 0, 179, 0, 705, 0, 179, 5, 704, 0, 179, 5, 705, 1, 179, 8, 704, 0, 179, 8, 705, 3, 180, 0, 706, 0, 180, 0, 707, 0, 180, 5, 706, 0, 180, 5, 707, 1, 180, 8, 706, 0, 180, 8, 707, 3, 181, 16, 708, 0, 182, 2, 709, 0, 182, 2, 710, 0, 182, 2, 711, 0, 182, 2, 712, 0, 182, 2, 713, 1, 182, 2, 714, 1, 182, 2, 715, 1, 182, 2, 716, 1, 182, 2, 717, 1, 182, 2, 718, 1, 182, 2, 719, 1, 182, 2, 720, 1, 182, 2, 721, 1, 182, 2, 722, 1, 182, 2, 723, 1, 182, 2, 724, 1, 182, 2, 725, 1, 182, 2, 726, 1, 182, 2, 727, 1, 182, 2, 728, 1, 182, 2, 729, 1, 182, 2, 730, 1, 182, 2, 731, 1, 182, 2, 732, 1, 183, 1, 733, 0, 183, 1, 734, 0, 183, 1, 735, 0, 183, 1, 736, 0, 183, 1, 737, 0, 183, 1, 738, 0, 183, 1, 739, 0, 183, 1, 740, 0, 183, 1, 741, 0, 183, 1, 742, 0, 183, 1, 743, 0, 183, 1, 744, 0, 183, 1, 745, 0, 183, 1, 746, 0, 183, 1, 747, 0, 183, 1, 748, 0, 183, 1, 749, 0, 183, 1, 750, 0, 183, 1, 751, 0, 184, 0, 752, 0, 184, 0, 753, 0, 184, 5, 752, 0, 184, 5, 753, 1, 184, 6, 752, 0, 184, 6, 753, 1, 185, 0, 754, 0, 185, 0, 755, 0, 185, 5, 754, 0, 185, 5, 755, 1, 185, 8, 754, 0, 185, 8, 755, 3, 186, 0, 756, 0, 186, 0, 757, 0, 186, 5, 756, 0, 186, 5, 757, 1, 186, 8, 756, 0, 186, 8, 757, 3, 187, 19, 758, 0, 187, 19, 759, 0, 188, 0, 760, 0, 188, 0, 761, 0, 188, 5, 760, 0, 188, 5, 761, 1, 188, 8, 760, 0, 188, 8, 761, 3, 189, 2, 762, 0, 189, 2, 763, 0, 189, 2, 764, 0, 189, 2, 765, 0, 189, 2, 766, 0, 189, 2, 767, 0, 189, 2, 768, 0, 189, 2, 769, 0, 189, 2, 770, 0, 189, 2, 771, 0, 189, 2, 772, 0, 189, 2, 773, 0, 189, 2, 774, 0, 189, 2, 775, 0, 189, 2, 776, 0, 189, 2, 777, 0, 189, 2, 778, 0, 189, 2, 779, 0, 189, 2, 780, 0, 190, 2, 781, 1, 190, 2, 782, 1, 190, 2, 783, 1, 190, 2, 784, 1, 190, 2, 785, 1, 190, 2, 786, 1, 190, 2, 787, 1, 190, 2, 788, 1, 190, 2, 789, 1, 190, 2, 790, 1, 190, 2, 791, 1, 190, 2, 792, 1, 190, 2, 793, 1, 190, 2, 794, 1, 190, 2, 795, 1, 190, 2, 796, 1, 190, 2, 797, 1, 190, 2, 798, 1, 190, 2, 799, 1, 191, 0, 800, 0, 191, 0, 801, 0, 191, 5, 800, 0, 191, 5, 801, 1, 191, 6, 800, 0, 191, 6, 801, 1, 192, 0, 802, 0, 192, 0, 803, 0, 192, 5, 802, 0, 192, 5, 803, 1, 192, 8, 802, 0, 192, 8, 803, 3, 193, 0, 804, 0, 193, 0, 805, 0, 193, 8, 804, 0, 193, 8, 805, 3, 194, 0, 806, 0, 194, 0, 807, 0, 194, 8, 806, 0, 194, 8, 807, 3, 195, 0, 808, 0, 195, 0, 809, 0, 195, 8, 808, 0, 195, 8, 809, 3, 196, 0, 810, 0, 196, 0, 811, 0, 196, 8, 810, 0, 196, 8, 811, 3, 197, 0, 812, 0, 197, 0, 813, 0, 197, 8, 812, 0, 197, 8, 813, 3, 198, 0, 814, 0, 198, 0, 815, 0, 198, 8, 814, 0, 198, 8, 815, 3, 199, 0, 816, 0, 199, 0, 817, 0, 199, 8, 816, 0, 199, 8, 817, 3, 200, 0, 818, 0, 200, 0, 819, 0, 200, 8, 818, 0, 200, 8, 819, 3, 201, 0, 820, 0, 201, 0, 821, 0, 201, 20, 820, 0, 201, 20, 821, 3, 202, 0, 822, 0, 202, 0, 823, 0, 202, 20, 822, 0, 202, 20, 823, 3, 203, 0, 824, 0, 203, 0, 825, 0, 203, 20, 824, 0, 203, 20, 825, 3, 204, 0, 826, 0, 204, 0, 827, 0, 204, 20, 826, 0, 204, 20, 827, 3, 205, 0, 828, 0, 205, 0, 829, 0, 205, 20, 828, 0, 205, 20, 829, 3, 206, 0, 830, 0, 206, 0, 831, 0, 206, 20, 830, 0, 206, 20, 831, 3, 208, 22, 832, 0, 209, 2, 833, 0, 209, 2, 834, 0, 209, 2, 835, 0, 209, 2, 836, 0, 209, 2, 837, 0, 209, 2, 838, 0, 209, 2, 839, 0, 209, 2, 840, 0, 209, 2, 841, 0, 209, 2, 842, 0, 209, 2, 843, 0, 209, 2, 844, 0, 209, 2, 845, 0, 209, 2, 846, 0, 209, 2, 847, 0, 209, 2, 848, 0, 209, 2, 849, 0, 209, 2, 850, 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 = [1889, 1890];
temp_domain = array1d(0..416, [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..81, -1..31 union 82..82, -1..31 union 83..83, -1..-1 union 84..84, -1..-1 union 85..85, -1..-1 union 86..86, -1..-1 union 87..87, -1..-1 union 88..88, -1..-1 union 89..89, -1..-1 union 90..90, -1..-1 union 91..91, -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 92..100, -1..31, -1..31, 0..31, -1..31 union 101..108, -1..31, 0..31, -1..31 union 109..110, -1..31, 0..31, -1..31 union 111..111, 0..31, -1..31, 0..31, -1..31 union 112..112, 0..31, -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..81, 16..16 union 84..84, 17..17 union 85..85, 18..18 union 86..86, 19..19 union 87..87, 20..20 union 88..88, 21..21 union 89..89, 22..22 union 90..90, 23..23 union 91..91, 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 92..100, 1..25 union 28..28 union 30..31 union 101..108, 1..25 union 28..28 union 30..31 union 109..110, -1..31 union 79..81, -1..31 union 92..100, -1..31 union 101..108, -1..31 union 109..110, -1..31, 25..25, 0..31, -1..31 union 113..113, 0..31, -1..31 union 114..114, 31..31, -1..31, -1..-1 union 4..4, -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 115..121, -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..25 union 28..28 union 30..31 union 79..81, 16..16 union 84..84, 17..17 union 85..85, 18..18 union 86..86, 19..19 union 87..87, 20..20 union 88..88, 21..21 union 89..89, 22..22 union 90..90, 23..23 union 91..91, 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 92..100, 1..25 union 28..28 union 30..31 union 101..108, 1..25 union 28..28 union 30..31 union 115..121, -1..31 union 79..81, -1..31 union 92..100, -1..31 union 101..108, -1..31 union 115..121, -1..31, 0..31, -1..31 union 122..122, -1..31, 0..31, -1..31 union 123..125, -1..31, 0..31, -1..31 union 126..135, -1..31 union 126..135, -1..31, 0..31, -1..31 union 136..136, -1..31, 0..31, -1..31 union 137..140, -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..-1 union 1..25 union 28..28 union 30..31, -1..-1, -1..-1 union 1..31, 16..16 union 84..84, 17..17 union 85..85, 18..18 union 86..86, 19..19 union 87..87, 20..20 union 88..88, 21..21 union 89..89, 22..22 union 90..90, 23..23 union 91..91, 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 92..100, 1..25 union 28..28 union 30..31 union 101..108, 1..25 union 28..28 union 30..31 union 115..121, 1..25 union 28..28 union 30..31 union 123..125, 1..25 union 28..28 union 30..31 union 126..135, 1..25 union 28..28 union 30..31 union 137..140, -1..31 union 92..100, -1..31 union 101..108, -1..31 union 115..121, -1..31 union 123..125, -1..31 union 126..135, -1..31 union 137..140, -1..31, 0..31, -1..31 union 126..135, -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..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 126..135, 16..16 union 84..84, 17..17 union 85..85, 18..18 union 86..86, 19..19 union 87..87, 20..20 union 88..88, 21..21 union 89..89, 22..22 union 90..90, 23..23 union 91..91, 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 92..100, 1..25 union 28..28 union 30..31 union 101..108, 1..25 union 28..28 union 30..31 union 115..121, 1..25 union 28..28 union 30..31 union 123..125, 1..25 union 28..28 union 30..31 union 126..135, 1..25 union 28..28 union 30..31 union 137..140, -1..31 union 126..135, -1..31 union 92..100, -1..31 union 101..108, -1..31 union 115..121, -1..31 union 123..125, -1..31 union 126..135, -1..31 union 137..140, -1..31, 0..31, -1..31 union 141..141, -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..-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, 16..16 union 84..84, 17..17 union 85..85, 18..18 union 86..86, 19..19 union 87..87, 20..20 union 88..88, 21..21 union 89..89, 22..22 union 90..90, 23..23 union 91..91, 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 92..100, 1..25 union 28..28 union 30..31 union 101..108, 1..25 union 28..28 union 30..31 union 115..121, 1..25 union 28..28 union 30..31 union 126..135, 1..25 union 28..28 union 30..31 union 137..140, -1..31 union 92..100, -1..31 union 101..108, -1..31 union 115..121, -1..31 union 126..135, -1..31 union 137..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..-1 union 1..25 union 28..28 union 30..31, -1..-1 union 1..25 union 28..28 union 30..31, 16..16 union 84..84, 17..17 union 85..85, 18..18 union 86..86, 19..19 union 87..87, 20..20 union 88..88, 21..21 union 89..89, 22..22 union 90..90, 23..23 union 91..91, 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 92..100, 1..25 union 28..28 union 30..31 union 101..108, 1..25 union 28..28 union 30..31 union 115..121, 1..25 union 28..28 union 30..31 union 126..135, -1..31 union 92..100, -1..31 union 101..108, -1..31 union 115..121, -1..31 union 126..135, -1..31, 0..31, -1..31 union 126..135, -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 126..135, 16..16 union 84..84, 17..17 union 85..85, 18..18 union 86..86, 19..19 union 87..87, 20..20 union 88..88, 21..21 union 89..89, 22..22 union 90..90, 23..23 union 91..91, 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 92..100, 1..25 union 28..28 union 30..31 union 101..108, 1..25 union 28..28 union 30..31 union 115..121, -1..31 union 126..135, -1..31 union 92..100, -1..31 union 101..108, -1..31 union 115..121, -1..31, 0..31, -1..31 union 142..142, -1..31, 25..25, 0..31, -1..31 union 143..143, 31..31, -1..31, -1..-1 union 5..5, -1..-1 union 4..4, 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 144..144, -1..31, -1..31, -1..-1 union 1..25 union 28..28 union 30..31, 16..16 union 84..84, 17..17 union 85..85, 18..18 union 86..86, 19..19 union 87..87, 20..20 union 88..88, 21..21 union 89..89, 22..22 union 90..90, 23..23 union 91..91, 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 92..100, -1..31 union 92..100, -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]);
wcet = array2d(1..492, 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, 10, 3, 30, 0, 0, 30, 5, 1, 30, 6, 1, 31, 11, 1, 32, 0, 0, 32, 5, 1, 32, 8, 3, 33, 12, 1, 34, 0, 0, 34, 5, 1, 34, 6, 1, 35, 11, 1, 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, 0, 0, 39, 5, 1, 39, 8, 3, 40, 0, 0, 40, 5, 1, 40, 8, 3, 41, 13, 1, 42, 0, 0, 43, 2, 1, 44, 0, 0, 44, 5, 1, 44, 6, 1, 45, 0, 0, 45, 5, 1, 45, 6, 1, 46, 0, 0, 46, 5, 1, 46, 6, 1, 47, 0, 0, 47, 5, 1, 47, 6, 1, 48, 0, 0, 48, 5, 1, 48, 8, 3, 49, 10, 3, 50, 14, 1, 51, 0, 0, 51, 5, 1, 51, 6, 1, 52, 14, 1, 53, 0, 0, 53, 5, 1, 53, 6, 1, 54, 15, 2, 55, 0, 0, 55, 5, 1, 55, 8, 3, 56, 0, 0, 56, 5, 1, 56, 8, 3, 57, 0, 0, 57, 5, 1, 57, 8, 3, 58, 0, 0, 58, 5, 1, 58, 8, 3, 59, 16, 1, 60, 2, 1, 61, 1, 0, 62, 0, 0, 62, 5, 1, 62, 6, 1, 63, 0, 0, 63, 5, 1, 63, 8, 3, 64, 0, 0, 64, 5, 1, 64, 8, 3, 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, 17, 1, 69, 0, 0, 70, 2, 1, 71, 0, 0, 71, 5, 1, 71, 6, 1, 72, 0, 0, 72, 5, 1, 72, 6, 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, 10, 3, 77, 0, 0, 77, 5, 1, 77, 6, 1, 78, 0, 0, 78, 5, 1, 78, 8, 3, 79, 10, 3, 80, 0, 0, 80, 5, 1, 80, 6, 1, 81, 0, 0, 81, 5, 1, 81, 8, 3, 82, 10, 3, 83, 0, 0, 83, 5, 1, 83, 6, 1, 84, 0, 0, 84, 5, 1, 84, 6, 1, 85, 0, 0, 85, 5, 1, 85, 8, 3, 86, 10, 3, 87, 0, 0, 87, 5, 1, 87, 6, 1, 88, 0, 0, 88, 5, 1, 88, 8, 3, 89, 18, 1, 90, 0, 0, 90, 5, 1, 90, 6, 1, 91, 0, 0, 91, 5, 1, 91, 8, 3, 92, 0, 0, 92, 5, 1, 92, 8, 3, 93, 0, 0, 93, 5, 1, 93, 8, 3, 94, 0, 0, 94, 5, 1, 94, 8, 3, 95, 0, 0, 95, 5, 1, 95, 8, 3, 96, 0, 0, 96, 5, 1, 96, 8, 3, 97, 0, 0, 97, 5, 1, 97, 8, 3, 98, 0, 0, 98, 5, 1, 98, 8, 3, 99, 17, 1, 100, 0, 0, 101, 2, 1, 102, 0, 0, 102, 5, 1, 102, 6, 1, 103, 0, 0, 103, 5, 1, 103, 6, 1, 104, 0, 0, 104, 5, 1, 104, 6, 1, 105, 0, 0, 105, 5, 1, 105, 6, 1, 106, 0, 0, 106, 5, 1, 106, 6, 1, 107, 0, 0, 107, 5, 1, 107, 6, 1, 108, 0, 0, 108, 5, 1, 108, 8, 3, 109, 10, 3, 110, 0, 0, 110, 5, 1, 110, 6, 1, 111, 0, 0, 111, 5, 1, 111, 8, 3, 112, 0, 0, 112, 5, 1, 112, 8, 3, 113, 0, 0, 113, 5, 1, 113, 8, 3, 114, 0, 0, 114, 5, 1, 114, 8, 3, 115, 0, 0, 115, 5, 1, 115, 8, 3, 116, 0, 0, 116, 5, 1, 116, 8, 3, 117, 0, 0, 117, 5, 1, 117, 8, 3, 118, 0, 0, 119, 2, 1, 120, 0, 0, 120, 5, 1, 120, 6, 1, 121, 0, 0, 121, 5, 1, 121, 6, 1, 122, 0, 0, 122, 5, 1, 122, 6, 1, 123, 0, 0, 123, 5, 1, 123, 6, 1, 124, 0, 0, 124, 5, 1, 124, 6, 1, 125, 0, 0, 125, 5, 1, 125, 6, 1, 126, 0, 0, 126, 5, 1, 126, 6, 1, 127, 0, 0, 127, 5, 1, 127, 8, 3, 128, 10, 3, 129, 0, 0, 129, 5, 1, 129, 6, 1, 130, 0, 0, 130, 5, 1, 130, 8, 3, 131, 0, 0, 131, 5, 1, 131, 8, 3, 132, 0, 0, 132, 5, 1, 132, 8, 3, 133, 0, 0, 133, 5, 1, 133, 8, 3, 134, 0, 0, 134, 5, 1, 134, 8, 3, 135, 0, 0, 135, 5, 1, 135, 8, 3, 136, 0, 0, 136, 5, 1, 136, 8, 3, 137, 17, 1, 138, 0, 0, 139, 2, 1, 140, 0, 0, 140, 5, 1, 140, 6, 1, 141, 0, 0, 141, 5, 1, 141, 6, 1, 142, 0, 0, 142, 5, 1, 142, 6, 1, 143, 0, 0, 143, 5, 1, 143, 6, 1, 144, 0, 0, 144, 5, 1, 144, 6, 1, 145, 0, 0, 145, 5, 1, 145, 8, 3, 146, 0, 0, 146, 5, 1, 146, 8, 3, 147, 0, 0, 147, 5, 1, 147, 8, 3, 148, 0, 0, 148, 5, 1, 148, 8, 3, 149, 0, 0, 149, 5, 1, 149, 8, 3, 150, 17, 1, 151, 0, 0, 152, 2, 1, 153, 0, 0, 153, 5, 1, 153, 6, 1, 154, 0, 0, 154, 5, 1, 154, 6, 1, 155, 0, 0, 155, 5, 1, 155, 6, 1, 156, 0, 0, 156, 5, 1, 156, 6, 1, 157, 0, 0, 157, 5, 1, 157, 8, 3, 158, 10, 3, 159, 0, 0, 159, 5, 1, 159, 6, 1, 160, 0, 0, 160, 5, 1, 160, 8, 3, 161, 0, 0, 161, 5, 1, 161, 8, 3, 162, 0, 0, 162, 5, 1, 162, 8, 3, 163, 0, 0, 163, 5, 1, 163, 8, 3, 164, 0, 0, 165, 2, 1, 166, 0, 0, 166, 5, 1, 166, 6, 1, 167, 0, 0, 167, 5, 1, 167, 6, 1, 168, 0, 0, 168, 5, 1, 168, 6, 1, 169, 0, 0, 169, 5, 1, 169, 6, 1, 170, 0, 0, 170, 5, 1, 170, 8, 3, 171, 10, 3, 172, 0, 0, 172, 5, 1, 172, 6, 1, 173, 0, 0, 173, 5, 1, 173, 8, 3, 174, 10, 3, 175, 14, 1, 176, 0, 0, 176, 5, 1, 176, 6, 1, 177, 15, 2, 178, 0, 0, 178, 5, 1, 178, 8, 3, 179, 0, 0, 179, 5, 1, 179, 8, 3, 180, 0, 0, 180, 5, 1, 180, 8, 3, 181, 16, 1, 182, 2, 1, 183, 1, 0, 184, 0, 0, 184, 5, 1, 184, 6, 1, 185, 0, 0, 185, 5, 1, 185, 8, 3, 186, 0, 0, 186, 5, 1, 186, 8, 3, 187, 19, 1, 188, 0, 0, 188, 5, 1, 188, 8, 3, 189, 0, 0, 190, 2, 1, 191, 0, 0, 191, 5, 1, 191, 6, 1, 192, 0, 0, 192, 5, 1, 192, 8, 3, 193, 0, 0, 193, 8, 3, 194, 0, 0, 194, 8, 3, 195, 0, 0, 195, 8, 3, 196, 0, 0, 196, 8, 3, 197, 0, 0, 197, 8, 3, 198, 0, 0, 198, 8, 3, 199, 0, 0, 199, 8, 3, 200, 0, 0, 200, 8, 3, 201, 0, 0, 201, 20, 3, 202, 0, 0, 202, 20, 3, 203, 0, 0, 203, 20, 3, 204, 0, 0, 204, 20, 3, 205, 0, 0, 205, 20, 3, 206, 0, 0, 206, 20, 3, 207, 0, 0, 207, 21, 1, 208, 22, 1, 209, 0, 0]);
expr_op = [1, 6, 6, 1, 6, 6, 6, 12, 1, 5, 6, 6, 12, 12, 1, 6, 6, 12, 12, 1, 6, 6, 12, 12, 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, 6, 12, 12, 1, 6, 6, 12, 1, 6, 1, 6, 6, 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, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 6, 1, 1, 0, 6, 6, 12, 1, 1, 0, 1, 6, 1, 6, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 6, 1, 1, 0, 6, 1, 1, 0, 1, 1, 8, 5, 4, 7, 4, 0, 6, 3, 1, 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, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 1, 6, 8, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 1, 8, 3, 3, 3, 3, 3, 1, 6, 8, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 3, 6, 3, 6, 3, 1, 6, 8, 3, 6, 3, 1, 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, 6, 3, 6, 3, 1, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 6, 8, 3, 6, 3, 1, 8, 3, 3, 1, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 6, 8, 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, 6, 3, 6, 3, 1, 6, 8, 3, 6, 3, 6, 3, 6, 3, 1, 8, 3, 3, 3, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 1, 6, 8, 3, 6, 3, 1, 8, 3, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 5, 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, 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, 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, 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, 5, 8, 3, 8, 3, 8, 3, 5, 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, 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, 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];
expr_arg1 = [0, 100, 174, 0, 152, 177, 252, 86, 0, 97, 144, 232, 60, 82, 0, 146, 251, 79, 83, 0, 148, 252, 80, 84, 0, 152, 0, 165, 252, 93, 0, 222, 232, 119, 0, 226, 252, 121, 0, 232, 0, 251, 0, 252, 0, 681, 780, 340, 344, 0, 685, 759, 342, 346, 0, 754, 759, 379, 0, 759, 0, 760, 780, 381, 0, 780, 0, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 0, 0, 0, 224, 251, 120, 0, 0, 0, 0, 165, 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 760, 0, 0, 0, 754, 0, 0, 0, 0, 0, 157, 157, 154, 157, 156, 0, 621, 159, 0, 62, 1, 162, 63, 165, 69, 167, 69, 169, 75, 171, 75, 173, 82, 175, 98, 177, 100, 179, 100, 181, 100, 183, 101, 185, 102, 187, 103, 189, 104, 191, 105, 193, 106, 195, 107, 197, 108, 199, 109, 201, 110, 203, 111, 205, 112, 207, 113, 209, 114, 211, 119, 213, 120, 215, 121, 217, 121, 219, 121, 221, 0, 62, 1, 224, 63, 227, 82, 229, 98, 231, 119, 233, 120, 235, 0, 1, 167, 169, 171, 173, 175, 0, 154, 43, 245, 154, 248, 174, 250, 174, 252, 175, 254, 176, 256, 6, 177, 259, 177, 261, 0, 175, 43, 264, 176, 267, 0, 286, 70, 270, 286, 273, 292, 275, 298, 277, 298, 279, 306, 281, 306, 283, 312, 285, 332, 287, 332, 289, 352, 291, 352, 293, 353, 295, 353, 297, 354, 299, 354, 301, 354, 303, 356, 305, 356, 307, 356, 309, 357, 311, 357, 313, 357, 315, 358, 317, 358, 319, 358, 321, 0, 70, 270, 273, 275, 277, 279, 281, 283, 285, 287, 289, 291, 293, 295, 297, 299, 301, 303, 305, 307, 309, 311, 313, 315, 317, 319, 321, 0, 292, 70, 352, 312, 355, 0, 70, 352, 355, 0, 82, 305, 307, 309, 311, 313, 315, 317, 319, 321, 0, 433, 101, 373, 433, 376, 434, 378, 434, 380, 435, 382, 435, 384, 436, 386, 436, 388, 437, 390, 438, 392, 438, 394, 0, 653, 152, 397, 653, 400, 654, 402, 654, 404, 655, 406, 655, 408, 0, 689, 165, 411, 689, 414, 695, 416, 695, 418, 0, 165, 411, 414, 416, 418, 709, 426, 710, 428, 711, 430, 711, 432, 711, 434, 0, 709, 165, 437, 710, 440, 0, 165, 52, 57, 0, 2, 2, 448, 3, 450, 0, 2, 4, 454, 0, 2, 5, 458, 0, 2, 6, 462, 0, 2, 7, 466, 0, 2, 8, 470, 0, 2, 9, 474, 0, 2, 10, 478, 0, 2, 11, 482, 0, 2, 12, 486, 0, 2, 13, 490, 0, 2, 14, 494, 0, 2, 15, 498, 0, 2, 16, 502, 0, 2, 17, 506, 0, 2, 18, 510, 0, 2, 19, 514, 0, 2, 20, 518, 0, 2, 21, 522, 0, 2, 22, 526, 0, 2, 24, 530, 0, 2, 25, 534, 0, 2, 27, 538, 0, 2, 28, 542, 0, 2, 30, 546, 0, 2, 32, 550, 0, 2, 34, 554, 0, 2, 36, 558, 0, 2, 37, 562, 0, 2, 38, 566, 0, 2, 39, 570, 0, 2, 40, 574, 0, 21, 21, 578, 0, 22, 22, 582, 0, 25, 25, 586, 0, 28, 28, 590, 0, 32, 32, 594, 0, 36, 36, 598, 0, 37, 37, 602, 0, 38, 38, 606, 0, 39, 39, 610, 0, 40, 40, 614, 0, 48, 48, 618, 48, 620, 0, 55, 55, 624, 55, 626, 0, 56, 56, 630, 56, 632, 0, 57, 57, 636, 57, 638, 0, 58, 58, 642, 58, 644, 0, 63, 63, 648, 63, 650, 0, 64, 64, 654, 64, 656, 0, 65, 65, 660, 65, 662, 0, 66, 66, 666, 66, 668, 0, 67, 67, 672, 67, 674, 0, 75, 75, 678, 75, 680, 0, 78, 78, 684, 78, 686, 0, 81, 81, 690, 81, 692, 0, 85, 85, 696, 85, 698, 0, 88, 88, 702, 88, 704, 0, 91, 91, 708, 91, 710, 0, 92, 92, 714, 92, 716, 0, 93, 93, 720, 93, 722, 0, 94, 94, 726, 94, 728, 0, 95, 95, 732, 95, 734, 0, 96, 96, 738, 96, 740, 0, 98, 98, 744, 98, 746, 0, 108, 108, 750, 108, 752, 0, 108, 108, 756, 0, 111, 111, 760, 111, 762, 0, 111, 111, 766, 0, 112, 112, 770, 112, 772, 0, 112, 112, 776, 0, 113, 113, 780, 113, 782, 0, 113, 113, 786, 0, 114, 114, 790, 114, 792, 0, 114, 114, 796, 0, 115, 115, 800, 115, 802, 0, 115, 115, 806, 0, 116, 116, 810, 116, 812, 0, 116, 116, 816, 0, 117, 117, 820, 117, 822, 0, 117, 117, 826, 0, 127, 127, 830, 127, 832, 0, 130, 130, 836, 130, 838, 0, 131, 131, 842, 131, 844, 0, 132, 132, 848, 132, 850, 0, 133, 133, 854, 133, 856, 0, 134, 134, 860, 134, 862, 0, 135, 135, 866, 135, 868, 0, 136, 136, 872, 136, 874, 0, 145, 145, 878, 145, 880, 0, 146, 146, 884, 146, 886, 0, 147, 147, 890, 147, 892, 0, 148, 148, 896, 148, 898, 0, 149, 149, 902, 149, 904, 0, 157, 157, 908, 0, 160, 160, 912, 160, 914, 0, 160, 160, 918, 0, 161, 161, 922, 161, 924, 0, 161, 161, 928, 0, 162, 162, 932, 162, 934, 0, 162, 162, 938, 0, 163, 163, 942, 163, 944, 0, 163, 163, 948, 0, 170, 170, 952, 170, 954, 0, 170, 170, 958, 0, 173, 173, 962, 173, 964, 0, 173, 173, 968, 0, 178, 178, 972, 178, 974, 0, 178, 178, 978, 0, 179, 179, 982, 179, 984, 0, 179, 179, 988, 0, 180, 180, 992, 180, 994, 0, 180, 180, 998, 0, 185, 185, 1002, 185, 1004, 0, 185, 185, 1008, 0, 186, 186, 1012, 186, 1014, 0, 186, 186, 1018, 0, 188, 188, 1022, 188, 1024, 0, 188, 188, 1028, 0, 191, 191, 1032, 207, 1034, 0, 192, 192, 1038, 0, 192, 192, 1042, 0, 193, 193, 1046, 0, 194, 194, 1050, 0, 195, 195, 1054, 0, 196, 196, 1058, 0, 197, 197, 1062, 0, 198, 198, 1066, 0, 199, 199, 1070, 0, 200, 200, 1074, 0, 201, 201, 1078, 0, 202, 202, 1082, 0, 203, 203, 1086, 0, 204, 204, 1090, 0, 205, 205, 1094, 0, 206, 206, 1098, 0, 1, 448, 2, 448, 1, 450, 3, 450, 1, 454, 4, 454, 1, 458, 5, 458, 1, 462, 6, 462, 1, 466, 7, 466, 1, 470, 8, 470, 1, 474, 9, 474, 1, 478, 10, 478, 1, 482, 11, 482, 1, 486, 12, 486, 1, 490, 13, 490, 1, 494, 14, 494, 1, 498, 15, 498, 1, 502, 16, 502, 1, 506, 17, 506, 1, 510, 18, 510, 1, 514, 19, 514, 1, 518, 20, 518, 1, 522, 21, 522, 1, 526, 22, 526, 1, 530, 24, 530, 1, 534, 25, 534, 1, 538, 27, 538, 1, 542, 28, 542, 1, 546, 30, 546, 1, 550, 32, 550, 1, 554, 34, 554, 1, 558, 36, 558, 1, 562, 37, 562, 1, 566, 38, 566, 1, 570, 39, 570, 1, 574, 40, 574, 44, 43, 1233, 44, 1233, 45, 43, 1238, 45, 1238, 46, 43, 1243, 46, 1243, 47, 43, 1248, 47, 1248, 43, 618, 48, 618, 51, 43, 1257, 51, 1257, 53, 43, 1262, 53, 1262, 43, 624, 55, 624, 43, 630, 56, 630, 43, 636, 57, 636, 43, 642, 58, 642, 62, 43, 1283, 62, 1283, 43, 648, 63, 648, 43, 654, 64, 654, 43, 660, 65, 660, 43, 666, 66, 666, 43, 672, 67, 672, 71, 70, 1308, 71, 1308, 72, 70, 1313, 72, 1313, 73, 70, 1318, 73, 1318, 74, 70, 1323, 74, 1323, 70, 678, 75, 678, 77, 70, 1332, 77, 1332, 70, 684, 78, 684, 80, 70, 1341, 80, 1341, 70, 690, 81, 690, 83, 70, 1350, 83, 1350, 84, 70, 1355, 84, 1355, 70, 696, 85, 696, 87, 70, 1364, 87, 1364, 70, 702, 88, 702, 90, 70, 1373, 90, 1373, 70, 708, 91, 708, 70, 714, 92, 714, 70, 720, 93, 720, 70, 726, 94, 726, 70, 732, 95, 732, 70, 738, 96, 738, 70, 744, 98, 744, 102, 101, 1406, 102, 1406, 103, 101, 1411, 103, 1411, 104, 101, 1416, 104, 1416, 105, 101, 1421, 105, 1421, 106, 101, 1426, 106, 1426, 107, 101, 1431, 107, 1431, 101, 750, 110, 101, 1438, 110, 1438, 101, 760, 101, 770, 101, 780, 101, 790, 101, 800, 101, 810, 101, 820, 120, 119, 1457, 120, 1457, 121, 119, 1462, 121, 1462, 122, 119, 1467, 122, 1467, 123, 119, 1472, 123, 1472, 124, 119, 1477, 124, 1477, 125, 119, 1482, 125, 1482, 126, 119, 1487, 126, 1487, 119, 830, 127, 830, 129, 119, 1496, 129, 1496, 119, 836, 130, 836, 119, 842, 131, 842, 119, 848, 132, 848, 119, 854, 133, 854, 119, 860, 134, 860, 119, 866, 135, 866, 119, 872, 136, 872, 140, 139, 1529, 140, 1529, 141, 139, 1534, 141, 1534, 142, 139, 1539, 142, 1539, 143, 139, 1544, 143, 1544, 144, 139, 1549, 144, 1549, 139, 878, 145, 878, 139, 884, 146, 884, 139, 890, 147, 890, 139, 896, 148, 896, 139, 902, 149, 902, 153, 152, 1574, 153, 1574, 154, 152, 1579, 154, 1579, 155, 152, 1584, 155, 1584, 156, 152, 1589, 156, 1589, 152, 154, 159, 152, 1596, 159, 1596, 152, 912, 152, 922, 152, 932, 152, 942, 166, 165, 1609, 166, 1609, 167, 165, 1614, 167, 1614, 168, 165, 1619, 168, 1619, 169, 165, 1624, 169, 1624, 165, 952, 172, 165, 1631, 172, 1631, 165, 962, 176, 165, 1638, 176, 1638, 165, 972, 165, 982, 165, 992, 184, 165, 1649, 184, 1649, 165, 1002, 165, 1012, 165, 1022, 190, 1032, 191, 1032, 190, 1038, 192, 1038, 190, 1046, 193, 1046, 193, 1046, 190, 1050, 194, 1050, 194, 1050, 190, 1054, 195, 1054, 195, 1054, 190, 1058, 196, 1058, 196, 1058, 190, 1062, 197, 1062, 197, 1062, 190, 1066, 198, 1066, 198, 1066, 190, 1070, 199, 1070, 199, 1070, 190, 1074, 200, 1074, 200, 1074, 190, 1078, 201, 1078, 201, 1078, 190, 1082, 202, 1082, 202, 1082, 190, 1086, 203, 1086, 203, 1086, 190, 1090, 204, 1090, 204, 1090, 190, 1094, 205, 1094, 205, 1094, 190, 1098, 206, 1098, 206, 1098, 190, 1034, 207, 1034, 1, 229, 43, 119, 355, 70, 1760, 355, 70, 1763, 165, 47, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23, 23, 26, 26, 26, 29, 29, 31, 31, 33, 35, 41, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 49, 49, 49, 50, 50, 52, 52, 54, 54, 59, 59, 60, 60, 60, 60, 61, 68, 69, 70, 70, 70, 70, 70, 70, 70, 70, 70, 76, 76, 79, 79, 82, 82, 82, 86, 86, 89, 89, 99, 100, 101, 101, 109, 119, 119, 119, 128, 137, 138, 139, 139, 150, 151, 152, 152, 158, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 171, 171, 174, 174, 175, 175, 177, 177, 181, 181, 182, 182, 182, 182, 183, 187, 190, 190, 208, 209, 60, 182];
expr_arg2 = [0, 0, 81, 0, 84, 84, 86, 0, 0, 0, 60, 82, 0, 0, 0, 79, 83, 0, 0, 0, 80, 84, 0, 0, 0, 80, 0, 80, 93, 0, 0, 60, 119, 0, 0, 80, 121, 0, 0, 60, 0, 79, 0, 80, 0, 340, 344, 0, 0, 0, 342, 346, 0, 0, 0, 342, 379, 0, 0, 342, 0, 340, 381, 0, 0, 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 83, 120, 0, 0, 0, 0, 0, 84, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 344, 0, 0, 0, 346, 0, 0, 0, 0, 0, 164, 0, 0, 5, 0, 0, 309, 153, 0, 24, 41, 163, 23, 163, 22, 163, 44, 163, 46, 163, 47, 163, 49, 163, 53, 163, 22, 163, 44, 163, 56, 163, 25, 163, 26, 163, 27, 163, 28, 163, 29, 163, 30, 163, 31, 163, 32, 163, 33, 163, 34, 163, 35, 163, 36, 163, 37, 163, 38, 163, 39, 163, 43, 163, 46, 163, 47, 163, 59, 163, 0, 41, 41, 225, 40, 225, 51, 225, 55, 225, 57, 225, 58, 225, 0, 33, 238, 238, 238, 238, 238, 0, 84, 60, 246, 86, 246, 85, 246, 94, 246, 89, 246, 91, 246, 246, 86, 246, 93, 246, 0, 95, 60, 265, 96, 265, 0, 148, 99, 271, 149, 271, 151, 271, 145, 271, 155, 271, 158, 271, 159, 271, 161, 271, 164, 271, 165, 271, 146, 271, 167, 271, 147, 271, 168, 271, 148, 271, 149, 271, 169, 271, 158, 271, 159, 271, 166, 271, 164, 271, 165, 271, 172, 271, 158, 271, 159, 271, 166, 271, 0, 100, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 0, 152, 99, 353, 162, 353, 0, 100, 358, 358, 0, 99, 362, 362, 362, 362, 362, 362, 362, 362, 362, 0, 197, 118, 374, 206, 374, 198, 374, 207, 374, 199, 374, 208, 374, 200, 374, 209, 374, 201, 374, 202, 374, 211, 374, 0, 310, 164, 398, 317, 398, 311, 398, 318, 398, 312, 398, 319, 398, 0, 343, 181, 412, 347, 412, 345, 412, 350, 412, 0, 182, 421, 421, 421, 421, 353, 421, 349, 421, 345, 421, 350, 421, 355, 421, 0, 357, 182, 438, 356, 438, 0, 187, 443, 443, 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, 32, 0, 0, 0, 34, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 41, 8, 0, 0, 41, 8, 0, 0, 41, 8, 0, 0, 41, 8, 0, 0, 41, 8, 0, 0, 41, 8, 0, 0, 41, 8, 0, 0, 41, 8, 0, 0, 41, 8, 0, 0, 41, 8, 0, 0, 68, 0, 0, 8, 0, 0, 68, 0, 0, 8, 0, 0, 68, 0, 0, 8, 0, 0, 68, 0, 0, 8, 0, 0, 68, 0, 0, 8, 0, 0, 68, 0, 0, 8, 0, 0, 68, 0, 0, 8, 0, 0, 68, 0, 0, 8, 0, 0, 68, 0, 0, 8, 0, 0, 68, 0, 0, 8, 0, 0, 99, 0, 0, 8, 0, 0, 99, 0, 0, 8, 0, 0, 99, 0, 0, 8, 0, 0, 99, 0, 0, 8, 0, 0, 99, 0, 0, 8, 0, 0, 99, 0, 0, 8, 0, 0, 99, 0, 0, 8, 0, 0, 99, 0, 0, 8, 0, 0, 99, 0, 0, 8, 0, 0, 99, 0, 0, 8, 0, 0, 99, 0, 0, 8, 0, 0, 99, 0, 0, 8, 0, 0, 118, 0, 0, 5, 0, 0, 118, 8, 0, 0, 118, 0, 0, 5, 0, 0, 118, 8, 0, 0, 118, 0, 0, 5, 0, 0, 118, 8, 0, 0, 118, 0, 0, 5, 0, 0, 118, 8, 0, 0, 118, 0, 0, 5, 0, 0, 118, 8, 0, 0, 118, 0, 0, 5, 0, 0, 118, 8, 0, 0, 118, 0, 0, 5, 0, 0, 118, 8, 0, 0, 118, 0, 0, 5, 0, 0, 118, 8, 0, 0, 137, 0, 0, 8, 0, 0, 137, 0, 0, 8, 0, 0, 137, 0, 0, 8, 0, 0, 137, 0, 0, 8, 0, 0, 137, 0, 0, 8, 0, 0, 137, 0, 0, 8, 0, 0, 137, 0, 0, 8, 0, 0, 137, 0, 0, 8, 0, 0, 150, 0, 0, 8, 0, 0, 150, 0, 0, 8, 0, 0, 150, 0, 0, 8, 0, 0, 150, 0, 0, 8, 0, 0, 150, 0, 0, 8, 0, 0, 164, 8, 0, 0, 164, 0, 0, 5, 0, 0, 164, 8, 0, 0, 164, 0, 0, 5, 0, 0, 164, 8, 0, 0, 164, 0, 0, 5, 0, 0, 164, 8, 0, 0, 164, 0, 0, 5, 0, 0, 164, 8, 0, 0, 189, 0, 0, 5, 0, 0, 189, 8, 0, 0, 189, 0, 0, 5, 0, 0, 189, 8, 0, 0, 189, 0, 0, 5, 0, 0, 189, 8, 0, 0, 189, 0, 0, 5, 0, 0, 189, 8, 0, 0, 189, 0, 0, 5, 0, 0, 189, 8, 0, 0, 189, 0, 0, 5, 0, 0, 189, 8, 0, 0, 189, 0, 0, 5, 0, 0, 189, 8, 0, 0, 189, 0, 0, 5, 0, 0, 189, 8, 0, 0, 207, 0, 0, 0, 0, 0, 207, 0, 0, 0, 208, 8, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 207, 0, 0, 0, 2, 1101, 41, 1103, 3, 1105, 41, 1107, 4, 1109, 41, 1111, 5, 1113, 41, 1115, 6, 1117, 41, 1119, 7, 1121, 41, 1123, 8, 1125, 41, 1127, 9, 1129, 41, 1131, 10, 1133, 41, 1135, 11, 1137, 41, 1139, 12, 1141, 41, 1143, 13, 1145, 41, 1147, 14, 1149, 41, 1151, 15, 1153, 41, 1155, 16, 1157, 41, 1159, 17, 1161, 41, 1163, 18, 1165, 41, 1167, 19, 1169, 41, 1171, 20, 1173, 41, 1175, 21, 1177, 41, 1179, 22, 1181, 41, 1183, 24, 1185, 41, 1187, 25, 1189, 41, 1191, 27, 1193, 41, 1195, 28, 1197, 41, 1199, 30, 1201, 41, 1203, 32, 1205, 41, 1207, 34, 1209, 41, 1211, 36, 1213, 41, 1215, 37, 1217, 41, 1219, 38, 1221, 41, 1223, 39, 1225, 41, 1227, 40, 1229, 41, 1231, 0, 44, 1234, 68, 1236, 0, 45, 1239, 68, 1241, 0, 46, 1244, 68, 1246, 0, 47, 1249, 68, 1251, 48, 1253, 68, 1255, 0, 51, 1258, 68, 1260, 0, 53, 1263, 68, 1265, 55, 1267, 68, 1269, 56, 1271, 68, 1273, 57, 1275, 68, 1277, 58, 1279, 68, 1281, 0, 62, 1284, 68, 1286, 63, 1288, 68, 1290, 64, 1292, 68, 1294, 65, 1296, 68, 1298, 66, 1300, 68, 1302, 67, 1304, 68, 1306, 0, 71, 1309, 99, 1311, 0, 72, 1314, 99, 1316, 0, 73, 1319, 99, 1321, 0, 74, 1324, 99, 1326, 75, 1328, 99, 1330, 0, 77, 1333, 99, 1335, 78, 1337, 99, 1339, 0, 80, 1342, 99, 1344, 81, 1346, 99, 1348, 0, 83, 1351, 99, 1353, 0, 84, 1356, 99, 1358, 85, 1360, 99, 1362, 0, 87, 1365, 99, 1367, 88, 1369, 99, 1371, 0, 90, 1374, 99, 1376, 91, 1378, 99, 1380, 92, 1382, 99, 1384, 93, 1386, 99, 1388, 94, 1390, 99, 1392, 95, 1394, 99, 1396, 96, 1398, 99, 1400, 98, 1402, 99, 1404, 0, 102, 1407, 118, 1409, 0, 103, 1412, 118, 1414, 0, 104, 1417, 118, 1419, 0, 105, 1422, 118, 1424, 0, 106, 1427, 118, 1429, 0, 107, 1432, 118, 1434, 108, 1436, 0, 110, 1439, 118, 1441, 111, 1443, 112, 1445, 113, 1447, 114, 1449, 115, 1451, 116, 1453, 117, 1455, 0, 120, 1458, 137, 1460, 0, 121, 1463, 137, 1465, 0, 122, 1468, 137, 1470, 0, 123, 1473, 137, 1475, 0, 124, 1478, 137, 1480, 0, 125, 1483, 137, 1485, 0, 126, 1488, 137, 1490, 127, 1492, 137, 1494, 0, 129, 1497, 137, 1499, 130, 1501, 137, 1503, 131, 1505, 137, 1507, 132, 1509, 137, 1511, 133, 1513, 137, 1515, 134, 1517, 137, 1519, 135, 1521, 137, 1523, 136, 1525, 137, 1527, 0, 140, 1530, 150, 1532, 0, 141, 1535, 150, 1537, 0, 142, 1540, 150, 1542, 0, 143, 1545, 150, 1547, 0, 144, 1550, 150, 1552, 145, 1554, 150, 1556, 146, 1558, 150, 1560, 147, 1562, 150, 1564, 148, 1566, 150, 1568, 149, 1570, 150, 1572, 0, 153, 1575, 164, 1577, 0, 154, 1580, 164, 1582, 0, 155, 1585, 164, 1587, 0, 156, 1590, 164, 1592, 157, 1594, 0, 159, 1597, 164, 1599, 160, 1601, 161, 1603, 162, 1605, 163, 1607, 0, 166, 1610, 189, 1612, 0, 167, 1615, 189, 1617, 0, 168, 1620, 189, 1622, 0, 169, 1625, 189, 1627, 170, 1629, 0, 172, 1632, 189, 1634, 173, 1636, 0, 176, 1639, 189, 1641, 178, 1643, 179, 1645, 180, 1647, 0, 184, 1650, 189, 1652, 185, 1654, 186, 1656, 188, 1658, 191, 1660, 208, 1662, 192, 1664, 208, 1666, 193, 1668, 208, 1670, 208, 1672, 194, 1674, 208, 1676, 208, 1678, 195, 1680, 208, 1682, 208, 1684, 196, 1686, 208, 1688, 208, 1690, 197, 1692, 208, 1694, 208, 1696, 198, 1698, 208, 1700, 208, 1702, 199, 1704, 208, 1706, 208, 1708, 200, 1710, 208, 1712, 208, 1714, 201, 1716, 208, 1718, 208, 1720, 202, 1722, 208, 1724, 208, 1726, 203, 1728, 208, 1730, 208, 1732, 204, 1734, 208, 1736, 208, 1738, 205, 1740, 208, 1742, 208, 1744, 206, 1746, 208, 1748, 208, 1750, 207, 1752, 208, 1754, 33, 1756, 68, 1758, 154, 99, 1761, 170, 99, 1764, 189, 1766, 1, 23, 26, 42, 23, 26, 29, 31, 33, 33, 35, 41, 41, 41, 42, 29, 41, 42, 33, 41, 33, 41, 41, 41, 42, 41, 49, 50, 52, 54, 59, 60, 61, 68, 69, 59, 60, 68, 60, 68, 60, 68, 60, 68, 60, 68, 59, 61, 68, 69, 69, 69, 68, 76, 79, 82, 86, 89, 99, 99, 100, 100, 79, 99, 99, 100, 86, 99, 100, 89, 99, 99, 100, 100, 99, 109, 118, 118, 128, 137, 138, 137, 138, 137, 150, 151, 151, 150, 158, 164, 164, 171, 174, 175, 177, 181, 181, 182, 183, 187, 189, 181, 182, 181, 182, 182, 189, 182, 189, 182, 189, 181, 183, 187, 189, 189, 189, 208, 209, 209, 208, 54, 177];
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, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 17, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 10, 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, 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, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 3, 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, 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, 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, 1, 0, 0, 0, 0, 0, 3, 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, 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, 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, 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, 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, 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, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 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, 1, 0, 1, 0, 1, 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, 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, 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, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 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, 1, 0, 1, 0, 0, 1, 0, 1, 0, 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, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 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, 11, 0, 8, 0, 0, 15, 0, 0, 16, 0, 11, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 9, 2, 2, 11, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, -1, 1, 1, 1, 1, 1, 6, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, -1, 1, 1, 1, 0, 1, -1, 1, 1, 1, 1, 1, 1, 12, 1, 15, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, -1, 1, 1, 3, 1, 1, 1, 1, 1, -1, 1, 1, 1, -1, 1, 1, 3, 1, 1, 1, 1, 1, 5, 8, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 0, 1, 1, 1, 1, -1, -2, -2];
expr_children = [{}, {}, {}, 2..3, {}, {}, {}, {}, 5..8, {}, {}, {}, {}, {}, 11..14, {}, {}, {}, {}, 16..19, {}, {}, {}, {}, 21..24, {}, 7..8 union 23..23 union 26..26, {}, {}, {}, 23..23 union 28..30, {}, {}, {}, 13..13 union 32..34, {}, {}, {}, 23..23 union 36..38, {}, 13..13 union 40..40, {}, 18..18 union 42..42, {}, 23..23 union 44..44, {}, {}, {}, {}, 46..49, {}, {}, {}, {}, 51..54, {}, {}, {}, 53..53 union 56..58, {}, 53..53 union 60..60, {}, {}, {}, 48..48 union 62..64, {}, 48..48 union 66..66, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 32..34, 12..12 union 14..14, 40..40 union 104..105, 17..17 union 19..19, 42..42 union 107..107, 7..8 union 26..26, 28..30, 36..38, 22..22 union 24..24, 44..44 union 109..112, {}, 13..13 union 33..34 union 114..114, 12..13, 115..116, {}, {}, {}, 18..18 union 118..120, 17..18, 121..122, 5..5 union 7..8 union 23..23, {}, 23..23 union 29..30 union 125..125, {}, 23..23 union 37..38 union 127..127, 22..23, 124..124 union 126..126 union 128..129, 7..7 union 23..23 union 26..26, 5..7, 131..132, 23..23 union 28..29, 13..13 union 32..33, 23..23 union 36..37, 62..64, 47..47 union 49..49, 66..66 union 137..138, 56..58, 52..52 union 54..54, 60..60 union 140..141, {}, 48..48 union 63..64 union 143..143, 47..48, 144..145, {}, 53..53 union 57..58 union 147..147, 52..53, 148..149, 53..53 union 56..57, 48..48 union 62..63, {}, {}, {}, {}, {}, 153..153 union 155..155 union 157..157, {}, {}, 158..158 union 160..160, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 164..164 union 166..166 union 168..168 union 170..170 union 172..172 union 174..174 union 176..176 union 178..178 union 180..180 union 182..182 union 184..184 union 186..186 union 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, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 226..226 union 228..228 union 230..230 union 232..232 union 234..234 union 236..236, {}, {}, {}, {}, {}, {}, 239..243, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 247..247 union 249..249 union 251..251 union 253..253 union 255..255 union 257..258 union 260..260 union 262..262, {}, {}, {}, {}, {}, 266..266 union 268..268, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 272..272 union 274..274 union 276..276 union 278..278 union 280..280 union 282..282 union 284..284 union 286..286 union 288..288 union 290..290 union 292..292 union 294..294 union 296..296 union 298..298 union 300..300 union 302..302 union 304..304 union 306..306 union 308..308 union 310..310 union 312..312 union 314..314 union 316..316 union 318..318 union 320..320 union 322..322, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 325..350, {}, {}, {}, {}, {}, 354..354 union 356..356, {}, {}, {}, 359..360, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 363..371, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 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, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 399..399 union 401..401 union 403..403 union 405..405 union 407..407 union 409..409, {}, {}, {}, {}, {}, {}, {}, {}, {}, 413..413 union 415..415 union 417..417 union 419..419, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 422..425 union 427..427 union 429..429 union 431..431 union 433..433 union 435..435, {}, {}, {}, {}, {}, 439..439 union 441..441, {}, {}, {}, 444..445, {}, {}, {}, {}, {}, 447..447 union 449..449 union 451..451, {}, {}, {}, 449..449 union 453..453 union 455..455, {}, {}, {}, 449..449 union 457..457 union 459..459, {}, {}, {}, 449..449 union 461..461 union 463..463, {}, {}, {}, 449..449 union 465..465 union 467..467, {}, {}, {}, 449..449 union 469..469 union 471..471, {}, {}, {}, 449..449 union 473..473 union 475..475, {}, {}, {}, 449..449 union 477..477 union 479..479, {}, {}, {}, 449..449 union 481..481 union 483..483, {}, {}, {}, 449..449 union 485..485 union 487..487, {}, {}, {}, 449..449 union 489..489 union 491..491, {}, {}, {}, 449..449 union 493..493 union 495..495, {}, {}, {}, 449..449 union 497..497 union 499..499, {}, {}, {}, 449..449 union 501..501 union 503..503, {}, {}, {}, 449..449 union 505..505 union 507..507, {}, {}, {}, 449..449 union 509..509 union 511..511, {}, {}, {}, 449..449 union 513..513 union 515..515, {}, {}, {}, 449..449 union 517..517 union 519..519, {}, {}, {}, 449..449 union 521..521 union 523..523, {}, {}, {}, 449..449 union 525..525 union 527..527, {}, {}, {}, 449..449 union 529..529 union 531..531, {}, {}, {}, 449..449 union 533..533 union 535..535, {}, {}, {}, 449..449 union 537..537 union 539..539, {}, {}, {}, 449..449 union 541..541 union 543..543, {}, {}, {}, 449..449 union 545..545 union 547..547, {}, {}, {}, 449..449 union 549..549 union 551..551, {}, {}, {}, 449..449 union 553..553 union 555..555, {}, {}, {}, 449..449 union 557..557 union 559..559, {}, {}, {}, 449..449 union 561..561 union 563..563, {}, {}, {}, 449..449 union 565..565 union 567..567, {}, {}, {}, 449..449 union 569..569 union 571..571, {}, {}, {}, 449..449 union 573..573 union 575..575, {}, {}, {}, 523..523 union 577..577 union 579..579, {}, {}, {}, 527..527 union 581..581 union 583..583, {}, {}, {}, 535..535 union 585..585 union 587..587, {}, {}, {}, 543..543 union 589..589 union 591..591, {}, {}, {}, 551..551 union 593..593 union 595..595, {}, {}, {}, 559..559 union 597..597 union 599..599, {}, {}, {}, 563..563 union 601..601 union 603..603, {}, {}, {}, 567..567 union 605..605 union 607..607, {}, {}, {}, 571..571 union 609..609 union 611..611, {}, {}, {}, 575..575 union 613..613 union 615..615, {}, {}, {}, {}, {}, 617..617 union 619..619 union 621..621, {}, {}, {}, {}, {}, 623..623 union 625..625 union 627..627, {}, {}, {}, {}, {}, 629..629 union 631..631 union 633..633, {}, {}, {}, {}, {}, 635..635 union 637..637 union 639..639, {}, {}, {}, {}, {}, 641..641 union 643..643 union 645..645, {}, {}, {}, {}, {}, 647..647 union 649..649 union 651..651, {}, {}, {}, {}, {}, 653..653 union 655..655 union 657..657, {}, {}, {}, {}, {}, 659..659 union 661..661 union 663..663, {}, {}, {}, {}, {}, 665..665 union 667..667 union 669..669, {}, {}, {}, {}, {}, 671..671 union 673..673 union 675..675, {}, {}, {}, {}, {}, 677..677 union 679..679 union 681..681, {}, {}, {}, {}, {}, 683..683 union 685..685 union 687..687, {}, {}, {}, {}, {}, 689..689 union 691..691 union 693..693, {}, {}, {}, {}, {}, 695..695 union 697..697 union 699..699, {}, {}, {}, {}, {}, 701..701 union 703..703 union 705..705, {}, {}, {}, {}, {}, 707..707 union 709..709 union 711..711, {}, {}, {}, {}, {}, 713..713 union 715..715 union 717..717, {}, {}, {}, {}, {}, 719..719 union 721..721 union 723..723, {}, {}, {}, {}, {}, 725..725 union 727..727 union 729..729, {}, {}, {}, {}, {}, 731..731 union 733..733 union 735..735, {}, {}, {}, {}, {}, 737..737 union 739..739 union 741..741, {}, {}, {}, {}, {}, 743..743 union 745..745 union 747..747, {}, {}, {}, {}, {}, 749..749 union 751..751 union 753..753, {}, {}, {}, 751..751 union 755..755 union 757..757, {}, {}, {}, {}, {}, 759..759 union 761..761 union 763..763, {}, {}, {}, 761..761 union 765..765 union 767..767, {}, {}, {}, {}, {}, 769..769 union 771..771 union 773..773, {}, {}, {}, 771..771 union 775..775 union 777..777, {}, {}, {}, {}, {}, 779..779 union 781..781 union 783..783, {}, {}, {}, 781..781 union 785..785 union 787..787, {}, {}, {}, {}, {}, 789..789 union 791..791 union 793..793, {}, {}, {}, 791..791 union 795..795 union 797..797, {}, {}, {}, {}, {}, 799..799 union 801..801 union 803..803, {}, {}, {}, 801..801 union 805..805 union 807..807, {}, {}, {}, {}, {}, 809..809 union 811..811 union 813..813, {}, {}, {}, 811..811 union 815..815 union 817..817, {}, {}, {}, {}, {}, 819..819 union 821..821 union 823..823, {}, {}, {}, 821..821 union 825..825 union 827..827, {}, {}, {}, {}, {}, 829..829 union 831..831 union 833..833, {}, {}, {}, {}, {}, 835..835 union 837..837 union 839..839, {}, {}, {}, {}, {}, 841..841 union 843..843 union 845..845, {}, {}, {}, {}, {}, 847..847 union 849..849 union 851..851, {}, {}, {}, {}, {}, 853..853 union 855..855 union 857..857, {}, {}, {}, {}, {}, 859..859 union 861..861 union 863..863, {}, {}, {}, {}, {}, 865..865 union 867..867 union 869..869, {}, {}, {}, {}, {}, 871..871 union 873..873 union 875..875, {}, {}, {}, {}, {}, 877..877 union 879..879 union 881..881, {}, {}, {}, {}, {}, 883..883 union 885..885 union 887..887, {}, {}, {}, {}, {}, 889..889 union 891..891 union 893..893, {}, {}, {}, {}, {}, 895..895 union 897..897 union 899..899, {}, {}, {}, {}, {}, 901..901 union 903..903 union 905..905, {}, {}, {}, 155..155 union 907..907 union 909..909, {}, {}, {}, {}, {}, 911..911 union 913..913 union 915..915, {}, {}, {}, 913..913 union 917..917 union 919..919, {}, {}, {}, {}, {}, 921..921 union 923..923 union 925..925, {}, {}, {}, 923..923 union 927..927 union 929..929, {}, {}, {}, {}, {}, 931..931 union 933..933 union 935..935, {}, {}, {}, 933..933 union 937..937 union 939..939, {}, {}, {}, {}, {}, 941..941 union 943..943 union 945..945, {}, {}, {}, 943..943 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, {}, {}, {}, 1013..1013 union 1017..1017 union 1019..1019, {}, {}, {}, {}, {}, 1021..1021 union 1023..1023 union 1025..1025, {}, {}, {}, 1023..1023 union 1027..1027 union 1029..1029, {}, {}, {}, {}, {}, 1031..1031 union 1033..1033 union 1035..1035, {}, {}, {}, 1035..1035 union 1037..1037 union 1039..1039, {}, {}, {}, 1039..1039 union 1041..1041 union 1043..1043, {}, {}, {}, 1035..1035 union 1045..1045 union 1047..1047, {}, {}, {}, 1035..1035 union 1049..1049 union 1051..1051, {}, {}, {}, 1035..1035 union 1053..1053 union 1055..1055, {}, {}, {}, 1035..1035 union 1057..1057 union 1059..1059, {}, {}, {}, 1035..1035 union 1061..1061 union 1063..1063, {}, {}, {}, 1035..1035 union 1065..1065 union 1067..1067, {}, {}, {}, 1035..1035 union 1069..1069 union 1071..1071, {}, {}, {}, 1035..1035 union 1073..1073 union 1075..1075, {}, {}, {}, 1035..1035 union 1077..1077 union 1079..1079, {}, {}, {}, 1035..1035 union 1081..1081 union 1083..1083, {}, {}, {}, 1035..1035 union 1085..1085 union 1087..1087, {}, {}, {}, 1035..1035 union 1089..1089 union 1091..1091, {}, {}, {}, 1035..1035 union 1093..1093 union 1095..1095, {}, {}, {}, 1035..1035 union 1097..1097 union 1099..1099, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}];
sets = [60..60 union 82..82 union 119..119, 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 union 83..83 union 120..120, 80..80 union 84..84 union 86..86 union 93..93 union 121..121, 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, 338..338, 339..339, 340..340 union 344..344 union 381..381, 342..342 union 346..346 union 379..379];