/*-------------------------------------------------------------------- * Symbols referenced in this file: * - parser_init * - base_yyparse * - SystemTypeName * - SystemFuncName * - yypact * - yytranslate * - yycheck * - yytable * - yydefact * - yyr2 * - makeRawStmt * - updateRawStmtEnd * - makeParamRef * - makeAConst * - makeStringConstCast * - makeIntConst * - processCASbits * - makeRangeVarFromAnyName * - SplitColQualList * - parsePartitionStrategy * - doNegateFloat * - makeRoleSpec * - mergeTableFuncParameters * - TableFuncTypeName * - extractArgTypes * - check_func_name * - makeOrderedSetArgs * - extractAggrArgTypes * - preprocess_pubobj_list * - makeRangeVarFromQualifiedName * - check_qualified_name * - makeRecursiveViewSelect * - check_indirection * - insertSelectOptions * - makeSetOp * - makeBoolAConst * - makeNullAConst * - doNegate * - makeFloatConst * - makeTypeCast * - makeAndExpr * - makeOrExpr * - makeNotExpr * - makeXmlExpr * - makeSQLValueFunction * - makeAArrayExpr * - makeColumnRef * - makeBitStringConst * - makeParamRefCast * - yyr1 * - yypgoto * - yydefgoto * - base_yyerror * - yydestruct * - yystos *-------------------------------------------------------------------- */ /* A Bison parser, made by GNU Bison 2.3. */ /* Skeleton implementation for Bison's Yacc-like parsers in C Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ #define YYBISON_VERSION "2.3" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 1 /* Using locations. */ #define YYLSP_NEEDED 1 /* Substitute the variable and function names. */ #define yyparse base_yyparse #define yylex base_yylex #define yyerror base_yyerror #define yylval base_yylval #define yychar base_yychar #define yydebug base_yydebug #define yynerrs base_yynerrs #define yylloc base_yylloc /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { IDENT = 258, UIDENT = 259, FCONST = 260, SCONST = 261, USCONST = 262, BCONST = 263, XCONST = 264, Op = 265, ICONST = 266, PARAM = 267, TYPECAST = 268, DOT_DOT = 269, COLON_EQUALS = 270, EQUALS_GREATER = 271, LESS_EQUALS = 272, GREATER_EQUALS = 273, NOT_EQUALS = 274, SQL_COMMENT = 275, C_COMMENT = 276, ABORT_P = 277, ABSENT = 278, ABSOLUTE_P = 279, ACCESS = 280, ACTION = 281, ADD_P = 282, ADMIN = 283, AFTER = 284, AGGREGATE = 285, ALL = 286, ALSO = 287, ALTER = 288, ALWAYS = 289, ANALYSE = 290, ANALYZE = 291, AND = 292, ANY = 293, ARRAY = 294, AS = 295, ASC = 296, ASENSITIVE = 297, ASSERTION = 298, ASSIGNMENT = 299, ASYMMETRIC = 300, ATOMIC = 301, AT = 302, ATTACH = 303, ATTRIBUTE = 304, AUTHORIZATION = 305, BACKWARD = 306, BEFORE = 307, BEGIN_P = 308, BETWEEN = 309, BIGINT = 310, BINARY = 311, BIT = 312, BOOLEAN_P = 313, BOTH = 314, BREADTH = 315, BY = 316, CACHE = 317, CALL = 318, CALLED = 319, CASCADE = 320, CASCADED = 321, CASE = 322, CAST = 323, CATALOG_P = 324, CHAIN = 325, CHAR_P = 326, CHARACTER = 327, CHARACTERISTICS = 328, CHECK = 329, CHECKPOINT = 330, CLASS = 331, CLOSE = 332, CLUSTER = 333, COALESCE = 334, COLLATE = 335, COLLATION = 336, COLUMN = 337, COLUMNS = 338, COMMENT = 339, COMMENTS = 340, COMMIT = 341, COMMITTED = 342, COMPRESSION = 343, CONCURRENTLY = 344, CONDITIONAL = 345, CONFIGURATION = 346, CONFLICT = 347, CONNECTION = 348, CONSTRAINT = 349, CONSTRAINTS = 350, CONTENT_P = 351, CONTINUE_P = 352, CONVERSION_P = 353, COPY = 354, COST = 355, CREATE = 356, CROSS = 357, CSV = 358, CUBE = 359, CURRENT_P = 360, CURRENT_CATALOG = 361, CURRENT_DATE = 362, CURRENT_ROLE = 363, CURRENT_SCHEMA = 364, CURRENT_TIME = 365, CURRENT_TIMESTAMP = 366, CURRENT_USER = 367, CURSOR = 368, CYCLE = 369, DATA_P = 370, DATABASE = 371, DAY_P = 372, DEALLOCATE = 373, DEC = 374, DECIMAL_P = 375, DECLARE = 376, DEFAULT = 377, DEFAULTS = 378, DEFERRABLE = 379, DEFERRED = 380, DEFINER = 381, DELETE_P = 382, DELIMITER = 383, DELIMITERS = 384, DEPENDS = 385, DEPTH = 386, DESC = 387, DETACH = 388, DICTIONARY = 389, DISABLE_P = 390, DISCARD = 391, DISTINCT = 392, DO = 393, DOCUMENT_P = 394, DOMAIN_P = 395, DOUBLE_P = 396, DROP = 397, EACH = 398, ELSE = 399, EMPTY_P = 400, ENABLE_P = 401, ENCODING = 402, ENCRYPTED = 403, END_P = 404, ENUM_P = 405, ERROR_P = 406, ESCAPE = 407, EVENT = 408, EXCEPT = 409, EXCLUDE = 410, EXCLUDING = 411, EXCLUSIVE = 412, EXECUTE = 413, EXISTS = 414, EXPLAIN = 415, EXPRESSION = 416, EXTENSION = 417, EXTERNAL = 418, EXTRACT = 419, FALSE_P = 420, FAMILY = 421, FETCH = 422, FILTER = 423, FINALIZE = 424, FIRST_P = 425, FLOAT_P = 426, FOLLOWING = 427, FOR = 428, FORCE = 429, FOREIGN = 430, FORMAT = 431, FORWARD = 432, FREEZE = 433, FROM = 434, FULL = 435, FUNCTION = 436, FUNCTIONS = 437, GENERATED = 438, GLOBAL = 439, GRANT = 440, GRANTED = 441, GREATEST = 442, GROUP_P = 443, GROUPING = 444, GROUPS = 445, HANDLER = 446, HAVING = 447, HEADER_P = 448, HOLD = 449, HOUR_P = 450, IDENTITY_P = 451, IF_P = 452, ILIKE = 453, IMMEDIATE = 454, IMMUTABLE = 455, IMPLICIT_P = 456, IMPORT_P = 457, IN_P = 458, INCLUDE = 459, INCLUDING = 460, INCREMENT = 461, INDENT = 462, INDEX = 463, INDEXES = 464, INHERIT = 465, INHERITS = 466, INITIALLY = 467, INLINE_P = 468, INNER_P = 469, INOUT = 470, INPUT_P = 471, INSENSITIVE = 472, INSERT = 473, INSTEAD = 474, INT_P = 475, INTEGER = 476, INTERSECT = 477, INTERVAL = 478, INTO = 479, INVOKER = 480, IS = 481, ISNULL = 482, ISOLATION = 483, JOIN = 484, JSON = 485, JSON_ARRAY = 486, JSON_ARRAYAGG = 487, JSON_EXISTS = 488, JSON_OBJECT = 489, JSON_OBJECTAGG = 490, JSON_QUERY = 491, JSON_SCALAR = 492, JSON_SERIALIZE = 493, JSON_TABLE = 494, JSON_VALUE = 495, KEEP = 496, KEY = 497, KEYS = 498, LABEL = 499, LANGUAGE = 500, LARGE_P = 501, LAST_P = 502, LATERAL_P = 503, LEADING = 504, LEAKPROOF = 505, LEAST = 506, LEFT = 507, LEVEL = 508, LIKE = 509, LIMIT = 510, LISTEN = 511, LOAD = 512, LOCAL = 513, LOCALTIME = 514, LOCALTIMESTAMP = 515, LOCATION = 516, LOCK_P = 517, LOCKED = 518, LOGGED = 519, MAPPING = 520, MATCH = 521, MATCHED = 522, MATERIALIZED = 523, MAXVALUE = 524, MERGE = 525, MERGE_ACTION = 526, METHOD = 527, MINUTE_P = 528, MINVALUE = 529, MODE = 530, MONTH_P = 531, MOVE = 532, NAME_P = 533, NAMES = 534, NATIONAL = 535, NATURAL = 536, NCHAR = 537, NESTED = 538, NEW = 539, NEXT = 540, NFC = 541, NFD = 542, NFKC = 543, NFKD = 544, NO = 545, NONE = 546, NORMALIZE = 547, NORMALIZED = 548, NOT = 549, NOTHING = 550, NOTIFY = 551, NOTNULL = 552, NOWAIT = 553, NULL_P = 554, NULLIF = 555, NULLS_P = 556, NUMERIC = 557, OBJECT_P = 558, OF = 559, OFF = 560, OFFSET = 561, OIDS = 562, OLD = 563, OMIT = 564, ON = 565, ONLY = 566, OPERATOR = 567, OPTION = 568, OPTIONS = 569, OR = 570, ORDER = 571, ORDINALITY = 572, OTHERS = 573, OUT_P = 574, OUTER_P = 575, OVER = 576, OVERLAPS = 577, OVERLAY = 578, OVERRIDING = 579, OWNED = 580, OWNER = 581, PARALLEL = 582, PARAMETER = 583, PARSER = 584, PARTIAL = 585, PARTITION = 586, PASSING = 587, PASSWORD = 588, PATH = 589, PLACING = 590, PLAN = 591, PLANS = 592, POLICY = 593, POSITION = 594, PRECEDING = 595, PRECISION = 596, PRESERVE = 597, PREPARE = 598, PREPARED = 599, PRIMARY = 600, PRIOR = 601, PRIVILEGES = 602, PROCEDURAL = 603, PROCEDURE = 604, PROCEDURES = 605, PROGRAM = 606, PUBLICATION = 607, QUOTE = 608, QUOTES = 609, RANGE = 610, READ = 611, REAL = 612, REASSIGN = 613, RECHECK = 614, RECURSIVE = 615, REF_P = 616, REFERENCES = 617, REFERENCING = 618, REFRESH = 619, REINDEX = 620, RELATIVE_P = 621, RELEASE = 622, RENAME = 623, REPEATABLE = 624, REPLACE = 625, REPLICA = 626, RESET = 627, RESTART = 628, RESTRICT = 629, RETURN = 630, RETURNING = 631, RETURNS = 632, REVOKE = 633, RIGHT = 634, ROLE = 635, ROLLBACK = 636, ROLLUP = 637, ROUTINE = 638, ROUTINES = 639, ROW = 640, ROWS = 641, RULE = 642, SAVEPOINT = 643, SCALAR = 644, SCHEMA = 645, SCHEMAS = 646, SCROLL = 647, SEARCH = 648, SECOND_P = 649, SECURITY = 650, SELECT = 651, SEQUENCE = 652, SEQUENCES = 653, SERIALIZABLE = 654, SERVER = 655, SESSION = 656, SESSION_USER = 657, SET = 658, SETS = 659, SETOF = 660, SHARE = 661, SHOW = 662, SIMILAR = 663, SIMPLE = 664, SKIP = 665, SMALLINT = 666, SNAPSHOT = 667, SOME = 668, SOURCE = 669, SQL_P = 670, STABLE = 671, STANDALONE_P = 672, START = 673, STATEMENT = 674, STATISTICS = 675, STDIN = 676, STDOUT = 677, STORAGE = 678, STORED = 679, STRICT_P = 680, STRING_P = 681, STRIP_P = 682, SUBSCRIPTION = 683, SUBSTRING = 684, SUPPORT = 685, SYMMETRIC = 686, SYSID = 687, SYSTEM_P = 688, SYSTEM_USER = 689, TABLE = 690, TABLES = 691, TABLESAMPLE = 692, TABLESPACE = 693, TARGET = 694, TEMP = 695, TEMPLATE = 696, TEMPORARY = 697, TEXT_P = 698, THEN = 699, TIES = 700, TIME = 701, TIMESTAMP = 702, TO = 703, TRAILING = 704, TRANSACTION = 705, TRANSFORM = 706, TREAT = 707, TRIGGER = 708, TRIM = 709, TRUE_P = 710, TRUNCATE = 711, TRUSTED = 712, TYPE_P = 713, TYPES_P = 714, UESCAPE = 715, UNBOUNDED = 716, UNCONDITIONAL = 717, UNCOMMITTED = 718, UNENCRYPTED = 719, UNION = 720, UNIQUE = 721, UNKNOWN = 722, UNLISTEN = 723, UNLOGGED = 724, UNTIL = 725, UPDATE = 726, USER = 727, USING = 728, VACUUM = 729, VALID = 730, VALIDATE = 731, VALIDATOR = 732, VALUE_P = 733, VALUES = 734, VARCHAR = 735, VARIADIC = 736, VARYING = 737, VERBOSE = 738, VERSION_P = 739, VIEW = 740, VIEWS = 741, VOLATILE = 742, WHEN = 743, WHERE = 744, WHITESPACE_P = 745, WINDOW = 746, WITH = 747, WITHIN = 748, WITHOUT = 749, WORK = 750, WRAPPER = 751, WRITE = 752, XML_P = 753, XMLATTRIBUTES = 754, XMLCONCAT = 755, XMLELEMENT = 756, XMLEXISTS = 757, XMLFOREST = 758, XMLNAMESPACES = 759, XMLPARSE = 760, XMLPI = 761, XMLROOT = 762, XMLSERIALIZE = 763, XMLTABLE = 764, YEAR_P = 765, YES_P = 766, ZONE = 767, FORMAT_LA = 768, NOT_LA = 769, NULLS_LA = 770, WITH_LA = 771, WITHOUT_LA = 772, MODE_TYPE_NAME = 773, MODE_PLPGSQL_EXPR = 774, MODE_PLPGSQL_ASSIGN1 = 775, MODE_PLPGSQL_ASSIGN2 = 776, MODE_PLPGSQL_ASSIGN3 = 777, UMINUS = 778 }; #endif /* Tokens. */ #define IDENT 258 #define UIDENT 259 #define FCONST 260 #define SCONST 261 #define USCONST 262 #define BCONST 263 #define XCONST 264 #define Op 265 #define ICONST 266 #define PARAM 267 #define TYPECAST 268 #define DOT_DOT 269 #define COLON_EQUALS 270 #define EQUALS_GREATER 271 #define LESS_EQUALS 272 #define GREATER_EQUALS 273 #define NOT_EQUALS 274 #define SQL_COMMENT 275 #define C_COMMENT 276 #define ABORT_P 277 #define ABSENT 278 #define ABSOLUTE_P 279 #define ACCESS 280 #define ACTION 281 #define ADD_P 282 #define ADMIN 283 #define AFTER 284 #define AGGREGATE 285 #define ALL 286 #define ALSO 287 #define ALTER 288 #define ALWAYS 289 #define ANALYSE 290 #define ANALYZE 291 #define AND 292 #define ANY 293 #define ARRAY 294 #define AS 295 #define ASC 296 #define ASENSITIVE 297 #define ASSERTION 298 #define ASSIGNMENT 299 #define ASYMMETRIC 300 #define ATOMIC 301 #define AT 302 #define ATTACH 303 #define ATTRIBUTE 304 #define AUTHORIZATION 305 #define BACKWARD 306 #define BEFORE 307 #define BEGIN_P 308 #define BETWEEN 309 #define BIGINT 310 #define BINARY 311 #define BIT 312 #define BOOLEAN_P 313 #define BOTH 314 #define BREADTH 315 #define BY 316 #define CACHE 317 #define CALL 318 #define CALLED 319 #define CASCADE 320 #define CASCADED 321 #define CASE 322 #define CAST 323 #define CATALOG_P 324 #define CHAIN 325 #define CHAR_P 326 #define CHARACTER 327 #define CHARACTERISTICS 328 #define CHECK 329 #define CHECKPOINT 330 #define CLASS 331 #define CLOSE 332 #define CLUSTER 333 #define COALESCE 334 #define COLLATE 335 #define COLLATION 336 #define COLUMN 337 #define COLUMNS 338 #define COMMENT 339 #define COMMENTS 340 #define COMMIT 341 #define COMMITTED 342 #define COMPRESSION 343 #define CONCURRENTLY 344 #define CONDITIONAL 345 #define CONFIGURATION 346 #define CONFLICT 347 #define CONNECTION 348 #define CONSTRAINT 349 #define CONSTRAINTS 350 #define CONTENT_P 351 #define CONTINUE_P 352 #define CONVERSION_P 353 #define COPY 354 #define COST 355 #define CREATE 356 #define CROSS 357 #define CSV 358 #define CUBE 359 #define CURRENT_P 360 #define CURRENT_CATALOG 361 #define CURRENT_DATE 362 #define CURRENT_ROLE 363 #define CURRENT_SCHEMA 364 #define CURRENT_TIME 365 #define CURRENT_TIMESTAMP 366 #define CURRENT_USER 367 #define CURSOR 368 #define CYCLE 369 #define DATA_P 370 #define DATABASE 371 #define DAY_P 372 #define DEALLOCATE 373 #define DEC 374 #define DECIMAL_P 375 #define DECLARE 376 #define DEFAULT 377 #define DEFAULTS 378 #define DEFERRABLE 379 #define DEFERRED 380 #define DEFINER 381 #define DELETE_P 382 #define DELIMITER 383 #define DELIMITERS 384 #define DEPENDS 385 #define DEPTH 386 #define DESC 387 #define DETACH 388 #define DICTIONARY 389 #define DISABLE_P 390 #define DISCARD 391 #define DISTINCT 392 #define DO 393 #define DOCUMENT_P 394 #define DOMAIN_P 395 #define DOUBLE_P 396 #define DROP 397 #define EACH 398 #define ELSE 399 #define EMPTY_P 400 #define ENABLE_P 401 #define ENCODING 402 #define ENCRYPTED 403 #define END_P 404 #define ENUM_P 405 #define ERROR_P 406 #define ESCAPE 407 #define EVENT 408 #define EXCEPT 409 #define EXCLUDE 410 #define EXCLUDING 411 #define EXCLUSIVE 412 #define EXECUTE 413 #define EXISTS 414 #define EXPLAIN 415 #define EXPRESSION 416 #define EXTENSION 417 #define EXTERNAL 418 #define EXTRACT 419 #define FALSE_P 420 #define FAMILY 421 #define FETCH 422 #define FILTER 423 #define FINALIZE 424 #define FIRST_P 425 #define FLOAT_P 426 #define FOLLOWING 427 #define FOR 428 #define FORCE 429 #define FOREIGN 430 #define FORMAT 431 #define FORWARD 432 #define FREEZE 433 #define FROM 434 #define FULL 435 #define FUNCTION 436 #define FUNCTIONS 437 #define GENERATED 438 #define GLOBAL 439 #define GRANT 440 #define GRANTED 441 #define GREATEST 442 #define GROUP_P 443 #define GROUPING 444 #define GROUPS 445 #define HANDLER 446 #define HAVING 447 #define HEADER_P 448 #define HOLD 449 #define HOUR_P 450 #define IDENTITY_P 451 #define IF_P 452 #define ILIKE 453 #define IMMEDIATE 454 #define IMMUTABLE 455 #define IMPLICIT_P 456 #define IMPORT_P 457 #define IN_P 458 #define INCLUDE 459 #define INCLUDING 460 #define INCREMENT 461 #define INDENT 462 #define INDEX 463 #define INDEXES 464 #define INHERIT 465 #define INHERITS 466 #define INITIALLY 467 #define INLINE_P 468 #define INNER_P 469 #define INOUT 470 #define INPUT_P 471 #define INSENSITIVE 472 #define INSERT 473 #define INSTEAD 474 #define INT_P 475 #define INTEGER 476 #define INTERSECT 477 #define INTERVAL 478 #define INTO 479 #define INVOKER 480 #define IS 481 #define ISNULL 482 #define ISOLATION 483 #define JOIN 484 #define JSON 485 #define JSON_ARRAY 486 #define JSON_ARRAYAGG 487 #define JSON_EXISTS 488 #define JSON_OBJECT 489 #define JSON_OBJECTAGG 490 #define JSON_QUERY 491 #define JSON_SCALAR 492 #define JSON_SERIALIZE 493 #define JSON_TABLE 494 #define JSON_VALUE 495 #define KEEP 496 #define KEY 497 #define KEYS 498 #define LABEL 499 #define LANGUAGE 500 #define LARGE_P 501 #define LAST_P 502 #define LATERAL_P 503 #define LEADING 504 #define LEAKPROOF 505 #define LEAST 506 #define LEFT 507 #define LEVEL 508 #define LIKE 509 #define LIMIT 510 #define LISTEN 511 #define LOAD 512 #define LOCAL 513 #define LOCALTIME 514 #define LOCALTIMESTAMP 515 #define LOCATION 516 #define LOCK_P 517 #define LOCKED 518 #define LOGGED 519 #define MAPPING 520 #define MATCH 521 #define MATCHED 522 #define MATERIALIZED 523 #define MAXVALUE 524 #define MERGE 525 #define MERGE_ACTION 526 #define METHOD 527 #define MINUTE_P 528 #define MINVALUE 529 #define MODE 530 #define MONTH_P 531 #define MOVE 532 #define NAME_P 533 #define NAMES 534 #define NATIONAL 535 #define NATURAL 536 #define NCHAR 537 #define NESTED 538 #define NEW 539 #define NEXT 540 #define NFC 541 #define NFD 542 #define NFKC 543 #define NFKD 544 #define NO 545 #define NONE 546 #define NORMALIZE 547 #define NORMALIZED 548 #define NOT 549 #define NOTHING 550 #define NOTIFY 551 #define NOTNULL 552 #define NOWAIT 553 #define NULL_P 554 #define NULLIF 555 #define NULLS_P 556 #define NUMERIC 557 #define OBJECT_P 558 #define OF 559 #define OFF 560 #define OFFSET 561 #define OIDS 562 #define OLD 563 #define OMIT 564 #define ON 565 #define ONLY 566 #define OPERATOR 567 #define OPTION 568 #define OPTIONS 569 #define OR 570 #define ORDER 571 #define ORDINALITY 572 #define OTHERS 573 #define OUT_P 574 #define OUTER_P 575 #define OVER 576 #define OVERLAPS 577 #define OVERLAY 578 #define OVERRIDING 579 #define OWNED 580 #define OWNER 581 #define PARALLEL 582 #define PARAMETER 583 #define PARSER 584 #define PARTIAL 585 #define PARTITION 586 #define PASSING 587 #define PASSWORD 588 #define PATH 589 #define PLACING 590 #define PLAN 591 #define PLANS 592 #define POLICY 593 #define POSITION 594 #define PRECEDING 595 #define PRECISION 596 #define PRESERVE 597 #define PREPARE 598 #define PREPARED 599 #define PRIMARY 600 #define PRIOR 601 #define PRIVILEGES 602 #define PROCEDURAL 603 #define PROCEDURE 604 #define PROCEDURES 605 #define PROGRAM 606 #define PUBLICATION 607 #define QUOTE 608 #define QUOTES 609 #define RANGE 610 #define READ 611 #define REAL 612 #define REASSIGN 613 #define RECHECK 614 #define RECURSIVE 615 #define REF_P 616 #define REFERENCES 617 #define REFERENCING 618 #define REFRESH 619 #define REINDEX 620 #define RELATIVE_P 621 #define RELEASE 622 #define RENAME 623 #define REPEATABLE 624 #define REPLACE 625 #define REPLICA 626 #define RESET 627 #define RESTART 628 #define RESTRICT 629 #define RETURN 630 #define RETURNING 631 #define RETURNS 632 #define REVOKE 633 #define RIGHT 634 #define ROLE 635 #define ROLLBACK 636 #define ROLLUP 637 #define ROUTINE 638 #define ROUTINES 639 #define ROW 640 #define ROWS 641 #define RULE 642 #define SAVEPOINT 643 #define SCALAR 644 #define SCHEMA 645 #define SCHEMAS 646 #define SCROLL 647 #define SEARCH 648 #define SECOND_P 649 #define SECURITY 650 #define SELECT 651 #define SEQUENCE 652 #define SEQUENCES 653 #define SERIALIZABLE 654 #define SERVER 655 #define SESSION 656 #define SESSION_USER 657 #define SET 658 #define SETS 659 #define SETOF 660 #define SHARE 661 #define SHOW 662 #define SIMILAR 663 #define SIMPLE 664 #define SKIP 665 #define SMALLINT 666 #define SNAPSHOT 667 #define SOME 668 #define SOURCE 669 #define SQL_P 670 #define STABLE 671 #define STANDALONE_P 672 #define START 673 #define STATEMENT 674 #define STATISTICS 675 #define STDIN 676 #define STDOUT 677 #define STORAGE 678 #define STORED 679 #define STRICT_P 680 #define STRING_P 681 #define STRIP_P 682 #define SUBSCRIPTION 683 #define SUBSTRING 684 #define SUPPORT 685 #define SYMMETRIC 686 #define SYSID 687 #define SYSTEM_P 688 #define SYSTEM_USER 689 #define TABLE 690 #define TABLES 691 #define TABLESAMPLE 692 #define TABLESPACE 693 #define TARGET 694 #define TEMP 695 #define TEMPLATE 696 #define TEMPORARY 697 #define TEXT_P 698 #define THEN 699 #define TIES 700 #define TIME 701 #define TIMESTAMP 702 #define TO 703 #define TRAILING 704 #define TRANSACTION 705 #define TRANSFORM 706 #define TREAT 707 #define TRIGGER 708 #define TRIM 709 #define TRUE_P 710 #define TRUNCATE 711 #define TRUSTED 712 #define TYPE_P 713 #define TYPES_P 714 #define UESCAPE 715 #define UNBOUNDED 716 #define UNCONDITIONAL 717 #define UNCOMMITTED 718 #define UNENCRYPTED 719 #define UNION 720 #define UNIQUE 721 #define UNKNOWN 722 #define UNLISTEN 723 #define UNLOGGED 724 #define UNTIL 725 #define UPDATE 726 #define USER 727 #define USING 728 #define VACUUM 729 #define VALID 730 #define VALIDATE 731 #define VALIDATOR 732 #define VALUE_P 733 #define VALUES 734 #define VARCHAR 735 #define VARIADIC 736 #define VARYING 737 #define VERBOSE 738 #define VERSION_P 739 #define VIEW 740 #define VIEWS 741 #define VOLATILE 742 #define WHEN 743 #define WHERE 744 #define WHITESPACE_P 745 #define WINDOW 746 #define WITH 747 #define WITHIN 748 #define WITHOUT 749 #define WORK 750 #define WRAPPER 751 #define WRITE 752 #define XML_P 753 #define XMLATTRIBUTES 754 #define XMLCONCAT 755 #define XMLELEMENT 756 #define XMLEXISTS 757 #define XMLFOREST 758 #define XMLNAMESPACES 759 #define XMLPARSE 760 #define XMLPI 761 #define XMLROOT 762 #define XMLSERIALIZE 763 #define XMLTABLE 764 #define YEAR_P 765 #define YES_P 766 #define ZONE 767 #define FORMAT_LA 768 #define NOT_LA 769 #define NULLS_LA 770 #define WITH_LA 771 #define WITHOUT_LA 772 #define MODE_TYPE_NAME 773 #define MODE_PLPGSQL_EXPR 774 #define MODE_PLPGSQL_ASSIGN1 775 #define MODE_PLPGSQL_ASSIGN2 776 #define MODE_PLPGSQL_ASSIGN3 777 #define UMINUS 778 /* Copy the first part of user declarations. */ #line 1 "gram.y" /*#define YYDEBUG 1*/ /*------------------------------------------------------------------------- * * gram.y * POSTGRESQL BISON rules/actions * * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * * IDENTIFICATION * src/backend/parser/gram.y * * HISTORY * AUTHOR DATE MAJOR EVENT * Andrew Yu Sept, 1994 POSTQUEL to SQL conversion * Andrew Yu Oct, 1994 lispy code conversion * * NOTES * CAPITALS are used to represent terminal symbols. * non-capitals are used to represent non-terminals. * * In general, nothing in this file should initiate database accesses * nor depend on changeable state (such as SET variables). If you do * database accesses, your code will fail when we have aborted the * current transaction and are just parsing commands to find the next * ROLLBACK or COMMIT. If you make use of SET variables, then you * will do the wrong thing in multi-query strings like this: * SET constraint_exclusion TO off; SELECT * FROM foo; * because the entire string is parsed by gram.y before the SET gets * executed. Anything that depends on the database or changeable state * should be handled during parse analysis so that it happens at the * right time not the wrong time. * * WARNINGS * If you use a list, make sure the datum is a node so that the printing * routines work. * * Sometimes we assign constants to makeStrings. Make sure we don't free * those. * *------------------------------------------------------------------------- */ #include "postgres.h" #include #include #include "access/tableam.h" #include "catalog/index.h" #include "catalog/namespace.h" #include "catalog/pg_am.h" #include "catalog/pg_trigger.h" #include "commands/defrem.h" #include "commands/trigger.h" #include "gramparse.h" #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" #include "parser/parser.h" #include "storage/lmgr.h" #include "utils/date.h" #include "utils/datetime.h" #include "utils/numeric.h" #include "utils/xml.h" /* * Location tracking support --- simpler than bison's default, since we only * want to track the start position not the end position of each nonterminal. */ #define YYLLOC_DEFAULT(Current, Rhs, N) \ do { \ if ((N) > 0) \ (Current) = (Rhs)[1]; \ else \ (Current) = (-1); \ } while (0) /* * The above macro assigns -1 (unknown) as the parse location of any * nonterminal that was reduced from an empty rule, or whose leftmost * component was reduced from an empty rule. This is problematic * for nonterminals defined like * OptFooList: / * EMPTY * / { ... } | OptFooList Foo { ... } ; * because we'll set -1 as the location during the first reduction and then * copy it during each subsequent reduction, leaving us with -1 for the * location even when the list is not empty. To fix that, do this in the * action for the nonempty rule(s): * if (@$ < 0) @$ = @2; * (Although we have many nonterminals that follow this pattern, we only * bother with fixing @$ like this when the nonterminal's parse location * is actually referenced in some rule.) * * A cleaner answer would be to make YYLLOC_DEFAULT scan all the Rhs * locations until it's found one that's not -1. Then we'd get a correct * location for any nonterminal that isn't entirely empty. But this way * would add overhead to every rule reduction, and so far there's not been * a compelling reason to pay that overhead. */ /* * Bison doesn't allocate anything that needs to live across parser calls, * so we can easily have it use palloc instead of malloc. This prevents * memory leaks if we error out during parsing. */ #define YYMALLOC palloc #define YYFREE pfree /* Private struct for the result of privilege_target production */ typedef struct PrivTarget { GrantTargetType targtype; ObjectType objtype; List *objs; } PrivTarget; /* Private struct for the result of import_qualification production */ typedef struct ImportQual { ImportForeignSchemaType type; List *table_names; } ImportQual; /* Private struct for the result of opt_select_limit production */ typedef struct SelectLimit { Node *limitOffset; Node *limitCount; LimitOption limitOption; } SelectLimit; /* Private struct for the result of group_clause production */ typedef struct GroupClause { bool distinct; List *list; } GroupClause; /* Private structs for the result of key_actions and key_action productions */ typedef struct KeyAction { char action; List *cols; } KeyAction; typedef struct KeyActions { KeyAction *updateAction; KeyAction *deleteAction; } KeyActions; /* ConstraintAttributeSpec yields an integer bitmask of these flags: */ #define CAS_NOT_DEFERRABLE 0x01 #define CAS_DEFERRABLE 0x02 #define CAS_INITIALLY_IMMEDIATE 0x04 #define CAS_INITIALLY_DEFERRED 0x08 #define CAS_NOT_VALID 0x10 #define CAS_NO_INHERIT 0x20 #define parser_yyerror(msg) scanner_yyerror(msg, yyscanner) #define parser_errposition(pos) scanner_errposition(pos, yyscanner) static void base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner, const char *msg); static RawStmt *makeRawStmt(Node *stmt, int stmt_location); static void updateRawStmtEnd(RawStmt *rs, int end_location); static Node *makeColumnRef(char *colname, List *indirection, int location, core_yyscan_t yyscanner); static Node *makeTypeCast(Node *arg, TypeName *typename, int location); static Node *makeStringConstCast(char *str, int location, TypeName *typename); static Node *makeIntConst(int val, int location); static Node *makeFloatConst(char *str, int location); static Node *makeBoolAConst(bool state, int location); static Node *makeBitStringConst(char *str, int location); static Node *makeNullAConst(int location); static Node *makeAConst(Node *v, int location); static Node *makeParamRef(int number, int location); static Node *makeParamRefCast(int number, int location, TypeName *typename); static RoleSpec *makeRoleSpec(RoleSpecType type, int location); static void check_qualified_name(List *names, core_yyscan_t yyscanner); static List *check_func_name(List *names, core_yyscan_t yyscanner); static List *check_indirection(List *indirection, core_yyscan_t yyscanner); static List *extractArgTypes(List *parameters); static List *extractAggrArgTypes(List *aggrargs); static List *makeOrderedSetArgs(List *directargs, List *orderedargs, core_yyscan_t yyscanner); static void insertSelectOptions(SelectStmt *stmt, List *sortClause, List *lockingClause, SelectLimit *limitClause, WithClause *withClause, core_yyscan_t yyscanner); static Node *makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg); static Node *doNegate(Node *n, int location); static void doNegateFloat(Float *v); static Node *makeAndExpr(Node *lexpr, Node *rexpr, int location); static Node *makeOrExpr(Node *lexpr, Node *rexpr, int location); static Node *makeNotExpr(Node *expr, int location); static Node *makeAArrayExpr(List *elements, int location); static Node *makeSQLValueFunction(SQLValueFunctionOp op, int32 typmod, int location); static Node *makeXmlExpr(XmlExprOp op, char *name, List *named_args, List *args, int location); static List *mergeTableFuncParameters(List *func_args, List *columns); static TypeName *TableFuncTypeName(List *columns); static RangeVar *makeRangeVarFromAnyName(List *names, int position, core_yyscan_t yyscanner); static RangeVar *makeRangeVarFromQualifiedName(char *name, List *namelist, int location, core_yyscan_t yyscanner); static void SplitColQualList(List *qualList, List **constraintList, CollateClause **collClause, core_yyscan_t yyscanner); static void processCASbits(int cas_bits, int location, const char *constrType, bool *deferrable, bool *initdeferred, bool *not_valid, bool *no_inherit, core_yyscan_t yyscanner); static PartitionStrategy parsePartitionStrategy(char *strategy); static void preprocess_pubobj_list(List *pubobjspec_list, core_yyscan_t yyscanner); static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else # define YYERROR_VERBOSE 0 #endif /* Enabling the token table. */ #ifndef YYTOKEN_TABLE # define YYTOKEN_TABLE 0 #endif #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE #line 233 "gram.y" { core_YYSTYPE core_yystype; /* these fields must match core_YYSTYPE: */ int ival; char *str; const char *keyword; char chr; bool boolean; JoinType jtype; DropBehavior dbehavior; OnCommitAction oncommit; List *list; Node *node; ObjectType objtype; TypeName *typnam; FunctionParameter *fun_param; FunctionParameterMode fun_param_mode; ObjectWithArgs *objwithargs; DefElem *defelt; SortBy *sortby; WindowDef *windef; JoinExpr *jexpr; IndexElem *ielem; StatsElem *selem; Alias *alias; RangeVar *range; IntoClause *into; WithClause *with; InferClause *infer; OnConflictClause *onconflict; A_Indices *aind; ResTarget *target; struct PrivTarget *privtarget; AccessPriv *accesspriv; struct ImportQual *importqual; InsertStmt *istmt; VariableSetStmt *vsetstmt; PartitionElem *partelem; PartitionSpec *partspec; PartitionBoundSpec *partboundspec; RoleSpec *rolespec; PublicationObjSpec *publicationobjectspec; struct SelectLimit *selectlimit; SetQuantifier setquantifier; struct GroupClause *groupclause; MergeMatchKind mergematch; MergeWhenClause *mergewhen; struct KeyActions *keyactions; struct KeyAction *keyaction; } /* Line 193 of yacc.c. */ #line 1425 "gram.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED typedef struct YYLTYPE { int first_line; int first_column; int last_line; int last_column; } YYLTYPE; # define yyltype YYLTYPE /* obsolescent; will be withdrawn */ # define YYLTYPE_IS_DECLARED 1 # define YYLTYPE_IS_TRIVIAL 1 #endif /* Copy the second part of user declarations. */ /* Line 216 of yacc.c. */ #line 1450 "gram.c" #ifdef short # undef short #endif #ifdef YYTYPE_UINT8 typedef YYTYPE_UINT8 yytype_uint8; #else typedef unsigned char yytype_uint8; #endif #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; #elif (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) typedef signed char yytype_int8; #else typedef short int yytype_int8; #endif #ifdef YYTYPE_UINT16 typedef YYTYPE_UINT16 yytype_uint16; #else typedef unsigned short int yytype_uint16; #endif #ifdef YYTYPE_INT16 typedef YYTYPE_INT16 yytype_int16; #else typedef short int yytype_int16; #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned int # endif #endif #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(msgid) dgettext ("bison-runtime", msgid) # endif # endif # ifndef YY_ # define YY_(msgid) msgid # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(e) ((void) (e)) #else # define YYUSE(e) /* empty */ #endif /* Identity function, used to suppress warnings about constant conditions. */ #ifndef lint # define YYID(n) (n) #else #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int YYID (int i) #else static int YYID (i) int i; #endif { return i; } #endif #if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # elif defined __BUILTIN_VA_ARG_INCR # include /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ # ifndef _STDLIB_H # define _STDLIB_H 1 # endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's `empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely invoke alloca (N) if N exceeds 4096. Use a slightly smaller number to allow for a few compiler-allocated temporary stack slots. */ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ # endif # else # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif # if (defined __cplusplus && ! defined _STDLIB_H \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef _STDLIB_H # define _STDLIB_H 1 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yytype_int16 yyss; YYSTYPE yyvs; YYLTYPE yyls; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ + 2 * YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(To, From, Count) \ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) # else # define YYCOPY(To, From, Count) \ do \ { \ YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (To)[yyi] = (From)[yyi]; \ } \ while (YYID (0)) # endif # endif /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack) \ do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (YYID (0)) #endif /* YYFINAL -- State number of the termination state. */ #define YYFINAL 928 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 122949 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 541 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 728 /* YYNRULES -- Number of rules. */ #define YYNRULES 3421 /* YYNRULES -- Number of states. */ #define YYNSTATES 6474 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 778 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const yytype_uint16 yytranslate[] = { 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 530, 2, 2, 535, 536, 528, 526, 539, 527, 537, 529, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 540, 538, 523, 525, 524, 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, 533, 2, 534, 531, 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, 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, 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, 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, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 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, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 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, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 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, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 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, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 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, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 532 }; #if YYDEBUG /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ static const yytype_uint16 yyprhs[] = { 0, 0, 3, 5, 8, 11, 14, 17, 20, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 279, 281, 282, 284, 285, 287, 288, 290, 292, 293, 296, 302, 304, 306, 307, 310, 311, 314, 315, 318, 321, 324, 328, 332, 336, 338, 342, 346, 349, 351, 353, 356, 359, 362, 366, 370, 376, 382, 388, 389, 393, 399, 405, 411, 417, 421, 427, 431, 437, 441, 447, 453, 460, 462, 464, 471, 476, 486, 494, 497, 498, 500, 502, 504, 506, 508, 510, 513, 517, 521, 524, 530, 532, 536, 540, 544, 548, 550, 554, 558, 561, 564, 567, 570, 573, 576, 580, 584, 588, 592, 596, 598, 602, 604, 608, 610, 612, 614, 617, 620, 623, 625, 627, 629, 631, 633, 635, 637, 639, 643, 649, 651, 653, 655, 657, 659, 660, 662, 664, 667, 669, 672, 676, 679, 681, 683, 686, 688, 691, 693, 696, 700, 705, 709, 712, 717, 719, 721, 723, 725, 727, 730, 733, 736, 739, 742, 747, 754, 759, 766, 777, 791, 796, 803, 808, 819, 833, 838, 845, 850, 857, 863, 871, 883, 898, 904, 912, 914, 918, 923, 928, 933, 937, 940, 946, 950, 957, 962, 969, 976, 986, 992, 1000, 1007, 1014, 1020, 1026, 1032, 1038, 1048, 1053, 1059, 1067, 1074, 1079, 1088, 1093, 1096, 1101, 1105, 1112, 1117, 1121, 1125, 1129, 1132, 1135, 1139, 1144, 1149, 1153, 1157, 1161, 1165, 1169, 1173, 1178, 1183, 1187, 1190, 1194, 1197, 1200, 1204, 1209, 1213, 1216, 1219, 1223, 1228, 1233, 1238, 1244, 1246, 1250, 1253, 1256, 1257, 1260, 1261, 1263, 1265, 1267, 1271, 1275, 1278, 1279, 1281, 1285, 1289, 1291, 1297, 1301, 1303, 1306, 1308, 1312, 1315, 1319, 1321, 1323, 1325, 1327, 1334, 1341, 1352, 1354, 1357, 1359, 1363, 1368, 1370, 1374, 1379, 1386, 1391, 1400, 1403, 1406, 1418, 1428, 1430, 1432, 1434, 1435, 1437, 1439, 1441, 1443, 1447, 1450, 1451, 1453, 1455, 1459, 1463, 1465, 1467, 1471, 1475, 1479, 1483, 1488, 1493, 1497, 1501, 1504, 1506, 1507, 1511, 1512, 1514, 1515, 1517, 1521, 1524, 1526, 1528, 1530, 1532, 1536, 1537, 1539, 1543, 1545, 1559, 1576, 1589, 1605, 1620, 1638, 1640, 1642, 1645, 1648, 1651, 1654, 1656, 1657, 1659, 1660, 1664, 1665, 1667, 1671, 1673, 1677, 1679, 1681, 1683, 1685, 1687, 1694, 1697, 1702, 1705, 1708, 1710, 1711, 1714, 1717, 1719, 1720, 1723, 1724, 1728, 1730, 1732, 1735, 1738, 1740, 1745, 1750, 1756, 1759, 1765, 1773, 1779, 1782, 1786, 1787, 1789, 1792, 1794, 1797, 1800, 1803, 1807, 1811, 1815, 1816, 1818, 1820, 1822, 1824, 1826, 1828, 1830, 1832, 1834, 1836, 1840, 1842, 1848, 1858, 1862, 1872, 1877, 1888, 1900, 1904, 1906, 1912, 1916, 1919, 1920, 1924, 1925, 1927, 1931, 1933, 1938, 1939, 1942, 1945, 1948, 1949, 1951, 1955, 1959, 1966, 1971, 1972, 1974, 1976, 1979, 1982, 1983, 1987, 1991, 1994, 1996, 1998, 2002, 2006, 2011, 2012, 2014, 2015, 2022, 2024, 2028, 2032, 2036, 2042, 2045, 2046, 2049, 2052, 2053, 2057, 2062, 2067, 2068, 2071, 2072, 2077, 2078, 2082, 2091, 2103, 2105, 2109, 2111, 2113, 2117, 2124, 2133, 2141, 2152, 2159, 2162, 2166, 2167, 2176, 2188, 2194, 2196, 2197, 2204, 2210, 2219, 2224, 2231, 2233, 2234, 2238, 2239, 2241, 2244, 2247, 2250, 2252, 2255, 2259, 2261, 2264, 2267, 2270, 2273, 2277, 2281, 2285, 2287, 2291, 2293, 2295, 2296, 2298, 2301, 2304, 2306, 2308, 2312, 2319, 2330, 2332, 2333, 2335, 2338, 2341, 2342, 2345, 2348, 2350, 2351, 2353, 2354, 2362, 2365, 2366, 2370, 2376, 2382, 2391, 2394, 2395, 2398, 2401, 2404, 2406, 2412, 2415, 2416, 2419, 2426, 2433, 2440, 2451, 2458, 2465, 2472, 2482, 2492, 2499, 2506, 2516, 2523, 2531, 2534, 2537, 2540, 2543, 2545, 2548, 2550, 2551, 2559, 2566, 2571, 2572, 2574, 2578, 2583, 2585, 2589, 2591, 2594, 2597, 2600, 2603, 2605, 2607, 2618, 2632, 2635, 2636, 2639, 2642, 2644, 2645, 2651, 2656, 2661, 2673, 2688, 2701, 2717, 2729, 2732, 2734, 2739, 2740, 2749, 2761, 2763, 2765, 2773, 2783, 2792, 2803, 2812, 2817, 2818, 2824, 2825, 2828, 2829, 2832, 2833, 2836, 2837, 2840, 2841, 2843, 2845, 2847, 2849, 2851, 2860, 2862, 2864, 2882, 2904, 2906, 2908, 2911, 2913, 2917, 2919, 2921, 2923, 2927, 2929, 2932, 2933, 2935, 2938, 2943, 2945, 2947, 2949, 2951, 2953, 2957, 2958, 2960, 2961, 2963, 2965, 2970, 2971, 2973, 2975, 2977, 2981, 2982, 2984, 2986, 2988, 2990, 2993, 2994, 2995, 2998, 3001, 3003, 3006, 3009, 3012, 3015, 3027, 3041, 3043, 3047, 3053, 3055, 3059, 3065, 3067, 3070, 3073, 3075, 3084, 3091, 3097, 3102, 3107, 3111, 3119, 3128, 3135, 3142, 3149, 3156, 3163, 3168, 3176, 3182, 3191, 3195, 3197, 3201, 3205, 3207, 3209, 3211, 3213, 3215, 3217, 3219, 3223, 3225, 3229, 3233, 3235, 3236, 3238, 3242, 3250, 3260, 3270, 3279, 3286, 3290, 3291, 3305, 3307, 3311, 3317, 3323, 3327, 3334, 3337, 3339, 3340, 3343, 3344, 3347, 3352, 3353, 3355, 3356, 3363, 3372, 3381, 3383, 3387, 3393, 3399, 3407, 3417, 3425, 3435, 3441, 3448, 3455, 3460, 3467, 3472, 3479, 3488, 3493, 3500, 3505, 3512, 3518, 3526, 3528, 3530, 3532, 3535, 3537, 3540, 3542, 3544, 3546, 3550, 3554, 3558, 3562, 3564, 3566, 3568, 3570, 3572, 3575, 3578, 3580, 3584, 3587, 3589, 3591, 3593, 3595, 3597, 3599, 3601, 3605, 3607, 3610, 3613, 3617, 3619, 3623, 3629, 3632, 3635, 3636, 3643, 3650, 3657, 3664, 3671, 3678, 3685, 3692, 3701, 3711, 3720, 3727, 3734, 3744, 3754, 3764, 3772, 3783, 3785, 3787, 3796, 3805, 3814, 3823, 3832, 3841, 3850, 3860, 3869, 3878, 3881, 3882, 3884, 3886, 3889, 3892, 3894, 3897, 3901, 3905, 3909, 3913, 3918, 3923, 3927, 3931, 3935, 3940, 3945, 3949, 3954, 3959, 3961, 3963, 3965, 3966, 3975, 3984, 3996, 3998, 4000, 4003, 4008, 4014, 4016, 4020, 4023, 4026, 4029, 4032, 4035, 4037, 4041, 4043, 4047, 4049, 4052, 4055, 4060, 4064, 4067, 4070, 4073, 4076, 4079, 4082, 4086, 4089, 4092, 4095, 4098, 4104, 4110, 4116, 4122, 4128, 4130, 4134, 4136, 4139, 4143, 4144, 4150, 4158, 4165, 4175, 4179, 4181, 4184, 4186, 4188, 4190, 4194, 4195, 4201, 4204, 4205, 4209, 4213, 4217, 4225, 4233, 4244, 4246, 4248, 4250, 4252, 4254, 4256, 4273, 4293, 4295, 4296, 4299, 4300, 4302, 4306, 4311, 4317, 4320, 4323, 4328, 4333, 4334, 4336, 4340, 4343, 4344, 4346, 4348, 4349, 4352, 4355, 4356, 4366, 4379, 4387, 4395, 4398, 4399, 4403, 4406, 4408, 4412, 4414, 4418, 4421, 4423, 4425, 4428, 4432, 4435, 4437, 4441, 4445, 4449, 4452, 4455, 4457, 4459, 4461, 4463, 4466, 4468, 4470, 4472, 4474, 4479, 4485, 4487, 4491, 4495, 4497, 4501, 4505, 4511, 4518, 4520, 4524, 4527, 4529, 4533, 4535, 4536, 4538, 4541, 4546, 4552, 4554, 4556, 4558, 4560, 4564, 4568, 4571, 4574, 4576, 4579, 4582, 4585, 4588, 4590, 4593, 4596, 4599, 4602, 4604, 4606, 4608, 4612, 4615, 4617, 4622, 4623, 4627, 4628, 4630, 4632, 4636, 4642, 4645, 4646, 4649, 4651, 4655, 4661, 4667, 4673, 4675, 4678, 4680, 4681, 4686, 4693, 4698, 4705, 4710, 4717, 4722, 4729, 4734, 4741, 4745, 4751, 4757, 4763, 4765, 4769, 4771, 4775, 4778, 4781, 4783, 4786, 4788, 4791, 4803, 4814, 4825, 4828, 4831, 4832, 4842, 4845, 4846, 4857, 4869, 4881, 4887, 4893, 4902, 4908, 4914, 4920, 4922, 4924, 4926, 4928, 4932, 4933, 4939, 4945, 4952, 4959, 4966, 4973, 4980, 4989, 4998, 5005, 5012, 5020, 5030, 5040, 5049, 5060, 5067, 5074, 5081, 5088, 5095, 5102, 5109, 5118, 5125, 5134, 5141, 5150, 5158, 5168, 5175, 5184, 5192, 5202, 5211, 5222, 5231, 5242, 5252, 5264, 5273, 5284, 5294, 5306, 5315, 5324, 5332, 5339, 5346, 5353, 5360, 5369, 5378, 5387, 5396, 5403, 5413, 5415, 5416, 5419, 5420, 5429, 5438, 5447, 5458, 5468, 5477, 5479, 5480, 5487, 5494, 5501, 5508, 5515, 5522, 5529, 5539, 5549, 5556, 5563, 5570, 5579, 5586, 5595, 5604, 5613, 5622, 5629, 5638, 5645, 5654, 5662, 5672, 5680, 5690, 5697, 5705, 5707, 5711, 5715, 5719, 5721, 5723, 5725, 5727, 5729, 5731, 5739, 5746, 5753, 5760, 5767, 5774, 5781, 5789, 5797, 5804, 5814, 5824, 5831, 5838, 5845, 5852, 5859, 5866, 5875, 5884, 5893, 5900, 5908, 5915, 5922, 5927, 5935, 5942, 5947, 5952, 5957, 5961, 5966, 5970, 5972, 5974, 5978, 5984, 5990, 5996, 6002, 6011, 6017, 6023, 6030, 6038, 6046, 6054, 6059, 6064, 6070, 6075, 6082, 6096, 6098, 6100, 6104, 6108, 6110, 6112, 6114, 6116, 6118, 6120, 6122, 6123, 6125, 6127, 6129, 6131, 6133, 6135, 6136, 6140, 6143, 6144, 6147, 6150, 6153, 6157, 6161, 6165, 6169, 6172, 6176, 6179, 6185, 6190, 6194, 6198, 6202, 6206, 6210, 6212, 6214, 6215, 6219, 6222, 6225, 6227, 6230, 6232, 6236, 6239, 6241, 6242, 6245, 6249, 6250, 6260, 6272, 6285, 6300, 6304, 6309, 6314, 6315, 6318, 6324, 6326, 6327, 6329, 6332, 6336, 6340, 6344, 6346, 6349, 6351, 6353, 6355, 6357, 6359, 6361, 6362, 6368, 6373, 6380, 6387, 6392, 6396, 6402, 6410, 6420, 6422, 6426, 6428, 6434, 6439, 6444, 6451, 6456, 6463, 6470, 6476, 6484, 6494, 6501, 6503, 6504, 6511, 6523, 6535, 6547, 6561, 6571, 6583, 6585, 6587, 6598, 6605, 6610, 6615, 6618, 6624, 6627, 6628, 6635, 6641, 6645, 6651, 6653, 6657, 6659, 6661, 6664, 6666, 6668, 6670, 6672, 6674, 6675, 6677, 6678, 6680, 6681, 6683, 6684, 6686, 6687, 6691, 6692, 6695, 6697, 6701, 6703, 6704, 6707, 6712, 6716, 6722, 6724, 6726, 6728, 6730, 6732, 6734, 6736, 6738, 6740, 6742, 6748, 6752, 6753, 6755, 6757, 6759, 6761, 6763, 6767, 6777, 6790, 6794, 6795, 6798, 6802, 6805, 6809, 6817, 6819, 6823, 6825, 6830, 6835, 6843, 6846, 6848, 6850, 6852, 6856, 6859, 6868, 6874, 6875, 6880, 6884, 6885, 6888, 6889, 6897, 6900, 6901, 6907, 6911, 6912, 6915, 6918, 6921, 6925, 6927, 6931, 6933, 6936, 6938, 6939, 6941, 6944, 6945, 6954, 6956, 6960, 6964, 6970, 6973, 6975, 6979, 6990, 6992, 6995, 7000, 7005, 7010, 7016, 7022, 7025, 7031, 7035, 7041, 7044, 7045, 7049, 7051, 7054, 7060, 7066, 7075, 7079, 7084, 7092, 7094, 7095, 7099, 7102, 7105, 7108, 7111, 7112, 7115, 7118, 7120, 7122, 7126, 7130, 7132, 7135, 7140, 7145, 7148, 7152, 7158, 7164, 7166, 7168, 7178, 7188, 7190, 7193, 7198, 7203, 7208, 7211, 7214, 7218, 7220, 7224, 7234, 7236, 7239, 7240, 7248, 7256, 7257, 7268, 7275, 7276, 7278, 7279, 7282, 7283, 7287, 7291, 7296, 7301, 7306, 7311, 7315, 7318, 7320, 7322, 7323, 7325, 7327, 7328, 7330, 7336, 7338, 7339, 7341, 7343, 7345, 7346, 7350, 7352, 7356, 7361, 7365, 7368, 7371, 7373, 7375, 7377, 7378, 7381, 7386, 7392, 7399, 7404, 7410, 7413, 7417, 7419, 7421, 7423, 7425, 7428, 7431, 7433, 7435, 7437, 7439, 7441, 7443, 7448, 7449, 7451, 7455, 7457, 7459, 7461, 7463, 7465, 7468, 7473, 7478, 7484, 7487, 7488, 7490, 7494, 7496, 7497, 7499, 7502, 7506, 7509, 7514, 7517, 7521, 7524, 7525, 7530, 7536, 7539, 7540, 7542, 7546, 7549, 7553, 7556, 7560, 7563, 7567, 7570, 7574, 7576, 7581, 7584, 7588, 7592, 7597, 7603, 7608, 7614, 7619, 7625, 7628, 7633, 7635, 7637, 7638, 7641, 7642, 7644, 7649, 7655, 7660, 7661, 7664, 7667, 7670, 7672, 7674, 7675, 7681, 7684, 7686, 7688, 7691, 7694, 7699, 7701, 7705, 7707, 7710, 7714, 7721, 7726, 7727, 7730, 7737, 7740, 7742, 7746, 7751, 7752, 7755, 7756, 7759, 7760, 7763, 7768, 7769, 7771, 7772, 7774, 7778, 7782, 7790, 7803, 7805, 7809, 7812, 7816, 7820, 7822, 7825, 7828, 7831, 7834, 7836, 7839, 7841, 7845, 7849, 7852, 7866, 7869, 7870, 7872, 7876, 7880, 7887, 7895, 7901, 7909, 7919, 7921, 7922, 7925, 7926, 7929, 7933, 7939, 7946, 7949, 7953, 7957, 7962, 7963, 7965, 7967, 7969, 7971, 7973, 7976, 7981, 7983, 7985, 7987, 7989, 7991, 7993, 7996, 8000, 8004, 8005, 8007, 8009, 8011, 8013, 8015, 8018, 8021, 8024, 8027, 8030, 8032, 8036, 8037, 8039, 8041, 8043, 8045, 8051, 8054, 8056, 8058, 8060, 8062, 8067, 8069, 8072, 8075, 8077, 8081, 8085, 8088, 8090, 8091, 8097, 8100, 8106, 8109, 8111, 8115, 8119, 8120, 8122, 8124, 8126, 8128, 8130, 8132, 8136, 8140, 8144, 8148, 8152, 8156, 8160, 8161, 8163, 8168, 8170, 8172, 8176, 8180, 8186, 8190, 8193, 8196, 8200, 8204, 8208, 8212, 8216, 8220, 8224, 8228, 8232, 8236, 8240, 8244, 8248, 8251, 8255, 8259, 8262, 8265, 8269, 8275, 8280, 8287, 8291, 8297, 8302, 8309, 8314, 8321, 8327, 8335, 8339, 8342, 8347, 8350, 8354, 8358, 8363, 8367, 8372, 8376, 8381, 8387, 8394, 8401, 8409, 8416, 8424, 8428, 8433, 8438, 8445, 8449, 8453, 8458, 8462, 8467, 8472, 8478, 8483, 8489, 8491, 8493, 8497, 8500, 8503, 8507, 8511, 8515, 8519, 8523, 8527, 8531, 8535, 8539, 8543, 8547, 8551, 8555, 8558, 8564, 8571, 8575, 8580, 8582, 8584, 8587, 8592, 8594, 8596, 8598, 8601, 8604, 8607, 8610, 8612, 8614, 8619, 8623, 8629, 8636, 8645, 8652, 8659, 8664, 8669, 8673, 8675, 8677, 8679, 8681, 8687, 8689, 8691, 8696, 8698, 8703, 8705, 8710, 8712, 8717, 8719, 8721, 8723, 8725, 8727, 8729, 8731, 8738, 8743, 8748, 8755, 8760, 8765, 8770, 8775, 8780, 8787, 8793, 8799, 8805, 8810, 8817, 8822, 8827, 8832, 8837, 8843, 8851, 8859, 8869, 8875, 8880, 8887, 8893, 8901, 8909, 8918, 8923, 8931, 8936, 8943, 8950, 8955, 8961, 8966, 8972, 8976, 8988, 8997, 9007, 9010, 9014, 9018, 9022, 9027, 9028, 9033, 9035, 9039, 9043, 9045, 9047, 9049, 9051, 9054, 9055, 9058, 9061, 9062, 9065, 9069, 9073, 9078, 9081, 9084, 9090, 9091, 9097, 9098, 9101, 9102, 9104, 9108, 9112, 9115, 9118, 9119, 9126, 9128, 9129, 9133, 9134, 9138, 9142, 9146, 9147, 9149, 9154, 9157, 9160, 9163, 9166, 9169, 9173, 9176, 9179, 9183, 9184, 9189, 9193, 9199, 9204, 9208, 9214, 9216, 9218, 9220, 9222, 9224, 9226, 9228, 9230, 9232, 9234, 9236, 9238, 9240, 9242, 9244, 9246, 9248, 9250, 9255, 9257, 9262, 9264, 9269, 9271, 9274, 9276, 9279, 9281, 9285, 9287, 9291, 9293, 9297, 9301, 9303, 9304, 9306, 9310, 9314, 9318, 9321, 9323, 9327, 9331, 9335, 9337, 9339, 9341, 9343, 9345, 9347, 9349, 9351, 9353, 9355, 9357, 9359, 9367, 9373, 9377, 9383, 9389, 9393, 9397, 9403, 9407, 9410, 9412, 9414, 9418, 9424, 9426, 9429, 9434, 9437, 9438, 9440, 9441, 9443, 9446, 9449, 9452, 9456, 9462, 9464, 9465, 9467, 9470, 9471, 9474, 9476, 9477, 9480, 9481, 9483, 9487, 9491, 9494, 9498, 9501, 9505, 9510, 9515, 9519, 9523, 9524, 9527, 9529, 9531, 9533, 9535, 9537, 9539, 9542, 9545, 9547, 9551, 9555, 9562, 9563, 9567, 9568, 9571, 9576, 9579, 9581, 9582, 9588, 9591, 9597, 9600, 9601, 9605, 9606, 9608, 9611, 9614, 9617, 9620, 9624, 9627, 9631, 9634, 9635, 9637, 9641, 9645, 9649, 9653, 9657, 9658, 9662, 9666, 9667, 9669, 9673, 9681, 9689, 9693, 9694, 9696, 9697, 9699, 9703, 9707, 9710, 9712, 9714, 9716, 9720, 9722, 9725, 9727, 9731, 9733, 9735, 9737, 9739, 9742, 9744, 9746, 9748, 9750, 9752, 9755, 9762, 9765, 9772, 9775, 9779, 9785, 9788, 9792, 9798, 9800, 9802, 9804, 9806, 9808, 9810, 9813, 9816, 9818, 9820, 9822, 9824, 9826, 9828, 9832, 9843, 9848, 9850, 9852, 9854, 9856, 9858, 9860, 9862, 9864, 9866, 9868, 9870, 9872, 9874, 9876, 9878, 9880, 9882, 9884, 9886, 9888, 9890, 9892, 9894, 9896, 9898, 9900, 9902, 9904, 9906, 9908, 9910, 9912, 9914, 9916, 9918, 9920, 9922, 9924, 9926, 9928, 9930, 9932, 9934, 9936, 9938, 9940, 9942, 9944, 9946, 9948, 9950, 9952, 9954, 9956, 9958, 9960, 9962, 9964, 9966, 9968, 9970, 9972, 9974, 9976, 9978, 9980, 9982, 9984, 9986, 9988, 9990, 9992, 9994, 9996, 9998, 10000, 10002, 10004, 10006, 10008, 10010, 10012, 10014, 10016, 10018, 10020, 10022, 10024, 10026, 10028, 10030, 10032, 10034, 10036, 10038, 10040, 10042, 10044, 10046, 10048, 10050, 10052, 10054, 10056, 10058, 10060, 10062, 10064, 10066, 10068, 10070, 10072, 10074, 10076, 10078, 10080, 10082, 10084, 10086, 10088, 10090, 10092, 10094, 10096, 10098, 10100, 10102, 10104, 10106, 10108, 10110, 10112, 10114, 10116, 10118, 10120, 10122, 10124, 10126, 10128, 10130, 10132, 10134, 10136, 10138, 10140, 10142, 10144, 10146, 10148, 10150, 10152, 10154, 10156, 10158, 10160, 10162, 10164, 10166, 10168, 10170, 10172, 10174, 10176, 10178, 10180, 10182, 10184, 10186, 10188, 10190, 10192, 10194, 10196, 10198, 10200, 10202, 10204, 10206, 10208, 10210, 10212, 10214, 10216, 10218, 10220, 10222, 10224, 10226, 10228, 10230, 10232, 10234, 10236, 10238, 10240, 10242, 10244, 10246, 10248, 10250, 10252, 10254, 10256, 10258, 10260, 10262, 10264, 10266, 10268, 10270, 10272, 10274, 10276, 10278, 10280, 10282, 10284, 10286, 10288, 10290, 10292, 10294, 10296, 10298, 10300, 10302, 10304, 10306, 10308, 10310, 10312, 10314, 10316, 10318, 10320, 10322, 10324, 10326, 10328, 10330, 10332, 10334, 10336, 10338, 10340, 10342, 10344, 10346, 10348, 10350, 10352, 10354, 10356, 10358, 10360, 10362, 10364, 10366, 10368, 10370, 10372, 10374, 10376, 10378, 10380, 10382, 10384, 10386, 10388, 10390, 10392, 10394, 10396, 10398, 10400, 10402, 10404, 10406, 10408, 10410, 10412, 10414, 10416, 10418, 10420, 10422, 10424, 10426, 10428, 10430, 10432, 10434, 10436, 10438, 10440, 10442, 10444, 10446, 10448, 10450, 10452, 10454, 10456, 10458, 10460, 10462, 10464, 10466, 10468, 10470, 10472, 10474, 10476, 10478, 10480, 10482, 10484, 10486, 10488, 10490, 10492, 10494, 10496, 10498, 10500, 10502, 10504, 10506, 10508, 10510, 10512, 10514, 10516, 10518, 10520, 10522, 10524, 10526, 10528, 10530, 10532, 10534, 10536, 10538, 10540, 10542, 10544, 10546, 10548, 10550, 10552, 10554, 10556, 10558, 10560, 10562, 10564, 10566, 10568, 10570, 10572, 10574, 10576, 10578, 10580, 10582, 10584, 10586, 10588, 10590, 10592, 10594, 10596, 10598, 10600, 10602, 10604, 10606, 10608, 10610, 10612, 10614, 10616, 10618, 10620, 10622, 10624, 10626, 10628, 10630, 10632, 10634, 10636, 10638, 10640, 10642, 10644, 10646, 10648, 10650, 10652, 10654, 10656, 10658, 10660, 10662, 10664, 10666, 10668, 10670, 10672, 10674, 10676, 10678, 10680, 10682, 10684, 10686, 10688, 10690, 10692, 10694, 10696, 10698, 10700, 10702, 10704, 10706, 10708, 10710, 10712, 10714, 10716, 10718, 10720, 10722, 10724, 10726, 10728, 10730, 10732, 10734, 10736, 10738, 10740, 10742, 10744, 10746, 10748, 10750, 10752, 10754, 10756, 10758, 10760, 10762, 10764, 10766, 10768, 10770, 10772, 10774, 10776, 10778, 10780, 10782, 10784, 10786, 10788, 10790, 10792, 10794, 10796, 10798, 10800, 10802, 10804, 10806, 10808, 10810, 10812, 10814, 10816, 10818, 10820, 10822, 10824, 10826, 10828, 10830, 10832, 10834, 10836, 10838, 10840, 10842, 10844, 10846, 10848, 10850, 10852, 10854, 10856, 10858, 10860, 10862, 10864, 10866, 10868, 10870, 10872, 10874, 10876, 10878, 10880, 10882, 10884, 10886, 10888, 10890, 10892, 10894, 10896, 10898, 10900, 10902, 10904, 10906, 10908, 10910, 10912, 10914, 10916, 10918, 10920, 10922, 10924, 10926, 10928, 10930, 10932, 10934, 10936, 10938, 10940, 10942, 10944, 10946, 10948, 10950, 10952, 10954, 10956, 10958, 10960, 10962, 10964, 10966, 10968, 10970, 10972, 10974, 10976, 10978, 10980, 10982, 10984, 10986, 10988, 10990, 10992, 10994, 10996, 10998, 11000, 11002, 11004, 11006, 11008, 11010, 11012, 11014, 11016, 11018, 11020, 11022, 11024, 11026, 11028, 11030, 11032, 11034, 11036, 11038, 11040, 11042, 11044, 11046, 11048, 11050, 11052, 11054, 11056, 11058, 11060, 11062, 11064, 11066, 11068, 11070, 11072, 11074, 11076, 11078, 11080, 11082, 11084, 11086, 11088, 11090, 11092, 11094, 11096, 11098, 11100, 11102, 11104, 11106, 11108, 11110, 11112, 11114, 11116, 11118, 11120, 11122, 11124, 11126, 11128, 11130, 11132, 11134, 11136, 11138, 11140, 11142, 11144, 11146, 11148, 11150, 11152, 11154, 11156, 11158, 11160, 11162, 11164, 11166, 11168, 11170, 11172, 11174, 11176, 11178, 11180, 11182, 11184, 11186, 11188, 11190, 11192, 11194, 11196, 11198, 11200, 11202, 11204, 11206, 11208, 11210, 11212, 11214, 11216, 11218, 11220, 11222, 11224, 11226, 11228, 11230, 11232, 11234, 11236, 11238, 11240, 11242, 11244, 11246, 11248, 11250, 11252, 11254, 11256, 11258, 11260, 11262, 11264, 11266, 11268, 11270, 11272, 11274, 11276, 11278, 11280, 11282, 11284, 11286, 11288, 11290, 11292, 11294, 11296, 11298, 11300, 11302, 11304, 11306, 11308, 11310, 11312, 11314, 11316, 11318, 11320, 11322, 11324, 11326, 11328, 11330, 11332, 11334, 11336, 11338, 11340, 11342, 11344, 11346, 11348, 11350, 11352, 11354, 11356, 11358, 11360, 11362, 11364, 11366, 11368, 11370, 11372, 11374, 11376, 11378, 11380, 11382, 11384, 11386, 11388, 11390, 11392, 11394, 11396, 11398, 11400, 11402, 11404, 11406, 11408, 11410, 11412, 11414, 11416, 11418, 11420, 11422, 11424, 11426, 11428, 11430, 11432, 11434, 11436, 11438, 11440, 11442, 11444, 11446, 11448, 11450, 11452, 11454, 11456, 11458, 11460, 11462, 11464, 11466, 11468, 11470, 11472, 11474, 11476, 11478, 11480, 11482, 11484, 11486, 11488, 11490, 11492, 11494, 11496, 11498, 11500, 11502, 11504, 11506, 11508, 11510, 11512, 11514, 11516, 11518, 11520, 11522, 11524, 11526, 11528, 11530, 11532, 11534, 11536, 11538, 11540, 11542, 11544, 11546, 11548, 11550, 11552, 11554, 11556, 11558, 11560, 11562, 11564, 11566, 11568, 11570, 11572, 11574, 11576, 11578, 11580, 11582, 11584, 11586, 11588, 11590, 11592, 11594, 11596, 11598, 11600, 11602, 11604, 11606, 11608, 11610, 11612, 11614, 11616, 11618, 11620, 11622, 11624, 11626, 11628, 11630, 11632, 11634, 11636, 11638, 11640, 11642, 11644, 11646, 11648, 11650, 11652, 11654, 11656, 11658, 11660, 11662, 11664, 11666, 11668, 11670, 11672, 11674, 11676, 11678, 11680, 11682, 11684, 11686, 11688, 11690, 11692, 11694, 11696, 11698, 11700, 11702, 11704, 11706, 11708, 11710, 11712, 11714, 11716, 11718, 11720, 11722, 11724, 11726, 11728, 11730, 11732, 11734, 11736, 11738, 11740, 11742, 11744, 11746, 11748, 11750, 11752, 11754, 11756, 11758, 11760, 11762, 11764, 11766, 11768, 11770, 11772, 11774 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { 542, 0, -1, 543, -1, 518, 1127, -1, 519, 1255, -1, 520, 1256, -1, 521, 1256, -1, 522, 1256, -1, 543, 538, 544, -1, 544, -1, 545, -1, 950, -1, 779, -1, 970, -1, 965, -1, 966, -1, 846, -1, 973, -1, 792, -1, 714, -1, 717, -1, 722, -1, 735, -1, 894, -1, 563, -1, 922, -1, 924, -1, 930, -1, 925, -1, 929, -1, 745, -1, 693, -1, 971, -1, 591, -1, 918, -1, 611, -1, 934, -1, 560, -1, 558, -1, 936, -1, 684, -1, 976, -1, 975, -1, 743, -1, 982, -1, 550, -1, 589, -1, 614, -1, 979, -1, 820, -1, 586, -1, 615, -1, 753, -1, 685, -1, 781, -1, 907, -1, 978, -1, 972, -1, 711, -1, 718, -1, 731, -1, 736, -1, 862, -1, 562, -1, 688, -1, 794, -1, 801, -1, 931, -1, 802, -1, 744, -1, 701, -1, 565, -1, 692, -1, 630, -1, 935, -1, 681, -1, 708, -1, 911, -1, 755, -1, 775, -1, 551, -1, 557, -1, 740, -1, 959, -1, 1003, -1, 1035, -1, 782, -1, 1013, -1, 590, -1, 904, -1, 909, -1, 805, -1, 806, -1, 807, -1, 809, -1, 937, -1, 710, -1, 913, -1, 561, -1, 742, -1, 967, -1, 1001, -1, 996, -1, 825, -1, 829, -1, 840, -1, 737, -1, 851, -1, 1004, -1, 947, -1, 691, -1, 958, -1, 1015, -1, 1025, -1, 945, -1, 998, -1, 808, -1, 914, -1, 898, -1, 897, -1, 899, -1, 919, -1, 830, -1, 841, -1, 938, -1, 822, -1, 1039, -1, 949, -1, 818, -1, 948, -1, 1020, -1, 981, -1, 580, -1, 568, -1, 585, -1, 956, -1, -1, 1259, -1, -1, 815, -1, -1, 89, -1, -1, 65, -1, 374, -1, -1, 63, 1154, -1, 101, 380, 1252, 552, 553, -1, 492, -1, 516, -1, -1, 553, 556, -1, -1, 554, 555, -1, -1, 333, 1250, -1, 333, 12, -1, 333, 299, -1, 148, 333, 1250, -1, 148, 333, 12, -1, 464, 333, 1250, -1, 210, -1, 93, 255, 1251, -1, 475, 470, 1250, -1, 472, 1254, -1, 3, -1, 555, -1, 432, 1249, -1, 28, 1254, -1, 380, 1254, -1, 203, 380, 1254, -1, 203, 188, 1254, -1, 101, 472, 1252, 552, 553, -1, 33, 380, 1253, 552, 554, -1, 33, 472, 1253, 552, 554, -1, -1, 203, 116, 1244, -1, 33, 380, 1253, 559, 583, -1, 33, 380, 31, 559, 583, -1, 33, 472, 1253, 559, 583, -1, 33, 472, 31, 559, 583, -1, 142, 380, 1254, -1, 142, 380, 197, 159, 1254, -1, 142, 472, 1254, -1, 142, 472, 197, 159, 1254, -1, 142, 188, 1254, -1, 142, 188, 197, 159, 1254, -1, 101, 188, 1252, 552, 553, -1, 33, 188, 1253, 564, 472, 1254, -1, 27, -1, 142, -1, 101, 390, 546, 50, 1253, 566, -1, 101, 390, 1259, 566, -1, 101, 390, 197, 294, 159, 546, 50, 1253, 566, -1, 101, 390, 197, 294, 159, 1259, 566, -1, 566, 567, -1, -1, 630, -1, 851, -1, 692, -1, 755, -1, 829, -1, 956, -1, 403, 569, -1, 403, 258, 569, -1, 403, 401, 569, -1, 450, 953, -1, 401, 73, 40, 450, 953, -1, 571, -1, 572, 448, 573, -1, 572, 525, 573, -1, 572, 448, 122, -1, 572, 525, 122, -1, 570, -1, 572, 179, 105, -1, 446, 512, 577, -1, 69, 1250, -1, 390, 1250, -1, 390, 12, -1, 279, 578, -1, 380, 579, -1, 380, 12, -1, 401, 50, 579, -1, 401, 50, 12, -1, 401, 50, 122, -1, 498, 313, 1163, -1, 450, 412, 1250, -1, 1259, -1, 572, 537, 1259, -1, 574, -1, 573, 539, 574, -1, 576, -1, 699, -1, 12, -1, 356, 463, -1, 356, 87, -1, 369, 356, -1, 399, -1, 455, -1, 165, -1, 310, -1, 579, -1, 1250, -1, 12, -1, 3, -1, 1146, 1250, 1148, -1, 1146, 535, 1249, 536, 1250, -1, 699, -1, 122, -1, 258, -1, 1250, -1, 122, -1, -1, 1261, -1, 1250, -1, 372, 581, -1, 582, -1, 446, 512, -1, 450, 228, 253, -1, 401, 50, -1, 572, -1, 31, -1, 403, 569, -1, 580, -1, 403, 571, -1, 580, -1, 407, 572, -1, 407, 446, 512, -1, 407, 450, 228, 253, -1, 407, 401, 50, -1, 407, 31, -1, 403, 95, 587, 588, -1, 31, -1, 1241, -1, 125, -1, 199, -1, 75, -1, 136, 31, -1, 136, 440, -1, 136, 442, -1, 136, 337, -1, 136, 398, -1, 33, 435, 1098, 592, -1, 33, 435, 197, 159, 1098, 592, -1, 33, 435, 1098, 593, -1, 33, 435, 197, 159, 1098, 593, -1, 33, 435, 31, 203, 438, 1244, 403, 438, 1244, 1018, -1, 33, 435, 31, 203, 438, 1244, 325, 61, 1254, 403, 438, 1244, 1018, -1, 33, 208, 1242, 592, -1, 33, 208, 197, 159, 1242, 592, -1, 33, 208, 1242, 594, -1, 33, 208, 31, 203, 438, 1244, 403, 438, 1244, 1018, -1, 33, 208, 31, 203, 438, 1244, 325, 61, 1254, 403, 438, 1244, 1018, -1, 33, 397, 1242, 592, -1, 33, 397, 197, 159, 1242, 592, -1, 33, 485, 1242, 592, -1, 33, 485, 197, 159, 1242, 592, -1, 33, 268, 485, 1242, 592, -1, 33, 268, 485, 197, 159, 1242, 592, -1, 33, 268, 485, 31, 203, 438, 1244, 403, 438, 1244, 1018, -1, 33, 268, 485, 31, 203, 438, 1244, 325, 61, 1254, 403, 438, 1244, 1018, -1, 33, 175, 435, 1098, 592, -1, 33, 175, 435, 197, 159, 1098, 592, -1, 595, -1, 592, 539, 595, -1, 48, 331, 1242, 608, -1, 133, 331, 1242, 548, -1, 133, 331, 1242, 169, -1, 48, 331, 1242, -1, 27, 638, -1, 27, 197, 294, 159, 638, -1, 27, 82, 638, -1, 27, 82, 197, 294, 159, 638, -1, 33, 920, 1259, 596, -1, 33, 920, 1259, 142, 294, 299, -1, 33, 920, 1259, 403, 294, 299, -1, 33, 920, 1259, 403, 161, 40, 535, 1151, 536, -1, 33, 920, 1259, 142, 161, -1, 33, 920, 1259, 142, 161, 197, 159, -1, 33, 920, 1259, 403, 420, 606, -1, 33, 920, 1249, 403, 420, 606, -1, 33, 920, 1259, 403, 600, -1, 33, 920, 1259, 372, 600, -1, 33, 920, 1259, 403, 642, -1, 33, 920, 1259, 403, 640, -1, 33, 920, 1259, 27, 183, 648, 40, 196, 695, -1, 33, 920, 1259, 604, -1, 33, 920, 1259, 142, 196, -1, 33, 920, 1259, 142, 196, 197, 159, -1, 142, 920, 197, 159, 1259, 549, -1, 142, 920, 1259, 549, -1, 33, 920, 1259, 921, 458, 1127, 597, 598, -1, 33, 920, 1259, 725, -1, 27, 653, -1, 33, 94, 1244, 773, -1, 476, 94, 1244, -1, 142, 94, 197, 159, 1244, 549, -1, 142, 94, 1244, 549, -1, 403, 494, 307, -1, 78, 310, 1244, -1, 403, 494, 78, -1, 403, 264, -1, 403, 469, -1, 146, 453, 1244, -1, 146, 34, 453, 1244, -1, 146, 371, 453, 1244, -1, 146, 453, 31, -1, 146, 453, 472, -1, 135, 453, 1244, -1, 135, 453, 31, -1, 135, 453, 472, -1, 146, 387, 1244, -1, 146, 34, 387, 1244, -1, 146, 371, 387, 1244, -1, 135, 387, 1244, -1, 210, 1242, -1, 290, 210, 1242, -1, 304, 815, -1, 294, 304, -1, 326, 448, 1253, -1, 403, 25, 272, 607, -1, 403, 438, 1244, -1, 403, 600, -1, 372, 600, -1, 371, 196, 599, -1, 146, 385, 253, 395, -1, 135, 385, 253, 395, -1, 174, 385, 253, 395, -1, 290, 174, 385, 253, 395, -1, 725, -1, 403, 122, 1151, -1, 142, 122, -1, 80, 815, -1, -1, 473, 1151, -1, -1, 295, -1, 180, -1, 122, -1, 473, 208, 1244, -1, 535, 602, 536, -1, 492, 600, -1, -1, 603, -1, 602, 539, 603, -1, 1262, 525, 786, -1, 1262, -1, 1262, 537, 1262, 525, 786, -1, 1262, 537, 1262, -1, 605, -1, 604, 605, -1, 373, -1, 373, 552, 699, -1, 403, 697, -1, 403, 183, 648, -1, 1251, -1, 122, -1, 1259, -1, 122, -1, 173, 479, 492, 535, 610, 536, -1, 173, 479, 203, 535, 1190, 536, -1, 173, 479, 179, 535, 1190, 536, 448, 535, 1190, 536, -1, 122, -1, 1261, 1249, -1, 609, -1, 610, 539, 609, -1, 33, 458, 815, 612, -1, 613, -1, 612, 539, 613, -1, 27, 49, 1113, 549, -1, 142, 49, 197, 159, 1259, 549, -1, 142, 49, 1259, 549, -1, 33, 49, 1259, 921, 458, 1127, 597, 549, -1, 77, 1036, -1, 77, 31, -1, 99, 622, 1242, 658, 616, 617, 618, 623, 552, 619, 1109, -1, 99, 535, 1000, 536, 448, 617, 618, 552, 619, -1, 179, -1, 448, -1, 351, -1, -1, 1250, -1, 421, -1, 422, -1, 620, -1, 535, 625, 536, -1, 620, 621, -1, -1, 56, -1, 178, -1, 128, 974, 1250, -1, 299, 974, 1250, -1, 103, -1, 193, -1, 353, 974, 1250, -1, 152, 974, 1250, -1, 174, 353, 659, -1, 174, 353, 528, -1, 174, 294, 299, 659, -1, 174, 294, 299, 528, -1, 174, 299, 659, -1, 174, 299, 528, -1, 147, 1250, -1, 56, -1, -1, 624, 129, 1250, -1, -1, 473, -1, -1, 626, -1, 625, 539, 626, -1, 1262, 627, -1, 576, -1, 699, -1, 528, -1, 122, -1, 535, 628, 536, -1, -1, 629, -1, 628, 539, 629, -1, 576, -1, 101, 631, 435, 1242, 535, 632, 536, 670, 671, 675, 676, 677, 678, -1, 101, 631, 435, 197, 294, 159, 1242, 535, 632, 536, 670, 671, 675, 676, 677, 678, -1, 101, 631, 435, 1242, 304, 815, 633, 671, 675, 676, 677, 678, -1, 101, 631, 435, 197, 294, 159, 1242, 304, 815, 633, 671, 675, 676, 677, 678, -1, 101, 631, 435, 1242, 331, 304, 1242, 633, 608, 671, 675, 676, 677, 678, -1, 101, 631, 435, 197, 294, 159, 1242, 331, 304, 1242, 633, 608, 671, 675, 676, 677, 678, -1, 442, -1, 440, -1, 258, 442, -1, 258, 440, -1, 184, 442, -1, 184, 440, -1, 469, -1, -1, 634, -1, -1, 535, 635, 536, -1, -1, 636, -1, 634, 539, 636, -1, 637, -1, 635, 539, 637, -1, 638, -1, 650, -1, 653, -1, 639, -1, 653, -1, 1259, 1127, 643, 641, 723, 644, -1, 1259, 644, -1, 1259, 492, 314, 644, -1, 88, 1259, -1, 88, 122, -1, 640, -1, -1, 423, 1259, -1, 423, 122, -1, 642, -1, -1, 644, 645, -1, -1, 94, 1244, 646, -1, 646, -1, 649, -1, 80, 815, -1, 294, 299, -1, 299, -1, 466, 647, 891, 679, -1, 345, 242, 891, 679, -1, 74, 535, 1151, 536, 657, -1, 122, 1152, -1, 183, 648, 40, 196, 695, -1, 183, 648, 40, 535, 1151, 536, 424, -1, 362, 1242, 658, 662, 666, -1, 301, 137, -1, 301, 294, 137, -1, -1, 34, -1, 61, 122, -1, 124, -1, 294, 124, -1, 212, 125, -1, 212, 199, -1, 254, 1242, 651, -1, 651, 205, 652, -1, 651, 156, 652, -1, -1, 85, -1, 88, -1, 95, -1, 123, -1, 196, -1, 183, -1, 209, -1, 420, -1, 423, -1, 31, -1, 94, 1244, 654, -1, 654, -1, 74, 535, 1151, 536, 773, -1, 466, 647, 535, 659, 536, 661, 891, 679, 773, -1, 466, 680, 773, -1, 345, 242, 535, 659, 536, 661, 891, 679, 773, -1, 345, 242, 680, 773, -1, 155, 853, 535, 663, 536, 661, 891, 679, 665, 773, -1, 175, 242, 535, 659, 536, 362, 1242, 658, 662, 666, 773, -1, 94, 1244, 656, -1, 656, -1, 74, 535, 1151, 536, 773, -1, 294, 299, 773, -1, 290, 210, -1, -1, 535, 659, 536, -1, -1, 660, -1, 659, 539, 660, -1, 1259, -1, 204, 535, 659, 536, -1, -1, 266, 180, -1, 266, 330, -1, 266, 409, -1, -1, 664, -1, 663, 539, 664, -1, 856, 492, 901, -1, 856, 492, 312, 535, 901, 536, -1, 489, 535, 1151, 536, -1, -1, 667, -1, 668, -1, 667, 668, -1, 668, 667, -1, -1, 310, 471, 669, -1, 310, 127, 669, -1, 290, 26, -1, 374, -1, 65, -1, 403, 299, 658, -1, 403, 122, 658, -1, 211, 535, 1241, 536, -1, -1, 672, -1, -1, 331, 61, 1259, 535, 673, 536, -1, 674, -1, 673, 539, 674, -1, 1259, 859, 547, -1, 1156, 859, 547, -1, 535, 1151, 536, 859, 547, -1, 473, 1244, -1, -1, 492, 600, -1, 494, 307, -1, -1, 310, 86, 142, -1, 310, 86, 127, 386, -1, 310, 86, 342, 386, -1, -1, 438, 1244, -1, -1, 473, 208, 438, 1244, -1, -1, 473, 208, 1244, -1, 101, 420, 547, 992, 310, 682, 179, 1088, -1, 101, 420, 197, 294, 159, 815, 992, 310, 682, 179, 1088, -1, 683, -1, 682, 539, 683, -1, 1259, -1, 1156, -1, 535, 1151, 536, -1, 33, 420, 815, 403, 420, 606, -1, 33, 420, 197, 159, 815, 403, 420, 606, -1, 101, 631, 435, 686, 40, 1039, 687, -1, 101, 631, 435, 197, 294, 159, 686, 40, 1039, 687, -1, 1242, 658, 675, 676, 677, 678, -1, 492, 115, -1, 492, 290, 115, -1, -1, 101, 690, 268, 485, 689, 40, 1039, 687, -1, 101, 690, 268, 485, 197, 294, 159, 689, 40, 1039, 687, -1, 1242, 658, 675, 601, 678, -1, 469, -1, -1, 364, 268, 485, 548, 1242, 687, -1, 101, 631, 397, 1242, 694, -1, 101, 631, 397, 197, 294, 159, 1242, 694, -1, 33, 397, 1242, 696, -1, 33, 397, 197, 159, 1242, 696, -1, 696, -1, -1, 535, 696, 536, -1, -1, 697, -1, 696, 697, -1, 40, 1129, -1, 62, 699, -1, 114, -1, 290, 114, -1, 206, 698, 699, -1, 264, -1, 269, 699, -1, 274, 699, -1, 290, 269, -1, 290, 274, -1, 325, 61, 815, -1, 397, 278, 815, -1, 418, 552, 699, -1, 373, -1, 373, 552, 699, -1, 469, -1, 61, -1, -1, 5, -1, 526, 5, -1, 527, 5, -1, 1251, -1, 699, -1, 700, 539, 699, -1, 101, 863, 702, 707, 245, 1244, -1, 101, 863, 702, 707, 245, 1244, 191, 703, 704, 706, -1, 457, -1, -1, 1244, -1, 1244, 816, -1, 213, 703, -1, -1, 477, 703, -1, 290, 477, -1, 705, -1, -1, 348, -1, -1, 101, 438, 1244, 709, 261, 1250, 601, -1, 326, 1253, -1, -1, 142, 438, 1244, -1, 142, 438, 197, 159, 1244, -1, 101, 162, 1244, 552, 712, -1, 101, 162, 197, 294, 159, 1244, 552, 712, -1, 712, 713, -1, -1, 390, 1244, -1, 484, 579, -1, 179, 579, -1, 65, -1, 33, 162, 1244, 471, 715, -1, 715, 716, -1, -1, 448, 579, -1, 33, 162, 1244, 564, 811, 1244, -1, 33, 162, 1244, 564, 810, 815, -1, 33, 162, 1244, 564, 30, 879, -1, 33, 162, 1244, 564, 68, 535, 1127, 40, 1127, 536, -1, 33, 162, 1244, 564, 140, 1127, -1, 33, 162, 1244, 564, 181, 867, -1, 33, 162, 1244, 564, 312, 903, -1, 33, 162, 1244, 564, 312, 76, 815, 473, 1244, -1, 33, 162, 1244, 564, 312, 166, 815, 473, 1244, -1, 33, 162, 1244, 564, 349, 867, -1, 33, 162, 1244, 564, 383, 867, -1, 33, 162, 1244, 564, 451, 173, 1127, 245, 1244, -1, 33, 162, 1244, 564, 458, 1127, -1, 101, 175, 115, 496, 1244, 721, 723, -1, 191, 703, -1, 290, 191, -1, 477, 703, -1, 290, 477, -1, 719, -1, 720, 719, -1, 720, -1, -1, 33, 175, 115, 496, 1244, 721, 725, -1, 33, 175, 115, 496, 1244, 720, -1, 314, 535, 724, 536, -1, -1, 728, -1, 724, 539, 728, -1, 314, 535, 726, 536, -1, 727, -1, 726, 539, 727, -1, 728, -1, 403, 728, -1, 27, 728, -1, 142, 729, -1, 729, 730, -1, 1262, -1, 1250, -1, 101, 400, 1244, 732, 734, 175, 115, 496, 1244, 723, -1, 101, 400, 197, 294, 159, 1244, 732, 734, 175, 115, 496, 1244, 723, -1, 458, 1250, -1, -1, 484, 1250, -1, 484, 299, -1, 733, -1, -1, 33, 400, 1244, 733, 725, -1, 33, 400, 1244, 733, -1, 33, 400, 1244, 725, -1, 101, 175, 435, 1242, 535, 632, 536, 670, 400, 1244, 723, -1, 101, 175, 435, 197, 294, 159, 1242, 535, 632, 536, 670, 400, 1244, 723, -1, 101, 175, 435, 1242, 331, 304, 1242, 633, 608, 400, 1244, 723, -1, 101, 175, 435, 197, 294, 159, 1242, 331, 304, 1242, 633, 608, 400, 1244, 723, -1, 202, 175, 390, 1244, 739, 179, 400, 1244, 224, 1244, 723, -1, 255, 448, -1, 154, -1, 738, 535, 1100, 536, -1, -1, 101, 472, 265, 173, 741, 400, 1244, 723, -1, 101, 472, 265, 197, 294, 159, 173, 741, 400, 1244, 723, -1, 1253, -1, 472, -1, 142, 472, 265, 173, 741, 400, 1244, -1, 142, 472, 265, 197, 159, 173, 741, 400, 1244, -1, 33, 472, 265, 173, 741, 400, 1244, 725, -1, 101, 338, 1244, 310, 1242, 750, 751, 748, 746, 747, -1, 33, 338, 1244, 310, 1242, 749, 746, 747, -1, 473, 535, 1151, 536, -1, -1, 492, 74, 535, 1151, 536, -1, -1, 448, 1254, -1, -1, 448, 1254, -1, -1, 40, 3, -1, -1, 173, 752, -1, -1, 31, -1, 396, -1, 218, -1, 471, -1, 127, -1, 101, 25, 272, 1244, 458, 754, 191, 703, -1, 208, -1, 435, -1, 101, 863, 453, 1244, 756, 757, 310, 1242, 759, 765, 768, 158, 769, 1247, 535, 770, 536, -1, 101, 863, 94, 453, 1244, 29, 757, 310, 1242, 772, 773, 173, 143, 385, 768, 158, 769, 1247, 535, 770, 536, -1, 52, -1, 29, -1, 219, 304, -1, 758, -1, 757, 315, 758, -1, 218, -1, 127, -1, 471, -1, 471, 304, 659, -1, 456, -1, 363, 760, -1, -1, 761, -1, 760, 761, -1, 762, 763, 974, 764, -1, 284, -1, 308, -1, 435, -1, 385, -1, 1259, -1, 173, 766, 767, -1, -1, 143, -1, -1, 385, -1, 419, -1, 488, 535, 1151, 536, -1, -1, 181, -1, 349, -1, 771, -1, 770, 539, 771, -1, -1, 1249, -1, 5, -1, 1250, -1, 1262, -1, 179, 1242, -1, -1, -1, 773, 774, -1, 294, 124, -1, 124, -1, 212, 199, -1, 212, 125, -1, 294, 475, -1, 290, 210, -1, 101, 153, 453, 1244, 310, 1262, 158, 769, 1247, 535, 536, -1, 101, 153, 453, 1244, 310, 1262, 488, 776, 158, 769, 1247, 535, 536, -1, 777, -1, 776, 37, 777, -1, 1259, 203, 535, 778, 536, -1, 6, -1, 778, 539, 6, -1, 33, 153, 453, 1244, 780, -1, 146, -1, 146, 371, -1, 146, 34, -1, 135, -1, 101, 43, 815, 74, 535, 1151, 536, 773, -1, 101, 863, 30, 1247, 877, 783, -1, 101, 863, 30, 1247, 787, -1, 101, 312, 901, 783, -1, 101, 458, 815, 783, -1, 101, 458, 815, -1, 101, 458, 815, 40, 535, 1111, 536, -1, 101, 458, 815, 40, 150, 535, 790, 536, -1, 101, 458, 815, 40, 355, 783, -1, 101, 443, 393, 329, 815, 783, -1, 101, 443, 393, 134, 815, 783, -1, 101, 443, 393, 441, 815, 783, -1, 101, 443, 393, 91, 815, 783, -1, 101, 81, 815, 783, -1, 101, 81, 197, 294, 159, 815, 783, -1, 101, 81, 815, 179, 815, -1, 101, 81, 197, 294, 159, 815, 179, 815, -1, 535, 784, 536, -1, 785, -1, 784, 539, 785, -1, 1262, 525, 786, -1, 1262, -1, 874, -1, 1267, -1, 1188, -1, 699, -1, 1250, -1, 291, -1, 535, 788, 536, -1, 789, -1, 788, 539, 789, -1, 3, 525, 786, -1, 791, -1, -1, 1250, -1, 791, 539, 1250, -1, 33, 458, 815, 27, 478, 793, 1250, -1, 33, 458, 815, 27, 478, 793, 1250, 52, 1250, -1, 33, 458, 815, 27, 478, 793, 1250, 29, 1250, -1, 33, 458, 815, 368, 478, 1250, 448, 1250, -1, 33, 458, 815, 142, 478, 1250, -1, 197, 294, 159, -1, -1, 101, 312, 76, 815, 797, 173, 458, 1127, 473, 1244, 798, 40, 795, -1, 796, -1, 795, 539, 796, -1, 312, 1249, 901, 799, 800, -1, 312, 1249, 903, 799, 800, -1, 181, 1249, 867, -1, 181, 1249, 535, 1194, 536, 867, -1, 423, 1127, -1, 122, -1, -1, 166, 815, -1, -1, 173, 393, -1, 173, 316, 61, 815, -1, -1, 359, -1, -1, 101, 312, 166, 815, 473, 1244, -1, 33, 312, 166, 815, 473, 1244, 27, 795, -1, 33, 312, 166, 815, 473, 1244, 142, 803, -1, 804, -1, 803, 539, 804, -1, 312, 1249, 535, 1194, 536, -1, 181, 1249, 535, 1194, 536, -1, 142, 312, 76, 815, 473, 1244, 549, -1, 142, 312, 76, 197, 159, 815, 473, 1244, 549, -1, 142, 312, 166, 815, 473, 1244, 549, -1, 142, 312, 166, 197, 159, 815, 473, 1244, 549, -1, 142, 325, 61, 1254, 549, -1, 358, 325, 61, 1254, 448, 1253, -1, 142, 810, 197, 159, 814, 549, -1, 142, 810, 814, 549, -1, 142, 812, 197, 159, 1243, 549, -1, 142, 812, 1243, 549, -1, 142, 813, 1244, 310, 815, 549, -1, 142, 813, 197, 159, 1244, 310, 815, 549, -1, 142, 458, 817, 549, -1, 142, 458, 197, 159, 817, 549, -1, 142, 140, 817, 549, -1, 142, 140, 197, 159, 817, 549, -1, 142, 208, 89, 814, 549, -1, 142, 208, 89, 197, 159, 814, 549, -1, 435, -1, 397, -1, 485, -1, 268, 485, -1, 208, -1, 175, 435, -1, 81, -1, 98, -1, 420, -1, 443, 393, 329, -1, 443, 393, 134, -1, 443, 393, 441, -1, 443, 393, 91, -1, 812, -1, 116, -1, 380, -1, 428, -1, 438, -1, 25, 272, -1, 153, 453, -1, 162, -1, 175, 115, 496, -1, 707, 245, -1, 352, -1, 390, -1, 400, -1, 338, -1, 387, -1, 453, -1, 815, -1, 814, 539, 815, -1, 1259, -1, 1259, 816, -1, 537, 1245, -1, 816, 537, 1245, -1, 1127, -1, 817, 539, 1127, -1, 456, 1053, 1100, 819, 549, -1, 97, 196, -1, 373, 196, -1, -1, 84, 310, 810, 815, 226, 821, -1, 84, 310, 82, 815, 226, 821, -1, 84, 310, 811, 1244, 226, 821, -1, 84, 310, 458, 1127, 226, 821, -1, 84, 310, 140, 1127, 226, 821, -1, 84, 310, 30, 879, 226, 821, -1, 84, 310, 181, 867, 226, 821, -1, 84, 310, 312, 903, 226, 821, -1, 84, 310, 94, 1244, 310, 815, 226, 821, -1, 84, 310, 94, 1244, 310, 140, 815, 226, 821, -1, 84, 310, 813, 1244, 310, 815, 226, 821, -1, 84, 310, 349, 867, 226, 821, -1, 84, 310, 383, 867, 226, 821, -1, 84, 310, 451, 173, 1127, 245, 1244, 226, 821, -1, 84, 310, 312, 76, 815, 473, 1244, 226, 821, -1, 84, 310, 312, 166, 815, 473, 1244, 226, 821, -1, 84, 310, 246, 303, 699, 226, 821, -1, 84, 310, 68, 535, 1127, 40, 1127, 536, 226, 821, -1, 1250, -1, 299, -1, 395, 244, 823, 310, 810, 815, 226, 824, -1, 395, 244, 823, 310, 82, 815, 226, 824, -1, 395, 244, 823, 310, 811, 1244, 226, 824, -1, 395, 244, 823, 310, 458, 1127, 226, 824, -1, 395, 244, 823, 310, 140, 1127, 226, 824, -1, 395, 244, 823, 310, 30, 879, 226, 824, -1, 395, 244, 823, 310, 181, 867, 226, 824, -1, 395, 244, 823, 310, 246, 303, 699, 226, 824, -1, 395, 244, 823, 310, 349, 867, 226, 824, -1, 395, 244, 823, 310, 383, 867, 226, 824, -1, 173, 579, -1, -1, 1250, -1, 299, -1, 167, 826, -1, 277, 826, -1, 1036, -1, 827, 1036, -1, 285, 828, 1036, -1, 346, 828, 1036, -1, 170, 828, 1036, -1, 247, 828, 1036, -1, 24, 1251, 828, 1036, -1, 366, 1251, 828, 1036, -1, 1251, 828, 1036, -1, 31, 828, 1036, -1, 177, 828, 1036, -1, 177, 1251, 828, 1036, -1, 177, 31, 828, 1036, -1, 51, 828, 1036, -1, 51, 1251, 828, 1036, -1, 51, 31, 828, 1036, -1, 179, -1, 203, -1, 827, -1, -1, 185, 831, 310, 836, 448, 837, 839, 845, -1, 378, 831, 310, 836, 179, 837, 845, 549, -1, 378, 185, 313, 173, 831, 310, 836, 179, 837, 845, 549, -1, 832, -1, 31, -1, 31, 347, -1, 31, 535, 659, 536, -1, 31, 347, 535, 659, 536, -1, 833, -1, 832, 539, 833, -1, 396, 658, -1, 362, 658, -1, 101, 658, -1, 33, 433, -1, 1259, 658, -1, 835, -1, 834, 539, 835, -1, 1259, -1, 835, 537, 1259, -1, 1241, -1, 435, 1241, -1, 397, 1241, -1, 175, 115, 496, 1243, -1, 175, 400, 1243, -1, 181, 866, -1, 349, 866, -1, 383, 866, -1, 116, 1243, -1, 140, 814, -1, 245, 1243, -1, 246, 303, 700, -1, 328, 834, -1, 390, 1243, -1, 438, 1243, -1, 458, 814, -1, 31, 436, 203, 390, 1243, -1, 31, 398, 203, 390, 1243, -1, 31, 182, 203, 390, 1243, -1, 31, 350, 203, 390, 1243, -1, 31, 384, 203, 390, 1243, -1, 838, -1, 837, 539, 838, -1, 1253, -1, 188, 1253, -1, 492, 185, 313, -1, -1, 185, 832, 448, 1254, 845, -1, 185, 832, 448, 1254, 492, 842, 845, -1, 378, 832, 179, 1254, 845, 549, -1, 378, 1259, 313, 173, 832, 179, 1254, 845, 549, -1, 842, 539, 843, -1, 843, -1, 1262, 844, -1, 313, -1, 455, -1, 165, -1, 186, 61, 1253, -1, -1, 33, 122, 347, 847, 849, -1, 847, 848, -1, -1, 203, 390, 1243, -1, 173, 380, 1254, -1, 173, 472, 1254, -1, 185, 831, 310, 850, 448, 837, 839, -1, 378, 831, 310, 850, 179, 837, 549, -1, 378, 185, 313, 173, 831, 310, 850, 179, 837, 549, -1, 436, -1, 182, -1, 384, -1, 398, -1, 459, -1, 391, -1, 101, 852, 208, 548, 546, 310, 1098, 853, 535, 854, 536, 857, 647, 601, 678, 1109, -1, 101, 852, 208, 548, 197, 294, 159, 1244, 310, 1098, 853, 535, 854, 536, 857, 647, 601, 678, 1109, -1, 466, -1, -1, 473, 1244, -1, -1, 856, -1, 854, 539, 856, -1, 859, 547, 860, 861, -1, 859, 815, 600, 860, 861, -1, 1259, 855, -1, 1156, 855, -1, 535, 1151, 536, 855, -1, 204, 535, 858, 536, -1, -1, 856, -1, 858, 539, 856, -1, 80, 815, -1, -1, 41, -1, 132, -1, -1, 515, 170, -1, 515, 247, -1, -1, 101, 863, 181, 1247, 868, 377, 873, 881, 887, -1, 101, 863, 181, 1247, 868, 377, 435, 535, 893, 536, 881, 887, -1, 101, 863, 181, 1247, 868, 881, 887, -1, 101, 863, 349, 1247, 868, 881, 887, -1, 315, 370, -1, -1, 535, 865, 536, -1, 535, 536, -1, 870, -1, 865, 539, 870, -1, 867, -1, 866, 539, 867, -1, 1247, 864, -1, 1266, -1, 1259, -1, 1259, 1213, -1, 535, 869, 536, -1, 535, 536, -1, 875, -1, 869, 539, 875, -1, 871, 872, 874, -1, 872, 871, 874, -1, 872, 874, -1, 871, 874, -1, 874, -1, 203, -1, 319, -1, 215, -1, 203, 319, -1, 481, -1, 1260, -1, 874, -1, 1127, -1, 1260, 816, 530, 458, -1, 405, 1260, 816, 530, 458, -1, 870, -1, 870, 122, 1151, -1, 870, 525, 1151, -1, 870, -1, 535, 528, 536, -1, 535, 878, 536, -1, 535, 316, 61, 878, 536, -1, 535, 878, 316, 61, 878, 536, -1, 876, -1, 878, 539, 876, -1, 1247, 877, -1, 879, -1, 880, 539, 879, -1, 882, -1, -1, 884, -1, 882, 884, -1, 64, 310, 299, 216, -1, 377, 299, 310, 299, 216, -1, 425, -1, 200, -1, 416, -1, 487, -1, 163, 395, 126, -1, 163, 395, 225, -1, 395, 126, -1, 395, 225, -1, 250, -1, 294, 250, -1, 100, 699, -1, 386, 699, -1, 430, 815, -1, 584, -1, 327, 1259, -1, 40, 885, -1, 245, 579, -1, 451, 890, -1, 491, -1, 883, -1, 1250, -1, 1250, 539, 1250, -1, 375, 1151, -1, 886, -1, 53, 46, 888, 149, -1, -1, 888, 889, 538, -1, -1, 545, -1, 886, -1, 173, 458, 1127, -1, 890, 539, 173, 458, 1127, -1, 492, 783, -1, -1, 872, 874, -1, 892, -1, 893, 539, 892, -1, 33, 181, 867, 895, 896, -1, 33, 349, 867, 895, 896, -1, 33, 383, 867, 895, 896, -1, 883, -1, 895, 883, -1, 374, -1, -1, 142, 181, 866, 549, -1, 142, 181, 197, 159, 866, 549, -1, 142, 349, 866, 549, -1, 142, 349, 197, 159, 866, 549, -1, 142, 383, 866, 549, -1, 142, 383, 197, 159, 866, 549, -1, 142, 30, 880, 549, -1, 142, 30, 197, 159, 880, 549, -1, 142, 312, 902, 549, -1, 142, 312, 197, 159, 902, 549, -1, 535, 1127, 536, -1, 535, 1127, 539, 1127, 536, -1, 535, 291, 539, 1127, 536, -1, 535, 1127, 539, 291, 536, -1, 1185, -1, 1259, 537, 901, -1, 903, -1, 902, 539, 903, -1, 901, 900, -1, 138, 905, -1, 906, -1, 905, 906, -1, 1250, -1, 245, 579, -1, 101, 68, 535, 1127, 40, 1127, 536, 492, 181, 867, 908, -1, 101, 68, 535, 1127, 40, 1127, 536, 494, 181, 908, -1, 101, 68, 535, 1127, 40, 1127, 536, 492, 215, 908, -1, 40, 201, -1, 40, 44, -1, -1, 142, 68, 910, 535, 1127, 40, 1127, 536, 549, -1, 197, 159, -1, -1, 101, 863, 451, 173, 1127, 245, 1244, 535, 912, 536, -1, 179, 415, 492, 181, 867, 539, 448, 415, 492, 181, 867, -1, 448, 415, 492, 181, 867, 539, 179, 415, 492, 181, 867, -1, 179, 415, 492, 181, 867, -1, 448, 415, 492, 181, 867, -1, 142, 451, 910, 173, 1127, 245, 1244, 549, -1, 365, 917, 915, 548, 1242, -1, 365, 917, 390, 548, 1244, -1, 365, 917, 916, 548, 546, -1, 208, -1, 435, -1, 433, -1, 116, -1, 535, 983, 536, -1, -1, 33, 438, 1244, 403, 600, -1, 33, 438, 1244, 372, 600, -1, 33, 30, 879, 368, 448, 1244, -1, 33, 81, 815, 368, 448, 1244, -1, 33, 98, 815, 368, 448, 1244, -1, 33, 116, 1244, 368, 448, 1244, -1, 33, 140, 815, 368, 448, 1244, -1, 33, 140, 815, 368, 94, 1244, 448, 1244, -1, 33, 175, 115, 496, 1244, 368, 448, 1244, -1, 33, 181, 867, 368, 448, 1244, -1, 33, 188, 1252, 368, 448, 1252, -1, 33, 707, 245, 1244, 368, 448, 1244, -1, 33, 312, 76, 815, 473, 1244, 368, 448, 1244, -1, 33, 312, 166, 815, 473, 1244, 368, 448, 1244, -1, 33, 338, 1244, 310, 1242, 368, 448, 1244, -1, 33, 338, 197, 159, 1244, 310, 1242, 368, 448, 1244, -1, 33, 349, 867, 368, 448, 1244, -1, 33, 352, 1244, 368, 448, 1244, -1, 33, 383, 867, 368, 448, 1244, -1, 33, 390, 1244, 368, 448, 1244, -1, 33, 400, 1244, 368, 448, 1244, -1, 33, 428, 1244, 368, 448, 1244, -1, 33, 435, 1098, 368, 448, 1244, -1, 33, 435, 197, 159, 1098, 368, 448, 1244, -1, 33, 397, 1242, 368, 448, 1244, -1, 33, 397, 197, 159, 1242, 368, 448, 1244, -1, 33, 485, 1242, 368, 448, 1244, -1, 33, 485, 197, 159, 1242, 368, 448, 1244, -1, 33, 268, 485, 1242, 368, 448, 1244, -1, 33, 268, 485, 197, 159, 1242, 368, 448, 1244, -1, 33, 208, 1242, 368, 448, 1244, -1, 33, 208, 197, 159, 1242, 368, 448, 1244, -1, 33, 175, 435, 1098, 368, 448, 1244, -1, 33, 175, 435, 197, 159, 1098, 368, 448, 1244, -1, 33, 435, 1098, 368, 920, 1244, 448, 1244, -1, 33, 435, 197, 159, 1098, 368, 920, 1244, 448, 1244, -1, 33, 485, 1242, 368, 920, 1244, 448, 1244, -1, 33, 485, 197, 159, 1242, 368, 920, 1244, 448, 1244, -1, 33, 268, 485, 1242, 368, 920, 1244, 448, 1244, -1, 33, 268, 485, 197, 159, 1242, 368, 920, 1244, 448, 1244, -1, 33, 435, 1098, 368, 94, 1244, 448, 1244, -1, 33, 435, 197, 159, 1098, 368, 94, 1244, 448, 1244, -1, 33, 175, 435, 1098, 368, 920, 1244, 448, 1244, -1, 33, 175, 435, 197, 159, 1098, 368, 920, 1244, 448, 1244, -1, 33, 387, 1244, 310, 1242, 368, 448, 1244, -1, 33, 453, 1244, 310, 1242, 368, 448, 1244, -1, 33, 153, 453, 1244, 368, 448, 1244, -1, 33, 380, 1252, 368, 448, 1252, -1, 33, 472, 1252, 368, 448, 1252, -1, 33, 438, 1244, 368, 448, 1244, -1, 33, 420, 815, 368, 448, 1244, -1, 33, 443, 393, 329, 815, 368, 448, 1244, -1, 33, 443, 393, 134, 815, 368, 448, 1244, -1, 33, 443, 393, 441, 815, 368, 448, 1244, -1, 33, 443, 393, 91, 815, 368, 448, 1244, -1, 33, 458, 815, 368, 448, 1244, -1, 33, 458, 815, 368, 49, 1244, 448, 1244, 549, -1, 82, -1, -1, 403, 115, -1, -1, 33, 181, 867, 923, 130, 310, 162, 1244, -1, 33, 349, 867, 923, 130, 310, 162, 1244, -1, 33, 383, 867, 923, 130, 310, 162, 1244, -1, 33, 453, 1244, 310, 1242, 923, 130, 310, 162, 1244, -1, 33, 268, 485, 1242, 923, 130, 310, 162, 1244, -1, 33, 208, 1242, 923, 130, 310, 162, 1244, -1, 290, -1, -1, 33, 30, 879, 403, 390, 1244, -1, 33, 81, 815, 403, 390, 1244, -1, 33, 98, 815, 403, 390, 1244, -1, 33, 140, 815, 403, 390, 1244, -1, 33, 162, 1244, 403, 390, 1244, -1, 33, 181, 867, 403, 390, 1244, -1, 33, 312, 903, 403, 390, 1244, -1, 33, 312, 76, 815, 473, 1244, 403, 390, 1244, -1, 33, 312, 166, 815, 473, 1244, 403, 390, 1244, -1, 33, 349, 867, 403, 390, 1244, -1, 33, 383, 867, 403, 390, 1244, -1, 33, 435, 1098, 403, 390, 1244, -1, 33, 435, 197, 159, 1098, 403, 390, 1244, -1, 33, 420, 815, 403, 390, 1244, -1, 33, 443, 393, 329, 815, 403, 390, 1244, -1, 33, 443, 393, 134, 815, 403, 390, 1244, -1, 33, 443, 393, 441, 815, 403, 390, 1244, -1, 33, 443, 393, 91, 815, 403, 390, 1244, -1, 33, 397, 1242, 403, 390, 1244, -1, 33, 397, 197, 159, 1242, 403, 390, 1244, -1, 33, 485, 1242, 403, 390, 1244, -1, 33, 485, 197, 159, 1242, 403, 390, 1244, -1, 33, 268, 485, 1242, 403, 390, 1244, -1, 33, 268, 485, 197, 159, 1242, 403, 390, 1244, -1, 33, 175, 435, 1098, 403, 390, 1244, -1, 33, 175, 435, 197, 159, 1098, 403, 390, 1244, -1, 33, 458, 815, 403, 390, 1244, -1, 33, 312, 903, 403, 535, 926, 536, -1, 927, -1, 926, 539, 927, -1, 1262, 525, 291, -1, 1262, 525, 928, -1, 1262, -1, 874, -1, 1267, -1, 1188, -1, 699, -1, 1250, -1, 33, 458, 815, 403, 535, 926, 536, -1, 33, 30, 879, 326, 448, 1253, -1, 33, 81, 815, 326, 448, 1253, -1, 33, 98, 815, 326, 448, 1253, -1, 33, 116, 1244, 326, 448, 1253, -1, 33, 140, 815, 326, 448, 1253, -1, 33, 181, 867, 326, 448, 1253, -1, 33, 707, 245, 1244, 326, 448, 1253, -1, 33, 246, 303, 699, 326, 448, 1253, -1, 33, 312, 903, 326, 448, 1253, -1, 33, 312, 76, 815, 473, 1244, 326, 448, 1253, -1, 33, 312, 166, 815, 473, 1244, 326, 448, 1253, -1, 33, 349, 867, 326, 448, 1253, -1, 33, 383, 867, 326, 448, 1253, -1, 33, 390, 1244, 326, 448, 1253, -1, 33, 458, 815, 326, 448, 1253, -1, 33, 438, 1244, 326, 448, 1253, -1, 33, 420, 815, 326, 448, 1253, -1, 33, 443, 393, 134, 815, 326, 448, 1253, -1, 33, 443, 393, 91, 815, 326, 448, 1253, -1, 33, 175, 115, 496, 1244, 326, 448, 1253, -1, 33, 400, 1244, 326, 448, 1253, -1, 33, 153, 453, 1244, 326, 448, 1253, -1, 33, 352, 1244, 326, 448, 1253, -1, 33, 428, 1244, 326, 448, 1253, -1, 101, 352, 1244, 891, -1, 101, 352, 1244, 173, 31, 436, 891, -1, 101, 352, 1244, 173, 933, 891, -1, 435, 1098, 658, 665, -1, 436, 203, 390, 1259, -1, 436, 203, 390, 109, -1, 1259, 658, 665, -1, 1259, 1213, 658, 665, -1, 1099, 658, 665, -1, 109, -1, 932, -1, 933, 539, 932, -1, 33, 352, 1244, 403, 783, -1, 33, 352, 1244, 27, 933, -1, 33, 352, 1244, 403, 933, -1, 33, 352, 1244, 142, 933, -1, 101, 428, 1244, 93, 1250, 352, 1243, 891, -1, 33, 428, 1244, 403, 783, -1, 33, 428, 1244, 93, 1250, -1, 33, 428, 1244, 364, 352, 891, -1, 33, 428, 1244, 27, 352, 1243, 891, -1, 33, 428, 1244, 142, 352, 1243, 891, -1, 33, 428, 1244, 403, 352, 1243, 891, -1, 33, 428, 1244, 146, -1, 33, 428, 1244, 135, -1, 33, 428, 1244, 410, 783, -1, 142, 428, 1244, 549, -1, 142, 428, 197, 159, 1244, 549, -1, 101, 863, 387, 1244, 40, 310, 943, 448, 1242, 1109, 138, 944, 939, -1, 295, -1, 941, -1, 535, 940, 536, -1, 940, 538, 942, -1, 942, -1, 1039, -1, 1004, -1, 1020, -1, 1013, -1, 945, -1, 941, -1, -1, 396, -1, 471, -1, 127, -1, 218, -1, 219, -1, 32, -1, -1, 296, 1259, 946, -1, 539, 1250, -1, -1, 256, 1259, -1, 468, 1259, -1, 468, 528, -1, 22, 951, 955, -1, 418, 450, 954, -1, 86, 951, 955, -1, 381, 951, 955, -1, 388, 1259, -1, 367, 388, 1259, -1, 367, 1259, -1, 381, 951, 448, 388, 1259, -1, 381, 951, 448, 1259, -1, 343, 450, 1250, -1, 86, 344, 1250, -1, 381, 344, 1250, -1, 53, 951, 954, -1, 149, 951, 955, -1, 495, -1, 450, -1, -1, 228, 253, 575, -1, 356, 311, -1, 356, 497, -1, 124, -1, 294, 124, -1, 952, -1, 953, 539, 952, -1, 953, 952, -1, 953, -1, -1, 37, 70, -1, 37, 290, 70, -1, -1, 101, 631, 485, 1242, 658, 601, 40, 1039, 957, -1, 101, 315, 370, 631, 485, 1242, 658, 601, 40, 1039, 957, -1, 101, 631, 360, 485, 1242, 535, 659, 536, 601, 40, 1039, 957, -1, 101, 315, 370, 631, 360, 485, 1242, 535, 659, 536, 601, 40, 1039, 957, -1, 492, 74, 313, -1, 492, 66, 74, 313, -1, 492, 258, 74, 313, -1, -1, 257, 1246, -1, 101, 116, 1244, 552, 960, -1, 961, -1, -1, 962, -1, 961, 962, -1, 963, 964, 699, -1, 963, 964, 576, -1, 963, 964, 122, -1, 3, -1, 93, 255, -1, 147, -1, 261, -1, 326, -1, 438, -1, 441, -1, 525, -1, -1, 33, 116, 1244, 492, 960, -1, 33, 116, 1244, 960, -1, 33, 116, 1244, 403, 438, 1244, -1, 33, 116, 1244, 364, 81, 484, -1, 33, 116, 1244, 583, -1, 142, 116, 1244, -1, 142, 116, 197, 159, 1244, -1, 142, 116, 1244, 552, 535, 968, 536, -1, 142, 116, 197, 159, 1244, 552, 535, 968, 536, -1, 969, -1, 968, 539, 969, -1, 174, -1, 33, 81, 815, 364, 484, -1, 33, 433, 403, 570, -1, 33, 433, 372, 582, -1, 101, 140, 815, 974, 1127, 644, -1, 33, 140, 815, 596, -1, 33, 140, 815, 142, 294, 299, -1, 33, 140, 815, 403, 294, 299, -1, 33, 140, 815, 27, 655, -1, 33, 140, 815, 142, 94, 1244, 549, -1, 33, 140, 815, 142, 94, 197, 159, 1244, 549, -1, 33, 140, 815, 476, 94, 1244, -1, 40, -1, -1, 33, 443, 393, 134, 815, 783, -1, 33, 443, 393, 91, 815, 27, 265, 173, 1243, 977, 814, -1, 33, 443, 393, 91, 815, 33, 265, 173, 1243, 977, 814, -1, 33, 443, 393, 91, 815, 33, 265, 370, 815, 977, 815, -1, 33, 443, 393, 91, 815, 33, 265, 173, 1243, 370, 815, 977, 815, -1, 33, 443, 393, 91, 815, 142, 265, 173, 1243, -1, 33, 443, 393, 91, 815, 142, 265, 197, 159, 173, 1243, -1, 492, -1, 516, -1, 101, 797, 98, 815, 173, 1250, 448, 1250, 179, 815, -1, 78, 535, 983, 536, 1242, 980, -1, 78, 535, 983, 536, -1, 78, 989, 1242, 980, -1, 78, 989, -1, 78, 989, 1244, 310, 1242, -1, 473, 1244, -1, -1, 474, 990, 991, 989, 988, 995, -1, 474, 535, 983, 536, 995, -1, 984, 989, 995, -1, 984, 535, 983, 536, 995, -1, 985, -1, 983, 539, 985, -1, 36, -1, 35, -1, 986, 987, -1, 1261, -1, 984, -1, 513, -1, 576, -1, 699, -1, -1, 984, -1, -1, 483, -1, -1, 180, -1, -1, 178, -1, -1, 535, 1243, 536, -1, -1, 1242, 992, -1, 993, -1, 994, 539, 993, -1, 994, -1, -1, 160, 997, -1, 160, 984, 989, 997, -1, 160, 483, 997, -1, 160, 535, 983, 536, 997, -1, 1039, -1, 1004, -1, 1020, -1, 1013, -1, 1025, -1, 1035, -1, 685, -1, 688, -1, 691, -1, 1001, -1, 343, 1244, 999, 40, 1000, -1, 535, 1194, 536, -1, -1, 1039, -1, 1004, -1, 1020, -1, 1013, -1, 1025, -1, 158, 1244, 1002, -1, 101, 631, 435, 686, 40, 158, 1244, 1002, 687, -1, 101, 631, 435, 197, 294, 159, 686, 40, 158, 1244, 1002, 687, -1, 535, 1190, 536, -1, -1, 118, 1244, -1, 118, 343, 1244, -1, 118, 31, -1, 118, 343, 31, -1, 1050, 218, 224, 1005, 1006, 1010, 1012, -1, 1242, -1, 1242, 40, 1259, -1, 1039, -1, 324, 1007, 478, 1039, -1, 535, 1008, 536, 1039, -1, 535, 1008, 536, 324, 1007, 478, 1039, -1, 122, 479, -1, 472, -1, 433, -1, 1009, -1, 1008, 539, 1009, -1, 1259, 1214, -1, 310, 92, 1011, 138, 471, 403, 1021, 1109, -1, 310, 92, 1011, 138, 295, -1, -1, 535, 854, 536, 1109, -1, 310, 94, 1244, -1, -1, 376, 1239, -1, -1, 1050, 127, 179, 1101, 1014, 1110, 1012, -1, 473, 1088, -1, -1, 262, 1053, 1100, 1016, 1018, -1, 203, 1017, 275, -1, -1, 25, 406, -1, 385, 406, -1, 385, 157, -1, 406, 471, 157, -1, 406, -1, 406, 385, 157, -1, 157, -1, 25, 157, -1, 298, -1, -1, 298, -1, 410, 263, -1, -1, 1050, 471, 1101, 403, 1021, 1087, 1110, 1012, -1, 1022, -1, 1021, 539, 1022, -1, 1023, 525, 1151, -1, 535, 1024, 536, 525, 1151, -1, 1259, 1214, -1, 1023, -1, 1024, 539, 1023, -1, 1050, 270, 224, 1101, 473, 1089, 310, 1151, 1026, 1012, -1, 1027, -1, 1026, 1027, -1, 1028, 1030, 444, 1031, -1, 1028, 1030, 444, 1032, -1, 1029, 1030, 444, 1033, -1, 1028, 1030, 444, 138, 295, -1, 1029, 1030, 444, 138, 295, -1, 488, 267, -1, 488, 294, 267, 61, 414, -1, 488, 294, 267, -1, 488, 294, 267, 61, 439, -1, 37, 1151, -1, -1, 471, 403, 1021, -1, 127, -1, 218, 1034, -1, 218, 324, 1007, 478, 1034, -1, 218, 535, 1008, 536, 1034, -1, 218, 535, 1008, 536, 324, 1007, 478, 1034, -1, 218, 122, 479, -1, 479, 535, 1190, 536, -1, 121, 1036, 1037, 113, 1038, 173, 1039, -1, 1244, -1, -1, 1037, 290, 392, -1, 1037, 392, -1, 1037, 56, -1, 1037, 42, -1, 1037, 217, -1, -1, 492, 194, -1, 494, 194, -1, 1041, -1, 1040, -1, 535, 1041, 536, -1, 535, 1040, 536, -1, 1043, -1, 1042, 1059, -1, 1042, 1058, 1080, 1063, -1, 1042, 1058, 1062, 1081, -1, 1044, 1042, -1, 1044, 1042, 1059, -1, 1044, 1042, 1058, 1080, 1063, -1, 1044, 1042, 1058, 1062, 1081, -1, 1043, -1, 1040, -1, 396, 1056, 1238, 1051, 1087, 1109, 1072, 1079, 1170, -1, 396, 1055, 1239, 1051, 1087, 1109, 1072, 1079, 1170, -1, 1086, -1, 435, 1098, -1, 1042, 465, 1054, 1042, -1, 1042, 222, 1054, 1042, -1, 1042, 154, 1054, 1042, -1, 492, 1045, -1, 516, 1045, -1, 492, 360, 1045, -1, 1046, -1, 1045, 539, 1046, -1, 1244, 992, 40, 1047, 535, 1000, 536, 1048, 1049, -1, 268, -1, 294, 268, -1, -1, 393, 131, 170, 61, 659, 403, 1259, -1, 393, 60, 170, 61, 659, 403, 1259, -1, -1, 114, 659, 403, 1259, 448, 1248, 122, 1248, 473, 1259, -1, 114, 659, 403, 1259, 473, 1259, -1, -1, 1044, -1, -1, 224, 1052, -1, -1, 442, 1053, 1242, -1, 440, 1053, 1242, -1, 258, 442, 1053, 1242, -1, 258, 440, 1053, 1242, -1, 184, 442, 1053, 1242, -1, 184, 440, 1053, 1242, -1, 469, 1053, 1242, -1, 435, 1242, -1, 1242, -1, 435, -1, -1, 31, -1, 137, -1, -1, 137, -1, 137, 310, 535, 1190, 536, -1, 31, -1, -1, 1055, -1, 1056, -1, 1059, -1, -1, 316, 61, 1060, -1, 1061, -1, 1060, 539, 1061, -1, 1151, 473, 1188, 861, -1, 1151, 860, 861, -1, 1064, 1065, -1, 1065, 1064, -1, 1064, -1, 1065, -1, 1062, -1, -1, 255, 1066, -1, 255, 1066, 539, 1067, -1, 167, 1071, 1068, 1070, 311, -1, 167, 1071, 1068, 1070, 492, 445, -1, 167, 1071, 1070, 311, -1, 167, 1071, 1070, 492, 445, -1, 306, 1067, -1, 306, 1068, 1070, -1, 1151, -1, 31, -1, 1151, -1, 1153, -1, 526, 1069, -1, 527, 1069, -1, 1249, -1, 5, -1, 385, -1, 386, -1, 170, -1, 285, -1, 188, 61, 1054, 1073, -1, -1, 1074, -1, 1073, 539, 1074, -1, 1151, -1, 1075, -1, 1077, -1, 1076, -1, 1078, -1, 535, 536, -1, 382, 535, 1190, 536, -1, 104, 535, 1190, 536, -1, 189, 404, 535, 1073, 536, -1, 192, 1151, -1, -1, 1082, -1, 173, 356, 311, -1, 1080, -1, -1, 1083, -1, 1082, 1083, -1, 1084, 1085, 1019, -1, 173, 471, -1, 173, 290, 242, 471, -1, 173, 406, -1, 173, 242, 406, -1, 304, 1241, -1, -1, 479, 535, 1190, 536, -1, 1086, 539, 535, 1190, 536, -1, 179, 1088, -1, -1, 1089, -1, 1088, 539, 1089, -1, 1098, 1092, -1, 1098, 1092, 1102, -1, 1104, 1094, -1, 248, 1104, 1094, -1, 1114, 1092, -1, 248, 1114, 1092, -1, 1040, 1092, -1, 248, 1040, 1092, -1, 1090, -1, 535, 1090, 536, 1091, -1, 1121, 1092, -1, 248, 1121, 1092, -1, 535, 1090, 536, -1, 1089, 102, 229, 1089, -1, 1089, 1095, 229, 1089, 1097, -1, 1089, 229, 1089, 1097, -1, 1089, 281, 1095, 229, 1089, -1, 1089, 281, 229, 1089, -1, 40, 1259, 535, 1243, 536, -1, 40, 1259, -1, 1259, 535, 1243, 536, -1, 1259, -1, 1091, -1, -1, 40, 1259, -1, -1, 1091, -1, 40, 535, 1112, 536, -1, 40, 1259, 535, 1112, 536, -1, 1259, 535, 1112, 536, -1, -1, 180, 1096, -1, 252, 1096, -1, 379, 1096, -1, 214, -1, 320, -1, -1, 473, 535, 1243, 536, 1093, -1, 310, 1151, -1, 1242, -1, 1099, -1, 1242, 528, -1, 311, 1242, -1, 311, 535, 1242, 536, -1, 1098, -1, 1100, 539, 1098, -1, 1098, -1, 1098, 1259, -1, 1098, 40, 1259, -1, 437, 1247, 535, 1190, 536, 1103, -1, 369, 535, 1151, 536, -1, -1, 1156, 1108, -1, 386, 179, 535, 1106, 536, 1108, -1, 1156, 1107, -1, 1105, -1, 1106, 539, 1105, -1, 40, 535, 1112, 536, -1, -1, 516, 317, -1, -1, 489, 1151, -1, -1, 489, 1151, -1, 489, 105, 304, 1036, -1, -1, 1112, -1, -1, 1113, -1, 1112, 539, 1113, -1, 1259, 1127, 597, -1, 509, 535, 1153, 1166, 83, 1115, 536, -1, 509, 535, 504, 535, 1119, 536, 539, 1153, 1166, 83, 1115, 536, -1, 1116, -1, 1115, 539, 1116, -1, 1259, 1127, -1, 1259, 1127, 1117, -1, 1259, 173, 317, -1, 1118, -1, 1117, 1118, -1, 3, 1152, -1, 122, 1152, -1, 294, 299, -1, 299, -1, 334, 1152, -1, 1120, -1, 1119, 539, 1120, -1, 1152, 40, 1262, -1, 122, 1152, -1, 239, 535, 1224, 539, 1151, 1122, 1216, 83, 535, 1123, 536, 1223, 536, -1, 40, 1244, -1, -1, 1124, -1, 1123, 539, 1124, -1, 1259, 173, 317, -1, 1259, 1127, 1126, 1219, 1227, 1222, -1, 1259, 1127, 1225, 1126, 1219, 1227, 1222, -1, 1259, 1127, 159, 1126, 1223, -1, 283, 1125, 1250, 83, 535, 1123, 536, -1, 283, 1125, 1250, 40, 1244, 83, 535, 1123, 536, -1, 334, -1, -1, 334, 1250, -1, -1, 1129, 1128, -1, 405, 1129, 1128, -1, 1129, 39, 533, 1249, 534, -1, 405, 1129, 39, 533, 1249, 534, -1, 1129, 39, -1, 405, 1129, 39, -1, 1128, 533, 534, -1, 1128, 533, 1249, 534, -1, -1, 1131, -1, 1133, -1, 1135, -1, 1139, -1, 1145, -1, 1146, 1148, -1, 1146, 535, 1249, 536, -1, 1150, -1, 1133, -1, 1136, -1, 1140, -1, 1145, -1, 1150, -1, 1260, 1132, -1, 1260, 816, 1132, -1, 535, 1190, 536, -1, -1, 220, -1, 221, -1, 411, -1, 55, -1, 357, -1, 171, 1134, -1, 141, 341, -1, 120, 1132, -1, 119, 1132, -1, 302, 1132, -1, 58, -1, 535, 1249, 536, -1, -1, 1137, -1, 1138, -1, 1137, -1, 1138, -1, 57, 1144, 535, 1190, 536, -1, 57, 1144, -1, 1141, -1, 1142, -1, 1141, -1, 1142, -1, 1143, 535, 1249, 536, -1, 1143, -1, 72, 1144, -1, 71, 1144, -1, 480, -1, 280, 72, 1144, -1, 280, 71, 1144, -1, 282, 1144, -1, 482, -1, -1, 447, 535, 1249, 536, 1147, -1, 447, 1147, -1, 446, 535, 1249, 536, 1147, -1, 446, 1147, -1, 223, -1, 516, 446, 512, -1, 517, 446, 512, -1, -1, 510, -1, 276, -1, 117, -1, 195, -1, 273, -1, 1149, -1, 510, 448, 276, -1, 117, 448, 195, -1, 117, 448, 273, -1, 117, 448, 1149, -1, 195, 448, 273, -1, 195, 448, 1149, -1, 273, 448, 1149, -1, -1, 394, -1, 394, 535, 1249, 536, -1, 230, -1, 1153, -1, 1151, 13, 1127, -1, 1151, 80, 815, -1, 1151, 47, 446, 512, 1151, -1, 1151, 47, 258, -1, 526, 1151, -1, 527, 1151, -1, 1151, 526, 1151, -1, 1151, 527, 1151, -1, 1151, 528, 1151, -1, 1151, 529, 1151, -1, 1151, 530, 1151, -1, 1151, 531, 1151, -1, 1151, 523, 1151, -1, 1151, 524, 1151, -1, 1151, 525, 1151, -1, 1151, 17, 1151, -1, 1151, 18, 1151, -1, 1151, 19, 1151, -1, 1151, 1187, 1151, -1, 1187, 1151, -1, 1151, 37, 1151, -1, 1151, 315, 1151, -1, 294, 1151, -1, 514, 1151, -1, 1151, 254, 1151, -1, 1151, 254, 1151, 152, 1151, -1, 1151, 514, 254, 1151, -1, 1151, 514, 254, 1151, 152, 1151, -1, 1151, 198, 1151, -1, 1151, 198, 1151, 152, 1151, -1, 1151, 514, 198, 1151, -1, 1151, 514, 198, 1151, 152, 1151, -1, 1151, 408, 448, 1151, -1, 1151, 408, 448, 1151, 152, 1151, -1, 1151, 514, 408, 448, 1151, -1, 1151, 514, 408, 448, 1151, 152, 1151, -1, 1151, 226, 299, -1, 1151, 227, -1, 1151, 226, 294, 299, -1, 1151, 297, -1, 1181, 322, 1181, -1, 1151, 226, 455, -1, 1151, 226, 294, 455, -1, 1151, 226, 165, -1, 1151, 226, 294, 165, -1, 1151, 226, 467, -1, 1151, 226, 294, 467, -1, 1151, 226, 137, 179, 1151, -1, 1151, 226, 294, 137, 179, 1151, -1, 1151, 54, 1215, 1152, 37, 1151, -1, 1151, 514, 54, 1215, 1152, 37, 1151, -1, 1151, 54, 431, 1152, 37, 1151, -1, 1151, 514, 54, 431, 1152, 37, 1151, -1, 1151, 203, 1204, -1, 1151, 514, 203, 1204, -1, 1151, 1189, 1184, 1040, -1, 1151, 1189, 1184, 535, 1151, 536, -1, 466, 647, 1040, -1, 1151, 226, 139, -1, 1151, 226, 294, 139, -1, 1151, 226, 293, -1, 1151, 226, 1199, 293, -1, 1151, 226, 294, 293, -1, 1151, 226, 294, 1199, 293, -1, 1151, 226, 1229, 1230, -1, 1151, 226, 294, 1229, 1230, -1, 122, -1, 1153, -1, 1152, 13, 1127, -1, 526, 1152, -1, 527, 1152, -1, 1152, 526, 1152, -1, 1152, 527, 1152, -1, 1152, 528, 1152, -1, 1152, 529, 1152, -1, 1152, 530, 1152, -1, 1152, 531, 1152, -1, 1152, 523, 1152, -1, 1152, 524, 1152, -1, 1152, 525, 1152, -1, 1152, 17, 1152, -1, 1152, 18, 1152, -1, 1152, 19, 1152, -1, 1152, 1187, 1152, -1, 1187, 1152, -1, 1152, 226, 137, 179, 1152, -1, 1152, 226, 294, 137, 179, 1152, -1, 1152, 226, 139, -1, 1152, 226, 294, 139, -1, 1210, -1, 1248, -1, 12, 1214, -1, 535, 1151, 536, 1214, -1, 1205, -1, 1155, -1, 1040, -1, 1040, 1213, -1, 159, 1040, -1, 39, 1040, -1, 39, 1195, -1, 1182, -1, 1183, -1, 189, 535, 1190, 536, -1, 1247, 535, 536, -1, 1247, 535, 1191, 1058, 536, -1, 1247, 535, 481, 1192, 1058, 536, -1, 1247, 535, 1191, 539, 481, 1192, 1058, 536, -1, 1247, 535, 31, 1191, 1058, 536, -1, 1247, 535, 137, 1191, 1058, 536, -1, 1247, 535, 528, 536, -1, 1154, 1168, 1169, 1173, -1, 1236, 1169, 1173, -1, 1157, -1, 1154, -1, 1157, -1, 1236, -1, 81, 173, 535, 1151, 536, -1, 107, -1, 110, -1, 110, 535, 1249, 536, -1, 111, -1, 111, 535, 1249, 536, -1, 259, -1, 259, 535, 1249, 536, -1, 260, -1, 260, 535, 1249, 536, -1, 108, -1, 112, -1, 402, -1, 434, -1, 472, -1, 106, -1, 109, -1, 68, 535, 1151, 40, 1127, 536, -1, 164, 535, 1197, 536, -1, 292, 535, 1151, 536, -1, 292, 535, 1151, 539, 1199, 536, -1, 323, 535, 1200, 536, -1, 323, 535, 1193, 536, -1, 339, 535, 1201, 536, -1, 429, 535, 1202, 536, -1, 429, 535, 1193, 536, -1, 452, 535, 1151, 40, 1127, 536, -1, 454, 535, 59, 1203, 536, -1, 454, 535, 249, 1203, 536, -1, 454, 535, 449, 1203, 536, -1, 454, 535, 1203, 536, -1, 300, 535, 1151, 539, 1151, 536, -1, 79, 535, 1190, 536, -1, 187, 535, 1190, 536, -1, 251, 535, 1190, 536, -1, 500, 535, 1190, 536, -1, 501, 535, 278, 1262, 536, -1, 501, 535, 278, 1262, 539, 1160, 536, -1, 501, 535, 278, 1262, 539, 1190, 536, -1, 501, 535, 278, 1262, 539, 1160, 539, 1190, 536, -1, 502, 535, 1153, 1166, 536, -1, 503, 535, 1161, 536, -1, 505, 535, 1163, 1151, 1165, 536, -1, 506, 535, 278, 1262, 536, -1, 506, 535, 278, 1262, 539, 1151, 536, -1, 507, 535, 1151, 539, 1158, 1159, 536, -1, 508, 535, 1163, 1151, 40, 1129, 1164, 536, -1, 234, 535, 1191, 536, -1, 234, 535, 1231, 1233, 1230, 1228, 536, -1, 234, 535, 1228, 536, -1, 231, 535, 1235, 1234, 1228, 536, -1, 231, 535, 1041, 1226, 1228, 536, -1, 231, 535, 1228, 536, -1, 230, 535, 1224, 1230, 536, -1, 237, 535, 1151, 536, -1, 238, 535, 1224, 1228, 536, -1, 271, 535, 536, -1, 236, 535, 1224, 539, 1151, 1216, 1228, 1219, 1227, 1222, 536, -1, 233, 535, 1224, 539, 1151, 1216, 1223, 536, -1, 240, 535, 1224, 539, 1151, 1216, 1228, 1222, 536, -1, 484, 1151, -1, 484, 290, 478, -1, 539, 417, 511, -1, 539, 417, 290, -1, 539, 417, 290, 478, -1, -1, 499, 535, 1161, 536, -1, 1162, -1, 1161, 539, 1162, -1, 1151, 40, 1262, -1, 1151, -1, 139, -1, 96, -1, 207, -1, 290, 207, -1, -1, 342, 490, -1, 427, 490, -1, -1, 332, 1153, -1, 332, 1153, 1167, -1, 332, 1167, 1153, -1, 332, 1167, 1153, 1167, -1, 61, 361, -1, 61, 478, -1, 493, 188, 535, 1059, 536, -1, -1, 168, 535, 489, 1151, 536, -1, -1, 491, 1171, -1, -1, 1172, -1, 1171, 539, 1172, -1, 1259, 40, 1174, -1, 321, 1174, -1, 321, 1259, -1, -1, 535, 1175, 1176, 1058, 1177, 536, -1, 1259, -1, -1, 331, 61, 1190, -1, -1, 355, 1178, 1180, -1, 386, 1178, 1180, -1, 190, 1178, 1180, -1, -1, 1179, -1, 54, 1179, 37, 1179, -1, 461, 340, -1, 461, 172, -1, 105, 385, -1, 1151, 340, -1, 1151, 172, -1, 155, 105, 385, -1, 155, 188, -1, 155, 445, -1, 155, 290, 318, -1, -1, 385, 535, 1190, 536, -1, 385, 535, 536, -1, 535, 1190, 539, 1151, 536, -1, 385, 535, 1190, 536, -1, 385, 535, 536, -1, 535, 1190, 539, 1151, 536, -1, 38, -1, 413, -1, 31, -1, 10, -1, 1186, -1, 526, -1, 527, -1, 528, -1, 529, -1, 530, -1, 531, -1, 523, -1, 524, -1, 525, -1, 17, -1, 18, -1, 19, -1, 10, -1, 312, 535, 901, 536, -1, 1185, -1, 312, 535, 901, 536, -1, 1185, -1, 312, 535, 901, 536, -1, 254, -1, 514, 254, -1, 198, -1, 514, 198, -1, 1151, -1, 1190, 539, 1151, -1, 1192, -1, 1191, 539, 1192, -1, 1151, -1, 872, 15, 1151, -1, 872, 16, 1151, -1, 1191, -1, -1, 1127, -1, 1194, 539, 1127, -1, 533, 1190, 534, -1, 533, 1196, 534, -1, 533, 534, -1, 1195, -1, 1196, 539, 1195, -1, 1198, 179, 1151, -1, 12, 179, 1151, -1, 3, -1, 510, -1, 276, -1, 117, -1, 195, -1, 273, -1, 394, -1, 1250, -1, 286, -1, 287, -1, 288, -1, 289, -1, 1151, 335, 1151, 179, 1151, 173, 1151, -1, 1151, 335, 1151, 179, 1151, -1, 1152, 203, 1152, -1, 1151, 179, 1151, 173, 1151, -1, 1151, 173, 1151, 179, 1151, -1, 1151, 179, 1151, -1, 1151, 173, 1151, -1, 1151, 408, 1151, 152, 1151, -1, 1151, 179, 1190, -1, 179, 1190, -1, 1190, -1, 1040, -1, 535, 1190, 536, -1, 67, 1209, 1206, 1208, 149, -1, 1207, -1, 1206, 1207, -1, 488, 1151, 444, 1151, -1, 144, 1151, -1, -1, 1151, -1, -1, 1259, -1, 1259, 1213, -1, 537, 1245, -1, 537, 528, -1, 533, 1151, 534, -1, 533, 1212, 540, 1212, 534, -1, 1151, -1, -1, 1211, -1, 1213, 1211, -1, -1, 1214, 1211, -1, 45, -1, -1, 332, 1217, -1, -1, 1218, -1, 1217, 539, 1218, -1, 1224, 40, 1262, -1, 494, 496, -1, 494, 39, 496, -1, 492, 496, -1, 492, 39, 496, -1, 492, 90, 39, 496, -1, 492, 462, 39, 496, -1, 492, 90, 496, -1, 492, 462, 496, -1, -1, 122, 1151, -1, 1221, -1, 151, -1, 299, -1, 455, -1, 165, -1, 467, -1, 145, 39, -1, 145, 303, -1, 145, -1, 1220, 310, 145, -1, 1220, 310, 151, -1, 1220, 310, 145, 1220, 310, 151, -1, -1, 1220, 310, 151, -1, -1, 1151, 1226, -1, 513, 230, 147, 1244, -1, 513, 230, -1, 1225, -1, -1, 241, 354, 310, 389, 426, -1, 241, 354, -1, 309, 354, 310, 389, 426, -1, 309, 354, -1, -1, 376, 1127, 1226, -1, -1, 230, -1, 230, 478, -1, 230, 39, -1, 230, 303, -1, 230, 389, -1, 492, 466, 243, -1, 492, 466, -1, 494, 466, 243, -1, 494, 466, -1, -1, 1232, -1, 1231, 539, 1232, -1, 1153, 478, 1224, -1, 1151, 540, 1224, -1, 299, 310, 299, -1, 23, 310, 299, -1, -1, 299, 310, 299, -1, 23, 310, 299, -1, -1, 1224, -1, 1235, 539, 1224, -1, 235, 535, 1232, 1233, 1230, 1228, 536, -1, 232, 535, 1224, 1237, 1234, 1228, 536, -1, 316, 61, 1060, -1, -1, 1239, -1, -1, 1240, -1, 1239, 539, 1240, -1, 1151, 40, 1262, -1, 1151, 1263, -1, 1151, -1, 528, -1, 1242, -1, 1241, 539, 1242, -1, 1259, -1, 1259, 1213, -1, 1244, -1, 1243, 539, 1244, -1, 1259, -1, 1262, -1, 1250, -1, 1260, -1, 1259, 1213, -1, 1249, -1, 5, -1, 1250, -1, 8, -1, 9, -1, 1247, 1250, -1, 1247, 535, 1191, 1058, 536, 1250, -1, 1247, 12, -1, 1247, 535, 1191, 1058, 536, 12, -1, 1130, 1250, -1, 1146, 1250, 1148, -1, 1146, 535, 1249, 536, 1250, -1, 1130, 12, -1, 1146, 12, 1148, -1, 1146, 535, 1249, 536, 12, -1, 455, -1, 165, -1, 299, -1, 11, -1, 6, -1, 1249, -1, 526, 1249, -1, 527, 1249, -1, 1253, -1, 1261, -1, 108, -1, 112, -1, 402, -1, 1253, -1, 1254, 539, 1253, -1, 1057, 1238, 1087, 1109, 1072, 1079, 1170, 1058, 1063, 1081, -1, 1257, 1214, 1258, 1255, -1, 1259, -1, 12, -1, 15, -1, 525, -1, 3, -1, 1264, -1, 1265, -1, 3, -1, 1264, -1, 1266, -1, 3, -1, 1264, -1, 1265, -1, 1266, -1, 3, -1, 1264, -1, 1265, -1, 1266, -1, 1267, -1, 3, -1, 1268, -1, 22, -1, 23, -1, 24, -1, 25, -1, 26, -1, 27, -1, 28, -1, 29, -1, 30, -1, 32, -1, 33, -1, 34, -1, 42, -1, 43, -1, 44, -1, 47, -1, 46, -1, 48, -1, 49, -1, 51, -1, 52, -1, 53, -1, 60, -1, 61, -1, 62, -1, 63, -1, 64, -1, 65, -1, 66, -1, 69, -1, 70, -1, 73, -1, 75, -1, 76, -1, 77, -1, 78, -1, 83, -1, 84, -1, 85, -1, 86, -1, 87, -1, 88, -1, 90, -1, 91, -1, 92, -1, 93, -1, 95, -1, 96, -1, 97, -1, 98, -1, 99, -1, 100, -1, 103, -1, 104, -1, 105, -1, 113, -1, 114, -1, 115, -1, 116, -1, 117, -1, 118, -1, 121, -1, 123, -1, 125, -1, 126, -1, 127, -1, 128, -1, 129, -1, 130, -1, 131, -1, 133, -1, 134, -1, 135, -1, 136, -1, 139, -1, 140, -1, 141, -1, 142, -1, 143, -1, 145, -1, 146, -1, 147, -1, 148, -1, 150, -1, 151, -1, 152, -1, 153, -1, 155, -1, 156, -1, 157, -1, 158, -1, 160, -1, 161, -1, 162, -1, 163, -1, 166, -1, 168, -1, 169, -1, 170, -1, 172, -1, 174, -1, 176, -1, 177, -1, 181, -1, 182, -1, 183, -1, 184, -1, 186, -1, 190, -1, 191, -1, 193, -1, 194, -1, 195, -1, 196, -1, 197, -1, 199, -1, 200, -1, 201, -1, 202, -1, 204, -1, 205, -1, 206, -1, 207, -1, 208, -1, 209, -1, 210, -1, 211, -1, 213, -1, 216, -1, 217, -1, 218, -1, 219, -1, 225, -1, 228, -1, 241, -1, 242, -1, 243, -1, 244, -1, 245, -1, 246, -1, 247, -1, 250, -1, 253, -1, 256, -1, 257, -1, 258, -1, 261, -1, 262, -1, 263, -1, 264, -1, 265, -1, 266, -1, 267, -1, 268, -1, 269, -1, 270, -1, 272, -1, 273, -1, 274, -1, 275, -1, 276, -1, 277, -1, 278, -1, 279, -1, 283, -1, 284, -1, 285, -1, 286, -1, 287, -1, 288, -1, 289, -1, 290, -1, 293, -1, 295, -1, 296, -1, 298, -1, 301, -1, 303, -1, 304, -1, 305, -1, 307, -1, 308, -1, 309, -1, 312, -1, 313, -1, 314, -1, 317, -1, 318, -1, 321, -1, 324, -1, 325, -1, 326, -1, 327, -1, 328, -1, 329, -1, 330, -1, 331, -1, 332, -1, 333, -1, 334, -1, 336, -1, 337, -1, 338, -1, 340, -1, 343, -1, 344, -1, 342, -1, 346, -1, 347, -1, 348, -1, 349, -1, 350, -1, 351, -1, 352, -1, 353, -1, 354, -1, 355, -1, 356, -1, 358, -1, 359, -1, 360, -1, 361, -1, 363, -1, 364, -1, 365, -1, 366, -1, 367, -1, 368, -1, 369, -1, 370, -1, 371, -1, 372, -1, 373, -1, 374, -1, 375, -1, 377, -1, 378, -1, 380, -1, 381, -1, 382, -1, 383, -1, 384, -1, 386, -1, 387, -1, 388, -1, 389, -1, 390, -1, 391, -1, 392, -1, 393, -1, 394, -1, 395, -1, 397, -1, 398, -1, 399, -1, 400, -1, 401, -1, 403, -1, 404, -1, 406, -1, 407, -1, 409, -1, 410, -1, 412, -1, 414, -1, 415, -1, 416, -1, 417, -1, 418, -1, 419, -1, 420, -1, 421, -1, 422, -1, 423, -1, 424, -1, 425, -1, 426, -1, 427, -1, 428, -1, 430, -1, 432, -1, 433, -1, 436, -1, 438, -1, 439, -1, 440, -1, 441, -1, 442, -1, 443, -1, 445, -1, 450, -1, 451, -1, 453, -1, 456, -1, 457, -1, 458, -1, 459, -1, 460, -1, 461, -1, 463, -1, 462, -1, 464, -1, 467, -1, 468, -1, 469, -1, 470, -1, 471, -1, 474, -1, 475, -1, 476, -1, 477, -1, 478, -1, 482, -1, 484, -1, 485, -1, 486, -1, 487, -1, 490, -1, 493, -1, 494, -1, 495, -1, 496, -1, 497, -1, 498, -1, 510, -1, 511, -1, 512, -1, 54, -1, 55, -1, 57, -1, 58, -1, 71, -1, 72, -1, 79, -1, 119, -1, 120, -1, 159, -1, 164, -1, 171, -1, 187, -1, 189, -1, 215, -1, 220, -1, 221, -1, 223, -1, 230, -1, 231, -1, 232, -1, 233, -1, 234, -1, 235, -1, 236, -1, 237, -1, 238, -1, 239, -1, 240, -1, 251, -1, 271, -1, 280, -1, 282, -1, 291, -1, 292, -1, 300, -1, 302, -1, 319, -1, 323, -1, 339, -1, 341, -1, 357, -1, 385, -1, 405, -1, 411, -1, 429, -1, 446, -1, 447, -1, 452, -1, 454, -1, 479, -1, 480, -1, 499, -1, 500, -1, 501, -1, 502, -1, 503, -1, 504, -1, 505, -1, 506, -1, 507, -1, 508, -1, 509, -1, 50, -1, 56, -1, 81, -1, 89, -1, 102, -1, 109, -1, 178, -1, 180, -1, 198, -1, 214, -1, 226, -1, 227, -1, 229, -1, 252, -1, 254, -1, 281, -1, 297, -1, 320, -1, 322, -1, 379, -1, 408, -1, 437, -1, 483, -1, 31, -1, 35, -1, 36, -1, 37, -1, 38, -1, 39, -1, 40, -1, 41, -1, 45, -1, 59, -1, 67, -1, 68, -1, 74, -1, 80, -1, 82, -1, 94, -1, 101, -1, 106, -1, 107, -1, 108, -1, 110, -1, 111, -1, 112, -1, 122, -1, 124, -1, 132, -1, 137, -1, 138, -1, 144, -1, 149, -1, 154, -1, 165, -1, 167, -1, 173, -1, 175, -1, 179, -1, 185, -1, 188, -1, 192, -1, 203, -1, 212, -1, 222, -1, 224, -1, 248, -1, 249, -1, 255, -1, 259, -1, 260, -1, 294, -1, 299, -1, 306, -1, 310, -1, 311, -1, 315, -1, 316, -1, 335, -1, 345, -1, 362, -1, 376, -1, 396, -1, 402, -1, 413, -1, 431, -1, 434, -1, 435, -1, 444, -1, 448, -1, 449, -1, 455, -1, 465, -1, 466, -1, 472, -1, 473, -1, 481, -1, 488, -1, 489, -1, 491, -1, 492, -1, 22, -1, 23, -1, 24, -1, 25, -1, 26, -1, 27, -1, 28, -1, 29, -1, 30, -1, 31, -1, 32, -1, 33, -1, 34, -1, 35, -1, 36, -1, 37, -1, 38, -1, 41, -1, 42, -1, 43, -1, 44, -1, 45, -1, 47, -1, 46, -1, 48, -1, 49, -1, 50, -1, 51, -1, 52, -1, 53, -1, 54, -1, 55, -1, 56, -1, 57, -1, 58, -1, 59, -1, 60, -1, 61, -1, 62, -1, 63, -1, 64, -1, 65, -1, 66, -1, 67, -1, 68, -1, 69, -1, 70, -1, 73, -1, 74, -1, 75, -1, 76, -1, 77, -1, 78, -1, 79, -1, 80, -1, 81, -1, 82, -1, 83, -1, 84, -1, 85, -1, 86, -1, 87, -1, 88, -1, 89, -1, 90, -1, 91, -1, 92, -1, 93, -1, 94, -1, 95, -1, 96, -1, 97, -1, 98, -1, 99, -1, 100, -1, 102, -1, 103, -1, 104, -1, 105, -1, 106, -1, 107, -1, 108, -1, 109, -1, 110, -1, 111, -1, 112, -1, 113, -1, 114, -1, 115, -1, 116, -1, 118, -1, 119, -1, 120, -1, 121, -1, 122, -1, 123, -1, 124, -1, 125, -1, 126, -1, 127, -1, 128, -1, 129, -1, 130, -1, 131, -1, 132, -1, 133, -1, 134, -1, 135, -1, 136, -1, 137, -1, 138, -1, 139, -1, 140, -1, 141, -1, 142, -1, 143, -1, 144, -1, 145, -1, 146, -1, 147, -1, 148, -1, 149, -1, 150, -1, 151, -1, 152, -1, 153, -1, 155, -1, 156, -1, 157, -1, 158, -1, 159, -1, 160, -1, 161, -1, 162, -1, 163, -1, 164, -1, 165, -1, 166, -1, 169, -1, 170, -1, 171, -1, 172, -1, 174, -1, 175, -1, 176, -1, 177, -1, 178, -1, 180, -1, 181, -1, 182, -1, 183, -1, 184, -1, 186, -1, 187, -1, 189, -1, 190, -1, 191, -1, 193, -1, 194, -1, 196, -1, 197, -1, 198, -1, 199, -1, 200, -1, 201, -1, 202, -1, 203, -1, 204, -1, 205, -1, 206, -1, 207, -1, 208, -1, 209, -1, 210, -1, 211, -1, 212, -1, 213, -1, 214, -1, 215, -1, 216, -1, 217, -1, 218, -1, 219, -1, 220, -1, 221, -1, 223, -1, 225, -1, 226, -1, 228, -1, 229, -1, 230, -1, 231, -1, 232, -1, 233, -1, 234, -1, 235, -1, 236, -1, 237, -1, 238, -1, 239, -1, 240, -1, 241, -1, 242, -1, 243, -1, 244, -1, 245, -1, 246, -1, 247, -1, 248, -1, 249, -1, 250, -1, 251, -1, 252, -1, 253, -1, 254, -1, 256, -1, 257, -1, 258, -1, 259, -1, 260, -1, 261, -1, 262, -1, 263, -1, 264, -1, 265, -1, 266, -1, 267, -1, 268, -1, 269, -1, 270, -1, 271, -1, 272, -1, 274, -1, 275, -1, 277, -1, 278, -1, 279, -1, 280, -1, 281, -1, 282, -1, 283, -1, 284, -1, 285, -1, 286, -1, 287, -1, 288, -1, 289, -1, 290, -1, 291, -1, 292, -1, 293, -1, 294, -1, 295, -1, 296, -1, 298, -1, 299, -1, 300, -1, 301, -1, 302, -1, 303, -1, 304, -1, 305, -1, 307, -1, 308, -1, 309, -1, 311, -1, 312, -1, 313, -1, 314, -1, 315, -1, 317, -1, 318, -1, 319, -1, 320, -1, 323, -1, 324, -1, 325, -1, 326, -1, 327, -1, 328, -1, 329, -1, 330, -1, 331, -1, 332, -1, 333, -1, 334, -1, 335, -1, 336, -1, 337, -1, 338, -1, 339, -1, 340, -1, 343, -1, 344, -1, 342, -1, 345, -1, 346, -1, 347, -1, 348, -1, 349, -1, 350, -1, 351, -1, 352, -1, 353, -1, 354, -1, 355, -1, 356, -1, 357, -1, 358, -1, 359, -1, 360, -1, 361, -1, 362, -1, 363, -1, 364, -1, 365, -1, 366, -1, 367, -1, 368, -1, 369, -1, 370, -1, 371, -1, 372, -1, 373, -1, 374, -1, 375, -1, 377, -1, 378, -1, 379, -1, 380, -1, 381, -1, 382, -1, 383, -1, 384, -1, 385, -1, 386, -1, 387, -1, 388, -1, 389, -1, 390, -1, 391, -1, 392, -1, 393, -1, 395, -1, 396, -1, 397, -1, 398, -1, 399, -1, 400, -1, 401, -1, 402, -1, 403, -1, 405, -1, 404, -1, 406, -1, 407, -1, 408, -1, 409, -1, 410, -1, 411, -1, 412, -1, 413, -1, 414, -1, 415, -1, 416, -1, 417, -1, 418, -1, 419, -1, 420, -1, 421, -1, 422, -1, 423, -1, 424, -1, 425, -1, 426, -1, 427, -1, 428, -1, 429, -1, 430, -1, 431, -1, 432, -1, 433, -1, 434, -1, 435, -1, 436, -1, 437, -1, 438, -1, 439, -1, 440, -1, 441, -1, 442, -1, 443, -1, 444, -1, 445, -1, 446, -1, 447, -1, 449, -1, 450, -1, 451, -1, 452, -1, 453, -1, 454, -1, 455, -1, 456, -1, 457, -1, 458, -1, 459, -1, 460, -1, 461, -1, 463, -1, 462, -1, 464, -1, 466, -1, 467, -1, 468, -1, 469, -1, 470, -1, 471, -1, 472, -1, 473, -1, 474, -1, 475, -1, 476, -1, 477, -1, 478, -1, 479, -1, 480, -1, 481, -1, 483, -1, 484, -1, 485, -1, 486, -1, 487, -1, 488, -1, 490, -1, 495, -1, 496, -1, 497, -1, 498, -1, 499, -1, 500, -1, 501, -1, 502, -1, 503, -1, 504, -1, 505, -1, 506, -1, 507, -1, 508, -1, 509, -1, 511, -1, 512, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { 0, 923, 923, 928, 932, 937, 945, 953, 973, 985, 999, 1000, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1129, 1136, 1137, 1141, 1142, 1146, 1147, 1151, 1152, 1153, 1162, 1178, 1190, 1191, 1192, 1201, 1202, 1206, 1207, 1211, 1216, 1221, 1225, 1235, 1245, 1253, 1257, 1261, 1266, 1270, 1318, 1320, 1324, 1328, 1332, 1336, 1350, 1369, 1378, 1390, 1391, 1395, 1404, 1413, 1422, 1444, 1452, 1460, 1468, 1476, 1484, 1502, 1521, 1533, 1534, 1545, 1556, 1567, 1583, 1602, 1609, 1617, 1618, 1619, 1620, 1621, 1622, 1636, 1643, 1650, 1660, 1669, 1678, 1682, 1691, 1700, 1708, 1719, 1720, 1729, 1741, 1749, 1758, 1766, 1778, 1787, 1795, 1804, 1812, 1820, 1830, 1841, 1842, 1846, 1847, 1850, 1852, 1854, 1858, 1859, 1860, 1861, 1865, 1866, 1867, 1873, 1885, 1889, 1893, 1897, 1914, 1922, 1923, 1924, 1928, 1929, 1930, 1934, 1935, 1939, 1943, 1944, 1952, 1960, 1971, 1979, 1990, 1991, 1996, 1997, 2002, 2009, 2016, 2023, 2030, 2041, 2052, 2053, 2057, 2058, 2066, 2082, 2089, 2096, 2103, 2110, 2130, 2140, 2150, 2160, 2170, 2182, 2194, 2204, 2214, 2224, 2236, 2248, 2258, 2268, 2278, 2288, 2298, 2308, 2320, 2332, 2342, 2355, 2356, 2361, 2375, 2388, 2404, 2421, 2431, 2441, 2451, 2461, 2471, 2480, 2489, 2499, 2508, 2518, 2528, 2544, 2554, 2564, 2574, 2584, 2601, 2611, 2621, 2631, 2642, 2656, 2672, 2682, 2691, 2707, 2716, 2727, 2738, 2746, 2755, 2764, 2772, 2780, 2789, 2798, 2807, 2815, 2823, 2832, 2840, 2848, 2857, 2866, 2875, 2884, 2893, 2902, 2913, 2921, 2930, 2939, 2948, 2957, 2966, 2975, 2983, 2991, 2999, 3006, 3017, 3018, 3022, 3031, 3035, 3036, 3040, 3048, 3056, 3064, 3075, 3078, 3079, 3083, 3084, 3089, 3093, 3097, 3102, 3109, 3111, 3116, 3120, 3124, 3135, 3142, 3143, 3147, 3148, 3153, 3206, 3219, 3233, 3245, 3252, 3256, 3270, 3283, 3284, 3289, 3299, 3310, 3321, 3348, 3355, 3389, 3425, 3448, 3449, 3453, 3454, 3463, 3464, 3465, 3468, 3469, 3474, 3475, 3479, 3483, 3487, 3491, 3495, 3499, 3503, 3507, 3511, 3515, 3519, 3523, 3527, 3531, 3535, 3544, 3548, 3552, 3556, 3560, 3561, 3566, 3570, 3577, 3584, 3585, 3586, 3587, 3588, 3589, 3593, 3597, 3605, 3616, 3636, 3656, 3677, 3698, 3719, 3753, 3754, 3755, 3756, 3757, 3764, 3771, 3772, 3776, 3777, 3781, 3782, 3786, 3790, 3797, 3801, 3808, 3809, 3810, 3814, 3815, 3818, 3842, 3861, 3883, 3884, 3888, 3889, 3893, 3894, 3898, 3899, 3903, 3904, 3908, 3916, 3917, 3918, 3950, 3958, 3966, 3979, 3991, 4004, 4014, 4024, 4048, 4068, 4069, 4070, 4074, 4075, 4094, 4102, 4110, 4118, 4130, 4142, 4143, 4144, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4166, 4174, 4178, 4192, 4210, 4226, 4243, 4259, 4279, 4314, 4322, 4326, 4340, 4356, 4357, 4361, 4362, 4366, 4367, 4370, 4376, 4377, 4380, 4384, 4392, 4397, 4403, 4404, 4408, 4413, 4420, 4421, 4425, 4435, 4445, 4453, 4462, 4475, 4487, 4494, 4502, 4510, 4518, 4526, 4536, 4537, 4541, 4542, 4545, 4557, 4558, 4561, 4572, 4583, 4597, 4598, 4603, 4604, 4605, 4608, 4609, 4610, 4611, 4614, 4615, 4618, 4619, 4622, 4642, 4655, 4677, 4678, 4681, 4687, 4693, 4710, 4719, 4741, 4755, 4772, 4788, 4789, 4790, 4802, 4816, 4833, 4847, 4848, 4860, 4881, 4892, 4906, 4915, 4927, 4928, 4931, 4932, 4935, 4936, 4939, 4943, 4947, 4951, 4955, 4959, 4963, 4967, 4971, 4975, 4979, 4983, 4987, 4991, 4995, 4999, 5005, 5006, 5010, 5011, 5012, 5019, 5022, 5023, 5035, 5051, 5067, 5068, 5076, 5077, 5081, 5082, 5086, 5087, 5091, 5092, 5096, 5097, 5107, 5119, 5120, 5133, 5141, 5159, 5168, 5180, 5183, 5187, 5191, 5195, 5202, 5214, 5225, 5228, 5232, 5245, 5255, 5265, 5275, 5285, 5295, 5305, 5315, 5325, 5335, 5345, 5355, 5365, 5384, 5396, 5397, 5398, 5399, 5403, 5404, 5408, 5409, 5419, 5428, 5441, 5442, 5446, 5450, 5458, 5462, 5466, 5473, 5477, 5482, 5487, 5494, 5501, 5506, 5516, 5529, 5545, 5546, 5551, 5552, 5556, 5557, 5567, 5577, 5586, 5604, 5625, 5646, 5668, 5702, 5718, 5719, 5723, 5732, 5747, 5757, 5770, 5771, 5783, 5792, 5810, 5835, 5853, 5868, 5869, 5873, 5874, 5878, 5879, 5883, 5884, 5888, 5902, 5906, 5907, 5911, 5912, 5913, 5914, 5915, 5925, 5937, 5938, 5949, 5972, 6004, 6005, 6006, 6010, 6012, 6034, 6036, 6038, 6040, 6042, 6047, 6048, 6052, 6053, 6057, 6069, 6070, 6074, 6083, 6087, 6091, 6096, 6106, 6107, 6111, 6112, 6116, 6117, 6121, 6122, 6126, 6127, 6128, 6132, 6136, 6137, 6138, 6142, 6143, 6148, 6149, 6176, 6177, 6178, 6179, 6180, 6181, 6194, 6205, 6220, 6222, 6227, 6232, 6234, 6239, 6250, 6251, 6252, 6253, 6264, 6283, 6295, 6308, 6319, 6330, 6342, 6351, 6359, 6367, 6377, 6387, 6397, 6407, 6417, 6428, 6438, 6451, 6454, 6455, 6458, 6462, 6469, 6470, 6471, 6472, 6473, 6474, 6477, 6480, 6481, 6489, 6496, 6497, 6500, 6502, 6513, 6525, 6537, 6549, 6561, 6590, 6591, 6607, 6623, 6624, 6628, 6641, 6652, 6661, 6671, 6681, 6682, 6685, 6686, 6689, 6690, 6691, 6694, 6708, 6713, 6724, 6734, 6747, 6748, 6752, 6761, 6774, 6785, 6799, 6810, 6833, 6844, 6863, 6874, 6885, 6896, 6907, 6918, 6929, 6940, 6951, 6962, 6973, 6984, 6999, 7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7021, 7022, 7023, 7024, 7025, 7029, 7030, 7031, 7032, 7033, 7034, 7035, 7036, 7041, 7042, 7043, 7047, 7048, 7051, 7052, 7055, 7057, 7062, 7063, 7074, 7086, 7087, 7088, 7098, 7107, 7116, 7125, 7134, 7143, 7152, 7161, 7170, 7179, 7193, 7202, 7211, 7220, 7229, 7238, 7247, 7256, 7268, 7269, 7283, 7294, 7305, 7316, 7327, 7338, 7349, 7360, 7371, 7382, 7395, 7396, 7399, 7400, 7410, 7417, 7426, 7435, 7444, 7453, 7462, 7471, 7480, 7489, 7498, 7507, 7516, 7525, 7534, 7543, 7552, 7561, 7572, 7573, 7576, 7577, 7587, 7605, 7621, 7649, 7651, 7653, 7655, 7663, 7673, 7674, 7677, 7685, 7693, 7701, 7708, 7719, 7723, 7730, 7734, 7745, 7754, 7763, 7772, 7781, 7790, 7799, 7808, 7817, 7826, 7835, 7844, 7853, 7861, 7870, 7879, 7888, 7897, 7906, 7915, 7924, 7937, 7938, 7942, 7943, 7948, 7949, 7959, 7970, 7984, 7996, 8014, 8015, 8019, 8026, 8027, 8028, 8031, 8032, 8042, 8053, 8054, 8058, 8062, 8066, 8077, 8091, 8106, 8124, 8125, 8126, 8127, 8128, 8129, 8141, 8173, 8208, 8209, 8213, 8214, 8217, 8218, 8223, 8235, 8254, 8259, 8264, 8271, 8272, 8275, 8276, 8279, 8280, 8284, 8285, 8286, 8289, 8290, 8291, 8307, 8321, 8336, 8350, 8367, 8368, 8371, 8372, 8376, 8377, 8381, 8382, 8387, 8401, 8409, 8417, 8433, 8434, 8438, 8439, 8454, 8464, 8474, 8484, 8494, 8507, 8508, 8509, 8510, 8511, 8517, 8521, 8536, 8537, 8543, 8553, 8557, 8562, 8570, 8612, 8616, 8620, 8624, 8632, 8633, 8637, 8649, 8650, 8655, 8656, 8661, 8662, 8669, 8673, 8677, 8681, 8685, 8689, 8693, 8697, 8701, 8705, 8709, 8713, 8717, 8721, 8725, 8729, 8734, 8741, 8745, 8749, 8753, 8757, 8763, 8764, 8770, 8780, 8784, 8795, 8801, 8810, 8816, 8817, 8821, 8822, 8826, 8827, 8830, 8843, 8847, 8862, 8871, 8880, 8893, 8894, 8899, 8900, 8917, 8928, 8939, 8950, 8961, 8972, 8986, 8997, 9011, 9022, 9036, 9044, 9046, 9048, 9053, 9055, 9060, 9061, 9066, 9085, 9095, 9096, 9100, 9104, 9116, 9128, 9140, 9154, 9155, 9156, 9160, 9173, 9174, 9184, 9197, 9201, 9205, 9209, 9216, 9238, 9251, 9264, 9279, 9280, 9283, 9284, 9287, 9288, 9298, 9308, 9326, 9336, 9346, 9356, 9366, 9376, 9386, 9396, 9406, 9416, 9426, 9436, 9446, 9457, 9468, 9478, 9488, 9498, 9508, 9518, 9528, 9539, 9550, 9561, 9572, 9583, 9594, 9605, 9616, 9627, 9638, 9649, 9660, 9672, 9684, 9696, 9708, 9720, 9732, 9743, 9754, 9766, 9778, 9789, 9800, 9809, 9819, 9829, 9839, 9849, 9859, 9869, 9879, 9889, 9899, 9914, 9915, 9918, 9919, 9929, 9939, 9949, 9959, 9970, 9980, 9992, 9993, 10003, 10013, 10023, 10033, 10043, 10053, 10063, 10073, 10083, 10093, 10103, 10113, 10123, 10133, 10143, 10153, 10163, 10173, 10183, 10193, 10203, 10213, 10223, 10233, 10243, 10253, 10263, 10282, 10292, 10293, 10296, 10298, 10300, 10306, 10307, 10308, 10309, 10310, 10322, 10338, 10347, 10356, 10365, 10374, 10383, 10392, 10401, 10410, 10419, 10428, 10437, 10446, 10455, 10464, 10473, 10482, 10491, 10500, 10509, 10518, 10527, 10536, 10545, 10573, 10581, 10590, 10616, 10625, 10632, 10638, 10665, 10676, 10685, 10693, 10695, 10717, 10725, 10735, 10745, 10764, 10783, 10793, 10803, 10813, 10824, 10835, 10846, 10857, 10868, 10886, 10895, 10912, 10930, 10931, 10932, 10937, 10943, 10952, 10953, 10954, 10955, 10956, 10960, 10961, 10964, 10965, 10966, 10967, 10971, 10972, 10973, 10985, 10996, 10997, 11000, 11010, 11017, 11037, 11047, 11056, 11066, 11076, 11085, 11094, 11103, 11112, 11121, 11130, 11139, 11151, 11160, 11172, 11173, 11174, 11178, 11181, 11184, 11187, 11190, 11197, 11199, 11201, 11206, 11208, 11212, 11213, 11214, 11226, 11240, 11254, 11273, 11295, 11296, 11297, 11298, 11308, 11325, 11336, 11337, 11341, 11342, 11346, 11350, 11354, 11372, 11373, 11374, 11375, 11376, 11377, 11378, 11385, 11386, 11397, 11405, 11413, 11422, 11432, 11450, 11459, 11468, 11477, 11489, 11493, 11504, 11516, 11534, 11541, 11558, 11572, 11582, 11591, 11600, 11610, 11622, 11634, 11645, 11646, 11657, 11668, 11680, 11692, 11704, 11716, 11726, 11739, 11740, 11754, 11778, 11787, 11797, 11809, 11821, 11835, 11836, 11848, 11869, 11880, 11892, 11904, 11908, 11915, 11916, 11920, 11927, 11928, 11929, 11933, 11934, 11935, 11939, 11940, 11944, 11945, 11948, 11949, 11952, 11953, 11957, 11958, 11962, 11969, 11971, 11976, 11977, 11990, 11998, 12009, 12017, 12028, 12029, 12030, 12031, 12032, 12033, 12034, 12035, 12036, 12037, 12047, 12058, 12059, 12063, 12064, 12065, 12066, 12067, 12077, 12085, 12103, 12123, 12124, 12134, 12143, 12152, 12161, 12180, 12198, 12202, 12210, 12216, 12223, 12229, 12236, 12245, 12246, 12250, 12252, 12257, 12268, 12278, 12288, 12294, 12303, 12312, 12318, 12319, 12330, 12345, 12346, 12357, 12368, 12369, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12382, 12383, 12387, 12388, 12389, 12400, 12419, 12420, 12424, 12429, 12453, 12464, 12465, 12477, 12497, 12498, 12508, 12515, 12522, 12529, 12539, 12552, 12553, 12557, 12558, 12562, 12563, 12567, 12580, 12593, 12602, 12611, 12620, 12629, 12641, 12653, 12665, 12668, 12669, 12670, 12671, 12672, 12673, 12676, 12677, 12678, 12726, 12727, 12731, 12732, 12747, 12748, 12755, 12763, 12771, 12779, 12787, 12795, 12806, 12807, 12839, 12855, 12872, 12873, 12892, 12896, 12900, 12915, 12922, 12929, 12939, 12940, 12943, 12959, 12960, 12961, 12965, 12975, 12986, 12992, 13004, 13017, 13023, 13024, 13028, 13040, 13048, 13053, 13058, 13063, 13068, 13076, 13084, 13089, 13094, 13101, 13102, 13106, 13107, 13108, 13115, 13116, 13120, 13121, 13125, 13126, 13130, 13131, 13135, 13139, 13140, 13143, 13152, 13165, 13170, 13175, 13179, 13191, 13192, 13196, 13205, 13221, 13230, 13239, 13248, 13260, 13263, 13268, 13269, 13277, 13297, 13298, 13300, 13305, 13306, 13310, 13311, 13314, 13315, 13340, 13349, 13359, 13360, 13364, 13365, 13366, 13367, 13368, 13372, 13385, 13392, 13399, 13406, 13407, 13411, 13412, 13416, 13417, 13421, 13422, 13426, 13438, 13439, 13440, 13441, 13445, 13446, 13456, 13463, 13482, 13483, 13487, 13488, 13494, 13499, 13508, 13516, 13525, 13532, 13540, 13549, 13558, 13562, 13567, 13574, 13603, 13607, 13621, 13642, 13664, 13677, 13694, 13700, 13705, 13711, 13718, 13719, 13729, 13735, 13743, 13747, 13751, 13758, 13766, 13771, 13772, 13773, 13774, 13778, 13779, 13794, 13798, 13806, 13813, 13820, 13827, 13834, 13845, 13846, 13859, 13863, 13871, 13885, 13899, 13900, 13915, 13926, 13939, 13944, 13945, 13948, 13949, 13952, 13953, 13958, 13959, 13964, 13965, 13974, 13979, 13980, 13984, 13988, 13994, 14019, 14030, 14044, 14045, 14049, 14063, 14120, 14134, 14136, 14141, 14150, 14152, 14154, 14156, 14161, 14163, 14168, 14176, 14187, 14215, 14216, 14220, 14222, 14227, 14236, 14256, 14276, 14294, 14306, 14321, 14322, 14326, 14329, 14342, 14347, 14354, 14359, 14365, 14370, 14379, 14381, 14384, 14388, 14389, 14390, 14391, 14392, 14393, 14398, 14404, 14419, 14420, 14421, 14422, 14423, 14434, 14440, 14448, 14449, 14455, 14460, 14465, 14470, 14475, 14480, 14485, 14490, 14496, 14502, 14508, 14515, 14537, 14546, 14550, 14558, 14562, 14570, 14582, 14603, 14607, 14613, 14617, 14630, 14638, 14648, 14650, 14652, 14654, 14656, 14658, 14663, 14664, 14671, 14680, 14688, 14697, 14708, 14716, 14717, 14718, 14722, 14724, 14726, 14728, 14730, 14732, 14734, 14739, 14744, 14750, 14758, 14763, 14770, 14777, 14781, 14785, 14793, 14828, 14829, 14831, 14840, 14847, 14863, 14865, 14867, 14869, 14871, 14873, 14875, 14877, 14879, 14881, 14883, 14885, 14887, 14889, 14892, 14894, 14897, 14899, 14901, 14903, 14906, 14911, 14920, 14925, 14934, 14939, 14948, 14953, 14963, 14972, 14981, 14990, 15009, 15018, 15027, 15036, 15045, 15062, 15071, 15080, 15089, 15098, 15107, 15116, 15120, 15124, 15132, 15140, 15148, 15156, 15177, 15200, 15212, 15219, 15235, 15240, 15246, 15253, 15260, 15268, 15276, 15293, 15312, 15338, 15340, 15342, 15344, 15346, 15348, 15350, 15352, 15354, 15356, 15358, 15360, 15362, 15364, 15366, 15368, 15370, 15372, 15374, 15378, 15382, 15387, 15403, 15404, 15405, 15422, 15435, 15437, 15439, 15451, 15476, 15488, 15500, 15508, 15519, 15530, 15540, 15546, 15555, 15565, 15575, 15588, 15598, 15629, 15665, 15675, 15686, 15687, 15688, 15695, 15702, 15706, 15710, 15714, 15718, 15722, 15726, 15730, 15734, 15738, 15742, 15746, 15750, 15757, 15761, 15765, 15769, 15771, 15778, 15785, 15792, 15799, 15810, 15824, 15834, 15845, 15861, 15871, 15878, 15885, 15892, 15896, 15904, 15913, 15922, 15926, 15930, 15934, 15938, 15942, 15951, 15955, 15965, 15969, 15973, 15978, 15989, 15995, 16009, 16020, 16034, 16050, 16062, 16072, 16081, 16090, 16098, 16120, 16136, 16160, 16162, 16166, 16168, 16170, 16173, 16176, 16179, 16180, 16183, 16191, 16201, 16202, 16205, 16206, 16207, 16210, 16211, 16212, 16217, 16221, 16225, 16229, 16236, 16237, 16245, 16246, 16250, 16251, 16259, 16260, 16264, 16265, 16270, 16279, 16281, 16296, 16299, 16327, 16328, 16331, 16332, 16340, 16348, 16356, 16365, 16375, 16393, 16439, 16448, 16457, 16466, 16475, 16487, 16488, 16489, 16490, 16491, 16505, 16506, 16507, 16510, 16511, 16514, 16517, 16518, 16519, 16522, 16523, 16526, 16527, 16528, 16529, 16530, 16531, 16532, 16533, 16534, 16535, 16536, 16537, 16540, 16542, 16547, 16549, 16554, 16556, 16558, 16560, 16562, 16564, 16576, 16580, 16587, 16591, 16597, 16601, 16611, 16623, 16624, 16627, 16628, 16631, 16635, 16639, 16645, 16646, 16651, 16655, 16665, 16666, 16667, 16668, 16669, 16670, 16671, 16672, 16676, 16677, 16678, 16679, 16684, 16689, 16698, 16719, 16723, 16728, 16739, 16756, 16762, 16763, 16764, 16767, 16775, 16785, 16800, 16801, 16805, 16817, 16818, 16821, 16822, 16825, 16829, 16836, 16840, 16844, 16853, 16865, 16866, 16870, 16871, 16875, 16876, 16879, 16880, 16885, 16886, 16890, 16891, 16895, 16907, 16908, 16909, 16910, 16911, 16912, 16913, 16914, 16915, 16919, 16921, 16926, 16927, 16928, 16929, 16930, 16931, 16932, 16934, 16938, 16940, 16942, 16945, 16949, 16952, 16956, 16965, 16982, 16989, 16994, 17000, 17001, 17002, 17003, 17004, 17008, 17017, 17031, 17032, 17033, 17034, 17035, 17044, 17045, 17046, 17047, 17048, 17052, 17054, 17064, 17067, 17073, 17074, 17075, 17079, 17080, 17081, 17085, 17086, 17090, 17108, 17128, 17129, 17138, 17139, 17143, 17144, 17147, 17155, 17163, 17171, 17194, 17195, 17206, 17210, 17216, 17218, 17223, 17225, 17227, 17237, 17239, 17250, 17254, 17258, 17262, 17266, 17275, 17283, 17315, 17322, 17354, 17358, 17365, 17373, 17377, 17383, 17390, 17394, 17398, 17404, 17405, 17407, 17408, 17409, 17413, 17454, 17482, 17486, 17490, 17496, 17498, 17512, 17548, 17561, 17562, 17565, 17566, 17583, 17584, 17585, 17590, 17591, 17592, 17597, 17598, 17599, 17600, 17606, 17607, 17608, 17609, 17610, 17616, 17617, 17637, 17638, 17639, 17640, 17641, 17642, 17643, 17644, 17645, 17646, 17647, 17648, 17649, 17650, 17651, 17652, 17653, 17654, 17655, 17656, 17657, 17658, 17659, 17660, 17661, 17662, 17663, 17664, 17665, 17666, 17667, 17668, 17669, 17670, 17671, 17672, 17673, 17674, 17675, 17676, 17677, 17678, 17679, 17680, 17681, 17682, 17683, 17684, 17685, 17686, 17687, 17688, 17689, 17690, 17691, 17692, 17693, 17694, 17695, 17696, 17697, 17698, 17699, 17700, 17701, 17702, 17703, 17704, 17705, 17706, 17707, 17708, 17709, 17710, 17711, 17712, 17713, 17714, 17715, 17716, 17717, 17718, 17719, 17720, 17721, 17722, 17723, 17724, 17725, 17726, 17727, 17728, 17729, 17730, 17731, 17732, 17733, 17734, 17735, 17736, 17737, 17738, 17739, 17740, 17741, 17742, 17743, 17744, 17745, 17746, 17747, 17748, 17749, 17750, 17751, 17752, 17753, 17754, 17755, 17756, 17757, 17758, 17759, 17760, 17761, 17762, 17763, 17764, 17765, 17766, 17767, 17768, 17769, 17770, 17771, 17772, 17773, 17774, 17775, 17776, 17777, 17778, 17779, 17780, 17781, 17782, 17783, 17784, 17785, 17786, 17787, 17788, 17789, 17790, 17791, 17792, 17793, 17794, 17795, 17796, 17797, 17798, 17799, 17800, 17801, 17802, 17803, 17804, 17805, 17806, 17807, 17808, 17809, 17810, 17811, 17812, 17813, 17814, 17815, 17816, 17817, 17818, 17819, 17820, 17821, 17822, 17823, 17824, 17825, 17826, 17827, 17828, 17829, 17830, 17831, 17832, 17833, 17834, 17835, 17836, 17837, 17838, 17839, 17840, 17841, 17842, 17843, 17844, 17845, 17846, 17847, 17848, 17849, 17850, 17851, 17852, 17853, 17854, 17855, 17856, 17857, 17858, 17859, 17860, 17861, 17862, 17863, 17864, 17865, 17866, 17867, 17868, 17869, 17870, 17871, 17872, 17873, 17874, 17875, 17876, 17877, 17878, 17879, 17880, 17881, 17882, 17883, 17884, 17885, 17886, 17887, 17888, 17889, 17890, 17891, 17892, 17893, 17894, 17895, 17896, 17897, 17898, 17899, 17900, 17901, 17902, 17903, 17904, 17905, 17906, 17907, 17908, 17909, 17910, 17911, 17912, 17913, 17914, 17915, 17916, 17917, 17918, 17919, 17920, 17921, 17922, 17923, 17924, 17925, 17926, 17927, 17928, 17929, 17930, 17931, 17932, 17933, 17934, 17935, 17936, 17937, 17938, 17939, 17940, 17941, 17942, 17943, 17944, 17945, 17946, 17947, 17948, 17949, 17950, 17951, 17952, 17953, 17954, 17955, 17956, 17957, 17958, 17959, 17960, 17961, 17962, 17963, 17977, 17978, 17979, 17980, 17981, 17982, 17983, 17984, 17985, 17986, 17987, 17988, 17989, 17990, 17991, 17992, 17993, 17994, 17995, 17996, 17997, 17998, 17999, 18000, 18001, 18002, 18003, 18004, 18005, 18006, 18007, 18008, 18009, 18010, 18011, 18012, 18013, 18014, 18015, 18016, 18017, 18018, 18019, 18020, 18021, 18022, 18023, 18024, 18025, 18026, 18027, 18028, 18029, 18030, 18031, 18032, 18033, 18034, 18035, 18036, 18037, 18038, 18039, 18053, 18054, 18055, 18056, 18057, 18058, 18059, 18060, 18061, 18062, 18063, 18064, 18065, 18066, 18067, 18068, 18069, 18070, 18071, 18072, 18073, 18074, 18075, 18085, 18086, 18087, 18088, 18089, 18090, 18091, 18092, 18093, 18094, 18095, 18096, 18097, 18098, 18099, 18100, 18101, 18102, 18103, 18104, 18105, 18106, 18107, 18108, 18109, 18110, 18111, 18112, 18113, 18114, 18115, 18116, 18117, 18118, 18119, 18120, 18121, 18122, 18123, 18124, 18125, 18126, 18127, 18128, 18129, 18130, 18131, 18132, 18133, 18134, 18135, 18136, 18137, 18138, 18139, 18140, 18141, 18142, 18143, 18144, 18145, 18146, 18147, 18148, 18149, 18150, 18151, 18152, 18153, 18154, 18155, 18156, 18157, 18158, 18159, 18160, 18161, 18162, 18175, 18176, 18177, 18178, 18179, 18180, 18181, 18182, 18183, 18184, 18185, 18186, 18187, 18188, 18189, 18190, 18191, 18192, 18193, 18194, 18195, 18196, 18197, 18198, 18199, 18200, 18201, 18202, 18203, 18204, 18205, 18206, 18207, 18208, 18209, 18210, 18211, 18212, 18213, 18214, 18215, 18216, 18217, 18218, 18219, 18220, 18221, 18222, 18223, 18224, 18225, 18226, 18227, 18228, 18229, 18230, 18231, 18232, 18233, 18234, 18235, 18236, 18237, 18238, 18239, 18240, 18241, 18242, 18243, 18244, 18245, 18246, 18247, 18248, 18249, 18250, 18251, 18252, 18253, 18254, 18255, 18256, 18257, 18258, 18259, 18260, 18261, 18262, 18263, 18264, 18265, 18266, 18267, 18268, 18269, 18270, 18271, 18272, 18273, 18274, 18275, 18276, 18277, 18278, 18279, 18280, 18281, 18282, 18283, 18284, 18285, 18286, 18287, 18288, 18289, 18290, 18291, 18292, 18293, 18294, 18295, 18296, 18297, 18298, 18299, 18300, 18301, 18302, 18303, 18304, 18305, 18306, 18307, 18308, 18309, 18310, 18311, 18312, 18313, 18314, 18315, 18316, 18317, 18318, 18319, 18320, 18321, 18322, 18323, 18324, 18325, 18326, 18327, 18328, 18329, 18330, 18331, 18332, 18333, 18334, 18335, 18336, 18337, 18338, 18339, 18340, 18341, 18342, 18343, 18344, 18345, 18346, 18347, 18348, 18349, 18350, 18351, 18352, 18353, 18354, 18355, 18356, 18357, 18358, 18359, 18360, 18361, 18362, 18363, 18364, 18365, 18366, 18367, 18368, 18369, 18370, 18371, 18372, 18373, 18374, 18375, 18376, 18377, 18378, 18379, 18380, 18381, 18382, 18383, 18384, 18385, 18386, 18387, 18388, 18389, 18390, 18391, 18392, 18393, 18394, 18395, 18396, 18397, 18398, 18399, 18400, 18401, 18402, 18403, 18404, 18405, 18406, 18407, 18408, 18409, 18410, 18411, 18412, 18413, 18414, 18415, 18416, 18417, 18418, 18419, 18420, 18421, 18422, 18423, 18424, 18425, 18426, 18427, 18428, 18429, 18430, 18431, 18432, 18433, 18434, 18435, 18436, 18437, 18438, 18439, 18440, 18441, 18442, 18443, 18444, 18445, 18446, 18447, 18448, 18449, 18450, 18451, 18452, 18453, 18454, 18455, 18456, 18457, 18458, 18459, 18460, 18461, 18462, 18463, 18464, 18465, 18466, 18467, 18468, 18469, 18470, 18471, 18472, 18473, 18474, 18475, 18476, 18477, 18478, 18479, 18480, 18481, 18482, 18483, 18484, 18485, 18486, 18487, 18488, 18489, 18490, 18491, 18492, 18493, 18494, 18495, 18496, 18497, 18498, 18499, 18500, 18501, 18502, 18503, 18504, 18505, 18506, 18507, 18508, 18509, 18510, 18511, 18512, 18513, 18514, 18515, 18516, 18517, 18518, 18519, 18520, 18521, 18522, 18523, 18524, 18525, 18526, 18527, 18528, 18529, 18530, 18531, 18532, 18533, 18534, 18535, 18536, 18537, 18538, 18539, 18540, 18541, 18542, 18543, 18544, 18545, 18546, 18547, 18548, 18549, 18550, 18551, 18552, 18553, 18554, 18555, 18556, 18557, 18558, 18559, 18560, 18561, 18562, 18563, 18564, 18565, 18566, 18567, 18568, 18569, 18570, 18571, 18572, 18573, 18574, 18575, 18576, 18577, 18578, 18579, 18580, 18581, 18582, 18583, 18584, 18585, 18586, 18587, 18588, 18589, 18590, 18591, 18592, 18593, 18594, 18595, 18596, 18597, 18598, 18599, 18600, 18601, 18602, 18603, 18604, 18605, 18606, 18607, 18608, 18609, 18610, 18611, 18612, 18613, 18614, 18615, 18616, 18617, 18618, 18619, 18620, 18621, 18622, 18623, 18624, 18625, 18626 }; #endif #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "$end", "error", "$undefined", "IDENT", "UIDENT", "FCONST", "SCONST", "USCONST", "BCONST", "XCONST", "Op", "ICONST", "PARAM", "TYPECAST", "DOT_DOT", "COLON_EQUALS", "EQUALS_GREATER", "LESS_EQUALS", "GREATER_EQUALS", "NOT_EQUALS", "SQL_COMMENT", "C_COMMENT", "ABORT_P", "ABSENT", "ABSOLUTE_P", "ACCESS", "ACTION", "ADD_P", "ADMIN", "AFTER", "AGGREGATE", "ALL", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", "ASSIGNMENT", "ASYMMETRIC", "ATOMIC", "AT", "ATTACH", "ATTRIBUTE", "AUTHORIZATION", "BACKWARD", "BEFORE", "BEGIN_P", "BETWEEN", "BIGINT", "BINARY", "BIT", "BOOLEAN_P", "BOTH", "BREADTH", "BY", "CACHE", "CALL", "CALLED", "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG_P", "CHAIN", "CHAR_P", "CHARACTER", "CHARACTERISTICS", "CHECK", "CHECKPOINT", "CLASS", "CLOSE", "CLUSTER", "COALESCE", "COLLATE", "COLLATION", "COLUMN", "COLUMNS", "COMMENT", "COMMENTS", "COMMIT", "COMMITTED", "COMPRESSION", "CONCURRENTLY", "CONDITIONAL", "CONFIGURATION", "CONFLICT", "CONNECTION", "CONSTRAINT", "CONSTRAINTS", "CONTENT_P", "CONTINUE_P", "CONVERSION_P", "COPY", "COST", "CREATE", "CROSS", "CSV", "CUBE", "CURRENT_P", "CURRENT_CATALOG", "CURRENT_DATE", "CURRENT_ROLE", "CURRENT_SCHEMA", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", "CYCLE", "DATA_P", "DATABASE", "DAY_P", "DEALLOCATE", "DEC", "DECIMAL_P", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERRABLE", "DEFERRED", "DEFINER", "DELETE_P", "DELIMITER", "DELIMITERS", "DEPENDS", "DEPTH", "DESC", "DETACH", "DICTIONARY", "DISABLE_P", "DISCARD", "DISTINCT", "DO", "DOCUMENT_P", "DOMAIN_P", "DOUBLE_P", "DROP", "EACH", "ELSE", "EMPTY_P", "ENABLE_P", "ENCODING", "ENCRYPTED", "END_P", "ENUM_P", "ERROR_P", "ESCAPE", "EVENT", "EXCEPT", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXECUTE", "EXISTS", "EXPLAIN", "EXPRESSION", "EXTENSION", "EXTERNAL", "EXTRACT", "FALSE_P", "FAMILY", "FETCH", "FILTER", "FINALIZE", "FIRST_P", "FLOAT_P", "FOLLOWING", "FOR", "FORCE", "FOREIGN", "FORMAT", "FORWARD", "FREEZE", "FROM", "FULL", "FUNCTION", "FUNCTIONS", "GENERATED", "GLOBAL", "GRANT", "GRANTED", "GREATEST", "GROUP_P", "GROUPING", "GROUPS", "HANDLER", "HAVING", "HEADER_P", "HOLD", "HOUR_P", "IDENTITY_P", "IF_P", "ILIKE", "IMMEDIATE", "IMMUTABLE", "IMPLICIT_P", "IMPORT_P", "IN_P", "INCLUDE", "INCLUDING", "INCREMENT", "INDENT", "INDEX", "INDEXES", "INHERIT", "INHERITS", "INITIALLY", "INLINE_P", "INNER_P", "INOUT", "INPUT_P", "INSENSITIVE", "INSERT", "INSTEAD", "INT_P", "INTEGER", "INTERSECT", "INTERVAL", "INTO", "INVOKER", "IS", "ISNULL", "ISOLATION", "JOIN", "JSON", "JSON_ARRAY", "JSON_ARRAYAGG", "JSON_EXISTS", "JSON_OBJECT", "JSON_OBJECTAGG", "JSON_QUERY", "JSON_SCALAR", "JSON_SERIALIZE", "JSON_TABLE", "JSON_VALUE", "KEEP", "KEY", "KEYS", "LABEL", "LANGUAGE", "LARGE_P", "LAST_P", "LATERAL_P", "LEADING", "LEAKPROOF", "LEAST", "LEFT", "LEVEL", "LIKE", "LIMIT", "LISTEN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", "LOCATION", "LOCK_P", "LOCKED", "LOGGED", "MAPPING", "MATCH", "MATCHED", "MATERIALIZED", "MAXVALUE", "MERGE", "MERGE_ACTION", "METHOD", "MINUTE_P", "MINVALUE", "MODE", "MONTH_P", "MOVE", "NAME_P", "NAMES", "NATIONAL", "NATURAL", "NCHAR", "NESTED", "NEW", "NEXT", "NFC", "NFD", "NFKC", "NFKD", "NO", "NONE", "NORMALIZE", "NORMALIZED", "NOT", "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", "NULL_P", "NULLIF", "NULLS_P", "NUMERIC", "OBJECT_P", "OF", "OFF", "OFFSET", "OIDS", "OLD", "OMIT", "ON", "ONLY", "OPERATOR", "OPTION", "OPTIONS", "OR", "ORDER", "ORDINALITY", "OTHERS", "OUT_P", "OUTER_P", "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "OWNED", "OWNER", "PARALLEL", "PARAMETER", "PARSER", "PARTIAL", "PARTITION", "PASSING", "PASSWORD", "PATH", "PLACING", "PLAN", "PLANS", "POLICY", "POSITION", "PRECEDING", "PRECISION", "PRESERVE", "PREPARE", "PREPARED", "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PROCEDURES", "PROGRAM", "PUBLICATION", "QUOTE", "QUOTES", "RANGE", "READ", "REAL", "REASSIGN", "RECHECK", "RECURSIVE", "REF_P", "REFERENCES", "REFERENCING", "REFRESH", "REINDEX", "RELATIVE_P", "RELEASE", "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", "RETURN", "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", "ROUTINE", "ROUTINES", "ROW", "ROWS", "RULE", "SAVEPOINT", "SCALAR", "SCHEMA", "SCHEMAS", "SCROLL", "SEARCH", "SECOND_P", "SECURITY", "SELECT", "SEQUENCE", "SEQUENCES", "SERIALIZABLE", "SERVER", "SESSION", "SESSION_USER", "SET", "SETS", "SETOF", "SHARE", "SHOW", "SIMILAR", "SIMPLE", "SKIP", "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", "SQL_P", "STABLE", "STANDALONE_P", "START", "STATEMENT", "STATISTICS", "STDIN", "STDOUT", "STORAGE", "STORED", "STRICT_P", "STRING_P", "STRIP_P", "SUBSCRIPTION", "SUBSTRING", "SUPPORT", "SYMMETRIC", "SYSID", "SYSTEM_P", "SYSTEM_USER", "TABLE", "TABLES", "TABLESAMPLE", "TABLESPACE", "TARGET", "TEMP", "TEMPLATE", "TEMPORARY", "TEXT_P", "THEN", "TIES", "TIME", "TIMESTAMP", "TO", "TRAILING", "TRANSACTION", "TRANSFORM", "TREAT", "TRIGGER", "TRIM", "TRUE_P", "TRUNCATE", "TRUSTED", "TYPE_P", "TYPES_P", "UESCAPE", "UNBOUNDED", "UNCONDITIONAL", "UNCOMMITTED", "UNENCRYPTED", "UNION", "UNIQUE", "UNKNOWN", "UNLISTEN", "UNLOGGED", "UNTIL", "UPDATE", "USER", "USING", "VACUUM", "VALID", "VALIDATE", "VALIDATOR", "VALUE_P", "VALUES", "VARCHAR", "VARIADIC", "VARYING", "VERBOSE", "VERSION_P", "VIEW", "VIEWS", "VOLATILE", "WHEN", "WHERE", "WHITESPACE_P", "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK", "WRAPPER", "WRITE", "XML_P", "XMLATTRIBUTES", "XMLCONCAT", "XMLELEMENT", "XMLEXISTS", "XMLFOREST", "XMLNAMESPACES", "XMLPARSE", "XMLPI", "XMLROOT", "XMLSERIALIZE", "XMLTABLE", "YEAR_P", "YES_P", "ZONE", "FORMAT_LA", "NOT_LA", "NULLS_LA", "WITH_LA", "WITHOUT_LA", "MODE_TYPE_NAME", "MODE_PLPGSQL_EXPR", "MODE_PLPGSQL_ASSIGN1", "MODE_PLPGSQL_ASSIGN2", "MODE_PLPGSQL_ASSIGN3", "'<'", "'>'", "'='", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", "';'", "','", "':'", "$accept", "parse_toplevel", "stmtmulti", "toplevel_stmt", "stmt", "opt_single_name", "opt_qualified_name", "opt_concurrently", "opt_drop_behavior", "CallStmt", "CreateRoleStmt", "opt_with", "OptRoleList", "AlterOptRoleList", "AlterOptRoleElem", "CreateOptRoleElem", "CreateUserStmt", "AlterRoleStmt", "opt_in_database", "AlterRoleSetStmt", "DropRoleStmt", "CreateGroupStmt", "AlterGroupStmt", "add_drop", "CreateSchemaStmt", "OptSchemaEltList", "schema_stmt", "VariableSetStmt", "set_rest", "generic_set", "set_rest_more", "var_name", "var_list", "var_value", "iso_level", "opt_boolean_or_string", "zone_value", "opt_encoding", "NonReservedWord_or_Sconst", "VariableResetStmt", "reset_rest", "generic_reset", "SetResetClause", "FunctionSetResetClause", "VariableShowStmt", "ConstraintsSetStmt", "constraints_set_list", "constraints_set_mode", "CheckPointStmt", "DiscardStmt", "AlterTableStmt", "alter_table_cmds", "partition_cmd", "index_partition_cmd", "alter_table_cmd", "alter_column_default", "opt_collate_clause", "alter_using", "replica_identity", "reloptions", "opt_reloptions", "reloption_list", "reloption_elem", "alter_identity_column_option_list", "alter_identity_column_option", "set_statistics_value", "set_access_method_name", "PartitionBoundSpec", "hash_partbound_elem", "hash_partbound", "AlterCompositeTypeStmt", "alter_type_cmds", "alter_type_cmd", "ClosePortalStmt", "CopyStmt", "copy_from", "opt_program", "copy_file_name", "copy_options", "copy_opt_list", "copy_opt_item", "opt_binary", "copy_delimiter", "opt_using", "copy_generic_opt_list", "copy_generic_opt_elem", "copy_generic_opt_arg", "copy_generic_opt_arg_list", "copy_generic_opt_arg_list_item", "CreateStmt", "OptTemp", "OptTableElementList", "OptTypedTableElementList", "TableElementList", "TypedTableElementList", "TableElement", "TypedTableElement", "columnDef", "columnOptions", "column_compression", "opt_column_compression", "column_storage", "opt_column_storage", "ColQualList", "ColConstraint", "ColConstraintElem", "opt_unique_null_treatment", "generated_when", "ConstraintAttr", "TableLikeClause", "TableLikeOptionList", "TableLikeOption", "TableConstraint", "ConstraintElem", "DomainConstraint", "DomainConstraintElem", "opt_no_inherit", "opt_column_list", "columnList", "columnElem", "opt_c_include", "key_match", "ExclusionConstraintList", "ExclusionConstraintElem", "OptWhereClause", "key_actions", "key_update", "key_delete", "key_action", "OptInherit", "OptPartitionSpec", "PartitionSpec", "part_params", "part_elem", "table_access_method_clause", "OptWith", "OnCommitOption", "OptTableSpace", "OptConsTableSpace", "ExistingIndex", "CreateStatsStmt", "stats_params", "stats_param", "AlterStatsStmt", "CreateAsStmt", "create_as_target", "opt_with_data", "CreateMatViewStmt", "create_mv_target", "OptNoLog", "RefreshMatViewStmt", "CreateSeqStmt", "AlterSeqStmt", "OptSeqOptList", "OptParenthesizedSeqOptList", "SeqOptList", "SeqOptElem", "opt_by", "NumericOnly", "NumericOnly_list", "CreatePLangStmt", "opt_trusted", "handler_name", "opt_inline_handler", "validator_clause", "opt_validator", "opt_procedural", "CreateTableSpaceStmt", "OptTableSpaceOwner", "DropTableSpaceStmt", "CreateExtensionStmt", "create_extension_opt_list", "create_extension_opt_item", "AlterExtensionStmt", "alter_extension_opt_list", "alter_extension_opt_item", "AlterExtensionContentsStmt", "CreateFdwStmt", "fdw_option", "fdw_options", "opt_fdw_options", "AlterFdwStmt", "create_generic_options", "generic_option_list", "alter_generic_options", "alter_generic_option_list", "alter_generic_option_elem", "generic_option_elem", "generic_option_name", "generic_option_arg", "CreateForeignServerStmt", "opt_type", "foreign_server_version", "opt_foreign_server_version", "AlterForeignServerStmt", "CreateForeignTableStmt", "ImportForeignSchemaStmt", "import_qualification_type", "import_qualification", "CreateUserMappingStmt", "auth_ident", "DropUserMappingStmt", "AlterUserMappingStmt", "CreatePolicyStmt", "AlterPolicyStmt", "RowSecurityOptionalExpr", "RowSecurityOptionalWithCheck", "RowSecurityDefaultToRole", "RowSecurityOptionalToRole", "RowSecurityDefaultPermissive", "RowSecurityDefaultForCmd", "row_security_cmd", "CreateAmStmt", "am_type", "CreateTrigStmt", "TriggerActionTime", "TriggerEvents", "TriggerOneEvent", "TriggerReferencing", "TriggerTransitions", "TriggerTransition", "TransitionOldOrNew", "TransitionRowOrTable", "TransitionRelName", "TriggerForSpec", "TriggerForOptEach", "TriggerForType", "TriggerWhen", "FUNCTION_or_PROCEDURE", "TriggerFuncArgs", "TriggerFuncArg", "OptConstrFromTable", "ConstraintAttributeSpec", "ConstraintAttributeElem", "CreateEventTrigStmt", "event_trigger_when_list", "event_trigger_when_item", "event_trigger_value_list", "AlterEventTrigStmt", "enable_trigger", "CreateAssertionStmt", "DefineStmt", "definition", "def_list", "def_elem", "def_arg", "old_aggr_definition", "old_aggr_list", "old_aggr_elem", "opt_enum_val_list", "enum_val_list", "AlterEnumStmt", "opt_if_not_exists", "CreateOpClassStmt", "opclass_item_list", "opclass_item", "opt_default", "opt_opfamily", "opclass_purpose", "opt_recheck", "CreateOpFamilyStmt", "AlterOpFamilyStmt", "opclass_drop_list", "opclass_drop", "DropOpClassStmt", "DropOpFamilyStmt", "DropOwnedStmt", "ReassignOwnedStmt", "DropStmt", "object_type_any_name", "object_type_name", "drop_type_name", "object_type_name_on_any_name", "any_name_list", "any_name", "attrs", "type_name_list", "TruncateStmt", "opt_restart_seqs", "CommentStmt", "comment_text", "SecLabelStmt", "opt_provider", "security_label", "FetchStmt", "fetch_args", "from_in", "opt_from_in", "GrantStmt", "RevokeStmt", "privileges", "privilege_list", "privilege", "parameter_name_list", "parameter_name", "privilege_target", "grantee_list", "grantee", "opt_grant_grant_option", "GrantRoleStmt", "RevokeRoleStmt", "grant_role_opt_list", "grant_role_opt", "grant_role_opt_value", "opt_granted_by", "AlterDefaultPrivilegesStmt", "DefACLOptionList", "DefACLOption", "DefACLAction", "defacl_privilege_target", "IndexStmt", "opt_unique", "access_method_clause", "index_params", "index_elem_options", "index_elem", "opt_include", "index_including_params", "opt_collate", "opt_asc_desc", "opt_nulls_order", "CreateFunctionStmt", "opt_or_replace", "func_args", "func_args_list", "function_with_argtypes_list", "function_with_argtypes", "func_args_with_defaults", "func_args_with_defaults_list", "func_arg", "arg_class", "param_name", "func_return", "func_type", "func_arg_with_default", "aggr_arg", "aggr_args", "aggr_args_list", "aggregate_with_argtypes", "aggregate_with_argtypes_list", "opt_createfunc_opt_list", "createfunc_opt_list", "common_func_opt_item", "createfunc_opt_item", "func_as", "ReturnStmt", "opt_routine_body", "routine_body_stmt_list", "routine_body_stmt", "transform_type_list", "opt_definition", "table_func_column", "table_func_column_list", "AlterFunctionStmt", "alterfunc_opt_list", "opt_restrict", "RemoveFuncStmt", "RemoveAggrStmt", "RemoveOperStmt", "oper_argtypes", "any_operator", "operator_with_argtypes_list", "operator_with_argtypes", "DoStmt", "dostmt_opt_list", "dostmt_opt_item", "CreateCastStmt", "cast_context", "DropCastStmt", "opt_if_exists", "CreateTransformStmt", "transform_element_list", "DropTransformStmt", "ReindexStmt", "reindex_target_relation", "reindex_target_all", "opt_reindex_option_list", "AlterTblSpcStmt", "RenameStmt", "opt_column", "opt_set_data", "AlterObjectDependsStmt", "opt_no", "AlterObjectSchemaStmt", "AlterOperatorStmt", "operator_def_list", "operator_def_elem", "operator_def_arg", "AlterTypeStmt", "AlterOwnerStmt", "CreatePublicationStmt", "PublicationObjSpec", "pub_obj_list", "AlterPublicationStmt", "CreateSubscriptionStmt", "AlterSubscriptionStmt", "DropSubscriptionStmt", "RuleStmt", "RuleActionList", "RuleActionMulti", "RuleActionStmt", "RuleActionStmtOrEmpty", "event", "opt_instead", "NotifyStmt", "notify_payload", "ListenStmt", "UnlistenStmt", "TransactionStmt", "TransactionStmtLegacy", "opt_transaction", "transaction_mode_item", "transaction_mode_list", "transaction_mode_list_or_empty", "opt_transaction_chain", "ViewStmt", "opt_check_option", "LoadStmt", "CreatedbStmt", "createdb_opt_list", "createdb_opt_items", "createdb_opt_item", "createdb_opt_name", "opt_equal", "AlterDatabaseStmt", "AlterDatabaseSetStmt", "DropdbStmt", "drop_option_list", "drop_option", "AlterCollationStmt", "AlterSystemStmt", "CreateDomainStmt", "AlterDomainStmt", "opt_as", "AlterTSDictionaryStmt", "AlterTSConfigurationStmt", "any_with", "CreateConversionStmt", "ClusterStmt", "cluster_index_specification", "VacuumStmt", "AnalyzeStmt", "utility_option_list", "analyze_keyword", "utility_option_elem", "utility_option_name", "utility_option_arg", "opt_analyze", "opt_verbose", "opt_full", "opt_freeze", "opt_name_list", "vacuum_relation", "vacuum_relation_list", "opt_vacuum_relation_list", "ExplainStmt", "ExplainableStmt", "PrepareStmt", "prep_type_clause", "PreparableStmt", "ExecuteStmt", "execute_param_clause", "DeallocateStmt", "InsertStmt", "insert_target", "insert_rest", "override_kind", "insert_column_list", "insert_column_item", "opt_on_conflict", "opt_conf_expr", "returning_clause", "DeleteStmt", "using_clause", "LockStmt", "opt_lock", "lock_type", "opt_nowait", "opt_nowait_or_skip", "UpdateStmt", "set_clause_list", "set_clause", "set_target", "set_target_list", "MergeStmt", "merge_when_list", "merge_when_clause", "merge_when_tgt_matched", "merge_when_tgt_not_matched", "opt_merge_when_condition", "merge_update", "merge_delete", "merge_insert", "merge_values_clause", "DeclareCursorStmt", "cursor_name", "cursor_options", "opt_hold", "SelectStmt", "select_with_parens", "select_no_parens", "select_clause", "simple_select", "with_clause", "cte_list", "common_table_expr", "opt_materialized", "opt_search_clause", "opt_cycle_clause", "opt_with_clause", "into_clause", "OptTempTableName", "opt_table", "set_quantifier", "distinct_clause", "opt_all_clause", "opt_distinct_clause", "opt_sort_clause", "sort_clause", "sortby_list", "sortby", "select_limit", "opt_select_limit", "limit_clause", "offset_clause", "select_limit_value", "select_offset_value", "select_fetch_first_value", "I_or_F_const", "row_or_rows", "first_or_next", "group_clause", "group_by_list", "group_by_item", "empty_grouping_set", "rollup_clause", "cube_clause", "grouping_sets_clause", "having_clause", "for_locking_clause", "opt_for_locking_clause", "for_locking_items", "for_locking_item", "for_locking_strength", "locked_rels_list", "values_clause", "from_clause", "from_list", "table_ref", "joined_table", "alias_clause", "opt_alias_clause", "opt_alias_clause_for_join_using", "func_alias_clause", "join_type", "opt_outer", "join_qual", "relation_expr", "extended_relation_expr", "relation_expr_list", "relation_expr_opt_alias", "tablesample_clause", "opt_repeatable_clause", "func_table", "rowsfrom_item", "rowsfrom_list", "opt_col_def_list", "opt_ordinality", "where_clause", "where_or_current_clause", "OptTableFuncElementList", "TableFuncElementList", "TableFuncElement", "xmltable", "xmltable_column_list", "xmltable_column_el", "xmltable_column_option_list", "xmltable_column_option_el", "xml_namespace_list", "xml_namespace_el", "json_table", "json_table_path_name_opt", "json_table_column_definition_list", "json_table_column_definition", "path_opt", "json_table_column_path_clause_opt", "Typename", "opt_array_bounds", "SimpleTypename", "ConstTypename", "GenericType", "opt_type_modifiers", "Numeric", "opt_float", "Bit", "ConstBit", "BitWithLength", "BitWithoutLength", "Character", "ConstCharacter", "CharacterWithLength", "CharacterWithoutLength", "character", "opt_varying", "ConstDatetime", "ConstInterval", "opt_timezone", "opt_interval", "interval_second", "JsonType", "a_expr", "b_expr", "c_expr", "func_application", "func_expr", "func_expr_windowless", "func_expr_common_subexpr", "xml_root_version", "opt_xml_root_standalone", "xml_attributes", "xml_attribute_list", "xml_attribute_el", "document_or_content", "xml_indent_option", "xml_whitespace_option", "xmlexists_argument", "xml_passing_mech", "within_group_clause", "filter_clause", "window_clause", "window_definition_list", "window_definition", "over_clause", "window_specification", "opt_existing_window_name", "opt_partition_clause", "opt_frame_clause", "frame_extent", "frame_bound", "opt_window_exclusion_clause", "row", "explicit_row", "implicit_row", "sub_type", "all_Op", "MathOp", "qual_Op", "qual_all_Op", "subquery_Op", "expr_list", "func_arg_list", "func_arg_expr", "func_arg_list_opt", "type_list", "array_expr", "array_expr_list", "extract_list", "extract_arg", "unicode_normal_form", "overlay_list", "position_list", "substr_list", "trim_list", "in_expr", "case_expr", "when_clause_list", "when_clause", "case_default", "case_arg", "columnref", "indirection_el", "opt_slice_bound", "indirection", "opt_indirection", "opt_asymmetric", "json_passing_clause_opt", "json_arguments", "json_argument", "json_wrapper_behavior", "json_behavior", "json_behavior_type", "json_behavior_clause_opt", "json_on_error_clause_opt", "json_value_expr", "json_format_clause", "json_format_clause_opt", "json_quotes_clause_opt", "json_returning_clause_opt", "json_predicate_type_constraint", "json_key_uniqueness_constraint_opt", "json_name_and_value_list", "json_name_and_value", "json_object_constructor_null_clause_opt", "json_array_constructor_null_clause_opt", "json_value_expr_list", "json_aggregate_func", "json_array_aggregate_order_by_clause_opt", "opt_target_list", "target_list", "target_el", "qualified_name_list", "qualified_name", "name_list", "name", "attr_name", "file_name", "func_name", "AexprConst", "Iconst", "Sconst", "SignedIconst", "RoleId", "RoleSpec", "role_list", "PLpgSQL_Expr", "PLAssignStmt", "plassign_target", "plassign_equals", "ColId", "type_function_name", "NonReservedWord", "ColLabel", "BareColLabel", "unreserved_keyword", "col_name_keyword", "type_func_name_keyword", "reserved_keyword", "bare_label_keyword", 0 }; #endif # ifdef YYPRINT /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to token YYLEX-NUM. */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 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, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 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, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 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, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 60, 62, 61, 43, 45, 42, 47, 37, 94, 778, 91, 93, 40, 41, 46, 59, 44, 58 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { 0, 541, 542, 542, 542, 542, 542, 542, 543, 543, 544, 544, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 546, 546, 547, 547, 548, 548, 549, 549, 549, 550, 551, 552, 552, 552, 553, 553, 554, 554, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 556, 556, 556, 556, 556, 556, 557, 558, 558, 559, 559, 560, 560, 560, 560, 561, 561, 561, 561, 561, 561, 562, 563, 564, 564, 565, 565, 565, 565, 566, 566, 567, 567, 567, 567, 567, 567, 568, 568, 568, 569, 569, 569, 570, 570, 570, 570, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 572, 572, 573, 573, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 576, 577, 577, 577, 577, 577, 577, 577, 577, 578, 578, 578, 579, 579, 580, 581, 581, 581, 581, 582, 582, 583, 583, 584, 584, 585, 585, 585, 585, 585, 586, 587, 587, 588, 588, 589, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 592, 592, 593, 593, 593, 594, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 596, 596, 597, 597, 598, 598, 599, 599, 599, 599, 600, 601, 601, 602, 602, 603, 603, 603, 603, 604, 604, 605, 605, 605, 605, 606, 606, 607, 607, 608, 608, 608, 608, 609, 610, 610, 611, 612, 612, 613, 613, 613, 613, 614, 614, 615, 615, 616, 616, 617, 617, 618, 618, 618, 619, 619, 620, 620, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 622, 622, 623, 623, 624, 624, 625, 625, 626, 627, 627, 627, 627, 627, 627, 628, 628, 629, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 631, 632, 632, 633, 633, 634, 634, 635, 635, 636, 636, 636, 637, 637, 638, 639, 639, 640, 640, 641, 641, 642, 642, 643, 643, 644, 644, 645, 645, 645, 645, 646, 646, 646, 646, 646, 646, 646, 646, 646, 647, 647, 647, 648, 648, 649, 649, 649, 649, 650, 651, 651, 651, 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 653, 653, 654, 654, 654, 654, 654, 654, 654, 655, 655, 656, 656, 657, 657, 658, 658, 659, 659, 660, 661, 661, 662, 662, 662, 662, 663, 663, 664, 664, 665, 665, 666, 666, 666, 666, 666, 667, 668, 669, 669, 669, 669, 669, 670, 670, 671, 671, 672, 673, 673, 674, 674, 674, 675, 675, 676, 676, 676, 677, 677, 677, 677, 678, 678, 679, 679, 680, 681, 681, 682, 682, 683, 683, 683, 684, 684, 685, 685, 686, 687, 687, 687, 688, 688, 689, 690, 690, 691, 692, 692, 693, 693, 694, 694, 695, 695, 696, 696, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 697, 698, 698, 699, 699, 699, 699, 700, 700, 701, 701, 702, 702, 703, 703, 704, 704, 705, 705, 706, 706, 707, 707, 708, 709, 709, 710, 710, 711, 711, 712, 712, 713, 713, 713, 713, 714, 715, 715, 716, 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, 718, 719, 719, 719, 719, 720, 720, 721, 721, 722, 722, 723, 723, 724, 724, 725, 726, 726, 727, 727, 727, 727, 728, 729, 730, 731, 731, 732, 732, 733, 733, 734, 734, 735, 735, 735, 736, 736, 736, 736, 737, 738, 738, 739, 739, 740, 740, 741, 741, 742, 742, 743, 744, 745, 746, 746, 747, 747, 748, 748, 749, 749, 750, 750, 751, 751, 752, 752, 752, 752, 752, 753, 754, 754, 755, 755, 756, 756, 756, 757, 757, 758, 758, 758, 758, 758, 759, 759, 760, 760, 761, 762, 762, 763, 763, 764, 765, 765, 766, 766, 767, 767, 768, 768, 769, 769, 770, 770, 770, 771, 771, 771, 771, 772, 772, 773, 773, 774, 774, 774, 774, 774, 774, 775, 775, 776, 776, 777, 778, 778, 779, 780, 780, 780, 780, 781, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 783, 784, 784, 785, 785, 786, 786, 786, 786, 786, 786, 787, 788, 788, 789, 790, 790, 791, 791, 792, 792, 792, 792, 792, 793, 793, 794, 795, 795, 796, 796, 796, 796, 796, 797, 797, 798, 798, 799, 799, 799, 800, 800, 801, 802, 802, 803, 803, 804, 804, 805, 805, 806, 806, 807, 808, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 811, 811, 811, 811, 811, 812, 812, 812, 812, 812, 812, 812, 812, 813, 813, 813, 814, 814, 815, 815, 816, 816, 817, 817, 818, 819, 819, 819, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 821, 821, 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, 823, 823, 824, 824, 825, 825, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 827, 827, 828, 828, 829, 830, 830, 831, 831, 831, 831, 831, 832, 832, 833, 833, 833, 833, 833, 834, 834, 835, 835, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 837, 837, 838, 838, 839, 839, 840, 840, 841, 841, 842, 842, 843, 844, 844, 844, 845, 845, 846, 847, 847, 848, 848, 848, 849, 849, 849, 850, 850, 850, 850, 850, 850, 851, 851, 852, 852, 853, 853, 854, 854, 855, 855, 856, 856, 856, 857, 857, 858, 858, 859, 859, 860, 860, 860, 861, 861, 861, 862, 862, 862, 862, 863, 863, 864, 864, 865, 865, 866, 866, 867, 867, 867, 867, 868, 868, 869, 869, 870, 870, 870, 870, 870, 871, 871, 871, 871, 871, 872, 873, 874, 874, 874, 875, 875, 875, 876, 877, 877, 877, 877, 878, 878, 879, 880, 880, 881, 881, 882, 882, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 884, 884, 884, 884, 884, 885, 885, 886, 887, 887, 887, 888, 888, 889, 889, 890, 890, 891, 891, 892, 893, 893, 894, 894, 894, 895, 895, 896, 896, 897, 897, 897, 897, 897, 897, 898, 898, 899, 899, 900, 900, 900, 900, 901, 901, 902, 902, 903, 904, 905, 905, 906, 906, 907, 907, 907, 908, 908, 908, 909, 910, 910, 911, 912, 912, 912, 912, 913, 914, 914, 914, 915, 915, 916, 916, 917, 917, 918, 918, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 920, 920, 921, 921, 922, 922, 922, 922, 922, 922, 923, 923, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 925, 926, 926, 927, 927, 927, 928, 928, 928, 928, 928, 929, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 931, 931, 931, 932, 932, 932, 932, 932, 932, 932, 933, 933, 934, 934, 934, 934, 935, 936, 936, 936, 936, 936, 936, 936, 936, 936, 937, 937, 938, 939, 939, 939, 940, 940, 941, 941, 941, 941, 941, 942, 942, 943, 943, 943, 943, 944, 944, 944, 945, 946, 946, 947, 948, 948, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 950, 950, 951, 951, 951, 952, 952, 952, 952, 952, 953, 953, 953, 954, 954, 955, 955, 955, 956, 956, 956, 956, 957, 957, 957, 957, 958, 959, 960, 960, 961, 961, 962, 962, 962, 963, 963, 963, 963, 963, 963, 963, 964, 964, 965, 965, 965, 965, 966, 967, 967, 967, 967, 968, 968, 969, 970, 971, 971, 972, 973, 973, 973, 973, 973, 973, 973, 974, 974, 975, 976, 976, 976, 976, 976, 976, 977, 977, 978, 979, 979, 979, 979, 979, 980, 980, 981, 981, 982, 982, 983, 983, 984, 984, 985, 986, 986, 986, 987, 987, 987, 988, 988, 989, 989, 990, 990, 991, 991, 992, 992, 993, 994, 994, 995, 995, 996, 996, 996, 996, 997, 997, 997, 997, 997, 997, 997, 997, 997, 997, 998, 999, 999, 1000, 1000, 1000, 1000, 1000, 1001, 1001, 1001, 1002, 1002, 1003, 1003, 1003, 1003, 1004, 1005, 1005, 1006, 1006, 1006, 1006, 1006, 1007, 1007, 1008, 1008, 1009, 1010, 1010, 1010, 1011, 1011, 1011, 1012, 1012, 1013, 1014, 1014, 1015, 1016, 1016, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1018, 1018, 1019, 1019, 1019, 1020, 1021, 1021, 1022, 1022, 1023, 1024, 1024, 1025, 1026, 1026, 1027, 1027, 1027, 1027, 1027, 1028, 1028, 1029, 1029, 1030, 1030, 1031, 1032, 1033, 1033, 1033, 1033, 1033, 1034, 1035, 1036, 1037, 1037, 1037, 1037, 1037, 1037, 1038, 1038, 1038, 1039, 1039, 1040, 1040, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1042, 1042, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1044, 1044, 1044, 1045, 1045, 1046, 1047, 1047, 1047, 1048, 1048, 1048, 1049, 1049, 1049, 1050, 1050, 1051, 1051, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1053, 1053, 1054, 1054, 1054, 1055, 1055, 1056, 1056, 1057, 1057, 1058, 1058, 1059, 1060, 1060, 1061, 1061, 1062, 1062, 1062, 1062, 1063, 1063, 1064, 1064, 1064, 1064, 1064, 1064, 1065, 1065, 1066, 1066, 1067, 1068, 1068, 1068, 1069, 1069, 1070, 1070, 1071, 1071, 1072, 1072, 1073, 1073, 1074, 1074, 1074, 1074, 1074, 1075, 1076, 1077, 1078, 1079, 1079, 1080, 1080, 1081, 1081, 1082, 1082, 1083, 1084, 1084, 1084, 1084, 1085, 1085, 1086, 1086, 1087, 1087, 1088, 1088, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1090, 1090, 1090, 1090, 1090, 1090, 1091, 1091, 1091, 1091, 1092, 1092, 1093, 1093, 1094, 1094, 1094, 1094, 1094, 1095, 1095, 1095, 1095, 1096, 1096, 1097, 1097, 1098, 1098, 1099, 1099, 1099, 1100, 1100, 1101, 1101, 1101, 1102, 1103, 1103, 1104, 1104, 1105, 1106, 1106, 1107, 1107, 1108, 1108, 1109, 1109, 1110, 1110, 1110, 1111, 1111, 1112, 1112, 1113, 1114, 1114, 1115, 1115, 1116, 1116, 1116, 1117, 1117, 1118, 1118, 1118, 1118, 1118, 1119, 1119, 1120, 1120, 1121, 1122, 1122, 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, 1125, 1125, 1126, 1126, 1127, 1127, 1127, 1127, 1127, 1127, 1128, 1128, 1128, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1130, 1130, 1130, 1130, 1130, 1131, 1131, 1132, 1132, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1134, 1134, 1135, 1135, 1136, 1136, 1137, 1138, 1139, 1139, 1140, 1140, 1141, 1142, 1143, 1143, 1143, 1143, 1143, 1143, 1144, 1144, 1145, 1145, 1145, 1145, 1146, 1147, 1147, 1147, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1149, 1149, 1150, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1155, 1155, 1155, 1156, 1156, 1156, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1158, 1158, 1159, 1159, 1159, 1159, 1160, 1161, 1161, 1162, 1162, 1163, 1163, 1164, 1164, 1164, 1165, 1165, 1165, 1166, 1166, 1166, 1166, 1167, 1167, 1168, 1168, 1169, 1169, 1170, 1170, 1171, 1171, 1172, 1173, 1173, 1173, 1174, 1175, 1175, 1176, 1176, 1177, 1177, 1177, 1177, 1178, 1178, 1179, 1179, 1179, 1179, 1179, 1180, 1180, 1180, 1180, 1180, 1181, 1181, 1181, 1182, 1182, 1183, 1184, 1184, 1184, 1185, 1185, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1187, 1187, 1188, 1188, 1189, 1189, 1189, 1189, 1189, 1189, 1190, 1190, 1191, 1191, 1192, 1192, 1192, 1193, 1193, 1194, 1194, 1195, 1195, 1195, 1196, 1196, 1197, 1197, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1199, 1199, 1199, 1199, 1200, 1200, 1201, 1202, 1202, 1202, 1202, 1202, 1203, 1203, 1203, 1204, 1204, 1205, 1206, 1206, 1207, 1208, 1208, 1209, 1209, 1210, 1210, 1211, 1211, 1211, 1211, 1212, 1212, 1213, 1213, 1214, 1214, 1215, 1215, 1216, 1216, 1217, 1217, 1218, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1220, 1220, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1222, 1222, 1222, 1222, 1223, 1223, 1224, 1225, 1225, 1226, 1226, 1227, 1227, 1227, 1227, 1227, 1228, 1228, 1229, 1229, 1229, 1229, 1229, 1230, 1230, 1230, 1230, 1230, 1231, 1231, 1232, 1232, 1233, 1233, 1233, 1234, 1234, 1234, 1235, 1235, 1236, 1236, 1237, 1237, 1238, 1238, 1239, 1239, 1240, 1240, 1240, 1240, 1241, 1241, 1242, 1242, 1243, 1243, 1244, 1245, 1246, 1247, 1247, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1249, 1250, 1251, 1251, 1251, 1252, 1253, 1253, 1253, 1253, 1254, 1254, 1255, 1256, 1257, 1257, 1258, 1258, 1259, 1259, 1259, 1260, 1260, 1260, 1261, 1261, 1261, 1261, 1262, 1262, 1262, 1262, 1262, 1263, 1263, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 1, 2, 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 2, 5, 1, 1, 0, 2, 0, 2, 0, 2, 2, 2, 3, 3, 3, 1, 3, 3, 2, 1, 1, 2, 2, 2, 3, 3, 5, 5, 5, 0, 3, 5, 5, 5, 5, 3, 5, 3, 5, 3, 5, 5, 6, 1, 1, 6, 4, 9, 7, 2, 0, 1, 1, 1, 1, 1, 1, 2, 3, 3, 2, 5, 1, 3, 3, 3, 3, 1, 3, 3, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, 2, 3, 2, 1, 1, 2, 1, 2, 1, 2, 3, 4, 3, 2, 4, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 4, 6, 4, 6, 10, 13, 4, 6, 4, 10, 13, 4, 6, 4, 6, 5, 7, 11, 14, 5, 7, 1, 3, 4, 4, 4, 3, 2, 5, 3, 6, 4, 6, 6, 9, 5, 7, 6, 6, 5, 5, 5, 5, 9, 4, 5, 7, 6, 4, 8, 4, 2, 4, 3, 6, 4, 3, 3, 3, 2, 2, 3, 4, 4, 3, 3, 3, 3, 3, 3, 4, 4, 3, 2, 3, 2, 2, 3, 4, 3, 2, 2, 3, 4, 4, 4, 5, 1, 3, 2, 2, 0, 2, 0, 1, 1, 1, 3, 3, 2, 0, 1, 3, 3, 1, 5, 3, 1, 2, 1, 3, 2, 3, 1, 1, 1, 1, 6, 6, 10, 1, 2, 1, 3, 4, 1, 3, 4, 6, 4, 8, 2, 2, 11, 9, 1, 1, 1, 0, 1, 1, 1, 1, 3, 2, 0, 1, 1, 3, 3, 1, 1, 3, 3, 3, 3, 4, 4, 3, 3, 2, 1, 0, 3, 0, 1, 0, 1, 3, 2, 1, 1, 1, 1, 3, 0, 1, 3, 1, 13, 16, 12, 15, 14, 17, 1, 1, 2, 2, 2, 2, 1, 0, 1, 0, 3, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 6, 2, 4, 2, 2, 1, 0, 2, 2, 1, 0, 2, 0, 3, 1, 1, 2, 2, 1, 4, 4, 5, 2, 5, 7, 5, 2, 3, 0, 1, 2, 1, 2, 2, 2, 3, 3, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 9, 3, 9, 4, 10, 11, 3, 1, 5, 3, 2, 0, 3, 0, 1, 3, 1, 4, 0, 2, 2, 2, 0, 1, 3, 3, 6, 4, 0, 1, 1, 2, 2, 0, 3, 3, 2, 1, 1, 3, 3, 4, 0, 1, 0, 6, 1, 3, 3, 3, 5, 2, 0, 2, 2, 0, 3, 4, 4, 0, 2, 0, 4, 0, 3, 8, 11, 1, 3, 1, 1, 3, 6, 8, 7, 10, 6, 2, 3, 0, 8, 11, 5, 1, 0, 6, 5, 8, 4, 6, 1, 0, 3, 0, 1, 2, 2, 2, 1, 2, 3, 1, 2, 2, 2, 2, 3, 3, 3, 1, 3, 1, 1, 0, 1, 2, 2, 1, 1, 3, 6, 10, 1, 0, 1, 2, 2, 0, 2, 2, 1, 0, 1, 0, 7, 2, 0, 3, 5, 5, 8, 2, 0, 2, 2, 2, 1, 5, 2, 0, 2, 6, 6, 6, 10, 6, 6, 6, 9, 9, 6, 6, 9, 6, 7, 2, 2, 2, 2, 1, 2, 1, 0, 7, 6, 4, 0, 1, 3, 4, 1, 3, 1, 2, 2, 2, 2, 1, 1, 10, 13, 2, 0, 2, 2, 1, 0, 5, 4, 4, 11, 14, 12, 15, 11, 2, 1, 4, 0, 8, 11, 1, 1, 7, 9, 8, 10, 8, 4, 0, 5, 0, 2, 0, 2, 0, 2, 0, 2, 0, 1, 1, 1, 1, 1, 8, 1, 1, 17, 21, 1, 1, 2, 1, 3, 1, 1, 1, 3, 1, 2, 0, 1, 2, 4, 1, 1, 1, 1, 1, 3, 0, 1, 0, 1, 1, 4, 0, 1, 1, 1, 3, 0, 1, 1, 1, 1, 2, 0, 0, 2, 2, 1, 2, 2, 2, 2, 11, 13, 1, 3, 5, 1, 3, 5, 1, 2, 2, 1, 8, 6, 5, 4, 4, 3, 7, 8, 6, 6, 6, 6, 6, 4, 7, 5, 8, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 1, 0, 1, 3, 7, 9, 9, 8, 6, 3, 0, 13, 1, 3, 5, 5, 3, 6, 2, 1, 0, 2, 0, 2, 4, 0, 1, 0, 6, 8, 8, 1, 3, 5, 5, 7, 9, 7, 9, 5, 6, 6, 4, 6, 4, 6, 8, 4, 6, 4, 6, 5, 7, 1, 1, 1, 2, 1, 2, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 2, 2, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, 3, 1, 3, 5, 2, 2, 0, 6, 6, 6, 6, 6, 6, 6, 6, 8, 9, 8, 6, 6, 9, 9, 9, 7, 10, 1, 1, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 2, 0, 1, 1, 2, 2, 1, 2, 3, 3, 3, 3, 4, 4, 3, 3, 3, 4, 4, 3, 4, 4, 1, 1, 1, 0, 8, 8, 11, 1, 1, 2, 4, 5, 1, 3, 2, 2, 2, 2, 2, 1, 3, 1, 3, 1, 2, 2, 4, 3, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 5, 5, 5, 5, 5, 1, 3, 1, 2, 3, 0, 5, 7, 6, 9, 3, 1, 2, 1, 1, 1, 3, 0, 5, 2, 0, 3, 3, 3, 7, 7, 10, 1, 1, 1, 1, 1, 1, 16, 19, 1, 0, 2, 0, 1, 3, 4, 5, 2, 2, 4, 4, 0, 1, 3, 2, 0, 1, 1, 0, 2, 2, 0, 9, 12, 7, 7, 2, 0, 3, 2, 1, 3, 1, 3, 2, 1, 1, 2, 3, 2, 1, 3, 3, 3, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 4, 5, 1, 3, 3, 1, 3, 3, 5, 6, 1, 3, 2, 1, 3, 1, 0, 1, 2, 4, 5, 1, 1, 1, 1, 3, 3, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 3, 2, 1, 4, 0, 3, 0, 1, 1, 3, 5, 2, 0, 2, 1, 3, 5, 5, 5, 1, 2, 1, 0, 4, 6, 4, 6, 4, 6, 4, 6, 4, 6, 3, 5, 5, 5, 1, 3, 1, 3, 2, 2, 1, 2, 1, 2, 11, 10, 10, 2, 2, 0, 9, 2, 0, 10, 11, 11, 5, 5, 8, 5, 5, 5, 1, 1, 1, 1, 3, 0, 5, 5, 6, 6, 6, 6, 6, 8, 8, 6, 6, 7, 9, 9, 8, 10, 6, 6, 6, 6, 6, 6, 6, 8, 6, 8, 6, 8, 7, 9, 6, 8, 7, 9, 8, 10, 8, 10, 9, 11, 8, 10, 9, 11, 8, 8, 7, 6, 6, 6, 6, 8, 8, 8, 8, 6, 9, 1, 0, 2, 0, 8, 8, 8, 10, 9, 8, 1, 0, 6, 6, 6, 6, 6, 6, 6, 9, 9, 6, 6, 6, 8, 6, 8, 8, 8, 8, 6, 8, 6, 8, 7, 9, 7, 9, 6, 7, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 7, 6, 6, 6, 6, 6, 6, 7, 7, 6, 9, 9, 6, 6, 6, 6, 6, 6, 8, 8, 8, 6, 7, 6, 6, 4, 7, 6, 4, 4, 4, 3, 4, 3, 1, 1, 3, 5, 5, 5, 5, 8, 5, 5, 6, 7, 7, 7, 4, 4, 5, 4, 6, 13, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 3, 2, 0, 2, 2, 2, 3, 3, 3, 3, 2, 3, 2, 5, 4, 3, 3, 3, 3, 3, 1, 1, 0, 3, 2, 2, 1, 2, 1, 3, 2, 1, 0, 2, 3, 0, 9, 11, 12, 14, 3, 4, 4, 0, 2, 5, 1, 0, 1, 2, 3, 3, 3, 1, 2, 1, 1, 1, 1, 1, 1, 0, 5, 4, 6, 6, 4, 3, 5, 7, 9, 1, 3, 1, 5, 4, 4, 6, 4, 6, 6, 5, 7, 9, 6, 1, 0, 6, 11, 11, 11, 13, 9, 11, 1, 1, 10, 6, 4, 4, 2, 5, 2, 0, 6, 5, 3, 5, 1, 3, 1, 1, 2, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 3, 0, 2, 1, 3, 1, 0, 2, 4, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 0, 1, 1, 1, 1, 1, 3, 9, 12, 3, 0, 2, 3, 2, 3, 7, 1, 3, 1, 4, 4, 7, 2, 1, 1, 1, 3, 2, 8, 5, 0, 4, 3, 0, 2, 0, 7, 2, 0, 5, 3, 0, 2, 2, 2, 3, 1, 3, 1, 2, 1, 0, 1, 2, 0, 8, 1, 3, 3, 5, 2, 1, 3, 10, 1, 2, 4, 4, 4, 5, 5, 2, 5, 3, 5, 2, 0, 3, 1, 2, 5, 5, 8, 3, 4, 7, 1, 0, 3, 2, 2, 2, 2, 0, 2, 2, 1, 1, 3, 3, 1, 2, 4, 4, 2, 3, 5, 5, 1, 1, 9, 9, 1, 2, 4, 4, 4, 2, 2, 3, 1, 3, 9, 1, 2, 0, 7, 7, 0, 10, 6, 0, 1, 0, 2, 0, 3, 3, 4, 4, 4, 4, 3, 2, 1, 1, 0, 1, 1, 0, 1, 5, 1, 0, 1, 1, 1, 0, 3, 1, 3, 4, 3, 2, 2, 1, 1, 1, 0, 2, 4, 5, 6, 4, 5, 2, 3, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 4, 0, 1, 3, 1, 1, 1, 1, 1, 2, 4, 4, 5, 2, 0, 1, 3, 1, 0, 1, 2, 3, 2, 4, 2, 3, 2, 0, 4, 5, 2, 0, 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 1, 4, 2, 3, 3, 4, 5, 4, 5, 4, 5, 2, 4, 1, 1, 0, 2, 0, 1, 4, 5, 4, 0, 2, 2, 2, 1, 1, 0, 5, 2, 1, 1, 2, 2, 4, 1, 3, 1, 2, 3, 6, 4, 0, 2, 6, 2, 1, 3, 4, 0, 2, 0, 2, 0, 2, 4, 0, 1, 0, 1, 3, 3, 7, 12, 1, 3, 2, 3, 3, 1, 2, 2, 2, 2, 1, 2, 1, 3, 3, 2, 13, 2, 0, 1, 3, 3, 6, 7, 5, 7, 9, 1, 0, 2, 0, 2, 3, 5, 6, 2, 3, 3, 4, 0, 1, 1, 1, 1, 1, 2, 4, 1, 1, 1, 1, 1, 1, 2, 3, 3, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 3, 0, 1, 1, 1, 1, 5, 2, 1, 1, 1, 1, 4, 1, 2, 2, 1, 3, 3, 2, 1, 0, 5, 2, 5, 2, 1, 3, 3, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 0, 1, 4, 1, 1, 3, 3, 5, 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 2, 2, 3, 5, 4, 6, 3, 5, 4, 6, 4, 6, 5, 7, 3, 2, 4, 2, 3, 3, 4, 3, 4, 3, 4, 5, 6, 6, 7, 6, 7, 3, 4, 4, 6, 3, 3, 4, 3, 4, 4, 5, 4, 5, 1, 1, 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 5, 6, 3, 4, 1, 1, 2, 4, 1, 1, 1, 2, 2, 2, 2, 1, 1, 4, 3, 5, 6, 8, 6, 6, 4, 4, 3, 1, 1, 1, 1, 5, 1, 1, 4, 1, 4, 1, 4, 1, 4, 1, 1, 1, 1, 1, 1, 1, 6, 4, 4, 6, 4, 4, 4, 4, 4, 6, 5, 5, 5, 4, 6, 4, 4, 4, 4, 5, 7, 7, 9, 5, 4, 6, 5, 7, 7, 8, 4, 7, 4, 6, 6, 4, 5, 4, 5, 3, 11, 8, 9, 2, 3, 3, 3, 4, 0, 4, 1, 3, 3, 1, 1, 1, 1, 2, 0, 2, 2, 0, 2, 3, 3, 4, 2, 2, 5, 0, 5, 0, 2, 0, 1, 3, 3, 2, 2, 0, 6, 1, 0, 3, 0, 3, 3, 3, 0, 1, 4, 2, 2, 2, 2, 2, 3, 2, 2, 3, 0, 4, 3, 5, 4, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 4, 1, 4, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 3, 1, 0, 1, 3, 3, 3, 2, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 5, 3, 5, 5, 3, 3, 5, 3, 2, 1, 1, 3, 5, 1, 2, 4, 2, 0, 1, 0, 1, 2, 2, 2, 3, 5, 1, 0, 1, 2, 0, 2, 1, 0, 2, 0, 1, 3, 3, 2, 3, 2, 3, 4, 4, 3, 3, 0, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 3, 3, 6, 0, 3, 0, 2, 4, 2, 1, 0, 5, 2, 5, 2, 0, 3, 0, 1, 2, 2, 2, 2, 3, 2, 3, 2, 0, 1, 3, 3, 3, 3, 3, 0, 3, 3, 0, 1, 3, 7, 7, 3, 0, 1, 0, 1, 3, 3, 2, 1, 1, 1, 3, 1, 2, 1, 3, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 6, 2, 6, 2, 3, 5, 2, 3, 5, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 3, 10, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state STATE-NUM when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ static const yytype_uint16 yydefact[] = { 1728, 1467, 673, 1556, 1555, 1467, 0, 276, 0, 1567, 0, 1467, 444, 1124, 0, 0, 0, 0, 673, 1467, 0, 1728, 0, 0, 0, 0, 0, 1741, 0, 0, 0, 0, 0, 1264, 0, 0, 0, 1467, 0, 0, 1748, 0, 0, 0, 0, 1741, 0, 1569, 0, 0, 0, 0, 1748, 0, 0, 0, 0, 0, 2, 9, 10, 45, 80, 81, 38, 37, 98, 63, 24, 71, 133, 132, 134, 50, 46, 88, 33, 35, 47, 51, 73, 75, 40, 53, 64, 110, 72, 31, 70, 76, 96, 58, 19, 20, 59, 21, 60, 22, 61, 106, 82, 99, 43, 69, 30, 52, 78, 79, 12, 54, 86, 18, 65, 66, 68, 91, 92, 93, 116, 94, 128, 49, 125, 103, 104, 122, 105, 123, 16, 107, 62, 23, 119, 118, 120, 89, 55, 90, 77, 97, 117, 34, 121, 25, 26, 28, 29, 27, 67, 36, 74, 39, 95, 124, 114, 109, 129, 127, 11, 135, 111, 83, 14, 15, 100, 13, 32, 57, 17, 42, 41, 56, 48, 131, 44, 1567, 102, 115, 101, 84, 108, 87, 112, 130, 113, 85, 126, 1692, 1691, 1752, 1695, 1727, 0, 1707, 1466, 1465, 1480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1477, 2462, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2495, 2494, 2496, 2497, 2869, 2498, 2499, 2500, 2806, 2807, 2870, 2808, 2809, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2810, 2811, 2510, 2511, 2512, 2513, 2514, 2812, 2871, 2515, 2516, 2517, 2518, 2519, 2520, 2872, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2873, 2531, 2532, 2533, 2874, 2534, 2535, 2536, 2537, 2538, 2539, 2813, 2814, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2815, 2570, 2571, 2572, 2573, 2816, 2574, 2575, 2576, 2577, 2817, 2578, 2579, 2580, 2581, 2875, 2876, 2582, 2583, 2584, 2585, 2586, 2818, 2819, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2877, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2878, 2820, 2607, 2608, 2609, 2610, 2821, 2822, 2823, 2611, 2879, 2880, 2612, 2881, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2835, 2882, 2621, 2883, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2836, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2837, 2884, 2838, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2839, 2840, 2651, 2652, 2653, 2885, 2654, 2841, 2655, 2842, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2843, 2886, 2667, 2887, 2844, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2845, 2682, 2846, 2685, 2683, 2684, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2847, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2888, 2716, 2717, 2718, 2719, 2720, 2848, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2849, 2738, 2739, 2889, 2740, 2741, 2850, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2851, 2758, 2759, 2760, 2761, 2890, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2852, 2853, 2769, 2770, 2854, 2771, 2855, 2772, 2773, 2774, 2775, 2776, 2777, 2779, 2778, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2856, 2857, 2791, 2891, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2803, 2804, 2805, 146, 0, 0, 2424, 2463, 2464, 2467, 2462, 414, 413, 1681, 2421, 2463, 1566, 0, 1545, 673, 0, 1480, 443, 1728, 0, 0, 0, 0, 0, 0, 890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, 140, 0, 0, 468, 467, 0, 0, 1096, 473, 0, 0, 0, 0, 0, 663, 1608, 2683, 1606, 1682, 277, 280, 281, 278, 279, 2445, 0, 1236, 1237, 1239, 0, 0, 1249, 930, 931, 0, 0, 0, 944, 0, 0, 0, 928, 0, 0, 0, 950, 0, 947, 0, 0, 951, 948, 925, 949, 932, 0, 924, 0, 0, 1249, 952, 0, 0, 926, 0, 0, 0, 0, 1480, 1605, 474, 1728, 0, 1589, 1590, 1591, 1567, 1579, 1592, 1584, 1586, 1585, 1587, 1588, 1583, 2444, 2481, 1020, 1020, 1020, 1020, 1017, 1018, 1020, 1020, 1020, 2704, 0, 0, 999, 0, 1001, 2446, 1020, 1025, 2489, 553, 553, 553, 0, 1024, 1029, 553, 0, 1448, 1489, 2423, 1740, 0, 1000, 1447, 2769, 1595, 0, 0, 0, 0, 2723, 1457, 261, 2735, 2852, 2769, 260, 255, 256, 227, 0, 0, 1024, 553, 0, 1480, 1455, 996, 1747, 1745, 0, 2408, 2508, 2525, 2624, 252, 2716, 2725, 2735, 2852, 2769, 2802, 203, 213, 208, 0, 270, 2735, 2852, 2769, 266, 1477, 0, 1708, 1858, 1857, 2417, 0, 1450, 1449, 1568, 0, 1571, 0, 2699, 1712, 1715, 1573, 1713, 2465, 1951, 1980, 1958, 1980, 1980, 1947, 1947, 2555, 1960, 1948, 1949, 1985, 2005, 0, 1980, 1947, 1952, 0, 1950, 1988, 1988, 1975, 3, 1930, 1931, 1932, 1933, 1961, 1962, 1934, 1967, 1968, 1972, 1935, 2002, 1938, 1947, 2466, 1749, 1750, 2408, 4, 2459, 5, 2335, 2458, 6, 7, 1704, 0, 0, 1, 1728, 0, 1578, 1744, 1744, 0, 1744, 0, 1696, 1704, 1699, 1703, 0, 0, 0, 0, 0, 0, 1451, 0, 0, 0, 955, 0, 1492, 1081, 0, 0, 0, 0, 0, 1333, 0, 1133, 1132, 2468, 2451, 2452, 2453, 0, 2449, 2450, 2469, 2470, 2471, 0, 2593, 1333, 0, 0, 2250, 2261, 2262, 2263, 2512, 2574, 2258, 2259, 2260, 2252, 2253, 2254, 2255, 2256, 2257, 0, 0, 1231, 2251, 0, 2593, 0, 1333, 0, 175, 0, 150, 1333, 0, 0, 2593, 0, 0, 2593, 0, 0, 0, 0, 0, 2593, 0, 0, 0, 0, 0, 175, 2629, 0, 150, 2593, 0, 0, 1471, 0, 0, 0, 1473, 1476, 1463, 0, 2332, 0, 2333, 2425, 1560, 0, 1559, 1553, 1563, 1558, 1548, 0, 2417, 0, 0, 0, 0, 938, 0, 0, 928, 0, 0, 0, 939, 0, 940, 941, 0, 0, 0, 0, 937, 0, 1461, 1453, 0, 1597, 1599, 1598, 1600, 1596, 553, 0, 0, 0, 2593, 0, 150, 1531, 0, 2593, 150, 0, 0, 472, 471, 150, 2449, 470, 469, 2512, 2574, 0, 1123, 0, 1206, 150, 2593, 0, 196, 2593, 732, 2593, 1573, 139, 0, 676, 0, 844, 2629, 150, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, 662, 673, 1609, 1607, 0, 1240, 254, 253, 1238, 942, 2593, 1165, 145, 0, 0, 2593, 1512, 2593, 145, 959, 943, 0, 929, 2593, 145, 1129, 2593, 2454, 185, 0, 927, 2512, 2574, 2593, 145, 1233, 0, 2593, 145, 2593, 181, 2593, 145, 2593, 145, 2593, 677, 0, 0, 2593, 145, 2593, 2629, 183, 946, 2593, 145, 953, 2593, 145, 2419, 2593, 0, 1464, 0, 1601, 0, 1581, 2856, 0, 1728, 1020, 1019, 0, 1020, 0, 1020, 0, 1020, 0, 1020, 0, 0, 0, 1020, 2447, 2448, 1002, 0, 1026, 0, 1034, 0, 1033, 1032, 1031, 0, 0, 0, 1035, 0, 1862, 1636, 0, 1445, 1460, 0, 0, 0, 142, 0, 1262, 1259, 142, 1261, 1260, 142, 142, 1456, 259, 257, 0, 0, 0, 0, 0, 0, 1462, 0, 1454, 0, 0, 0, 2427, 2429, 2430, 2264, 2335, 0, 2807, 2808, 2809, 2324, 0, 2810, 2811, 2812, 2871, 2138, 2124, 2133, 2139, 2125, 2127, 2134, 2813, 2814, 2073, 2815, 2816, 2442, 2817, 2818, 2819, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2834, 2835, 2129, 2131, 2836, 2837, 2838, 2840, 0, 2443, 2841, 2842, 2662, 2844, 2845, 2847, 2848, 2135, 2850, 2851, 2136, 2852, 2853, 2854, 2855, 2441, 516, 2137, 2857, 2859, 2860, 2861, 2862, 2864, 2865, 2866, 2867, 0, 0, 0, 2414, 0, 2102, 0, 1939, 1940, 1963, 1964, 1941, 1969, 1970, 1942, 0, 1943, 2413, 2006, 2209, 2101, 2119, 0, 2107, 2108, 0, 2100, 2096, 2211, 1730, 2409, 0, 2097, 2426, 2428, 2325, 1730, 2407, 216, 272, 0, 273, 2415, 2735, 204, 251, 219, 250, 221, 220, 218, 217, 0, 2510, 205, 0, 0, 206, 0, 0, 0, 0, 269, 267, 0, 1452, 0, 1860, 1859, 2418, 964, 0, 1570, 1567, 2274, 0, 1714, 0, 0, 0, 1979, 1966, 1974, 1973, 0, 1956, 1955, 1954, 0, 1953, 1980, 1980, 1978, 1957, 1930, 0, 0, 0, 1984, 0, 1982, 1926, 1922, 0, 1991, 1992, 1993, 1990, 2003, 1989, 0, 1936, 1994, 0, 1947, 1944, 1815, 0, 1694, 1693, 8, 0, 1575, 1577, 1551, 1573, 1742, 1743, 0, 0, 0, 0, 0, 0, 0, 0, 1802, 1760, 1761, 1763, 1799, 1803, 1811, 0, 1700, 0, 0, 0, 1864, 0, 0, 1478, 0, 0, 0, 0, 0, 1164, 0, 0, 0, 0, 956, 0, 0, 0, 1498, 0, 1500, 1501, 1502, 0, 0, 0, 1503, 1504, 1492, 263, 1511, 1508, 1491, 1493, 1506, 0, 0, 0, 0, 0, 0, 0, 1523, 0, 189, 190, 0, 689, 673, 0, 2593, 0, 0, 0, 0, 1174, 1181, 1332, 0, 0, 0, 0, 0, 0, 0, 0, 1175, 1173, 0, 1176, 265, 1186, 1213, 1216, 0, 0, 1131, 1134, 0, 0, 0, 0, 0, 1323, 0, 0, 0, 1323, 0, 0, 0, 1332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 288, 290, 303, 369, 0, 654, 0, 0, 0, 657, 0, 2593, 1333, 0, 0, 0, 1235, 0, 0, 0, 0, 0, 0, 0, 0, 1216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 149, 154, 0, 0, 0, 0, 1216, 0, 0, 0, 0, 0, 0, 0, 638, 653, 641, 0, 0, 0, 0, 0, 649, 0, 0, 150, 651, 293, 628, 634, 0, 0, 0, 739, 738, 0, 0, 0, 0, 0, 0, 1421, 0, 1420, 0, 0, 0, 0, 0, 1521, 1520, 0, 0, 0, 0, 0, 0, 1323, 0, 282, 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 406, 407, 0, 0, 0, 154, 0, 0, 1323, 0, 295, 0, 0, 1472, 1469, 1470, 0, 1475, 0, 0, 0, 0, 2110, 0, 2278, 1752, 2276, 2424, 2331, 0, 2472, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2328, 2327, 2422, 2473, 2474, 2475, 2476, 2334, 1543, 0, 239, 240, 238, 1561, 241, 1562, 1557, 0, 1544, 0, 0, 0, 0, 0, 0, 0, 0, 2512, 2574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 852, 1492, 1530, 0, 0, 0, 682, 0, 2593, 0, 152, 891, 0, 842, 473, 0, 0, 0, 0, 1397, 152, 0, 0, 192, 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 843, 0, 0, 152, 0, 2593, 631, 2593, 0, 553, 553, 0, 0, 141, 138, 0, 0, 0, 0, 0, 0, 0, 0, 1686, 1685, 1688, 1687, 0, 1684, 0, 143, 144, 0, 1223, 1248, 0, 0, 0, 0, 0, 920, 945, 0, 0, 1217, 0, 0, 2593, 145, 2593, 0, 2593, 0, 0, 0, 1225, 145, 0, 1219, 0, 0, 1221, 0, 1423, 0, 936, 934, 933, 935, 0, 0, 918, 0, 0, 0, 0, 0, 913, 0, 0, 915, 0, 0, 0, 0, 1728, 1580, 0, 1010, 0, 1014, 0, 1005, 0, 1011, 0, 1006, 1003, 1004, 0, 1009, 0, 0, 554, 556, 0, 0, 2537, 2554, 0, 2582, 2617, 2618, 2672, 2689, 2719, 2725, 2731, 0, 2762, 2774, 0, 1040, 1078, 1030, 748, 0, 0, 1646, 1446, 2283, 0, 1728, 0, 0, 1263, 0, 0, 138, 258, 228, 0, 0, 1078, 0, 2723, 1459, 995, 673, 0, 2098, 0, 2105, 2106, 2323, 0, 0, 0, 0, 0, 0, 2104, 0, 0, 0, 0, 2380, 0, 0, 2380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2029, 0, 0, 2282, 0, 0, 2282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2030, 2011, 2012, 2102, 2274, 0, 2103, 2438, 2435, 2002, 0, 2002, 2477, 2264, 0, 2261, 2262, 2263, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 0, 2987, 2988, 2989, 2990, 2991, 2993, 2992, 2994, 2995, 2996, 2997, 2998, 2999, 2338, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 2044, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 2046, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3264, 3262, 3263, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3323, 3322, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3380, 3379, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 0, 2258, 2259, 2260, 2252, 2253, 2254, 2255, 2256, 2257, 2268, 0, 0, 2412, 2478, 0, 2211, 0, 2026, 0, 2219, 0, 0, 1815, 2433, 0, 2431, 2326, 1815, 274, 275, 271, 0, 0, 223, 224, 222, 0, 244, 243, 248, 249, 215, 247, 0, 242, 226, 2195, 2194, 225, 214, 233, 211, 209, 229, 231, 232, 212, 210, 268, 0, 0, 0, 145, 1578, 1565, 0, 0, 2338, 0, 2272, 0, 0, 2270, 0, 0, 0, 1812, 0, 1716, 0, 1720, 0, 0, 0, 1977, 1976, 1927, 1923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 957, 0, 1945, 0, 1880, 2460, 2461, 2336, 1748, 1578, 0, 1574, 1711, 1710, 1753, 1754, 1115, 1709, 1782, 1783, 0, 0, 0, 0, 1808, 1806, 1773, 1764, 1772, 0, 0, 1770, 0, 1774, 2006, 1801, 1698, 1758, 1759, 1762, 1697, 0, 1804, 0, 1649, 1802, 1763, 1633, 0, 1611, 0, 0, 1865, 0, 0, 1479, 0, 0, 0, 1144, 1146, 0, 1145, 0, 1148, 0, 1157, 0, 0, 1143, 1162, 0, 1151, 1149, 0, 1519, 0, 0, 0, 0, 0, 1499, 0, 0, 0, 2762, 262, 1502, 1507, 1494, 1505, 0, 0, 0, 0, 0, 1080, 1079, 0, 0, 0, 1526, 547, 0, 371, 0, 0, 0, 0, 0, 0, 0, 0, 838, 835, 0, 0, 834, 0, 687, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 712, 0, 1323, 0, 301, 0, 1183, 0, 1182, 0, 1187, 0, 0, 1184, 1179, 1180, 2725, 2735, 2769, 264, 1185, 1215, 0, 1214, 1210, 0, 1126, 0, 1127, 0, 0, 0, 0, 0, 0, 0, 2566, 0, 2593, 0, 516, 309, 333, 538, 0, 1322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 355, 0, 0, 358, 357, 0, 0, 0, 0, 0, 363, 0, 341, 0, 342, 0, 362, 0, 0, 0, 655, 656, 0, 0, 0, 1323, 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, 1232, 0, 765, 0, 0, 2725, 1211, 0, 1406, 0, 2761, 1407, 1410, 553, 0, 553, 1412, 0, 0, 1409, 1411, 0, 0, 178, 0, 173, 177, 0, 0, 2725, 1212, 0, 0, 0, 0, 0, 636, 637, 652, 0, 642, 643, 639, 644, 645, 0, 0, 0, 0, 0, 0, 0, 635, 0, 0, 734, 733, 737, 0, 0, 0, 0, 0, 0, 1415, 0, 0, 1206, 0, 0, 1414, 1422, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1266, 1265, 0, 0, 0, 0, 1333, 0, 881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 752, 0, 751, 0, 174, 179, 0, 0, 0, 0, 0, 0, 0, 0, 237, 1468, 1474, 1752, 1752, 1752, 2116, 0, 0, 0, 0, 1751, 2329, 2332, 1548, 1554, 1547, 1546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420, 417, 418, 420, 0, 0, 0, 0, 854, 0, 857, 860, 1490, 500, 0, 0, 679, 712, 0, 0, 476, 187, 0, 0, 0, 0, 767, 0, 1206, 1205, 147, 138, 196, 474, 0, 195, 197, 199, 200, 201, 198, 202, 0, 731, 735, 0, 0, 0, 0, 675, 0, 0, 0, 0, 0, 0, 0, 1885, 0, 0, 172, 0, 0, 626, 630, 0, 0, 0, 0, 476, 592, 382, 2593, 0, 553, 0, 2593, 0, 137, 0, 841, 0, 0, 0, 1168, 1168, 0, 0, 781, 780, 0, 0, 0, 0, 0, 0, 1683, 145, 1166, 0, 1513, 0, 145, 960, 145, 1130, 186, 2455, 0, 922, 0, 0, 0, 0, 145, 1234, 910, 145, 182, 145, 145, 678, 0, 145, 184, 0, 0, 145, 954, 145, 2420, 0, 145, 1604, 2593, 553, 1582, 1007, 1016, 1015, 1013, 1012, 1008, 0, 1027, 0, 552, 0, 0, 0, 0, 0, 1048, 1049, 0, 0, 1045, 1050, 0, 1052, 1036, 1038, 1046, 1047, 1053, 1042, 1041, 1054, 1055, 0, 0, 0, 1067, 746, 0, 0, 0, 0, 1643, 0, 1641, 0, 1863, 1645, 1634, 1594, 0, 1593, 0, 619, 1257, 1256, 1258, 0, 1024, 0, 145, 0, 1458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2287, 0, 2288, 0, 0, 2322, 2318, 0, 0, 0, 0, 0, 2292, 0, 2295, 2296, 2297, 2294, 2298, 2293, 0, 0, 2299, 0, 0, 2373, 2390, 0, 2102, 2373, 2401, 0, 2400, 2406, 0, 2278, 2006, 0, 0, 2397, 2391, 0, 2397, 0, 0, 2380, 0, 0, 0, 0, 2179, 0, 0, 0, 2278, 2281, 0, 0, 2848, 0, 0, 0, 0, 2074, 0, 0, 2245, 0, 2278, 0, 0, 0, 0, 0, 0, 0, 2274, 2314, 0, 514, 0, 2064, 0, 0, 0, 2193, 0, 2190, 0, 0, 0, 0, 2335, 0, 2439, 0, 2436, 2007, 2022, 2023, 2024, 2027, 2411, 2010, 0, 2337, 0, 0, 2008, 2035, 0, 2315, 2060, 0, 2065, 2050, 2381, 2300, 2301, 2302, 2303, 2067, 0, 2043, 2048, 2052, 0, 2390, 2031, 0, 2028, 0, 2338, 2273, 0, 2271, 0, 2019, 2020, 2021, 2013, 2014, 2015, 2016, 2017, 2018, 2025, 2249, 2247, 2248, 0, 0, 2219, 0, 0, 2047, 0, 0, 2118, 2585, 2624, 0, 1741, 1741, 1741, 1729, 1739, 2410, 1880, 1752, 1880, 2416, 0, 0, 2002, 0, 1861, 962, 963, 961, 1550, 1564, 1578, 2275, 1572, 1718, 0, 0, 0, 1946, 1959, 0, 1986, 1987, 1988, 1988, 0, 1928, 0, 1971, 1996, 1997, 1998, 1999, 2000, 2001, 0, 1995, 1937, 958, 2824, 2833, 0, 2721, 2868, 0, 1841, 1814, 1816, 1826, 1841, 1848, 1841, 1841, 2120, 1878, 2121, 2122, 2417, 0, 1785, 2457, 1552, 1576, 0, 1113, 1114, 0, 1118, 2848, 2721, 0, 0, 0, 0, 1775, 1809, 0, 1800, 0, 2427, 1776, 2426, 1777, 1780, 1781, 1771, 1810, 1647, 0, 1805, 1702, 1701, 0, 1883, 0, 0, 0, 1625, 1613, 0, 0, 1866, 0, 1815, 1651, 0, 2335, 1813, 1373, 1267, 1334, 1147, 0, 1947, 1158, 0, 1142, 0, 1141, 1947, 0, 1159, 0, 1947, 1374, 1268, 1335, 1375, 1269, 1336, 1376, 1510, 1270, 1509, 1497, 1496, 1495, 0, 0, 0, 0, 0, 0, 0, 0, 819, 2593, 145, 1524, 1377, 0, 1271, 370, 1525, 1337, 1529, 837, 836, 0, 0, 1338, 0, 688, 693, 0, 695, 696, 2512, 2574, 697, 700, 701, 0, 703, 692, 691, 0, 0, 0, 0, 0, 709, 714, 0, 0, 0, 0, 0, 0, 1177, 1178, 1378, 1274, 0, 1339, 0, 1125, 0, 1275, 188, 0, 0, 289, 0, 2593, 311, 0, 0, 0, 0, 0, 0, 0, 0, 819, 498, 819, 0, 1325, 308, 339, 0, 354, 349, 350, 348, 2593, 145, 2593, 145, 0, 0, 0, 0, 0, 351, 346, 347, 343, 0, 0, 356, 2484, 2556, 2736, 0, 720, 722, 0, 727, 359, 1295, 378, 377, 376, 0, 364, 0, 383, 386, 0, 361, 340, 338, 335, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1227, 0, 1381, 1340, 0, 1362, 1366, 0, 0, 0, 759, 1384, 1281, 1343, 0, 553, 0, 0, 568, 568, 553, 1395, 1282, 176, 1312, 165, 0, 0, 161, 0, 0, 0, 0, 153, 1385, 1283, 1344, 0, 0, 1386, 1284, 0, 0, 294, 629, 640, 646, 1289, 650, 647, 1352, 648, 1393, 1285, 0, 1389, 1315, 1347, 396, 612, 395, 1206, 1206, 1396, 1416, 1286, 1206, 0, 1323, 0, 283, 285, 0, 142, 0, 1287, 0, 1345, 1388, 1314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1532, 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, 1325, 2593, 145, 879, 1387, 0, 1320, 0, 1360, 0, 0, 0, 408, 0, 1313, 1323, 0, 296, 1291, 0, 1354, 0, 0, 235, 234, 236, 0, 0, 0, 0, 2279, 2280, 0, 2277, 2111, 2331, 0, 1542, 984, 970, 983, 0, 966, 2554, 0, 969, 971, 0, 0, 0, 972, 976, 977, 0, 968, 965, 967, 0, 419, 0, 0, 776, 777, 0, 0, 0, 0, 856, 0, 0, 1522, 0, 150, 686, 0, 0, 0, 681, 711, 716, 0, 0, 0, 0, 475, 479, 483, 484, 485, 0, 0, 0, 0, 166, 151, 0, 899, 0, 553, 0, 769, 1206, 1399, 0, 196, 191, 0, 0, 732, 0, 1573, 0, 0, 607, 610, 609, 0, 382, 851, 849, 848, 850, 872, 847, 0, 1884, 1886, 0, 0, 0, 0, 0, 0, 619, 478, 0, 0, 556, 0, 595, 0, 0, 0, 0, 592, 0, 0, 0, 2465, 0, 868, 840, 0, 1136, 0, 1154, 1137, 0, 0, 0, 0, 1191, 1198, 1167, 1192, 1169, 1198, 0, 0, 782, 786, 785, 789, 787, 0, 783, 660, 1689, 1690, 0, 1224, 0, 0, 1518, 0, 1516, 921, 1218, 145, 0, 145, 0, 145, 1226, 1220, 1222, 1424, 0, 919, 0, 0, 912, 914, 0, 916, 0, 1028, 555, 0, 0, 0, 0, 0, 0, 1044, 658, 1051, 0, 0, 0, 1066, 1061, 1063, 0, 1078, 1072, 0, 745, 0, 0, 1644, 1637, 1639, 1638, 0, 0, 1635, 2284, 911, 0, 625, 0, 1078, 1069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1746, 2285, 2286, 0, 0, 0, 2319, 0, 0, 2155, 0, 2126, 2128, 0, 2141, 0, 2156, 2109, 0, 2372, 2369, 0, 0, 0, 2373, 2380, 2175, 0, 0, 0, 2380, 0, 2400, 0, 0, 0, 2170, 2172, 0, 0, 0, 2390, 2390, 0, 2177, 0, 0, 2157, 2130, 2132, 2142, 0, 0, 2265, 0, 2145, 2144, 0, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2091, 2146, 2244, 0, 0, 0, 2148, 2147, 0, 0, 2313, 0, 0, 0, 2153, 515, 2158, 0, 0, 0, 0, 2164, 0, 2201, 0, 0, 0, 2099, 2275, 0, 0, 0, 0, 0, 0, 0, 2383, 2384, 2385, 2382, 0, 2066, 2051, 2069, 2045, 2049, 2053, 0, 2390, 2068, 2071, 0, 0, 2039, 0, 0, 2037, 2061, 2033, 0, 0, 2062, 0, 2117, 0, 0, 0, 2222, 2217, 2218, 1741, 1741, 1741, 1741, 1738, 0, 0, 0, 1785, 0, 1785, 207, 0, 245, 230, 1549, 1719, 1728, 1965, 0, 1983, 1981, 1924, 1929, 2004, 0, 1841, 1848, 1841, 1841, 0, 0, 1704, 0, 1826, 0, 1840, 1824, 1839, 0, 0, 1854, 1852, 0, 1854, 0, 1854, 0, 1818, 0, 1844, 1820, 1839, 1822, 1828, 0, 1870, 2418, 1879, 0, 1798, 1755, 0, 2266, 1118, 0, 1757, 1779, 1778, 0, 1768, 0, 1807, 1765, 1648, 1632, 0, 1630, 1617, 1619, 1618, 0, 0, 1620, 2335, 0, 1630, 1612, 0, 1656, 0, 0, 1883, 0, 1655, 0, 1947, 1139, 1140, 0, 1163, 0, 1083, 1084, 0, 1082, 0, 0, 0, 546, 549, 0, 1527, 0, 1394, 1311, 690, 0, 0, 0, 0, 705, 664, 706, 708, 0, 0, 707, 710, 713, 1323, 0, 302, 1297, 0, 1358, 1171, 0, 0, 1128, 0, 0, 0, 0, 0, 1099, 537, 1098, 0, 0, 0, 0, 819, 0, 0, 541, 0, 497, 494, 334, 0, 0, 0, 0, 391, 0, 313, 326, 389, 332, 0, 366, 0, 337, 0, 330, 352, 344, 353, 345, 365, 367, 0, 724, 725, 723, 719, 0, 726, 728, 0, 380, 0, 0, 0, 398, 360, 397, 0, 1380, 0, 1323, 0, 298, 1293, 0, 1356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 764, 0, 761, 0, 568, 0, 1408, 0, 1405, 1403, 568, 0, 0, 156, 157, 155, 0, 164, 0, 0, 0, 0, 0, 0, 1417, 1418, 1419, 0, 0, 0, 0, 0, 0, 402, 0, 305, 307, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 409, 373, 0, 875, 0, 0, 0, 411, 0, 0, 1372, 0, 0, 0, 0, 0, 1379, 1276, 2114, 2115, 2112, 1752, 2330, 0, 0, 0, 981, 0, 0, 0, 0, 422, 423, 150, 421, 446, 0, 819, 0, 0, 853, 858, 866, 2662, 2252, 2253, 864, 859, 861, 863, 865, 862, 0, 0, 0, 0, 519, 0, 0, 0, 506, 0, 0, 516, 499, 502, 503, 0, 0, 682, 685, 683, 684, 0, 704, 0, 478, 526, 582, 0, 168, 0, 0, 169, 167, 0, 0, 382, 766, 0, 763, 1398, 0, 194, 0, 736, 0, 0, 0, 0, 0, 1206, 674, 0, 871, 873, 845, 0, 716, 0, 0, 631, 0, 553, 1605, 614, 0, 584, 478, 582, 591, 0, 0, 599, 381, 0, 0, 619, 382, 0, 0, 1099, 0, 867, 0, 0, 1135, 0, 0, 0, 1188, 1193, 1189, 0, 1168, 1150, 0, 1190, 0, 0, 1196, 1121, 1170, 1122, 1440, 1441, 1438, 1439, 0, 0, 0, 0, 0, 0, 1680, 0, 0, 1514, 0, 923, 0, 906, 0, 908, 145, 753, 0, 145, 0, 0, 0, 0, 0, 0, 1043, 0, 1037, 1039, 1064, 0, 0, 1078, 1077, 0, 1068, 1076, 1074, 1075, 1073, 0, 0, 1642, 1640, 617, 0, 0, 145, 1078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2289, 0, 2321, 2317, 0, 2123, 2291, 2290, 2371, 2387, 2389, 2176, 2379, 0, 0, 0, 2402, 0, 0, 2380, 2340, 2394, 2393, 0, 0, 2392, 2380, 2380, 2340, 2178, 2340, 0, 0, 0, 2245, 0, 0, 2075, 2087, 2088, 2089, 2306, 0, 2094, 0, 2084, 2085, 2086, 2078, 2079, 2080, 2081, 2082, 2083, 2090, 2310, 2309, 0, 0, 2150, 2151, 2152, 2312, 2159, 0, 2502, 2202, 0, 2163, 2192, 2191, 0, 0, 0, 2166, 0, 0, 2188, 0, 2246, 2440, 2437, 2009, 0, 0, 2036, 2316, 2054, 0, 2070, 2072, 2032, 2265, 0, 0, 0, 0, 0, 2041, 0, 0, 2242, 0, 0, 0, 2224, 2221, 0, 0, 0, 0, 1732, 1731, 1737, 1798, 2111, 1798, 0, 0, 1925, 0, 1825, 1821, 1823, 1829, 0, 2863, 0, 1830, 1837, 0, 1817, 0, 1853, 1849, 0, 1850, 0, 0, 1851, 0, 0, 1819, 0, 1837, 0, 1877, 1744, 0, 2213, 0, 1756, 1116, 1117, 1766, 0, 1769, 2533, 1881, 0, 1631, 0, 0, 0, 1622, 1628, 1610, 0, 0, 0, 1652, 1630, 1653, 1160, 0, 0, 1152, 1089, 1090, 1093, 1091, 1088, 1092, 0, 0, 0, 819, 822, 0, 0, 0, 820, 145, 1272, 0, 0, 0, 0, 665, 1392, 1273, 0, 0, 0, 0, 1172, 1326, 0, 0, 1296, 819, 0, 0, 0, 563, 0, 1112, 1112, 0, 310, 0, 543, 604, 0, 496, 495, 0, 493, 716, 0, 0, 317, 327, 0, 322, 0, 1324, 0, 0, 0, 0, 321, 324, 323, 393, 0, 390, 0, 145, 145, 368, 721, 379, 384, 385, 388, 1331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 900, 883, 0, 0, 901, 902, 0, 0, 0, 1229, 1230, 1228, 1363, 1364, 1370, 1367, 1365, 1369, 1371, 1368, 0, 1279, 0, 0, 757, 1327, 1400, 1402, 1401, 0, 1404, 162, 159, 158, 160, 163, 1328, 1309, 1290, 1353, 613, 0, 0, 0, 1288, 0, 1346, 0, 1305, 1299, 0, 0, 0, 0, 0, 1391, 1319, 1351, 1390, 1317, 1349, 1316, 1348, 1318, 1350, 1310, 0, 0, 1888, 880, 0, 0, 0, 145, 145, 878, 755, 1292, 0, 1355, 1301, 0, 0, 0, 973, 0, 0, 0, 975, 427, 447, 150, 0, 775, 839, 0, 0, 855, 0, 504, 0, 510, 517, 0, 0, 521, 522, 520, 505, 1206, 553, 1206, 808, 809, 0, 0, 829, 0, 680, 0, 0, 476, 0, 523, 0, 0, 480, 171, 170, 0, 0, 0, 770, 774, 772, 771, 773, 768, 0, 759, 196, 2593, 0, 0, 0, 0, 611, 605, 608, 1413, 846, 0, 1887, 749, 0, 382, 627, 0, 0, 0, 476, 619, 0, 481, 486, 487, 500, 0, 592, 583, 0, 584, 593, 594, 0, 601, 1488, 0, 620, 601, 0, 0, 0, 870, 0, 869, 0, 1138, 1155, 1156, 0, 0, 1198, 0, 0, 1200, 1195, 0, 0, 788, 791, 784, 667, 145, 0, 1517, 145, 145, 1255, 0, 917, 1058, 1059, 1060, 1057, 1056, 659, 0, 1062, 1021, 1071, 747, 0, 618, 0, 1022, 145, 998, 990, 997, 986, 989, 991, 0, 993, 994, 988, 985, 987, 2320, 2140, 0, 2386, 2388, 2174, 2399, 2398, 2173, 2405, 0, 0, 2368, 2396, 2395, 0, 0, 2380, 2380, 2143, 2154, 0, 2244, 2275, 0, 0, 2095, 0, 0, 0, 2149, 2858, 0, 0, 2206, 2207, 0, 2203, 2204, 2199, 2200, 2165, 0, 2650, 2183, 0, 0, 2198, 2058, 2056, 2055, 2040, 0, 0, 2038, 2034, 0, 2063, 2208, 2241, 2275, 2210, 0, 1752, 1736, 1735, 1734, 1733, 2213, 2434, 2432, 2213, 246, 1723, 0, 1873, 0, 1876, 0, 0, 1827, 0, 0, 1831, 0, 0, 1833, 1835, 0, 0, 0, 0, 0, 0, 2421, 0, 1797, 0, 1752, 0, 1767, 0, 1629, 1614, 0, 1615, 1621, 0, 0, 0, 0, 0, 1657, 1650, 1153, 1161, 0, 0, 0, 548, 824, 823, 826, 821, 825, 1528, 0, 698, 699, 702, 1298, 0, 1359, 1307, 0, 1646, 539, 312, 0, 558, 0, 0, 0, 1105, 140, 1104, 0, 558, 558, 492, 491, 500, 320, 0, 0, 0, 314, 392, 0, 394, 315, 319, 373, 336, 329, 0, 0, 0, 1294, 0, 1357, 1303, 1330, 1382, 1277, 1341, 0, 0, 889, 0, 0, 0, 0, 1383, 1278, 1342, 0, 0, 0, 0, 0, 1646, 0, 0, 0, 0, 0, 0, 0, 0, 1537, 0, 0, 372, 877, 876, 373, 410, 1321, 0, 2113, 0, 974, 979, 980, 978, 0, 416, 424, 427, 0, 0, 1246, 1246, 0, 0, 501, 518, 0, 603, 562, 603, 0, 0, 0, 0, 0, 717, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 762, 761, 193, 0, 476, 0, 716, 0, 874, 0, 0, 0, 619, 478, 0, 0, 1602, 477, 0, 0, 489, 0, 595, 584, 592, 0, 0, 616, 0, 1481, 0, 622, 0, 0, 0, 818, 1194, 0, 1208, 0, 1149, 1119, 1203, 0, 1728, 1880, 0, 0, 0, 0, 801, 0, 671, 1247, 1515, 907, 909, 754, 1065, 0, 1078, 1070, 992, 2370, 2404, 2339, 2341, 0, 0, 2362, 2355, 2358, 2356, 2357, 2359, 0, 2354, 0, 2171, 2403, 2352, 2366, 2305, 2246, 2092, 0, 2308, 2307, 2311, 0, 2160, 0, 2161, 2205, 2167, 2184, 0, 2168, 2196, 0, 0, 2059, 2057, 2042, 2243, 0, 2228, 1706, 1705, 0, 1726, 1909, 1878, 0, 0, 1872, 0, 0, 1903, 0, 0, 0, 1838, 1856, 0, 1834, 1832, 0, 1845, 0, 1847, 2532, 2819, 2718, 0, 1784, 1786, 1789, 1791, 1790, 1792, 1788, 2212, 2214, 0, 1763, 2267, 1882, 0, 0, 0, 1100, 0, 0, 1630, 1659, 1671, 1671, 1654, 1066, 0, 145, 694, 0, 0, 291, 1112, 0, 1206, 564, 2662, 565, 1111, 1115, 139, 0, 1206, 1206, 488, 0, 318, 328, 0, 375, 387, 0, 1646, 0, 0, 887, 896, 896, 884, 0, 0, 903, 1280, 758, 0, 567, 0, 286, 1306, 1300, 0, 0, 0, 1539, 1540, 0, 0, 0, 0, 0, 1329, 145, 1302, 982, 0, 449, 457, 428, 432, 1531, 0, 1531, 0, 429, 433, 1531, 1531, 426, 1880, 445, 1246, 0, 1243, 1242, 551, 633, 0, 0, 508, 0, 573, 507, 0, 830, 0, 0, 715, 0, 478, 582, 0, 536, 527, 528, 529, 530, 532, 531, 533, 534, 535, 525, 524, 0, 716, 893, 382, 1488, 756, 0, 0, 729, 0, 716, 0, 1605, 615, 584, 478, 582, 482, 500, 0, 599, 592, 595, 0, 596, 0, 600, 0, 0, 0, 619, 1541, 1099, 0, 0, 819, 1207, 1168, 0, 0, 1197, 1201, 1202, 0, 0, 0, 0, 1250, 795, 796, 790, 792, 0, 803, 807, 666, 0, 0, 670, 661, 716, 145, 0, 0, 2353, 2360, 2361, 0, 2181, 0, 0, 2378, 0, 0, 0, 2093, 0, 0, 2186, 2185, 2197, 2169, 2223, 0, 0, 0, 0, 0, 0, 0, 1717, 0, 2340, 1871, 1874, 0, 1906, 0, 0, 0, 0, 1891, 0, 1836, 0, 0, 1846, 0, 0, 0, 1793, 0, 0, 0, 1802, 0, 1627, 1880, 0, 1624, 0, 1666, 0, 1658, 1660, 0, 0, 0, 1085, 0, 1086, 1308, 0, 1106, 0, 603, 0, 1118, 1115, 553, 603, 603, 633, 0, 0, 331, 0, 299, 1304, 0, 0, 898, 898, 0, 0, 0, 0, 0, 0, 404, 0, 0, 1533, 0, 1534, 1535, 1538, 412, 425, 0, 455, 454, 0, 452, 451, 453, 0, 442, 0, 0, 0, 0, 0, 0, 415, 1241, 1245, 1244, 0, 509, 0, 511, 0, 0, 559, 560, 561, 0, 513, 569, 570, 827, 0, 832, 0, 718, 0, 0, 716, 581, 740, 0, 0, 0, 1482, 0, 0, 606, 750, 1488, 619, 592, 0, 584, 490, 0, 601, 595, 599, 597, 598, 0, 1485, 0, 621, 0, 1108, 817, 0, 1198, 1209, 1204, 1199, 1444, 0, 0, 793, 798, 797, 1531, 802, 0, 0, 0, 669, 668, 744, 1023, 2342, 2343, 2367, 0, 0, 0, 2346, 0, 2344, 0, 0, 2366, 0, 2182, 2304, 2189, 2162, 2187, 2806, 2533, 2777, 0, 2240, 2229, 2240, 2240, 2220, 0, 0, 0, 1908, 0, 0, 0, 1904, 1905, 1889, 0, 0, 1893, 1843, 1869, 0, 0, 0, 1787, 2215, 2216, 2456, 1616, 1626, 1101, 0, 1668, 1670, 0, 0, 0, 1646, 0, 568, 0, 1102, 1118, 562, 819, 819, 325, 316, 374, 0, 0, 0, 894, 897, 885, 886, 905, 904, 760, 1646, 0, 400, 399, 0, 403, 0, 450, 460, 0, 458, 430, 435, 0, 441, 440, 437, 436, 431, 434, 550, 0, 0, 0, 0, 0, 0, 571, 0, 572, 0, 831, 0, 0, 0, 742, 892, 0, 0, 476, 716, 1483, 1603, 595, 584, 592, 0, 0, 586, 1112, 1112, 463, 599, 601, 1486, 1487, 0, 0, 516, 0, 1120, 1443, 1442, 1728, 0, 0, 0, 804, 805, 800, 0, 0, 2347, 0, 2350, 0, 2351, 2345, 2375, 2377, 0, 2363, 2364, 0, 2233, 2232, 2231, 2235, 2234, 0, 2227, 2225, 2226, 0, 0, 0, 0, 1875, 0, 1892, 1895, 0, 0, 0, 1901, 0, 1894, 1896, 0, 1855, 0, 1867, 1795, 0, 1794, 1880, 0, 1673, 0, 0, 1661, 1662, 0, 0, 1663, 145, 292, 557, 819, 566, 1103, 573, 542, 540, 1646, 888, 0, 287, 0, 405, 1536, 456, 0, 439, 438, 632, 512, 602, 578, 0, 577, 0, 575, 574, 828, 833, 0, 716, 882, 1488, 730, 599, 592, 595, 0, 585, 0, 140, 140, 601, 461, 0, 0, 382, 0, 1426, 1728, 1425, 1427, 1435, 1432, 1434, 1433, 1431, 0, 1253, 1254, 794, 799, 0, 0, 2348, 2349, 0, 0, 2180, 0, 0, 0, 2237, 0, 2238, 0, 0, 0, 0, 0, 1898, 1899, 1900, 1902, 1897, 1842, 0, 1796, 1623, 1667, 1669, 1664, 0, 1665, 0, 0, 0, 0, 1674, 1087, 544, 819, 300, 895, 0, 459, 576, 553, 553, 716, 741, 1484, 601, 595, 599, 1112, 587, 589, 588, 465, 1108, 1109, 0, 601, 807, 0, 1436, 1430, 1704, 1691, 0, 0, 806, 0, 0, 0, 0, 2230, 2236, 2239, 0, 0, 0, 0, 2643, 0, 1910, 0, 0, 0, 1672, 1678, 0, 0, 0, 545, 0, 580, 579, 743, 464, 599, 601, 140, 516, 1107, 0, 1880, 0, 1428, 1728, 0, 0, 812, 2374, 2376, 2365, 1722, 1721, 2005, 0, 0, 1725, 1918, 0, 2368, 0, 0, 1921, 0, 1868, 0, 0, 0, 401, 601, 462, 590, 382, 1110, 1094, 0, 1429, 0, 0, 814, 0, 810, 813, 815, 816, 0, 0, 0, 0, 1911, 1912, 1921, 0, 2352, 1921, 1890, 1675, 1679, 0, 1676, 466, 601, 0, 0, 0, 778, 0, 1752, 0, 0, 0, 1907, 2368, 1920, 2378, 2352, 0, 1880, 0, 0, 0, 811, 0, 0, 0, 0, 1915, 2366, 2378, 0, 1095, 812, 1251, 1252, 0, 1724, 0, 0, 1913, 2366, 1677, 0, 0, 1916, 1914, 779, 0, 1917 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 57, 58, 59, 60, 1108, 1113, 1914, 1933, 61, 62, 1634, 3074, 2927, 3904, 3905, 63, 64, 1630, 65, 66, 67, 68, 1544, 69, 1886, 3088, 70, 2760, 850, 851, 852, 2625, 2626, 3019, 2627, 2614, 1394, 1832, 1566, 824, 825, 1526, 1567, 72, 73, 1388, 2603, 74, 75, 76, 1597, 1693, 1598, 1599, 1538, 5049, 5880, 3690, 2882, 3952, 3691, 3692, 4381, 4382, 3770, 4410, 4473, 5894, 5895, 77, 1709, 1710, 78, 79, 3056, 3870, 4526, 5437, 5438, 5699, 669, 5072, 5073, 5686, 5687, 5909, 6082, 6083, 3089, 700, 3947, 4610, 3895, 5143, 3896, 5144, 3897, 5145, 4938, 4939, 4371, 4372, 3881, 4557, 4558, 2090, 5085, 4559, 3898, 5104, 5733, 3899, 2848, 2775, 2776, 5924, 3123, 2005, 2003, 5636, 5712, 4924, 4925, 4446, 5933, 5934, 5935, 6225, 5106, 5149, 5150, 6120, 6121, 3950, 4616, 5156, 5495, 5710, 3648, 81, 3923, 3924, 82, 763, 1908, 4051, 764, 3126, 701, 765, 3090, 87, 3116, 5926, 3117, 1662, 2941, 4539, 4027, 88, 1136, 4335, 5520, 5793, 5794, 754, 89, 1894, 90, 91, 3069, 3888, 92, 2793, 3596, 93, 94, 3615, 3616, 3617, 95, 4567, 5456, 1600, 3679, 3680, 3681, 3682, 4402, 96, 1889, 3097, 3098, 97, 98, 99, 3228, 3229, 100, 3005, 101, 102, 103, 104, 4440, 5005, 5120, 3721, 3911, 4583, 5118, 105, 3874, 3091, 3144, 3985, 3986, 5518, 5785, 5786, 5787, 5984, 6260, 5789, 5986, 6142, 5988, 5095, 6406, 6407, 5770, 4324, 4902, 107, 5096, 5097, 5939, 108, 2791, 109, 110, 1863, 3062, 3063, 4540, 3133, 3960, 3961, 4596, 4597, 111, 3810, 112, 4981, 4982, 702, 5947, 5886, 6068, 113, 114, 4985, 4986, 115, 116, 117, 118, 119, 755, 1070, 1071, 757, 1191, 1192, 3557, 1153, 120, 2635, 121, 3850, 122, 1266, 5209, 123, 789, 1207, 1208, 3092, 125, 799, 3247, 801, 3212, 3213, 2021, 4031, 4032, 4684, 126, 127, 4035, 4036, 4691, 3225, 128, 1531, 2770, 2771, 4894, 3093, 703, 3642, 5618, 5363, 5619, 6131, 6322, 5364, 3501, 4280, 130, 704, 1572, 2832, 1159, 1160, 3137, 3965, 2740, 2741, 1732, 4637, 2743, 3967, 2744, 1505, 2745, 1146, 1147, 3973, 3974, 3975, 3976, 4633, 4643, 4644, 5512, 5778, 4640, 1882, 5506, 5507, 131, 1569, 2829, 132, 133, 134, 1613, 994, 1169, 1170, 135, 716, 717, 136, 5704, 137, 1149, 138, 5516, 139, 140, 1251, 1252, 816, 141, 142, 2852, 4384, 143, 1570, 144, 145, 3715, 3716, 4997, 146, 147, 148, 2913, 2914, 149, 150, 151, 152, 153, 6250, 6325, 6326, 6327, 4651, 6136, 154, 1239, 155, 156, 157, 158, 196, 1035, 1036, 1037, 947, 3094, 5497, 160, 161, 1527, 1528, 1529, 1530, 2765, 162, 163, 164, 3995, 3996, 165, 166, 167, 168, 1866, 169, 170, 5677, 171, 172, 1836, 173, 174, 1044, 1045, 1046, 1047, 1834, 3445, 663, 869, 1421, 1427, 1470, 1471, 1472, 176, 767, 177, 1242, 1075, 768, 1200, 179, 769, 2722, 3531, 4295, 4296, 4297, 4300, 5329, 4871, 770, 3527, 182, 2028, 3234, 3237, 3523, 771, 3537, 3538, 3539, 4304, 772, 5622, 5623, 5624, 5625, 5861, 6193, 6194, 6197, 6298, 773, 791, 1139, 3148, 774, 1353, 188, 189, 190, 927, 872, 873, 3450, 5578, 5825, 192, 2595, 3428, 808, 1476, 915, 916, 917, 936, 3029, 2688, 2689, 2713, 2714, 1485, 1486, 2701, 2705, 2706, 3514, 3507, 2694, 4274, 5603, 5604, 5605, 5606, 5607, 5608, 4860, 2709, 2710, 1488, 1489, 1490, 2718, 193, 2678, 3480, 3481, 3482, 4250, 4251, 6182, 4265, 4261, 4845, 5306, 3483, 861, 1237, 1497, 4853, 6184, 3484, 5295, 5296, 5583, 4270, 3493, 4291, 3935, 3936, 3937, 3485, 5835, 5836, 6179, 6180, 5585, 5586, 3486, 5827, 6345, 6346, 6384, 6419, 2746, 1450, 900, 1354, 901, 1463, 1355, 1437, 903, 1356, 1357, 1358, 906, 1359, 1360, 1361, 909, 1429, 1362, 1363, 1446, 1459, 1460, 1364, 1422, 5587, 1366, 1367, 1368, 3488, 1369, 4788, 5266, 5252, 3349, 3350, 2621, 5568, 4784, 4163, 4778, 2588, 2592, 5318, 5610, 5611, 3421, 4212, 4816, 5283, 5821, 6015, 6016, 6163, 1370, 1371, 1372, 3413, 2582, 997, 1373, 4542, 2584, 3340, 3318, 1735, 3319, 2031, 2053, 3266, 3283, 3284, 3389, 3320, 3328, 3333, 3341, 3375, 1374, 3268, 3269, 4073, 2055, 1375, 1041, 1738, 1042, 1465, 3370, 5232, 5533, 5534, 5806, 5807, 5544, 5808, 5545, 5535, 4085, 4086, 6004, 3294, 3390, 4089, 3302, 3303, 4107, 4096, 3295, 1376, 4098, 1384, 1385, 1378, 2022, 862, 5302, 1195, 1819, 805, 1379, 1380, 1381, 1382, 1606, 968, 1162, 1163, 918, 920, 921, 2682, 659, 651, 970, 3683, 2585, 660, 653, 654, 1824, 2586 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ #define YYPACT_NINF -5911 static const int yypact[] = { 6451, 57, 23393, -5911, -5911, 57, 72611, -5911, 82811, 23, 231, 122, 264, 22681, 83321, 93521, 1112, 398, 22892, 57, 93521, 1171, 62410, 78221, 1041, 93521, 1377, 1003, 62410, 93521, 94031, 1349, 1465, 1347, 94541, 83831, 76691, 1386, 93521, 1728, 1909, 95051, 84341, 1414, 84851, 1003, 56826, 204, 1448, 95561, 93521,119957, 1909, 85361, 85361, 85361, 2190, 2157, 1706, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 1750, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 2605, -5911, 1074, 2701, 1982, 1024, 1742, -5911, -5911, 2166, 72611, 93521, 93521, 93521, 1970, 93521, 1903, 93521, 591, 72611, 68531, 85871, 2070, 1962, 52632, 96071, -5911, 72611, 93521, 65981, 72611, 93521, 93521, 96581, 93521, 97091, 93521, 858, 80771, 93521, 2120, 93521, 93521, 66491, 97601, 2286, 275, 295, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 2012, 1269, -5911, 336, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 62920, 93521, 23073, 1377, 2166, -5911, 2190, 93521, 2288, 93521, 2081, 98111, 93521, -5911, 93521, 2171, 98621, 939, 761, 68531, 1979, 53161, 2298, 93521, 93521, 68531, 99131, 99641, 100151, 93521, 93521, -5911, -5911, 2256, 93521, -5911, 2412, 69041, 1951, 2428, 2610, 2574, 1027, -5911, 86381, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 72101, 398, -5911, -5911, 2518, 73121, 2563, -5911, -5911,100661,120453, 2387, -5911, 950, 73631, 69551, 2756, 2364, 53690, 2810, -5911, 74141, -5911, 70061, 74651, -5911, -5911, -5911, -5911, -5911,101171, -5911,101681, 2483, 2563, -5911,120949, 70571, -5911, 2616,102191,102701,103211, 2166, 2365, 214, 2041, 46933, -5911, -5911, -5911, 2425, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 236, 2210, 335, 248, 356, -5911, -5911, 252, 254, 255, 236, 2893, 2893, -5911, 93521, -5911, -5911, 2210, 745, 2499, 2385, 2385, 2385, 2651, 35, -5911, 2385, 2575, -5911, -5911, -5911, -5911, 84851, -5911, 2447, 1377, 2455, 2936, 2521, 62920, 1696, 93521, -5911, -5911, 2966, 2531, 2803, 2500, -5911, -5911, -5911, 2749, 2777, 189, 897, 1377, 323, -5911, 2895, -5911, 2814, 31767, 31767, 1377, 86891,103721, 288, 71591, 2588, 87401, 2601, 1575, 2806, -5911, -5911, -5911, 1083, -5911, 3080, 2692, 2972, 2500, 275, 48989, -5911, -5911, 2730, 1269, 84851, -5911, -5911, -5911, 62920, 3044, 34935, 93521, 2689, -5911, 2793, 2689, -5911, -5911, 2785, -5911, 2785, 2785, 2807, 2807, 2943, 2835, -5911, -5911, -5911, -5911, 2809, 2785, 2807, -5911,121941, -5911, 2178, 2200, -5911, -5911, 3259, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 2844, -5911, 1010, -5911, 2319, -5911, -5911, -5911, 31767, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 2802, 2813, 1982, -5911, 7392, 62920, 93521, 1933, 1933, 3323, 1933, 2255, 2426, -5911, 2855, -5911, 3210, 3167, 3169, 84851, 2859, 1441, -5911, 2127, 2860, 2046, 2863, 2132, 1421, -5911, 276, 93521, 457, 2901, 87911, 7983, 2866, 1269, 2867, -5911, -5911, -5911, -5911, 3035, 1638, -5911, -5911, -5911, -5911, 3201, 3246, 7569, 391, 88421, -5911, -5911, -5911, -5911, 93521, 93521, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 2871, 819, -5911, -5911, 2870, 3249, 3099, 8355, 1135, 3207, 3045, 1499, 11093, 3102, 2112, 3256, 14375, 1630, 3257, 2140, 2253, 88931, 93521, 3216, 3261, 6326, 1887, 1175, 3111, 872, 3207, 3250, 3054, 1499, 3265, 7940, 93521, -5911, 3173, 3304, 1329, -5911, 284, -5911, 24436, 34935, 56316, -5911, 1269, -5911, 1446, -5911, -5911, 61900, -5911, 2959, 3123, 990, 72611, 2900, 93521, 93521, -5911,119957, 72611, -5911, 3134, 54219, 72611, -5911, 72611, -5911, -5911, 3267,119957, 93521, 93521, -5911, 93521, -5911, -5911, 2905, -5911, -5911, -5911, -5911, -5911, 2385, 93521, 3368,119957, 3149, 137, 1943, 3404, 93521, 3151, 1943, 2951,104231, -5911, -5911, 1943, -5911, -5911, -5911, 93521, 93521, 2913, 1954, 3140, 886, 1943, 3161, 3418, 3420, 3187, 3024, 3194, 2793, -5911, 3396, 3168, 1522, 226, 354, 1943, 3012,104741,105251, 93521, 3014, 93521, 3412, 72611, 3049, 72611, 72611, 93521, 3330, 93521, -5911, 3156, -5911, -5911, 1178, -5911, -5911, -5911, -5911, -5911, 3346, -5911, 311, 3349, 2974, 3351, 1938, 3352, 371, -5911, -5911, 3016, -5911, 3354, 373, -5911, 3355, -5911, 2977,105761, -5911,106271,106781, 3358, 383, -5911, 68531, 3359, 373, 3360, 2977, 3364, 373, 3366, 1017, 3367, -5911, 1534, 3356, 3372, 371, 3374, 2295, 2977, -5911, 3376, 420, -5911, 3377, 424, -5911, 3378, 3228, -5911, 34935, -5911, 3104, -5911, 1448, 2044, 2041, 2210, -5911, 93521, 2210, 93521, 2210, 93521, 2210, 93521, 2210, 93521, 93521, 93521, 2210, -5911, -5911, -5911, 93521, 3005, 93521, -5911, 93521, -5911, -5911, -5911, 79241, 68531, 79751, -5911, 93521, -5911, 489, 1377, -5911, -5911,119957, 3501, 68531, 3412, 2098, -5911, -5911, 3412, -5911, -5911, 3412, 3412, -5911, -5911, -5911, 3289, 93521, 3370, 79241, 68531, 3373, -5911,107291, -5911, 72101, 3235, 3015, -5911, -5911, -5911, -5911, -5911, 2403, 2600, 256, 2614, 34935, 3017, 256, 256, 3018, 3381, -5911, -5911, -5911, 343, 3020, 3021, -5911, 285, 285, -5911, 3022, 3023, -5911, 287, 3027, 3030, 2647, 2661, 292, 328, 3031, 3032, 3038, 3039, 3040, 3041, 3042, 3043, 3046, 3047, 3048, 3051, 3052, 2809, 256, 3053, 34935, -5911, 3055, 285, 3057, 3062, 3063, 2664, 3064, -5911, 2673, 3065, -5911, 351, 368, 3066, 3067, -5911, 3248, -5911, 341, 3068, 3069, 3070, 3072, 3073, 3075, 3076, 3077, 34935, 34935, 34935, -5911, 29122, 1269, 2706, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 358, -5911, 51045, -5911, 3086, -5911, -5911, 3225, -5911, -5911, 34935, -5911, -5911, 3391, 169, -5911, 363, -5911, -5911, -5911, 1269, 3365, 3074, -5911, -5911, 1919, 3078, -5911, 2318, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 71081, 3530, -5911, 380, 1377, 284, 2181, 3475, 59860, 60370, -5911, -5911, 3331, -5911, 93521, -5911, -5911, 1269, 209, 2121, -5911, 2425, 21693, 2202, 2689, 93521, 93521, 3554, -5911, 3083, -5911, -5911, 34935, -5911, -5911, -5911, 2893, -5911, 2785, 2785, -5911, -5911, 3576, 3174, 3175, 2893, -5911, 2893, -5911, 3089, 3090, 2893, 3171, 3176, 3177, -5911, 3091, 3179, 2893, -5911, -5911, 63941, 2418, -5911, 3449, 458, -5911, -5911, -5911, 2245, -5911, 3093, -5911, 2793, -5911, -5911, 1982, 1982, 34935, 1982, 1592, 1523, 32295, 35463, 3456, 3324, 321, 1829, 3460, -5911, 3332, 2255, 2426, 84851, 93521, 84851,107801, 3231, 34935, -5911, 3567, 3190, 3193, 3253, 58866, -5911, 3196, 3162, 3197, 3258, 3110, 3202, 3203, 3262, -5911, 3398, -5911, -5911, 3206, 3574, 3208,108311, -5911, -5911, 1406, -5911, -5911, -5911, 1406, -5911, 3133, 1606, 1381, 1624, 3211, 512, 1009, 3566, -5911, 293, -5911, -5911, 3271, -5911, 10227, 93521, 3503, 8489, 3353, 391, 3269, -5911, -5911, -5911, 3415, 3218, 93521, 3219, 3369, 391, 339,108821, -5911, -5911, 93521, -5911, -5911, -5911, -5911, 7749, 3539, 27602, -5911, 2342, 3222, 3199, 3234, 93521, 75671, 1885, 3342, 3379, 1830, 2468, 613, 3290, 93521, 1803, 3383, 93521, 3139, 3229, 3242, 3480, 3157, 249, 3597, 3158, -5911, -5911, -5911, 3564, -5911, 2717, 2719, 3375, -5911, 3492, 3537, 8867, 3226, 3227,117973, -5911, 3255, 70, 54748, 93521, 93521, 3260, 3263,109331, 7749, 3568, 80261, 80261, 3266, 3268, 48475, 3588, 1868, 3270, -5911, -5911, -5911, 1868, 3272, 3275,109841, 7749, 3577, 93521, 3276, 3277, 93521,121941, 391, -5911, 3645, -5911, 391, 391, 2238, 3648, 3278, 466, 3439, 265, 1943, -5911, 3158, 4593, -5911, 3280, 3281, 1072, -5911, 3405, 93521, 3282, 3283, 1955, 3380, 1377, -5911, 3382, -5911, 3287, 3386, 3291, 733, 2913, -5911, -5911, 1691, 3303, 84851, 3411, 3413, 1803, 471, 743, 3158, -5911, 3295, 3298, 3157, 3157, 93521, 93521, 93521, 93521, 93521, 221, 3696, 301, 3300, 289, 1323, 3212, -5911, 1868, 67001, 3301, -5911, 1868, 93521, 259, 895, 3158, 2158, 2160, -5911, -5911, -5911, 275, -5911, 34935, 34935, 34935, 3214, -5911, 2911, 21693, 127, -5911, 3059, 9295, 3213, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 93521, 62920, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 93521, -5911, 93521, 3526,119957, 3528, 3445, 3531, 3532, 391, 93521, 93521, 3533, 3536, 3538, 119957, 3540, 3542, 3545, 3446, 3315, 850, 3307, 3232, 3733, 3615, 93521, 63941, -5911, 1406, -5911,119957, 3465, 3617, -5911, 93521, 3483, 1194, -5911, 3657, 3308, -5911, -5911, 1186, 93521, 78731, 2913, -5911, -5911, 3621, 68531, 408, 3623, 1377, 3302, 3625, 3477, 1377, 68531, 3524, 93521, 93521, 93521, 93521, 229, -5911, 67001, 3494, -5911, 93521, 3495, 4593, 3496, 3751, 898, 2385,110351, 3620, -5911,110861, 3264, 93521, 3273, 3273, 3754, 119957, 452, 3551, -5911, -5911, 2482, -5911, 3406, -5911, 72611, -5911, -5911, 72611, -5911, -5911,119957, 93521, 3274,119957,119957, -5911, -5911, 72611, 72611, -5911, 68531, 68531, 3638, 420, 3641, 3328, 3646, 3333, 54748, 54748, -5911, 469, 72611, -5911, 68531, 72611, -5911, 93521, -5911, 93521, -5911, -5911, -5911, -5911,119957, 119957, -5911, 68531, 67001, 3651, 93521, 93521, -5911, 93521, 93521, -5911, 93521, 93521, 2265,111371, 2041, -5911, 93521, -5911, 93521, -5911, 93521, -5911, 93521, -5911, 93521, -5911, -5911, -5911, 93521, -5911, 93521, 2331, -5911, -5911, 2346, 1245, 93521, 93521, 286, 72611, 93521, 3504, 93521, 72611, 72611, 93521, 93521, 93521, 93521, 93521, 3371, 3078, 202, -5911, 1664, 995, 84851, 3506, -5911, -5911, 2360, 2190, 728, 93521, -5911, 93521, 93521, 93521, -5911, -5911, 78221, 3634, 472, 79751, 93521, -5911, -5911, 11955, 34935, 1269, 31234, -5911, -5911, 21693, 3326, 34935, 34935, 3285, 2893, 2893, -5911, 359, 34935, 34935, 34935, 28594, 34935, 34935, 32823, 34935, 34935, 34935, 34935, 34935, 34935, 2893, 2893, 3286, 34935, 3865, 34935, 54748, 34935, 40743, 25504, 34935, 34935, 29650, 300, 3022, 34935, 3543, 41793, 34935, 2181, 3555, 34935, 2181, 3865, 3803, 3803, 1665, 4703, 3279, 1269, -5911, -5911, 1431, 2893, 1431, -5911, 425,119957, 34935, 34935, 34935, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 34935, -5911, 63941, -5911, -5911, -5911, -5911, -5911, -5911, 163, -5911, -5911, -5911, -5911, -5911, -5911, 3548, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 93521, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 30178, -5911, -5911, -5911, -5911, 3294, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 2176, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 30706, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 3299, -5911, -5911, 34935, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 3384, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 1020, 34935, 34935, 34935, 34935, 34935, 34935, 34935, 34935, 34935, -5911, 34935, 462, -5911, -5911, 3629, 3391, 793, 573, 3305, 3515, 89441, 31767, 3449, -5911, 24436, -5911, 312, 3449, -5911, -5911, -5911, 93521, 3530, -5911, -5911, -5911, 3388, -5911, -5911, -5911, -5911, -5911, -5911, 253, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 3310, -5911, -5911, -5911, -5911, 3310, -5911, 3309, 3643, 3650, 1017, 93521, 2912, 34935, 163, 260, 93521, 34935, 3294, 2176, 34935, 3299, 34935, 3384, -5911, 34935, -5911, 2370, 1262, 34935, 2383, 3311, -5911, -5911, 3317, 3090, 3329, 3340, 3319, 3320, 2893, 240, 3321, 222, 197, 3448, 2893, 3583, 3325, -5911, 63941, -5911, 43849, 3385, -5911, -5911, -5911, 1909, 93521, 93521, -5911, 3622, -5911, 3314, -5911, 17072, 3622, -5911, -5911, 41268, 3454, 3626, 3552, -5911, -5911, -5911, 3334, 21693, 35991, 35991, -5911, 2715, 21693, 2722, -5911, -5911, -5911, -5911, -5911, -5911, 1634, -5911, 93521, 182, 3456, 1829, 3389, 1276, 3825, 3394, 93521, -5911, 49503, 2392, -5911, 68531, 93521, 93521, 3550, -5911, 3811, -5911,121941, -5911, 3341, -5911,121445,116981, -5911, -5911, 1233, -5911, 1068, 68531, -5911, 93521, 93521, 68531, 93521, 93521, -5911, 68531, 3395, 93521, 93521, -5911, -5911, -5911, -5911, -5911, 60880, 94, 78221, 3490, 77201, -5911, -5911, 3387, 93521, 3582, -5911, -5911,111881, -5911, 3589, 68531, 93521, 93521, 34935, 3591, 93521, 93521, -5911, 626, 3443, 3447, -5911, 93521, 3453, 72611, 3392,119957, 72611, 55277, 72611, 72611, 3721,119957, 93521, 93521, 1570, 84851, 348, 918, 3158, 3604, -5911, 1558, -5911, 68531, -5911, 93521, 3594, -5911, -5911, -5911, 81281, 3855, 3497, -5911, -5911, -5911,112391, -5911, -5911, 3598, -5911, 2401, -5911, 68531, 68531, 93521, 9590, 3397,112901, 93521, 721, 3665, 3616, 3669, 1384, -5911, -5911, -5911,119957, -5911, 93521, 89951, 93521, 93521, 3660, 93521, 81791,113411,113921, 782, 1782, 3662, 93521, 82301, 3664, -5911, 3535, 93521, -5911, -5911, 64451, 68531, 93521, 975, 63941, -5911, 3649, -5911, 93521, -5911, 1089, -5911, 93521, 7405, 3608, -5911, -5911, 3478, 3485, 93521, 449, 1025, 3158, 3800, 93521, 93521, 3399, 2406, 68531, 93521, 63941, -5911, 3627, 821, 68531, 93521, 81281, -5911, 3631, -5911, 84851, 3728, -5911, 3400, 2385, 2730, 2304, 3400, 68531, 93521, -5911, 3400, 93521,103721, -5911, 68531, 1102, -5911, 68531, 93521, 81281, -5911, 3632, 3565, 68531, 93521, 16342, -5911, -5911, -5911, 391, -5911, -5911, -5911, -5911, -5911, 93521, 93521, 391, 93521, 93521, 391, 1681, -5911, 68531, 93521, -5911, -5911, -5911, 3544, 68531, 93521, 93521, 302, 93521, -5911, 93521, 68531, 3451, 93521, 93521, -5911, -5911, 93521, 7284, 93521, 93521, 93521, 93521, 93521, 93521, 68531, 93521, -5911, -5911, 1043, 1620, 1786, 1904, 1637, 93521, 3747, 93521,114431, 1377, 68531, 93521, 93521, 1377, 93521, 63941, 465, -5911, -5911, 3546, -5911, 68531, 1102, -5911, 9968, 93521, 93521, 93521, 3500, 3502, 238, 3593, -5911, -5911, -5911, 928, 928, 3635, -5911, 34935, 34935, 33351, 3419, -5911, -5911, 34935, 2959, -5911, -5911, -5911, 1078, 3917, 1078,114941, 1078, 1078, 3734, 3488, 3493, 1078, 1078, 1078, 3722, 1078, 1078, 1078, 93521, 3619, -5911, -5911, 3619, 996, 34935,119957, 93521, -5911, 2407, -5911, 3450, -5911, -5911, 63941, 93521, 1012, 973, 3809, 3667, 76181, 2536, 3799, 93521, 3489, 93521, 3936, 3547, 1730, -5911, 2536, 93521, -5911, 1492, 78221, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 93521, -5911, -5911, 3802, 93521, 44363, 3628, -5911, 1377, 2913, 2913, 2913, 2913, 3455, 2913, 93521, 3578, 3822, 2536, 3457, 3823, -5911, 4593, 3826, 1364, 93521, 3680, 76181, 3513, 3499, 3694, 3949, 2385, 1377, 3700, 3686, -5911, 59363, -5911, 2913, 3969, 28098, 4251, 5348, 3689, 3761, -5911, -5911, 3703, 954, 93521, 3815, 3816, 3838, -5911, 311, -5911, 3972, 1938, 3840, 371, -5911, 373, -5911, 2977, -5911, 93521, -5911, 93521, 93521, 93521, 93521, 383, -5911, -5911, 373, 2977, 373, 1017, -5911, 3770, 371, 2977, 3618, 3843, 420, -5911, 424, -5911, 3707, 1017, -5911, 3725, 2385, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 2413, -5911, 93521, -5911, 3818, 3821, 3824, 3827, 3828, 3486, 3505, 3553, 93521, 3508, 3486, 391, 3509, 3498, -5911, 3508, 3508, 3486, 3078, 3078, 3486, 3505, 67511, 3968, 63941, -5911, -5911, 3584, 3507, 3857, 246, -5911, 258, 1450, 3759, -5911, -5911, -5911, -5911,119957, -5911, 68531, 3549, -5911, -5911, -5911, 3740, 3512, 67511, 1017, 211, -5911, 72611, 93521,119957, 72611, 3735, 72611, 72611,119957, 93521, 93521, 2421, -5911, 2010, -5911, 2063, 34935, 492, -5911, 18367, 2430, 34935, 3516, 3517, -5911, 3864, -5911, -5911, -5911, -5911, -5911, -5911, 3518, 3876, -5911, 2442, 2444, 18504, 2510, 119957, 2125, 3556, -5911, 3520, 234, 3741, 3519, 6754, 3596, 2456, 3560, 244, -5911, 6754, 1021, 3521, 8141, 3690, 3523, 2460, 3561, 3562, -5911, 7153, 7765, 3563, 18922, 3569, 3573, 3575, 3580, 40743, 40743, 29122, 1571, -5911, 40743, 3585, 3749, 2462, 17220, 3590, 3602, 19467, 33879, 34935, 33879, 33879, 19519, 3571, 3603, -5911, 3935, -5911, 2474, 63941, 3744, 19643, 2479, -5911, 34935, 63941, 7807, 34935, -5911, 34935, -5911, 3609, -5911, -5911, 3946, 3946, 3946, 3865, -5911, -5911, 3570, -5911, 40743, 40743, -5911, 3297, 29122, -5911, -5911, 3898, -5911, -5911, 257, -5911, -5911, -5911, -5911, -5911, 2932, -5911, -5911, -5911, 3785, 2510, 3915, 54748, 8683, 34935, 423, 34935, 3294, 34935, 3633, 3946, 3946, 3946, 508, 508, 382, 382, 382, 2184, 573, -5911, -5911, -5911, 3581, 3592, 3515, 3611, 34935, -5911, 3599, 50017, -5911, 2609, 2718, 93521, 5554, 6400, 6590, -5911, -5911, -5911, 3385, 127, 3385, -5911, 275, 2893, 1431, 61390, -5911, -5911, -5911, -5911, -5911, -5911, 93521, 21693, -5911, -5911, 3812, 3612, 2487, -5911, -5911, 2893, -5911, -5911, 2629, 2629, 3586, -5911, 3624, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 3614, -5911, -5911, -5911, 3630, 3637, 44877, 3900, 3640, 43335, 90461, 3613, 2272, -5911, 90461, 90971, 90461, 90461, -5911, 3639, -5911, -5911, 1269, 34935, 3897, -5911, -5911, -5911, 34935, -5911, -5911, 1214, 3587, 902, 1341, 2729, 2729, 2715, 1380, -5911, -5911, 3682, -5911, 34935, 2778, -5911, 2784, -5911, -5911, -5911, -5911, 3078, -5911, 3841, -5911, -5911, -5911, 43849, 3670, 3675, 84, 47961, 3851, -5911, 93521, 43849, -5911, 93521, 446, -5911, 3642, -5911, -5911, -5911, -5911, -5911, -5911,116981, 2319, -5911,121445, -5911,121445, -5911, 2319, 4102, -5911,116981, 2103, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 68531, 68531, 3854, 93521, 3853, 3860, 34935, 1528, -5911, 4017, 1017, -5911, -5911, 3730, -5911, 21693, -5911, -5911, -5911, -5911, -5911, 68531, 93521, -5911, 72101, -5911, -5911,119957, -5911, -5911, 93521, 93521, -5911, -5911, -5911,119957, -5911, -5911, -5911, 93521, 218, 3731, 3732, 93521, -5911, 1462, 3405, 10002, 93521, 93521, 93521, 3965, -5911, -5911, -5911, -5911, 3884, -5911, 4022, -5911,116981, -5911, 2977, 1712, 3737, 3158, 34935, 3892, -5911, 1109, 93521, 3652, 3653, 4031, 1519, 3986, 3666, -5911, 3776, -5911, 3804, 1443, -5911, -5911, 3808, -5911, -5911, -5911, -5911, 4047, 1017, 4049, 1017, 93521, 93521, 93521, 93521, 3814, -5911, -5911, -5911, -5911, 3817, 3957, -5911, 63941, 63941, 63941, 2488, -5911, -5911, 1377, -5911, -5911, -5911, -5911, -5911, -5911, 4003, -5911, 2503, -5911, 2026, 91481, -5911, -5911, -5911, -5911, -5911, 4054, 68531, 93521, 10621, 93521, 93521, 93521, 3907, 2151, 1231, 119957, -5911,118469, -5911, -5911, 2505, -5911, 3693, 93521, 3771, 68531, 3748, -5911, -5911, -5911, 4060, 2385, 3833, 80261, 3736, 3736, 2315, -5911, -5911, -5911, -5911, -5911, 3971, 3895, -5911, 394, 3905, 68531, 3760, -5911, -5911, -5911, -5911, 4069, 3794, -5911, -5911, 3796, 1154, 3158, 4593, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 3829, -5911, -5911, -5911, -5911, -5911, -5911, 1747, 1747, -5911, -5911, -5911, 1747, 1767, 481, 1192, 3158, -5911, 389, 412, 3797, -5911, 3798, -5911, -5911, -5911, 3985, 3990, 3991, 3813, 3819, 3869, 3820, 3830, 3870, -5911, 3831, 3872, 3834, 3880, 3835, 4139, 1017,119957, 3977, 1377, 3871, 4113, 1017, -5911, -5911, 3837, -5911, 3839, -5911, 2509, 4226, 4227, -5911, 93521, -5911, 454, 1221, 3158, -5911, 3842, -5911, 68531, 93521, -5911, -5911, -5911, 34935, 3745, 3757, 3758, 21693, 21693, 34935, -5911, -5911, 21693, 3743, -5911, -5911, -5911, -5911,119957, -5911, 93521, 4070, -5911, -5911, 1078, 93521, 93521, -5911, -5911, -5911, 93521, -5911, -5911, -5911, 4072, -5911, 594, 594, -5911, -5911, 4104, 8344, 3764, 470, -5911, 63941, 51574, 2310, 224, 1943, -5911, 72101, 93521, 72101, -5911, 973, 3988, 93521, 93521, 93521, 3768, 3769, -5911, -5911, -5911, -5911, 68531, 1461, 68531, 2893, -5911, -5911, 3852, -5911, 93521, 2385, 4306, 4138, 3451, -5911, 4262, 3420, 408, 2021, 251, 3024, 4201, 2793, 34935, 447, -5911, -5911, 1269, 93521, 3499, -5911, -5911, -5911, -5911, 1377, -5911, 3782, 3781, -5911, 93521, 4149, 93521, 93521, 93521, 93521, 3549, 3789, 93521, 3790,119957, 93521, 2626, 3157, 4285, 4171, 2190, 3513, 3883, 4173, 84851, 3810, 2514, -5911, -5911, 954, -5911, 2519, 150, -5911, 1377, 72101, 117477, 4160, -5911, 344, 5348, -5911, -5911, 344, 1070, 93521, -5911, -5911, -5911, -5911, 4030, 2492, -5911, 4145, -5911, -5911, 2190, -5911,119957, 3805, -5911, 2520, -5911, -5911, -5911, 420, 3866, 1017, 3868, 1017, -5911, -5911, -5911, -5911, 93521, -5911, 93521, 67001, -5911, -5911, 93521, -5911, 4178, -5911, -5911, 3952, 3953, 3954, 3955, 3956, 93521, 3486, -5911, 3832, 93521, 93521, 68531, 1766, -5911, -5911, 68531, 502, -5911, 1308, -5911, 84851, 3947, -5911, -5911, -5911, -5911, 4191, 4193, -5911, -5911, -5911, 1610, -5911, 79241, 510, -5911, 68531, 4126, 4129, 4140, 4141, 391, 4144, 4147, 4148, 4150, 4151, -5911, -5911, -5911, 3845, 19689, 34935, -5911, 4216,119957, -5911, 8392, -5911, -5911, 34935, -5911, 34935, -5911, -5911, 4153, -5911, -5911, 3914, 3920, 3861, 3556, 3690, -5911, 4071, 4077, 34935, 3690, 4338, 1152, 34935, 34935, 34935, -5911, -5911, 4090, 4101, 34935, 2510, 2510, 34935, -5911, 3877, 34935, -5911, -5911, -5911, -5911, 2602, 34935, -5911, 34935, -5911, -5911, 26038, 4399, 4399, 3878,119957, 40743, 40743, 40743, 40743, 1671, 3057, 40743, 40743, 40743, 40743, 40743, 40743, 40743, 40743, 40743, 40743, 584, -5911, 4093, 34935, 34935, 34407, -5911, -5911,119957, 3882, 3571, 3885, 3886, 34935, -5911, -5911, -5911, 2525, 42307, 3887, 63941, -5911, 34935, 17773, 2537, 3932, 20059, 1269, 8519, 2731, 34935, 2224, 4510, 34935, 2544, 34935, -5911, -5911, -5911, -5911, 4240, -5911, -5911, -5911, -5911, -5911, -5911, 4131, 2510, -5911, -5911, 34935, 3889, 5652, 40743, 40743, 6145, -5911, 6867, 34935, 29122, -5911, 3635, -5911, 26572, 3888, 34935,116471, -5911, -5911, 1003, 1003, 1003, 1003, -5911, 93521, 93521, 93521, 3897, 3890, 3897, 284, 3894, -5911, -5911, -5911, -5911, 2190, -5911, 3899, -5911, -5911, -5911, -5911, -5911, 34935, 90461, 90971, 90461, 90461, 3896, 42821, 27087, 2272, 3903, 93521, -5911, -5911, 3901, 43849, 4203, 4114, -5911, 43849, 4114, 2231, 4114, 4206, 4011, 50531, -5911, -5911, 3918, -5911, -5911, 4123, -5911, 2342, 21693, 4388, 4258, -5911, 3919, -5911, 3587, 1763, -5911, -5911, -5911, 1460, -5911, 4007, -5911, -5911, -5911, 3613, 36519, 4079, -5911, -5911, -5911, 3979, 2546, -5911, -5911, 4366, 4079, -5911, 2275, -5911, 2550, 49503, 3670, 34935, 1269, 2552, 2289, -5911, -5911,116981, -5911, 4001, 2977, 2977, 1544, 3486, 4289, 1544, 9048, -5911, 1762, 93521, -5911, 93521, -5911, -5911, -5911, 4423, 3992, 3994, 4219, -5911, 2863, -5911, -5911, 68531, 93521, -5911, -5911, -5911, 460, 1265, 3158, -5911, 4020, -5911, -5911, 4263, 93521, -5911, 4419, 4043, 93521, 9112, 4324, 4014, -5911, -5911, 45391, 93521, 93521, 93521, -5911, 93521, 93521, 1762, 91991, -5911, 4396, 1762, 4074, 4308, 1705, 3157, 466, 4192, -5911, 1994, -5911, -5911, 4037, -5911, 93521, -5911, 93521, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 4094, -5911, -5911, -5911, -5911, 64451, -5911, -5911, 93521, -5911, 63941, 51574, 63941, -5911, -5911, -5911, 93521, -5911, 1788, 498, 1279, 3158, -5911, 4051, -5911, 4335, 4052, 4055, 4112, 1352, 283, 4056, 4057, 4116, 3973, 3974, 3975, -5911, 63941, 52103, 4146, 93521, 2977, 3978, 4015, 93521, 3736, 92501, -5911, 3980, -5911, -5911, 3736, 236, 2759, -5911, -5911, -5911, 1377, 2977, 1377, 93521, 93521, 93521, 93521, 302, -5911, -5911, -5911, 4447, 4078, 93521, 93521, 93521, 93521, -5911, 4033, -5911, -5911, -5911, 93521, 93521, 4346, 243, 2321, 68531, 93521, 93521, 68531, 93521, 93521, 93521, 93521, 93521, 93521, 93521, 4211, -5911, 4442, 4371, 2480, 4410, 4073, 93521, -5911, 93521, 1377, -5911, 3405, 93521, 93521, 93521, 93521, -5911, -5911, -5911, -5911, -5911, 3635, -5911, 3996, 4307, 1078, -5911, 4309, 4310, 4311, 1078, -5911, -5911, 1943, -5911, 533, 93521, -5911, 2642, 93521, -5911, -5911, -5911, 3919, 2717, 2719, -5911, -5911, -5911, -5911, -5911, -5911, 3999, 93521, 93521, 40743, -5911, 2464, 1991, 1611, -5911, 4296, 93521, 3248, -5911, -5911, -5911, 1137, 93521, -5911, -5911, -5911, -5911, 4004, -5911, 1314, 3789, -5911, 4330, 76181, 2977, 68531, 68531, 2977, -5911,119957, 4008, 3499, -5911, 456, 4096, -5911, 68531, 408,115451, 3302, 4050, 4238, 9242, 43849, 44363, 1747, -5911, 4016, 4012, -5911, -5911, 93521, 3988, 67001, 2559, 4593, 4513, 1247, 2365, -5911, 77711, 4223, 3789, 4330, -5911, 3157, 4243, 4246, -5911, 2190, 93521, 3549, 3499, 1377, 93521, 4014, 51574, -5911, 4555, 2493, -5911, 116981, 34935, 34935, -5911, 4021, -5911, 4026, 5348, -5911, 4105, 4025, 4523, 34935, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 4124, 4036, 93521, 93521, 954, 93521, -5911, 4039, 3840, -5911, 3840, -5911, 93521, -5911, 93521, -5911, 1017, -5911, 4176, 1017, 93521, 93521, 93521, 93521, 93521, 93521, 3486, 391, 3498, -5911, -5911, 4392, 67511, 4387, -5911, 63941, -5911, -5911, -5911, -5911, -5911, 2566, 93521, -5911, -5911, -5911, 4464, 4401, 1017, 472, 1122, 1122, 1122, 1122, 4356, 1122, 1122, 1122, 1122, 1122, -5911, 34935, 21693, -5911, 4048, -5911, 21693, 21693, 4436, 4342, 4347, -5911, -5911, 4059, 4292, 4293, -5911, 4062, 34935, 3690, 20097, -5911, -5911, 4297, 4300, -5911, 3690, 3690, 20097, -5911, 20097, 4064, 9641, 20298, -5911, 2570, 34935, -5911, 1835, 1835, 1835, 3155, 4422, -5911, 3105, 1835, 1835, 1835, 560, 560, 247, 247, 247, 4399, 584, 20453, 20707, 20877, 4066, -5911, -5911, -5911, 3571, -5911, 37047, 93, 4543, 41793, -5911, -5911, -5911, 4115, 4117, 4075, -5911, 34935, 37575, 4067,121941, 4286, -5911, -5911, 1179, 34935, 34935, 2173, -5911, 10222, 34935, -5911, -5911, 2173, 477, 34935, 4877, 5259, 34935, 34935, 7106, 9694, 4080, -5911, 2587, 34935, 10508, 4278, -5911, 93521, 93521, 93521, 93521, -5911, -5911, -5911, 4258, 2762, 4258, 1377, 4081, -5911, 4083, -5911, -5911, -5911, -5911, 64961, 4084, 3744, 90461, 4085, 93521, 2272, 43849, -5911, -5911, 2584, -5911, 43849, 4385, -5911, 43849, 72611, -5911, 93521, 4089, 93521, -5911, 1933, 34935, 4127, 54748, -5911, -5911, -5911, -5911, 4182, -5911, 4325, 21693, 31767, -5911, 2190, 2438, 93521, 1269, 110, -5911, 34935, 4106, 93521, -5911, 4079, 21693, -5911, 4174, 2589, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 4186, 78221, 4456, -5911, -5911, 1995, 4428, 205, -5911, 1017, -5911,119957, 93521, 93521, 93521, 3110, -5911, -5911, 93521, 93521, 93521, 93521, -5911, -5911, 68531, 93521, -5911, -5911, 93521, 34935, 2593, -5911, 4152, 4559, 436, 2603, -5911, 2608, 1762, -5911, 2615, -5911, -5911, 93011, -5911, 3988, 302, 2464, 4443, 4446, 4350, -5911, 391, -5911, 4605, 2464, 4352, 302, -5911, -5911, -5911, -5911, 2561, -5911,119957, 1017, 1017, -5911, -5911, -5911, -5911, -5911, 4128, -5911, 4591, 4218, 93521, 93521, 93521, 93521, 93521, 68531, 93521, 93521, 2893, 2893, 119957, 4118, -5911, 2893, 2893, 4119, -5911, 68531, 93521, 93521, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 4214, -5911, 34935, 4585, -5911, -5911, -5911, -5911, -5911, 34935, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 68531, 93521, 4215, -5911, 4220, -5911, 968, -5911, -5911, 93521, 93521, 93521, 93521, 4505, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 4504, 93521, -5911, -5911, 1377, 1377,119957, 1017, 1017, -5911, -5911, -5911, 4221, -5911, -5911, 4134, 4445, 1078, -5911, 1078, 1078, 1078, -5911, 4142, -5911, 1943, 4544, -5911, 1762, 2073, 4494, -5911, 34935, -5911, 2126, 3155, -5911, 4556, 4640, -5911, -5911, -5911, -5911, 3451, 2385, 3451, -5911, -5911, 72611, 438, -5911, 4479, 1012, 63941, 4379, 76181, 389, 1257, 4154, 4284, -5911, 2977, 2977, 4212, 93521, 4646, -5911, -5911, -5911, -5911, -5911, -5911, 68531, 3748, -5911, 4394, 1335, 4515, 93521, 44363, -5911, 3613, -5911, -5911, -5911, 1377, -5911, -5911, 4291, 3499, -5911, 1433, 93521, 4389, 76181, 3549, 2639, -5911, -5911, -5911, 4202, 4634, 3513, -5911, 389, 4223, -5911, -5911, 4611, 4260, 4207, 4660, -5911, 4260, 4522, 4395, 4169, -5911, 3810, -5911, 93521, -5911, 21693, 21693, 1377,122437, 344,119957, 4535, -5911, 21693, 93521, 971, 4170, 4348, -5911, 4497, 1017, 2640, -5911, 1017, 1017, -5911, 93521, -5911, 3486, 3486, 3486, 3486, 3486, -5911, 4402, -5911, -5911, -5911, -5911, 4488, -5911, 67511, -5911, 1017, -5911, -5911, -5911, -5911, -5911, -5911, 1122, -5911, -5911, -5911, -5911, -5911, 21693, -5911, 93521, -5911, -5911, -5911, -5911, -5911, -5911, 3314, 4181, 34935, 1808, -5911, -5911, 4183, 4188, 3690, 3690, -5911, -5911, 34935, -5911, 10924, 40743, 4539, -5911, 34935, 34935, 34935, -5911, 4179, 2641, 2646, -5911, -5911, 93, -5911, 4543, -5911, -5911, -5911, 11427, 4247, 21693, 4312, 4190, 1710, 2173, 2173, 10222, 2173, 34935, 34935, 2173, 2173, 34935, -5911, -5911, -5911, 11925, -5911, 4669, 3635, -5911, -5911, -5911, -5911, 4127, -5911, -5911, 4127, -5911, 4344, 34935, -5911, 2648, 4691, 39687, 4652, -5911, 93521, 2652, -5911, 34935, 4204, -5911, -5911, 43849, 2584, 4208, 2658, 93521, 2662,119957, 38103, 21693, 93521, 3635, 4209, -5911, 93521, 3074, -5911, 84, -5911, -5911, 4650, 45391, 4608, 21115, 34935, -5911, -5911, -5911, -5911, 67511, 4437, 67511, 1762, -5911, -5911, -5911, -5911, -5911, -5911, 4213, -5911, -5911, -5911, -5911, 4303, -5911, -5911, 50, 3506, 1762, -5911, 12062, 4548, 45391, 55806, 93521, -5911, 93521, -5911, 4386, 4548, 4548, -5911, -5911, -5911, -5911, 4713, 4595, 4596, -5911, -5911, 4224, -5911, -5911, -5911, 4442, -5911, -5911, 51574, 68531, 93521, -5911, 4313, -5911, -5911, -5911, -5911, -5911, -5911, 47447, 54748, -5911, 1352, 4225, 4228, 283, -5911, -5911, -5911, 93521, 12165, 4229, 12884, 1295, 3506, 93521, 93521, 4231, 4232, 4233, 1863, 1533, 2097, 3486, 4583, 93521, -5911, -5911, -5911, 4442, -5911, -5911, 93521, -5911, 1078, -5911, -5911, -5911, -5911, 63941, -5911, 2104, 4142, 1377, 72611, 4718, 4718, 13769, 4463, -5911, -5911, 165, 4298, 4507, 4298, 4235, 93521, 1137, 4239, 2663, -5911, 93521, 4241, 4375, 1474, 1474, 93521, 93521, 93521, 2667, 2190, 2977, 4015, 408, 4617, 76181, 4663, 3988, 455, -5911, 93521, 4739, 93521, 3549, 3789, 93521, 4248, -5911, -5911, 77711, 4468, 2310, 93521, 2626, 4223, 3513, 1500, 93521, -5911, 1199, -5911, 2190, -5911, 93521, 84851, 45391, 4606, -5911,121445, -5911, 2672, -5911, -5911, -5911, 4328, 22297, 3385, 4372, 4376, 4254, 2311, 4619, 93521, 133, -5911, -5911, -5911, -5911, -5911, -5911, 93521, 510, -5911, -5911, -5911, -5911, 4255, -5911, 4755, 34935, 338, -5911, -5911, -5911, -5911, -5911, 4486, -5911, 4261, -5911, -5911, 2761, 1808, 21569, -5911, 3879, 40743, 21693, 21693, 21693, 34935, -5911, 34935, -5911, -5911, -5911, -5911, 948, -5911, -5911, 4597, 4264, 2173, 2173, 2173, -5911, 34935, 976, -5911, -5911, 426, 4689, 21618, 3639, 64961, 4270, -5911, 40743, 2674, -5911, 611, 93521, 2678, -5911, 21693, 93521, -5911, -5911, 34935, -5911, 2687, -5911, 4272, 744, 4274, 24970, 4271, -5911, -5911, -5911, -5911, -5911, 21693, 4277, -5911, 4771, 1829, -5911, -5911, 4339, 93521, 2688, -5911, 1333, 2271, 1200, -5911, 4781, 4781, 21693, 1766, 1544, 483, -5911, 93521, 4381, -5911, 4559, 4288, 3451, -5911, 4290, -5911, -5911, 2093, 3157, 93521, 3451, 3451, 2310, 4624, -5911, -5911, 34935, 4351, -5911, 1418, 3506, 93521,119957, -5911, 170, 4648, -5911,119957,119957, -5911, -5911, -5911, 34935, -5911, 4391, -5911, -5911, -5911, 34935, 34935, 75161, -5911, -5911, 93521, 93521, 93521, 93521, 93521, -5911, 1017, -5911, -5911, 2693, -5911, 46419, -5911, -5911, 3404, 1377, 3404, 2045, -5911, -5911, 3404, 3404, -5911, 3385, -5911, 4718, 403, -5911, -5911, 4536, 4299, 34935, 4623, -5911, 1311, 4525, -5911, 4302, -5911, 72611, 4826, -5911, 63941, 3789, 4330, 93521, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 2694, 3988, 4670, 3499, 4207, -5911, 93521, 4343, -5911, 43849, 3988, 2190, 2365, -5911, 4223, 3789, 4330, -5911, -5911, 4314, 4246, 3513, 2626, 4455, -5911, 4457, -5911, 4770, 4534, 4777, 3549, -5911, 4014, 2698, 93521, -5911, -5911, 5348,122437,119957, -5911, -5911, -5911, 4316, 4714, 4364, 4367, -5911, -5911, -5911, 2311, -5911, 114, 4715, 4373, -5911, 4383, 93521, -5911, -5911, 3988, 1017, 34935, 63941, 21693, -5911, -5911, 4712, -5911, 500, 270, 1256, 4560, 4329, 34935, 3879, 2700, 2702, 4393, -5911, -5911, -5911, 3571, 38631, 38631, 38631, 4333, 4696, 4705, 93521, -5911, 93521, 4541, -5911, -5911, 93521, 3155, 4340, 39687, 63941, 2704, -5911,118965, -5911, 2709, 2724, -5911, 34935, 4345, 34935, -5911, 38103, 93521, 4349, 3456, 2190, -5911, 3385, 45391, -5911, 4474, -5911, 4614, -5911, -5911, 34935, 4434, 4438, -5911, 4707, -5911, -5911, 93521, -5911, 93521, 4298, 54748, 3587, 2093, 2385, 4298, 4298, 4299, 14677, 34935, -5911, 4450, -5911, -5911, 2732, 175, 4533, 4533, 2733, 2734, 15235, 93521, 2739, 2744, -5911, 2746, 2893, 3505, 2097, 3505, -5911, 3486, -5911, -5911, 63941, -5911, -5911, 68021, -5911, -5911, -5911, 1377, -5911, 1377, 4594, 57336, 57846, 1377, 1377, -5911, -5911, -5911, -5911, 4687, -5911, 4593, -5911, 15319, 4460, -5911, -5911, -5911, 765, -5911, 4589, 4590, -5911, 4368, -5911, 2752, -5911, 389, 4502, 3988, -5911, -5911, 93521, 4865, 4868, -5911, 1374, 93521, 3613, -5911, 4207, 3549, 3513, 389, 4223, 2310, 45905, 4260, 2626, 4246, -5911, -5911, 4598, -5911, 4599, -5911, 4378, 4711, -5911, 2197, 344, -5911, -5911, -5911, 414, 4738, 4741, -5911, -5911, -5911, 3404, -5911, 1841, 4390, 4762, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 4427, 291, 350, -5911, 4430, -5911, 4573, 4574, 1808, 2624, -5911, 21693, -5911, -5911, -5911, 40215, 4547, 268, 17949, 4778, -5911, 4778, 4778, -5911, 4873, 4874, 1427, -5911, 4853, 2753, 41793, -5911, -5911, -5911, 93521, 4621, 1420, 4899, 4571, 2758, 38103, 2763, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 49503, 4880, 21693, 981, 1660, 67511, 3506, 2764, 3736, 4406, -5911, 3587, 4507, -5911, -5911, -5911, -5911, 21693, 93521, 72611, 4882, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 3506, 4503, -5911, -5911, 75161, -5911, 93521, -5911, -5911, 2765, -5911, -5911, -5911, 58356, -5911, 4170, -5911, 4170, -5911, -5911, -5911, 2441, 4521, 93521, 1144, 1144, 4825, -5911, 4482, -5911, 4418, -5911, 4949, 4558, 93521, -5911, -5911, 1352, 2190, 76181, 3988, -5911, -5911, 2626, 4223, 3513, 34935, 2769, -5911, 4559, 436, -5911, 4246, 4260, -5911, -5911, 45391, 4421, 3248, 4816, -5911, -5911, -5911, 2568, 72611, 72611, 93521, -5911, -5911, -5911, 34935, 1137, -5911, 4465, -5911, 4466, -5911, -5911, 4653, 4654, 4429, 1808, -5911, 4930, -5911, -5911, -5911, -5911, -5911, 1283, -5911, -5911, -5911, 93521, 93521, 93521, 4433, -5911, 3744, -5911, -5911, 40743, 40743, 4671, -5911, 40743, 1420, -5911, 93521, -5911, 4439, -5911, -5911, 2770, -5911, 1679, 1719, -5911, 4676, 4569, -5911, -5911, 4678, 802, -5911, 483, -5911, -5911, -5911, -5911, -5911, 4525, 1762, 1762, 3506, -5911, 93521, -5911, 4440, -5911, -5911, -5911, 68021, -5911, 4170, -5911, -5911, -5911, -5911, 4950, -5911, 313, -5911, -5911, -5911, -5911, 93521, 3988, 4118, 4207, -5911, 4246, 3513, 2626, 15398, -5911, 45905, 93521, 93521, 4260, -5911, 2775, 45391, 3499, 4602, -5911, 1908, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 450, 4444, 4452, -5911, -5911, 15995, 72611, -5911, -5911, 4592, 4600, -5911, 4668, 39159, 4609, -5911, 4661, -5911, 1447, 1458, 1934,115961, 4910, 3155, 3155, -5911, 3155, -5911, -5911, 34935, -5911, -5911, -5911, -5911, -5911, 49503, -5911, 4516, 84, 4461, 93521, -5911, -5911, 1762, -5911, -5911, -5911, 34935, -5911, -5911, 2385, 2385, 3988, -5911, -5911, 4260, 2626, 4246, 4559, -5911, -5911, -5911, -5911, 4711, -5911, 2776, 4260, 4373, 2738, -5911, -5911, 2757, 2813, 4550, 4803, -5911, 4467, 4575, 4577, 4854, -5911, -5911, -5911, 93521, 93521, 65471, 93521, 388, 2788, -5911,119461, 93521, 16662, 4470, -5911, 4528, 34935, 2798, 1762, 2800, -5911, -5911, -5911, -5911, 4246, 4260, 93521, 3248, -5911, 45391, 3385, 4849, -5911, 1908, 4601, 4604, 63431, -5911, -5911, -5911, -5911, -5911, 2279, 366, 4890, -5911, -5911, 1377, 1808,115961, 4697, 862, 2804, -5911, 4538, 2818, 135, -5911, 4260, -5911, -5911, 3499, -5911, -5911, 1137, -5911, 4529, 4531, -5911, 2819, -5911, -5911, -5911, -5911, 34935, 65471, 2459, 4477, -5911, -5911, 4686, 1377, 2761, 4686, -5911, -5911, -5911, 84, -5911, -5911, 4260, 72611, 4843, 4844, -5911, 63431, 928, 4553, 93521, 4493, -5911, 1808, -5911, 1256, 2761, 4551, 3385, 4496, 72611, 72611, -5911, 4509, 93521, 4960,115961, -5911, 1808, 1256, 4538, -5911, 63431, -5911, -5911, 2762, -5911, 4512, 2820, -5911, 1808, -5911, 2826,115961, -5911, -5911, -5911, 2830, -5911 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { -5911, -5911, -5911, 4103, -464, -1749, -5179, -1132, 1958, -5911, -5911, -982, 645, 3335, -1203, -5911, -5911, -5911, 1591, -5911, -5911, -5911, -5911, 4087, -5911, -2945, -5911, -5911, 223, 4034, -1388, 171, 3644, 1614, -5911, -1016, -5911, -5911, -623, 1, -5911, 4042, 627, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -801, 2079, -5911, 2174, 1407, -3392, -5911, -5911, -1535, -3795, -5911, 655, -5911, 682, -4107, -5911, -4874, -1013, -5911, -5911, -5911, 2064, -5911, -5911, -5911, 2009, 1196, -371, -5911, -5911, -5911, -5911, -5911, -5911, -835, -5911, -5911, -1145, 2, -653, -2990, -4401, -5911, -5911, 503, -414, -1492, -5911, 695, -5911, 697, -5911, -4902, -5911, -4, -2779, -2631, -5911, -5911, -5911, -383, -1513, 1440, -5911, 1503, -5911, -742, -1182, 1884, -2178, -973, -5911, -275, -3624, -1116, -844, -842, -1005, -4426, -4954, -5911, -5911, -1144, -3834, -5260, -5502, -4926, -5159, 1449, -5911, -29, 505, -5911, 3, -3703, -3803, 4, 480, -5911, 6, 7, -5911, 497, -775, -977, -1609, -5911, -633, -5911, -5911, -5911, -3486, -5911, -5911, -5911, 187, -5911, -5911, -5911, -5911, 542, -5911, -5911, -5911, -5911, -5911, -5911, -2467, 2036, 2037, -5911, -4434, -5911, -943, -5911, 708, -3539, 1435, -5911, -5911, 1191, 4107, 526, -5911, -5911, -5911, -5911, -5911, -5911, -1803, -5911, -5911, -5911, -5911, -3, -353, -5911, -5911, -5911, -5911, -5911, -5911, -5911, 8, -5911, 1156, 468, -5911, -5911, -661, -5911, -5911, -5911, -5911, -5911, -5911, -1198, -5255, -1330, -1296, -5911, -3518, -5911, -5911, -5911, -324, -5911, -5911, -5911, -5911, -5911, -839, -5911, 1258, -4212, -5911, -5911, 514, -5911, -5911, -5911, -5911, -5911, -971, -257, 3284, -5911, -513, -740, -5911, -5911, -5911, -254, -5911, -5911, -5911, -5911, -5911, -520, -1288, 5131, 4487, -1120, 16340, -840, -588, -5911, -5911, -5911, -2765, -5911, -5911, -4184, -5911, 5122, 2767, 575, 11, -5911, 42, 112, 3922, -5911, 1124, -1169, -3157, 474, -468, -5911, -5911, -5911, 476, -5911, -1964, -5911, -5911, -5911, -5911, -4170, 12, -5911, -4445, -5264, -4682, -4216, -1157, -5911, -5697, -4543, -4163, -5911, 2078, -5911, -5911, -478, -192, 3251, -5911, -1490, 2424, -1435, -5911, -2570, 537, 1615, 3288, -3311, -104, 3241, -3039, -5911, -673, 1201, -5911, -339, -3821, -5911, -5911, -5911, -2816, -597, -5911, -5911, 1817, -1094, -5911, -5911, -5911, -5911, -665, 3224, -184, -5911, -5911, 4462, -5911, -5021, -5911, 4431, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -1486, 1368, -5911, -769, -5911, -5911, 2180, 748, -5911, -5911, -5911, -5911, 1455, -373, -5911, -5911, -5911, -5911, -5911, -5911, -5911, -952, -1185, -5911, -5911, -4662, -5911, -5911, -5911, -5911, -5911, 2547, -960, -744, 4332, 1157, 13, -5422, -5911, -5911, -1151, -5911, 3658, -5911, -5911, -5911, -5911, -5911, 529, 532, -5911, -5911, -5911, -5911, -5286, -5911, -5911, -5082, -5911, -5911, 2162, -5911, -5911, 1423, 5, 3393, -5911, -5911, -5911, -15, -5911, -5911, -1029, 2511, -5911, -2414, -5911, -604, -5911, -5911, -1919, 15, -4433, -5911, 58, -5911, -5911, -5142, -1101, 326, -5911, -5911, -4157, 61, -5911, -5911, -5911, -5911, -5084, -5911, 72, -4966, 892, -3387, -5911, 10, -5911, -421, -5911, -5911, -423, -5911, -5911, -5911, -4104, 16, 31, -5911, -5911, 74, 2163, -47, -36, -32, 21, 176, 3780, -5911, -5911, -5911, -4485, 3856, -5911, 49, -871, 5168, 5169, -5911, -898, -136, 482, 1717, -694, -2638, 3729, 3738, -5911, 1704, 2524, -2480, -2479, -5911, -851, -817, -625, -5911, -5911, -5911, -5911, -1451, -687, -2642, -5911, 3756, -5911, -5911, -5911, -2383, -3418, -3234, 1744, -3337, -3171, -5911, 983, 977, -878, -72, 101, -1499, -789, 1890, -5911, -5911, 1770, -335, -5911, -5911, -333, -3331, 942, -5911, -4653, -2864, 1775, -1097, -778, -5911, -926, -5911, -579, 1780, -5911, -4307, -1130, -5911, -3691, 576, 3844, -831, -5911, -5911, -812, 9265, -5911, -5911, -5911, 11105, 11338, -5911, -5911, 11988, 12269, -5911, -559, 12497, 8476, -793, -1956, 245, 12981, 17180, -1806, -677, 317, -5911, -2920, -2369, -5911, -5911, -5911, -300, 1092, 1055, -5911, -5911, -4688, -4489, -5911, 2671, -2150, -5911, -587, 1846, -585, -5911, -5911, -5911, -2604, -4938, -2695, 2675, -5911, -5911, -5911, -187, -5911, 18169, -3279, -5911, -551, -1018, -1607, 3182, -3034, -1950, -5911, -5911, -5911, -3142, -5911, -5911, -5911, -440, 1874, -5911, -5911, 1997, -5911, -5911, -5911, -975, 2242, -768, -1183, 1879, -4551, -5911, -522, -4276, -5068, -5911, -5709, -5891, -1890, -1108, -3056, -5910, -1951, 1896, -3193, -5911, -1947, 1978, 1187, -5911, -2346, -5911, 4370, -787, 2690, -803, 16194, -671, 10668, -1303, -5911, 235, -4225, 3541, 7082, 29, -120, 9781, -621, 2607, 3306, -5911, -5911, -6, 9253, -628, -874, -5911, 5256, 15755, 16120, -3738, -5911 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ #define YYTABLE_NINF -3001 static const yytype_int16 yytable[] = { 650, 71, 80, 83, 84, 175, 85, 86, 106, 926, 184, 124, 129, 159, 960, 178, 185, 802, 1102, 804, 1734, 191, 1001, 810, 996, 1006, 766, 995, 818, 826, 830, 1831, 833, 1661, 1048, 826, 826, 1389, 863, 657, 866, 1491, 191, 2002, 1948, 1714, 708, 922, 922, 922, 1377, 793, 2954, 937, 1228, 1229, 1230, 793, 180, 2876, 1234, 181, 1477, 1442, 1479, 2847, 3647, 1825, 1666, 2742, 1433, 1434, 183, 1462, 186, 1418, 1726, 3524, 828, 3249, 1441, 2833, 3525, 3894, 1891, 1194, 2846, 1142, 1234, 2050, 2042, 4053, 1140, 948, 864, 1417, 1004, 2859, 3111, 3977, 4222, 3265, 4224, 1405, 1448, 1864, 4447, 1201, 4289, 1869, 1026, 1510, 2034, 3240, 1873, 4862, 2036, 1175, 3301, 2037, 2038, 4621, 3023, 3305, 1883, 2915, 2915, 3807, 4341, 2915, 4369, 1188, 4373, 4595, 1048, 800, 2742, 4397, 1903, 4399, 3916, 4608, 4544, 4877, 1069, 860, 4926, 4264, 829, 4303, 5299, 4896, 3357, 3775, 3359, 939, 4646, 1202, 2674, 940, 931, 2984, 2985, 1185, 5543, 3130, 1820, 5134, 5103, 1937, 3178, 3550, 3552, 2824, 5142, 3289, 3293, 3296, 3297, 5163, 3925, 3306, 5616, 3308, 3309, 5641, 5152, 1048, 5237, 232, 5238, 650, 951, 951, 1573, 4965, 951, 4194, 5492, 5716, 962, 5311, 863, 5313, 2980, 998, 823, 1601, 962, 1660, 5151, 962, 3431, 857, 863, 1142, 951, 3433, 1692, 863, 1397, 4278, 3443, 951, 3516, 863, 875, 3519, 1719, 5460, 5755, 3012, 1623, 2824, 5499, 4309, 4091, 1640, 5768, 4605, 1048, 649, 1484, 4191, 4247, 5488, 5365, 775, -2577, 1487, 2824, 775, -2619, 5961, -2645, -2686, 2804, 4093, 1173, 714, 4127, 1177, -1980, 1876, 849, 3913, 1899, 4104, -1980, 3495, 2991, 5633, 4631, 3853, 2877, 3856, 3857, 5491, 3325, 1900, 3861, 3862, 3863, 1417, 3865, 3866, 3867, 1568, 5257, 3245, 2877, -1947, 5713, -1960, 714, 6153, 4180, -1947, -1985, -1960, 4302, -2465, 1048, 1532, -1985, 3368, 2633, -2465, 3489, 6000, -2465, -2465, 4262, 775, 4267, 4268, 1861, 5949, -2425, 1423, 667, 1430, 1431, 648, -2425, 3834, 1019, 5669, 1568, 5343, 6146, 3490, 1440, 1568, -2005, -2498, 5679, 5680, 2997, 1856, -2005, 2850, -2466, 5885, 1605, 1129, 775, -1975, -2466, -2874, 2994, -2466, -2466, -1975, 5021, -2874, -2581, -1988, -2874, -2874, 946, 5707, 3275, -1988, 714, 714, 1209, 775, 1260, 714, 2108, 3276, 714, 2762, -1988, 2596, 1930, 5800, 2596, 3108, -1988, 2915, 4560, 2610, 867, 1602, 714, 1213, 3223, 6148, 4055, 775, 2611, 2593, -1919, 2113, 1602, 4641, 680, 1031, 714, 3207, 775, 4041, 714, 5911, 4451, 5913, 1031, 4337, 1393, 5917, 5918, 5164, 1833, 4043, 5032, 3463, 1533, 1142, 5327, 3366, 5705, 5791, 3769, 6240, 6241, 781, 2787, 2639, 2850, 781, 949, 781, 781, 6307, 1930, 3342, 1930, 2788, 6158, 961, 1825, 934, 2685, 1726, 6134, 5921, 1930, 961, 1878, 782, 961, 5632, 5254, 782, -2250, 782, 782, 6424, 2900, 6126, 2641, -2250, 4983, 2819, 665, -2642, 3368, 5646, 3466, -150, 682, 2679, 3571, 5453, 3277, -150, 1433, 1434, 3521, 3141, -624, 1232, 1540, 1930, 5822, 5113, 1480, 1930, 2681, 6065, 3821, 3410, 6414, 3464, 996, 5963, 1704, 5982, 3411, 1913, 2612, 1032, 3142, 5371, 661, 194, -2269, 3086, 1441, 4471, 1032, 2878, 781, -2269, 5362, 4293, 5211, 5212, 5213, 2113, 5215, 5216, 5217, 5218, 5219, 1901, 2908, 2878, 6453, 2850, 6114, 4094, 1930, 781, 2850, 5756, 782, 5996, 1448, 664, 2850, 4105, 6465, 2932, 996, 6452, 1930, 5983, 1956, 1902, 195, 2850, 3278, 2639, 4294, 5823, 662, 782, 4181, 1096, 4472, 2850, 2820, 2978, 3572, 1106, 6066, 1033, 5882, 5255, 194, 4127, 1233, 4467, 1482, 941, 1033, 1120, 2850, 4474, 2634, 5114, 3109, 2105, 2113, 1820, 2641, 1946, 5997, 1456, 3522, 3087, 3343, 4984, 5454, 4127, 1825, 1541, 714, 1986, 1534, 888, 5922, 2901, 2781, 3822, 6159, 3367, 5792, 2023, 6308, 5033, 6296, 2599, 1456, 195, 6363, 2789, 2639, 1271, 2033, 6242, 4127, 2677, 4592, 899, 4128, 4129, 4130, 1034, 3279, 6135, 5744, 3280, 4071, 1142, 2613, 2043, 1034, 5801, 2047, 715, 1535, 5328, 4182, 2860, 1983, 4532, 2676, 5834, 4042, 2641, 693, 2951, 694, 1051, 3223, 5597, 3590, 2790, -448, 863, 4044, 951, 3027, 951, 942, 4544, 951, 3143, 1862, 2949, 5115, 4632, 2952, 998, 1079, 1536, 5344, 5920, 1109, 698, 951, 1931, 3208, 2879, 3223, 191, 951, 3369, 2026, 4452, 3224, 4338, 3223, 5000, 6139, 2992, 5708, 3835, 6125, 2879, 1134, 1612, 958, 3011, 2594, 3021, 3022, 6053, 4561, 3065, 650, 926, 6058, 6059, 2880, 4642, 1430, 1431, 6383, 962, 2959, 5333, 1076, 998, 1233, 1077, 962, 3489, 6312, 962, 2880, 4183, -2642, 2998, 1428, 868, 1078, 1946, 1080, 2881, 6464, 1931, 2809, 1931, 2027, 951, 1233, 1205, 1537, 3281, 3490, 2652, 6470, 1931, 1440, 2881, 3261, 1862, 787, 788, 3110, 3020, 6001, 2999, 2877, 5561, 2615, 1263, 1142, 4095, 3460, 2628, 2628, 2608, 4142, 2995, 1142, 1142, 191, 4106, 2875, 5112, -2577, 6147, 3436, 2921, -2619, -1980, -2645, -2686, 1931, 5956, 3619, 2719, 1931, 668, 2875, 2104, 863, 1492, 2720, 1206, 2708, 1211, 2893, 1215, 6311, 1253, 6362, -2642, 2938, 1219, 6079, 5159, 5007, 3196, 1432, 1222, 1436, 1725, 5011, -2642, 5160, -1985, 787, 788, -2465, 1383, 1383, 5372, 863, 826, 3028, 4132, -2250, 826, 2894, 2972, 2973, 1931, 5381, 1039, 6149, -2425, 4932, 1040, 1932, 5959, 5116, 863, 4198, 3180, 6234, 1931, 863, 6395, 1542, 787, 788, 2065, 1383, 6244, 1843, 1443, 1444, 3282, 1848, -2466, 1849, -2498, 996, 3412, -1975, 1847, -2874, 2657, 2658, 2655, 787, 788, 1443, 1444, 1445, 4544, 3206, 6263, -2269, 939, 6097, 2109, -2581, 940, 2828, 3704, 2597, 1703, 3221, 6411, 4505, 1447, 4264, 1704, 1603, 1604, 4912, 1236, 1939, 1383, 1943, 2581, 4737, 4738, 2811, 1603, 1604, 2979, 2877, 944, 1954, 4133, 6294, 863, 2818, 5117, 1543, 4468, 71, 80, 83, 84, 175, 85, 86, 106, 863, 184, 124, 129, 159, 2877, 178, 185, 4970, 2728, 1838, 2828, 191, 2902, 5868, 863, 1525, 949, 4462, 4463, 1632, 1976, 2782, 4464, 5998, 1979, 961, 1236, 2828, 6199, 4605, 1039, 4586, 961, 863, 1040, 961, 4742, 6314, 951, 951, 4311, 3267, 4312, 1633, 2680, 2861, 4305, 4593, 180, 3064, 6210, 181, 1039, -150, -150, 4593, 1040, 5999, 3591, 2862, 4801, 2863, 183, 4886, 186, 6118, 1862, 5071, 2878, 1946, 826, 826, 1946, 5075, 2939, 1705, 4524, 4525, 2942, 2943, 4842, 3230, 6417, 4683, 4846, 2803, 3516, 959, 4283, 2027, 3054, 5530, 4229, 1383, 1383, 4723, 6124, 2578, 2579, 2580, 2581, 5743, 4686, 3082, 5074, 4104, 1496, 650, 1424, 951, 4683, 2877, 3300, 962, 6361, 1092, 998, 962, 1128, 962, 1880, 1547, 6317, 6318, 951, 1392, 1156, 2864, 6106, 1402, 4832, 3791, 4834, 4835, 6156, 3395, 2681, 3792, 3884, 714, 6188, 5749, 3981, 1930, 6117, 714, 2971, 6269, 863, 4139, 4140, 4141, 4142, 1224, 4519, 951, 951, 4584, 3686, 5872, 2576, 2577, 2578, 2579, 2580, 2581, 3736, 3489, -1947, 6190, 3489, 4137, 4138, 4139, 4140, 4141, 4142, 863, 863, 863, 6191, 951, 1129, 650, 6302, 650, 650, 6295, 1452, 714, 3490, 1825, 2783, 3490, 2981, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 709, 4926, 1614, 6428, 5414, 5843, 4342, 5514, 941, 3231, 6352, 4306, 3687, 4998, 3489, 951, 2878, 951, 951, 1624, 6235, 3610, 3489, 5818, 3696, 3124, 3664, 5183, 5415, 3982, 5652, 5128, 4093, 3241, 6025, 3416, 2877, 3490, 2879, 2878, 2838, 6397, 3793, 823, 1684, 3490, 3719, -1947, 3885, 2113, 1383, 3641, 3737, 6418, 4647, 1706, 1048, 6243, 1094, 3120, 1095, 3872, 1453, 3, 4, 1130, 6221, 1261, 3042, 2880, -1780, 3218, 3219, 803, 2877, 3396, 2004, 1923, 2004, 1615, 3397, 979, 863, 191, 802, 932, 3121, 1015, 980, 981, 982, 1924, 3665, 6098, 2881, 5813, 1988, 1707, 1990, 942, 1992, 934, 1994, 2877, 1996, 1997, 1998, 3738, 2040, 2918, 863, 2000, 2922, -1099, 2046, 4425, 2641, 3365, 1016, 1407, 3611, 4359, 5762, 1698, 1946, 1862, 3720, 3688, 1383, 760, 5763, 3398, 1708, 6024, 1625, 2875, 2064, 1225, 6296, 6442, 1454, 2842, 3013, 1455, 949, 4648, 2878, 2877, 1925, 15, 961, 943, 5942, 933, 961, 3055, 961, -2421, 1154, 5945, 2784, 2877, 926, 3549, 3182, 3621, 1699, 4541, 5953, 3739, 1383, 5955, 5490, 6319, 5543, 5093, 5941, 4105, 3620, 5970, 1922, 3159, 5958, 6350, 1154, 3417, 20, 6056, 5819, 6337, 2879, 2105, 3914, 3205, 6297, 3171, 5484, 3210, 5478, 1383, 1383, 1383, 3217, 1383, 3639, 3220, 5957, 3155, 3177, 5509, 1210, 1212, 1214, 2879, 4111, 1216, 1217, 1218, 5991, 5820, 1915, 2880, 1917, 1918, 1383, 1223, 3794, 5543, 2957, 3472, 4426, 1093, 4084, 1131, 3849, 1881, 5339, 3232, 3189, 3176, 714, -1947, 1157, 6360, 2880, 6271, 2881, 934, 1931, 3299, 3299, -1780, 1926, 3697, 6367, 3528, 2785, 4638, 3233, 3886, 5356, 1456, 3705, 2637, 3326, 863, 1514, 3983, 3795, 2881, 5461, 1132, 3706, 3347, 3316, 2878, 5515, 3844, 5208, 4342, 6174, 1514, 3984, 1383, 3200, 3399, 996, 2875, 3873, 1227, 3122, 6222, 3740, 6396, 4123, 807, 2824, 2686, 2687, 4927, 2691, 940, 940, 3796, 940, 3689, 710, 3614, 4094, 6192, 2875, 2844, 2772, 2878, 5764, 5864, 5814, 5416, 1626, 5462, 2879, 3157, 5858, 4649, 3837, 1927, 6426, 4375, 6272, 1383, 4688, 6252, 2773, 1383, 1383, 1133, 3170, 1134, 4227, 3172, 6279, 1135, 2878, 5094, 863, 863, 863, 2726, 5929, 1383, 5332, 2880, 944, 3887, 6002, 3262, 1515, 3264, 6443, 5300, 1627, 1700, 5723, 3271, 3081, 2954, 6108, 711, 1499, 3286, 3287, 1515, 826, 4124, 4125, 6223, 2881, 1457, 4144, 3943, 1039, 3310, 3072, 4276, 1040, 3260, 2878, 3448, 1408, 3209, 4978, 3330, 32, 3215, 3216, 1628, 935, 3345, 4650, 6175, 2878, 4460, 1458, 3077, 6224, 1452, 3554, 2815, 5139, 712, 1516, 713, 826, 3449, 4427, 951, 5724, 2875, 5457, 5725, 4175, 4176, 6003, 3741, 40, 1516, 5726, 1928, 863, 2849, 6273, 3742, 2845, 4870, 3743, 5140, 3432, 863, 1271, 4470, 951, 4127, 4376, -1124, 6252, 4128, 4129, 4130, 5479, 2879, -1947, 1496, 3201, 1496, 5727, 5173, 4428, 3529, -1947, 2772, 1432, -1947, 1461, 44, -1947, 1409, 5303, 998, 4507, 863, 1895, 5307, 826, 1701, 5309, 2917, 2917, 1257, 4689, 2917, 2880, 1825, 1965, 1453, 5758, 5854, 3202, 2879, 1525, 826, 1842, 4429, 863, 1525, 6044, 863, 3120, 1723, 5930, 5759, 3203, 1851, 5101, 3966, 4544, 2881, 4574, 48, 6257, -1781, 3610, 761, 4914, 1896, 5728, 5757, 2879, 1859, 2880, 951, 49, 4979, 1540, 3121, 1517, 1966, 4972, 5729, 3078, 40, 3925, 813, 2774, 680, 5748, 5139, 6233, 863, 3204, 1517, 5730, 3623, 2089, 2881, 50, 5621, 2875, 2880, 4284, 951, 951, 951, 951, 863, 2742, 5668, 1031, -1097, 2742, 1629, 2879, 1454, 5140, 762, 1455, 6252, 6055, 863, 44, 1525, 3000, 6176, 2881, 1525, 2879, 2777, 6177, 5931, 1383, 1383, 1383, 3744, 4696, 4888, 2875, 6274, 3073, 831, 1500, 2761, 814, 2880, 5088, 5133, 985, 986, 987, 988, 989, 990, 991, 992, 993, 2778, 1518, 2880, 3569, 682, 3158, 3611, 5065, 6178, 48, 2875, 1590, 5069, 2881, 40, 3610, 2692, 4690, 6257, 2695, 996, 996, 49, 3555, 3168, 4865, 3556, 2881, 4131, 4980, -711, 5092, 5130, 2766, 1541, 1987, 5141, 3624, 1989, 1519, 1991, 2975, 1993, 1520, 1995, 2767, 50, 35, 1999, 2944, 6310, 4132, 6195, 44, 2875, 1820, 1039, 1032, 5855, 3744, 1040, 684, 4753, 2768, 4754, 3530, 1246, 2696, 2875, 4377, 4378, 2030, 3226, -1704, 863, 5881, 2774, 1074, 1521, 1456, 1724, 2778, 3151, 40, 6168, 863, -1704, -1781, 1946, 4045, 194, 4541, -1704, 951, 951, 4575, 5760, 48, 1522, 1271, 4379, 1523, 4127, 5102, 6340, 1897, -3001, -3001, -3001, 951, 49, 3646, 3001, 1522, 3611, 6341, 1523, 1967, 858, 4996, 4942, -2449, 44, 1033, 5472, -175, 4285, 863, 2917, 6359, 2695, 2693, 6196, 2697, 50, 195, 815, 4133, 3489, 6257, 4898, -1704, 3489, 951, 951, 951, 951, 6203, 5731, 996, 3612, 5732, 863, 56, 4697, 4943, -175, 5678, 1247, 863, 1442, 3490, 3131, 6112, 5089, 3490, 48, 1524, 3520, 1198, 5297, 5566, 2779, 3227, -1704, 4046, 5962, 650, 2696, 49, 650, 1553, 4889, 2698, 5536, 1034, 693, 4863, 694, 4890, 962, 962, 3613, 3614, 835, 1457, 4891, 5948, 1590, -1124, 3797, 998, 998, 50, 2945, 962, 4866, 5537, 962, 2946, 1663, 1946, 697, 5538, 3755, 1877, 5969, 1898, 1474, 4755, 3198, 2850, 56, 951, 951, -1704, 834, 5539, 4899, 1968, 951, 2867, 863, 2851, 4892, -1704, 1826, 870, 2769, 1827, 3198, 1404, 3798, 1264, 5651, 1632, 3646, 3489, 2699, 2004, 1480, 3198, 1664, 4944, 5567, 3693, 951, 4893, 962, 3805, 191, 3214, 962, 962, 4864, 863, 863, 2868, 951, 1633, 3490, 3508, 3190, 3292, 3191, 863, 3192, 3799, 3193, 5675, 3194, 3717, 863, 6321, 3195, 863, 3131, 5790, 5683, 802, 3636, 4354, 802, 3251, 2698, 3999, 1079, 1383, 2601, 1383, 836, 3614, 5528, 5676, 1383, 1383, 4900, 191, 4365, 4541, 4901, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1475, 4687, 1979, 1383, 5593, 1383, 998, 1383, 1383, 1383, 1383, 1383, 1383, 3246, 1482, 1383, 1248, 1383, 1383, 4699, 1076, 1383, 4465, 1077, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 3451, 1078, 2699, 1080, 5540, 1383, 1383, 1383, 2742, 5459, 4968, 1665, 4355, 5086, 6381, 2602, 4711, 5340, 2742, 6116, 3838, 3839, 3840, 1383, 3717, 3235, 1249, -1704, 1250, 3570, 6289, 3498, 1483, 3754, 1142, 680, 1408, 4724, 4353, 760, 6440, 6463, 4728, 2954, 4133, 3800, 3731, 6399, 5483, 6115, 6133, 3801, 1862, 3250, 928, 6290, 4736, 5689, 6472, 15, 187, 949, 6454, 951, 949, 3492, 3666, 4466, 3993, 4171, 3729, 3781, 3730, 5470, 961, 961, 5627, 5940, 5629, 5779, 2112, 187, 1204, 2113, 6434, 2898, 3802, 5087, 4969, 961, 3882, 5341, 961, 2742, 2113, 1039, 20, 4545, 1466, 1040, 946, 29, 4727, 3925, 5690, 4669, 3828, 4732, 4733, 682, 1694, 3633, 2855, 1409, 2856, 4305, 925, 2639, 3806, 1881, 3489, 3489, 3499, 6140, -3001, 1257, 2915, 3844, 2639, 5691, 661, 1271, 3667, 4514, 4127, 1245, 1881, 35, 4128, 4129, 4130, 929, 961, 3490, 3490, 4548, 961, 961, 5692, 5973, 2641, 5441, 1695, 5693, 2925, 4682, 1696, 6141, 4794, 2928, 5541, 2641, 3929, 3930, 3931, 3932, 3728, 3934, 2924, 3803, 1383, 5449, 5542, 5451, 2619, 5694, -1704, 1672, 945, 5695, 2857, 6236, 930, 1979, 6422, 5442, 6425, 1697, 1419, -1704, 4469, 3772, 3962, 3773, 5696, -1704, 5432, 3777, 5433, 5434, 5435, 40, 4683, 5990, 3804, 3756, 4550, 5373, 1121, 4829, 3376, -474, 3377, 3759, 954, 5379, 3762, 2620, 4898, 4749, 4750, 4751, 4752, 5952, 1383, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 3003, 5914, 4506, 3378, 3009, 44, 5915, 2963, 1673, -1704, 1122, 4831, 4037, 6466, 2944, 1469, 938, 5675, 956, 4308, -3001, -3001, -3001, 4137, 4138, 4139, 4140, 4141, 4142, 4378, 1400, 5919, 6132, -3001, 1506, 977, 4254, 2964, -3001, 4254, 40, 5676, -1704, 1121, 6342, 1383, 4545, 3955, 1123, 48, 1674, 781, 4546, 2605, 4805, 4806, 693, 1675, 694, 4956, 5916, 1676, 49, 6313, 1979, 5697, 4547, 32, 3379, 6343, 4927, 4899, 1507, 4255, 2867, 782, 1508, 3037, 4617, 44, 1122, 1098, 5445, 1099, 1480, 1877, 50, 4553, 3048, -3001, 1481, 6201, 1632, -1704, 4548, 3917, 4549, 1632, 1124, 40, 1642, -474, 4927, -1704, 3066, 56, -1437, 4256, -1437, 978, 2868, 1509, 4132, 6323, 4255, 1501, 1633, 4255, 4587, 5698, 1511, 1633, 4848, 48, 3380, 3381, 3382, 3383, 1669, 3489, 1973, 3384, 3385, 4554, 4161, -150, 3489, 3386, 44, 4422, 4168, 3489, 1643, 1645, 3489, 4258, 3014, 2646, 4256, 4900, 4555, 4256, 3490, 4901, 1974, 4550, 5034, 1502, 3140, 3490, 5083, 6435, 1512, 4257, 3490, 1646, 4257, 3490, 1124, 2945, 1670, 5051, 1482, 3152, 2946, 1021, 1154, 3156, 3016, 56, 5035, 4423, 48, 6043, 4551, 2105, 4258, 5084, 3015, 4258, 3083, 3017, 1503, 1030, 5052, 49, 4223, 1513, 4133, 4025, 5856, 3736, 6205, 6206, 6436, 1671, 4067, 3175, 1154, 1038, 3113, 2650, 2850, 4407, 233, 4259, 4424, 1647, 4259, 50, 666, 3018, 1082, 1483, 2858, 4408, 3900, 5857, 758, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 56, 1383, 4026, 1677, 1985, -3001, 4927, 1827, 832, 4878, 40, 863, 1383, 5675, -1704, 1383, 4556, -1751, 714, 5783, 1635, 4068, 863, -1751, 1398, 1645, 4069, 6427, 4552, 3600, -1951, 3604, 3605, 4553, 4260, 996, -1951, 5676, 3603, 1711, 1084, 1678, 1715, 5784, -1958, 1679, 5884, 1646, 1089, 44, -1958, 5888, 5889, 3737, 863, 3387, 1383, 4315, 2035, 951, 1383, 1827, 1432, 1383, 2675, 1383, 3444, 3388, 1383, 3326, 3326, 1648, 1383, 1117, 3326, 4260, 4475, -1948, 4260, 4554, 1680, 2636, 1039, -1948, 1827, 5297, 1040, 1681, 4234, 4235, 5685, -1949, 1103, 48, -1952, 3491, 4555, -1949, 4343, 1647, -1952, 863, 863, -1950, -623, -1751, 49, 6300, 3738, -1950, 4254, -3001, 1383, 3360, 3597, 4225, 3326, 3326, 1443, 1444, 1125, 1383, 1383, 2576, 2577, 2578, 2579, 2580, 2581, 1649, 50, 4310, 1126, 4383, 1650, 863, 714, 1445, 3632, 1651, 1443, 1444, 2106, 3535, 5200, 3540, 2886, 4271, 2887, 56, 6438, 4196, 775, 6441, 775, 2953, -1751, 5974, 4281, 1447, 5207, 714, 2649, 3901, 775, 2650, 5082, 4791, 4949, 2676, 3739, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 1825, 3489, 4603, -1704, 1148, 802, 5324, 802, 4255, 714, 1653, 1648, 714, 6154, 4955, 5013, -1704, 4126, 5289, 6155, 4556, 1383, -1704, 5230, 3490, 2683, 1127, 6355, 1827, 4154, 5235, 5236, 650, 790, 1144, 962, 998, 962, 962, 790, 3532, 951, 4256, 5135, 863, 3186, 4654, 5167, 2650, 2628, 3735, 4655, 4655, 3573, 1142, 3576, -2824, 4257, 1655, 4541, -2824, 4346, 1622, 4885, 5870, 826, 4178, 1639, 1432, 1649, 2675, -1704, 5875, 5876, 1650, 187, -2417, 2849, 40, 1651, 4258, 1039, 1656, 1227, 1155, 1040, 4945, -2418, 4952, 1164, 3652, 863, 1039, 1165, 1227, 2953, 1040, 3663, 1432, -1703, 1461, 6288, 4913, 1658, -1704, 1189, 863, 6248, 29, 4259, 4209, 3197, -1703, 3740, 3198, 1171, 4930, 44, -1703, 1039, 1182, -2425, 2742, 1040, 1438, 1439, 3199, 4698, 863, 3198, 1653, 3825, 3380, 3381, 3382, 3383, 4590, 6198, 5304, 4153, 3238, 4155, 4156, 3239, 1199, 4562, 4417, 4319, 775, 863, 3447, 3618, 661, 1979, 1659, -1704, 649, 3465, 3467, 3468, 3902, 48, 826, 3452, 1227, -1704, 2650, -1703, 187, 925, 3025, 3026, 3541, 4971, 49, 2650, 1226, 4927, 1655, 5771, 2051, 3630, 56, 3489, 3631, 951, 3711, 3878, 951, 3712, 3879, 3, 4, 4017, 4316, 4317, 3198, 1432, 50, 2675, -1703, 4066, 1656, 3489, 2650, 1231, 3490, 4260, 40, 1235, 4075, 1142, 3903, 2650, 863, 863, 4330, 56, 3146, 5849, 3147, 6218, 4082, 1658, 4083, 2650, 3490, 2650, 4442, 3808, 1238, 3811, 3813, 4448, 1241, 3489, 4102, 3771, 3487, 3837, 4113, 1243, 4146, 2650, 3741, 2650, 4087, 44, 4088, 3064, 1244, -1703, 3742, 932, 4160, 3743, 3726, 2650, 3490, 4165, 1254, -1703, 4166, 1383, 1383, 1383, -1752, 4232, 4400, 1383, 2650, 4401, -1752, 949, 1659, 1256, 961, 951, 961, 961, 6400, 1257, 4533, 4405, 6122, 4433, 4406, 1255, 4434, 4503, 951, 48, 4434, 4214, 4626, 4215, 1383, 4627, 951, 4629, 4660, 5305, 4630, 4661, 49, 4774, 1258, 4059, 4775, 4061, 4062, 2849, 1265, 4184, -1704, 4185, 863, 4785, -1149, -1149, 4786, 933, 3915, 5153, 4797, 802, 4873, 2650, 50, 4874, 4879, 1259, 4884, 4880, 938, 3556, 187, 951, 3926, 5136, 5146, 4186, 3198, 4438, 3517, 3518, 5202, 6249, 3808, 2027, 5242, -1775, -1775, 2650, -1752, 1940, 6456, 1403, 951, 4875, 3948, 1944, 4614, 1406, 4615, 4455, 5483, 5279, 1267, 5335, 2650, 1955, 3556, 5359, 1410, 1958, 5360, 3489, 5076, 1961, 5077, 1963, 5575, 5366, 3966, 5576, 3198, 1971, 5367, 1443, 1444, 3198, 4056, 1977, 3351, 5368, 1980, 3354, 3198, 951, 3490, 951, 4216, 951, 4217, -1752, 3379, -1779, -1779, 1271, -1703, 4580, 4127, -1778, -1778, 934, 4128, 4129, 4130, 5485, 5522, 5558, 5486, 4661, 5559, 4929, 5560, 4931, 5580, 2650, 4934, 5581, 5590, 5644, 5645, 1979, 2004, 3944, 5596, 2742, 2681, 4600, 5598, 5718, 1412, 4600, 5719, 5738, 1411, 996, 3198, 6041, 5772, 4927, 5832, 5773, 3489, 5833, 5838, 6017, 6018, 1979, 3380, 3381, 3382, 3383, 1420, 5841, 5852, 4187, 4600, 5853, 1425, 5903, 5944, 4188, 5904, 2604, 5971, 3490, 6008, 5853, 6009, 4166, 6029, 2650, 5245, 6030, 5246, 6033, 650, 951, 1979, 962, 4692, 962, 962, 5804, 951, 5805, 4594, 1142, 1416, 1142, 6034, 1383, 4563, 2650, 4565, 1726, 1383, 1428, 6064, 6070, 6071, 3239, 3239, 3239, 6369, 6074, 6370, 926, 2650, 4573, 6075, 4576, 6076, 2650, 1435, 6077, 5548, 5549, 6104, 6170, 4780, 6105, 4600, 1466, 6185, -1692, 1825, 2650, 1449, 6187, 6200, 6214, 2650, 3198, 6215, 6238, 6287, 2112, 6239, 5846, 2113, 6320, 6365, 4277, 5853, 6366, 1383, 1383, 1383, 6122, 935, 1383, 6164, 6165, 6385, 4927, 926, 6386, 1426, 1383, 1383, 1383, 1383, 2681, 6393, 649, 6394, 4874, 1466, 2650, 6421, 1142, 1432, 6030, 2639, 1383, 4635, 4955, 1383, 1467, 1383, -3001, 6246, 4677, 6423, 6431, 6469, 2650, 6432, 6386, 923, 924, 6471, 1383, 1383, 6432, 6473, 1383, 187, 6386, 1436, 4825, 3599, 4827, 5288, 3489, 5291, 2641, 3607, 1451, 4847, 4132, 4850, 2721, 1478, 2724, 998, 4189, 1383, 1493, 1383, 1494, 1383, 1495, 1498, 1504, 4946, 1545, 3490, 4190, 1461, 1571, -2467, 1574, 1576, 1577, 1612, 1616, 1617, 1618, 1629, 1383, 1641, 1631, 4213, 1644, 1668, 3487, 863, 1685, 1686, 1702, 1713, 1712, 1716, 3649, 1721, 4705, 1722, 3299, 5357, 926, 1835, 1837, 4700, 1839, 2052, 1844, 5552, 863, 1850, 1855, 1858, 1860, 1865, 1868, 4927, 1870, 1862, 4177, 1879, 3326, 3326, 3326, 3326, 1884, 2061, 3326, 3326, 3326, 3326, 3326, 3326, 3326, 3326, 3326, 3326, 4133, 1885, 650, -137, 5180, 3491, 4252, 4219, 4220, 4221, 4252, 4266, 4252, 4252, 1887, 1888, 926, 3489, 4777, 1383, 949, 1890, 1892, 961, 1383, 961, 961, 1893, -3001, 4909, 1904, 2676, 1911, -3001, 1913, 1916, 1920, 213, 1929, 1383, 3490, 1934, 1935, 1936, 1938, 1941, 1942, 1945, 2102, 1946, 1953, 1957, 1959, 3491, 3326, 3326, 1960, 4298, 1962, 1964, 4301, 3491, 1969, 3540, 1970, 3693, 1972, 4966, 1975, 1978, 1981, 1982, 1984, 2001, 2032, 2039, 2041, 5070, 2048, 2044, 2589, -3000, 2089, 2049, -3001, 2056, 2057, 2058, 2059, 2060, 56, 2062, 2591, 3717, 5057, 2063, 792, 5796, 2064, 2066, 2067, 4838, 792, 2609, 1383, 4746, 2068, 2069, 2070, 2071, 2072, 2073, 2587, 2622, 2074, 2075, 2076, 2631, 6398, 2077, 2078, 2079, 2593, 2081, 3489, 2082, 3368, 2653, 951, 951, 2083, 2084, 2085, 2086, 2087, 2088, 2091, 2092, 2093, 4773, 2094, 2095, 2646, 2096, 2097, 2098, 2594, 3490, 2659, 5062, 2604, 2654, 2668, 2661, 2662, 2665, 2666, 2669, 2670, 2671, 2672, 2677, 1481, 1483, 1383, 2684, 2715, 2727, 3876, 2717, 2729, 2730, 938, 938, 2731, 938, 2732, 2748, 2750, 2749, 2675, 2751, -3000, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 4813, 2764, 2780, 2786, 2792, 2806, 2810, 2812, 2813, 2814, 2816, 2817, 2830, 2834, 2835, 2836, 2853, 2871, 2865, 2874, 2872, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 2869, 4411, 2854, 2873, 2883, 2875, 4277, 2885, 2889, 2890, 2884, 2909, 2895, 2896, 2888, -3000, 2899, 2923, -3001, 2940, 2933, 2905, 2947, 649, 2906, 863, 649, 2919, -3000, 2920, 2950, 2926, 1590, 2929, -3000, 2917, 2930, 2935, 2936, 2948, -3000, 2955, 2956, 2961, 2962, 2965, -3000, 2967, 2968, -3000, 5505, 2969, 2970, -3000, 2974, 2976, 2982, 2977, 2993, 2983, 5810, 2996, 3007, 3024, 3002, 3036, 3031, 3038, 3039, 3052, 3040, 3041, 3045, 3489, 649, 3046, 3053, 3047, 3057, 3049, 3058, 3050, 649, -3000, 3051, -3000, 3059, 3060, 3067, 3068, 3071, 5831, 675, 3084, 3076, 3095, 3490, 3099, 3103, 1665, 3100, 3112, 3115, 3118, 3119, 3487, 3128, 3139, 3487, 3145, 3161, 3149, 3132, 3163, 3164, 4995, -3000, 3236, 3165, 3166, 3211, 3136, 3154, 3179, -3001, 4037, 3248, 3267, 4048, 2113, 3414, 3356, 3222, 3272, 3346, 3313, 2576, 2577, 2578, 2579, 2580, 2581, 3373, 4058, 1383, 3394, 3352, 3392, 4063, 3420, 1383, 3435, 3440, 3419, 3455, 1456, 3487, 933, 3439, 3441, 3453, 951, 3438, 3454, 3487, 3456, 3497, -3000, 3457, 3458, 3462, -3000, 3470, 3509, 3471, 3526, 3511, -3000, 3533, 4090, 3534, 3510, 3545, 3489, 3326, 3546, 3512, 3492, 2112, 3489, 3548, 2113, 3565, 3574, 3579, 2114, 2115, 2116, 863, 863, 863, 3582, 1271, 3587, 3592, 4127, 3490, 3606, 3593, 4128, 4129, 4130, 3490, 2681, 3595, 863, 3622, 3627, 1400, 3162, 3643, 3629, 1404, 3644, 3645, 2639, 3655, 3169, 3668, 1383, 3673, 3700, 2640, 3674, 3694, 3577, 3702, -3000, 2112, 3701, 3598, 2113, 5466, 3707, 3727, 3637, 3749, 2004, 863, 863, 3718, 3710, 3728, 863, 3725, 3748, 1881, 3809, 2641, 3824, 3765, 3832, 3836, 3833, 934, 863, 5108, 5109, 3845, 2112, 3852, 5267, 2113, 3858, 3859, 2639, -3001, -3001, -3001, 3860, 3864, 3891, -3001, 3869, 3892, 3906, 5146, 3908, 3880, 3910, 3920, 3938, 3369, 3927, 3939, 3941, 3912, 3946, 3942, 3949, 5315, 3953, 3954, 3933, 3951, 3940, 2639, 3957, 2641, 3958, 3489, 3963, 3978, 2640, 5192, 5193, 5194, 5195, 5196, 3979, 3980, 951, 3988, 3989, 3990, 3992, -3000, 3994, 4008, 4011, 4014, 4010, 4016, 3490, 4019, 3214, 4680, 4020, 1979, 2641, 4021, 4620, 4034, 4022, 4023, 4038, 863, 4047, 4029, 4040, -3000, 4060, -3000, -3000, 4050, 4039, 4079, 1976, 5197, 863, 1943, 4028, 4024, 4052, 1233, 4077, 4078, 4080, 4081, 4092, 4097, 4099, 4624, 4109, -3000, 4112, 2642, 4657, 1383, 3290, 4195, 2643, 4084, 4811, -2242, 4159, 1383, 4101, 1383, 4162, 4179, 4193, 4244, 4230, 4203, 4174, 5322, -3000, 4273, -3000, -3000, 4210, 1383, 5439, 2644, 2306, 1383, 1383, 1383, 4103, 4114, 4115, 4119, 1383, 5258, 4279, 1383, 4288, -3001, 1383, 5873, 3837, 4121, 2650, 4122, 1383, -3001, 1383, 4123, 4204, 1383, -3001, 2645, 4236, 4145, 1383, 1383, 1383, 1383, 4150, 4206, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 4151, 4158, 1236, 1383, 1383, 1383, 2642, 4173, 4208, 4231, 187, 2643, 4238, 1383, 4253, 4286, 4292, 4269, 1383, 926, 4237, 4290, 1383, 4299, 2373, 4313, 4318, 2065, 4320, 4307, 1383, -3001, 4321, 1383, 4239, 1383, 4331, 4245, 4325, 2646, 4327, 4339, 4340, 4350, 4334, 4351, 4352, 4356, 4358, 4362, 4363, 1383, 4364, 4133, 1383, 1383, 4367, 187, 5319, 1383, 1383, 4370, 2645, 4368, 1383, 4385, 1383, 4817, 4386, 4374, 4388, 4394, 4396, 4404, 4395, 863, 863, 863, 4412, 4421, 4435, 4437, 4277, 4439, 4441, 4443, 5253, 4445, 4449, 2646, 4450, 3291, 4456, 4457, 1645, 1383, 4252, 4266, 4252, 4252, 4454, 1383, 4252, 1079, 4458, 4840, 4459, 4476, 4477, 3491, 4277, 4461, 4478, 3491, 191, 3344, 1646, 4479, 4480, 4855, 2646, 4483, 4486, 4481, 4488, 4818, 4819, 4820, 4821, 4482, 4484, 4492, 4490, 4495, 4499, 2648, 4497, 2991, 2994, 4515, 4485, 4487, 4937, 4511, 4489, 4491, 1383, 4501, 4430, 4502, 4432, 1076, 4508, 3968, 1077, 4512, 4513, 4529, 4518, 5354, 4523, 3540, 4531, 1383, 4566, 1078, 4571, 1080, 1647, 4947, 4572, 4581, 4578, 4582, 4585, 5377, 2783, 1548, 4589, 792, 4599, 792, 4600, 792, 4602, -3001, 4609, 4618, 4612, 792, 1220, 1221, 4619, 4622, 4623, 4639, 4653, 4625, 4656, 4671, 5505, 4663, 4659, 4665, 4672, 4673, 4674, 4675, 4676, 4693, 4694, 5450, 4695, 1549, 4701, 4948, 2648, 4702, 4928, 2004, 2849, 2004, 5417, 5418, 2004, 5420, 4936, 4714, 4703, 4704, 6280, 6281, 4706, 4678, 6283, 4707, 4708, 4949, 4709, 4710, 2051, 2572, 4720, 4725, 4960, 4719, 4494, 5574, 4721, 4726, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 4722, 1648, 4729, 4734, 5410, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4735, 4127, 4740, 1550, -2241, 4787, 4747, 4770, 4799, 5613, 4771, 4772, 4779, 4800, 4803, 4826, 4814, 4516, -3001, 4828, 4836, 4843, 4830, 4844, 4851, 4841, 5009, 4277, 4839, 4857, 2576, 2577, 2578, 2579, 2580, 2581, 3374, 4852, 4858, 4859, 1551, 4867, 4856, 4861, 4870, 1649, 4872, 4876, 4887, 2572, 1650, 4895, 4905, 4908, 4906, 1651, 4907, 4915, -3001, -3001, -3001, 2576, 2577, 2578, 2579, 2580, 2581, 5012, 4916, 4918, 4919, 2953, 4922, 4937, 2954, 4950, 3641, 649, 4961, 3771, 4941, 649, 5054, 4940, 4958, 3969, 4974, 5468, 4973, 4975, 1552, 4977, 4976, 4987, 4988, 4989, 5004, 5022, 4990, 4991, 4992, 5028, 5003, 5001, 5010, 5023, 1653, 792, 5031, 1271, 5047, 5048, 4127, 3649, 4947, 951, 4128, 4129, 4130, 5050, 5053, 5063, 5064, 5079, 5066, 5067, 5068, 5090, 5100, 951, 5105, 1383, 5111, 5119, 1554, 5125, 4795, 5126, 863, 5154, 5132, 5131, 5138, 5148, 5098, 5155, 5897, 5165, 5899, 5171, 5172, 5688, 5174, 5175, 1655, 2849, 3326, 4658, 5176, 3487, 5179, 5178, 3223, 3487, 5184, 5190, 5198, 1556, 5204, 5205, 863, 5214, 5222, 5221, 5223, 3491, 3926, 792, 1656, 5224, 5226, 5227, 3442, 3808, 5225, 5233, 649, 5228, 5234, 5239, 5244, 5250, 5147, 5256, 5259, 5265, 5260, -2243, 5282, 1658, 5261, 4951, 863, 5308, 4370, 5278, 5293, 5317, 5298, 5301, 3326, 5294, 35, 5312, 1383, 1383, 5320, 3970, 5321, 5589, 5331, 5334, 1645, 5336, 5338, 1383, 1559, 5342, 5362, 5374, 5589, 6022, 5375, 5361, 5378, 1560, 2004, 863, 5376, 4715, 5380, 5386, 5385, 2827, 1646, 5387, 5399, 5402, 5408, 5735, 1659, 5406, 5412, 5421, 863, 5422, 1562, 5413, 5429, 5430, 5431, 5908, 5440, 996, 5443, 1563, 5436, 5447, 3487, 5448, 1564, 5455, 5458, 5464, 5465, 5467, 6052, 5471, 5463, 5473, 5477, 5157, 5482, 5487, 5489, 5639, 5493, 5494, 5496, 5498, 5500, 3971, 4748, 5502, 5501, 1383, 1647, 5511, 3198, 5519, 5517, 5527, 2112, 5557, 5526, 2113, 5532, 5553, 5546, 2114, 2115, 2116, 1383, 5547, 5563, 5565, 2875, 4769, 5564, 5573, 5582, 5658, 6088, 6090, 5588, 4132, 5577, 1565, 5592, 2638, 1383, 3972, 5595, 5617, 5614, 5620, 5628, 5643, 5630, 2639, 5631, 5635, 5647, 5648, 5649, 5681, 2640, 5703, 5650, 5661, 5655, 5089, 5662, 5666, 5653, 5672, 5673, 5674, 1383, 5714, 5709, 1383, 5711, 5717, 5722, 5741, 5721, 5742, 5746, 1383, 1383, 5753, 2641, 5751, 5769, 5774, 5780, 1383, 1383, 5782, 5781, 5788, 1383, 5797, 5798, 5802, 5803, 1383, 1648, 5816, 1383, 1383, 5824, 5815, 5830, 3374, 5842, 1383, 5844, 5846, 5848, 863, 863, 863, 863, 5847, 5850, 5860, 5867, 5877, 5885, 4133, 5869, 5879, 5871, 5923, 649, 649, 5891, 650, 5928, 5938, 4252, 5925, 5932, 5946, 3491, 5936, 5951, 3479, 5964, 3491, 5965, 5966, 3491, 650, 5967, 3808, 5960, 5314, 5968, 5978, 1383, 5977, 998, 5979, 1649, 5985, 5980, 5989, 5987, 1650, 5995, 1383, 6006, 6020, 1651, 4298, 6019, 6005, 6010, 1383, 5231, 3540, 6021, 3326, 6045, 6048, 6026, 6036, 6046, 6049, 2953, 4211, 187, 6050, 1271, 6063, 802, 4127, 6081, 6067, 6086, 4128, 4129, 4130, 6093, 6096, 6099, 6101, 2642, 6107, 6103, 6217, 6110, 2643, 3326, 6111, 3487, 3487, 6127, 6128, 6129, 5272, 6130, 2849, 1383, 1653, 6137, 6144, 5839, 6138, 6145, 5994, 6143, 6150, 6151, 6152, 2644, 2306, 5370, 6157, 6162, 6166, 6167, 6169, 5337, 6173, 6181, 6183, 6189, 6202, 6209, 792, 6219, 5323, 5325, 6094, 792, 792, 6211, 6097, 6098, 6227, 6228, 6245, 2645, 6229, 6247, 6028, 6264, 6265, 6266, 6267, 6268, 1655, 6270, 6278, 3771, 6282, 6291, 6292, 6293, 6286, 6304, 6306, 2656, 6336, 6339, 3771, 6334, 6372, 6330, 6275, 6276, 2663, 6324, 2664, 6335, 1656, 6331, 2667, 6348, 6338, 6351, 6353, 1383, 6371, 2673, 2373, 6374, 6373, 6375, 1383, 6376, 6391, 6401, 5812, 4305, 5901, 1658, 6412, 6437, 6416, 2646, 6403, 6296, 2647, 6404, 6418, 6429, 5817, 6430, 6445, 6446, 6449, 951, 6451, 6455, 5688, 6457, 1468, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 951, 6462, 5840, 6460, 5896, 6468, 5776, 3008, 1683, 2104, 4228, 2630, 3782, 5910, 1575, 1682, 3699, 4380, 1142, 4964, 1659, 4957, 6212, 3871, 3823, 4528, 5700, 6080, 6305, 649, 5752, 1383, 4953, 5107, 4954, 5446, 649, 5734, 4360, 4323, 4018, 649, 6204, 5637, 649, 5310, 6301, 650, 792, 6102, 6100, 6226, 4366, 6316, 2849, 5475, 5129, 5158, 792, 5137, 6060, 4132, 5099, 2004, 3889, 3890, 3991, 4962, 4588, 2648, 4398, 3997, 5124, 3998, 5740, 5469, 1667, 4628, 3926, 5892, 5893, 5182, 5981, 4004, 6368, 6467, 4005, 5715, 4006, 4007, 6057, 951, 4009, 3948, 6447, 4534, 4012, 6231, 4013, 5166, 5660, 4015, 1220, 1221, 5887, 6069, 5663, 756, 809, 1072, 4679, 3487, 5110, 2024, 3326, 5199, 3075, 5863, 3487, 863, 5201, 6364, 3918, 3487, 3551, 5168, 3487, 3138, 3150, 4314, 863, 5777, 996, 4645, 5975, 3167, 1143, 4498, 1183, 3820, 4993, 4444, 6251, 6402, 2763, 792, 5185, 4133, 1413, 792, 792, 5186, 3848, 3496, 6354, 4881, 4277, 6081, 5326, 5859, 5862, 3134, 5657, 2651, 6054, 4054, 837, 838, 996, 5229, 5480, 5659, 4275, 2712, 4287, 2572, 3506, 6186, 3033, 6038, 4248, 2711, 4833, 1383, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 1383, 4849, 5594, 1383, 3355, 2600, 1383, 1383, 1383, 2716, 4241, 5829, 5828, 4882, 5702, 4242, 6389, 6172, 6284, 6027, 4243, 6415, 5811, 4781, 3415, 6039, 4207, 652, 6040, 3418, 4072, 1383, 1383, 3332, 1271, 1383, 4201, 4127, 3847, 4199, 5993, 4128, 4129, 4130, 1142, 6420, 4192, 187, 4108, 3430, 4730, 2660, 1464, 1383, 3494, 0, 6035, 1383, 6037, 0, 0, 5273, 0, 1383, 0, 0, 0, 3491, 0, 0, 0, 5314, 914, 0, 1383, 0, 5612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4928, 0, 0, 1383, 0, 0, 0, 0, 5452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6171, 0, 0, 5615, 0, 4928, 998, 951, 0, 951, 0, 0, 649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 792, 0, 0, 3968, 0, 962, 998, 0, 6433, 0, 0, 0, 0, 0, 0, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 0, 0, 0, 1548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 962, 0, 0, 0, 0, 0, 0, 0, 3487, 0, 0, 0, 5098, 1549, 5896, 0, 0, 863, 652, 0, 0, 0, 863, 0, 0, 0, 0, 652, 971, 0, 0, 2849, 0, 0, 0, 652, 0, 971, 652, 0, 0, 863, 0, 0, 0, 5147, 5346, 0, 5754, 0, 4132, 971, 2102, 0, 0, 0, 0, 0, 0, 951, 863, 4928, 3326, 3326, 6410, 0, 3326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1550, 0, 71, 80, 83, 84, 175, 85, 86, 106, 0, 184, 124, 129, 159, 0, 178, 185, 0, 1383, 0, 0, 191, 5382, 6448, 2102, 0, 0, 4326, 0, 5739, 0, 649, 0, 0, 0, 1383, 1551, 0, 0, 1383, 0, 1383, -2764, 926, 5398, 0, 6410, 0, 3374, 0, 0, 649, 0, 6357, 6358, 1383, 0, 0, 180, 4133, 5765, 181, 0, 650, 4205, 0, 1383, 0, 0, 0, 5837, 6410, 183, 0, 186, 1142, 0, 1383, 0, 0, 0, 3969, 0, 649, 1383, 0, 1552, 0, 3273, 3274, 5767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3311, 3312, 4387, 0, 4389, 0, 0, 0, 3487, 0, 0, 0, 5426, 0, 961, 0, 0, 0, 0, 0, 863, 4240, 0, 0, 4246, 1554, 0, 1383, 3487, 0, 0, 0, 0, 3358, 0, 0, 0, 0, -2764, 0, 0, 0, 0, 1383, 0, 2112, 0, 0, 2113, 1383, 1383, 0, 0, 0, 951, 951, 951, 951, 1556, 961, 3487, 0, 0, 0, 0, 0, 0, 996, 0, 0, 0, 0, 3479, 0, 0, 0, 925, 0, 0, 0, 3479, 0, 2639, 0, 0, 1383, 0, 0, 0, -3001, 0, -2764, 0, 650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, -2764, 0, 0, 0, 1558, 0, -2764, 0, 0, 0, 0, 2641, -2764, 1559, 863, 0, 649, 3491, -2764, 0, 0, -2764, 1560, 0, 0, -2764, 0, 0, 0, 5510, 2827, 0, 6356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 863, 1562, 4493, 0, 0, 0, 0, 0, 4500, 0, 1563, 0, 0, -2764, 0, 1564, 0, 0, 0, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 1383, 0, 0, 0, 0, 0, 0, 0, 3971, 0, 0, 6392, 1383, 4804, 0, 0, 0, 0, -2764, 0, 0, 1383, 1383, 1383, 0, 649, 0, 2004, 3487, 5954, 0, 0, 0, 3808, 0, 0, 1383, 0, 0, 0, 0, 0, 0, 0, 1565, 1383, 0, 1383, 3972, 1383, 5612, 0, 0, 0, 0, 0, 4928, 0, 0, -3001, 0, 0, 0, 1383, -3001, 0, 0, 0, 0, -2764, 0, 0, 2004, -2764, 998, 0, 0, 0, 0, -2764, 0, 6208, 1383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4494, 0, 0, 0, 0, 0, 0, 0, 3487, 0, 0, 0, 0, 0, 0, 0, -3001, 0, 0, 2004, 2004, 0, 0, 0, 0, 0, 0, 0, 971, 0, 0, 0, 0, 0, 6042, 0, 0, 0, 0, 0, -2764, 0, 0, 0, 0, 0, 0, 971, 0, 0, 951, 0, 0, 971, 0, 6258, 6259, 0, 0, 0, 0, 5937, 0, 0, 6123, 971, 0, 4662, 0, 4664, 0, 4666, 0, 0, 2646, 0, 0, 0, 0, 0, 0, 971, 0, 0, 0, 0, 652, 0, 0, 649, 0, 914, 0, 0, 0, 652, 971, 0, 0, 807, 0, 0, 652, 0, 971, 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1383, 0, 914, 971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, -2764, 1383, 0, 0, 0, 5837, 0, 0, 0, 0, 0, 1383, 0, 0, 0, 0, 0, 0, 0, 0, 3540, 0, 0, 0, -2764, 0, -2764, -2764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 962, 0, -3001, 3487, 0, 0, 0, 0, 0, -2764, 0, 0, 0, 971, 0, 951, 0, 0, 0, 0, 0, 0, 2004, 0, 0, 0, 0, 0, 0, -2764, 649, 0, -2764, -2764, -2764, 652, 652, 0, 0, 0, 0, 971, 0, 0, 0, 0, 0, 0, 2849, 0, 0, 0, 0, 0, 0, 1383, 0, 0, 0, 187, 0, 0, 0, 0, 0, 4928, 971, 0, 652, 0, 0, 0, 0, 962, 962, 6261, 0, 0, 0, 1383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 914, 0, 0, 187, 0, 2112, 0, 191, 2113, 0, 2004, 2004, 6277, 0, 0, 0, -3001, 0, 1383, 1383, 3487, 0, 1383, 652, 0, 6285, 0, 0, 2576, 2577, 2578, 2579, 2580, 2581, 0, 6232, 971, 0, 0, 0, 0, 0, 2639, 0, 6253, 649, 0, 6254, 0, -3001, 0, 0, 6329, 951, 0, 0, 3459, 3461, 6255, 0, 6256, 0, 3469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2641, 0, 0, 0, 0, 0, 0, 2030, 6123, 951, 951, 0, 2030, 2030, 4928, 0, 0, 0, 0, 3515, 3515, 0, 0, 0, 0, 0, 0, 0, 6458, 6459, 0, 0, 650, 0, 0, 0, 0, 0, 0, 1383, 0, 0, 0, 0, 0, 191, 0, 6347, 0, 0, 0, 0, 3487, 0, 0, 1383, 0, 0, 0, 0, 0, 3540, 0, 0, 0, 0, 4298, 0, 0, 652, 652, 1821, 4807, 1383, 961, 0, 0, 0, 971, 0, 0, 792, 6253, 652, 0, 6254, 0, 0, 914, 652, 0, 0, 0, 652, 0, 652, 6255, 0, 6256, 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6377, 6378, 650, 6382, 0, 0, 914, 0, 5837, -3001, 0, 0, 0, 1383, -3001, 0, 5976, 0, 0, 1578, 0, 0, 0, 951, 0, 1579, 4928, 0, 0, 0, 649, 0, 0, 2102, 0, 0, 0, 0, 961, 961, 1687, 0, 0, 0, 0, 0, 6347, 0, 0, 0, 652, 0, 652, 652, 0, 0, 0, 191, 0, 3651, 187, 0, 0, 0, 0, -3001, -2766, 0, 0, 0, 1581, 1383, 650, 0, 0, 0, 0, 0, 0, 6032, 0, 0, 3479, 0, 0, 0, 3479, 0, 650, 0, 0, 0, 0, 971, 6253, 0, 0, 6254, 0, 0, 0, 0, 0, 0, 0, 962, 962, 0, 6255, 6461, 6256, 6347, 3487, 0, 0, 0, 0, -136, 0, 0, 0, 652, 0, 2646, 0, 1688, 0, 1582, 6347, 0, 0, 0, 0, 0, 1583, 0, 0, 0, 1584, 1, 649, 0, 0, 0, 0, 0, 649, 0, 792, 0, 2, 0, 3, 4, 971, 0, 792, 0, 0, 792, 0, 0, 0, 914, 6333, 971, 1585, -2766, 0, 0, 5, 792, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 971, 0, 0, 0, 0, 971, 0, 0, 0, 0, 7, 0, 8, 9, 0, 0, 0, 652, 0, 10, 1586, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 13, -3001, -2766, 0, 3487, 0, 0, 0, 0, 0, 3487, 0, 0, 0, 0, -2766, 0, 14, 0, 0, 15, -2766, 0, 652, 0, 6380, 0, -2766, 0, 0, 0, 0, 0, -2766, 0, 16, -2766, 17, -2783, 0, -2766, 18, 0, 0, 0, 0, 0, 0, 19, 649, 0, 0, 652, 652, 652, 0, 652, 20, 0, 21, 0, 0, 0, 0, 1689, 0, 22, 0, 1588, 0, -2766, 0, 0, 5189, 0, 0, 5191, 652, 1589, 0, 0, 0, 0, 0, 23, 0, 0, 0, 1590, 0, 0, 0, 0, 0, 0, 6380, 0, 0, 0, 0, 1591, 24, 0, -2766, 971, 5206, 0, -3001, 0, 0, 0, 6444, 971, 971, 0, 0, 0, 0, 0, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 961, 961, 0, 3487, 0, 0, 0, 0, 652, 0, 0, -2783, 0, 0, 1690, 0, 0, 1593, 1594, 0, 0, 0, 0, 0, 0, 0, -2766, 25, 26, 0, -2766, 0, 0, 27, 0, 0, -2766, 1821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 1691, 0, 0, 0, 0, 652, 0, 0, 0, 652, 652, 0, 0, 0, 0, -2783, 0, 0, 29, 0, 0, 0, 0, 792, 0, 652, 3479, 0, -2783, 0, 0, 914, 0, 0, -2783, 2112, 0, 0, 2113, 0, -2783, 0, 2114, 2115, 2116, 0, -2783, -2766, 0, -2783, 0, 0, 187, -2783, 0, 0, 0, 0, 0, 0, 0, 0, 2638, 0, 0, 30, 0, 0, 0, 0, 0, 0, 2639, 1596, 0, 0, 0, 0, 0, 2640, 31, 0, 0, -2783, 0, 0, 32, 33, 0, 34, 0, 0, 0, 0, 35, 0, 0, 0, 914, 0, 36, 0, 0, 37, 0, 2641, 807, 0, 0, 0, 38, 0, 0, 0, 0, 0, -2783, 39, 40, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 5345, 0, 0, 0, -2766, 0, 0, 914, 43, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 0, 2113, 0, 0, 0, 0, 0, 44, 0, 0, -2766, 0, -2766, -2766, 0, 0, 0, -2783, 0, 0, 0, -2783, 914, 0, 0, 0, 0, -2783, 45, 0, 0, 0, 0, 0, -2766, 2639, 0, 0, 5383, 5384, 46, 0, -3001, 0, 6388, 0, 47, 0, 0, 0, 0, 48, 0, 0, -2766, 0, 0, -2766, -2766, -2766, 0, 0, 0, 0, 49, 0, 0, 0, 2641, 0, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 0, 0, 0, 0, 0, 0, -2783, 50, 971, 51, 52, 53, 54, 55, 0, 0, 0, 4226, 0, 792, 2644, 2306, 0, 652, 652, 652, 56, 0, 0, -136, 0, 0, 0, 0, 0, 4233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3479, 0, 2645, 0, 0, 3479, 5427, 5428, 3479, 0, 0, 0, 0, 4808, 0, 0, 0, 0, 0, 807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 187, 0, 0, 0, 0, 0, 0, 0, 0, 4282, 4282, 0, 0, 0, 0, 2373, 0, 0, 0, -2783, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3001, 2646, 0, 0, 2647, -3001, 0, 0, 0, 0, 0, 0, 0, 0, -2783, 0, -2783, -2783, 971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 914, 0, 0, 0, 718, 0, 0, 0, -2783, 0, 0, 914, 0, 806, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 1821, 2113, 0, -3001, 914, -2783, 0, 0, -2783, -2783, -2783, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 5521, 0, 0, 5523, 5524, 0, 0, 971, 0, 0, 0, 2639, 0, 0, 0, 971, 0, 0, -3001, 0, 2648, 2112, 0, 5529, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 0, 0, 914, 0, 0, 2646, 0, 0, 0, 0, 0, 652, 2641, 0, 652, 0, 2638, 914, 0, 0, 914, 914, 0, 0, 652, 652, 2639, 971, 971, 0, 0, 0, 0, 2640, 0, 0, 0, 0, 0, 652, 0, 971, 652, 0, 0, 0, 0, 0, 0, 0, 0, 914, 914, 0, 971, 971, 0, 0, 0, 2641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5276, 0, 0, 0, 0, 0, 0, 0, 652, 0, 2572, 0, 652, 652, 0, 0, 0, -3001, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 0, 0, 0, 0, 4100, 0, 0, 0, 0, 0, 0, 187, 0, 0, -3001, 652, 0, 652, 0, -3001, 0, 1578, 652, 652, 0, 0, 0, 1579, 0, 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 1687, 0, 0, 652, 0, 652, 0, 652, 652, 652, 652, 652, 652, 0, 0, 652, 0, 652, 652, 2642, 0, 652, 0, 0, 2643, 0, 0, 0, -3001, 0, 1581, 0, 0, 0, 0, 0, 0, 914, 652, 652, 652, 0, 0, 0, 0, 0, 0, 2644, 2306, -3001, 0, 0, 0, 0, 0, 0, 652, 0, 1821, 0, -136, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 0, 0, 0, 0, 2645, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1688, 2646, 1582, 0, 792, 0, 0, 0, 2, 1583, 3, 4, 0, 1584, 0, 1578, 0, 0, 0, 0, 0, 1579, 0, 0, 0, 0, 0, 4577, 5, 0, 0, 0, 0, 2373, 0, 0, 0, 0, 6, 0, 0, 1585, 0, 0, 0, 0, 0, 0, 2646, 0, 7, 2647, 8, 9, 3479, 0, 0, 0, 0, 10, 0, 11, 0, 0, 0, 0, 1581, 0, 0, 0, 0, 0, 0, 0, 12, 0, 13, 1586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 15, -3001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, 0, 0, 0, 18, 652, 0, 0, 0, 0, 1582, 19, 0, 0, 0, 0, 0, 1583, 0, 0, 20, 1584, 21, 0, 0, 0, 0, 0, 0, 22, 0, 2648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1689, 0, 0, 23, 1588, 1585, 0, 0, 0, 0, 0, 0, 0, 5865, 1589, 652, 0, 0, 0, 0, 24, 0, 1578, 0, 1590, 0, 0, 792, 1579, 0, 0, 0, 0, 0, 0, 0, 1591, 0, 0, 0, 0, 1586, 0, 1580, 0, 0, -3001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 5902, 0, 0, 0, 652, 0, 1581, 25, 26, 0, 0, 3779, 0, 27, 1593, 1594, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 2572, 0, 28, 0, 0, 0, 0, 0, 187, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 3780, 29, 4116, 0, 0, 4117, 0, 0, 1689, 0, 0, 0, 1588, 0, 0, 0, 0, 1582, 0, 0, 0, 0, 1589, 0, 1583, 0, 0, 0, 1584, 0, 0, 0, 1590, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1591, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 1585, 0, 0, 0, 1073, 0, 0, 31, 0, 0, 0, 5992, 0, 32, 33, 0, 34, 1596, 0, 0, 0, 35, 2102, 0, 0, 0, 0, 36, 0, 0, 37, 0, 2112, 1593, 1594, 2113, 1586, 38, 0, 2114, 2115, 2116, 0, 0, 39, 40, 0, 0, 0, 0, 0, 0, 41, 0, 1141, 718, 42, 0, 0, 2638, 0, 0, 0, 0, 0, 1595, 0, 43, 0, 2639, 1548, 0, 0, 0, 2112, 0, 2640, 2113, 0, 0, 0, 2114, 2115, 2116, 44, 0, 652, 652, 652, 652, 652, 652, 652, 652, 652, 0, 652, 0, 0, 0, 0, 2638, 2641, 0, 0, 45, 1549, 652, 0, 0, 652, 2639, 0, 0, 0, 0, 1587, 46, 2640, 0, 1588, 0, 0, 47, 0, 0, 0, 0, 48, 0, 1589, 0, 0, 0, 0, 0, 0, 0, 1596, 0, 1590, 49, 0, 0, 2641, 0, 0, 0, 0, 0, 1240, 652, 1591, 0, 0, 652, 0, 0, 652, 0, 652, 0, 0, 652, 3479, 50, 187, 652, 0, 1550, 1262, 0, 0, 0, 0, 0, 0, 0, 1386, 0, 0, 1395, 1141, 1399, 56, 0, 0, -136, 1821, 0, 652, 0, 0, 0, 1592, 0, 0, 1593, 1594, 0, 0, 0, 0, 0, 0, 792, 1551, 652, 0, 0, 0, 0, 0, 0, 0, 0, 652, 652, 0, 0, 2642, 0, 0, 0, 1578, 2643, 0, 0, 0, 1595, 1579, 0, 0, 792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 0, 0, 0, 792, 2644, 2306, 914, 0, 0, 0, 914, 914, 1552, 0, 0, 792, 0, 971, 2642, 0, 0, 971, 0, 2643, 0, 971, 187, 0, 0, 0, 0, 1581, 2645, 0, 971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644, 2306, 0, 971, 0, 0, 652, 0, 0, 0, 1554, 0, 1596, 0, 1548, 0, 0, 652, 0, 914, 652, 0, 652, 652, 0, 914, 0, 0, 2645, 2373, 0, 0, 0, 0, 0, 0, 0, 971, 0, 0, 0, 0, 1582, 1556, 2646, 1220, 1221, 2647, 0, 1583, 1549, 0, 0, 1584, 0, 0, 0, 971, 971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2373, 914, 0, 0, 0, 0, 0, 0, 0, 0, 1585, 0, 0, 0, 0, 2646, 0, 35, 2647, 2826, 0, 0, 1558, 1821, 971, 1141, 0, 1821, 0, 0, 0, 1559, 0, 0, 0, 0, 0, 0, 0, 0, 1560, 0, 1550, 0, 0, 0, 1586, 2112, 2827, 0, 2113, 971, 6299, 1821, 2114, 2115, 2116, 971, 0, 0, 0, 1562, 792, 0, 0, 0, 0, 0, 0, 2648, 1563, 971, 0, 0, 2638, 1564, 0, 0, 971, 1551, 0, 971, 0, 0, 2639, 0, 0, 971, 0, 0, 0, 2640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 0, 0, 0, 2648, 0, 971, 0, 792, 0, 2641, 0, 0, 971, 0, 0, 0, 0, 0, 1689, 0, 0, 1552, 1588, 0, 1565, 0, 971, 0, 0, 0, 0, 0, 1589, 0, 0, 0, 0, 0, 0, 0, 971, 0, 1590, 0, 0, 1821, 0, 0, 0, 0, 0, 971, 0, 0, 1591, 0, 0, 0, 0, 0, 0, 1553, 187, 0, 0, 1554, 0, 2572, 0, 652, 652, 652, 0, 0, 0, 652, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 187, 0, 0, 0, 0, 4118, 0, 0, 0, 1717, 1555, 1556, 1593, 1594, 0, 652, 914, 0, 0, 0, 0, 2029, 2572, 0, 1821, 0, 0, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2642, 0, 0, 0, 1718, 2643, 0, 4169, 1141, 0, 0, 0, 1557, 0, 0, 2112, 35, 652, 2113, 0, 0, 1558, 2114, 2115, 2116, 0, 0, 0, 2644, 2306, 1559, 0, 0, 0, 0, 0, 0, 0, 0, 1560, 0, 0, 2638, 0, 0, 0, 0, 1561, 0, 914, 0, 0, 2639, 914, 0, 0, 2645, 0, 0, 2640, 1562, 0, 0, 2112, 0, 0, 2113, 0, 0, 1563, 2114, 2115, 2116, 6328, 1564, 0, 0, 1596, 0, 0, 1548, 0, 0, 0, 0, 2641, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 0, 0, 2107, 0, 2373, 2639, 0, 0, 0, 0, 0, 2110, 2640, 0, 0, 0, 0, 0, 0, 2646, 0, 1549, 2647, 0, 0, 0, 0, 2598, 0, 0, 0, 0, 0, 0, 0, 0, 1565, 0, 2641, 0, 0, 0, 0, 0, 971, 0, 1821, 792, 1141, 0, 0, 2617, 2618, 792, 0, 0, 1141, 1141, 792, 0, 0, 914, 0, 971, 0, 0, 0, 0, 0, 0, 971, 0, 0, 0, 652, 0, 914, 652, 0, 652, 652, 914, 1578, 0, 1550, 5396, 5397, 0, 1579, 652, 5400, 5401, 0, 911, 652, 2112, 0, 0, 2113, 187, 0, 0, 2114, 2115, 2116, 0, 0, 0, 2642, 0, 0, 0, 914, 2643, 0, 2648, 0, 0, 0, 0, 0, 1551, 2638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639, 1581, 0, 0, 2644, 2306, 0, 2640, 0, 0, 0, 0, 652, 652, 652, 0, 0, 652, 0, 0, 0, 0, 0, 0, 2642, 652, 652, 652, 652, 2643, 0, 0, 2645, 2641, 0, 0, 1821, 0, 0, 1552, 0, 652, 1821, 0, 652, 0, 652, 0, 0, 0, 0, 0, 2644, 2306, 0, 0, 0, 0, 1582, 652, 652, 0, 0, 652, 0, 1583, 0, 0, 0, 1584, 0, 0, 0, 0, 0, 2373, 0, 0, 0, 1553, 2645, 0, 0, 1554, 652, 0, 652, 0, 652, 2572, 2646, 0, 0, 2647, 0, 0, 0, 1585, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 652, 0, 0, 0, 4110, 0, 0, 0, 1619, 1556, 0, 0, 0, 0, 0, 0, 2373, 0, 0, 0, 2112, 971, 0, 2113, 0, 0, 1586, 2114, 2115, 2116, 0, 2646, 0, 0, 2647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2642, 0, 0, 2638, 0, 2643, 1620, 0, 0, 0, 35, 0, 0, 2639, 652, 1558, 0, 652, 0, 0, 2640, 0, 0, 0, 1559, 0, 0, 0, 2644, 2306, 2958, 652, 0, 1560, 0, 2648, 652, 0, 2966, 0, 0, 1621, 0, 0, 0, 0, 2641, 0, 0, 0, 0, 652, 0, 0, 1562, 0, 2645, 0, 0, 0, 0, 0, 1689, 1563, 0, 652, 1588, 0, 1564, 0, 0, 0, 0, 652, 0, 0, 1589, 0, 0, 0, 0, 0, 0, 2648, 0, 914, 1590, 0, 914, 0, 914, 0, 0, 0, 0, 914, 0, 0, 1591, 2373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 971, 0, 0, 2646, 0, 652, 2647, 0, 0, 0, 0, 0, 0, 0, 1565, 0, 0, 0, 0, 0, 971, 0, 0, 971, 0, 0, 914, 0, 0, 2807, 2572, 0, 1593, 1594, 914, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 4530, 2642, 0, 0, 0, 0, 2643, 914, 0, 0, 0, 0, 2808, 652, 1578, 0, 0, 0, 0, 0, 1579, 0, 0, 0, 0, 0, 2572, 0, 0, 2644, 2306, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 792, 2648, 4716, 0, 0, 0, 1821, 1821, 1821, 0, 0, 2645, 0, 0, 0, 0, 0, 0, 0, 1581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 0, 0, 0, 0, 0, 0, 0, 1596, 914, 0, 914, 0, 3096, 0, 0, 0, 3101, 0, 971, 0, 0, 0, 2373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2646, 0, 0, 971, 0, 0, 0, 1582, 0, 0, 0, 0, 0, 0, 1583, 0, 0, 0, 1584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2572, 0, 0, 0, 0, 0, 0, 0, 1585, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 4790, 0, 0, 2112, 0, 0, 2113, 0, 0, 914, 2114, 2115, 2116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1586, 0, 0, 0, 0, 0, 0, 0, 2638, 0, 0, 971, 0, 0, 2648, 0, 652, 0, 2639, 0, 0, 0, 652, 0, 0, 2640, 0, 0, 0, 0, 0, 914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 0, 2113, 0, 0, 2641, 2114, 2115, 2116, 0, 0, 0, 1821, 914, 0, 0, 0, 0, 971, 0, 971, 3285, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 0, 0, 971, 1587, 971, 2639, 0, 1588, 0, 0, 0, 0, 2640, 0, 0, 0, 0, 1589, 0, 0, 0, 0, 0, 0, 652, 0, 0, 1590, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2641, 1591, 0, 0, 0, 2572, 0, 0, 0, 911, 0, 0, 914, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 914, 911, 0, 792, 0, 0, 0, 0, 0, 2891, 0, 0, 1593, 1594, 0, 0, 0, 0, 0, 0, 2642, 0, 914, 0, 0, 2643, 2112, 0, 0, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 0, 0, 0, 0, 971, 0, 0, 2892, 0, 0, 0, 2644, 2306, 0, 0, 0, 2638, 0, 0, 0, 0, 0, 0, 971, 0, 0, 2639, 971, 0, 0, 0, 0, 0, 2640, 0, 0, 0, 0, 0, 2645, 0, 913, 2112, 0, 0, 2113, 0, 2642, 971, 2114, 2115, 2116, 2643, 902, 0, 0, 0, 0, 0, 2641, 0, 0, 0, 0, 652, 0, 0, 914, 0, 2638, 0, 0, 652, 0, 652, 2644, 2306, 0, 0, 2639, 1596, 0, 2373, 0, 0, 0, 2640, 0, 652, 0, 0, 0, 652, 652, 652, 0, 0, 2646, 0, 652, 2647, 0, 652, 2645, 0, 652, 0, 911, 0, 0, 0, 652, 2641, 652, 0, 0, 652, 0, 0, 0, 914, 652, 652, 652, 652, 0, 0, 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 0, 0, 0, 652, 652, 652, 0, 0, 914, 2373, 0, 0, 0, 652, 0, 0, 0, 0, 652, 0, 1821, 0, 652, 0, 2646, 0, 0, 2647, 0, 0, 652, 0, 0, 652, 0, 652, 0, 6078, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 0, 0, 0, 652, 0, 0, 652, 652, 2648, 0, 0, 652, 652, 0, 0, 0, 652, 0, 652, 0, 2644, 2306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2642, 0, 652, 2645, 0, 2643, 0, 0, 652, 0, 0, 0, 0, 0, 0, 0, 652, 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, 2648, 2644, 2306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 911, 0, 0, 0, 0, 0, 2373, 0, 0, 0, 0, 911, 0, 652, 0, 0, 2645, 0, 0, 0, 0, 2646, 0, 0, 2647, 0, 0, 911, 0, 2572, 652, 0, 0, 0, 0, 0, 914, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 4897, 0, 0, 0, 0, 0, 0, 0, 2373, 0, 0, 971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2646, 0, 0, 2647, 0, 0, 0, 0, 0, 0, 1578, 652, 0, 0, 0, 0, 1579, 0, 0, 2572, 0, 0, 0, 0, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 4921, 0, 2648, 2112, 0, 0, 2113, 0, 0, 1821, 2114, 2115, 2116, 0, 1821, 914, 1821, 0, 0, 0, 1581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639, 0, 1821, 914, 0, 0, 0, 2640, 0, 0, 3437, 0, 0, 0, 0, 2648, 2112, 0, 0, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 0, 0, 911, 0, 0, 0, 2641, 0, 0, 0, 1582, 0, 0, 0, 0, 0, 2638, 1583, 0, 0, 0, 1584, 971, 0, 0, 971, 2639, 0, 0, 0, 0, 0, 0, 2640, 0, 0, 0, 0, 0, 0, 0, 2572, 0, 0, 0, 0, 0, 0, 0, 1585, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2641, 0, 0, 0, 5127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1586, 0, 0, 0, 652, 0, 0, 0, 0, 2572, 0, 0, 0, 0, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 3030, 971, 971, 0, 0, 914, 0, 0, 0, 0, 2642, 0, 971, 0, 0, 2643, 0, 0, 1141, 652, 652, 0, 0, 0, 0, 0, 0, 0, 0, 971, 0, 0, 0, 0, 0, 0, 0, 0, 2644, 2306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2616, 1689, 914, 0, 0, 1588, 0, 914, 652, 652, 0, 0, 0, 2642, 0, 1589, 2645, 0, 2643, 652, 0, 0, 0, 0, 1399, 1590, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6408, 0, 1591, 0, 0, 0, 2644, 2306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2373, 971, 0, 0, 1821, 0, 0, 0, 0, 0, 2645, 0, 0, 0, 0, 2646, 0, 0, 2647, 0, 3635, 0, 0, 1593, 1594, 0, 0, 0, 0, 0, 652, 0, 0, 0, 0, 6408, 0, 0, 0, 0, 913, 0, 911, 0, 0, 0, 0, 652, 0, 0, 969, 1399, 902, 2373, 0, 1595, 0, 1578, 0, 1005, 6408, 0, 0, 1579, 0, 652, 913, 0, 2646, 0, 0, 2647, 0, 1027, 0, 1399, 0, 0, 902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1578, 0, 652, 0, 0, 652, 1579, 0, 0, 0, 0, 0, 0, 652, 652, 0, 914, 1581, 911, 0, 2648, 652, 652, 0, 0, 0, 652, 0, 0, 0, 0, 652, 0, 0, 652, 652, 0, 1596, 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, 3814, 0, 0, 1581, 3818, 0, 0, 0, 0, 0, 0, 911, 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, 652, 0, 0, 2648, 1582, 652, 0, 0, 652, 652, 0, 1583, 0, 0, 0, 1584, 652, 0, 0, 3851, 0, 3851, 911, 3851, 3851, 0, 0, 652, 3851, 3851, 3851, 0, 3851, 3851, 3851, 652, 0, 0, 1582, 0, 0, 0, 0, 1585, 0, 1583, 0, 0, 913, 1584, 0, 0, 0, 0, 0, 0, 2572, 0, 0, 0, 902, 0, 914, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 971, 0, 1585, 5240, 1586, 652, 0, 0, 0, 0, 0, 3928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2572, 0, 3956, 0, 1586, 0, 914, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 5277, 971, 2112, 0, 0, 2113, 914, 0, 0, 2114, 2115, 2116, 0, 971, 0, 0, 0, 0, 0, 0, 0, 0, 719, 0, 0, 0, 0, 2794, 1689, 652, 0, 0, 1588, 0, 0, 0, 652, 0, 0, 2639, 0, 0, 1589, 0, 0, 0, 2640, 0, 971, 0, 0, 0, 1590, 0, 0, 0, 0, 0, 0, 0, 0, 1736, 1689, 0, 1591, 2795, 1588, 0, 0, 0, 0, 0, 2641, 0, 0, 0, 1589, 0, 722, 914, 913, 0, 0, 0, 0, 911, 1590, 0, 0, 0, 0, 913, 902, 0, 0, 723, 911, 0, 1591, 0, 0, 0, 0, 902, 0, 652, 3826, 913, 0, 1593, 1594, 0, 911, 1056, 0, 0, 0, 0, 0, 902, 0, 652, 0, 0, 0, 0, 1821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2796, 0, 0, 4344, 3827, 0, 1593, 1594, 971, 0, 0, 0, 0, 726, 0, 652, 0, 0, 0, 0, 0, 0, 727, 0, 0, 0, 0, 0, 0, 911, 0, 0, 0, 0, 0, 728, 0, 0, 4345, 0, 0, 2797, 0, 0, 911, 0, 0, 911, 911, 0, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 914, 0, 914, 0, 0, 0, 0, 1059, 0, 0, 0, 0, 0, 0, 0, 0, 1596, 911, 911, 0, -3001, -3001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 1097, 0, 0, 0, 0, 0, 1097, 0, 0, 0, 0, 0, 0, 0, 2645, 0, 1596, 0, 1097, 0, 0, 0, 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, 913, 732, 0, 652, 0, 0, 652, 0, 0, 652, 652, 652, 902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2112, -3001, 1141, 2113, 0, 0, 0, 2114, 2115, 2116, 652, 652, 0, 0, 652, 0, 2646, 0, 0, 0, 0, 2798, 0, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 652, 0, 0, 0, 652, 2639, 0, 0, 0, 0, 652, 0, 2640, 0, 652, 0, 0, 0, 0, 0, 914, 652, 0, 0, 0, 213, 2799, 0, 0, 737, 0, 0, 0, 0, 652, 0, 0, 652, 2641, 911, 0, 0, 971, 0, 971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1063, 0, 0, 2800, 0, 0, 0, 0, 0, 652, 741, 0, 0, 0, 0, 0, 0, 742, 0, 0, 743, 0, 0, 2648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 914, 971, 0, 0, 0, 0, 744, 1578, 0, 0, 0, 652, 0, 1579, 1065, 0, 0, 0, 0, 0, 0, 746, 0, 0, 1066, 0, 0, 0, 0, 748, 0, 0, 0, 0, 0, 658, 1141, 2801, 0, 0, 0, 707, 658, 0, 2802, 0, 0, 759, 0, 658, 0, 1821, 0, 0, 0, 658, 652, 812, 1581, 0, 0, 0, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 753, 0, 0, 0, 0, 874, 874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644, 2306, 2572, 0, 0, 0, 0, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 1582, 2747, 652, 0, 0, 914, 2645, 1583, 4403, 0, 0, 1584, 0, 902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 652, 0, 0, 1585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2373, 0, 0, 0, 652, 0, 0, 0, 652, 0, 652, 0, 0, 0, 0, 2646, 0, 4453, 2647, 2747, 0, 0, 0, 0, 652, 0, 1586, 0, 0, 0, 0, 902, 652, 0, 0, 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, 913, 0, 0, 953, 0, 0, 0, 957, 0, 0, 0, 0, 902, 0, 0, 1000, 0, 0, 1002, 0, 0, 1007, 1008, 0, 1011, 0, 1014, 4496, 0, 1020, 0, 1022, 0, 913, 0, 0, 0, 0, 0, 0, 0, 652, 0, 0, 0, 902, 1689, 914, 0, 0, 1588, 2648, 914, 914, 0, 0, 0, 652, 0, 0, 1589, 0, 0, 652, 652, 971, 0, 0, 0, 2112, 1590, 0, 2113, 0, 0, 3851, 2114, 2115, 2116, 971, 0, 0, 1591, 0, 0, 0, 0, 4527, 4527, 0, 0, 0, 0, 0, 0, 0, 2638, 4543, 0, 652, 0, 0, 1141, 0, 1141, 0, 2639, 652, 0, 0, 1821, 0, 0, 2640, 0, 1736, 1736, 1736, 0, 0, 0, 0, 0, 0, 4415, 0, 0, 1593, 1594, 0, 0, 0, 0, 0, 0, 652, 0, 0, 0, 2641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4598, 0, 0, 0, 0, 0, 0, 2572, 0, 4416, 0, 0, 0, 0, 914, 914, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 5281, 0, 0, 0, 0, 0, 4634, 1141, 0, 652, 1821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, 0, 0, 652, 652, 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 652, 1821, 0, 913, 914, 0, 0, 0, 1596, 652, 0, 652, 0, 652, 913, 902, 0, 0, 0, 0, 652, 0, 0, 0, 0, 0, 902, 652, 0, 0, 913, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 0, 902, 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644, 2306, 0, 0, 0, 0, 904, 1548, 0, 0, 1821, 0, 0, 971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 2645, 0, 0, 0, 0, 0, 0, 902, 0, 0, 913, 0, 0, 913, 913, 1549, 0, 0, 0, 0, 0, 0, 902, 0, 0, 902, 902, 0, 0, 0, 0, 0, 0, 0, 0, 911, 0, 0, 652, 911, 911, 0, 0, 2373, 913, 913, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 902, 902, 2646, 0, 0, 2647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4792, 1550, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 652, 0, 0, 0, 0, 911, 0, 0, 0, 0, 0, 911, 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 652, 1551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 652, 0, 1736, 0, 0, 911, 0, 0, 0, 0, 0, 1050, 2648, 971, 0, 0, 1736, 0, 0, 1736, 0, 0, 1087, 1552, 0, 0, 1091, 0, 0, 0, 0, 0, 0, 1104, 1105, 0, 0, 1111, 0, 1115, 1116, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 1138, 652, 0, 0, 902, 0, 0, 0, 0, 1553, 0, 652, 0, 1554, 0, 905, 0, 0, 1151, 652, 652, 0, 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1179, 0, 1181, 0, 0, 0, 1636, 1556, 0, 0, 0, 0, 1197, 0, 0, 0, 0, 652, 652, 0, 0, 652, 0, 0, 2112, 2572, 0, 2113, 0, 0, 0, 2114, 2115, 2116, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 658, 0, 5551, 1637, 0, 0, 2638, 35, 0, 0, 0, 0, 1558, 971, 0, 0, 2639, 0, 0, 0, 0, 1559, 0, 2640, 0, 0, 0, 0, 0, 0, 1560, 4543, 0, 0, 0, 3006, 0, 652, 1638, 0, 0, 0, 0, 652, 0, 0, 0, 0, 0, 2641, 0, 1562, 0, 0, 0, 0, 0, 0, 0, 4999, 1563, 652, 0, 0, 0, 1564, 0, 0, 652, 0, 0, 0, 0, 0, 5014, 0, 0, 911, 5015, 0, 5016, 874, 0, 0, 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1565, 0, 0, 0, 5056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 652, 0, 3851, 0, 0, 914, 0, 3851, 0, 0, 911, 652, 0, 0, 911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 652, 0, 1539, 2642, 0, 0, 0, 1821, 2643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644, 2306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3085, 652, 652, 0, 0, 0, 0, 0, 3102, 0, 0, 0, 0, 0, 0, 2645, 3006, 0, 652, 0, 0, 0, 1821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1720, 0, 0, 652, 652, 0, 5161, 0, 0, 4543, 0, 0, 0, 0, 0, 1821, 0, 911, 0, 0, 0, 0, 0, 0, 0, 1841, 2373, 0, 0, 3160, 0, 0, 911, 0, 0, 0, 0, 911, 0, 0, 1853, 2646, 1854, 0, 2647, 0, 0, 0, 0, 0, 0, 0, 1857, 0, 0, 0, 3006, 0, 0, 1867, 0, 0, 0, 0, 0, 0, 0, 0, 911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5210, 5210, 5210, 5210, 0, 5210, 5210, 5210, 5210, 5210, 0, 0, 0, 0, 0, 0, 0, 1919, 0, 1921, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 904, 0, 0, 0, 0, 2648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1736, 0, 0, 0, 0, 0, 904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, 658, 0, 658, 0, 658, 0, 658, 658, 658, 0, 0, 0, 0, 658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2025, 0, 0, 0, 0, 5290, 0, 5292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 0, 2113, 0, 0, 2572, 2114, 2115, 2116, 0, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 2638, 5562, 0, 0, 0, 0, 0, 0, 0, 0, 2639, 0, 0, 0, 0, 0, 0, 2640, 719, 0, 0, 0, 0, 3252, 0, 0, 0, 0, 3547, 0, 0, 0, 2747, 3553, 0, 0, 0, 904, 0, 0, 902, 0, 0, 2641, 902, 902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 911, 0, 0, 911, 0, 911, 0, 0, 0, 0, 911, 0, 0, 0, 722, 3253, 0, 907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 723, 0, 913, 0, 0, 0, 0, 0, 902, 0, 905, 0, 0, 0, 902, 0, 0, 0, 1056, 2112, 0, 911, 2113, 0, 0, 0, 2114, 2115, 2116, 911, 0, 0, 0, 0, 0, 0, 905, 0, 0, 0, 874, 0, 3254, 0, 0, 0, 2638, 0, 0, 913, 0, 0, 0, 0, 911, 726, 2639, 0, 0, 0, 0, 902, 0, 2640, 727, 0, 0, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 728, 0, 0, 5424, 5425, 0, 3255, 0, 0, 0, 0, 0, 2641, 0, 0, 0, 3851, 0, 3851, 3851, 3851, 2644, 2306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 904, 1059, 0, 0, 0, 0, 0, 0, 0, 0, 0, 904, 0, 2112, 0, 0, 2113, 2645, 0, 0, 2114, 2115, 2116, 0, 911, 0, 911, 904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3256, 2638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639, 2805, 5476, 0, 0, 0, 0, 2640, 0, 0, 2373, 732, 0, 0, 0, 0, 0, 0, 0, 0, 905, 0, 0, 0, 0, 2646, 0, 0, 2647, 0, 0, 0, 0, 2641, 0, 0, 0, 0, 0, 0, 0, 5504, 0, 0, 0, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1736, 0, 0, 0, 911, 2903, 0, 0, 2644, 2306, 0, 0, 0, 0, 0, 0, 5210, 0, 0, 0, 0, 0, 0, 213, 3257, 0, 0, 737, 0, 0, 0, 0, 913, 0, 0, 0, 2645, 0, 0, 0, 908, 0, 0, 0, 902, 0, 0, 0, 911, 0, 0, 0, 0, 2648, 0, 1063, 0, 0, 3258, 0, 0, 0, 0, 0, 0, 741, 904, 0, 0, 0, 0, 0, 742, 0, 0, 743, 911, 0, 0, 2373, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 0, 0, 0, 2646, 744, 0, 2647, 0, 0, 0, 0, 0, 1065, 0, 2747, 0, 0, 0, 2747, 746, 2644, 2306, 1066, 0, 905, 0, 902, 748, 0, 0, 902, 0, 0, 0, 0, 905, 0, 0, 0, 0, 0, 0, 3259, 0, 0, 0, 0, 0, 2645, 0, 0, 905, 0, 911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2572, 753, 0, 0, 0, 0, 0, 911, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 5572, 2373, 0, 0, 0, 0, 4543, 911, 0, 2648, 0, 0, 0, 0, 0, 0, 2646, 0, 0, 2647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3034, 902, 0, 0, 913, 0, 0, 0, 3542, 913, 3851, 0, 0, 0, 0, 0, 902, 0, 0, 5701, 0, 902, 0, 0, 0, 0, 3558, 0, 0, 0, 3561, 0, 0, 0, 3564, 3070, 0, 0, 0, 0, 913, 0, 0, 0, 0, 910, 0, 911, 0, 0, 0, 0, 902, 0, 0, 0, 0, 0, 3583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2648, 0, 0, 2572, 0, 0, 905, 0, 0, 0, 0, 3135, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 3625, 0, 0, 5634, 0, 0, 0, 0, 911, 3153, 0, 0, 0, 0, 904, 0, 0, 0, 0, 0, 1097, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 911, 0, 3173, 0, 3174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3183, 0, 3184, 0, 0, 0, 3684, 0, 658, 0, 658, 0, 658, 0, 658, 0, 658, 0, 0, 0, 658, 0, 0, 0, 0, 0, 0, 0, 0, 904, 0, 0, 2572, 3713, 0, 0, 0, 0, 0, 3722, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 3732, 5665, 0, 0, 3243, 0, 0, 1097, 0, 0, 3745, 0, 0, 907, 0, 0, 3750, 904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3763, 0, 0, 907, 0, 0, 3766, 0, 0, 0, 0, 0, 0, 3774, 904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3789, 0, 0, 0, 0, 0, 0, 1141, 0, 0, 0, 5912, 0, 0, 3815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1097, 911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2747, 0, 0, 3553, 0, 3553, 0, 0, 0, 0, 2747, 0, 902, 0, 0, 902, 0, 902, 0, 0, 0, 0, 902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 905, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 902, 0, 0, 0, 0, 0, 0, 0, 902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 907, 911, 2747, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 902, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 0, 0, 0, 0, 905, 0, 911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639, 0, 0, 0, 0, 0, 0, 2640, 0, 0, 0, 0, 0, 904, 0, 0, 0, 0, 0, 905, 0, 0, 0, 0, 904, 0, 0, 0, 0, 0, 0, 0, 913, 2641, 913, 0, 0, 0, 0, 0, 904, 0, 0, 0, 902, 0, 902, 0, 0, 0, 0, 0, 905, 0, 0, 0, 0, 0, 1141, 0, 0, 0, 6084, 908, 6085, 0, 0, 0, 6091, 6092, 0, 0, 4033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 4049, 0, 0, 904, 0, 0, 0, 4033, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 904, 0, 0, 904, 904, 907, 0, 0, 0, 0, 0, 0, 0, 0, 911, 0, 907, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 907, 902, 904, 904, 0, 0, 0, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 1736, 0, 0, 0, 0, 0, 1736, 0, 0, 0, 0, 911, 0, 0, 0, 913, 911, 0, 0, 0, 2644, 2306, 0, 0, 0, 0, 0, 902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3553, 0, 0, 0, 0, 2645, 0, 0, 0, 0, 0, 0, 902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 905, 0, 0, 0, 2373, 0, 0, 0, 0, 0, 0, 905, 0, 0, 0, 0, 0, 0, 0, 2646, 0, 0, 2647, 0, 913, 0, 0, 905, 0, 0, 0, 0, 0, 0, 0, 0, 902, 0, 0, 0, 0, 904, 0, 0, 0, 910, 3553, 0, 0, 0, 0, 0, 907, 0, 0, 0, 0, 0, 902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 910, 0, 0, 0, 0, 0, 0, 0, 0, 902, 905, 0, 0, 0, 0, 0, 0, 911, 0, 0, 0, 0, 0, 0, 0, 905, 0, 0, 905, 905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2648, 0, 0, 0, 0, 1141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 905, 905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 913, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4328, 0, 0, 0, 0, 0, 0, 913, 911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 910, 902, 0, 0, 0, 0, 0, 2572, 3543, 3544, 0, 0, 0, 0, 913, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 902, 3559, 3560, 5667, 3562, 3563, 0, 0, 0, 3566, 3567, 0, 0, 0, 0, 0, 0, 911, 0, 0, 0, 0, 0, 0, 3578, 0, 0, 0, 3581, 0, 0, 0, 3584, 3585, 905, 0, 3588, 3589, 6409, 911, 0, 0, 0, 3594, 0, 2598, 0, 0, 0, 6413, 0, 0, 0, 0, 0, 3609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4413, 0, 3626, 0, 0, 0, 0, 3628, 0, 0, 907, 0, 0, 0, 0, 0, 0, 0, 6439, 0, 0, 0, 3634, 0, 0, 0, 3640, 0, 908, 0, 0, 0, 6409, 0, 0, 0, 0, 3650, 0, 0, 3654, 0, 3656, 3659, 3661, 0, 0, 911, 0, 3669, 3672, 0, 0, 0, 0, 0, 0, 6409, 0, 3685, 5290, 0, 0, 0, 0, 3695, 0, 0, 0, 3698, 0, 0, 910, 0, 0, 0, 0, 907, 0, 0, 0, 3708, 3709, 910, 2747, 0, 3714, 0, 0, 0, 0, 0, 3723, 3724, 0, 0, 902, 0, 0, 910, 0, 0, 0, 0, 0, 0, 3733, 0, 0, 3734, 0, 0, 0, 0, 0, 0, 3746, 3747, 907, 0, 0, 0, 3751, 0, 0, 0, 0, 0, 0, 0, 0, 4509, 0, 0, 3758, 0, 0, 3761, 0, 0, 0, 0, 3764, 0, 0, 0, 0, 0, 3767, 3768, 0, 907, 0, 0, 0, 0, 3776, 0, 0, 0, 3778, 0, 0, 0, 3785, 3786, 3787, 3788, 911, 3790, 0, 0, 0, 0, 0, 0, 0, 0, 3553, 0, 0, 0, 0, 3816, 3817, 0, 3819, 0, 0, 0, 902, 0, 0, 0, 0, 0, 0, 3829, 3830, 3831, 0, 0, 0, 0, 0, 0, 3553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 902, 0, 0, 0, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, 0, 3883, 0, 910, 0, 0, 0, 0, 0, 3907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, 2112, 0, 0, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 911, 0, 3006, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 4681, 0, 3987, 0, 4685, 2639, 0, 0, 0, 0, 0, 0, 2640, 0, 0, 0, 907, 0, 0, 0, 913, 4001, 0, 4003, 0, 0, 0, 907, 0, 908, 0, 904, 902, 0, 0, 904, 904, 0, 2641, 0, 0, 0, 0, 907, 0, 0, 0, 0, 0, 0, 911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, 3553, 0, 0, 908, 0, 2747, 0, 0, 0, 0, 0, 0, 902, 0, 0, 0, 0, 902, 0, 0, 0, 0, 0, 904, 0, 0, 0, 0, 0, 904, 907, 0, 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 907, 0, 0, 907, 907, 0, 4065, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 904, 0, 0, 907, 907, 0, 0, 0, 0, 0, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 0, 0, 0, 0, 0, 0, 911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644, 2306, 0, 0, 0, 0, 910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 912, 0, 0, 0, 0, 902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 912, 2373, 0, 910, 0, 0, 0, 0, 0, 0, 905, 0, 0, 0, 905, 905, 2646, 0, 0, 2647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 907, 0, 0, 0, 0, 0, 0, 908, 910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 4910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 911, 0, 905, 908, 0, 911, 911, 0, 905, 0, 910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 904, 0, 0, 0, 0, 0, 902, 0, 0, 0, 0, 0, 0, 2648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 905, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 908, 908, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 912, 902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 904, 908, 908, 0, 904, 0, 0, 0, 902, 0, 0, 0, 0, 911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4329, 5036, 0, 0, 5039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4336, 0, 0, 0, 4336, 2572, 0, 0, 0, 4347, 4348, 4349, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 5706, 913, 0, 0, 4361, 0, 0, 0, 911, 0, 0, 0, 0, 902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4390, 4391, 4392, 4393, 910, 0, 0, 0, 0, 0, 0, 0, 904, 0, 0, 910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 904, 0, 0, 0, 910, 904, 0, 5121, 0, 0, 0, 4414, 0, 4418, 4419, 4420, 0, 0, 0, 0, 0, 0, 0, 908, 3006, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 904, 0, 905, 0, 0, 0, 0, 1578, 0, 0, 0, 0, 0, 1579, 0, 0, 0, 0, 0, 0, 1645, 0, 910, 0, 0, 0, 0, 0, 0, 0, 5508, 0, 913, 0, 0, 0, 0, 910, 0, 0, 910, 910, 1646, 0, 902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4033, 0, 910, 910, 0, 0, 905, 0, 0, 0, 905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, 0, 1647, 0, 0, 4504, 0, 0, 0, 0, 0, 0, 0, 0, 4510, 0, 0, 0, 0, 0, 0, 0, 0, 1582, 0, 0, 0, 0, 0, 0, 1583, 0, 0, 0, 1584, 0, 0, 0, 0, 0, 4520, 4521, 0, 0, 0, 4522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1585, 0, 0, 912, 0, 4564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, 0, 0, 905, 0, 902, 0, 1648, 0, 0, 0, 1586, 0, 0, 0, 0, 0, 0, 905, 912, 0, 0, 0, 905, 0, 0, 0, 0, 0, 0, 0, 0, 4601, 0, 0, 0, 910, 4607, 0, 0, 0, 0, 0, 4613, 0, 0, 0, 0, 0, 0, 0, 0, 912, 0, 905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3553, 1649, 0, 0, 0, 0, 1650, 0, 0, 4652, 0, 1651, 902, 904, 0, 0, 904, 0, 904, 0, 0, 0, 0, 904, 0, 0, 0, 1652, 0, 0, 0, 1588, 0, 0, 0, 0, 0, 0, 4667, 0, 4668, 1589, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 1590, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 0, 0, 1653, 1591, 0, 904, 0, 0, 0, 0, 0, 0, 0, 904, 0, 0, 2638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639, 907, 0, 0, 0, 907, 907, 2640, 0, 0, 0, 0, 904, 0, 0, 0, 0, 0, 0, 1654, 0, 0, 1593, 1594, 1655, 0, 0, 0, 0, 0, 0, 0, 5393, 2641, 3553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5403, 0, 902, 0, 1656, 0, 0, 0, 0, 0, 1657, 0, 0, 0, 0, 0, 907, 0, 0, 0, 0, 0, 907, 0, 0, 1658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 904, 0, 904, 0, 0, 912, 0, 0, 911, 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, 0, 0, 0, 907, 0, 0, 0, 0, 0, 0, 1659, 0, 0, 912, 0, 0, 0, 1596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 0, 905, 0, 0, 905, 0, 905, 0, 0, 0, 0, 905, 0, 0, 0, 0, 0, 0, 912, 0, 2644, 2306, 0, 0, 0, 0, 913, 0, 0, 0, 904, 913, 913, 912, 0, 0, 912, 912, 902, 0, 0, 0, 0, 902, 902, 0, 0, 0, 2645, 0, 0, 0, 0, 905, 0, 0, 0, 0, 0, 0, 0, 905, 0, 0, 0, 0, 0, 912, 912, 0, 0, 0, 0, 0, 904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 905, 0, 0, 0, 0, 2373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 904, 4033, 0, 0, 2646, 0, 0, 2647, 4903, 0, 4904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 4911, 0, 908, 908, 0, 0, 0, 0, 0, 0, 0, 0, 4917, 0, 0, 0, 4920, 0, 5508, 913, 0, 0, 0, 0, 0, 0, 0, 4933, 0, 0, 0, 902, 0, 0, 0, 0, 0, 0, 0, 907, 905, 0, 905, 0, 0, 904, 4959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, 908, 4963, 0, 0, 904, 0, 0, 0, 0, 4967, 0, 0, 0, 0, 2648, 0, 0, 0, 0, 913, 0, 0, 0, 912, 0, 0, 904, 0, 0, 0, 0, 902, 0, 0, 5002, 0, 0, 0, 5006, 0, 0, 0, 0, 0, 0, 0, 4033, 908, 4033, 907, 0, 0, 0, 907, 5017, 5018, 5019, 5020, 0, 0, 0, 0, 0, 0, 5024, 5025, 5026, 5027, 0, 0, 0, 0, 0, 5029, 5030, 905, 0, 0, 0, 5037, 5038, 0, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5055, 0, 0, 0, 5058, 5059, 5060, 5061, 0, 0, 904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 905, 2572, 0, 0, 0, 0, 0, 4336, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 6061, 0, 5081, 0, 0, 905, 0, 0, 0, 0, 0, 0, 0, 0, 907, 0, 0, 0, 0, 904, 0, 910, 0, 0, 0, 910, 910, 0, 0, 907, 0, 0, 2112, 0, 907, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 0, 904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 0, 907, 0, 0, 0, 2639, 0, 0, 0, 905, 0, 0, 2640, 0, 5162, 0, 910, 0, 0, 0, 0, 0, 910, 0, 0, 0, 0, 0, 0, 0, 0, 905, 0, 0, 0, 0, 0, 0, 2641, 0, 0, 0, 0, 0, 0, 0, 0, 4336, 0, 0, 0, 908, 2112, 905, 5187, 2113, 5188, 0, 0, 2114, 2115, 2116, 0, 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 5203, 0, 0, 0, 0, 2639, 0, 0, 0, 0, 0, 0, 2640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2641, 0, 908, 0, 0, 0, 908, 0, 0, 2112, 0, 0, 2113, 905, 0, 0, 2114, 2115, 2116, 904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2642, 0, 2638, 0, 0, 2643, 0, 0, 0, 0, 0, 0, 2639, 0, 0, 0, 0, 0, 0, 2640, 0, 0, 0, 0, 0, 0, 0, 0, 2644, 2306, 0, 0, 905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2645, 905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, 904, 0, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 908, 0, 0, 0, 0, 908, 0, 0, 0, 2373, 0, 907, 0, 0, 907, 0, 907, 904, 0, 0, 0, 907, 2644, 2306, 2646, 0, 0, 2647, 0, 0, 0, 0, 0, 910, 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2645, 5347, 5348, 5349, 0, 0, 0, 5350, 5351, 5352, 5353, 0, 0, 907, 5355, 0, 0, 0, 0, 0, 0, 907, 0, 2642, 0, 0, 0, 913, 2643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 902, 0, 0, 0, 2373, 0, 0, 907, 0, 0, 0, 0, 2644, 2306, 0, 0, 0, 910, 0, 2646, 0, 910, 2647, 0, 0, 0, 5388, 5389, 5390, 5391, 5392, 2648, 5394, 5395, 0, 0, 0, 0, 0, 905, 2645, 0, 0, 0, 5404, 5405, 0, 0, 0, 0, 0, 0, 1736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 904, 0, 0, 0, 0, 0, 0, 0, 5411, 0, 0, 0, 2373, 0, 0, 907, 0, 907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2646, 0, 0, 2647, 0, 0, 0, 0, 912, 0, 0, 0, 912, 912, 0, 0, 0, 2648, 0, 0, 904, 0, 0, 0, 0, 904, 910, 0, 0, 0, 0, 0, 0, 0, 0, 905, 0, 0, 0, 2572, 0, 910, 0, 0, 0, 0, 910, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 6072, 0, 905, 0, 0, 0, 912, 0, 0, 0, 0, 0, 912, 0, 0, 0, 910, 0, 0, 0, 0, 0, 5474, 0, 0, 907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2648, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 908, 0, 908, 0, 0, 0, 0, 908, 0, 0, 0, 0, 912, 4033, 0, 2572, 0, 0, 0, 0, 0, 0, 907, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 6095, 0, 0, 5525, 0, 0, 0, 0, 0, 0, 0, 0, 908, 907, 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5531, 0, 0, 0, 904, 0, 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2572, 0, 0, 0, 905, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 6315, 0, 907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 907, 0, 0, 0, 972, 905, 0, 0, 0, 0, 905, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 908, 907, 908, 0, 0, 0, 972, 0, 0, 0, 658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 0, 2113, 0, 904, 0, 2114, 2115, 2116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 0, 0, 0, 912, 0, 2639, 910, 0, 0, 910, 0, 910, 2640, 0, 0, 0, 910, 0, 5654, 0, 0, 0, 0, 0, 0, 907, 904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5664, 2641, 0, 908, 0, 0, 5670, 5671, 0, 0, 0, 904, 0, 0, 0, 0, 5682, 0, 0, 0, 0, 910, 0, 5684, 0, 0, 0, 0, 0, 910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 912, 0, 907, 0, 912, 0, 0, 0, 908, 0, 0, 0, 0, 0, 905, 910, 0, 0, 0, 5736, 5737, 0, 0, 0, 0, 0, 0, 907, 0, 0, 0, 0, 5745, 0, 5747, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 904, 0, 0, 0, 5761, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4336, 0, 0, 0, 0, 0, 2642, 0, 5795, 0, 0, 2643, 0, 0, 0, 0, 0, 0, 0, 0, 910, 0, 910, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 912, 2644, 2306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, 0, 908, 912, 0, 0, 905, 0, 0, 0, 0, 0, 2645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 904, 0, 0, 0, 0, 0, 5851, 0, 0, 0, 0, 0, 0, 2373, 0, 0, 0, 905, 0, 0, 5866, 0, 907, 0, 0, 0, 910, 0, 2646, 0, 0, 2647, 0, 0, 0, 0, 0, 0, 0, 905, 0, 0, 0, 0, 5883, 0, 0, 963, 973, 0, 0, 0, 0, 0, 0, 963, 0, 973, 963, 0, 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, 910, 973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1578, 0, 0, 0, 0, 0, 1579, 0, 910, 0, 0, 0, 0, 1645, 0, 0, 0, 0, 0, 0, 0, 5943, 905, 0, 0, 0, 907, 908, 0, 0, 0, 0, 0, 976, 2648, 1646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 972, 0, 904, 1581, 908, 0, 907, 0, 1029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 972, 0, 0, 910, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 1647, 0, 0, 0, 4336, 0, 0, 0, 0, 0, 0, 910, 0, 0, 972, 0, 0, 0, 0, 0, 0, 1582, 0, 0, 0, 0, 0, 0, 1583, 972, 0, 0, 1584, 910, 904, 0, 0, 972, 6023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 2572, 0, 0, 905, 0, 0, 0, 1585, 972, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 912, 0, 0, 912, 6332, 912, 0, 0, 6051, 0, 912, 950, 952, 0, 0, 955, 0, 0, 0, 0, 0, 1648, 0, 0, 0, 1586, 0, 0, 0, 0, 0, 0, 6073, 0, 0, 1013, 0, 0, 0, 907, 0, 0, 1023, 972, 910, 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, 908, 0, 0, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 1649, 0, 0, 0, 904, 1650, 912, 907, 0, 0, 1651, 0, 907, 6113, 0, 0, 0, 972, 910, 0, 0, 0, 0, 0, 0, 0, 1652, 0, 0, 0, 1588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1589, 0, 0, 910, 0, 0, 905, 0, 0, 0, 1590, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1653, 1591, 0, 0, 0, 2112, 0, 0, 2113, 908, 0, 0, 2114, 2115, 2116, 0, 0, 0, 972, 0, 0, 0, 0, 0, 912, 0, 912, 0, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 908, 0, 0, 0, 0, 2639, 3752, 0, 0, 1593, 1594, 1655, 2640, 0, 0, 0, 0, 0, 0, 905, 0, 0, 0, 0, 0, 0, 0, 6207, 0, 0, 0, 0, 0, 0, 0, 1656, 0, 0, 2641, 0, 0, 3753, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1658, 904, 0, 0, 6220, 0, 904, 904, 0, 0, 0, 0, 0, 0, 0, 6230, 0, 907, 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 0, 912, 0, 0, 0, 0, 0, 1822, 0, 0, 0, 0, 0, 973, 972, 0, 0, 0, 0, 973, 0, 0, 910, 1659, 0, 0, 0, 0, 0, 0, 1596, 973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 912, 0, 973, 0, 0, 0, 0, 0, 0, 0, 905, 0, 0, 0, 908, 0, 963, 973, 0, 0, 0, 0, 0, 963, 1049, 973, 963, 2642, 912, 0, 1081, 0, 2643, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 0, 904, 0, 0, 973, 0, 0, 0, 0, 0, 2644, 2306, 0, 0, 0, 907, 908, 0, 0, 6309, 0, 908, 0, 0, 0, 0, 910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 912, 0, 0, 910, 0, 0, 973, 0, 0, 0, 0, 0, 0, 904, 0, 0, 0, 907, 0, 0, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 2373, 0, 0, 0, 973, 0, 0, 0, 0, 907, 0, 0, 0, 0, 912, 2646, 0, 0, 2647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 973, 0, 0, 0, 0, 0, 905, 0, 0, 0, 972, 905, 905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1083, 0, 1086, 0, 972, 1088, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1114, 0, 0, 0, 1390, 0, 1118, 0, 0, 0, 0, 907, 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, 0, 1415, 0, 912, 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2648, 0, 0, 0, 0, 910, 0, 0, 0, 0, 0, 0, 2112, 0, 0, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6450, 0, 0, 0, 0, 912, 2638, 0, 0, 905, 3498, 0, 0, 0, 0, 0, 2639, 0, 0, 910, 0, 0, 1473, 2640, 910, 0, 0, 0, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2641, 0, 0, 972, 0, 0, 0, 0, 1823, 0, 907, 972, 972, 0, 0, 973, 0, 0, 0, 0, 1609, 0, 908, 905, 2572, 0, 963, 0, 0, 0, 963, 0, 963, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 6390, 0, 0, 0, 0, 0, 3499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 2112, 0, 0, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639, 0, 0, 2642, 0, 0, 0, 2640, 2643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 910, 1872, 0, 0, 0, 973, 0, 0, 912, 0, 0, 0, 2644, 2306, 2641, 0, 907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1906, 1909, 1910, 0, 0, 0, 908, 1610, 1611, 0, 2645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 2373, 0, 0, 0, 907, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 2646, 973, 0, 2647, 912, 0, 0, 0, 0, 4147, 1840, 0, 0, 0, 0, 4148, 0, 0, 910, 0, 0, 0, 0, 0, 0, 1852, 0, 0, 0, 0, 0, 0, 912, 0, 2642, 0, 0, 0, 0, 2643, 0, 1390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1874, 1875, 0, 908, 0, 0, 2644, 2306, 0, 0, 0, 0, 904, 1390, 0, 910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1912, 972, 0, 0, 0, 0, 0, 0, 2645, 0, 0, 910, 0, 0, 2648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1950, 1952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2373, 0, 0, 973, 0, 0, 0, 0, 0, 0, 0, 973, 973, 0, 0, 2646, 0, 0, 2647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3500, 0, 0, 0, 0, 910, 0, 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1823, 972, 908, 0, 0, 2572, 0, 0, 0, 0, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 912, 0, 2632, 0, 0, 912, 0, 0, 0, 0, 0, 1822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 907, 0, 0, 0, 972, 907, 907, 0, 0, 0, 908, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 905, 0, 0, 2723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 972, 0, 0, 0, 0, 0, 2572, 0, 0, 0, 0, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 907, 0, 0, 0, 0, 0, 0, 0, 912, 2837, 0, 0, 908, 0, 0, 0, 0, 0, 2866, 0, 0, 2112, 0, 0, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2638, 910, 2904, 0, 0, 0, 0, 0, 2916, 2916, 2639, 0, 2916, 0, 0, 907, 0, 2640, 0, 0, 0, 0, 973, 0, 0, 2934, 0, 0, 2937, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 912, 0, 0, 1822, 0, 0, 0, 0, 0, 0, 2990, 0, 0, 0, 0, 0, 0, 0, 2825, 0, 0, 0, 0, 0, 3010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, 2870, 908, 908, 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 912, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 0, 0, 0, 1823, 0, 0, 0, 2638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639, 0, 0, 2644, 2306, 0, 910, 2640, 0, 973, 0, 0, 2960, 0, 0, 0, 0, 973, 0, 0, 0, 1365, 1365, 0, 3032, 973, 0, 0, 0, 0, 0, 2645, 0, 2641, 0, 3035, 0, 0, 912, 0, 0, 0, 2986, 2987, 2988, 2989, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 963, 963, 0, 973, 973, 0, 0, 0, 2373, 0, 0, 3079, 2916, 0, 0, 963, 0, 973, 963, 0, 0, 0, 0, 2646, 0, 0, 2647, 0, 0, 0, 973, 973, 0, 0, 0, 1365, 3114, 0, 0, 0, 0, 0, 0, 3127, 908, 0, 0, 0, 0, 0, 0, 0, 0, 4782, 0, 0, 0, 0, 0, 6160, 0, 0, 0, 0, 0, 0, 0, 0, 963, 0, 0, 0, 963, 963, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 910, 0, 912, 0, 0, 910, 910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644, 2306, 0, 3188, 0, 0, 2648, 0, 0, 0, 3043, 3044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4783, 3061, 0, 2645, 0, 0, 0, 0, 0, 0, 0, 1390, 1390, 0, 0, 0, 0, 0, 1733, 1737, 0, 0, 0, 0, 0, 0, 0, 0, 3242, 0, 0, 3244, 0, 0, 0, 3104, 3105, 3106, 3107, 0, 0, 0, 0, 0, 0, 0, 2373, 0, 0, 0, 0, 0, 0, 0, 1823, 0, 0, 0, 0, 0, 0, 2646, 0, 0, 2647, 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2572, 0, 6161, 0, 0, 0, 0, 0, 912, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3181, 0, 0, 0, 0, 0, 3185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 910, 907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2648, 0, 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 0, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2638, 0, 0, 4074, 0, 0, 0, 0, 0, 0, 2639, 0, 0, 0, 0, 0, 0, 2640, 0, 0, 0, 0, 0, 0, 0, 0, 1822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2054, 0, 0, 0, 0, 0, 2572, 0, 0, 0, 0, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 972, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2080, 0, 0, 0, 972, 0, 0, 0, 972, 0, 0, 0, 972, 3371, 0, 2112, 0, 0, 2113, 0, 0, 972, 2114, 2115, 2116, 0, 0, 0, 0, 2099, 2100, 2101, 0, 2103, 0, 0, 972, 0, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639, 0, 2590, 0, 0, 0, 0, 2640, 0, 0, 0, 0, 0, 0, 2642, 0, 0, 0, 972, 2643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2641, 0, 0, 0, 0, 972, 972, 0, 0, 2644, 2306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, 0, 2645, 0, 0, 0, 0, 1822, 972, 0, 0, 1822, 0, 0, 0, 0, 0, 0, 912, 0, 0, 0, 0, 912, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 1822, 0, 2690, 0, 972, 0, 2702, 2707, 2373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 2646, 0, 972, 2647, 0, 972, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 972, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 2644, 2306, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 912, 1822, 0, 2645, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3429, 0, 0, 0, 0, 0, 0, 0, 1823, 0, 0, 3434, 0, 0, 2373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2646, 0, 912, 2647, 0, 0, 1822, 0, 0, 0, 0, 0, 0, 0, 1473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 973, 0, 0, 0, 973, 1473, 1473, 0, 0, 2572, 0, 0, 0, 973, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 973, 0, 0, 0, 0, 0, 0, 1733, 1733, 1733, 0, 1390, 2648, 0, 0, 0, 0, 963, 0, 963, 963, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 973, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 973, 0, 0, 0, 2638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639, 0, 0, 0, 0, 0, 0, 2640, 972, 0, 1822, 0, 3371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1823, 973, 0, 0, 1823, 972, 0, 0, 0, 0, 0, 2641, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4084, 2572, 973, 0, 1823, 0, 0, 0, 973, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 973, 0, 0, 0, 0, 0, 0, 973, 3653, 0, 973, 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 0, 3675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 973, 0, 0, 3703, 0, 0, 0, 973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1822, 973, 0, 0, 0, 0, 1822, 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 2642, 1823, 0, 0, 0, 2643, 0, 973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3608, 0, 0, 0, 0, 2644, 2306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3783, 3784, 0, 0, 0, 0, 2645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1823, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2646, 0, 3270, 2647, 0, 0, 0, 0, 0, 0, 0, 3288, 3288, 3288, 3288, 3298, 3304, 3288, 3307, 3288, 3288, 0, 0, 4120, 0, 3314, 0, 3315, 0, 3317, 0, 0, 3331, 3334, 3339, 0, 0, 0, 3909, 0, 3348, 0, 0, 3353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3757, 0, 0, 3760, 0, 0, 0, 3361, 3362, 3363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 972, 912, 0, 2648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, 1823, 0, 0, 972, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 0, 963, 0, 963, 963, 3855, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3868, 0, 0, 0, 0, 0, 0, 0, 3877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1822, 1822, 1822, 0, 0, 2572, 0, 0, 3921, 0, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 972, 0, 0, 3372, 3945, 0, 0, 0, 0, 0, 1823, 0, 0, 0, 0, 0, 1823, 0, 0, 972, 0, 2112, 0, 0, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 4000, 2638, 4002, 0, 4152, 0, 0, 0, 0, 0, 3391, 2639, 0, 0, 0, 0, 0, 0, 2640, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 0, 2113, 0, 2583, 0, 2114, 2115, 2116, 0, 0, 0, 0, 0, 0, 0, 0, 2641, 0, 0, 0, 0, 0, 0, 0, 0, 2638, 0, 973, 0, 0, 0, 0, 0, 0, 0, 2639, 0, 0, 3393, 0, 0, 0, 2640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 2583, 0, 4057, 0, 0, 0, 0, 0, 2641, 4064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1822, 0, 0, 0, 0, 1473, 972, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 972, 2113, 972, 0, 0, 2114, 2115, 2116, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2638, 0, 0, 4164, 0, 0, 0, 0, 0, 0, 2639, 973, 973, 2644, 2306, 0, 0, 2640, 4157, 2112, 0, 0, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 0, 0, 973, 0, 0, 973, 0, 2642, 0, 0, 0, 2645, 2643, 2641, 972, 0, 2638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639, 0, 0, 0, 0, 0, 0, 2640, 0, 2644, 2306, 0, 0, 0, 0, 0, 0, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 0, 3409, 2373, 0, 972, 0, 0, 2641, 0, 0, 0, 2645, 1365, 0, 0, 1733, 0, 2646, 0, 0, 2647, 0, 0, 972, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 1823, 1823, 1823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 0, 2373, 0, 3364, 0, 0, 973, 3372, 0, 0, 3391, 0, 3393, 0, 0, 3446, 2646, 0, 0, 2647, 0, 0, 0, 0, 0, 973, 2642, 0, 0, 0, 0, 2643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 0, 2644, 2306, 0, 0, 0, 0, 2648, 0, 0, 0, 0, 0, 0, 0, 2100, 2101, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 0, 0, 2645, 0, 0, 0, 0, 2583, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 4436, 0, 0, 2644, 2306, 0, 0, 1822, 0, 0, 2916, 0, 0, 0, 0, 2648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2373, 4332, 4333, 2645, 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, 0, 2646, 0, 0, 2647, 0, 0, 0, 0, 3586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2572, 0, 0, 0, 0, 2373, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 1823, 0, 2646, 0, 0, 2647, 973, 0, 973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, 973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2572, 0, 0, 0, 0, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 0, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 0, 0, 0, 0, 0, 4568, 4569, 4570, 0, 973, 0, 0, 0, 0, 972, 0, 2638, 2648, 0, 4789, 0, 0, 4579, 0, 0, 0, 2639, 2112, 0, 0, 2113, 0, 0, 2640, 2114, 2115, 2116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, 4712, 2638, 4604, 4606, 0, 0, 2641, 4611, 0, 0, 0, 2639, 0, 0, 0, 0, 0, 973, 2640, 0, 0, 973, 0, 1822, 2572, 0, 0, 0, 1822, 0, 1822, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 973, 0, 2641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1822, 0, 0, 0, 0, 4517, 0, 0, 0, 0, 0, 0, 0, 0, 2572, 0, 3841, 3842, 1733, 0, 0, 0, 3846, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 3875, 972, 0, 0, 0, 0, 0, 0, 1390, 0, 0, 2583, 0, 0, 0, 3327, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 0, 0, 0, 2583, 2583, 2583, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1823, 2644, 2306, 0, 0, 0, 0, 0, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 0, 2113, 0, 2645, 0, 2114, 2115, 2116, 0, 0, 0, 0, 0, 2644, 2306, 0, 0, 0, 0, 972, 972, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 972, 0, 0, 0, 0, 2639, 0, 0, 0, 0, 0, 2645, 2640, 0, 4670, 0, 2373, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2646, 0, 0, 2647, 0, 0, 0, 2641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2646, 0, 0, 2647, 4822, 4823, 4824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5231, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 1822, 0, 0, 0, 0, 0, 4070, 0, 0, 0, 0, 4076, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 2112, 0, 0, 2113, 2648, 0, 0, 2114, 2115, 2116, 0, 0, 0, 0, 5241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 0, 2642, 0, 0, 0, 2639, 2643, 0, 0, 2103, 2648, 0, 2640, 0, 0, 0, 0, 0, 0, 0, 3339, 0, 3339, 3339, 0, 0, 1823, 0, 0, 2644, 2306, 1823, 0, 1823, 0, 0, 4167, 0, 2641, 4170, 0, 4172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2645, 0, 1823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2572, 4197, 0, 4200, 0, 4202, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 2373, 0, 0, 0, 0, 0, 973, 0, 0, 973, 0, 0, 0, 0, 0, 2646, 2572, 0, 2647, 0, 0, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 5247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4272, 972, 0, 0, 0, 2690, 0, 2644, 2306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2707, 0, 973, 973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 2648, 2645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 0, 2113, 0, 973, 0, 2114, 2115, 2116, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 2638, 0, 0, 0, 0, 5091, 2373, 0, 0, 0, 2639, 0, 0, 4322, 0, 2583, 0, 2640, 0, 0, 0, 2646, 0, 0, 2647, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 5123, 0, 0, 0, 0, 0, 2641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, 0, 1823, 0, 0, 0, 0, 0, 2572, 3127, 0, 0, 0, 4357, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5181, 0, 0, 0, 0, 0, 0, 1822, 0, 0, 0, 2583, 0, 2648, 0, 0, 0, 3188, 0, 0, 0, 0, 0, 2583, 5078, 0, 972, 0, 2583, 0, 0, 0, 5248, 0, 0, 0, 0, 0, 5080, 2112, 0, 0, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 0, 0, 0, 0, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 0, 2638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639, 0, 0, 0, 0, 0, 0, 2640, 0, 2644, 2306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2641, 0, 0, 972, 2645, 0, 0, 0, 0, 0, 2572, 0, 0, 0, 0, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2373, 0, 0, 0, 0, 0, 0, 0, 5284, 5285, 5286, 5287, 0, 1733, 0, 2646, 0, 0, 2647, 1733, 0, 0, 0, 0, 0, 5249, 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 972, 0, 973, 0, 0, 0, 0, 0, 0, 4591, 2644, 2306, 0, 0, 973, 0, 0, 0, 0, 0, 0, 0, 2648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 0, 2113, 0, 0, 2645, 2114, 2115, 2116, 0, 0, 0, 0, 0, 0, 972, 973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639, 0, 0, 0, 0, 0, 0, 2640, 0, 0, 0, 0, 2373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2646, 0, 1822, 2647, 0, 0, 2641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1823, 2572, 0, 0, 0, 0, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4713, 0, 0, 0, 0, 0, 0, 0, 4717, 0, 4718, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3288, 0, 0, 0, 4731, 3288, 3288, 0, 0, 0, 2648, 3304, 0, 0, 4739, 0, 0, 4741, 0, 0, 0, 0, 0, 4743, 0, 4744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 0, 0, 0, 0, 0, 973, 0, 4766, 4767, 4768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644, 2306, 0, 0, 0, 3348, 0, 0, 0, 0, 0, 0, 0, 4793, 0, 0, 4796, 0, 4798, 0, 5503, 0, 0, 0, 0, 0, 0, 0, 2645, 0, 0, 5513, 5419, 0, 4802, 0, 0, 0, 0, 0, 0, 0, 4809, 4810, 0, 0, 0, 5423, 0, 4815, 2572, 0, 0, 0, 0, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 2373, 0, 0, 0, 0, 0, 0, 3288, 0, 0, 0, 0, 0, 0, 0, 2646, 0, 972, 2647, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 2583, 973, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 4869, 0, 0, 2583, 1822, 0, 2583, 0, 0, 5481, 0, 0, 0, 2583, 2583, 0, 2583, 4883, 0, 0, 0, 3327, 3327, 0, 4143, 0, 3327, 0, 0, 0, 2583, 0, 0, 2583, 0, 0, 973, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 963, 2583, 0, 0, 0, 0, 2583, 2648, 0, 0, 0, 0, 0, 0, 2583, 2583, 2583, 2583, 0, 0, 0, 0, 3327, 3327, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1822, 0, 0, 1823, 0, 0, 0, 2583, 963, 2583, 0, 0, 0, 0, 0, 0, 2583, 2583, 2583, 2583, 2583, 2583, 2583, 2583, 2583, 2583, 2112, 0, 0, 2113, 0, 0, 0, 2114, 2115, 2116, 1822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5621, 0, 0, 2638, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 2639, 0, 0, 0, 0, 0, 0, 2640, 0, 0, 0, 0, 2112, 2572, 0, 2113, 0, 0, 0, 2114, 2115, 2116, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 2641, 0, 0, 5720, 0, 0, 2638, 0, 1390, 5826, 1822, 0, 0, 972, 0, 0, 2639, 0, 0, 0, 0, 0, 0, 2640, 0, 0, 0, 5750, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2641, 0, 0, 0, 5640, 2112, 5642, 0, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639, 0, 5809, 0, 0, 0, 0, 2640, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 2641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 2644, 2306, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 973, 0, 0, 5169, 5170, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 5177, 2645, 0, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 5874, 0, 1823, 5766, 0, 0, 0, 2644, 2306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2373, 0, 0, 0, 0, 0, 2645, 0, 0, 0, 0, 0, 0, 0, 0, 2646, 0, 0, 2647, 0, 0, 0, 0, 0, 0, 2642, 5220, 0, 0, 0, 2643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2690, 0, 0, 0, 0, 0, 2373, 0, 0, 1823, 2644, 2306, 0, 0, 0, 0, 0, 0, 5243, 0, 0, 2646, 0, 0, 2647, 0, 5950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2645, 0, 0, 0, 0, 0, 0, 1823, 0, 0, 0, 0, 0, 0, 0, 0, 5972, 0, 0, 5262, 5264, 0, 0, 972, 0, 0, 0, 5268, 5269, 0, 2648, 0, 5270, 0, 0, 0, 0, 5271, 0, 0, 5274, 5275, 0, 2373, 0, 0, 0, 5280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2646, 0, 0, 2647, 0, 2583, 2583, 0, 0, 0, 2583, 0, 0, 5898, 0, 5900, 0, 0, 0, 1823, 0, 2648, 973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5316, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 1365, 0, 0, 0, 0, 0, 0, 0, 5330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2572, 0, 0, 0, 0, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2648, 0, 5358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1822, 0, 0, 0, 2572, 0, 0, 0, 0, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5407, 963, 0, 0, 1822, 0, 0, 5409, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2572, 0, 0, 0, 0, 1822, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 963, 963, 5444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6109, 0, 0, 0, 0, 0, 0, 4143, 4143, 0, 0, 3327, 3327, 3327, 3327, 0, 0, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 4143, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 4, 0, 973, 2583, 0, 0, 2583, 0, 2583, 0, 0, 4143, 4143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 2583, 3327, 3327, 2583, 0, 2583, 7, 0, 8, 9, 0, 0, 0, 0, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3288, 0, 0, 0, 14, 0, 0, 15, 6213, 0, 5550, 0, 0, 0, 0, 0, 5554, 5555, 5556, 0, 0, 0, 16, 0, 17, 0, 0, 0, 18, 0, 2583, 0, 0, 0, 0, 5775, 0, 0, 0, 0, 0, 5569, 5570, 0, 20, 5571, 21, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5579, 0, 0, 0, 0, 0, 0, 0, 23, 0, 5591, 0, 0, 0, 0, 0, 0, 2583, 0, 1823, 0, 5609, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6303, 0, 0, 1823, 25, 26, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 963, 963, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 1823, 0, 0, 1114, 1114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 32, 33, 0, 34, 0, 0, 0, 0, 35, 0, 0, 4642, 0, 0, 36, 0, 0, 37, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 39, 40, 0, 0, 0, 0, 0, 0, 41, 0, 0, 1114, 42, 0, 670, 0, 0, 0, 0, 0, 0, 0, 0, 43, 5799, 3327, 0, 0, 0, 0, 0, 0, 671, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 3348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 672, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 2583, 0, 673, 0, 0, 46, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 48, 0, 0, -891, 0, 0, 2103, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 674, 0, 0, 0, 0, 0, 675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 676, 0, 0, 0, 0, 0, 0, 0, 0, 5878, 0, 56, 0, 677, -136, 0, 0, 0, 0, 0, 0, 0, 678, 0, 0, 5890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, 0, 0, 680, 0, 0, 0, 681, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 2583, 2583, 5927, -1097, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 2583, 0, 2583, 2583, 0, 0, 0, 719, 4143, 4143, 4143, 4143, 720, 0, 0, 4143, 4143, 4143, 4143, 4143, 4143, 4143, 4143, 4143, 4143, 2583, 2583, 2583, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, -624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 721, 0, 2583, 0, 0, 2583, 0, 2583, 0, 0, 0, 2583, 0, 722, 4143, 4143, 0, 3288, 2583, 2583, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 6007, 723, 0, 0, 683, 0, 0, 684, 0, 6014, 6014, 6014, 0, 0, 0, 0, 0, 0, 0, 724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 685, 0, 0, 0, 0, 0, 0, 5609, 0, 0, 0, 0, 0, 725, 686, 0, 0, 0, 0, 2583, 0, 6047, -474, 0, 0, 0, 726, 0, 0, 0, 0, 0, 0, 2583, 0, 727, 0, 0, 0, 0, 6062, 0, 687, 0, 0, 0, 0, 0, 728, 0, 0, 0, 688, 0, 729, 0, 0, 0, 0, -474, 0, 730, 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 719, 0, 731, 690, 0, 1052, 0, 0, 0, 0, 0, 691, 0, 0, 0, 0, 0, 0, -474, 0, 0, 692, 0, 693, 0, 694, 695, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 696, 0, 1053, 0, 0, 0, 0, 0, 697, 0, 0, 698, 0, 0, 699, 722, 1054, 0, 0, 0, 0, 732, 0, 0, 0, 0, 0, -474, 1055, 0, 0, 0, 723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1056, 0, 6014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 733, 0, 0, 0, 0, 0, 0, 0, 0, 1057, 0, 0, 5609, 734, 0, 0, 0, 0, 0, 0, 0, 0, 726, 0, 0, 0, 735, 0, 0, 0, 0, 727, 0, 0, 0, 0, 213, 736, 0, 0, 737, 0, 0, 0, 728, 0, 0, 4143, 0, 0, 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 738, 0, 0, 739, 0, 0, 0, 740, 0, 1059, 741, 0, 0, 0, 0, 0, 0, 742, 0, 0, 743, 0, 0, 0, 0, 0, 0, 6237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 744, 0, 0, 0, 0, 0, 0, 1060, 745, 0, 0, 6262, 0, 0, 0, 746, 0, 0, 747, 0, 0, 0, 0, 748, 0, 0, 2583, 2583, 0, 732, 0, 749, 0, 750, 2583, 0, 0, 0, 751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 752, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 753, 0, 0, 0, 0, 0, 0, 0, 1061, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 735, 2583, 3327, 0, 0, 0, 0, 0, 0, 0, 213, 1062, 197, 0, 737, 0, 0, 0, 0, 0, 2583, 0, 2583, 0, 0, 0, 2583, 2583, 2583, 2583, 0, 0, 2583, 2583, 0, 0, 0, 0, 2583, 6014, 0, 0, 1063, 0, 0, 1064, 0, 0, 0, 740, 0, 0, 741, 0, 0, 6349, 3327, 0, 0, 742, 0, 0, 743, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 199, 0, 744, 0, 0, 0, 0, 0, 2583, 0, 1065, 0, 0, 0, 0, 0, 0, 746, 200, 0, 1066, 0, 0, 0, 201, 748, 0, 0, 0, 0, 0, 0, 0, 1067, 0, 750, 2583, 0, 0, 0, 1068, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, 753, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 0, 0, 0, 0, 0, 206, 0, 2583, 0, 2583, 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 4143, 3327, 2583, 2583, 2583, 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, 2583, 2583, 2583, 213, 214, 0, 0, 215, 0, 0, 2583, 0, 0, 0, 0, 3327, 0, 0, 4143, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 217, 0, 2583, 0, 218, 0, 0, 219, 0, 0, 0, 0, 0, 0, 220, 0, 0, 221, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 224, 0, 225, 0, 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4143, 0, 3327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3327, 3327, 0, 0, 3327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 0, 0, 0, 234, 0, 1268, 714, 0, 1269, 1270, 1271, 775, 1272, 4143, 4143, 0, 4143, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1727, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 2583, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 1728, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 1729, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 1730, 0, 0, 0, 0, 0, 0, 1352, 1731, 234, 0, 1268, 714, 0, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 40, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 44, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 1203, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 49, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 0, 0, 0, 0, 1352, 5845, 234, 0, 1268, 714, 0, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 0, 0, 0, 0, 1352, 3329, 234, 0, 1268, 714, 0, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 0, 0, 0, 0, 1352, 4745, 234, 0, 1268, 714, 0, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 655, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 0, 0, 0, 0, 1352, 4812, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 4249, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, -1841, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, -1841, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, -1841, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, -1841, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, -1841, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, -1841, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, -1841, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 0, 0, 0, 0, 0, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1466, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 877, 260, 878, 879, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 880, 881, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 882, 883, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 0, 347, 0, 348, 349, 350, 885, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 0, 0, 0, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 2733, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 2734, 388, 389, 390, 391, 886, 887, 0, 888, 0, 395, 396, 397, 398, 399, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 0, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 890, 446, 891, 448, 449, 450, 451, 452, 453, 454, 455, 0, 0, 458, 0, 459, 460, 461, 462, 0, 0, 464, 892, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 2736, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 0, 497, 0, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 893, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 2737, 558, 559, 560, 561, 562, 895, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 896, 897, 0, 0, 595, 596, 0, 598, 0, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 0, 898, 2738, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 646, 647, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 2831, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 877, 260, 878, 879, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 880, 881, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 882, 883, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 0, 347, 0, 348, 349, 350, 885, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 0, 0, 0, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 2733, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 2734, 388, 389, 390, 391, 886, 887, 0, 888, 0, 395, 396, 397, 398, 399, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 0, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 890, 446, 891, 448, 449, 450, 451, 452, 453, 454, 455, 0, 0, 458, 0, 459, 460, 461, 462, 0, 0, 464, 892, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 2736, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 0, 497, 0, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 893, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 2737, 558, 559, 560, 561, 562, 895, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 896, 897, 0, 0, 595, 596, 0, 598, 0, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 0, 898, 2738, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 234, 0, 1268, 714, 0, 1269, 1270, 1271, 775, 1272, 0, 645, 646, 647, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 3964, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 3290, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 40, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 44, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 1203, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 49, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 40, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 44, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 1203, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 49, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 3335, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 3336, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 3337, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 3338, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, -2272, 244, 245, 246, 0, 0, 0, -2272, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, -2272, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, -2270, 244, 245, 246, 0, 0, 0, -2270, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, -2270, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 0, 0, 2051, 3263, 1352, 234, 0, 1268, 714, 0, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 1351, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 2700, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 3290, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 3843, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 3336, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 3394, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2703, 2704, 0, 0, 0, 234, 0, 3513, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 4868, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 5251, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 5263, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 5599, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 5600, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 5601, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 5602, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 6011, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 6012, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 6013, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 6012, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 6013, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 5584, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 0, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 3321, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3322, 3323, 0, 0, 0, 234, 0, 1268, 714, 3324, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, -3001, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 6012, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 1292, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, -3001, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 0, 0, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, -3001, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 1319, 459, 460, 0, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 1327, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, -3001, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 6013, 606, 607, 608, 0, 1337, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, -3001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 1350, 0, 0, 0, 234, 0, 1268, 714, 1352, 1269, 1270, 1271, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 0, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 1323, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 3321, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3322, 3323, 234, 0, 1268, 714, 0, 1269, 1270, 3324, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 0, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 3502, 3503, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3504, 3505, 234, 0, 1268, 714, 0, 1269, 1270, 3324, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 0, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 3321, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 0, 0, 0, 234, 0, 1268, 714, 0, 1269, 1270, 0, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 3324, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 4776, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 0, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 3321, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 0, 0, 0, 234, 0, 1268, 714, 0, 1269, 1270, 0, 775, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 3324, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1273, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 1277, 1278, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 1293, 342, 343, 344, 345, 1294, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 1298, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 0, 459, 460, 461, 462, 1320, 1321, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 3321, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 1334, 598, 1335, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 4837, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3324, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 1278, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 1294, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 3473, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 3474, 1311, 411, 412, 413, 414, 415, 416, 417, 3475, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 0, 459, 460, 461, 462, 0, 1321, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 859, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 3476, 541, 542, 543, 544, 545, 546, 547, 548, 549, 40, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 44, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 1334, 598, 1335, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 1203, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 49, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 3477, 645, 646, 647, 0, 0, 0, 50, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3478, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 1278, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 1294, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 3473, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 3474, 1311, 411, 412, 413, 414, 415, 416, 417, 3475, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 0, 459, 460, 461, 462, 0, 1321, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 859, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 3476, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 1334, 598, 1335, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 3477, 645, 646, 647, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3478, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 1278, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 1294, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 3473, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 0, 459, 460, 461, 462, 0, 1321, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 1334, 598, 1335, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3922, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 1278, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 1294, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 3473, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 3474, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 0, 459, 460, 461, 462, 0, 1321, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 3476, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 1334, 598, 1335, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 3477, 645, 646, 647, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 1278, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 1294, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 3473, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 0, 459, 460, 461, 462, 0, 1321, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 1334, 598, 1335, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4923, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 1278, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 1294, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 3473, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 0, 459, 460, 461, 462, 0, 1321, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 1334, 598, 1335, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 0, 0, 0, 0, 964, 0, 1602, 714, 0, 0, 0, 0, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6119, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 5905, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 1828, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 1829, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 1830, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 0, 0, 0, 0, 964, 0, 0, 0, 0, 0, 0, 0, 0, 1603, 1604, 5906, 0, 0, 0, 0, 0, 0, 5907, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 3, 4, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 40, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 44, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 1203, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 49, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 1043, 0, 0, 50, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 0, 0, 0, 0, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5656, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 40, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 44, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 1203, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 49, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 0, 0, 0, 50, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 2910, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 859, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 2911, 2912, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 0, 0, 0, 0, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1862, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 0, 0, 0, 0, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1414, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 0, 0, 0, 0, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3536, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 0, 0, 0, 0, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4211, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 0, 0, 0, 0, 2111, 0, 0, 0, 0, 0, 0, 2112, 0, 0, 2113, 0, 0, 0, 2114, 2115, 2116, 0, 4854, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 0, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 0, 0, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 0, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 0, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 0, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 0, 0, 2256, 2257, 2258, 2259, 0, 2260, 2261, 2262, 2263, 2264, 0, 2265, 2266, 2267, 2268, 2269, 0, 2270, 2271, 0, 2272, 2273, 2274, 0, 2275, 2276, 0, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 0, 2303, 0, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 0, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 0, 2351, 2352, 0, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 0, 2382, 2383, 2384, 0, 2385, 2386, 2387, 2388, 2389, 0, 2390, 2391, 2392, 2393, 0, 0, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 0, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 0, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 0, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 0, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 0, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 0, 2548, 2549, 2550, 2551, 2552, 2553, 0, 2554, 0, 0, 0, 0, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 0, 2570, 2571, 0, 2572, 0, 0, 0, 0, 0, 0, 0, 0, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 876, 0, 1602, 714, 0, 0, 0, 979, 775, 0, 0, 0, 0, 0, 980, 981, 982, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1740, 244, 245, 246, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 247, 248, 249, 1748, 250, 251, 252, 253, 254, 255, 256, 257, 0, 877, 260, 878, 879, 1749, 263, 264, 265, 266, 267, 268, 269, 1750, 1751, 270, 271, 880, 881, 274, 1752, 275, 276, 277, 278, 0, 1753, 280, 1754, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 1755, 292, 293, 294, 295, 296, 297, 1756, 298, 299, 300, 301, 1757, 1758, 1759, 302, 1760, 1761, 1762, 303, 304, 305, 306, 307, 308, 882, 883, 311, 1763, 312, 1764, 313, 314, 315, 316, 317, 318, 319, 1765, 320, 321, 322, 323, 1766, 1767, 324, 325, 884, 327, 328, 1768, 329, 330, 331, 332, 1769, 333, 334, 335, 336, 1770, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 1771, 347, 1772, 348, 349, 350, 885, 352, 1773, 353, 1774, 354, 355, 356, 1775, 357, 358, 359, 360, 361, 1776, 362, 0, 1777, 0, 365, 366, 1778, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 1779, 377, 378, 379, 380, 381, 382, 383, 384, 1780, 385, 386, 0, 388, 389, 390, 391, 886, 887, 1781, 888, 1782, 395, 396, 397, 398, 399, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 1783, 1784, 418, 0, 420, 421, 422, 1785, 423, 424, 425, 1786, 1787, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 890, 446, 891, 448, 449, 450, 451, 452, 453, 454, 455, 4535, 0, 458, 1788, 459, 460, 461, 462, 1789, 0, 464, 892, 466, 467, 468, 1790, 469, 470, 471, 1791, 1792, 4536, 473, 474, 1793, 1794, 475, 476, 0, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 1795, 493, 494, 495, 0, 497, 0, 499, 500, 501, 1796, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 893, 514, 515, 516, 517, 1797, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 1798, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 1799, 550, 551, 552, 553, 554, 1800, 555, 556, 2737, 558, 559, 560, 561, 562, 895, 564, 1801, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 1802, 582, 583, 1803, 1804, 584, 585, 586, 587, 588, 589, 590, 591, 1805, 592, 896, 897, 1806, 1807, 595, 596, 0, 598, 0, 1808, 600, 601, 602, 603, 604, 605, 606, 607, 608, 1809, 1810, 609, 610, 611, 612, 613, 1811, 1812, 614, 615, 616, 617, 618, 0, 898, 1813, 621, 622, 623, 624, 625, 626, 1814, 1815, 627, 1816, 1817, 628, 629, 630, 631, 632, 633, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 646, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 985, 986, 987, 4537, 4538, 990, 991, 992, 993, 876, 0, 1602, 714, 0, 0, 0, 979, 775, 0, 0, 0, 0, 0, 980, 981, 982, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1740, 244, 245, 246, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 247, 248, 249, 1748, 250, 251, 252, 253, 254, 255, 256, 257, 0, 877, 260, 878, 879, 1749, 263, 264, 265, 266, 267, 268, 269, 1750, 1751, 270, 271, 880, 881, 274, 1752, 275, 276, 277, 278, 0, 1753, 280, 1754, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 1755, 292, 293, 294, 295, 296, 297, 1756, 298, 299, 300, 301, 1757, 1758, 1759, 302, 1760, 1761, 1762, 303, 304, 305, 306, 307, 308, 882, 883, 311, 1763, 312, 1764, 313, 314, 315, 316, 317, 318, 319, 1765, 320, 321, 322, 323, 1766, 1767, 324, 325, 884, 327, 328, 1768, 329, 330, 331, 332, 1769, 333, 334, 335, 336, 1770, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 1771, 347, 1772, 348, 349, 350, 885, 352, 1773, 353, 1774, 354, 355, 356, 1775, 357, 358, 359, 360, 361, 1776, 362, 0, 1777, 0, 365, 366, 1778, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 1779, 377, 378, 379, 380, 381, 382, 383, 384, 1780, 385, 386, 0, 388, 389, 390, 391, 886, 887, 1781, 888, 1782, 395, 396, 397, 398, 399, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 1783, 1784, 418, 0, 420, 421, 422, 1785, 423, 424, 425, 1786, 1787, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 890, 446, 891, 448, 449, 450, 451, 452, 453, 454, 455, 4994, 0, 458, 1788, 459, 460, 461, 462, 1789, 0, 464, 892, 466, 467, 468, 1790, 469, 470, 471, 1791, 1792, 4536, 473, 474, 1793, 1794, 475, 476, 0, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 1795, 493, 494, 495, 0, 497, 0, 499, 500, 501, 1796, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 893, 514, 515, 516, 517, 1797, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 1798, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 1799, 550, 551, 552, 553, 554, 1800, 555, 556, 2737, 558, 559, 560, 561, 562, 895, 564, 1801, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 1802, 582, 583, 1803, 1804, 584, 585, 586, 587, 588, 589, 590, 591, 1805, 592, 896, 897, 1806, 1807, 595, 596, 0, 598, 0, 1808, 600, 601, 602, 603, 604, 605, 606, 607, 608, 1809, 1810, 609, 610, 611, 612, 613, 1811, 1812, 614, 615, 616, 617, 618, 0, 898, 1813, 621, 622, 623, 624, 625, 626, 1814, 1815, 627, 1816, 1817, 628, 629, 630, 631, 632, 633, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 646, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 985, 986, 987, 4537, 4538, 990, 991, 992, 993, 655, 0, 0, 0, 0, 0, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 982, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 983, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 984, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 985, 986, 987, 988, 989, 990, 991, 992, 993, 655, 0, 0, 0, 0, 0, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 982, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 1100, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 1101, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 985, 986, 987, 988, 989, 990, 991, 992, 993, 655, 0, 0, 0, 0, 0, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 982, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 1166, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 1167, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1168, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 985, 986, 987, 988, 989, 990, 991, 992, 993, 655, 0, 0, 0, 0, 0, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 982, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 1845, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 1846, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 985, 986, 987, 988, 989, 990, 991, 992, 993, 655, 0, 0, 0, 0, 0, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 982, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 985, 986, 987, 988, 989, 990, 991, 992, 993, 655, 0, 0, 0, 0, 0, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 982, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 3601, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 3602, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 985, 986, 987, 988, 989, 990, 991, 992, 993, 655, 0, 0, 0, 0, 0, 0, 979, 0, 0, 0, 0, 0, 0, 980, 981, 982, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 5638, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 1739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 985, 986, 987, 988, 989, 990, 991, 992, 993, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1740, 244, 245, 246, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 247, 248, 249, 1748, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 1749, 263, 264, 265, 266, 267, 268, 269, 1750, 1751, 270, 271, 272, 273, 274, 1752, 275, 276, 277, 278, 279, 1753, 280, 1754, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 1755, 292, 293, 294, 295, 296, 297, 1756, 298, 299, 300, 301, 1757, 1758, 1759, 302, 1760, 1761, 1762, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1763, 312, 1764, 313, 314, 315, 316, 317, 318, 319, 1765, 320, 321, 322, 323, 1766, 1767, 324, 325, 326, 327, 328, 1768, 329, 330, 331, 332, 1769, 333, 334, 335, 336, 1770, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 1771, 347, 1772, 348, 349, 350, 351, 352, 1773, 353, 1774, 354, 355, 356, 1775, 357, 358, 359, 360, 361, 1776, 362, 363, 1777, 364, 365, 366, 1778, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 1779, 377, 378, 379, 380, 381, 382, 383, 384, 1780, 385, 386, 387, 388, 389, 390, 391, 392, 393, 1781, 394, 1782, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 1783, 1784, 418, 419, 420, 421, 422, 1785, 423, 424, 425, 1786, 1787, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 1788, 459, 460, 461, 462, 1789, 463, 464, 465, 466, 467, 468, 1790, 469, 470, 471, 1791, 1792, 472, 473, 474, 1793, 1794, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 1795, 493, 494, 495, 496, 497, 498, 499, 500, 501, 1796, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 1797, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 1798, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 1799, 550, 551, 552, 553, 554, 1800, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 1801, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 1802, 582, 583, 1803, 1804, 584, 585, 586, 587, 588, 589, 590, 591, 1805, 592, 593, 594, 1806, 1807, 595, 596, 597, 598, 599, 1808, 600, 601, 602, 603, 604, 605, 606, 607, 608, 1809, 1810, 609, 610, 611, 612, 613, 1811, 1812, 614, 615, 616, 617, 618, 619, 620, 1813, 621, 622, 623, 624, 625, 626, 1814, 1815, 627, 1816, 1817, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1818, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 865, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6087, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6089, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6216, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 877, 260, 878, 879, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 880, 881, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 882, 883, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 0, 347, 0, 348, 349, 350, 885, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 0, 0, 0, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 2733, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 2734, 388, 389, 390, 391, 886, 887, 0, 888, 0, 395, 396, 397, 398, 399, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 0, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 890, 446, 891, 448, 449, 450, 451, 452, 453, 454, 455, 0, 0, 458, 0, 459, 460, 461, 462, 0, 0, 464, 892, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 2735, 475, 476, 2736, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 0, 497, 0, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 893, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 2737, 558, 559, 560, 561, 562, 895, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 896, 897, 0, 0, 595, 596, 0, 598, 0, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 0, 898, 2738, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 0, 3959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 646, 647, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 2739, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 877, 260, 878, 879, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 880, 881, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 882, 883, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 0, 347, 0, 348, 349, 350, 885, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 0, 0, 0, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 2733, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 2734, 388, 389, 390, 391, 886, 887, 0, 888, 0, 395, 396, 397, 398, 399, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 0, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 890, 446, 891, 448, 449, 450, 451, 452, 453, 454, 455, 0, 0, 458, 0, 459, 460, 461, 462, 0, 0, 464, 892, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 2735, 475, 476, 2736, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 0, 497, 0, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 893, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 2737, 558, 559, 560, 561, 562, 895, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 896, 897, 0, 0, 595, 596, 0, 598, 0, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 0, 898, 2738, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 0, 964, 0, 1602, 714, 0, 0, 0, 0, 775, 2623, 645, 646, 647, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 2739, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 2624, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 1828, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 1829, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 1830, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 1602, 714, 0, 0, 0, 0, 775, 2623, 0, 0, 0, 1603, 1604, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 2629, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 1828, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 1829, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 1830, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 1602, 714, 0, 0, 0, 0, 775, 0, 0, 0, 0, 1603, 1604, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 3568, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 1828, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 1829, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 1830, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 1602, 714, 0, 0, 0, 0, 775, 2623, 0, 0, 0, 1603, 1604, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 1828, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 1829, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 1830, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 1602, 714, 0, 0, 0, 0, 775, 0, 0, 0, 0, 1603, 1604, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 1828, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 1829, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 1830, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 775, 0, 0, 0, 0, 1603, 1604, 0, 0, 0, 0, 235, 236, 776, 238, 239, 240, 241, 242, 243, 777, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 778, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 779, 351, 352, 0, 353, 0, 354, 780, 0, 781, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 782, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 783, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 784, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 785, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 786, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 787, 788, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 3, 4, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 1043, 1739, 0, 6405, 714, 0, 0, 0, 0, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1740, 244, 245, 246, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 247, 248, 249, 1748, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 1749, 263, 264, 265, 266, 267, 268, 269, 1750, 1751, 270, 271, 272, 273, 274, 1752, 275, 276, 277, 278, 279, 1753, 280, 1754, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 1755, 292, 293, 294, 295, 296, 297, 1756, 298, 299, 300, 301, 1757, 1758, 1759, 302, 1760, 1761, 1762, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1763, 312, 1764, 313, 314, 315, 316, 317, 318, 319, 1765, 320, 321, 322, 323, 1766, 1767, 324, 325, 326, 327, 328, 1768, 329, 330, 331, 332, 1769, 333, 334, 335, 336, 1770, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 1771, 347, 1772, 348, 349, 350, 351, 352, 1773, 353, 1774, 354, 355, 356, 1775, 357, 358, 359, 360, 361, 1776, 362, 363, 1777, 364, 365, 366, 1778, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 1779, 377, 378, 379, 380, 381, 382, 383, 384, 1780, 385, 386, 387, 388, 389, 390, 391, 392, 393, 1781, 394, 1782, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 1783, 1784, 418, 419, 420, 421, 422, 1785, 423, 424, 425, 1786, 1787, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 1788, 459, 460, 461, 462, 1789, 463, 464, 465, 466, 467, 468, 1790, 469, 470, 471, 1791, 1792, 472, 473, 474, 1793, 1794, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 1795, 493, 494, 495, 496, 497, 498, 499, 500, 501, 1796, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 1797, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 1798, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 1799, 550, 551, 552, 553, 554, 1800, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 1801, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 1802, 582, 583, 1803, 1804, 584, 585, 586, 587, 588, 589, 590, 591, 1805, 592, 593, 594, 1806, 1807, 595, 596, 597, 598, 599, 1808, 600, 601, 602, 603, 604, 605, 606, 607, 608, 1809, 1810, 609, 610, 611, 612, 613, 1811, 1812, 614, 615, 616, 617, 618, 619, 620, 1813, 621, 622, 623, 624, 625, 626, 1814, 1815, 627, 1816, 1817, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 1739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1740, 244, 245, 246, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 247, 248, 249, 1748, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 1749, 263, 264, 265, 266, 267, 268, 269, 1750, 1751, 270, 271, 272, 273, 274, 1752, 275, 276, 277, 278, 279, 1753, 280, 1754, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 1755, 292, 293, 294, 295, 296, 297, 1756, 298, 299, 300, 301, 1757, 1758, 1759, 302, 1760, 1761, 1762, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1763, 312, 1764, 313, 314, 315, 316, 317, 318, 319, 1765, 320, 321, 322, 323, 1766, 1767, 324, 325, 326, 327, 328, 1768, 329, 330, 331, 332, 1769, 333, 334, 335, 336, 1770, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 1771, 347, 1772, 348, 349, 350, 351, 352, 1773, 353, 1774, 354, 355, 356, 1775, 357, 358, 359, 360, 361, 1776, 362, 363, 1777, 364, 365, 366, 1778, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 1779, 377, 378, 379, 380, 381, 382, 383, 384, 1780, 385, 386, 387, 388, 389, 390, 391, 392, 393, 1781, 394, 1782, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 1783, 1784, 418, 419, 420, 421, 422, 1785, 423, 424, 425, 1786, 1787, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 1788, 459, 460, 461, 462, 1789, 463, 464, 465, 466, 467, 468, 1790, 469, 470, 471, 1791, 1792, 472, 473, 474, 1793, 1794, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 1795, 493, 494, 495, 496, 497, 498, 499, 500, 501, 1796, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 1797, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 1798, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 1799, 550, 551, 552, 553, 554, 1800, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 1801, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 1802, 582, 583, 1803, 1804, 584, 585, 586, 587, 588, 589, 590, 591, 1805, 592, 593, 594, 1806, 1807, 595, 596, 597, 598, 599, 1808, 600, 601, 602, 603, 604, 605, 606, 607, 608, 1809, 1810, 609, 610, 611, 612, 613, 1811, 1812, 614, 615, 616, 617, 618, 619, 620, 1813, 621, 622, 623, 624, 625, 626, 1814, 1815, 627, 1816, 1817, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 1739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 3676, 241, 242, 243, 1740, 244, 245, 246, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 247, 248, 249, 1748, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 1749, 263, 264, 265, 266, 267, 268, 269, 1750, 1751, 270, 271, 272, 273, 274, 1752, 275, 276, 277, 278, 279, 1753, 280, 1754, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 1755, 292, 293, 294, 295, 296, 297, 1756, 298, 299, 300, 301, 1757, 1758, 1759, 302, 1760, 1761, 1762, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1763, 312, 1764, 313, 314, 315, 316, 317, 318, 319, 1765, 320, 321, 322, 323, 1766, 1767, 324, 325, 326, 3677, 328, 1768, 329, 330, 331, 332, 1769, 333, 334, 335, 336, 1770, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 1771, 347, 1772, 348, 349, 350, 351, 352, 1773, 353, 1774, 354, 355, 356, 1775, 357, 358, 359, 360, 361, 1776, 362, 363, 1777, 364, 365, 366, 1778, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 1779, 377, 378, 379, 380, 381, 382, 383, 384, 1780, 385, 386, 387, 388, 389, 390, 391, 392, 393, 1781, 394, 1782, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 1783, 1784, 418, 419, 420, 421, 422, 1785, 423, 424, 425, 1786, 1787, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 1788, 459, 460, 461, 462, 1789, 463, 464, 465, 466, 467, 468, 1790, 469, 470, 471, 1791, 1792, 472, 473, 474, 1793, 1794, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 1795, 493, 494, 495, 496, 497, 498, 499, 500, 501, 1796, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 1797, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 1798, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 1799, 550, 551, 552, 553, 554, 1800, 3678, 556, 557, 558, 559, 560, 561, 562, 563, 564, 1801, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 1802, 582, 583, 1803, 1804, 584, 585, 586, 587, 588, 589, 590, 591, 1805, 592, 593, 594, 1806, 1807, 595, 596, 597, 598, 599, 1808, 600, 601, 602, 603, 604, 605, 606, 607, 608, 1809, 1810, 609, 610, 611, 612, 613, 1811, 1812, 614, 615, 616, 617, 618, 619, 620, 1813, 621, 622, 623, 624, 625, 626, 1814, 1815, 627, 1816, 1817, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 1278, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 1281, 0, 1282, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 1294, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 1297, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 3473, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 409, 1311, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 1312, 420, 421, 422, 0, 423, 424, 425, 1313, 1314, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 1315, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 1318, 458, 0, 459, 460, 461, 462, 0, 1321, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 1324, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 1325, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 1328, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1330, 581, 0, 582, 583, 1331, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 1334, 598, 1335, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 1338, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 1340, 1341, 1342, 1343, 639, 1344, 1345, 1346, 1347, 644, 645, 646, 647, 234, 0, 1268, 714, 0, 1269, 1270, 0, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1274, 260, 1275, 1276, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 1279, 1280, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 1290, 1291, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 1295, 347, 0, 348, 349, 350, 1296, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 1299, 1300, 0, 1301, 0, 395, 396, 397, 398, 399, 6379, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 1316, 446, 1317, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 1320, 463, 464, 1322, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1326, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 1329, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 1332, 1333, 0, 0, 595, 596, 597, 598, 599, 1336, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 1339, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1003, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 965, 302, 0, 0, 966, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 967, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1024, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 965, 302, 0, 0, 966, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 1025, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 967, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 965, 302, 0, 0, 966, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 967, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 3004, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 965, 302, 0, 0, 966, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 4030, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 967, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 0, 714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 1828, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 1829, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 1830, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 965, 302, 0, 0, 966, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 967, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 965, 302, 0, 0, 966, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 1119, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 967, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 965, 302, 0, 0, 966, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1161, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 967, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 965, 302, 0, 0, 966, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1174, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 967, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 965, 302, 0, 0, 966, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1186, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 1187, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 967, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 0, 714, 0, 0, 0, 0, 0, 2606, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 2607, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 0, 714, 0, 0, 0, 0, 0, 1396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 0, 714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1145, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1158, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1172, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1176, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 2838, 275, 276, 277, 278, 279, 0, 0, 2839, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 2840, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 2841, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 2842, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 2843, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 2844, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 2845, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 2838, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 2840, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 2841, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 2842, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 3893, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 2844, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 2845, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 794, 244, 795, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 796, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 827, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 797, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 798, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 794, 244, 795, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 796, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 3575, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 797, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 798, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 2838, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 2840, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 2841, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 2842, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 2844, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 2845, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 794, 244, 795, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 796, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 797, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 798, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 3080, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 2910, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 859, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 2911, 2912, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 2006, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 2007, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 2008, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 2009, 354, 355, 0, 0, 0, 2010, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 2011, 2012, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 2013, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 2014, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 2015, 538, 539, 540, 541, 542, 543, 2016, 545, 546, 547, 548, 549, 0, 2017, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 2018, 584, 0, 2019, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 2020, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 795, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 796, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 797, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 798, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 2910, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 859, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 2911, 2912, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1017, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1018, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 859, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 714, 0, 0, 0, 0, 0, 1398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 3657, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 3658, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 3670, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 3671, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 656, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 705, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 706, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 819, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 820, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 821, 594, 0, 0, 822, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 853, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 854, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 855, 594, 0, 0, 856, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 859, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 974, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 975, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1137, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1387, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 1400, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 839, 271, 272, 273, 1401, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 842, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 843, 535, 536, 537, 538, 539, 540, 541, 542, 543, 844, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 1391, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 846, 594, 0, 0, 847, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 848, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1546, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 859, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1607, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1608, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 819, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 3422, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 3423, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 3424, 584, 0, 586, 587, 3425, 589, 3426, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 3427, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 4249, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 4263, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 4409, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 4935, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 5008, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 5369, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 811, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 817, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 839, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 840, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 841, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 842, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 843, 535, 536, 537, 538, 539, 540, 541, 542, 543, 844, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 845, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 846, 594, 0, 0, 847, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 848, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 871, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 999, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1009, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1012, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1028, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1085, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1090, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1107, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1110, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1112, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1150, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1178, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1180, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1190, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1193, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1196, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 839, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 842, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 843, 535, 536, 537, 538, 539, 540, 541, 542, 543, 844, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 1391, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 846, 594, 0, 0, 847, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 848, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1871, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1905, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1907, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1947, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1949, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 1951, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 2045, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 2725, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 0, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 839, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 842, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 843, 535, 536, 537, 538, 539, 540, 541, 542, 543, 844, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 1391, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 2759, 587, 588, 589, 590, 591, 0, 592, 846, 594, 0, 0, 847, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 848, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 839, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 842, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 843, 535, 536, 537, 538, 539, 540, 541, 542, 543, 2821, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 2822, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 846, 594, 0, 0, 2823, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 848, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 839, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 842, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 843, 535, 536, 537, 538, 539, 540, 541, 542, 543, 2907, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 2822, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 846, 594, 0, 0, 2823, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 848, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 839, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 842, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 843, 535, 536, 537, 538, 539, 540, 541, 542, 543, 2931, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 2822, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 846, 594, 0, 0, 2823, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 848, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 3125, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 3129, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 3187, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 3580, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 839, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 842, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 843, 535, 536, 537, 538, 539, 540, 541, 542, 543, 844, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 2822, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 846, 594, 0, 0, 2823, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 848, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 3638, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 3660, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 3662, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 3812, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 3854, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 5122, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 365, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 6344, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 0, 347, 0, 348, 349, 350, 351, 352, 0, 353, 0, 354, 355, 0, 0, 0, 358, 359, 360, 361, 0, 362, 363, 0, 364, 0, 366, 0, 367, 368, 369, 370, 371, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 0, 395, 0, 0, 398, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 419, 0, 421, 0, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, 0, 462, 0, 463, 464, 465, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 477, 0, 479, 0, 481, 482, 483, 484, 485, 486, 487, 488, 0, 490, 491, 492, 0, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 0, 512, 513, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 0, 534, 535, 536, 537, 538, 539, 0, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 557, 558, 559, 0, 561, 562, 563, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 0, 582, 583, 0, 0, 584, 0, 586, 587, 588, 589, 590, 591, 0, 592, 593, 594, 0, 0, 595, 596, 597, 598, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 619, 620, 0, 621, 0, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 877, 260, 878, 879, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 880, 881, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 882, 883, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 0, 347, 0, 348, 349, 350, 885, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 0, 0, 0, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 2733, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 2734, 388, 389, 390, 391, 886, 887, 0, 888, 0, 395, 396, 397, 398, 399, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 0, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 890, 446, 891, 448, 449, 450, 451, 452, 453, 454, 455, 0, 0, 458, 0, 459, 460, 461, 462, 0, 0, 464, 892, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 2736, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 0, 497, 0, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 893, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 2737, 558, 559, 560, 561, 562, 895, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 896, 897, 0, 0, 595, 596, 0, 598, 0, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 0, 898, 2738, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 646, 647, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 877, 260, 878, 879, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 880, 881, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 882, 883, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 0, 347, 0, 348, 349, 350, 885, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 0, 0, 0, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 0, 388, 389, 390, 391, 886, 887, 0, 888, 0, 395, 396, 397, 398, 399, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 0, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 890, 446, 891, 448, 449, 450, 451, 452, 453, 454, 455, 0, 0, 458, 0, 459, 460, 461, 462, 2817, 0, 464, 892, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 0, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 0, 497, 0, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 893, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 2737, 558, 559, 560, 561, 562, 895, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 0, 582, 583, 0, 4636, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 896, 897, 0, 0, 595, 596, 0, 598, 0, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 0, 898, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 646, 647, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 877, 260, 878, 879, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 880, 881, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 882, 883, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 0, 347, 0, 348, 349, 350, 885, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 0, 0, 0, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 0, 388, 389, 390, 391, 886, 887, 0, 888, 0, 395, 396, 397, 398, 399, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 0, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 890, 446, 891, 448, 449, 450, 451, 452, 453, 454, 455, 2897, 0, 458, 0, 459, 460, 461, 462, 0, 0, 464, 892, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 0, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 0, 497, 0, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 893, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 894, 558, 559, 560, 561, 562, 895, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 896, 897, 0, 0, 595, 596, 0, 598, 0, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 0, 898, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 646, 647, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 877, 260, 878, 879, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 880, 881, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 882, 883, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 0, 347, 0, 348, 349, 350, 885, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 0, 0, 0, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 0, 388, 389, 390, 391, 886, 887, 0, 888, 0, 395, 396, 397, 398, 399, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 0, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 890, 446, 891, 448, 449, 450, 451, 452, 453, 454, 455, 4431, 0, 458, 0, 459, 460, 461, 462, 0, 0, 464, 892, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 0, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 0, 497, 0, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 893, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 894, 558, 559, 560, 561, 562, 895, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 896, 897, 0, 0, 595, 596, 0, 598, 0, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 0, 898, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 646, 647, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 877, 260, 878, 879, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 880, 881, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 882, 883, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 0, 347, 0, 348, 349, 350, 885, 352, 6031, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 0, 0, 0, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 0, 388, 389, 390, 391, 886, 887, 0, 888, 0, 395, 396, 397, 398, 399, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 0, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 890, 446, 891, 448, 449, 450, 451, 452, 453, 454, 455, 0, 0, 458, 0, 459, 460, 461, 462, 0, 0, 464, 892, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 0, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 0, 497, 0, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 893, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 894, 558, 559, 560, 561, 562, 895, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 896, 897, 0, 0, 595, 596, 0, 598, 0, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 0, 898, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 646, 647, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 877, 260, 878, 879, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 880, 881, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 882, 883, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 0, 347, 0, 348, 349, 350, 885, 352, 6387, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 0, 0, 0, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 0, 388, 389, 390, 391, 886, 887, 0, 888, 0, 395, 396, 397, 398, 399, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 0, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 890, 446, 891, 448, 449, 450, 451, 452, 453, 454, 455, 0, 0, 458, 0, 459, 460, 461, 462, 0, 0, 464, 892, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 0, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 0, 497, 0, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 893, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 894, 558, 559, 560, 561, 562, 895, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 896, 897, 0, 0, 595, 596, 0, 598, 0, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 0, 898, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 646, 647, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 877, 260, 878, 879, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 880, 881, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 882, 883, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 0, 347, 0, 348, 349, 350, 885, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 0, 0, 0, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 0, 388, 389, 390, 391, 886, 887, 0, 888, 0, 395, 396, 397, 398, 399, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 0, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 890, 446, 891, 448, 449, 450, 451, 452, 453, 454, 455, 0, 0, 458, 0, 459, 460, 461, 462, 0, 0, 464, 892, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 0, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 0, 497, 0, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 893, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 894, 558, 559, 560, 561, 562, 895, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 896, 897, 0, 0, 595, 596, 0, 598, 0, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 0, 898, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 646, 647, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 877, 260, 878, 879, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 880, 881, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 882, 883, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 0, 347, 0, 348, 349, 350, 885, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 0, 0, 0, 365, 366, 0, 367, 368, 369, 370, 1152, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 0, 388, 389, 390, 391, 886, 887, 0, 888, 0, 395, 396, 397, 398, 399, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 0, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 890, 446, 891, 448, 449, 450, 451, 452, 453, 454, 455, 0, 0, 458, 0, 459, 460, 461, 462, 0, 0, 464, 892, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 0, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 0, 497, 0, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 893, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 894, 558, 559, 560, 561, 562, 895, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 896, 897, 0, 0, 595, 596, 0, 598, 0, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 0, 898, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 646, 647, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 877, 260, 878, 879, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 880, 881, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 882, 883, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 0, 347, 0, 348, 349, 350, 885, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 0, 0, 0, 365, 366, 0, 367, 368, 369, 370, 1184, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 0, 388, 389, 390, 391, 886, 887, 0, 888, 0, 395, 396, 397, 398, 399, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 0, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 890, 446, 891, 448, 449, 450, 451, 452, 453, 454, 455, 0, 0, 458, 0, 459, 460, 461, 462, 0, 0, 464, 892, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 0, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 0, 497, 0, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 893, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 894, 558, 559, 560, 561, 562, 895, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 896, 897, 0, 0, 595, 596, 0, 598, 0, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 0, 898, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 646, 647, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 877, 260, 878, 879, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 880, 881, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 882, 883, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 0, 347, 0, 348, 349, 350, 885, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 0, 0, 0, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 0, 388, 389, 390, 391, 886, 887, 0, 888, 0, 395, 396, 397, 398, 399, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 0, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 890, 446, 891, 448, 449, 450, 451, 452, 453, 454, 455, 0, 0, 458, 0, 459, 460, 461, 462, 0, 0, 464, 892, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 0, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 0, 497, 0, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 893, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 2737, 558, 559, 560, 561, 562, 895, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 896, 897, 0, 0, 595, 596, 0, 598, 0, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 0, 898, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 646, 647, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 877, 260, 878, 879, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 880, 881, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 882, 883, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 884, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 0, 347, 0, 348, 349, 350, 885, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 0, 0, 0, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 0, 388, 389, 390, 391, 886, 887, 0, 888, 0, 395, 396, 397, 398, 399, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 0, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 890, 446, 891, 448, 449, 450, 451, 452, 453, 454, 455, 0, 0, 458, 0, 459, 460, 461, 462, 0, 0, 464, 892, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 0, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 0, 497, 0, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 893, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 0, 558, 559, 560, 561, 562, 895, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 896, 897, 0, 0, 595, 596, 0, 598, 0, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 0, 898, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 646, 647, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 0, 260, 0, 0, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 0, 0, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 0, 292, 293, 294, 295, 296, 297, 0, 298, 299, 300, 301, 0, 0, 0, 302, 0, 0, 0, 303, 304, 305, 306, 307, 308, 0, 0, 311, 0, 312, 0, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, 333, 334, 335, 336, 0, 337, 338, 339, 340, 0, 342, 343, 344, 345, 0, 0, 347, 0, 348, 349, 350, 0, 352, 0, 353, 0, 354, 355, 356, 0, 357, 358, 359, 360, 361, 0, 362, 0, 0, 0, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 0, 377, 378, 379, 380, 381, 382, 383, 384, 0, 385, 386, 0, 388, 389, 390, 391, 0, 0, 0, 0, 0, 395, 396, 397, 398, 399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 412, 413, 414, 415, 416, 417, 0, 0, 418, 0, 420, 421, 422, 0, 423, 424, 425, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 0, 437, 438, 439, 440, 441, 442, 443, 444, 0, 446, 0, 448, 449, 450, 451, 452, 453, 454, 455, 0, 0, 458, 0, 459, 460, 461, 462, 0, 0, 464, 0, 466, 467, 468, 0, 469, 470, 471, 0, 0, 472, 473, 474, 0, 0, 475, 476, 0, 478, 479, 480, 0, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 0, 493, 494, 495, 0, 497, 0, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 0, 514, 515, 516, 517, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 0, 531, 532, 533, 534, 535, 536, 537, 538, 0, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 0, 550, 551, 552, 553, 554, 0, 555, 556, 0, 558, 559, 560, 561, 562, 0, 564, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 0, 581, 0, 582, 583, 0, 0, 584, 585, 586, 587, 588, 589, 590, 591, 0, 592, 0, 0, 0, 0, 595, 596, 0, 598, 0, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 0, 0, 609, 610, 611, 612, 613, 0, 0, 614, 615, 616, 617, 618, 0, 0, 0, 621, 622, 623, 624, 625, 626, 0, 0, 627, 0, 0, 628, 629, 630, 631, 632, 633, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 646, 647 }; static const yytype_int16 yycheck[] = { 6, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 206, 0, 0, 23, 683, 25, 1038, 0, 214, 29, 211, 217, 21, 211, 34, 35, 36, 1047, 38, 1010, 662, 41, 42, 840, 44, 8, 46, 939, 21, 1225, 1164, 1027, 15, 53, 54, 55, 837, 22, 1661, 189, 796, 797, 798, 28, 0, 1594, 802, 0, 933, 894, 935, 1578, 2845, 1042, 1011, 1504, 882, 883, 0, 913, 0, 864, 1036, 2719, 36, 2043, 892, 1571, 2720, 3073, 1113, 756, 1578, 715, 830, 1272, 1259, 3248, 715, 197, 45, 863, 216, 1583, 1901, 3138, 3431, 2051, 3433, 847, 897, 1087, 3730, 760, 3526, 1091, 230, 951, 1244, 2032, 1096, 4278, 1248, 738, 2069, 1251, 1252, 3955, 1729, 2070, 1106, 1624, 1625, 2991, 3614, 1628, 3648, 752, 3650, 3928, 762, 23, 1571, 3676, 1120, 3678, 3085, 3944, 3880, 4300, 664, 44, 4362, 3484, 36, 3536, 4838, 4321, 2108, 2969, 2110, 191, 3977, 761, 1461, 191, 175, 1696, 1697, 751, 5232, 1914, 1040, 4601, 4569, 1151, 1973, 2741, 2742, 1561, 4607, 2065, 2066, 2067, 2068, 4624, 3100, 2071, 5324, 2073, 2074, 5364, 4612, 815, 4739, 2, 4741, 197, 198, 199, 962, 4407, 202, 3390, 5152, 5454, 206, 4854, 208, 4856, 1690, 211, 35, 976, 214, 1010, 4611, 217, 2595, 42, 220, 843, 222, 2600, 1019, 225, 843, 3500, 2636, 229, 2704, 231, 50, 2706, 1029, 5103, 5490, 1717, 1001, 1621, 5160, 3546, 3292, 1006, 5502, 3942, 868, 6, 936, 3385, 3478, 5147, 4928, 11, 0, 936, 1638, 11, 0, 5755, 0, 0, 1544, 23, 736, 6, 13, 739, 6, 1102, 41, 3081, 40, 23, 12, 2683, 49, 5355, 122, 3038, 25, 3040, 3041, 5151, 2084, 1118, 3045, 3046, 3047, 1051, 3049, 3050, 3051, 960, 4777, 2038, 25, 6, 5451, 6, 6, 6004, 39, 12, 6, 12, 3534, 6, 930, 27, 12, 45, 97, 12, 2677, 39, 15, 16, 3483, 11, 3485, 3486, 179, 5739, 6, 870, 56, 880, 881, 6, 12, 87, 225, 5411, 1001, 124, 39, 2677, 891, 1006, 6, 0, 5418, 5419, 49, 1081, 12, 82, 6, 173, 977, 94, 11, 6, 12, 6, 49, 15, 16, 12, 4461, 12, 0, 6, 15, 16, 37, 196, 3, 12, 6, 6, 31, 11, 179, 6, 12, 12, 6, 1524, 6, 12, 65, 39, 12, 150, 12, 1880, 158, 3, 180, 5, 6, 31, 186, 39, 179, 11, 12, 224, 6, 13, 5, 53, 184, 124, 6, 115, 11, 157, 6, 5691, 12, 5693, 124, 191, 122, 5697, 5698, 4625, 1047, 157, 173, 195, 142, 1047, 310, 258, 5443, 290, 122, 6122, 6123, 179, 135, 47, 82, 179, 197, 179, 179, 122, 65, 137, 65, 146, 172, 206, 1417, 316, 1473, 1405, 32, 44, 65, 214, 1103, 203, 217, 403, 361, 203, 31, 203, 203, 324, 390, 5963, 80, 38, 181, 126, 344, 179, 45, 5371, 273, 5, 258, 15, 380, 37, 117, 11, 1290, 1291, 298, 29, 268, 448, 27, 65, 60, 31, 167, 65, 1465, 316, 27, 31, 6385, 273, 683, 5757, 33, 385, 38, 89, 122, 228, 52, 4939, 483, 450, 31, 101, 1322, 122, 228, 264, 179, 38, 80, 433, 4702, 4703, 4704, 13, 4706, 4707, 4708, 4709, 4710, 173, 1622, 264, 6440, 82, 5954, 299, 65, 179, 82, 5491, 203, 39, 1333, 310, 82, 299, 6454, 1639, 733, 6438, 65, 435, 1171, 197, 495, 82, 195, 47, 472, 131, 535, 203, 303, 681, 173, 82, 225, 94, 472, 687, 393, 294, 5654, 478, 450, 13, 539, 94, 255, 127, 294, 699, 82, 169, 373, 127, 355, 1353, 13, 1461, 80, 539, 90, 394, 410, 185, 294, 312, 158, 13, 1573, 142, 6, 1205, 326, 223, 201, 535, 94, 142, 340, 446, 477, 1232, 299, 370, 479, 1383, 394, 495, 6315, 326, 47, 10, 1243, 6125, 13, 179, 179, 51, 17, 18, 19, 356, 273, 219, 179, 276, 144, 1265, 258, 1260, 356, 303, 1265, 245, 368, 535, 389, 34, 1199, 179, 1462, 40, 406, 80, 440, 390, 442, 663, 186, 5312, 34, 368, 129, 669, 406, 671, 539, 673, 218, 4407, 676, 219, 535, 1655, 218, 525, 1658, 683, 668, 403, 475, 5702, 688, 469, 690, 374, 400, 438, 186, 668, 696, 431, 203, 299, 492, 477, 186, 4435, 5984, 478, 535, 463, 5962, 438, 453, 535, 115, 448, 539, 1727, 1728, 5870, 488, 1864, 720, 762, 5875, 5876, 469, 375, 1279, 1280, 334, 729, 1667, 4882, 668, 733, 539, 668, 736, 3100, 6234, 739, 469, 478, 448, 448, 482, 535, 668, 539, 668, 494, 6453, 374, 1547, 374, 539, 755, 539, 766, 476, 394, 3100, 1426, 6465, 374, 1317, 494, 2048, 535, 526, 527, 535, 1725, 496, 478, 25, 5258, 1403, 448, 1400, 539, 534, 1408, 1409, 1400, 531, 478, 1408, 1409, 761, 539, 535, 4580, 538, 496, 535, 1628, 538, 535, 538, 538, 374, 5749, 448, 1491, 374, 535, 535, 1352, 808, 939, 1491, 776, 1483, 778, 1609, 780, 6232, 817, 6314, 525, 1645, 786, 5898, 4620, 4442, 2001, 535, 790, 535, 539, 4448, 537, 4621, 535, 526, 527, 535, 837, 838, 4940, 840, 841, 1734, 226, 413, 845, 1609, 1680, 1681, 374, 4951, 533, 496, 535, 4366, 537, 539, 5753, 396, 859, 431, 1975, 6116, 374, 864, 6361, 403, 526, 527, 535, 870, 6129, 1058, 516, 517, 510, 1062, 535, 1064, 538, 1061, 413, 535, 1061, 535, 1438, 1439, 1432, 526, 527, 516, 517, 535, 4625, 2008, 6144, 413, 927, 127, 535, 538, 927, 1569, 448, 535, 27, 2020, 535, 448, 535, 4241, 33, 526, 527, 448, 808, 539, 917, 539, 531, 4107, 4108, 1549, 526, 527, 448, 25, 471, 539, 312, 122, 931, 1559, 471, 471, 448, 929, 929, 929, 929, 929, 929, 929, 929, 944, 929, 929, 929, 929, 25, 929, 929, 448, 1498, 1052, 1622, 929, 1616, 5634, 959, 953, 720, 3772, 3773, 492, 539, 448, 3777, 462, 539, 729, 864, 1639, 6051, 4671, 533, 3915, 736, 978, 537, 739, 4117, 6236, 983, 984, 3549, 488, 3551, 516, 525, 371, 539, 539, 929, 1862, 6073, 929, 533, 526, 527, 539, 537, 496, 371, 385, 4192, 387, 929, 4313, 929, 5958, 535, 473, 264, 539, 1015, 1016, 539, 4530, 1646, 142, 421, 422, 1650, 1651, 4253, 25, 159, 539, 4257, 1544, 3505, 435, 3506, 539, 179, 5214, 3445, 1038, 1039, 4090, 5961, 528, 529, 530, 531, 5474, 539, 1881, 4529, 23, 944, 1052, 871, 1054, 539, 25, 2069, 1058, 6313, 115, 1061, 1062, 30, 1064, 173, 959, 6240, 6241, 1069, 841, 115, 453, 5941, 845, 4240, 27, 4242, 4243, 6011, 54, 2050, 33, 65, 6, 6045, 5481, 127, 65, 5957, 6, 352, 6154, 1093, 528, 529, 530, 531, 347, 3858, 1100, 1101, 3912, 122, 5641, 526, 527, 528, 529, 530, 531, 3, 3475, 39, 127, 3478, 526, 527, 528, 529, 530, 531, 1122, 1123, 1124, 138, 1126, 94, 1128, 6207, 1130, 1131, 324, 117, 6, 3475, 2105, 122, 3478, 390, 523, 524, 525, 526, 527, 528, 529, 530, 531, 31, 5360, 326, 6401, 179, 404, 3616, 179, 127, 157, 6295, 3537, 180, 4435, 3526, 1164, 264, 1166, 1167, 27, 6117, 191, 3534, 190, 78, 1910, 387, 4656, 203, 218, 5385, 4592, 23, 448, 5830, 385, 25, 3526, 438, 264, 74, 6363, 142, 1015, 1016, 3534, 368, 122, 179, 13, 1199, 473, 93, 334, 127, 326, 1827, 6126, 440, 304, 442, 208, 195, 35, 36, 181, 65, 313, 1844, 469, 311, 2017, 2018, 175, 25, 198, 1225, 42, 1227, 403, 203, 10, 1231, 1205, 1233, 154, 331, 372, 17, 18, 19, 56, 453, 471, 494, 290, 1208, 368, 1210, 218, 1212, 316, 1214, 25, 1216, 1217, 1218, 148, 1257, 1625, 1259, 1223, 1628, 535, 1263, 27, 80, 2134, 403, 179, 290, 155, 66, 91, 539, 535, 448, 295, 1277, 101, 74, 254, 403, 5827, 142, 535, 535, 535, 479, 6424, 273, 175, 390, 276, 1052, 218, 264, 25, 113, 121, 1058, 270, 5721, 222, 1062, 448, 1064, 310, 725, 5736, 294, 25, 1352, 2741, 1978, 390, 134, 3880, 5745, 210, 1319, 5747, 5149, 6242, 6385, 181, 5720, 299, 2807, 5767, 1136, 1945, 5751, 6292, 751, 535, 158, 5873, 355, 6270, 438, 2102, 3084, 2007, 535, 1959, 5142, 2011, 5136, 1348, 1349, 1350, 2016, 1352, 2839, 2019, 5750, 1938, 1972, 5173, 778, 779, 780, 438, 3308, 783, 784, 785, 5795, 386, 1128, 469, 1130, 1131, 1373, 793, 326, 6438, 299, 2675, 142, 435, 513, 349, 299, 492, 4897, 385, 1985, 1970, 6, 316, 435, 6312, 469, 105, 494, 316, 374, 2069, 2070, 492, 217, 307, 6323, 122, 390, 3970, 406, 390, 4921, 394, 2891, 1421, 2084, 1414, 3, 456, 368, 494, 156, 387, 390, 2093, 2082, 264, 448, 3027, 299, 3889, 3, 3, 471, 1432, 182, 408, 1616, 535, 435, 535, 535, 290, 333, 6362, 535, 435, 2827, 1476, 1477, 4362, 1479, 1476, 1477, 403, 1479, 473, 337, 477, 299, 471, 535, 345, 74, 264, 258, 5628, 511, 492, 326, 205, 438, 1942, 5622, 396, 539, 290, 6395, 27, 188, 1478, 165, 6136, 94, 1482, 1483, 451, 1957, 453, 3437, 1960, 6171, 457, 264, 349, 1493, 1494, 1495, 1496, 180, 1498, 4880, 469, 471, 484, 241, 2049, 93, 2051, 6427, 4839, 368, 329, 31, 2057, 1880, 3117, 5943, 398, 70, 2063, 2064, 93, 1521, 3322, 3323, 374, 494, 510, 3327, 158, 533, 2075, 331, 312, 537, 2048, 264, 268, 448, 2010, 181, 2085, 364, 2014, 2015, 403, 465, 2091, 471, 122, 264, 390, 535, 360, 403, 117, 316, 1556, 304, 440, 147, 442, 1561, 294, 326, 1564, 85, 535, 5100, 88, 3369, 3370, 309, 464, 396, 147, 95, 392, 1577, 1578, 290, 472, 466, 376, 475, 331, 2597, 1586, 10, 390, 1589, 13, 142, 94, 6249, 17, 18, 19, 158, 438, 525, 1493, 350, 1495, 123, 4637, 368, 324, 533, 74, 535, 536, 537, 435, 539, 525, 4843, 1616, 390, 1618, 91, 4848, 1621, 441, 4851, 1624, 1625, 537, 313, 1628, 469, 2599, 91, 195, 127, 295, 384, 438, 1630, 1638, 1057, 403, 1641, 1635, 5853, 1644, 304, 311, 330, 142, 398, 1068, 331, 3136, 5385, 494, 188, 479, 6136, 311, 191, 483, 390, 134, 183, 5492, 438, 1084, 469, 1668, 492, 312, 27, 331, 261, 134, 390, 196, 485, 396, 4593, 325, 294, 184, 5480, 304, 6113, 1686, 436, 261, 209, 126, 301, 494, 516, 488, 535, 469, 311, 1698, 1699, 1700, 1701, 1702, 3132, 403, 124, 208, 3136, 203, 438, 273, 331, 535, 276, 6370, 5872, 1716, 435, 1711, 390, 294, 494, 1715, 438, 94, 299, 409, 1727, 1728, 1729, 2927, 115, 182, 535, 445, 535, 344, 290, 326, 268, 469, 124, 4600, 523, 524, 525, 526, 527, 528, 529, 530, 531, 122, 326, 469, 2765, 258, 1943, 290, 4518, 334, 479, 535, 314, 4523, 494, 396, 191, 170, 455, 6249, 242, 1953, 1954, 492, 536, 1954, 311, 539, 494, 203, 423, 314, 4556, 4594, 173, 142, 1206, 535, 225, 1209, 364, 1211, 1686, 1213, 368, 1215, 185, 516, 372, 1219, 114, 6230, 226, 138, 435, 535, 2675, 533, 228, 471, 3008, 537, 315, 137, 203, 139, 535, 116, 290, 535, 372, 373, 1241, 154, 154, 1826, 403, 294, 666, 403, 394, 497, 122, 1932, 396, 403, 1837, 167, 492, 539, 385, 450, 4407, 173, 1845, 1846, 380, 342, 479, 438, 10, 403, 441, 13, 535, 403, 329, 17, 18, 19, 1861, 492, 473, 535, 438, 290, 403, 441, 329, 450, 4435, 161, 368, 435, 294, 535, 372, 492, 1879, 1880, 6309, 242, 285, 218, 356, 516, 495, 535, 312, 4253, 6370, 124, 222, 4257, 1895, 1896, 1897, 1898, 6056, 420, 2082, 326, 423, 1904, 535, 290, 196, 403, 370, 208, 1911, 2737, 4253, 1914, 535, 299, 4257, 479, 492, 2717, 758, 4836, 207, 294, 255, 255, 471, 5756, 1929, 290, 492, 1932, 290, 384, 406, 122, 356, 440, 170, 442, 391, 1942, 1943, 368, 477, 31, 510, 398, 5738, 314, 453, 326, 1953, 1954, 516, 269, 1957, 492, 145, 1960, 274, 326, 539, 466, 151, 2937, 469, 5765, 441, 31, 294, 539, 82, 535, 1975, 1976, 306, 244, 165, 212, 441, 1982, 174, 1984, 94, 436, 316, 536, 535, 378, 539, 539, 412, 368, 832, 5382, 492, 473, 4362, 471, 2001, 167, 539, 368, 294, 290, 2875, 2008, 459, 2010, 368, 1985, 2013, 2014, 2015, 247, 2017, 2018, 210, 2020, 516, 4362, 2694, 1987, 2066, 1989, 2027, 1991, 403, 1993, 492, 1995, 2901, 2034, 6245, 1999, 2037, 2038, 5519, 5426, 2041, 2837, 325, 2044, 2045, 406, 3161, 2032, 2049, 125, 2051, 137, 477, 5205, 516, 2056, 2057, 290, 2032, 535, 4625, 294, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 137, 4035, 539, 2079, 5308, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2041, 255, 2091, 390, 2093, 2094, 4053, 2032, 2097, 325, 2032, 523, 524, 525, 526, 527, 528, 529, 530, 531, 2654, 2032, 471, 2032, 299, 2114, 2115, 2116, 3546, 5102, 325, 484, 403, 125, 6342, 199, 4069, 125, 3556, 5956, 3021, 3022, 3023, 2132, 3001, 2027, 433, 465, 435, 2765, 414, 41, 306, 2937, 2765, 184, 448, 4091, 3631, 101, 6419, 6451, 4096, 3755, 312, 2987, 2917, 6366, 5141, 5955, 5974, 368, 535, 2044, 0, 439, 4106, 56, 6468, 121, 0, 1929, 6441, 2172, 1932, 489, 387, 403, 3153, 3355, 2915, 2975, 2917, 5121, 1942, 1943, 5336, 5719, 5338, 5513, 10, 21, 762, 13, 6412, 1612, 403, 199, 403, 1957, 3067, 199, 1960, 3631, 13, 533, 158, 74, 536, 537, 37, 296, 4095, 5126, 103, 4011, 3010, 4100, 4101, 258, 326, 2835, 385, 525, 387, 539, 56, 47, 2990, 492, 4592, 4593, 132, 385, 54, 537, 3728, 3837, 47, 128, 483, 10, 453, 3843, 13, 815, 492, 372, 17, 18, 19, 538, 2010, 4592, 4593, 122, 2014, 2015, 147, 5770, 80, 181, 368, 152, 1630, 492, 372, 419, 37, 1635, 455, 80, 3104, 3105, 3106, 3107, 539, 3109, 403, 368, 2279, 5090, 467, 5092, 96, 174, 154, 27, 539, 178, 453, 6118, 535, 539, 6391, 215, 6393, 403, 868, 167, 3779, 2965, 3134, 2967, 193, 173, 5064, 2971, 5066, 5067, 5068, 396, 539, 5792, 403, 2941, 183, 4941, 360, 4231, 137, 360, 139, 2949, 347, 4949, 2952, 139, 124, 4128, 4129, 4130, 4131, 5744, 2333, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 1711, 294, 3826, 165, 1715, 435, 299, 390, 93, 222, 397, 4239, 3224, 6455, 114, 930, 191, 492, 453, 3540, 523, 524, 525, 526, 527, 528, 529, 530, 531, 373, 50, 5700, 173, 198, 326, 303, 102, 420, 203, 102, 396, 516, 255, 360, 448, 2389, 74, 3127, 435, 479, 135, 179, 80, 73, 4198, 4199, 440, 142, 442, 403, 353, 146, 492, 6235, 539, 299, 94, 364, 230, 473, 5328, 212, 364, 180, 174, 203, 368, 1839, 3951, 435, 397, 440, 294, 442, 167, 469, 516, 299, 1850, 254, 173, 6053, 492, 306, 122, 3086, 124, 492, 485, 396, 326, 485, 5360, 316, 1866, 535, 536, 214, 538, 485, 210, 403, 226, 6246, 180, 326, 516, 180, 435, 353, 326, 516, 229, 479, 286, 287, 288, 289, 326, 4836, 173, 293, 294, 345, 3346, 535, 4843, 299, 435, 326, 3352, 4848, 368, 40, 4851, 252, 326, 312, 214, 290, 362, 214, 4836, 294, 197, 183, 173, 368, 1920, 4843, 34, 40, 368, 229, 4848, 62, 229, 4851, 485, 269, 368, 29, 255, 1935, 274, 393, 1938, 1939, 356, 535, 197, 368, 479, 5852, 212, 3291, 252, 61, 368, 252, 1883, 369, 403, 245, 52, 492, 3432, 403, 312, 3208, 267, 3, 6058, 6059, 83, 403, 534, 1969, 1970, 535, 1903, 539, 82, 525, 5, 281, 403, 114, 281, 516, 11, 399, 272, 306, 94, 537, 28, 294, 19, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 535, 2583, 3211, 326, 536, 408, 5502, 539, 37, 310, 396, 2593, 2594, 492, 465, 2597, 466, 167, 6, 284, 1005, 534, 2604, 173, 12, 40, 539, 6398, 294, 2797, 6, 2799, 2800, 299, 379, 2798, 12, 516, 2798, 1024, 535, 364, 1027, 308, 6, 368, 5656, 62, 453, 435, 12, 5661, 5662, 93, 2636, 455, 2638, 530, 536, 2641, 2642, 539, 535, 2645, 537, 2647, 2637, 467, 2650, 3322, 3323, 206, 2654, 393, 3327, 379, 3784, 6, 379, 345, 403, 536, 533, 12, 539, 5581, 537, 410, 3457, 3458, 5431, 6, 370, 479, 6, 2677, 362, 12, 3617, 114, 12, 2683, 2684, 6, 268, 255, 492, 6201, 148, 12, 102, 514, 2694, 2113, 2794, 3435, 3369, 3370, 516, 517, 268, 2703, 2704, 526, 527, 528, 529, 530, 531, 264, 516, 3547, 98, 3652, 269, 2717, 6, 535, 2834, 274, 516, 517, 12, 2725, 4684, 2727, 5, 3491, 5, 535, 6417, 3392, 11, 6420, 11, 290, 306, 5772, 5, 535, 4700, 6, 536, 203, 11, 539, 4548, 12, 183, 3557, 210, 523, 524, 525, 526, 527, 528, 529, 530, 531, 3731, 5126, 3940, 154, 197, 2767, 324, 2769, 180, 6, 325, 206, 6, 145, 4379, 12, 167, 3324, 12, 151, 466, 2783, 173, 4730, 5126, 536, 208, 6301, 539, 3336, 4737, 4738, 2794, 22, 272, 2797, 2798, 2799, 2800, 28, 2722, 2803, 214, 4602, 2806, 536, 310, 310, 539, 3438, 2926, 315, 315, 2767, 3438, 2769, 533, 229, 373, 5385, 537, 3618, 1001, 530, 5636, 2827, 3373, 1006, 535, 264, 537, 222, 5644, 5645, 269, 668, 528, 2839, 396, 274, 252, 533, 397, 535, 453, 537, 4377, 528, 4379, 89, 2852, 2853, 533, 485, 535, 290, 537, 2859, 535, 154, 537, 6188, 4344, 418, 255, 245, 2868, 295, 296, 281, 3417, 536, 167, 333, 539, 61, 4364, 435, 173, 533, 393, 535, 4313, 537, 71, 72, 536, 4052, 2890, 539, 325, 3007, 286, 287, 288, 289, 3921, 6050, 310, 3335, 536, 3337, 3338, 539, 535, 3883, 3703, 3574, 11, 2911, 536, 2806, 483, 539, 469, 306, 2677, 2668, 2669, 2670, 380, 479, 2924, 536, 535, 316, 539, 222, 761, 762, 15, 16, 536, 4415, 492, 539, 433, 5853, 373, 5505, 533, 536, 535, 5308, 539, 2947, 536, 536, 2950, 539, 539, 35, 36, 536, 3571, 3572, 539, 535, 516, 537, 255, 536, 397, 5328, 539, 310, 5308, 379, 396, 390, 536, 3595, 432, 539, 2976, 2977, 3595, 535, 492, 5613, 494, 536, 536, 418, 536, 539, 5328, 539, 3726, 2991, 539, 2993, 2994, 3731, 535, 5360, 536, 2964, 2677, 539, 536, 61, 536, 539, 464, 539, 492, 435, 494, 3879, 485, 306, 472, 154, 536, 475, 2911, 539, 5360, 536, 50, 316, 539, 3025, 3026, 3027, 167, 536, 536, 3031, 539, 539, 173, 2794, 469, 228, 2797, 3039, 2799, 2800, 6367, 537, 3877, 536, 5960, 536, 539, 512, 539, 536, 3052, 479, 539, 440, 536, 442, 3058, 539, 3060, 536, 536, 473, 539, 539, 492, 536, 313, 3255, 539, 3257, 3258, 3073, 173, 137, 465, 139, 3078, 536, 15, 16, 539, 222, 3084, 4614, 536, 3087, 536, 539, 516, 539, 536, 310, 536, 539, 927, 539, 929, 3099, 3100, 536, 4609, 165, 539, 3720, 385, 386, 536, 535, 3110, 539, 536, 385, 386, 539, 255, 1153, 6443, 512, 3120, 4298, 3122, 1159, 492, 313, 494, 3742, 6112, 536, 310, 536, 539, 1169, 539, 536, 50, 1173, 539, 5502, 492, 1177, 494, 1179, 5288, 536, 4630, 5291, 539, 1185, 536, 516, 517, 539, 3252, 1191, 2095, 536, 1194, 2098, 539, 3161, 5502, 3163, 440, 3165, 442, 306, 230, 385, 386, 10, 465, 3909, 13, 385, 386, 316, 17, 18, 19, 536, 536, 536, 539, 539, 539, 4363, 536, 4365, 536, 539, 4368, 539, 536, 5367, 5368, 539, 3198, 3119, 536, 4630, 4171, 539, 536, 536, 228, 539, 539, 536, 512, 3392, 539, 5849, 536, 6129, 536, 539, 5581, 539, 536, 5819, 5820, 539, 286, 287, 288, 289, 178, 536, 536, 293, 539, 539, 539, 536, 536, 299, 539, 539, 536, 5581, 536, 539, 536, 539, 536, 539, 137, 539, 139, 536, 3252, 3253, 539, 3255, 4039, 3257, 3258, 492, 3260, 494, 3927, 3885, 528, 3887, 536, 3267, 3885, 539, 3887, 4225, 3272, 482, 536, 536, 536, 539, 539, 539, 536, 536, 538, 3324, 539, 3900, 536, 3902, 536, 539, 341, 539, 5237, 5238, 536, 536, 4164, 539, 539, 536, 536, 538, 4271, 539, 39, 536, 536, 536, 539, 539, 539, 536, 536, 10, 539, 539, 13, 536, 536, 3500, 539, 539, 3322, 3323, 3324, 6239, 465, 3327, 6017, 6018, 536, 6245, 3373, 539, 535, 3335, 3336, 3337, 3338, 4308, 536, 3100, 536, 539, 536, 539, 536, 3969, 535, 539, 47, 3351, 3969, 4956, 3354, 536, 3356, 54, 6131, 4024, 536, 536, 536, 539, 539, 539, 54, 55, 536, 3369, 3370, 539, 536, 3373, 1205, 539, 535, 4222, 2796, 4224, 4825, 5744, 4827, 80, 2802, 535, 4258, 226, 4260, 1493, 61, 1495, 3392, 455, 3394, 179, 3396, 224, 3398, 224, 535, 535, 4378, 496, 5744, 467, 537, 535, 535, 368, 203, 159, 535, 537, 159, 310, 203, 3417, 310, 368, 3420, 159, 159, 3100, 3424, 203, 159, 310, 368, 173, 159, 2849, 253, 4060, 124, 4106, 4922, 3478, 473, 310, 4055, 535, 1273, 303, 5244, 3445, 173, 536, 74, 294, 40, 294, 6366, 496, 535, 152, 310, 4128, 4129, 4130, 4131, 294, 1293, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 312, 50, 3475, 50, 4653, 3478, 3479, 3425, 3426, 3427, 3483, 3484, 3485, 3486, 294, 458, 3530, 5853, 4162, 3492, 3252, 294, 93, 3255, 3497, 3257, 3258, 326, 198, 4336, 485, 4310, 485, 203, 89, 453, 173, 348, 159, 3512, 5853, 159, 535, 159, 159, 496, 159, 159, 1352, 539, 159, 159, 159, 3526, 4198, 4199, 159, 3530, 159, 159, 3533, 3534, 173, 3536, 159, 4406, 159, 4408, 159, 159, 159, 310, 435, 535, 40, 253, 173, 4526, 310, 173, 322, 0, 301, 535, 254, 535, 535, 173, 535, 535, 535, 535, 168, 4434, 4504, 535, 22, 5528, 535, 535, 535, 4245, 28, 40, 3577, 4123, 535, 535, 535, 535, 535, 535, 493, 105, 535, 535, 535, 253, 6364, 535, 535, 535, 224, 535, 5960, 535, 45, 40, 3601, 3602, 535, 535, 535, 535, 535, 535, 535, 535, 535, 4157, 535, 535, 312, 535, 535, 535, 539, 5960, 39, 4514, 539, 535, 448, 446, 446, 533, 533, 448, 448, 535, 448, 179, 173, 306, 3637, 539, 173, 403, 3059, 304, 70, 448, 1476, 1477, 448, 1479, 390, 448, 448, 484, 537, 390, 101, 448, 448, 390, 255, 448, 81, 448, 4208, 525, 448, 94, 390, 159, 310, 395, 250, 448, 448, 299, 130, 448, 472, 438, 331, 535, 385, 196, 448, 523, 524, 525, 526, 527, 528, 529, 530, 531, 304, 3694, 310, 448, 94, 535, 3880, 130, 203, 159, 539, 130, 473, 473, 326, 154, 448, 116, 408, 61, 130, 448, 61, 3475, 448, 3718, 3478, 448, 167, 448, 278, 448, 314, 448, 173, 3728, 448, 448, 448, 448, 179, 448, 448, 448, 448, 352, 185, 352, 448, 188, 5172, 352, 448, 192, 438, 331, 448, 331, 49, 448, 5553, 448, 448, 536, 539, 226, 540, 226, 310, 310, 226, 226, 226, 6129, 3526, 226, 448, 226, 458, 226, 535, 226, 3534, 222, 226, 224, 40, 159, 310, 159, 294, 5584, 122, 159, 473, 159, 6129, 159, 261, 484, 310, 294, 294, 294, 40, 3475, 173, 40, 3478, 245, 159, 392, 535, 159, 473, 4435, 255, 298, 159, 473, 303, 535, 535, 159, 514, 4686, 179, 488, 3239, 13, 188, 539, 448, 535, 278, 536, 526, 527, 528, 529, 530, 531, 535, 3254, 3837, 448, 278, 535, 3259, 321, 3843, 450, 196, 535, 512, 394, 3526, 222, 536, 196, 536, 3854, 539, 533, 3534, 512, 539, 306, 536, 536, 536, 310, 276, 406, 536, 473, 311, 316, 40, 3290, 473, 242, 319, 6239, 4548, 61, 539, 489, 10, 6245, 536, 13, 484, 390, 299, 17, 18, 19, 3891, 3892, 3893, 299, 10, 299, 448, 13, 6239, 173, 448, 17, 18, 19, 6245, 4875, 448, 3908, 299, 310, 50, 1948, 242, 310, 412, 294, 242, 47, 253, 1956, 253, 3922, 253, 310, 54, 385, 272, 535, 438, 376, 10, 448, 535, 13, 5111, 130, 203, 535, 368, 3940, 3941, 3942, 310, 539, 539, 3946, 310, 310, 492, 197, 80, 400, 403, 448, 356, 448, 316, 3958, 4574, 4575, 536, 10, 40, 4789, 13, 226, 473, 47, 17, 18, 19, 473, 245, 159, 54, 351, 304, 173, 5486, 485, 525, 40, 175, 400, 431, 352, 159, 159, 436, 304, 159, 473, 4858, 294, 40, 535, 492, 535, 47, 294, 80, 310, 6366, 29, 310, 54, 4672, 4673, 4674, 4675, 4676, 245, 304, 4014, 194, 194, 173, 40, 465, 174, 245, 173, 310, 400, 294, 6366, 203, 4028, 4029, 203, 539, 80, 203, 3954, 61, 203, 203, 448, 4039, 275, 537, 179, 489, 303, 491, 492, 492, 535, 179, 539, 4678, 4052, 539, 539, 496, 310, 539, 536, 536, 536, 179, 536, 316, 539, 3958, 539, 513, 539, 198, 3990, 4071, 376, 152, 203, 513, 4206, 322, 137, 4079, 478, 4081, 332, 179, 293, 179, 268, 448, 512, 4870, 536, 188, 538, 539, 489, 4095, 5072, 226, 227, 4099, 4100, 4101, 536, 536, 536, 536, 4106, 4778, 515, 4109, 263, 226, 4112, 5642, 539, 536, 539, 536, 4118, 198, 4120, 535, 535, 4123, 203, 254, 534, 536, 4128, 4129, 4130, 4131, 536, 535, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 536, 536, 4039, 4147, 4148, 4149, 198, 536, 535, 535, 1985, 203, 536, 4157, 539, 471, 479, 516, 4162, 4204, 534, 489, 4166, 310, 297, 61, 310, 535, 313, 525, 4174, 254, 310, 4177, 535, 4179, 3598, 535, 159, 312, 448, 448, 448, 216, 3606, 299, 162, 448, 294, 535, 535, 4195, 159, 312, 4198, 4199, 208, 2032, 4861, 4203, 4204, 423, 254, 535, 4208, 395, 4210, 4211, 159, 403, 159, 395, 253, 208, 395, 4219, 4220, 4221, 162, 310, 525, 448, 4407, 473, 162, 390, 4775, 489, 255, 312, 333, 2066, 470, 162, 40, 4239, 4240, 4241, 4242, 4243, 333, 4245, 4246, 4231, 448, 4249, 448, 448, 448, 4253, 4435, 420, 265, 4257, 4231, 2090, 62, 265, 265, 4263, 312, 390, 390, 448, 390, 4214, 4215, 4216, 4217, 448, 448, 130, 390, 294, 159, 408, 403, 49, 49, 534, 448, 448, 88, 536, 448, 448, 4290, 448, 3710, 448, 3712, 4231, 448, 40, 4231, 536, 536, 191, 226, 4918, 226, 4305, 536, 4307, 314, 4231, 536, 4231, 114, 115, 539, 3, 458, 173, 50, 4946, 122, 64, 115, 776, 536, 778, 539, 780, 173, 408, 535, 40, 536, 786, 787, 788, 159, 448, 159, 173, 304, 525, 191, 159, 5773, 473, 535, 473, 390, 390, 390, 390, 390, 400, 157, 5091, 157, 100, 226, 161, 408, 226, 4362, 4363, 4364, 4365, 5031, 5032, 4368, 5034, 4370, 149, 226, 226, 6174, 6175, 226, 539, 6178, 226, 226, 183, 226, 226, 533, 514, 466, 310, 4388, 230, 3808, 5283, 466, 310, 523, 524, 525, 526, 527, 528, 529, 530, 531, 536, 206, 61, 310, 5022, 523, 524, 525, 526, 527, 528, 529, 530, 531, 310, 13, 536, 163, 322, 484, 539, 536, 179, 5318, 536, 536, 536, 293, 536, 536, 539, 3852, 514, 536, 535, 229, 534, 320, 229, 535, 4443, 4625, 536, 317, 526, 527, 528, 529, 530, 531, 2284, 437, 61, 192, 200, 445, 535, 535, 376, 264, 478, 92, 458, 514, 269, 173, 40, 245, 473, 274, 473, 448, 523, 524, 525, 526, 527, 528, 529, 530, 531, 4449, 216, 61, 438, 290, 159, 88, 6094, 294, 473, 4253, 395, 4461, 183, 4257, 4499, 420, 458, 245, 162, 5119, 448, 448, 250, 390, 448, 448, 448, 390, 492, 61, 536, 536, 536, 479, 535, 368, 535, 438, 325, 977, 173, 10, 310, 80, 13, 3948, 115, 4532, 17, 18, 19, 159, 458, 536, 226, 535, 226, 226, 226, 242, 535, 4546, 211, 4548, 535, 448, 294, 496, 37, 310, 4555, 307, 539, 536, 40, 331, 4561, 310, 5677, 3, 5679, 539, 535, 5436, 458, 539, 373, 4572, 5244, 3992, 46, 4253, 535, 448, 186, 4257, 536, 400, 185, 327, 115, 179, 4587, 226, 147, 536, 243, 4592, 4593, 1047, 397, 243, 299, 299, 2635, 4600, 536, 299, 4362, 536, 299, 536, 179, 536, 4609, 61, 490, 539, 490, 322, 331, 418, 536, 420, 4619, 229, 423, 536, 536, 491, 535, 535, 5298, 539, 372, 535, 4631, 4632, 445, 377, 304, 5301, 525, 458, 40, 448, 179, 4642, 386, 210, 80, 197, 5312, 5824, 197, 492, 40, 395, 4653, 4654, 299, 4074, 299, 61, 525, 403, 62, 438, 539, 539, 74, 5463, 469, 448, 448, 159, 4671, 162, 416, 448, 448, 536, 226, 5688, 129, 4861, 181, 425, 535, 122, 4362, 40, 430, 203, 304, 400, 473, 40, 5869, 294, 535, 175, 400, 4618, 304, 492, 61, 5361, 86, 438, 492, 40, 179, 451, 4127, 535, 310, 4712, 114, 173, 539, 213, 363, 224, 10, 535, 313, 13, 536, 179, 536, 17, 18, 19, 4729, 536, 478, 536, 535, 4152, 417, 61, 40, 5397, 5915, 5916, 83, 226, 393, 487, 535, 37, 4747, 491, 535, 94, 536, 138, 310, 362, 536, 47, 448, 204, 40, 159, 159, 173, 54, 40, 535, 535, 448, 299, 535, 535, 5386, 535, 535, 535, 4775, 535, 473, 4778, 266, 535, 400, 159, 536, 115, 40, 4786, 4787, 314, 80, 536, 179, 458, 415, 4794, 4795, 536, 415, 173, 4799, 539, 40, 310, 536, 4804, 206, 536, 4807, 4808, 114, 207, 535, 2643, 535, 4814, 535, 539, 40, 4818, 4819, 4820, 4821, 539, 478, 37, 438, 196, 173, 312, 535, 473, 535, 290, 4592, 4593, 438, 4836, 208, 6, 4839, 535, 310, 166, 4843, 536, 496, 2677, 386, 4848, 386, 74, 4851, 4852, 313, 4854, 535, 4856, 74, 138, 4859, 538, 4861, 492, 264, 143, 492, 477, 488, 269, 151, 4870, 536, 170, 274, 4874, 536, 310, 478, 4878, 332, 4880, 170, 5553, 403, 444, 539, 535, 267, 444, 290, 535, 2722, 179, 10, 438, 4895, 13, 5907, 359, 299, 17, 18, 19, 210, 438, 310, 310, 198, 400, 535, 6086, 40, 203, 5584, 40, 4592, 4593, 313, 313, 535, 37, 204, 4922, 4923, 325, 181, 158, 5592, 181, 496, 5798, 535, 496, 354, 354, 226, 227, 4937, 385, 155, 61, 61, 83, 4895, 317, 40, 369, 61, 536, 61, 1403, 424, 4872, 4873, 5925, 1408, 1409, 448, 127, 471, 536, 6, 535, 254, 400, 143, 5834, 496, 496, 310, 310, 536, 373, 37, 535, 4940, 299, 295, 403, 295, 535, 535, 26, 1436, 310, 318, 4951, 389, 179, 539, 6166, 6167, 1445, 385, 1447, 389, 397, 539, 1451, 83, 385, 479, 535, 5003, 448, 1458, 297, 426, 535, 426, 5010, 151, 478, 158, 5559, 539, 5681, 418, 122, 536, 317, 312, 415, 479, 315, 415, 334, 492, 5573, 492, 181, 181, 473, 5033, 535, 478, 5904, 535, 929, 523, 524, 525, 526, 527, 528, 529, 530, 531, 5048, 83, 5595, 536, 5674, 535, 5512, 1714, 1016, 5602, 3438, 1409, 2975, 5688, 969, 1015, 2884, 3652, 5688, 4406, 469, 4381, 6077, 3056, 3002, 3871, 5439, 5904, 6215, 4836, 5486, 5079, 4379, 4572, 4379, 5081, 4843, 5462, 3640, 3578, 3198, 4848, 6057, 5360, 4851, 4852, 6204, 5095, 1549, 5935, 5934, 6098, 3645, 6239, 5102, 5126, 4593, 4619, 1559, 4604, 5877, 226, 4562, 5111, 3070, 3070, 3150, 4401, 3919, 408, 3677, 3155, 4588, 3157, 5469, 5120, 1011, 3963, 5126, 5672, 5673, 4655, 5785, 3167, 6324, 6457, 3170, 5453, 3172, 3173, 5874, 5139, 3176, 5141, 6432, 3879, 3180, 6110, 3182, 4627, 5399, 3185, 1603, 1604, 5659, 5887, 5402, 18, 28, 664, 4028, 4836, 4578, 1233, 5833, 4683, 1874, 5627, 4843, 5167, 4686, 6320, 3086, 4848, 2742, 4630, 4851, 1918, 1929, 3556, 5178, 5512, 5361, 3974, 5773, 1953, 716, 3811, 749, 3001, 4434, 3728, 6136, 6370, 1528, 1646, 4659, 312, 858, 1650, 1651, 4661, 3032, 2684, 6297, 4305, 5385, 6215, 4874, 5622, 5625, 1915, 5396, 1425, 5871, 3249, 40, 40, 5397, 4729, 5138, 5397, 3497, 1486, 3512, 514, 2694, 6036, 1827, 5846, 3478, 1485, 4241, 5231, 523, 524, 525, 526, 527, 528, 529, 530, 531, 5241, 4259, 5309, 5244, 536, 1384, 5247, 5248, 5249, 1488, 3475, 5581, 5580, 4306, 5441, 3475, 6348, 6030, 6179, 5833, 3475, 6386, 5557, 4166, 2588, 5847, 3415, 6, 5848, 2589, 3268, 5272, 5273, 2086, 10, 5276, 3397, 13, 3031, 3395, 5797, 17, 18, 19, 5907, 6388, 3385, 3119, 3305, 2594, 4098, 1442, 917, 5294, 2682, -1, 5842, 5298, 5844, -1, -1, 37, -1, 5304, -1, -1, -1, 5308, -1, -1, -1, 5312, 51, -1, 5315, -1, 5317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5328, -1, -1, 5331, -1, -1, -1, -1, 5095, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6026, -1, -1, 5321, -1, 5360, 5361, 5362, -1, 5364, -1, -1, 5126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1844, -1, -1, 40, -1, 5396, 5397, -1, 6411, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5441, -1, -1, -1, -1, -1, -1, -1, 5126, -1, -1, -1, 5453, 100, 6077, -1, -1, 5458, 197, -1, -1, -1, 5463, -1, -1, -1, -1, 206, 207, -1, -1, 5472, -1, -1, -1, 214, -1, 216, 217, -1, -1, 5482, -1, -1, -1, 5486, 4905, -1, 5489, -1, 226, 230, 3324, -1, -1, -1, -1, -1, -1, 5500, 5501, 5502, 6174, 6175, 6373, -1, 6178, -1, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, 5512, 5512, 5512, 5512, 5512, 5512, 5512, 5512, -1, 5512, 5512, 5512, 5512, -1, 5512, 5512, -1, 5536, -1, -1, 5512, 4958, 6433, 3373, -1, -1, 3581, -1, 5467, -1, 5308, -1, -1, -1, 5553, 200, -1, -1, 5557, -1, 5559, 0, 5602, 4980, -1, 6432, -1, 3397, -1, -1, 5328, -1, 6307, 6308, 5573, -1, -1, 5512, 312, 5498, 5512, -1, 5581, 3413, -1, 5584, -1, -1, -1, 5588, 6457, 5512, -1, 5512, 6215, -1, 5595, -1, -1, -1, 245, -1, 5360, 5602, -1, 250, -1, 2059, 2060, 5501, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2076, 2077, 3661, -1, 3663, -1, -1, -1, 5308, -1, -1, -1, 5053, -1, 5396, -1, -1, -1, -1, -1, 5643, 3475, -1, -1, 3478, 294, -1, 5650, 5328, -1, -1, -1, -1, 2109, -1, -1, -1, -1, 101, -1, -1, -1, -1, 5666, -1, 10, -1, -1, 13, 5672, 5673, -1, -1, -1, 5677, 5678, 5679, 5680, 327, 5441, 5360, -1, -1, -1, -1, -1, -1, 5871, -1, -1, -1, -1, 3526, -1, -1, -1, 3530, -1, -1, -1, 3534, -1, 47, -1, -1, 5708, -1, -1, -1, 54, -1, 154, -1, 5716, -1, -1, -1, -1, -1, -1, -1, -1, -1, 372, 167, -1, -1, -1, 377, -1, 173, -1, -1, -1, -1, 80, 179, 386, 5741, -1, 5502, 5744, 185, -1, -1, 188, 395, -1, -1, 192, -1, -1, -1, 5174, 403, -1, 6304, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5769, 416, 3807, -1, -1, -1, -1, -1, 3813, -1, 425, -1, -1, 222, -1, 430, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, 5797, -1, -1, -1, -1, -1, -1, -1, 451, -1, -1, 6353, 5809, 152, -1, -1, -1, -1, 255, -1, -1, 5818, 5819, 5820, -1, 5581, -1, 5824, 5502, 5746, -1, -1, -1, 5830, -1, -1, 5833, -1, -1, -1, -1, -1, -1, -1, 487, 5842, -1, 5844, 491, 5846, 5847, -1, -1, -1, -1, -1, 5853, -1, -1, 198, -1, -1, -1, 5860, 203, -1, -1, -1, -1, 306, -1, -1, 5869, 310, 5871, -1, -1, -1, -1, 316, -1, 6064, 5879, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5314, -1, -1, -1, -1, -1, -1, -1, 5581, -1, -1, -1, -1, -1, -1, -1, 254, -1, -1, 5915, 5916, -1, -1, -1, -1, -1, -1, -1, 662, -1, -1, -1, -1, -1, 5850, -1, -1, -1, -1, -1, 376, -1, -1, -1, -1, -1, -1, 681, -1, -1, 5946, -1, -1, 687, -1, 6137, 6138, -1, -1, -1, -1, 5716, -1, -1, 5960, 699, -1, 3999, -1, 4001, -1, 4003, -1, -1, 312, -1, -1, -1, -1, -1, -1, 715, -1, -1, -1, -1, 720, -1, -1, 5744, -1, 725, -1, -1, -1, 729, 730, -1, -1, 435, -1, -1, 736, -1, 738, 739, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6011, -1, 751, 752, -1, -1, -1, -1, -1, -1, -1, -1, -1, 762, 465, 6026, -1, -1, -1, 6030, -1, -1, -1, -1, -1, 6036, -1, -1, -1, -1, -1, -1, -1, -1, 6045, -1, -1, -1, 489, -1, 491, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6064, -1, 408, 5744, -1, -1, -1, -1, -1, 513, -1, -1, -1, 815, -1, 6079, -1, -1, -1, -1, -1, -1, 6086, -1, -1, -1, -1, -1, -1, 533, 5853, -1, 536, 537, 538, 837, 838, -1, -1, -1, -1, 843, -1, -1, -1, -1, -1, -1, 6112, -1, -1, -1, -1, -1, -1, 6119, -1, -1, -1, 3954, -1, -1, -1, -1, -1, 6129, 868, -1, 870, -1, -1, -1, -1, 6137, 6138, 6139, -1, -1, -1, 6143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 894, -1, -1, 3990, -1, 10, -1, 6136, 13, -1, 6166, 6167, 6168, -1, -1, -1, 514, -1, 6174, 6175, 5853, -1, 6178, 917, -1, 6181, -1, -1, 526, 527, 528, 529, 530, 531, -1, 6111, 930, -1, -1, -1, -1, -1, 47, -1, 6136, 5960, -1, 6136, -1, 54, -1, -1, 6249, 6209, -1, -1, 2665, 2666, 6136, -1, 6136, -1, 2671, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, 5656, 6239, 6240, 6241, -1, 5661, 5662, 6245, -1, -1, -1, -1, 2703, 2704, -1, -1, -1, -1, -1, -1, -1, 6445, 6446, -1, -1, 6263, -1, -1, -1, -1, -1, -1, 6270, -1, -1, -1, -1, -1, 6249, -1, 6278, -1, -1, -1, -1, 5960, -1, -1, 6286, -1, -1, -1, -1, -1, 6292, -1, -1, -1, -1, 6297, -1, -1, 1038, 1039, 1040, 152, 6304, 6064, -1, -1, -1, 1047, -1, -1, 2765, 6249, 1052, -1, 6249, -1, -1, 1057, 1058, -1, -1, -1, 1062, -1, 1064, 6249, -1, 6249, 1068, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6340, 6341, 6342, 6343, -1, -1, 1084, -1, 6348, 198, -1, -1, -1, 6353, 203, -1, 5774, -1, -1, 27, -1, -1, -1, 6363, -1, 33, 6366, -1, -1, -1, 6129, -1, -1, 4204, -1, -1, -1, -1, 6137, 6138, 48, -1, -1, -1, -1, -1, 6386, -1, -1, -1, 1128, -1, 1130, 1131, -1, -1, -1, 6370, -1, 2852, 4231, -1, -1, -1, -1, 254, 0, -1, -1, -1, 78, 6411, 6412, -1, -1, -1, -1, -1, -1, 5837, -1, -1, 4253, -1, -1, -1, 4257, -1, 6428, -1, -1, -1, -1, 1171, 6370, -1, -1, 6370, -1, -1, -1, -1, -1, -1, -1, 6445, 6446, -1, 6370, 6449, 6370, 6451, 6129, -1, -1, -1, -1, 0, -1, -1, -1, 1199, -1, 312, -1, 133, -1, 135, 6468, -1, -1, -1, -1, -1, 142, -1, -1, -1, 146, 22, 6239, -1, -1, -1, -1, -1, 6245, -1, 2941, -1, 33, -1, 35, 36, 1232, -1, 2949, -1, -1, 2952, -1, -1, -1, 1241, 6263, 1243, 174, 101, -1, -1, 53, 2964, -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, 1260, -1, -1, -1, -1, 1265, -1, -1, -1, -1, 75, -1, 77, 78, -1, -1, -1, 1277, -1, 84, 210, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, 408, 154, -1, 6239, -1, -1, -1, -1, -1, 6245, -1, -1, -1, -1, 167, -1, 118, -1, -1, 121, 173, -1, 1319, -1, 6342, -1, 179, -1, -1, -1, -1, -1, 185, -1, 136, 188, 138, 0, -1, 192, 142, -1, -1, -1, -1, -1, -1, 149, 6366, -1, -1, 1348, 1349, 1350, -1, 1352, 158, -1, 160, -1, -1, -1, -1, 290, -1, 167, -1, 294, -1, 222, -1, -1, 4667, -1, -1, 4670, 1373, 304, -1, -1, -1, -1, -1, 185, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, 6412, -1, -1, -1, -1, 326, 202, -1, 255, 1400, 4699, -1, 514, -1, -1, -1, 6428, 1408, 1409, -1, -1, -1, -1, -1, 526, 527, 528, 529, 530, 531, -1, -1, -1, 6445, 6446, -1, 6366, -1, -1, -1, -1, 1432, -1, -1, 101, -1, -1, 368, -1, -1, 371, 372, -1, -1, -1, -1, -1, -1, -1, 306, 256, 257, -1, 310, -1, -1, 262, -1, -1, 316, 1461, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 277, 403, -1, -1, -1, -1, 1478, -1, -1, -1, 1482, 1483, -1, -1, -1, -1, 154, -1, -1, 296, -1, -1, -1, -1, 3211, -1, 1498, 4592, -1, 167, -1, -1, 1504, -1, -1, 173, 10, -1, -1, 13, -1, 179, -1, 17, 18, 19, -1, 185, 376, -1, 188, -1, -1, 4618, 192, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, 343, -1, -1, -1, -1, -1, -1, 47, 476, -1, -1, -1, -1, -1, 54, 358, -1, -1, 222, -1, -1, 364, 365, -1, 367, -1, -1, -1, -1, 372, -1, -1, -1, 1571, -1, 378, -1, -1, 381, -1, 80, 435, -1, -1, -1, 388, -1, -1, -1, -1, -1, 255, 395, 396, -1, -1, -1, -1, -1, -1, 403, -1, -1, -1, 407, -1, -1, 4903, -1, -1, -1, 465, -1, -1, 1612, 418, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, -1, -1, -1, 435, -1, -1, 489, -1, 491, 492, -1, -1, -1, 306, -1, -1, -1, 310, 1645, -1, -1, -1, -1, 316, 456, -1, -1, -1, -1, -1, 513, 47, -1, -1, 4959, 4960, 468, -1, 54, -1, 6347, -1, 474, -1, -1, -1, -1, 479, -1, -1, 533, -1, -1, 536, 537, 538, -1, -1, -1, -1, 492, -1, -1, -1, 80, -1, -1, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, -1, -1, -1, -1, -1, -1, 376, 516, 1712, 518, 519, 520, 521, 522, -1, -1, -1, 3436, -1, 3438, 226, 227, -1, 1727, 1728, 1729, 535, -1, -1, 538, -1, -1, -1, -1, -1, 3454, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4843, -1, 254, -1, -1, 4848, 5054, 5055, 4851, -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, 435, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4872, 4873, -1, -1, -1, -1, -1, -1, -1, -1, 3504, 3505, -1, -1, -1, -1, 297, -1, -1, -1, 465, -1, -1, -1, -1, -1, -1, -1, -1, -1, 198, 312, -1, -1, 315, 203, -1, -1, -1, -1, -1, -1, -1, -1, 489, -1, 491, 492, 1827, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1839, -1, -1, -1, 17, -1, -1, -1, 513, -1, -1, 1850, -1, 26, -1, -1, -1, -1, -1, -1, -1, 10, -1, 1862, 13, -1, 254, 1866, 533, -1, -1, 536, 537, 538, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1885, 5184, -1, -1, 5187, 5188, -1, -1, 1893, -1, -1, -1, 47, -1, -1, -1, 1901, -1, -1, 54, -1, 408, 10, -1, 5207, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, 1920, -1, -1, 312, -1, -1, -1, -1, -1, 1929, 80, -1, 1932, -1, 37, 1935, -1, -1, 1938, 1939, -1, -1, 1942, 1943, 47, 1945, 1946, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, 1957, -1, 1959, 1960, -1, -1, -1, -1, -1, -1, -1, -1, 1969, 1970, -1, 1972, 1973, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, 2010, -1, 514, -1, 2014, 2015, -1, -1, -1, 408, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, -1, -1, -1, -1, 540, -1, -1, -1, -1, -1, -1, 5138, -1, -1, 198, 2049, -1, 2051, -1, 203, -1, 27, 2056, 2057, -1, -1, -1, 33, -1, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 48, -1, -1, 2079, -1, 2081, -1, 2083, 2084, 2085, 2086, 2087, 2088, -1, -1, 2091, -1, 2093, 2094, 198, -1, 2097, -1, -1, 203, -1, -1, -1, 254, -1, 78, -1, -1, -1, -1, -1, -1, 2113, 2114, 2115, 2116, -1, -1, -1, -1, -1, -1, 226, 227, 514, -1, -1, -1, -1, -1, -1, 2132, -1, 2134, -1, 0, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, -1, -1, -1, -1, 254, -1, -1, -1, -1, -1, -1, 22, -1, -1, 133, 312, 135, -1, 3880, -1, -1, -1, 33, 142, 35, 36, -1, 146, -1, 27, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, 3903, 53, -1, -1, -1, -1, 297, -1, -1, -1, -1, 63, -1, -1, 174, -1, -1, -1, -1, -1, -1, 312, -1, 75, 315, 77, 78, 5308, -1, -1, -1, -1, 84, -1, 86, -1, -1, -1, -1, 78, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 118, -1, -1, 121, 408, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 136, -1, 138, -1, -1, -1, 142, 2279, -1, -1, -1, -1, 135, 149, -1, -1, -1, -1, -1, 142, -1, -1, 158, 146, 160, -1, -1, -1, -1, -1, -1, 167, -1, 408, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, 185, 294, 174, -1, -1, -1, -1, -1, -1, -1, 5629, 304, 2333, -1, -1, -1, -1, 202, -1, 27, -1, 314, -1, -1, 4060, 33, -1, -1, -1, -1, -1, -1, -1, 326, -1, -1, -1, -1, 210, -1, 48, -1, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5467, -1, 526, 527, 528, 529, 530, 531, -1, -1, -1, 5683, -1, -1, -1, 2389, -1, 78, 256, 257, -1, -1, 368, -1, 262, 371, 372, -1, -1, -1, -1, 5498, -1, -1, -1, -1, -1, 514, -1, 277, -1, -1, -1, -1, -1, 5512, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, 403, 296, 536, -1, -1, 539, -1, -1, 290, -1, -1, -1, 294, -1, -1, -1, -1, 135, -1, -1, -1, -1, 304, -1, 142, -1, -1, -1, 146, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 326, -1, -1, -1, 343, -1, -1, -1, -1, -1, -1, -1, 174, -1, -1, -1, 665, -1, -1, 358, -1, -1, -1, 5796, -1, 364, 365, -1, 367, 476, -1, -1, -1, 372, 5602, -1, -1, -1, -1, 378, -1, -1, 381, -1, 10, 371, 372, 13, 210, 388, -1, 17, 18, 19, -1, -1, 395, 396, -1, -1, -1, -1, -1, -1, 403, -1, 715, 716, 407, -1, -1, 37, -1, -1, -1, -1, -1, 403, -1, 418, -1, 47, 64, -1, -1, -1, 10, -1, 54, 13, -1, -1, -1, 17, 18, 19, 435, -1, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, -1, 2583, -1, -1, -1, -1, 37, 80, -1, -1, 456, 100, 2594, -1, -1, 2597, 47, -1, -1, -1, -1, 290, 468, 54, -1, 294, -1, -1, 474, -1, -1, -1, -1, 479, -1, 304, -1, -1, -1, -1, -1, -1, -1, 476, -1, 314, 492, -1, -1, 80, -1, -1, -1, -1, -1, 811, 2638, 326, -1, -1, 2642, -1, -1, 2645, -1, 2647, -1, -1, 2650, 5744, 516, 5746, 2654, -1, 163, 831, -1, -1, -1, -1, -1, -1, -1, 839, -1, -1, 842, 843, 844, 535, -1, -1, 538, 2675, -1, 2677, -1, -1, -1, 368, -1, -1, 371, 372, -1, -1, -1, -1, -1, -1, 4407, 200, 2694, -1, -1, -1, -1, -1, -1, -1, -1, 2703, 2704, -1, -1, 198, -1, -1, -1, 27, 203, -1, -1, -1, 403, 33, -1, -1, 4435, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2730, -1, -1, -1, 4449, 226, 227, 2737, -1, -1, -1, 2741, 2742, 250, -1, -1, 4461, -1, 2748, 198, -1, -1, 2752, -1, 203, -1, 2756, 5850, -1, -1, -1, -1, 78, 254, -1, 2765, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 226, 227, -1, 2780, -1, -1, 2783, -1, -1, -1, 294, -1, 476, -1, 64, -1, -1, 2794, -1, 2796, 2797, -1, 2799, 2800, -1, 2802, -1, -1, 254, 297, -1, -1, -1, -1, -1, -1, -1, 2814, -1, -1, -1, -1, 135, 327, 312, 4537, 4538, 315, -1, 142, 100, -1, -1, 146, -1, -1, -1, 2834, 2835, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, 2849, -1, -1, -1, -1, -1, -1, -1, -1, 174, -1, -1, -1, -1, 312, -1, 372, 315, 374, -1, -1, 377, 2871, 2872, 1047, -1, 2875, -1, -1, -1, 386, -1, -1, -1, -1, -1, -1, -1, -1, 395, -1, 163, -1, -1, -1, 210, 10, 403, -1, 13, 2899, 6198, 2901, 17, 18, 19, 2905, -1, -1, -1, 416, 4625, -1, -1, -1, -1, -1, -1, 408, 425, 2919, -1, -1, 37, 430, -1, -1, 2926, 200, -1, 2929, -1, -1, 47, -1, -1, 2935, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2955, -1, -1, -1, 408, -1, 2961, -1, 4678, -1, 80, -1, -1, 2968, -1, -1, -1, -1, -1, 290, -1, -1, 250, 294, -1, 487, -1, 2982, -1, -1, -1, -1, -1, 304, -1, -1, -1, -1, -1, -1, -1, 2996, -1, 314, -1, -1, 3001, -1, -1, -1, -1, -1, 3007, -1, -1, 326, -1, -1, -1, -1, -1, -1, 290, 6111, -1, -1, 294, -1, 514, -1, 3025, 3026, 3027, -1, -1, -1, 3031, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, 6136, -1, -1, -1, -1, 539, -1, -1, -1, 368, 326, 327, 371, 372, -1, 3058, 3059, -1, -1, -1, -1, 1238, 514, -1, 3067, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, 198, -1, -1, -1, 403, 203, -1, 539, 1265, -1, -1, -1, 368, -1, -1, 10, 372, 3100, 13, -1, -1, 377, 17, 18, 19, -1, -1, -1, 226, 227, 386, -1, -1, -1, -1, -1, -1, -1, -1, 395, -1, -1, 37, -1, -1, -1, -1, 403, -1, 3132, -1, -1, 47, 3136, -1, -1, 254, -1, -1, 54, 416, -1, -1, 10, -1, -1, 13, -1, -1, 425, 17, 18, 19, 6249, 430, -1, -1, 476, -1, -1, 64, -1, -1, -1, -1, 80, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, 1354, -1, 297, 47, -1, -1, -1, -1, -1, 1363, 54, -1, -1, -1, -1, -1, -1, 312, -1, 100, 315, -1, -1, -1, -1, 1379, -1, -1, -1, -1, -1, -1, -1, -1, 487, -1, 80, -1, -1, -1, -1, -1, 3222, -1, 3224, 4940, 1400, -1, -1, 1403, 1404, 4946, -1, -1, 1408, 1409, 4951, -1, -1, 3239, -1, 3241, -1, -1, -1, -1, -1, -1, 3248, -1, -1, -1, 3252, -1, 3254, 3255, -1, 3257, 3258, 3259, 27, -1, 163, 4978, 4979, -1, 33, 3267, 4983, 4984, -1, 51, 3272, 10, -1, -1, 13, 6370, -1, -1, 17, 18, 19, -1, -1, -1, 198, -1, -1, -1, 3290, 203, -1, 408, -1, -1, -1, -1, -1, 200, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, 78, -1, -1, 226, 227, -1, 54, -1, -1, -1, -1, 3322, 3323, 3324, -1, -1, 3327, -1, -1, -1, -1, -1, -1, 198, 3335, 3336, 3337, 3338, 203, -1, -1, 254, 80, -1, -1, 3346, -1, -1, 250, -1, 3351, 3352, -1, 3354, -1, 3356, -1, -1, -1, -1, -1, 226, 227, -1, -1, -1, -1, 135, 3369, 3370, -1, -1, 3373, -1, 142, -1, -1, -1, 146, -1, -1, -1, -1, -1, 297, -1, -1, -1, 290, 254, -1, -1, 294, 3394, -1, 3396, -1, 3398, 514, 312, -1, -1, 315, -1, -1, -1, 174, 523, 524, 525, 526, 527, 528, 529, 530, 531, 3417, -1, -1, -1, 536, -1, -1, -1, 326, 327, -1, -1, -1, -1, -1, -1, 297, -1, -1, -1, 10, 3438, -1, 13, -1, -1, 210, 17, 18, 19, -1, 312, -1, -1, 315, -1, -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, 37, -1, 203, 368, -1, -1, -1, 372, -1, -1, 47, 3475, 377, -1, 3478, -1, -1, 54, -1, -1, -1, 386, -1, -1, -1, 226, 227, 1665, 3492, -1, 395, -1, 408, 3497, -1, 1673, -1, -1, 403, -1, -1, -1, -1, 80, -1, -1, -1, -1, 3512, -1, -1, 416, -1, 254, -1, -1, -1, -1, -1, 290, 425, -1, 3526, 294, -1, 430, -1, -1, -1, -1, 3534, -1, -1, 304, -1, -1, -1, -1, -1, -1, 408, -1, 3546, 314, -1, 3549, -1, 3551, -1, -1, -1, -1, 3556, -1, -1, 326, 297, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3571, 3572, -1, -1, 312, -1, 3577, 315, -1, -1, -1, -1, -1, -1, -1, 487, -1, -1, -1, -1, -1, 3592, -1, -1, 3595, -1, -1, 3598, -1, -1, 368, 514, -1, 371, 372, 3606, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, 536, 198, -1, -1, -1, -1, 203, 3631, -1, -1, -1, -1, 403, 3637, 27, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, 514, -1, -1, 226, 227, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, 5385, 408, 536, -1, -1, -1, 3676, 3677, 3678, -1, -1, 254, -1, -1, -1, -1, -1, -1, -1, 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3701, -1, -1, -1, -1, -1, -1, -1, 476, 3710, -1, 3712, -1, 1888, -1, -1, -1, 1892, -1, 3720, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, 3742, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, 142, -1, -1, -1, 146, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 514, -1, -1, -1, -1, -1, -1, -1, 174, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, 536, -1, -1, 10, -1, -1, 13, -1, -1, 3808, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, 3832, -1, -1, 408, -1, 3837, -1, 47, -1, -1, -1, 3843, -1, -1, 54, -1, -1, -1, -1, -1, 3852, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, 80, 17, 18, 19, -1, -1, -1, 3879, 3880, -1, -1, -1, -1, 3885, -1, 3887, 2062, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, 3900, 290, 3902, 47, -1, 294, -1, -1, -1, -1, 54, -1, -1, -1, -1, 304, -1, -1, -1, -1, -1, -1, 3922, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, 326, -1, -1, -1, 514, -1, -1, -1, 725, -1, -1, 3948, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3969, 3970, 751, -1, 5688, -1, -1, -1, -1, -1, 368, -1, -1, 371, 372, -1, -1, -1, -1, -1, -1, 198, -1, 3992, -1, -1, 203, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, 4011, -1, -1, 403, -1, -1, -1, 226, 227, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, 4030, -1, -1, 47, 4034, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, 254, -1, 51, 10, -1, -1, 13, -1, 198, 4055, 17, 18, 19, 203, 51, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 4071, -1, -1, 4074, -1, 37, -1, -1, 4079, -1, 4081, 226, 227, -1, -1, 47, 476, -1, 297, -1, -1, -1, 54, -1, 4095, -1, -1, -1, 4099, 4100, 4101, -1, -1, 312, -1, 4106, 315, -1, 4109, 254, -1, 4112, -1, 894, -1, -1, -1, 4118, 80, 4120, -1, -1, 4123, -1, -1, -1, 4127, 4128, 4129, 4130, 4131, -1, -1, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, -1, -1, -1, 4147, 4148, 4149, -1, -1, 4152, 297, -1, -1, -1, 4157, -1, -1, -1, -1, 4162, -1, 4164, -1, 4166, -1, 312, -1, -1, 315, -1, -1, 4174, -1, -1, 4177, -1, 4179, -1, 5896, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, -1, -1, -1, 4195, -1, -1, 4198, 4199, 408, -1, -1, 4203, 4204, -1, -1, -1, 4208, -1, 4210, -1, 226, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, 4239, 254, -1, 203, -1, -1, 4245, -1, -1, -1, -1, -1, -1, -1, 4253, -1, -1, -1, 4257, -1, -1, -1, -1, -1, -1, 408, 226, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1057, -1, -1, -1, -1, -1, 297, -1, -1, -1, -1, 1068, -1, 4290, -1, -1, 254, -1, -1, -1, -1, 312, -1, -1, 315, -1, -1, 1084, -1, 514, 4307, -1, -1, -1, -1, -1, 4313, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, 536, -1, -1, -1, -1, -1, -1, -1, 297, -1, -1, 4339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, 315, -1, -1, -1, -1, -1, -1, 27, 4362, -1, -1, -1, -1, 33, -1, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, 536, -1, 408, 10, -1, -1, 13, -1, -1, 4401, 17, 18, 19, -1, 4406, 4407, 4408, -1, -1, -1, 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, 4434, 4435, -1, -1, -1, 54, -1, -1, 2616, -1, -1, -1, -1, 408, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, 1241, -1, -1, -1, 80, -1, -1, -1, 135, -1, -1, -1, -1, -1, 37, 142, -1, -1, -1, 146, 4481, -1, -1, 4484, 47, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, 514, -1, -1, -1, -1, -1, -1, -1, 174, 523, 524, 525, 526, 527, 528, 529, 530, 531, 80, -1, -1, -1, 536, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 210, -1, -1, -1, 4548, -1, -1, -1, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, 534, 4574, 4575, -1, -1, 4578, -1, -1, -1, -1, 198, -1, 4585, -1, -1, 203, -1, -1, 2765, 4592, 4593, -1, -1, -1, -1, -1, -1, -1, -1, 4602, -1, -1, -1, -1, -1, -1, -1, -1, 226, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1403, 290, 4625, -1, -1, 294, -1, 4630, 4631, 4632, -1, -1, -1, 198, -1, 304, 254, -1, 203, 4642, -1, -1, -1, -1, 2821, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6373, -1, 326, -1, -1, -1, 226, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, 4683, -1, -1, 4686, -1, -1, -1, -1, -1, 254, -1, -1, -1, -1, 312, -1, -1, 315, -1, 368, -1, -1, 371, 372, -1, -1, -1, -1, -1, 4712, -1, -1, -1, -1, 6432, -1, -1, -1, -1, 725, -1, 1504, -1, -1, -1, -1, 4729, -1, -1, 207, 2907, 725, 297, -1, 403, -1, 27, -1, 216, 6457, -1, -1, 33, -1, 4747, 751, -1, 312, -1, -1, 315, -1, 230, -1, 2931, -1, -1, 751, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, -1, 4775, -1, -1, 4778, 33, -1, -1, -1, -1, -1, -1, 4786, 4787, -1, 4789, 78, 1571, -1, 408, 4794, 4795, -1, -1, -1, 4799, -1, -1, -1, -1, 4804, -1, -1, 4807, 4808, -1, 476, -1, -1, -1, 4814, -1, -1, -1, -1, -1, -1, 2995, -1, -1, 78, 2999, -1, -1, -1, -1, -1, -1, 1612, -1, -1, -1, 4836, -1, -1, -1, -1, -1, -1, 4843, -1, -1, 408, 135, 4848, -1, -1, 4851, 4852, -1, 142, -1, -1, -1, 146, 4859, -1, -1, 3036, -1, 3038, 1645, 3040, 3041, -1, -1, 4870, 3045, 3046, 3047, -1, 3049, 3050, 3051, 4878, -1, -1, 135, -1, -1, -1, -1, 174, -1, 142, -1, -1, 894, 146, -1, -1, -1, -1, -1, -1, 514, -1, -1, -1, 894, -1, 4905, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, 4918, -1, 174, 536, 210, 4923, -1, -1, -1, -1, -1, 3103, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 514, -1, 3128, -1, 210, -1, 4958, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, 536, 4975, 10, -1, -1, 13, 4980, -1, -1, 17, 18, 19, -1, 4987, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, -1, -1, -1, 30, 290, 5003, -1, -1, 294, -1, -1, -1, 5010, -1, -1, 47, -1, -1, 304, -1, -1, -1, 54, -1, 5022, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, 1038, 290, -1, 326, 68, 294, -1, -1, -1, -1, -1, 80, -1, -1, -1, 304, -1, 81, 5053, 1057, -1, -1, -1, -1, 1839, 314, -1, -1, -1, -1, 1068, 1057, -1, -1, 98, 1850, -1, 326, -1, -1, -1, -1, 1068, -1, 5079, 368, 1084, -1, 371, 372, -1, 1866, 116, -1, -1, -1, -1, -1, 1084, -1, 5095, -1, -1, -1, -1, 5100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 140, -1, -1, 368, 403, -1, 371, 372, 5119, -1, -1, -1, -1, 153, -1, 5126, -1, -1, -1, -1, -1, -1, 162, -1, -1, -1, -1, -1, -1, 1920, -1, -1, -1, -1, -1, 175, -1, -1, 403, -1, -1, 181, -1, -1, 1935, -1, -1, 1938, 1939, -1, -1, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, 5172, -1, 5174, -1, -1, -1, -1, 208, -1, -1, -1, -1, -1, -1, -1, -1, 476, 1969, 1970, -1, 226, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5205, 681, -1, -1, -1, -1, -1, 687, -1, -1, -1, -1, -1, -1, -1, 254, -1, 476, -1, 699, -1, -1, -1, -1, -1, -1, 5231, -1, -1, -1, -1, -1, -1, 1241, 268, -1, 5241, -1, -1, 5244, -1, -1, 5247, 5248, 5249, 1241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, 297, 3438, 13, -1, -1, -1, 17, 18, 19, 5272, 5273, -1, -1, 5276, -1, 312, -1, -1, -1, -1, 312, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, 5294, -1, -1, -1, 5298, 47, -1, -1, -1, -1, 5304, -1, 54, -1, 5308, -1, -1, -1, -1, -1, 5314, 5315, -1, -1, -1, 348, 349, -1, -1, 352, -1, -1, -1, -1, 5328, -1, -1, 5331, 80, 2113, -1, -1, 5336, -1, 5338, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 380, -1, -1, 383, -1, -1, -1, -1, -1, 5360, 390, -1, -1, -1, -1, -1, -1, 397, -1, -1, 400, -1, -1, 408, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5385, 5386, -1, -1, -1, -1, 420, 27, -1, -1, -1, 5396, -1, 33, 428, -1, -1, -1, -1, -1, -1, 435, -1, -1, 438, -1, -1, -1, -1, 443, -1, -1, -1, -1, -1, 8, 3595, 451, -1, -1, -1, 14, 15, -1, 458, -1, -1, 20, -1, 22, -1, 5436, -1, -1, -1, 28, 5441, 30, 78, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, 203, 485, -1, -1, -1, -1, 49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 226, 227, 514, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, 135, 1504, 5502, -1, -1, 5505, 254, 142, 3682, -1, -1, 146, -1, 1504, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5536, -1, -1, 174, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, -1, -1, -1, 5553, -1, -1, -1, 5557, -1, 5559, -1, -1, -1, -1, 312, -1, 3740, 315, 1571, -1, -1, -1, -1, 5573, -1, 210, -1, -1, -1, -1, 1571, 5581, -1, -1, 5584, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5595, -1, -1, -1, -1, -1, -1, 5602, -1, -1, -1, -1, -1, -1, 1612, -1, -1, 200, -1, -1, -1, 204, -1, -1, -1, -1, 1612, -1, -1, 212, -1, -1, 215, -1, -1, 218, 219, -1, 221, -1, 223, 3810, -1, 226, -1, 228, -1, 1645, -1, -1, -1, -1, -1, -1, -1, 5650, -1, -1, -1, 1645, 290, 5656, -1, -1, 294, 408, 5661, 5662, -1, -1, -1, 5666, -1, -1, 304, -1, -1, 5672, 5673, 5674, -1, -1, -1, 10, 314, -1, 13, -1, -1, 3858, 17, 18, 19, 5688, -1, -1, 326, -1, -1, -1, -1, 3870, 3871, -1, -1, -1, -1, -1, -1, -1, 37, 3880, -1, 5708, -1, -1, 3885, -1, 3887, -1, 47, 5716, -1, -1, 5719, -1, -1, 54, -1, 1727, 1728, 1729, -1, -1, -1, -1, -1, -1, 368, -1, -1, 371, 372, -1, -1, -1, -1, -1, -1, 5744, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3933, -1, -1, -1, -1, -1, -1, 514, -1, 403, -1, -1, -1, -1, 5773, 5774, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, 536, -1, -1, -1, -1, -1, 3968, 3969, -1, 5797, 5798, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5809, -1, -1, -1, -1, -1, -1, -1, -1, 5818, 5819, 5820, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5833, 5834, -1, 1839, 5837, -1, -1, -1, 476, 5842, -1, 5844, -1, 5846, 1850, 1839, -1, -1, -1, -1, 5853, -1, -1, -1, -1, -1, 1850, 5860, -1, -1, 1866, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, -1, 1866, -1, -1, -1, 5879, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 226, 227, -1, -1, -1, -1, 51, 64, -1, -1, 5904, -1, -1, 5907, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1920, -1, -1, -1, -1, 254, -1, -1, -1, -1, -1, -1, 1920, -1, -1, 1935, -1, -1, 1938, 1939, 100, -1, -1, -1, -1, -1, -1, 1935, -1, -1, 1938, 1939, -1, -1, -1, -1, -1, -1, -1, -1, 2737, -1, -1, 5960, 2741, 2742, -1, -1, 297, 1969, 1970, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1969, 1970, 312, -1, -1, 315, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4173, 163, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6011, -1, -1, -1, -1, 2796, -1, -1, -1, -1, -1, 2802, -1, -1, -1, 6026, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6036, 200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6050, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6064, -1, 2069, -1, -1, 2849, -1, -1, -1, -1, -1, 663, 408, 6077, -1, -1, 2083, -1, -1, 2086, -1, -1, 674, 250, -1, -1, 678, -1, -1, -1, -1, -1, -1, 685, 686, -1, -1, 689, -1, 691, 692, -1, -1, -1, -1, -1, 2113, -1, -1, -1, -1, -1, -1, -1, 706, 6119, -1, -1, 2113, -1, -1, -1, -1, 290, -1, 6129, -1, 294, -1, 51, -1, -1, 724, 6137, 6138, -1, -1, -1, -1, 6143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 745, -1, 747, -1, -1, -1, 326, 327, -1, -1, -1, -1, 757, -1, -1, -1, -1, 6174, 6175, -1, -1, 6178, -1, -1, 10, 514, -1, 13, -1, -1, -1, 17, 18, 19, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, 790, -1, 536, 368, -1, -1, 37, 372, -1, -1, -1, -1, 377, 6215, -1, -1, 47, -1, -1, -1, -1, 386, -1, 54, -1, -1, -1, -1, -1, -1, 395, 4407, -1, -1, -1, 1712, -1, 6239, 403, -1, -1, -1, -1, 6245, -1, -1, -1, -1, -1, 80, -1, 416, -1, -1, -1, -1, -1, -1, -1, 4435, 425, 6263, -1, -1, -1, 430, -1, -1, 6270, -1, -1, -1, -1, -1, 4450, -1, -1, 3059, 4454, -1, 4456, 871, -1, -1, 6286, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 487, -1, -1, -1, 4502, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6342, -1, 4518, -1, -1, 6347, -1, 4523, -1, -1, 3132, 6353, -1, -1, 3136, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6366, -1, 956, 198, -1, -1, -1, 6373, 203, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 226, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1885, 6411, 6412, -1, -1, -1, -1, -1, 1893, -1, -1, -1, -1, -1, -1, 254, 1901, -1, 6428, -1, -1, -1, 6432, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1030, -1, -1, 6445, 6446, -1, 4622, -1, -1, 4625, -1, -1, -1, -1, -1, 6457, -1, 3239, -1, -1, -1, -1, -1, -1, -1, 1055, 297, -1, -1, 1946, -1, -1, 3254, -1, -1, -1, -1, 3259, -1, -1, 1070, 312, 1072, -1, 315, -1, -1, -1, -1, -1, -1, -1, 1082, -1, -1, -1, 1973, -1, -1, 1089, -1, -1, -1, -1, -1, -1, -1, -1, 3290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4701, 4702, 4703, 4704, -1, 4706, 4707, 4708, 4709, 4710, -1, -1, -1, -1, -1, -1, -1, 1132, -1, 1134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 725, -1, -1, -1, -1, 408, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2597, -1, -1, -1, -1, -1, 751, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1208, -1, 1210, -1, 1212, -1, 1214, -1, 1216, 1217, 1218, -1, -1, -1, -1, 1223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1235, -1, -1, -1, -1, 4826, -1, 4828, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, 514, 17, 18, 19, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, 37, 536, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, 25, -1, -1, -1, -1, 30, -1, -1, -1, -1, 2737, -1, -1, -1, 2741, 2742, -1, -1, -1, 894, -1, -1, 2737, -1, -1, 80, 2741, 2742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3546, -1, -1, 3549, -1, 3551, -1, -1, -1, -1, 3556, -1, -1, -1, 81, 82, -1, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2796, -1, -1, -1, 98, -1, 2802, -1, -1, -1, -1, -1, 2796, -1, 725, -1, -1, -1, 2802, -1, -1, -1, 116, 10, -1, 3598, 13, -1, -1, -1, 17, 18, 19, 3606, -1, -1, -1, -1, -1, -1, 751, -1, -1, -1, 1425, -1, 140, -1, -1, -1, 37, -1, -1, 2849, -1, -1, -1, -1, 3631, 153, 47, -1, -1, -1, -1, 2849, -1, 54, 162, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, 203, -1, 175, -1, -1, 5051, 5052, -1, 181, -1, -1, -1, -1, -1, 80, -1, -1, -1, 5064, -1, 5066, 5067, 5068, 226, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1057, 208, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1068, -1, 10, -1, -1, 13, 254, -1, -1, 17, 18, 19, -1, 3710, -1, 3712, 1084, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 246, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, 1545, 5132, -1, -1, -1, -1, 54, -1, -1, 297, 268, -1, -1, -1, -1, -1, -1, -1, -1, 894, -1, -1, -1, -1, 312, -1, -1, 315, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 5171, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3027, -1, -1, -1, 3808, 1617, -1, -1, 226, 227, -1, -1, -1, -1, -1, -1, 5214, -1, -1, -1, -1, -1, -1, 348, 349, -1, -1, 352, -1, -1, -1, -1, 3059, -1, -1, -1, 254, -1, -1, -1, 51, -1, -1, -1, 3059, -1, -1, -1, 3852, -1, -1, -1, -1, 408, -1, 380, -1, -1, 383, -1, -1, -1, -1, -1, -1, 390, 1241, -1, -1, -1, -1, -1, 397, -1, -1, 400, 3880, -1, -1, 297, -1, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, -1, -1, -1, 312, 420, -1, 315, -1, -1, -1, -1, -1, 428, -1, 3132, -1, -1, -1, 3136, 435, 226, 227, 438, -1, 1057, -1, 3132, 443, -1, -1, 3136, -1, -1, -1, -1, 1068, -1, -1, -1, -1, -1, -1, 458, -1, -1, -1, -1, -1, 254, -1, -1, 1084, -1, 3948, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 514, 485, -1, -1, -1, -1, -1, 3970, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, 536, 297, -1, -1, -1, -1, 5385, 3992, -1, 408, -1, -1, -1, -1, -1, -1, 312, -1, -1, 315, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3239, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1835, 3239, -1, -1, 3254, -1, -1, -1, 2730, 3259, 5431, -1, -1, -1, -1, -1, 3254, -1, -1, 5440, -1, 3259, -1, -1, -1, -1, 2748, -1, -1, -1, 2752, -1, -1, -1, 2756, 1870, -1, -1, -1, -1, 3290, -1, -1, -1, -1, 51, -1, 4074, -1, -1, -1, -1, 3290, -1, -1, -1, -1, -1, 2780, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 408, -1, -1, 514, -1, -1, 1241, -1, -1, -1, -1, 1916, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, 2814, -1, -1, 536, -1, -1, -1, -1, 4127, 1936, -1, -1, -1, -1, 1504, -1, -1, -1, -1, -1, 2834, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4152, -1, 1962, -1, 1964, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1979, -1, 1981, -1, -1, -1, 2872, -1, 1987, -1, 1989, -1, 1991, -1, 1993, -1, 1995, -1, -1, -1, 1999, -1, -1, -1, -1, -1, -1, -1, -1, 1571, -1, -1, 514, 2899, -1, -1, -1, -1, -1, 2905, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, 2919, 536, -1, -1, 2036, -1, -1, 2926, -1, -1, 2929, -1, -1, 725, -1, -1, 2935, 1612, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2955, -1, -1, 751, -1, -1, 2961, -1, -1, -1, -1, -1, -1, 2968, 1645, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2982, -1, -1, -1, -1, -1, -1, 5688, -1, -1, -1, 5692, -1, -1, 2996, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3007, 4313, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3546, -1, -1, 3549, -1, 3551, -1, -1, -1, -1, 3556, -1, 3546, -1, -1, 3549, -1, 3551, -1, -1, -1, -1, 3556, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1504, -1, -1, -1, -1, -1, -1, -1, -1, 3598, -1, -1, -1, -1, -1, -1, -1, 3606, -1, -1, -1, 3598, -1, -1, -1, -1, -1, -1, -1, 3606, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 894, 4407, 3631, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, 3631, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, 1571, -1, 4435, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, 1839, -1, -1, -1, -1, -1, 1612, -1, -1, -1, -1, 1850, -1, -1, -1, -1, -1, -1, -1, 3710, 80, 3712, -1, -1, -1, -1, -1, 1866, -1, -1, -1, 3710, -1, 3712, -1, -1, -1, -1, -1, 1645, -1, -1, -1, -1, -1, 5907, -1, -1, -1, 5911, 725, 5913, -1, -1, -1, 5917, 5918, -1, -1, 3222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 751, -1, 3241, -1, -1, 1920, -1, -1, -1, 3248, -1, -1, 51, -1, -1, -1, -1, -1, -1, -1, 1935, -1, -1, 1938, 1939, 1057, -1, -1, -1, -1, -1, -1, -1, -1, 4578, -1, 1068, -1, -1, -1, -1, 3808, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1084, 3808, 1969, 1970, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, 3837, -1, -1, -1, -1, -1, 3843, -1, -1, -1, -1, 4625, -1, -1, -1, 3852, 4630, -1, -1, -1, 226, 227, -1, -1, -1, -1, -1, 3852, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3880, -1, -1, -1, -1, 254, -1, -1, -1, -1, -1, -1, 3880, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 894, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1839, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, 1850, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, 315, -1, 3948, -1, -1, 1866, -1, -1, -1, -1, -1, -1, -1, -1, 3948, -1, -1, -1, -1, 2113, -1, -1, -1, 725, 3970, -1, -1, -1, -1, -1, 1241, -1, -1, -1, -1, -1, 3970, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3992, -1, -1, 751, -1, -1, -1, -1, -1, -1, -1, -1, 3992, 1920, -1, -1, -1, -1, -1, -1, 4789, -1, -1, -1, -1, -1, -1, -1, 1935, -1, -1, 1938, 1939, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 408, -1, -1, -1, -1, 6215, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1969, 1970, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1057, 4074, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1068, -1, 4074, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1084, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3592, -1, -1, -1, -1, -1, -1, 4127, 4905, -1, -1, -1, -1, -1, -1, -1, -1, -1, 894, 4127, -1, -1, -1, -1, -1, 514, 2731, 2732, -1, -1, -1, -1, 4152, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, 4152, 2750, 2751, 536, 2753, 2754, -1, -1, -1, 2758, 2759, -1, -1, -1, -1, -1, -1, 4958, -1, -1, -1, -1, -1, -1, 2773, -1, -1, -1, 2777, -1, -1, -1, 2781, 2782, 2113, -1, 2785, 2786, 6373, 4980, -1, -1, -1, 2792, -1, 6380, -1, -1, -1, 6384, -1, -1, -1, -1, -1, 2804, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3701, -1, 2816, -1, -1, -1, -1, 2821, -1, -1, 1504, -1, -1, -1, -1, -1, -1, -1, 6418, -1, -1, -1, 2836, -1, -1, -1, 2840, -1, 1241, -1, -1, -1, 6432, -1, -1, -1, -1, 2851, -1, -1, 2854, -1, 2856, 2857, 2858, -1, -1, 5053, -1, 2863, 2864, -1, -1, -1, -1, -1, -1, 6457, -1, 2873, 6460, -1, -1, -1, -1, 2879, -1, -1, -1, 2883, -1, -1, 1057, -1, -1, -1, -1, 1571, -1, -1, -1, 2895, 2896, 1068, 4313, -1, 2900, -1, -1, -1, -1, -1, 2906, 2907, -1, -1, 4313, -1, -1, 1084, -1, -1, -1, -1, -1, -1, 2920, -1, -1, 2923, -1, -1, -1, -1, -1, -1, 2930, 2931, 1612, -1, -1, -1, 2936, -1, -1, -1, -1, -1, -1, -1, -1, 3832, -1, -1, 2948, -1, -1, 2951, -1, -1, -1, -1, 2956, -1, -1, -1, -1, -1, 2962, 2963, -1, 1645, -1, -1, -1, -1, 2970, -1, -1, -1, 2974, -1, -1, -1, 2978, 2979, 2980, 2981, 5174, 2983, -1, -1, -1, -1, -1, -1, -1, -1, 4407, -1, -1, -1, -1, 2997, 2998, -1, 3000, -1, -1, -1, 4407, -1, -1, -1, -1, -1, -1, 3011, 3012, 3013, -1, -1, -1, -1, -1, -1, 4435, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4435, -1, -1, -1, -1, -1, 725, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 751, -1, -1, -1, 3068, -1, 1241, -1, -1, -1, -1, -1, 3076, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3095, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1504, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, 5314, -1, 4011, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, 4030, -1, 3145, -1, 4034, 47, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, 1839, -1, -1, -1, 4578, 3164, -1, 3166, -1, -1, -1, 1850, -1, 1571, -1, 2737, 4578, -1, -1, 2741, 2742, -1, 80, -1, -1, -1, -1, 1866, -1, -1, -1, -1, -1, -1, 5385, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 894, -1, -1, 4625, -1, -1, 1612, -1, 4630, -1, -1, -1, -1, -1, -1, 4625, -1, -1, -1, -1, 4630, -1, -1, -1, -1, -1, 2796, -1, -1, -1, -1, -1, 2802, 1920, -1, -1, -1, -1, -1, 1645, -1, -1, -1, -1, -1, -1, -1, -1, 1935, -1, -1, 1938, 1939, -1, 3261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2849, -1, -1, 1969, 1970, -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, -1, -1, -1, -1, -1, -1, 5505, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 226, 227, -1, -1, -1, -1, 1504, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1057, -1, -1, -1, 4789, -1, -1, -1, -1, -1, -1, 1068, -1, -1, -1, -1, 4789, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1084, 297, -1, 1571, -1, -1, -1, -1, -1, -1, 2737, -1, -1, -1, 2741, 2742, 312, -1, -1, 315, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2113, -1, -1, -1, -1, -1, -1, 1839, 1612, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1850, 4339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5656, -1, 2796, 1866, -1, 5661, 5662, -1, 2802, -1, 1645, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4905, -1, -1, -1, -1, -1, 3059, -1, -1, -1, -1, -1, 4905, -1, -1, -1, -1, -1, -1, 408, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2849, -1, 1920, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1935, -1, -1, 1938, 1939, -1, -1, 4958, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1241, 4958, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4980, -1, -1, -1, 3132, 1969, 1970, -1, 3136, -1, -1, -1, 4980, -1, -1, -1, -1, 5774, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3593, 4481, -1, -1, 4484, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3610, -1, -1, -1, 3614, 514, -1, -1, -1, 3619, 3620, 3621, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, 536, 5053, -1, -1, 3641, -1, -1, -1, 5837, -1, -1, -1, -1, 5053, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3664, 3665, 3666, 3667, 1839, -1, -1, -1, -1, -1, -1, -1, 3239, -1, -1, 1850, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3254, -1, -1, -1, 1866, 3259, -1, 4585, -1, -1, -1, 3702, -1, 3704, 3705, 3706, -1, -1, -1, -1, -1, -1, -1, 2113, 4602, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3290, -1, 3059, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, 40, -1, 1920, -1, -1, -1, -1, -1, -1, -1, 5172, -1, 5174, -1, -1, -1, -1, 1935, -1, -1, 1938, 1939, 62, -1, 5174, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4683, -1, 1969, 1970, -1, -1, 3132, -1, -1, -1, 3136, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1504, -1, -1, -1, 114, -1, -1, 3824, -1, -1, -1, -1, -1, -1, -1, -1, 3833, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, 142, -1, -1, -1, 146, -1, -1, -1, -1, -1, 3859, 3860, -1, -1, -1, 3864, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 174, -1, -1, 1571, -1, 3886, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5314, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3239, -1, 5314, -1, 206, -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, 3254, 1612, -1, -1, -1, 3259, -1, -1, -1, -1, -1, -1, -1, -1, 3938, -1, -1, -1, 2113, 3943, -1, -1, -1, -1, -1, 3949, -1, -1, -1, -1, -1, -1, -1, -1, 1645, -1, 3290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5385, 264, -1, -1, -1, -1, 269, -1, -1, 3979, -1, 274, 5385, 3546, -1, -1, 3549, -1, 3551, -1, -1, -1, -1, 3556, -1, -1, -1, 290, -1, -1, -1, 294, -1, -1, -1, -1, -1, -1, 4008, -1, 4010, 304, -1, -1, -1, -1, -1, -1, -1, 10, -1, 314, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, 325, 326, -1, 3598, -1, -1, -1, -1, -1, -1, -1, 3606, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, 2737, -1, -1, -1, 2741, 2742, 54, -1, -1, -1, -1, 3631, -1, -1, -1, -1, -1, -1, 368, -1, -1, 371, 372, 373, -1, -1, -1, -1, -1, -1, -1, 4975, 80, 5505, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4987, -1, 5505, -1, 397, -1, -1, -1, -1, -1, 403, -1, -1, -1, -1, -1, 2796, -1, -1, -1, -1, -1, 2802, -1, -1, 418, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3710, -1, 3712, -1, -1, 1839, -1, -1, 6347, -1, -1, -1, -1, -1, -1, -1, 1850, -1, -1, -1, -1, -1, 2849, -1, -1, -1, -1, -1, -1, 469, -1, -1, 1866, -1, -1, -1, 476, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, -1, 3546, -1, -1, 3549, -1, 3551, -1, -1, -1, -1, 3556, -1, -1, -1, -1, -1, -1, 1920, -1, 226, 227, -1, -1, -1, -1, 5656, -1, -1, -1, 3808, 5661, 5662, 1935, -1, -1, 1938, 1939, 5656, -1, -1, -1, -1, 5661, 5662, -1, -1, -1, 254, -1, -1, -1, -1, 3598, -1, -1, -1, -1, -1, -1, -1, 3606, -1, -1, -1, -1, -1, 1969, 1970, -1, -1, -1, -1, -1, 3852, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3631, -1, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3880, 5205, -1, -1, 312, -1, -1, 315, 4325, -1, 4327, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2737, -1, 4340, -1, 2741, 2742, -1, -1, -1, -1, -1, -1, -1, -1, 4352, -1, -1, -1, 4356, -1, 5773, 5774, -1, -1, -1, -1, -1, -1, -1, 4367, -1, -1, -1, 5774, -1, -1, -1, -1, -1, -1, -1, 3059, 3710, -1, 3712, -1, -1, 3948, 4386, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2796, -1, -1, -1, -1, -1, 2802, 4404, -1, -1, 3970, -1, -1, -1, -1, 4412, -1, -1, -1, -1, 408, -1, -1, -1, -1, 5837, -1, -1, -1, 2113, -1, -1, 3992, -1, -1, -1, -1, 5837, -1, -1, 4437, -1, -1, -1, 4441, -1, -1, -1, -1, -1, -1, -1, 5336, 2849, 5338, 3132, -1, -1, -1, 3136, 4457, 4458, 4459, 4460, -1, -1, -1, -1, -1, -1, 4467, 4468, 4469, 4470, -1, -1, -1, -1, -1, 4476, 4477, 3808, -1, -1, -1, 4482, 4483, -1, 4485, 4486, 4487, 4488, 4489, 4490, 4491, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4501, -1, -1, -1, 4505, 4506, 4507, 4508, -1, -1, 4074, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3852, 514, -1, -1, -1, -1, -1, 4529, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, 536, -1, 4547, -1, -1, 3880, -1, -1, -1, -1, -1, -1, -1, -1, 3239, -1, -1, -1, -1, 4127, -1, 2737, -1, -1, -1, 2741, 2742, -1, -1, 3254, -1, -1, 10, -1, 3259, 13, -1, -1, -1, 17, 18, 19, -1, -1, 4152, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, 3290, -1, -1, -1, 47, -1, -1, -1, 3948, -1, -1, 54, -1, 4623, -1, 2796, -1, -1, -1, -1, -1, 2802, -1, -1, -1, -1, -1, -1, -1, -1, 3970, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, 4656, -1, -1, -1, 3059, 10, 3992, 4663, 13, 4665, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, 2849, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, 4693, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, 3132, -1, -1, -1, 3136, -1, -1, 10, -1, -1, 13, 4074, -1, -1, 17, 18, 19, 4313, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, 37, -1, -1, 203, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, 226, 227, -1, -1, 4127, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 254, 4152, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3239, -1, -1, -1, 4407, -1, -1, -1, -1, 198, -1, -1, -1, -1, 203, 3254, -1, -1, -1, -1, 3259, -1, -1, -1, 297, -1, 3546, -1, -1, 3549, -1, 3551, 4435, -1, -1, -1, 3556, 226, 227, 312, -1, -1, 315, -1, -1, -1, -1, -1, 3059, -1, -1, 3290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 254, 4906, 4907, 4908, -1, -1, -1, 4912, 4913, 4914, 4915, -1, -1, 3598, 4919, -1, -1, -1, -1, -1, -1, 3606, -1, 198, -1, -1, -1, 6347, 203, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6347, -1, -1, -1, 297, -1, -1, 3631, -1, -1, -1, -1, 226, 227, -1, -1, -1, 3132, -1, 312, -1, 3136, 315, -1, -1, -1, 4970, 4971, 4972, 4973, 4974, 408, 4976, 4977, -1, -1, -1, -1, -1, 4313, 254, -1, -1, -1, 4988, 4989, -1, -1, -1, -1, -1, -1, 6411, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4578, -1, -1, -1, -1, -1, -1, -1, 5023, -1, -1, -1, 297, -1, -1, 3710, -1, 3712, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, 315, -1, -1, -1, -1, 2737, -1, -1, -1, 2741, 2742, -1, -1, -1, 408, -1, -1, 4625, -1, -1, -1, -1, 4630, 3239, -1, -1, -1, -1, -1, -1, -1, -1, 4407, -1, -1, -1, 514, -1, 3254, -1, -1, -1, -1, 3259, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, 536, -1, 4435, -1, -1, -1, 2796, -1, -1, -1, -1, -1, 2802, -1, -1, -1, 3290, -1, -1, -1, -1, -1, 5125, -1, -1, 3808, -1, -1, -1, -1, -1, -1, -1, -1, -1, 408, -1, -1, -1, -1, -1, -1, -1, -1, 3546, -1, -1, 3549, -1, 3551, -1, -1, -1, -1, 3556, -1, -1, -1, -1, 2849, 6050, -1, 514, -1, -1, -1, -1, -1, -1, 3852, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, 536, -1, -1, 5190, -1, -1, -1, -1, -1, -1, -1, -1, 3598, 3880, -1, -1, -1, -1, -1, -1, 3606, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5222, -1, -1, -1, 4789, -1, -1, -1, -1, -1, 3631, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 514, -1, -1, -1, 4578, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, 536, -1, 3948, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3970, -1, -1, -1, 207, 4625, -1, -1, -1, -1, 4630, -1, -1, 216, -1, -1, -1, -1, -1, -1, -1, 3710, 3992, 3712, -1, -1, -1, 230, -1, -1, -1, 5321, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, 4905, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, 3059, -1, 47, 3546, -1, -1, 3549, -1, 3551, 54, -1, -1, -1, 3556, -1, 5387, -1, -1, -1, -1, -1, -1, 4074, 4958, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5406, 80, -1, 3808, -1, -1, 5412, 5413, -1, -1, -1, 4980, -1, -1, -1, -1, 5422, -1, -1, -1, -1, 3598, -1, 5429, -1, -1, -1, -1, -1, 3606, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3132, -1, 4127, -1, 3136, -1, -1, -1, 3852, -1, -1, -1, -1, -1, 4789, 3631, -1, -1, -1, 5464, 5465, -1, -1, -1, -1, -1, -1, 4152, -1, -1, -1, -1, 5477, -1, 5479, -1, 3880, -1, -1, -1, -1, -1, -1, -1, -1, 5053, -1, -1, -1, 5494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5519, -1, -1, -1, -1, -1, 198, -1, 5527, -1, -1, 203, -1, -1, -1, -1, -1, -1, -1, -1, 3710, -1, 3712, -1, -1, -1, -1, -1, -1, -1, 3948, -1, -1, 3239, 226, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3254, -1, -1, -1, 3970, 3259, -1, -1, 4905, -1, -1, -1, -1, -1, 254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3992, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3290, -1, -1, -1, -1, -1, -1, -1, 5174, -1, -1, -1, -1, -1, 5617, -1, -1, -1, -1, -1, -1, 297, -1, -1, -1, 4958, -1, -1, 5631, -1, 4313, -1, -1, -1, 3808, -1, 312, -1, -1, 315, -1, -1, -1, -1, -1, -1, -1, 4980, -1, -1, -1, -1, 5655, -1, -1, 206, 207, -1, -1, -1, -1, -1, -1, 214, -1, 216, 217, -1, -1, -1, -1, -1, 4074, -1, -1, -1, -1, -1, 3852, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, 33, -1, 3880, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, 5722, 5053, -1, -1, -1, 4407, 4127, -1, -1, -1, -1, -1, 208, 408, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, 220, -1, -1, 662, -1, 5314, 78, 4152, -1, 4435, -1, 231, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 681, -1, -1, -1, -1, -1, 687, -1, -1, 3948, -1, -1, -1, -1, -1, -1, -1, -1, 699, -1, 114, -1, -1, -1, 5792, -1, -1, -1, -1, -1, -1, 3970, -1, -1, 715, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, 142, 730, -1, -1, 146, 3992, 5385, -1, -1, 738, 5826, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 752, -1, 514, -1, -1, 5174, -1, -1, -1, 174, 762, 523, 524, 525, 526, 527, 528, 529, 530, 531, 3546, -1, -1, 3549, 536, 3551, -1, -1, 5867, -1, 3556, 198, 199, -1, -1, 202, -1, -1, -1, -1, -1, 206, -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, 5891, -1, -1, 222, -1, -1, -1, 4578, -1, -1, 229, 815, 4074, -1, -1, -1, -1, -1, -1, -1, 3598, -1, -1, 4313, -1, -1, -1, -1, 3606, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 843, -1, -1, -1, -1, -1, -1, -1, 264, -1, -1, -1, 5505, 269, 3631, 4625, -1, -1, 274, -1, 4630, 5951, -1, -1, -1, 868, 4127, -1, -1, -1, -1, -1, -1, -1, 290, -1, -1, -1, 294, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, -1, -1, 4152, -1, -1, 5314, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 325, 326, -1, -1, -1, 10, -1, -1, 13, 4407, -1, -1, 17, 18, 19, -1, -1, -1, 930, -1, -1, -1, -1, -1, 3710, -1, 3712, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, 4435, -1, -1, -1, -1, 47, 368, -1, -1, 371, 372, 373, 54, -1, -1, -1, -1, -1, -1, 5385, -1, -1, -1, -1, -1, -1, -1, 6063, -1, -1, -1, -1, -1, -1, -1, 397, -1, -1, 80, -1, -1, 403, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 418, 5656, -1, -1, 6096, -1, 5661, 5662, -1, -1, -1, -1, -1, -1, -1, 6107, -1, 4789, -1, -1, -1, -1, 662, -1, -1, -1, -1, -1, -1, 3808, -1, -1, -1, -1, -1, 1040, -1, -1, -1, -1, -1, 681, 1047, -1, -1, -1, -1, 687, -1, -1, 4313, 469, -1, -1, -1, -1, -1, -1, 476, 699, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3852, -1, 715, -1, -1, -1, -1, -1, -1, -1, 5505, -1, -1, -1, 4578, -1, 729, 730, -1, -1, -1, -1, -1, 736, 663, 738, 739, 198, 3880, -1, 669, -1, 203, -1, -1, -1, -1, -1, -1, 752, -1, -1, -1, -1, -1, -1, 5774, -1, -1, 762, -1, -1, -1, -1, -1, 226, 227, -1, -1, -1, 4905, 4625, -1, -1, 6229, -1, 4630, -1, -1, -1, -1, 4407, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 254, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1171, -1, -1, 3948, -1, -1, 4435, -1, -1, 815, -1, -1, -1, -1, -1, -1, 5837, -1, -1, -1, 4958, -1, -1, -1, -1, 3970, -1, -1, -1, -1, -1, -1, -1, 297, -1, -1, -1, 843, -1, -1, -1, -1, 4980, -1, -1, -1, -1, 3992, 312, -1, -1, 315, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1232, 868, -1, -1, -1, -1, -1, 5656, -1, -1, -1, 1243, 5661, 5662, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 671, -1, 673, -1, 1260, 676, -1, -1, -1, 1265, -1, -1, -1, -1, -1, -1, -1, -1, -1, 690, -1, -1, -1, 840, -1, 696, -1, -1, -1, -1, 5053, -1, -1, -1, -1, -1, -1, -1, -1, 930, -1, -1, 859, -1, 4074, -1, -1, 4789, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 408, -1, -1, -1, -1, 4578, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6435, -1, -1, -1, -1, 4127, 37, -1, -1, 5774, 41, -1, -1, -1, -1, -1, 47, -1, -1, 4625, -1, -1, 931, 54, 4630, -1, -1, -1, -1, -1, 4152, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, 1400, -1, -1, -1, -1, 1040, -1, 5174, 1408, 1409, -1, -1, 1047, -1, -1, -1, -1, 978, -1, 4905, 5837, 514, -1, 1058, -1, -1, -1, 1062, -1, 1064, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, 536, -1, -1, -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1461, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4958, -1, -1, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4980, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, 198, -1, -1, -1, 54, 203, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4789, 1093, -1, -1, -1, 1171, -1, -1, 4313, -1, -1, -1, 226, 227, 80, -1, 5314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1122, 1123, 1124, -1, -1, -1, 5053, 983, 984, -1, 254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1232, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1243, -1, -1, -1, -1, -1, 297, -1, -1, -1, 5385, -1, -1, -1, -1, -1, -1, 1260, -1, -1, -1, 312, 1265, -1, 315, 4407, -1, -1, -1, -1, 173, 1054, -1, -1, -1, -1, 179, -1, -1, 4905, -1, -1, -1, -1, -1, -1, 1069, -1, -1, -1, -1, -1, -1, 4435, -1, 198, -1, -1, -1, -1, 203, -1, 1231, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1100, 1101, -1, 5174, -1, -1, 226, 227, -1, -1, -1, -1, 6347, 1259, -1, 4958, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1126, 1712, -1, -1, -1, -1, -1, -1, 254, -1, -1, 4980, -1, -1, 408, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5505, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1166, 1167, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, -1, -1, 1400, -1, -1, -1, -1, -1, -1, -1, 1408, 1409, -1, -1, 312, -1, -1, 315, -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, -1, 5053, -1, -1, -1, -1, -1, -1, -1, -1, 4578, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1461, 1827, 5314, -1, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, 4625, -1, 1414, -1, -1, 4630, -1, -1, -1, -1, -1, 1862, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 408, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1885, -1, -1, -1, 5656, -1, -1, -1, 1893, 5661, 5662, -1, -1, -1, 5385, -1, 1901, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5174, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6347, -1, -1, 1494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1945, 1946, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1959, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1972, 1973, -1, -1, -1, -1, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5774, -1, -1, -1, -1, -1, -1, -1, 4789, 1577, -1, -1, 5505, -1, -1, -1, -1, -1, 1586, -1, -1, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, 5314, 1618, -1, -1, -1, -1, -1, 1624, 1625, 47, -1, 1628, -1, -1, 5837, -1, 54, -1, -1, -1, -1, 1712, -1, -1, 1641, -1, -1, 1644, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5385, -1, -1, -1, 4905, -1, -1, 2134, -1, -1, -1, -1, -1, -1, 1702, -1, -1, -1, -1, -1, -1, -1, 1564, -1, -1, -1, -1, -1, 1716, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5656, -1, -1, -1, 1589, 5661, 5662, -1, -1, -1, -1, -1, -1, -1, 4958, -1, -1, -1, -1, -1, -1, -1, 1827, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, 4980, 13, -1, -1, -1, 17, 18, 19, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, -1, -1, -1, 1862, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, 226, 227, -1, 5505, 54, -1, 1885, -1, -1, 1668, -1, -1, -1, -1, 1893, -1, -1, -1, 837, 838, -1, 1826, 1901, -1, -1, -1, -1, -1, 254, -1, 80, -1, 1837, -1, -1, 5053, -1, -1, -1, 1698, 1699, 1700, 1701, -1, 5774, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1942, 1943, -1, 1945, 1946, -1, -1, -1, 297, -1, -1, 1879, 1880, -1, -1, 1957, -1, 1959, 1960, -1, -1, -1, -1, 312, -1, -1, 315, -1, -1, -1, 1972, 1973, -1, -1, -1, 917, 1904, -1, -1, -1, -1, -1, -1, 1911, 5837, -1, -1, -1, -1, -1, -1, -1, -1, 342, -1, -1, -1, -1, -1, 172, -1, -1, -1, -1, -1, -1, -1, -1, 2010, -1, -1, -1, 2014, 2015, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, 203, 5656, -1, 5174, -1, -1, 5661, 5662, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 226, 227, -1, 1984, -1, -1, 408, -1, -1, -1, 1845, 1846, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 427, 1861, -1, 254, -1, -1, -1, -1, -1, -1, -1, 2017, 2018, -1, -1, -1, -1, -1, 1038, 1039, -1, -1, -1, -1, -1, -1, -1, -1, 2034, -1, -1, 2037, -1, -1, -1, 1895, 1896, 1897, 1898, -1, -1, -1, -1, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, 2134, -1, -1, -1, -1, -1, -1, 312, -1, -1, 315, -1, -1, -1, -1, -1, -1, 5774, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 514, -1, 340, -1, -1, -1, -1, -1, 5314, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1976, -1, -1, -1, -1, -1, 1982, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5837, 6347, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 408, -1, -1, -1, -1, -1, -1, -1, -1, 5385, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, 40, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, 2675, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1277, -1, -1, -1, -1, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, 2730, 5505, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1319, -1, -1, -1, 2748, -1, -1, -1, 2752, -1, -1, -1, 2756, 2172, -1, 10, -1, -1, 13, -1, -1, 2765, 17, 18, 19, -1, -1, -1, -1, 1348, 1349, 1350, -1, 1352, -1, -1, 2780, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, 1373, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, 2814, 203, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 2834, 2835, -1, -1, 226, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6347, -1, -1, -1, -1, 254, -1, -1, -1, -1, 2871, 2872, -1, -1, 2875, -1, -1, -1, -1, -1, -1, 5656, -1, -1, -1, -1, 5661, 5662, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2899, -1, 2901, -1, 1478, -1, 2905, -1, 1482, 1483, 297, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2919, -1, -1, -1, -1, 312, -1, 2926, 315, -1, 2929, -1, -1, -1, -1, -1, 2935, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, 2955, -1, -1, -1, -1, -1, 2961, -1, -1, -1, -1, -1, -1, 2968, -1, -1, -1, -1, -1, -1, 226, 227, -1, -1, -1, -1, -1, 2982, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2996, -1, -1, -1, 5774, 3001, -1, 254, -1, -1, -1, 3007, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 408, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2593, -1, -1, -1, -1, -1, -1, -1, 2675, -1, -1, 2604, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, 5837, 315, -1, -1, 3067, -1, -1, -1, -1, -1, -1, -1, 2636, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6347, -1, -1, -1, -1, -1, 2730, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2748, -1, -1, -1, 2752, -1, -1, -1, 2756, 2683, 2684, -1, -1, 514, -1, -1, -1, 2765, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, 2780, -1, -1, -1, -1, -1, -1, 1727, 1728, 1729, -1, 2717, 408, -1, -1, -1, -1, 2797, -1, 2799, 2800, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, 2814, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2834, 2835, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, 3222, -1, 3224, -1, 2641, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2871, 2872, -1, -1, 2875, 3241, -1, -1, -1, -1, -1, 80, 3248, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 513, 514, 2899, -1, 2901, -1, -1, -1, 2905, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, 2919, -1, -1, -1, -1, -1, -1, 2926, 2853, -1, 2929, -1, -1, -1, -1, -1, 2935, -1, -1, -1, -1, -1, -1, 2868, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2955, -1, -1, -1, -1, -1, 2961, -1, -1, 2890, -1, -1, -1, 2968, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3346, 2982, -1, -1, -1, -1, 3352, -1, -1, -1, -1, -1, -1, -1, -1, 2996, -1, -1, -1, 198, 3001, -1, -1, -1, 203, -1, 3007, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2803, -1, -1, -1, -1, 226, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2976, 2977, -1, -1, -1, -1, 254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3067, -1, -1, -1, -1, -1, 3438, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, 2056, 315, -1, -1, -1, -1, -1, -1, -1, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, -1, -1, 335, -1, 2079, -1, 2081, -1, 2083, -1, -1, 2086, 2087, 2088, -1, -1, -1, 3078, -1, 2094, -1, -1, 2097, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2947, -1, -1, 2950, -1, -1, -1, 2114, 2115, 2116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3571, 3572, 6347, -1, 408, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3222, -1, 3224, -1, -1, 3592, -1, -1, 3595, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3241, -1, -1, -1, -1, -1, -1, 3248, -1, -1, -1, -1, -1, -1, 3255, -1, 3257, 3258, 3039, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3052, -1, -1, -1, -1, -1, -1, -1, 3060, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3676, 3677, 3678, -1, -1, 514, -1, -1, 3099, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, 3701, -1, -1, 2279, 3120, -1, -1, -1, -1, -1, 3346, -1, -1, -1, -1, -1, 3352, -1, -1, 3720, -1, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3742, -1, -1, -1, -1, -1, 3163, 37, 3165, -1, 40, -1, -1, -1, -1, -1, 2333, 47, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, 1365, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, 3438, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, 2389, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3832, -1, -1, -1, 1422, -1, 3253, -1, -1, -1, -1, -1, 80, 3260, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3424, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3879, -1, -1, -1, -1, 3445, 3885, -1, 3887, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, 3900, 13, 3902, -1, -1, 17, 18, 19, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, 40, -1, -1, -1, -1, -1, -1, 47, 3571, 3572, 226, 227, -1, -1, 54, 179, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, 3592, -1, -1, 3595, -1, 198, -1, -1, -1, 254, 203, 80, 3969, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, -1, 226, 227, -1, -1, -1, -1, -1, -1, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, -1, 2583, 297, -1, 4011, -1, -1, 80, -1, -1, -1, 254, 2594, -1, -1, 2597, -1, 312, -1, -1, 315, -1, -1, 4030, -1, -1, -1, 4034, -1, -1, -1, -1, -1, -1, 3676, 3677, 3678, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4055, -1, -1, -1, -1, -1, 297, -1, 2638, -1, -1, 3701, 2642, -1, -1, 2645, -1, 2647, -1, -1, 2650, 312, -1, -1, 315, -1, -1, -1, -1, -1, 3720, 198, -1, -1, -1, -1, 203, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3742, -1, -1, -1, -1, -1, -1, 226, 227, -1, -1, -1, -1, 408, -1, -1, -1, -1, -1, -1, -1, 2703, 2704, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, -1, -1, 254, -1, -1, -1, -1, 1733, -1, -1, -1, 1737, -1, -1, -1, -1, -1, 3718, -1, -1, 226, 227, -1, -1, 4164, -1, -1, 3728, -1, -1, -1, -1, 408, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, 3601, 3602, 254, -1, -1, -1, -1, -1, -1, -1, -1, 3832, -1, -1, 312, -1, -1, 315, -1, -1, -1, -1, 2783, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 514, -1, -1, -1, -1, 297, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, 3879, -1, 312, -1, -1, 315, 3885, -1, 3887, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3900, -1, 3902, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, 408, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, 3891, 3892, 3893, -1, 3969, -1, -1, -1, -1, 4339, -1, 37, 408, -1, 40, -1, -1, 3908, -1, -1, -1, 47, 10, -1, -1, 13, -1, -1, 54, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4011, -1, 444, 37, 3941, 3942, -1, -1, 80, 3946, -1, -1, -1, 47, -1, -1, -1, -1, -1, 4030, 54, -1, -1, 4034, -1, 4401, 514, -1, -1, -1, 4406, -1, 4408, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, 4055, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4434, -1, -1, -1, -1, 3854, -1, -1, -1, -1, -1, -1, -1, -1, 514, -1, 3025, 3026, 3027, -1, -1, -1, 3031, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, 2054, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4481, -1, 3058, 4484, -1, -1, -1, -1, -1, -1, 4052, -1, -1, 2080, -1, -1, -1, 2084, -1, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, -1, -1, -1, 2099, 2100, 2101, -1, 2103, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4164, 226, 227, -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, 254, -1, 17, 18, 19, -1, -1, -1, -1, -1, 226, 227, -1, -1, -1, -1, 4574, 4575, -1, -1, -1, -1, 37, -1, -1, -1, -1, 4585, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, 254, 54, -1, 4014, -1, 297, 4602, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, 315, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, 315, 4219, 4220, 4221, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 332, -1, -1, -1, -1, -1, -1, -1, -1, 4683, -1, -1, 4686, -1, -1, -1, -1, -1, 3267, -1, -1, -1, -1, 3272, -1, -1, -1, -1, -1, -1, 4339, -1, -1, -1, 10, -1, -1, 13, 408, -1, -1, 17, 18, 19, -1, -1, -1, -1, 179, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, 198, -1, -1, -1, 47, 203, -1, -1, 3324, 408, -1, 54, -1, -1, -1, -1, -1, -1, -1, 3335, -1, 3337, 3338, -1, -1, 4401, -1, -1, 226, 227, 4406, -1, 4408, -1, -1, 3351, -1, 80, 3354, -1, 3356, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 254, -1, 4434, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 514, 3394, -1, 3396, -1, 3398, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, 297, -1, -1, -1, -1, -1, 4481, -1, -1, 4484, -1, -1, -1, -1, -1, 312, 514, -1, 315, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, 179, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3492, 4918, -1, -1, -1, 3497, -1, 226, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3512, -1, 4574, 4575, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4585, 408, 254, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, 4602, -1, 17, 18, 19, -1, -1, -1, 4975, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4987, -1, 37, -1, -1, -1, -1, 4555, 297, -1, -1, -1, 47, -1, -1, 3577, -1, 2590, -1, 54, -1, -1, -1, 312, -1, -1, 315, -1, -1, -1, -1, -1, -1, -1, -1, 5022, -1, -1, -1, 4587, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4683, -1, -1, 4686, -1, -1, -1, -1, -1, 514, 4619, -1, -1, -1, 3637, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4654, -1, -1, -1, -1, -1, -1, 5100, -1, -1, -1, 2690, -1, 408, -1, -1, -1, 4671, -1, -1, -1, -1, -1, 2702, 4532, -1, 5119, -1, 2707, -1, -1, -1, 173, -1, -1, -1, -1, -1, 4546, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, -1, 226, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, 5205, 254, -1, -1, -1, -1, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, 4818, 4819, 4820, 4821, -1, 3837, -1, 312, -1, -1, 315, 3843, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, 4918, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5336, -1, 5338, -1, 4975, -1, -1, -1, -1, -1, -1, 3922, 226, 227, -1, -1, 4987, -1, -1, -1, -1, -1, -1, -1, 408, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, 254, 17, 18, 19, -1, -1, -1, -1, -1, -1, 5386, 5022, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, 5436, 315, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5100, 514, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, 5119, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4071, -1, -1, -1, -1, -1, -1, -1, 4079, -1, 4081, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4095, -1, -1, -1, 4099, 4100, 4101, -1, -1, -1, 408, 4106, -1, -1, 4109, -1, -1, 4112, -1, -1, -1, -1, -1, 4118, -1, 4120, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, 203, -1, -1, -1, -1, -1, -1, 5205, -1, 4147, 4148, 4149, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 226, 227, -1, -1, -1, 4166, -1, -1, -1, -1, -1, -1, -1, 4174, -1, -1, 4177, -1, 4179, -1, 5167, -1, -1, -1, -1, -1, -1, -1, 254, -1, -1, 5178, 5033, -1, 4195, -1, -1, -1, -1, -1, -1, -1, 4203, 4204, -1, -1, -1, 5048, -1, 4210, 514, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, 4239, -1, -1, -1, -1, -1, -1, -1, 312, -1, 5674, 315, -1, -1, -1, -1, -1, -1, -1, -1, 3270, -1, -1, -1, 5688, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5336, 3288, 5338, -1, -1, -1, -1, -1, -1, -1, -1, 3298, -1, -1, 4290, -1, -1, 3304, 5719, -1, 3307, -1, -1, 5139, -1, -1, -1, 3314, 3315, -1, 3317, 4307, -1, -1, -1, 3322, 3323, -1, 3325, -1, 3327, -1, -1, -1, 3331, -1, -1, 3334, -1, -1, 5386, -1, 3339, -1, -1, -1, -1, -1, -1, -1, 5396, 3348, -1, -1, -1, -1, 3353, 408, -1, -1, -1, -1, -1, -1, 3361, 3362, 3363, 3364, -1, -1, -1, -1, 3369, 3370, -1, 3372, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5798, -1, -1, 5436, -1, -1, -1, 3391, 5441, 3393, -1, -1, -1, -1, -1, -1, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, 5834, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 488, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, 3446, 47, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, 10, 514, -1, 13, -1, -1, -1, 17, 18, 19, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, 80, -1, -1, 5458, -1, -1, 37, -1, 5463, 40, 5904, -1, -1, 5907, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, 5482, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 5362, 10, 5364, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, 173, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, 3586, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, -1, 203, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5674, 226, 227, -1, -1, -1, -1, -1, -1, -1, -1, 6050, -1, -1, 5688, -1, -1, 4631, 4632, -1, -1, -1, 198, -1, -1, -1, -1, 203, 4642, 254, -1, -1, -1, -1, -1, -1, -1, -1, 6077, -1, -1, -1, -1, 5643, -1, 5719, 5500, -1, -1, -1, 226, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, -1, -1, -1, -1, -1, 254, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, 315, -1, -1, -1, -1, -1, -1, 198, 4712, -1, -1, -1, 203, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4729, -1, -1, -1, -1, -1, 297, -1, -1, 5798, 226, 227, -1, -1, -1, -1, -1, -1, 4747, -1, -1, 312, -1, -1, 315, -1, 5741, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 254, -1, -1, -1, -1, -1, -1, 5834, -1, -1, -1, -1, -1, -1, -1, -1, 5769, -1, -1, 4786, 4787, -1, -1, 6215, -1, -1, -1, 4794, 4795, -1, 408, -1, 4799, -1, -1, -1, -1, 4804, -1, -1, 4807, 4808, -1, 297, -1, -1, -1, 4814, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, 315, -1, 3841, 3842, -1, -1, -1, 3846, -1, -1, 5678, -1, 5680, -1, -1, -1, 5904, -1, 408, 5907, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4859, -1, -1, -1, -1, 3875, -1, -1, -1, -1, -1, 4870, -1, -1, -1, -1, -1, -1, -1, 4878, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, 408, -1, 4923, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6373, -1, -1, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6050, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5003, 6064, -1, -1, 6432, -1, -1, 5010, -1, -1, -1, -1, -1, -1, 6077, -1, -1, -1, -1, -1, -1, -1, -1, -1, 514, -1, -1, -1, -1, 6457, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4070, -1, -1, -1, -1, -1, 4076, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6137, 6138, 5079, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5946, -1, -1, -1, -1, -1, -1, 4124, 4125, -1, -1, 4128, 4129, 4130, 4131, -1, -1, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, 35, 36, -1, 6215, 4167, -1, -1, 4170, -1, 4172, -1, -1, 4175, 4176, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, -1, -1, -1, -1, 4197, 4198, 4199, 4200, -1, 4202, 75, -1, 77, 78, -1, -1, -1, -1, -1, 84, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5231, -1, -1, -1, 118, -1, -1, 121, 6079, -1, 5241, -1, -1, -1, -1, -1, 5247, 5248, 5249, -1, -1, -1, 136, -1, 138, -1, -1, -1, 142, -1, 4272, -1, -1, -1, -1, 149, -1, -1, -1, -1, -1, 5272, 5273, -1, 158, 5276, 160, -1, -1, -1, -1, -1, -1, 167, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5294, -1, -1, -1, -1, -1, -1, -1, 185, -1, 5304, -1, -1, -1, -1, -1, -1, 4322, -1, 6373, -1, 5315, -1, -1, -1, 202, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5331, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6209, -1, -1, 6432, 256, 257, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, 6445, 6446, -1, -1, -1, -1, -1, -1, -1, 277, -1, -1, 6457, -1, -1, 6240, 6241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 343, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, -1, -1, -1, -1, -1, 364, 365, -1, 367, -1, -1, -1, -1, 372, -1, -1, 375, -1, -1, 378, -1, -1, 381, -1, -1, -1, -1, -1, -1, 388, -1, -1, -1, -1, -1, -1, 395, 396, -1, -1, -1, -1, -1, -1, 403, -1, -1, 6363, 407, -1, 25, -1, -1, -1, -1, -1, -1, -1, -1, 418, 5536, 4548, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, 435, -1, -1, -1, -1, 5557, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, 456, -1, -1, -1, -1, -1, -1, 4591, -1, 81, -1, -1, 468, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, 479, -1, -1, 98, -1, -1, 5602, -1, -1, -1, -1, -1, -1, 492, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, 122, -1, -1, -1, -1, -1, -1, -1, -1, -1, 516, -1, -1, -1, -1, -1, -1, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, 5650, -1, 535, -1, 153, 538, -1, -1, -1, -1, -1, -1, -1, 162, -1, -1, 5666, -1, -1, -1, -1, -1, -1, -1, -1, -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, 184, -1, -1, -1, 188, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4713, -1, -1, -1, 4717, 4718, 5708, 208, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4731, -1, -1, -1, -1, -1, -1, -1, 4739, -1, 4741, -1, 4743, 4744, -1, -1, -1, 25, 4749, 4750, 4751, 4752, 30, -1, -1, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, -1, 258, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, 4793, -1, -1, 4796, -1, 4798, -1, -1, -1, 4802, -1, 81, 4805, 4806, -1, 5797, 4809, 4810, -1, -1, -1, -1, 4815, -1, -1, -1, -1, 5809, 98, -1, -1, 312, -1, -1, 315, -1, 5818, 5819, 5820, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 338, -1, -1, -1, -1, -1, -1, 5846, -1, -1, -1, -1, -1, 140, 352, -1, -1, -1, -1, 4869, -1, 5860, 360, -1, -1, -1, 153, -1, -1, -1, -1, -1, -1, 4883, -1, 162, -1, -1, -1, -1, 5879, -1, 380, -1, -1, -1, -1, -1, 175, -1, -1, -1, 390, -1, 181, -1, -1, -1, -1, 397, -1, 188, 400, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 208, 420, -1, 30, -1, -1, -1, -1, -1, 428, -1, -1, -1, -1, -1, -1, 435, -1, -1, 438, -1, 440, -1, 442, 443, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 458, -1, 68, -1, -1, -1, -1, -1, 466, -1, -1, 469, -1, -1, 472, 81, 82, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, 485, 94, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, 6011, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, -1, -1, -1, -1, -1, 140, -1, -1, 6036, 325, -1, -1, -1, -1, -1, -1, -1, -1, 153, -1, -1, -1, 338, -1, -1, -1, -1, 162, -1, -1, -1, -1, 348, 349, -1, -1, 352, -1, -1, -1, 175, -1, -1, 5082, -1, -1, 181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 380, -1, -1, 383, -1, -1, -1, 387, -1, 208, 390, -1, -1, -1, -1, -1, -1, 397, -1, -1, 400, -1, -1, -1, -1, -1, -1, 6119, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 420, -1, -1, -1, -1, -1, -1, 246, 428, -1, -1, 6143, -1, -1, -1, 435, -1, -1, 438, -1, -1, -1, -1, 443, -1, -1, 5169, 5170, -1, 268, -1, 451, -1, 453, 5177, -1, -1, -1, 458, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 485, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, 5220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 338, 5243, 5244, -1, -1, -1, -1, -1, -1, -1, 348, 349, 30, -1, 352, -1, -1, -1, -1, -1, 5262, -1, 5264, -1, -1, -1, 5268, 5269, 5270, 5271, -1, -1, 5274, 5275, -1, -1, -1, -1, 5280, 6270, -1, -1, 380, -1, -1, 383, -1, -1, -1, 387, -1, -1, 390, -1, -1, 6286, 5298, -1, -1, 397, -1, -1, 400, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5316, -1, -1, -1, -1, -1, 98, -1, 420, -1, -1, -1, -1, -1, 5330, -1, 428, -1, -1, -1, -1, -1, -1, 435, 116, -1, 438, -1, -1, -1, 122, 443, -1, -1, -1, -1, -1, -1, -1, 451, -1, 453, 5358, -1, -1, -1, 458, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, -1, 485, -1, -1, -1, -1, -1, -1, -1, -1, -1, 175, -1, -1, -1, -1, -1, 181, -1, 5407, -1, 5409, -1, -1, 188, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6411, -1, -1, -1, -1, -1, -1, -1, -1, -1, 208, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5444, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 246, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5550, -1, 5552, 5553, 5554, 5555, 5556, -1, -1, -1, -1, -1, 338, -1, -1, -1, -1, -1, -1, 5569, 5570, 5571, 348, 349, -1, -1, 352, -1, -1, 5579, -1, -1, -1, -1, 5584, -1, -1, 5587, -1, -1, -1, 5591, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 380, -1, -1, 383, -1, 5609, -1, 387, -1, -1, 390, -1, -1, -1, -1, -1, -1, 397, -1, -1, 400, -1, 5626, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 420, -1, -1, -1, -1, -1, -1, -1, 428, -1, -1, -1, -1, 433, -1, 435, -1, -1, 438, -1, -1, -1, -1, 443, -1, -1, -1, -1, -1, -1, -1, -1, -1, 453, -1, -1, -1, -1, 458, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 485, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5799, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5810, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5831, -1, 5833, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5878, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5890, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5927, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6007, -1, -1, -1, -1, -1, -1, 6014, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6047, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6062, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6174, 6175, -1, -1, 6178, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6262, -1, -1, -1, -1, -1, -1, -1, 3, -1, 5, 6, -1, 8, 9, 10, 11, 12, 6280, 6281, -1, 6283, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, 6349, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, 137, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, 528, -1, -1, -1, -1, -1, -1, 535, 536, 3, -1, 5, 6, -1, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 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, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, 516, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, -1, -1, -1, -1, 535, 536, 3, -1, 5, 6, -1, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, -1, -1, -1, -1, 535, 536, 3, -1, 5, 6, -1, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, -1, -1, -1, -1, 535, 536, 3, -1, 5, 6, -1, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, -1, -1, -1, -1, 535, 536, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, 40, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 536, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, -1, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, -1, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, 295, 296, 297, 298, -1, -1, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, -1, 340, -1, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, -1, 480, 481, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 511, 512, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, 536, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, -1, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, -1, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, 295, 296, 297, 298, -1, -1, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, -1, 340, -1, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, -1, 480, 481, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 3, -1, 5, 6, -1, 8, 9, 10, 11, 12, -1, 510, 511, 512, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, 536, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 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, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, 516, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 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, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, 516, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, 179, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 249, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, 38, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, 38, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, -1, -1, 533, 534, 535, 3, -1, 5, 6, -1, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, 528, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, 179, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, 448, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, 3, -1, 5, 6, 535, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, 3, -1, 5, 6, -1, 8, 9, 535, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, 3, -1, 5, 6, -1, 8, 9, 535, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, 3, -1, 5, 6, -1, 8, 9, -1, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, 3, -1, 5, 6, -1, 8, 9, -1, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 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, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, 516, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, 3, -1, 5, 6, -1, -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, 528, -1, -1, -1, -1, -1, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, -1, -1, 516, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, 435, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, 516, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, 435, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, 535, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, -1, 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, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, -1, 169, 170, 171, 172, -1, 174, 175, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, 274, 275, -1, 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, -1, 307, 308, 309, -1, 311, 312, 313, 314, 315, -1, 317, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, -1, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 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, 440, 441, 442, 443, 444, 445, 446, 447, -1, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, -1, 483, 484, 485, 486, 487, 488, -1, 490, -1, -1, -1, -1, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, -1, 511, 512, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, 3, -1, 5, 6, -1, -1, -1, 10, 11, -1, -1, -1, -1, -1, 17, 18, 19, -1, -1, 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, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, -1, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, -1, 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, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, -1, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, -1, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 511, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, 3, -1, 5, 6, -1, -1, -1, 10, 11, -1, -1, -1, -1, -1, 17, 18, 19, -1, -1, 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, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, -1, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, -1, 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, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, -1, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, -1, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 511, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, 3, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, 17, 18, 19, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, 3, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, 17, 18, 19, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, 3, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, 17, 18, 19, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, 3, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, 17, 18, 19, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, 3, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, 17, 18, 19, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, 3, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, 17, 18, 19, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, 3, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, 17, 18, 19, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 523, 524, 525, 526, 527, 528, 529, 530, 531, 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, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 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, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 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, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 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, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 528, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 528, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 528, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 528, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 528, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, -1, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, -1, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, 295, 296, 297, 298, -1, -1, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, -1, 340, -1, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, -1, 480, 481, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 511, 512, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 528, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, -1, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, -1, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, 295, 296, 297, 298, -1, -1, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, -1, 340, -1, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, -1, 480, 481, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, -1, 3, -1, 5, 6, -1, -1, -1, -1, 11, 12, 510, 511, 512, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 528, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, 5, 6, -1, -1, -1, -1, 11, 12, -1, -1, -1, 526, 527, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, 5, 6, -1, -1, -1, -1, 11, -1, -1, -1, -1, 526, 527, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, 5, 6, -1, -1, -1, -1, 11, 12, -1, -1, -1, 526, 527, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, 5, 6, -1, -1, -1, -1, 11, -1, -1, -1, -1, 526, 527, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, 11, -1, -1, -1, -1, 526, 527, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, 179, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 526, 527, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 3, -1, 5, 6, -1, -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 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, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 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, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 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, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 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, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 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, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 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, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 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, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 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, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 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, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, 5, 6, -1, 8, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, 108, 109, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, 108, 109, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, 108, 109, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, 108, 109, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, 188, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, 108, 109, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, 108, 109, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, 108, 109, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, 108, 109, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, 108, 109, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, 6, -1, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, 6, -1, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, -1, -1, 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, 175, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, 175, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, 101, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, 185, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, 101, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, 185, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, 175, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, 101, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, 435, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, 175, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, 435, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, 101, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, 435, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, 6, -1, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, 435, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, 40, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, 40, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, 40, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, -1, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, 190, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, -1, 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, -1, -1, -1, 181, 182, 183, 184, -1, 186, 187, -1, 189, -1, 191, -1, 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, -1, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, -1, -1, 228, -1, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, 251, -1, 253, -1, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, -1, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, -1, 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, -1, 432, 433, -1, -1, 436, -1, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, 452, 453, 454, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, 479, 480, -1, 482, -1, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, -1, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, -1, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, 295, 296, 297, 298, -1, -1, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, -1, 340, -1, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, -1, 480, 481, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 511, 512, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, -1, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, -1, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, -1, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, 295, 296, 297, 298, 299, -1, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, -1, 340, -1, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, -1, 432, 433, -1, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, -1, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 511, 512, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, -1, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, -1, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, -1, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, -1, 295, 296, 297, 298, -1, -1, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, -1, 340, -1, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, -1, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 511, 512, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, -1, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, -1, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, -1, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -1, 293, -1, 295, 296, 297, 298, -1, -1, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, -1, 340, -1, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, -1, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 511, 512, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, -1, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, -1, 166, -1, 168, 169, 170, 171, 172, 173, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, -1, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, -1, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, 295, 296, 297, 298, -1, -1, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, -1, 340, -1, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, -1, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 511, 512, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, -1, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, -1, 166, -1, 168, 169, 170, 171, 172, 173, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, -1, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, -1, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, 295, 296, 297, 298, -1, -1, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, -1, 340, -1, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, -1, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 511, 512, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, -1, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, -1, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, -1, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, 295, 296, 297, 298, -1, -1, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, -1, 340, -1, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, -1, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 511, 512, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, -1, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, -1, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, -1, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, 295, 296, 297, 298, -1, -1, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, -1, 340, -1, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, -1, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 511, 512, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, -1, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, -1, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, -1, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, 295, 296, 297, 298, -1, -1, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, -1, 340, -1, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, -1, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 511, 512, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, -1, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, -1, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, -1, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, 295, 296, 297, 298, -1, -1, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, -1, 340, -1, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, -1, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 511, 512, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, -1, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, -1, 166, -1, 168, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, -1, 216, 217, 218, 219, 220, 221, -1, 223, -1, 225, 226, 227, 228, 229, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, -1, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, 295, 296, 297, 298, -1, -1, 301, 302, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, -1, 340, -1, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, -1, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, 451, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, -1, 480, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 511, 512, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, -1, 56, -1, -1, -1, 60, 61, 62, 63, 64, 65, 66, -1, -1, 69, 70, -1, -1, 73, -1, 75, 76, 77, 78, -1, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, 116, 117, 118, -1, -1, 121, -1, 123, -1, 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, 136, -1, -1, 139, 140, 141, 142, 143, -1, 145, 146, 147, 148, -1, 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, -1, 166, -1, 168, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, -1, 180, 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, 191, -1, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, -1, 204, 205, 206, 207, 208, 209, 210, 211, -1, 213, 214, -1, 216, 217, 218, 219, -1, -1, -1, -1, -1, 225, 226, 227, 228, 229, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, 242, 243, 244, 245, 246, 247, -1, -1, 250, -1, 252, 253, 254, -1, 256, 257, 258, -1, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, -1, 281, -1, 283, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, 295, 296, 297, 298, -1, -1, 301, -1, 303, 304, 305, -1, 307, 308, 309, -1, -1, 312, 313, 314, -1, -1, 317, 318, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, -1, 340, -1, 342, 343, 344, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, -1, 358, 359, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, -1, 377, 378, 379, 380, 381, 382, 383, 384, -1, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, -1, 403, 404, -1, 406, 407, 408, 409, 410, -1, 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, -1, 430, -1, 432, 433, -1, -1, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, -1, -1, -1, -1, 450, 451, -1, 453, -1, -1, 456, 457, 458, 459, 460, 461, 462, 463, 464, -1, -1, 467, 468, 469, 470, 471, -1, -1, 474, 475, 476, 477, 478, -1, -1, -1, 482, 483, 484, 485, 486, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, 497, 498, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 511, 512 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { 0, 22, 33, 35, 36, 53, 63, 75, 77, 78, 84, 86, 99, 101, 118, 121, 136, 138, 142, 149, 158, 160, 167, 185, 202, 256, 257, 262, 277, 296, 343, 358, 364, 365, 367, 372, 378, 381, 388, 395, 396, 403, 407, 418, 435, 456, 468, 474, 479, 492, 516, 518, 519, 520, 521, 522, 535, 542, 543, 544, 545, 550, 551, 557, 558, 560, 561, 562, 563, 565, 568, 580, 585, 586, 589, 590, 591, 611, 614, 615, 630, 681, 684, 685, 688, 691, 692, 693, 701, 708, 710, 711, 714, 717, 718, 722, 731, 735, 736, 737, 740, 742, 743, 744, 745, 753, 755, 775, 779, 781, 782, 792, 794, 801, 802, 805, 806, 807, 808, 809, 818, 820, 822, 825, 829, 830, 840, 841, 846, 851, 862, 894, 897, 898, 899, 904, 907, 909, 911, 913, 914, 918, 919, 922, 924, 925, 929, 930, 931, 934, 935, 936, 937, 938, 945, 947, 948, 949, 950, 956, 958, 959, 965, 966, 967, 970, 971, 972, 973, 975, 976, 978, 979, 981, 982, 984, 996, 998, 1001, 1003, 1004, 1013, 1015, 1020, 1025, 1035, 1039, 1040, 1041, 1042, 1043, 1044, 1050, 1086, 450, 495, 951, 30, 81, 98, 116, 122, 140, 153, 162, 175, 181, 188, 208, 246, 268, 312, 338, 348, 349, 352, 380, 383, 387, 390, 397, 400, 420, 428, 433, 435, 438, 443, 453, 458, 472, 485, 707, 951, 3, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 69, 70, 71, 72, 73, 75, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 102, 103, 104, 105, 109, 113, 114, 115, 116, 117, 118, 119, 120, 121, 123, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 136, 139, 140, 141, 142, 143, 145, 146, 147, 148, 150, 151, 152, 153, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 166, 168, 169, 170, 171, 172, 174, 176, 177, 178, 180, 181, 182, 183, 184, 186, 187, 189, 190, 191, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 204, 205, 206, 207, 208, 209, 210, 211, 213, 214, 215, 216, 217, 218, 219, 220, 221, 223, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 250, 251, 252, 253, 254, 256, 257, 258, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 295, 296, 297, 298, 300, 301, 302, 303, 304, 305, 307, 308, 309, 312, 313, 314, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 336, 337, 338, 339, 340, 341, 342, 343, 344, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 397, 398, 399, 400, 401, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 432, 433, 436, 437, 438, 439, 440, 441, 442, 443, 445, 446, 447, 450, 451, 452, 453, 454, 456, 457, 458, 459, 460, 461, 462, 463, 464, 467, 468, 469, 470, 471, 474, 475, 476, 477, 478, 479, 480, 482, 483, 484, 485, 486, 487, 490, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 1154, 1247, 1259, 1260, 1264, 1265, 1266, 3, 31, 1036, 1244, 1259, 1264, 483, 535, 989, 310, 344, 951, 56, 535, 622, 25, 43, 68, 81, 116, 122, 140, 153, 162, 175, 184, 188, 258, 312, 315, 338, 352, 380, 390, 400, 420, 428, 438, 440, 442, 443, 458, 466, 469, 472, 631, 690, 797, 852, 863, 31, 343, 1244, 1036, 31, 337, 398, 440, 442, 6, 245, 905, 906, 1250, 25, 30, 68, 81, 98, 116, 140, 153, 162, 175, 181, 188, 208, 268, 312, 325, 338, 349, 352, 380, 383, 387, 390, 397, 400, 420, 428, 435, 438, 443, 451, 453, 458, 472, 485, 707, 810, 812, 813, 951, 1244, 101, 483, 535, 685, 688, 691, 984, 997, 1001, 1004, 1013, 1020, 1025, 1035, 1039, 11, 24, 31, 51, 170, 177, 179, 203, 247, 285, 346, 366, 526, 527, 826, 827, 1036, 1249, 1251, 31, 33, 101, 362, 396, 831, 832, 833, 1259, 175, 1259, 1246, 1250, 435, 1053, 826, 1259, 450, 1244, 325, 268, 535, 917, 388, 1259, 31, 401, 446, 450, 572, 581, 582, 1259, 185, 831, 832, 1259, 344, 951, 1259, 244, 31, 137, 1055, 1056, 69, 95, 258, 279, 380, 390, 401, 446, 450, 498, 569, 570, 571, 572, 31, 401, 446, 450, 572, 450, 311, 1098, 1099, 1242, 1259, 1053, 528, 1259, 180, 535, 990, 535, 360, 1045, 1046, 1244, 1045, 3, 55, 57, 58, 71, 72, 119, 120, 141, 171, 220, 221, 223, 230, 280, 282, 302, 357, 405, 411, 446, 447, 480, 1127, 1129, 1131, 1133, 1135, 1137, 1138, 1139, 1141, 1142, 1143, 1145, 1146, 1150, 1260, 1264, 1055, 1056, 1057, 1255, 12, 1256, 1257, 1259, 1256, 1256, 1040, 1041, 1044, 0, 538, 535, 989, 154, 222, 316, 465, 1058, 1059, 1040, 1042, 1043, 127, 218, 270, 471, 539, 37, 955, 879, 1247, 815, 1259, 815, 1244, 347, 815, 453, 1244, 115, 435, 867, 1247, 1259, 1266, 3, 108, 112, 402, 1252, 1253, 1261, 1264, 1265, 1266, 31, 197, 1242, 303, 485, 10, 17, 18, 19, 76, 166, 523, 524, 525, 526, 527, 528, 529, 530, 531, 901, 903, 1185, 1186, 1259, 197, 1244, 867, 1244, 31, 1252, 1253, 867, 1244, 1244, 197, 1242, 1244, 197, 815, 1244, 372, 403, 31, 197, 1098, 1244, 393, 1244, 815, 31, 265, 1252, 1253, 197, 1242, 245, 124, 228, 294, 356, 952, 953, 954, 535, 533, 537, 1211, 1213, 513, 983, 984, 985, 986, 1261, 1242, 1244, 1259, 30, 68, 82, 94, 116, 140, 181, 208, 246, 312, 349, 380, 383, 428, 438, 451, 458, 810, 811, 812, 813, 1250, 955, 1000, 1004, 1013, 1020, 1025, 1039, 1242, 272, 815, 535, 197, 815, 1244, 815, 453, 197, 1244, 115, 435, 440, 442, 1252, 1253, 440, 442, 76, 166, 901, 370, 1244, 1244, 1252, 197, 546, 1259, 197, 1244, 197, 547, 815, 1244, 1244, 393, 815, 265, 1252, 360, 397, 435, 485, 268, 98, 208, 30, 94, 181, 349, 387, 451, 453, 457, 702, 31, 1244, 1037, 579, 1250, 1261, 906, 272, 197, 879, 880, 197, 910, 197, 1244, 197, 817, 1127, 453, 115, 435, 197, 866, 867, 197, 1253, 1254, 89, 485, 76, 166, 197, 902, 903, 61, 197, 866, 197, 1254, 197, 866, 197, 1244, 197, 1244, 393, 910, 197, 817, 197, 265, 1254, 245, 197, 814, 815, 197, 1243, 1244, 197, 1244, 955, 535, 1002, 631, 997, 479, 983, 989, 1251, 827, 828, 31, 828, 1251, 828, 31, 828, 1251, 828, 828, 828, 1251, 1249, 1249, 1036, 828, 347, 535, 433, 535, 658, 658, 658, 310, 448, 539, 658, 390, 1098, 1100, 539, 946, 1250, 535, 999, 61, 485, 983, 116, 208, 390, 433, 435, 915, 916, 1259, 50, 512, 228, 537, 313, 310, 179, 313, 1250, 448, 955, 173, 823, 310, 5, 8, 9, 10, 12, 39, 55, 57, 58, 67, 68, 71, 72, 79, 81, 106, 107, 108, 109, 110, 111, 112, 119, 120, 122, 159, 164, 165, 171, 187, 189, 220, 221, 223, 230, 231, 232, 233, 234, 235, 236, 237, 238, 240, 251, 259, 260, 271, 280, 282, 292, 294, 299, 300, 302, 312, 323, 339, 357, 385, 402, 411, 429, 434, 446, 447, 452, 454, 455, 466, 472, 480, 500, 501, 502, 503, 505, 506, 507, 508, 514, 526, 527, 528, 535, 1040, 1130, 1133, 1136, 1137, 1138, 1140, 1141, 1142, 1145, 1146, 1150, 1151, 1153, 1154, 1155, 1157, 1181, 1182, 1183, 1187, 1205, 1210, 1236, 1239, 1240, 1247, 1248, 1249, 1250, 1259, 1238, 1239, 1250, 31, 587, 1241, 1242, 401, 569, 122, 578, 1250, 12, 579, 12, 1250, 50, 73, 569, 512, 412, 953, 313, 179, 448, 525, 50, 512, 228, 954, 535, 1242, 528, 1213, 1100, 983, 178, 991, 1151, 1190, 1045, 539, 535, 992, 482, 1144, 1144, 1144, 535, 1132, 1132, 341, 535, 1134, 71, 72, 1144, 1132, 1129, 516, 517, 535, 1147, 535, 1147, 39, 1128, 535, 117, 195, 273, 276, 394, 510, 535, 1148, 1149, 537, 816, 1132, 1238, 1214, 536, 536, 544, 983, 993, 994, 995, 1242, 31, 137, 1054, 1054, 61, 1054, 167, 173, 255, 306, 1062, 1064, 1065, 1080, 1082, 1083, 1084, 1058, 1059, 179, 224, 224, 1098, 1101, 535, 70, 290, 326, 368, 403, 535, 877, 326, 364, 368, 403, 816, 326, 368, 403, 3, 93, 147, 261, 326, 364, 368, 403, 438, 441, 492, 580, 583, 960, 961, 962, 963, 847, 27, 142, 326, 368, 403, 476, 596, 1244, 27, 142, 403, 471, 564, 496, 197, 1098, 64, 100, 163, 200, 250, 290, 294, 326, 327, 368, 377, 386, 395, 403, 416, 425, 430, 487, 580, 584, 883, 895, 923, 535, 864, 1213, 368, 564, 203, 159, 27, 33, 48, 78, 135, 142, 146, 174, 210, 290, 294, 304, 314, 326, 368, 371, 372, 403, 476, 592, 594, 595, 725, 923, 5, 526, 527, 699, 1251, 31, 197, 1242, 815, 815, 535, 900, 326, 403, 537, 159, 310, 326, 368, 403, 895, 923, 27, 142, 326, 368, 403, 203, 559, 368, 492, 516, 552, 559, 326, 368, 403, 895, 923, 310, 326, 368, 159, 40, 62, 114, 206, 264, 269, 274, 290, 325, 368, 373, 397, 403, 418, 469, 592, 696, 697, 326, 368, 484, 725, 733, 159, 326, 368, 403, 27, 93, 135, 142, 146, 326, 364, 368, 403, 410, 582, 570, 572, 203, 159, 48, 133, 290, 368, 403, 592, 593, 326, 368, 372, 403, 91, 134, 329, 441, 310, 27, 33, 142, 326, 368, 403, 612, 613, 559, 173, 368, 552, 559, 159, 368, 403, 592, 1244, 253, 124, 311, 497, 539, 952, 31, 137, 481, 528, 536, 872, 1151, 1191, 1192, 1260, 1151, 1212, 3, 31, 35, 36, 37, 38, 39, 40, 41, 45, 59, 67, 68, 74, 80, 82, 94, 101, 106, 107, 108, 110, 111, 112, 122, 124, 132, 137, 138, 144, 149, 154, 165, 167, 173, 175, 179, 185, 188, 192, 203, 212, 222, 224, 248, 249, 255, 259, 260, 294, 299, 306, 310, 311, 315, 316, 335, 345, 362, 376, 396, 402, 413, 431, 434, 435, 444, 448, 449, 455, 465, 466, 472, 473, 481, 488, 489, 491, 492, 528, 1245, 1262, 1264, 1265, 1266, 1267, 1211, 536, 539, 165, 310, 455, 576, 579, 699, 987, 473, 980, 310, 879, 535, 815, 1244, 1127, 867, 303, 76, 166, 903, 867, 867, 173, 1127, 815, 1244, 1244, 536, 658, 1244, 74, 1127, 294, 179, 535, 783, 552, 40, 974, 1244, 294, 552, 496, 197, 1242, 552, 815, 815, 783, 469, 631, 310, 173, 492, 891, 552, 294, 50, 566, 294, 458, 732, 294, 992, 93, 326, 709, 91, 134, 329, 441, 40, 783, 173, 197, 552, 485, 197, 1242, 197, 686, 1242, 1242, 485, 815, 89, 548, 1247, 453, 1247, 1247, 1244, 173, 1244, 707, 42, 56, 113, 217, 290, 392, 159, 65, 374, 539, 549, 159, 535, 159, 552, 159, 539, 549, 496, 159, 539, 549, 159, 539, 197, 814, 197, 815, 197, 815, 159, 539, 549, 1254, 159, 549, 159, 159, 549, 159, 549, 159, 91, 134, 329, 441, 173, 159, 549, 159, 173, 197, 159, 539, 549, 159, 539, 549, 159, 310, 1190, 435, 536, 997, 828, 1036, 828, 1036, 828, 1036, 828, 1036, 828, 1036, 1036, 1036, 828, 1036, 535, 659, 660, 1259, 659, 31, 116, 140, 175, 181, 245, 246, 328, 349, 383, 390, 397, 435, 438, 458, 836, 1241, 1254, 833, 1244, 203, 539, 1016, 1250, 1127, 1194, 40, 1254, 548, 536, 548, 548, 548, 253, 1259, 173, 836, 1254, 173, 388, 1259, 579, 310, 535, 1214, 533, 1040, 1195, 1151, 1209, 535, 535, 173, 535, 535, 1040, 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, 1151, 535, 535, 535, 535, 535, 535, 535, 535, 301, 647, 535, 535, 535, 535, 535, 535, 535, 535, 1151, 1151, 1151, 1040, 1151, 1190, 1213, 12, 1250, 12, 535, 1250, 3, 10, 13, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 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, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 169, 170, 171, 172, 174, 175, 176, 177, 178, 180, 181, 182, 183, 184, 186, 187, 189, 190, 191, 193, 194, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 223, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 274, 275, 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, 307, 308, 309, 311, 312, 313, 314, 315, 317, 318, 319, 320, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 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, 440, 441, 442, 443, 444, 445, 446, 447, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 483, 484, 485, 486, 487, 488, 490, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 511, 512, 514, 523, 524, 525, 526, 527, 528, 529, 530, 531, 1185, 1187, 1189, 1263, 1268, 493, 1168, 322, 1151, 168, 1169, 224, 539, 1051, 12, 535, 1250, 1213, 1051, 125, 199, 588, 539, 73, 12, 122, 579, 40, 3, 12, 122, 258, 577, 699, 1146, 1250, 1250, 96, 139, 1163, 105, 12, 122, 573, 574, 576, 699, 122, 573, 253, 1242, 97, 373, 819, 536, 989, 37, 47, 54, 80, 198, 203, 226, 254, 312, 315, 408, 536, 539, 1046, 1243, 40, 535, 1190, 1249, 1144, 1144, 39, 1128, 446, 446, 1249, 1249, 533, 533, 1249, 448, 448, 448, 535, 448, 1249, 1245, 537, 1132, 179, 1087, 15, 525, 1211, 1258, 536, 539, 992, 1042, 1042, 1060, 1061, 1151, 1042, 170, 285, 1071, 242, 290, 356, 406, 471, 31, 1066, 1151, 526, 527, 1067, 1068, 1151, 1153, 1080, 1081, 1065, 1064, 1062, 1063, 173, 1083, 304, 1085, 1062, 1080, 1101, 1005, 1242, 1101, 40, 1259, 403, 1190, 70, 448, 448, 390, 203, 215, 316, 319, 405, 481, 528, 870, 871, 872, 874, 876, 878, 1127, 1260, 448, 484, 448, 390, 448, 448, 390, 255, 448, 81, 448, 438, 569, 326, 960, 962, 525, 964, 173, 185, 203, 378, 848, 849, 74, 94, 294, 655, 656, 94, 122, 294, 448, 94, 448, 122, 294, 390, 94, 135, 146, 326, 368, 780, 390, 715, 30, 68, 140, 181, 312, 349, 383, 451, 458, 810, 811, 1244, 159, 368, 403, 592, 310, 699, 395, 250, 448, 1259, 448, 299, 699, 126, 225, 390, 401, 450, 571, 815, 374, 403, 883, 896, 130, 536, 865, 870, 448, 472, 438, 1242, 74, 82, 94, 155, 175, 197, 345, 466, 638, 653, 654, 1259, 82, 94, 920, 331, 310, 385, 387, 453, 94, 920, 34, 371, 385, 387, 453, 385, 1242, 174, 210, 304, 815, 535, 448, 448, 196, 535, 600, 25, 264, 438, 469, 494, 600, 94, 539, 130, 5, 5, 326, 203, 159, 368, 403, 592, 923, 473, 473, 291, 1127, 448, 390, 535, 901, 1244, 1242, 448, 448, 390, 896, 130, 109, 435, 436, 932, 933, 1099, 1242, 1259, 933, 448, 448, 783, 933, 116, 403, 583, 448, 554, 583, 448, 448, 390, 896, 130, 1242, 448, 448, 1242, 1129, 699, 61, 698, 699, 699, 114, 269, 274, 61, 448, 552, 278, 390, 552, 290, 697, 448, 448, 299, 1250, 725, 815, 448, 448, 390, 420, 352, 1250, 352, 448, 352, 448, 352, 783, 783, 438, 1098, 331, 331, 94, 448, 920, 390, 448, 448, 600, 600, 815, 815, 815, 815, 1242, 49, 478, 49, 49, 478, 448, 49, 448, 478, 390, 535, 539, 583, 472, 741, 1253, 448, 554, 583, 1242, 448, 920, 390, 326, 368, 356, 369, 399, 575, 952, 1191, 1191, 1192, 536, 15, 16, 539, 1058, 1059, 534, 540, 1242, 985, 1244, 1242, 226, 1127, 226, 310, 226, 226, 699, 815, 815, 226, 226, 226, 1127, 226, 226, 226, 310, 448, 179, 448, 616, 458, 535, 40, 159, 815, 784, 785, 1262, 960, 1127, 310, 159, 712, 1244, 294, 331, 535, 553, 797, 473, 360, 485, 1242, 31, 933, 783, 553, 159, 1253, 101, 185, 567, 630, 692, 755, 829, 851, 956, 159, 1250, 733, 734, 159, 310, 1250, 1253, 261, 815, 815, 815, 815, 150, 355, 535, 741, 294, 553, 1242, 294, 694, 696, 294, 40, 304, 331, 535, 658, 658, 197, 689, 1242, 173, 197, 546, 1259, 535, 787, 877, 1244, 535, 868, 868, 40, 1127, 29, 52, 219, 756, 245, 492, 494, 1038, 392, 880, 879, 1127, 1244, 535, 817, 1127, 866, 867, 1254, 1253, 159, 549, 159, 473, 159, 473, 902, 903, 549, 866, 1254, 866, 1244, 1244, 1127, 817, 1254, 741, 159, 814, 815, 1243, 1244, 1244, 815, 536, 197, 1242, 997, 1036, 1036, 1036, 1036, 1036, 1036, 659, 536, 539, 536, 182, 350, 384, 398, 436, 1243, 814, 115, 400, 866, 1243, 303, 834, 835, 1259, 866, 866, 1243, 1241, 1241, 1243, 814, 448, 186, 492, 845, 154, 255, 738, 739, 25, 157, 385, 406, 1017, 1098, 298, 1018, 536, 539, 1000, 448, 1242, 1244, 1242, 546, 831, 832, 179, 845, 832, 1259, 30, 82, 140, 181, 246, 349, 383, 458, 810, 811, 1190, 534, 1190, 1195, 1196, 488, 1206, 1207, 1151, 1190, 535, 1249, 1249, 3, 12, 117, 195, 273, 276, 394, 510, 1197, 1198, 1250, 1190, 1190, 1151, 1224, 376, 1040, 1041, 1224, 1228, 1235, 1224, 1224, 1151, 1153, 1191, 1228, 1231, 1232, 1151, 1232, 1224, 1151, 1224, 1224, 1190, 1249, 1249, 536, 1151, 1151, 901, 1151, 1191, 1193, 1200, 385, 526, 527, 535, 1152, 1153, 1187, 1201, 536, 1190, 1151, 1193, 1202, 1151, 59, 179, 249, 449, 1151, 1190, 1203, 137, 294, 1040, 1190, 278, 1153, 1151, 1161, 1162, 1163, 278, 1151, 1163, 536, 539, 1148, 1249, 1148, 1127, 1151, 1151, 1151, 1151, 1262, 258, 446, 45, 431, 1215, 815, 1151, 535, 1040, 1204, 137, 139, 165, 230, 286, 287, 288, 289, 293, 294, 299, 455, 467, 1199, 1229, 1151, 535, 1151, 448, 54, 198, 203, 254, 408, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 31, 38, 413, 1184, 188, 1169, 385, 535, 1181, 535, 321, 1173, 184, 258, 435, 440, 442, 469, 1052, 1242, 1240, 1087, 1191, 1087, 1242, 450, 535, 1250, 539, 536, 196, 196, 549, 995, 984, 988, 1151, 536, 268, 294, 1047, 1190, 536, 536, 533, 512, 512, 536, 536, 1249, 534, 1249, 536, 195, 273, 1149, 273, 1149, 1149, 1249, 276, 536, 1245, 230, 239, 248, 386, 509, 535, 1040, 1088, 1089, 1090, 1098, 1104, 1114, 1121, 1154, 1156, 1157, 1236, 1259, 489, 1109, 1255, 995, 993, 539, 41, 132, 473, 860, 385, 386, 526, 527, 1068, 1070, 1153, 406, 242, 311, 539, 5, 1069, 1249, 1069, 385, 386, 1070, 1241, 298, 410, 1019, 1081, 1063, 473, 1014, 122, 324, 535, 1006, 1039, 40, 473, 1259, 535, 1021, 1022, 1023, 1259, 536, 1253, 1244, 1244, 319, 61, 1260, 536, 872, 874, 871, 874, 1260, 316, 536, 539, 816, 1253, 1244, 1244, 1253, 1244, 1244, 1253, 484, 1244, 1244, 122, 576, 699, 380, 472, 831, 390, 185, 831, 535, 1244, 299, 197, 1244, 299, 1253, 1244, 1244, 1151, 299, 1244, 1244, 34, 371, 448, 448, 1244, 448, 716, 879, 535, 1127, 867, 76, 166, 903, 867, 867, 173, 1127, 815, 1244, 191, 290, 326, 368, 477, 719, 720, 721, 1098, 448, 920, 390, 299, 126, 225, 1253, 1244, 310, 1244, 310, 536, 539, 1252, 1254, 1244, 368, 592, 535, 197, 638, 1244, 473, 853, 242, 294, 242, 473, 647, 680, 1127, 1244, 1249, 1259, 1242, 1244, 253, 1244, 31, 472, 1244, 197, 1244, 197, 1259, 387, 453, 387, 453, 253, 1244, 31, 472, 1244, 253, 385, 1242, 27, 142, 403, 726, 727, 728, 729, 1262, 1253, 1244, 122, 180, 295, 473, 599, 602, 603, 1262, 272, 1244, 78, 307, 1244, 595, 310, 448, 438, 1242, 448, 920, 390, 130, 1244, 1244, 539, 536, 539, 1253, 1244, 926, 927, 1262, 310, 368, 448, 749, 1253, 1244, 1244, 310, 1098, 203, 539, 658, 658, 1213, 1253, 1244, 1244, 1252, 3, 93, 148, 210, 333, 464, 472, 475, 555, 1253, 1244, 1244, 310, 368, 1253, 1244, 368, 403, 592, 696, 699, 815, 1244, 699, 815, 1244, 699, 1253, 1244, 403, 1253, 1244, 1244, 122, 606, 1251, 1243, 1243, 1253, 891, 1244, 1243, 1244, 368, 403, 592, 593, 1242, 1242, 1244, 1244, 1244, 1244, 1253, 1244, 27, 33, 142, 326, 368, 403, 326, 368, 403, 783, 368, 403, 368, 403, 368, 923, 1113, 1259, 197, 793, 1259, 197, 1259, 1250, 1253, 1244, 1244, 1250, 1244, 926, 27, 142, 613, 400, 1252, 368, 403, 592, 1244, 1244, 1244, 448, 448, 87, 463, 356, 539, 1058, 1058, 1058, 1151, 1151, 481, 1192, 536, 1151, 1212, 980, 299, 821, 1250, 40, 821, 140, 815, 821, 821, 226, 473, 473, 821, 821, 821, 245, 821, 821, 821, 815, 351, 617, 617, 208, 435, 754, 1151, 1127, 815, 536, 539, 525, 644, 1262, 1244, 65, 179, 390, 484, 713, 720, 721, 159, 304, 254, 632, 634, 636, 638, 650, 653, 28, 203, 380, 432, 555, 556, 173, 1244, 485, 1242, 40, 750, 436, 891, 546, 1259, 566, 631, 863, 1244, 175, 815, 535, 682, 683, 1156, 1259, 352, 1250, 783, 783, 783, 783, 535, 783, 1111, 1112, 1113, 400, 159, 535, 159, 159, 158, 1039, 815, 304, 632, 1259, 473, 675, 492, 601, 294, 40, 658, 1250, 294, 310, 3, 788, 789, 783, 29, 536, 869, 870, 875, 40, 245, 377, 451, 491, 881, 882, 883, 884, 881, 310, 245, 304, 127, 218, 456, 471, 757, 758, 1244, 194, 194, 173, 549, 40, 552, 174, 968, 969, 549, 549, 814, 815, 1244, 815, 1244, 549, 549, 549, 549, 245, 549, 400, 173, 549, 549, 310, 549, 294, 536, 660, 203, 203, 203, 203, 203, 496, 1243, 699, 700, 539, 537, 188, 837, 838, 1253, 61, 842, 843, 1262, 448, 535, 179, 157, 406, 157, 406, 385, 471, 275, 1127, 1253, 492, 687, 310, 837, 549, 179, 879, 815, 1127, 867, 303, 867, 867, 1127, 815, 1244, 536, 534, 534, 539, 1151, 144, 1207, 1208, 40, 536, 1151, 536, 536, 179, 536, 179, 536, 536, 513, 1225, 1226, 492, 494, 1230, 1127, 1226, 536, 23, 299, 539, 1234, 316, 1237, 539, 540, 478, 536, 536, 23, 299, 539, 1233, 1233, 539, 536, 1228, 539, 536, 536, 536, 536, 539, 539, 536, 335, 536, 536, 535, 1152, 1152, 1190, 13, 17, 18, 19, 203, 226, 312, 523, 524, 525, 526, 527, 528, 529, 530, 531, 1187, 1152, 536, 536, 173, 179, 408, 536, 536, 40, 1203, 1190, 1203, 1203, 179, 536, 137, 536, 1262, 332, 1166, 40, 536, 539, 1151, 1262, 539, 1151, 1214, 1151, 536, 512, 1152, 1152, 152, 1190, 179, 39, 303, 389, 478, 137, 139, 165, 293, 299, 455, 467, 1199, 1229, 293, 1230, 152, 901, 1151, 431, 1215, 1151, 1204, 1151, 448, 535, 1040, 535, 1173, 535, 1190, 489, 535, 1174, 1259, 440, 442, 440, 442, 1242, 1053, 1053, 1053, 1109, 1058, 1109, 953, 1249, 1148, 574, 995, 268, 535, 536, 1249, 1147, 1147, 534, 534, 536, 535, 1040, 1104, 1114, 1121, 179, 535, 1040, 1089, 1090, 40, 1091, 1092, 1259, 539, 102, 180, 214, 229, 252, 281, 379, 1095, 1092, 40, 1091, 1094, 1259, 1092, 1092, 516, 1108, 1213, 1151, 188, 1072, 1061, 312, 1185, 1188, 515, 861, 5, 1249, 1070, 311, 492, 471, 1067, 263, 1088, 489, 1110, 479, 433, 472, 1007, 1008, 1009, 1259, 310, 1010, 1259, 1089, 1023, 1024, 539, 1087, 525, 1214, 878, 816, 874, 874, 61, 876, 530, 1254, 1254, 310, 1243, 313, 310, 1151, 656, 773, 159, 549, 448, 1253, 1244, 579, 1127, 815, 815, 1127, 703, 1244, 191, 477, 448, 448, 703, 719, 725, 368, 403, 592, 1244, 1244, 1244, 216, 299, 162, 870, 325, 403, 448, 1151, 294, 155, 654, 1244, 535, 535, 159, 535, 680, 208, 535, 773, 423, 642, 643, 773, 403, 27, 142, 372, 373, 403, 596, 604, 605, 725, 921, 395, 159, 549, 159, 549, 1244, 1244, 1244, 1244, 395, 395, 253, 728, 729, 728, 536, 539, 730, 1250, 208, 536, 539, 525, 537, 122, 607, 1259, 162, 1253, 1244, 368, 403, 592, 1244, 1244, 1244, 310, 326, 368, 403, 27, 142, 326, 368, 403, 1127, 291, 1127, 536, 539, 525, 1242, 448, 1254, 473, 746, 162, 658, 390, 932, 489, 665, 665, 658, 255, 333, 12, 299, 1250, 333, 1254, 470, 162, 448, 448, 390, 420, 891, 891, 891, 325, 403, 94, 448, 920, 390, 122, 173, 608, 169, 548, 448, 448, 265, 265, 265, 448, 448, 390, 448, 448, 390, 448, 390, 448, 390, 448, 130, 549, 1127, 294, 1250, 403, 921, 159, 549, 448, 448, 536, 1244, 448, 920, 390, 448, 1253, 1244, 536, 536, 536, 1192, 534, 1127, 815, 226, 821, 1244, 1244, 1244, 226, 421, 422, 618, 1250, 618, 191, 536, 536, 179, 783, 785, 291, 312, 526, 527, 699, 786, 874, 1188, 1250, 1267, 74, 80, 94, 122, 124, 183, 212, 294, 299, 345, 362, 466, 645, 646, 649, 158, 488, 552, 579, 1244, 579, 314, 723, 1242, 1242, 1242, 536, 539, 1254, 188, 380, 1254, 1249, 458, 1242, 658, 3, 173, 751, 891, 50, 566, 435, 732, 115, 992, 1151, 179, 539, 1243, 601, 790, 791, 1250, 536, 539, 1244, 173, 659, 1242, 686, 1242, 1244, 687, 535, 633, 1242, 536, 1244, 492, 494, 676, 600, 40, 159, 1039, 675, 448, 159, 1098, 525, 536, 539, 757, 536, 539, 122, 525, 885, 1250, 579, 435, 873, 874, 173, 890, 53, 375, 886, 887, 884, 887, 127, 218, 396, 471, 943, 1244, 304, 310, 315, 191, 1039, 1127, 535, 536, 539, 549, 473, 549, 473, 549, 1244, 1244, 741, 815, 159, 390, 390, 390, 390, 390, 1243, 539, 835, 1259, 1253, 492, 539, 839, 1253, 539, 845, 165, 313, 455, 844, 1100, 400, 157, 157, 115, 290, 836, 845, 1254, 226, 226, 226, 226, 699, 226, 226, 226, 226, 226, 1195, 444, 1151, 149, 1127, 536, 1151, 1151, 230, 466, 466, 536, 1226, 1228, 310, 310, 1224, 1228, 61, 1234, 1151, 1224, 1224, 310, 310, 1232, 1230, 1230, 1151, 536, 1151, 1199, 1151, 1151, 536, 1190, 539, 1127, 1152, 1152, 1152, 1152, 137, 139, 294, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1151, 1151, 1151, 1127, 536, 536, 536, 1190, 536, 539, 61, 1153, 1167, 536, 1262, 1162, 342, 427, 1165, 536, 539, 484, 1158, 40, 536, 12, 1250, 1151, 37, 37, 1151, 536, 1151, 179, 293, 1230, 1151, 536, 152, 1152, 1152, 152, 152, 1151, 1151, 1059, 536, 1190, 539, 1151, 1175, 1259, 1053, 1053, 1053, 1053, 1242, 1242, 1242, 1072, 536, 1072, 536, 1000, 534, 1224, 1092, 1094, 1092, 1092, 535, 504, 1153, 536, 1259, 535, 1089, 229, 320, 1096, 1089, 1096, 229, 1095, 1096, 229, 437, 1102, 535, 1259, 535, 317, 61, 192, 1079, 535, 861, 170, 247, 311, 492, 445, 105, 1151, 376, 1012, 478, 536, 539, 1214, 92, 1012, 310, 536, 539, 1022, 1110, 1151, 536, 530, 878, 458, 182, 384, 391, 398, 436, 459, 850, 173, 850, 536, 124, 212, 290, 294, 774, 1244, 1244, 40, 473, 473, 245, 816, 1253, 1244, 448, 920, 390, 448, 216, 1244, 61, 438, 1244, 536, 159, 535, 663, 664, 856, 1156, 1259, 659, 638, 659, 773, 1244, 659, 122, 1259, 88, 640, 641, 420, 183, 161, 196, 294, 600, 552, 115, 161, 183, 294, 420, 600, 640, 642, 697, 403, 605, 458, 1244, 1259, 395, 727, 1244, 603, 786, 1262, 1244, 325, 403, 448, 920, 390, 448, 162, 448, 448, 390, 181, 312, 423, 795, 796, 181, 312, 803, 804, 448, 448, 390, 536, 536, 536, 927, 291, 699, 874, 928, 1188, 1250, 1267, 368, 1244, 535, 492, 747, 1244, 665, 109, 1259, 535, 665, 1251, 12, 1250, 1250, 1250, 1244, 1244, 1244, 1244, 606, 61, 438, 1244, 1244, 1244, 1244, 479, 1244, 1244, 173, 173, 370, 173, 197, 1253, 1244, 1244, 1253, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 310, 80, 597, 159, 29, 52, 458, 1259, 1244, 1250, 725, 1244, 1244, 1244, 1244, 1058, 536, 226, 821, 226, 226, 226, 821, 552, 473, 623, 624, 703, 773, 492, 494, 815, 535, 815, 1244, 1152, 34, 61, 648, 125, 199, 124, 299, 242, 1242, 647, 181, 349, 769, 776, 777, 1259, 712, 535, 331, 535, 633, 651, 211, 670, 636, 1254, 1254, 1127, 535, 601, 31, 127, 218, 396, 471, 752, 448, 748, 1253, 197, 1242, 734, 496, 310, 536, 1088, 683, 891, 536, 539, 1113, 723, 741, 536, 694, 40, 304, 331, 535, 1002, 635, 637, 639, 653, 1259, 331, 671, 672, 633, 670, 600, 307, 310, 677, 1039, 689, 687, 601, 1250, 1244, 853, 786, 3, 789, 310, 875, 1151, 1151, 539, 535, 881, 458, 539, 46, 1151, 448, 535, 659, 1242, 758, 703, 536, 968, 969, 1244, 1244, 549, 400, 549, 1243, 1243, 1243, 1243, 1243, 699, 185, 838, 845, 843, 536, 1244, 115, 179, 549, 845, 299, 824, 1250, 824, 824, 824, 226, 824, 824, 824, 824, 824, 1151, 536, 147, 243, 243, 536, 299, 299, 536, 1060, 1228, 332, 1216, 299, 299, 1228, 1228, 1216, 1216, 536, 536, 179, 536, 1151, 179, 137, 139, 179, 173, 152, 536, 499, 1160, 1190, 361, 478, 61, 1167, 1153, 490, 490, 536, 1151, 290, 1151, 539, 1159, 1129, 1151, 1151, 1151, 1151, 37, 37, 1151, 1151, 152, 536, 536, 536, 1151, 536, 331, 1176, 1242, 1242, 1242, 1242, 1079, 12, 1250, 1079, 1250, 536, 539, 1105, 1106, 1156, 535, 1166, 1091, 535, 1243, 1089, 310, 473, 1097, 1089, 229, 1089, 1247, 1112, 535, 1112, 1259, 1054, 1151, 491, 1170, 901, 445, 304, 1239, 1039, 324, 1039, 1009, 310, 535, 1011, 1151, 525, 1023, 1012, 458, 536, 448, 831, 179, 773, 125, 199, 210, 124, 475, 549, 1127, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1254, 1244, 773, 638, 1151, 536, 539, 492, 80, 855, 859, 855, 536, 536, 536, 122, 1259, 723, 606, 648, 197, 197, 299, 699, 40, 648, 299, 606, 1127, 549, 549, 525, 61, 438, 1244, 1244, 1244, 1244, 1244, 1253, 1244, 1244, 1249, 1249, 1127, 539, 1249, 1249, 539, 1253, 1244, 1244, 448, 1151, 74, 1151, 1254, 1244, 448, 448, 179, 203, 492, 1243, 1243, 815, 1243, 159, 162, 815, 1250, 1250, 1127, 549, 549, 448, 536, 226, 821, 821, 821, 821, 535, 619, 620, 552, 129, 181, 215, 181, 1151, 294, 646, 122, 40, 891, 658, 891, 1247, 37, 158, 203, 724, 728, 304, 632, 608, 156, 205, 535, 400, 473, 659, 40, 1254, 746, 566, 294, 535, 175, 1244, 682, 1250, 400, 601, 158, 1039, 815, 304, 632, 687, 536, 539, 492, 644, 61, 675, 608, 671, 86, 438, 678, 492, 957, 40, 678, 179, 310, 535, 1242, 1250, 872, 892, 893, 1260, 887, 1127, 173, 888, 1242, 179, 448, 912, 363, 759, 213, 704, 549, 536, 549, 549, 1244, 313, 224, 837, 549, 824, 1244, 536, 1217, 1218, 1224, 122, 145, 151, 165, 299, 455, 467, 1220, 1221, 1223, 536, 536, 1228, 1228, 1151, 536, 1152, 179, 1151, 1151, 1151, 535, 536, 539, 536, 1167, 536, 478, 417, 536, 207, 290, 1164, 1151, 1151, 1151, 536, 61, 1058, 1170, 1170, 393, 1048, 1151, 536, 539, 40, 1107, 122, 1119, 1120, 1152, 83, 1243, 536, 1151, 535, 1089, 1097, 535, 536, 1112, 536, 104, 189, 382, 535, 1073, 1074, 1075, 1076, 1077, 1078, 1151, 1171, 1172, 1259, 1058, 536, 1036, 1007, 94, 854, 856, 138, 488, 1026, 1027, 1028, 1029, 1151, 837, 310, 837, 536, 448, 403, 1018, 536, 204, 661, 664, 312, 901, 815, 547, 815, 362, 661, 661, 644, 40, 159, 159, 535, 597, 786, 1254, 1244, 448, 535, 867, 901, 903, 796, 535, 535, 804, 1244, 536, 535, 536, 403, 1018, 1244, 1244, 535, 535, 535, 492, 516, 977, 370, 977, 977, 173, 1244, 597, 1244, 821, 625, 626, 1262, 56, 103, 128, 147, 152, 174, 178, 193, 299, 353, 621, 619, 1250, 867, 40, 908, 908, 536, 196, 535, 473, 679, 266, 662, 679, 535, 777, 769, 535, 536, 539, 1242, 536, 400, 31, 85, 88, 95, 123, 183, 196, 209, 420, 423, 652, 652, 1241, 1244, 1244, 536, 1039, 747, 159, 115, 723, 179, 1244, 40, 1244, 687, 633, 1242, 536, 637, 314, 1259, 676, 671, 675, 127, 142, 342, 1244, 66, 74, 258, 1039, 815, 1098, 854, 179, 772, 874, 536, 539, 458, 149, 545, 886, 889, 1109, 415, 415, 536, 284, 308, 760, 761, 762, 173, 765, 703, 290, 477, 705, 706, 1244, 845, 539, 40, 1151, 39, 303, 310, 536, 492, 494, 1219, 1220, 1222, 173, 1152, 1161, 1190, 290, 511, 207, 536, 1190, 190, 355, 386, 1177, 60, 131, 114, 1049, 40, 1122, 1108, 1105, 535, 1152, 536, 539, 40, 1115, 1116, 1259, 536, 1243, 1190, 536, 535, 404, 535, 536, 539, 539, 40, 1063, 478, 1244, 536, 539, 295, 471, 267, 294, 1012, 1027, 37, 1030, 1030, 839, 850, 549, 1244, 438, 855, 535, 891, 535, 860, 600, 1242, 891, 891, 196, 1151, 473, 598, 403, 1018, 1244, 1194, 173, 799, 799, 1194, 1194, 1151, 438, 1190, 1190, 609, 610, 1261, 814, 815, 814, 815, 1243, 549, 536, 539, 122, 528, 535, 576, 627, 699, 974, 1250, 974, 294, 299, 353, 974, 974, 1109, 908, 44, 201, 290, 657, 535, 695, 1151, 208, 180, 330, 409, 310, 666, 667, 668, 536, 1247, 6, 778, 728, 633, 670, 1244, 536, 723, 166, 798, 601, 957, 1242, 496, 1088, 723, 1039, 1002, 671, 633, 670, 644, 535, 677, 675, 676, 386, 386, 74, 313, 74, 687, 853, 536, 1242, 773, 881, 892, 1127, 538, 138, 492, 492, 761, 385, 435, 763, 143, 766, 488, 768, 477, 703, 723, 549, 1218, 1262, 151, 39, 90, 462, 496, 39, 496, 241, 309, 1227, 310, 536, 1151, 536, 536, 478, 54, 105, 461, 1151, 1178, 1179, 1178, 1178, 536, 170, 170, 659, 1244, 1216, 1112, 539, 1120, 1262, 536, 539, 173, 1127, 536, 536, 1190, 535, 1190, 1074, 1172, 1174, 1081, 1039, 1109, 856, 403, 267, 1151, 444, 444, 179, 1244, 659, 679, 901, 861, 860, 658, 679, 679, 695, 536, 1151, 438, 536, 316, 393, 359, 800, 800, 536, 536, 536, 1244, 536, 536, 536, 539, 1249, 977, 626, 576, 628, 629, 1250, 1250, 299, 528, 659, 528, 659, 1250, 1250, 210, 696, 536, 438, 127, 471, 310, 668, 310, 667, 535, 536, 539, 608, 400, 723, 815, 40, 40, 535, 1244, 957, 687, 675, 608, 671, 535, 673, 674, 1156, 1259, 678, 676, 677, 313, 313, 535, 204, 857, 173, 887, 32, 219, 944, 181, 181, 974, 385, 419, 767, 535, 158, 496, 39, 496, 39, 496, 496, 354, 354, 1222, 145, 151, 1179, 385, 172, 340, 172, 340, 155, 1180, 1180, 1180, 61, 61, 403, 83, 536, 1153, 1116, 317, 3, 122, 294, 299, 334, 1117, 1118, 40, 1093, 369, 1103, 536, 1073, 536, 1021, 61, 127, 138, 471, 1031, 1032, 138, 218, 1033, 837, 1018, 536, 665, 536, 861, 662, 773, 773, 1244, 867, 61, 1018, 448, 609, 815, 536, 539, 528, 659, 536, 424, 1244, 65, 290, 374, 403, 669, 669, 536, 6, 400, 1244, 795, 1039, 723, 676, 671, 675, 1151, 536, 539, 859, 859, 677, 678, 854, 535, 647, 143, 295, 535, 939, 941, 945, 1004, 1013, 1020, 1039, 1050, 867, 867, 764, 1259, 1151, 769, 496, 496, 310, 310, 536, 1220, 37, 105, 188, 290, 445, 659, 659, 1259, 535, 1166, 1152, 1152, 299, 1152, 1118, 1259, 535, 536, 1109, 414, 439, 295, 403, 295, 122, 324, 479, 535, 1034, 549, 773, 666, 1018, 815, 535, 629, 26, 122, 299, 1244, 723, 957, 677, 675, 676, 536, 674, 547, 547, 678, 536, 856, 858, 601, 385, 940, 941, 942, 1040, 1041, 539, 539, 536, 1247, 389, 389, 310, 1179, 385, 318, 403, 403, 448, 473, 283, 1123, 1124, 1259, 83, 1151, 1021, 479, 1007, 535, 1008, 773, 1190, 658, 658, 723, 678, 676, 677, 859, 857, 536, 539, 678, 768, 536, 538, 448, 179, 535, 426, 426, 151, 1259, 1259, 230, 1247, 1248, 1259, 334, 1125, 536, 539, 173, 1127, 1115, 536, 478, 1190, 536, 536, 677, 678, 547, 647, 856, 1109, 158, 942, 415, 415, 5, 770, 771, 1249, 1250, 1262, 535, 122, 1250, 1223, 1124, 317, 159, 334, 1126, 1225, 536, 1034, 536, 324, 1034, 678, 601, 769, 492, 492, 536, 539, 1191, 1248, 40, 83, 536, 1126, 1250, 1219, 1126, 1007, 678, 1247, 181, 181, 771, 1058, 473, 1244, 535, 1223, 1227, 1219, 478, 1109, 535, 867, 867, 536, 1259, 83, 1123, 1222, 1227, 1034, 770, 535, 536, 1222, 536, 1123, 536 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { \ yychar = (Token); \ yylval = (Value); \ yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK (1); \ goto yybackup; \ } \ else \ { \ yyerror (&yylloc, yyscanner, YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (YYID (0)) #define YYTERROR 1 #define YYERRCODE 256 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends the previous symbol: RHS[0] (always defined). */ #define YYRHSLOC(Rhs, K) ((Rhs)[K]) #ifndef YYLLOC_DEFAULT # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ if (YYID (N)) \ { \ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ } \ else \ { \ (Current).first_line = (Current).last_line = \ YYRHSLOC (Rhs, 0).last_line; \ (Current).first_column = (Current).last_column = \ YYRHSLOC (Rhs, 0).last_column; \ } \ while (YYID (0)) #endif /* YY_LOCATION_PRINT -- Print the location on the stream. This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ #ifndef YY_LOCATION_PRINT # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL # define YY_LOCATION_PRINT(File, Loc) \ fprintf (File, "%d.%d-%d.%d", \ (Loc).first_line, (Loc).first_column, \ (Loc).last_line, (Loc).last_column) # else # define YY_LOCATION_PRINT(File, Loc) ((void) 0) # endif #endif /* YYLEX -- calling `yylex' with the right arguments. */ #ifdef YYLEX_PARAM # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) #else # define YYLEX yylex (&yylval, &yylloc, yyscanner) #endif /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (YYID (0)) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Type, Value, Location, yyscanner); \ YYFPRINTF (stderr, "\n"); \ } \ } while (YYID (0)) /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ /*ARGSUSED*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) #else static void yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner) FILE *yyoutput; int yytype; YYSTYPE const * const yyvaluep; YYLTYPE const * const yylocationp; core_yyscan_t yyscanner; #endif { if (!yyvaluep) return; YYUSE (yylocationp); YYUSE (yyscanner); # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # else YYUSE (yyoutput); # endif switch (yytype) { default: break; } } /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner) #else static void yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner) FILE *yyoutput; int yytype; YYSTYPE const * const yyvaluep; YYLTYPE const * const yylocationp; core_yyscan_t yyscanner; #endif { if (yytype < YYNTOKENS) YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); else YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); YY_LOCATION_PRINT (yyoutput, *yylocationp); YYFPRINTF (yyoutput, ": "); yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, yyscanner); YYFPRINTF (yyoutput, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) #else static void yy_stack_print (bottom, top) yytype_int16 *bottom; yytype_int16 *top; #endif { YYFPRINTF (stderr, "Stack now"); for (; bottom <= top; ++bottom) YYFPRINTF (stderr, " %d", *bottom); YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (YYID (0)) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, core_yyscan_t yyscanner) #else static void yy_reduce_print (yyvsp, yylsp, yyrule, yyscanner) YYSTYPE *yyvsp; YYLTYPE *yylsp; int yyrule; core_yyscan_t yyscanner; #endif { int yynrhs = yyr2[yyrule]; int yyi; unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { fprintf (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) , &(yylsp[(yyi + 1) - (yynrhs)]) , yyscanner); fprintf (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyvsp, yylsp, Rule, yyscanner); \ } while (YYID (0)) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only if the built-in stack extension method is used). Do not make this value too large; the results are undefined if YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif #if YYERROR_VERBOSE # ifndef yystrlen # if defined __GLIBC__ && defined _STRING_H # define yystrlen strlen # else /* Return the length of YYSTR. */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) #else static YYSIZE_T yystrlen (yystr) const char *yystr; #endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; } # endif # endif # ifndef yystpcpy # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) #else static char * yystpcpy (yydest, yysrc) char *yydest; const char *yysrc; #endif { char *yyd = yydest; const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; return yyd - 1; } # endif # endif # ifndef yytnamerr /* Copy to YYRES the contents of YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is that double-quoting is unnecessary unless the string contains an apostrophe, a comma, or backslash (other than backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ static YYSIZE_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { YYSIZE_T yyn = 0; char const *yyp = yystr; for (;;) switch (*++yyp) { case '\'': case ',': goto do_not_strip_quotes; case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; /* Fall through. */ default: if (yyres) yyres[yyn] = *yyp; yyn++; break; case '"': if (yyres) yyres[yyn] = '\0'; return yyn; } do_not_strip_quotes: ; } if (! yyres) return yystrlen (yystr); return yystpcpy (yyres, yystr) - yyres; } # endif /* Copy into YYRESULT an error message about the unexpected token YYCHAR while in state YYSTATE. Return the number of bytes copied, including the terminating null byte. If YYRESULT is null, do not copy anything; just return the number of bytes that would be copied. As a special case, return 0 if an ordinary "syntax error" message will do. Return YYSIZE_MAXIMUM if overflow occurs during size calculation. */ static YYSIZE_T yysyntax_error (char *yyresult, int yystate, int yychar) { int yyn = yypact[yystate]; if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) return 0; else { int yytype = YYTRANSLATE (yychar); YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); YYSIZE_T yysize = yysize0; YYSIZE_T yysize1; int yysize_overflow = 0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; int yyx; # if 0 /* This is so xgettext sees the translatable formats that are constructed on the fly. */ YY_("syntax error, unexpected %s"); YY_("syntax error, unexpected %s, expecting %s"); YY_("syntax error, unexpected %s, expecting %s or %s"); YY_("syntax error, unexpected %s, expecting %s or %s or %s"); YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); # endif char *yyfmt; char const *yyf; static char const yyunexpected[] = "syntax error, unexpected %s"; static char const yyexpecting[] = ", expecting %s"; static char const yyor[] = " or %s"; char yyformat[sizeof yyunexpected + sizeof yyexpecting - 1 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) * (sizeof yyor - 1))]; char const *yyprefix = yyexpecting; /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. */ int yyxbegin = yyn < 0 ? -yyn : 0; /* Stay within bounds of both yycheck and yytname. */ int yychecklim = YYLAST - yyn + 1; int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yycount = 1; yyarg[0] = yytname[yytype]; yyfmt = yystpcpy (yyformat, yyunexpected); for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) { yycount = 1; yysize = yysize0; yyformat[sizeof yyunexpected - 1] = '\0'; break; } yyarg[yycount++] = yytname[yyx]; yysize1 = yysize + yytnamerr (0, yytname[yyx]); yysize_overflow |= (yysize1 < yysize); yysize = yysize1; yyfmt = yystpcpy (yyfmt, yyprefix); yyprefix = yyor; } yyf = YY_(yyformat); yysize1 = yysize + yystrlen (yyf); yysize_overflow |= (yysize1 < yysize); yysize = yysize1; if (yysize_overflow) return YYSIZE_MAXIMUM; if (yyresult) { /* Avoid sprintf, as that infringes on the user's name space. Don't have undefined behavior even if the translation produced a string with the wrong number of "%s"s. */ char *yyp = yyresult; int yyi = 0; while ((*yyp = *yyf) != '\0') { if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) { yyp += yytnamerr (yyp, yyarg[yyi++]); yyf += 2; } else { yyp++; yyf++; } } } return yysize; } } #endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ /*ARGSUSED*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, core_yyscan_t yyscanner) #else static void yydestruct (yymsg, yytype, yyvaluep, yylocationp, yyscanner) const char *yymsg; int yytype; YYSTYPE *yyvaluep; YYLTYPE *yylocationp; core_yyscan_t yyscanner; #endif { YYUSE (yyvaluep); YYUSE (yylocationp); YYUSE (yyscanner); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); switch (yytype) { default: break; } } /* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); #else int yyparse (); #endif #else /* ! YYPARSE_PARAM */ #if defined __STDC__ || defined __cplusplus int yyparse (core_yyscan_t yyscanner); #else int yyparse (); #endif #endif /* ! YYPARSE_PARAM */ /*----------. | yyparse. | `----------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) int yyparse (void *YYPARSE_PARAM) #else int yyparse (YYPARSE_PARAM) void *YYPARSE_PARAM; #endif #else /* ! YYPARSE_PARAM */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) int yyparse (core_yyscan_t yyscanner) #else int yyparse (yyscanner) core_yyscan_t yyscanner; #endif #endif { /* The look-ahead symbol. */ int yychar; /* The semantic value of the look-ahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; /* Location data for the look-ahead symbol. */ YYLTYPE yylloc; int yystate; int yyn; int yyresult; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Look-ahead token as an internal (translated) token number. */ int yytoken = 0; #if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif /* Three stacks and their tools: `yyss': related to states, `yyvs': related to semantic values, `yyls': related to locations. Refer to the stacks thru separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ yytype_int16 yyssa[YYINITDEPTH]; yytype_int16 *yyss = yyssa; yytype_int16 *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; YYSTYPE *yyvsp; /* The location stack. */ YYLTYPE yylsa[YYINITDEPTH]; YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; /* The locations where the error started and ended. */ YYLTYPE yyerror_range[2]; #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) YYSIZE_T yystacksize = YYINITDEPTH; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; YYLTYPE yyloc; /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss; yyvsp = yyvs; yylsp = yyls; #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL /* Initialize the default location before parsing starts. */ yylloc.first_line = yylloc.last_line = 1; yylloc.first_column = yylloc.last_column = 0; #endif goto yysetstate; /*------------------------------------------------------------. | yynewstate -- Push a new state, which is found in yystate. | `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; yysetstate: *yyssp = yystate; if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; #ifdef yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; YYLTYPE *yyls1 = yyls; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yyls1, yysize * sizeof (*yylsp), &yystacksize); yyls = yyls1; yyss = yyss1; yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE goto yyexhaustedlab; # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yytype_int16 *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss); YYSTACK_RELOCATE (yyvs); YYSTACK_RELOCATE (yyls); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; yylsp = yyls + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a look-ahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to look-ahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; /* Not known => get a look-ahead token if don't already have one. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } if (yychar <= YYEOF) { yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { yytoken = YYTRANSLATE (yychar); YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ yyn += yytoken; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) { if (yyn == 0 || yyn == YYTABLE_NINF) goto yyerrlab; yyn = -yyn; goto yyreduce; } if (yyn == YYFINAL) YYACCEPT; /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the look-ahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the shifted token unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; yystate = yyn; *++yyvsp = yylval; *++yylsp = yylloc; goto yynewstate; /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; goto yyreduce; /*-----------------------------. | yyreduce -- Do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: `$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; /* Default location. */ YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: #line 924 "gram.y" { pg_yyget_extra(yyscanner)->parsetree = (yyvsp[(1) - (1)].list); (void) yynerrs; /* suppress compiler warning */ ;} break; case 3: #line 929 "gram.y" { pg_yyget_extra(yyscanner)->parsetree = list_make1((yyvsp[(2) - (2)].typnam)); ;} break; case 4: #line 933 "gram.y" { pg_yyget_extra(yyscanner)->parsetree = list_make1(makeRawStmt((yyvsp[(2) - (2)].node), 0)); ;} break; case 5: #line 938 "gram.y" { PLAssignStmt *n = (PLAssignStmt *) (yyvsp[(2) - (2)].node); n->nnames = 1; pg_yyget_extra(yyscanner)->parsetree = list_make1(makeRawStmt((Node *) n, 0)); ;} break; case 6: #line 946 "gram.y" { PLAssignStmt *n = (PLAssignStmt *) (yyvsp[(2) - (2)].node); n->nnames = 2; pg_yyget_extra(yyscanner)->parsetree = list_make1(makeRawStmt((Node *) n, 0)); ;} break; case 7: #line 954 "gram.y" { PLAssignStmt *n = (PLAssignStmt *) (yyvsp[(2) - (2)].node); n->nnames = 3; pg_yyget_extra(yyscanner)->parsetree = list_make1(makeRawStmt((Node *) n, 0)); ;} break; case 8: #line 974 "gram.y" { if ((yyvsp[(1) - (3)].list) != NIL) { /* update length of previous stmt */ updateRawStmtEnd(llast_node(RawStmt, (yyvsp[(1) - (3)].list)), (yylsp[(2) - (3)])); } if ((yyvsp[(3) - (3)].node) != NULL) (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeRawStmt((yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]) + 1)); else (yyval.list) = (yyvsp[(1) - (3)].list); ;} break; case 9: #line 986 "gram.y" { if ((yyvsp[(1) - (1)].node) != NULL) (yyval.list) = list_make1(makeRawStmt((yyvsp[(1) - (1)].node), 0)); else (yyval.list) = NIL; ;} break; case 136: #line 1129 "gram.y" { (yyval.node) = NULL; ;} break; case 137: #line 1136 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 138: #line 1137 "gram.y" { (yyval.str) = NULL; ;} break; case 139: #line 1141 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 140: #line 1142 "gram.y" { (yyval.list) = NIL; ;} break; case 141: #line 1146 "gram.y" { (yyval.boolean) = true; ;} break; case 142: #line 1147 "gram.y" { (yyval.boolean) = false; ;} break; case 143: #line 1151 "gram.y" { (yyval.dbehavior) = DROP_CASCADE; ;} break; case 144: #line 1152 "gram.y" { (yyval.dbehavior) = DROP_RESTRICT; ;} break; case 145: #line 1153 "gram.y" { (yyval.dbehavior) = DROP_RESTRICT; /* default */ ;} break; case 146: #line 1163 "gram.y" { CallStmt *n = makeNode(CallStmt); n->funccall = castNode(FuncCall, (yyvsp[(2) - (2)].node)); (yyval.node) = (Node *) n; ;} break; case 147: #line 1179 "gram.y" { CreateRoleStmt *n = makeNode(CreateRoleStmt); n->stmt_type = ROLESTMT_ROLE; n->role = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 151: #line 1201 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 152: #line 1202 "gram.y" { (yyval.list) = NIL; ;} break; case 153: #line 1206 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 154: #line 1207 "gram.y" { (yyval.list) = NIL; ;} break; case 155: #line 1212 "gram.y" { (yyval.defelt) = makeDefElem("password", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); ;} break; case 156: #line 1217 "gram.y" { (yyval.defelt) = makeDefElem("password", (Node *)makeParamRef((yyvsp[(2) - (2)].ival), (yylsp[(2) - (2)])), (yylsp[(1) - (2)])); ;} break; case 157: #line 1222 "gram.y" { (yyval.defelt) = makeDefElem("password", NULL, (yylsp[(1) - (2)])); ;} break; case 158: #line 1226 "gram.y" { /* * These days, passwords are always stored in encrypted * form, so there is no difference between PASSWORD and * ENCRYPTED PASSWORD. */ (yyval.defelt) = makeDefElem("password", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); ;} break; case 159: #line 1236 "gram.y" { /* * These days, passwords are always stored in encrypted * form, so there is no difference between PASSWORD and * ENCRYPTED PASSWORD. */ (yyval.defelt) = makeDefElem("password", (Node *)makeParamRef((yyvsp[(3) - (3)].ival), (yylsp[(3) - (3)])), (yylsp[(1) - (3)])); ;} break; case 160: #line 1246 "gram.y" { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("UNENCRYPTED PASSWORD is no longer supported"), errhint("Remove UNENCRYPTED to store the password in encrypted form instead."), parser_errposition((yylsp[(1) - (3)])))); ;} break; case 161: #line 1254 "gram.y" { (yyval.defelt) = makeDefElem("inherit", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); ;} break; case 162: #line 1258 "gram.y" { (yyval.defelt) = makeDefElem("connectionlimit", (Node *) makeInteger((yyvsp[(3) - (3)].ival)), (yylsp[(1) - (3)])); ;} break; case 163: #line 1262 "gram.y" { (yyval.defelt) = makeDefElem("validUntil", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); ;} break; case 164: #line 1267 "gram.y" { (yyval.defelt) = makeDefElem("rolemembers", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} break; case 165: #line 1271 "gram.y" { /* * We handle identifiers that aren't parser keywords with * the following special-case codes, to avoid bloating the * size of the main parser. */ if (strcmp((yyvsp[(1) - (1)].str), "superuser") == 0) (yyval.defelt) = makeDefElem("superuser", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); else if (strcmp((yyvsp[(1) - (1)].str), "nosuperuser") == 0) (yyval.defelt) = makeDefElem("superuser", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); else if (strcmp((yyvsp[(1) - (1)].str), "createrole") == 0) (yyval.defelt) = makeDefElem("createrole", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); else if (strcmp((yyvsp[(1) - (1)].str), "nocreaterole") == 0) (yyval.defelt) = makeDefElem("createrole", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); else if (strcmp((yyvsp[(1) - (1)].str), "replication") == 0) (yyval.defelt) = makeDefElem("isreplication", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); else if (strcmp((yyvsp[(1) - (1)].str), "noreplication") == 0) (yyval.defelt) = makeDefElem("isreplication", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); else if (strcmp((yyvsp[(1) - (1)].str), "createdb") == 0) (yyval.defelt) = makeDefElem("createdb", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); else if (strcmp((yyvsp[(1) - (1)].str), "nocreatedb") == 0) (yyval.defelt) = makeDefElem("createdb", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); else if (strcmp((yyvsp[(1) - (1)].str), "login") == 0) (yyval.defelt) = makeDefElem("canlogin", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); else if (strcmp((yyvsp[(1) - (1)].str), "nologin") == 0) (yyval.defelt) = makeDefElem("canlogin", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); else if (strcmp((yyvsp[(1) - (1)].str), "bypassrls") == 0) (yyval.defelt) = makeDefElem("bypassrls", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); else if (strcmp((yyvsp[(1) - (1)].str), "nobypassrls") == 0) (yyval.defelt) = makeDefElem("bypassrls", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); else if (strcmp((yyvsp[(1) - (1)].str), "noinherit") == 0) { /* * Note that INHERIT is a keyword, so it's handled by main parser, but * NOINHERIT is handled here. */ (yyval.defelt) = makeDefElem("inherit", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); } else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized role option \"%s\"", (yyvsp[(1) - (1)].str)), parser_errposition((yylsp[(1) - (1)])))); ;} break; case 166: #line 1318 "gram.y" { (yyval.defelt) = (yyvsp[(1) - (1)].defelt); ;} break; case 167: #line 1321 "gram.y" { (yyval.defelt) = makeDefElem("sysid", (Node *) makeInteger((yyvsp[(2) - (2)].ival)), (yylsp[(1) - (2)])); ;} break; case 168: #line 1325 "gram.y" { (yyval.defelt) = makeDefElem("adminmembers", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} break; case 169: #line 1329 "gram.y" { (yyval.defelt) = makeDefElem("rolemembers", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} break; case 170: #line 1333 "gram.y" { (yyval.defelt) = makeDefElem("addroleto", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 171: #line 1337 "gram.y" { (yyval.defelt) = makeDefElem("addroleto", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 172: #line 1351 "gram.y" { CreateRoleStmt *n = makeNode(CreateRoleStmt); n->stmt_type = ROLESTMT_USER; n->role = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 173: #line 1370 "gram.y" { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[(3) - (5)].rolespec); n->action = +1; /* add, if there are members */ n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 174: #line 1379 "gram.y" { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[(3) - (5)].rolespec); n->action = +1; /* add, if there are members */ n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 175: #line 1390 "gram.y" { (yyval.str) = NULL; ;} break; case 176: #line 1391 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].str); ;} break; case 177: #line 1396 "gram.y" { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = (yyvsp[(3) - (5)].rolespec); n->database = (yyvsp[(4) - (5)].str); n->setstmt = (yyvsp[(5) - (5)].vsetstmt); (yyval.node) = (Node *) n; ;} break; case 178: #line 1405 "gram.y" { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = NULL; n->database = (yyvsp[(4) - (5)].str); n->setstmt = (yyvsp[(5) - (5)].vsetstmt); (yyval.node) = (Node *) n; ;} break; case 179: #line 1414 "gram.y" { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = (yyvsp[(3) - (5)].rolespec); n->database = (yyvsp[(4) - (5)].str); n->setstmt = (yyvsp[(5) - (5)].vsetstmt); (yyval.node) = (Node *) n; ;} break; case 180: #line 1423 "gram.y" { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = NULL; n->database = (yyvsp[(4) - (5)].str); n->setstmt = (yyvsp[(5) - (5)].vsetstmt); (yyval.node) = (Node *) n; ;} break; case 181: #line 1445 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = false; n->roles = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *) n; ;} break; case 182: #line 1453 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = true; n->roles = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 183: #line 1461 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = false; n->roles = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *) n; ;} break; case 184: #line 1469 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->roles = (yyvsp[(5) - (5)].list); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 185: #line 1477 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = false; n->roles = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *) n; ;} break; case 186: #line 1485 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = true; n->roles = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 187: #line 1503 "gram.y" { CreateRoleStmt *n = makeNode(CreateRoleStmt); n->stmt_type = ROLESTMT_GROUP; n->role = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 188: #line 1522 "gram.y" { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[(3) - (6)].rolespec); n->action = (yyvsp[(4) - (6)].ival); n->options = list_make1(makeDefElem("rolemembers", (Node *) (yyvsp[(6) - (6)].list), (yylsp[(6) - (6)]))); (yyval.node) = (Node *) n; ;} break; case 189: #line 1533 "gram.y" { (yyval.ival) = +1; ;} break; case 190: #line 1534 "gram.y" { (yyval.ival) = -1; ;} break; case 191: #line 1546 "gram.y" { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* One can omit the schema name or the authorization id. */ n->schemaname = (yyvsp[(3) - (6)].str); n->authrole = (yyvsp[(5) - (6)].rolespec); n->schemaElts = (yyvsp[(6) - (6)].list); n->if_not_exists = false; (yyval.node) = (Node *) n; ;} break; case 192: #line 1557 "gram.y" { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* ...but not both */ n->schemaname = (yyvsp[(3) - (4)].str); n->authrole = NULL; n->schemaElts = (yyvsp[(4) - (4)].list); n->if_not_exists = false; (yyval.node) = (Node *) n; ;} break; case 193: #line 1568 "gram.y" { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* schema name can be omitted here, too */ n->schemaname = (yyvsp[(6) - (9)].str); n->authrole = (yyvsp[(8) - (9)].rolespec); if ((yyvsp[(9) - (9)].list) != NIL) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"), parser_errposition((yylsp[(9) - (9)])))); n->schemaElts = (yyvsp[(9) - (9)].list); n->if_not_exists = true; (yyval.node) = (Node *) n; ;} break; case 194: #line 1584 "gram.y" { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* ...but not here */ n->schemaname = (yyvsp[(6) - (7)].str); n->authrole = NULL; if ((yyvsp[(7) - (7)].list) != NIL) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"), parser_errposition((yylsp[(7) - (7)])))); n->schemaElts = (yyvsp[(7) - (7)].list); n->if_not_exists = true; (yyval.node) = (Node *) n; ;} break; case 195: #line 1603 "gram.y" { if ((yyloc) < 0) /* see comments for YYLLOC_DEFAULT */ (yyloc) = (yylsp[(2) - (2)]); (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 196: #line 1609 "gram.y" { (yyval.list) = NIL; ;} break; case 203: #line 1637 "gram.y" { VariableSetStmt *n = (yyvsp[(2) - (2)].vsetstmt); n->is_local = false; (yyval.node) = (Node *) n; ;} break; case 204: #line 1644 "gram.y" { VariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); n->is_local = true; (yyval.node) = (Node *) n; ;} break; case 205: #line 1651 "gram.y" { VariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); n->is_local = false; (yyval.node) = (Node *) n; ;} break; case 206: #line 1661 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_MULTI; n->name = "TRANSACTION"; n->args = (yyvsp[(2) - (2)].list); (yyval.vsetstmt) = n; ;} break; case 207: #line 1670 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_MULTI; n->name = "SESSION CHARACTERISTICS"; n->args = (yyvsp[(5) - (5)].list); (yyval.vsetstmt) = n; ;} break; case 209: #line 1683 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = (yyvsp[(1) - (3)].str); n->args = (yyvsp[(3) - (3)].list); (yyval.vsetstmt) = n; ;} break; case 210: #line 1692 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = (yyvsp[(1) - (3)].str); n->args = (yyvsp[(3) - (3)].list); (yyval.vsetstmt) = n; ;} break; case 211: #line 1701 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = (yyvsp[(1) - (3)].str); (yyval.vsetstmt) = n; ;} break; case 212: #line 1709 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = (yyvsp[(1) - (3)].str); (yyval.vsetstmt) = n; ;} break; case 213: #line 1719 "gram.y" {(yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt);;} break; case 214: #line 1721 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_CURRENT; n->name = (yyvsp[(1) - (3)].str); (yyval.vsetstmt) = n; ;} break; case 215: #line 1730 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "timezone"; if ((yyvsp[(3) - (3)].node) != NULL) n->args = list_make1((yyvsp[(3) - (3)].node)); else n->kind = VAR_SET_DEFAULT; (yyval.vsetstmt) = n; ;} break; case 216: #line 1742 "gram.y" { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("current database cannot be changed"), parser_errposition((yylsp[(2) - (2)])))); (yyval.vsetstmt) = NULL; /*not reached*/ ;} break; case 217: #line 1750 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "search_path"; n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]))); (yyval.vsetstmt) = n; ;} break; case 218: #line 1759 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "search_path"; n->args = list_make1(makeParamRef((yyvsp[(2) - (2)].ival), (yylsp[(2) - (2)]))); (yyval.vsetstmt) = n; ;} break; case 219: #line 1767 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "client_encoding"; if ((yyvsp[(2) - (2)].str) != NULL) n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]))); else n->kind = VAR_SET_DEFAULT; (yyval.vsetstmt) = n; ;} break; case 220: #line 1779 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "role"; n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]))); (yyval.vsetstmt) = n; ;} break; case 221: #line 1788 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "role"; n->args = list_make1(makeParamRef((yyvsp[(2) - (2)].ival), (yylsp[(2) - (2)]))); (yyval.vsetstmt) = n; ;} break; case 222: #line 1796 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "session_authorization"; n->args = list_make1(makeStringConst((yyvsp[(3) - (3)].str), (yylsp[(3) - (3)]))); (yyval.vsetstmt) = n; ;} break; case 223: #line 1805 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "session_authorization"; n->args = list_make1(makeParamRef((yyvsp[(3) - (3)].ival), (yylsp[(3) - (3)]))); (yyval.vsetstmt) = n; ;} break; case 224: #line 1813 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = "session_authorization"; (yyval.vsetstmt) = n; ;} break; case 225: #line 1821 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "xmloption"; n->args = list_make1(makeStringConst((yyvsp[(3) - (3)].ival) == XMLOPTION_DOCUMENT ? "DOCUMENT" : "CONTENT", (yylsp[(3) - (3)]))); (yyval.vsetstmt) = n; ;} break; case 226: #line 1831 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_MULTI; n->name = "TRANSACTION SNAPSHOT"; n->args = list_make1(makeStringConst((yyvsp[(3) - (3)].str), (yylsp[(3) - (3)]))); (yyval.vsetstmt) = n; ;} break; case 227: #line 1841 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 228: #line 1843 "gram.y" { (yyval.str) = psprintf("%s.%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); ;} break; case 229: #line 1846 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 230: #line 1847 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 231: #line 1851 "gram.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 232: #line 1853 "gram.y" { (yyval.node) = makeAConst((yyvsp[(1) - (1)].node), (yylsp[(1) - (1)])); ;} break; case 233: #line 1855 "gram.y" { (yyval.node) = makeParamRef((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); ;} break; case 234: #line 1858 "gram.y" { (yyval.str) = "read uncommitted"; ;} break; case 235: #line 1859 "gram.y" { (yyval.str) = "read committed"; ;} break; case 236: #line 1860 "gram.y" { (yyval.str) = "repeatable read"; ;} break; case 237: #line 1861 "gram.y" { (yyval.str) = "serializable"; ;} break; case 238: #line 1865 "gram.y" { (yyval.str) = "true"; ;} break; case 239: #line 1866 "gram.y" { (yyval.str) = "false"; ;} break; case 240: #line 1867 "gram.y" { (yyval.str) = "on"; ;} break; case 241: #line 1873 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 242: #line 1886 "gram.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 243: #line 1890 "gram.y" { (yyval.node) = makeParamRef((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); ;} break; case 244: #line 1894 "gram.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 245: #line 1898 "gram.y" { TypeName *t = (yyvsp[(1) - (3)].typnam); if ((yyvsp[(3) - (3)].list) != NIL) { A_Const *n = (A_Const *) linitial((yyvsp[(3) - (3)].list)); if ((n->val.ival.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("time zone interval must be HOUR or HOUR TO MINUTE"), parser_errposition((yylsp[(3) - (3)])))); } t->typmods = (yyvsp[(3) - (3)].list); (yyval.node) = makeStringConstCast((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), t); ;} break; case 246: #line 1915 "gram.y" { TypeName *t = (yyvsp[(1) - (5)].typnam); t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); (yyval.node) = makeStringConstCast((yyvsp[(5) - (5)].str), (yylsp[(5) - (5)]), t); ;} break; case 247: #line 1922 "gram.y" { (yyval.node) = makeAConst((yyvsp[(1) - (1)].node), (yylsp[(1) - (1)])); ;} break; case 248: #line 1923 "gram.y" { (yyval.node) = NULL; ;} break; case 249: #line 1924 "gram.y" { (yyval.node) = NULL; ;} break; case 250: #line 1928 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 251: #line 1929 "gram.y" { (yyval.str) = NULL; ;} break; case 252: #line 1930 "gram.y" { (yyval.str) = NULL; ;} break; case 253: #line 1934 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 254: #line 1935 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 255: #line 1939 "gram.y" { (yyval.node) = (Node *) (yyvsp[(2) - (2)].vsetstmt); ;} break; case 256: #line 1943 "gram.y" { (yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt); ;} break; case 257: #line 1945 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "timezone"; (yyval.vsetstmt) = n; ;} break; case 258: #line 1953 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "transaction_isolation"; (yyval.vsetstmt) = n; ;} break; case 259: #line 1961 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "session_authorization"; (yyval.vsetstmt) = n; ;} break; case 260: #line 1972 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = (yyvsp[(1) - (1)].str); (yyval.vsetstmt) = n; ;} break; case 261: #line 1980 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET_ALL; (yyval.vsetstmt) = n; ;} break; case 262: #line 1990 "gram.y" { (yyval.vsetstmt) = (yyvsp[(2) - (2)].vsetstmt); ;} break; case 263: #line 1991 "gram.y" { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[(1) - (1)].node); ;} break; case 264: #line 1996 "gram.y" { (yyval.vsetstmt) = (yyvsp[(2) - (2)].vsetstmt); ;} break; case 265: #line 1997 "gram.y" { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[(1) - (1)].node); ;} break; case 266: #line 2003 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; ;} break; case 267: #line 2010 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "timezone"; (yyval.node) = (Node *) n; ;} break; case 268: #line 2017 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "transaction_isolation"; (yyval.node) = (Node *) n; ;} break; case 269: #line 2024 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "session_authorization"; (yyval.node) = (Node *) n; ;} break; case 270: #line 2031 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "all"; (yyval.node) = (Node *) n; ;} break; case 271: #line 2042 "gram.y" { ConstraintsSetStmt *n = makeNode(ConstraintsSetStmt); n->constraints = (yyvsp[(3) - (4)].list); n->deferred = (yyvsp[(4) - (4)].boolean); (yyval.node) = (Node *) n; ;} break; case 272: #line 2052 "gram.y" { (yyval.list) = NIL; ;} break; case 273: #line 2053 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 274: #line 2057 "gram.y" { (yyval.boolean) = true; ;} break; case 275: #line 2058 "gram.y" { (yyval.boolean) = false; ;} break; case 276: #line 2067 "gram.y" { CheckPointStmt *n = makeNode(CheckPointStmt); (yyval.node) = (Node *) n; ;} break; case 277: #line 2083 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_ALL; (yyval.node) = (Node *) n; ;} break; case 278: #line 2090 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_TEMP; (yyval.node) = (Node *) n; ;} break; case 279: #line 2097 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_TEMP; (yyval.node) = (Node *) n; ;} break; case 280: #line 2104 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_PLANS; (yyval.node) = (Node *) n; ;} break; case 281: #line 2111 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_SEQUENCES; (yyval.node) = (Node *) n; ;} break; case 282: #line 2131 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(3) - (4)].range); n->cmds = (yyvsp[(4) - (4)].list); n->objtype = OBJECT_TABLE; n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 283: #line 2141 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(5) - (6)].range); n->cmds = (yyvsp[(6) - (6)].list); n->objtype = OBJECT_TABLE; n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 284: #line 2151 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(3) - (4)].range); n->cmds = list_make1((yyvsp[(4) - (4)].node)); n->objtype = OBJECT_TABLE; n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 285: #line 2161 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(5) - (6)].range); n->cmds = list_make1((yyvsp[(6) - (6)].node)); n->objtype = OBJECT_TABLE; n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 286: #line 2171 "gram.y" { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[(6) - (10)].str); n->objtype = OBJECT_TABLE; n->roles = NIL; n->new_tablespacename = (yyvsp[(9) - (10)].str); n->nowait = (yyvsp[(10) - (10)].boolean); (yyval.node) = (Node *) n; ;} break; case 287: #line 2183 "gram.y" { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[(6) - (13)].str); n->objtype = OBJECT_TABLE; n->roles = (yyvsp[(9) - (13)].list); n->new_tablespacename = (yyvsp[(12) - (13)].str); n->nowait = (yyvsp[(13) - (13)].boolean); (yyval.node) = (Node *) n; ;} break; case 288: #line 2195 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(3) - (4)].range); n->cmds = (yyvsp[(4) - (4)].list); n->objtype = OBJECT_INDEX; n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 289: #line 2205 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(5) - (6)].range); n->cmds = (yyvsp[(6) - (6)].list); n->objtype = OBJECT_INDEX; n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 290: #line 2215 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(3) - (4)].range); n->cmds = list_make1((yyvsp[(4) - (4)].node)); n->objtype = OBJECT_INDEX; n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 291: #line 2225 "gram.y" { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[(6) - (10)].str); n->objtype = OBJECT_INDEX; n->roles = NIL; n->new_tablespacename = (yyvsp[(9) - (10)].str); n->nowait = (yyvsp[(10) - (10)].boolean); (yyval.node) = (Node *) n; ;} break; case 292: #line 2237 "gram.y" { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[(6) - (13)].str); n->objtype = OBJECT_INDEX; n->roles = (yyvsp[(9) - (13)].list); n->new_tablespacename = (yyvsp[(12) - (13)].str); n->nowait = (yyvsp[(13) - (13)].boolean); (yyval.node) = (Node *) n; ;} break; case 293: #line 2249 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(3) - (4)].range); n->cmds = (yyvsp[(4) - (4)].list); n->objtype = OBJECT_SEQUENCE; n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 294: #line 2259 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(5) - (6)].range); n->cmds = (yyvsp[(6) - (6)].list); n->objtype = OBJECT_SEQUENCE; n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 295: #line 2269 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(3) - (4)].range); n->cmds = (yyvsp[(4) - (4)].list); n->objtype = OBJECT_VIEW; n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 296: #line 2279 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(5) - (6)].range); n->cmds = (yyvsp[(6) - (6)].list); n->objtype = OBJECT_VIEW; n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 297: #line 2289 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(4) - (5)].range); n->cmds = (yyvsp[(5) - (5)].list); n->objtype = OBJECT_MATVIEW; n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 298: #line 2299 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(6) - (7)].range); n->cmds = (yyvsp[(7) - (7)].list); n->objtype = OBJECT_MATVIEW; n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 299: #line 2309 "gram.y" { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[(7) - (11)].str); n->objtype = OBJECT_MATVIEW; n->roles = NIL; n->new_tablespacename = (yyvsp[(10) - (11)].str); n->nowait = (yyvsp[(11) - (11)].boolean); (yyval.node) = (Node *) n; ;} break; case 300: #line 2321 "gram.y" { AlterTableMoveAllStmt *n = makeNode(AlterTableMoveAllStmt); n->orig_tablespacename = (yyvsp[(7) - (14)].str); n->objtype = OBJECT_MATVIEW; n->roles = (yyvsp[(10) - (14)].list); n->new_tablespacename = (yyvsp[(13) - (14)].str); n->nowait = (yyvsp[(14) - (14)].boolean); (yyval.node) = (Node *) n; ;} break; case 301: #line 2333 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(4) - (5)].range); n->cmds = (yyvsp[(5) - (5)].list); n->objtype = OBJECT_FOREIGN_TABLE; n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 302: #line 2343 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(6) - (7)].range); n->cmds = (yyvsp[(7) - (7)].list); n->objtype = OBJECT_FOREIGN_TABLE; n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 303: #line 2355 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 304: #line 2356 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 305: #line 2362 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); PartitionCmd *cmd = makeNode(PartitionCmd); n->subtype = AT_AttachPartition; cmd->name = (yyvsp[(3) - (4)].range); cmd->bound = (yyvsp[(4) - (4)].partboundspec); cmd->concurrent = false; n->def = (Node *) cmd; (yyval.node) = (Node *) n; ;} break; case 306: #line 2376 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); PartitionCmd *cmd = makeNode(PartitionCmd); n->subtype = AT_DetachPartition; cmd->name = (yyvsp[(3) - (4)].range); cmd->bound = NULL; cmd->concurrent = (yyvsp[(4) - (4)].boolean); n->def = (Node *) cmd; (yyval.node) = (Node *) n; ;} break; case 307: #line 2389 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); PartitionCmd *cmd = makeNode(PartitionCmd); n->subtype = AT_DetachPartitionFinalize; cmd->name = (yyvsp[(3) - (4)].range); cmd->bound = NULL; cmd->concurrent = false; n->def = (Node *) cmd; (yyval.node) = (Node *) n; ;} break; case 308: #line 2405 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); PartitionCmd *cmd = makeNode(PartitionCmd); n->subtype = AT_AttachPartition; cmd->name = (yyvsp[(3) - (3)].range); cmd->bound = NULL; cmd->concurrent = false; n->def = (Node *) cmd; (yyval.node) = (Node *) n; ;} break; case 309: #line 2422 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[(2) - (2)].node); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 310: #line 2432 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[(5) - (5)].node); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 311: #line 2442 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[(3) - (3)].node); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 312: #line 2452 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[(6) - (6)].node); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 313: #line 2462 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ColumnDefault; n->name = (yyvsp[(3) - (4)].str); n->def = (yyvsp[(4) - (4)].node); (yyval.node) = (Node *) n; ;} break; case 314: #line 2472 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropNotNull; n->name = (yyvsp[(3) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 315: #line 2481 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetNotNull; n->name = (yyvsp[(3) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 316: #line 2490 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetExpression; n->name = (yyvsp[(3) - (9)].str); n->def = (yyvsp[(8) - (9)].node); (yyval.node) = (Node *) n; ;} break; case 317: #line 2500 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropExpression; n->name = (yyvsp[(3) - (5)].str); (yyval.node) = (Node *) n; ;} break; case 318: #line 2509 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropExpression; n->name = (yyvsp[(3) - (7)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 319: #line 2519 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetStatistics; n->name = (yyvsp[(3) - (6)].str); n->def = (yyvsp[(6) - (6)].node); (yyval.node) = (Node *) n; ;} break; case 320: #line 2529 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); if ((yyvsp[(3) - (6)].ival) <= 0 || (yyvsp[(3) - (6)].ival) > PG_INT16_MAX) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("column number must be in range from 1 to %d", PG_INT16_MAX), parser_errposition((yylsp[(3) - (6)])))); n->subtype = AT_SetStatistics; n->num = (int16) (yyvsp[(3) - (6)].ival); n->def = (yyvsp[(6) - (6)].node); (yyval.node) = (Node *) n; ;} break; case 321: #line 2545 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetOptions; n->name = (yyvsp[(3) - (5)].str); n->def = (Node *) (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 322: #line 2555 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ResetOptions; n->name = (yyvsp[(3) - (5)].str); n->def = (Node *) (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 323: #line 2565 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetStorage; n->name = (yyvsp[(3) - (5)].str); n->def = (Node *) makeString((yyvsp[(5) - (5)].str)); (yyval.node) = (Node *) n; ;} break; case 324: #line 2575 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetCompression; n->name = (yyvsp[(3) - (5)].str); n->def = (Node *) makeString((yyvsp[(5) - (5)].str)); (yyval.node) = (Node *) n; ;} break; case 325: #line 2585 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); Constraint *c = makeNode(Constraint); c->contype = CONSTR_IDENTITY; c->generated_when = (yyvsp[(6) - (9)].ival); c->options = (yyvsp[(9) - (9)].list); c->location = (yylsp[(5) - (9)]); n->subtype = AT_AddIdentity; n->name = (yyvsp[(3) - (9)].str); n->def = (Node *) c; (yyval.node) = (Node *) n; ;} break; case 326: #line 2602 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetIdentity; n->name = (yyvsp[(3) - (4)].str); n->def = (Node *) (yyvsp[(4) - (4)].list); (yyval.node) = (Node *) n; ;} break; case 327: #line 2612 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropIdentity; n->name = (yyvsp[(3) - (5)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 328: #line 2622 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropIdentity; n->name = (yyvsp[(3) - (7)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 329: #line 2632 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[(5) - (6)].str); n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 330: #line 2643 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[(3) - (4)].str); n->behavior = (yyvsp[(4) - (4)].dbehavior); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 331: #line 2657 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); ColumnDef *def = makeNode(ColumnDef); n->subtype = AT_AlterColumnType; n->name = (yyvsp[(3) - (8)].str); n->def = (Node *) def; /* We only use these fields of the ColumnDef node */ def->typeName = (yyvsp[(6) - (8)].typnam); def->collClause = (CollateClause *) (yyvsp[(7) - (8)].node); def->raw_default = (yyvsp[(8) - (8)].node); def->location = (yylsp[(3) - (8)]); (yyval.node) = (Node *) n; ;} break; case 332: #line 2673 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AlterColumnGenericOptions; n->name = (yyvsp[(3) - (4)].str); n->def = (Node *) (yyvsp[(4) - (4)].list); (yyval.node) = (Node *) n; ;} break; case 333: #line 2683 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddConstraint; n->def = (yyvsp[(2) - (2)].node); (yyval.node) = (Node *) n; ;} break; case 334: #line 2692 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); Constraint *c = makeNode(Constraint); n->subtype = AT_AlterConstraint; n->def = (Node *) c; c->contype = CONSTR_FOREIGN; /* others not supported, yet */ c->conname = (yyvsp[(3) - (4)].str); processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "FOREIGN KEY", &c->deferrable, &c->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *) n; ;} break; case 335: #line 2708 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ValidateConstraint; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 336: #line 2717 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropConstraint; n->name = (yyvsp[(5) - (6)].str); n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 337: #line 2728 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropConstraint; n->name = (yyvsp[(3) - (4)].str); n->behavior = (yyvsp[(4) - (4)].dbehavior); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 338: #line 2739 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropOids; (yyval.node) = (Node *) n; ;} break; case 339: #line 2747 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ClusterOn; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 340: #line 2756 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropCluster; n->name = NULL; (yyval.node) = (Node *) n; ;} break; case 341: #line 2765 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetLogged; (yyval.node) = (Node *) n; ;} break; case 342: #line 2773 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetUnLogged; (yyval.node) = (Node *) n; ;} break; case 343: #line 2781 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrig; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 344: #line 2790 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableAlwaysTrig; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *) n; ;} break; case 345: #line 2799 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableReplicaTrig; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *) n; ;} break; case 346: #line 2808 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrigAll; (yyval.node) = (Node *) n; ;} break; case 347: #line 2816 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrigUser; (yyval.node) = (Node *) n; ;} break; case 348: #line 2824 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrig; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 349: #line 2833 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrigAll; (yyval.node) = (Node *) n; ;} break; case 350: #line 2841 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrigUser; (yyval.node) = (Node *) n; ;} break; case 351: #line 2849 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableRule; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 352: #line 2858 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableAlwaysRule; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *) n; ;} break; case 353: #line 2867 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableReplicaRule; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *) n; ;} break; case 354: #line 2876 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableRule; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 355: #line 2885 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddInherit; n->def = (Node *) (yyvsp[(2) - (2)].range); (yyval.node) = (Node *) n; ;} break; case 356: #line 2894 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropInherit; n->def = (Node *) (yyvsp[(3) - (3)].range); (yyval.node) = (Node *) n; ;} break; case 357: #line 2903 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); TypeName *def = makeTypeNameFromNameList((yyvsp[(2) - (2)].list)); def->location = (yylsp[(2) - (2)]); n->subtype = AT_AddOf; n->def = (Node *) def; (yyval.node) = (Node *) n; ;} break; case 358: #line 2914 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropOf; (yyval.node) = (Node *) n; ;} break; case 359: #line 2922 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ChangeOwner; n->newowner = (yyvsp[(3) - (3)].rolespec); (yyval.node) = (Node *) n; ;} break; case 360: #line 2931 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetAccessMethod; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *) n; ;} break; case 361: #line 2940 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetTableSpace; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 362: #line 2949 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetRelOptions; n->def = (Node *) (yyvsp[(2) - (2)].list); (yyval.node) = (Node *) n; ;} break; case 363: #line 2958 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ResetRelOptions; n->def = (Node *) (yyvsp[(2) - (2)].list); (yyval.node) = (Node *) n; ;} break; case 364: #line 2967 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ReplicaIdentity; n->def = (yyvsp[(3) - (3)].node); (yyval.node) = (Node *) n; ;} break; case 365: #line 2976 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableRowSecurity; (yyval.node) = (Node *) n; ;} break; case 366: #line 2984 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableRowSecurity; (yyval.node) = (Node *) n; ;} break; case 367: #line 2992 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ForceRowSecurity; (yyval.node) = (Node *) n; ;} break; case 368: #line 3000 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_NoForceRowSecurity; (yyval.node) = (Node *) n; ;} break; case 369: #line 3007 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_GenericOptions; n->def = (Node *) (yyvsp[(1) - (1)].list); (yyval.node) = (Node *) n; ;} break; case 370: #line 3017 "gram.y" { (yyval.node) = (yyvsp[(3) - (3)].node); ;} break; case 371: #line 3018 "gram.y" { (yyval.node) = NULL; ;} break; case 372: #line 3023 "gram.y" { CollateClause *n = makeNode(CollateClause); n->arg = NULL; n->collname = (yyvsp[(2) - (2)].list); n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *) n; ;} break; case 373: #line 3031 "gram.y" { (yyval.node) = NULL; ;} break; case 374: #line 3035 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 375: #line 3036 "gram.y" { (yyval.node) = NULL; ;} break; case 376: #line 3041 "gram.y" { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_NOTHING; n->name = NULL; (yyval.node) = (Node *) n; ;} break; case 377: #line 3049 "gram.y" { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_FULL; n->name = NULL; (yyval.node) = (Node *) n; ;} break; case 378: #line 3057 "gram.y" { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_DEFAULT; n->name = NULL; (yyval.node) = (Node *) n; ;} break; case 379: #line 3065 "gram.y" { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_INDEX; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 380: #line 3075 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 381: #line 3078 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 382: #line 3079 "gram.y" { (yyval.list) = NIL; ;} break; case 383: #line 3083 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 384: #line 3084 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 385: #line 3090 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 386: #line 3094 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)])); ;} break; case 387: #line 3098 "gram.y" { (yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (Node *) (yyvsp[(5) - (5)].node), DEFELEM_UNSPEC, (yylsp[(1) - (5)])); ;} break; case 388: #line 3103 "gram.y" { (yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str), NULL, DEFELEM_UNSPEC, (yylsp[(1) - (3)])); ;} break; case 389: #line 3110 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 390: #line 3112 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 391: #line 3117 "gram.y" { (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)])); ;} break; case 392: #line 3121 "gram.y" { (yyval.defelt) = makeDefElem("restart", (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 393: #line 3125 "gram.y" { if (strcmp((yyvsp[(2) - (2)].defelt)->defname, "as") == 0 || strcmp((yyvsp[(2) - (2)].defelt)->defname, "restart") == 0 || strcmp((yyvsp[(2) - (2)].defelt)->defname, "owned_by") == 0) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("sequence option \"%s\" not supported here", (yyvsp[(2) - (2)].defelt)->defname), parser_errposition((yylsp[(2) - (2)])))); (yyval.defelt) = (yyvsp[(2) - (2)].defelt); ;} break; case 394: #line 3136 "gram.y" { (yyval.defelt) = makeDefElem("generated", (Node *) makeInteger((yyvsp[(3) - (3)].ival)), (yylsp[(1) - (3)])); ;} break; case 395: #line 3142 "gram.y" { (yyval.node) = (Node *) makeInteger((yyvsp[(1) - (1)].ival)); ;} break; case 396: #line 3143 "gram.y" { (yyval.node) = NULL; ;} break; case 397: #line 3147 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 398: #line 3148 "gram.y" { (yyval.str) = NULL; ;} break; case 399: #line 3154 "gram.y" { ListCell *lc; PartitionBoundSpec *n = makeNode(PartitionBoundSpec); n->strategy = PARTITION_STRATEGY_HASH; n->modulus = n->remainder = -1; foreach (lc, (yyvsp[(5) - (6)].list)) { DefElem *opt = lfirst_node(DefElem, lc); if (strcmp(opt->defname, "modulus") == 0) { if (n->modulus != -1) ereport(ERROR, (errcode(ERRCODE_DUPLICATE_OBJECT), errmsg("modulus for hash partition provided more than once"), parser_errposition(opt->location))); n->modulus = defGetInt32(opt); } else if (strcmp(opt->defname, "remainder") == 0) { if (n->remainder != -1) ereport(ERROR, (errcode(ERRCODE_DUPLICATE_OBJECT), errmsg("remainder for hash partition provided more than once"), parser_errposition(opt->location))); n->remainder = defGetInt32(opt); } else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized hash partition bound specification \"%s\"", opt->defname), parser_errposition(opt->location))); } if (n->modulus == -1) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("modulus for hash partition must be specified"))); if (n->remainder == -1) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("remainder for hash partition must be specified"))); n->location = (yylsp[(3) - (6)]); (yyval.partboundspec) = n; ;} break; case 400: #line 3207 "gram.y" { PartitionBoundSpec *n = makeNode(PartitionBoundSpec); n->strategy = PARTITION_STRATEGY_LIST; n->is_default = false; n->listdatums = (yyvsp[(5) - (6)].list); n->location = (yylsp[(3) - (6)]); (yyval.partboundspec) = n; ;} break; case 401: #line 3220 "gram.y" { PartitionBoundSpec *n = makeNode(PartitionBoundSpec); n->strategy = PARTITION_STRATEGY_RANGE; n->is_default = false; n->lowerdatums = (yyvsp[(5) - (10)].list); n->upperdatums = (yyvsp[(9) - (10)].list); n->location = (yylsp[(3) - (10)]); (yyval.partboundspec) = n; ;} break; case 402: #line 3234 "gram.y" { PartitionBoundSpec *n = makeNode(PartitionBoundSpec); n->is_default = true; n->location = (yylsp[(1) - (1)]); (yyval.partboundspec) = n; ;} break; case 403: #line 3246 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (Node *) makeInteger((yyvsp[(2) - (2)].ival)), (yylsp[(1) - (2)])); ;} break; case 404: #line 3253 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 405: #line 3257 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 406: #line 3271 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); /* can't use qualified_name, sigh */ n->relation = makeRangeVarFromAnyName((yyvsp[(3) - (4)].list), (yylsp[(3) - (4)]), yyscanner); n->cmds = (yyvsp[(4) - (4)].list); n->objtype = OBJECT_TYPE; (yyval.node) = (Node *) n; ;} break; case 407: #line 3283 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 408: #line 3284 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 409: #line 3290 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[(3) - (4)].node); n->behavior = (yyvsp[(4) - (4)].dbehavior); (yyval.node) = (Node *) n; ;} break; case 410: #line 3300 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[(5) - (6)].str); n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 411: #line 3311 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropColumn; n->name = (yyvsp[(3) - (4)].str); n->behavior = (yyvsp[(4) - (4)].dbehavior); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 412: #line 3322 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); ColumnDef *def = makeNode(ColumnDef); n->subtype = AT_AlterColumnType; n->name = (yyvsp[(3) - (8)].str); n->def = (Node *) def; n->behavior = (yyvsp[(8) - (8)].dbehavior); /* We only use these fields of the ColumnDef node */ def->typeName = (yyvsp[(6) - (8)].typnam); def->collClause = (CollateClause *) (yyvsp[(7) - (8)].node); def->raw_default = NULL; def->location = (yylsp[(3) - (8)]); (yyval.node) = (Node *) n; ;} break; case 413: #line 3349 "gram.y" { ClosePortalStmt *n = makeNode(ClosePortalStmt); n->portalname = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; ;} break; case 414: #line 3356 "gram.y" { ClosePortalStmt *n = makeNode(ClosePortalStmt); n->portalname = NULL; (yyval.node) = (Node *) n; ;} break; case 415: #line 3392 "gram.y" { CopyStmt *n = makeNode(CopyStmt); n->relation = (yyvsp[(3) - (11)].range); n->query = NULL; n->attlist = (yyvsp[(4) - (11)].list); n->is_from = (yyvsp[(5) - (11)].boolean); n->is_program = (yyvsp[(6) - (11)].boolean); n->filename = (yyvsp[(7) - (11)].str); n->whereClause = (yyvsp[(11) - (11)].node); if (n->is_program && n->filename == NULL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("STDIN/STDOUT not allowed with PROGRAM"), parser_errposition((yylsp[(8) - (11)])))); if (!n->is_from && n->whereClause != NULL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WHERE clause not allowed with COPY TO"), parser_errposition((yylsp[(11) - (11)])))); n->options = NIL; /* Concatenate user-supplied flags */ if ((yyvsp[(2) - (11)].defelt)) n->options = lappend(n->options, (yyvsp[(2) - (11)].defelt)); if ((yyvsp[(8) - (11)].defelt)) n->options = lappend(n->options, (yyvsp[(8) - (11)].defelt)); if ((yyvsp[(10) - (11)].list)) n->options = list_concat(n->options, (yyvsp[(10) - (11)].list)); (yyval.node) = (Node *) n; ;} break; case 416: #line 3426 "gram.y" { CopyStmt *n = makeNode(CopyStmt); n->relation = NULL; n->query = (yyvsp[(3) - (9)].node); n->attlist = NIL; n->is_from = false; n->is_program = (yyvsp[(6) - (9)].boolean); n->filename = (yyvsp[(7) - (9)].str); n->options = (yyvsp[(9) - (9)].list); if (n->is_program && n->filename == NULL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("STDIN/STDOUT not allowed with PROGRAM"), parser_errposition((yylsp[(5) - (9)])))); (yyval.node) = (Node *) n; ;} break; case 417: #line 3448 "gram.y" { (yyval.boolean) = true; ;} break; case 418: #line 3449 "gram.y" { (yyval.boolean) = false; ;} break; case 419: #line 3453 "gram.y" { (yyval.boolean) = true; ;} break; case 420: #line 3454 "gram.y" { (yyval.boolean) = false; ;} break; case 421: #line 3463 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 422: #line 3464 "gram.y" { (yyval.str) = NULL; ;} break; case 423: #line 3465 "gram.y" { (yyval.str) = NULL; ;} break; case 424: #line 3468 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 425: #line 3469 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 426: #line 3474 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 427: #line 3475 "gram.y" { (yyval.list) = NIL; ;} break; case 428: #line 3480 "gram.y" { (yyval.defelt) = makeDefElem("format", (Node *) makeString("binary"), (yylsp[(1) - (1)])); ;} break; case 429: #line 3484 "gram.y" { (yyval.defelt) = makeDefElem("freeze", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); ;} break; case 430: #line 3488 "gram.y" { (yyval.defelt) = makeDefElem("delimiter", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); ;} break; case 431: #line 3492 "gram.y" { (yyval.defelt) = makeDefElem("null", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); ;} break; case 432: #line 3496 "gram.y" { (yyval.defelt) = makeDefElem("format", (Node *) makeString("csv"), (yylsp[(1) - (1)])); ;} break; case 433: #line 3500 "gram.y" { (yyval.defelt) = makeDefElem("header", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); ;} break; case 434: #line 3504 "gram.y" { (yyval.defelt) = makeDefElem("quote", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); ;} break; case 435: #line 3508 "gram.y" { (yyval.defelt) = makeDefElem("escape", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); ;} break; case 436: #line 3512 "gram.y" { (yyval.defelt) = makeDefElem("force_quote", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 437: #line 3516 "gram.y" { (yyval.defelt) = makeDefElem("force_quote", (Node *) makeNode(A_Star), (yylsp[(1) - (3)])); ;} break; case 438: #line 3520 "gram.y" { (yyval.defelt) = makeDefElem("force_not_null", (Node *) (yyvsp[(4) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 439: #line 3524 "gram.y" { (yyval.defelt) = makeDefElem("force_not_null", (Node *) makeNode(A_Star), (yylsp[(1) - (4)])); ;} break; case 440: #line 3528 "gram.y" { (yyval.defelt) = makeDefElem("force_null", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 441: #line 3532 "gram.y" { (yyval.defelt) = makeDefElem("force_null", (Node *) makeNode(A_Star), (yylsp[(1) - (3)])); ;} break; case 442: #line 3536 "gram.y" { (yyval.defelt) = makeDefElem("encoding", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); ;} break; case 443: #line 3545 "gram.y" { (yyval.defelt) = makeDefElem("format", (Node *) makeString("binary"), (yylsp[(1) - (1)])); ;} break; case 444: #line 3548 "gram.y" { (yyval.defelt) = NULL; ;} break; case 445: #line 3553 "gram.y" { (yyval.defelt) = makeDefElem("delimiter", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(2) - (3)])); ;} break; case 446: #line 3556 "gram.y" { (yyval.defelt) = NULL; ;} break; case 449: #line 3567 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 450: #line 3571 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 451: #line 3578 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 452: #line 3584 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 453: #line 3585 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].node); ;} break; case 454: #line 3586 "gram.y" { (yyval.node) = (Node *) makeNode(A_Star); ;} break; case 455: #line 3587 "gram.y" { (yyval.node) = (Node *) makeString("default"); ;} break; case 456: #line 3588 "gram.y" { (yyval.node) = (Node *) (yyvsp[(2) - (3)].list); ;} break; case 457: #line 3589 "gram.y" { (yyval.node) = NULL; ;} break; case 458: #line 3594 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 459: #line 3598 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 460: #line 3605 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 461: #line 3619 "gram.y" { CreateStmt *n = makeNode(CreateStmt); (yyvsp[(4) - (13)].range)->relpersistence = (yyvsp[(2) - (13)].ival); n->relation = (yyvsp[(4) - (13)].range); n->tableElts = (yyvsp[(6) - (13)].list); n->inhRelations = (yyvsp[(8) - (13)].list); n->partspec = (yyvsp[(9) - (13)].partspec); n->ofTypename = NULL; n->constraints = NIL; n->accessMethod = (yyvsp[(10) - (13)].str); n->options = (yyvsp[(11) - (13)].list); n->oncommit = (yyvsp[(12) - (13)].oncommit); n->tablespacename = (yyvsp[(13) - (13)].str); n->if_not_exists = false; (yyval.node) = (Node *) n; ;} break; case 462: #line 3639 "gram.y" { CreateStmt *n = makeNode(CreateStmt); (yyvsp[(7) - (16)].range)->relpersistence = (yyvsp[(2) - (16)].ival); n->relation = (yyvsp[(7) - (16)].range); n->tableElts = (yyvsp[(9) - (16)].list); n->inhRelations = (yyvsp[(11) - (16)].list); n->partspec = (yyvsp[(12) - (16)].partspec); n->ofTypename = NULL; n->constraints = NIL; n->accessMethod = (yyvsp[(13) - (16)].str); n->options = (yyvsp[(14) - (16)].list); n->oncommit = (yyvsp[(15) - (16)].oncommit); n->tablespacename = (yyvsp[(16) - (16)].str); n->if_not_exists = true; (yyval.node) = (Node *) n; ;} break; case 463: #line 3659 "gram.y" { CreateStmt *n = makeNode(CreateStmt); (yyvsp[(4) - (12)].range)->relpersistence = (yyvsp[(2) - (12)].ival); n->relation = (yyvsp[(4) - (12)].range); n->tableElts = (yyvsp[(7) - (12)].list); n->inhRelations = NIL; n->partspec = (yyvsp[(8) - (12)].partspec); n->ofTypename = makeTypeNameFromNameList((yyvsp[(6) - (12)].list)); n->ofTypename->location = (yylsp[(6) - (12)]); n->constraints = NIL; n->accessMethod = (yyvsp[(9) - (12)].str); n->options = (yyvsp[(10) - (12)].list); n->oncommit = (yyvsp[(11) - (12)].oncommit); n->tablespacename = (yyvsp[(12) - (12)].str); n->if_not_exists = false; (yyval.node) = (Node *) n; ;} break; case 464: #line 3680 "gram.y" { CreateStmt *n = makeNode(CreateStmt); (yyvsp[(7) - (15)].range)->relpersistence = (yyvsp[(2) - (15)].ival); n->relation = (yyvsp[(7) - (15)].range); n->tableElts = (yyvsp[(10) - (15)].list); n->inhRelations = NIL; n->partspec = (yyvsp[(11) - (15)].partspec); n->ofTypename = makeTypeNameFromNameList((yyvsp[(9) - (15)].list)); n->ofTypename->location = (yylsp[(9) - (15)]); n->constraints = NIL; n->accessMethod = (yyvsp[(12) - (15)].str); n->options = (yyvsp[(13) - (15)].list); n->oncommit = (yyvsp[(14) - (15)].oncommit); n->tablespacename = (yyvsp[(15) - (15)].str); n->if_not_exists = true; (yyval.node) = (Node *) n; ;} break; case 465: #line 3701 "gram.y" { CreateStmt *n = makeNode(CreateStmt); (yyvsp[(4) - (14)].range)->relpersistence = (yyvsp[(2) - (14)].ival); n->relation = (yyvsp[(4) - (14)].range); n->tableElts = (yyvsp[(8) - (14)].list); n->inhRelations = list_make1((yyvsp[(7) - (14)].range)); n->partbound = (yyvsp[(9) - (14)].partboundspec); n->partspec = (yyvsp[(10) - (14)].partspec); n->ofTypename = NULL; n->constraints = NIL; n->accessMethod = (yyvsp[(11) - (14)].str); n->options = (yyvsp[(12) - (14)].list); n->oncommit = (yyvsp[(13) - (14)].oncommit); n->tablespacename = (yyvsp[(14) - (14)].str); n->if_not_exists = false; (yyval.node) = (Node *) n; ;} break; case 466: #line 3722 "gram.y" { CreateStmt *n = makeNode(CreateStmt); (yyvsp[(7) - (17)].range)->relpersistence = (yyvsp[(2) - (17)].ival); n->relation = (yyvsp[(7) - (17)].range); n->tableElts = (yyvsp[(11) - (17)].list); n->inhRelations = list_make1((yyvsp[(10) - (17)].range)); n->partbound = (yyvsp[(12) - (17)].partboundspec); n->partspec = (yyvsp[(13) - (17)].partspec); n->ofTypename = NULL; n->constraints = NIL; n->accessMethod = (yyvsp[(14) - (17)].str); n->options = (yyvsp[(15) - (17)].list); n->oncommit = (yyvsp[(16) - (17)].oncommit); n->tablespacename = (yyvsp[(17) - (17)].str); n->if_not_exists = true; (yyval.node) = (Node *) n; ;} break; case 467: #line 3753 "gram.y" { (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 468: #line 3754 "gram.y" { (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 469: #line 3755 "gram.y" { (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 470: #line 3756 "gram.y" { (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 471: #line 3758 "gram.y" { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[(1) - (2)])))); (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 472: #line 3765 "gram.y" { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[(1) - (2)])))); (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 473: #line 3771 "gram.y" { (yyval.ival) = RELPERSISTENCE_UNLOGGED; ;} break; case 474: #line 3772 "gram.y" { (yyval.ival) = RELPERSISTENCE_PERMANENT; ;} break; case 475: #line 3776 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 476: #line 3777 "gram.y" { (yyval.list) = NIL; ;} break; case 477: #line 3781 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 478: #line 3782 "gram.y" { (yyval.list) = NIL; ;} break; case 479: #line 3787 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 480: #line 3791 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 481: #line 3798 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 482: #line 3802 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 483: #line 3808 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 484: #line 3809 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 485: #line 3810 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 486: #line 3814 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 487: #line 3815 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 488: #line 3819 "gram.y" { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[(1) - (6)].str); n->typeName = (yyvsp[(2) - (6)].typnam); n->storage_name = (yyvsp[(3) - (6)].str); n->compression = (yyvsp[(4) - (6)].str); n->inhcount = 0; n->is_local = true; n->is_not_null = false; n->is_from_type = false; n->storage = 0; n->raw_default = NULL; n->cooked_default = NULL; n->collOid = InvalidOid; n->fdwoptions = (yyvsp[(5) - (6)].list); SplitColQualList((yyvsp[(6) - (6)].list), &n->constraints, &n->collClause, yyscanner); n->location = (yylsp[(1) - (6)]); (yyval.node) = (Node *) n; ;} break; case 489: #line 3843 "gram.y" { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[(1) - (2)].str); n->typeName = NULL; n->inhcount = 0; n->is_local = true; n->is_not_null = false; n->is_from_type = false; n->storage = 0; n->raw_default = NULL; n->cooked_default = NULL; n->collOid = InvalidOid; SplitColQualList((yyvsp[(2) - (2)].list), &n->constraints, &n->collClause, yyscanner); n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *) n; ;} break; case 490: #line 3862 "gram.y" { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[(1) - (4)].str); n->typeName = NULL; n->inhcount = 0; n->is_local = true; n->is_not_null = false; n->is_from_type = false; n->storage = 0; n->raw_default = NULL; n->cooked_default = NULL; n->collOid = InvalidOid; SplitColQualList((yyvsp[(4) - (4)].list), &n->constraints, &n->collClause, yyscanner); n->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *) n; ;} break; case 491: #line 3883 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 492: #line 3884 "gram.y" { (yyval.str) = pstrdup("default"); ;} break; case 493: #line 3888 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 494: #line 3889 "gram.y" { (yyval.str) = NULL; ;} break; case 495: #line 3893 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 496: #line 3894 "gram.y" { (yyval.str) = pstrdup("default"); ;} break; case 497: #line 3898 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 498: #line 3899 "gram.y" { (yyval.str) = NULL; ;} break; case 499: #line 3903 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 500: #line 3904 "gram.y" { (yyval.list) = NIL; ;} break; case 501: #line 3909 "gram.y" { Constraint *n = castNode(Constraint, (yyvsp[(3) - (3)].node)); n->conname = (yyvsp[(2) - (3)].str); n->location = (yylsp[(1) - (3)]); (yyval.node) = (Node *) n; ;} break; case 502: #line 3916 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 503: #line 3917 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 504: #line 3919 "gram.y" { /* * Note: the CollateClause is momentarily included in * the list built by ColQualList, but we split it out * again in SplitColQualList. */ CollateClause *n = makeNode(CollateClause); n->arg = NULL; n->collname = (yyvsp[(2) - (2)].list); n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *) n; ;} break; case 505: #line 3951 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_NOTNULL; n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *) n; ;} break; case 506: #line 3959 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_NULL; n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *) n; ;} break; case 507: #line 3967 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; n->location = (yylsp[(1) - (4)]); n->nulls_not_distinct = !(yyvsp[(2) - (4)].boolean); n->keys = NULL; n->options = (yyvsp[(3) - (4)].list); n->indexname = NULL; n->indexspace = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *) n; ;} break; case 508: #line 3980 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; n->location = (yylsp[(1) - (4)]); n->keys = NULL; n->options = (yyvsp[(3) - (4)].list); n->indexname = NULL; n->indexspace = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *) n; ;} break; case 509: #line 3992 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_CHECK; n->location = (yylsp[(1) - (5)]); n->is_no_inherit = (yyvsp[(5) - (5)].boolean); n->raw_expr = (yyvsp[(3) - (5)].node); n->cooked_expr = NULL; n->skip_validation = false; n->initially_valid = true; (yyval.node) = (Node *) n; ;} break; case 510: #line 4005 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_DEFAULT; n->location = (yylsp[(1) - (2)]); n->raw_expr = (yyvsp[(2) - (2)].node); n->cooked_expr = NULL; (yyval.node) = (Node *) n; ;} break; case 511: #line 4015 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_IDENTITY; n->generated_when = (yyvsp[(2) - (5)].ival); n->options = (yyvsp[(5) - (5)].list); n->location = (yylsp[(1) - (5)]); (yyval.node) = (Node *) n; ;} break; case 512: #line 4025 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_GENERATED; n->generated_when = (yyvsp[(2) - (7)].ival); n->raw_expr = (yyvsp[(5) - (7)].node); n->cooked_expr = NULL; n->location = (yylsp[(1) - (7)]); /* * Can't do this in the grammar because of shift/reduce * conflicts. (IDENTITY allows both ALWAYS and BY * DEFAULT, but generated columns only allow ALWAYS.) We * can also give a more useful error message and location. */ if ((yyvsp[(2) - (7)].ival) != ATTRIBUTE_IDENTITY_ALWAYS) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("for a generated column, GENERATED ALWAYS must be specified"), parser_errposition((yylsp[(2) - (7)])))); (yyval.node) = (Node *) n; ;} break; case 513: #line 4049 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_FOREIGN; n->location = (yylsp[(1) - (5)]); n->pktable = (yyvsp[(2) - (5)].range); n->fk_attrs = NIL; n->pk_attrs = (yyvsp[(3) - (5)].list); n->fk_matchtype = (yyvsp[(4) - (5)].ival); n->fk_upd_action = ((yyvsp[(5) - (5)].keyactions))->updateAction->action; n->fk_del_action = ((yyvsp[(5) - (5)].keyactions))->deleteAction->action; n->fk_del_set_cols = ((yyvsp[(5) - (5)].keyactions))->deleteAction->cols; n->skip_validation = false; n->initially_valid = true; (yyval.node) = (Node *) n; ;} break; case 514: #line 4068 "gram.y" { (yyval.boolean) = true; ;} break; case 515: #line 4069 "gram.y" { (yyval.boolean) = false; ;} break; case 516: #line 4070 "gram.y" { (yyval.boolean) = true; ;} break; case 517: #line 4074 "gram.y" { (yyval.ival) = ATTRIBUTE_IDENTITY_ALWAYS; ;} break; case 518: #line 4075 "gram.y" { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; ;} break; case 519: #line 4095 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_DEFERRABLE; n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *) n; ;} break; case 520: #line 4103 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_NOT_DEFERRABLE; n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *) n; ;} break; case 521: #line 4111 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_DEFERRED; n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *) n; ;} break; case 522: #line 4119 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_IMMEDIATE; n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *) n; ;} break; case 523: #line 4131 "gram.y" { TableLikeClause *n = makeNode(TableLikeClause); n->relation = (yyvsp[(2) - (3)].range); n->options = (yyvsp[(3) - (3)].ival); n->relationOid = InvalidOid; (yyval.node) = (Node *) n; ;} break; case 524: #line 4142 "gram.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;} break; case 525: #line 4143 "gram.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) & ~(yyvsp[(3) - (3)].ival); ;} break; case 526: #line 4144 "gram.y" { (yyval.ival) = 0; ;} break; case 527: #line 4148 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_COMMENTS; ;} break; case 528: #line 4149 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_COMPRESSION; ;} break; case 529: #line 4150 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_CONSTRAINTS; ;} break; case 530: #line 4151 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_DEFAULTS; ;} break; case 531: #line 4152 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_IDENTITY; ;} break; case 532: #line 4153 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_GENERATED; ;} break; case 533: #line 4154 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_INDEXES; ;} break; case 534: #line 4155 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_STATISTICS; ;} break; case 535: #line 4156 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_STORAGE; ;} break; case 536: #line 4157 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_ALL; ;} break; case 537: #line 4167 "gram.y" { Constraint *n = castNode(Constraint, (yyvsp[(3) - (3)].node)); n->conname = (yyvsp[(2) - (3)].str); n->location = (yylsp[(1) - (3)]); (yyval.node) = (Node *) n; ;} break; case 538: #line 4174 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 539: #line 4179 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_CHECK; n->location = (yylsp[(1) - (5)]); n->raw_expr = (yyvsp[(3) - (5)].node); n->cooked_expr = NULL; processCASbits((yyvsp[(5) - (5)].ival), (yylsp[(5) - (5)]), "CHECK", NULL, NULL, &n->skip_validation, &n->is_no_inherit, yyscanner); n->initially_valid = !n->skip_validation; (yyval.node) = (Node *) n; ;} break; case 540: #line 4194 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; n->location = (yylsp[(1) - (9)]); n->nulls_not_distinct = !(yyvsp[(2) - (9)].boolean); n->keys = (yyvsp[(4) - (9)].list); n->including = (yyvsp[(6) - (9)].list); n->options = (yyvsp[(7) - (9)].list); n->indexname = NULL; n->indexspace = (yyvsp[(8) - (9)].str); processCASbits((yyvsp[(9) - (9)].ival), (yylsp[(9) - (9)]), "UNIQUE", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *) n; ;} break; case 541: #line 4211 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; n->location = (yylsp[(1) - (3)]); n->keys = NIL; n->including = NIL; n->options = NIL; n->indexname = (yyvsp[(2) - (3)].str); n->indexspace = NULL; processCASbits((yyvsp[(3) - (3)].ival), (yylsp[(3) - (3)]), "UNIQUE", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *) n; ;} break; case 542: #line 4228 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; n->location = (yylsp[(1) - (9)]); n->keys = (yyvsp[(4) - (9)].list); n->including = (yyvsp[(6) - (9)].list); n->options = (yyvsp[(7) - (9)].list); n->indexname = NULL; n->indexspace = (yyvsp[(8) - (9)].str); processCASbits((yyvsp[(9) - (9)].ival), (yylsp[(9) - (9)]), "PRIMARY KEY", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *) n; ;} break; case 543: #line 4244 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; n->location = (yylsp[(1) - (4)]); n->keys = NIL; n->including = NIL; n->options = NIL; n->indexname = (yyvsp[(3) - (4)].str); n->indexspace = NULL; processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "PRIMARY KEY", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *) n; ;} break; case 544: #line 4262 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_EXCLUSION; n->location = (yylsp[(1) - (10)]); n->access_method = (yyvsp[(2) - (10)].str); n->exclusions = (yyvsp[(4) - (10)].list); n->including = (yyvsp[(6) - (10)].list); n->options = (yyvsp[(7) - (10)].list); n->indexname = NULL; n->indexspace = (yyvsp[(8) - (10)].str); n->where_clause = (yyvsp[(9) - (10)].node); processCASbits((yyvsp[(10) - (10)].ival), (yylsp[(10) - (10)]), "EXCLUDE", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *) n; ;} break; case 545: #line 4281 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_FOREIGN; n->location = (yylsp[(1) - (11)]); n->pktable = (yyvsp[(7) - (11)].range); n->fk_attrs = (yyvsp[(4) - (11)].list); n->pk_attrs = (yyvsp[(8) - (11)].list); n->fk_matchtype = (yyvsp[(9) - (11)].ival); n->fk_upd_action = ((yyvsp[(10) - (11)].keyactions))->updateAction->action; n->fk_del_action = ((yyvsp[(10) - (11)].keyactions))->deleteAction->action; n->fk_del_set_cols = ((yyvsp[(10) - (11)].keyactions))->deleteAction->cols; processCASbits((yyvsp[(11) - (11)].ival), (yylsp[(11) - (11)]), "FOREIGN KEY", &n->deferrable, &n->initdeferred, &n->skip_validation, NULL, yyscanner); n->initially_valid = !n->skip_validation; (yyval.node) = (Node *) n; ;} break; case 546: #line 4315 "gram.y" { Constraint *n = castNode(Constraint, (yyvsp[(3) - (3)].node)); n->conname = (yyvsp[(2) - (3)].str); n->location = (yylsp[(1) - (3)]); (yyval.node) = (Node *) n; ;} break; case 547: #line 4322 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 548: #line 4327 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_CHECK; n->location = (yylsp[(1) - (5)]); n->raw_expr = (yyvsp[(3) - (5)].node); n->cooked_expr = NULL; processCASbits((yyvsp[(5) - (5)].ival), (yylsp[(5) - (5)]), "CHECK", NULL, NULL, &n->skip_validation, &n->is_no_inherit, yyscanner); n->initially_valid = !n->skip_validation; (yyval.node) = (Node *) n; ;} break; case 549: #line 4341 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_NOTNULL; n->location = (yylsp[(1) - (3)]); n->keys = list_make1(makeString("value")); /* no NOT VALID support yet */ processCASbits((yyvsp[(3) - (3)].ival), (yylsp[(3) - (3)]), "NOT NULL", NULL, NULL, NULL, &n->is_no_inherit, yyscanner); n->initially_valid = true; (yyval.node) = (Node *) n; ;} break; case 550: #line 4356 "gram.y" { (yyval.boolean) = true; ;} break; case 551: #line 4357 "gram.y" { (yyval.boolean) = false; ;} break; case 552: #line 4361 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 553: #line 4362 "gram.y" { (yyval.list) = NIL; ;} break; case 554: #line 4366 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 555: #line 4367 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 556: #line 4371 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 557: #line 4376 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 558: #line 4377 "gram.y" { (yyval.list) = NIL; ;} break; case 559: #line 4381 "gram.y" { (yyval.ival) = FKCONSTR_MATCH_FULL; ;} break; case 560: #line 4385 "gram.y" { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"), parser_errposition((yylsp[(1) - (2)])))); (yyval.ival) = FKCONSTR_MATCH_PARTIAL; ;} break; case 561: #line 4393 "gram.y" { (yyval.ival) = FKCONSTR_MATCH_SIMPLE; ;} break; case 562: #line 4397 "gram.y" { (yyval.ival) = FKCONSTR_MATCH_SIMPLE; ;} break; case 563: #line 4403 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} break; case 564: #line 4405 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} break; case 565: #line 4409 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (3)].ielem), (yyvsp[(3) - (3)].list)); ;} break; case 566: #line 4414 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (6)].ielem), (yyvsp[(5) - (6)].list)); ;} break; case 567: #line 4420 "gram.y" { (yyval.node) = (yyvsp[(3) - (4)].node); ;} break; case 568: #line 4421 "gram.y" { (yyval.node) = NULL; ;} break; case 569: #line 4426 "gram.y" { KeyActions *n = palloc(sizeof(KeyActions)); n->updateAction = (yyvsp[(1) - (1)].keyaction); n->deleteAction = palloc(sizeof(KeyAction)); n->deleteAction->action = FKCONSTR_ACTION_NOACTION; n->deleteAction->cols = NIL; (yyval.keyactions) = n; ;} break; case 570: #line 4436 "gram.y" { KeyActions *n = palloc(sizeof(KeyActions)); n->updateAction = palloc(sizeof(KeyAction)); n->updateAction->action = FKCONSTR_ACTION_NOACTION; n->updateAction->cols = NIL; n->deleteAction = (yyvsp[(1) - (1)].keyaction); (yyval.keyactions) = n; ;} break; case 571: #line 4446 "gram.y" { KeyActions *n = palloc(sizeof(KeyActions)); n->updateAction = (yyvsp[(1) - (2)].keyaction); n->deleteAction = (yyvsp[(2) - (2)].keyaction); (yyval.keyactions) = n; ;} break; case 572: #line 4454 "gram.y" { KeyActions *n = palloc(sizeof(KeyActions)); n->updateAction = (yyvsp[(2) - (2)].keyaction); n->deleteAction = (yyvsp[(1) - (2)].keyaction); (yyval.keyactions) = n; ;} break; case 573: #line 4462 "gram.y" { KeyActions *n = palloc(sizeof(KeyActions)); n->updateAction = palloc(sizeof(KeyAction)); n->updateAction->action = FKCONSTR_ACTION_NOACTION; n->updateAction->cols = NIL; n->deleteAction = palloc(sizeof(KeyAction)); n->deleteAction->action = FKCONSTR_ACTION_NOACTION; n->deleteAction->cols = NIL; (yyval.keyactions) = n; ;} break; case 574: #line 4476 "gram.y" { if (((yyvsp[(3) - (3)].keyaction))->cols) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("a column list with %s is only supported for ON DELETE actions", ((yyvsp[(3) - (3)].keyaction))->action == FKCONSTR_ACTION_SETNULL ? "SET NULL" : "SET DEFAULT"), parser_errposition((yylsp[(1) - (3)])))); (yyval.keyaction) = (yyvsp[(3) - (3)].keyaction); ;} break; case 575: #line 4488 "gram.y" { (yyval.keyaction) = (yyvsp[(3) - (3)].keyaction); ;} break; case 576: #line 4495 "gram.y" { KeyAction *n = palloc(sizeof(KeyAction)); n->action = FKCONSTR_ACTION_NOACTION; n->cols = NIL; (yyval.keyaction) = n; ;} break; case 577: #line 4503 "gram.y" { KeyAction *n = palloc(sizeof(KeyAction)); n->action = FKCONSTR_ACTION_RESTRICT; n->cols = NIL; (yyval.keyaction) = n; ;} break; case 578: #line 4511 "gram.y" { KeyAction *n = palloc(sizeof(KeyAction)); n->action = FKCONSTR_ACTION_CASCADE; n->cols = NIL; (yyval.keyaction) = n; ;} break; case 579: #line 4519 "gram.y" { KeyAction *n = palloc(sizeof(KeyAction)); n->action = FKCONSTR_ACTION_SETNULL; n->cols = (yyvsp[(3) - (3)].list); (yyval.keyaction) = n; ;} break; case 580: #line 4527 "gram.y" { KeyAction *n = palloc(sizeof(KeyAction)); n->action = FKCONSTR_ACTION_SETDEFAULT; n->cols = (yyvsp[(3) - (3)].list); (yyval.keyaction) = n; ;} break; case 581: #line 4536 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 582: #line 4537 "gram.y" { (yyval.list) = NIL; ;} break; case 583: #line 4541 "gram.y" { (yyval.partspec) = (yyvsp[(1) - (1)].partspec); ;} break; case 584: #line 4542 "gram.y" { (yyval.partspec) = NULL; ;} break; case 585: #line 4546 "gram.y" { PartitionSpec *n = makeNode(PartitionSpec); n->strategy = parsePartitionStrategy((yyvsp[(3) - (6)].str)); n->partParams = (yyvsp[(5) - (6)].list); n->location = (yylsp[(1) - (6)]); (yyval.partspec) = n; ;} break; case 586: #line 4557 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].partelem)); ;} break; case 587: #line 4558 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].partelem)); ;} break; case 588: #line 4562 "gram.y" { PartitionElem *n = makeNode(PartitionElem); n->name = (yyvsp[(1) - (3)].str); n->expr = NULL; n->collation = (yyvsp[(2) - (3)].list); n->opclass = (yyvsp[(3) - (3)].list); n->location = (yylsp[(1) - (3)]); (yyval.partelem) = n; ;} break; case 589: #line 4573 "gram.y" { PartitionElem *n = makeNode(PartitionElem); n->name = NULL; n->expr = (yyvsp[(1) - (3)].node); n->collation = (yyvsp[(2) - (3)].list); n->opclass = (yyvsp[(3) - (3)].list); n->location = (yylsp[(1) - (3)]); (yyval.partelem) = n; ;} break; case 590: #line 4584 "gram.y" { PartitionElem *n = makeNode(PartitionElem); n->name = NULL; n->expr = (yyvsp[(2) - (5)].node); n->collation = (yyvsp[(4) - (5)].list); n->opclass = (yyvsp[(5) - (5)].list); n->location = (yylsp[(1) - (5)]); (yyval.partelem) = n; ;} break; case 591: #line 4597 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 592: #line 4598 "gram.y" { (yyval.str) = NULL; ;} break; case 593: #line 4603 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 594: #line 4604 "gram.y" { (yyval.list) = NIL; ;} break; case 595: #line 4605 "gram.y" { (yyval.list) = NIL; ;} break; case 596: #line 4608 "gram.y" { (yyval.oncommit) = ONCOMMIT_DROP; ;} break; case 597: #line 4609 "gram.y" { (yyval.oncommit) = ONCOMMIT_DELETE_ROWS; ;} break; case 598: #line 4610 "gram.y" { (yyval.oncommit) = ONCOMMIT_PRESERVE_ROWS; ;} break; case 599: #line 4611 "gram.y" { (yyval.oncommit) = ONCOMMIT_NOOP; ;} break; case 600: #line 4614 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 601: #line 4615 "gram.y" { (yyval.str) = NULL; ;} break; case 602: #line 4618 "gram.y" { (yyval.str) = (yyvsp[(4) - (4)].str); ;} break; case 603: #line 4619 "gram.y" { (yyval.str) = NULL; ;} break; case 604: #line 4622 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].str); ;} break; case 605: #line 4644 "gram.y" { CreateStatsStmt *n = makeNode(CreateStatsStmt); n->defnames = (yyvsp[(3) - (8)].list); n->stat_types = (yyvsp[(4) - (8)].list); n->exprs = (yyvsp[(6) - (8)].list); n->relations = (yyvsp[(8) - (8)].list); n->stxcomment = NULL; n->if_not_exists = false; (yyval.node) = (Node *) n; ;} break; case 606: #line 4657 "gram.y" { CreateStatsStmt *n = makeNode(CreateStatsStmt); n->defnames = (yyvsp[(6) - (11)].list); n->stat_types = (yyvsp[(7) - (11)].list); n->exprs = (yyvsp[(9) - (11)].list); n->relations = (yyvsp[(11) - (11)].list); n->stxcomment = NULL; n->if_not_exists = true; (yyval.node) = (Node *) n; ;} break; case 607: #line 4677 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].selem)); ;} break; case 608: #line 4678 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].selem)); ;} break; case 609: #line 4682 "gram.y" { (yyval.selem) = makeNode(StatsElem); (yyval.selem)->name = (yyvsp[(1) - (1)].str); (yyval.selem)->expr = NULL; ;} break; case 610: #line 4688 "gram.y" { (yyval.selem) = makeNode(StatsElem); (yyval.selem)->name = NULL; (yyval.selem)->expr = (yyvsp[(1) - (1)].node); ;} break; case 611: #line 4694 "gram.y" { (yyval.selem) = makeNode(StatsElem); (yyval.selem)->name = NULL; (yyval.selem)->expr = (yyvsp[(2) - (3)].node); ;} break; case 612: #line 4711 "gram.y" { AlterStatsStmt *n = makeNode(AlterStatsStmt); n->defnames = (yyvsp[(3) - (6)].list); n->missing_ok = false; n->stxstattarget = (yyvsp[(6) - (6)].node); (yyval.node) = (Node *) n; ;} break; case 613: #line 4720 "gram.y" { AlterStatsStmt *n = makeNode(AlterStatsStmt); n->defnames = (yyvsp[(5) - (8)].list); n->missing_ok = true; n->stxstattarget = (yyvsp[(8) - (8)].node); (yyval.node) = (Node *) n; ;} break; case 614: #line 4742 "gram.y" { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[(6) - (7)].node); ctas->into = (yyvsp[(4) - (7)].into); ctas->objtype = OBJECT_TABLE; ctas->is_select_into = false; ctas->if_not_exists = false; /* cram additional flags into the IntoClause */ (yyvsp[(4) - (7)].into)->rel->relpersistence = (yyvsp[(2) - (7)].ival); (yyvsp[(4) - (7)].into)->skipData = !((yyvsp[(7) - (7)].boolean)); (yyval.node) = (Node *) ctas; ;} break; case 615: #line 4756 "gram.y" { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[(9) - (10)].node); ctas->into = (yyvsp[(7) - (10)].into); ctas->objtype = OBJECT_TABLE; ctas->is_select_into = false; ctas->if_not_exists = true; /* cram additional flags into the IntoClause */ (yyvsp[(7) - (10)].into)->rel->relpersistence = (yyvsp[(2) - (10)].ival); (yyvsp[(7) - (10)].into)->skipData = !((yyvsp[(10) - (10)].boolean)); (yyval.node) = (Node *) ctas; ;} break; case 616: #line 4774 "gram.y" { (yyval.into) = makeNode(IntoClause); (yyval.into)->rel = (yyvsp[(1) - (6)].range); (yyval.into)->colNames = (yyvsp[(2) - (6)].list); (yyval.into)->accessMethod = (yyvsp[(3) - (6)].str); (yyval.into)->options = (yyvsp[(4) - (6)].list); (yyval.into)->onCommit = (yyvsp[(5) - (6)].oncommit); (yyval.into)->tableSpaceName = (yyvsp[(6) - (6)].str); (yyval.into)->viewQuery = NULL; (yyval.into)->skipData = false; /* might get changed later */ ;} break; case 617: #line 4788 "gram.y" { (yyval.boolean) = true; ;} break; case 618: #line 4789 "gram.y" { (yyval.boolean) = false; ;} break; case 619: #line 4790 "gram.y" { (yyval.boolean) = true; ;} break; case 620: #line 4803 "gram.y" { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[(7) - (8)].node); ctas->into = (yyvsp[(5) - (8)].into); ctas->objtype = OBJECT_MATVIEW; ctas->is_select_into = false; ctas->if_not_exists = false; /* cram additional flags into the IntoClause */ (yyvsp[(5) - (8)].into)->rel->relpersistence = (yyvsp[(2) - (8)].ival); (yyvsp[(5) - (8)].into)->skipData = !((yyvsp[(8) - (8)].boolean)); (yyval.node) = (Node *) ctas; ;} break; case 621: #line 4817 "gram.y" { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[(10) - (11)].node); ctas->into = (yyvsp[(8) - (11)].into); ctas->objtype = OBJECT_MATVIEW; ctas->is_select_into = false; ctas->if_not_exists = true; /* cram additional flags into the IntoClause */ (yyvsp[(8) - (11)].into)->rel->relpersistence = (yyvsp[(2) - (11)].ival); (yyvsp[(8) - (11)].into)->skipData = !((yyvsp[(11) - (11)].boolean)); (yyval.node) = (Node *) ctas; ;} break; case 622: #line 4834 "gram.y" { (yyval.into) = makeNode(IntoClause); (yyval.into)->rel = (yyvsp[(1) - (5)].range); (yyval.into)->colNames = (yyvsp[(2) - (5)].list); (yyval.into)->accessMethod = (yyvsp[(3) - (5)].str); (yyval.into)->options = (yyvsp[(4) - (5)].list); (yyval.into)->onCommit = ONCOMMIT_NOOP; (yyval.into)->tableSpaceName = (yyvsp[(5) - (5)].str); (yyval.into)->viewQuery = NULL; /* filled at analysis time */ (yyval.into)->skipData = false; /* might get changed later */ ;} break; case 623: #line 4847 "gram.y" { (yyval.ival) = RELPERSISTENCE_UNLOGGED; ;} break; case 624: #line 4848 "gram.y" { (yyval.ival) = RELPERSISTENCE_PERMANENT; ;} break; case 625: #line 4861 "gram.y" { RefreshMatViewStmt *n = makeNode(RefreshMatViewStmt); n->concurrent = (yyvsp[(4) - (6)].boolean); n->relation = (yyvsp[(5) - (6)].range); n->skipData = !((yyvsp[(6) - (6)].boolean)); (yyval.node) = (Node *) n; ;} break; case 626: #line 4882 "gram.y" { CreateSeqStmt *n = makeNode(CreateSeqStmt); (yyvsp[(4) - (5)].range)->relpersistence = (yyvsp[(2) - (5)].ival); n->sequence = (yyvsp[(4) - (5)].range); n->options = (yyvsp[(5) - (5)].list); n->ownerId = InvalidOid; n->if_not_exists = false; (yyval.node) = (Node *) n; ;} break; case 627: #line 4893 "gram.y" { CreateSeqStmt *n = makeNode(CreateSeqStmt); (yyvsp[(7) - (8)].range)->relpersistence = (yyvsp[(2) - (8)].ival); n->sequence = (yyvsp[(7) - (8)].range); n->options = (yyvsp[(8) - (8)].list); n->ownerId = InvalidOid; n->if_not_exists = true; (yyval.node) = (Node *) n; ;} break; case 628: #line 4907 "gram.y" { AlterSeqStmt *n = makeNode(AlterSeqStmt); n->sequence = (yyvsp[(3) - (4)].range); n->options = (yyvsp[(4) - (4)].list); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 629: #line 4916 "gram.y" { AlterSeqStmt *n = makeNode(AlterSeqStmt); n->sequence = (yyvsp[(5) - (6)].range); n->options = (yyvsp[(6) - (6)].list); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 630: #line 4927 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 631: #line 4928 "gram.y" { (yyval.list) = NIL; ;} break; case 632: #line 4931 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 633: #line 4932 "gram.y" { (yyval.list) = NIL; ;} break; case 634: #line 4935 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 635: #line 4936 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 636: #line 4940 "gram.y" { (yyval.defelt) = makeDefElem("as", (Node *) (yyvsp[(2) - (2)].typnam), (yylsp[(1) - (2)])); ;} break; case 637: #line 4944 "gram.y" { (yyval.defelt) = makeDefElem("cache", (Node *) (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 638: #line 4948 "gram.y" { (yyval.defelt) = makeDefElem("cycle", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); ;} break; case 639: #line 4952 "gram.y" { (yyval.defelt) = makeDefElem("cycle", (Node *) makeBoolean(false), (yylsp[(1) - (2)])); ;} break; case 640: #line 4956 "gram.y" { (yyval.defelt) = makeDefElem("increment", (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 641: #line 4960 "gram.y" { (yyval.defelt) = makeDefElem("logged", NULL, (yylsp[(1) - (1)])); ;} break; case 642: #line 4964 "gram.y" { (yyval.defelt) = makeDefElem("maxvalue", (Node *) (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 643: #line 4968 "gram.y" { (yyval.defelt) = makeDefElem("minvalue", (Node *) (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 644: #line 4972 "gram.y" { (yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[(1) - (2)])); ;} break; case 645: #line 4976 "gram.y" { (yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[(1) - (2)])); ;} break; case 646: #line 4980 "gram.y" { (yyval.defelt) = makeDefElem("owned_by", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 647: #line 4984 "gram.y" { (yyval.defelt) = makeDefElem("sequence_name", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 648: #line 4988 "gram.y" { (yyval.defelt) = makeDefElem("start", (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 649: #line 4992 "gram.y" { (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)])); ;} break; case 650: #line 4996 "gram.y" { (yyval.defelt) = makeDefElem("restart", (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 651: #line 5000 "gram.y" { (yyval.defelt) = makeDefElem("unlogged", NULL, (yylsp[(1) - (1)])); ;} break; case 654: #line 5010 "gram.y" { (yyval.node) = (Node *) makeFloat((yyvsp[(1) - (1)].str)); ;} break; case 655: #line 5011 "gram.y" { (yyval.node) = (Node *) makeFloat((yyvsp[(2) - (2)].str)); ;} break; case 656: #line 5013 "gram.y" { Float *f = makeFloat((yyvsp[(2) - (2)].str)); doNegateFloat(f); (yyval.node) = (Node *) f; ;} break; case 657: #line 5019 "gram.y" { (yyval.node) = (Node *) makeInteger((yyvsp[(1) - (1)].ival)); ;} break; case 658: #line 5022 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 659: #line 5023 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 660: #line 5036 "gram.y" { /* * We now interpret parameterless CREATE LANGUAGE as * CREATE EXTENSION. "OR REPLACE" is silently translated * to "IF NOT EXISTS", which isn't quite the same, but * seems more useful than throwing an error. We just * ignore TRUSTED, as the previous code would have too. */ CreateExtensionStmt *n = makeNode(CreateExtensionStmt); n->if_not_exists = (yyvsp[(2) - (6)].boolean); n->extname = (yyvsp[(6) - (6)].str); n->options = NIL; (yyval.node) = (Node *) n; ;} break; case 661: #line 5053 "gram.y" { CreatePLangStmt *n = makeNode(CreatePLangStmt); n->replace = (yyvsp[(2) - (10)].boolean); n->plname = (yyvsp[(6) - (10)].str); n->plhandler = (yyvsp[(8) - (10)].list); n->plinline = (yyvsp[(9) - (10)].list); n->plvalidator = (yyvsp[(10) - (10)].list); n->pltrusted = (yyvsp[(3) - (10)].boolean); (yyval.node) = (Node *) n; ;} break; case 662: #line 5067 "gram.y" { (yyval.boolean) = true; ;} break; case 663: #line 5068 "gram.y" { (yyval.boolean) = false; ;} break; case 664: #line 5076 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 665: #line 5077 "gram.y" { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;} break; case 666: #line 5081 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 667: #line 5082 "gram.y" { (yyval.list) = NIL; ;} break; case 668: #line 5086 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 669: #line 5087 "gram.y" { (yyval.list) = NIL; ;} break; case 670: #line 5091 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 671: #line 5092 "gram.y" { (yyval.list) = NIL; ;} break; case 674: #line 5108 "gram.y" { CreateTableSpaceStmt *n = makeNode(CreateTableSpaceStmt); n->tablespacename = (yyvsp[(3) - (7)].str); n->owner = (yyvsp[(4) - (7)].rolespec); n->location = (yyvsp[(6) - (7)].str); n->options = (yyvsp[(7) - (7)].list); (yyval.node) = (Node *) n; ;} break; case 675: #line 5119 "gram.y" { (yyval.rolespec) = (yyvsp[(2) - (2)].rolespec); ;} break; case 676: #line 5120 "gram.y" { (yyval.rolespec) = NULL; ;} break; case 677: #line 5134 "gram.y" { DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); n->tablespacename = (yyvsp[(3) - (3)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 678: #line 5142 "gram.y" { DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); n->tablespacename = (yyvsp[(5) - (5)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 679: #line 5160 "gram.y" { CreateExtensionStmt *n = makeNode(CreateExtensionStmt); n->extname = (yyvsp[(3) - (5)].str); n->if_not_exists = false; n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 680: #line 5169 "gram.y" { CreateExtensionStmt *n = makeNode(CreateExtensionStmt); n->extname = (yyvsp[(6) - (8)].str); n->if_not_exists = true; n->options = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *) n; ;} break; case 681: #line 5181 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 682: #line 5183 "gram.y" { (yyval.list) = NIL; ;} break; case 683: #line 5188 "gram.y" { (yyval.defelt) = makeDefElem("schema", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); ;} break; case 684: #line 5192 "gram.y" { (yyval.defelt) = makeDefElem("new_version", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); ;} break; case 685: #line 5196 "gram.y" { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE EXTENSION ... FROM is no longer supported"), parser_errposition((yylsp[(1) - (2)])))); ;} break; case 686: #line 5203 "gram.y" { (yyval.defelt) = makeDefElem("cascade", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); ;} break; case 687: #line 5215 "gram.y" { AlterExtensionStmt *n = makeNode(AlterExtensionStmt); n->extname = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 688: #line 5226 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 689: #line 5228 "gram.y" { (yyval.list) = NIL; ;} break; case 690: #line 5233 "gram.y" { (yyval.defelt) = makeDefElem("new_version", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); ;} break; case 691: #line 5246 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = (yyvsp[(5) - (6)].objtype); n->object = (Node *) makeString((yyvsp[(6) - (6)].str)); (yyval.node) = (Node *) n; ;} break; case 692: #line 5256 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = (yyvsp[(5) - (6)].objtype); n->object = (Node *) (yyvsp[(6) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 693: #line 5266 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[(6) - (6)].objwithargs); (yyval.node) = (Node *) n; ;} break; case 694: #line 5276 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (10)].str); n->action = (yyvsp[(4) - (10)].ival); n->objtype = OBJECT_CAST; n->object = (Node *) list_make2((yyvsp[(7) - (10)].typnam), (yyvsp[(9) - (10)].typnam)); (yyval.node) = (Node *) n; ;} break; case 695: #line 5286 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[(6) - (6)].typnam); (yyval.node) = (Node *) n; ;} break; case 696: #line 5296 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[(6) - (6)].objwithargs); (yyval.node) = (Node *) n; ;} break; case 697: #line 5306 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_OPERATOR; n->object = (Node *) (yyvsp[(6) - (6)].objwithargs); (yyval.node) = (Node *) n; ;} break; case 698: #line 5316 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (9)].str); n->action = (yyvsp[(4) - (9)].ival); n->objtype = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[(9) - (9)].str)), (yyvsp[(7) - (9)].list)); (yyval.node) = (Node *) n; ;} break; case 699: #line 5326 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (9)].str); n->action = (yyvsp[(4) - (9)].ival); n->objtype = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[(9) - (9)].str)), (yyvsp[(7) - (9)].list)); (yyval.node) = (Node *) n; ;} break; case 700: #line 5336 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[(6) - (6)].objwithargs); (yyval.node) = (Node *) n; ;} break; case 701: #line 5346 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[(6) - (6)].objwithargs); (yyval.node) = (Node *) n; ;} break; case 702: #line 5356 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (9)].str); n->action = (yyvsp[(4) - (9)].ival); n->objtype = OBJECT_TRANSFORM; n->object = (Node *) list_make2((yyvsp[(7) - (9)].typnam), makeString((yyvsp[(9) - (9)].str))); (yyval.node) = (Node *) n; ;} break; case 703: #line 5366 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_TYPE; n->object = (Node *) (yyvsp[(6) - (6)].typnam); (yyval.node) = (Node *) n; ;} break; case 704: #line 5385 "gram.y" { CreateFdwStmt *n = makeNode(CreateFdwStmt); n->fdwname = (yyvsp[(5) - (7)].str); n->func_options = (yyvsp[(6) - (7)].list); n->options = (yyvsp[(7) - (7)].list); (yyval.node) = (Node *) n; ;} break; case 705: #line 5396 "gram.y" { (yyval.defelt) = makeDefElem("handler", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} break; case 706: #line 5397 "gram.y" { (yyval.defelt) = makeDefElem("handler", NULL, (yylsp[(1) - (2)])); ;} break; case 707: #line 5398 "gram.y" { (yyval.defelt) = makeDefElem("validator", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} break; case 708: #line 5399 "gram.y" { (yyval.defelt) = makeDefElem("validator", NULL, (yylsp[(1) - (2)])); ;} break; case 709: #line 5403 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 710: #line 5404 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 711: #line 5408 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 712: #line 5409 "gram.y" { (yyval.list) = NIL; ;} break; case 713: #line 5420 "gram.y" { AlterFdwStmt *n = makeNode(AlterFdwStmt); n->fdwname = (yyvsp[(5) - (7)].str); n->func_options = (yyvsp[(6) - (7)].list); n->options = (yyvsp[(7) - (7)].list); (yyval.node) = (Node *) n; ;} break; case 714: #line 5429 "gram.y" { AlterFdwStmt *n = makeNode(AlterFdwStmt); n->fdwname = (yyvsp[(5) - (6)].str); n->func_options = (yyvsp[(6) - (6)].list); n->options = NIL; (yyval.node) = (Node *) n; ;} break; case 715: #line 5441 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 716: #line 5442 "gram.y" { (yyval.list) = NIL; ;} break; case 717: #line 5447 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 718: #line 5451 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 719: #line 5458 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 720: #line 5463 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 721: #line 5467 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 722: #line 5474 "gram.y" { (yyval.defelt) = (yyvsp[(1) - (1)].defelt); ;} break; case 723: #line 5478 "gram.y" { (yyval.defelt) = (yyvsp[(2) - (2)].defelt); (yyval.defelt)->defaction = DEFELEM_SET; ;} break; case 724: #line 5483 "gram.y" { (yyval.defelt) = (yyvsp[(2) - (2)].defelt); (yyval.defelt)->defaction = DEFELEM_ADD; ;} break; case 725: #line 5488 "gram.y" { (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[(2) - (2)].str), NULL, DEFELEM_DROP, (yylsp[(2) - (2)])); ;} break; case 726: #line 5495 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 727: #line 5501 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 728: #line 5506 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 729: #line 5518 "gram.y" { CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt); n->servername = (yyvsp[(3) - (10)].str); n->servertype = (yyvsp[(4) - (10)].str); n->version = (yyvsp[(5) - (10)].str); n->fdwname = (yyvsp[(9) - (10)].str); n->options = (yyvsp[(10) - (10)].list); n->if_not_exists = false; (yyval.node) = (Node *) n; ;} break; case 730: #line 5531 "gram.y" { CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt); n->servername = (yyvsp[(6) - (13)].str); n->servertype = (yyvsp[(7) - (13)].str); n->version = (yyvsp[(8) - (13)].str); n->fdwname = (yyvsp[(12) - (13)].str); n->options = (yyvsp[(13) - (13)].list); n->if_not_exists = true; (yyval.node) = (Node *) n; ;} break; case 731: #line 5545 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 732: #line 5546 "gram.y" { (yyval.str) = NULL; ;} break; case 733: #line 5551 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 734: #line 5552 "gram.y" { (yyval.str) = NULL; ;} break; case 735: #line 5556 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 736: #line 5557 "gram.y" { (yyval.str) = NULL; ;} break; case 737: #line 5568 "gram.y" { AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); n->servername = (yyvsp[(3) - (5)].str); n->version = (yyvsp[(4) - (5)].str); n->options = (yyvsp[(5) - (5)].list); n->has_version = true; (yyval.node) = (Node *) n; ;} break; case 738: #line 5578 "gram.y" { AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); n->servername = (yyvsp[(3) - (4)].str); n->version = (yyvsp[(4) - (4)].str); n->has_version = true; (yyval.node) = (Node *) n; ;} break; case 739: #line 5587 "gram.y" { AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); n->servername = (yyvsp[(3) - (4)].str); n->options = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *) n; ;} break; case 740: #line 5607 "gram.y" { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[(4) - (11)].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[(4) - (11)].range); n->base.tableElts = (yyvsp[(6) - (11)].list); n->base.inhRelations = (yyvsp[(8) - (11)].list); n->base.ofTypename = NULL; n->base.constraints = NIL; n->base.options = NIL; n->base.oncommit = ONCOMMIT_NOOP; n->base.tablespacename = NULL; n->base.if_not_exists = false; /* FDW-specific data */ n->servername = (yyvsp[(10) - (11)].str); n->options = (yyvsp[(11) - (11)].list); (yyval.node) = (Node *) n; ;} break; case 741: #line 5628 "gram.y" { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[(7) - (14)].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[(7) - (14)].range); n->base.tableElts = (yyvsp[(9) - (14)].list); n->base.inhRelations = (yyvsp[(11) - (14)].list); n->base.ofTypename = NULL; n->base.constraints = NIL; n->base.options = NIL; n->base.oncommit = ONCOMMIT_NOOP; n->base.tablespacename = NULL; n->base.if_not_exists = true; /* FDW-specific data */ n->servername = (yyvsp[(13) - (14)].str); n->options = (yyvsp[(14) - (14)].list); (yyval.node) = (Node *) n; ;} break; case 742: #line 5649 "gram.y" { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[(4) - (12)].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[(4) - (12)].range); n->base.inhRelations = list_make1((yyvsp[(7) - (12)].range)); n->base.tableElts = (yyvsp[(8) - (12)].list); n->base.partbound = (yyvsp[(9) - (12)].partboundspec); n->base.ofTypename = NULL; n->base.constraints = NIL; n->base.options = NIL; n->base.oncommit = ONCOMMIT_NOOP; n->base.tablespacename = NULL; n->base.if_not_exists = false; /* FDW-specific data */ n->servername = (yyvsp[(11) - (12)].str); n->options = (yyvsp[(12) - (12)].list); (yyval.node) = (Node *) n; ;} break; case 743: #line 5671 "gram.y" { CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); (yyvsp[(7) - (15)].range)->relpersistence = RELPERSISTENCE_PERMANENT; n->base.relation = (yyvsp[(7) - (15)].range); n->base.inhRelations = list_make1((yyvsp[(10) - (15)].range)); n->base.tableElts = (yyvsp[(11) - (15)].list); n->base.partbound = (yyvsp[(12) - (15)].partboundspec); n->base.ofTypename = NULL; n->base.constraints = NIL; n->base.options = NIL; n->base.oncommit = ONCOMMIT_NOOP; n->base.tablespacename = NULL; n->base.if_not_exists = true; /* FDW-specific data */ n->servername = (yyvsp[(14) - (15)].str); n->options = (yyvsp[(15) - (15)].list); (yyval.node) = (Node *) n; ;} break; case 744: #line 5704 "gram.y" { ImportForeignSchemaStmt *n = makeNode(ImportForeignSchemaStmt); n->server_name = (yyvsp[(8) - (11)].str); n->remote_schema = (yyvsp[(4) - (11)].str); n->local_schema = (yyvsp[(10) - (11)].str); n->list_type = (yyvsp[(5) - (11)].importqual)->type; n->table_list = (yyvsp[(5) - (11)].importqual)->table_names; n->options = (yyvsp[(11) - (11)].list); (yyval.node) = (Node *) n; ;} break; case 745: #line 5718 "gram.y" { (yyval.ival) = FDW_IMPORT_SCHEMA_LIMIT_TO; ;} break; case 746: #line 5719 "gram.y" { (yyval.ival) = FDW_IMPORT_SCHEMA_EXCEPT; ;} break; case 747: #line 5724 "gram.y" { ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual)); n->type = (yyvsp[(1) - (4)].ival); n->table_names = (yyvsp[(3) - (4)].list); (yyval.importqual) = n; ;} break; case 748: #line 5732 "gram.y" { ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual)); n->type = FDW_IMPORT_SCHEMA_ALL; n->table_names = NIL; (yyval.importqual) = n; ;} break; case 749: #line 5748 "gram.y" { CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt); n->user = (yyvsp[(5) - (8)].rolespec); n->servername = (yyvsp[(7) - (8)].str); n->options = (yyvsp[(8) - (8)].list); n->if_not_exists = false; (yyval.node) = (Node *) n; ;} break; case 750: #line 5758 "gram.y" { CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt); n->user = (yyvsp[(8) - (11)].rolespec); n->servername = (yyvsp[(10) - (11)].str); n->options = (yyvsp[(11) - (11)].list); n->if_not_exists = true; (yyval.node) = (Node *) n; ;} break; case 751: #line 5770 "gram.y" { (yyval.rolespec) = (yyvsp[(1) - (1)].rolespec); ;} break; case 752: #line 5771 "gram.y" { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[(1) - (1)])); ;} break; case 753: #line 5784 "gram.y" { DropUserMappingStmt *n = makeNode(DropUserMappingStmt); n->user = (yyvsp[(5) - (7)].rolespec); n->servername = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 754: #line 5793 "gram.y" { DropUserMappingStmt *n = makeNode(DropUserMappingStmt); n->user = (yyvsp[(7) - (9)].rolespec); n->servername = (yyvsp[(9) - (9)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 755: #line 5811 "gram.y" { AlterUserMappingStmt *n = makeNode(AlterUserMappingStmt); n->user = (yyvsp[(5) - (8)].rolespec); n->servername = (yyvsp[(7) - (8)].str); n->options = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *) n; ;} break; case 756: #line 5838 "gram.y" { CreatePolicyStmt *n = makeNode(CreatePolicyStmt); n->policy_name = (yyvsp[(3) - (10)].str); n->table = (yyvsp[(5) - (10)].range); n->permissive = (yyvsp[(6) - (10)].boolean); n->cmd_name = (yyvsp[(7) - (10)].str); n->roles = (yyvsp[(8) - (10)].list); n->qual = (yyvsp[(9) - (10)].node); n->with_check = (yyvsp[(10) - (10)].node); (yyval.node) = (Node *) n; ;} break; case 757: #line 5855 "gram.y" { AlterPolicyStmt *n = makeNode(AlterPolicyStmt); n->policy_name = (yyvsp[(3) - (8)].str); n->table = (yyvsp[(5) - (8)].range); n->roles = (yyvsp[(6) - (8)].list); n->qual = (yyvsp[(7) - (8)].node); n->with_check = (yyvsp[(8) - (8)].node); (yyval.node) = (Node *) n; ;} break; case 758: #line 5868 "gram.y" { (yyval.node) = (yyvsp[(3) - (4)].node); ;} break; case 759: #line 5869 "gram.y" { (yyval.node) = NULL; ;} break; case 760: #line 5873 "gram.y" { (yyval.node) = (yyvsp[(4) - (5)].node); ;} break; case 761: #line 5874 "gram.y" { (yyval.node) = NULL; ;} break; case 762: #line 5878 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 763: #line 5879 "gram.y" { (yyval.list) = list_make1(makeRoleSpec(ROLESPEC_PUBLIC, -1)); ;} break; case 764: #line 5883 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 765: #line 5884 "gram.y" { (yyval.list) = NULL; ;} break; case 766: #line 5889 "gram.y" { if (strcmp((yyvsp[(2) - (2)].str), "permissive") == 0) (yyval.boolean) = true; else if (strcmp((yyvsp[(2) - (2)].str), "restrictive") == 0) (yyval.boolean) = false; else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized row security option \"%s\"", (yyvsp[(2) - (2)].str)), errhint("Only PERMISSIVE or RESTRICTIVE policies are supported currently."), parser_errposition((yylsp[(2) - (2)])))); ;} break; case 767: #line 5902 "gram.y" { (yyval.boolean) = true; ;} break; case 768: #line 5906 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 769: #line 5907 "gram.y" { (yyval.str) = "all"; ;} break; case 770: #line 5911 "gram.y" { (yyval.str) = "all"; ;} break; case 771: #line 5912 "gram.y" { (yyval.str) = "select"; ;} break; case 772: #line 5913 "gram.y" { (yyval.str) = "insert"; ;} break; case 773: #line 5914 "gram.y" { (yyval.str) = "update"; ;} break; case 774: #line 5915 "gram.y" { (yyval.str) = "delete"; ;} break; case 775: #line 5926 "gram.y" { CreateAmStmt *n = makeNode(CreateAmStmt); n->amname = (yyvsp[(4) - (8)].str); n->handler_name = (yyvsp[(8) - (8)].list); n->amtype = (yyvsp[(6) - (8)].chr); (yyval.node) = (Node *) n; ;} break; case 776: #line 5937 "gram.y" { (yyval.chr) = AMTYPE_INDEX; ;} break; case 777: #line 5938 "gram.y" { (yyval.chr) = AMTYPE_TABLE; ;} break; case 778: #line 5952 "gram.y" { CreateTrigStmt *n = makeNode(CreateTrigStmt); n->replace = (yyvsp[(2) - (17)].boolean); n->isconstraint = false; n->trigname = (yyvsp[(4) - (17)].str); n->relation = (yyvsp[(8) - (17)].range); n->funcname = (yyvsp[(14) - (17)].list); n->args = (yyvsp[(16) - (17)].list); n->row = (yyvsp[(10) - (17)].boolean); n->timing = (yyvsp[(5) - (17)].ival); n->events = intVal(linitial((yyvsp[(6) - (17)].list))); n->columns = (List *) lsecond((yyvsp[(6) - (17)].list)); n->whenClause = (yyvsp[(11) - (17)].node); n->transitionRels = (yyvsp[(9) - (17)].list); n->deferrable = false; n->initdeferred = false; n->constrrel = NULL; (yyval.node) = (Node *) n; ;} break; case 779: #line 5976 "gram.y" { CreateTrigStmt *n = makeNode(CreateTrigStmt); n->replace = (yyvsp[(2) - (21)].boolean); if (n->replace) /* not supported, see CreateTrigger */ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE OR REPLACE CONSTRAINT TRIGGER is not supported"))); n->isconstraint = true; n->trigname = (yyvsp[(5) - (21)].str); n->relation = (yyvsp[(9) - (21)].range); n->funcname = (yyvsp[(18) - (21)].list); n->args = (yyvsp[(20) - (21)].list); n->row = true; n->timing = TRIGGER_TYPE_AFTER; n->events = intVal(linitial((yyvsp[(7) - (21)].list))); n->columns = (List *) lsecond((yyvsp[(7) - (21)].list)); n->whenClause = (yyvsp[(15) - (21)].node); n->transitionRels = NIL; processCASbits((yyvsp[(11) - (21)].ival), (yylsp[(11) - (21)]), "TRIGGER", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); n->constrrel = (yyvsp[(10) - (21)].range); (yyval.node) = (Node *) n; ;} break; case 780: #line 6004 "gram.y" { (yyval.ival) = TRIGGER_TYPE_BEFORE; ;} break; case 781: #line 6005 "gram.y" { (yyval.ival) = TRIGGER_TYPE_AFTER; ;} break; case 782: #line 6006 "gram.y" { (yyval.ival) = TRIGGER_TYPE_INSTEAD; ;} break; case 783: #line 6011 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 784: #line 6013 "gram.y" { int events1 = intVal(linitial((yyvsp[(1) - (3)].list))); int events2 = intVal(linitial((yyvsp[(3) - (3)].list))); List *columns1 = (List *) lsecond((yyvsp[(1) - (3)].list)); List *columns2 = (List *) lsecond((yyvsp[(3) - (3)].list)); if (events1 & events2) parser_yyerror("duplicate trigger events specified"); /* * concat'ing the columns lists loses information about * which columns went with which event, but so long as * only UPDATE carries columns and we disallow multiple * UPDATE items, it doesn't matter. Command execution * should just ignore the columns for non-UPDATE events. */ (yyval.list) = list_make2(makeInteger(events1 | events2), list_concat(columns1, columns2)); ;} break; case 785: #line 6035 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_INSERT), NIL); ;} break; case 786: #line 6037 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_DELETE), NIL); ;} break; case 787: #line 6039 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), NIL); ;} break; case 788: #line 6041 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), (yyvsp[(3) - (3)].list)); ;} break; case 789: #line 6043 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_TRUNCATE), NIL); ;} break; case 790: #line 6047 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 791: #line 6048 "gram.y" { (yyval.list) = NIL; ;} break; case 792: #line 6052 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 793: #line 6053 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 794: #line 6058 "gram.y" { TriggerTransition *n = makeNode(TriggerTransition); n->name = (yyvsp[(4) - (4)].str); n->isNew = (yyvsp[(1) - (4)].boolean); n->isTable = (yyvsp[(2) - (4)].boolean); (yyval.node) = (Node *) n; ;} break; case 795: #line 6069 "gram.y" { (yyval.boolean) = true; ;} break; case 796: #line 6070 "gram.y" { (yyval.boolean) = false; ;} break; case 797: #line 6074 "gram.y" { (yyval.boolean) = true; ;} break; case 798: #line 6083 "gram.y" { (yyval.boolean) = false; ;} break; case 799: #line 6087 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 800: #line 6092 "gram.y" { (yyval.boolean) = (yyvsp[(3) - (3)].boolean); ;} break; case 801: #line 6096 "gram.y" { /* * If ROW/STATEMENT not specified, default to * STATEMENT, per SQL */ (yyval.boolean) = false; ;} break; case 804: #line 6111 "gram.y" { (yyval.boolean) = true; ;} break; case 805: #line 6112 "gram.y" { (yyval.boolean) = false; ;} break; case 806: #line 6116 "gram.y" { (yyval.node) = (yyvsp[(3) - (4)].node); ;} break; case 807: #line 6117 "gram.y" { (yyval.node) = NULL; ;} break; case 810: #line 6126 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 811: #line 6127 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 812: #line 6128 "gram.y" { (yyval.list) = NIL; ;} break; case 813: #line 6133 "gram.y" { (yyval.node) = (Node *) makeString(psprintf("%d", (yyvsp[(1) - (1)].ival))); ;} break; case 814: #line 6136 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 815: #line 6137 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 816: #line 6138 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 817: #line 6142 "gram.y" { (yyval.range) = (yyvsp[(2) - (2)].range); ;} break; case 818: #line 6143 "gram.y" { (yyval.range) = NULL; ;} break; case 819: #line 6148 "gram.y" { (yyval.ival) = 0; ;} break; case 820: #line 6150 "gram.y" { /* * We must complain about conflicting options. * We could, but choose not to, complain about redundant * options (ie, where $2's bit is already set in $1). */ int newspec = (yyvsp[(1) - (2)].ival) | (yyvsp[(2) - (2)].ival); /* special message for this case */ if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"), parser_errposition((yylsp[(2) - (2)])))); /* generic message for other conflicts */ if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) || (newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting constraint properties"), parser_errposition((yylsp[(2) - (2)])))); (yyval.ival) = newspec; ;} break; case 821: #line 6176 "gram.y" { (yyval.ival) = CAS_NOT_DEFERRABLE; ;} break; case 822: #line 6177 "gram.y" { (yyval.ival) = CAS_DEFERRABLE; ;} break; case 823: #line 6178 "gram.y" { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; ;} break; case 824: #line 6179 "gram.y" { (yyval.ival) = CAS_INITIALLY_DEFERRED; ;} break; case 825: #line 6180 "gram.y" { (yyval.ival) = CAS_NOT_VALID; ;} break; case 826: #line 6181 "gram.y" { (yyval.ival) = CAS_NO_INHERIT; ;} break; case 827: #line 6196 "gram.y" { CreateEventTrigStmt *n = makeNode(CreateEventTrigStmt); n->trigname = (yyvsp[(4) - (11)].str); n->eventname = (yyvsp[(6) - (11)].str); n->whenclause = NULL; n->funcname = (yyvsp[(9) - (11)].list); (yyval.node) = (Node *) n; ;} break; case 828: #line 6208 "gram.y" { CreateEventTrigStmt *n = makeNode(CreateEventTrigStmt); n->trigname = (yyvsp[(4) - (13)].str); n->eventname = (yyvsp[(6) - (13)].str); n->whenclause = (yyvsp[(8) - (13)].list); n->funcname = (yyvsp[(11) - (13)].list); (yyval.node) = (Node *) n; ;} break; case 829: #line 6221 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 830: #line 6223 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 831: #line 6228 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (5)].str), (Node *) (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); ;} break; case 832: #line 6233 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 833: #line 6235 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; case 834: #line 6240 "gram.y" { AlterEventTrigStmt *n = makeNode(AlterEventTrigStmt); n->trigname = (yyvsp[(4) - (5)].str); n->tgenabled = (yyvsp[(5) - (5)].chr); (yyval.node) = (Node *) n; ;} break; case 835: #line 6250 "gram.y" { (yyval.chr) = TRIGGER_FIRES_ON_ORIGIN; ;} break; case 836: #line 6251 "gram.y" { (yyval.chr) = TRIGGER_FIRES_ON_REPLICA; ;} break; case 837: #line 6252 "gram.y" { (yyval.chr) = TRIGGER_FIRES_ALWAYS; ;} break; case 838: #line 6253 "gram.y" { (yyval.chr) = TRIGGER_DISABLED; ;} break; case 839: #line 6265 "gram.y" { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE ASSERTION is not yet implemented"))); (yyval.node) = NULL; ;} break; case 840: #line 6284 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_AGGREGATE; n->oldstyle = false; n->replace = (yyvsp[(2) - (6)].boolean); n->defnames = (yyvsp[(4) - (6)].list); n->args = (yyvsp[(5) - (6)].list); n->definition = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 841: #line 6296 "gram.y" { /* old-style (pre-8.2) syntax for CREATE AGGREGATE */ DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_AGGREGATE; n->oldstyle = true; n->replace = (yyvsp[(2) - (5)].boolean); n->defnames = (yyvsp[(4) - (5)].list); n->args = NIL; n->definition = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 842: #line 6309 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_OPERATOR; n->oldstyle = false; n->defnames = (yyvsp[(3) - (4)].list); n->args = NIL; n->definition = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *) n; ;} break; case 843: #line 6320 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TYPE; n->oldstyle = false; n->defnames = (yyvsp[(3) - (4)].list); n->args = NIL; n->definition = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *) n; ;} break; case 844: #line 6331 "gram.y" { /* Shell type (identified by lack of definition) */ DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TYPE; n->oldstyle = false; n->defnames = (yyvsp[(3) - (3)].list); n->args = NIL; n->definition = NIL; (yyval.node) = (Node *) n; ;} break; case 845: #line 6343 "gram.y" { CompositeTypeStmt *n = makeNode(CompositeTypeStmt); /* can't use qualified_name, sigh */ n->typevar = makeRangeVarFromAnyName((yyvsp[(3) - (7)].list), (yylsp[(3) - (7)]), yyscanner); n->coldeflist = (yyvsp[(6) - (7)].list); (yyval.node) = (Node *) n; ;} break; case 846: #line 6352 "gram.y" { CreateEnumStmt *n = makeNode(CreateEnumStmt); n->typeName = (yyvsp[(3) - (8)].list); n->vals = (yyvsp[(7) - (8)].list); (yyval.node) = (Node *) n; ;} break; case 847: #line 6360 "gram.y" { CreateRangeStmt *n = makeNode(CreateRangeStmt); n->typeName = (yyvsp[(3) - (6)].list); n->params = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 848: #line 6368 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSPARSER; n->args = NIL; n->defnames = (yyvsp[(5) - (6)].list); n->definition = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 849: #line 6378 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSDICTIONARY; n->args = NIL; n->defnames = (yyvsp[(5) - (6)].list); n->definition = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 850: #line 6388 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSTEMPLATE; n->args = NIL; n->defnames = (yyvsp[(5) - (6)].list); n->definition = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 851: #line 6398 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_TSCONFIGURATION; n->args = NIL; n->defnames = (yyvsp[(5) - (6)].list); n->definition = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 852: #line 6408 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; n->defnames = (yyvsp[(3) - (4)].list); n->definition = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *) n; ;} break; case 853: #line 6418 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; n->defnames = (yyvsp[(6) - (7)].list); n->definition = (yyvsp[(7) - (7)].list); n->if_not_exists = true; (yyval.node) = (Node *) n; ;} break; case 854: #line 6429 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; n->defnames = (yyvsp[(3) - (5)].list); n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[(5) - (5)].list), (yylsp[(5) - (5)]))); (yyval.node) = (Node *) n; ;} break; case 855: #line 6439 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_COLLATION; n->args = NIL; n->defnames = (yyvsp[(6) - (8)].list); n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[(8) - (8)].list), (yylsp[(8) - (8)]))); n->if_not_exists = true; (yyval.node) = (Node *) n; ;} break; case 856: #line 6451 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 857: #line 6454 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 858: #line 6455 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 859: #line 6459 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 860: #line 6463 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)])); ;} break; case 861: #line 6469 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].typnam); ;} break; case 862: #line 6470 "gram.y" { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;} break; case 863: #line 6471 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].list); ;} break; case 864: #line 6472 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].node); ;} break; case 865: #line 6473 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 866: #line 6474 "gram.y" { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;} break; case 867: #line 6477 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 868: #line 6480 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 869: #line 6481 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 870: #line 6490 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 871: #line 6496 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 872: #line 6497 "gram.y" { (yyval.list) = NIL; ;} break; case 873: #line 6501 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 874: #line 6503 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; case 875: #line 6514 "gram.y" { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[(3) - (7)].list); n->oldVal = NULL; n->newVal = (yyvsp[(7) - (7)].str); n->newValNeighbor = NULL; n->newValIsAfter = true; n->skipIfNewValExists = (yyvsp[(6) - (7)].boolean); (yyval.node) = (Node *) n; ;} break; case 876: #line 6526 "gram.y" { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[(3) - (9)].list); n->oldVal = NULL; n->newVal = (yyvsp[(7) - (9)].str); n->newValNeighbor = (yyvsp[(9) - (9)].str); n->newValIsAfter = false; n->skipIfNewValExists = (yyvsp[(6) - (9)].boolean); (yyval.node) = (Node *) n; ;} break; case 877: #line 6538 "gram.y" { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[(3) - (9)].list); n->oldVal = NULL; n->newVal = (yyvsp[(7) - (9)].str); n->newValNeighbor = (yyvsp[(9) - (9)].str); n->newValIsAfter = true; n->skipIfNewValExists = (yyvsp[(6) - (9)].boolean); (yyval.node) = (Node *) n; ;} break; case 878: #line 6550 "gram.y" { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[(3) - (8)].list); n->oldVal = (yyvsp[(6) - (8)].str); n->newVal = (yyvsp[(8) - (8)].str); n->newValNeighbor = NULL; n->newValIsAfter = false; n->skipIfNewValExists = false; (yyval.node) = (Node *) n; ;} break; case 879: #line 6562 "gram.y" { /* * The following problems must be solved before this can be * implemented: * * - There must be no instance of the target value in * any table. * * - The value must not appear in any catalog metadata, * such as stored view expressions or column defaults. * * - The value must not appear in any non-leaf page of a * btree (and similar issues with other index types). * This is problematic because a value could persist * there long after it's gone from user-visible data. * * - Concurrent sessions must not be able to insert the * value while the preceding conditions are being checked. * * - Possibly more... */ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("dropping an enum value is not implemented"), parser_errposition((yylsp[(4) - (6)])))); ;} break; case 880: #line 6590 "gram.y" { (yyval.boolean) = true; ;} break; case 881: #line 6591 "gram.y" { (yyval.boolean) = false; ;} break; case 882: #line 6609 "gram.y" { CreateOpClassStmt *n = makeNode(CreateOpClassStmt); n->opclassname = (yyvsp[(4) - (13)].list); n->isDefault = (yyvsp[(5) - (13)].boolean); n->datatype = (yyvsp[(8) - (13)].typnam); n->amname = (yyvsp[(10) - (13)].str); n->opfamilyname = (yyvsp[(11) - (13)].list); n->items = (yyvsp[(13) - (13)].list); (yyval.node) = (Node *) n; ;} break; case 883: #line 6623 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 884: #line 6624 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 885: #line 6629 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); ObjectWithArgs *owa = makeNode(ObjectWithArgs); owa->objname = (yyvsp[(3) - (5)].list); owa->objargs = NIL; n->itemtype = OPCLASS_ITEM_OPERATOR; n->name = owa; n->number = (yyvsp[(2) - (5)].ival); n->order_family = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 886: #line 6643 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_OPERATOR; n->name = (yyvsp[(3) - (5)].objwithargs); n->number = (yyvsp[(2) - (5)].ival); n->order_family = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 887: #line 6653 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->name = (yyvsp[(3) - (3)].objwithargs); n->number = (yyvsp[(2) - (3)].ival); (yyval.node) = (Node *) n; ;} break; case 888: #line 6662 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->name = (yyvsp[(6) - (6)].objwithargs); n->number = (yyvsp[(2) - (6)].ival); n->class_args = (yyvsp[(4) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 889: #line 6672 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_STORAGETYPE; n->storedtype = (yyvsp[(2) - (2)].typnam); (yyval.node) = (Node *) n; ;} break; case 890: #line 6681 "gram.y" { (yyval.boolean) = true; ;} break; case 891: #line 6682 "gram.y" { (yyval.boolean) = false; ;} break; case 892: #line 6685 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 893: #line 6686 "gram.y" { (yyval.list) = NIL; ;} break; case 894: #line 6689 "gram.y" { (yyval.list) = NIL; ;} break; case 895: #line 6690 "gram.y" { (yyval.list) = (yyvsp[(4) - (4)].list); ;} break; case 896: #line 6691 "gram.y" { (yyval.list) = NIL; ;} break; case 897: #line 6695 "gram.y" { /* * RECHECK no longer does anything in opclass definitions, * but we still accept it to ease porting of old database * dumps. */ ereport(NOTICE, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("RECHECK is no longer required"), errhint("Update your data type."), parser_errposition((yylsp[(1) - (1)])))); (yyval.boolean) = true; ;} break; case 898: #line 6708 "gram.y" { (yyval.boolean) = false; ;} break; case 899: #line 6714 "gram.y" { CreateOpFamilyStmt *n = makeNode(CreateOpFamilyStmt); n->opfamilyname = (yyvsp[(4) - (6)].list); n->amname = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 900: #line 6725 "gram.y" { AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt); n->opfamilyname = (yyvsp[(4) - (8)].list); n->amname = (yyvsp[(6) - (8)].str); n->isDrop = false; n->items = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *) n; ;} break; case 901: #line 6735 "gram.y" { AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt); n->opfamilyname = (yyvsp[(4) - (8)].list); n->amname = (yyvsp[(6) - (8)].str); n->isDrop = true; n->items = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *) n; ;} break; case 902: #line 6747 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 903: #line 6748 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 904: #line 6753 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_OPERATOR; n->number = (yyvsp[(2) - (5)].ival); n->class_args = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 905: #line 6762 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->number = (yyvsp[(2) - (5)].ival); n->class_args = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 906: #line 6775 "gram.y" { DropStmt *n = makeNode(DropStmt); n->objects = list_make1(lcons(makeString((yyvsp[(6) - (7)].str)), (yyvsp[(4) - (7)].list))); n->removeType = OBJECT_OPCLASS; n->behavior = (yyvsp[(7) - (7)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 907: #line 6786 "gram.y" { DropStmt *n = makeNode(DropStmt); n->objects = list_make1(lcons(makeString((yyvsp[(8) - (9)].str)), (yyvsp[(6) - (9)].list))); n->removeType = OBJECT_OPCLASS; n->behavior = (yyvsp[(9) - (9)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 908: #line 6800 "gram.y" { DropStmt *n = makeNode(DropStmt); n->objects = list_make1(lcons(makeString((yyvsp[(6) - (7)].str)), (yyvsp[(4) - (7)].list))); n->removeType = OBJECT_OPFAMILY; n->behavior = (yyvsp[(7) - (7)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 909: #line 6811 "gram.y" { DropStmt *n = makeNode(DropStmt); n->objects = list_make1(lcons(makeString((yyvsp[(8) - (9)].str)), (yyvsp[(6) - (9)].list))); n->removeType = OBJECT_OPFAMILY; n->behavior = (yyvsp[(9) - (9)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 910: #line 6834 "gram.y" { DropOwnedStmt *n = makeNode(DropOwnedStmt); n->roles = (yyvsp[(4) - (5)].list); n->behavior = (yyvsp[(5) - (5)].dbehavior); (yyval.node) = (Node *) n; ;} break; case 911: #line 6845 "gram.y" { ReassignOwnedStmt *n = makeNode(ReassignOwnedStmt); n->roles = (yyvsp[(4) - (6)].list); n->newrole = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 912: #line 6864 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[(2) - (6)].objtype); n->missing_ok = true; n->objects = (yyvsp[(5) - (6)].list); n->behavior = (yyvsp[(6) - (6)].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 913: #line 6875 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[(2) - (4)].objtype); n->missing_ok = false; n->objects = (yyvsp[(3) - (4)].list); n->behavior = (yyvsp[(4) - (4)].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 914: #line 6886 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[(2) - (6)].objtype); n->missing_ok = true; n->objects = (yyvsp[(5) - (6)].list); n->behavior = (yyvsp[(6) - (6)].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 915: #line 6897 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[(2) - (4)].objtype); n->missing_ok = false; n->objects = (yyvsp[(3) - (4)].list); n->behavior = (yyvsp[(4) - (4)].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 916: #line 6908 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[(2) - (6)].objtype); n->objects = list_make1(lappend((yyvsp[(5) - (6)].list), makeString((yyvsp[(3) - (6)].str)))); n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 917: #line 6919 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[(2) - (8)].objtype); n->objects = list_make1(lappend((yyvsp[(7) - (8)].list), makeString((yyvsp[(5) - (8)].str)))); n->behavior = (yyvsp[(8) - (8)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 918: #line 6930 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TYPE; n->missing_ok = false; n->objects = (yyvsp[(3) - (4)].list); n->behavior = (yyvsp[(4) - (4)].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 919: #line 6941 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TYPE; n->missing_ok = true; n->objects = (yyvsp[(5) - (6)].list); n->behavior = (yyvsp[(6) - (6)].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 920: #line 6952 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_DOMAIN; n->missing_ok = false; n->objects = (yyvsp[(3) - (4)].list); n->behavior = (yyvsp[(4) - (4)].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 921: #line 6963 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_DOMAIN; n->missing_ok = true; n->objects = (yyvsp[(5) - (6)].list); n->behavior = (yyvsp[(6) - (6)].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 922: #line 6974 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_INDEX; n->missing_ok = false; n->objects = (yyvsp[(4) - (5)].list); n->behavior = (yyvsp[(5) - (5)].dbehavior); n->concurrent = true; (yyval.node) = (Node *) n; ;} break; case 923: #line 6985 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_INDEX; n->missing_ok = true; n->objects = (yyvsp[(6) - (7)].list); n->behavior = (yyvsp[(7) - (7)].dbehavior); n->concurrent = true; (yyval.node) = (Node *) n; ;} break; case 924: #line 6999 "gram.y" { (yyval.objtype) = OBJECT_TABLE; ;} break; case 925: #line 7000 "gram.y" { (yyval.objtype) = OBJECT_SEQUENCE; ;} break; case 926: #line 7001 "gram.y" { (yyval.objtype) = OBJECT_VIEW; ;} break; case 927: #line 7002 "gram.y" { (yyval.objtype) = OBJECT_MATVIEW; ;} break; case 928: #line 7003 "gram.y" { (yyval.objtype) = OBJECT_INDEX; ;} break; case 929: #line 7004 "gram.y" { (yyval.objtype) = OBJECT_FOREIGN_TABLE; ;} break; case 930: #line 7005 "gram.y" { (yyval.objtype) = OBJECT_COLLATION; ;} break; case 931: #line 7006 "gram.y" { (yyval.objtype) = OBJECT_CONVERSION; ;} break; case 932: #line 7007 "gram.y" { (yyval.objtype) = OBJECT_STATISTIC_EXT; ;} break; case 933: #line 7008 "gram.y" { (yyval.objtype) = OBJECT_TSPARSER; ;} break; case 934: #line 7009 "gram.y" { (yyval.objtype) = OBJECT_TSDICTIONARY; ;} break; case 935: #line 7010 "gram.y" { (yyval.objtype) = OBJECT_TSTEMPLATE; ;} break; case 936: #line 7011 "gram.y" { (yyval.objtype) = OBJECT_TSCONFIGURATION; ;} break; case 937: #line 7021 "gram.y" { (yyval.objtype) = (yyvsp[(1) - (1)].objtype); ;} break; case 938: #line 7022 "gram.y" { (yyval.objtype) = OBJECT_DATABASE; ;} break; case 939: #line 7023 "gram.y" { (yyval.objtype) = OBJECT_ROLE; ;} break; case 940: #line 7024 "gram.y" { (yyval.objtype) = OBJECT_SUBSCRIPTION; ;} break; case 941: #line 7025 "gram.y" { (yyval.objtype) = OBJECT_TABLESPACE; ;} break; case 942: #line 7029 "gram.y" { (yyval.objtype) = OBJECT_ACCESS_METHOD; ;} break; case 943: #line 7030 "gram.y" { (yyval.objtype) = OBJECT_EVENT_TRIGGER; ;} break; case 944: #line 7031 "gram.y" { (yyval.objtype) = OBJECT_EXTENSION; ;} break; case 945: #line 7032 "gram.y" { (yyval.objtype) = OBJECT_FDW; ;} break; case 946: #line 7033 "gram.y" { (yyval.objtype) = OBJECT_LANGUAGE; ;} break; case 947: #line 7034 "gram.y" { (yyval.objtype) = OBJECT_PUBLICATION; ;} break; case 948: #line 7035 "gram.y" { (yyval.objtype) = OBJECT_SCHEMA; ;} break; case 949: #line 7036 "gram.y" { (yyval.objtype) = OBJECT_FOREIGN_SERVER; ;} break; case 950: #line 7041 "gram.y" { (yyval.objtype) = OBJECT_POLICY; ;} break; case 951: #line 7042 "gram.y" { (yyval.objtype) = OBJECT_RULE; ;} break; case 952: #line 7043 "gram.y" { (yyval.objtype) = OBJECT_TRIGGER; ;} break; case 953: #line 7047 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} break; case 954: #line 7048 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} break; case 955: #line 7051 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 956: #line 7052 "gram.y" { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;} break; case 957: #line 7056 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;} break; case 958: #line 7058 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; case 959: #line 7062 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;} break; case 960: #line 7063 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;} break; case 961: #line 7075 "gram.y" { TruncateStmt *n = makeNode(TruncateStmt); n->relations = (yyvsp[(3) - (5)].list); n->restart_seqs = (yyvsp[(4) - (5)].boolean); n->behavior = (yyvsp[(5) - (5)].dbehavior); (yyval.node) = (Node *) n; ;} break; case 962: #line 7086 "gram.y" { (yyval.boolean) = false; ;} break; case 963: #line 7087 "gram.y" { (yyval.boolean) = true; ;} break; case 964: #line 7088 "gram.y" { (yyval.boolean) = false; ;} break; case 965: #line 7099 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = (yyvsp[(3) - (6)].objtype); n->object = (Node *) (yyvsp[(4) - (6)].list); n->comment = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 966: #line 7108 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_COLUMN; n->object = (Node *) (yyvsp[(4) - (6)].list); n->comment = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 967: #line 7117 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = (yyvsp[(3) - (6)].objtype); n->object = (Node *) makeString((yyvsp[(4) - (6)].str)); n->comment = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 968: #line 7126 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TYPE; n->object = (Node *) (yyvsp[(4) - (6)].typnam); n->comment = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 969: #line 7135 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[(4) - (6)].typnam); n->comment = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 970: #line 7144 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[(4) - (6)].objwithargs); n->comment = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 971: #line 7153 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[(4) - (6)].objwithargs); n->comment = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 972: #line 7162 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPERATOR; n->object = (Node *) (yyvsp[(4) - (6)].objwithargs); n->comment = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 973: #line 7171 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TABCONSTRAINT; n->object = (Node *) lappend((yyvsp[(6) - (8)].list), makeString((yyvsp[(4) - (8)].str))); n->comment = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 974: #line 7180 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_DOMCONSTRAINT; /* * should use Typename not any_name in the production, but * there's a shift/reduce conflict if we do that, so fix it * up here. */ n->object = (Node *) list_make2(makeTypeNameFromNameList((yyvsp[(7) - (9)].list)), makeString((yyvsp[(4) - (9)].str))); n->comment = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; ;} break; case 975: #line 7194 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = (yyvsp[(3) - (8)].objtype); n->object = (Node *) lappend((yyvsp[(6) - (8)].list), makeString((yyvsp[(4) - (8)].str))); n->comment = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 976: #line 7203 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[(4) - (6)].objwithargs); n->comment = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 977: #line 7212 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[(4) - (6)].objwithargs); n->comment = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 978: #line 7221 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TRANSFORM; n->object = (Node *) list_make2((yyvsp[(5) - (9)].typnam), makeString((yyvsp[(7) - (9)].str))); n->comment = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; ;} break; case 979: #line 7230 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[(7) - (9)].str)), (yyvsp[(5) - (9)].list)); n->comment = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; ;} break; case 980: #line 7239 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[(7) - (9)].str)), (yyvsp[(5) - (9)].list)); n->comment = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; ;} break; case 981: #line 7248 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_LARGEOBJECT; n->object = (Node *) (yyvsp[(5) - (7)].node); n->comment = (yyvsp[(7) - (7)].str); (yyval.node) = (Node *) n; ;} break; case 982: #line 7257 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_CAST; n->object = (Node *) list_make2((yyvsp[(5) - (10)].typnam), (yyvsp[(7) - (10)].typnam)); n->comment = (yyvsp[(10) - (10)].str); (yyval.node) = (Node *) n; ;} break; case 983: #line 7268 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 984: #line 7269 "gram.y" { (yyval.str) = NULL; ;} break; case 985: #line 7285 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (8)].str); n->objtype = (yyvsp[(5) - (8)].objtype); n->object = (Node *) (yyvsp[(6) - (8)].list); n->label = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 986: #line 7296 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (8)].str); n->objtype = OBJECT_COLUMN; n->object = (Node *) (yyvsp[(6) - (8)].list); n->label = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 987: #line 7307 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (8)].str); n->objtype = (yyvsp[(5) - (8)].objtype); n->object = (Node *) makeString((yyvsp[(6) - (8)].str)); n->label = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 988: #line 7318 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (8)].str); n->objtype = OBJECT_TYPE; n->object = (Node *) (yyvsp[(6) - (8)].typnam); n->label = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 989: #line 7329 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (8)].str); n->objtype = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[(6) - (8)].typnam); n->label = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 990: #line 7340 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (8)].str); n->objtype = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[(6) - (8)].objwithargs); n->label = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 991: #line 7351 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (8)].str); n->objtype = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[(6) - (8)].objwithargs); n->label = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 992: #line 7362 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (9)].str); n->objtype = OBJECT_LARGEOBJECT; n->object = (Node *) (yyvsp[(7) - (9)].node); n->label = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; ;} break; case 993: #line 7373 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (8)].str); n->objtype = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[(6) - (8)].objwithargs); n->label = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 994: #line 7384 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (8)].str); n->objtype = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[(6) - (8)].objwithargs); n->label = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 995: #line 7395 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 996: #line 7396 "gram.y" { (yyval.str) = NULL; ;} break; case 997: #line 7399 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 998: #line 7400 "gram.y" { (yyval.str) = NULL; ;} break; case 999: #line 7411 "gram.y" { FetchStmt *n = (FetchStmt *) (yyvsp[(2) - (2)].node); n->ismove = false; (yyval.node) = (Node *) n; ;} break; case 1000: #line 7418 "gram.y" { FetchStmt *n = (FetchStmt *) (yyvsp[(2) - (2)].node); n->ismove = true; (yyval.node) = (Node *) n; ;} break; case 1001: #line 7427 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(1) - (1)].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *) n; ;} break; case 1002: #line 7436 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(2) - (2)].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *) n; ;} break; case 1003: #line 7445 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(3) - (3)].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *) n; ;} break; case 1004: #line 7454 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(3) - (3)].str); n->direction = FETCH_BACKWARD; n->howMany = 1; (yyval.node) = (Node *) n; ;} break; case 1005: #line 7463 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(3) - (3)].str); n->direction = FETCH_ABSOLUTE; n->howMany = 1; (yyval.node) = (Node *) n; ;} break; case 1006: #line 7472 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(3) - (3)].str); n->direction = FETCH_ABSOLUTE; n->howMany = -1; (yyval.node) = (Node *) n; ;} break; case 1007: #line 7481 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(4) - (4)].str); n->direction = FETCH_ABSOLUTE; n->howMany = (yyvsp[(2) - (4)].ival); (yyval.node) = (Node *) n; ;} break; case 1008: #line 7490 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(4) - (4)].str); n->direction = FETCH_RELATIVE; n->howMany = (yyvsp[(2) - (4)].ival); (yyval.node) = (Node *) n; ;} break; case 1009: #line 7499 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(3) - (3)].str); n->direction = FETCH_FORWARD; n->howMany = (yyvsp[(1) - (3)].ival); (yyval.node) = (Node *) n; ;} break; case 1010: #line 7508 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(3) - (3)].str); n->direction = FETCH_FORWARD; n->howMany = FETCH_ALL; (yyval.node) = (Node *) n; ;} break; case 1011: #line 7517 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(3) - (3)].str); n->direction = FETCH_FORWARD; n->howMany = 1; (yyval.node) = (Node *) n; ;} break; case 1012: #line 7526 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(4) - (4)].str); n->direction = FETCH_FORWARD; n->howMany = (yyvsp[(2) - (4)].ival); (yyval.node) = (Node *) n; ;} break; case 1013: #line 7535 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(4) - (4)].str); n->direction = FETCH_FORWARD; n->howMany = FETCH_ALL; (yyval.node) = (Node *) n; ;} break; case 1014: #line 7544 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(3) - (3)].str); n->direction = FETCH_BACKWARD; n->howMany = 1; (yyval.node) = (Node *) n; ;} break; case 1015: #line 7553 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(4) - (4)].str); n->direction = FETCH_BACKWARD; n->howMany = (yyvsp[(2) - (4)].ival); (yyval.node) = (Node *) n; ;} break; case 1016: #line 7562 "gram.y" { FetchStmt *n = makeNode(FetchStmt); n->portalname = (yyvsp[(4) - (4)].str); n->direction = FETCH_BACKWARD; n->howMany = FETCH_ALL; (yyval.node) = (Node *) n; ;} break; case 1021: #line 7589 "gram.y" { GrantStmt *n = makeNode(GrantStmt); n->is_grant = true; n->privileges = (yyvsp[(2) - (8)].list); n->targtype = ((yyvsp[(4) - (8)].privtarget))->targtype; n->objtype = ((yyvsp[(4) - (8)].privtarget))->objtype; n->objects = ((yyvsp[(4) - (8)].privtarget))->objs; n->grantees = (yyvsp[(6) - (8)].list); n->grant_option = (yyvsp[(7) - (8)].boolean); n->grantor = (yyvsp[(8) - (8)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1022: #line 7607 "gram.y" { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = false; n->privileges = (yyvsp[(2) - (8)].list); n->targtype = ((yyvsp[(4) - (8)].privtarget))->targtype; n->objtype = ((yyvsp[(4) - (8)].privtarget))->objtype; n->objects = ((yyvsp[(4) - (8)].privtarget))->objs; n->grantees = (yyvsp[(6) - (8)].list); n->grantor = (yyvsp[(7) - (8)].rolespec); n->behavior = (yyvsp[(8) - (8)].dbehavior); (yyval.node) = (Node *) n; ;} break; case 1023: #line 7623 "gram.y" { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = true; n->privileges = (yyvsp[(5) - (11)].list); n->targtype = ((yyvsp[(7) - (11)].privtarget))->targtype; n->objtype = ((yyvsp[(7) - (11)].privtarget))->objtype; n->objects = ((yyvsp[(7) - (11)].privtarget))->objs; n->grantees = (yyvsp[(9) - (11)].list); n->grantor = (yyvsp[(10) - (11)].rolespec); n->behavior = (yyvsp[(11) - (11)].dbehavior); (yyval.node) = (Node *) n; ;} break; case 1024: #line 7650 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1025: #line 7652 "gram.y" { (yyval.list) = NIL; ;} break; case 1026: #line 7654 "gram.y" { (yyval.list) = NIL; ;} break; case 1027: #line 7656 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = NULL; n->cols = (yyvsp[(3) - (4)].list); (yyval.list) = list_make1(n); ;} break; case 1028: #line 7664 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = NULL; n->cols = (yyvsp[(4) - (5)].list); (yyval.list) = list_make1(n); ;} break; case 1029: #line 7673 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].accesspriv)); ;} break; case 1030: #line 7674 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].accesspriv)); ;} break; case 1031: #line 7678 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = pstrdup((yyvsp[(1) - (2)].keyword)); n->cols = (yyvsp[(2) - (2)].list); (yyval.accesspriv) = n; ;} break; case 1032: #line 7686 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = pstrdup((yyvsp[(1) - (2)].keyword)); n->cols = (yyvsp[(2) - (2)].list); (yyval.accesspriv) = n; ;} break; case 1033: #line 7694 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = pstrdup((yyvsp[(1) - (2)].keyword)); n->cols = (yyvsp[(2) - (2)].list); (yyval.accesspriv) = n; ;} break; case 1034: #line 7702 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = pstrdup("alter system"); n->cols = NIL; (yyval.accesspriv) = n; ;} break; case 1035: #line 7709 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = (yyvsp[(1) - (2)].str); n->cols = (yyvsp[(2) - (2)].list); (yyval.accesspriv) = n; ;} break; case 1036: #line 7720 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 1037: #line 7724 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; case 1038: #line 7731 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1039: #line 7735 "gram.y" { (yyval.str) = psprintf("%s.%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); ;} break; case 1040: #line 7746 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_TABLE; n->objs = (yyvsp[(1) - (1)].list); (yyval.privtarget) = n; ;} break; case 1041: #line 7755 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_TABLE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 1042: #line 7764 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_SEQUENCE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 1043: #line 7773 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_FDW; n->objs = (yyvsp[(4) - (4)].list); (yyval.privtarget) = n; ;} break; case 1044: #line 7782 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_FOREIGN_SERVER; n->objs = (yyvsp[(3) - (3)].list); (yyval.privtarget) = n; ;} break; case 1045: #line 7791 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_FUNCTION; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 1046: #line 7800 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_PROCEDURE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 1047: #line 7809 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_ROUTINE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 1048: #line 7818 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_DATABASE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 1049: #line 7827 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_DOMAIN; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 1050: #line 7836 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_LANGUAGE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 1051: #line 7845 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_LARGEOBJECT; n->objs = (yyvsp[(3) - (3)].list); (yyval.privtarget) = n; ;} break; case 1052: #line 7854 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_PARAMETER_ACL; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 1053: #line 7862 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_SCHEMA; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 1054: #line 7871 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_TABLESPACE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 1055: #line 7880 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = OBJECT_TYPE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 1056: #line 7889 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_TABLE; n->objs = (yyvsp[(5) - (5)].list); (yyval.privtarget) = n; ;} break; case 1057: #line 7898 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_SEQUENCE; n->objs = (yyvsp[(5) - (5)].list); (yyval.privtarget) = n; ;} break; case 1058: #line 7907 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_FUNCTION; n->objs = (yyvsp[(5) - (5)].list); (yyval.privtarget) = n; ;} break; case 1059: #line 7916 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_PROCEDURE; n->objs = (yyvsp[(5) - (5)].list); (yyval.privtarget) = n; ;} break; case 1060: #line 7925 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = OBJECT_ROUTINE; n->objs = (yyvsp[(5) - (5)].list); (yyval.privtarget) = n; ;} break; case 1061: #line 7937 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].rolespec)); ;} break; case 1062: #line 7938 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].rolespec)); ;} break; case 1063: #line 7942 "gram.y" { (yyval.rolespec) = (yyvsp[(1) - (1)].rolespec); ;} break; case 1064: #line 7943 "gram.y" { (yyval.rolespec) = (yyvsp[(2) - (2)].rolespec); ;} break; case 1065: #line 7948 "gram.y" { (yyval.boolean) = true; ;} break; case 1066: #line 7949 "gram.y" { (yyval.boolean) = false; ;} break; case 1067: #line 7960 "gram.y" { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = true; n->granted_roles = (yyvsp[(2) - (5)].list); n->grantee_roles = (yyvsp[(4) - (5)].list); n->opt = NIL; n->grantor = (yyvsp[(5) - (5)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1068: #line 7971 "gram.y" { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = true; n->granted_roles = (yyvsp[(2) - (7)].list); n->grantee_roles = (yyvsp[(4) - (7)].list); n->opt = (yyvsp[(6) - (7)].list); n->grantor = (yyvsp[(7) - (7)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1069: #line 7985 "gram.y" { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = false; n->opt = NIL; n->granted_roles = (yyvsp[(2) - (6)].list); n->grantee_roles = (yyvsp[(4) - (6)].list); n->grantor = (yyvsp[(5) - (6)].rolespec); n->behavior = (yyvsp[(6) - (6)].dbehavior); (yyval.node) = (Node *) n; ;} break; case 1070: #line 7997 "gram.y" { GrantRoleStmt *n = makeNode(GrantRoleStmt); DefElem *opt; opt = makeDefElem(pstrdup((yyvsp[(2) - (9)].str)), (Node *) makeBoolean(false), (yylsp[(2) - (9)])); n->is_grant = false; n->opt = list_make1(opt); n->granted_roles = (yyvsp[(5) - (9)].list); n->grantee_roles = (yyvsp[(7) - (9)].list); n->grantor = (yyvsp[(8) - (9)].rolespec); n->behavior = (yyvsp[(9) - (9)].dbehavior); (yyval.node) = (Node *) n; ;} break; case 1071: #line 8014 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 1072: #line 8015 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1073: #line 8020 "gram.y" { (yyval.defelt) = makeDefElem(pstrdup((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1074: #line 8026 "gram.y" { (yyval.node) = (Node *) makeBoolean(true); ;} break; case 1075: #line 8027 "gram.y" { (yyval.node) = (Node *) makeBoolean(true); ;} break; case 1076: #line 8028 "gram.y" { (yyval.node) = (Node *) makeBoolean(false); ;} break; case 1077: #line 8031 "gram.y" { (yyval.rolespec) = (yyvsp[(3) - (3)].rolespec); ;} break; case 1078: #line 8032 "gram.y" { (yyval.rolespec) = NULL; ;} break; case 1079: #line 8043 "gram.y" { AlterDefaultPrivilegesStmt *n = makeNode(AlterDefaultPrivilegesStmt); n->options = (yyvsp[(4) - (5)].list); n->action = (GrantStmt *) (yyvsp[(5) - (5)].node); (yyval.node) = (Node *) n; ;} break; case 1080: #line 8053 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1081: #line 8054 "gram.y" { (yyval.list) = NIL; ;} break; case 1082: #line 8059 "gram.y" { (yyval.defelt) = makeDefElem("schemas", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 1083: #line 8063 "gram.y" { (yyval.defelt) = makeDefElem("roles", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 1084: #line 8067 "gram.y" { (yyval.defelt) = makeDefElem("roles", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 1085: #line 8079 "gram.y" { GrantStmt *n = makeNode(GrantStmt); n->is_grant = true; n->privileges = (yyvsp[(2) - (7)].list); n->targtype = ACL_TARGET_DEFAULTS; n->objtype = (yyvsp[(4) - (7)].ival); n->objects = NIL; n->grantees = (yyvsp[(6) - (7)].list); n->grant_option = (yyvsp[(7) - (7)].boolean); (yyval.node) = (Node *) n; ;} break; case 1086: #line 8093 "gram.y" { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = false; n->privileges = (yyvsp[(2) - (7)].list); n->targtype = ACL_TARGET_DEFAULTS; n->objtype = (yyvsp[(4) - (7)].ival); n->objects = NIL; n->grantees = (yyvsp[(6) - (7)].list); n->behavior = (yyvsp[(7) - (7)].dbehavior); (yyval.node) = (Node *) n; ;} break; case 1087: #line 8108 "gram.y" { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = true; n->privileges = (yyvsp[(5) - (10)].list); n->targtype = ACL_TARGET_DEFAULTS; n->objtype = (yyvsp[(7) - (10)].ival); n->objects = NIL; n->grantees = (yyvsp[(9) - (10)].list); n->behavior = (yyvsp[(10) - (10)].dbehavior); (yyval.node) = (Node *) n; ;} break; case 1088: #line 8124 "gram.y" { (yyval.ival) = OBJECT_TABLE; ;} break; case 1089: #line 8125 "gram.y" { (yyval.ival) = OBJECT_FUNCTION; ;} break; case 1090: #line 8126 "gram.y" { (yyval.ival) = OBJECT_FUNCTION; ;} break; case 1091: #line 8127 "gram.y" { (yyval.ival) = OBJECT_SEQUENCE; ;} break; case 1092: #line 8128 "gram.y" { (yyval.ival) = OBJECT_TYPE; ;} break; case 1093: #line 8129 "gram.y" { (yyval.ival) = OBJECT_SCHEMA; ;} break; case 1094: #line 8144 "gram.y" { IndexStmt *n = makeNode(IndexStmt); n->unique = (yyvsp[(2) - (16)].boolean); n->concurrent = (yyvsp[(4) - (16)].boolean); n->idxname = (yyvsp[(5) - (16)].str); n->relation = (yyvsp[(7) - (16)].range); n->accessMethod = (yyvsp[(8) - (16)].str); n->indexParams = (yyvsp[(10) - (16)].list); n->indexIncludingParams = (yyvsp[(12) - (16)].list); n->nulls_not_distinct = !(yyvsp[(13) - (16)].boolean); n->options = (yyvsp[(14) - (16)].list); n->tableSpace = (yyvsp[(15) - (16)].str); n->whereClause = (yyvsp[(16) - (16)].node); n->excludeOpNames = NIL; n->idxcomment = NULL; n->indexOid = InvalidOid; n->oldNumber = InvalidRelFileNumber; n->oldCreateSubid = InvalidSubTransactionId; n->oldFirstRelfilelocatorSubid = InvalidSubTransactionId; n->primary = false; n->isconstraint = false; n->deferrable = false; n->initdeferred = false; n->transformed = false; n->if_not_exists = false; n->reset_default_tblspc = false; (yyval.node) = (Node *) n; ;} break; case 1095: #line 8176 "gram.y" { IndexStmt *n = makeNode(IndexStmt); n->unique = (yyvsp[(2) - (19)].boolean); n->concurrent = (yyvsp[(4) - (19)].boolean); n->idxname = (yyvsp[(8) - (19)].str); n->relation = (yyvsp[(10) - (19)].range); n->accessMethod = (yyvsp[(11) - (19)].str); n->indexParams = (yyvsp[(13) - (19)].list); n->indexIncludingParams = (yyvsp[(15) - (19)].list); n->nulls_not_distinct = !(yyvsp[(16) - (19)].boolean); n->options = (yyvsp[(17) - (19)].list); n->tableSpace = (yyvsp[(18) - (19)].str); n->whereClause = (yyvsp[(19) - (19)].node); n->excludeOpNames = NIL; n->idxcomment = NULL; n->indexOid = InvalidOid; n->oldNumber = InvalidRelFileNumber; n->oldCreateSubid = InvalidSubTransactionId; n->oldFirstRelfilelocatorSubid = InvalidSubTransactionId; n->primary = false; n->isconstraint = false; n->deferrable = false; n->initdeferred = false; n->transformed = false; n->if_not_exists = true; n->reset_default_tblspc = false; (yyval.node) = (Node *) n; ;} break; case 1096: #line 8208 "gram.y" { (yyval.boolean) = true; ;} break; case 1097: #line 8209 "gram.y" { (yyval.boolean) = false; ;} break; case 1098: #line 8213 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 1099: #line 8214 "gram.y" { (yyval.str) = DEFAULT_INDEX_TYPE; ;} break; case 1100: #line 8217 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].ielem)); ;} break; case 1101: #line 8218 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].ielem)); ;} break; case 1102: #line 8224 "gram.y" { (yyval.ielem) = makeNode(IndexElem); (yyval.ielem)->name = NULL; (yyval.ielem)->expr = NULL; (yyval.ielem)->indexcolname = NULL; (yyval.ielem)->collation = (yyvsp[(1) - (4)].list); (yyval.ielem)->opclass = (yyvsp[(2) - (4)].list); (yyval.ielem)->opclassopts = NIL; (yyval.ielem)->ordering = (yyvsp[(3) - (4)].ival); (yyval.ielem)->nulls_ordering = (yyvsp[(4) - (4)].ival); ;} break; case 1103: #line 8236 "gram.y" { (yyval.ielem) = makeNode(IndexElem); (yyval.ielem)->name = NULL; (yyval.ielem)->expr = NULL; (yyval.ielem)->indexcolname = NULL; (yyval.ielem)->collation = (yyvsp[(1) - (5)].list); (yyval.ielem)->opclass = (yyvsp[(2) - (5)].list); (yyval.ielem)->opclassopts = (yyvsp[(3) - (5)].list); (yyval.ielem)->ordering = (yyvsp[(4) - (5)].ival); (yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].ival); ;} break; case 1104: #line 8255 "gram.y" { (yyval.ielem) = (yyvsp[(2) - (2)].ielem); (yyval.ielem)->name = (yyvsp[(1) - (2)].str); ;} break; case 1105: #line 8260 "gram.y" { (yyval.ielem) = (yyvsp[(2) - (2)].ielem); (yyval.ielem)->expr = (yyvsp[(1) - (2)].node); ;} break; case 1106: #line 8265 "gram.y" { (yyval.ielem) = (yyvsp[(4) - (4)].ielem); (yyval.ielem)->expr = (yyvsp[(2) - (4)].node); ;} break; case 1107: #line 8271 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 1108: #line 8272 "gram.y" { (yyval.list) = NIL; ;} break; case 1109: #line 8275 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].ielem)); ;} break; case 1110: #line 8276 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].ielem)); ;} break; case 1111: #line 8279 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1112: #line 8280 "gram.y" { (yyval.list) = NIL; ;} break; case 1113: #line 8284 "gram.y" { (yyval.ival) = SORTBY_ASC; ;} break; case 1114: #line 8285 "gram.y" { (yyval.ival) = SORTBY_DESC; ;} break; case 1115: #line 8286 "gram.y" { (yyval.ival) = SORTBY_DEFAULT; ;} break; case 1116: #line 8289 "gram.y" { (yyval.ival) = SORTBY_NULLS_FIRST; ;} break; case 1117: #line 8290 "gram.y" { (yyval.ival) = SORTBY_NULLS_LAST; ;} break; case 1118: #line 8291 "gram.y" { (yyval.ival) = SORTBY_NULLS_DEFAULT; ;} break; case 1119: #line 8309 "gram.y" { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->is_procedure = false; n->replace = (yyvsp[(2) - (9)].boolean); n->funcname = (yyvsp[(4) - (9)].list); n->parameters = (yyvsp[(5) - (9)].list); n->returnType = (yyvsp[(7) - (9)].typnam); n->options = (yyvsp[(8) - (9)].list); n->sql_body = (yyvsp[(9) - (9)].node); (yyval.node) = (Node *) n; ;} break; case 1120: #line 8323 "gram.y" { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->is_procedure = false; n->replace = (yyvsp[(2) - (12)].boolean); n->funcname = (yyvsp[(4) - (12)].list); n->parameters = mergeTableFuncParameters((yyvsp[(5) - (12)].list), (yyvsp[(9) - (12)].list)); n->returnType = TableFuncTypeName((yyvsp[(9) - (12)].list)); n->returnType->location = (yylsp[(7) - (12)]); n->options = (yyvsp[(11) - (12)].list); n->sql_body = (yyvsp[(12) - (12)].node); (yyval.node) = (Node *) n; ;} break; case 1121: #line 8338 "gram.y" { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->is_procedure = false; n->replace = (yyvsp[(2) - (7)].boolean); n->funcname = (yyvsp[(4) - (7)].list); n->parameters = (yyvsp[(5) - (7)].list); n->returnType = NULL; n->options = (yyvsp[(6) - (7)].list); n->sql_body = (yyvsp[(7) - (7)].node); (yyval.node) = (Node *) n; ;} break; case 1122: #line 8352 "gram.y" { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); n->is_procedure = true; n->replace = (yyvsp[(2) - (7)].boolean); n->funcname = (yyvsp[(4) - (7)].list); n->parameters = (yyvsp[(5) - (7)].list); n->returnType = NULL; n->options = (yyvsp[(6) - (7)].list); n->sql_body = (yyvsp[(7) - (7)].node); (yyval.node) = (Node *) n; ;} break; case 1123: #line 8367 "gram.y" { (yyval.boolean) = true; ;} break; case 1124: #line 8368 "gram.y" { (yyval.boolean) = false; ;} break; case 1125: #line 8371 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1126: #line 8372 "gram.y" { (yyval.list) = NIL; ;} break; case 1127: #line 8376 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ;} break; case 1128: #line 8377 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); ;} break; case 1129: #line 8381 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].objwithargs)); ;} break; case 1130: #line 8383 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].objwithargs)); ;} break; case 1131: #line 8388 "gram.y" { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = (yyvsp[(1) - (2)].list); n->objargs = extractArgTypes((yyvsp[(2) - (2)].list)); n->objfuncargs = (yyvsp[(2) - (2)].list); (yyval.objwithargs) = n; ;} break; case 1132: #line 8402 "gram.y" { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = list_make1(makeString(pstrdup((yyvsp[(1) - (1)].keyword)))); n->args_unspecified = true; (yyval.objwithargs) = n; ;} break; case 1133: #line 8410 "gram.y" { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = list_make1(makeString((yyvsp[(1) - (1)].str))); n->args_unspecified = true; (yyval.objwithargs) = n; ;} break; case 1134: #line 8418 "gram.y" { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = check_func_name(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)), yyscanner); n->args_unspecified = true; (yyval.objwithargs) = n; ;} break; case 1135: #line 8433 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1136: #line 8434 "gram.y" { (yyval.list) = NIL; ;} break; case 1137: #line 8438 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ;} break; case 1138: #line 8440 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); ;} break; case 1139: #line 8455 "gram.y" { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[(2) - (3)].str); n->argType = (yyvsp[(3) - (3)].typnam); n->mode = (yyvsp[(1) - (3)].fun_param_mode); n->defexpr = NULL; (yyval.fun_param) = n; ;} break; case 1140: #line 8465 "gram.y" { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[(1) - (3)].str); n->argType = (yyvsp[(3) - (3)].typnam); n->mode = (yyvsp[(2) - (3)].fun_param_mode); n->defexpr = NULL; (yyval.fun_param) = n; ;} break; case 1141: #line 8475 "gram.y" { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[(1) - (2)].str); n->argType = (yyvsp[(2) - (2)].typnam); n->mode = FUNC_PARAM_DEFAULT; n->defexpr = NULL; (yyval.fun_param) = n; ;} break; case 1142: #line 8485 "gram.y" { FunctionParameter *n = makeNode(FunctionParameter); n->name = NULL; n->argType = (yyvsp[(2) - (2)].typnam); n->mode = (yyvsp[(1) - (2)].fun_param_mode); n->defexpr = NULL; (yyval.fun_param) = n; ;} break; case 1143: #line 8495 "gram.y" { FunctionParameter *n = makeNode(FunctionParameter); n->name = NULL; n->argType = (yyvsp[(1) - (1)].typnam); n->mode = FUNC_PARAM_DEFAULT; n->defexpr = NULL; (yyval.fun_param) = n; ;} break; case 1144: #line 8507 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_IN; ;} break; case 1145: #line 8508 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_OUT; ;} break; case 1146: #line 8509 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; ;} break; case 1147: #line 8510 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; ;} break; case 1148: #line 8511 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_VARIADIC; ;} break; case 1150: #line 8522 "gram.y" { /* We can catch over-specified results here if we want to, * but for now better to silently swallow typmod, etc. * - thomas 2000-03-22 */ (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1151: #line 8536 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1152: #line 8538 "gram.y" { (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(1) - (4)].str)), (yyvsp[(2) - (4)].list))); (yyval.typnam)->pct_type = true; (yyval.typnam)->location = (yylsp[(1) - (4)]); ;} break; case 1153: #line 8544 "gram.y" { (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(2) - (5)].str)), (yyvsp[(3) - (5)].list))); (yyval.typnam)->pct_type = true; (yyval.typnam)->setof = true; (yyval.typnam)->location = (yylsp[(2) - (5)]); ;} break; case 1154: #line 8554 "gram.y" { (yyval.fun_param) = (yyvsp[(1) - (1)].fun_param); ;} break; case 1155: #line 8558 "gram.y" { (yyval.fun_param) = (yyvsp[(1) - (3)].fun_param); (yyval.fun_param)->defexpr = (yyvsp[(3) - (3)].node); ;} break; case 1156: #line 8563 "gram.y" { (yyval.fun_param) = (yyvsp[(1) - (3)].fun_param); (yyval.fun_param)->defexpr = (yyvsp[(3) - (3)].node); ;} break; case 1157: #line 8571 "gram.y" { if (!((yyvsp[(1) - (1)].fun_param)->mode == FUNC_PARAM_DEFAULT || (yyvsp[(1) - (1)].fun_param)->mode == FUNC_PARAM_IN || (yyvsp[(1) - (1)].fun_param)->mode == FUNC_PARAM_VARIADIC)) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("aggregates cannot have output arguments"), parser_errposition((yylsp[(1) - (1)])))); (yyval.fun_param) = (yyvsp[(1) - (1)].fun_param); ;} break; case 1158: #line 8613 "gram.y" { (yyval.list) = list_make2(NIL, makeInteger(-1)); ;} break; case 1159: #line 8617 "gram.y" { (yyval.list) = list_make2((yyvsp[(2) - (3)].list), makeInteger(-1)); ;} break; case 1160: #line 8621 "gram.y" { (yyval.list) = list_make2((yyvsp[(4) - (5)].list), makeInteger(0)); ;} break; case 1161: #line 8625 "gram.y" { /* this is the only case requiring consistency checking */ (yyval.list) = makeOrderedSetArgs((yyvsp[(2) - (6)].list), (yyvsp[(5) - (6)].list), yyscanner); ;} break; case 1162: #line 8632 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ;} break; case 1163: #line 8633 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); ;} break; case 1164: #line 8638 "gram.y" { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = (yyvsp[(1) - (2)].list); n->objargs = extractAggrArgTypes((yyvsp[(2) - (2)].list)); n->objfuncargs = (List *) linitial((yyvsp[(2) - (2)].list)); (yyval.objwithargs) = n; ;} break; case 1165: #line 8649 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].objwithargs)); ;} break; case 1166: #line 8651 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].objwithargs)); ;} break; case 1168: #line 8656 "gram.y" { (yyval.list) = NIL; ;} break; case 1169: #line 8661 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1170: #line 8662 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1171: #line 8670 "gram.y" { (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(false), (yylsp[(1) - (4)])); ;} break; case 1172: #line 8674 "gram.y" { (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(true), (yylsp[(1) - (5)])); ;} break; case 1173: #line 8678 "gram.y" { (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); ;} break; case 1174: #line 8682 "gram.y" { (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("immutable"), (yylsp[(1) - (1)])); ;} break; case 1175: #line 8686 "gram.y" { (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("stable"), (yylsp[(1) - (1)])); ;} break; case 1176: #line 8690 "gram.y" { (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("volatile"), (yylsp[(1) - (1)])); ;} break; case 1177: #line 8694 "gram.y" { (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(true), (yylsp[(1) - (3)])); ;} break; case 1178: #line 8698 "gram.y" { (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(false), (yylsp[(1) - (3)])); ;} break; case 1179: #line 8702 "gram.y" { (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(true), (yylsp[(1) - (2)])); ;} break; case 1180: #line 8706 "gram.y" { (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(false), (yylsp[(1) - (2)])); ;} break; case 1181: #line 8710 "gram.y" { (yyval.defelt) = makeDefElem("leakproof", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); ;} break; case 1182: #line 8714 "gram.y" { (yyval.defelt) = makeDefElem("leakproof", (Node *) makeBoolean(false), (yylsp[(1) - (2)])); ;} break; case 1183: #line 8718 "gram.y" { (yyval.defelt) = makeDefElem("cost", (Node *) (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1184: #line 8722 "gram.y" { (yyval.defelt) = makeDefElem("rows", (Node *) (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1185: #line 8726 "gram.y" { (yyval.defelt) = makeDefElem("support", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} break; case 1186: #line 8730 "gram.y" { /* we abuse the normal content of a DefElem here */ (yyval.defelt) = makeDefElem("set", (Node *) (yyvsp[(1) - (1)].vsetstmt), (yylsp[(1) - (1)])); ;} break; case 1187: #line 8735 "gram.y" { (yyval.defelt) = makeDefElem("parallel", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); ;} break; case 1188: #line 8742 "gram.y" { (yyval.defelt) = makeDefElem("as", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} break; case 1189: #line 8746 "gram.y" { (yyval.defelt) = makeDefElem("language", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); ;} break; case 1190: #line 8750 "gram.y" { (yyval.defelt) = makeDefElem("transform", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} break; case 1191: #line 8754 "gram.y" { (yyval.defelt) = makeDefElem("window", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); ;} break; case 1192: #line 8758 "gram.y" { (yyval.defelt) = (yyvsp[(1) - (1)].defelt); ;} break; case 1193: #line 8763 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 1194: #line 8765 "gram.y" { (yyval.list) = list_make2(makeString((yyvsp[(1) - (3)].str)), makeString((yyvsp[(3) - (3)].str))); ;} break; case 1195: #line 8771 "gram.y" { ReturnStmt *r = makeNode(ReturnStmt); r->returnval = (Node *) (yyvsp[(2) - (2)].node); (yyval.node) = (Node *) r; ;} break; case 1196: #line 8781 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1197: #line 8785 "gram.y" { /* * A compound statement is stored as a single-item list * containing the list of statements as its member. That * way, the parse analysis code can tell apart an empty * body from no body at all. */ (yyval.node) = (Node *) list_make1((yyvsp[(3) - (4)].list)); ;} break; case 1198: #line 8795 "gram.y" { (yyval.node) = NULL; ;} break; case 1199: #line 8802 "gram.y" { /* As in stmtmulti, discard empty statements */ if ((yyvsp[(2) - (3)].node) != NULL) (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].node)); else (yyval.list) = (yyvsp[(1) - (3)].list); ;} break; case 1200: #line 8810 "gram.y" { (yyval.list) = NIL; ;} break; case 1203: #line 8821 "gram.y" { (yyval.list) = list_make1((yyvsp[(3) - (3)].typnam)); ;} break; case 1204: #line 8822 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (5)].list), (yyvsp[(5) - (5)].typnam)); ;} break; case 1205: #line 8826 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1206: #line 8827 "gram.y" { (yyval.list) = NIL; ;} break; case 1207: #line 8831 "gram.y" { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[(1) - (2)].str); n->argType = (yyvsp[(2) - (2)].typnam); n->mode = FUNC_PARAM_TABLE; n->defexpr = NULL; (yyval.fun_param) = n; ;} break; case 1208: #line 8844 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ;} break; case 1209: #line 8848 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); ;} break; case 1210: #line 8863 "gram.y" { AlterFunctionStmt *n = makeNode(AlterFunctionStmt); n->objtype = OBJECT_FUNCTION; n->func = (yyvsp[(3) - (5)].objwithargs); n->actions = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 1211: #line 8872 "gram.y" { AlterFunctionStmt *n = makeNode(AlterFunctionStmt); n->objtype = OBJECT_PROCEDURE; n->func = (yyvsp[(3) - (5)].objwithargs); n->actions = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 1212: #line 8881 "gram.y" { AlterFunctionStmt *n = makeNode(AlterFunctionStmt); n->objtype = OBJECT_ROUTINE; n->func = (yyvsp[(3) - (5)].objwithargs); n->actions = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 1213: #line 8893 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1214: #line 8894 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1217: #line 8918 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FUNCTION; n->objects = (yyvsp[(3) - (4)].list); n->behavior = (yyvsp[(4) - (4)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 1218: #line 8929 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FUNCTION; n->objects = (yyvsp[(5) - (6)].list); n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 1219: #line 8940 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_PROCEDURE; n->objects = (yyvsp[(3) - (4)].list); n->behavior = (yyvsp[(4) - (4)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 1220: #line 8951 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_PROCEDURE; n->objects = (yyvsp[(5) - (6)].list); n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 1221: #line 8962 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_ROUTINE; n->objects = (yyvsp[(3) - (4)].list); n->behavior = (yyvsp[(4) - (4)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 1222: #line 8973 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_ROUTINE; n->objects = (yyvsp[(5) - (6)].list); n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 1223: #line 8987 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_AGGREGATE; n->objects = (yyvsp[(3) - (4)].list); n->behavior = (yyvsp[(4) - (4)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 1224: #line 8998 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_AGGREGATE; n->objects = (yyvsp[(5) - (6)].list); n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 1225: #line 9012 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_OPERATOR; n->objects = (yyvsp[(3) - (4)].list); n->behavior = (yyvsp[(4) - (4)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 1226: #line 9023 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_OPERATOR; n->objects = (yyvsp[(5) - (6)].list); n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 1227: #line 9037 "gram.y" { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("missing argument"), errhint("Use NONE to denote the missing argument of a unary operator."), parser_errposition((yylsp[(3) - (3)])))); ;} break; case 1228: #line 9045 "gram.y" { (yyval.list) = list_make2((yyvsp[(2) - (5)].typnam), (yyvsp[(4) - (5)].typnam)); ;} break; case 1229: #line 9047 "gram.y" { (yyval.list) = list_make2(NULL, (yyvsp[(4) - (5)].typnam)); ;} break; case 1230: #line 9049 "gram.y" { (yyval.list) = list_make2((yyvsp[(2) - (5)].typnam), NULL); ;} break; case 1231: #line 9054 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 1232: #line 9056 "gram.y" { (yyval.list) = lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(3) - (3)].list)); ;} break; case 1233: #line 9060 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].objwithargs)); ;} break; case 1234: #line 9062 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].objwithargs)); ;} break; case 1235: #line 9067 "gram.y" { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = (yyvsp[(1) - (2)].list); n->objargs = (yyvsp[(2) - (2)].list); (yyval.objwithargs) = n; ;} break; case 1236: #line 9086 "gram.y" { DoStmt *n = makeNode(DoStmt); n->args = (yyvsp[(2) - (2)].list); (yyval.node) = (Node *) n; ;} break; case 1237: #line 9095 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1238: #line 9096 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1239: #line 9101 "gram.y" { (yyval.defelt) = makeDefElem("as", (Node *) makeString((yyvsp[(1) - (1)].str)), (yylsp[(1) - (1)])); ;} break; case 1240: #line 9105 "gram.y" { (yyval.defelt) = makeDefElem("language", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); ;} break; case 1241: #line 9118 "gram.y" { CreateCastStmt *n = makeNode(CreateCastStmt); n->sourcetype = (yyvsp[(4) - (11)].typnam); n->targettype = (yyvsp[(6) - (11)].typnam); n->func = (yyvsp[(10) - (11)].objwithargs); n->context = (CoercionContext) (yyvsp[(11) - (11)].ival); n->inout = false; (yyval.node) = (Node *) n; ;} break; case 1242: #line 9130 "gram.y" { CreateCastStmt *n = makeNode(CreateCastStmt); n->sourcetype = (yyvsp[(4) - (10)].typnam); n->targettype = (yyvsp[(6) - (10)].typnam); n->func = NULL; n->context = (CoercionContext) (yyvsp[(10) - (10)].ival); n->inout = false; (yyval.node) = (Node *) n; ;} break; case 1243: #line 9142 "gram.y" { CreateCastStmt *n = makeNode(CreateCastStmt); n->sourcetype = (yyvsp[(4) - (10)].typnam); n->targettype = (yyvsp[(6) - (10)].typnam); n->func = NULL; n->context = (CoercionContext) (yyvsp[(10) - (10)].ival); n->inout = true; (yyval.node) = (Node *) n; ;} break; case 1244: #line 9154 "gram.y" { (yyval.ival) = COERCION_IMPLICIT; ;} break; case 1245: #line 9155 "gram.y" { (yyval.ival) = COERCION_ASSIGNMENT; ;} break; case 1246: #line 9156 "gram.y" { (yyval.ival) = COERCION_EXPLICIT; ;} break; case 1247: #line 9161 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_CAST; n->objects = list_make1(list_make2((yyvsp[(5) - (9)].typnam), (yyvsp[(7) - (9)].typnam))); n->behavior = (yyvsp[(9) - (9)].dbehavior); n->missing_ok = (yyvsp[(3) - (9)].boolean); n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 1248: #line 9173 "gram.y" { (yyval.boolean) = true; ;} break; case 1249: #line 9174 "gram.y" { (yyval.boolean) = false; ;} break; case 1250: #line 9185 "gram.y" { CreateTransformStmt *n = makeNode(CreateTransformStmt); n->replace = (yyvsp[(2) - (10)].boolean); n->type_name = (yyvsp[(5) - (10)].typnam); n->lang = (yyvsp[(7) - (10)].str); n->fromsql = linitial((yyvsp[(9) - (10)].list)); n->tosql = lsecond((yyvsp[(9) - (10)].list)); (yyval.node) = (Node *) n; ;} break; case 1251: #line 9198 "gram.y" { (yyval.list) = list_make2((yyvsp[(5) - (11)].objwithargs), (yyvsp[(11) - (11)].objwithargs)); ;} break; case 1252: #line 9202 "gram.y" { (yyval.list) = list_make2((yyvsp[(11) - (11)].objwithargs), (yyvsp[(5) - (11)].objwithargs)); ;} break; case 1253: #line 9206 "gram.y" { (yyval.list) = list_make2((yyvsp[(5) - (5)].objwithargs), NULL); ;} break; case 1254: #line 9210 "gram.y" { (yyval.list) = list_make2(NULL, (yyvsp[(5) - (5)].objwithargs)); ;} break; case 1255: #line 9217 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TRANSFORM; n->objects = list_make1(list_make2((yyvsp[(5) - (8)].typnam), makeString((yyvsp[(7) - (8)].str)))); n->behavior = (yyvsp[(8) - (8)].dbehavior); n->missing_ok = (yyvsp[(3) - (8)].boolean); (yyval.node) = (Node *) n; ;} break; case 1256: #line 9239 "gram.y" { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[(3) - (5)].ival); n->relation = (yyvsp[(5) - (5)].range); n->name = NULL; n->params = (yyvsp[(2) - (5)].list); if ((yyvsp[(4) - (5)].boolean)) n->params = lappend(n->params, makeDefElem("concurrently", NULL, (yylsp[(4) - (5)]))); (yyval.node) = (Node *) n; ;} break; case 1257: #line 9252 "gram.y" { ReindexStmt *n = makeNode(ReindexStmt); n->kind = REINDEX_OBJECT_SCHEMA; n->relation = NULL; n->name = (yyvsp[(5) - (5)].str); n->params = (yyvsp[(2) - (5)].list); if ((yyvsp[(4) - (5)].boolean)) n->params = lappend(n->params, makeDefElem("concurrently", NULL, (yylsp[(4) - (5)]))); (yyval.node) = (Node *) n; ;} break; case 1258: #line 9265 "gram.y" { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[(3) - (5)].ival); n->relation = NULL; n->name = (yyvsp[(5) - (5)].str); n->params = (yyvsp[(2) - (5)].list); if ((yyvsp[(4) - (5)].boolean)) n->params = lappend(n->params, makeDefElem("concurrently", NULL, (yylsp[(4) - (5)]))); (yyval.node) = (Node *) n; ;} break; case 1259: #line 9279 "gram.y" { (yyval.ival) = REINDEX_OBJECT_INDEX; ;} break; case 1260: #line 9280 "gram.y" { (yyval.ival) = REINDEX_OBJECT_TABLE; ;} break; case 1261: #line 9283 "gram.y" { (yyval.ival) = REINDEX_OBJECT_SYSTEM; ;} break; case 1262: #line 9284 "gram.y" { (yyval.ival) = REINDEX_OBJECT_DATABASE; ;} break; case 1263: #line 9287 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1264: #line 9288 "gram.y" { (yyval.list) = NULL; ;} break; case 1265: #line 9299 "gram.y" { AlterTableSpaceOptionsStmt *n = makeNode(AlterTableSpaceOptionsStmt); n->tablespacename = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); n->isReset = false; (yyval.node) = (Node *) n; ;} break; case 1266: #line 9309 "gram.y" { AlterTableSpaceOptionsStmt *n = makeNode(AlterTableSpaceOptionsStmt); n->tablespacename = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); n->isReset = true; (yyval.node) = (Node *) n; ;} break; case 1267: #line 9327 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1268: #line 9337 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLLATION; n->object = (Node *) (yyvsp[(3) - (6)].list); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1269: #line 9347 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_CONVERSION; n->object = (Node *) (yyvsp[(3) - (6)].list); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1270: #line 9357 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DATABASE; n->subname = (yyvsp[(3) - (6)].str); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1271: #line 9367 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[(3) - (6)].list); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1272: #line 9377 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DOMCONSTRAINT; n->object = (Node *) (yyvsp[(3) - (8)].list); n->subname = (yyvsp[(6) - (8)].str); n->newname = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 1273: #line 9387 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FDW; n->object = (Node *) makeString((yyvsp[(5) - (8)].str)); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1274: #line 9397 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1275: #line 9407 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROLE; n->subname = (yyvsp[(3) - (6)].str); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1276: #line 9417 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_LANGUAGE; n->object = (Node *) makeString((yyvsp[(4) - (7)].str)); n->newname = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1277: #line 9427 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[(6) - (9)].str)), (yyvsp[(4) - (9)].list)); n->newname = (yyvsp[(9) - (9)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1278: #line 9437 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[(6) - (9)].str)), (yyvsp[(4) - (9)].list)); n->newname = (yyvsp[(9) - (9)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1279: #line 9447 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_POLICY; n->relation = (yyvsp[(5) - (8)].range); n->subname = (yyvsp[(3) - (8)].str); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1280: #line 9458 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_POLICY; n->relation = (yyvsp[(7) - (10)].range); n->subname = (yyvsp[(5) - (10)].str); n->newname = (yyvsp[(10) - (10)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1281: #line 9469 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1282: #line 9479 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_PUBLICATION; n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1283: #line 9489 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1284: #line 9499 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SCHEMA; n->subname = (yyvsp[(3) - (6)].str); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1285: #line 9509 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FOREIGN_SERVER; n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1286: #line 9519 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SUBSCRIPTION; n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1287: #line 9529 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABLE; n->relation = (yyvsp[(3) - (6)].range); n->subname = NULL; n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1288: #line 9540 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABLE; n->relation = (yyvsp[(5) - (8)].range); n->subname = NULL; n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1289: #line 9551 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SEQUENCE; n->relation = (yyvsp[(3) - (6)].range); n->subname = NULL; n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1290: #line 9562 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_SEQUENCE; n->relation = (yyvsp[(5) - (8)].range); n->subname = NULL; n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1291: #line 9573 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_VIEW; n->relation = (yyvsp[(3) - (6)].range); n->subname = NULL; n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1292: #line 9584 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_VIEW; n->relation = (yyvsp[(5) - (8)].range); n->subname = NULL; n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1293: #line 9595 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_MATVIEW; n->relation = (yyvsp[(4) - (7)].range); n->subname = NULL; n->newname = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1294: #line 9606 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_MATVIEW; n->relation = (yyvsp[(6) - (9)].range); n->subname = NULL; n->newname = (yyvsp[(9) - (9)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1295: #line 9617 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_INDEX; n->relation = (yyvsp[(3) - (6)].range); n->subname = NULL; n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1296: #line 9628 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_INDEX; n->relation = (yyvsp[(5) - (8)].range); n->subname = NULL; n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1297: #line 9639 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[(4) - (7)].range); n->subname = NULL; n->newname = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1298: #line 9650 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[(6) - (9)].range); n->subname = NULL; n->newname = (yyvsp[(9) - (9)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1299: #line 9661 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_TABLE; n->relation = (yyvsp[(3) - (8)].range); n->subname = (yyvsp[(6) - (8)].str); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1300: #line 9673 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_TABLE; n->relation = (yyvsp[(5) - (10)].range); n->subname = (yyvsp[(8) - (10)].str); n->newname = (yyvsp[(10) - (10)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1301: #line 9685 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_VIEW; n->relation = (yyvsp[(3) - (8)].range); n->subname = (yyvsp[(6) - (8)].str); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1302: #line 9697 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_VIEW; n->relation = (yyvsp[(5) - (10)].range); n->subname = (yyvsp[(8) - (10)].str); n->newname = (yyvsp[(10) - (10)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1303: #line 9709 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_MATVIEW; n->relation = (yyvsp[(4) - (9)].range); n->subname = (yyvsp[(7) - (9)].str); n->newname = (yyvsp[(9) - (9)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1304: #line 9721 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_MATVIEW; n->relation = (yyvsp[(6) - (11)].range); n->subname = (yyvsp[(9) - (11)].str); n->newname = (yyvsp[(11) - (11)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1305: #line 9733 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABCONSTRAINT; n->relation = (yyvsp[(3) - (8)].range); n->subname = (yyvsp[(6) - (8)].str); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1306: #line 9744 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABCONSTRAINT; n->relation = (yyvsp[(5) - (10)].range); n->subname = (yyvsp[(8) - (10)].str); n->newname = (yyvsp[(10) - (10)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1307: #line 9755 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[(4) - (9)].range); n->subname = (yyvsp[(7) - (9)].str); n->newname = (yyvsp[(9) - (9)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1308: #line 9767 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLUMN; n->relationType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[(6) - (11)].range); n->subname = (yyvsp[(9) - (11)].str); n->newname = (yyvsp[(11) - (11)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1309: #line 9779 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_RULE; n->relation = (yyvsp[(5) - (8)].range); n->subname = (yyvsp[(3) - (8)].str); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1310: #line 9790 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TRIGGER; n->relation = (yyvsp[(5) - (8)].range); n->subname = (yyvsp[(3) - (8)].str); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1311: #line 9801 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_EVENT_TRIGGER; n->object = (Node *) makeString((yyvsp[(4) - (7)].str)); n->newname = (yyvsp[(7) - (7)].str); (yyval.node) = (Node *) n; ;} break; case 1312: #line 9810 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROLE; n->subname = (yyvsp[(3) - (6)].str); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1313: #line 9820 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ROLE; n->subname = (yyvsp[(3) - (6)].str); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1314: #line 9830 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TABLESPACE; n->subname = (yyvsp[(3) - (6)].str); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1315: #line 9840 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_STATISTIC_EXT; n->object = (Node *) (yyvsp[(3) - (6)].list); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1316: #line 9850 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSPARSER; n->object = (Node *) (yyvsp[(5) - (8)].list); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1317: #line 9860 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSDICTIONARY; n->object = (Node *) (yyvsp[(5) - (8)].list); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1318: #line 9870 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSTEMPLATE; n->object = (Node *) (yyvsp[(5) - (8)].list); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1319: #line 9880 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSCONFIGURATION; n->object = (Node *) (yyvsp[(5) - (8)].list); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1320: #line 9890 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TYPE; n->object = (Node *) (yyvsp[(3) - (6)].list); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1321: #line 9900 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_ATTRIBUTE; n->relationType = OBJECT_TYPE; n->relation = makeRangeVarFromAnyName((yyvsp[(3) - (9)].list), (yylsp[(3) - (9)]), yyscanner); n->subname = (yyvsp[(6) - (9)].str); n->newname = (yyvsp[(8) - (9)].str); n->behavior = (yyvsp[(9) - (9)].dbehavior); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1324: #line 9918 "gram.y" { (yyval.ival) = 1; ;} break; case 1325: #line 9919 "gram.y" { (yyval.ival) = 0; ;} break; case 1326: #line 9930 "gram.y" { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[(3) - (8)].objwithargs); n->extname = makeString((yyvsp[(8) - (8)].str)); n->remove = (yyvsp[(4) - (8)].boolean); (yyval.node) = (Node *) n; ;} break; case 1327: #line 9940 "gram.y" { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[(3) - (8)].objwithargs); n->extname = makeString((yyvsp[(8) - (8)].str)); n->remove = (yyvsp[(4) - (8)].boolean); (yyval.node) = (Node *) n; ;} break; case 1328: #line 9950 "gram.y" { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[(3) - (8)].objwithargs); n->extname = makeString((yyvsp[(8) - (8)].str)); n->remove = (yyvsp[(4) - (8)].boolean); (yyval.node) = (Node *) n; ;} break; case 1329: #line 9960 "gram.y" { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_TRIGGER; n->relation = (yyvsp[(5) - (10)].range); n->object = (Node *) list_make1(makeString((yyvsp[(3) - (10)].str))); n->extname = makeString((yyvsp[(10) - (10)].str)); n->remove = (yyvsp[(6) - (10)].boolean); (yyval.node) = (Node *) n; ;} break; case 1330: #line 9971 "gram.y" { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_MATVIEW; n->relation = (yyvsp[(4) - (9)].range); n->extname = makeString((yyvsp[(9) - (9)].str)); n->remove = (yyvsp[(5) - (9)].boolean); (yyval.node) = (Node *) n; ;} break; case 1331: #line 9981 "gram.y" { AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); n->objectType = OBJECT_INDEX; n->relation = (yyvsp[(3) - (8)].range); n->extname = makeString((yyvsp[(8) - (8)].str)); n->remove = (yyvsp[(4) - (8)].boolean); (yyval.node) = (Node *) n; ;} break; case 1332: #line 9992 "gram.y" { (yyval.boolean) = true; ;} break; case 1333: #line 9993 "gram.y" { (yyval.boolean) = false; ;} break; case 1334: #line 10004 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1335: #line 10014 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_COLLATION; n->object = (Node *) (yyvsp[(3) - (6)].list); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1336: #line 10024 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_CONVERSION; n->object = (Node *) (yyvsp[(3) - (6)].list); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1337: #line 10034 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[(3) - (6)].list); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1338: #line 10044 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_EXTENSION; n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1339: #line 10054 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1340: #line 10064 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPERATOR; n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1341: #line 10074 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[(6) - (9)].str)), (yyvsp[(4) - (9)].list)); n->newschema = (yyvsp[(9) - (9)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1342: #line 10084 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[(6) - (9)].str)), (yyvsp[(4) - (9)].list)); n->newschema = (yyvsp[(9) - (9)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1343: #line 10094 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1344: #line 10104 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1345: #line 10114 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TABLE; n->relation = (yyvsp[(3) - (6)].range); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1346: #line 10124 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TABLE; n->relation = (yyvsp[(5) - (8)].range); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1347: #line 10134 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_STATISTIC_EXT; n->object = (Node *) (yyvsp[(3) - (6)].list); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1348: #line 10144 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSPARSER; n->object = (Node *) (yyvsp[(5) - (8)].list); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1349: #line 10154 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSDICTIONARY; n->object = (Node *) (yyvsp[(5) - (8)].list); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1350: #line 10164 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSTEMPLATE; n->object = (Node *) (yyvsp[(5) - (8)].list); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1351: #line 10174 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSCONFIGURATION; n->object = (Node *) (yyvsp[(5) - (8)].list); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1352: #line 10184 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_SEQUENCE; n->relation = (yyvsp[(3) - (6)].range); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1353: #line 10194 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_SEQUENCE; n->relation = (yyvsp[(5) - (8)].range); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1354: #line 10204 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_VIEW; n->relation = (yyvsp[(3) - (6)].range); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1355: #line 10214 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_VIEW; n->relation = (yyvsp[(5) - (8)].range); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1356: #line 10224 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_MATVIEW; n->relation = (yyvsp[(4) - (7)].range); n->newschema = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1357: #line 10234 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_MATVIEW; n->relation = (yyvsp[(6) - (9)].range); n->newschema = (yyvsp[(9) - (9)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1358: #line 10244 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[(4) - (7)].range); n->newschema = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1359: #line 10254 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_FOREIGN_TABLE; n->relation = (yyvsp[(6) - (9)].range); n->newschema = (yyvsp[(9) - (9)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1360: #line 10264 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TYPE; n->object = (Node *) (yyvsp[(3) - (6)].list); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1361: #line 10283 "gram.y" { AlterOperatorStmt *n = makeNode(AlterOperatorStmt); n->opername = (yyvsp[(3) - (7)].objwithargs); n->options = (yyvsp[(6) - (7)].list); (yyval.node) = (Node *) n; ;} break; case 1362: #line 10292 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1363: #line 10293 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 1364: #line 10297 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), NULL, (yylsp[(1) - (3)])); ;} break; case 1365: #line 10299 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 1366: #line 10301 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)])); ;} break; case 1367: #line 10306 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].typnam); ;} break; case 1368: #line 10307 "gram.y" { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;} break; case 1369: #line 10308 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].list); ;} break; case 1370: #line 10309 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].node); ;} break; case 1371: #line 10310 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 1372: #line 10323 "gram.y" { AlterTypeStmt *n = makeNode(AlterTypeStmt); n->typeName = (yyvsp[(3) - (7)].list); n->options = (yyvsp[(6) - (7)].list); (yyval.node) = (Node *) n; ;} break; case 1373: #line 10339 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_AGGREGATE; n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); n->newowner = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1374: #line 10348 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_COLLATION; n->object = (Node *) (yyvsp[(3) - (6)].list); n->newowner = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1375: #line 10357 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_CONVERSION; n->object = (Node *) (yyvsp[(3) - (6)].list); n->newowner = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1376: #line 10366 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_DATABASE; n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); n->newowner = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1377: #line 10375 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_DOMAIN; n->object = (Node *) (yyvsp[(3) - (6)].list); n->newowner = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1378: #line 10384 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FUNCTION; n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); n->newowner = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1379: #line 10393 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_LANGUAGE; n->object = (Node *) makeString((yyvsp[(4) - (7)].str)); n->newowner = (yyvsp[(7) - (7)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1380: #line 10402 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_LARGEOBJECT; n->object = (Node *) (yyvsp[(4) - (7)].node); n->newowner = (yyvsp[(7) - (7)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1381: #line 10411 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPERATOR; n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); n->newowner = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1382: #line 10420 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPCLASS; n->object = (Node *) lcons(makeString((yyvsp[(6) - (9)].str)), (yyvsp[(4) - (9)].list)); n->newowner = (yyvsp[(9) - (9)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1383: #line 10429 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPFAMILY; n->object = (Node *) lcons(makeString((yyvsp[(6) - (9)].str)), (yyvsp[(4) - (9)].list)); n->newowner = (yyvsp[(9) - (9)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1384: #line 10438 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_PROCEDURE; n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); n->newowner = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1385: #line 10447 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_ROUTINE; n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); n->newowner = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1386: #line 10456 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_SCHEMA; n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); n->newowner = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1387: #line 10465 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TYPE; n->object = (Node *) (yyvsp[(3) - (6)].list); n->newowner = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1388: #line 10474 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TABLESPACE; n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); n->newowner = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1389: #line 10483 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_STATISTIC_EXT; n->object = (Node *) (yyvsp[(3) - (6)].list); n->newowner = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1390: #line 10492 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TSDICTIONARY; n->object = (Node *) (yyvsp[(5) - (8)].list); n->newowner = (yyvsp[(8) - (8)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1391: #line 10501 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TSCONFIGURATION; n->object = (Node *) (yyvsp[(5) - (8)].list); n->newowner = (yyvsp[(8) - (8)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1392: #line 10510 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FDW; n->object = (Node *) makeString((yyvsp[(5) - (8)].str)); n->newowner = (yyvsp[(8) - (8)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1393: #line 10519 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FOREIGN_SERVER; n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); n->newowner = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1394: #line 10528 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_EVENT_TRIGGER; n->object = (Node *) makeString((yyvsp[(4) - (7)].str)); n->newowner = (yyvsp[(7) - (7)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1395: #line 10537 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_PUBLICATION; n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); n->newowner = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1396: #line 10546 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_SUBSCRIPTION; n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); n->newowner = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 1397: #line 10574 "gram.y" { CreatePublicationStmt *n = makeNode(CreatePublicationStmt); n->pubname = (yyvsp[(3) - (4)].str); n->options = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *) n; ;} break; case 1398: #line 10582 "gram.y" { CreatePublicationStmt *n = makeNode(CreatePublicationStmt); n->pubname = (yyvsp[(3) - (7)].str); n->options = (yyvsp[(7) - (7)].list); n->for_all_tables = true; (yyval.node) = (Node *) n; ;} break; case 1399: #line 10591 "gram.y" { CreatePublicationStmt *n = makeNode(CreatePublicationStmt); n->pubname = (yyvsp[(3) - (6)].str); n->options = (yyvsp[(6) - (6)].list); n->pubobjects = (List *) (yyvsp[(5) - (6)].list); preprocess_pubobj_list(n->pubobjects, yyscanner); (yyval.node) = (Node *) n; ;} break; case 1400: #line 10617 "gram.y" { (yyval.publicationobjectspec) = makeNode(PublicationObjSpec); (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_TABLE; (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable); (yyval.publicationobjectspec)->pubtable->relation = (yyvsp[(2) - (4)].range); (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[(3) - (4)].list); (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[(4) - (4)].node); ;} break; case 1401: #line 10626 "gram.y" { (yyval.publicationobjectspec) = makeNode(PublicationObjSpec); (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_TABLES_IN_SCHEMA; (yyval.publicationobjectspec)->name = (yyvsp[(4) - (4)].str); (yyval.publicationobjectspec)->location = (yylsp[(4) - (4)]); ;} break; case 1402: #line 10633 "gram.y" { (yyval.publicationobjectspec) = makeNode(PublicationObjSpec); (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA; (yyval.publicationobjectspec)->location = (yylsp[(4) - (4)]); ;} break; case 1403: #line 10639 "gram.y" { (yyval.publicationobjectspec) = makeNode(PublicationObjSpec); (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION; /* * If either a row filter or column list is specified, create * a PublicationTable object. */ if ((yyvsp[(2) - (3)].list) || (yyvsp[(3) - (3)].node)) { /* * The OptWhereClause must be stored here but it is * valid only for tables. For non-table objects, an * error will be thrown later via * preprocess_pubobj_list(). */ (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable); (yyval.publicationobjectspec)->pubtable->relation = makeRangeVar(NULL, (yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])); (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[(2) - (3)].list); (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[(3) - (3)].node); } else { (yyval.publicationobjectspec)->name = (yyvsp[(1) - (3)].str); } (yyval.publicationobjectspec)->location = (yylsp[(1) - (3)]); ;} break; case 1404: #line 10666 "gram.y" { (yyval.publicationobjectspec) = makeNode(PublicationObjSpec); (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION; (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable); (yyval.publicationobjectspec)->pubtable->relation = makeRangeVarFromQualifiedName((yyvsp[(1) - (4)].str), (yyvsp[(2) - (4)].list), (yylsp[(1) - (4)]), yyscanner); (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[(3) - (4)].list); (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[(4) - (4)].node); (yyval.publicationobjectspec)->location = (yylsp[(1) - (4)]); ;} break; case 1405: #line 10677 "gram.y" { (yyval.publicationobjectspec) = makeNode(PublicationObjSpec); (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION; (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable); (yyval.publicationobjectspec)->pubtable->relation = (yyvsp[(1) - (3)].range); (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[(2) - (3)].list); (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[(3) - (3)].node); ;} break; case 1406: #line 10686 "gram.y" { (yyval.publicationobjectspec) = makeNode(PublicationObjSpec); (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION; (yyval.publicationobjectspec)->location = (yylsp[(1) - (1)]); ;} break; case 1407: #line 10694 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].publicationobjectspec)); ;} break; case 1408: #line 10696 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].publicationobjectspec)); ;} break; case 1409: #line 10718 "gram.y" { AlterPublicationStmt *n = makeNode(AlterPublicationStmt); n->pubname = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 1410: #line 10726 "gram.y" { AlterPublicationStmt *n = makeNode(AlterPublicationStmt); n->pubname = (yyvsp[(3) - (5)].str); n->pubobjects = (yyvsp[(5) - (5)].list); preprocess_pubobj_list(n->pubobjects, yyscanner); n->action = AP_AddObjects; (yyval.node) = (Node *) n; ;} break; case 1411: #line 10736 "gram.y" { AlterPublicationStmt *n = makeNode(AlterPublicationStmt); n->pubname = (yyvsp[(3) - (5)].str); n->pubobjects = (yyvsp[(5) - (5)].list); preprocess_pubobj_list(n->pubobjects, yyscanner); n->action = AP_SetObjects; (yyval.node) = (Node *) n; ;} break; case 1412: #line 10746 "gram.y" { AlterPublicationStmt *n = makeNode(AlterPublicationStmt); n->pubname = (yyvsp[(3) - (5)].str); n->pubobjects = (yyvsp[(5) - (5)].list); preprocess_pubobj_list(n->pubobjects, yyscanner); n->action = AP_DropObjects; (yyval.node) = (Node *) n; ;} break; case 1413: #line 10765 "gram.y" { CreateSubscriptionStmt *n = makeNode(CreateSubscriptionStmt); n->subname = (yyvsp[(3) - (8)].str); n->conninfo = (yyvsp[(5) - (8)].str); n->publication = (yyvsp[(7) - (8)].list); n->options = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *) n; ;} break; case 1414: #line 10784 "gram.y" { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_OPTIONS; n->subname = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 1415: #line 10794 "gram.y" { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_CONNECTION; n->subname = (yyvsp[(3) - (5)].str); n->conninfo = (yyvsp[(5) - (5)].str); (yyval.node) = (Node *) n; ;} break; case 1416: #line 10804 "gram.y" { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_REFRESH; n->subname = (yyvsp[(3) - (6)].str); n->options = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 1417: #line 10814 "gram.y" { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_ADD_PUBLICATION; n->subname = (yyvsp[(3) - (7)].str); n->publication = (yyvsp[(6) - (7)].list); n->options = (yyvsp[(7) - (7)].list); (yyval.node) = (Node *) n; ;} break; case 1418: #line 10825 "gram.y" { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_DROP_PUBLICATION; n->subname = (yyvsp[(3) - (7)].str); n->publication = (yyvsp[(6) - (7)].list); n->options = (yyvsp[(7) - (7)].list); (yyval.node) = (Node *) n; ;} break; case 1419: #line 10836 "gram.y" { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_SET_PUBLICATION; n->subname = (yyvsp[(3) - (7)].str); n->publication = (yyvsp[(6) - (7)].list); n->options = (yyvsp[(7) - (7)].list); (yyval.node) = (Node *) n; ;} break; case 1420: #line 10847 "gram.y" { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_ENABLED; n->subname = (yyvsp[(3) - (4)].str); n->options = list_make1(makeDefElem("enabled", (Node *) makeBoolean(true), (yylsp[(1) - (4)]))); (yyval.node) = (Node *) n; ;} break; case 1421: #line 10858 "gram.y" { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_ENABLED; n->subname = (yyvsp[(3) - (4)].str); n->options = list_make1(makeDefElem("enabled", (Node *) makeBoolean(false), (yylsp[(1) - (4)]))); (yyval.node) = (Node *) n; ;} break; case 1422: #line 10869 "gram.y" { AlterSubscriptionStmt *n = makeNode(AlterSubscriptionStmt); n->kind = ALTER_SUBSCRIPTION_SKIP; n->subname = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 1423: #line 10887 "gram.y" { DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt); n->subname = (yyvsp[(3) - (4)].str); n->missing_ok = false; n->behavior = (yyvsp[(4) - (4)].dbehavior); (yyval.node) = (Node *) n; ;} break; case 1424: #line 10896 "gram.y" { DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt); n->subname = (yyvsp[(5) - (6)].str); n->missing_ok = true; n->behavior = (yyvsp[(6) - (6)].dbehavior); (yyval.node) = (Node *) n; ;} break; case 1425: #line 10915 "gram.y" { RuleStmt *n = makeNode(RuleStmt); n->replace = (yyvsp[(2) - (13)].boolean); n->relation = (yyvsp[(9) - (13)].range); n->rulename = (yyvsp[(4) - (13)].str); n->whereClause = (yyvsp[(10) - (13)].node); n->event = (yyvsp[(7) - (13)].ival); n->instead = (yyvsp[(12) - (13)].boolean); n->actions = (yyvsp[(13) - (13)].list); (yyval.node) = (Node *) n; ;} break; case 1426: #line 10930 "gram.y" { (yyval.list) = NIL; ;} break; case 1427: #line 10931 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1428: #line 10932 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1429: #line 10938 "gram.y" { if ((yyvsp[(3) - (3)].node) != NULL) (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); else (yyval.list) = (yyvsp[(1) - (3)].list); ;} break; case 1430: #line 10944 "gram.y" { if ((yyvsp[(1) - (1)].node) != NULL) (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); else (yyval.list) = NIL; ;} break; case 1436: #line 10960 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1437: #line 10961 "gram.y" { (yyval.node) = NULL; ;} break; case 1438: #line 10964 "gram.y" { (yyval.ival) = CMD_SELECT; ;} break; case 1439: #line 10965 "gram.y" { (yyval.ival) = CMD_UPDATE; ;} break; case 1440: #line 10966 "gram.y" { (yyval.ival) = CMD_DELETE; ;} break; case 1441: #line 10967 "gram.y" { (yyval.ival) = CMD_INSERT; ;} break; case 1442: #line 10971 "gram.y" { (yyval.boolean) = true; ;} break; case 1443: #line 10972 "gram.y" { (yyval.boolean) = false; ;} break; case 1444: #line 10973 "gram.y" { (yyval.boolean) = false; ;} break; case 1445: #line 10986 "gram.y" { NotifyStmt *n = makeNode(NotifyStmt); n->conditionname = (yyvsp[(2) - (3)].str); n->payload = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 1446: #line 10996 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 1447: #line 10997 "gram.y" { (yyval.str) = NULL; ;} break; case 1448: #line 11001 "gram.y" { ListenStmt *n = makeNode(ListenStmt); n->conditionname = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; ;} break; case 1449: #line 11011 "gram.y" { UnlistenStmt *n = makeNode(UnlistenStmt); n->conditionname = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; ;} break; case 1450: #line 11018 "gram.y" { UnlistenStmt *n = makeNode(UnlistenStmt); n->conditionname = NULL; (yyval.node) = (Node *) n; ;} break; case 1451: #line 11038 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK; n->options = NIL; n->chain = (yyvsp[(3) - (3)].boolean); n->location = -1; (yyval.node) = (Node *) n; ;} break; case 1452: #line 11048 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_START; n->options = (yyvsp[(3) - (3)].list); n->location = -1; (yyval.node) = (Node *) n; ;} break; case 1453: #line 11057 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT; n->options = NIL; n->chain = (yyvsp[(3) - (3)].boolean); n->location = -1; (yyval.node) = (Node *) n; ;} break; case 1454: #line 11067 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK; n->options = NIL; n->chain = (yyvsp[(3) - (3)].boolean); n->location = -1; (yyval.node) = (Node *) n; ;} break; case 1455: #line 11077 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_SAVEPOINT; n->savepoint_name = (yyvsp[(2) - (2)].str); n->location = (yylsp[(2) - (2)]); (yyval.node) = (Node *) n; ;} break; case 1456: #line 11086 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_RELEASE; n->savepoint_name = (yyvsp[(3) - (3)].str); n->location = (yylsp[(3) - (3)]); (yyval.node) = (Node *) n; ;} break; case 1457: #line 11095 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_RELEASE; n->savepoint_name = (yyvsp[(2) - (2)].str); n->location = (yylsp[(2) - (2)]); (yyval.node) = (Node *) n; ;} break; case 1458: #line 11104 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_TO; n->savepoint_name = (yyvsp[(5) - (5)].str); n->location = (yylsp[(5) - (5)]); (yyval.node) = (Node *) n; ;} break; case 1459: #line 11113 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_TO; n->savepoint_name = (yyvsp[(4) - (4)].str); n->location = (yylsp[(4) - (4)]); (yyval.node) = (Node *) n; ;} break; case 1460: #line 11122 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_PREPARE; n->gid = (yyvsp[(3) - (3)].str); n->location = (yylsp[(3) - (3)]); (yyval.node) = (Node *) n; ;} break; case 1461: #line 11131 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT_PREPARED; n->gid = (yyvsp[(3) - (3)].str); n->location = (yylsp[(3) - (3)]); (yyval.node) = (Node *) n; ;} break; case 1462: #line 11140 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_PREPARED; n->gid = (yyvsp[(3) - (3)].str); n->location = (yylsp[(3) - (3)]); (yyval.node) = (Node *) n; ;} break; case 1463: #line 11152 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_BEGIN; n->options = (yyvsp[(3) - (3)].list); n->location = -1; (yyval.node) = (Node *) n; ;} break; case 1464: #line 11161 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT; n->options = NIL; n->chain = (yyvsp[(3) - (3)].boolean); n->location = -1; (yyval.node) = (Node *) n; ;} break; case 1468: #line 11179 "gram.y" { (yyval.defelt) = makeDefElem("transaction_isolation", makeStringConst((yyvsp[(3) - (3)].str), (yylsp[(3) - (3)])), (yylsp[(1) - (3)])); ;} break; case 1469: #line 11182 "gram.y" { (yyval.defelt) = makeDefElem("transaction_read_only", makeIntConst(true, (yylsp[(1) - (2)])), (yylsp[(1) - (2)])); ;} break; case 1470: #line 11185 "gram.y" { (yyval.defelt) = makeDefElem("transaction_read_only", makeIntConst(false, (yylsp[(1) - (2)])), (yylsp[(1) - (2)])); ;} break; case 1471: #line 11188 "gram.y" { (yyval.defelt) = makeDefElem("transaction_deferrable", makeIntConst(true, (yylsp[(1) - (1)])), (yylsp[(1) - (1)])); ;} break; case 1472: #line 11191 "gram.y" { (yyval.defelt) = makeDefElem("transaction_deferrable", makeIntConst(false, (yylsp[(1) - (2)])), (yylsp[(1) - (2)])); ;} break; case 1473: #line 11198 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1474: #line 11200 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 1475: #line 11202 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1477: #line 11208 "gram.y" { (yyval.list) = NIL; ;} break; case 1478: #line 11212 "gram.y" { (yyval.boolean) = true; ;} break; case 1479: #line 11213 "gram.y" { (yyval.boolean) = false; ;} break; case 1480: #line 11214 "gram.y" { (yyval.boolean) = false; ;} break; case 1481: #line 11228 "gram.y" { ViewStmt *n = makeNode(ViewStmt); n->view = (yyvsp[(4) - (9)].range); n->view->relpersistence = (yyvsp[(2) - (9)].ival); n->aliases = (yyvsp[(5) - (9)].list); n->query = (yyvsp[(8) - (9)].node); n->replace = false; n->options = (yyvsp[(6) - (9)].list); n->withCheckOption = (yyvsp[(9) - (9)].ival); (yyval.node) = (Node *) n; ;} break; case 1482: #line 11242 "gram.y" { ViewStmt *n = makeNode(ViewStmt); n->view = (yyvsp[(6) - (11)].range); n->view->relpersistence = (yyvsp[(4) - (11)].ival); n->aliases = (yyvsp[(7) - (11)].list); n->query = (yyvsp[(10) - (11)].node); n->replace = true; n->options = (yyvsp[(8) - (11)].list); n->withCheckOption = (yyvsp[(11) - (11)].ival); (yyval.node) = (Node *) n; ;} break; case 1483: #line 11256 "gram.y" { ViewStmt *n = makeNode(ViewStmt); n->view = (yyvsp[(5) - (12)].range); n->view->relpersistence = (yyvsp[(2) - (12)].ival); n->aliases = (yyvsp[(7) - (12)].list); n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[(11) - (12)].node)); n->replace = false; n->options = (yyvsp[(9) - (12)].list); n->withCheckOption = (yyvsp[(12) - (12)].ival); if (n->withCheckOption != NO_CHECK_OPTION) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("WITH CHECK OPTION not supported on recursive views"), parser_errposition((yylsp[(12) - (12)])))); (yyval.node) = (Node *) n; ;} break; case 1484: #line 11275 "gram.y" { ViewStmt *n = makeNode(ViewStmt); n->view = (yyvsp[(7) - (14)].range); n->view->relpersistence = (yyvsp[(4) - (14)].ival); n->aliases = (yyvsp[(9) - (14)].list); n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[(13) - (14)].node)); n->replace = true; n->options = (yyvsp[(11) - (14)].list); n->withCheckOption = (yyvsp[(14) - (14)].ival); if (n->withCheckOption != NO_CHECK_OPTION) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("WITH CHECK OPTION not supported on recursive views"), parser_errposition((yylsp[(14) - (14)])))); (yyval.node) = (Node *) n; ;} break; case 1485: #line 11295 "gram.y" { (yyval.ival) = CASCADED_CHECK_OPTION; ;} break; case 1486: #line 11296 "gram.y" { (yyval.ival) = CASCADED_CHECK_OPTION; ;} break; case 1487: #line 11297 "gram.y" { (yyval.ival) = LOCAL_CHECK_OPTION; ;} break; case 1488: #line 11298 "gram.y" { (yyval.ival) = NO_CHECK_OPTION; ;} break; case 1489: #line 11309 "gram.y" { LoadStmt *n = makeNode(LoadStmt); n->filename = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; ;} break; case 1490: #line 11326 "gram.y" { CreatedbStmt *n = makeNode(CreatedbStmt); n->dbname = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 1491: #line 11336 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1492: #line 11337 "gram.y" { (yyval.list) = NIL; ;} break; case 1493: #line 11341 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1494: #line 11342 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1495: #line 11347 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 1496: #line 11351 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); ;} break; case 1497: #line 11355 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), NULL, (yylsp[(1) - (3)])); ;} break; case 1498: #line 11372 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1499: #line 11373 "gram.y" { (yyval.str) = pstrdup("connection_limit"); ;} break; case 1500: #line 11374 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 1501: #line 11375 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 1502: #line 11376 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 1503: #line 11377 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 1504: #line 11378 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 1507: #line 11398 "gram.y" { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 1508: #line 11406 "gram.y" { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[(3) - (4)].str); n->options = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *) n; ;} break; case 1509: #line 11414 "gram.y" { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[(3) - (6)].str); n->options = list_make1(makeDefElem("tablespace", (Node *) makeString((yyvsp[(6) - (6)].str)), (yylsp[(6) - (6)]))); (yyval.node) = (Node *) n; ;} break; case 1510: #line 11423 "gram.y" { AlterDatabaseRefreshCollStmt *n = makeNode(AlterDatabaseRefreshCollStmt); n->dbname = (yyvsp[(3) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 1511: #line 11433 "gram.y" { AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt); n->dbname = (yyvsp[(3) - (4)].str); n->setstmt = (yyvsp[(4) - (4)].vsetstmt); (yyval.node) = (Node *) n; ;} break; case 1512: #line 11451 "gram.y" { DropdbStmt *n = makeNode(DropdbStmt); n->dbname = (yyvsp[(3) - (3)].str); n->missing_ok = false; n->options = NULL; (yyval.node) = (Node *) n; ;} break; case 1513: #line 11460 "gram.y" { DropdbStmt *n = makeNode(DropdbStmt); n->dbname = (yyvsp[(5) - (5)].str); n->missing_ok = true; n->options = NULL; (yyval.node) = (Node *) n; ;} break; case 1514: #line 11469 "gram.y" { DropdbStmt *n = makeNode(DropdbStmt); n->dbname = (yyvsp[(3) - (7)].str); n->missing_ok = false; n->options = (yyvsp[(6) - (7)].list); (yyval.node) = (Node *) n; ;} break; case 1515: #line 11478 "gram.y" { DropdbStmt *n = makeNode(DropdbStmt); n->dbname = (yyvsp[(5) - (9)].str); n->missing_ok = true; n->options = (yyvsp[(8) - (9)].list); (yyval.node) = (Node *) n; ;} break; case 1516: #line 11490 "gram.y" { (yyval.list) = list_make1((Node *) (yyvsp[(1) - (1)].defelt)); ;} break; case 1517: #line 11494 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (Node *) (yyvsp[(3) - (3)].defelt)); ;} break; case 1518: #line 11505 "gram.y" { (yyval.defelt) = makeDefElem("force", NULL, (yylsp[(1) - (1)])); ;} break; case 1519: #line 11517 "gram.y" { AlterCollationStmt *n = makeNode(AlterCollationStmt); n->collname = (yyvsp[(3) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 1520: #line 11535 "gram.y" { AlterSystemStmt *n = makeNode(AlterSystemStmt); n->setstmt = (yyvsp[(4) - (4)].vsetstmt); (yyval.node) = (Node *) n; ;} break; case 1521: #line 11542 "gram.y" { AlterSystemStmt *n = makeNode(AlterSystemStmt); n->setstmt = (yyvsp[(4) - (4)].vsetstmt); (yyval.node) = (Node *) n; ;} break; case 1522: #line 11559 "gram.y" { CreateDomainStmt *n = makeNode(CreateDomainStmt); n->domainname = (yyvsp[(3) - (6)].list); n->typeName = (yyvsp[(5) - (6)].typnam); SplitColQualList((yyvsp[(6) - (6)].list), &n->constraints, &n->collClause, yyscanner); (yyval.node) = (Node *) n; ;} break; case 1523: #line 11573 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'T'; n->typeName = (yyvsp[(3) - (4)].list); n->def = (yyvsp[(4) - (4)].node); (yyval.node) = (Node *) n; ;} break; case 1524: #line 11583 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'N'; n->typeName = (yyvsp[(3) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 1525: #line 11592 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'O'; n->typeName = (yyvsp[(3) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 1526: #line 11601 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'C'; n->typeName = (yyvsp[(3) - (5)].list); n->def = (yyvsp[(5) - (5)].node); (yyval.node) = (Node *) n; ;} break; case 1527: #line 11611 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'X'; n->typeName = (yyvsp[(3) - (7)].list); n->name = (yyvsp[(6) - (7)].str); n->behavior = (yyvsp[(7) - (7)].dbehavior); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1528: #line 11623 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'X'; n->typeName = (yyvsp[(3) - (9)].list); n->name = (yyvsp[(8) - (9)].str); n->behavior = (yyvsp[(9) - (9)].dbehavior); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1529: #line 11635 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'V'; n->typeName = (yyvsp[(3) - (6)].list); n->name = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 1532: #line 11658 "gram.y" { AlterTSDictionaryStmt *n = makeNode(AlterTSDictionaryStmt); n->dictname = (yyvsp[(5) - (6)].list); n->options = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 1533: #line 11669 "gram.y" { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_ADD_MAPPING; n->cfgname = (yyvsp[(5) - (11)].list); n->tokentype = (yyvsp[(9) - (11)].list); n->dicts = (yyvsp[(11) - (11)].list); n->override = false; n->replace = false; (yyval.node) = (Node *) n; ;} break; case 1534: #line 11681 "gram.y" { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN; n->cfgname = (yyvsp[(5) - (11)].list); n->tokentype = (yyvsp[(9) - (11)].list); n->dicts = (yyvsp[(11) - (11)].list); n->override = true; n->replace = false; (yyval.node) = (Node *) n; ;} break; case 1535: #line 11693 "gram.y" { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_REPLACE_DICT; n->cfgname = (yyvsp[(5) - (11)].list); n->tokentype = NIL; n->dicts = list_make2((yyvsp[(9) - (11)].list),(yyvsp[(11) - (11)].list)); n->override = false; n->replace = true; (yyval.node) = (Node *) n; ;} break; case 1536: #line 11705 "gram.y" { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN; n->cfgname = (yyvsp[(5) - (13)].list); n->tokentype = (yyvsp[(9) - (13)].list); n->dicts = list_make2((yyvsp[(11) - (13)].list),(yyvsp[(13) - (13)].list)); n->override = false; n->replace = true; (yyval.node) = (Node *) n; ;} break; case 1537: #line 11717 "gram.y" { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_DROP_MAPPING; n->cfgname = (yyvsp[(5) - (9)].list); n->tokentype = (yyvsp[(9) - (9)].list); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 1538: #line 11727 "gram.y" { AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); n->kind = ALTER_TSCONFIG_DROP_MAPPING; n->cfgname = (yyvsp[(5) - (11)].list); n->tokentype = (yyvsp[(11) - (11)].list); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 1541: #line 11756 "gram.y" { CreateConversionStmt *n = makeNode(CreateConversionStmt); n->conversion_name = (yyvsp[(4) - (10)].list); n->for_encoding_name = (yyvsp[(6) - (10)].str); n->to_encoding_name = (yyvsp[(8) - (10)].str); n->func_name = (yyvsp[(10) - (10)].list); n->def = (yyvsp[(2) - (10)].boolean); (yyval.node) = (Node *) n; ;} break; case 1542: #line 11779 "gram.y" { ClusterStmt *n = makeNode(ClusterStmt); n->relation = (yyvsp[(5) - (6)].range); n->indexname = (yyvsp[(6) - (6)].str); n->params = (yyvsp[(3) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 1543: #line 11788 "gram.y" { ClusterStmt *n = makeNode(ClusterStmt); n->relation = NULL; n->indexname = NULL; n->params = (yyvsp[(3) - (4)].list); (yyval.node) = (Node *) n; ;} break; case 1544: #line 11798 "gram.y" { ClusterStmt *n = makeNode(ClusterStmt); n->relation = (yyvsp[(3) - (4)].range); n->indexname = (yyvsp[(4) - (4)].str); n->params = NIL; if ((yyvsp[(2) - (4)].boolean)) n->params = lappend(n->params, makeDefElem("verbose", NULL, (yylsp[(2) - (4)]))); (yyval.node) = (Node *) n; ;} break; case 1545: #line 11810 "gram.y" { ClusterStmt *n = makeNode(ClusterStmt); n->relation = NULL; n->indexname = NULL; n->params = NIL; if ((yyvsp[(2) - (2)].boolean)) n->params = lappend(n->params, makeDefElem("verbose", NULL, (yylsp[(2) - (2)]))); (yyval.node) = (Node *) n; ;} break; case 1546: #line 11822 "gram.y" { ClusterStmt *n = makeNode(ClusterStmt); n->relation = (yyvsp[(5) - (5)].range); n->indexname = (yyvsp[(3) - (5)].str); n->params = NIL; if ((yyvsp[(2) - (5)].boolean)) n->params = lappend(n->params, makeDefElem("verbose", NULL, (yylsp[(2) - (5)]))); (yyval.node) = (Node *) n; ;} break; case 1547: #line 11835 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 1548: #line 11836 "gram.y" { (yyval.str) = NULL; ;} break; case 1549: #line 11849 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->options = NIL; if ((yyvsp[(2) - (6)].boolean)) n->options = lappend(n->options, makeDefElem("full", NULL, (yylsp[(2) - (6)]))); if ((yyvsp[(3) - (6)].boolean)) n->options = lappend(n->options, makeDefElem("freeze", NULL, (yylsp[(3) - (6)]))); if ((yyvsp[(4) - (6)].boolean)) n->options = lappend(n->options, makeDefElem("verbose", NULL, (yylsp[(4) - (6)]))); if ((yyvsp[(5) - (6)].boolean)) n->options = lappend(n->options, makeDefElem("analyze", NULL, (yylsp[(5) - (6)]))); n->rels = (yyvsp[(6) - (6)].list); n->is_vacuumcmd = true; (yyval.node) = (Node *) n; ;} break; case 1550: #line 11870 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->options = (yyvsp[(3) - (5)].list); n->rels = (yyvsp[(5) - (5)].list); n->is_vacuumcmd = true; (yyval.node) = (Node *) n; ;} break; case 1551: #line 11881 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->options = NIL; if ((yyvsp[(2) - (3)].boolean)) n->options = lappend(n->options, makeDefElem("verbose", NULL, (yylsp[(2) - (3)]))); n->rels = (yyvsp[(3) - (3)].list); n->is_vacuumcmd = false; (yyval.node) = (Node *) n; ;} break; case 1552: #line 11893 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->options = (yyvsp[(3) - (5)].list); n->rels = (yyvsp[(5) - (5)].list); n->is_vacuumcmd = false; (yyval.node) = (Node *) n; ;} break; case 1553: #line 11905 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1554: #line 11909 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 1557: #line 11921 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1558: #line 11927 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1559: #line 11928 "gram.y" { (yyval.str) = "analyze"; ;} break; case 1560: #line 11929 "gram.y" { (yyval.str) = "format"; ;} break; case 1561: #line 11933 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 1562: #line 11934 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].node); ;} break; case 1563: #line 11935 "gram.y" { (yyval.node) = NULL; ;} break; case 1564: #line 11939 "gram.y" { (yyval.boolean) = true; ;} break; case 1565: #line 11940 "gram.y" { (yyval.boolean) = false; ;} break; case 1566: #line 11944 "gram.y" { (yyval.boolean) = true; ;} break; case 1567: #line 11945 "gram.y" { (yyval.boolean) = false; ;} break; case 1568: #line 11948 "gram.y" { (yyval.boolean) = true; ;} break; case 1569: #line 11949 "gram.y" { (yyval.boolean) = false; ;} break; case 1570: #line 11952 "gram.y" { (yyval.boolean) = true; ;} break; case 1571: #line 11953 "gram.y" { (yyval.boolean) = false; ;} break; case 1572: #line 11957 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1573: #line 11958 "gram.y" { (yyval.list) = NIL; ;} break; case 1574: #line 11963 "gram.y" { (yyval.node) = (Node *) makeVacuumRelation((yyvsp[(1) - (2)].range), InvalidOid, (yyvsp[(2) - (2)].list)); ;} break; case 1575: #line 11970 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1576: #line 11972 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1577: #line 11976 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1578: #line 11977 "gram.y" { (yyval.list) = NIL; ;} break; case 1579: #line 11991 "gram.y" { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[(2) - (2)].node); n->options = NIL; (yyval.node) = (Node *) n; ;} break; case 1580: #line 11999 "gram.y" { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[(4) - (4)].node); n->options = list_make1(makeDefElem("analyze", NULL, (yylsp[(2) - (4)]))); if ((yyvsp[(3) - (4)].boolean)) n->options = lappend(n->options, makeDefElem("verbose", NULL, (yylsp[(3) - (4)]))); (yyval.node) = (Node *) n; ;} break; case 1581: #line 12010 "gram.y" { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[(3) - (3)].node); n->options = list_make1(makeDefElem("verbose", NULL, (yylsp[(2) - (3)]))); (yyval.node) = (Node *) n; ;} break; case 1582: #line 12018 "gram.y" { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[(5) - (5)].node); n->options = (yyvsp[(3) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 1593: #line 12048 "gram.y" { PrepareStmt *n = makeNode(PrepareStmt); n->name = (yyvsp[(2) - (5)].str); n->argtypes = (yyvsp[(3) - (5)].list); n->query = (yyvsp[(5) - (5)].node); (yyval.node) = (Node *) n; ;} break; case 1594: #line 12058 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1595: #line 12059 "gram.y" { (yyval.list) = NIL; ;} break; case 1601: #line 12078 "gram.y" { ExecuteStmt *n = makeNode(ExecuteStmt); n->name = (yyvsp[(2) - (3)].str); n->params = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *) n; ;} break; case 1602: #line 12087 "gram.y" { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ExecuteStmt *n = makeNode(ExecuteStmt); n->name = (yyvsp[(7) - (9)].str); n->params = (yyvsp[(8) - (9)].list); ctas->query = (Node *) n; ctas->into = (yyvsp[(4) - (9)].into); ctas->objtype = OBJECT_TABLE; ctas->is_select_into = false; ctas->if_not_exists = false; /* cram additional flags into the IntoClause */ (yyvsp[(4) - (9)].into)->rel->relpersistence = (yyvsp[(2) - (9)].ival); (yyvsp[(4) - (9)].into)->skipData = !((yyvsp[(9) - (9)].boolean)); (yyval.node) = (Node *) ctas; ;} break; case 1603: #line 12105 "gram.y" { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ExecuteStmt *n = makeNode(ExecuteStmt); n->name = (yyvsp[(10) - (12)].str); n->params = (yyvsp[(11) - (12)].list); ctas->query = (Node *) n; ctas->into = (yyvsp[(7) - (12)].into); ctas->objtype = OBJECT_TABLE; ctas->is_select_into = false; ctas->if_not_exists = true; /* cram additional flags into the IntoClause */ (yyvsp[(7) - (12)].into)->rel->relpersistence = (yyvsp[(2) - (12)].ival); (yyvsp[(7) - (12)].into)->skipData = !((yyvsp[(12) - (12)].boolean)); (yyval.node) = (Node *) ctas; ;} break; case 1604: #line 12123 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1605: #line 12124 "gram.y" { (yyval.list) = NIL; ;} break; case 1606: #line 12135 "gram.y" { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = (yyvsp[(2) - (2)].str); n->isall = false; n->location = (yylsp[(2) - (2)]); (yyval.node) = (Node *) n; ;} break; case 1607: #line 12144 "gram.y" { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = (yyvsp[(3) - (3)].str); n->isall = false; n->location = (yylsp[(3) - (3)]); (yyval.node) = (Node *) n; ;} break; case 1608: #line 12153 "gram.y" { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = NULL; n->isall = true; n->location = -1; (yyval.node) = (Node *) n; ;} break; case 1609: #line 12162 "gram.y" { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = NULL; n->isall = true; n->location = -1; (yyval.node) = (Node *) n; ;} break; case 1610: #line 12182 "gram.y" { (yyvsp[(5) - (7)].istmt)->relation = (yyvsp[(4) - (7)].range); (yyvsp[(5) - (7)].istmt)->onConflictClause = (yyvsp[(6) - (7)].onconflict); (yyvsp[(5) - (7)].istmt)->returningList = (yyvsp[(7) - (7)].list); (yyvsp[(5) - (7)].istmt)->withClause = (yyvsp[(1) - (7)].with); (yyval.node) = (Node *) (yyvsp[(5) - (7)].istmt); ;} break; case 1611: #line 12199 "gram.y" { (yyval.range) = (yyvsp[(1) - (1)].range); ;} break; case 1612: #line 12203 "gram.y" { (yyvsp[(1) - (3)].range)->alias = makeAlias((yyvsp[(3) - (3)].str), NIL); (yyval.range) = (yyvsp[(1) - (3)].range); ;} break; case 1613: #line 12211 "gram.y" { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->selectStmt = (yyvsp[(1) - (1)].node); ;} break; case 1614: #line 12217 "gram.y" { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->override = (yyvsp[(2) - (4)].ival); (yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node); ;} break; case 1615: #line 12224 "gram.y" { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = (yyvsp[(2) - (4)].list); (yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node); ;} break; case 1616: #line 12230 "gram.y" { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = (yyvsp[(2) - (7)].list); (yyval.istmt)->override = (yyvsp[(5) - (7)].ival); (yyval.istmt)->selectStmt = (yyvsp[(7) - (7)].node); ;} break; case 1617: #line 12237 "gram.y" { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->selectStmt = NULL; ;} break; case 1618: #line 12245 "gram.y" { (yyval.ival) = OVERRIDING_USER_VALUE; ;} break; case 1619: #line 12246 "gram.y" { (yyval.ival) = OVERRIDING_SYSTEM_VALUE; ;} break; case 1620: #line 12251 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 1621: #line 12253 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} break; case 1622: #line 12258 "gram.y" { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[(1) - (2)].str); (yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); (yyval.target)->val = NULL; (yyval.target)->location = (yylsp[(1) - (2)]); ;} break; case 1623: #line 12269 "gram.y" { (yyval.onconflict) = makeNode(OnConflictClause); (yyval.onconflict)->action = ONCONFLICT_UPDATE; (yyval.onconflict)->infer = (yyvsp[(3) - (8)].infer); (yyval.onconflict)->targetList = (yyvsp[(7) - (8)].list); (yyval.onconflict)->whereClause = (yyvsp[(8) - (8)].node); (yyval.onconflict)->location = (yylsp[(1) - (8)]); ;} break; case 1624: #line 12279 "gram.y" { (yyval.onconflict) = makeNode(OnConflictClause); (yyval.onconflict)->action = ONCONFLICT_NOTHING; (yyval.onconflict)->infer = (yyvsp[(3) - (5)].infer); (yyval.onconflict)->targetList = NIL; (yyval.onconflict)->whereClause = NULL; (yyval.onconflict)->location = (yylsp[(1) - (5)]); ;} break; case 1625: #line 12288 "gram.y" { (yyval.onconflict) = NULL; ;} break; case 1626: #line 12295 "gram.y" { (yyval.infer) = makeNode(InferClause); (yyval.infer)->indexElems = (yyvsp[(2) - (4)].list); (yyval.infer)->whereClause = (yyvsp[(4) - (4)].node); (yyval.infer)->conname = NULL; (yyval.infer)->location = (yylsp[(1) - (4)]); ;} break; case 1627: #line 12304 "gram.y" { (yyval.infer) = makeNode(InferClause); (yyval.infer)->indexElems = NIL; (yyval.infer)->whereClause = NULL; (yyval.infer)->conname = (yyvsp[(3) - (3)].str); (yyval.infer)->location = (yylsp[(1) - (3)]); ;} break; case 1628: #line 12312 "gram.y" { (yyval.infer) = NULL; ;} break; case 1629: #line 12318 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1630: #line 12319 "gram.y" { (yyval.list) = NIL; ;} break; case 1631: #line 12332 "gram.y" { DeleteStmt *n = makeNode(DeleteStmt); n->relation = (yyvsp[(4) - (7)].range); n->usingClause = (yyvsp[(5) - (7)].list); n->whereClause = (yyvsp[(6) - (7)].node); n->returningList = (yyvsp[(7) - (7)].list); n->withClause = (yyvsp[(1) - (7)].with); (yyval.node) = (Node *) n; ;} break; case 1632: #line 12345 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1633: #line 12346 "gram.y" { (yyval.list) = NIL; ;} break; case 1634: #line 12358 "gram.y" { LockStmt *n = makeNode(LockStmt); n->relations = (yyvsp[(3) - (5)].list); n->mode = (yyvsp[(4) - (5)].ival); n->nowait = (yyvsp[(5) - (5)].boolean); (yyval.node) = (Node *) n; ;} break; case 1635: #line 12368 "gram.y" { (yyval.ival) = (yyvsp[(2) - (3)].ival); ;} break; case 1636: #line 12369 "gram.y" { (yyval.ival) = AccessExclusiveLock; ;} break; case 1637: #line 12372 "gram.y" { (yyval.ival) = AccessShareLock; ;} break; case 1638: #line 12373 "gram.y" { (yyval.ival) = RowShareLock; ;} break; case 1639: #line 12374 "gram.y" { (yyval.ival) = RowExclusiveLock; ;} break; case 1640: #line 12375 "gram.y" { (yyval.ival) = ShareUpdateExclusiveLock; ;} break; case 1641: #line 12376 "gram.y" { (yyval.ival) = ShareLock; ;} break; case 1642: #line 12377 "gram.y" { (yyval.ival) = ShareRowExclusiveLock; ;} break; case 1643: #line 12378 "gram.y" { (yyval.ival) = ExclusiveLock; ;} break; case 1644: #line 12379 "gram.y" { (yyval.ival) = AccessExclusiveLock; ;} break; case 1645: #line 12382 "gram.y" { (yyval.boolean) = true; ;} break; case 1646: #line 12383 "gram.y" { (yyval.boolean) = false; ;} break; case 1647: #line 12387 "gram.y" { (yyval.ival) = LockWaitError; ;} break; case 1648: #line 12388 "gram.y" { (yyval.ival) = LockWaitSkip; ;} break; case 1649: #line 12389 "gram.y" { (yyval.ival) = LockWaitBlock; ;} break; case 1650: #line 12405 "gram.y" { UpdateStmt *n = makeNode(UpdateStmt); n->relation = (yyvsp[(3) - (8)].range); n->targetList = (yyvsp[(5) - (8)].list); n->fromClause = (yyvsp[(6) - (8)].list); n->whereClause = (yyvsp[(7) - (8)].node); n->returningList = (yyvsp[(8) - (8)].list); n->withClause = (yyvsp[(1) - (8)].with); (yyval.node) = (Node *) n; ;} break; case 1651: #line 12419 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1652: #line 12420 "gram.y" { (yyval.list) = list_concat((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].list)); ;} break; case 1653: #line 12425 "gram.y" { (yyvsp[(1) - (3)].target)->val = (Node *) (yyvsp[(3) - (3)].node); (yyval.list) = list_make1((yyvsp[(1) - (3)].target)); ;} break; case 1654: #line 12430 "gram.y" { int ncolumns = list_length((yyvsp[(2) - (5)].list)); int i = 1; ListCell *col_cell; /* Create a MultiAssignRef source for each target */ foreach(col_cell, (yyvsp[(2) - (5)].list)) { ResTarget *res_col = (ResTarget *) lfirst(col_cell); MultiAssignRef *r = makeNode(MultiAssignRef); r->source = (Node *) (yyvsp[(5) - (5)].node); r->colno = i; r->ncolumns = ncolumns; res_col->val = (Node *) r; i++; } (yyval.list) = (yyvsp[(2) - (5)].list); ;} break; case 1655: #line 12454 "gram.y" { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[(1) - (2)].str); (yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); (yyval.target)->val = NULL; /* upper production sets this */ (yyval.target)->location = (yylsp[(1) - (2)]); ;} break; case 1656: #line 12464 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 1657: #line 12465 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].target)); ;} break; case 1658: #line 12482 "gram.y" { MergeStmt *m = makeNode(MergeStmt); m->withClause = (yyvsp[(1) - (10)].with); m->relation = (yyvsp[(4) - (10)].range); m->sourceRelation = (yyvsp[(6) - (10)].node); m->joinCondition = (yyvsp[(8) - (10)].node); m->mergeWhenClauses = (yyvsp[(9) - (10)].list); m->returningList = (yyvsp[(10) - (10)].list); (yyval.node) = (Node *) m; ;} break; case 1659: #line 12497 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1660: #line 12498 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list),(yyvsp[(2) - (2)].node)); ;} break; case 1661: #line 12509 "gram.y" { (yyvsp[(4) - (4)].mergewhen)->matchKind = (yyvsp[(1) - (4)].mergematch); (yyvsp[(4) - (4)].mergewhen)->condition = (yyvsp[(2) - (4)].node); (yyval.node) = (Node *) (yyvsp[(4) - (4)].mergewhen); ;} break; case 1662: #line 12516 "gram.y" { (yyvsp[(4) - (4)].mergewhen)->matchKind = (yyvsp[(1) - (4)].mergematch); (yyvsp[(4) - (4)].mergewhen)->condition = (yyvsp[(2) - (4)].node); (yyval.node) = (Node *) (yyvsp[(4) - (4)].mergewhen); ;} break; case 1663: #line 12523 "gram.y" { (yyvsp[(4) - (4)].mergewhen)->matchKind = (yyvsp[(1) - (4)].mergematch); (yyvsp[(4) - (4)].mergewhen)->condition = (yyvsp[(2) - (4)].node); (yyval.node) = (Node *) (yyvsp[(4) - (4)].mergewhen); ;} break; case 1664: #line 12530 "gram.y" { MergeWhenClause *m = makeNode(MergeWhenClause); m->matchKind = (yyvsp[(1) - (5)].mergematch); m->commandType = CMD_NOTHING; m->condition = (yyvsp[(2) - (5)].node); (yyval.node) = (Node *) m; ;} break; case 1665: #line 12540 "gram.y" { MergeWhenClause *m = makeNode(MergeWhenClause); m->matchKind = (yyvsp[(1) - (5)].mergematch); m->commandType = CMD_NOTHING; m->condition = (yyvsp[(2) - (5)].node); (yyval.node) = (Node *) m; ;} break; case 1666: #line 12552 "gram.y" { (yyval.mergematch) = MERGE_WHEN_MATCHED; ;} break; case 1667: #line 12553 "gram.y" { (yyval.mergematch) = MERGE_WHEN_NOT_MATCHED_BY_SOURCE; ;} break; case 1668: #line 12557 "gram.y" { (yyval.mergematch) = MERGE_WHEN_NOT_MATCHED_BY_TARGET; ;} break; case 1669: #line 12558 "gram.y" { (yyval.mergematch) = MERGE_WHEN_NOT_MATCHED_BY_TARGET; ;} break; case 1670: #line 12562 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1671: #line 12563 "gram.y" { (yyval.node) = NULL; ;} break; case 1672: #line 12568 "gram.y" { MergeWhenClause *n = makeNode(MergeWhenClause); n->commandType = CMD_UPDATE; n->override = OVERRIDING_NOT_SET; n->targetList = (yyvsp[(3) - (3)].list); n->values = NIL; (yyval.mergewhen) = n; ;} break; case 1673: #line 12581 "gram.y" { MergeWhenClause *n = makeNode(MergeWhenClause); n->commandType = CMD_DELETE; n->override = OVERRIDING_NOT_SET; n->targetList = NIL; n->values = NIL; (yyval.mergewhen) = n; ;} break; case 1674: #line 12594 "gram.y" { MergeWhenClause *n = makeNode(MergeWhenClause); n->commandType = CMD_INSERT; n->override = OVERRIDING_NOT_SET; n->targetList = NIL; n->values = (yyvsp[(2) - (2)].list); (yyval.mergewhen) = n; ;} break; case 1675: #line 12603 "gram.y" { MergeWhenClause *n = makeNode(MergeWhenClause); n->commandType = CMD_INSERT; n->override = (yyvsp[(3) - (5)].ival); n->targetList = NIL; n->values = (yyvsp[(5) - (5)].list); (yyval.mergewhen) = n; ;} break; case 1676: #line 12612 "gram.y" { MergeWhenClause *n = makeNode(MergeWhenClause); n->commandType = CMD_INSERT; n->override = OVERRIDING_NOT_SET; n->targetList = (yyvsp[(3) - (5)].list); n->values = (yyvsp[(5) - (5)].list); (yyval.mergewhen) = n; ;} break; case 1677: #line 12621 "gram.y" { MergeWhenClause *n = makeNode(MergeWhenClause); n->commandType = CMD_INSERT; n->override = (yyvsp[(6) - (8)].ival); n->targetList = (yyvsp[(3) - (8)].list); n->values = (yyvsp[(8) - (8)].list); (yyval.mergewhen) = n; ;} break; case 1678: #line 12630 "gram.y" { MergeWhenClause *n = makeNode(MergeWhenClause); n->commandType = CMD_INSERT; n->override = OVERRIDING_NOT_SET; n->targetList = NIL; n->values = NIL; (yyval.mergewhen) = n; ;} break; case 1679: #line 12642 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 1680: #line 12654 "gram.y" { DeclareCursorStmt *n = makeNode(DeclareCursorStmt); n->portalname = (yyvsp[(2) - (7)].str); /* currently we always set FAST_PLAN option */ n->options = (yyvsp[(3) - (7)].ival) | (yyvsp[(5) - (7)].ival) | CURSOR_OPT_FAST_PLAN; n->query = (yyvsp[(7) - (7)].node); (yyval.node) = (Node *) n; ;} break; case 1681: #line 12665 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1682: #line 12668 "gram.y" { (yyval.ival) = 0; ;} break; case 1683: #line 12669 "gram.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) | CURSOR_OPT_NO_SCROLL; ;} break; case 1684: #line 12670 "gram.y" { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_SCROLL; ;} break; case 1685: #line 12671 "gram.y" { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_BINARY; ;} break; case 1686: #line 12672 "gram.y" { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_ASENSITIVE; ;} break; case 1687: #line 12673 "gram.y" { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_INSENSITIVE; ;} break; case 1688: #line 12676 "gram.y" { (yyval.ival) = 0; ;} break; case 1689: #line 12677 "gram.y" { (yyval.ival) = CURSOR_OPT_HOLD; ;} break; case 1690: #line 12678 "gram.y" { (yyval.ival) = 0; ;} break; case 1693: #line 12731 "gram.y" { (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; case 1694: #line 12732 "gram.y" { (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; case 1695: #line 12747 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1696: #line 12749 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list), NIL, NULL, NULL, yyscanner); (yyval.node) = (yyvsp[(1) - (2)].node); ;} break; case 1697: #line 12756 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].list), (yyvsp[(4) - (4)].selectlimit), NULL, yyscanner); (yyval.node) = (yyvsp[(1) - (4)].node); ;} break; case 1698: #line 12764 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(4) - (4)].list), (yyvsp[(3) - (4)].selectlimit), NULL, yyscanner); (yyval.node) = (yyvsp[(1) - (4)].node); ;} break; case 1699: #line 12772 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(2) - (2)].node), NULL, NIL, NULL, (yyvsp[(1) - (2)].with), yyscanner); (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1700: #line 12780 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].list), NIL, NULL, (yyvsp[(1) - (3)].with), yyscanner); (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; case 1701: #line 12788 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(4) - (5)].list), (yyvsp[(5) - (5)].selectlimit), (yyvsp[(1) - (5)].with), yyscanner); (yyval.node) = (yyvsp[(2) - (5)].node); ;} break; case 1702: #line 12796 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list), (yyvsp[(4) - (5)].selectlimit), (yyvsp[(1) - (5)].with), yyscanner); (yyval.node) = (yyvsp[(2) - (5)].node); ;} break; case 1703: #line 12806 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1704: #line 12807 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1705: #line 12842 "gram.y" { SelectStmt *n = makeNode(SelectStmt); n->targetList = (yyvsp[(3) - (9)].list); n->intoClause = (yyvsp[(4) - (9)].into); n->fromClause = (yyvsp[(5) - (9)].list); n->whereClause = (yyvsp[(6) - (9)].node); n->groupClause = ((yyvsp[(7) - (9)].groupclause))->list; n->groupDistinct = ((yyvsp[(7) - (9)].groupclause))->distinct; n->havingClause = (yyvsp[(8) - (9)].node); n->windowClause = (yyvsp[(9) - (9)].list); (yyval.node) = (Node *) n; ;} break; case 1706: #line 12858 "gram.y" { SelectStmt *n = makeNode(SelectStmt); n->distinctClause = (yyvsp[(2) - (9)].list); n->targetList = (yyvsp[(3) - (9)].list); n->intoClause = (yyvsp[(4) - (9)].into); n->fromClause = (yyvsp[(5) - (9)].list); n->whereClause = (yyvsp[(6) - (9)].node); n->groupClause = ((yyvsp[(7) - (9)].groupclause))->list; n->groupDistinct = ((yyvsp[(7) - (9)].groupclause))->distinct; n->havingClause = (yyvsp[(8) - (9)].node); n->windowClause = (yyvsp[(9) - (9)].list); (yyval.node) = (Node *) n; ;} break; case 1707: #line 12872 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1708: #line 12874 "gram.y" { /* same as SELECT * FROM relation_expr */ ColumnRef *cr = makeNode(ColumnRef); ResTarget *rt = makeNode(ResTarget); SelectStmt *n = makeNode(SelectStmt); cr->fields = list_make1(makeNode(A_Star)); cr->location = -1; rt->name = NULL; rt->indirection = NIL; rt->val = (Node *) cr; rt->location = -1; n->targetList = list_make1(rt); n->fromClause = list_make1((yyvsp[(2) - (2)].range)); (yyval.node) = (Node *) n; ;} break; case 1709: #line 12893 "gram.y" { (yyval.node) = makeSetOp(SETOP_UNION, (yyvsp[(3) - (4)].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); ;} break; case 1710: #line 12897 "gram.y" { (yyval.node) = makeSetOp(SETOP_INTERSECT, (yyvsp[(3) - (4)].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); ;} break; case 1711: #line 12901 "gram.y" { (yyval.node) = makeSetOp(SETOP_EXCEPT, (yyvsp[(3) - (4)].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); ;} break; case 1712: #line 12916 "gram.y" { (yyval.with) = makeNode(WithClause); (yyval.with)->ctes = (yyvsp[(2) - (2)].list); (yyval.with)->recursive = false; (yyval.with)->location = (yylsp[(1) - (2)]); ;} break; case 1713: #line 12923 "gram.y" { (yyval.with) = makeNode(WithClause); (yyval.with)->ctes = (yyvsp[(2) - (2)].list); (yyval.with)->recursive = false; (yyval.with)->location = (yylsp[(1) - (2)]); ;} break; case 1714: #line 12930 "gram.y" { (yyval.with) = makeNode(WithClause); (yyval.with)->ctes = (yyvsp[(3) - (3)].list); (yyval.with)->recursive = true; (yyval.with)->location = (yylsp[(1) - (3)]); ;} break; case 1715: #line 12939 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1716: #line 12940 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1717: #line 12944 "gram.y" { CommonTableExpr *n = makeNode(CommonTableExpr); n->ctename = (yyvsp[(1) - (9)].str); n->aliascolnames = (yyvsp[(2) - (9)].list); n->ctematerialized = (yyvsp[(4) - (9)].ival); n->ctequery = (yyvsp[(6) - (9)].node); n->search_clause = castNode(CTESearchClause, (yyvsp[(8) - (9)].node)); n->cycle_clause = castNode(CTECycleClause, (yyvsp[(9) - (9)].node)); n->location = (yylsp[(1) - (9)]); (yyval.node) = (Node *) n; ;} break; case 1718: #line 12959 "gram.y" { (yyval.ival) = CTEMaterializeAlways; ;} break; case 1719: #line 12960 "gram.y" { (yyval.ival) = CTEMaterializeNever; ;} break; case 1720: #line 12961 "gram.y" { (yyval.ival) = CTEMaterializeDefault; ;} break; case 1721: #line 12966 "gram.y" { CTESearchClause *n = makeNode(CTESearchClause); n->search_col_list = (yyvsp[(5) - (7)].list); n->search_breadth_first = false; n->search_seq_column = (yyvsp[(7) - (7)].str); n->location = (yylsp[(1) - (7)]); (yyval.node) = (Node *) n; ;} break; case 1722: #line 12976 "gram.y" { CTESearchClause *n = makeNode(CTESearchClause); n->search_col_list = (yyvsp[(5) - (7)].list); n->search_breadth_first = true; n->search_seq_column = (yyvsp[(7) - (7)].str); n->location = (yylsp[(1) - (7)]); (yyval.node) = (Node *) n; ;} break; case 1723: #line 12986 "gram.y" { (yyval.node) = NULL; ;} break; case 1724: #line 12993 "gram.y" { CTECycleClause *n = makeNode(CTECycleClause); n->cycle_col_list = (yyvsp[(2) - (10)].list); n->cycle_mark_column = (yyvsp[(4) - (10)].str); n->cycle_mark_value = (yyvsp[(6) - (10)].node); n->cycle_mark_default = (yyvsp[(8) - (10)].node); n->cycle_path_column = (yyvsp[(10) - (10)].str); n->location = (yylsp[(1) - (10)]); (yyval.node) = (Node *) n; ;} break; case 1725: #line 13005 "gram.y" { CTECycleClause *n = makeNode(CTECycleClause); n->cycle_col_list = (yyvsp[(2) - (6)].list); n->cycle_mark_column = (yyvsp[(4) - (6)].str); n->cycle_mark_value = makeBoolAConst(true, -1); n->cycle_mark_default = makeBoolAConst(false, -1); n->cycle_path_column = (yyvsp[(6) - (6)].str); n->location = (yylsp[(1) - (6)]); (yyval.node) = (Node *) n; ;} break; case 1726: #line 13017 "gram.y" { (yyval.node) = NULL; ;} break; case 1727: #line 13023 "gram.y" { (yyval.with) = (yyvsp[(1) - (1)].with); ;} break; case 1728: #line 13024 "gram.y" { (yyval.with) = NULL; ;} break; case 1729: #line 13029 "gram.y" { (yyval.into) = makeNode(IntoClause); (yyval.into)->rel = (yyvsp[(2) - (2)].range); (yyval.into)->colNames = NIL; (yyval.into)->options = NIL; (yyval.into)->onCommit = ONCOMMIT_NOOP; (yyval.into)->tableSpaceName = NULL; (yyval.into)->viewQuery = NULL; (yyval.into)->skipData = false; ;} break; case 1730: #line 13040 "gram.y" { (yyval.into) = NULL; ;} break; case 1731: #line 13049 "gram.y" { (yyval.range) = (yyvsp[(3) - (3)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ;} break; case 1732: #line 13054 "gram.y" { (yyval.range) = (yyvsp[(3) - (3)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ;} break; case 1733: #line 13059 "gram.y" { (yyval.range) = (yyvsp[(4) - (4)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ;} break; case 1734: #line 13064 "gram.y" { (yyval.range) = (yyvsp[(4) - (4)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ;} break; case 1735: #line 13069 "gram.y" { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[(1) - (4)])))); (yyval.range) = (yyvsp[(4) - (4)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ;} break; case 1736: #line 13077 "gram.y" { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[(1) - (4)])))); (yyval.range) = (yyvsp[(4) - (4)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ;} break; case 1737: #line 13085 "gram.y" { (yyval.range) = (yyvsp[(3) - (3)].range); (yyval.range)->relpersistence = RELPERSISTENCE_UNLOGGED; ;} break; case 1738: #line 13090 "gram.y" { (yyval.range) = (yyvsp[(2) - (2)].range); (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; ;} break; case 1739: #line 13095 "gram.y" { (yyval.range) = (yyvsp[(1) - (1)].range); (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; ;} break; case 1742: #line 13106 "gram.y" { (yyval.setquantifier) = SET_QUANTIFIER_ALL; ;} break; case 1743: #line 13107 "gram.y" { (yyval.setquantifier) = SET_QUANTIFIER_DISTINCT; ;} break; case 1744: #line 13108 "gram.y" { (yyval.setquantifier) = SET_QUANTIFIER_DEFAULT; ;} break; case 1745: #line 13115 "gram.y" { (yyval.list) = list_make1(NIL); ;} break; case 1746: #line 13116 "gram.y" { (yyval.list) = (yyvsp[(4) - (5)].list); ;} break; case 1749: #line 13125 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1750: #line 13126 "gram.y" { (yyval.list) = NIL; ;} break; case 1751: #line 13130 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1752: #line 13131 "gram.y" { (yyval.list) = NIL; ;} break; case 1753: #line 13135 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); ;} break; case 1754: #line 13139 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].sortby)); ;} break; case 1755: #line 13140 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].sortby)); ;} break; case 1756: #line 13144 "gram.y" { (yyval.sortby) = makeNode(SortBy); (yyval.sortby)->node = (yyvsp[(1) - (4)].node); (yyval.sortby)->sortby_dir = SORTBY_USING; (yyval.sortby)->sortby_nulls = (yyvsp[(4) - (4)].ival); (yyval.sortby)->useOp = (yyvsp[(3) - (4)].list); (yyval.sortby)->location = (yylsp[(3) - (4)]); ;} break; case 1757: #line 13153 "gram.y" { (yyval.sortby) = makeNode(SortBy); (yyval.sortby)->node = (yyvsp[(1) - (3)].node); (yyval.sortby)->sortby_dir = (yyvsp[(2) - (3)].ival); (yyval.sortby)->sortby_nulls = (yyvsp[(3) - (3)].ival); (yyval.sortby)->useOp = NIL; (yyval.sortby)->location = -1; /* no operator */ ;} break; case 1758: #line 13166 "gram.y" { (yyval.selectlimit) = (yyvsp[(1) - (2)].selectlimit); ((yyval.selectlimit))->limitOffset = (yyvsp[(2) - (2)].node); ;} break; case 1759: #line 13171 "gram.y" { (yyval.selectlimit) = (yyvsp[(2) - (2)].selectlimit); ((yyval.selectlimit))->limitOffset = (yyvsp[(1) - (2)].node); ;} break; case 1760: #line 13176 "gram.y" { (yyval.selectlimit) = (yyvsp[(1) - (1)].selectlimit); ;} break; case 1761: #line 13180 "gram.y" { SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); n->limitOffset = (yyvsp[(1) - (1)].node); n->limitCount = NULL; n->limitOption = LIMIT_OPTION_COUNT; (yyval.selectlimit) = n; ;} break; case 1762: #line 13191 "gram.y" { (yyval.selectlimit) = (yyvsp[(1) - (1)].selectlimit); ;} break; case 1763: #line 13192 "gram.y" { (yyval.selectlimit) = NULL; ;} break; case 1764: #line 13197 "gram.y" { SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); n->limitOffset = NULL; n->limitCount = (yyvsp[(2) - (2)].node); n->limitOption = LIMIT_OPTION_COUNT; (yyval.selectlimit) = n; ;} break; case 1765: #line 13206 "gram.y" { /* Disabled because it was too confusing, bjm 2002-02-18 */ ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("LIMIT #,# syntax is not supported"), errhint("Use separate LIMIT and OFFSET clauses."), parser_errposition((yylsp[(1) - (4)])))); ;} break; case 1766: #line 13222 "gram.y" { SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); n->limitOffset = NULL; n->limitCount = (yyvsp[(3) - (5)].node); n->limitOption = LIMIT_OPTION_COUNT; (yyval.selectlimit) = n; ;} break; case 1767: #line 13231 "gram.y" { SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); n->limitOffset = NULL; n->limitCount = (yyvsp[(3) - (6)].node); n->limitOption = LIMIT_OPTION_WITH_TIES; (yyval.selectlimit) = n; ;} break; case 1768: #line 13240 "gram.y" { SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); n->limitOffset = NULL; n->limitCount = makeIntConst(1, -1); n->limitOption = LIMIT_OPTION_COUNT; (yyval.selectlimit) = n; ;} break; case 1769: #line 13249 "gram.y" { SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); n->limitOffset = NULL; n->limitCount = makeIntConst(1, -1); n->limitOption = LIMIT_OPTION_WITH_TIES; (yyval.selectlimit) = n; ;} break; case 1770: #line 13261 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1771: #line 13264 "gram.y" { (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; case 1772: #line 13268 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1773: #line 13270 "gram.y" { /* LIMIT ALL is represented as a NULL constant */ (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); ;} break; case 1774: #line 13277 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1775: #line 13297 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1776: #line 13299 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1777: #line 13301 "gram.y" { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1778: #line 13305 "gram.y" { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival),(yylsp[(1) - (1)])); ;} break; case 1779: #line 13306 "gram.y" { (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str),(yylsp[(1) - (1)])); ;} break; case 1780: #line 13310 "gram.y" { (yyval.ival) = 0; ;} break; case 1781: #line 13311 "gram.y" { (yyval.ival) = 0; ;} break; case 1782: #line 13314 "gram.y" { (yyval.ival) = 0; ;} break; case 1783: #line 13315 "gram.y" { (yyval.ival) = 0; ;} break; case 1784: #line 13341 "gram.y" { GroupClause *n = (GroupClause *) palloc(sizeof(GroupClause)); n->distinct = (yyvsp[(3) - (4)].setquantifier) == SET_QUANTIFIER_DISTINCT; n->list = (yyvsp[(4) - (4)].list); (yyval.groupclause) = n; ;} break; case 1785: #line 13349 "gram.y" { GroupClause *n = (GroupClause *) palloc(sizeof(GroupClause)); n->distinct = false; n->list = NIL; (yyval.groupclause) = n; ;} break; case 1786: #line 13359 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1787: #line 13360 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].node)); ;} break; case 1788: #line 13364 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1789: #line 13365 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1790: #line 13366 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1791: #line 13367 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1792: #line 13368 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1793: #line 13373 "gram.y" { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[(1) - (2)])); ;} break; case 1794: #line 13386 "gram.y" { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 1795: #line 13393 "gram.y" { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 1796: #line 13400 "gram.y" { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); ;} break; case 1797: #line 13406 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1798: #line 13407 "gram.y" { (yyval.node) = NULL; ;} break; case 1799: #line 13411 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1800: #line 13412 "gram.y" { (yyval.list) = NIL; ;} break; case 1801: #line 13416 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1802: #line 13417 "gram.y" { (yyval.list) = NIL; ;} break; case 1803: #line 13421 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1804: #line 13422 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 1805: #line 13427 "gram.y" { LockingClause *n = makeNode(LockingClause); n->lockedRels = (yyvsp[(2) - (3)].list); n->strength = (yyvsp[(1) - (3)].ival); n->waitPolicy = (yyvsp[(3) - (3)].ival); (yyval.node) = (Node *) n; ;} break; case 1806: #line 13438 "gram.y" { (yyval.ival) = LCS_FORUPDATE; ;} break; case 1807: #line 13439 "gram.y" { (yyval.ival) = LCS_FORNOKEYUPDATE; ;} break; case 1808: #line 13440 "gram.y" { (yyval.ival) = LCS_FORSHARE; ;} break; case 1809: #line 13441 "gram.y" { (yyval.ival) = LCS_FORKEYSHARE; ;} break; case 1810: #line 13445 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1811: #line 13446 "gram.y" { (yyval.list) = NIL; ;} break; case 1812: #line 13457 "gram.y" { SelectStmt *n = makeNode(SelectStmt); n->valuesLists = list_make1((yyvsp[(3) - (4)].list)); (yyval.node) = (Node *) n; ;} break; case 1813: #line 13464 "gram.y" { SelectStmt *n = (SelectStmt *) (yyvsp[(1) - (5)].node); n->valuesLists = lappend(n->valuesLists, (yyvsp[(4) - (5)].list)); (yyval.node) = (Node *) n; ;} break; case 1814: #line 13482 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1815: #line 13483 "gram.y" { (yyval.list) = NIL; ;} break; case 1816: #line 13487 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1817: #line 13488 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1818: #line 13495 "gram.y" { (yyvsp[(1) - (2)].range)->alias = (yyvsp[(2) - (2)].alias); (yyval.node) = (Node *) (yyvsp[(1) - (2)].range); ;} break; case 1819: #line 13500 "gram.y" { RangeTableSample *n = (RangeTableSample *) (yyvsp[(3) - (3)].node); (yyvsp[(1) - (3)].range)->alias = (yyvsp[(2) - (3)].alias); /* relation_expr goes inside the RangeTableSample node */ n->relation = (Node *) (yyvsp[(1) - (3)].range); (yyval.node) = (Node *) n; ;} break; case 1820: #line 13509 "gram.y" { RangeFunction *n = (RangeFunction *) (yyvsp[(1) - (2)].node); n->alias = linitial((yyvsp[(2) - (2)].list)); n->coldeflist = lsecond((yyvsp[(2) - (2)].list)); (yyval.node) = (Node *) n; ;} break; case 1821: #line 13517 "gram.y" { RangeFunction *n = (RangeFunction *) (yyvsp[(2) - (3)].node); n->lateral = true; n->alias = linitial((yyvsp[(3) - (3)].list)); n->coldeflist = lsecond((yyvsp[(3) - (3)].list)); (yyval.node) = (Node *) n; ;} break; case 1822: #line 13526 "gram.y" { RangeTableFunc *n = (RangeTableFunc *) (yyvsp[(1) - (2)].node); n->alias = (yyvsp[(2) - (2)].alias); (yyval.node) = (Node *) n; ;} break; case 1823: #line 13533 "gram.y" { RangeTableFunc *n = (RangeTableFunc *) (yyvsp[(2) - (3)].node); n->lateral = true; n->alias = (yyvsp[(3) - (3)].alias); (yyval.node) = (Node *) n; ;} break; case 1824: #line 13541 "gram.y" { RangeSubselect *n = makeNode(RangeSubselect); n->lateral = false; n->subquery = (yyvsp[(1) - (2)].node); n->alias = (yyvsp[(2) - (2)].alias); (yyval.node) = (Node *) n; ;} break; case 1825: #line 13550 "gram.y" { RangeSubselect *n = makeNode(RangeSubselect); n->lateral = true; n->subquery = (yyvsp[(2) - (3)].node); n->alias = (yyvsp[(3) - (3)].alias); (yyval.node) = (Node *) n; ;} break; case 1826: #line 13559 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].jexpr); ;} break; case 1827: #line 13563 "gram.y" { (yyvsp[(2) - (4)].jexpr)->alias = (yyvsp[(4) - (4)].alias); (yyval.node) = (Node *) (yyvsp[(2) - (4)].jexpr); ;} break; case 1828: #line 13568 "gram.y" { JsonTable *jt = castNode(JsonTable, (yyvsp[(1) - (2)].node)); jt->alias = (yyvsp[(2) - (2)].alias); (yyval.node) = (Node *) jt; ;} break; case 1829: #line 13575 "gram.y" { JsonTable *jt = castNode(JsonTable, (yyvsp[(2) - (3)].node)); jt->alias = (yyvsp[(3) - (3)].alias); jt->lateral = true; (yyval.node) = (Node *) jt; ;} break; case 1830: #line 13604 "gram.y" { (yyval.jexpr) = (yyvsp[(2) - (3)].jexpr); ;} break; case 1831: #line 13608 "gram.y" { /* CROSS JOIN is same as unqualified inner join */ JoinExpr *n = makeNode(JoinExpr); n->jointype = JOIN_INNER; n->isNatural = false; n->larg = (yyvsp[(1) - (4)].node); n->rarg = (yyvsp[(4) - (4)].node); n->usingClause = NIL; n->join_using_alias = NULL; n->quals = NULL; (yyval.jexpr) = n; ;} break; case 1832: #line 13622 "gram.y" { JoinExpr *n = makeNode(JoinExpr); n->jointype = (yyvsp[(2) - (5)].jtype); n->isNatural = false; n->larg = (yyvsp[(1) - (5)].node); n->rarg = (yyvsp[(4) - (5)].node); if ((yyvsp[(5) - (5)].node) != NULL && IsA((yyvsp[(5) - (5)].node), List)) { /* USING clause */ n->usingClause = linitial_node(List, castNode(List, (yyvsp[(5) - (5)].node))); n->join_using_alias = lsecond_node(Alias, castNode(List, (yyvsp[(5) - (5)].node))); } else { /* ON clause */ n->quals = (yyvsp[(5) - (5)].node); } (yyval.jexpr) = n; ;} break; case 1833: #line 13643 "gram.y" { /* letting join_type reduce to empty doesn't work */ JoinExpr *n = makeNode(JoinExpr); n->jointype = JOIN_INNER; n->isNatural = false; n->larg = (yyvsp[(1) - (4)].node); n->rarg = (yyvsp[(3) - (4)].node); if ((yyvsp[(4) - (4)].node) != NULL && IsA((yyvsp[(4) - (4)].node), List)) { /* USING clause */ n->usingClause = linitial_node(List, castNode(List, (yyvsp[(4) - (4)].node))); n->join_using_alias = lsecond_node(Alias, castNode(List, (yyvsp[(4) - (4)].node))); } else { /* ON clause */ n->quals = (yyvsp[(4) - (4)].node); } (yyval.jexpr) = n; ;} break; case 1834: #line 13665 "gram.y" { JoinExpr *n = makeNode(JoinExpr); n->jointype = (yyvsp[(3) - (5)].jtype); n->isNatural = true; n->larg = (yyvsp[(1) - (5)].node); n->rarg = (yyvsp[(5) - (5)].node); n->usingClause = NIL; /* figure out which columns later... */ n->join_using_alias = NULL; n->quals = NULL; /* fill later */ (yyval.jexpr) = n; ;} break; case 1835: #line 13678 "gram.y" { /* letting join_type reduce to empty doesn't work */ JoinExpr *n = makeNode(JoinExpr); n->jointype = JOIN_INNER; n->isNatural = true; n->larg = (yyvsp[(1) - (4)].node); n->rarg = (yyvsp[(4) - (4)].node); n->usingClause = NIL; /* figure out which columns later... */ n->join_using_alias = NULL; n->quals = NULL; /* fill later */ (yyval.jexpr) = n; ;} break; case 1836: #line 13695 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(2) - (5)].str); (yyval.alias)->colnames = (yyvsp[(4) - (5)].list); ;} break; case 1837: #line 13701 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(2) - (2)].str); ;} break; case 1838: #line 13706 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(1) - (4)].str); (yyval.alias)->colnames = (yyvsp[(3) - (4)].list); ;} break; case 1839: #line 13712 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(1) - (1)].str); ;} break; case 1840: #line 13718 "gram.y" { (yyval.alias) = (yyvsp[(1) - (1)].alias); ;} break; case 1841: #line 13719 "gram.y" { (yyval.alias) = NULL; ;} break; case 1842: #line 13730 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(2) - (2)].str); /* the column name list will be inserted later */ ;} break; case 1843: #line 13735 "gram.y" { (yyval.alias) = NULL; ;} break; case 1844: #line 13744 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (1)].alias), NIL); ;} break; case 1845: #line 13748 "gram.y" { (yyval.list) = list_make2(NULL, (yyvsp[(3) - (4)].list)); ;} break; case 1846: #line 13752 "gram.y" { Alias *a = makeNode(Alias); a->aliasname = (yyvsp[(2) - (5)].str); (yyval.list) = list_make2(a, (yyvsp[(4) - (5)].list)); ;} break; case 1847: #line 13759 "gram.y" { Alias *a = makeNode(Alias); a->aliasname = (yyvsp[(1) - (4)].str); (yyval.list) = list_make2(a, (yyvsp[(3) - (4)].list)); ;} break; case 1848: #line 13766 "gram.y" { (yyval.list) = list_make2(NULL, NIL); ;} break; case 1849: #line 13771 "gram.y" { (yyval.jtype) = JOIN_FULL; ;} break; case 1850: #line 13772 "gram.y" { (yyval.jtype) = JOIN_LEFT; ;} break; case 1851: #line 13773 "gram.y" { (yyval.jtype) = JOIN_RIGHT; ;} break; case 1852: #line 13774 "gram.y" { (yyval.jtype) = JOIN_INNER; ;} break; case 1855: #line 13795 "gram.y" { (yyval.node) = (Node *) list_make2((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].alias)); ;} break; case 1856: #line 13799 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1857: #line 13807 "gram.y" { /* inheritance query, implicitly */ (yyval.range) = (yyvsp[(1) - (1)].range); (yyval.range)->inh = true; (yyval.range)->alias = NULL; ;} break; case 1858: #line 13814 "gram.y" { (yyval.range) = (yyvsp[(1) - (1)].range); ;} break; case 1859: #line 13821 "gram.y" { /* inheritance query, explicitly */ (yyval.range) = (yyvsp[(1) - (2)].range); (yyval.range)->inh = true; (yyval.range)->alias = NULL; ;} break; case 1860: #line 13828 "gram.y" { /* no inheritance */ (yyval.range) = (yyvsp[(2) - (2)].range); (yyval.range)->inh = false; (yyval.range)->alias = NULL; ;} break; case 1861: #line 13835 "gram.y" { /* no inheritance, SQL99-style syntax */ (yyval.range) = (yyvsp[(3) - (4)].range); (yyval.range)->inh = false; (yyval.range)->alias = NULL; ;} break; case 1862: #line 13845 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;} break; case 1863: #line 13846 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;} break; case 1864: #line 13860 "gram.y" { (yyval.range) = (yyvsp[(1) - (1)].range); ;} break; case 1865: #line 13864 "gram.y" { Alias *alias = makeNode(Alias); alias->aliasname = (yyvsp[(2) - (2)].str); (yyvsp[(1) - (2)].range)->alias = alias; (yyval.range) = (yyvsp[(1) - (2)].range); ;} break; case 1866: #line 13872 "gram.y" { Alias *alias = makeNode(Alias); alias->aliasname = (yyvsp[(3) - (3)].str); (yyvsp[(1) - (3)].range)->alias = alias; (yyval.range) = (yyvsp[(1) - (3)].range); ;} break; case 1867: #line 13886 "gram.y" { RangeTableSample *n = makeNode(RangeTableSample); /* n->relation will be filled in later */ n->method = (yyvsp[(2) - (6)].list); n->args = (yyvsp[(4) - (6)].list); n->repeatable = (yyvsp[(6) - (6)].node); n->location = (yylsp[(2) - (6)]); (yyval.node) = (Node *) n; ;} break; case 1868: #line 13899 "gram.y" { (yyval.node) = (Node *) (yyvsp[(3) - (4)].node); ;} break; case 1869: #line 13900 "gram.y" { (yyval.node) = NULL; ;} break; case 1870: #line 13916 "gram.y" { RangeFunction *n = makeNode(RangeFunction); n->lateral = false; n->ordinality = (yyvsp[(2) - (2)].boolean); n->is_rowsfrom = false; n->functions = list_make1(list_make2((yyvsp[(1) - (2)].node), NIL)); /* alias and coldeflist are set by table_ref production */ (yyval.node) = (Node *) n; ;} break; case 1871: #line 13927 "gram.y" { RangeFunction *n = makeNode(RangeFunction); n->lateral = false; n->ordinality = (yyvsp[(6) - (6)].boolean); n->is_rowsfrom = true; n->functions = (yyvsp[(4) - (6)].list); /* alias and coldeflist are set by table_ref production */ (yyval.node) = (Node *) n; ;} break; case 1872: #line 13940 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list)); ;} break; case 1873: #line 13944 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} break; case 1874: #line 13945 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} break; case 1875: #line 13948 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 1876: #line 13949 "gram.y" { (yyval.list) = NIL; ;} break; case 1877: #line 13952 "gram.y" { (yyval.boolean) = true; ;} break; case 1878: #line 13953 "gram.y" { (yyval.boolean) = false; ;} break; case 1879: #line 13958 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1880: #line 13959 "gram.y" { (yyval.node) = NULL; ;} break; case 1881: #line 13964 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1882: #line 13966 "gram.y" { CurrentOfExpr *n = makeNode(CurrentOfExpr); /* cvarno is filled in by parse analysis */ n->cursor_name = (yyvsp[(4) - (4)].str); n->cursor_param = 0; (yyval.node) = (Node *) n; ;} break; case 1883: #line 13974 "gram.y" { (yyval.node) = NULL; ;} break; case 1884: #line 13979 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1885: #line 13980 "gram.y" { (yyval.list) = NIL; ;} break; case 1886: #line 13985 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1887: #line 13989 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1888: #line 13995 "gram.y" { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[(1) - (3)].str); n->typeName = (yyvsp[(2) - (3)].typnam); n->inhcount = 0; n->is_local = true; n->is_not_null = false; n->is_from_type = false; n->storage = 0; n->raw_default = NULL; n->cooked_default = NULL; n->collClause = (CollateClause *) (yyvsp[(3) - (3)].node); n->collOid = InvalidOid; n->constraints = NIL; n->location = (yylsp[(1) - (3)]); (yyval.node) = (Node *) n; ;} break; case 1889: #line 14020 "gram.y" { RangeTableFunc *n = makeNode(RangeTableFunc); n->rowexpr = (yyvsp[(3) - (7)].node); n->docexpr = (yyvsp[(4) - (7)].node); n->columns = (yyvsp[(6) - (7)].list); n->namespaces = NIL; n->location = (yylsp[(1) - (7)]); (yyval.node) = (Node *) n; ;} break; case 1890: #line 14032 "gram.y" { RangeTableFunc *n = makeNode(RangeTableFunc); n->rowexpr = (yyvsp[(8) - (12)].node); n->docexpr = (yyvsp[(9) - (12)].node); n->columns = (yyvsp[(11) - (12)].list); n->namespaces = (yyvsp[(5) - (12)].list); n->location = (yylsp[(1) - (12)]); (yyval.node) = (Node *) n; ;} break; case 1891: #line 14044 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1892: #line 14045 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1893: #line 14050 "gram.y" { RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); fc->colname = (yyvsp[(1) - (2)].str); fc->for_ordinality = false; fc->typeName = (yyvsp[(2) - (2)].typnam); fc->is_not_null = false; fc->colexpr = NULL; fc->coldefexpr = NULL; fc->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *) fc; ;} break; case 1894: #line 14064 "gram.y" { RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); ListCell *option; bool nullability_seen = false; fc->colname = (yyvsp[(1) - (3)].str); fc->typeName = (yyvsp[(2) - (3)].typnam); fc->for_ordinality = false; fc->is_not_null = false; fc->colexpr = NULL; fc->coldefexpr = NULL; fc->location = (yylsp[(1) - (3)]); foreach(option, (yyvsp[(3) - (3)].list)) { DefElem *defel = (DefElem *) lfirst(option); if (strcmp(defel->defname, "default") == 0) { if (fc->coldefexpr != NULL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("only one DEFAULT value is allowed"), parser_errposition(defel->location))); fc->coldefexpr = defel->arg; } else if (strcmp(defel->defname, "path") == 0) { if (fc->colexpr != NULL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("only one PATH value per column is allowed"), parser_errposition(defel->location))); fc->colexpr = defel->arg; } else if (strcmp(defel->defname, "__pg__is_not_null") == 0) { if (nullability_seen) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting or redundant NULL / NOT NULL declarations for column \"%s\"", fc->colname), parser_errposition(defel->location))); fc->is_not_null = boolVal(defel->arg); nullability_seen = true; } else { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized column option \"%s\"", defel->defname), parser_errposition(defel->location))); } } (yyval.node) = (Node *) fc; ;} break; case 1895: #line 14121 "gram.y" { RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); fc->colname = (yyvsp[(1) - (3)].str); fc->for_ordinality = true; /* other fields are ignored, initialized by makeNode */ fc->location = (yylsp[(1) - (3)]); (yyval.node) = (Node *) fc; ;} break; case 1896: #line 14135 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1897: #line 14137 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1898: #line 14142 "gram.y" { if (strcmp((yyvsp[(1) - (2)].str), "__pg__is_not_null") == 0) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("option name \"%s\" cannot be used in XMLTABLE", (yyvsp[(1) - (2)].str)), parser_errposition((yylsp[(1) - (2)])))); (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1899: #line 14151 "gram.y" { (yyval.defelt) = makeDefElem("default", (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1900: #line 14153 "gram.y" { (yyval.defelt) = makeDefElem("__pg__is_not_null", (Node *) makeBoolean(true), (yylsp[(1) - (2)])); ;} break; case 1901: #line 14155 "gram.y" { (yyval.defelt) = makeDefElem("__pg__is_not_null", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); ;} break; case 1902: #line 14157 "gram.y" { (yyval.defelt) = makeDefElem("path", (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1903: #line 14162 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 1904: #line 14164 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} break; case 1905: #line 14169 "gram.y" { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[(3) - (3)].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (yyvsp[(1) - (3)].node); (yyval.target)->location = (yylsp[(1) - (3)]); ;} break; case 1906: #line 14177 "gram.y" { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (yyvsp[(2) - (2)].node); (yyval.target)->location = (yylsp[(1) - (2)]); ;} break; case 1907: #line 14193 "gram.y" { JsonTable *n = makeNode(JsonTable); char *pathstring; n->context_item = (JsonValueExpr *) (yyvsp[(3) - (13)].node); if (!IsA((yyvsp[(5) - (13)].node), A_Const) || castNode(A_Const, (yyvsp[(5) - (13)].node))->val.node.type != T_String) ereport(ERROR, errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("only string constants are supported in JSON_TABLE path specification"), parser_errposition((yylsp[(5) - (13)]))); pathstring = castNode(A_Const, (yyvsp[(5) - (13)].node))->val.sval.sval; n->pathspec = makeJsonTablePathSpec(pathstring, (yyvsp[(6) - (13)].str), (yylsp[(5) - (13)]), (yylsp[(6) - (13)])); n->passing = (yyvsp[(7) - (13)].list); n->columns = (yyvsp[(10) - (13)].list); n->on_error = (JsonBehavior *) (yyvsp[(12) - (13)].node); n->location = (yylsp[(1) - (13)]); (yyval.node) = (Node *) n; ;} break; case 1908: #line 14215 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 1909: #line 14216 "gram.y" { (yyval.str) = NULL; ;} break; case 1910: #line 14221 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1911: #line 14223 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1912: #line 14228 "gram.y" { JsonTableColumn *n = makeNode(JsonTableColumn); n->coltype = JTC_FOR_ORDINALITY; n->name = (yyvsp[(1) - (3)].str); n->location = (yylsp[(1) - (3)]); (yyval.node) = (Node *) n; ;} break; case 1913: #line 14241 "gram.y" { JsonTableColumn *n = makeNode(JsonTableColumn); n->coltype = JTC_REGULAR; n->name = (yyvsp[(1) - (6)].str); n->typeName = (yyvsp[(2) - (6)].typnam); n->format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1); n->pathspec = (JsonTablePathSpec *) (yyvsp[(3) - (6)].node); n->wrapper = (yyvsp[(4) - (6)].ival); n->quotes = (yyvsp[(5) - (6)].ival); n->on_empty = (JsonBehavior *) linitial((yyvsp[(6) - (6)].list)); n->on_error = (JsonBehavior *) lsecond((yyvsp[(6) - (6)].list)); n->location = (yylsp[(1) - (6)]); (yyval.node) = (Node *) n; ;} break; case 1914: #line 14261 "gram.y" { JsonTableColumn *n = makeNode(JsonTableColumn); n->coltype = JTC_FORMATTED; n->name = (yyvsp[(1) - (7)].str); n->typeName = (yyvsp[(2) - (7)].typnam); n->format = (JsonFormat *) (yyvsp[(3) - (7)].node); n->pathspec = (JsonTablePathSpec *) (yyvsp[(4) - (7)].node); n->wrapper = (yyvsp[(5) - (7)].ival); n->quotes = (yyvsp[(6) - (7)].ival); n->on_empty = (JsonBehavior *) linitial((yyvsp[(7) - (7)].list)); n->on_error = (JsonBehavior *) lsecond((yyvsp[(7) - (7)].list)); n->location = (yylsp[(1) - (7)]); (yyval.node) = (Node *) n; ;} break; case 1915: #line 14279 "gram.y" { JsonTableColumn *n = makeNode(JsonTableColumn); n->coltype = JTC_EXISTS; n->name = (yyvsp[(1) - (5)].str); n->typeName = (yyvsp[(2) - (5)].typnam); n->format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1); n->wrapper = JSW_NONE; n->quotes = JS_QUOTES_UNSPEC; n->pathspec = (JsonTablePathSpec *) (yyvsp[(4) - (5)].node); n->on_empty = NULL; n->on_error = (JsonBehavior *) (yyvsp[(5) - (5)].node); n->location = (yylsp[(1) - (5)]); (yyval.node) = (Node *) n; ;} break; case 1916: #line 14296 "gram.y" { JsonTableColumn *n = makeNode(JsonTableColumn); n->coltype = JTC_NESTED; n->pathspec = (JsonTablePathSpec *) makeJsonTablePathSpec((yyvsp[(3) - (7)].str), NULL, (yylsp[(3) - (7)]), -1); n->columns = (yyvsp[(6) - (7)].list); n->location = (yylsp[(1) - (7)]); (yyval.node) = (Node *) n; ;} break; case 1917: #line 14308 "gram.y" { JsonTableColumn *n = makeNode(JsonTableColumn); n->coltype = JTC_NESTED; n->pathspec = (JsonTablePathSpec *) makeJsonTablePathSpec((yyvsp[(3) - (9)].str), (yyvsp[(5) - (9)].str), (yylsp[(3) - (9)]), (yylsp[(5) - (9)])); n->columns = (yyvsp[(8) - (9)].list); n->location = (yylsp[(1) - (9)]); (yyval.node) = (Node *) n; ;} break; case 1920: #line 14327 "gram.y" { (yyval.node) = (Node *) makeJsonTablePathSpec((yyvsp[(2) - (2)].str), NULL, (yylsp[(2) - (2)]), -1); ;} break; case 1921: #line 14329 "gram.y" { (yyval.node) = NULL; ;} break; case 1922: #line 14343 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (2)].typnam); (yyval.typnam)->arrayBounds = (yyvsp[(2) - (2)].list); ;} break; case 1923: #line 14348 "gram.y" { (yyval.typnam) = (yyvsp[(2) - (3)].typnam); (yyval.typnam)->arrayBounds = (yyvsp[(3) - (3)].list); (yyval.typnam)->setof = true; ;} break; case 1924: #line 14355 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (5)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(4) - (5)].ival))); ;} break; case 1925: #line 14360 "gram.y" { (yyval.typnam) = (yyvsp[(2) - (6)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(5) - (6)].ival))); (yyval.typnam)->setof = true; ;} break; case 1926: #line 14366 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (2)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); ;} break; case 1927: #line 14371 "gram.y" { (yyval.typnam) = (yyvsp[(2) - (3)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); (yyval.typnam)->setof = true; ;} break; case 1928: #line 14380 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeInteger(-1)); ;} break; case 1929: #line 14382 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (4)].list), makeInteger((yyvsp[(3) - (4)].ival))); ;} break; case 1930: #line 14384 "gram.y" { (yyval.list) = NIL; ;} break; case 1931: #line 14388 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1932: #line 14389 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1933: #line 14390 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1934: #line 14391 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1935: #line 14392 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1936: #line 14394 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (2)].typnam); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); ;} break; case 1937: #line 14399 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (4)].typnam); (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); ;} break; case 1938: #line 14404 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1939: #line 14419 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1940: #line 14420 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1941: #line 14421 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1942: #line 14422 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1943: #line 14423 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1944: #line 14435 "gram.y" { (yyval.typnam) = makeTypeName((yyvsp[(1) - (2)].str)); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1945: #line 14441 "gram.y" { (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(2) - (3)].list))); (yyval.typnam)->typmods = (yyvsp[(3) - (3)].list); (yyval.typnam)->location = (yylsp[(1) - (3)]); ;} break; case 1946: #line 14448 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1947: #line 14449 "gram.y" { (yyval.list) = NIL; ;} break; case 1948: #line 14456 "gram.y" { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1949: #line 14461 "gram.y" { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1950: #line 14466 "gram.y" { (yyval.typnam) = SystemTypeName("int2"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1951: #line 14471 "gram.y" { (yyval.typnam) = SystemTypeName("int8"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1952: #line 14476 "gram.y" { (yyval.typnam) = SystemTypeName("float4"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1953: #line 14481 "gram.y" { (yyval.typnam) = (yyvsp[(2) - (2)].typnam); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1954: #line 14486 "gram.y" { (yyval.typnam) = SystemTypeName("float8"); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1955: #line 14491 "gram.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1956: #line 14497 "gram.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1957: #line 14503 "gram.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1958: #line 14509 "gram.y" { (yyval.typnam) = SystemTypeName("bool"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1959: #line 14516 "gram.y" { /* * Check FLOAT() precision limits assuming IEEE floating * types - thomas 1997-09-18 */ if ((yyvsp[(2) - (3)].ival) < 1) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("precision for type float must be at least 1 bit"), parser_errposition((yylsp[(2) - (3)])))); else if ((yyvsp[(2) - (3)].ival) <= 24) (yyval.typnam) = SystemTypeName("float4"); else if ((yyvsp[(2) - (3)].ival) <= 53) (yyval.typnam) = SystemTypeName("float8"); else ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("precision for type float must be less than 54 bits"), parser_errposition((yylsp[(2) - (3)])))); ;} break; case 1960: #line 14537 "gram.y" { (yyval.typnam) = SystemTypeName("float8"); ;} break; case 1961: #line 14547 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1962: #line 14551 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1963: #line 14559 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1964: #line 14563 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); (yyval.typnam)->typmods = NIL; ;} break; case 1965: #line 14571 "gram.y" { char *typname; typname = (yyvsp[(2) - (5)].boolean) ? "varbit" : "bit"; (yyval.typnam) = SystemTypeName(typname); (yyval.typnam)->typmods = (yyvsp[(4) - (5)].list); (yyval.typnam)->location = (yylsp[(1) - (5)]); ;} break; case 1966: #line 14583 "gram.y" { /* bit defaults to bit(1), varbit to no limit */ if ((yyvsp[(2) - (2)].boolean)) { (yyval.typnam) = SystemTypeName("varbit"); } else { (yyval.typnam) = SystemTypeName("bit"); (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); } (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1967: #line 14604 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1968: #line 14608 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1969: #line 14614 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1970: #line 14618 "gram.y" { /* Length was not specified so allow to be unrestricted. * This handles problems with fixed-length (bpchar) strings * which in column definitions must default to a length * of one, but should not be constrained if the length * was not specified. */ (yyval.typnam) = (yyvsp[(1) - (1)].typnam); (yyval.typnam)->typmods = NIL; ;} break; case 1971: #line 14631 "gram.y" { (yyval.typnam) = SystemTypeName((yyvsp[(1) - (4)].str)); (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); (yyval.typnam)->location = (yylsp[(1) - (4)]); ;} break; case 1972: #line 14639 "gram.y" { (yyval.typnam) = SystemTypeName((yyvsp[(1) - (1)].str)); /* char defaults to char(1), varchar to no limit */ if (strcmp((yyvsp[(1) - (1)].str), "bpchar") == 0) (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1973: #line 14649 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} break; case 1974: #line 14651 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} break; case 1975: #line 14653 "gram.y" { (yyval.str) = "varchar"; ;} break; case 1976: #line 14655 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;} break; case 1977: #line 14657 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;} break; case 1978: #line 14659 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} break; case 1979: #line 14663 "gram.y" { (yyval.boolean) = true; ;} break; case 1980: #line 14664 "gram.y" { (yyval.boolean) = false; ;} break; case 1981: #line 14672 "gram.y" { if ((yyvsp[(5) - (5)].boolean)) (yyval.typnam) = SystemTypeName("timestamptz"); else (yyval.typnam) = SystemTypeName("timestamp"); (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); (yyval.typnam)->location = (yylsp[(1) - (5)]); ;} break; case 1982: #line 14681 "gram.y" { if ((yyvsp[(2) - (2)].boolean)) (yyval.typnam) = SystemTypeName("timestamptz"); else (yyval.typnam) = SystemTypeName("timestamp"); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1983: #line 14689 "gram.y" { if ((yyvsp[(5) - (5)].boolean)) (yyval.typnam) = SystemTypeName("timetz"); else (yyval.typnam) = SystemTypeName("time"); (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); (yyval.typnam)->location = (yylsp[(1) - (5)]); ;} break; case 1984: #line 14698 "gram.y" { if ((yyvsp[(2) - (2)].boolean)) (yyval.typnam) = SystemTypeName("timetz"); else (yyval.typnam) = SystemTypeName("time"); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1985: #line 14709 "gram.y" { (yyval.typnam) = SystemTypeName("interval"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1986: #line 14716 "gram.y" { (yyval.boolean) = true; ;} break; case 1987: #line 14717 "gram.y" { (yyval.boolean) = false; ;} break; case 1988: #line 14718 "gram.y" { (yyval.boolean) = false; ;} break; case 1989: #line 14723 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[(1) - (1)]))); ;} break; case 1990: #line 14725 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[(1) - (1)]))); ;} break; case 1991: #line 14727 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[(1) - (1)]))); ;} break; case 1992: #line 14729 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[(1) - (1)]))); ;} break; case 1993: #line 14731 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[(1) - (1)]))); ;} break; case 1994: #line 14733 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1995: #line 14735 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) | INTERVAL_MASK(MONTH), (yylsp[(1) - (3)]))); ;} break; case 1996: #line 14740 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR), (yylsp[(1) - (3)]))); ;} break; case 1997: #line 14745 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)]))); ;} break; case 1998: #line 14751 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])); ;} break; case 1999: #line 14759 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)]))); ;} break; case 2000: #line 14764 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])); ;} break; case 2001: #line 14771 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])); ;} break; case 2002: #line 14777 "gram.y" { (yyval.list) = NIL; ;} break; case 2003: #line 14782 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (1)]))); ;} break; case 2004: #line 14786 "gram.y" { (yyval.list) = list_make2(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (4)])), makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); ;} break; case 2005: #line 14794 "gram.y" { (yyval.typnam) = SystemTypeName("json"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 2006: #line 14828 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2007: #line 14830 "gram.y" { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); ;} break; case 2008: #line 14832 "gram.y" { CollateClause *n = makeNode(CollateClause); n->arg = (yyvsp[(1) - (3)].node); n->collname = (yyvsp[(3) - (3)].list); n->location = (yylsp[(2) - (3)]); (yyval.node) = (Node *) n; ;} break; case 2009: #line 14841 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("timezone"), list_make2((yyvsp[(5) - (5)].node), (yyvsp[(1) - (5)].node)), COERCE_SQL_SYNTAX, (yylsp[(2) - (5)])); ;} break; case 2010: #line 14848 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("timezone"), list_make1((yyvsp[(1) - (3)].node)), COERCE_SQL_SYNTAX, -1); ;} break; case 2011: #line 14864 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 2012: #line 14866 "gram.y" { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 2013: #line 14868 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2014: #line 14870 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2015: #line 14872 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2016: #line 14874 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2017: #line 14876 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2018: #line 14878 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2019: #line 14880 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2020: #line 14882 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2021: #line 14884 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2022: #line 14886 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2023: #line 14888 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2024: #line 14890 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2025: #line 14893 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2026: #line 14895 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 2027: #line 14898 "gram.y" { (yyval.node) = makeAndExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2028: #line 14900 "gram.y" { (yyval.node) = makeOrExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2029: #line 14902 "gram.y" { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 2030: #line 14904 "gram.y" { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 2031: #line 14907 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2032: #line 14912 "gram.y" { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)), COERCE_EXPLICIT_CALL, (yylsp[(2) - (5)])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~", (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)])); ;} break; case 2033: #line 14921 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); ;} break; case 2034: #line 14926 "gram.y" { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), COERCE_EXPLICIT_CALL, (yylsp[(2) - (6)])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~", (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)])); ;} break; case 2035: #line 14935 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2036: #line 14940 "gram.y" { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)), COERCE_EXPLICIT_CALL, (yylsp[(2) - (5)])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*", (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)])); ;} break; case 2037: #line 14949 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); ;} break; case 2038: #line 14954 "gram.y" { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), COERCE_EXPLICIT_CALL, (yylsp[(2) - (6)])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*", (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)])); ;} break; case 2039: #line 14964 "gram.y" { FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"), list_make1((yyvsp[(4) - (4)].node)), COERCE_EXPLICIT_CALL, (yylsp[(2) - (4)])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~", (yyvsp[(1) - (4)].node), (Node *) n, (yylsp[(2) - (4)])); ;} break; case 2040: #line 14973 "gram.y" { FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"), list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), COERCE_EXPLICIT_CALL, (yylsp[(2) - (6)])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~", (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)])); ;} break; case 2041: #line 14982 "gram.y" { FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"), list_make1((yyvsp[(5) - (5)].node)), COERCE_EXPLICIT_CALL, (yylsp[(2) - (5)])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~", (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)])); ;} break; case 2042: #line 14991 "gram.y" { FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"), list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)), COERCE_EXPLICIT_CALL, (yylsp[(2) - (7)])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~", (yyvsp[(1) - (7)].node), (Node *) n, (yylsp[(2) - (7)])); ;} break; case 2043: #line 15010 "gram.y" { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[(1) - (3)].node); n->nulltesttype = IS_NULL; n->location = (yylsp[(2) - (3)]); (yyval.node) = (Node *) n; ;} break; case 2044: #line 15019 "gram.y" { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[(1) - (2)].node); n->nulltesttype = IS_NULL; n->location = (yylsp[(2) - (2)]); (yyval.node) = (Node *) n; ;} break; case 2045: #line 15028 "gram.y" { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[(1) - (4)].node); n->nulltesttype = IS_NOT_NULL; n->location = (yylsp[(2) - (4)]); (yyval.node) = (Node *) n; ;} break; case 2046: #line 15037 "gram.y" { NullTest *n = makeNode(NullTest); n->arg = (Expr *) (yyvsp[(1) - (2)].node); n->nulltesttype = IS_NOT_NULL; n->location = (yylsp[(2) - (2)]); (yyval.node) = (Node *) n; ;} break; case 2047: #line 15046 "gram.y" { if (list_length((yyvsp[(1) - (3)].list)) != 2) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("wrong number of parameters on left side of OVERLAPS expression"), parser_errposition((yylsp[(1) - (3)])))); if (list_length((yyvsp[(3) - (3)].list)) != 2) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("wrong number of parameters on right side of OVERLAPS expression"), parser_errposition((yylsp[(3) - (3)])))); (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlaps"), list_concat((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)), COERCE_SQL_SYNTAX, (yylsp[(2) - (3)])); ;} break; case 2048: #line 15063 "gram.y" { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[(1) - (3)].node); b->booltesttype = IS_TRUE; b->location = (yylsp[(2) - (3)]); (yyval.node) = (Node *) b; ;} break; case 2049: #line 15072 "gram.y" { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[(1) - (4)].node); b->booltesttype = IS_NOT_TRUE; b->location = (yylsp[(2) - (4)]); (yyval.node) = (Node *) b; ;} break; case 2050: #line 15081 "gram.y" { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[(1) - (3)].node); b->booltesttype = IS_FALSE; b->location = (yylsp[(2) - (3)]); (yyval.node) = (Node *) b; ;} break; case 2051: #line 15090 "gram.y" { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[(1) - (4)].node); b->booltesttype = IS_NOT_FALSE; b->location = (yylsp[(2) - (4)]); (yyval.node) = (Node *) b; ;} break; case 2052: #line 15099 "gram.y" { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[(1) - (3)].node); b->booltesttype = IS_UNKNOWN; b->location = (yylsp[(2) - (3)]); (yyval.node) = (Node *) b; ;} break; case 2053: #line 15108 "gram.y" { BooleanTest *b = makeNode(BooleanTest); b->arg = (Expr *) (yyvsp[(1) - (4)].node); b->booltesttype = IS_NOT_UNKNOWN; b->location = (yylsp[(2) - (4)]); (yyval.node) = (Node *) b; ;} break; case 2054: #line 15117 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); ;} break; case 2055: #line 15121 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])); ;} break; case 2056: #line 15125 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN, "BETWEEN", (yyvsp[(1) - (6)].node), (Node *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), (yylsp[(2) - (6)])); ;} break; case 2057: #line 15133 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN, "NOT BETWEEN", (yyvsp[(1) - (7)].node), (Node *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)), (yylsp[(2) - (7)])); ;} break; case 2058: #line 15141 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN_SYM, "BETWEEN SYMMETRIC", (yyvsp[(1) - (6)].node), (Node *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), (yylsp[(2) - (6)])); ;} break; case 2059: #line 15149 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN_SYM, "NOT BETWEEN SYMMETRIC", (yyvsp[(1) - (7)].node), (Node *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)), (yylsp[(2) - (7)])); ;} break; case 2060: #line 15157 "gram.y" { /* in_expr returns a SubLink or a list of a_exprs */ if (IsA((yyvsp[(3) - (3)].node), SubLink)) { /* generate foo = ANY (subquery) */ SubLink *n = (SubLink *) (yyvsp[(3) - (3)].node); n->subLinkType = ANY_SUBLINK; n->subLinkId = 0; n->testexpr = (yyvsp[(1) - (3)].node); n->operName = NIL; /* show it's IN not = ANY */ n->location = (yylsp[(2) - (3)]); (yyval.node) = (Node *) n; } else { /* generate scalar IN expression */ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); } ;} break; case 2061: #line 15178 "gram.y" { /* in_expr returns a SubLink or a list of a_exprs */ if (IsA((yyvsp[(4) - (4)].node), SubLink)) { /* generate NOT (foo = ANY (subquery)) */ /* Make an = ANY node */ SubLink *n = (SubLink *) (yyvsp[(4) - (4)].node); n->subLinkType = ANY_SUBLINK; n->subLinkId = 0; n->testexpr = (yyvsp[(1) - (4)].node); n->operName = NIL; /* show it's IN not = ANY */ n->location = (yylsp[(2) - (4)]); /* Stick a NOT on top; must have same parse location */ (yyval.node) = makeNotExpr((Node *) n, (yylsp[(2) - (4)])); } else { /* generate scalar NOT IN expression */ (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "<>", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); } ;} break; case 2062: #line 15201 "gram.y" { SubLink *n = makeNode(SubLink); n->subLinkType = (yyvsp[(3) - (4)].ival); n->subLinkId = 0; n->testexpr = (yyvsp[(1) - (4)].node); n->operName = (yyvsp[(2) - (4)].list); n->subselect = (yyvsp[(4) - (4)].node); n->location = (yylsp[(2) - (4)]); (yyval.node) = (Node *) n; ;} break; case 2063: #line 15213 "gram.y" { if ((yyvsp[(3) - (6)].ival) == ANY_SUBLINK) (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ANY, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)])); else (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ALL, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)])); ;} break; case 2064: #line 15220 "gram.y" { /* Not sure how to get rid of the parentheses * but there are lots of shift/reduce errors without them. * * Should be able to implement this by plopping the entire * select into a node, then transforming the target expressions * from whatever they are into count(*), and testing the * entire result equal to one. * But, will probably implement a separate node in the executor. */ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("UNIQUE predicate is not yet implemented"), parser_errposition((yylsp[(1) - (3)])))); ;} break; case 2065: #line 15236 "gram.y" { (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[(1) - (3)].node)), (yylsp[(2) - (3)])); ;} break; case 2066: #line 15241 "gram.y" { (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[(1) - (4)].node)), (yylsp[(2) - (4)])), (yylsp[(2) - (4)])); ;} break; case 2067: #line 15247 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("is_normalized"), list_make1((yyvsp[(1) - (3)].node)), COERCE_SQL_SYNTAX, (yylsp[(2) - (3)])); ;} break; case 2068: #line 15254 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("is_normalized"), list_make2((yyvsp[(1) - (4)].node), makeStringConst((yyvsp[(3) - (4)].str), (yylsp[(3) - (4)]))), COERCE_SQL_SYNTAX, (yylsp[(2) - (4)])); ;} break; case 2069: #line 15261 "gram.y" { (yyval.node) = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"), list_make1((yyvsp[(1) - (4)].node)), COERCE_SQL_SYNTAX, (yylsp[(2) - (4)])), (yylsp[(2) - (4)])); ;} break; case 2070: #line 15269 "gram.y" { (yyval.node) = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"), list_make2((yyvsp[(1) - (5)].node), makeStringConst((yyvsp[(4) - (5)].str), (yylsp[(4) - (5)]))), COERCE_SQL_SYNTAX, (yylsp[(2) - (5)])), (yylsp[(2) - (5)])); ;} break; case 2071: #line 15278 "gram.y" { JsonFormat *format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1); (yyval.node) = makeJsonIsPredicate((yyvsp[(1) - (4)].node), format, (yyvsp[(3) - (4)].ival), (yyvsp[(4) - (4)].boolean), (yylsp[(1) - (4)])); ;} break; case 2072: #line 15296 "gram.y" { JsonFormat *format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1); (yyval.node) = makeNotExpr(makeJsonIsPredicate((yyvsp[(1) - (5)].node), format, (yyvsp[(4) - (5)].ival), (yyvsp[(5) - (5)].boolean), (yylsp[(1) - (5)])), (yylsp[(1) - (5)])); ;} break; case 2073: #line 15313 "gram.y" { /* * The SQL spec only allows DEFAULT in "contextually typed * expressions", but for us, it's easier to allow it in * any a_expr and then throw error during parse analysis * if it's in an inappropriate context. This way also * lets us say something smarter than "syntax error". */ SetToDefault *n = makeNode(SetToDefault); /* parse analysis will fill in the rest */ n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *) n; ;} break; case 2074: #line 15339 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2075: #line 15341 "gram.y" { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); ;} break; case 2076: #line 15343 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 2077: #line 15345 "gram.y" { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 2078: #line 15347 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2079: #line 15349 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2080: #line 15351 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2081: #line 15353 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2082: #line 15355 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2083: #line 15357 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2084: #line 15359 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2085: #line 15361 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2086: #line 15363 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2087: #line 15365 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2088: #line 15367 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2089: #line 15369 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2090: #line 15371 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2091: #line 15373 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 2092: #line 15375 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); ;} break; case 2093: #line 15379 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])); ;} break; case 2094: #line 15383 "gram.y" { (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[(1) - (3)].node)), (yylsp[(2) - (3)])); ;} break; case 2095: #line 15388 "gram.y" { (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[(1) - (4)].node)), (yylsp[(2) - (4)])), (yylsp[(2) - (4)])); ;} break; case 2096: #line 15403 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2097: #line 15404 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2098: #line 15406 "gram.y" { ParamRef *p = makeNode(ParamRef); p->number = (yyvsp[(1) - (2)].ival); p->location = (yylsp[(1) - (2)]); if ((yyvsp[(2) - (2)].list)) { A_Indirection *n = makeNode(A_Indirection); n->arg = (Node *) p; n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); (yyval.node) = (Node *) n; } else (yyval.node) = (Node *) p; ;} break; case 2099: #line 15423 "gram.y" { if ((yyvsp[(4) - (4)].list)) { A_Indirection *n = makeNode(A_Indirection); n->arg = (yyvsp[(2) - (4)].node); n->indirection = check_indirection((yyvsp[(4) - (4)].list), yyscanner); (yyval.node) = (Node *) n; } else (yyval.node) = (yyvsp[(2) - (4)].node); ;} break; case 2100: #line 15436 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2101: #line 15438 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2102: #line 15440 "gram.y" { SubLink *n = makeNode(SubLink); n->subLinkType = EXPR_SUBLINK; n->subLinkId = 0; n->testexpr = NULL; n->operName = NIL; n->subselect = (yyvsp[(1) - (1)].node); n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *) n; ;} break; case 2103: #line 15452 "gram.y" { /* * Because the select_with_parens nonterminal is designed * to "eat" as many levels of parens as possible, the * '(' a_expr ')' opt_indirection production above will * fail to match a sub-SELECT with indirection decoration; * the sub-SELECT won't be regarded as an a_expr as long * as there are parens around it. To support applying * subscripting or field selection to a sub-SELECT result, * we need this redundant-looking production. */ SubLink *n = makeNode(SubLink); A_Indirection *a = makeNode(A_Indirection); n->subLinkType = EXPR_SUBLINK; n->subLinkId = 0; n->testexpr = NULL; n->operName = NIL; n->subselect = (yyvsp[(1) - (2)].node); n->location = (yylsp[(1) - (2)]); a->arg = (Node *) n; a->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); (yyval.node) = (Node *) a; ;} break; case 2104: #line 15477 "gram.y" { SubLink *n = makeNode(SubLink); n->subLinkType = EXISTS_SUBLINK; n->subLinkId = 0; n->testexpr = NULL; n->operName = NIL; n->subselect = (yyvsp[(2) - (2)].node); n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *) n; ;} break; case 2105: #line 15489 "gram.y" { SubLink *n = makeNode(SubLink); n->subLinkType = ARRAY_SUBLINK; n->subLinkId = 0; n->testexpr = NULL; n->operName = NIL; n->subselect = (yyvsp[(2) - (2)].node); n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *) n; ;} break; case 2106: #line 15501 "gram.y" { A_ArrayExpr *n = castNode(A_ArrayExpr, (yyvsp[(2) - (2)].node)); /* point outermost A_ArrayExpr to the ARRAY keyword */ n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *) n; ;} break; case 2107: #line 15509 "gram.y" { RowExpr *r = makeNode(RowExpr); r->args = (yyvsp[(1) - (1)].list); r->row_typeid = InvalidOid; /* not analyzed yet */ r->colnames = NIL; /* to be filled in during analysis */ r->row_format = COERCE_EXPLICIT_CALL; /* abuse */ r->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *) r; ;} break; case 2108: #line 15520 "gram.y" { RowExpr *r = makeNode(RowExpr); r->args = (yyvsp[(1) - (1)].list); r->row_typeid = InvalidOid; /* not analyzed yet */ r->colnames = NIL; /* to be filled in during analysis */ r->row_format = COERCE_IMPLICIT_CAST; /* abuse */ r->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *) r; ;} break; case 2109: #line 15531 "gram.y" { GroupingFunc *g = makeNode(GroupingFunc); g->args = (yyvsp[(3) - (4)].list); g->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *) g; ;} break; case 2110: #line 15541 "gram.y" { (yyval.node) = (Node *) makeFuncCall((yyvsp[(1) - (3)].list), NIL, COERCE_EXPLICIT_CALL, (yylsp[(1) - (3)])); ;} break; case 2111: #line 15547 "gram.y" { FuncCall *n = makeFuncCall((yyvsp[(1) - (5)].list), (yyvsp[(3) - (5)].list), COERCE_EXPLICIT_CALL, (yylsp[(1) - (5)])); n->agg_order = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 2112: #line 15556 "gram.y" { FuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), list_make1((yyvsp[(4) - (6)].node)), COERCE_EXPLICIT_CALL, (yylsp[(1) - (6)])); n->func_variadic = true; n->agg_order = (yyvsp[(5) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 2113: #line 15566 "gram.y" { FuncCall *n = makeFuncCall((yyvsp[(1) - (8)].list), lappend((yyvsp[(3) - (8)].list), (yyvsp[(6) - (8)].node)), COERCE_EXPLICIT_CALL, (yylsp[(1) - (8)])); n->func_variadic = true; n->agg_order = (yyvsp[(7) - (8)].list); (yyval.node) = (Node *) n; ;} break; case 2114: #line 15576 "gram.y" { FuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), (yyvsp[(4) - (6)].list), COERCE_EXPLICIT_CALL, (yylsp[(1) - (6)])); n->agg_order = (yyvsp[(5) - (6)].list); /* Ideally we'd mark the FuncCall node to indicate * "must be an aggregate", but there's no provision * for that in FuncCall at the moment. */ (yyval.node) = (Node *) n; ;} break; case 2115: #line 15589 "gram.y" { FuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), (yyvsp[(4) - (6)].list), COERCE_EXPLICIT_CALL, (yylsp[(1) - (6)])); n->agg_order = (yyvsp[(5) - (6)].list); n->agg_distinct = true; (yyval.node) = (Node *) n; ;} break; case 2116: #line 15599 "gram.y" { /* * We consider AGGREGATE(*) to invoke a parameterless * aggregate. This does the right thing for COUNT(*), * and there are no other aggregates in SQL that accept * '*' as parameter. * * The FuncCall node is also marked agg_star = true, * so that later processing can detect what the argument * really was. */ FuncCall *n = makeFuncCall((yyvsp[(1) - (4)].list), NIL, COERCE_EXPLICIT_CALL, (yylsp[(1) - (4)])); n->agg_star = true; (yyval.node) = (Node *) n; ;} break; case 2117: #line 15630 "gram.y" { FuncCall *n = (FuncCall *) (yyvsp[(1) - (4)].node); /* * The order clause for WITHIN GROUP and the one for * plain-aggregate ORDER BY share a field, so we have to * check here that at most one is present. We also check * for DISTINCT and VARIADIC here to give a better error * location. Other consistency checks are deferred to * parse analysis. */ if ((yyvsp[(2) - (4)].list) != NIL) { if (n->agg_order != NIL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cannot use multiple ORDER BY clauses with WITHIN GROUP"), parser_errposition((yylsp[(2) - (4)])))); if (n->agg_distinct) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cannot use DISTINCT with WITHIN GROUP"), parser_errposition((yylsp[(2) - (4)])))); if (n->func_variadic) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cannot use VARIADIC with WITHIN GROUP"), parser_errposition((yylsp[(2) - (4)])))); n->agg_order = (yyvsp[(2) - (4)].list); n->agg_within_group = true; } n->agg_filter = (yyvsp[(3) - (4)].node); n->over = (yyvsp[(4) - (4)].windef); (yyval.node) = (Node *) n; ;} break; case 2118: #line 15666 "gram.y" { JsonAggConstructor *n = IsA((yyvsp[(1) - (3)].node), JsonObjectAgg) ? ((JsonObjectAgg *) (yyvsp[(1) - (3)].node))->constructor : ((JsonArrayAgg *) (yyvsp[(1) - (3)].node))->constructor; n->agg_filter = (yyvsp[(2) - (3)].node); n->over = (yyvsp[(3) - (3)].windef); (yyval.node) = (Node *) (yyvsp[(1) - (3)].node); ;} break; case 2119: #line 15676 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2120: #line 15686 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2121: #line 15687 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2122: #line 15688 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2123: #line 15696 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("pg_collation_for"), list_make1((yyvsp[(4) - (5)].node)), COERCE_SQL_SYNTAX, (yylsp[(1) - (5)])); ;} break; case 2124: #line 15703 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_DATE, -1, (yylsp[(1) - (1)])); ;} break; case 2125: #line 15707 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME, -1, (yylsp[(1) - (1)])); ;} break; case 2126: #line 15711 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); ;} break; case 2127: #line 15715 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[(1) - (1)])); ;} break; case 2128: #line 15719 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); ;} break; case 2129: #line 15723 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME, -1, (yylsp[(1) - (1)])); ;} break; case 2130: #line 15727 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); ;} break; case 2131: #line 15731 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP, -1, (yylsp[(1) - (1)])); ;} break; case 2132: #line 15735 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); ;} break; case 2133: #line 15739 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_ROLE, -1, (yylsp[(1) - (1)])); ;} break; case 2134: #line 15743 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_USER, -1, (yylsp[(1) - (1)])); ;} break; case 2135: #line 15747 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_SESSION_USER, -1, (yylsp[(1) - (1)])); ;} break; case 2136: #line 15751 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("system_user"), NIL, COERCE_SQL_SYNTAX, (yylsp[(1) - (1)])); ;} break; case 2137: #line 15758 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_USER, -1, (yylsp[(1) - (1)])); ;} break; case 2138: #line 15762 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_CATALOG, -1, (yylsp[(1) - (1)])); ;} break; case 2139: #line 15766 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_SCHEMA, -1, (yylsp[(1) - (1)])); ;} break; case 2140: #line 15770 "gram.y" { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), (yylsp[(1) - (6)])); ;} break; case 2141: #line 15772 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("extract"), (yyvsp[(3) - (4)].list), COERCE_SQL_SYNTAX, (yylsp[(1) - (4)])); ;} break; case 2142: #line 15779 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("normalize"), list_make1((yyvsp[(3) - (4)].node)), COERCE_SQL_SYNTAX, (yylsp[(1) - (4)])); ;} break; case 2143: #line 15786 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("normalize"), list_make2((yyvsp[(3) - (6)].node), makeStringConst((yyvsp[(5) - (6)].str), (yylsp[(5) - (6)]))), COERCE_SQL_SYNTAX, (yylsp[(1) - (6)])); ;} break; case 2144: #line 15793 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlay"), (yyvsp[(3) - (4)].list), COERCE_SQL_SYNTAX, (yylsp[(1) - (4)])); ;} break; case 2145: #line 15800 "gram.y" { /* * allow functions named overlay() to be called without * special syntax */ (yyval.node) = (Node *) makeFuncCall(list_make1(makeString("overlay")), (yyvsp[(3) - (4)].list), COERCE_EXPLICIT_CALL, (yylsp[(1) - (4)])); ;} break; case 2146: #line 15811 "gram.y" { /* * position(A in B) is converted to position(B, A) * * We deliberately don't offer a "plain syntax" option * for position(), because the reversal of the arguments * creates too much risk of confusion. */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("position"), (yyvsp[(3) - (4)].list), COERCE_SQL_SYNTAX, (yylsp[(1) - (4)])); ;} break; case 2147: #line 15825 "gram.y" { /* substring(A from B for C) is converted to * substring(A, B, C) - thomas 2000-11-28 */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("substring"), (yyvsp[(3) - (4)].list), COERCE_SQL_SYNTAX, (yylsp[(1) - (4)])); ;} break; case 2148: #line 15835 "gram.y" { /* * allow functions named substring() to be called without * special syntax */ (yyval.node) = (Node *) makeFuncCall(list_make1(makeString("substring")), (yyvsp[(3) - (4)].list), COERCE_EXPLICIT_CALL, (yylsp[(1) - (4)])); ;} break; case 2149: #line 15846 "gram.y" { /* TREAT(expr AS target) converts expr of a particular type to target, * which is defined to be a subtype of the original expression. * In SQL99, this is intended for use with structured UDTs, * but let's make this a generally useful form allowing stronger * coercions than are handled by implicit casting. * * Convert SystemTypeName() to SystemFuncName() even though * at the moment they result in the same thing. */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName(strVal(llast((yyvsp[(5) - (6)].typnam)->names))), list_make1((yyvsp[(3) - (6)].node)), COERCE_EXPLICIT_CALL, (yylsp[(1) - (6)])); ;} break; case 2150: #line 15862 "gram.y" { /* various trim expressions are defined in SQL * - thomas 1997-07-19 */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"), (yyvsp[(4) - (5)].list), COERCE_SQL_SYNTAX, (yylsp[(1) - (5)])); ;} break; case 2151: #line 15872 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("ltrim"), (yyvsp[(4) - (5)].list), COERCE_SQL_SYNTAX, (yylsp[(1) - (5)])); ;} break; case 2152: #line 15879 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("rtrim"), (yyvsp[(4) - (5)].list), COERCE_SQL_SYNTAX, (yylsp[(1) - (5)])); ;} break; case 2153: #line 15886 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"), (yyvsp[(3) - (4)].list), COERCE_SQL_SYNTAX, (yylsp[(1) - (4)])); ;} break; case 2154: #line 15893 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NULLIF, "=", (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(1) - (6)])); ;} break; case 2155: #line 15897 "gram.y" { CoalesceExpr *c = makeNode(CoalesceExpr); c->args = (yyvsp[(3) - (4)].list); c->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *) c; ;} break; case 2156: #line 15905 "gram.y" { MinMaxExpr *v = makeNode(MinMaxExpr); v->args = (yyvsp[(3) - (4)].list); v->op = IS_GREATEST; v->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *) v; ;} break; case 2157: #line 15914 "gram.y" { MinMaxExpr *v = makeNode(MinMaxExpr); v->args = (yyvsp[(3) - (4)].list); v->op = IS_LEAST; v->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *) v; ;} break; case 2158: #line 15923 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLCONCAT, NULL, NIL, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 2159: #line 15927 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (5)].str), NIL, NIL, (yylsp[(1) - (5)])); ;} break; case 2160: #line 15931 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (7)].str), (yyvsp[(6) - (7)].list), NIL, (yylsp[(1) - (7)])); ;} break; case 2161: #line 15935 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (7)].str), NIL, (yyvsp[(6) - (7)].list), (yylsp[(1) - (7)])); ;} break; case 2162: #line 15939 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (9)].str), (yyvsp[(6) - (9)].list), (yyvsp[(8) - (9)].list), (yylsp[(1) - (9)])); ;} break; case 2163: #line 15943 "gram.y" { /* xmlexists(A PASSING [BY REF] B [BY REF]) is * converted to xmlexists(A, B)*/ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("xmlexists"), list_make2((yyvsp[(3) - (5)].node), (yyvsp[(4) - (5)].node)), COERCE_SQL_SYNTAX, (yylsp[(1) - (5)])); ;} break; case 2164: #line 15952 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLFOREST, NULL, (yyvsp[(3) - (4)].list), NIL, (yylsp[(1) - (4)])); ;} break; case 2165: #line 15956 "gram.y" { XmlExpr *x = (XmlExpr *) makeXmlExpr(IS_XMLPARSE, NULL, NIL, list_make2((yyvsp[(4) - (6)].node), makeBoolAConst((yyvsp[(5) - (6)].boolean), -1)), (yylsp[(1) - (6)])); x->xmloption = (yyvsp[(3) - (6)].ival); (yyval.node) = (Node *) x; ;} break; case 2166: #line 15966 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[(4) - (5)].str), NULL, NIL, (yylsp[(1) - (5)])); ;} break; case 2167: #line 15970 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[(4) - (7)].str), NULL, list_make1((yyvsp[(6) - (7)].node)), (yylsp[(1) - (7)])); ;} break; case 2168: #line 15974 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLROOT, NULL, NIL, list_make3((yyvsp[(3) - (7)].node), (yyvsp[(5) - (7)].node), (yyvsp[(6) - (7)].node)), (yylsp[(1) - (7)])); ;} break; case 2169: #line 15979 "gram.y" { XmlSerialize *n = makeNode(XmlSerialize); n->xmloption = (yyvsp[(3) - (8)].ival); n->expr = (yyvsp[(4) - (8)].node); n->typeName = (yyvsp[(6) - (8)].typnam); n->indent = (yyvsp[(7) - (8)].boolean); n->location = (yylsp[(1) - (8)]); (yyval.node) = (Node *) n; ;} break; case 2170: #line 15990 "gram.y" { /* Support for legacy (non-standard) json_object() */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("json_object"), (yyvsp[(3) - (4)].list), COERCE_EXPLICIT_CALL, (yylsp[(1) - (4)])); ;} break; case 2171: #line 15999 "gram.y" { JsonObjectConstructor *n = makeNode(JsonObjectConstructor); n->exprs = (yyvsp[(3) - (7)].list); n->absent_on_null = (yyvsp[(4) - (7)].boolean); n->unique = (yyvsp[(5) - (7)].boolean); n->output = (JsonOutput *) (yyvsp[(6) - (7)].node); n->location = (yylsp[(1) - (7)]); (yyval.node) = (Node *) n; ;} break; case 2172: #line 16010 "gram.y" { JsonObjectConstructor *n = makeNode(JsonObjectConstructor); n->exprs = NULL; n->absent_on_null = false; n->unique = false; n->output = (JsonOutput *) (yyvsp[(3) - (4)].node); n->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *) n; ;} break; case 2173: #line 16025 "gram.y" { JsonArrayConstructor *n = makeNode(JsonArrayConstructor); n->exprs = (yyvsp[(3) - (6)].list); n->absent_on_null = (yyvsp[(4) - (6)].boolean); n->output = (JsonOutput *) (yyvsp[(5) - (6)].node); n->location = (yylsp[(1) - (6)]); (yyval.node) = (Node *) n; ;} break; case 2174: #line 16040 "gram.y" { JsonArrayQueryConstructor *n = makeNode(JsonArrayQueryConstructor); n->query = (yyvsp[(3) - (6)].node); n->format = (JsonFormat *) (yyvsp[(4) - (6)].node); n->absent_on_null = true; /* XXX */ n->output = (JsonOutput *) (yyvsp[(5) - (6)].node); n->location = (yylsp[(1) - (6)]); (yyval.node) = (Node *) n; ;} break; case 2175: #line 16053 "gram.y" { JsonArrayConstructor *n = makeNode(JsonArrayConstructor); n->exprs = NIL; n->absent_on_null = true; n->output = (JsonOutput *) (yyvsp[(3) - (4)].node); n->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *) n; ;} break; case 2176: #line 16063 "gram.y" { JsonParseExpr *n = makeNode(JsonParseExpr); n->expr = (JsonValueExpr *) (yyvsp[(3) - (5)].node); n->unique_keys = (yyvsp[(4) - (5)].boolean); n->output = NULL; n->location = (yylsp[(1) - (5)]); (yyval.node) = (Node *) n; ;} break; case 2177: #line 16073 "gram.y" { JsonScalarExpr *n = makeNode(JsonScalarExpr); n->expr = (Expr *) (yyvsp[(3) - (4)].node); n->output = NULL; n->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *) n; ;} break; case 2178: #line 16082 "gram.y" { JsonSerializeExpr *n = makeNode(JsonSerializeExpr); n->expr = (JsonValueExpr *) (yyvsp[(3) - (5)].node); n->output = (JsonOutput *) (yyvsp[(4) - (5)].node); n->location = (yylsp[(1) - (5)]); (yyval.node) = (Node *) n; ;} break; case 2179: #line 16091 "gram.y" { MergeSupportFunc *m = makeNode(MergeSupportFunc); m->msftype = TEXTOID; m->location = (yylsp[(1) - (3)]); (yyval.node) = (Node *) m; ;} break; case 2180: #line 16105 "gram.y" { JsonFuncExpr *n = makeNode(JsonFuncExpr); n->op = JSON_QUERY_OP; n->context_item = (JsonValueExpr *) (yyvsp[(3) - (11)].node); n->pathspec = (yyvsp[(5) - (11)].node); n->passing = (yyvsp[(6) - (11)].list); n->output = (JsonOutput *) (yyvsp[(7) - (11)].node); n->wrapper = (yyvsp[(8) - (11)].ival); n->quotes = (yyvsp[(9) - (11)].ival); n->on_empty = (JsonBehavior *) linitial((yyvsp[(10) - (11)].list)); n->on_error = (JsonBehavior *) lsecond((yyvsp[(10) - (11)].list)); n->location = (yylsp[(1) - (11)]); (yyval.node) = (Node *) n; ;} break; case 2181: #line 16124 "gram.y" { JsonFuncExpr *n = makeNode(JsonFuncExpr); n->op = JSON_EXISTS_OP; n->context_item = (JsonValueExpr *) (yyvsp[(3) - (8)].node); n->pathspec = (yyvsp[(5) - (8)].node); n->passing = (yyvsp[(6) - (8)].list); n->output = NULL; n->on_error = (JsonBehavior *) (yyvsp[(7) - (8)].node); n->location = (yylsp[(1) - (8)]); (yyval.node) = (Node *) n; ;} break; case 2182: #line 16141 "gram.y" { JsonFuncExpr *n = makeNode(JsonFuncExpr); n->op = JSON_VALUE_OP; n->context_item = (JsonValueExpr *) (yyvsp[(3) - (9)].node); n->pathspec = (yyvsp[(5) - (9)].node); n->passing = (yyvsp[(6) - (9)].list); n->output = (JsonOutput *) (yyvsp[(7) - (9)].node); n->on_empty = (JsonBehavior *) linitial((yyvsp[(8) - (9)].list)); n->on_error = (JsonBehavior *) lsecond((yyvsp[(8) - (9)].list)); n->location = (yylsp[(1) - (9)]); (yyval.node) = (Node *) n; ;} break; case 2183: #line 16161 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 2184: #line 16163 "gram.y" { (yyval.node) = makeNullAConst(-1); ;} break; case 2185: #line 16167 "gram.y" { (yyval.node) = makeIntConst(XML_STANDALONE_YES, -1); ;} break; case 2186: #line 16169 "gram.y" { (yyval.node) = makeIntConst(XML_STANDALONE_NO, -1); ;} break; case 2187: #line 16171 "gram.y" { (yyval.node) = makeIntConst(XML_STANDALONE_NO_VALUE, -1); ;} break; case 2188: #line 16173 "gram.y" { (yyval.node) = makeIntConst(XML_STANDALONE_OMITTED, -1); ;} break; case 2189: #line 16176 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 2190: #line 16179 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 2191: #line 16180 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} break; case 2192: #line 16184 "gram.y" { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[(3) - (3)].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *) (yyvsp[(1) - (3)].node); (yyval.target)->location = (yylsp[(1) - (3)]); ;} break; case 2193: #line 16192 "gram.y" { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *) (yyvsp[(1) - (1)].node); (yyval.target)->location = (yylsp[(1) - (1)]); ;} break; case 2194: #line 16201 "gram.y" { (yyval.ival) = XMLOPTION_DOCUMENT; ;} break; case 2195: #line 16202 "gram.y" { (yyval.ival) = XMLOPTION_CONTENT; ;} break; case 2196: #line 16205 "gram.y" { (yyval.boolean) = true; ;} break; case 2197: #line 16206 "gram.y" { (yyval.boolean) = false; ;} break; case 2198: #line 16207 "gram.y" { (yyval.boolean) = false; ;} break; case 2199: #line 16210 "gram.y" { (yyval.boolean) = true; ;} break; case 2200: #line 16211 "gram.y" { (yyval.boolean) = false; ;} break; case 2201: #line 16212 "gram.y" { (yyval.boolean) = false; ;} break; case 2202: #line 16218 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 2203: #line 16222 "gram.y" { (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; case 2204: #line 16226 "gram.y" { (yyval.node) = (yyvsp[(3) - (3)].node); ;} break; case 2205: #line 16230 "gram.y" { (yyval.node) = (yyvsp[(3) - (4)].node); ;} break; case 2208: #line 16245 "gram.y" { (yyval.list) = (yyvsp[(4) - (5)].list); ;} break; case 2209: #line 16246 "gram.y" { (yyval.list) = NIL; ;} break; case 2210: #line 16250 "gram.y" { (yyval.node) = (yyvsp[(4) - (5)].node); ;} break; case 2211: #line 16251 "gram.y" { (yyval.node) = NULL; ;} break; case 2212: #line 16259 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 2213: #line 16260 "gram.y" { (yyval.list) = NIL; ;} break; case 2214: #line 16264 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].windef)); ;} break; case 2215: #line 16266 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].windef)); ;} break; case 2216: #line 16271 "gram.y" { WindowDef *n = (yyvsp[(3) - (3)].windef); n->name = (yyvsp[(1) - (3)].str); (yyval.windef) = n; ;} break; case 2217: #line 16280 "gram.y" { (yyval.windef) = (yyvsp[(2) - (2)].windef); ;} break; case 2218: #line 16282 "gram.y" { WindowDef *n = makeNode(WindowDef); n->name = (yyvsp[(2) - (2)].str); n->refname = NULL; n->partitionClause = NIL; n->orderClause = NIL; n->frameOptions = FRAMEOPTION_DEFAULTS; n->startOffset = NULL; n->endOffset = NULL; n->location = (yylsp[(2) - (2)]); (yyval.windef) = n; ;} break; case 2219: #line 16296 "gram.y" { (yyval.windef) = NULL; ;} break; case 2220: #line 16301 "gram.y" { WindowDef *n = makeNode(WindowDef); n->name = NULL; n->refname = (yyvsp[(2) - (6)].str); n->partitionClause = (yyvsp[(3) - (6)].list); n->orderClause = (yyvsp[(4) - (6)].list); /* copy relevant fields of opt_frame_clause */ n->frameOptions = (yyvsp[(5) - (6)].windef)->frameOptions; n->startOffset = (yyvsp[(5) - (6)].windef)->startOffset; n->endOffset = (yyvsp[(5) - (6)].windef)->endOffset; n->location = (yylsp[(1) - (6)]); (yyval.windef) = n; ;} break; case 2221: #line 16327 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2222: #line 16328 "gram.y" { (yyval.str) = NULL; ;} break; case 2223: #line 16331 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); ;} break; case 2224: #line 16332 "gram.y" { (yyval.list) = NIL; ;} break; case 2225: #line 16341 "gram.y" { WindowDef *n = (yyvsp[(2) - (3)].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE; n->frameOptions |= (yyvsp[(3) - (3)].ival); (yyval.windef) = n; ;} break; case 2226: #line 16349 "gram.y" { WindowDef *n = (yyvsp[(2) - (3)].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS; n->frameOptions |= (yyvsp[(3) - (3)].ival); (yyval.windef) = n; ;} break; case 2227: #line 16357 "gram.y" { WindowDef *n = (yyvsp[(2) - (3)].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_GROUPS; n->frameOptions |= (yyvsp[(3) - (3)].ival); (yyval.windef) = n; ;} break; case 2228: #line 16365 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_DEFAULTS; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; ;} break; case 2229: #line 16376 "gram.y" { WindowDef *n = (yyvsp[(1) - (1)].windef); /* reject invalid cases */ if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame start cannot be UNBOUNDED FOLLOWING"), parser_errposition((yylsp[(1) - (1)])))); if (n->frameOptions & FRAMEOPTION_START_OFFSET_FOLLOWING) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame starting from following row cannot end with current row"), parser_errposition((yylsp[(1) - (1)])))); n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW; (yyval.windef) = n; ;} break; case 2230: #line 16394 "gram.y" { WindowDef *n1 = (yyvsp[(2) - (4)].windef); WindowDef *n2 = (yyvsp[(4) - (4)].windef); /* form merged options */ int frameOptions = n1->frameOptions; /* shift converts START_ options to END_ options */ frameOptions |= n2->frameOptions << 1; frameOptions |= FRAMEOPTION_BETWEEN; /* reject invalid cases */ if (frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame start cannot be UNBOUNDED FOLLOWING"), parser_errposition((yylsp[(2) - (4)])))); if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame end cannot be UNBOUNDED PRECEDING"), parser_errposition((yylsp[(4) - (4)])))); if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) && (frameOptions & FRAMEOPTION_END_OFFSET_PRECEDING)) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame starting from current row cannot have preceding rows"), parser_errposition((yylsp[(4) - (4)])))); if ((frameOptions & FRAMEOPTION_START_OFFSET_FOLLOWING) && (frameOptions & (FRAMEOPTION_END_OFFSET_PRECEDING | FRAMEOPTION_END_CURRENT_ROW))) ereport(ERROR, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame starting from following row cannot have preceding rows"), parser_errposition((yylsp[(4) - (4)])))); n1->frameOptions = frameOptions; n1->endOffset = n2->startOffset; (yyval.windef) = n1; ;} break; case 2231: #line 16440 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; ;} break; case 2232: #line 16449 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; ;} break; case 2233: #line 16458 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_CURRENT_ROW; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; ;} break; case 2234: #line 16467 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_OFFSET_PRECEDING; n->startOffset = (yyvsp[(1) - (2)].node); n->endOffset = NULL; (yyval.windef) = n; ;} break; case 2235: #line 16476 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_OFFSET_FOLLOWING; n->startOffset = (yyvsp[(1) - (2)].node); n->endOffset = NULL; (yyval.windef) = n; ;} break; case 2236: #line 16487 "gram.y" { (yyval.ival) = FRAMEOPTION_EXCLUDE_CURRENT_ROW; ;} break; case 2237: #line 16488 "gram.y" { (yyval.ival) = FRAMEOPTION_EXCLUDE_GROUP; ;} break; case 2238: #line 16489 "gram.y" { (yyval.ival) = FRAMEOPTION_EXCLUDE_TIES; ;} break; case 2239: #line 16490 "gram.y" { (yyval.ival) = 0; ;} break; case 2240: #line 16491 "gram.y" { (yyval.ival) = 0; ;} break; case 2241: #line 16505 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 2242: #line 16506 "gram.y" { (yyval.list) = NIL; ;} break; case 2243: #line 16507 "gram.y" { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;} break; case 2244: #line 16510 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 2245: #line 16511 "gram.y" { (yyval.list) = NIL; ;} break; case 2246: #line 16514 "gram.y" { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;} break; case 2247: #line 16517 "gram.y" { (yyval.ival) = ANY_SUBLINK; ;} break; case 2248: #line 16518 "gram.y" { (yyval.ival) = ANY_SUBLINK; ;} break; case 2249: #line 16519 "gram.y" { (yyval.ival) = ALL_SUBLINK; ;} break; case 2250: #line 16522 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2251: #line 16523 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2252: #line 16526 "gram.y" { (yyval.str) = "+"; ;} break; case 2253: #line 16527 "gram.y" { (yyval.str) = "-"; ;} break; case 2254: #line 16528 "gram.y" { (yyval.str) = "*"; ;} break; case 2255: #line 16529 "gram.y" { (yyval.str) = "/"; ;} break; case 2256: #line 16530 "gram.y" { (yyval.str) = "%"; ;} break; case 2257: #line 16531 "gram.y" { (yyval.str) = "^"; ;} break; case 2258: #line 16532 "gram.y" { (yyval.str) = "<"; ;} break; case 2259: #line 16533 "gram.y" { (yyval.str) = ">"; ;} break; case 2260: #line 16534 "gram.y" { (yyval.str) = "="; ;} break; case 2261: #line 16535 "gram.y" { (yyval.str) = "<="; ;} break; case 2262: #line 16536 "gram.y" { (yyval.str) = ">="; ;} break; case 2263: #line 16537 "gram.y" { (yyval.str) = "<>"; ;} break; case 2264: #line 16541 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 2265: #line 16543 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 2266: #line 16548 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 2267: #line 16550 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 2268: #line 16555 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 2269: #line 16557 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 2270: #line 16559 "gram.y" { (yyval.list) = list_make1(makeString("~~")); ;} break; case 2271: #line 16561 "gram.y" { (yyval.list) = list_make1(makeString("!~~")); ;} break; case 2272: #line 16563 "gram.y" { (yyval.list) = list_make1(makeString("~~*")); ;} break; case 2273: #line 16565 "gram.y" { (yyval.list) = list_make1(makeString("!~~*")); ;} break; case 2274: #line 16577 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2275: #line 16581 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 2276: #line 16588 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2277: #line 16592 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 2278: #line 16598 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2279: #line 16602 "gram.y" { NamedArgExpr *na = makeNode(NamedArgExpr); na->name = (yyvsp[(1) - (3)].str); na->arg = (Expr *) (yyvsp[(3) - (3)].node); na->argnumber = -1; /* until determined */ na->location = (yylsp[(1) - (3)]); (yyval.node) = (Node *) na; ;} break; case 2280: #line 16612 "gram.y" { NamedArgExpr *na = makeNode(NamedArgExpr); na->name = (yyvsp[(1) - (3)].str); na->arg = (Expr *) (yyvsp[(3) - (3)].node); na->argnumber = -1; /* until determined */ na->location = (yylsp[(1) - (3)]); (yyval.node) = (Node *) na; ;} break; case 2281: #line 16623 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 2282: #line 16624 "gram.y" { (yyval.list) = NIL; ;} break; case 2283: #line 16627 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;} break; case 2284: #line 16628 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;} break; case 2285: #line 16632 "gram.y" { (yyval.node) = makeAArrayExpr((yyvsp[(2) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 2286: #line 16636 "gram.y" { (yyval.node) = makeAArrayExpr((yyvsp[(2) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 2287: #line 16640 "gram.y" { (yyval.node) = makeAArrayExpr(NIL, (yylsp[(1) - (2)])); ;} break; case 2288: #line 16645 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2289: #line 16646 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 2290: #line 16652 "gram.y" { (yyval.list) = list_make2(makeStringConst((yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node)); ;} break; case 2291: #line 16656 "gram.y" { (yyval.list) = list_make2(makeParamRef((yyvsp[(1) - (3)].ival), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node)); ;} break; case 2292: #line 16665 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2293: #line 16666 "gram.y" { (yyval.str) = "year"; ;} break; case 2294: #line 16667 "gram.y" { (yyval.str) = "month"; ;} break; case 2295: #line 16668 "gram.y" { (yyval.str) = "day"; ;} break; case 2296: #line 16669 "gram.y" { (yyval.str) = "hour"; ;} break; case 2297: #line 16670 "gram.y" { (yyval.str) = "minute"; ;} break; case 2298: #line 16671 "gram.y" { (yyval.str) = "second"; ;} break; case 2299: #line 16672 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2300: #line 16676 "gram.y" { (yyval.str) = "NFC"; ;} break; case 2301: #line 16677 "gram.y" { (yyval.str) = "NFD"; ;} break; case 2302: #line 16678 "gram.y" { (yyval.str) = "NFKC"; ;} break; case 2303: #line 16679 "gram.y" { (yyval.str) = "NFKD"; ;} break; case 2304: #line 16685 "gram.y" { /* overlay(A PLACING B FROM C FOR D) is converted to overlay(A, B, C, D) */ (yyval.list) = list_make4((yyvsp[(1) - (7)].node), (yyvsp[(3) - (7)].node), (yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)); ;} break; case 2305: #line 16690 "gram.y" { /* overlay(A PLACING B FROM C) is converted to overlay(A, B, C) */ (yyval.list) = list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)); ;} break; case 2306: #line 16698 "gram.y" { (yyval.list) = list_make2((yyvsp[(3) - (3)].node), (yyvsp[(1) - (3)].node)); ;} break; case 2307: #line 16720 "gram.y" { (yyval.list) = list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)); ;} break; case 2308: #line 16724 "gram.y" { /* not legal per SQL, but might as well allow it */ (yyval.list) = list_make3((yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yyvsp[(3) - (5)].node)); ;} break; case 2309: #line 16729 "gram.y" { /* * Because we aren't restricting data types here, this * syntax can end up resolving to textregexsubstr(). * We've historically allowed that to happen, so continue * to accept it. However, ruleutils.c will reverse-list * such a call in regular function call syntax. */ (yyval.list) = list_make2((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); ;} break; case 2310: #line 16740 "gram.y" { /* not legal per SQL */ /* * Since there are no cases where this syntax allows * a textual FOR value, we forcibly cast the argument * to int4. The possible matches in pg_proc are * substring(text,int4) and substring(text,text), * and we don't want the parser to choose the latter, * which it is likely to do if the second argument * is unknown or doesn't have an implicit cast to int4. */ (yyval.list) = list_make3((yyvsp[(1) - (3)].node), makeIntConst(1, -1), makeTypeCast((yyvsp[(3) - (3)].node), SystemTypeName("int4"), -1)); ;} break; case 2311: #line 16757 "gram.y" { (yyval.list) = list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)); ;} break; case 2312: #line 16762 "gram.y" { (yyval.list) = lappend((yyvsp[(3) - (3)].list), (yyvsp[(1) - (3)].node)); ;} break; case 2313: #line 16763 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 2314: #line 16764 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 2315: #line 16768 "gram.y" { SubLink *n = makeNode(SubLink); n->subselect = (yyvsp[(1) - (1)].node); /* other fields will be filled later */ (yyval.node) = (Node *) n; ;} break; case 2316: #line 16775 "gram.y" { (yyval.node) = (Node *) (yyvsp[(2) - (3)].list); ;} break; case 2317: #line 16786 "gram.y" { CaseExpr *c = makeNode(CaseExpr); c->casetype = InvalidOid; /* not analyzed yet */ c->arg = (Expr *) (yyvsp[(2) - (5)].node); c->args = (yyvsp[(3) - (5)].list); c->defresult = (Expr *) (yyvsp[(4) - (5)].node); c->location = (yylsp[(1) - (5)]); (yyval.node) = (Node *) c; ;} break; case 2318: #line 16800 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2319: #line 16801 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 2320: #line 16806 "gram.y" { CaseWhen *w = makeNode(CaseWhen); w->expr = (Expr *) (yyvsp[(2) - (4)].node); w->result = (Expr *) (yyvsp[(4) - (4)].node); w->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *) w; ;} break; case 2321: #line 16817 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 2322: #line 16818 "gram.y" { (yyval.node) = NULL; ;} break; case 2323: #line 16821 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2324: #line 16822 "gram.y" { (yyval.node) = NULL; ;} break; case 2325: #line 16826 "gram.y" { (yyval.node) = makeColumnRef((yyvsp[(1) - (1)].str), NIL, (yylsp[(1) - (1)]), yyscanner); ;} break; case 2326: #line 16830 "gram.y" { (yyval.node) = makeColumnRef((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner); ;} break; case 2327: #line 16837 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(2) - (2)].str)); ;} break; case 2328: #line 16841 "gram.y" { (yyval.node) = (Node *) makeNode(A_Star); ;} break; case 2329: #line 16845 "gram.y" { A_Indices *ai = makeNode(A_Indices); ai->is_slice = false; ai->lidx = NULL; ai->uidx = (yyvsp[(2) - (3)].node); (yyval.node) = (Node *) ai; ;} break; case 2330: #line 16854 "gram.y" { A_Indices *ai = makeNode(A_Indices); ai->is_slice = true; ai->lidx = (yyvsp[(2) - (5)].node); ai->uidx = (yyvsp[(4) - (5)].node); (yyval.node) = (Node *) ai; ;} break; case 2331: #line 16865 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2332: #line 16866 "gram.y" { (yyval.node) = NULL; ;} break; case 2333: #line 16870 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2334: #line 16871 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 2335: #line 16875 "gram.y" { (yyval.list) = NIL; ;} break; case 2336: #line 16876 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 2339: #line 16885 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 2340: #line 16886 "gram.y" { (yyval.list) = NIL; ;} break; case 2341: #line 16890 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2342: #line 16891 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 2343: #line 16896 "gram.y" { JsonArgument *n = makeNode(JsonArgument); n->val = (JsonValueExpr *) (yyvsp[(1) - (3)].node); n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 2344: #line 16907 "gram.y" { (yyval.ival) = JSW_NONE; ;} break; case 2345: #line 16908 "gram.y" { (yyval.ival) = JSW_NONE; ;} break; case 2346: #line 16909 "gram.y" { (yyval.ival) = JSW_UNCONDITIONAL; ;} break; case 2347: #line 16910 "gram.y" { (yyval.ival) = JSW_UNCONDITIONAL; ;} break; case 2348: #line 16911 "gram.y" { (yyval.ival) = JSW_CONDITIONAL; ;} break; case 2349: #line 16912 "gram.y" { (yyval.ival) = JSW_UNCONDITIONAL; ;} break; case 2350: #line 16913 "gram.y" { (yyval.ival) = JSW_CONDITIONAL; ;} break; case 2351: #line 16914 "gram.y" { (yyval.ival) = JSW_UNCONDITIONAL; ;} break; case 2352: #line 16915 "gram.y" { (yyval.ival) = JSW_UNSPEC; ;} break; case 2353: #line 16920 "gram.y" { (yyval.node) = (Node *) makeJsonBehavior(JSON_BEHAVIOR_DEFAULT, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 2354: #line 16922 "gram.y" { (yyval.node) = (Node *) makeJsonBehavior((yyvsp[(1) - (1)].ival), NULL, (yylsp[(1) - (1)])); ;} break; case 2355: #line 16926 "gram.y" { (yyval.ival) = JSON_BEHAVIOR_ERROR; ;} break; case 2356: #line 16927 "gram.y" { (yyval.ival) = JSON_BEHAVIOR_NULL; ;} break; case 2357: #line 16928 "gram.y" { (yyval.ival) = JSON_BEHAVIOR_TRUE; ;} break; case 2358: #line 16929 "gram.y" { (yyval.ival) = JSON_BEHAVIOR_FALSE; ;} break; case 2359: #line 16930 "gram.y" { (yyval.ival) = JSON_BEHAVIOR_UNKNOWN; ;} break; case 2360: #line 16931 "gram.y" { (yyval.ival) = JSON_BEHAVIOR_EMPTY_ARRAY; ;} break; case 2361: #line 16932 "gram.y" { (yyval.ival) = JSON_BEHAVIOR_EMPTY_OBJECT; ;} break; case 2362: #line 16934 "gram.y" { (yyval.ival) = JSON_BEHAVIOR_EMPTY_ARRAY; ;} break; case 2363: #line 16939 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (3)].node), NULL); ;} break; case 2364: #line 16941 "gram.y" { (yyval.list) = list_make2(NULL, (yyvsp[(1) - (3)].node)); ;} break; case 2365: #line 16943 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node)); ;} break; case 2366: #line 16945 "gram.y" { (yyval.list) = list_make2(NULL, NULL); ;} break; case 2367: #line 16950 "gram.y" { (yyval.node) = (yyvsp[(1) - (3)].node); ;} break; case 2368: #line 16952 "gram.y" { (yyval.node) = NULL; ;} break; case 2369: #line 16957 "gram.y" { /* formatted_expr will be set during parse-analysis. */ (yyval.node) = (Node *) makeJsonValueExpr((Expr *) (yyvsp[(1) - (2)].node), NULL, castNode(JsonFormat, (yyvsp[(2) - (2)].node))); ;} break; case 2370: #line 16966 "gram.y" { int encoding; if (!pg_strcasecmp((yyvsp[(4) - (4)].str), "utf8")) encoding = JS_ENC_UTF8; else if (!pg_strcasecmp((yyvsp[(4) - (4)].str), "utf16")) encoding = JS_ENC_UTF16; else if (!pg_strcasecmp((yyvsp[(4) - (4)].str), "utf32")) encoding = JS_ENC_UTF32; else ereport(ERROR, errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("unrecognized JSON encoding: %s", (yyvsp[(4) - (4)].str))); (yyval.node) = (Node *) makeJsonFormat(JS_FORMAT_JSON, encoding, (yylsp[(1) - (4)])); ;} break; case 2371: #line 16983 "gram.y" { (yyval.node) = (Node *) makeJsonFormat(JS_FORMAT_JSON, JS_ENC_DEFAULT, (yylsp[(1) - (2)])); ;} break; case 2372: #line 16990 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2373: #line 16994 "gram.y" { (yyval.node) = (Node *) makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1); ;} break; case 2374: #line 17000 "gram.y" { (yyval.ival) = JS_QUOTES_KEEP; ;} break; case 2375: #line 17001 "gram.y" { (yyval.ival) = JS_QUOTES_KEEP; ;} break; case 2376: #line 17002 "gram.y" { (yyval.ival) = JS_QUOTES_OMIT; ;} break; case 2377: #line 17003 "gram.y" { (yyval.ival) = JS_QUOTES_OMIT; ;} break; case 2378: #line 17004 "gram.y" { (yyval.ival) = JS_QUOTES_UNSPEC; ;} break; case 2379: #line 17009 "gram.y" { JsonOutput *n = makeNode(JsonOutput); n->typeName = (yyvsp[(2) - (3)].typnam); n->returning = makeNode(JsonReturning); n->returning->format = (JsonFormat *) (yyvsp[(3) - (3)].node); (yyval.node) = (Node *) n; ;} break; case 2380: #line 17017 "gram.y" { (yyval.node) = NULL; ;} break; case 2381: #line 17031 "gram.y" { (yyval.ival) = JS_TYPE_ANY; ;} break; case 2382: #line 17032 "gram.y" { (yyval.ival) = JS_TYPE_ANY; ;} break; case 2383: #line 17033 "gram.y" { (yyval.ival) = JS_TYPE_ARRAY; ;} break; case 2384: #line 17034 "gram.y" { (yyval.ival) = JS_TYPE_OBJECT; ;} break; case 2385: #line 17035 "gram.y" { (yyval.ival) = JS_TYPE_SCALAR; ;} break; case 2386: #line 17044 "gram.y" { (yyval.boolean) = true; ;} break; case 2387: #line 17045 "gram.y" { (yyval.boolean) = true; ;} break; case 2388: #line 17046 "gram.y" { (yyval.boolean) = false; ;} break; case 2389: #line 17047 "gram.y" { (yyval.boolean) = false; ;} break; case 2390: #line 17048 "gram.y" { (yyval.boolean) = false; ;} break; case 2391: #line 17053 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2392: #line 17055 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 2393: #line 17065 "gram.y" { (yyval.node) = makeJsonKeyValue((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); ;} break; case 2394: #line 17068 "gram.y" { (yyval.node) = makeJsonKeyValue((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); ;} break; case 2395: #line 17073 "gram.y" { (yyval.boolean) = false; ;} break; case 2396: #line 17074 "gram.y" { (yyval.boolean) = true; ;} break; case 2397: #line 17075 "gram.y" { (yyval.boolean) = false; ;} break; case 2398: #line 17079 "gram.y" { (yyval.boolean) = false; ;} break; case 2399: #line 17080 "gram.y" { (yyval.boolean) = true; ;} break; case 2400: #line 17081 "gram.y" { (yyval.boolean) = true; ;} break; case 2401: #line 17085 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2402: #line 17086 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));;} break; case 2403: #line 17096 "gram.y" { JsonObjectAgg *n = makeNode(JsonObjectAgg); n->arg = (JsonKeyValue *) (yyvsp[(3) - (7)].node); n->absent_on_null = (yyvsp[(4) - (7)].boolean); n->unique = (yyvsp[(5) - (7)].boolean); n->constructor = makeNode(JsonAggConstructor); n->constructor->output = (JsonOutput *) (yyvsp[(6) - (7)].node); n->constructor->agg_order = NULL; n->constructor->location = (yylsp[(1) - (7)]); (yyval.node) = (Node *) n; ;} break; case 2404: #line 17114 "gram.y" { JsonArrayAgg *n = makeNode(JsonArrayAgg); n->arg = (JsonValueExpr *) (yyvsp[(3) - (7)].node); n->absent_on_null = (yyvsp[(5) - (7)].boolean); n->constructor = makeNode(JsonAggConstructor); n->constructor->agg_order = (yyvsp[(4) - (7)].list); n->constructor->output = (JsonOutput *) (yyvsp[(6) - (7)].node); n->constructor->location = (yylsp[(1) - (7)]); (yyval.node) = (Node *) n; ;} break; case 2405: #line 17128 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); ;} break; case 2406: #line 17129 "gram.y" { (yyval.list) = NIL; ;} break; case 2407: #line 17138 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 2408: #line 17139 "gram.y" { (yyval.list) = NIL; ;} break; case 2409: #line 17143 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 2410: #line 17144 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} break; case 2411: #line 17148 "gram.y" { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[(3) - (3)].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *) (yyvsp[(1) - (3)].node); (yyval.target)->location = (yylsp[(1) - (3)]); ;} break; case 2412: #line 17156 "gram.y" { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = (yyvsp[(2) - (2)].str); (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *) (yyvsp[(1) - (2)].node); (yyval.target)->location = (yylsp[(1) - (2)]); ;} break; case 2413: #line 17164 "gram.y" { (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *) (yyvsp[(1) - (1)].node); (yyval.target)->location = (yylsp[(1) - (1)]); ;} break; case 2414: #line 17172 "gram.y" { ColumnRef *n = makeNode(ColumnRef); n->fields = list_make1(makeNode(A_Star)); n->location = (yylsp[(1) - (1)]); (yyval.target) = makeNode(ResTarget); (yyval.target)->name = NULL; (yyval.target)->indirection = NIL; (yyval.target)->val = (Node *) n; (yyval.target)->location = (yylsp[(1) - (1)]); ;} break; case 2415: #line 17194 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;} break; case 2416: #line 17195 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;} break; case 2417: #line 17207 "gram.y" { (yyval.range) = makeRangeVar(NULL, (yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 2418: #line 17211 "gram.y" { (yyval.range) = makeRangeVarFromQualifiedName((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner); ;} break; case 2419: #line 17217 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 2420: #line 17219 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; case 2421: #line 17223 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2422: #line 17225 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2423: #line 17227 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2424: #line 17238 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 2425: #line 17240 "gram.y" { (yyval.list) = check_func_name(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)), yyscanner); ;} break; case 2426: #line 17251 "gram.y" { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); ;} break; case 2427: #line 17255 "gram.y" { (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 2428: #line 17259 "gram.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 2429: #line 17263 "gram.y" { (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 2430: #line 17267 "gram.y" { /* This is a bit constant per SQL99: * Without Feature F511, "BIT data type", * a shall not be a * or a . */ (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 2431: #line 17276 "gram.y" { /* generic type 'literal' syntax */ TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (2)].list)); t->location = (yylsp[(1) - (2)]); (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), t); ;} break; case 2432: #line 17284 "gram.y" { /* generic syntax with a type modifier */ TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (6)].list)); ListCell *lc; /* * We must use func_arg_list and opt_sort_clause in the * production to avoid reduce/reduce conflicts, but we * don't actually wish to allow NamedArgExpr in this * context, nor ORDER BY. */ foreach(lc, (yyvsp[(3) - (6)].list)) { NamedArgExpr *arg = (NamedArgExpr *) lfirst(lc); if (IsA(arg, NamedArgExpr)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("type modifier cannot have parameter name"), parser_errposition(arg->location))); } if ((yyvsp[(4) - (6)].list) != NIL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("type modifier cannot have ORDER BY"), parser_errposition((yylsp[(4) - (6)])))); t->typmods = (yyvsp[(3) - (6)].list); t->location = (yylsp[(1) - (6)]); (yyval.node) = makeStringConstCast((yyvsp[(6) - (6)].str), (yylsp[(6) - (6)]), t); ;} break; case 2433: #line 17316 "gram.y" { /* generic type 'literal' syntax */ TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (2)].list)); t->location = (yylsp[(1) - (2)]); (yyval.node) = makeParamRefCast((yyvsp[(2) - (2)].ival), (yylsp[(2) - (2)]), t); ;} break; case 2434: #line 17323 "gram.y" { /* generic syntax with a type modifier */ TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (6)].list)); ListCell *lc; /* * We must use func_arg_list and opt_sort_clause in the * production to avoid reduce/reduce conflicts, but we * don't actually wish to allow NamedArgExpr in this * context, nor ORDER BY. */ foreach(lc, (yyvsp[(3) - (6)].list)) { NamedArgExpr *arg = (NamedArgExpr *) lfirst(lc); if (IsA(arg, NamedArgExpr)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("type modifier cannot have parameter name"), parser_errposition(arg->location))); } if ((yyvsp[(4) - (6)].list) != NIL) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("type modifier cannot have ORDER BY"), parser_errposition((yylsp[(4) - (6)])))); t->typmods = (yyvsp[(3) - (6)].list); t->location = (yylsp[(1) - (6)]); (yyval.node) = makeParamRefCast((yyvsp[(6) - (6)].ival), (yylsp[(6) - (6)]), t); ;} break; case 2435: #line 17355 "gram.y" { (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam)); ;} break; case 2436: #line 17359 "gram.y" { TypeName *t = (yyvsp[(1) - (3)].typnam); t->typmods = (yyvsp[(3) - (3)].list); (yyval.node) = makeStringConstCast((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), t); ;} break; case 2437: #line 17366 "gram.y" { TypeName *t = (yyvsp[(1) - (5)].typnam); t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); (yyval.node) = makeStringConstCast((yyvsp[(5) - (5)].str), (yylsp[(5) - (5)]), t); ;} break; case 2438: #line 17374 "gram.y" { (yyval.node) = makeParamRefCast((yyvsp[(2) - (2)].ival), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam)); ;} break; case 2439: #line 17378 "gram.y" { TypeName *t = (yyvsp[(1) - (3)].typnam); t->typmods = (yyvsp[(3) - (3)].list); (yyval.node) = makeParamRefCast((yyvsp[(2) - (3)].ival), (yylsp[(2) - (3)]), t); ;} break; case 2440: #line 17384 "gram.y" { TypeName *t = (yyvsp[(1) - (5)].typnam); t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); (yyval.node) = makeParamRefCast((yyvsp[(5) - (5)].ival), (yylsp[(5) - (5)]), t); ;} break; case 2441: #line 17391 "gram.y" { (yyval.node) = makeBoolAConst(true, (yylsp[(1) - (1)])); ;} break; case 2442: #line 17395 "gram.y" { (yyval.node) = makeBoolAConst(false, (yylsp[(1) - (1)])); ;} break; case 2443: #line 17399 "gram.y" { (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); ;} break; case 2444: #line 17404 "gram.y" { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} break; case 2445: #line 17405 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2446: #line 17407 "gram.y" { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} break; case 2447: #line 17408 "gram.y" { (yyval.ival) = + (yyvsp[(2) - (2)].ival); ;} break; case 2448: #line 17409 "gram.y" { (yyval.ival) = - (yyvsp[(2) - (2)].ival); ;} break; case 2449: #line 17414 "gram.y" { RoleSpec *spc = (RoleSpec *) (yyvsp[(1) - (1)].rolespec); switch (spc->roletype) { case ROLESPEC_CSTRING: (yyval.str) = spc->rolename; break; case ROLESPEC_PUBLIC: ereport(ERROR, (errcode(ERRCODE_RESERVED_NAME), errmsg("role name \"%s\" is reserved", "public"), parser_errposition((yylsp[(1) - (1)])))); break; case ROLESPEC_SESSION_USER: ereport(ERROR, (errcode(ERRCODE_RESERVED_NAME), errmsg("%s cannot be used as a role name here", "SESSION_USER"), parser_errposition((yylsp[(1) - (1)])))); break; case ROLESPEC_CURRENT_USER: ereport(ERROR, (errcode(ERRCODE_RESERVED_NAME), errmsg("%s cannot be used as a role name here", "CURRENT_USER"), parser_errposition((yylsp[(1) - (1)])))); break; case ROLESPEC_CURRENT_ROLE: ereport(ERROR, (errcode(ERRCODE_RESERVED_NAME), errmsg("%s cannot be used as a role name here", "CURRENT_ROLE"), parser_errposition((yylsp[(1) - (1)])))); break; } ;} break; case 2450: #line 17455 "gram.y" { /* * "public" and "none" are not keywords, but they must * be treated specially here. */ RoleSpec *n; if (strcmp((yyvsp[(1) - (1)].str), "public") == 0) { n = (RoleSpec *) makeRoleSpec(ROLESPEC_PUBLIC, (yylsp[(1) - (1)])); n->roletype = ROLESPEC_PUBLIC; } else if (strcmp((yyvsp[(1) - (1)].str), "none") == 0) { ereport(ERROR, (errcode(ERRCODE_RESERVED_NAME), errmsg("role name \"%s\" is reserved", "none"), parser_errposition((yylsp[(1) - (1)])))); } else { n = makeRoleSpec(ROLESPEC_CSTRING, (yylsp[(1) - (1)])); n->rolename = pstrdup((yyvsp[(1) - (1)].str)); } (yyval.rolespec) = n; ;} break; case 2451: #line 17483 "gram.y" { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_ROLE, (yylsp[(1) - (1)])); ;} break; case 2452: #line 17487 "gram.y" { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[(1) - (1)])); ;} break; case 2453: #line 17491 "gram.y" { (yyval.rolespec) = makeRoleSpec(ROLESPEC_SESSION_USER, (yylsp[(1) - (1)])); ;} break; case 2454: #line 17497 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].rolespec)); ;} break; case 2455: #line 17499 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].rolespec)); ;} break; case 2456: #line 17516 "gram.y" { SelectStmt *n = makeNode(SelectStmt); n->distinctClause = (yyvsp[(1) - (10)].list); n->targetList = (yyvsp[(2) - (10)].list); n->fromClause = (yyvsp[(3) - (10)].list); n->whereClause = (yyvsp[(4) - (10)].node); n->groupClause = ((yyvsp[(5) - (10)].groupclause))->list; n->groupDistinct = ((yyvsp[(5) - (10)].groupclause))->distinct; n->havingClause = (yyvsp[(6) - (10)].node); n->windowClause = (yyvsp[(7) - (10)].list); n->sortClause = (yyvsp[(8) - (10)].list); if ((yyvsp[(9) - (10)].selectlimit)) { n->limitOffset = (yyvsp[(9) - (10)].selectlimit)->limitOffset; n->limitCount = (yyvsp[(9) - (10)].selectlimit)->limitCount; if (!n->sortClause && (yyvsp[(9) - (10)].selectlimit)->limitOption == LIMIT_OPTION_WITH_TIES) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WITH TIES cannot be specified without ORDER BY clause"))); n->limitOption = (yyvsp[(9) - (10)].selectlimit)->limitOption; } n->lockingClause = (yyvsp[(10) - (10)].list); (yyval.node) = (Node *) n; ;} break; case 2457: #line 17549 "gram.y" { PLAssignStmt *n = makeNode(PLAssignStmt); n->name = (yyvsp[(1) - (4)].str); n->indirection = check_indirection((yyvsp[(2) - (4)].list), yyscanner); /* nnames will be filled by calling production */ n->val = (SelectStmt *) (yyvsp[(4) - (4)].node); n->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *) n; ;} break; case 2458: #line 17561 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2459: #line 17562 "gram.y" { (yyval.str) = psprintf("$%d", (yyvsp[(1) - (1)].ival)); ;} break; case 2462: #line 17583 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2463: #line 17584 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2464: #line 17585 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2465: #line 17590 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2466: #line 17591 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2467: #line 17592 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2468: #line 17597 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2469: #line 17598 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2470: #line 17599 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2471: #line 17600 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2472: #line 17606 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2473: #line 17607 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2474: #line 17608 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2475: #line 17609 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2476: #line 17610 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2477: #line 17616 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2478: #line 17617 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; /* Line 1267 of yacc.c. */ #line 52550 "gram.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; *++yylsp = yyloc; /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; /*------------------------------------. | yyerrlab -- here on detecting error | `------------------------------------*/ yyerrlab: /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; #if ! YYERROR_VERBOSE yyerror (&yylloc, yyscanner, YY_("syntax error")); #else { YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) { YYSIZE_T yyalloc = 2 * yysize; if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) yyalloc = YYSTACK_ALLOC_MAXIMUM; if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); yymsg = (char *) YYSTACK_ALLOC (yyalloc); if (yymsg) yymsg_alloc = yyalloc; else { yymsg = yymsgbuf; yymsg_alloc = sizeof yymsgbuf; } } if (0 < yysize && yysize <= yymsg_alloc) { (void) yysyntax_error (yymsg, yystate, yychar); yyerror (&yylloc, yyscanner, yymsg); } else { yyerror (&yylloc, yyscanner, YY_("syntax error")); if (yysize != 0) goto yyexhaustedlab; } } #endif } yyerror_range[0] = yylloc; if (yyerrstatus == 3) { /* If just tried and failed to reuse look-ahead token after an error, discard it. */ if (yychar <= YYEOF) { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval, &yylloc, yyscanner); yychar = YYEMPTY; } } /* Else will try to reuse look-ahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers like GCC when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (/*CONSTCOND*/ 0) goto yyerrorlab; yyerror_range[0] = yylsp[1-yylen]; /* Do not reclaim the symbols of the rule which action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); yystate = *yyssp; goto yyerrlab1; /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (yyn != YYPACT_NINF) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) { yyn = yytable[yyn]; if (0 < yyn) break; } } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) YYABORT; yyerror_range[0] = *yylsp; yydestruct ("Error: popping", yystos[yystate], yyvsp, yylsp, yyscanner); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } if (yyn == YYFINAL) YYACCEPT; *++yyvsp = yylval; yyerror_range[1] = yylloc; /* Using YYLLOC is tempting, but would change the location of the look-ahead. YYLOC is available though. */ YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2); *++yylsp = yyloc; /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturn; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturn; #ifndef yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (&yylloc, yyscanner, YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif yyreturn: if (yychar != YYEOF && yychar != YYEMPTY) yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc, yyscanner); /* Do not reclaim the symbols of the rule which action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", yystos[*yyssp], yyvsp, yylsp, yyscanner); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif #if YYERROR_VERBOSE if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif /* Make sure YYID is used. */ return YYID (yyresult); } #line 18629 "gram.y" /* * The signature of this function is required by bison. However, we * ignore the passed yylloc and instead use the last token position * available from the scanner. */ static void base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner, const char *msg) { parser_yyerror(msg); } static RawStmt * makeRawStmt(Node *stmt, int stmt_location) { RawStmt *rs = makeNode(RawStmt); rs->stmt = stmt; rs->stmt_location = stmt_location; rs->stmt_len = 0; /* might get changed later */ return rs; } /* Adjust a RawStmt to reflect that it doesn't run to the end of the string */ static void updateRawStmtEnd(RawStmt *rs, int end_location) { /* * If we already set the length, don't change it. This is for situations * like "select foo ;; select bar" where the same statement will be last * in the string for more than one semicolon. */ if (rs->stmt_len > 0) return; /* OK, update length of RawStmt */ rs->stmt_len = end_location - rs->stmt_location; } static Node * makeColumnRef(char *colname, List *indirection, int location, core_yyscan_t yyscanner) { /* * Generate a ColumnRef node, with an A_Indirection node added if there * is any subscripting in the specified indirection list. However, * any field selection at the start of the indirection list must be * transposed into the "fields" part of the ColumnRef node. */ ColumnRef *c = makeNode(ColumnRef); int nfields = 0; ListCell *l; c->location = location; foreach(l, indirection) { if (IsA(lfirst(l), A_Indices)) { A_Indirection *i = makeNode(A_Indirection); if (nfields == 0) { /* easy case - all indirection goes to A_Indirection */ c->fields = list_make1(makeString(colname)); i->indirection = check_indirection(indirection, yyscanner); } else { /* got to split the list in two */ i->indirection = check_indirection(list_copy_tail(indirection, nfields), yyscanner); indirection = list_truncate(indirection, nfields); c->fields = lcons(makeString(colname), indirection); } i->arg = (Node *) c; return (Node *) i; } else if (IsA(lfirst(l), A_Star)) { /* We only allow '*' at the end of a ColumnRef */ if (lnext(indirection, l) != NULL) parser_yyerror("improper use of \"*\""); } nfields++; } /* No subscripting, so all indirection gets added to field list */ c->fields = lcons(makeString(colname), indirection); return (Node *) c; } static Node * makeTypeCast(Node *arg, TypeName *typename, int location) { TypeCast *n = makeNode(TypeCast); n->arg = arg; n->typeName = typename; n->location = location; return (Node *) n; } static Node * makeStringConstCast(char *str, int location, TypeName *typename) { Node *s = makeStringConst(str, location); return makeTypeCast(s, typename, -1); } static Node * makeIntConst(int val, int location) { A_Const *n = makeNode(A_Const); n->val.ival.type = T_Integer; n->val.ival.ival = val; n->location = location; return (Node *) n; } static Node * makeFloatConst(char *str, int location) { A_Const *n = makeNode(A_Const); n->val.fval.type = T_Float; n->val.fval.fval = str; n->location = location; return (Node *) n; } static Node * makeBoolAConst(bool state, int location) { A_Const *n = makeNode(A_Const); n->val.boolval.type = T_Boolean; n->val.boolval.boolval = state; n->location = location; return (Node *) n; } static Node * makeBitStringConst(char *str, int location) { A_Const *n = makeNode(A_Const); n->val.bsval.type = T_BitString; n->val.bsval.bsval = str; n->location = location; return (Node *) n; } static Node * makeNullAConst(int location) { A_Const *n = makeNode(A_Const); n->isnull = true; n->location = location; return (Node *) n; } static Node * makeAConst(Node *v, int location) { Node *n; switch (v->type) { case T_Float: n = makeFloatConst(castNode(Float, v)->fval, location); break; case T_Integer: n = makeIntConst(castNode(Integer, v)->ival, location); break; default: /* currently not used */ Assert(false); n = NULL; } return n; } /* makeParamRef * Creates a new ParamRef node */ static Node* makeParamRef(int number, int location) { ParamRef *p = makeNode(ParamRef); p->number = number; p->location = location; return (Node *) p; } static Node * makeParamRefCast(int number, int location, TypeName *typename) { Node *p = makeParamRef(number, location); return makeTypeCast(p, typename, -1); } /* makeRoleSpec * Create a RoleSpec with the given type */ static RoleSpec * makeRoleSpec(RoleSpecType type, int location) { RoleSpec *spec = makeNode(RoleSpec); spec->roletype = type; spec->location = location; return spec; } /* check_qualified_name --- check the result of qualified_name production * * It's easiest to let the grammar production for qualified_name allow * subscripts and '*', which we then must reject here. */ static void check_qualified_name(List *names, core_yyscan_t yyscanner) { ListCell *i; foreach(i, names) { if (!IsA(lfirst(i), String)) parser_yyerror("syntax error"); } } /* check_func_name --- check the result of func_name production * * It's easiest to let the grammar production for func_name allow subscripts * and '*', which we then must reject here. */ static List * check_func_name(List *names, core_yyscan_t yyscanner) { ListCell *i; foreach(i, names) { if (!IsA(lfirst(i), String)) parser_yyerror("syntax error"); } return names; } /* check_indirection --- check the result of indirection production * * We only allow '*' at the end of the list, but it's hard to enforce that * in the grammar, so do it here. */ static List * check_indirection(List *indirection, core_yyscan_t yyscanner) { ListCell *l; foreach(l, indirection) { if (IsA(lfirst(l), A_Star)) { if (lnext(indirection, l) != NULL) parser_yyerror("improper use of \"*\""); } } return indirection; } /* extractArgTypes() * Given a list of FunctionParameter nodes, extract a list of just the * argument types (TypeNames) for input parameters only. This is what * is needed to look up an existing function, which is what is wanted by * the productions that use this call. */ static List * extractArgTypes(List *parameters) { List *result = NIL; ListCell *i; foreach(i, parameters) { FunctionParameter *p = (FunctionParameter *) lfirst(i); if (p->mode != FUNC_PARAM_OUT && p->mode != FUNC_PARAM_TABLE) result = lappend(result, p->argType); } return result; } /* extractAggrArgTypes() * As above, but work from the output of the aggr_args production. */ static List * extractAggrArgTypes(List *aggrargs) { Assert(list_length(aggrargs) == 2); return extractArgTypes((List *) linitial(aggrargs)); } /* makeOrderedSetArgs() * Build the result of the aggr_args production (which see the comments for). * This handles only the case where both given lists are nonempty, so that * we have to deal with multiple VARIADIC arguments. */ static List * makeOrderedSetArgs(List *directargs, List *orderedargs, core_yyscan_t yyscanner) { FunctionParameter *lastd = (FunctionParameter *) llast(directargs); Integer *ndirectargs; /* No restriction unless last direct arg is VARIADIC */ if (lastd->mode == FUNC_PARAM_VARIADIC) { FunctionParameter *firsto = (FunctionParameter *) linitial(orderedargs); /* * We ignore the names, though the aggr_arg production allows them; * it doesn't allow default values, so those need not be checked. */ if (list_length(orderedargs) != 1 || firsto->mode != FUNC_PARAM_VARIADIC || !equal(lastd->argType, firsto->argType)) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("an ordered-set aggregate with a VARIADIC direct argument must have one VARIADIC aggregated argument of the same data type"), parser_errposition(exprLocation((Node *) firsto)))); /* OK, drop the duplicate VARIADIC argument from the internal form */ orderedargs = NIL; } /* don't merge into the next line, as list_concat changes directargs */ ndirectargs = makeInteger(list_length(directargs)); return list_make2(list_concat(directargs, orderedargs), ndirectargs); } /* insertSelectOptions() * Insert ORDER BY, etc into an already-constructed SelectStmt. * * This routine is just to avoid duplicating code in SelectStmt productions. */ static void insertSelectOptions(SelectStmt *stmt, List *sortClause, List *lockingClause, SelectLimit *limitClause, WithClause *withClause, core_yyscan_t yyscanner) { Assert(IsA(stmt, SelectStmt)); /* * Tests here are to reject constructs like * (SELECT foo ORDER BY bar) ORDER BY baz */ if (sortClause) { if (stmt->sortClause) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple ORDER BY clauses not allowed"), parser_errposition(exprLocation((Node *) sortClause)))); stmt->sortClause = sortClause; } /* We can handle multiple locking clauses, though */ stmt->lockingClause = list_concat(stmt->lockingClause, lockingClause); if (limitClause && limitClause->limitOffset) { if (stmt->limitOffset) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple OFFSET clauses not allowed"), parser_errposition(exprLocation(limitClause->limitOffset)))); stmt->limitOffset = limitClause->limitOffset; } if (limitClause && limitClause->limitCount) { if (stmt->limitCount) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple LIMIT clauses not allowed"), parser_errposition(exprLocation(limitClause->limitCount)))); stmt->limitCount = limitClause->limitCount; } if (limitClause) { if (stmt->limitOption) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple limit options not allowed"))); if (!stmt->sortClause && limitClause->limitOption == LIMIT_OPTION_WITH_TIES) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WITH TIES cannot be specified without ORDER BY clause"))); if (limitClause->limitOption == LIMIT_OPTION_WITH_TIES && stmt->lockingClause) { ListCell *lc; foreach(lc, stmt->lockingClause) { LockingClause *lock = lfirst_node(LockingClause, lc); if (lock->waitPolicy == LockWaitSkip) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("%s and %s options cannot be used together", "SKIP LOCKED", "WITH TIES"))); } } stmt->limitOption = limitClause->limitOption; } if (withClause) { if (stmt->withClause) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple WITH clauses not allowed"), parser_errposition(exprLocation((Node *) withClause)))); stmt->withClause = withClause; } } static Node * makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg) { SelectStmt *n = makeNode(SelectStmt); n->op = op; n->all = all; n->larg = (SelectStmt *) larg; n->rarg = (SelectStmt *) rarg; return (Node *) n; } /* SystemFuncName() * Build a properly-qualified reference to a built-in function. */ List * SystemFuncName(char *name) { return list_make2(makeString("pg_catalog"), makeString(name)); } /* SystemTypeName() * Build a properly-qualified reference to a built-in type. * * typmod is defaulted, but may be changed afterwards by caller. * Likewise for the location. */ TypeName * SystemTypeName(char *name) { return makeTypeNameFromNameList(list_make2(makeString("pg_catalog"), makeString(name))); } /* doNegate() * Handle negation of a numeric constant. * * Formerly, we did this here because the optimizer couldn't cope with * indexquals that looked like "var = -4" --- it wants "var = const" * and a unary minus operator applied to a constant didn't qualify. * As of Postgres 7.0, that problem doesn't exist anymore because there * is a constant-subexpression simplifier in the optimizer. However, * there's still a good reason for doing this here, which is that we can * postpone committing to a particular internal representation for simple * negative constants. It's better to leave "-123.456" in string form * until we know what the desired type is. */ static Node * doNegate(Node *n, int location) { if (IsA(n, A_Const)) { A_Const *con = (A_Const *) n; /* report the constant's location as that of the '-' sign */ con->location = location; if (IsA(&con->val, Integer)) { con->val.ival.ival = -con->val.ival.ival; return n; } if (IsA(&con->val, Float)) { doNegateFloat(&con->val.fval); return n; } } return (Node *) makeSimpleA_Expr(AEXPR_OP, "-", NULL, n, location); } static void doNegateFloat(Float *v) { char *oldval = v->fval; if (*oldval == '+') oldval++; if (*oldval == '-') v->fval = oldval+1; /* just strip the '-' */ else v->fval = psprintf("-%s", oldval); } static Node * makeAndExpr(Node *lexpr, Node *rexpr, int location) { /* Flatten "a AND b AND c ..." to a single BoolExpr on sight */ if (IsA(lexpr, BoolExpr)) { BoolExpr *blexpr = (BoolExpr *) lexpr; if (blexpr->boolop == AND_EXPR) { blexpr->args = lappend(blexpr->args, rexpr); return (Node *) blexpr; } } return (Node *) makeBoolExpr(AND_EXPR, list_make2(lexpr, rexpr), location); } static Node * makeOrExpr(Node *lexpr, Node *rexpr, int location) { /* Flatten "a OR b OR c ..." to a single BoolExpr on sight */ if (IsA(lexpr, BoolExpr)) { BoolExpr *blexpr = (BoolExpr *) lexpr; if (blexpr->boolop == OR_EXPR) { blexpr->args = lappend(blexpr->args, rexpr); return (Node *) blexpr; } } return (Node *) makeBoolExpr(OR_EXPR, list_make2(lexpr, rexpr), location); } static Node * makeNotExpr(Node *expr, int location) { return (Node *) makeBoolExpr(NOT_EXPR, list_make1(expr), location); } static Node * makeAArrayExpr(List *elements, int location) { A_ArrayExpr *n = makeNode(A_ArrayExpr); n->elements = elements; n->location = location; return (Node *) n; } static Node * makeSQLValueFunction(SQLValueFunctionOp op, int32 typmod, int location) { SQLValueFunction *svf = makeNode(SQLValueFunction); svf->op = op; /* svf->type will be filled during parse analysis */ svf->typmod = typmod; svf->location = location; return (Node *) svf; } static Node * makeXmlExpr(XmlExprOp op, char *name, List *named_args, List *args, int location) { XmlExpr *x = makeNode(XmlExpr); x->op = op; x->name = name; /* * named_args is a list of ResTarget; it'll be split apart into separate * expression and name lists in transformXmlExpr(). */ x->named_args = named_args; x->arg_names = NIL; x->args = args; /* xmloption, if relevant, must be filled in by caller */ /* type and typmod will be filled in during parse analysis */ x->type = InvalidOid; /* marks the node as not analyzed */ x->location = location; return (Node *) x; } /* * Merge the input and output parameters of a table function. */ static List * mergeTableFuncParameters(List *func_args, List *columns) { ListCell *lc; /* Explicit OUT and INOUT parameters shouldn't be used in this syntax */ foreach(lc, func_args) { FunctionParameter *p = (FunctionParameter *) lfirst(lc); if (p->mode != FUNC_PARAM_DEFAULT && p->mode != FUNC_PARAM_IN && p->mode != FUNC_PARAM_VARIADIC) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("OUT and INOUT arguments aren't allowed in TABLE functions"))); } return list_concat(func_args, columns); } /* * Determine return type of a TABLE function. A single result column * returns setof that column's type; otherwise return setof record. */ static TypeName * TableFuncTypeName(List *columns) { TypeName *result; if (list_length(columns) == 1) { FunctionParameter *p = (FunctionParameter *) linitial(columns); result = copyObject(p->argType); } else result = SystemTypeName("record"); result->setof = true; return result; } /* * Convert a list of (dotted) names to a RangeVar (like * makeRangeVarFromNameList, but with position support). The * "AnyName" refers to the any_name production in the grammar. */ static RangeVar * makeRangeVarFromAnyName(List *names, int position, core_yyscan_t yyscanner) { RangeVar *r = makeNode(RangeVar); switch (list_length(names)) { case 1: r->catalogname = NULL; r->schemaname = NULL; r->relname = strVal(linitial(names)); break; case 2: r->catalogname = NULL; r->schemaname = strVal(linitial(names)); r->relname = strVal(lsecond(names)); break; case 3: r->catalogname = strVal(linitial(names)); r->schemaname = strVal(lsecond(names)); r->relname = strVal(lthird(names)); break; default: ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("improper qualified name (too many dotted names): %s", NameListToString(names)), parser_errposition(position))); break; } r->relpersistence = RELPERSISTENCE_PERMANENT; r->location = position; return r; } /* * Convert a relation_name with name and namelist to a RangeVar using * makeRangeVar. */ static RangeVar * makeRangeVarFromQualifiedName(char *name, List *namelist, int location, core_yyscan_t yyscanner) { RangeVar *r; check_qualified_name(namelist, yyscanner); r = makeRangeVar(NULL, NULL, location); switch (list_length(namelist)) { case 1: r->catalogname = NULL; r->schemaname = name; r->relname = strVal(linitial(namelist)); break; case 2: r->catalogname = name; r->schemaname = strVal(linitial(namelist)); r->relname = strVal(lsecond(namelist)); break; default: ereport(ERROR, errcode(ERRCODE_SYNTAX_ERROR), errmsg("improper qualified name (too many dotted names): %s", NameListToString(lcons(makeString(name), namelist))), parser_errposition(location)); break; } return r; } /* Separate Constraint nodes from COLLATE clauses in a ColQualList */ static void SplitColQualList(List *qualList, List **constraintList, CollateClause **collClause, core_yyscan_t yyscanner) { ListCell *cell; *collClause = NULL; foreach(cell, qualList) { Node *n = (Node *) lfirst(cell); if (IsA(n, Constraint)) { /* keep it in list */ continue; } if (IsA(n, CollateClause)) { CollateClause *c = (CollateClause *) n; if (*collClause) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple COLLATE clauses not allowed"), parser_errposition(c->location))); *collClause = c; } else elog(ERROR, "unexpected node type %d", (int) n->type); /* remove non-Constraint nodes from qualList */ qualList = foreach_delete_current(qualList, cell); } *constraintList = qualList; } /* * Process result of ConstraintAttributeSpec, and set appropriate bool flags * in the output command node. Pass NULL for any flags the particular * command doesn't support. */ static void processCASbits(int cas_bits, int location, const char *constrType, bool *deferrable, bool *initdeferred, bool *not_valid, bool *no_inherit, core_yyscan_t yyscanner) { /* defaults */ if (deferrable) *deferrable = false; if (initdeferred) *initdeferred = false; if (not_valid) *not_valid = false; if (cas_bits & (CAS_DEFERRABLE | CAS_INITIALLY_DEFERRED)) { if (deferrable) *deferrable = true; else ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is CHECK, UNIQUE, or similar */ errmsg("%s constraints cannot be marked DEFERRABLE", constrType), parser_errposition(location))); } if (cas_bits & CAS_INITIALLY_DEFERRED) { if (initdeferred) *initdeferred = true; else ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is CHECK, UNIQUE, or similar */ errmsg("%s constraints cannot be marked DEFERRABLE", constrType), parser_errposition(location))); } if (cas_bits & CAS_NOT_VALID) { if (not_valid) *not_valid = true; else ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is CHECK, UNIQUE, or similar */ errmsg("%s constraints cannot be marked NOT VALID", constrType), parser_errposition(location))); } if (cas_bits & CAS_NO_INHERIT) { if (no_inherit) *no_inherit = true; else ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is CHECK, UNIQUE, or similar */ errmsg("%s constraints cannot be marked NO INHERIT", constrType), parser_errposition(location))); } } /* * Parse a user-supplied partition strategy string into parse node * PartitionStrategy representation, or die trying. */ static PartitionStrategy parsePartitionStrategy(char *strategy) { if (pg_strcasecmp(strategy, "list") == 0) return PARTITION_STRATEGY_LIST; else if (pg_strcasecmp(strategy, "range") == 0) return PARTITION_STRATEGY_RANGE; else if (pg_strcasecmp(strategy, "hash") == 0) return PARTITION_STRATEGY_HASH; ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("unrecognized partitioning strategy \"%s\"", strategy))); return PARTITION_STRATEGY_LIST; /* keep compiler quiet */ } /* * Process pubobjspec_list to check for errors in any of the objects and * convert PUBLICATIONOBJ_CONTINUATION into appropriate PublicationObjSpecType. */ static void preprocess_pubobj_list(List *pubobjspec_list, core_yyscan_t yyscanner) { ListCell *cell; PublicationObjSpec *pubobj; PublicationObjSpecType prevobjtype = PUBLICATIONOBJ_CONTINUATION; if (!pubobjspec_list) return; pubobj = (PublicationObjSpec *) linitial(pubobjspec_list); if (pubobj->pubobjtype == PUBLICATIONOBJ_CONTINUATION) ereport(ERROR, errcode(ERRCODE_SYNTAX_ERROR), errmsg("invalid publication object list"), errdetail("One of TABLE or TABLES IN SCHEMA must be specified before a standalone table or schema name."), parser_errposition(pubobj->location)); foreach(cell, pubobjspec_list) { pubobj = (PublicationObjSpec *) lfirst(cell); if (pubobj->pubobjtype == PUBLICATIONOBJ_CONTINUATION) pubobj->pubobjtype = prevobjtype; if (pubobj->pubobjtype == PUBLICATIONOBJ_TABLE) { /* relation name or pubtable must be set for this type of object */ if (!pubobj->name && !pubobj->pubtable) ereport(ERROR, errcode(ERRCODE_SYNTAX_ERROR), errmsg("invalid table name"), parser_errposition(pubobj->location)); if (pubobj->name) { /* convert it to PublicationTable */ PublicationTable *pubtable = makeNode(PublicationTable); pubtable->relation = makeRangeVar(NULL, pubobj->name, pubobj->location); pubobj->pubtable = pubtable; pubobj->name = NULL; } } else if (pubobj->pubobjtype == PUBLICATIONOBJ_TABLES_IN_SCHEMA || pubobj->pubobjtype == PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA) { /* WHERE clause is not allowed on a schema object */ if (pubobj->pubtable && pubobj->pubtable->whereClause) ereport(ERROR, errcode(ERRCODE_SYNTAX_ERROR), errmsg("WHERE clause not allowed for schema"), parser_errposition(pubobj->location)); /* Column list is not allowed on a schema object */ if (pubobj->pubtable && pubobj->pubtable->columns) ereport(ERROR, errcode(ERRCODE_SYNTAX_ERROR), errmsg("column specification not allowed for schema"), parser_errposition(pubobj->location)); /* * We can distinguish between the different type of schema * objects based on whether name and pubtable is set. */ if (pubobj->name) pubobj->pubobjtype = PUBLICATIONOBJ_TABLES_IN_SCHEMA; else if (!pubobj->name && !pubobj->pubtable) pubobj->pubobjtype = PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA; else ereport(ERROR, errcode(ERRCODE_SYNTAX_ERROR), errmsg("invalid schema name"), parser_errposition(pubobj->location)); } prevobjtype = pubobj->pubobjtype; } } /*---------- * Recursive view transformation * * Convert * * CREATE RECURSIVE VIEW relname (aliases) AS query * * to * * CREATE VIEW relname (aliases) AS * WITH RECURSIVE relname (aliases) AS (query) * SELECT aliases FROM relname * * Actually, just the WITH ... part, which is then inserted into the original * view definition as the query. * ---------- */ static Node * makeRecursiveViewSelect(char *relname, List *aliases, Node *query) { SelectStmt *s = makeNode(SelectStmt); WithClause *w = makeNode(WithClause); CommonTableExpr *cte = makeNode(CommonTableExpr); List *tl = NIL; ListCell *lc; /* create common table expression */ cte->ctename = relname; cte->aliascolnames = aliases; cte->ctematerialized = CTEMaterializeDefault; cte->ctequery = query; cte->location = -1; /* create WITH clause and attach CTE */ w->recursive = true; w->ctes = list_make1(cte); w->location = -1; /* create target list for the new SELECT from the alias list of the * recursive view specification */ foreach (lc, aliases) { ResTarget *rt = makeNode(ResTarget); rt->name = NULL; rt->indirection = NIL; rt->val = makeColumnRef(strVal(lfirst(lc)), NIL, -1, 0); rt->location = -1; tl = lappend(tl, rt); } /* create new SELECT combining WITH clause, target list, and fake FROM * clause */ s->withClause = w; s->targetList = tl; s->fromClause = list_make1(makeRangeVar(NULL, relname, -1)); return (Node *) s; } /* parser_init() * Initialize to parse one query string */ void parser_init(base_yy_extra_type *yyext) { yyext->parsetree = NIL; /* in case grammar forgets to set it */ }