/*-------------------------------------------------------------------- * Symbols referenced in this file: * - parser_init * - base_yyparse * - SystemTypeName * - SystemFuncName * - yypact * - yytranslate * - yycheck * - yytable * - yydefact * - yyr2 * - makeRawStmt * - updateRawStmtEnd * - makeParamRef * - makeStringConst * - 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, CONFIGURATION = 345, CONFLICT = 346, CONNECTION = 347, CONSTRAINT = 348, CONSTRAINTS = 349, CONTENT_P = 350, CONTINUE_P = 351, CONVERSION_P = 352, COPY = 353, COST = 354, CREATE = 355, CROSS = 356, CSV = 357, CUBE = 358, CURRENT_P = 359, CURRENT_CATALOG = 360, CURRENT_DATE = 361, CURRENT_ROLE = 362, CURRENT_SCHEMA = 363, CURRENT_TIME = 364, CURRENT_TIMESTAMP = 365, CURRENT_USER = 366, CURSOR = 367, CYCLE = 368, DATA_P = 369, DATABASE = 370, DAY_P = 371, DEALLOCATE = 372, DEC = 373, DECIMAL_P = 374, DECLARE = 375, DEFAULT = 376, DEFAULTS = 377, DEFERRABLE = 378, DEFERRED = 379, DEFINER = 380, DELETE_P = 381, DELIMITER = 382, DELIMITERS = 383, DEPENDS = 384, DEPTH = 385, DESC = 386, DETACH = 387, DICTIONARY = 388, DISABLE_P = 389, DISCARD = 390, DISTINCT = 391, DO = 392, DOCUMENT_P = 393, DOMAIN_P = 394, DOUBLE_P = 395, DROP = 396, EACH = 397, ELSE = 398, ENABLE_P = 399, ENCODING = 400, ENCRYPTED = 401, END_P = 402, ENUM_P = 403, ESCAPE = 404, EVENT = 405, EXCEPT = 406, EXCLUDE = 407, EXCLUDING = 408, EXCLUSIVE = 409, EXECUTE = 410, EXISTS = 411, EXPLAIN = 412, EXPRESSION = 413, EXTENSION = 414, EXTERNAL = 415, EXTRACT = 416, FALSE_P = 417, FAMILY = 418, FETCH = 419, FILTER = 420, FINALIZE = 421, FIRST_P = 422, FLOAT_P = 423, FOLLOWING = 424, FOR = 425, FORCE = 426, FOREIGN = 427, FORMAT = 428, FORWARD = 429, FREEZE = 430, FROM = 431, FULL = 432, FUNCTION = 433, FUNCTIONS = 434, GENERATED = 435, GLOBAL = 436, GRANT = 437, GRANTED = 438, GREATEST = 439, GROUP_P = 440, GROUPING = 441, GROUPS = 442, HANDLER = 443, HAVING = 444, HEADER_P = 445, HOLD = 446, HOUR_P = 447, IDENTITY_P = 448, IF_P = 449, ILIKE = 450, IMMEDIATE = 451, IMMUTABLE = 452, IMPLICIT_P = 453, IMPORT_P = 454, IN_P = 455, INCLUDE = 456, INCLUDING = 457, INCREMENT = 458, INDENT = 459, INDEX = 460, INDEXES = 461, INHERIT = 462, INHERITS = 463, INITIALLY = 464, INLINE_P = 465, INNER_P = 466, INOUT = 467, INPUT_P = 468, INSENSITIVE = 469, INSERT = 470, INSTEAD = 471, INT_P = 472, INTEGER = 473, INTERSECT = 474, INTERVAL = 475, INTO = 476, INVOKER = 477, IS = 478, ISNULL = 479, ISOLATION = 480, JOIN = 481, JSON = 482, JSON_ARRAY = 483, JSON_ARRAYAGG = 484, JSON_OBJECT = 485, JSON_OBJECTAGG = 486, KEY = 487, KEYS = 488, LABEL = 489, LANGUAGE = 490, LARGE_P = 491, LAST_P = 492, LATERAL_P = 493, LEADING = 494, LEAKPROOF = 495, LEAST = 496, LEFT = 497, LEVEL = 498, LIKE = 499, LIMIT = 500, LISTEN = 501, LOAD = 502, LOCAL = 503, LOCALTIME = 504, LOCALTIMESTAMP = 505, LOCATION = 506, LOCK_P = 507, LOCKED = 508, LOGGED = 509, MAPPING = 510, MATCH = 511, MATCHED = 512, MATERIALIZED = 513, MAXVALUE = 514, MERGE = 515, METHOD = 516, MINUTE_P = 517, MINVALUE = 518, MODE = 519, MONTH_P = 520, MOVE = 521, NAME_P = 522, NAMES = 523, NATIONAL = 524, NATURAL = 525, NCHAR = 526, NEW = 527, NEXT = 528, NFC = 529, NFD = 530, NFKC = 531, NFKD = 532, NO = 533, NONE = 534, NORMALIZE = 535, NORMALIZED = 536, NOT = 537, NOTHING = 538, NOTIFY = 539, NOTNULL = 540, NOWAIT = 541, NULL_P = 542, NULLIF = 543, NULLS_P = 544, NUMERIC = 545, OBJECT_P = 546, OF = 547, OFF = 548, OFFSET = 549, OIDS = 550, OLD = 551, ON = 552, ONLY = 553, OPERATOR = 554, OPTION = 555, OPTIONS = 556, OR = 557, ORDER = 558, ORDINALITY = 559, OTHERS = 560, OUT_P = 561, OUTER_P = 562, OVER = 563, OVERLAPS = 564, OVERLAY = 565, OVERRIDING = 566, OWNED = 567, OWNER = 568, PARALLEL = 569, PARAMETER = 570, PARSER = 571, PARTIAL = 572, PARTITION = 573, PASSING = 574, PASSWORD = 575, PLACING = 576, PLANS = 577, POLICY = 578, POSITION = 579, PRECEDING = 580, PRECISION = 581, PRESERVE = 582, PREPARE = 583, PREPARED = 584, PRIMARY = 585, PRIOR = 586, PRIVILEGES = 587, PROCEDURAL = 588, PROCEDURE = 589, PROCEDURES = 590, PROGRAM = 591, PUBLICATION = 592, QUOTE = 593, RANGE = 594, READ = 595, REAL = 596, REASSIGN = 597, RECHECK = 598, RECURSIVE = 599, REF_P = 600, REFERENCES = 601, REFERENCING = 602, REFRESH = 603, REINDEX = 604, RELATIVE_P = 605, RELEASE = 606, RENAME = 607, REPEATABLE = 608, REPLACE = 609, REPLICA = 610, RESET = 611, RESTART = 612, RESTRICT = 613, RETURN = 614, RETURNING = 615, RETURNS = 616, REVOKE = 617, RIGHT = 618, ROLE = 619, ROLLBACK = 620, ROLLUP = 621, ROUTINE = 622, ROUTINES = 623, ROW = 624, ROWS = 625, RULE = 626, SAVEPOINT = 627, SCALAR = 628, SCHEMA = 629, SCHEMAS = 630, SCROLL = 631, SEARCH = 632, SECOND_P = 633, SECURITY = 634, SELECT = 635, SEQUENCE = 636, SEQUENCES = 637, SERIALIZABLE = 638, SERVER = 639, SESSION = 640, SESSION_USER = 641, SET = 642, SETS = 643, SETOF = 644, SHARE = 645, SHOW = 646, SIMILAR = 647, SIMPLE = 648, SKIP = 649, SMALLINT = 650, SNAPSHOT = 651, SOME = 652, SQL_P = 653, STABLE = 654, STANDALONE_P = 655, START = 656, STATEMENT = 657, STATISTICS = 658, STDIN = 659, STDOUT = 660, STORAGE = 661, STORED = 662, STRICT_P = 663, STRIP_P = 664, SUBSCRIPTION = 665, SUBSTRING = 666, SUPPORT = 667, SYMMETRIC = 668, SYSID = 669, SYSTEM_P = 670, SYSTEM_USER = 671, TABLE = 672, TABLES = 673, TABLESAMPLE = 674, TABLESPACE = 675, TEMP = 676, TEMPLATE = 677, TEMPORARY = 678, TEXT_P = 679, THEN = 680, TIES = 681, TIME = 682, TIMESTAMP = 683, TO = 684, TRAILING = 685, TRANSACTION = 686, TRANSFORM = 687, TREAT = 688, TRIGGER = 689, TRIM = 690, TRUE_P = 691, TRUNCATE = 692, TRUSTED = 693, TYPE_P = 694, TYPES_P = 695, UESCAPE = 696, UNBOUNDED = 697, UNCOMMITTED = 698, UNENCRYPTED = 699, UNION = 700, UNIQUE = 701, UNKNOWN = 702, UNLISTEN = 703, UNLOGGED = 704, UNTIL = 705, UPDATE = 706, USER = 707, USING = 708, VACUUM = 709, VALID = 710, VALIDATE = 711, VALIDATOR = 712, VALUE_P = 713, VALUES = 714, VARCHAR = 715, VARIADIC = 716, VARYING = 717, VERBOSE = 718, VERSION_P = 719, VIEW = 720, VIEWS = 721, VOLATILE = 722, WHEN = 723, WHERE = 724, WHITESPACE_P = 725, WINDOW = 726, WITH = 727, WITHIN = 728, WITHOUT = 729, WORK = 730, WRAPPER = 731, WRITE = 732, XML_P = 733, XMLATTRIBUTES = 734, XMLCONCAT = 735, XMLELEMENT = 736, XMLEXISTS = 737, XMLFOREST = 738, XMLNAMESPACES = 739, XMLPARSE = 740, XMLPI = 741, XMLROOT = 742, XMLSERIALIZE = 743, XMLTABLE = 744, YEAR_P = 745, YES_P = 746, ZONE = 747, FORMAT_LA = 748, NOT_LA = 749, NULLS_LA = 750, WITH_LA = 751, WITHOUT_LA = 752, MODE_TYPE_NAME = 753, MODE_PLPGSQL_EXPR = 754, MODE_PLPGSQL_ASSIGN1 = 755, MODE_PLPGSQL_ASSIGN2 = 756, MODE_PLPGSQL_ASSIGN3 = 757, UMINUS = 758 }; #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 CONFIGURATION 345 #define CONFLICT 346 #define CONNECTION 347 #define CONSTRAINT 348 #define CONSTRAINTS 349 #define CONTENT_P 350 #define CONTINUE_P 351 #define CONVERSION_P 352 #define COPY 353 #define COST 354 #define CREATE 355 #define CROSS 356 #define CSV 357 #define CUBE 358 #define CURRENT_P 359 #define CURRENT_CATALOG 360 #define CURRENT_DATE 361 #define CURRENT_ROLE 362 #define CURRENT_SCHEMA 363 #define CURRENT_TIME 364 #define CURRENT_TIMESTAMP 365 #define CURRENT_USER 366 #define CURSOR 367 #define CYCLE 368 #define DATA_P 369 #define DATABASE 370 #define DAY_P 371 #define DEALLOCATE 372 #define DEC 373 #define DECIMAL_P 374 #define DECLARE 375 #define DEFAULT 376 #define DEFAULTS 377 #define DEFERRABLE 378 #define DEFERRED 379 #define DEFINER 380 #define DELETE_P 381 #define DELIMITER 382 #define DELIMITERS 383 #define DEPENDS 384 #define DEPTH 385 #define DESC 386 #define DETACH 387 #define DICTIONARY 388 #define DISABLE_P 389 #define DISCARD 390 #define DISTINCT 391 #define DO 392 #define DOCUMENT_P 393 #define DOMAIN_P 394 #define DOUBLE_P 395 #define DROP 396 #define EACH 397 #define ELSE 398 #define ENABLE_P 399 #define ENCODING 400 #define ENCRYPTED 401 #define END_P 402 #define ENUM_P 403 #define ESCAPE 404 #define EVENT 405 #define EXCEPT 406 #define EXCLUDE 407 #define EXCLUDING 408 #define EXCLUSIVE 409 #define EXECUTE 410 #define EXISTS 411 #define EXPLAIN 412 #define EXPRESSION 413 #define EXTENSION 414 #define EXTERNAL 415 #define EXTRACT 416 #define FALSE_P 417 #define FAMILY 418 #define FETCH 419 #define FILTER 420 #define FINALIZE 421 #define FIRST_P 422 #define FLOAT_P 423 #define FOLLOWING 424 #define FOR 425 #define FORCE 426 #define FOREIGN 427 #define FORMAT 428 #define FORWARD 429 #define FREEZE 430 #define FROM 431 #define FULL 432 #define FUNCTION 433 #define FUNCTIONS 434 #define GENERATED 435 #define GLOBAL 436 #define GRANT 437 #define GRANTED 438 #define GREATEST 439 #define GROUP_P 440 #define GROUPING 441 #define GROUPS 442 #define HANDLER 443 #define HAVING 444 #define HEADER_P 445 #define HOLD 446 #define HOUR_P 447 #define IDENTITY_P 448 #define IF_P 449 #define ILIKE 450 #define IMMEDIATE 451 #define IMMUTABLE 452 #define IMPLICIT_P 453 #define IMPORT_P 454 #define IN_P 455 #define INCLUDE 456 #define INCLUDING 457 #define INCREMENT 458 #define INDENT 459 #define INDEX 460 #define INDEXES 461 #define INHERIT 462 #define INHERITS 463 #define INITIALLY 464 #define INLINE_P 465 #define INNER_P 466 #define INOUT 467 #define INPUT_P 468 #define INSENSITIVE 469 #define INSERT 470 #define INSTEAD 471 #define INT_P 472 #define INTEGER 473 #define INTERSECT 474 #define INTERVAL 475 #define INTO 476 #define INVOKER 477 #define IS 478 #define ISNULL 479 #define ISOLATION 480 #define JOIN 481 #define JSON 482 #define JSON_ARRAY 483 #define JSON_ARRAYAGG 484 #define JSON_OBJECT 485 #define JSON_OBJECTAGG 486 #define KEY 487 #define KEYS 488 #define LABEL 489 #define LANGUAGE 490 #define LARGE_P 491 #define LAST_P 492 #define LATERAL_P 493 #define LEADING 494 #define LEAKPROOF 495 #define LEAST 496 #define LEFT 497 #define LEVEL 498 #define LIKE 499 #define LIMIT 500 #define LISTEN 501 #define LOAD 502 #define LOCAL 503 #define LOCALTIME 504 #define LOCALTIMESTAMP 505 #define LOCATION 506 #define LOCK_P 507 #define LOCKED 508 #define LOGGED 509 #define MAPPING 510 #define MATCH 511 #define MATCHED 512 #define MATERIALIZED 513 #define MAXVALUE 514 #define MERGE 515 #define METHOD 516 #define MINUTE_P 517 #define MINVALUE 518 #define MODE 519 #define MONTH_P 520 #define MOVE 521 #define NAME_P 522 #define NAMES 523 #define NATIONAL 524 #define NATURAL 525 #define NCHAR 526 #define NEW 527 #define NEXT 528 #define NFC 529 #define NFD 530 #define NFKC 531 #define NFKD 532 #define NO 533 #define NONE 534 #define NORMALIZE 535 #define NORMALIZED 536 #define NOT 537 #define NOTHING 538 #define NOTIFY 539 #define NOTNULL 540 #define NOWAIT 541 #define NULL_P 542 #define NULLIF 543 #define NULLS_P 544 #define NUMERIC 545 #define OBJECT_P 546 #define OF 547 #define OFF 548 #define OFFSET 549 #define OIDS 550 #define OLD 551 #define ON 552 #define ONLY 553 #define OPERATOR 554 #define OPTION 555 #define OPTIONS 556 #define OR 557 #define ORDER 558 #define ORDINALITY 559 #define OTHERS 560 #define OUT_P 561 #define OUTER_P 562 #define OVER 563 #define OVERLAPS 564 #define OVERLAY 565 #define OVERRIDING 566 #define OWNED 567 #define OWNER 568 #define PARALLEL 569 #define PARAMETER 570 #define PARSER 571 #define PARTIAL 572 #define PARTITION 573 #define PASSING 574 #define PASSWORD 575 #define PLACING 576 #define PLANS 577 #define POLICY 578 #define POSITION 579 #define PRECEDING 580 #define PRECISION 581 #define PRESERVE 582 #define PREPARE 583 #define PREPARED 584 #define PRIMARY 585 #define PRIOR 586 #define PRIVILEGES 587 #define PROCEDURAL 588 #define PROCEDURE 589 #define PROCEDURES 590 #define PROGRAM 591 #define PUBLICATION 592 #define QUOTE 593 #define RANGE 594 #define READ 595 #define REAL 596 #define REASSIGN 597 #define RECHECK 598 #define RECURSIVE 599 #define REF_P 600 #define REFERENCES 601 #define REFERENCING 602 #define REFRESH 603 #define REINDEX 604 #define RELATIVE_P 605 #define RELEASE 606 #define RENAME 607 #define REPEATABLE 608 #define REPLACE 609 #define REPLICA 610 #define RESET 611 #define RESTART 612 #define RESTRICT 613 #define RETURN 614 #define RETURNING 615 #define RETURNS 616 #define REVOKE 617 #define RIGHT 618 #define ROLE 619 #define ROLLBACK 620 #define ROLLUP 621 #define ROUTINE 622 #define ROUTINES 623 #define ROW 624 #define ROWS 625 #define RULE 626 #define SAVEPOINT 627 #define SCALAR 628 #define SCHEMA 629 #define SCHEMAS 630 #define SCROLL 631 #define SEARCH 632 #define SECOND_P 633 #define SECURITY 634 #define SELECT 635 #define SEQUENCE 636 #define SEQUENCES 637 #define SERIALIZABLE 638 #define SERVER 639 #define SESSION 640 #define SESSION_USER 641 #define SET 642 #define SETS 643 #define SETOF 644 #define SHARE 645 #define SHOW 646 #define SIMILAR 647 #define SIMPLE 648 #define SKIP 649 #define SMALLINT 650 #define SNAPSHOT 651 #define SOME 652 #define SQL_P 653 #define STABLE 654 #define STANDALONE_P 655 #define START 656 #define STATEMENT 657 #define STATISTICS 658 #define STDIN 659 #define STDOUT 660 #define STORAGE 661 #define STORED 662 #define STRICT_P 663 #define STRIP_P 664 #define SUBSCRIPTION 665 #define SUBSTRING 666 #define SUPPORT 667 #define SYMMETRIC 668 #define SYSID 669 #define SYSTEM_P 670 #define SYSTEM_USER 671 #define TABLE 672 #define TABLES 673 #define TABLESAMPLE 674 #define TABLESPACE 675 #define TEMP 676 #define TEMPLATE 677 #define TEMPORARY 678 #define TEXT_P 679 #define THEN 680 #define TIES 681 #define TIME 682 #define TIMESTAMP 683 #define TO 684 #define TRAILING 685 #define TRANSACTION 686 #define TRANSFORM 687 #define TREAT 688 #define TRIGGER 689 #define TRIM 690 #define TRUE_P 691 #define TRUNCATE 692 #define TRUSTED 693 #define TYPE_P 694 #define TYPES_P 695 #define UESCAPE 696 #define UNBOUNDED 697 #define UNCOMMITTED 698 #define UNENCRYPTED 699 #define UNION 700 #define UNIQUE 701 #define UNKNOWN 702 #define UNLISTEN 703 #define UNLOGGED 704 #define UNTIL 705 #define UPDATE 706 #define USER 707 #define USING 708 #define VACUUM 709 #define VALID 710 #define VALIDATE 711 #define VALIDATOR 712 #define VALUE_P 713 #define VALUES 714 #define VARCHAR 715 #define VARIADIC 716 #define VARYING 717 #define VERBOSE 718 #define VERSION_P 719 #define VIEW 720 #define VIEWS 721 #define VOLATILE 722 #define WHEN 723 #define WHERE 724 #define WHITESPACE_P 725 #define WINDOW 726 #define WITH 727 #define WITHIN 728 #define WITHOUT 729 #define WORK 730 #define WRAPPER 731 #define WRITE 732 #define XML_P 733 #define XMLATTRIBUTES 734 #define XMLCONCAT 735 #define XMLELEMENT 736 #define XMLEXISTS 737 #define XMLFOREST 738 #define XMLNAMESPACES 739 #define XMLPARSE 740 #define XMLPI 741 #define XMLROOT 742 #define XMLSERIALIZE 743 #define XMLTABLE 744 #define YEAR_P 745 #define YES_P 746 #define ZONE 747 #define FORMAT_LA 748 #define NOT_LA 749 #define NULLS_LA 750 #define WITH_LA 751 #define WITHOUT_LA 752 #define MODE_TYPE_NAME 753 #define MODE_PLPGSQL_EXPR 754 #define MODE_PLPGSQL_ASSIGN1 755 #define MODE_PLPGSQL_ASSIGN2 756 #define MODE_PLPGSQL_ASSIGN3 757 #define UMINUS 758 /* Copy the first part of user declarations. */ #line 1 "gram.y" /*#define YYDEBUG 1*/ /*------------------------------------------------------------------------- * * gram.y * POSTGRESQL BISON rules/actions * * Portions Copyright (c) 1996-2023, 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 *makeStringConst(char *str, 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 234 "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; MergeWhenClause *mergewhen; struct KeyActions *keyactions; struct KeyAction *keyaction; } /* Line 193 of yacc.c. */ #line 1385 "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 1410 "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 906 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 115760 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 521 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 706 /* YYNRULES -- Number of rules. */ #define YYNRULES 3296 /* YYNRULES -- Number of states. */ #define YYNSTATES 6237 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 758 #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, 510, 2, 2, 515, 516, 508, 506, 519, 507, 517, 509, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 520, 518, 503, 505, 504, 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, 513, 2, 514, 511, 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, 512 }; #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, 982, 990, 997, 1004, 1010, 1016, 1022, 1028, 1038, 1043, 1049, 1057, 1064, 1069, 1078, 1083, 1086, 1091, 1095, 1102, 1107, 1111, 1115, 1119, 1122, 1125, 1129, 1134, 1139, 1143, 1147, 1151, 1155, 1159, 1163, 1168, 1173, 1177, 1180, 1184, 1187, 1190, 1194, 1199, 1203, 1206, 1209, 1213, 1218, 1223, 1228, 1234, 1236, 1240, 1243, 1246, 1247, 1250, 1251, 1253, 1255, 1257, 1261, 1265, 1268, 1269, 1271, 1275, 1279, 1281, 1287, 1291, 1293, 1296, 1298, 1302, 1305, 1309, 1316, 1323, 1334, 1336, 1339, 1341, 1345, 1350, 1352, 1356, 1361, 1368, 1373, 1382, 1385, 1388, 1400, 1410, 1412, 1414, 1416, 1417, 1419, 1421, 1423, 1425, 1429, 1432, 1433, 1435, 1437, 1441, 1445, 1447, 1449, 1453, 1457, 1461, 1465, 1470, 1474, 1477, 1479, 1480, 1484, 1485, 1487, 1488, 1490, 1494, 1497, 1499, 1501, 1503, 1507, 1508, 1510, 1514, 1516, 1530, 1547, 1560, 1576, 1591, 1609, 1611, 1613, 1616, 1619, 1622, 1625, 1627, 1628, 1630, 1631, 1635, 1636, 1638, 1642, 1644, 1648, 1650, 1652, 1654, 1656, 1658, 1665, 1668, 1673, 1676, 1679, 1681, 1682, 1685, 1688, 1690, 1691, 1694, 1695, 1699, 1701, 1703, 1706, 1709, 1711, 1716, 1721, 1727, 1730, 1736, 1744, 1750, 1753, 1757, 1758, 1760, 1763, 1765, 1768, 1771, 1774, 1778, 1782, 1786, 1787, 1789, 1791, 1793, 1795, 1797, 1799, 1801, 1803, 1805, 1807, 1811, 1813, 1819, 1829, 1833, 1843, 1848, 1859, 1871, 1874, 1875, 1879, 1880, 1882, 1886, 1888, 1893, 1894, 1897, 1900, 1903, 1904, 1906, 1910, 1914, 1921, 1926, 1927, 1929, 1931, 1934, 1937, 1938, 1942, 1946, 1949, 1951, 1953, 1957, 1961, 1966, 1967, 1969, 1970, 1977, 1979, 1983, 1987, 1991, 1997, 2000, 2001, 2004, 2007, 2008, 2012, 2017, 2022, 2023, 2026, 2027, 2032, 2033, 2037, 2046, 2058, 2060, 2064, 2066, 2068, 2072, 2079, 2088, 2096, 2107, 2114, 2117, 2121, 2122, 2131, 2143, 2149, 2151, 2152, 2159, 2165, 2174, 2179, 2186, 2188, 2189, 2193, 2194, 2196, 2199, 2202, 2205, 2207, 2210, 2214, 2217, 2220, 2223, 2226, 2230, 2234, 2238, 2240, 2244, 2246, 2247, 2249, 2252, 2255, 2257, 2259, 2263, 2270, 2281, 2283, 2284, 2286, 2289, 2292, 2293, 2296, 2299, 2301, 2302, 2304, 2305, 2313, 2316, 2317, 2321, 2327, 2333, 2342, 2345, 2346, 2349, 2352, 2355, 2357, 2363, 2366, 2367, 2370, 2377, 2384, 2391, 2402, 2409, 2416, 2423, 2433, 2443, 2450, 2457, 2467, 2474, 2482, 2485, 2488, 2491, 2494, 2496, 2499, 2501, 2502, 2510, 2517, 2522, 2523, 2525, 2529, 2534, 2536, 2540, 2542, 2545, 2548, 2551, 2554, 2556, 2558, 2569, 2583, 2586, 2587, 2590, 2593, 2595, 2596, 2602, 2607, 2612, 2624, 2639, 2652, 2668, 2680, 2683, 2685, 2690, 2691, 2700, 2712, 2714, 2716, 2724, 2734, 2743, 2754, 2763, 2768, 2769, 2775, 2776, 2779, 2780, 2783, 2784, 2787, 2788, 2791, 2792, 2794, 2796, 2798, 2800, 2802, 2811, 2813, 2815, 2833, 2855, 2857, 2859, 2862, 2864, 2868, 2870, 2872, 2874, 2878, 2880, 2883, 2884, 2886, 2889, 2894, 2896, 2898, 2900, 2902, 2904, 2908, 2909, 2911, 2912, 2914, 2916, 2921, 2922, 2924, 2926, 2928, 2932, 2933, 2935, 2937, 2939, 2941, 2944, 2945, 2946, 2949, 2952, 2954, 2957, 2960, 2963, 2966, 2978, 2992, 2994, 2998, 3004, 3006, 3010, 3016, 3018, 3021, 3024, 3026, 3035, 3042, 3048, 3053, 3058, 3062, 3070, 3079, 3086, 3093, 3100, 3107, 3114, 3119, 3127, 3133, 3142, 3146, 3148, 3152, 3156, 3158, 3160, 3162, 3164, 3166, 3168, 3170, 3174, 3176, 3180, 3184, 3186, 3187, 3189, 3193, 3201, 3211, 3221, 3230, 3234, 3235, 3249, 3251, 3255, 3261, 3267, 3271, 3278, 3281, 3283, 3284, 3287, 3288, 3291, 3296, 3297, 3299, 3300, 3307, 3316, 3325, 3327, 3331, 3337, 3343, 3351, 3361, 3369, 3379, 3385, 3392, 3399, 3404, 3411, 3416, 3423, 3432, 3437, 3444, 3449, 3456, 3462, 3470, 3472, 3474, 3476, 3479, 3481, 3484, 3486, 3488, 3490, 3494, 3498, 3502, 3506, 3508, 3510, 3512, 3514, 3516, 3519, 3522, 3524, 3528, 3531, 3533, 3535, 3537, 3539, 3541, 3543, 3545, 3549, 3551, 3554, 3557, 3561, 3563, 3567, 3573, 3576, 3579, 3580, 3587, 3594, 3601, 3608, 3615, 3622, 3629, 3636, 3645, 3655, 3664, 3671, 3678, 3688, 3698, 3708, 3716, 3727, 3729, 3731, 3740, 3749, 3758, 3767, 3776, 3785, 3794, 3804, 3813, 3822, 3825, 3826, 3828, 3830, 3833, 3836, 3838, 3841, 3845, 3849, 3853, 3857, 3862, 3867, 3871, 3875, 3879, 3884, 3889, 3893, 3898, 3903, 3905, 3907, 3909, 3910, 3919, 3928, 3940, 3942, 3944, 3947, 3952, 3958, 3960, 3964, 3967, 3970, 3973, 3976, 3979, 3981, 3985, 3987, 3991, 3993, 3996, 3999, 4004, 4008, 4011, 4014, 4017, 4020, 4023, 4026, 4030, 4033, 4036, 4039, 4042, 4048, 4054, 4060, 4066, 4072, 4074, 4078, 4080, 4083, 4087, 4088, 4094, 4102, 4109, 4119, 4123, 4125, 4128, 4130, 4132, 4134, 4138, 4139, 4145, 4148, 4149, 4153, 4157, 4161, 4169, 4177, 4188, 4190, 4192, 4194, 4196, 4198, 4200, 4217, 4237, 4239, 4240, 4243, 4244, 4246, 4250, 4255, 4261, 4264, 4267, 4272, 4277, 4278, 4280, 4284, 4287, 4288, 4290, 4292, 4293, 4296, 4299, 4300, 4310, 4323, 4331, 4339, 4342, 4343, 4347, 4350, 4352, 4356, 4358, 4362, 4365, 4367, 4369, 4372, 4376, 4379, 4381, 4385, 4389, 4393, 4396, 4399, 4401, 4403, 4405, 4407, 4410, 4412, 4414, 4416, 4418, 4423, 4429, 4431, 4435, 4439, 4441, 4445, 4449, 4455, 4462, 4464, 4468, 4471, 4473, 4477, 4479, 4480, 4482, 4485, 4490, 4496, 4498, 4500, 4502, 4504, 4508, 4512, 4515, 4518, 4520, 4523, 4526, 4529, 4532, 4534, 4537, 4540, 4543, 4546, 4548, 4550, 4552, 4556, 4559, 4561, 4566, 4567, 4571, 4572, 4574, 4576, 4580, 4586, 4589, 4590, 4593, 4595, 4599, 4605, 4611, 4617, 4619, 4622, 4624, 4625, 4630, 4637, 4642, 4649, 4654, 4661, 4666, 4673, 4678, 4685, 4689, 4695, 4701, 4707, 4709, 4713, 4715, 4719, 4722, 4725, 4727, 4730, 4732, 4735, 4747, 4758, 4769, 4772, 4775, 4776, 4786, 4789, 4790, 4801, 4813, 4825, 4831, 4837, 4846, 4852, 4858, 4864, 4866, 4868, 4870, 4872, 4876, 4877, 4883, 4889, 4896, 4903, 4910, 4917, 4924, 4933, 4942, 4949, 4956, 4964, 4974, 4984, 4993, 5004, 5011, 5018, 5025, 5032, 5039, 5046, 5053, 5062, 5069, 5078, 5085, 5094, 5102, 5112, 5119, 5128, 5136, 5146, 5155, 5166, 5175, 5186, 5196, 5208, 5217, 5228, 5238, 5250, 5259, 5268, 5276, 5283, 5290, 5297, 5304, 5313, 5322, 5331, 5340, 5347, 5357, 5359, 5360, 5363, 5364, 5373, 5382, 5391, 5402, 5412, 5421, 5423, 5424, 5431, 5438, 5445, 5452, 5459, 5466, 5473, 5483, 5493, 5500, 5507, 5514, 5523, 5530, 5539, 5548, 5557, 5566, 5573, 5582, 5589, 5598, 5606, 5616, 5624, 5634, 5641, 5649, 5651, 5655, 5659, 5663, 5665, 5667, 5669, 5671, 5673, 5681, 5688, 5695, 5702, 5709, 5716, 5723, 5731, 5739, 5746, 5756, 5766, 5773, 5780, 5787, 5794, 5801, 5808, 5817, 5826, 5835, 5842, 5850, 5857, 5864, 5869, 5877, 5884, 5889, 5894, 5899, 5903, 5908, 5912, 5914, 5916, 5920, 5926, 5932, 5938, 5944, 5953, 5959, 5965, 5972, 5980, 5988, 5996, 6001, 6006, 6012, 6017, 6024, 6038, 6040, 6042, 6046, 6050, 6052, 6054, 6056, 6058, 6060, 6062, 6064, 6065, 6067, 6069, 6071, 6073, 6075, 6077, 6078, 6082, 6085, 6086, 6089, 6092, 6095, 6099, 6103, 6107, 6111, 6114, 6118, 6121, 6127, 6132, 6136, 6140, 6144, 6148, 6152, 6154, 6156, 6157, 6161, 6164, 6167, 6169, 6172, 6174, 6178, 6181, 6183, 6184, 6187, 6191, 6192, 6202, 6214, 6227, 6242, 6246, 6251, 6256, 6257, 6260, 6266, 6268, 6269, 6271, 6274, 6278, 6282, 6286, 6288, 6291, 6293, 6295, 6297, 6299, 6301, 6303, 6304, 6310, 6315, 6322, 6329, 6334, 6338, 6344, 6352, 6362, 6364, 6368, 6370, 6376, 6381, 6386, 6393, 6398, 6405, 6412, 6418, 6426, 6436, 6443, 6445, 6446, 6453, 6465, 6477, 6489, 6503, 6513, 6525, 6527, 6529, 6540, 6545, 6552, 6555, 6561, 6564, 6565, 6572, 6578, 6582, 6588, 6590, 6594, 6596, 6598, 6601, 6603, 6605, 6607, 6609, 6611, 6612, 6614, 6615, 6617, 6618, 6620, 6621, 6623, 6624, 6628, 6629, 6632, 6634, 6638, 6640, 6641, 6644, 6649, 6653, 6659, 6661, 6663, 6665, 6667, 6669, 6671, 6673, 6675, 6677, 6679, 6685, 6689, 6690, 6692, 6694, 6696, 6698, 6700, 6704, 6714, 6727, 6731, 6732, 6735, 6739, 6742, 6746, 6754, 6756, 6760, 6762, 6767, 6772, 6780, 6783, 6785, 6787, 6789, 6793, 6796, 6805, 6811, 6812, 6817, 6821, 6822, 6825, 6826, 6834, 6837, 6838, 6844, 6848, 6849, 6852, 6855, 6858, 6862, 6864, 6868, 6870, 6873, 6875, 6876, 6878, 6881, 6882, 6891, 6893, 6897, 6901, 6907, 6910, 6912, 6916, 6926, 6928, 6931, 6937, 6943, 6950, 6957, 6965, 6968, 6969, 6973, 6975, 6978, 6984, 6990, 6999, 7003, 7008, 7016, 7018, 7019, 7023, 7026, 7029, 7032, 7035, 7036, 7039, 7042, 7044, 7046, 7050, 7054, 7056, 7059, 7064, 7069, 7072, 7076, 7082, 7088, 7090, 7092, 7102, 7112, 7114, 7117, 7122, 7127, 7132, 7135, 7138, 7142, 7144, 7148, 7158, 7160, 7163, 7164, 7172, 7180, 7181, 7192, 7199, 7200, 7202, 7203, 7206, 7207, 7211, 7215, 7220, 7225, 7230, 7235, 7239, 7242, 7244, 7246, 7247, 7249, 7251, 7252, 7254, 7260, 7262, 7263, 7265, 7267, 7269, 7270, 7274, 7276, 7280, 7285, 7289, 7292, 7295, 7297, 7299, 7301, 7302, 7305, 7310, 7316, 7323, 7328, 7334, 7337, 7341, 7343, 7345, 7347, 7349, 7352, 7355, 7357, 7359, 7361, 7363, 7365, 7367, 7372, 7373, 7375, 7379, 7381, 7383, 7385, 7387, 7389, 7392, 7397, 7402, 7408, 7411, 7412, 7414, 7418, 7420, 7421, 7423, 7426, 7430, 7433, 7438, 7441, 7445, 7448, 7449, 7454, 7460, 7463, 7464, 7466, 7470, 7473, 7477, 7480, 7484, 7487, 7491, 7494, 7498, 7500, 7505, 7509, 7514, 7520, 7525, 7531, 7536, 7542, 7545, 7550, 7552, 7554, 7555, 7558, 7559, 7561, 7566, 7572, 7577, 7578, 7581, 7584, 7587, 7589, 7591, 7592, 7598, 7601, 7603, 7605, 7608, 7611, 7616, 7618, 7622, 7624, 7627, 7631, 7638, 7643, 7644, 7647, 7654, 7657, 7659, 7663, 7668, 7669, 7672, 7673, 7676, 7677, 7680, 7685, 7686, 7688, 7689, 7691, 7695, 7699, 7707, 7720, 7722, 7726, 7729, 7733, 7737, 7739, 7742, 7745, 7748, 7751, 7753, 7755, 7759, 7763, 7766, 7769, 7773, 7779, 7786, 7789, 7793, 7797, 7802, 7803, 7805, 7807, 7809, 7811, 7813, 7816, 7821, 7823, 7825, 7827, 7829, 7832, 7836, 7840, 7841, 7843, 7845, 7847, 7849, 7851, 7854, 7857, 7860, 7863, 7866, 7868, 7872, 7873, 7875, 7877, 7879, 7881, 7887, 7890, 7892, 7894, 7896, 7898, 7903, 7905, 7908, 7911, 7913, 7917, 7921, 7924, 7926, 7927, 7933, 7936, 7942, 7945, 7947, 7951, 7955, 7956, 7958, 7960, 7962, 7964, 7966, 7968, 7972, 7976, 7980, 7984, 7988, 7992, 7996, 7997, 7999, 8004, 8006, 8010, 8014, 8020, 8023, 8026, 8030, 8034, 8038, 8042, 8046, 8050, 8054, 8058, 8062, 8066, 8070, 8074, 8078, 8081, 8085, 8089, 8092, 8095, 8099, 8105, 8110, 8117, 8121, 8127, 8132, 8139, 8144, 8151, 8157, 8165, 8169, 8172, 8177, 8180, 8184, 8188, 8193, 8197, 8202, 8206, 8211, 8217, 8224, 8231, 8239, 8246, 8254, 8258, 8263, 8268, 8275, 8279, 8283, 8288, 8292, 8297, 8302, 8308, 8313, 8319, 8321, 8323, 8327, 8330, 8333, 8337, 8341, 8345, 8349, 8353, 8357, 8361, 8365, 8369, 8373, 8377, 8381, 8385, 8388, 8394, 8401, 8405, 8410, 8412, 8414, 8417, 8422, 8424, 8426, 8428, 8431, 8434, 8437, 8440, 8442, 8444, 8449, 8453, 8459, 8466, 8475, 8482, 8489, 8494, 8499, 8503, 8505, 8507, 8509, 8511, 8517, 8519, 8521, 8526, 8528, 8533, 8535, 8540, 8542, 8547, 8549, 8551, 8553, 8555, 8557, 8559, 8561, 8568, 8573, 8578, 8585, 8590, 8595, 8600, 8605, 8610, 8617, 8623, 8629, 8635, 8640, 8647, 8652, 8657, 8662, 8667, 8673, 8681, 8689, 8699, 8705, 8710, 8717, 8723, 8731, 8739, 8748, 8753, 8761, 8766, 8773, 8780, 8785, 8788, 8792, 8796, 8800, 8805, 8806, 8811, 8813, 8817, 8821, 8823, 8825, 8827, 8829, 8832, 8833, 8836, 8839, 8840, 8843, 8847, 8851, 8856, 8859, 8862, 8868, 8869, 8875, 8876, 8879, 8880, 8882, 8886, 8890, 8893, 8896, 8897, 8904, 8906, 8907, 8911, 8912, 8916, 8920, 8924, 8925, 8927, 8932, 8935, 8938, 8941, 8944, 8947, 8951, 8954, 8957, 8961, 8962, 8967, 8971, 8977, 8982, 8986, 8992, 8994, 8996, 8998, 9000, 9002, 9004, 9006, 9008, 9010, 9012, 9014, 9016, 9018, 9020, 9022, 9024, 9026, 9028, 9033, 9035, 9040, 9042, 9047, 9049, 9052, 9054, 9057, 9059, 9063, 9065, 9069, 9071, 9075, 9079, 9081, 9082, 9084, 9088, 9092, 9096, 9099, 9101, 9105, 9109, 9113, 9115, 9117, 9119, 9121, 9123, 9125, 9127, 9129, 9131, 9133, 9135, 9137, 9145, 9151, 9155, 9161, 9167, 9171, 9175, 9181, 9185, 9188, 9190, 9192, 9196, 9202, 9204, 9207, 9212, 9215, 9216, 9218, 9219, 9221, 9224, 9227, 9230, 9234, 9240, 9242, 9243, 9245, 9248, 9249, 9252, 9254, 9255, 9258, 9262, 9263, 9266, 9267, 9271, 9272, 9274, 9277, 9280, 9283, 9286, 9290, 9293, 9297, 9300, 9301, 9303, 9307, 9311, 9315, 9319, 9323, 9324, 9328, 9332, 9333, 9335, 9339, 9347, 9355, 9359, 9360, 9362, 9363, 9365, 9369, 9373, 9376, 9378, 9380, 9382, 9386, 9388, 9391, 9393, 9397, 9399, 9401, 9403, 9405, 9408, 9410, 9412, 9414, 9416, 9418, 9421, 9428, 9431, 9438, 9441, 9445, 9451, 9454, 9458, 9464, 9466, 9468, 9470, 9472, 9474, 9476, 9479, 9482, 9484, 9486, 9488, 9490, 9492, 9494, 9498, 9509, 9514, 9516, 9518, 9520, 9522, 9524, 9526, 9528, 9530, 9532, 9534, 9536, 9538, 9540, 9542, 9544, 9546, 9548, 9550, 9552, 9554, 9556, 9558, 9560, 9562, 9564, 9566, 9568, 9570, 9572, 9574, 9576, 9578, 9580, 9582, 9584, 9586, 9588, 9590, 9592, 9594, 9596, 9598, 9600, 9602, 9604, 9606, 9608, 9610, 9612, 9614, 9616, 9618, 9620, 9622, 9624, 9626, 9628, 9630, 9632, 9634, 9636, 9638, 9640, 9642, 9644, 9646, 9648, 9650, 9652, 9654, 9656, 9658, 9660, 9662, 9664, 9666, 9668, 9670, 9672, 9674, 9676, 9678, 9680, 9682, 9684, 9686, 9688, 9690, 9692, 9694, 9696, 9698, 9700, 9702, 9704, 9706, 9708, 9710, 9712, 9714, 9716, 9718, 9720, 9722, 9724, 9726, 9728, 9730, 9732, 9734, 9736, 9738, 9740, 9742, 9744, 9746, 9748, 9750, 9752, 9754, 9756, 9758, 9760, 9762, 9764, 9766, 9768, 9770, 9772, 9774, 9776, 9778, 9780, 9782, 9784, 9786, 9788, 9790, 9792, 9794, 9796, 9798, 9800, 9802, 9804, 9806, 9808, 9810, 9812, 9814, 9816, 9818, 9820, 9822, 9824, 9826, 9828, 9830, 9832, 9834, 9836, 9838, 9840, 9842, 9844, 9846, 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 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { 522, 0, -1, 523, -1, 498, 1095, -1, 499, 1213, -1, 500, 1214, -1, 501, 1214, -1, 502, 1214, -1, 523, 518, 524, -1, 524, -1, 525, -1, 926, -1, 755, -1, 946, -1, 941, -1, 942, -1, 822, -1, 949, -1, 768, -1, 690, -1, 693, -1, 698, -1, 711, -1, 870, -1, 543, -1, 898, -1, 900, -1, 906, -1, 901, -1, 905, -1, 721, -1, 669, -1, 947, -1, 571, -1, 894, -1, 589, -1, 910, -1, 540, -1, 538, -1, 912, -1, 660, -1, 952, -1, 951, -1, 719, -1, 958, -1, 530, -1, 569, -1, 592, -1, 955, -1, 796, -1, 566, -1, 593, -1, 729, -1, 661, -1, 757, -1, 883, -1, 954, -1, 948, -1, 687, -1, 694, -1, 707, -1, 712, -1, 838, -1, 542, -1, 664, -1, 770, -1, 777, -1, 907, -1, 778, -1, 720, -1, 677, -1, 545, -1, 668, -1, 608, -1, 911, -1, 657, -1, 684, -1, 887, -1, 731, -1, 751, -1, 531, -1, 537, -1, 716, -1, 935, -1, 979, -1, 1009, -1, 758, -1, 989, -1, 570, -1, 880, -1, 885, -1, 781, -1, 782, -1, 783, -1, 785, -1, 913, -1, 686, -1, 889, -1, 541, -1, 718, -1, 943, -1, 977, -1, 972, -1, 801, -1, 805, -1, 816, -1, 713, -1, 827, -1, 980, -1, 923, -1, 667, -1, 934, -1, 991, -1, 1001, -1, 921, -1, 974, -1, 784, -1, 890, -1, 874, -1, 873, -1, 875, -1, 895, -1, 806, -1, 817, -1, 914, -1, 798, -1, 1013, -1, 925, -1, 794, -1, 924, -1, 996, -1, 957, -1, 560, -1, 548, -1, 565, -1, 932, -1, -1, 1217, -1, -1, 791, -1, -1, 89, -1, -1, 65, -1, 358, -1, -1, 63, 1121, -1, 100, 364, 1210, 532, 533, -1, 472, -1, 496, -1, -1, 533, 536, -1, -1, 534, 535, -1, -1, 320, 1208, -1, 320, 12, -1, 320, 287, -1, 146, 320, 1208, -1, 146, 320, 12, -1, 444, 320, 1208, -1, 207, -1, 92, 245, 1209, -1, 455, 450, 1208, -1, 452, 1212, -1, 3, -1, 535, -1, 414, 1207, -1, 28, 1212, -1, 364, 1212, -1, 200, 364, 1212, -1, 200, 185, 1212, -1, 100, 452, 1210, 532, 533, -1, 33, 364, 1211, 532, 534, -1, 33, 452, 1211, 532, 534, -1, -1, 200, 115, 1202, -1, 33, 364, 1211, 539, 563, -1, 33, 364, 31, 539, 563, -1, 33, 452, 1211, 539, 563, -1, 33, 452, 31, 539, 563, -1, 141, 364, 1212, -1, 141, 364, 194, 156, 1212, -1, 141, 452, 1212, -1, 141, 452, 194, 156, 1212, -1, 141, 185, 1212, -1, 141, 185, 194, 156, 1212, -1, 100, 185, 1210, 532, 533, -1, 33, 185, 1211, 544, 452, 1212, -1, 27, -1, 141, -1, 100, 374, 526, 50, 1211, 546, -1, 100, 374, 1217, 546, -1, 100, 374, 194, 282, 156, 526, 50, 1211, 546, -1, 100, 374, 194, 282, 156, 1217, 546, -1, 546, 547, -1, -1, 608, -1, 827, -1, 668, -1, 731, -1, 805, -1, 932, -1, 387, 549, -1, 387, 248, 549, -1, 387, 385, 549, -1, 431, 929, -1, 385, 73, 40, 431, 929, -1, 551, -1, 552, 429, 553, -1, 552, 505, 553, -1, 552, 429, 121, -1, 552, 505, 121, -1, 550, -1, 552, 176, 104, -1, 427, 492, 557, -1, 69, 1208, -1, 374, 1208, -1, 374, 12, -1, 268, 558, -1, 364, 559, -1, 364, 12, -1, 385, 50, 559, -1, 385, 50, 12, -1, 385, 50, 121, -1, 478, 300, 1130, -1, 431, 396, 1208, -1, 1217, -1, 552, 517, 1217, -1, 554, -1, 553, 519, 554, -1, 556, -1, 675, -1, 12, -1, 340, 443, -1, 340, 87, -1, 353, 340, -1, 383, -1, 436, -1, 162, -1, 297, -1, 559, -1, 1208, -1, 12, -1, 3, -1, 1114, 1208, 1116, -1, 1114, 515, 1207, 516, 1208, -1, 675, -1, 121, -1, 248, -1, 1208, -1, 121, -1, -1, 1219, -1, 1208, -1, 356, 561, -1, 562, -1, 427, 492, -1, 431, 225, 243, -1, 385, 50, -1, 552, -1, 31, -1, 387, 549, -1, 560, -1, 387, 551, -1, 560, -1, 391, 552, -1, 391, 427, 492, -1, 391, 431, 225, 243, -1, 391, 385, 50, -1, 391, 31, -1, 387, 94, 567, 568, -1, 31, -1, 1199, -1, 124, -1, 196, -1, 75, -1, 135, 31, -1, 135, 421, -1, 135, 423, -1, 135, 322, -1, 135, 382, -1, 33, 417, 1072, 572, -1, 33, 417, 194, 156, 1072, 572, -1, 33, 417, 1072, 573, -1, 33, 417, 194, 156, 1072, 573, -1, 33, 417, 31, 200, 420, 1202, 387, 420, 1202, 994, -1, 33, 417, 31, 200, 420, 1202, 312, 61, 1212, 387, 420, 1202, 994, -1, 33, 205, 1200, 572, -1, 33, 205, 194, 156, 1200, 572, -1, 33, 205, 1200, 574, -1, 33, 205, 31, 200, 420, 1202, 387, 420, 1202, 994, -1, 33, 205, 31, 200, 420, 1202, 312, 61, 1212, 387, 420, 1202, 994, -1, 33, 381, 1200, 572, -1, 33, 381, 194, 156, 1200, 572, -1, 33, 465, 1200, 572, -1, 33, 465, 194, 156, 1200, 572, -1, 33, 258, 465, 1200, 572, -1, 33, 258, 465, 194, 156, 1200, 572, -1, 33, 258, 465, 31, 200, 420, 1202, 387, 420, 1202, 994, -1, 33, 258, 465, 31, 200, 420, 1202, 312, 61, 1212, 387, 420, 1202, 994, -1, 33, 172, 417, 1072, 572, -1, 33, 172, 417, 194, 156, 1072, 572, -1, 575, -1, 572, 519, 575, -1, 48, 318, 1200, 586, -1, 132, 318, 1200, 528, -1, 132, 318, 1200, 166, -1, 48, 318, 1200, -1, 27, 616, -1, 27, 194, 282, 156, 616, -1, 27, 82, 616, -1, 27, 82, 194, 282, 156, 616, -1, 33, 896, 1217, 576, -1, 33, 896, 1217, 141, 282, 287, -1, 33, 896, 1217, 387, 282, 287, -1, 33, 896, 1217, 141, 158, -1, 33, 896, 1217, 141, 158, 194, 156, -1, 33, 896, 1217, 387, 403, 1209, -1, 33, 896, 1207, 387, 403, 1209, -1, 33, 896, 1217, 387, 580, -1, 33, 896, 1217, 356, 580, -1, 33, 896, 1217, 387, 620, -1, 33, 896, 1217, 387, 618, -1, 33, 896, 1217, 27, 180, 626, 40, 193, 671, -1, 33, 896, 1217, 584, -1, 33, 896, 1217, 141, 193, -1, 33, 896, 1217, 141, 193, 194, 156, -1, 141, 896, 194, 156, 1217, 529, -1, 141, 896, 1217, 529, -1, 33, 896, 1217, 897, 439, 1095, 577, 578, -1, 33, 896, 1217, 701, -1, 27, 631, -1, 33, 93, 1202, 749, -1, 456, 93, 1202, -1, 141, 93, 194, 156, 1202, 529, -1, 141, 93, 1202, 529, -1, 387, 474, 295, -1, 78, 297, 1202, -1, 387, 474, 78, -1, 387, 254, -1, 387, 449, -1, 144, 434, 1202, -1, 144, 34, 434, 1202, -1, 144, 355, 434, 1202, -1, 144, 434, 31, -1, 144, 434, 452, -1, 134, 434, 1202, -1, 134, 434, 31, -1, 134, 434, 452, -1, 144, 371, 1202, -1, 144, 34, 371, 1202, -1, 144, 355, 371, 1202, -1, 134, 371, 1202, -1, 207, 1200, -1, 278, 207, 1200, -1, 292, 791, -1, 282, 292, -1, 313, 429, 1211, -1, 387, 25, 261, 1202, -1, 387, 420, 1202, -1, 387, 580, -1, 356, 580, -1, 355, 193, 579, -1, 144, 369, 243, 379, -1, 134, 369, 243, 379, -1, 171, 369, 243, 379, -1, 278, 171, 369, 243, 379, -1, 701, -1, 387, 121, 1118, -1, 141, 121, -1, 80, 791, -1, -1, 453, 1118, -1, -1, 283, -1, 177, -1, 121, -1, 453, 205, 1202, -1, 515, 582, 516, -1, 472, 580, -1, -1, 583, -1, 582, 519, 583, -1, 1220, 505, 762, -1, 1220, -1, 1220, 517, 1220, 505, 762, -1, 1220, 517, 1220, -1, 585, -1, 584, 585, -1, 357, -1, 357, 532, 675, -1, 387, 673, -1, 387, 180, 626, -1, 170, 459, 472, 515, 588, 516, -1, 170, 459, 200, 515, 1157, 516, -1, 170, 459, 176, 515, 1157, 516, 429, 515, 1157, 516, -1, 121, -1, 1219, 1207, -1, 587, -1, 588, 519, 587, -1, 33, 439, 791, 590, -1, 591, -1, 590, 519, 591, -1, 27, 49, 1087, 529, -1, 141, 49, 194, 156, 1217, 529, -1, 141, 49, 1217, 529, -1, 33, 49, 1217, 897, 439, 1095, 577, 529, -1, 77, 1010, -1, 77, 31, -1, 98, 600, 1200, 634, 594, 595, 596, 601, 532, 597, 1083, -1, 98, 515, 976, 516, 429, 595, 596, 532, 597, -1, 176, -1, 429, -1, 336, -1, -1, 1208, -1, 404, -1, 405, -1, 598, -1, 515, 603, 516, -1, 598, 599, -1, -1, 56, -1, 175, -1, 127, 950, 1208, -1, 287, 950, 1208, -1, 102, -1, 190, -1, 338, 950, 1208, -1, 149, 950, 1208, -1, 171, 338, 635, -1, 171, 338, 508, -1, 171, 282, 287, 635, -1, 171, 287, 635, -1, 145, 1208, -1, 56, -1, -1, 602, 128, 1208, -1, -1, 453, -1, -1, 604, -1, 603, 519, 604, -1, 1220, 605, -1, 556, -1, 675, -1, 508, -1, 515, 606, 516, -1, -1, 607, -1, 606, 519, 607, -1, 556, -1, 100, 609, 417, 1200, 515, 610, 516, 646, 647, 651, 652, 653, 654, -1, 100, 609, 417, 194, 282, 156, 1200, 515, 610, 516, 646, 647, 651, 652, 653, 654, -1, 100, 609, 417, 1200, 292, 791, 611, 647, 651, 652, 653, 654, -1, 100, 609, 417, 194, 282, 156, 1200, 292, 791, 611, 647, 651, 652, 653, 654, -1, 100, 609, 417, 1200, 318, 292, 1200, 611, 586, 647, 651, 652, 653, 654, -1, 100, 609, 417, 194, 282, 156, 1200, 318, 292, 1200, 611, 586, 647, 651, 652, 653, 654, -1, 423, -1, 421, -1, 248, 423, -1, 248, 421, -1, 181, 423, -1, 181, 421, -1, 449, -1, -1, 612, -1, -1, 515, 613, 516, -1, -1, 614, -1, 612, 519, 614, -1, 615, -1, 613, 519, 615, -1, 616, -1, 628, -1, 631, -1, 617, -1, 631, -1, 1217, 1095, 621, 619, 699, 622, -1, 1217, 622, -1, 1217, 472, 301, 622, -1, 88, 1217, -1, 88, 121, -1, 618, -1, -1, 406, 1217, -1, 406, 121, -1, 620, -1, -1, 622, 623, -1, -1, 93, 1202, 624, -1, 624, -1, 627, -1, 80, 791, -1, 282, 287, -1, 287, -1, 446, 625, 867, 655, -1, 330, 232, 867, 655, -1, 74, 515, 1118, 516, 633, -1, 121, 1119, -1, 180, 626, 40, 193, 671, -1, 180, 626, 40, 515, 1118, 516, 407, -1, 346, 1200, 634, 638, 642, -1, 289, 136, -1, 289, 282, 136, -1, -1, 34, -1, 61, 121, -1, 123, -1, 282, 123, -1, 209, 124, -1, 209, 196, -1, 244, 1200, 629, -1, 629, 202, 630, -1, 629, 153, 630, -1, -1, 85, -1, 88, -1, 94, -1, 122, -1, 193, -1, 180, -1, 206, -1, 403, -1, 406, -1, 31, -1, 93, 1202, 632, -1, 632, -1, 74, 515, 1118, 516, 749, -1, 446, 625, 515, 635, 516, 637, 867, 655, 749, -1, 446, 656, 749, -1, 330, 232, 515, 635, 516, 637, 867, 655, 749, -1, 330, 232, 656, 749, -1, 152, 829, 515, 639, 516, 637, 867, 655, 641, 749, -1, 172, 232, 515, 635, 516, 346, 1200, 634, 638, 642, 749, -1, 278, 207, -1, -1, 515, 635, 516, -1, -1, 636, -1, 635, 519, 636, -1, 1217, -1, 201, 515, 635, 516, -1, -1, 256, 177, -1, 256, 317, -1, 256, 393, -1, -1, 640, -1, 639, 519, 640, -1, 832, 472, 877, -1, 832, 472, 299, 515, 877, 516, -1, 469, 515, 1118, 516, -1, -1, 643, -1, 644, -1, 643, 644, -1, 644, 643, -1, -1, 297, 451, 645, -1, 297, 126, 645, -1, 278, 26, -1, 358, -1, 65, -1, 387, 287, 634, -1, 387, 121, 634, -1, 208, 515, 1199, 516, -1, -1, 648, -1, -1, 318, 61, 1217, 515, 649, 516, -1, 650, -1, 649, 519, 650, -1, 1217, 835, 527, -1, 1123, 835, 527, -1, 515, 1118, 516, 835, 527, -1, 453, 1202, -1, -1, 472, 580, -1, 474, 295, -1, -1, 297, 86, 141, -1, 297, 86, 126, 370, -1, 297, 86, 327, 370, -1, -1, 420, 1202, -1, -1, 453, 205, 420, 1202, -1, -1, 453, 205, 1202, -1, 100, 403, 527, 968, 297, 658, 176, 1062, -1, 100, 403, 194, 282, 156, 791, 968, 297, 658, 176, 1062, -1, 659, -1, 658, 519, 659, -1, 1217, -1, 1123, -1, 515, 1118, 516, -1, 33, 403, 791, 387, 403, 1209, -1, 33, 403, 194, 156, 791, 387, 403, 1209, -1, 100, 609, 417, 662, 40, 1013, 663, -1, 100, 609, 417, 194, 282, 156, 662, 40, 1013, 663, -1, 1200, 634, 651, 652, 653, 654, -1, 472, 114, -1, 472, 278, 114, -1, -1, 100, 666, 258, 465, 665, 40, 1013, 663, -1, 100, 666, 258, 465, 194, 282, 156, 665, 40, 1013, 663, -1, 1200, 634, 651, 581, 654, -1, 449, -1, -1, 348, 258, 465, 528, 1200, 663, -1, 100, 609, 381, 1200, 670, -1, 100, 609, 381, 194, 282, 156, 1200, 670, -1, 33, 381, 1200, 672, -1, 33, 381, 194, 156, 1200, 672, -1, 672, -1, -1, 515, 672, 516, -1, -1, 673, -1, 672, 673, -1, 40, 1097, -1, 62, 675, -1, 113, -1, 278, 113, -1, 203, 674, 675, -1, 259, 675, -1, 263, 675, -1, 278, 259, -1, 278, 263, -1, 312, 61, 791, -1, 381, 267, 791, -1, 401, 532, 675, -1, 357, -1, 357, 532, 675, -1, 61, -1, -1, 5, -1, 506, 5, -1, 507, 5, -1, 1209, -1, 675, -1, 676, 519, 675, -1, 100, 839, 678, 683, 235, 1202, -1, 100, 839, 678, 683, 235, 1202, 188, 679, 680, 682, -1, 438, -1, -1, 1202, -1, 1202, 792, -1, 210, 679, -1, -1, 457, 679, -1, 278, 457, -1, 681, -1, -1, 333, -1, -1, 100, 420, 1202, 685, 251, 1208, 581, -1, 313, 1211, -1, -1, 141, 420, 1202, -1, 141, 420, 194, 156, 1202, -1, 100, 159, 1202, 532, 688, -1, 100, 159, 194, 282, 156, 1202, 532, 688, -1, 688, 689, -1, -1, 374, 1202, -1, 464, 559, -1, 176, 559, -1, 65, -1, 33, 159, 1202, 451, 691, -1, 691, 692, -1, -1, 429, 559, -1, 33, 159, 1202, 544, 787, 1202, -1, 33, 159, 1202, 544, 786, 791, -1, 33, 159, 1202, 544, 30, 855, -1, 33, 159, 1202, 544, 68, 515, 1095, 40, 1095, 516, -1, 33, 159, 1202, 544, 139, 1095, -1, 33, 159, 1202, 544, 178, 843, -1, 33, 159, 1202, 544, 299, 879, -1, 33, 159, 1202, 544, 299, 76, 791, 453, 1202, -1, 33, 159, 1202, 544, 299, 163, 791, 453, 1202, -1, 33, 159, 1202, 544, 334, 843, -1, 33, 159, 1202, 544, 367, 843, -1, 33, 159, 1202, 544, 432, 170, 1095, 235, 1202, -1, 33, 159, 1202, 544, 439, 1095, -1, 100, 172, 114, 476, 1202, 697, 699, -1, 188, 679, -1, 278, 188, -1, 457, 679, -1, 278, 457, -1, 695, -1, 696, 695, -1, 696, -1, -1, 33, 172, 114, 476, 1202, 697, 701, -1, 33, 172, 114, 476, 1202, 696, -1, 301, 515, 700, 516, -1, -1, 704, -1, 700, 519, 704, -1, 301, 515, 702, 516, -1, 703, -1, 702, 519, 703, -1, 704, -1, 387, 704, -1, 27, 704, -1, 141, 705, -1, 705, 706, -1, 1220, -1, 1208, -1, 100, 384, 1202, 708, 710, 172, 114, 476, 1202, 699, -1, 100, 384, 194, 282, 156, 1202, 708, 710, 172, 114, 476, 1202, 699, -1, 439, 1208, -1, -1, 464, 1208, -1, 464, 287, -1, 709, -1, -1, 33, 384, 1202, 709, 701, -1, 33, 384, 1202, 709, -1, 33, 384, 1202, 701, -1, 100, 172, 417, 1200, 515, 610, 516, 646, 384, 1202, 699, -1, 100, 172, 417, 194, 282, 156, 1200, 515, 610, 516, 646, 384, 1202, 699, -1, 100, 172, 417, 1200, 318, 292, 1200, 611, 586, 384, 1202, 699, -1, 100, 172, 417, 194, 282, 156, 1200, 318, 292, 1200, 611, 586, 384, 1202, 699, -1, 199, 172, 374, 1202, 715, 176, 384, 1202, 221, 1202, 699, -1, 245, 429, -1, 151, -1, 714, 515, 1074, 516, -1, -1, 100, 452, 255, 170, 717, 384, 1202, 699, -1, 100, 452, 255, 194, 282, 156, 170, 717, 384, 1202, 699, -1, 1211, -1, 452, -1, 141, 452, 255, 170, 717, 384, 1202, -1, 141, 452, 255, 194, 156, 170, 717, 384, 1202, -1, 33, 452, 255, 170, 717, 384, 1202, 701, -1, 100, 323, 1202, 297, 1200, 726, 727, 724, 722, 723, -1, 33, 323, 1202, 297, 1200, 725, 722, 723, -1, 453, 515, 1118, 516, -1, -1, 472, 74, 515, 1118, 516, -1, -1, 429, 1212, -1, -1, 429, 1212, -1, -1, 40, 3, -1, -1, 170, 728, -1, -1, 31, -1, 380, -1, 215, -1, 451, -1, 126, -1, 100, 25, 261, 1202, 439, 730, 188, 679, -1, 205, -1, 417, -1, 100, 839, 434, 1202, 732, 733, 297, 1200, 735, 741, 744, 155, 745, 1205, 515, 746, 516, -1, 100, 839, 93, 434, 1202, 29, 733, 297, 1200, 748, 749, 170, 142, 369, 744, 155, 745, 1205, 515, 746, 516, -1, 52, -1, 29, -1, 216, 292, -1, 734, -1, 733, 302, 734, -1, 215, -1, 126, -1, 451, -1, 451, 292, 635, -1, 437, -1, 347, 736, -1, -1, 737, -1, 736, 737, -1, 738, 739, 950, 740, -1, 272, -1, 296, -1, 417, -1, 369, -1, 1217, -1, 170, 742, 743, -1, -1, 142, -1, -1, 369, -1, 402, -1, 468, 515, 1118, 516, -1, -1, 178, -1, 334, -1, 747, -1, 746, 519, 747, -1, -1, 1207, -1, 5, -1, 1208, -1, 1220, -1, 176, 1200, -1, -1, -1, 749, 750, -1, 282, 123, -1, 123, -1, 209, 196, -1, 209, 124, -1, 282, 455, -1, 278, 207, -1, 100, 150, 434, 1202, 297, 1220, 155, 745, 1205, 515, 516, -1, 100, 150, 434, 1202, 297, 1220, 468, 752, 155, 745, 1205, 515, 516, -1, 753, -1, 752, 37, 753, -1, 1217, 200, 515, 754, 516, -1, 6, -1, 754, 519, 6, -1, 33, 150, 434, 1202, 756, -1, 144, -1, 144, 355, -1, 144, 34, -1, 134, -1, 100, 43, 791, 74, 515, 1118, 516, 749, -1, 100, 839, 30, 1205, 853, 759, -1, 100, 839, 30, 1205, 763, -1, 100, 299, 877, 759, -1, 100, 439, 791, 759, -1, 100, 439, 791, -1, 100, 439, 791, 40, 515, 1085, 516, -1, 100, 439, 791, 40, 148, 515, 766, 516, -1, 100, 439, 791, 40, 339, 759, -1, 100, 424, 377, 316, 791, 759, -1, 100, 424, 377, 133, 791, 759, -1, 100, 424, 377, 422, 791, 759, -1, 100, 424, 377, 90, 791, 759, -1, 100, 81, 791, 759, -1, 100, 81, 194, 282, 156, 791, 759, -1, 100, 81, 791, 176, 791, -1, 100, 81, 194, 282, 156, 791, 176, 791, -1, 515, 760, 516, -1, 761, -1, 760, 519, 761, -1, 1220, 505, 762, -1, 1220, -1, 850, -1, 1225, -1, 1155, -1, 675, -1, 1208, -1, 279, -1, 515, 764, 516, -1, 765, -1, 764, 519, 765, -1, 3, 505, 762, -1, 767, -1, -1, 1208, -1, 767, 519, 1208, -1, 33, 439, 791, 27, 458, 769, 1208, -1, 33, 439, 791, 27, 458, 769, 1208, 52, 1208, -1, 33, 439, 791, 27, 458, 769, 1208, 29, 1208, -1, 33, 439, 791, 352, 458, 1208, 429, 1208, -1, 194, 282, 156, -1, -1, 100, 299, 76, 791, 773, 170, 439, 1095, 453, 1202, 774, 40, 771, -1, 772, -1, 771, 519, 772, -1, 299, 1207, 877, 775, 776, -1, 299, 1207, 879, 775, 776, -1, 178, 1207, 843, -1, 178, 1207, 515, 1161, 516, 843, -1, 406, 1095, -1, 121, -1, -1, 163, 791, -1, -1, 170, 377, -1, 170, 303, 61, 791, -1, -1, 343, -1, -1, 100, 299, 163, 791, 453, 1202, -1, 33, 299, 163, 791, 453, 1202, 27, 771, -1, 33, 299, 163, 791, 453, 1202, 141, 779, -1, 780, -1, 779, 519, 780, -1, 299, 1207, 515, 1161, 516, -1, 178, 1207, 515, 1161, 516, -1, 141, 299, 76, 791, 453, 1202, 529, -1, 141, 299, 76, 194, 156, 791, 453, 1202, 529, -1, 141, 299, 163, 791, 453, 1202, 529, -1, 141, 299, 163, 194, 156, 791, 453, 1202, 529, -1, 141, 312, 61, 1212, 529, -1, 342, 312, 61, 1212, 429, 1211, -1, 141, 786, 194, 156, 790, 529, -1, 141, 786, 790, 529, -1, 141, 788, 194, 156, 1201, 529, -1, 141, 788, 1201, 529, -1, 141, 789, 1202, 297, 791, 529, -1, 141, 789, 194, 156, 1202, 297, 791, 529, -1, 141, 439, 793, 529, -1, 141, 439, 194, 156, 793, 529, -1, 141, 139, 793, 529, -1, 141, 139, 194, 156, 793, 529, -1, 141, 205, 89, 790, 529, -1, 141, 205, 89, 194, 156, 790, 529, -1, 417, -1, 381, -1, 465, -1, 258, 465, -1, 205, -1, 172, 417, -1, 81, -1, 97, -1, 403, -1, 424, 377, 316, -1, 424, 377, 133, -1, 424, 377, 422, -1, 424, 377, 90, -1, 788, -1, 115, -1, 364, -1, 410, -1, 420, -1, 25, 261, -1, 150, 434, -1, 159, -1, 172, 114, 476, -1, 683, 235, -1, 337, -1, 374, -1, 384, -1, 323, -1, 371, -1, 434, -1, 791, -1, 790, 519, 791, -1, 1217, -1, 1217, 792, -1, 517, 1203, -1, 792, 517, 1203, -1, 1095, -1, 793, 519, 1095, -1, 437, 1027, 1074, 795, 529, -1, 96, 193, -1, 357, 193, -1, -1, 84, 297, 786, 791, 223, 797, -1, 84, 297, 82, 791, 223, 797, -1, 84, 297, 787, 1202, 223, 797, -1, 84, 297, 439, 1095, 223, 797, -1, 84, 297, 139, 1095, 223, 797, -1, 84, 297, 30, 855, 223, 797, -1, 84, 297, 178, 843, 223, 797, -1, 84, 297, 299, 879, 223, 797, -1, 84, 297, 93, 1202, 297, 791, 223, 797, -1, 84, 297, 93, 1202, 297, 139, 791, 223, 797, -1, 84, 297, 789, 1202, 297, 791, 223, 797, -1, 84, 297, 334, 843, 223, 797, -1, 84, 297, 367, 843, 223, 797, -1, 84, 297, 432, 170, 1095, 235, 1202, 223, 797, -1, 84, 297, 299, 76, 791, 453, 1202, 223, 797, -1, 84, 297, 299, 163, 791, 453, 1202, 223, 797, -1, 84, 297, 236, 291, 675, 223, 797, -1, 84, 297, 68, 515, 1095, 40, 1095, 516, 223, 797, -1, 1208, -1, 287, -1, 379, 234, 799, 297, 786, 791, 223, 800, -1, 379, 234, 799, 297, 82, 791, 223, 800, -1, 379, 234, 799, 297, 787, 1202, 223, 800, -1, 379, 234, 799, 297, 439, 1095, 223, 800, -1, 379, 234, 799, 297, 139, 1095, 223, 800, -1, 379, 234, 799, 297, 30, 855, 223, 800, -1, 379, 234, 799, 297, 178, 843, 223, 800, -1, 379, 234, 799, 297, 236, 291, 675, 223, 800, -1, 379, 234, 799, 297, 334, 843, 223, 800, -1, 379, 234, 799, 297, 367, 843, 223, 800, -1, 170, 559, -1, -1, 1208, -1, 287, -1, 164, 802, -1, 266, 802, -1, 1010, -1, 803, 1010, -1, 273, 804, 1010, -1, 331, 804, 1010, -1, 167, 804, 1010, -1, 237, 804, 1010, -1, 24, 1209, 804, 1010, -1, 350, 1209, 804, 1010, -1, 1209, 804, 1010, -1, 31, 804, 1010, -1, 174, 804, 1010, -1, 174, 1209, 804, 1010, -1, 174, 31, 804, 1010, -1, 51, 804, 1010, -1, 51, 1209, 804, 1010, -1, 51, 31, 804, 1010, -1, 176, -1, 200, -1, 803, -1, -1, 182, 807, 297, 812, 429, 813, 815, 821, -1, 362, 807, 297, 812, 176, 813, 821, 529, -1, 362, 182, 300, 170, 807, 297, 812, 176, 813, 821, 529, -1, 808, -1, 31, -1, 31, 332, -1, 31, 515, 635, 516, -1, 31, 332, 515, 635, 516, -1, 809, -1, 808, 519, 809, -1, 380, 634, -1, 346, 634, -1, 100, 634, -1, 33, 415, -1, 1217, 634, -1, 811, -1, 810, 519, 811, -1, 1217, -1, 811, 517, 1217, -1, 1199, -1, 417, 1199, -1, 381, 1199, -1, 172, 114, 476, 1201, -1, 172, 384, 1201, -1, 178, 842, -1, 334, 842, -1, 367, 842, -1, 115, 1201, -1, 139, 790, -1, 235, 1201, -1, 236, 291, 676, -1, 315, 810, -1, 374, 1201, -1, 420, 1201, -1, 439, 790, -1, 31, 418, 200, 374, 1201, -1, 31, 382, 200, 374, 1201, -1, 31, 179, 200, 374, 1201, -1, 31, 335, 200, 374, 1201, -1, 31, 368, 200, 374, 1201, -1, 814, -1, 813, 519, 814, -1, 1211, -1, 185, 1211, -1, 472, 182, 300, -1, -1, 182, 808, 429, 1212, 821, -1, 182, 808, 429, 1212, 472, 818, 821, -1, 362, 808, 176, 1212, 821, 529, -1, 362, 1217, 300, 170, 808, 176, 1212, 821, 529, -1, 818, 519, 819, -1, 819, -1, 1220, 820, -1, 300, -1, 436, -1, 162, -1, 183, 61, 1211, -1, -1, 33, 121, 332, 823, 825, -1, 823, 824, -1, -1, 200, 374, 1201, -1, 170, 364, 1212, -1, 170, 452, 1212, -1, 182, 807, 297, 826, 429, 813, 815, -1, 362, 807, 297, 826, 176, 813, 529, -1, 362, 182, 300, 170, 807, 297, 826, 176, 813, 529, -1, 418, -1, 179, -1, 368, -1, 382, -1, 440, -1, 375, -1, 100, 828, 205, 528, 526, 297, 1072, 829, 515, 830, 516, 833, 625, 581, 654, 1083, -1, 100, 828, 205, 528, 194, 282, 156, 1202, 297, 1072, 829, 515, 830, 516, 833, 625, 581, 654, 1083, -1, 446, -1, -1, 453, 1202, -1, -1, 832, -1, 830, 519, 832, -1, 835, 527, 836, 837, -1, 835, 791, 580, 836, 837, -1, 1217, 831, -1, 1123, 831, -1, 515, 1118, 516, 831, -1, 201, 515, 834, 516, -1, -1, 832, -1, 834, 519, 832, -1, 80, 791, -1, -1, 41, -1, 131, -1, -1, 495, 167, -1, 495, 237, -1, -1, 100, 839, 178, 1205, 844, 361, 849, 857, 863, -1, 100, 839, 178, 1205, 844, 361, 417, 515, 869, 516, 857, 863, -1, 100, 839, 178, 1205, 844, 857, 863, -1, 100, 839, 334, 1205, 844, 857, 863, -1, 302, 354, -1, -1, 515, 841, 516, -1, 515, 516, -1, 846, -1, 841, 519, 846, -1, 843, -1, 842, 519, 843, -1, 1205, 840, -1, 1224, -1, 1217, -1, 1217, 1180, -1, 515, 845, 516, -1, 515, 516, -1, 851, -1, 845, 519, 851, -1, 847, 848, 850, -1, 848, 847, 850, -1, 848, 850, -1, 847, 850, -1, 850, -1, 200, -1, 306, -1, 212, -1, 200, 306, -1, 461, -1, 1218, -1, 850, -1, 1095, -1, 1218, 792, 510, 439, -1, 389, 1218, 792, 510, 439, -1, 846, -1, 846, 121, 1118, -1, 846, 505, 1118, -1, 846, -1, 515, 508, 516, -1, 515, 854, 516, -1, 515, 303, 61, 854, 516, -1, 515, 854, 303, 61, 854, 516, -1, 852, -1, 854, 519, 852, -1, 1205, 853, -1, 855, -1, 856, 519, 855, -1, 858, -1, -1, 860, -1, 858, 860, -1, 64, 297, 287, 213, -1, 361, 287, 297, 287, 213, -1, 408, -1, 197, -1, 399, -1, 467, -1, 160, 379, 125, -1, 160, 379, 222, -1, 379, 125, -1, 379, 222, -1, 240, -1, 282, 240, -1, 99, 675, -1, 370, 675, -1, 412, 791, -1, 564, -1, 314, 1217, -1, 40, 861, -1, 235, 559, -1, 432, 866, -1, 471, -1, 859, -1, 1208, -1, 1208, 519, 1208, -1, 359, 1118, -1, 862, -1, 53, 46, 864, 147, -1, -1, 864, 865, 518, -1, -1, 525, -1, 862, -1, 170, 439, 1095, -1, 866, 519, 170, 439, 1095, -1, 472, 759, -1, -1, 848, 850, -1, 868, -1, 869, 519, 868, -1, 33, 178, 843, 871, 872, -1, 33, 334, 843, 871, 872, -1, 33, 367, 843, 871, 872, -1, 859, -1, 871, 859, -1, 358, -1, -1, 141, 178, 842, 529, -1, 141, 178, 194, 156, 842, 529, -1, 141, 334, 842, 529, -1, 141, 334, 194, 156, 842, 529, -1, 141, 367, 842, 529, -1, 141, 367, 194, 156, 842, 529, -1, 141, 30, 856, 529, -1, 141, 30, 194, 156, 856, 529, -1, 141, 299, 878, 529, -1, 141, 299, 194, 156, 878, 529, -1, 515, 1095, 516, -1, 515, 1095, 519, 1095, 516, -1, 515, 279, 519, 1095, 516, -1, 515, 1095, 519, 279, 516, -1, 1152, -1, 1217, 517, 877, -1, 879, -1, 878, 519, 879, -1, 877, 876, -1, 137, 881, -1, 882, -1, 881, 882, -1, 1208, -1, 235, 559, -1, 100, 68, 515, 1095, 40, 1095, 516, 472, 178, 843, 884, -1, 100, 68, 515, 1095, 40, 1095, 516, 474, 178, 884, -1, 100, 68, 515, 1095, 40, 1095, 516, 472, 212, 884, -1, 40, 198, -1, 40, 44, -1, -1, 141, 68, 886, 515, 1095, 40, 1095, 516, 529, -1, 194, 156, -1, -1, 100, 839, 432, 170, 1095, 235, 1202, 515, 888, 516, -1, 176, 398, 472, 178, 843, 519, 429, 398, 472, 178, 843, -1, 429, 398, 472, 178, 843, 519, 176, 398, 472, 178, 843, -1, 176, 398, 472, 178, 843, -1, 429, 398, 472, 178, 843, -1, 141, 432, 886, 170, 1095, 235, 1202, 529, -1, 349, 893, 891, 528, 1200, -1, 349, 893, 374, 528, 1202, -1, 349, 893, 892, 528, 526, -1, 205, -1, 417, -1, 415, -1, 115, -1, 515, 959, 516, -1, -1, 33, 420, 1202, 387, 580, -1, 33, 420, 1202, 356, 580, -1, 33, 30, 855, 352, 429, 1202, -1, 33, 81, 791, 352, 429, 1202, -1, 33, 97, 791, 352, 429, 1202, -1, 33, 115, 1202, 352, 429, 1202, -1, 33, 139, 791, 352, 429, 1202, -1, 33, 139, 791, 352, 93, 1202, 429, 1202, -1, 33, 172, 114, 476, 1202, 352, 429, 1202, -1, 33, 178, 843, 352, 429, 1202, -1, 33, 185, 1210, 352, 429, 1210, -1, 33, 683, 235, 1202, 352, 429, 1202, -1, 33, 299, 76, 791, 453, 1202, 352, 429, 1202, -1, 33, 299, 163, 791, 453, 1202, 352, 429, 1202, -1, 33, 323, 1202, 297, 1200, 352, 429, 1202, -1, 33, 323, 194, 156, 1202, 297, 1200, 352, 429, 1202, -1, 33, 334, 843, 352, 429, 1202, -1, 33, 337, 1202, 352, 429, 1202, -1, 33, 367, 843, 352, 429, 1202, -1, 33, 374, 1202, 352, 429, 1202, -1, 33, 384, 1202, 352, 429, 1202, -1, 33, 410, 1202, 352, 429, 1202, -1, 33, 417, 1072, 352, 429, 1202, -1, 33, 417, 194, 156, 1072, 352, 429, 1202, -1, 33, 381, 1200, 352, 429, 1202, -1, 33, 381, 194, 156, 1200, 352, 429, 1202, -1, 33, 465, 1200, 352, 429, 1202, -1, 33, 465, 194, 156, 1200, 352, 429, 1202, -1, 33, 258, 465, 1200, 352, 429, 1202, -1, 33, 258, 465, 194, 156, 1200, 352, 429, 1202, -1, 33, 205, 1200, 352, 429, 1202, -1, 33, 205, 194, 156, 1200, 352, 429, 1202, -1, 33, 172, 417, 1072, 352, 429, 1202, -1, 33, 172, 417, 194, 156, 1072, 352, 429, 1202, -1, 33, 417, 1072, 352, 896, 1202, 429, 1202, -1, 33, 417, 194, 156, 1072, 352, 896, 1202, 429, 1202, -1, 33, 465, 1200, 352, 896, 1202, 429, 1202, -1, 33, 465, 194, 156, 1200, 352, 896, 1202, 429, 1202, -1, 33, 258, 465, 1200, 352, 896, 1202, 429, 1202, -1, 33, 258, 465, 194, 156, 1200, 352, 896, 1202, 429, 1202, -1, 33, 417, 1072, 352, 93, 1202, 429, 1202, -1, 33, 417, 194, 156, 1072, 352, 93, 1202, 429, 1202, -1, 33, 172, 417, 1072, 352, 896, 1202, 429, 1202, -1, 33, 172, 417, 194, 156, 1072, 352, 896, 1202, 429, 1202, -1, 33, 371, 1202, 297, 1200, 352, 429, 1202, -1, 33, 434, 1202, 297, 1200, 352, 429, 1202, -1, 33, 150, 434, 1202, 352, 429, 1202, -1, 33, 364, 1210, 352, 429, 1210, -1, 33, 452, 1210, 352, 429, 1210, -1, 33, 420, 1202, 352, 429, 1202, -1, 33, 403, 791, 352, 429, 1202, -1, 33, 424, 377, 316, 791, 352, 429, 1202, -1, 33, 424, 377, 133, 791, 352, 429, 1202, -1, 33, 424, 377, 422, 791, 352, 429, 1202, -1, 33, 424, 377, 90, 791, 352, 429, 1202, -1, 33, 439, 791, 352, 429, 1202, -1, 33, 439, 791, 352, 49, 1202, 429, 1202, 529, -1, 82, -1, -1, 387, 114, -1, -1, 33, 178, 843, 899, 129, 297, 159, 1202, -1, 33, 334, 843, 899, 129, 297, 159, 1202, -1, 33, 367, 843, 899, 129, 297, 159, 1202, -1, 33, 434, 1202, 297, 1200, 899, 129, 297, 159, 1202, -1, 33, 258, 465, 1200, 899, 129, 297, 159, 1202, -1, 33, 205, 1200, 899, 129, 297, 159, 1202, -1, 278, -1, -1, 33, 30, 855, 387, 374, 1202, -1, 33, 81, 791, 387, 374, 1202, -1, 33, 97, 791, 387, 374, 1202, -1, 33, 139, 791, 387, 374, 1202, -1, 33, 159, 1202, 387, 374, 1202, -1, 33, 178, 843, 387, 374, 1202, -1, 33, 299, 879, 387, 374, 1202, -1, 33, 299, 76, 791, 453, 1202, 387, 374, 1202, -1, 33, 299, 163, 791, 453, 1202, 387, 374, 1202, -1, 33, 334, 843, 387, 374, 1202, -1, 33, 367, 843, 387, 374, 1202, -1, 33, 417, 1072, 387, 374, 1202, -1, 33, 417, 194, 156, 1072, 387, 374, 1202, -1, 33, 403, 791, 387, 374, 1202, -1, 33, 424, 377, 316, 791, 387, 374, 1202, -1, 33, 424, 377, 133, 791, 387, 374, 1202, -1, 33, 424, 377, 422, 791, 387, 374, 1202, -1, 33, 424, 377, 90, 791, 387, 374, 1202, -1, 33, 381, 1200, 387, 374, 1202, -1, 33, 381, 194, 156, 1200, 387, 374, 1202, -1, 33, 465, 1200, 387, 374, 1202, -1, 33, 465, 194, 156, 1200, 387, 374, 1202, -1, 33, 258, 465, 1200, 387, 374, 1202, -1, 33, 258, 465, 194, 156, 1200, 387, 374, 1202, -1, 33, 172, 417, 1072, 387, 374, 1202, -1, 33, 172, 417, 194, 156, 1072, 387, 374, 1202, -1, 33, 439, 791, 387, 374, 1202, -1, 33, 299, 879, 387, 515, 902, 516, -1, 903, -1, 902, 519, 903, -1, 1220, 505, 279, -1, 1220, 505, 904, -1, 850, -1, 1225, -1, 1155, -1, 675, -1, 1208, -1, 33, 439, 791, 387, 515, 902, 516, -1, 33, 30, 855, 313, 429, 1211, -1, 33, 81, 791, 313, 429, 1211, -1, 33, 97, 791, 313, 429, 1211, -1, 33, 115, 1202, 313, 429, 1211, -1, 33, 139, 791, 313, 429, 1211, -1, 33, 178, 843, 313, 429, 1211, -1, 33, 683, 235, 1202, 313, 429, 1211, -1, 33, 236, 291, 675, 313, 429, 1211, -1, 33, 299, 879, 313, 429, 1211, -1, 33, 299, 76, 791, 453, 1202, 313, 429, 1211, -1, 33, 299, 163, 791, 453, 1202, 313, 429, 1211, -1, 33, 334, 843, 313, 429, 1211, -1, 33, 367, 843, 313, 429, 1211, -1, 33, 374, 1202, 313, 429, 1211, -1, 33, 439, 791, 313, 429, 1211, -1, 33, 420, 1202, 313, 429, 1211, -1, 33, 403, 791, 313, 429, 1211, -1, 33, 424, 377, 133, 791, 313, 429, 1211, -1, 33, 424, 377, 90, 791, 313, 429, 1211, -1, 33, 172, 114, 476, 1202, 313, 429, 1211, -1, 33, 384, 1202, 313, 429, 1211, -1, 33, 150, 434, 1202, 313, 429, 1211, -1, 33, 337, 1202, 313, 429, 1211, -1, 33, 410, 1202, 313, 429, 1211, -1, 100, 337, 1202, 867, -1, 100, 337, 1202, 170, 31, 418, 867, -1, 100, 337, 1202, 170, 909, 867, -1, 417, 1072, 634, 641, -1, 418, 200, 374, 1217, -1, 418, 200, 374, 108, -1, 1217, 634, 641, -1, 1217, 1180, 634, 641, -1, 1073, 634, 641, -1, 108, -1, 908, -1, 909, 519, 908, -1, 33, 337, 1202, 387, 759, -1, 33, 337, 1202, 27, 909, -1, 33, 337, 1202, 387, 909, -1, 33, 337, 1202, 141, 909, -1, 100, 410, 1202, 92, 1208, 337, 1201, 867, -1, 33, 410, 1202, 387, 759, -1, 33, 410, 1202, 92, 1208, -1, 33, 410, 1202, 348, 337, 867, -1, 33, 410, 1202, 27, 337, 1201, 867, -1, 33, 410, 1202, 141, 337, 1201, 867, -1, 33, 410, 1202, 387, 337, 1201, 867, -1, 33, 410, 1202, 144, -1, 33, 410, 1202, 134, -1, 33, 410, 1202, 394, 759, -1, 141, 410, 1202, 529, -1, 141, 410, 194, 156, 1202, 529, -1, 100, 839, 371, 1202, 40, 297, 919, 429, 1200, 1083, 137, 920, 915, -1, 283, -1, 917, -1, 515, 916, 516, -1, 916, 518, 918, -1, 918, -1, 1013, -1, 980, -1, 996, -1, 989, -1, 921, -1, 917, -1, -1, 380, -1, 451, -1, 126, -1, 215, -1, 216, -1, 32, -1, -1, 284, 1217, 922, -1, 519, 1208, -1, -1, 246, 1217, -1, 448, 1217, -1, 448, 508, -1, 22, 927, 931, -1, 401, 431, 930, -1, 86, 927, 931, -1, 365, 927, 931, -1, 372, 1217, -1, 351, 372, 1217, -1, 351, 1217, -1, 365, 927, 429, 372, 1217, -1, 365, 927, 429, 1217, -1, 328, 431, 1208, -1, 86, 329, 1208, -1, 365, 329, 1208, -1, 53, 927, 930, -1, 147, 927, 931, -1, 475, -1, 431, -1, -1, 225, 243, 555, -1, 340, 298, -1, 340, 477, -1, 123, -1, 282, 123, -1, 928, -1, 929, 519, 928, -1, 929, 928, -1, 929, -1, -1, 37, 70, -1, 37, 278, 70, -1, -1, 100, 609, 465, 1200, 634, 581, 40, 1013, 933, -1, 100, 302, 354, 609, 465, 1200, 634, 581, 40, 1013, 933, -1, 100, 609, 344, 465, 1200, 515, 635, 516, 581, 40, 1013, 933, -1, 100, 302, 354, 609, 344, 465, 1200, 515, 635, 516, 581, 40, 1013, 933, -1, 472, 74, 300, -1, 472, 66, 74, 300, -1, 472, 248, 74, 300, -1, -1, 247, 1204, -1, 100, 115, 1202, 532, 936, -1, 937, -1, -1, 938, -1, 937, 938, -1, 939, 940, 675, -1, 939, 940, 556, -1, 939, 940, 121, -1, 3, -1, 92, 245, -1, 145, -1, 251, -1, 313, -1, 420, -1, 422, -1, 505, -1, -1, 33, 115, 1202, 472, 936, -1, 33, 115, 1202, 936, -1, 33, 115, 1202, 387, 420, 1202, -1, 33, 115, 1202, 348, 81, 464, -1, 33, 115, 1202, 563, -1, 141, 115, 1202, -1, 141, 115, 194, 156, 1202, -1, 141, 115, 1202, 532, 515, 944, 516, -1, 141, 115, 194, 156, 1202, 532, 515, 944, 516, -1, 945, -1, 944, 519, 945, -1, 171, -1, 33, 81, 791, 348, 464, -1, 33, 415, 387, 550, -1, 33, 415, 356, 562, -1, 100, 139, 791, 950, 1095, 622, -1, 33, 139, 791, 576, -1, 33, 139, 791, 141, 282, 287, -1, 33, 139, 791, 387, 282, 287, -1, 33, 139, 791, 27, 631, -1, 33, 139, 791, 141, 93, 1202, 529, -1, 33, 139, 791, 141, 93, 194, 156, 1202, 529, -1, 33, 139, 791, 456, 93, 1202, -1, 40, -1, -1, 33, 424, 377, 133, 791, 759, -1, 33, 424, 377, 90, 791, 27, 255, 170, 1201, 953, 790, -1, 33, 424, 377, 90, 791, 33, 255, 170, 1201, 953, 790, -1, 33, 424, 377, 90, 791, 33, 255, 354, 791, 953, 791, -1, 33, 424, 377, 90, 791, 33, 255, 170, 1201, 354, 791, 953, 791, -1, 33, 424, 377, 90, 791, 141, 255, 170, 1201, -1, 33, 424, 377, 90, 791, 141, 255, 194, 156, 170, 1201, -1, 472, -1, 496, -1, 100, 773, 97, 791, 170, 1208, 429, 1208, 176, 791, -1, 78, 965, 1200, 956, -1, 78, 515, 959, 516, 1200, 956, -1, 78, 965, -1, 78, 965, 1202, 297, 1200, -1, 453, 1202, -1, -1, 454, 966, 967, 965, 964, 971, -1, 454, 515, 959, 516, 971, -1, 960, 965, 971, -1, 960, 515, 959, 516, 971, -1, 961, -1, 959, 519, 961, -1, 36, -1, 35, -1, 962, 963, -1, 1219, -1, 960, -1, 493, -1, 556, -1, 675, -1, -1, 960, -1, -1, 463, -1, -1, 177, -1, -1, 175, -1, -1, 515, 1201, 516, -1, -1, 1200, 968, -1, 969, -1, 970, 519, 969, -1, 970, -1, -1, 157, 973, -1, 157, 960, 965, 973, -1, 157, 463, 973, -1, 157, 515, 959, 516, 973, -1, 1013, -1, 980, -1, 996, -1, 989, -1, 1001, -1, 1009, -1, 661, -1, 664, -1, 667, -1, 977, -1, 328, 1202, 975, 40, 976, -1, 515, 1161, 516, -1, -1, 1013, -1, 980, -1, 996, -1, 989, -1, 1001, -1, 155, 1202, 978, -1, 100, 609, 417, 662, 40, 155, 1202, 978, 663, -1, 100, 609, 417, 194, 282, 156, 662, 40, 155, 1202, 978, 663, -1, 515, 1157, 516, -1, -1, 117, 1202, -1, 117, 328, 1202, -1, 117, 31, -1, 117, 328, 31, -1, 1024, 215, 221, 981, 982, 986, 988, -1, 1200, -1, 1200, 40, 1217, -1, 1013, -1, 311, 983, 458, 1013, -1, 515, 984, 516, 1013, -1, 515, 984, 516, 311, 983, 458, 1013, -1, 121, 459, -1, 452, -1, 415, -1, 985, -1, 984, 519, 985, -1, 1217, 1181, -1, 297, 91, 987, 137, 451, 387, 997, 1083, -1, 297, 91, 987, 137, 283, -1, -1, 515, 830, 516, 1083, -1, 297, 93, 1202, -1, -1, 360, 1197, -1, -1, 1024, 126, 176, 1075, 990, 1084, 988, -1, 453, 1062, -1, -1, 252, 1027, 1074, 992, 994, -1, 200, 993, 264, -1, -1, 25, 390, -1, 369, 390, -1, 369, 154, -1, 390, 451, 154, -1, 390, -1, 390, 369, 154, -1, 154, -1, 25, 154, -1, 286, -1, -1, 286, -1, 394, 253, -1, -1, 1024, 451, 1075, 387, 997, 1061, 1084, 988, -1, 998, -1, 997, 519, 998, -1, 999, 505, 1118, -1, 515, 1000, 516, 505, 1118, -1, 1217, 1181, -1, 999, -1, 1000, 519, 999, -1, 1024, 260, 221, 1075, 453, 1063, 297, 1118, 1002, -1, 1003, -1, 1002, 1003, -1, 468, 257, 1004, 425, 1005, -1, 468, 257, 1004, 425, 1006, -1, 468, 282, 257, 1004, 425, 1007, -1, 468, 257, 1004, 425, 137, 283, -1, 468, 282, 257, 1004, 425, 137, 283, -1, 37, 1118, -1, -1, 451, 387, 997, -1, 126, -1, 215, 1008, -1, 215, 311, 983, 458, 1008, -1, 215, 515, 984, 516, 1008, -1, 215, 515, 984, 516, 311, 983, 458, 1008, -1, 215, 121, 459, -1, 459, 515, 1157, 516, -1, 120, 1010, 1011, 112, 1012, 170, 1013, -1, 1202, -1, -1, 1011, 278, 376, -1, 1011, 376, -1, 1011, 56, -1, 1011, 42, -1, 1011, 214, -1, -1, 472, 191, -1, 474, 191, -1, 1015, -1, 1014, -1, 515, 1015, 516, -1, 515, 1014, 516, -1, 1017, -1, 1016, 1033, -1, 1016, 1032, 1054, 1037, -1, 1016, 1032, 1036, 1055, -1, 1018, 1016, -1, 1018, 1016, 1033, -1, 1018, 1016, 1032, 1054, 1037, -1, 1018, 1016, 1032, 1036, 1055, -1, 1017, -1, 1014, -1, 380, 1030, 1196, 1025, 1061, 1083, 1046, 1053, 1137, -1, 380, 1029, 1197, 1025, 1061, 1083, 1046, 1053, 1137, -1, 1060, -1, 417, 1072, -1, 1016, 445, 1028, 1016, -1, 1016, 219, 1028, 1016, -1, 1016, 151, 1028, 1016, -1, 472, 1019, -1, 496, 1019, -1, 472, 344, 1019, -1, 1020, -1, 1019, 519, 1020, -1, 1202, 968, 40, 1021, 515, 976, 516, 1022, 1023, -1, 258, -1, 282, 258, -1, -1, 377, 130, 167, 61, 635, 387, 1217, -1, 377, 60, 167, 61, 635, 387, 1217, -1, -1, 113, 635, 387, 1217, 429, 1206, 121, 1206, 453, 1217, -1, 113, 635, 387, 1217, 453, 1217, -1, -1, 1018, -1, -1, 221, 1026, -1, -1, 423, 1027, 1200, -1, 421, 1027, 1200, -1, 248, 423, 1027, 1200, -1, 248, 421, 1027, 1200, -1, 181, 423, 1027, 1200, -1, 181, 421, 1027, 1200, -1, 449, 1027, 1200, -1, 417, 1200, -1, 1200, -1, 417, -1, -1, 31, -1, 136, -1, -1, 136, -1, 136, 297, 515, 1157, 516, -1, 31, -1, -1, 1029, -1, 1030, -1, 1033, -1, -1, 303, 61, 1034, -1, 1035, -1, 1034, 519, 1035, -1, 1118, 453, 1155, 837, -1, 1118, 836, 837, -1, 1038, 1039, -1, 1039, 1038, -1, 1038, -1, 1039, -1, 1036, -1, -1, 245, 1040, -1, 245, 1040, 519, 1041, -1, 164, 1045, 1042, 1044, 298, -1, 164, 1045, 1042, 1044, 472, 426, -1, 164, 1045, 1044, 298, -1, 164, 1045, 1044, 472, 426, -1, 294, 1041, -1, 294, 1042, 1044, -1, 1118, -1, 31, -1, 1118, -1, 1120, -1, 506, 1043, -1, 507, 1043, -1, 1207, -1, 5, -1, 369, -1, 370, -1, 167, -1, 273, -1, 185, 61, 1028, 1047, -1, -1, 1048, -1, 1047, 519, 1048, -1, 1118, -1, 1049, -1, 1051, -1, 1050, -1, 1052, -1, 515, 516, -1, 366, 515, 1157, 516, -1, 103, 515, 1157, 516, -1, 186, 388, 515, 1047, 516, -1, 189, 1118, -1, -1, 1056, -1, 170, 340, 298, -1, 1054, -1, -1, 1057, -1, 1056, 1057, -1, 1058, 1059, 995, -1, 170, 451, -1, 170, 278, 232, 451, -1, 170, 390, -1, 170, 232, 390, -1, 292, 1199, -1, -1, 459, 515, 1157, 516, -1, 1060, 519, 515, 1157, 516, -1, 176, 1062, -1, -1, 1063, -1, 1062, 519, 1063, -1, 1072, 1066, -1, 1072, 1066, 1076, -1, 1078, 1068, -1, 238, 1078, 1068, -1, 1088, 1066, -1, 238, 1088, 1066, -1, 1014, 1066, -1, 238, 1014, 1066, -1, 1064, -1, 515, 1064, 516, 1065, -1, 515, 1064, 516, -1, 1063, 101, 226, 1063, -1, 1063, 1069, 226, 1063, 1071, -1, 1063, 226, 1063, 1071, -1, 1063, 270, 1069, 226, 1063, -1, 1063, 270, 226, 1063, -1, 40, 1217, 515, 1201, 516, -1, 40, 1217, -1, 1217, 515, 1201, 516, -1, 1217, -1, 1065, -1, -1, 40, 1217, -1, -1, 1065, -1, 40, 515, 1086, 516, -1, 40, 1217, 515, 1086, 516, -1, 1217, 515, 1086, 516, -1, -1, 177, 1070, -1, 242, 1070, -1, 363, 1070, -1, 211, -1, 307, -1, -1, 453, 515, 1201, 516, 1067, -1, 297, 1118, -1, 1200, -1, 1073, -1, 1200, 508, -1, 298, 1200, -1, 298, 515, 1200, 516, -1, 1072, -1, 1074, 519, 1072, -1, 1072, -1, 1072, 1217, -1, 1072, 40, 1217, -1, 419, 1205, 515, 1157, 516, 1077, -1, 353, 515, 1118, 516, -1, -1, 1123, 1082, -1, 370, 176, 515, 1080, 516, 1082, -1, 1123, 1081, -1, 1079, -1, 1080, 519, 1079, -1, 40, 515, 1086, 516, -1, -1, 496, 304, -1, -1, 469, 1118, -1, -1, 469, 1118, -1, 469, 104, 292, 1010, -1, -1, 1086, -1, -1, 1087, -1, 1086, 519, 1087, -1, 1217, 1095, 577, -1, 489, 515, 1120, 1133, 83, 1089, 516, -1, 489, 515, 484, 515, 1093, 516, 519, 1120, 1133, 83, 1089, 516, -1, 1090, -1, 1089, 519, 1090, -1, 1217, 1095, -1, 1217, 1095, 1091, -1, 1217, 170, 304, -1, 1092, -1, 1091, 1092, -1, 3, 1119, -1, 121, 1119, -1, 282, 287, -1, 287, -1, 1094, -1, 1093, 519, 1094, -1, 1119, 40, 1220, -1, 121, 1119, -1, 1097, 1096, -1, 389, 1097, 1096, -1, 1097, 39, 513, 1207, 514, -1, 389, 1097, 39, 513, 1207, 514, -1, 1097, 39, -1, 389, 1097, 39, -1, 1096, 513, 514, -1, 1096, 513, 1207, 514, -1, -1, 1099, -1, 1101, -1, 1103, -1, 1107, -1, 1113, -1, 1114, 1116, -1, 1114, 515, 1207, 516, -1, 1101, -1, 1104, -1, 1108, -1, 1113, -1, 1218, 1100, -1, 1218, 792, 1100, -1, 515, 1157, 516, -1, -1, 217, -1, 218, -1, 395, -1, 55, -1, 341, -1, 168, 1102, -1, 140, 326, -1, 119, 1100, -1, 118, 1100, -1, 290, 1100, -1, 58, -1, 515, 1207, 516, -1, -1, 1105, -1, 1106, -1, 1105, -1, 1106, -1, 57, 1112, 515, 1157, 516, -1, 57, 1112, -1, 1109, -1, 1110, -1, 1109, -1, 1110, -1, 1111, 515, 1207, 516, -1, 1111, -1, 72, 1112, -1, 71, 1112, -1, 460, -1, 269, 72, 1112, -1, 269, 71, 1112, -1, 271, 1112, -1, 462, -1, -1, 428, 515, 1207, 516, 1115, -1, 428, 1115, -1, 427, 515, 1207, 516, 1115, -1, 427, 1115, -1, 220, -1, 496, 427, 492, -1, 497, 427, 492, -1, -1, 490, -1, 265, -1, 116, -1, 192, -1, 262, -1, 1117, -1, 490, 429, 265, -1, 116, 429, 192, -1, 116, 429, 262, -1, 116, 429, 1117, -1, 192, 429, 262, -1, 192, 429, 1117, -1, 262, 429, 1117, -1, -1, 378, -1, 378, 515, 1207, 516, -1, 1120, -1, 1118, 13, 1095, -1, 1118, 80, 791, -1, 1118, 47, 427, 492, 1118, -1, 506, 1118, -1, 507, 1118, -1, 1118, 506, 1118, -1, 1118, 507, 1118, -1, 1118, 508, 1118, -1, 1118, 509, 1118, -1, 1118, 510, 1118, -1, 1118, 511, 1118, -1, 1118, 503, 1118, -1, 1118, 504, 1118, -1, 1118, 505, 1118, -1, 1118, 17, 1118, -1, 1118, 18, 1118, -1, 1118, 19, 1118, -1, 1118, 1154, 1118, -1, 1154, 1118, -1, 1118, 37, 1118, -1, 1118, 302, 1118, -1, 282, 1118, -1, 494, 1118, -1, 1118, 244, 1118, -1, 1118, 244, 1118, 149, 1118, -1, 1118, 494, 244, 1118, -1, 1118, 494, 244, 1118, 149, 1118, -1, 1118, 195, 1118, -1, 1118, 195, 1118, 149, 1118, -1, 1118, 494, 195, 1118, -1, 1118, 494, 195, 1118, 149, 1118, -1, 1118, 392, 429, 1118, -1, 1118, 392, 429, 1118, 149, 1118, -1, 1118, 494, 392, 429, 1118, -1, 1118, 494, 392, 429, 1118, 149, 1118, -1, 1118, 223, 287, -1, 1118, 224, -1, 1118, 223, 282, 287, -1, 1118, 285, -1, 1148, 309, 1148, -1, 1118, 223, 436, -1, 1118, 223, 282, 436, -1, 1118, 223, 162, -1, 1118, 223, 282, 162, -1, 1118, 223, 447, -1, 1118, 223, 282, 447, -1, 1118, 223, 136, 176, 1118, -1, 1118, 223, 282, 136, 176, 1118, -1, 1118, 54, 1182, 1119, 37, 1118, -1, 1118, 494, 54, 1182, 1119, 37, 1118, -1, 1118, 54, 413, 1119, 37, 1118, -1, 1118, 494, 54, 413, 1119, 37, 1118, -1, 1118, 200, 1171, -1, 1118, 494, 200, 1171, -1, 1118, 1156, 1151, 1014, -1, 1118, 1156, 1151, 515, 1118, 516, -1, 446, 625, 1014, -1, 1118, 223, 138, -1, 1118, 223, 282, 138, -1, 1118, 223, 281, -1, 1118, 223, 1166, 281, -1, 1118, 223, 282, 281, -1, 1118, 223, 282, 1166, 281, -1, 1118, 223, 1187, 1188, -1, 1118, 223, 282, 1187, 1188, -1, 121, -1, 1120, -1, 1119, 13, 1095, -1, 506, 1119, -1, 507, 1119, -1, 1119, 506, 1119, -1, 1119, 507, 1119, -1, 1119, 508, 1119, -1, 1119, 509, 1119, -1, 1119, 510, 1119, -1, 1119, 511, 1119, -1, 1119, 503, 1119, -1, 1119, 504, 1119, -1, 1119, 505, 1119, -1, 1119, 17, 1119, -1, 1119, 18, 1119, -1, 1119, 19, 1119, -1, 1119, 1154, 1119, -1, 1154, 1119, -1, 1119, 223, 136, 176, 1119, -1, 1119, 223, 282, 136, 176, 1119, -1, 1119, 223, 138, -1, 1119, 223, 282, 138, -1, 1177, -1, 1206, -1, 12, 1181, -1, 515, 1118, 516, 1181, -1, 1172, -1, 1122, -1, 1014, -1, 1014, 1180, -1, 156, 1014, -1, 39, 1014, -1, 39, 1162, -1, 1149, -1, 1150, -1, 186, 515, 1157, 516, -1, 1205, 515, 516, -1, 1205, 515, 1158, 1032, 516, -1, 1205, 515, 461, 1159, 1032, 516, -1, 1205, 515, 1158, 519, 461, 1159, 1032, 516, -1, 1205, 515, 31, 1158, 1032, 516, -1, 1205, 515, 136, 1158, 1032, 516, -1, 1205, 515, 508, 516, -1, 1121, 1135, 1136, 1140, -1, 1194, 1136, 1140, -1, 1124, -1, 1121, -1, 1124, -1, 1194, -1, 81, 170, 515, 1118, 516, -1, 106, -1, 109, -1, 109, 515, 1207, 516, -1, 110, -1, 110, 515, 1207, 516, -1, 249, -1, 249, 515, 1207, 516, -1, 250, -1, 250, 515, 1207, 516, -1, 107, -1, 111, -1, 386, -1, 416, -1, 452, -1, 105, -1, 108, -1, 68, 515, 1118, 40, 1095, 516, -1, 161, 515, 1164, 516, -1, 280, 515, 1118, 516, -1, 280, 515, 1118, 519, 1166, 516, -1, 310, 515, 1167, 516, -1, 310, 515, 1160, 516, -1, 324, 515, 1168, 516, -1, 411, 515, 1169, 516, -1, 411, 515, 1160, 516, -1, 433, 515, 1118, 40, 1095, 516, -1, 435, 515, 59, 1170, 516, -1, 435, 515, 239, 1170, 516, -1, 435, 515, 430, 1170, 516, -1, 435, 515, 1170, 516, -1, 288, 515, 1118, 519, 1118, 516, -1, 79, 515, 1157, 516, -1, 184, 515, 1157, 516, -1, 241, 515, 1157, 516, -1, 480, 515, 1157, 516, -1, 481, 515, 267, 1220, 516, -1, 481, 515, 267, 1220, 519, 1127, 516, -1, 481, 515, 267, 1220, 519, 1157, 516, -1, 481, 515, 267, 1220, 519, 1127, 519, 1157, 516, -1, 482, 515, 1120, 1133, 516, -1, 483, 515, 1128, 516, -1, 485, 515, 1130, 1118, 1132, 516, -1, 486, 515, 267, 1220, 516, -1, 486, 515, 267, 1220, 519, 1118, 516, -1, 487, 515, 1118, 519, 1125, 1126, 516, -1, 488, 515, 1130, 1118, 40, 1097, 1131, 516, -1, 230, 515, 1158, 516, -1, 230, 515, 1189, 1191, 1188, 1186, 516, -1, 230, 515, 1186, 516, -1, 228, 515, 1193, 1192, 1186, 516, -1, 228, 515, 1015, 1184, 1186, 516, -1, 228, 515, 1186, 516, -1, 464, 1118, -1, 464, 278, 458, -1, 519, 400, 491, -1, 519, 400, 278, -1, 519, 400, 278, 458, -1, -1, 479, 515, 1128, 516, -1, 1129, -1, 1128, 519, 1129, -1, 1118, 40, 1220, -1, 1118, -1, 138, -1, 95, -1, 204, -1, 278, 204, -1, -1, 327, 470, -1, 409, 470, -1, -1, 319, 1120, -1, 319, 1120, 1134, -1, 319, 1134, 1120, -1, 319, 1134, 1120, 1134, -1, 61, 345, -1, 61, 458, -1, 473, 185, 515, 1033, 516, -1, -1, 165, 515, 469, 1118, 516, -1, -1, 471, 1138, -1, -1, 1139, -1, 1138, 519, 1139, -1, 1217, 40, 1141, -1, 308, 1141, -1, 308, 1217, -1, -1, 515, 1142, 1143, 1032, 1144, 516, -1, 1217, -1, -1, 318, 61, 1157, -1, -1, 339, 1145, 1147, -1, 370, 1145, 1147, -1, 187, 1145, 1147, -1, -1, 1146, -1, 54, 1146, 37, 1146, -1, 442, 325, -1, 442, 169, -1, 104, 369, -1, 1118, 325, -1, 1118, 169, -1, 152, 104, 369, -1, 152, 185, -1, 152, 426, -1, 152, 278, 305, -1, -1, 369, 515, 1157, 516, -1, 369, 515, 516, -1, 515, 1157, 519, 1118, 516, -1, 369, 515, 1157, 516, -1, 369, 515, 516, -1, 515, 1157, 519, 1118, 516, -1, 38, -1, 397, -1, 31, -1, 10, -1, 1153, -1, 506, -1, 507, -1, 508, -1, 509, -1, 510, -1, 511, -1, 503, -1, 504, -1, 505, -1, 17, -1, 18, -1, 19, -1, 10, -1, 299, 515, 877, 516, -1, 1152, -1, 299, 515, 877, 516, -1, 1152, -1, 299, 515, 877, 516, -1, 244, -1, 494, 244, -1, 195, -1, 494, 195, -1, 1118, -1, 1157, 519, 1118, -1, 1159, -1, 1158, 519, 1159, -1, 1118, -1, 848, 15, 1118, -1, 848, 16, 1118, -1, 1158, -1, -1, 1095, -1, 1161, 519, 1095, -1, 513, 1157, 514, -1, 513, 1163, 514, -1, 513, 514, -1, 1162, -1, 1163, 519, 1162, -1, 1165, 176, 1118, -1, 12, 176, 1118, -1, 3, -1, 490, -1, 265, -1, 116, -1, 192, -1, 262, -1, 378, -1, 1208, -1, 274, -1, 275, -1, 276, -1, 277, -1, 1118, 321, 1118, 176, 1118, 170, 1118, -1, 1118, 321, 1118, 176, 1118, -1, 1119, 200, 1119, -1, 1118, 176, 1118, 170, 1118, -1, 1118, 170, 1118, 176, 1118, -1, 1118, 176, 1118, -1, 1118, 170, 1118, -1, 1118, 392, 1118, 149, 1118, -1, 1118, 176, 1157, -1, 176, 1157, -1, 1157, -1, 1014, -1, 515, 1157, 516, -1, 67, 1176, 1173, 1175, 147, -1, 1174, -1, 1173, 1174, -1, 468, 1118, 425, 1118, -1, 143, 1118, -1, -1, 1118, -1, -1, 1217, -1, 1217, 1180, -1, 517, 1203, -1, 517, 508, -1, 513, 1118, 514, -1, 513, 1179, 520, 1179, 514, -1, 1118, -1, -1, 1178, -1, 1180, 1178, -1, -1, 1181, 1178, -1, 45, -1, -1, 1118, 1184, -1, 493, 227, 1185, -1, -1, 145, 1202, -1, -1, 360, 1095, 1184, -1, -1, 227, -1, 227, 458, -1, 227, 39, -1, 227, 291, -1, 227, 373, -1, 472, 446, 233, -1, 472, 446, -1, 474, 446, 233, -1, 474, 446, -1, -1, 1190, -1, 1189, 519, 1190, -1, 1120, 458, 1183, -1, 1118, 520, 1183, -1, 287, 297, 287, -1, 23, 297, 287, -1, -1, 287, 297, 287, -1, 23, 297, 287, -1, -1, 1183, -1, 1193, 519, 1183, -1, 231, 515, 1190, 1191, 1188, 1186, 516, -1, 229, 515, 1183, 1195, 1192, 1186, 516, -1, 303, 61, 1034, -1, -1, 1197, -1, -1, 1198, -1, 1197, 519, 1198, -1, 1118, 40, 1220, -1, 1118, 1221, -1, 1118, -1, 508, -1, 1200, -1, 1199, 519, 1200, -1, 1217, -1, 1217, 1180, -1, 1202, -1, 1201, 519, 1202, -1, 1217, -1, 1220, -1, 1208, -1, 1218, -1, 1217, 1180, -1, 1207, -1, 5, -1, 1208, -1, 8, -1, 9, -1, 1205, 1208, -1, 1205, 515, 1158, 1032, 516, 1208, -1, 1205, 12, -1, 1205, 515, 1158, 1032, 516, 12, -1, 1098, 1208, -1, 1114, 1208, 1116, -1, 1114, 515, 1207, 516, 1208, -1, 1098, 12, -1, 1114, 12, 1116, -1, 1114, 515, 1207, 516, 12, -1, 436, -1, 162, -1, 287, -1, 11, -1, 6, -1, 1207, -1, 506, 1207, -1, 507, 1207, -1, 1211, -1, 1219, -1, 107, -1, 111, -1, 386, -1, 1211, -1, 1212, 519, 1211, -1, 1031, 1196, 1061, 1083, 1046, 1053, 1137, 1032, 1037, 1055, -1, 1215, 1181, 1216, 1213, -1, 1217, -1, 12, -1, 15, -1, 505, -1, 3, -1, 1222, -1, 1223, -1, 3, -1, 1222, -1, 1224, -1, 3, -1, 1222, -1, 1223, -1, 1224, -1, 3, -1, 1222, -1, 1223, -1, 1224, -1, 1225, -1, 3, -1, 1226, -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, 94, -1, 95, -1, 96, -1, 97, -1, 98, -1, 99, -1, 102, -1, 103, -1, 104, -1, 112, -1, 113, -1, 114, -1, 115, -1, 116, -1, 117, -1, 120, -1, 122, -1, 124, -1, 125, -1, 126, -1, 127, -1, 128, -1, 129, -1, 130, -1, 132, -1, 133, -1, 134, -1, 135, -1, 138, -1, 139, -1, 140, -1, 141, -1, 142, -1, 144, -1, 145, -1, 146, -1, 148, -1, 149, -1, 150, -1, 152, -1, 153, -1, 154, -1, 155, -1, 157, -1, 158, -1, 159, -1, 160, -1, 163, -1, 165, -1, 166, -1, 167, -1, 169, -1, 171, -1, 173, -1, 174, -1, 178, -1, 179, -1, 180, -1, 181, -1, 183, -1, 187, -1, 188, -1, 190, -1, 191, -1, 192, -1, 193, -1, 194, -1, 196, -1, 197, -1, 198, -1, 199, -1, 201, -1, 202, -1, 203, -1, 204, -1, 205, -1, 206, -1, 207, -1, 208, -1, 210, -1, 213, -1, 214, -1, 215, -1, 216, -1, 222, -1, 225, -1, 227, -1, 232, -1, 233, -1, 234, -1, 235, -1, 236, -1, 237, -1, 240, -1, 243, -1, 246, -1, 247, -1, 248, -1, 251, -1, 252, -1, 253, -1, 254, -1, 255, -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, 272, -1, 273, -1, 274, -1, 275, -1, 276, -1, 277, -1, 278, -1, 281, -1, 283, -1, 284, -1, 286, -1, 289, -1, 291, -1, 292, -1, 293, -1, 295, -1, 296, -1, 299, -1, 300, -1, 301, -1, 304, -1, 305, -1, 308, -1, 311, -1, 312, -1, 313, -1, 314, -1, 315, -1, 316, -1, 317, -1, 318, -1, 319, -1, 320, -1, 322, -1, 323, -1, 325, -1, 328, -1, 329, -1, 327, -1, 331, -1, 332, -1, 333, -1, 334, -1, 335, -1, 336, -1, 337, -1, 338, -1, 339, -1, 340, -1, 342, -1, 343, -1, 344, -1, 345, -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, 361, -1, 362, -1, 364, -1, 365, -1, 366, -1, 367, -1, 368, -1, 370, -1, 371, -1, 372, -1, 373, -1, 374, -1, 375, -1, 376, -1, 377, -1, 378, -1, 379, -1, 381, -1, 382, -1, 383, -1, 384, -1, 385, -1, 387, -1, 388, -1, 390, -1, 391, -1, 393, -1, 394, -1, 396, -1, 398, -1, 399, -1, 400, -1, 401, -1, 402, -1, 403, -1, 404, -1, 405, -1, 406, -1, 407, -1, 408, -1, 409, -1, 410, -1, 412, -1, 414, -1, 415, -1, 418, -1, 420, -1, 421, -1, 422, -1, 423, -1, 424, -1, 426, -1, 431, -1, 432, -1, 434, -1, 437, -1, 438, -1, 439, -1, 440, -1, 441, -1, 442, -1, 443, -1, 444, -1, 447, -1, 448, -1, 449, -1, 450, -1, 451, -1, 454, -1, 455, -1, 456, -1, 457, -1, 458, -1, 462, -1, 464, -1, 465, -1, 466, -1, 467, -1, 470, -1, 473, -1, 474, -1, 475, -1, 476, -1, 477, -1, 478, -1, 490, -1, 491, -1, 492, -1, 54, -1, 55, -1, 57, -1, 58, -1, 71, -1, 72, -1, 79, -1, 118, -1, 119, -1, 156, -1, 161, -1, 168, -1, 184, -1, 186, -1, 212, -1, 217, -1, 218, -1, 220, -1, 228, -1, 229, -1, 230, -1, 231, -1, 241, -1, 269, -1, 271, -1, 279, -1, 280, -1, 288, -1, 290, -1, 306, -1, 310, -1, 324, -1, 326, -1, 341, -1, 369, -1, 389, -1, 395, -1, 411, -1, 427, -1, 428, -1, 433, -1, 435, -1, 459, -1, 460, -1, 479, -1, 480, -1, 481, -1, 482, -1, 483, -1, 484, -1, 485, -1, 486, -1, 487, -1, 488, -1, 489, -1, 50, -1, 56, -1, 81, -1, 89, -1, 101, -1, 108, -1, 175, -1, 177, -1, 195, -1, 211, -1, 223, -1, 224, -1, 226, -1, 242, -1, 244, -1, 270, -1, 285, -1, 307, -1, 309, -1, 363, -1, 392, -1, 419, -1, 463, -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, 93, -1, 100, -1, 105, -1, 106, -1, 107, -1, 109, -1, 110, -1, 111, -1, 121, -1, 123, -1, 131, -1, 136, -1, 137, -1, 143, -1, 147, -1, 151, -1, 162, -1, 164, -1, 170, -1, 172, -1, 176, -1, 182, -1, 185, -1, 189, -1, 200, -1, 209, -1, 219, -1, 221, -1, 238, -1, 239, -1, 245, -1, 249, -1, 250, -1, 282, -1, 287, -1, 294, -1, 297, -1, 298, -1, 302, -1, 303, -1, 321, -1, 330, -1, 346, -1, 360, -1, 380, -1, 386, -1, 397, -1, 413, -1, 416, -1, 417, -1, 425, -1, 429, -1, 430, -1, 436, -1, 445, -1, 446, -1, 452, -1, 453, -1, 461, -1, 468, -1, 469, -1, 471, -1, 472, -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, 101, -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, 117, -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, 152, -1, 153, -1, 154, -1, 155, -1, 156, -1, 157, -1, 158, -1, 159, -1, 160, -1, 161, -1, 162, -1, 163, -1, 166, -1, 167, -1, 168, -1, 169, -1, 171, -1, 172, -1, 173, -1, 174, -1, 175, -1, 177, -1, 178, -1, 179, -1, 180, -1, 181, -1, 183, -1, 184, -1, 186, -1, 187, -1, 188, -1, 190, -1, 191, -1, 193, -1, 194, -1, 195, -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, 220, -1, 222, -1, 223, -1, 225, -1, 226, -1, 227, -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, 246, -1, 247, -1, 248, -1, 249, -1, 250, -1, 251, -1, 252, -1, 253, -1, 254, -1, 255, -1, 256, -1, 257, -1, 258, -1, 259, -1, 260, -1, 261, -1, 263, -1, 264, -1, 266, -1, 267, -1, 268, -1, 269, -1, 270, -1, 271, -1, 272, -1, 273, -1, 274, -1, 275, -1, 276, -1, 277, -1, 278, -1, 279, -1, 280, -1, 281, -1, 282, -1, 283, -1, 284, -1, 286, -1, 287, -1, 288, -1, 289, -1, 290, -1, 291, -1, 292, -1, 293, -1, 295, -1, 296, -1, 298, -1, 299, -1, 300, -1, 301, -1, 302, -1, 304, -1, 305, -1, 306, -1, 307, -1, 310, -1, 311, -1, 312, -1, 313, -1, 314, -1, 315, -1, 316, -1, 317, -1, 318, -1, 319, -1, 320, -1, 321, -1, 322, -1, 323, -1, 324, -1, 325, -1, 328, -1, 329, -1, 327, -1, 330, -1, 331, -1, 332, -1, 333, -1, 334, -1, 335, -1, 336, -1, 337, -1, 338, -1, 339, -1, 340, -1, 341, -1, 342, -1, 343, -1, 344, -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, 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, 376, -1, 377, -1, 379, -1, 380, -1, 381, -1, 382, -1, 383, -1, 384, -1, 385, -1, 386, -1, 387, -1, 389, -1, 388, -1, 390, -1, 391, -1, 392, -1, 393, -1, 394, -1, 395, -1, 396, -1, 397, -1, 398, -1, 399, -1, 400, -1, 401, -1, 402, -1, 403, -1, 404, -1, 405, -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, 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, 446, -1, 447, -1, 448, -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, 464, -1, 465, -1, 466, -1, 467, -1, 468, -1, 470, -1, 475, -1, 476, -1, 477, -1, 478, -1, 479, -1, 480, -1, 481, -1, 482, -1, 483, -1, 484, -1, 485, -1, 486, -1, 487, -1, 488, -1, 489, -1, 491, -1, 492, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { 0, 889, 889, 894, 898, 903, 911, 919, 939, 951, 965, 966, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 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, 1095, 1102, 1103, 1107, 1108, 1112, 1113, 1117, 1118, 1119, 1128, 1144, 1156, 1157, 1158, 1167, 1168, 1172, 1173, 1177, 1182, 1187, 1191, 1201, 1211, 1219, 1223, 1227, 1232, 1236, 1284, 1286, 1290, 1294, 1298, 1302, 1316, 1335, 1344, 1356, 1357, 1361, 1370, 1379, 1388, 1410, 1418, 1426, 1434, 1442, 1450, 1468, 1487, 1499, 1500, 1511, 1522, 1533, 1549, 1568, 1575, 1583, 1584, 1585, 1586, 1587, 1588, 1602, 1609, 1616, 1626, 1635, 1644, 1648, 1657, 1666, 1674, 1685, 1686, 1695, 1707, 1715, 1724, 1732, 1744, 1753, 1761, 1770, 1778, 1786, 1796, 1807, 1808, 1812, 1813, 1816, 1818, 1820, 1824, 1825, 1826, 1827, 1831, 1832, 1833, 1839, 1851, 1855, 1859, 1863, 1880, 1888, 1889, 1890, 1894, 1895, 1896, 1900, 1901, 1905, 1909, 1910, 1918, 1926, 1937, 1945, 1956, 1957, 1962, 1963, 1968, 1975, 1982, 1989, 1996, 2007, 2018, 2019, 2023, 2024, 2032, 2048, 2055, 2062, 2069, 2076, 2096, 2106, 2116, 2126, 2136, 2148, 2160, 2170, 2180, 2190, 2202, 2214, 2224, 2234, 2244, 2254, 2264, 2274, 2286, 2298, 2308, 2321, 2322, 2327, 2341, 2354, 2370, 2387, 2397, 2407, 2417, 2427, 2437, 2446, 2455, 2464, 2474, 2484, 2500, 2510, 2520, 2530, 2540, 2557, 2567, 2577, 2587, 2598, 2612, 2628, 2638, 2647, 2663, 2672, 2683, 2694, 2702, 2711, 2720, 2728, 2736, 2745, 2754, 2763, 2771, 2779, 2788, 2796, 2804, 2813, 2822, 2831, 2840, 2849, 2858, 2869, 2877, 2886, 2895, 2904, 2913, 2922, 2931, 2939, 2947, 2955, 2962, 2973, 2974, 2978, 2987, 2991, 2992, 2996, 3004, 3012, 3020, 3031, 3034, 3035, 3039, 3040, 3045, 3049, 3053, 3058, 3065, 3067, 3072, 3076, 3080, 3091, 3099, 3152, 3165, 3179, 3191, 3198, 3202, 3216, 3229, 3230, 3235, 3245, 3256, 3267, 3294, 3301, 3335, 3371, 3394, 3395, 3399, 3400, 3409, 3410, 3411, 3414, 3415, 3420, 3421, 3425, 3429, 3433, 3437, 3441, 3445, 3449, 3453, 3457, 3461, 3465, 3469, 3473, 3482, 3486, 3490, 3494, 3498, 3499, 3504, 3508, 3515, 3522, 3523, 3524, 3525, 3526, 3530, 3534, 3542, 3553, 3573, 3593, 3614, 3635, 3656, 3690, 3691, 3692, 3693, 3694, 3701, 3708, 3709, 3713, 3714, 3718, 3719, 3723, 3727, 3734, 3738, 3745, 3746, 3747, 3751, 3752, 3755, 3779, 3798, 3820, 3821, 3825, 3826, 3830, 3831, 3835, 3836, 3840, 3841, 3845, 3853, 3854, 3855, 3887, 3895, 3903, 3916, 3928, 3941, 3951, 3961, 3985, 4005, 4006, 4007, 4011, 4012, 4031, 4039, 4047, 4055, 4067, 4079, 4080, 4081, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4103, 4111, 4115, 4129, 4147, 4163, 4180, 4196, 4216, 4239, 4240, 4244, 4245, 4249, 4250, 4253, 4259, 4260, 4263, 4267, 4275, 4280, 4286, 4287, 4291, 4296, 4303, 4304, 4308, 4318, 4328, 4336, 4345, 4358, 4370, 4377, 4385, 4393, 4401, 4409, 4419, 4420, 4424, 4425, 4428, 4440, 4441, 4444, 4455, 4466, 4480, 4481, 4486, 4487, 4488, 4491, 4492, 4493, 4494, 4497, 4498, 4501, 4502, 4505, 4525, 4538, 4560, 4561, 4564, 4570, 4576, 4593, 4602, 4624, 4638, 4655, 4671, 4672, 4673, 4685, 4699, 4716, 4730, 4731, 4743, 4764, 4775, 4789, 4798, 4810, 4811, 4814, 4815, 4818, 4819, 4822, 4826, 4830, 4834, 4838, 4842, 4846, 4850, 4854, 4858, 4862, 4867, 4871, 4875, 4881, 4882, 4886, 4887, 4888, 4895, 4898, 4899, 4911, 4927, 4943, 4944, 4952, 4953, 4957, 4958, 4962, 4963, 4967, 4968, 4972, 4973, 4983, 4995, 4996, 5009, 5017, 5035, 5044, 5056, 5059, 5063, 5067, 5071, 5078, 5090, 5101, 5104, 5108, 5121, 5131, 5141, 5151, 5161, 5171, 5181, 5191, 5201, 5211, 5221, 5231, 5241, 5260, 5272, 5273, 5274, 5275, 5279, 5280, 5284, 5285, 5295, 5304, 5317, 5318, 5322, 5326, 5334, 5338, 5342, 5349, 5353, 5358, 5363, 5370, 5377, 5382, 5392, 5405, 5421, 5422, 5427, 5428, 5432, 5433, 5443, 5453, 5462, 5480, 5501, 5522, 5544, 5578, 5594, 5595, 5599, 5608, 5623, 5633, 5646, 5647, 5659, 5668, 5686, 5711, 5729, 5744, 5745, 5749, 5750, 5754, 5755, 5759, 5760, 5764, 5778, 5782, 5783, 5787, 5788, 5789, 5790, 5791, 5801, 5813, 5814, 5825, 5848, 5880, 5881, 5882, 5886, 5888, 5910, 5912, 5914, 5916, 5918, 5923, 5924, 5928, 5929, 5933, 5945, 5946, 5950, 5959, 5963, 5967, 5972, 5982, 5983, 5987, 5988, 5992, 5993, 5997, 5998, 6002, 6003, 6004, 6008, 6012, 6013, 6014, 6018, 6019, 6024, 6025, 6052, 6053, 6054, 6055, 6056, 6057, 6070, 6081, 6096, 6098, 6103, 6108, 6110, 6115, 6126, 6127, 6128, 6129, 6140, 6159, 6171, 6184, 6195, 6206, 6218, 6227, 6235, 6243, 6253, 6263, 6273, 6283, 6293, 6304, 6314, 6327, 6330, 6331, 6334, 6338, 6345, 6346, 6347, 6348, 6349, 6350, 6353, 6356, 6357, 6365, 6372, 6373, 6376, 6378, 6389, 6401, 6413, 6425, 6439, 6440, 6456, 6472, 6473, 6477, 6490, 6501, 6510, 6520, 6530, 6531, 6534, 6535, 6538, 6539, 6540, 6543, 6557, 6562, 6573, 6583, 6596, 6597, 6601, 6610, 6623, 6634, 6648, 6659, 6682, 6693, 6712, 6723, 6734, 6745, 6756, 6767, 6778, 6789, 6800, 6811, 6822, 6833, 6848, 6849, 6850, 6851, 6852, 6853, 6854, 6855, 6856, 6857, 6858, 6859, 6860, 6870, 6871, 6872, 6873, 6874, 6878, 6879, 6880, 6881, 6882, 6883, 6884, 6885, 6890, 6891, 6892, 6896, 6897, 6900, 6901, 6904, 6906, 6911, 6912, 6923, 6935, 6936, 6937, 6947, 6956, 6965, 6974, 6983, 6992, 7001, 7010, 7019, 7028, 7042, 7051, 7060, 7069, 7078, 7087, 7096, 7105, 7117, 7118, 7132, 7143, 7154, 7165, 7176, 7187, 7198, 7209, 7220, 7231, 7244, 7245, 7248, 7249, 7259, 7266, 7275, 7284, 7293, 7302, 7311, 7320, 7329, 7338, 7347, 7356, 7365, 7374, 7383, 7392, 7401, 7410, 7421, 7422, 7425, 7426, 7436, 7454, 7470, 7498, 7500, 7502, 7504, 7512, 7522, 7523, 7526, 7534, 7542, 7550, 7557, 7568, 7572, 7579, 7583, 7594, 7603, 7612, 7621, 7630, 7639, 7648, 7657, 7666, 7675, 7684, 7693, 7702, 7710, 7719, 7728, 7737, 7746, 7755, 7764, 7773, 7786, 7787, 7791, 7792, 7797, 7798, 7808, 7819, 7833, 7845, 7863, 7864, 7868, 7875, 7876, 7877, 7880, 7881, 7891, 7902, 7903, 7907, 7911, 7915, 7926, 7940, 7955, 7973, 7974, 7975, 7976, 7977, 7978, 7990, 8022, 8057, 8058, 8062, 8063, 8066, 8067, 8072, 8084, 8103, 8108, 8113, 8120, 8121, 8124, 8125, 8128, 8129, 8133, 8134, 8135, 8138, 8139, 8140, 8156, 8170, 8185, 8199, 8216, 8217, 8220, 8221, 8225, 8226, 8230, 8231, 8236, 8250, 8258, 8266, 8282, 8283, 8287, 8288, 8303, 8313, 8323, 8333, 8343, 8356, 8357, 8358, 8359, 8360, 8366, 8370, 8385, 8386, 8392, 8402, 8406, 8411, 8419, 8461, 8465, 8469, 8473, 8481, 8482, 8486, 8498, 8499, 8504, 8505, 8510, 8511, 8518, 8522, 8526, 8530, 8534, 8538, 8542, 8546, 8550, 8554, 8558, 8562, 8566, 8570, 8574, 8578, 8583, 8590, 8594, 8598, 8602, 8606, 8612, 8613, 8619, 8629, 8633, 8644, 8650, 8659, 8665, 8666, 8670, 8671, 8675, 8676, 8679, 8692, 8696, 8711, 8720, 8729, 8742, 8743, 8748, 8749, 8766, 8777, 8788, 8799, 8810, 8821, 8835, 8846, 8860, 8871, 8885, 8893, 8895, 8897, 8902, 8904, 8909, 8910, 8915, 8934, 8944, 8945, 8949, 8953, 8965, 8977, 8989, 9003, 9004, 9005, 9009, 9022, 9023, 9033, 9046, 9050, 9054, 9058, 9065, 9087, 9100, 9113, 9128, 9129, 9132, 9133, 9136, 9137, 9147, 9157, 9175, 9185, 9195, 9205, 9215, 9225, 9235, 9245, 9255, 9265, 9275, 9285, 9295, 9306, 9317, 9327, 9337, 9347, 9357, 9367, 9377, 9388, 9399, 9410, 9421, 9432, 9443, 9454, 9465, 9476, 9487, 9498, 9509, 9521, 9533, 9545, 9557, 9569, 9581, 9592, 9603, 9615, 9627, 9638, 9649, 9658, 9668, 9678, 9688, 9698, 9708, 9718, 9728, 9738, 9748, 9763, 9764, 9767, 9768, 9778, 9788, 9798, 9808, 9819, 9829, 9841, 9842, 9852, 9862, 9872, 9882, 9892, 9902, 9912, 9922, 9932, 9942, 9952, 9962, 9972, 9982, 9992, 10002, 10012, 10022, 10032, 10042, 10052, 10062, 10072, 10082, 10092, 10102, 10112, 10131, 10141, 10142, 10145, 10147, 10153, 10154, 10155, 10156, 10157, 10169, 10185, 10194, 10203, 10212, 10221, 10230, 10239, 10248, 10257, 10266, 10275, 10284, 10293, 10302, 10311, 10320, 10329, 10338, 10347, 10356, 10365, 10374, 10383, 10392, 10420, 10428, 10437, 10463, 10472, 10479, 10485, 10512, 10523, 10532, 10540, 10542, 10564, 10572, 10582, 10592, 10611, 10630, 10640, 10650, 10660, 10671, 10682, 10693, 10704, 10715, 10733, 10742, 10759, 10777, 10778, 10779, 10784, 10790, 10799, 10800, 10801, 10802, 10803, 10807, 10808, 10811, 10812, 10813, 10814, 10818, 10819, 10820, 10832, 10843, 10844, 10847, 10857, 10864, 10884, 10893, 10901, 10910, 10919, 10927, 10935, 10943, 10951, 10959, 10967, 10975, 10986, 10994, 11005, 11006, 11007, 11011, 11014, 11017, 11020, 11023, 11030, 11032, 11034, 11039, 11041, 11045, 11046, 11047, 11059, 11073, 11087, 11106, 11128, 11129, 11130, 11131, 11141, 11158, 11169, 11170, 11174, 11175, 11179, 11183, 11187, 11205, 11206, 11207, 11208, 11209, 11210, 11211, 11218, 11219, 11230, 11238, 11246, 11255, 11265, 11283, 11292, 11301, 11310, 11322, 11326, 11337, 11349, 11367, 11374, 11391, 11405, 11415, 11424, 11433, 11443, 11455, 11467, 11478, 11479, 11490, 11501, 11513, 11525, 11537, 11549, 11559, 11572, 11573, 11587, 11612, 11624, 11633, 11645, 11659, 11660, 11672, 11693, 11704, 11716, 11728, 11732, 11739, 11740, 11744, 11751, 11752, 11753, 11757, 11758, 11759, 11763, 11764, 11768, 11769, 11772, 11773, 11776, 11777, 11781, 11782, 11786, 11793, 11795, 11800, 11801, 11814, 11822, 11833, 11841, 11852, 11853, 11854, 11855, 11856, 11857, 11858, 11859, 11860, 11861, 11871, 11882, 11883, 11887, 11888, 11889, 11890, 11891, 11901, 11909, 11927, 11947, 11948, 11958, 11965, 11972, 11979, 11996, 12014, 12018, 12026, 12032, 12039, 12045, 12052, 12061, 12062, 12066, 12068, 12073, 12084, 12094, 12104, 12110, 12119, 12128, 12134, 12135, 12146, 12161, 12162, 12173, 12184, 12185, 12188, 12189, 12190, 12191, 12192, 12193, 12194, 12195, 12198, 12199, 12203, 12204, 12205, 12216, 12235, 12236, 12240, 12245, 12269, 12280, 12281, 12293, 12311, 12312, 12316, 12323, 12330, 12337, 12347, 12360, 12361, 12365, 12378, 12391, 12400, 12409, 12418, 12427, 12439, 12451, 12463, 12466, 12467, 12468, 12469, 12470, 12471, 12474, 12475, 12476, 12524, 12525, 12529, 12530, 12545, 12546, 12553, 12561, 12569, 12577, 12585, 12593, 12604, 12605, 12637, 12653, 12670, 12671, 12690, 12694, 12698, 12713, 12720, 12727, 12737, 12738, 12741, 12757, 12758, 12759, 12763, 12773, 12784, 12790, 12802, 12815, 12821, 12822, 12826, 12838, 12846, 12851, 12856, 12861, 12866, 12874, 12882, 12887, 12892, 12899, 12900, 12904, 12905, 12906, 12913, 12914, 12918, 12919, 12923, 12924, 12928, 12929, 12933, 12937, 12938, 12941, 12950, 12963, 12968, 12973, 12977, 12989, 12990, 12994, 13003, 13019, 13028, 13037, 13046, 13058, 13061, 13066, 13067, 13075, 13095, 13096, 13098, 13103, 13104, 13108, 13109, 13112, 13113, 13138, 13147, 13157, 13158, 13162, 13163, 13164, 13165, 13166, 13170, 13183, 13190, 13197, 13204, 13205, 13209, 13210, 13214, 13215, 13219, 13220, 13224, 13236, 13237, 13238, 13239, 13243, 13244, 13254, 13261, 13280, 13281, 13285, 13286, 13292, 13297, 13306, 13314, 13323, 13330, 13338, 13347, 13356, 13360, 13386, 13390, 13404, 13425, 13447, 13460, 13477, 13483, 13488, 13494, 13501, 13502, 13512, 13518, 13526, 13530, 13534, 13541, 13549, 13554, 13555, 13556, 13557, 13561, 13562, 13577, 13581, 13589, 13596, 13603, 13610, 13617, 13628, 13629, 13642, 13646, 13654, 13668, 13682, 13683, 13698, 13709, 13722, 13727, 13728, 13731, 13732, 13735, 13736, 13741, 13742, 13747, 13748, 13757, 13762, 13763, 13767, 13771, 13777, 13802, 13813, 13827, 13828, 13832, 13846, 13903, 13917, 13919, 13924, 13926, 13928, 13930, 13935, 13937, 13942, 13950, 13970, 13975, 13982, 13987, 13993, 13998, 14007, 14009, 14012, 14016, 14017, 14018, 14019, 14020, 14021, 14026, 14046, 14047, 14048, 14049, 14060, 14066, 14074, 14075, 14081, 14086, 14091, 14096, 14101, 14106, 14111, 14116, 14122, 14128, 14134, 14141, 14163, 14172, 14176, 14184, 14188, 14196, 14208, 14229, 14233, 14239, 14243, 14256, 14264, 14274, 14276, 14278, 14280, 14282, 14284, 14289, 14290, 14297, 14306, 14314, 14323, 14334, 14342, 14343, 14344, 14348, 14350, 14352, 14354, 14356, 14358, 14360, 14365, 14370, 14376, 14384, 14389, 14396, 14403, 14407, 14411, 14447, 14448, 14450, 14459, 14475, 14477, 14479, 14481, 14483, 14485, 14487, 14489, 14491, 14493, 14495, 14497, 14499, 14501, 14504, 14506, 14509, 14511, 14513, 14515, 14518, 14523, 14532, 14537, 14546, 14551, 14560, 14565, 14575, 14584, 14593, 14602, 14621, 14630, 14639, 14648, 14657, 14674, 14683, 14692, 14701, 14710, 14719, 14728, 14732, 14736, 14744, 14752, 14760, 14768, 14789, 14812, 14824, 14831, 14847, 14852, 14858, 14865, 14872, 14880, 14888, 14906, 14926, 14952, 14954, 14956, 14958, 14960, 14962, 14964, 14966, 14968, 14970, 14972, 14974, 14976, 14978, 14980, 14982, 14984, 14986, 14988, 14992, 14996, 15001, 15017, 15018, 15019, 15036, 15049, 15051, 15053, 15065, 15090, 15102, 15114, 15122, 15133, 15144, 15154, 15160, 15169, 15179, 15189, 15202, 15212, 15243, 15279, 15289, 15300, 15301, 15302, 15309, 15316, 15320, 15324, 15328, 15332, 15336, 15340, 15344, 15348, 15352, 15356, 15360, 15364, 15371, 15375, 15379, 15383, 15385, 15392, 15399, 15406, 15413, 15424, 15438, 15448, 15459, 15475, 15485, 15492, 15499, 15506, 15510, 15518, 15527, 15536, 15540, 15544, 15548, 15552, 15556, 15565, 15569, 15579, 15583, 15587, 15592, 15603, 15609, 15623, 15634, 15648, 15664, 15681, 15683, 15687, 15689, 15691, 15694, 15697, 15700, 15701, 15704, 15712, 15722, 15723, 15726, 15727, 15728, 15731, 15732, 15733, 15738, 15742, 15746, 15750, 15757, 15758, 15766, 15767, 15771, 15772, 15780, 15781, 15785, 15786, 15791, 15800, 15802, 15817, 15820, 15848, 15849, 15852, 15853, 15861, 15869, 15877, 15886, 15896, 15914, 15960, 15969, 15978, 15987, 15996, 16008, 16009, 16010, 16011, 16012, 16026, 16027, 16028, 16031, 16032, 16035, 16038, 16039, 16040, 16043, 16044, 16047, 16048, 16049, 16050, 16051, 16052, 16053, 16054, 16055, 16056, 16057, 16058, 16061, 16063, 16068, 16070, 16075, 16077, 16079, 16081, 16083, 16085, 16097, 16101, 16108, 16112, 16118, 16122, 16132, 16144, 16145, 16148, 16149, 16152, 16156, 16160, 16166, 16167, 16172, 16176, 16186, 16187, 16188, 16189, 16190, 16191, 16192, 16193, 16197, 16198, 16199, 16200, 16205, 16210, 16219, 16240, 16244, 16249, 16260, 16277, 16283, 16284, 16285, 16288, 16296, 16306, 16321, 16322, 16326, 16338, 16339, 16342, 16343, 16346, 16350, 16357, 16361, 16365, 16374, 16386, 16387, 16391, 16392, 16396, 16397, 16400, 16401, 16406, 16415, 16420, 16426, 16427, 16431, 16440, 16444, 16445, 16446, 16447, 16448, 16453, 16454, 16455, 16456, 16457, 16461, 16463, 16473, 16476, 16482, 16483, 16484, 16488, 16489, 16490, 16494, 16495, 16499, 16517, 16537, 16538, 16547, 16548, 16552, 16553, 16556, 16564, 16572, 16580, 16603, 16604, 16615, 16619, 16625, 16627, 16632, 16634, 16636, 16646, 16648, 16659, 16663, 16667, 16671, 16675, 16684, 16692, 16724, 16731, 16763, 16767, 16774, 16782, 16786, 16792, 16799, 16803, 16807, 16813, 16814, 16816, 16817, 16818, 16822, 16863, 16891, 16895, 16899, 16905, 16907, 16921, 16957, 16970, 16971, 16974, 16975, 16992, 16993, 16994, 16999, 17000, 17001, 17006, 17007, 17008, 17009, 17015, 17016, 17017, 17018, 17019, 17025, 17026, 17046, 17047, 17048, 17049, 17050, 17051, 17052, 17053, 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061, 17062, 17063, 17064, 17065, 17066, 17067, 17068, 17069, 17070, 17071, 17072, 17073, 17074, 17075, 17076, 17077, 17078, 17079, 17080, 17081, 17082, 17083, 17084, 17085, 17086, 17087, 17088, 17089, 17090, 17091, 17092, 17093, 17094, 17095, 17096, 17097, 17098, 17099, 17100, 17101, 17102, 17103, 17104, 17105, 17106, 17107, 17108, 17109, 17110, 17111, 17112, 17113, 17114, 17115, 17116, 17117, 17118, 17119, 17120, 17121, 17122, 17123, 17124, 17125, 17126, 17127, 17128, 17129, 17130, 17131, 17132, 17133, 17134, 17135, 17136, 17137, 17138, 17139, 17140, 17141, 17142, 17143, 17144, 17145, 17146, 17147, 17148, 17149, 17150, 17151, 17152, 17153, 17154, 17155, 17156, 17157, 17158, 17159, 17160, 17161, 17162, 17163, 17164, 17165, 17166, 17167, 17168, 17169, 17170, 17171, 17172, 17173, 17174, 17175, 17176, 17177, 17178, 17179, 17180, 17181, 17182, 17183, 17184, 17185, 17186, 17187, 17188, 17189, 17190, 17191, 17192, 17193, 17194, 17195, 17196, 17197, 17198, 17199, 17200, 17201, 17202, 17203, 17204, 17205, 17206, 17207, 17208, 17209, 17210, 17211, 17212, 17213, 17214, 17215, 17216, 17217, 17218, 17219, 17220, 17221, 17222, 17223, 17224, 17225, 17226, 17227, 17228, 17229, 17230, 17231, 17232, 17233, 17234, 17235, 17236, 17237, 17238, 17239, 17240, 17241, 17242, 17243, 17244, 17245, 17246, 17247, 17248, 17249, 17250, 17251, 17252, 17253, 17254, 17255, 17256, 17257, 17258, 17259, 17260, 17261, 17262, 17263, 17264, 17265, 17266, 17267, 17268, 17269, 17270, 17271, 17272, 17273, 17274, 17275, 17276, 17277, 17278, 17279, 17280, 17281, 17282, 17283, 17284, 17285, 17286, 17287, 17288, 17289, 17290, 17291, 17292, 17293, 17294, 17295, 17296, 17297, 17298, 17299, 17300, 17301, 17302, 17303, 17304, 17305, 17306, 17307, 17308, 17309, 17310, 17311, 17312, 17313, 17314, 17315, 17316, 17317, 17318, 17319, 17320, 17321, 17322, 17323, 17324, 17325, 17326, 17327, 17328, 17329, 17330, 17331, 17332, 17333, 17334, 17335, 17336, 17337, 17338, 17339, 17340, 17341, 17342, 17343, 17344, 17345, 17346, 17347, 17348, 17349, 17350, 17351, 17352, 17353, 17354, 17355, 17356, 17357, 17358, 17359, 17360, 17374, 17375, 17376, 17377, 17378, 17379, 17380, 17381, 17382, 17383, 17384, 17385, 17386, 17387, 17388, 17389, 17390, 17391, 17392, 17393, 17394, 17395, 17396, 17397, 17398, 17399, 17400, 17401, 17402, 17403, 17404, 17405, 17406, 17407, 17408, 17409, 17410, 17411, 17412, 17413, 17414, 17415, 17416, 17417, 17418, 17419, 17420, 17421, 17422, 17423, 17424, 17425, 17426, 17427, 17428, 17442, 17443, 17444, 17445, 17446, 17447, 17448, 17449, 17450, 17451, 17452, 17453, 17454, 17455, 17456, 17457, 17458, 17459, 17460, 17461, 17462, 17463, 17464, 17474, 17475, 17476, 17477, 17478, 17479, 17480, 17481, 17482, 17483, 17484, 17485, 17486, 17487, 17488, 17489, 17490, 17491, 17492, 17493, 17494, 17495, 17496, 17497, 17498, 17499, 17500, 17501, 17502, 17503, 17504, 17505, 17506, 17507, 17508, 17509, 17510, 17511, 17512, 17513, 17514, 17515, 17516, 17517, 17518, 17519, 17520, 17521, 17522, 17523, 17524, 17525, 17526, 17527, 17528, 17529, 17530, 17531, 17532, 17533, 17534, 17535, 17536, 17537, 17538, 17539, 17540, 17541, 17542, 17543, 17544, 17545, 17546, 17547, 17548, 17549, 17550, 17551, 17564, 17565, 17566, 17567, 17568, 17569, 17570, 17571, 17572, 17573, 17574, 17575, 17576, 17577, 17578, 17579, 17580, 17581, 17582, 17583, 17584, 17585, 17586, 17587, 17588, 17589, 17590, 17591, 17592, 17593, 17594, 17595, 17596, 17597, 17598, 17599, 17600, 17601, 17602, 17603, 17604, 17605, 17606, 17607, 17608, 17609, 17610, 17611, 17612, 17613, 17614, 17615, 17616, 17617, 17618, 17619, 17620, 17621, 17622, 17623, 17624, 17625, 17626, 17627, 17628, 17629, 17630, 17631, 17632, 17633, 17634, 17635, 17636, 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, 17964, 17965, 17966, 17967, 17968, 17969, 17970, 17971, 17972, 17973, 17974, 17975, 17976, 17977, 17978, 17979, 17980, 17981, 17982, 17983, 17984, 17985, 17986, 17987, 17988, 17989, 17990, 17991, 17992, 17993, 17994, 17995 }; #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", "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", "ENABLE_P", "ENCODING", "ENCRYPTED", "END_P", "ENUM_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_OBJECT", "JSON_OBJECTAGG", "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", "METHOD", "MINUTE_P", "MINVALUE", "MODE", "MONTH_P", "MOVE", "NAME_P", "NAMES", "NATIONAL", "NATURAL", "NCHAR", "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", "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", "PLACING", "PLANS", "POLICY", "POSITION", "PRECEDING", "PRECISION", "PRESERVE", "PREPARE", "PREPARED", "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PROCEDURES", "PROGRAM", "PUBLICATION", "QUOTE", "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", "SQL_P", "STABLE", "STANDALONE_P", "START", "STATEMENT", "STATISTICS", "STDIN", "STDOUT", "STORAGE", "STORED", "STRICT_P", "STRIP_P", "SUBSCRIPTION", "SUBSTRING", "SUPPORT", "SYMMETRIC", "SYSID", "SYSTEM_P", "SYSTEM_USER", "TABLE", "TABLES", "TABLESAMPLE", "TABLESPACE", "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", "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", "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", "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", "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", "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", "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_value_expr", "json_format_clause_opt", "json_encoding_clause_opt", "json_output_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, 60, 62, 61, 43, 45, 42, 47, 37, 94, 758, 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, 521, 522, 522, 522, 522, 522, 522, 523, 523, 524, 524, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 526, 526, 527, 527, 528, 528, 529, 529, 529, 530, 531, 532, 532, 532, 533, 533, 534, 534, 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, 536, 536, 536, 536, 536, 536, 537, 538, 538, 539, 539, 540, 540, 540, 540, 541, 541, 541, 541, 541, 541, 542, 543, 544, 544, 545, 545, 545, 545, 546, 546, 547, 547, 547, 547, 547, 547, 548, 548, 548, 549, 549, 549, 550, 550, 550, 550, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 552, 552, 553, 553, 554, 554, 554, 555, 555, 555, 555, 556, 556, 556, 556, 557, 557, 557, 557, 557, 557, 557, 557, 558, 558, 558, 559, 559, 560, 561, 561, 561, 561, 562, 562, 563, 563, 564, 564, 565, 565, 565, 565, 565, 566, 567, 567, 568, 568, 569, 570, 570, 570, 570, 570, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 572, 572, 573, 573, 573, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 577, 577, 578, 578, 579, 579, 579, 579, 580, 581, 581, 582, 582, 583, 583, 583, 583, 584, 584, 585, 585, 585, 585, 586, 586, 586, 586, 587, 588, 588, 589, 590, 590, 591, 591, 591, 591, 592, 592, 593, 593, 594, 594, 595, 595, 596, 596, 596, 597, 597, 598, 598, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 600, 600, 601, 601, 602, 602, 603, 603, 604, 605, 605, 605, 605, 605, 606, 606, 607, 608, 608, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 609, 610, 610, 611, 611, 612, 612, 613, 613, 614, 614, 614, 615, 615, 616, 617, 617, 618, 618, 619, 619, 620, 620, 621, 621, 622, 622, 623, 623, 623, 623, 624, 624, 624, 624, 624, 624, 624, 624, 624, 625, 625, 625, 626, 626, 627, 627, 627, 627, 628, 629, 629, 629, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 631, 631, 632, 632, 632, 632, 632, 632, 632, 633, 633, 634, 634, 635, 635, 636, 637, 637, 638, 638, 638, 638, 639, 639, 640, 640, 641, 641, 642, 642, 642, 642, 642, 643, 644, 645, 645, 645, 645, 645, 646, 646, 647, 647, 648, 649, 649, 650, 650, 650, 651, 651, 652, 652, 652, 653, 653, 653, 653, 654, 654, 655, 655, 656, 657, 657, 658, 658, 659, 659, 659, 660, 660, 661, 661, 662, 663, 663, 663, 664, 664, 665, 666, 666, 667, 668, 668, 669, 669, 670, 670, 671, 671, 672, 672, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 674, 674, 675, 675, 675, 675, 676, 676, 677, 677, 678, 678, 679, 679, 680, 680, 681, 681, 682, 682, 683, 683, 684, 685, 685, 686, 686, 687, 687, 688, 688, 689, 689, 689, 689, 690, 691, 691, 692, 693, 693, 693, 693, 693, 693, 693, 693, 693, 693, 693, 693, 693, 694, 695, 695, 695, 695, 696, 696, 697, 697, 698, 698, 699, 699, 700, 700, 701, 702, 702, 703, 703, 703, 703, 704, 705, 706, 707, 707, 708, 708, 709, 709, 710, 710, 711, 711, 711, 712, 712, 712, 712, 713, 714, 714, 715, 715, 716, 716, 717, 717, 718, 718, 719, 720, 721, 722, 722, 723, 723, 724, 724, 725, 725, 726, 726, 727, 727, 728, 728, 728, 728, 728, 729, 730, 730, 731, 731, 732, 732, 732, 733, 733, 734, 734, 734, 734, 734, 735, 735, 736, 736, 737, 738, 738, 739, 739, 740, 741, 741, 742, 742, 743, 743, 744, 744, 745, 745, 746, 746, 746, 747, 747, 747, 747, 748, 748, 749, 749, 750, 750, 750, 750, 750, 750, 751, 751, 752, 752, 753, 754, 754, 755, 756, 756, 756, 756, 757, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 759, 760, 760, 761, 761, 762, 762, 762, 762, 762, 762, 763, 764, 764, 765, 766, 766, 767, 767, 768, 768, 768, 768, 769, 769, 770, 771, 771, 772, 772, 772, 772, 772, 773, 773, 774, 774, 775, 775, 775, 776, 776, 777, 778, 778, 779, 779, 780, 780, 781, 781, 782, 782, 783, 784, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 787, 787, 787, 787, 787, 788, 788, 788, 788, 788, 788, 788, 788, 789, 789, 789, 790, 790, 791, 791, 792, 792, 793, 793, 794, 795, 795, 795, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 797, 797, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 799, 799, 800, 800, 801, 801, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 803, 803, 804, 804, 805, 806, 806, 807, 807, 807, 807, 807, 808, 808, 809, 809, 809, 809, 809, 810, 810, 811, 811, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 813, 813, 814, 814, 815, 815, 816, 816, 817, 817, 818, 818, 819, 820, 820, 820, 821, 821, 822, 823, 823, 824, 824, 824, 825, 825, 825, 826, 826, 826, 826, 826, 826, 827, 827, 828, 828, 829, 829, 830, 830, 831, 831, 832, 832, 832, 833, 833, 834, 834, 835, 835, 836, 836, 836, 837, 837, 837, 838, 838, 838, 838, 839, 839, 840, 840, 841, 841, 842, 842, 843, 843, 843, 843, 844, 844, 845, 845, 846, 846, 846, 846, 846, 847, 847, 847, 847, 847, 848, 849, 850, 850, 850, 851, 851, 851, 852, 853, 853, 853, 853, 854, 854, 855, 856, 856, 857, 857, 858, 858, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 860, 860, 860, 860, 860, 861, 861, 862, 863, 863, 863, 864, 864, 865, 865, 866, 866, 867, 867, 868, 869, 869, 870, 870, 870, 871, 871, 872, 872, 873, 873, 873, 873, 873, 873, 874, 874, 875, 875, 876, 876, 876, 876, 877, 877, 878, 878, 879, 880, 881, 881, 882, 882, 883, 883, 883, 884, 884, 884, 885, 886, 886, 887, 888, 888, 888, 888, 889, 890, 890, 890, 891, 891, 892, 892, 893, 893, 894, 894, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 896, 896, 897, 897, 898, 898, 898, 898, 898, 898, 899, 899, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 901, 902, 902, 903, 903, 904, 904, 904, 904, 904, 905, 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 907, 907, 907, 908, 908, 908, 908, 908, 908, 908, 909, 909, 910, 910, 910, 910, 911, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 913, 914, 915, 915, 915, 916, 916, 917, 917, 917, 917, 917, 918, 918, 919, 919, 919, 919, 920, 920, 920, 921, 922, 922, 923, 924, 924, 925, 925, 925, 925, 925, 925, 925, 925, 925, 925, 925, 925, 926, 926, 927, 927, 927, 928, 928, 928, 928, 928, 929, 929, 929, 930, 930, 931, 931, 931, 932, 932, 932, 932, 933, 933, 933, 933, 934, 935, 936, 936, 937, 937, 938, 938, 938, 939, 939, 939, 939, 939, 939, 939, 940, 940, 941, 941, 941, 941, 942, 943, 943, 943, 943, 944, 944, 945, 946, 947, 947, 948, 949, 949, 949, 949, 949, 949, 949, 950, 950, 951, 952, 952, 952, 952, 952, 952, 953, 953, 954, 955, 955, 955, 955, 956, 956, 957, 957, 958, 958, 959, 959, 960, 960, 961, 962, 962, 962, 963, 963, 963, 964, 964, 965, 965, 966, 966, 967, 967, 968, 968, 969, 970, 970, 971, 971, 972, 972, 972, 972, 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 974, 975, 975, 976, 976, 976, 976, 976, 977, 977, 977, 978, 978, 979, 979, 979, 979, 980, 981, 981, 982, 982, 982, 982, 982, 983, 983, 984, 984, 985, 986, 986, 986, 987, 987, 987, 988, 988, 989, 990, 990, 991, 992, 992, 993, 993, 993, 993, 993, 993, 993, 993, 994, 994, 995, 995, 995, 996, 997, 997, 998, 998, 999, 1000, 1000, 1001, 1002, 1002, 1003, 1003, 1003, 1003, 1003, 1004, 1004, 1005, 1006, 1007, 1007, 1007, 1007, 1007, 1008, 1009, 1010, 1011, 1011, 1011, 1011, 1011, 1011, 1012, 1012, 1012, 1013, 1013, 1014, 1014, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1016, 1016, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1018, 1018, 1018, 1019, 1019, 1020, 1021, 1021, 1021, 1022, 1022, 1022, 1023, 1023, 1023, 1024, 1024, 1025, 1025, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1027, 1027, 1028, 1028, 1028, 1029, 1029, 1030, 1030, 1031, 1031, 1032, 1032, 1033, 1034, 1034, 1035, 1035, 1036, 1036, 1036, 1036, 1037, 1037, 1038, 1038, 1038, 1038, 1038, 1038, 1039, 1039, 1040, 1040, 1041, 1042, 1042, 1042, 1043, 1043, 1044, 1044, 1045, 1045, 1046, 1046, 1047, 1047, 1048, 1048, 1048, 1048, 1048, 1049, 1050, 1051, 1052, 1053, 1053, 1054, 1054, 1055, 1055, 1056, 1056, 1057, 1058, 1058, 1058, 1058, 1059, 1059, 1060, 1060, 1061, 1061, 1062, 1062, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1064, 1064, 1064, 1064, 1064, 1064, 1065, 1065, 1065, 1065, 1066, 1066, 1067, 1067, 1068, 1068, 1068, 1068, 1068, 1069, 1069, 1069, 1069, 1070, 1070, 1071, 1071, 1072, 1072, 1073, 1073, 1073, 1074, 1074, 1075, 1075, 1075, 1076, 1077, 1077, 1078, 1078, 1079, 1080, 1080, 1081, 1081, 1082, 1082, 1083, 1083, 1084, 1084, 1084, 1085, 1085, 1086, 1086, 1087, 1088, 1088, 1089, 1089, 1090, 1090, 1090, 1091, 1091, 1092, 1092, 1092, 1092, 1093, 1093, 1094, 1094, 1095, 1095, 1095, 1095, 1095, 1095, 1096, 1096, 1096, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1098, 1098, 1098, 1098, 1099, 1099, 1100, 1100, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1102, 1102, 1103, 1103, 1104, 1104, 1105, 1106, 1107, 1107, 1108, 1108, 1109, 1110, 1111, 1111, 1111, 1111, 1111, 1111, 1112, 1112, 1113, 1113, 1113, 1113, 1114, 1115, 1115, 1115, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1117, 1117, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1122, 1122, 1122, 1123, 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1125, 1125, 1126, 1126, 1126, 1126, 1127, 1128, 1128, 1129, 1129, 1130, 1130, 1131, 1131, 1131, 1132, 1132, 1132, 1133, 1133, 1133, 1133, 1134, 1134, 1135, 1135, 1136, 1136, 1137, 1137, 1138, 1138, 1139, 1140, 1140, 1140, 1141, 1142, 1142, 1143, 1143, 1144, 1144, 1144, 1144, 1145, 1145, 1146, 1146, 1146, 1146, 1146, 1147, 1147, 1147, 1147, 1147, 1148, 1148, 1148, 1149, 1149, 1150, 1151, 1151, 1151, 1152, 1152, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1154, 1154, 1155, 1155, 1156, 1156, 1156, 1156, 1156, 1156, 1157, 1157, 1158, 1158, 1159, 1159, 1159, 1160, 1160, 1161, 1161, 1162, 1162, 1162, 1163, 1163, 1164, 1164, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1166, 1166, 1166, 1166, 1167, 1167, 1168, 1169, 1169, 1169, 1169, 1169, 1170, 1170, 1170, 1171, 1171, 1172, 1173, 1173, 1174, 1175, 1175, 1176, 1176, 1177, 1177, 1178, 1178, 1178, 1178, 1179, 1179, 1180, 1180, 1181, 1181, 1182, 1182, 1183, 1184, 1184, 1185, 1185, 1186, 1186, 1187, 1187, 1187, 1187, 1187, 1188, 1188, 1188, 1188, 1188, 1189, 1189, 1190, 1190, 1191, 1191, 1191, 1192, 1192, 1192, 1193, 1193, 1194, 1194, 1195, 1195, 1196, 1196, 1197, 1197, 1198, 1198, 1198, 1198, 1199, 1199, 1200, 1200, 1201, 1201, 1202, 1203, 1204, 1205, 1205, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1207, 1208, 1209, 1209, 1209, 1210, 1211, 1211, 1211, 1211, 1212, 1212, 1213, 1214, 1215, 1215, 1216, 1216, 1217, 1217, 1217, 1218, 1218, 1218, 1219, 1219, 1219, 1219, 1220, 1220, 1220, 1220, 1220, 1221, 1221, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226 }; /* 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, 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, 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, 3, 2, 1, 0, 3, 0, 1, 0, 1, 3, 2, 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, 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, 2, 2, 2, 2, 3, 3, 3, 1, 3, 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, 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, 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, 4, 6, 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, 9, 1, 2, 5, 5, 6, 6, 7, 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, 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, 1, 3, 3, 2, 2, 3, 5, 6, 2, 3, 3, 4, 0, 1, 1, 1, 1, 1, 2, 4, 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, 3, 3, 5, 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, 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, 3, 0, 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 }; /* 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[] = { 1707, 1451, 659, 1539, 1538, 1451, 0, 276, 0, 1550, 0, 1451, 437, 1109, 0, 0, 0, 0, 659, 1451, 0, 1707, 0, 0, 0, 0, 0, 1720, 0, 0, 0, 0, 0, 1249, 0, 0, 0, 1451, 0, 0, 1727, 0, 0, 0, 0, 1720, 0, 1552, 0, 0, 0, 0, 1727, 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, 1550, 102, 115, 101, 84, 108, 87, 112, 130, 113, 85, 126, 1671, 1670, 1731, 1674, 1706, 0, 1686, 1450, 1449, 1464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1461, 2377, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2410, 2409, 2411, 2412, 2764, 2413, 2414, 2415, 2709, 2710, 2765, 2711, 2712, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2713, 2714, 2425, 2426, 2427, 2428, 2429, 2715, 2766, 2430, 2431, 2432, 2433, 2434, 2435, 2767, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2768, 2445, 2446, 2447, 2769, 2448, 2449, 2450, 2451, 2452, 2453, 2716, 2717, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2718, 2482, 2483, 2484, 2485, 2719, 2486, 2487, 2488, 2489, 2720, 2490, 2491, 2492, 2493, 2770, 2771, 2494, 2495, 2496, 2497, 2498, 2721, 2722, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2772, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2773, 2723, 2519, 2520, 2521, 2522, 2724, 2725, 2726, 2523, 2774, 2775, 2524, 2776, 2525, 2727, 2728, 2729, 2730, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2731, 2777, 2533, 2778, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2732, 2779, 2733, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2734, 2735, 2562, 2563, 2564, 2780, 2565, 2736, 2566, 2737, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2738, 2781, 2577, 2782, 2739, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2740, 2590, 2741, 2593, 2591, 2592, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2742, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2783, 2623, 2624, 2625, 2626, 2627, 2743, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2744, 2645, 2646, 2784, 2647, 2648, 2745, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2746, 2663, 2664, 2665, 2666, 2785, 2667, 2668, 2669, 2670, 2671, 2672, 2747, 2748, 2673, 2674, 2749, 2675, 2750, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2751, 2752, 2694, 2786, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2706, 2707, 2708, 146, 0, 0, 2339, 2378, 2379, 2382, 2377, 409, 408, 1660, 2336, 2378, 1549, 0, 1528, 659, 0, 1464, 436, 1707, 0, 0, 0, 0, 0, 0, 875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, 140, 0, 0, 460, 459, 0, 0, 1081, 465, 0, 0, 0, 0, 0, 649, 1591, 2591, 1589, 1661, 277, 280, 281, 278, 279, 2360, 0, 1221, 1222, 1224, 0, 0, 1234, 915, 916, 0, 0, 0, 929, 0, 0, 0, 913, 0, 0, 0, 935, 0, 932, 0, 0, 936, 933, 910, 934, 917, 0, 909, 0, 0, 1234, 937, 0, 0, 911, 0, 0, 0, 0, 1464, 1588, 466, 1707, 0, 1572, 1573, 1574, 1550, 1562, 1575, 1567, 1569, 1568, 1570, 1571, 1566, 2359, 2396, 1005, 1005, 1005, 1005, 1002, 1003, 1005, 1005, 1005, 2611, 0, 0, 984, 0, 986, 2361, 1005, 1010, 2404, 541, 541, 541, 0, 1009, 1014, 541, 0, 1432, 1473, 2338, 1719, 0, 985, 1431, 2673, 1578, 0, 0, 0, 0, 2630, 1441, 261, 2642, 2747, 2673, 260, 255, 256, 227, 0, 0, 1009, 541, 0, 1464, 1439, 981, 1726, 1724, 0, 2323, 2423, 2439, 2536, 252, 2623, 2632, 2642, 2747, 2673, 2705, 203, 213, 208, 0, 270, 2642, 2747, 2673, 266, 1461, 0, 1687, 1835, 1834, 2332, 0, 1434, 1433, 1551, 0, 1554, 0, 2606, 1691, 1694, 1556, 1692, 2380, 1910, 1939, 1917, 1939, 1939, 1906, 1906, 2469, 1919, 1907, 1908, 1944, 0, 1939, 1906, 1911, 0, 1909, 1947, 1947, 1934, 3, 1891, 1892, 1893, 1894, 1920, 1921, 1895, 1926, 1927, 1931, 1896, 1961, 1906, 2381, 1728, 1729, 2323, 4, 2374, 5, 2285, 2373, 6, 7, 1683, 0, 0, 1, 1707, 0, 1561, 1723, 1723, 0, 1723, 0, 1675, 1683, 1678, 1682, 0, 0, 0, 0, 0, 0, 1435, 0, 0, 0, 940, 0, 1476, 1066, 0, 0, 0, 0, 0, 1318, 0, 1118, 1117, 2383, 2366, 2367, 2368, 0, 2364, 2365, 2384, 2385, 2386, 0, 2505, 1318, 0, 0, 2200, 2211, 2212, 2213, 2427, 2486, 2208, 2209, 2210, 2202, 2203, 2204, 2205, 2206, 2207, 0, 0, 1216, 2201, 0, 2505, 0, 1318, 0, 175, 0, 150, 1318, 0, 0, 2505, 0, 0, 2505, 0, 0, 0, 0, 0, 2505, 0, 0, 0, 0, 0, 175, 2541, 0, 150, 2505, 0, 0, 1455, 0, 0, 0, 1457, 1460, 1447, 0, 2282, 0, 2283, 2340, 1543, 0, 1542, 1536, 1546, 1541, 1531, 0, 2332, 0, 0, 0, 0, 923, 0, 0, 913, 0, 0, 0, 924, 0, 925, 926, 0, 0, 0, 0, 922, 0, 1445, 1437, 0, 1580, 1582, 1581, 1583, 1579, 541, 0, 0, 0, 2505, 0, 150, 1515, 0, 2505, 150, 0, 0, 464, 463, 150, 2364, 462, 461, 2427, 2486, 0, 1108, 0, 1191, 150, 2505, 0, 196, 2505, 718, 2505, 1556, 139, 0, 662, 0, 830, 2541, 150, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, 648, 659, 1592, 1590, 0, 1225, 254, 253, 1223, 927, 2505, 1150, 145, 0, 0, 2505, 1496, 2505, 145, 944, 928, 0, 914, 2505, 145, 1114, 2505, 2369, 185, 0, 912, 2427, 2486, 2505, 145, 1218, 0, 2505, 145, 2505, 181, 2505, 145, 2505, 145, 2505, 663, 0, 0, 2505, 145, 2505, 2541, 183, 931, 2505, 145, 938, 2505, 145, 2334, 2505, 0, 1448, 0, 1584, 0, 1564, 2751, 0, 1707, 1005, 1004, 0, 1005, 0, 1005, 0, 1005, 0, 1005, 0, 0, 0, 1005, 2362, 2363, 987, 0, 1011, 0, 1019, 0, 1018, 1017, 1016, 0, 0, 0, 1020, 0, 1839, 1619, 0, 1429, 1444, 0, 0, 0, 142, 0, 1247, 1244, 142, 1246, 1245, 142, 142, 1440, 259, 257, 0, 0, 0, 0, 0, 0, 1446, 0, 1438, 0, 0, 0, 2342, 2344, 2345, 2214, 2285, 0, 2710, 2711, 2712, 2274, 0, 2713, 2714, 2715, 2766, 2095, 2081, 2090, 2096, 2082, 2084, 2091, 2716, 2717, 2030, 2718, 2719, 2357, 2720, 2721, 2722, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2086, 2088, 2732, 2733, 2735, 0, 2358, 2736, 2737, 2572, 2739, 2740, 2742, 2743, 2092, 2745, 2746, 2093, 2747, 2748, 2749, 2750, 2356, 508, 2094, 2752, 2754, 2755, 2756, 2757, 2759, 2760, 2761, 2762, 0, 0, 0, 2329, 0, 2059, 0, 1899, 1900, 1922, 1923, 1901, 1928, 1929, 1902, 0, 2328, 1964, 2159, 2058, 2076, 0, 2064, 2065, 0, 2057, 2053, 2161, 1709, 2324, 0, 2054, 2341, 2343, 2275, 1709, 2322, 216, 272, 0, 273, 2330, 2642, 204, 251, 219, 250, 221, 220, 218, 217, 0, 2425, 205, 0, 0, 206, 0, 0, 0, 0, 269, 267, 0, 1436, 0, 1837, 1836, 2333, 949, 0, 1553, 1550, 2224, 0, 1693, 0, 0, 0, 1938, 1925, 1933, 1932, 0, 1915, 1914, 1913, 0, 1912, 1939, 1939, 1937, 1916, 1891, 0, 0, 0, 1943, 0, 1941, 1887, 1883, 0, 1950, 1951, 1952, 1949, 1962, 1948, 0, 1897, 1953, 0, 1906, 1903, 1794, 0, 1673, 1672, 8, 0, 1558, 1560, 1534, 1556, 1721, 1722, 0, 0, 0, 0, 0, 0, 0, 0, 1781, 1739, 1740, 1742, 1778, 1782, 1790, 0, 1679, 0, 0, 0, 1841, 0, 0, 1462, 0, 0, 0, 0, 0, 1149, 0, 0, 0, 0, 941, 0, 0, 0, 1482, 0, 1484, 1485, 1486, 0, 0, 0, 1487, 1488, 1476, 263, 1495, 1492, 1475, 1477, 1490, 0, 0, 0, 0, 0, 0, 0, 1507, 0, 189, 190, 0, 675, 659, 0, 2505, 0, 0, 0, 0, 1159, 1166, 1317, 0, 0, 0, 0, 0, 0, 0, 0, 1160, 1158, 0, 1161, 265, 1171, 1198, 1201, 0, 0, 1116, 1119, 0, 0, 0, 0, 0, 1308, 0, 0, 0, 1308, 0, 0, 0, 1317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 288, 290, 303, 368, 0, 640, 0, 0, 0, 643, 0, 2505, 1318, 0, 0, 0, 1220, 0, 0, 0, 0, 0, 0, 0, 0, 1201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 149, 154, 0, 0, 0, 0, 1201, 0, 0, 0, 0, 0, 0, 0, 626, 639, 0, 0, 0, 0, 0, 636, 0, 0, 150, 293, 616, 622, 0, 0, 0, 725, 724, 0, 0, 0, 0, 0, 0, 1405, 0, 1404, 0, 0, 0, 0, 0, 1505, 1504, 0, 0, 0, 0, 0, 0, 1308, 0, 282, 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 401, 402, 0, 0, 0, 154, 0, 0, 1308, 0, 295, 0, 0, 1456, 1453, 1454, 0, 1459, 0, 0, 0, 0, 2067, 0, 2228, 1731, 2226, 2339, 2281, 0, 2387, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2278, 2277, 2337, 2388, 2389, 2390, 2391, 2284, 0, 0, 239, 240, 238, 1544, 241, 1545, 1540, 0, 1526, 0, 0, 0, 0, 0, 0, 0, 0, 2427, 2486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 838, 1476, 1514, 0, 0, 0, 668, 0, 2505, 0, 152, 876, 0, 828, 465, 0, 0, 0, 0, 1381, 152, 0, 0, 192, 0, 0, 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 829, 0, 0, 152, 0, 2505, 619, 2505, 0, 541, 541, 0, 0, 141, 138, 0, 0, 0, 0, 0, 0, 0, 0, 1665, 1664, 1667, 1666, 0, 1663, 0, 143, 144, 0, 1208, 1233, 0, 0, 0, 0, 0, 905, 930, 0, 0, 1202, 0, 0, 2505, 145, 2505, 0, 2505, 0, 0, 0, 1210, 145, 0, 1204, 0, 0, 1206, 0, 1407, 0, 921, 919, 918, 920, 0, 0, 903, 0, 0, 0, 0, 0, 898, 0, 0, 900, 0, 0, 0, 0, 1707, 1563, 0, 995, 0, 999, 0, 990, 0, 996, 0, 991, 988, 989, 0, 994, 0, 0, 542, 544, 0, 0, 2451, 2468, 0, 2494, 2529, 2530, 2582, 2597, 2626, 2632, 2638, 0, 2667, 2678, 0, 1025, 1063, 1015, 734, 0, 0, 1629, 1430, 2233, 0, 1707, 0, 0, 1248, 0, 0, 138, 258, 228, 0, 0, 1063, 0, 2630, 1443, 980, 659, 0, 2055, 0, 2062, 2063, 2273, 0, 0, 0, 0, 0, 0, 2061, 0, 0, 0, 2295, 0, 2295, 0, 0, 0, 0, 0, 1986, 0, 0, 2232, 0, 0, 2232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1987, 1968, 1969, 2059, 2224, 0, 2060, 2353, 2350, 1961, 0, 1961, 2392, 2214, 0, 2211, 2212, 2213, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 0, 2882, 2883, 2884, 2885, 2886, 2888, 2887, 2889, 2890, 2891, 2892, 2893, 2894, 2288, 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, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 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, 2001, 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, 2003, 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, 3144, 3142, 3143, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 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, 3202, 3201, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 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, 3262, 3263, 3264, 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, 0, 2208, 2209, 2210, 2202, 2203, 2204, 2205, 2206, 2207, 2218, 0, 0, 2327, 2393, 0, 2161, 0, 1983, 0, 2169, 0, 0, 1794, 2348, 0, 2346, 2276, 1794, 274, 275, 271, 0, 0, 223, 224, 222, 0, 244, 243, 248, 249, 215, 247, 0, 242, 226, 2145, 2144, 225, 214, 233, 211, 209, 229, 231, 232, 212, 210, 268, 0, 0, 0, 145, 1561, 1548, 0, 0, 2288, 0, 2222, 0, 0, 2220, 0, 0, 0, 1791, 0, 1695, 0, 1699, 0, 0, 0, 1936, 1935, 1888, 1884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 942, 0, 1904, 0, 1857, 2375, 2376, 2286, 1727, 1561, 0, 1557, 1690, 1689, 1732, 1733, 1100, 1688, 1761, 1762, 0, 0, 0, 0, 1787, 1785, 1752, 1743, 1751, 0, 0, 1749, 0, 1753, 1964, 1780, 1677, 1737, 1738, 1741, 1676, 0, 1783, 0, 1632, 1781, 1742, 1616, 0, 1594, 0, 0, 1842, 0, 0, 1463, 0, 0, 0, 1129, 1131, 0, 1130, 0, 1133, 0, 1142, 0, 0, 1128, 1147, 0, 1136, 1134, 0, 1503, 0, 0, 0, 0, 0, 1483, 0, 0, 0, 2667, 262, 1486, 1491, 1478, 1489, 0, 0, 0, 0, 0, 1065, 1064, 0, 0, 1084, 0, 0, 508, 1510, 530, 0, 370, 0, 0, 0, 0, 0, 0, 0, 0, 824, 821, 0, 0, 820, 0, 673, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 698, 0, 1308, 0, 301, 0, 1168, 0, 1167, 0, 1172, 0, 0, 1169, 1164, 1165, 2632, 2642, 2673, 264, 1170, 1200, 0, 1199, 1195, 0, 1111, 0, 1112, 0, 0, 0, 0, 0, 2478, 2505, 309, 332, 0, 1307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 354, 0, 0, 357, 356, 0, 0, 0, 0, 0, 362, 0, 340, 0, 341, 0, 361, 0, 0, 0, 641, 642, 0, 0, 0, 1308, 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, 1217, 0, 751, 0, 0, 2632, 1196, 0, 1390, 0, 2666, 1391, 1394, 541, 0, 541, 1396, 0, 0, 1393, 1395, 0, 0, 178, 0, 173, 177, 0, 0, 2632, 1197, 0, 0, 0, 0, 0, 624, 625, 638, 0, 629, 630, 627, 631, 632, 0, 0, 0, 0, 0, 0, 0, 623, 0, 0, 720, 719, 723, 0, 0, 0, 0, 0, 0, 1399, 0, 0, 1191, 0, 0, 1398, 1406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1251, 1250, 0, 0, 0, 0, 1318, 0, 866, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 738, 0, 737, 0, 174, 179, 0, 0, 0, 0, 0, 0, 0, 0, 237, 1452, 1458, 1731, 1731, 1731, 2073, 0, 0, 0, 0, 1730, 2279, 2282, 1531, 1537, 1530, 1529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 412, 413, 415, 0, 0, 0, 0, 840, 0, 843, 846, 1474, 492, 0, 0, 665, 698, 0, 0, 468, 187, 0, 0, 0, 0, 753, 0, 1191, 1190, 147, 138, 196, 466, 0, 195, 197, 199, 200, 201, 198, 202, 0, 717, 721, 0, 0, 0, 0, 661, 0, 0, 0, 0, 0, 0, 0, 1862, 0, 0, 172, 0, 0, 614, 618, 0, 0, 0, 0, 468, 580, 381, 2505, 0, 541, 0, 2505, 0, 137, 0, 827, 0, 0, 0, 1153, 1153, 0, 0, 767, 766, 0, 0, 0, 0, 0, 0, 1662, 145, 1151, 0, 1497, 0, 145, 945, 145, 1115, 186, 2370, 0, 907, 0, 0, 0, 0, 145, 1219, 895, 145, 182, 145, 145, 664, 0, 145, 184, 0, 0, 145, 939, 145, 2335, 0, 145, 1587, 2505, 541, 1565, 992, 1001, 1000, 998, 997, 993, 0, 1012, 0, 540, 0, 0, 0, 0, 0, 1033, 1034, 0, 0, 1030, 1035, 0, 1037, 1021, 1023, 1031, 1032, 1038, 1027, 1026, 1039, 1040, 0, 0, 0, 1052, 732, 0, 0, 0, 0, 1626, 0, 1624, 0, 1840, 1628, 1617, 1577, 0, 1576, 0, 607, 1242, 1241, 1243, 0, 1009, 0, 145, 0, 1442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2237, 0, 2238, 0, 0, 2272, 2268, 0, 0, 0, 0, 0, 2242, 0, 2245, 2246, 2247, 2244, 2248, 2243, 0, 0, 2249, 0, 0, 0, 2059, 2291, 2291, 2316, 0, 2315, 2321, 2228, 1964, 0, 0, 2312, 2306, 0, 2312, 0, 0, 0, 0, 0, 0, 2228, 2231, 0, 0, 2743, 0, 0, 0, 0, 2031, 0, 0, 2195, 0, 2228, 0, 0, 0, 0, 0, 0, 0, 2224, 2264, 0, 506, 0, 2021, 0, 0, 0, 2143, 0, 2140, 0, 0, 0, 0, 2285, 0, 2354, 0, 2351, 1965, 1979, 1980, 1981, 1984, 2326, 0, 2287, 0, 0, 1966, 1992, 0, 2265, 2017, 0, 2022, 2007, 2296, 2250, 2251, 2252, 2253, 2024, 0, 2000, 2005, 2009, 0, 2305, 1988, 0, 1985, 0, 2288, 2223, 0, 2221, 0, 1976, 1977, 1978, 1970, 1971, 1972, 1973, 1974, 1975, 1982, 2199, 2197, 2198, 0, 0, 2169, 0, 0, 2004, 0, 0, 2075, 2497, 2536, 0, 1720, 1720, 1720, 1708, 1718, 2325, 1857, 1731, 1857, 2331, 0, 0, 1961, 0, 1838, 947, 948, 946, 1533, 1547, 1561, 2225, 1555, 1697, 0, 0, 0, 1905, 1918, 0, 1945, 1946, 1947, 1947, 0, 1889, 0, 1930, 1955, 1956, 1957, 1958, 1959, 1960, 0, 1954, 1898, 943, 0, 2628, 2763, 0, 1818, 1793, 1795, 1805, 1818, 1825, 1818, 2077, 1855, 2078, 2079, 2332, 0, 1764, 2372, 1535, 1559, 0, 1098, 1099, 0, 1103, 2743, 2628, 0, 0, 0, 0, 1754, 1788, 0, 1779, 0, 2342, 1755, 2341, 1756, 1759, 1760, 1750, 1789, 1630, 0, 1784, 1681, 1680, 0, 1860, 0, 0, 0, 1608, 1596, 0, 0, 1843, 0, 1794, 1634, 0, 2285, 1792, 1357, 1252, 1319, 1132, 0, 1906, 1143, 0, 1127, 0, 1126, 1906, 0, 1144, 0, 1906, 1358, 1253, 1320, 1359, 1254, 1321, 1360, 1494, 1255, 1493, 1481, 1480, 1479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 805, 2505, 145, 1508, 1361, 0, 1256, 369, 1509, 1322, 1513, 823, 822, 0, 0, 1323, 0, 674, 679, 0, 681, 682, 2427, 2486, 683, 686, 687, 0, 689, 678, 677, 0, 0, 0, 0, 0, 695, 700, 0, 0, 0, 0, 0, 0, 1162, 1163, 1362, 1259, 0, 1324, 0, 1110, 0, 1260, 188, 0, 0, 289, 2505, 311, 0, 490, 805, 0, 1310, 308, 338, 0, 353, 348, 349, 347, 2505, 145, 2505, 145, 0, 0, 0, 0, 0, 350, 345, 346, 342, 0, 0, 355, 2399, 2470, 2643, 0, 706, 708, 0, 713, 358, 1280, 377, 376, 375, 0, 363, 0, 382, 385, 0, 360, 339, 337, 334, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1212, 0, 1365, 1325, 0, 1347, 0, 0, 0, 0, 745, 1368, 1266, 1328, 0, 541, 0, 0, 556, 556, 541, 1379, 1267, 176, 1297, 165, 0, 0, 161, 0, 0, 0, 0, 153, 1369, 1268, 1329, 0, 0, 1370, 1269, 0, 0, 294, 617, 628, 633, 1274, 637, 634, 1337, 635, 1377, 1270, 0, 1373, 1300, 1332, 600, 1191, 1191, 1380, 1400, 1271, 1191, 0, 1308, 0, 283, 285, 0, 142, 0, 1272, 0, 1330, 1372, 1299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1516, 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, 1310, 2505, 145, 1371, 0, 1305, 0, 1345, 0, 0, 403, 0, 1298, 1308, 0, 296, 1276, 0, 1339, 0, 0, 235, 234, 236, 0, 0, 0, 0, 2229, 2230, 0, 2227, 2068, 2281, 0, 1527, 969, 955, 968, 0, 951, 2468, 0, 954, 956, 0, 0, 0, 957, 961, 962, 0, 953, 950, 952, 0, 414, 0, 0, 762, 763, 0, 0, 0, 0, 842, 0, 0, 1506, 0, 150, 672, 0, 0, 0, 667, 697, 702, 0, 0, 0, 0, 467, 471, 475, 476, 477, 0, 0, 0, 0, 166, 151, 0, 884, 0, 541, 0, 755, 1191, 1383, 0, 196, 191, 0, 0, 718, 0, 1556, 0, 0, 595, 598, 597, 0, 381, 837, 835, 834, 836, 858, 833, 0, 1861, 1863, 0, 0, 0, 0, 0, 0, 607, 470, 0, 0, 544, 0, 583, 0, 0, 0, 0, 580, 0, 0, 0, 2380, 0, 854, 826, 0, 1121, 0, 1139, 1122, 0, 0, 0, 0, 1176, 1183, 1152, 1177, 1154, 1183, 0, 0, 768, 772, 771, 775, 773, 0, 769, 646, 1668, 1669, 0, 1209, 0, 0, 1502, 0, 1500, 906, 1203, 145, 0, 145, 0, 145, 1211, 1205, 1207, 1408, 0, 904, 0, 0, 897, 899, 0, 901, 0, 1013, 543, 0, 0, 0, 0, 0, 0, 1029, 644, 1036, 0, 0, 0, 1051, 1046, 1048, 0, 1063, 1057, 0, 731, 0, 0, 1627, 1620, 1622, 1621, 0, 0, 1618, 2234, 896, 0, 613, 0, 1063, 1054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1725, 2235, 2236, 0, 0, 0, 2269, 0, 0, 2112, 0, 2083, 2085, 0, 2098, 0, 2113, 2066, 2291, 0, 2295, 2289, 2132, 0, 0, 0, 2295, 0, 2315, 0, 0, 2127, 2129, 0, 0, 0, 2305, 2305, 2114, 2087, 2089, 2099, 0, 0, 2215, 0, 2102, 2101, 0, 2033, 2034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2048, 2103, 2194, 0, 0, 0, 2105, 2104, 0, 0, 2263, 0, 0, 0, 2110, 507, 2115, 0, 0, 0, 0, 2121, 0, 2151, 0, 0, 0, 2056, 2225, 0, 0, 0, 0, 0, 0, 0, 2298, 2299, 2300, 2297, 0, 2023, 2008, 2026, 2002, 2006, 2010, 0, 2305, 2025, 0, 0, 2028, 0, 0, 1996, 0, 0, 1994, 2018, 1990, 0, 0, 2019, 0, 2074, 0, 0, 0, 2172, 2167, 2168, 1720, 1720, 1720, 1720, 1717, 0, 0, 0, 1764, 0, 1764, 207, 0, 245, 230, 1532, 1698, 1707, 1924, 0, 1942, 1940, 1885, 1890, 1963, 1818, 1825, 1818, 0, 0, 1683, 0, 1805, 0, 1817, 1803, 1816, 0, 0, 1831, 1829, 0, 1831, 0, 1831, 0, 1797, 0, 1821, 1799, 1816, 1801, 0, 1847, 2333, 1856, 0, 1777, 1734, 0, 2216, 1103, 0, 1736, 1758, 1757, 0, 1747, 0, 1786, 1744, 1631, 1615, 0, 1613, 1600, 1602, 1601, 0, 0, 1603, 2285, 0, 1613, 1595, 0, 1639, 0, 0, 1860, 0, 1638, 0, 1906, 1124, 1125, 0, 1148, 0, 1068, 1069, 0, 1067, 0, 0, 0, 529, 1083, 0, 0, 0, 805, 0, 0, 533, 0, 1511, 0, 1378, 1296, 676, 0, 0, 0, 0, 691, 650, 692, 694, 0, 0, 693, 696, 699, 1308, 0, 302, 1282, 0, 1343, 1156, 0, 0, 1113, 0, 0, 0, 0, 0, 0, 489, 486, 333, 0, 0, 0, 0, 390, 0, 313, 325, 388, 331, 0, 365, 0, 336, 0, 329, 351, 343, 352, 344, 364, 366, 0, 710, 711, 709, 705, 0, 712, 714, 0, 379, 0, 0, 0, 359, 0, 1364, 0, 1308, 0, 298, 1278, 0, 1341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1346, 0, 0, 0, 0, 750, 0, 747, 0, 556, 0, 1392, 0, 1389, 1387, 556, 0, 0, 156, 157, 155, 0, 164, 0, 0, 0, 0, 0, 0, 1401, 1402, 1403, 0, 0, 0, 0, 0, 0, 397, 0, 305, 307, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 404, 372, 0, 861, 0, 0, 0, 406, 0, 0, 1356, 0, 0, 0, 0, 0, 1363, 1261, 2071, 2072, 2069, 1731, 2280, 0, 0, 0, 966, 0, 0, 0, 0, 417, 418, 150, 416, 439, 0, 805, 0, 0, 839, 844, 852, 2572, 2202, 2203, 850, 845, 847, 849, 851, 848, 0, 0, 0, 0, 511, 0, 0, 0, 498, 0, 0, 508, 491, 494, 495, 0, 0, 668, 671, 669, 670, 0, 690, 0, 470, 518, 570, 0, 168, 0, 0, 169, 167, 0, 0, 381, 752, 0, 749, 1382, 0, 194, 0, 722, 0, 0, 0, 0, 0, 1191, 660, 0, 857, 859, 831, 0, 702, 0, 0, 619, 0, 541, 1588, 602, 0, 572, 470, 570, 579, 0, 0, 587, 380, 0, 0, 607, 381, 0, 0, 1084, 0, 853, 0, 0, 1120, 0, 0, 0, 1173, 1178, 1174, 0, 1153, 1135, 0, 1175, 0, 0, 1181, 1106, 1155, 1107, 1424, 1425, 1422, 1423, 0, 0, 0, 0, 0, 0, 1659, 0, 0, 1498, 0, 908, 0, 891, 0, 893, 145, 739, 0, 145, 0, 0, 0, 0, 0, 0, 1028, 0, 1022, 1024, 1049, 0, 0, 1063, 1062, 0, 1053, 1061, 1059, 1060, 1058, 0, 0, 1625, 1623, 605, 0, 0, 145, 1063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2239, 0, 2271, 2267, 0, 2080, 2241, 2240, 2294, 2293, 0, 0, 0, 2317, 0, 0, 2295, 2309, 2308, 0, 0, 2307, 2295, 2295, 0, 0, 0, 2195, 0, 0, 2032, 2044, 2045, 2046, 2256, 0, 2051, 0, 2041, 2042, 2043, 2035, 2036, 2037, 2038, 2039, 2040, 2047, 2260, 2259, 0, 0, 2107, 2108, 2109, 2262, 2116, 0, 2417, 2152, 0, 2120, 2142, 2141, 0, 0, 0, 2123, 0, 0, 2138, 0, 2196, 2355, 2352, 1967, 0, 0, 1993, 2266, 2011, 0, 2027, 2029, 2302, 2304, 1989, 2215, 0, 0, 0, 0, 0, 1998, 0, 0, 2192, 0, 0, 0, 2174, 2171, 0, 0, 0, 0, 1711, 1710, 1716, 1777, 2068, 1777, 0, 0, 1886, 1804, 1800, 1802, 0, 2758, 0, 1807, 1814, 0, 1796, 0, 1830, 1826, 0, 1827, 0, 0, 1828, 0, 0, 1798, 0, 1814, 0, 1854, 1723, 0, 2163, 0, 1735, 1101, 1102, 1745, 0, 1748, 2447, 1858, 0, 1614, 0, 0, 0, 1605, 1611, 1593, 0, 0, 0, 1635, 1613, 1636, 1145, 0, 0, 1137, 1074, 1075, 1078, 1076, 1073, 1077, 0, 0, 0, 805, 0, 0, 551, 0, 1097, 1097, 0, 0, 535, 592, 0, 808, 0, 0, 0, 806, 145, 1257, 0, 0, 0, 0, 651, 1376, 1258, 0, 0, 0, 0, 1157, 1311, 0, 0, 1281, 0, 310, 488, 487, 0, 485, 702, 0, 0, 316, 326, 0, 321, 0, 1309, 0, 0, 0, 320, 323, 322, 392, 0, 389, 0, 145, 145, 367, 707, 378, 383, 384, 387, 1316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 885, 868, 0, 0, 886, 887, 0, 0, 0, 1214, 1215, 1213, 1348, 1349, 1354, 1351, 1350, 1353, 1355, 1352, 0, 1264, 0, 0, 743, 1312, 1384, 1386, 1385, 0, 1388, 162, 159, 158, 160, 163, 1313, 1294, 1275, 1338, 601, 0, 0, 0, 1273, 0, 1331, 0, 1290, 1284, 0, 0, 0, 0, 0, 1375, 1304, 1336, 1374, 1302, 1334, 1301, 1333, 1303, 1335, 1295, 0, 0, 1865, 865, 0, 0, 0, 145, 145, 864, 741, 1277, 0, 1340, 1286, 0, 0, 0, 958, 0, 0, 0, 960, 422, 440, 150, 0, 761, 825, 0, 0, 841, 0, 496, 0, 502, 509, 0, 0, 513, 514, 512, 497, 1191, 541, 1191, 794, 795, 0, 0, 815, 0, 666, 0, 0, 468, 0, 515, 0, 0, 472, 171, 170, 0, 0, 0, 756, 760, 758, 757, 759, 754, 0, 745, 196, 2505, 0, 0, 0, 0, 599, 593, 596, 1397, 832, 0, 1864, 735, 0, 381, 615, 0, 0, 0, 468, 607, 0, 473, 478, 479, 492, 0, 580, 571, 0, 572, 581, 582, 0, 589, 1472, 0, 608, 589, 0, 0, 0, 856, 0, 855, 0, 1123, 1140, 1141, 0, 0, 1183, 0, 0, 1185, 1180, 0, 0, 774, 777, 770, 653, 145, 0, 1501, 145, 145, 1240, 0, 902, 1043, 1044, 1045, 1042, 1041, 645, 0, 1047, 1006, 1056, 733, 0, 606, 0, 1007, 145, 983, 975, 982, 971, 974, 976, 0, 978, 979, 973, 970, 972, 2270, 2097, 0, 2290, 2131, 2314, 2313, 2130, 2320, 0, 2311, 2310, 0, 0, 2100, 2111, 0, 2194, 2225, 0, 0, 2052, 0, 0, 0, 2106, 2753, 0, 0, 2156, 2157, 0, 2153, 2154, 2149, 2150, 2122, 0, 2561, 2133, 0, 0, 2148, 2015, 2013, 2012, 2301, 2303, 1997, 0, 0, 1995, 1991, 0, 2020, 2158, 2191, 2225, 2160, 0, 1731, 1715, 1714, 1713, 1712, 2163, 2349, 2347, 2163, 246, 1702, 1850, 0, 1853, 0, 0, 1806, 0, 0, 1808, 0, 0, 1810, 1812, 0, 0, 0, 0, 0, 0, 2336, 0, 1776, 0, 1731, 0, 1746, 0, 1612, 1597, 0, 1598, 1604, 0, 0, 0, 0, 0, 1640, 1633, 1138, 1146, 0, 0, 0, 531, 0, 546, 0, 0, 0, 1090, 140, 1089, 0, 546, 546, 810, 809, 812, 807, 811, 1512, 0, 684, 685, 688, 1283, 0, 1344, 1292, 0, 1629, 312, 484, 483, 492, 319, 0, 0, 0, 314, 391, 393, 315, 318, 372, 335, 328, 0, 0, 0, 1279, 0, 1342, 1288, 1315, 1366, 1262, 1326, 0, 0, 874, 0, 0, 0, 0, 1367, 1263, 1327, 0, 0, 0, 0, 0, 1629, 0, 0, 0, 0, 0, 0, 0, 0, 1521, 0, 0, 371, 863, 862, 372, 405, 1306, 0, 2070, 0, 959, 964, 965, 963, 0, 411, 419, 422, 0, 0, 1231, 1231, 0, 0, 493, 510, 0, 591, 550, 591, 0, 0, 0, 0, 0, 703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 748, 747, 193, 0, 468, 0, 702, 0, 860, 0, 0, 0, 607, 470, 0, 0, 1585, 469, 0, 0, 481, 0, 583, 572, 580, 0, 0, 604, 0, 1465, 0, 610, 0, 0, 0, 804, 1179, 0, 1193, 0, 1134, 1104, 1188, 0, 1707, 1857, 0, 0, 0, 0, 787, 0, 657, 1232, 1499, 892, 894, 740, 1050, 0, 1063, 1055, 977, 2292, 2319, 2128, 2318, 2255, 2196, 2049, 0, 2258, 2257, 2261, 0, 2117, 0, 2118, 2155, 2124, 2134, 0, 2125, 2146, 0, 0, 2016, 2014, 1999, 2193, 0, 2178, 1685, 1684, 0, 1705, 1855, 0, 0, 1849, 0, 0, 1879, 0, 0, 0, 1815, 1833, 0, 1811, 1809, 0, 1822, 0, 1824, 2446, 2722, 2625, 0, 1763, 1765, 1768, 1770, 1769, 1771, 1767, 2162, 2164, 0, 1742, 2217, 1859, 0, 0, 0, 1085, 0, 0, 1641, 1642, 1637, 1051, 0, 145, 1097, 0, 1191, 552, 2572, 553, 1096, 1100, 139, 0, 1191, 1191, 680, 0, 0, 291, 480, 0, 317, 327, 374, 386, 0, 1629, 0, 0, 872, 881, 881, 869, 0, 0, 888, 1265, 744, 0, 555, 0, 286, 1291, 1285, 0, 0, 0, 1523, 1524, 0, 0, 0, 0, 0, 1314, 145, 1287, 967, 0, 442, 449, 423, 427, 1515, 0, 1515, 0, 424, 428, 1515, 1515, 421, 1857, 438, 1231, 0, 1228, 1227, 539, 621, 0, 0, 500, 0, 561, 499, 0, 816, 0, 0, 701, 0, 470, 570, 0, 528, 519, 520, 521, 522, 524, 523, 525, 526, 527, 517, 516, 0, 702, 878, 381, 1472, 742, 0, 0, 715, 0, 702, 0, 1588, 603, 572, 470, 570, 474, 492, 0, 587, 580, 583, 0, 584, 0, 588, 0, 0, 0, 607, 1525, 1084, 0, 0, 805, 1192, 1153, 0, 0, 1182, 1186, 1187, 0, 0, 0, 0, 1235, 781, 782, 776, 778, 0, 789, 793, 652, 0, 0, 656, 647, 702, 145, 0, 2050, 0, 0, 2136, 2135, 2147, 2126, 2173, 0, 0, 0, 0, 0, 0, 0, 1696, 1848, 1851, 0, 1882, 0, 0, 0, 0, 1868, 0, 1813, 0, 0, 1823, 0, 0, 0, 1772, 0, 0, 0, 1781, 0, 1610, 1857, 0, 1607, 0, 1650, 0, 1643, 1070, 0, 1071, 1091, 0, 591, 0, 1103, 1100, 541, 591, 591, 1293, 0, 621, 0, 330, 0, 299, 1289, 0, 0, 883, 883, 0, 0, 0, 0, 0, 0, 399, 0, 0, 1517, 0, 1518, 1519, 1522, 407, 420, 0, 447, 0, 445, 444, 446, 0, 435, 0, 0, 0, 0, 0, 0, 410, 1226, 1230, 1229, 0, 501, 0, 503, 0, 0, 547, 548, 549, 0, 505, 557, 558, 813, 0, 818, 0, 704, 0, 0, 702, 569, 726, 0, 0, 0, 1466, 0, 0, 594, 736, 1472, 607, 580, 0, 572, 482, 0, 589, 583, 587, 585, 586, 0, 1469, 0, 609, 0, 1093, 803, 0, 1183, 1194, 1189, 1184, 1428, 0, 0, 779, 784, 783, 1515, 788, 0, 0, 0, 655, 654, 730, 1008, 2254, 2139, 2119, 2137, 2709, 2447, 2681, 0, 2190, 2179, 2190, 2190, 2170, 0, 0, 0, 0, 0, 1880, 1881, 1866, 0, 0, 1870, 1820, 1846, 0, 0, 0, 1766, 2165, 2166, 2371, 1599, 1609, 1086, 0, 0, 0, 1650, 0, 0, 556, 0, 1087, 1103, 550, 805, 805, 1629, 324, 373, 0, 0, 0, 879, 882, 870, 871, 890, 889, 746, 1629, 0, 395, 394, 0, 398, 0, 443, 452, 0, 450, 425, 430, 0, 434, 432, 431, 426, 429, 538, 0, 0, 0, 0, 0, 0, 559, 0, 560, 0, 817, 0, 0, 0, 728, 877, 0, 0, 468, 702, 1467, 1586, 583, 572, 580, 0, 0, 574, 1097, 1097, 455, 587, 589, 1470, 1471, 0, 0, 508, 0, 1105, 1427, 1426, 1707, 0, 0, 0, 790, 791, 786, 0, 0, 0, 2183, 2182, 2181, 2185, 2184, 0, 2177, 2175, 2176, 0, 0, 0, 1852, 0, 1869, 1872, 0, 0, 0, 1878, 1871, 1873, 0, 1832, 0, 1844, 1774, 0, 1773, 1857, 1649, 0, 0, 145, 545, 805, 554, 1088, 561, 534, 532, 292, 1629, 873, 0, 287, 0, 400, 1520, 448, 0, 433, 620, 504, 590, 566, 0, 565, 0, 563, 562, 814, 819, 0, 702, 867, 1472, 716, 587, 580, 583, 0, 573, 0, 140, 140, 589, 453, 0, 0, 381, 0, 1410, 1707, 1409, 1411, 1419, 1416, 1418, 1417, 1415, 0, 1238, 1239, 780, 785, 0, 0, 0, 0, 2187, 0, 2188, 0, 0, 0, 0, 1875, 1876, 1877, 1874, 1819, 0, 1775, 1606, 1652, 0, 0, 1644, 1645, 0, 1072, 536, 805, 300, 880, 0, 451, 564, 541, 541, 702, 727, 1468, 589, 583, 587, 1097, 575, 577, 576, 457, 1093, 1094, 0, 589, 793, 0, 1420, 1414, 1683, 1670, 0, 0, 792, 0, 2180, 2186, 2189, 0, 0, 0, 0, 0, 0, 1647, 0, 0, 0, 1646, 537, 0, 568, 567, 729, 456, 587, 589, 140, 508, 1092, 0, 1857, 0, 1412, 1707, 0, 0, 798, 1701, 1700, 0, 0, 1704, 0, 1845, 1651, 1648, 0, 0, 0, 0, 1653, 396, 589, 454, 578, 381, 1095, 1079, 0, 1413, 0, 0, 800, 0, 796, 799, 801, 802, 0, 0, 1867, 1657, 0, 0, 0, 458, 589, 0, 0, 0, 764, 0, 1731, 0, 0, 0, 0, 1857, 0, 0, 0, 797, 0, 0, 1654, 1658, 0, 1655, 1080, 798, 1236, 1237, 0, 1703, 0, 0, 0, 765, 1656 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 57, 58, 59, 60, 1086, 1091, 1882, 1901, 61, 62, 1604, 3011, 2865, 3823, 3824, 63, 64, 1600, 65, 66, 67, 68, 1514, 69, 1854, 3025, 70, 2701, 830, 831, 832, 2566, 2567, 2956, 2568, 2555, 1364, 1800, 1536, 804, 805, 1496, 1537, 72, 73, 1358, 2544, 74, 75, 76, 1567, 1661, 1568, 1569, 1508, 4943, 5730, 3613, 2820, 3871, 3614, 3615, 4286, 4287, 4376, 5744, 5745, 77, 1677, 1678, 78, 79, 2993, 3789, 4429, 5325, 5326, 5568, 649, 4966, 4967, 5555, 5556, 5758, 5913, 5914, 3026, 680, 3866, 4513, 3814, 5037, 3815, 5038, 3816, 5039, 4833, 4834, 4276, 4277, 3800, 4460, 4461, 2051, 4979, 4462, 3817, 4998, 5602, 3818, 2720, 5773, 3060, 1973, 1971, 5502, 5581, 4795, 4796, 4349, 5782, 5783, 5784, 6035, 5000, 5043, 5044, 5950, 5951, 3869, 4519, 5050, 5383, 5579, 3511, 81, 3842, 3843, 82, 743, 1876, 3970, 744, 3063, 681, 745, 3027, 87, 3053, 5775, 3054, 1630, 2879, 4442, 3946, 88, 1114, 4251, 5408, 5662, 5663, 734, 89, 1862, 90, 91, 3006, 3807, 92, 2737, 3528, 93, 94, 3547, 3548, 3549, 95, 4470, 5344, 1570, 3602, 3603, 3604, 3605, 4307, 96, 1857, 3034, 3035, 97, 98, 99, 3165, 3166, 100, 2942, 101, 102, 103, 104, 4343, 4899, 5014, 3644, 3830, 4486, 5012, 105, 3793, 3028, 3081, 3904, 3905, 5406, 5654, 5655, 5656, 5833, 6070, 5658, 5835, 5972, 5837, 4989, 6191, 6192, 5639, 4240, 4809, 107, 4990, 4991, 5788, 108, 2735, 109, 110, 1831, 2999, 3000, 4443, 3070, 3879, 3880, 4499, 4500, 111, 3731, 112, 4875, 4876, 682, 5796, 5736, 5899, 113, 114, 4879, 4880, 115, 116, 117, 118, 119, 735, 1048, 1049, 737, 1169, 1170, 3483, 1131, 120, 2576, 121, 3769, 122, 1244, 5103, 123, 769, 1185, 1186, 3029, 125, 779, 3184, 781, 3149, 3150, 1989, 3950, 3951, 4587, 126, 127, 3954, 3955, 4594, 3162, 128, 1501, 2711, 2712, 4790, 3030, 683, 3506, 5490, 5235, 5491, 5961, 6120, 5236, 3427, 4189, 130, 684, 1542, 2776, 1137, 1138, 3074, 3884, 2681, 2682, 1700, 4540, 2684, 3886, 2685, 1475, 2686, 1124, 1125, 3892, 3893, 3894, 3895, 4536, 4546, 4547, 5400, 5647, 4543, 1850, 5394, 5395, 131, 1539, 2773, 132, 133, 134, 1583, 972, 1147, 1148, 135, 696, 697, 136, 5573, 137, 1127, 138, 5404, 139, 140, 1229, 1230, 796, 141, 142, 2790, 4289, 143, 1540, 144, 145, 3638, 3639, 4891, 146, 147, 148, 2851, 2852, 149, 150, 151, 152, 153, 6060, 6123, 6124, 6125, 4554, 5966, 154, 1217, 155, 156, 157, 158, 196, 1013, 1014, 1015, 925, 3031, 5385, 160, 161, 1497, 1498, 1499, 1500, 2706, 162, 163, 164, 3914, 3915, 165, 166, 167, 168, 1834, 169, 170, 5546, 171, 172, 1804, 173, 174, 1022, 1023, 1024, 1025, 1802, 3374, 643, 849, 1391, 1397, 1440, 1441, 1442, 176, 747, 177, 1220, 1053, 748, 1178, 179, 749, 2663, 3457, 4204, 4205, 4206, 4209, 5219, 4767, 750, 3453, 182, 1996, 3171, 3174, 3449, 751, 3463, 3464, 3465, 4213, 752, 5494, 5495, 5880, 6094, 6095, 6145, 6178, 753, 771, 1117, 3085, 754, 1324, 188, 189, 190, 905, 852, 853, 3379, 5451, 5682, 192, 2536, 3357, 788, 1446, 893, 894, 895, 914, 2966, 2629, 2630, 2654, 2655, 1455, 1456, 2642, 2646, 2647, 3440, 3433, 2635, 4183, 5475, 5476, 5477, 5478, 5479, 5480, 4756, 2650, 2651, 1458, 1459, 1460, 2659, 193, 2619, 3407, 3408, 3409, 4160, 4161, 5999, 4175, 4171, 4741, 5196, 3410, 841, 1215, 1467, 4749, 6001, 3411, 5185, 5186, 5455, 4179, 3419, 4200, 3854, 3855, 3856, 3412, 5690, 5691, 5996, 5997, 5457, 5458, 2687, 1420, 879, 1325, 880, 1433, 1326, 1407, 882, 1327, 1328, 1329, 885, 1330, 1331, 1332, 888, 1399, 1333, 1334, 1416, 1429, 1430, 1392, 5459, 1336, 1337, 1338, 3414, 1339, 4684, 5155, 5141, 3279, 3280, 2562, 5441, 4680, 4073, 4674, 2529, 2533, 5208, 5482, 5483, 3350, 4124, 4714, 5174, 5678, 5850, 5851, 5982, 1340, 1341, 1342, 3342, 2523, 975, 1343, 4445, 2525, 3270, 3248, 1703, 3249, 1999, 2021, 3203, 3220, 3221, 3318, 3250, 3258, 3263, 3271, 3304, 1344, 3205, 3206, 3992, 2023, 1345, 1019, 1706, 1020, 1435, 3299, 3229, 4005, 5117, 3230, 3319, 4106, 3237, 3238, 4021, 4011, 3231, 1346, 4013, 1354, 1355, 1348, 1990, 842, 5192, 1173, 1787, 785, 1349, 1350, 1351, 1352, 1576, 946, 1140, 1141, 896, 898, 899, 2623, 639, 631, 948, 3606, 2526, 640, 633, 634, 1792, 2527 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ #define YYPACT_NINF -5456 static const int yypact[] = { 7322, 1367, 21257, -5456, -5456, 1367, 68858, -5456, 78658, 952, 193, 121, 202, 20224, 79148, 88458, 793, 1089, 20847, 1367, 88458, 2334, 59057, 74248, 351, 88458, 1164, 762, 59057, 88458, 88948, 1187, 1182, 1009, 89438, 79638, 72778, 1486, 88458, 1415, 1743, 89928, 80128, 1236, 80618, 762, 54673, 369, 1224, 90418, 88458,112888, 1743, 81108, 81108, 81108, 2066, 1635, 1320, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 1532, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 1931, -5456, 993, 2110, 1607, 239, 1354, -5456, -5456, 1929, 68858, 88458, 88458, 88458, 1749, 88458, 1684, 88458, 846, 68858, 64938, 81598, 1842, 1705, 50639, 90908, -5456, 68858, 88458, 62488, 68858, 88458, 88458, 91398, 88458, 91888, 88458, 1079, 76698, 88458, 1822, 88458, 88458, 62978, 92378, 1946, 1670, 238, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 1700, 1934, -5456, 250, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 59547, 88458, 14407, 1164, 1929, -5456, 2066, 88458, 2008, 88458, 1742, 92868, 88458, -5456, 88458, 1877, 93358, 911, 1963, 64938, 1996, 51148, 1967, 88458, 88458, 64938, 93848, 94338, 94828, 88458, 88458, -5456, -5456, 1975, 88458, -5456, 2171, 65428, 1786, 2181, 2299, 2268, 607, -5456, 82088, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 68368, 1089, -5456, -5456, 2225, 69348, 2306, -5456, -5456, 95318,113364, 2073, -5456, 912, 69838, 65918, 2438, 2070, 51657, 2482, -5456, 70328, -5456, 66408, 70818, -5456, -5456, -5456, -5456, -5456, 95808, -5456, 96298, 2240, 2306, -5456,113840, 66898, -5456, 2319, 96788, 97278, 97768, 1929, 2127, 1775, 2406, 45160, -5456, -5456, -5456, 2186, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 249, 295, 257, 229, 307, -5456, -5456, 241, 243, 248, 249, 2643, 2643, -5456, 88458, -5456, -5456, 295, 751, 2282, 2226, 2226, 2226, 2418, 26, -5456, 2226, 2355, -5456, -5456, -5456, -5456, 80618, -5456, 2231, 1164, 2269, 2739, 2383, 59547, 1388, 88458, -5456, -5456, 2805, 2368, 2699, 2442, -5456, -5456, -5456, 2584, 2634, 220, 749, 1164, 222, -5456, 2765, -5456, 2690, 30574, 30574, 1164, 82578, 98258, 228, 67878, 1959, 83068, 2449, 1377, 2720, -5456, -5456, -5456, 128, -5456, 2946, 2533, 2807, 2442, 1670, 47136, -5456, -5456, 2561, 1934, 80618, -5456, -5456, -5456, 59547, 2866, 33622, 88458, 2539, -5456, 2560, 2539, -5456, -5456, 2583, -5456, 2583, 2583, 2566, 2566, 2748, 2572, -5456, -5456, -5456, 2336, 2583, 2566, -5456,114792, -5456, 1823, 1905, -5456, -5456, 3037, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 2577, -5456, 1058, 1933, -5456, -5456, -5456, 30574, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 2578, 2592, 1607, -5456, 9386, 59547, 88458, 1777, 1777, 3038, 1777, 1728, 1962, -5456, 2302, -5456, 2924, 2894, 2900, 80618, 2594, 1010, -5456, 1744, 2627, 1732, 2631, 1810, 1861, -5456, 236, 88458, 318, 2674, 83558, 6520, 2637, 1934, 2639, -5456, -5456, -5456, -5456, 2783, 1102, -5456, -5456, -5456, -5456, 2959, 3009, 8656, 368, 84048, -5456, -5456, -5456, -5456, 88458, 88458, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 2652, 1573, -5456, -5456, 2654, 3013, 2876, 8377, 1077, 2980, 2830, 1384, 9288, 2890, 1833, 3039, 19715, 1519, 3041, 1831, 1454, 84538, 88458, 3002, 3050, 7852, 1821, 1022, 2911, 1041, 2980, 3046, 2879, 1384, 3062, 5523, 88458, -5456, 2991, 3112, 1109, -5456, 178, -5456, 23523, 33622, 54183, -5456, 1934, -5456, 1751, -5456, -5456, 58567, -5456, 2784, 2939, 91, 68858, 2725, 88458, 88458, -5456,112888, 68858, -5456, 2951, 52166, 68858, -5456, 68858, -5456, -5456, 3073,112888, 88458, 88458, -5456, 88458, -5456, -5456, 2728, -5456, -5456, -5456, -5456, -5456, 2226, 88458, 3175,112888, 2970, 207, 1790, 3216, 88458, 2975, 1790, 2787, 98748, -5456, -5456, 1790, -5456, -5456, -5456, 88458, 88458, 2750, 1438, 2969, 798, 1790, 2985, 3222, 3223, 2992, 2838, 2997, 2560, -5456, 3190, 2973, 1028, 253, 2079, 1790, 2822, 99238, 99728, 88458, 2823, 88458, 3201, 68858, 2857, 68858, 68858, 88458, 3125, 88458, -5456, 2966, -5456, -5456, 981, -5456, -5456, -5456, -5456, -5456, 3144, -5456, 225, 3146, 2788, 3148, 1750, 3149, 327, -5456, -5456, 2831, -5456, 3150, 328, -5456, 3152, -5456, 2790,100218, -5456,100708,101198, 3155, 330, -5456, 64938, 3156, 328, 3157, 2790, 3158, 328, 3159, 270, 3160, -5456, 1327, 3153, 3164, 327, 3169, 2101, 2790, -5456, 3170, 353, -5456, 3172, 379, -5456, 3173, 3033, -5456, 33622, -5456, 2914, -5456, 1224, 1911, 2406, 295, -5456, 88458, 295, 88458, 295, 88458, 295, 88458, 295, 88458, 88458, 88458, 295, -5456, -5456, -5456, 88458, 2817, 88458, -5456, 88458, -5456, -5456, -5456, 75228, 64938, 75718, -5456, 88458, -5456, 129, 1164, -5456, -5456,112888, 3301, 64938, 3201, 1943, -5456, -5456, 3201, -5456, -5456, 3201, 3201, -5456, -5456, -5456, 3100, 88458, 3179, 75228, 64938, 3182, -5456,101688, -5456, 68368, 3057, 2842, -5456, -5456, -5456, -5456, -5456, 1948, 2344, 290, 2458, 33622, 2843, 290, 290, 2845, 3192, -5456, -5456, -5456, 271, 2848, 2849, -5456, 293, 293, -5456, 2850, 2851, -5456, 300, 2856, 2859, 2478, 2485, 303, 2861, 2863, 2864, 2865, 2867, 2868, 2869, 2336, 290, 2871, 33622, -5456, 2873, 293, 2877, 2878, 2880, 2490, 2882, -5456, 2493, 2883, -5456, 313, 325, 2886, 2887, -5456, 3083, -5456, 305, 2893, 2895, 2896, 2899, 2901, 2906, 2909, 2912, 33622, 33622, 33622, -5456, 28029, 1934, 2516, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 308, 50130, -5456, 2908, -5456, -5456, 3082, -5456, -5456, 33622, -5456, -5456, 3238, 168, -5456, 316, -5456, -5456, -5456, 1934, 3188, 2907, -5456, -5456, 1370, 2910, -5456, 2239, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 67388, 3388, -5456, 364, 1164, 178, 374, 3329, 56607, 57097, -5456, -5456, 3193, -5456, 88458, -5456, -5456, 1934, 165, 2026, -5456, 2186, 19614, 2088, 2539, 88458, 88458, 3401, -5456, 2927, -5456, -5456, 33622, -5456, -5456, -5456, 2643, -5456, 2583, 2583, -5456, -5456, 3404, 3018, 3020, 2643, -5456, 2643, -5456, 2935, 2936, 2643, 3022, 3023, 3030, -5456, 2945, 3032, 2643, -5456, -5456, 60528, 2052, -5456, 3286, 349, -5456, -5456, -5456, 2107, -5456, 2944, -5456, 2560, -5456, -5456, 1607, 1607, 33622, 1607, 980, 1401, 31082, 34130, 3294, 3174, 1281, 1590, 3297, -5456, 3178, 1728, 1962, 80618, 88458, 80618,102178, 3085, 33622, -5456, 3403, 3049, 3052, 3109, 55653, -5456, 3055, 3021, 3058, 3114, 2958, 3064, 3065, 3124, -5456, 3241, -5456, -5456, 3072, 3421, 3074,102668, -5456, -5456, 321, -5456, -5456, -5456, 321, -5456, 2999, 1595, 210, 973, 3076, 465, 242, 3413, -5456, 1572, -5456, -5456, 3133, -5456, 13280, 88458, 3353, 5641, 3213, 368, 3132, -5456, -5456, -5456, 3272, 3084, 88458, 3087, 3232, 368, 1355,103158, -5456, -5456, 88458, -5456, -5456, -5456, -5456, 8250, 3391, 26569, -5456, 1882, 3093, 3075, 3105, 88458, 71798, 1886, 3208, 3231, 1824, 2043, 604, 3161, 88458, 2048, 3237, 88458, 3024, 3104, 3113, 3345, 3026, 643, 3455, 3031, -5456, -5456, -5456, 3422, -5456, 2377, 2526, 3242, -5456, 3356, 3405, 7571, 3106, 3107,111460, -5456, 3143, 65, 52675, 88458, 88458, 3145, 3147,103648, 8250, 3433, 76208, 76208, 3151, 3162, 46642, 3462, 1834, 3163, -5456, -5456, -5456, 1834, 3167, 3168,104138, 8250, 3449, 88458, 3185, 3187, 88458,114792, 368, -5456, 3520, 368, 368, 1651, 3521, 3196, 373, 3318, 938, 1790, 3031, 2888, -5456, 3197, 3199, 393, -5456, 3288, 88458, 3202, 3203, 98, 3250, 1164, -5456, 3253, -5456, 3204, 3262, 3205, 747, 2750, -5456, -5456, 1394, 3181, 80618, 3284, 3303, 2048, 344, 1053, 3031, -5456, 3206, 3209, 3026, 3026, 88458, 88458, 88458, 88458, 88458, 291, 3570, 3573, 3211, 526, 66, 3111, -5456, 1834, 63468, 3212, -5456, 1834, 88458, 262, 1096, 3031, 1839, 1923, -5456, -5456, -5456, 1670, -5456, 33622, 33622, 33622, 3126, -5456, 2563, 19614, 729, -5456, 2647, 9868, 3123, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 88458, 59547, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 88458, -5456, 88458, 3423,112888, 3424, 3347, 3425, 3426, 368, 88458, 88458, 3427, 3428, 3429,112888, 3430, 3438, 3439, 3359, 3236, 851, 3228, 3154, 3630, 3515, 88458, 60528, -5456, 321, -5456,112888, 3377, 3519, -5456, 88458, 3397, 90, -5456, 3556, 3229, -5456, -5456, 102, 88458, 74738, 2750, -5456, -5456, 3525, 64938, 1001, 3528, 1164, 3221, 3533, 3394, 1164, 64938, 3446, 88458, 88458, 88458, 88458, 152, -5456, 63468, 3417, -5456, 88458, 3419, 2888, 3420, 3665, 1203, 2226,104628, 3536, -5456,105118, 3194, 88458, 3195, 3195, 3671,112888, 1155, 3481, -5456, -5456, 2119, -5456, 3343, -5456, 68858, -5456, -5456, 68858, -5456, -5456,112888, 88458, 3207,112888,112888, -5456, -5456, 68858, 68858, -5456, 64938, 64938, 3564, 353, 3569, 3275, 3574, 3276, 52675, 52675, -5456, 448, 68858, -5456, 64938, 68858, -5456, 88458, -5456, 88458, -5456, -5456, -5456, -5456,112888,112888, -5456, 64938, 63468, 3575, 88458, 88458, -5456, 88458, 88458, -5456, 88458, 88458, 2109,105608, 2406, -5456, 88458, -5456, 88458, -5456, 88458, -5456, 88458, -5456, 88458, -5456, -5456, -5456, 88458, -5456, 88458, 2114, -5456, -5456, 2115, 1310, 88458, 88458, 247, 68858, 88458, 3442, 88458, 68858, 68858, 88458, 88458, 88458, 88458, 88458, 3305, 2910, 434, -5456, 302, 360, 80618, 3451, -5456, -5456, 2121, 2066, 34, 88458, -5456, 88458, 88458, 88458, -5456, -5456, 74248, 3562, 419, 75718, 88458, -5456, -5456, 8642, 33622, 1934, 30061, -5456, -5456, 19614, 3274, 33622, 33622, 3225, 2643, 2643, -5456, 336, 33622, 33622, 27521, 33622, 31590, 33622, 33622, 2643, 2643, 33622, 10031, 33622, 52675, 33622, 39210, 24551, 33622, 33622, 28537, 292, 2850, 33622, 3476, 40220, 33622, 374, 3477, 33622, 374, 10031, 3733, 3733, 2353, 7043, 3230, 1934, -5456, -5456, 1130, 2643, 1130, -5456, 498,112888, 33622, 33622, 33622, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 33622, -5456, 60528, -5456, -5456, -5456, -5456, -5456, -5456, 3320, -5456, -5456, -5456, -5456, -5456, -5456, 4870, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 88458, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 29045, -5456, -5456, -5456, -5456, 3240, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 3550, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 29553, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 3244, -5456, -5456, 33622, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 3322, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 954, 33622, 33622, 33622, 33622, 33622, 33622, 33622, 33622, 33622, -5456, 33622, 510, -5456, -5456, 3568, 3238, 816, 507, 3246, 3454, 85028, 30574, 3286, -5456, 23523, -5456, 266, 3286, -5456, -5456, -5456, 88458, 3388, -5456, -5456, -5456, 3326, -5456, -5456, -5456, -5456, -5456, -5456, 245, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 3245, -5456, -5456, -5456, -5456, 3245, -5456, 3247, 3576, 3577, 270, 88458, 2734, 33622, 3320, 282, 88458, 33622, 3240, 3550, 33622, 3244, 33622, 3322, -5456, 33622, -5456, 2125, 2027, 33622, 2139, 3251, -5456, -5456, 3261, 2936, 3287, 3290, 3264, 3267, 2643, 224, 3268, 219, 852, 3400, 2643, 3501, 3269, -5456, 60528, -5456, 42196, 3319, -5456, -5456, -5456, 1743, 88458, 88458, -5456, 3572, -5456, 3270, -5456, 14682, 3572, -5456, -5456, 39715, 3407, 3555, 3497, -5456, -5456, -5456, 3280, 19614, 34638, 34638, -5456, 2310, 19614, 2465, -5456, -5456, -5456, -5456, -5456, -5456, 1291, -5456, 88458, 150, 3294, 1590, 3348, 1038, 3762, 3350, 88458, -5456, 47630, 2141, -5456, 64938, 88458, 88458, 3498, -5456, 3744, -5456,114792, -5456, 3291, -5456,114316,110508, -5456, -5456, 95, -5456, 1638, 64938, -5456, 88458, 88458, 64938, 88458, 88458, -5456, 64938, 3344, 88458, 88458, -5456, -5456, -5456, -5456, -5456, 57587, 721, 74248, 3435, 73268, -5456, -5456, 3295, 88458, 3358, 3580, 3582, 801, -5456, -5456,106098, -5456, 3529, 64938, 88458, 88458, 33622, 3530, 88458, 88458, -5456, 1020, 3390, 3392, -5456, 88458, 3393, 68858, 3308, 112888, 68858, 53184, 68858, 68858, 3650,112888, 88458, 88458, 1303, 80618, 286, 1098, 3031, 3541, -5456, 1525, -5456, 64938, -5456, 88458, 3532, -5456, -5456, -5456, 77188, 3780, 3437, -5456, -5456, -5456,106588, -5456, -5456, 3539, -5456, 2159, -5456, 64938, 64938, 88458, 9291,107078, 1373, 3558, -5456, -5456,112888, -5456, 88458, 85518, 88458, 88458, 3598, 88458, 77678,107568,108058, 1628, 1722, 3599, 88458, 78168, 3600, -5456, 3475, 88458, -5456, -5456, 61018, 64938, 88458, 990, 60528, -5456, 3591, -5456, 88458, -5456, 970, -5456, 88458, 4453, 3560, -5456, -5456, 3434, 3444, 88458, 289, 1197, 3031, 3730, 88458, 88458, 3349, 2169, 64938, 88458, 60528, -5456, 3578, 97, 64938, 88458, 77188, -5456, 3581, -5456, 80618, 3670, -5456, 3352, 2226, 2561, 1952, 3352, 64938, 88458, -5456, 3352, 88458, 98258, -5456, 64938, 1342, -5456, 64938, 88458, 77188, -5456, 3583, 3522, 64938, 88458, 19902, -5456, -5456, -5456, 368, -5456, -5456, -5456, -5456, -5456, 88458, 88458, 368, 88458, 88458, 368, 1466, -5456, 64938, 88458, -5456, -5456, -5456, 3480, 64938, 88458, 88458, 249, 88458, -5456, 88458, 64938, 3409, 88458, 88458, -5456, -5456, 88458, 8144, 88458, 88458, 88458, 88458, 88458, 88458, 64938, 88458, -5456, -5456, 1119, 1440, 1772, 1860, 1708, 88458, 3679, 88458,108548, 64938, 88458, 88458, 1164, 88458, 60528, 1947, -5456, -5456, 3492, -5456, 64938, 1342, -5456, 9887, 88458, 88458, 88458, 3450, 3456, 287, 3544, -5456, -5456, -5456, 866, 866, 3588, -5456, 33622, 33622, 32098, 3376, -5456, -5456, 33622, 2784, -5456, -5456, -5456, 1047, 3853, 1047,109038, 1047, 1047, 3672, 3441, 3443, 1047, 1047, 1047, 3663, 1047, 1047, 1047, 88458, 3563, -5456, -5456, 3563, 876, 33622,112888, 88458, -5456, 2173, -5456, 3396, -5456, -5456, 60528, 88458, 767, 957, 3746, 3611, 72288, 1526, 3734, 88458, 3445, 88458, 3866, 3489, -4, -5456, 1526, 88458, -5456, 3234, 74248, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 88458, -5456, -5456, 3736, 88458, 42690, 3584, -5456, 1164, 2750, 2750, 2750, 2750, 3399, 2750, 88458, 3527, 3753, 1526, 3402, 3756, -5456, 2888, 3759, 114, 88458, 3624, 72288, 3465, 3447, 3638, 3882, 2226, 1164, 3643, 3631, -5456, 56130, -5456, 2750, 3898, 27045, 5399, 5984, 3632, 3695, -5456, -5456, 3639, 962, 88458, 3741, 3742, 3764, -5456, 225, -5456, 3895, 1750, 3765, 327, -5456, 328, -5456, 2790, -5456, 88458, -5456, 88458, 88458, 88458, 88458, 330, -5456, -5456, 328, 2790, 328, 270, -5456, 3702, 327, 2790, 3554, 3769, 353, -5456, 379, -5456, 3644, 270, -5456, 3658, 2226, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 2177, -5456, 88458, -5456, 3745, 3748, 3749, 3750, 3751, 3436, 3440, 3466, 88458, 3448, 3436, 368, 3452, 3453, -5456, 3448, 3448, 3436, 2910, 2910, 3436, 3440, 63958, 3883, 60528, -5456, -5456, 3517, 3458, 3776, 232, -5456, 893, 1319, 3689, -5456, -5456, -5456, -5456,112888, -5456, 64938, 3482, -5456, -5456, -5456, 3659, 3460, 63958, 270, 345, -5456, 68858, 88458,112888, 68858, 3666, 68858, 68858,112888, 88458, 88458, 2183, -5456, 1924, -5456, 2005, 33622, 198, -5456, 15873, 2200, 33622, 3459, 3461, -5456, 3782, -5456, -5456, -5456, -5456, -5456, -5456, 3464, 3784, -5456, 2201, 2212,112888, 2236, 3468, 16480, -5456, 3467, 215, 3660, 6237, 3504, 2214, 3469, 272, -5456, 6237, 1005, 2227, 3472, 3473, 6746, 6659, 3479, 16678, 3463, 3483, 3484, 3478, 39210, 39210, 28029, 1033, -5456, 39210, 3485, 3655, 2243, 15077, 3486, 3490, 16815, 32606, 33622, 32606, 32606, 16913, 3491, 3495, -5456, 3829, -5456, 2247, 60528, 3647, 17451, 2248, -5456, 33622, 60528, 6986, 33622, -5456, 33622, -5456, 3496, -5456, -5456, 1439, 1439, 1439, 10031, -5456, 3499, -5456, 39210, 39210, -5456, 1883, 28029, -5456, -5456, 3793, -5456, -5456, 274, -5456, -5456, -5456, -5456, -5456, 3579, -5456, -5456, -5456, 3693, 2123, 2828, 52675, 10421, 33622, 288, 33622, 3240, 33622, 3552, 1439, 1439, 1439, 483, 483, 263, 263, 263, 2098, 507, -5456, -5456, -5456, 3502, 3505, 3454, 3506, 33622, -5456, 3559, 48124, -5456, 2188, 2367, 88458, 3255, 3990, 6137, -5456, -5456, -5456, 3319, 729, 3319, -5456, 1670, 2643, 1130, 58077, -5456, -5456, -5456, -5456, -5456, -5456, 88458, 19614, -5456, -5456, 3738, 3508, 2249, -5456, -5456, 2643, -5456, -5456, 2330, 2330, 3511, -5456, 3516, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 3503, -5456, -5456, -5456, 43184, 3837, 3514, 41702, 86008, 3518, 2550, -5456, 86008, 86498, 86008, -5456, 3509, -5456, -5456, 1934, 33622, 3851, -5456, -5456, -5456, 33622, -5456, -5456, 1191, 3553, 772, 117, 2529, 2529, 2310, 853, -5456, -5456, 3603, -5456, 33622, 2494, -5456, 2520, -5456, -5456, -5456, -5456, 2910, -5456, 3796, -5456, -5456, -5456, 42196, 3586, 3601, 1381, 46148, 3760, -5456, 88458, 42196, -5456, 88458, 366, -5456, 3545, -5456, -5456, -5456, -5456, -5456, -5456,110508, 1933, -5456,114316, -5456,114316, -5456, 1933, 3997, -5456,110508, 1895, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 64938, 64938, 3766, 88458, 3771, 3767, 33622, 273, 88458, 3547, 3557, 1449, 3854, 3561, -5456, 3909, 270, -5456, -5456, 3640, -5456, 19614, -5456, -5456, -5456, -5456, -5456, 64938, 88458, -5456, 68368, -5456, -5456, 112888, -5456, -5456, 88458, 88458, -5456, -5456, -5456,112888, -5456, -5456, -5456, 88458, 854, 3645, 3646, 88458, -5456, 1343, 3288, 10377, 88458, 88458, 88458, 3860, -5456, -5456, -5456, -5456, 3790, -5456, 3920, -5456,110508, -5456, 2790, 1392, 3651, 3031, 3800, -5456, 3928, 3680, -5456, 3698, 807, -5456, -5456, 3708, -5456, -5456, -5456, -5456, 3932, 270, 3933, 270, 88458, 88458, 88458, 88458, 3712, -5456, -5456, -5456, -5456, 3713, 3852, -5456, 60528, 60528, 60528, 2259, -5456, -5456, 1164, -5456, -5456, -5456, -5456, -5456, -5456, 3889, -5456, 2264, -5456, 1361, 88458, -5456, -5456, -5456, -5456, -5456, 3937, 64938, 88458, 10659, 88458, 88458, 88458, 3801, 1881, 1126,112888, -5456,111936, -5456, -5456, 2266, -5456, 3592, 88458, 3673, 64938, 3653, -5456, -5456, -5456, 3940, 2226, 3726, 76208, 3634, 3634, 2075, -5456, -5456, -5456, -5456, -5456, 3862, 3788, -5456, 1110, 3791, 64938, 3662, -5456, -5456, -5456, -5456, 3954, 3686, -5456, -5456, 3692, 1233, 3031, 2888, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 3720, -5456, -5456, -5456, -5456, 1201, 1201, -5456, -5456, -5456, 1201, 1531, 410, 1301, 3031, -5456, 1362, 372, 3696, -5456, 3697, -5456, -5456, -5456, 3869, 3872, 3873, 3700, 3701, 3757, 3703, 3704, 3761, -5456, 3705, 3763, 3709, 3768, 3710, 4011, 270,112888, 3861, 1164, 3777, 3988, 270, -5456, 3717, -5456, 3721, -5456, 2286, 4102, -5456, 88458, -5456, 404, 1302, 3031, -5456, 3723, -5456, 64938, 88458, -5456, -5456, -5456, 33622, 3637, 3649, 3652, 19614, 19614, 33622, -5456, -5456, 19614, 3642, -5456, -5456, -5456, -5456,112888, -5456, 88458, 3944, -5456, -5456, 1047, 88458, 88458, -5456, -5456, -5456, 88458, -5456, -5456, -5456, 3946, -5456, 267, 267, -5456, -5456, 3975, 7709, 3654, 335, -5456, 60528, 49112, 3088, 826, 1790, -5456, 68368, 88458, 68368, -5456, 957, 3870, 88458, 88458, 88458, 3657, 3676, -5456, -5456, -5456, -5456, 64938, 1066, 64938, 2643, -5456, -5456, 3735, -5456, 88458, 2226, 4173, 4008, 3409, -5456, 4139, 3223, 1001, 1794, 338, 2838, 4076, 2560, 33622, 384, -5456, -5456, 1934, 88458, 3447, -5456, -5456, -5456, -5456, 1164, -5456, 3675, 3678, -5456, 88458, 4022, 88458, 88458, 88458, 88458, 3482, 3681, 88458, 3682,112888, 88458, 2197, 3026, 4160, 4047, 2066, 3465, 3779, 4049, 80618, 3706, 2296, -5456, -5456, 962, -5456, 2298, 171, -5456, 1164, 68368,110984, 4036, -5456, 617, 5984, -5456, -5456, 617, 953, 88458, -5456, -5456, -5456, -5456, 3921, 2273, -5456, 4024, -5456, -5456, 2066, -5456,112888, 3699, -5456, 2303, -5456, -5456, -5456, 353, 3770, 270, 3773, 270, -5456, -5456, -5456, -5456, 88458, -5456, 88458, 63468, -5456, -5456, 88458, -5456, 4059, -5456, -5456, 3843, 3844, 3845, 3846, 3848, 88458, 3436, -5456, 3711, 88458, 88458, 64938, 1649, -5456, -5456, 64938, 423, -5456, 188, -5456, 80618, 3840, -5456, -5456, -5456, -5456, 4073, 4075, -5456, -5456, -5456, 1128, -5456, 75228, 438, -5456, 64938, 4009, 4010, 4015, 4017, 368, 4018, 4019, 4023, 4025, 4029, -5456, -5456, -5456, 3718, 17503, 33622, -5456, 4087,112888, -5456, 8075, -5456, -5456, 33622, -5456, 33622, -5456, -5456, 3468, 4026, 3894, -5456, -5456, 3958, 3959, 33622, 3894, 4198, 1012, 33622, 33622, -5456, -5456, 3963, 3965, 33622, 2123, 2123, -5456, -5456, -5456, -5456, 2339, 33622, -5456, 33622, -5456, -5456, 25065, 4250, 4250, 3747,112888, 39210, 39210, 39210, 39210, 1442, 2877, 39210, 39210, 39210, 39210, 39210, 39210, 39210, 39210, 39210, 39210, 551, -5456, 3955, 33622, 33622, 33114, -5456, -5456,112888, 3752, 3491, 3754, 3758, 33622, -5456, -5456, -5456, 2305, 40714, 3774, 60528, -5456, 33622, 15309, 2309, 3803, 17590, 1934, 8264, 2544, 33622, 1054, 2461, 33622, 2320, 33622, -5456, -5456, -5456, -5456, 4089, -5456, -5456, -5456, -5456, -5456, -5456, 3992, 2123, -5456, 3823, 3830, -5456, 33622, 3775, 3340, 39210, 39210, 4413, -5456, 4444, 33622, 28029, -5456, 3588, -5456, 25579, 3778, 33622,110018, -5456, -5456, 762, 762, 762, 762, -5456, 88458, 88458, 88458, 3851, 3783, 3851, 178, 3785, -5456, -5456, -5456, -5456, 2066, -5456, 3772, -5456, -5456, -5456, -5456, -5456, 86008, 86498, 86008, 3781, 41208, 26074, 2550, 3786, 88458, -5456, -5456, 3797, 42196, 4052, 3968, -5456, 42196, 3968, 1546, 3968, 4053, 3863, 48618, -5456, -5456, 3798, -5456, 3976, -5456, 1882, 19614, 4220, 4094, -5456, 3799, -5456, 3553, 298, -5456, -5456, -5456, 883, -5456, 3859, -5456, -5456, -5456, 3518, 35146, 3929, -5456, -5456, -5456, 3834, 2337, -5456, -5456, 4203, 3929, -5456, 2376, -5456, 2338, 47630, 3586, 33622, 1934, 2343, 1901, -5456, -5456,110508, -5456, 3856, 2790, 2790, 1436, 3436, 4128, 1436, 8985, -5456, -5456, 43678, 88458, 88458, -5456, 88458, 88458, 1543, 88458, -5456, 88458, -5456, -5456, -5456, 4263, 3855, 3858, 4080, -5456, 2631, -5456, -5456, 64938, 88458, -5456, -5456, -5456, 424, 1335, 3031, -5456, 3887, -5456, -5456, 4105, 88458, -5456, 4258, 3900, 88458, 4165, 88458, 86988, -5456, 4235, 1543, 3922, 4144, 1804, 3026, 373, 4137, -5456, 1897, -5456, -5456, 3888, -5456, 88458, -5456, 88458, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 3947, -5456, -5456, -5456, -5456, 61018, -5456, -5456, 88458, -5456, 60528, 49112, 60528, -5456, 88458, -5456, 1541, 428, 1336, 3031, -5456, 3901, -5456, 4170, 3904, 3905, 3961, 194, 941, 3907, 3908, 3964, 3825, 3826, 3827, -5456, 60528, 49621, 3987, 88458, 2790, 3831, 3875, 88458, 3634, 87478, -5456, 3833, -5456, -5456, 3634, 249, 2552, -5456, -5456, -5456, 1164, 2790, 1164, 88458, 88458, 88458, 88458, 249, -5456, -5456, -5456, 4288, 3931, 88458, 88458, 88458, 88458, -5456, 3897, -5456, -5456, -5456, 88458, 88458, 4183, 231, 2138, 64938, 88458, 88458, 64938, 88458, 88458, 88458, 88458, 88458, 88458, 88458, 4057, -5456, 4277, 4202, 2289, 4245, 3923, 88458, -5456, 88458, 1164, -5456, 3288, 88458, 88458, 88458, 88458, -5456, -5456, -5456, -5456, -5456, 3588, -5456, 3849, 4138, 1047, -5456, 4143, 4145, 4146, 1047, -5456, -5456, 1790, -5456, 511, 88458, -5456, 2235, 88458, -5456, -5456, -5456, 3799, 2377, 2526, -5456, -5456, -5456, -5456, -5456, -5456, 3864, 88458, 88458, 39210, -5456, 439, 1805, 1101, -5456, 4135, 88458, 3083, -5456, -5456, -5456, 244, 88458, -5456, -5456, -5456, -5456, 3865, -5456, 879, 3681, -5456, 4152, 72288, 2790, 64938, 64938, 2790, -5456,112888, 3868, 3447, -5456, 501, 3941, -5456, 64938, 1001, 109528, 3221, 3899, 4077, 11193, 42196, 42690, 1201, -5456, 3871, 3867, -5456, -5456, 88458, 3870, 63468, 2352, 2888, 4337, 1204, 2127, -5456, 73758, 4066, 3681, 4152, -5456, 3026, 4090, 4092, -5456, 2066, 88458, 3482, 3447, 1164, 88458, 3358, 49112, -5456, 4387, 2304, -5456,110508, 33622, 33622, -5456, 3874, -5456, 3876, 5984, -5456, 3953, 3878, 4348, 33622, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 3966, 3884, 88458, 88458, 962, 88458, -5456, 3885, 3765, -5456, 3765, -5456, 88458, -5456, 88458, -5456, 270, -5456, 4020, 270, 88458, 88458, 88458, 88458, 88458, 88458, 3436, 368, 3453, -5456, -5456, 4221, 63958, 4219, -5456, 60528, -5456, -5456, -5456, -5456, -5456, 2357, 88458, -5456, -5456, -5456, 4291, 4230, 270, 419, 1049, 1049, 1049, 1049, 4185, 1049, 1049, 1049, 1049, 1049, -5456, 33622, 19614, -5456, 3893, -5456, 19614, 19614, -5456, 4265, 3896, 4124, 4126, -5456, 3902, 33622, 3894, -5456, -5456, 4127, 4129, -5456, 3894, 3894, 3906, 11296, 18324, -5456, 2375, 33622, -5456, 873, 873, 873, 2475, 4241, -5456, 2672, 873, 873, 873, 496, 496, 276, 276, 276, 4250, 551, 18366, 18734, 19084, 3911, -5456, -5456, -5456, 3491, -5456, 35654, 1134, 4359, 40220, -5456, -5456, -5456, 3951, 3960, 3913, -5456, 33622, 36162, 3914,114792, 4116, -5456, -5456, 1435, 33622, 33622, 4780, -5456, 10572, 33622, -5456, -5456, 4199, 4204, 4780, 530, 33622, 3101, 3677, 33622, 33622, 4745, 11446, 3925, -5456, 2388, 33622, 11537, 4118, -5456, 88458, 88458, 88458, 88458, -5456, -5456, -5456, 4094, 2559, 4094, 1164, 3926, -5456, -5456, -5456, -5456, 61508, 3924, 3647, 86008, 3936, 88458, 2550, 42196, -5456, -5456, 1712, -5456, 42196, 4212, -5456, 42196, 68858, -5456, 88458, 3938, 88458, -5456, 1777, 33622, 3972, 52675, -5456, -5456, -5456, -5456, 4021, -5456, 4164, 19614, 30574, -5456, 2066, 2433, 88458, 1934, 103, -5456, 33622, 3939, 88458, -5456, 3929, 19614, -5456, 4013, 2390, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 4034, 74248, 4282, -5456, 33622, 2401, -5456, 3993, 4384, 218, 2403, 2414, 1543, -5456, 2420, -5456, 1983, 4259, 476, -5456, 270, -5456,112888, 88458, 88458, 88458, 2958, -5456, -5456, 88458, 88458, 88458, 88458, -5456, -5456, 64938, 88458, -5456, 88458, -5456, -5456, -5456, 87968, -5456, 3870, 249, 439, 4274, 4275, 4186, -5456, 368, -5456, 439, 4187, 249, -5456, -5456, -5456, -5456, 3395, -5456,112888, 270, 270, -5456, -5456, -5456, -5456, -5456, 3971, -5456, 4409, 4058, 88458, 88458, 88458, 88458, 88458, 64938, 88458, 88458, 2643, 2643,112888, 3962, -5456, 2643, 2643, 3969, -5456, 64938, 88458, 88458, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 4050, -5456, 33622, 4410, -5456, -5456, -5456, -5456, -5456, 33622, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 64938, 88458, 4056, -5456, 4063, -5456, 844, -5456, -5456, 88458, 88458, 88458, 88458, 4331, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 4341, 88458, -5456, -5456, 1164, 1164,112888, 270, 270, -5456, -5456, -5456, 4067, -5456, -5456, 3989, 4281, 1047, -5456, 1047, 1047, 1047, -5456, 3994, -5456, 1790, 4382, -5456, 1543, 1781, 4333, -5456, 33622, -5456, 1312, 2475, -5456, 4391, 4474, -5456, -5456, -5456, -5456, 3409, 2226, 3409, -5456, -5456, 68858, 414, -5456, 4315, 767, 60528, 4224, 72288, 1362, 1937, 4002, 4136, -5456, 2790, 2790, 4068, 88458, 4479, -5456, -5456, -5456, -5456, -5456, -5456, 64938, 3653, -5456, 4244, 1215, 4351, 88458, 42690, -5456, 3518, -5456, -5456, -5456, 1164, -5456, -5456, 4148, 3447, -5456, 1986, 88458, 4238, 72288, 3482, 2424, -5456, -5456, -5456, 4061, 4473, 3465, -5456, 1362, 4066, -5456, -5456, 4449, 4117, 4064, 4501, -5456, 4117, 4369, 4249, 4032, -5456, 3706, -5456, 88458, -5456, 19614, 19614, 1164,115268, 617,112888, 4380, -5456, 19614, 88458, 922, 4035, 4206, -5456, 4346, 270, 2435, -5456, 270, 270, -5456, 88458, -5456, 3436, 3436, 3436, 3436, 3436, -5456, 4251, -5456, -5456, -5456, -5456, 4336, -5456, 63958, -5456, 270, -5456, -5456, -5456, -5456, -5456, -5456, 1049, -5456, -5456, -5456, -5456, -5456, 19614, -5456, 88458, -5456, -5456, -5456, -5456, -5456, 3270, 4042, -5456, -5456, 4043, 4044, -5456, -5456, 33622, -5456, 11948, 39210, 4385, -5456, 33622, 33622, 33622, -5456, 4048, 2444, 2457, -5456, -5456, 1134, -5456, 4359, -5456, -5456, -5456, 12019, 4107, 19614, 4166, 4054, 1813, 4780, 4780, 10572, -5456, -5456, 4780, 33622, 33622, 4780, 4780, 33622, -5456, -5456, -5456, 12088, -5456, 4508, 3588, -5456, -5456, -5456, -5456, 3972, -5456, -5456, 3972, -5456, 4194, -5456, 2472, 4532, 38194, 4490, -5456, 88458, 2484, -5456, 33622, 4060, -5456, -5456, 42196, 1712, 4062, 2497, 88458, 2498,112888, 36670, 19614, 88458, 3588, 4070, -5456, 88458, 2907, -5456, 1381, -5456, -5456, 4481, 43678, 4439, 19172, 33622, -5456, -5456, -5456, -5456, 63958, 4285, 63958, 1543, 12366, 4377, 43678, 53693, 88458, -5456, 88458, -5456, 4233, 4377, 4377, -5456, -5456, -5456, -5456, -5456, -5456, 4072, -5456, -5456, -5456, -5456, 4155, -5456, -5456, 1078, 3451, -5456, -5456, -5456, -5456, -5456, 4551, 4436, 4440, -5456, -5456, -5456, -5456, -5456, 4277, -5456, -5456, 49112, 64938, 88458, -5456, 4171, -5456, -5456, -5456, -5456, -5456, -5456, 45654, 52675, -5456, 194, 4084, 4086, 941, -5456, -5456, -5456, 88458, 12452, 4088, 12643, 1195, 3451, 88458, 88458, 4096, 4097, 4099, 1691, 1495, 1843, 3436, 4425, 88458, -5456, -5456, -5456, 4277, -5456, -5456, 88458, -5456, 1047, -5456, -5456, -5456, -5456, 60528, -5456, 2208, 3994, 1164, 68858, 4562, 4562, 12688, 4317, -5456, -5456, 451, 4154, 4349, 4154, 4100, 88458, 244, 4101, 2499, -5456, 88458, 4103, 4234, 2229, 2229, 88458, 88458, 88458, 2503, 2066, 2790, 3875, 1001, 4461, 72288, 4507, 3870, 395, -5456, 88458, 4582, 88458, 3482, 3681, 88458, 4109, -5456, -5456, 73758, 4325, 3088, 88458, 2197, 4066, 3465, 280, 88458, -5456, 346, -5456, 2066, -5456, 88458, 80618, 43678, 4451, -5456,114316, -5456, 2505, -5456, -5456, -5456, 4189, 20728, 3319, 4232, 4236, 4119, 2044, 4466, 88458, 1181, -5456, -5456, -5456, -5456, -5456, -5456, 88458, 438, -5456, -5456, -5456, -5456, -5456, -5456, 19337, -5456, 3060, 39210, 19614, 19614, 19614, 33622, -5456, 33622, -5456, -5456, -5456, -5456, 124, -5456, -5456, 4434, 4130, 4780, 4780, 4780, -5456, 33622, 223, -5456, -5456, 1371, 4529, 3509, 61508, 4132, -5456, 39210, 2510, -5456, 1120, 88458, 2511, -5456, 19614, 88458, -5456, -5456, 33622, -5456, 2517, -5456, 4134, 1088, 4140, 24037, 4142, -5456, -5456, -5456, -5456, -5456, 19614, 4147, -5456, 4603, 1590, -5456, -5456, 4193, 88458, 2518, -5456, 126, 905, 4177, -5456, 19614, 1649, 1436, 469, 4384, 4141, 3409, -5456, 4149, -5456, -5456, 1107, 3026, 88458, 3409, 3409, -5456, 88458, 4239, -5456, 3088, 4460, -5456, -5456, 4201, -5456, 1196, 3451, 88458,112888, -5456, 166, 4488, -5456, 112888,112888, -5456, -5456, -5456, 33622, -5456, 4242, -5456, -5456, -5456, 33622, 33622, 71308, -5456, -5456, 88458, 88458, 88458, 88458, 88458, -5456, 270, -5456, -5456, 2523, -5456, 44666, -5456, -5456, 3216, 1164, 3216, 1941, -5456, -5456, 3216, 3216, -5456, 3319, -5456, 4562, 1393, -5456, -5456, 4389, 4156, 33622, 4458, -5456, 1351, 4372, -5456, 4157, -5456, 68858, 4664, -5456, 60528, 3681, 4152, 88458, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 2530, 3870, 4509, 3447, 4064, -5456, 88458, 4205, -5456, 42196, 3870, 2066, 2127, -5456, 4066, 3681, 4152, -5456, -5456, 4159, 4092, 3465, 2197, 4305, -5456, 4308, -5456, 4606, 4383, 4608, 3482, -5456, 3358, 2531, 88458, -5456, -5456, 5984,115268,112888, -5456, -5456, -5456, 4168, 4550, 4218, 4222, -5456, -5456, -5456, 2044, -5456, 773, 4549, 4225, -5456, 4240, 88458, -5456, -5456, 3870, 270, 33622, 3060, 2532, 2536, 4237, -5456, -5456, -5456, 3491, 37178, 37178, 37178, 4176, 4531, 4534, 88458, -5456, -5456, -5456, 88458, 2475, 4184, 38194, 60528, 2537, -5456,112412, -5456, 2538, 2543, -5456, 33622, 4190, 33622, -5456, 36670, 88458, 4192, 3294, 2066, -5456, 3319, 43678, -5456, 4321, 4667, 4452, -5456, -5456, 4535, -5456, -5456, 88458, 4154, 52675, 3553, 1107, 2226, 4154, 4154, -5456, 88458, 4156, 33622, -5456, 4290, -5456, -5456, 2569, 1752, 4371, 4371, 2582, 2588, 12782, 88458, 2597, 2606, -5456, 2607, 2643, 3440, 1843, 3440, -5456, 3436, -5456, -5456, 60528, -5456, 64448, -5456, -5456, -5456, 1164, -5456, 1164, 4430, 88458, 55163, 1164, 1164, -5456, -5456, -5456, -5456, 4511, -5456, 2888, -5456, 13217, 4299, -5456, -5456, -5456, 532, -5456, 4424, 4426, -5456, 4207, -5456, 2614, -5456, 1362, 4340, 3870, -5456, -5456, 88458, 4685, 4687, -5456, 1304, 88458, 3518, -5456, 4064, 3482, 3465, 1362, 4066, 3088, 44172, 4117, 2197, 4092, -5456, -5456, 4428, -5456, 4432, -5456, 4215, 4538, -5456, 1707, 617, -5456, -5456, -5456, 375, 4558, 4566, -5456, -5456, -5456, 3216, -5456, 787, 4231, 4585, -5456, -5456, -5456, -5456, 19614, -5456, -5456, -5456, 38702, 4378, 254, 15848, 4596, -5456, 4596, 4596, -5456, 4689, 4690, 1213, 2618, 40220, -5456, -5456, -5456, 88458, 4448, 343, 4713, 4406, 2620, 36670, 2624, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 47630, 33622, 4339, 4667, 63958, 2625, 3634, 4246, -5456, 3553, 4349, -5456, -5456, 3451, -5456, 19614, 88458, 68858, 4700, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 3451, 4338, -5456, -5456, 71308, -5456, 88458, -5456, -5456, 2630, -5456, -5456, -5456, 88458, 4035, -5456, 4035, -5456, -5456, -5456, 2683, 4358, 88458, 1111, 1111, 4643, -5456, 4319, -5456, 4255, -5456, 4768, 4392, 88458, -5456, -5456, 194, 2066, 72288, 3870, -5456, -5456, 2197, 4066, 3465, 33622, 2644, -5456, 4384, 218, -5456, 4092, 4117, -5456, -5456, 43678, 4262, 3083, 4636, -5456, -5456, -5456, 1865, 68858, 68858, 88458, -5456, -5456, -5456, 33622, 244, 4742, -5456, -5456, -5456, -5456, -5456, 1206, -5456, -5456, -5456, 88458, 88458, 88458, -5456, 3647, -5456, -5456, 39210, 39210, 4493, -5456, 343, -5456, 88458, -5456, 4266, -5456, -5456, 2645, -5456, 1396, 19614, 390, 4357, 469, -5456, -5456, -5456, -5456, 4372, 1543, 1543, -5456, 3451, -5456, 88458, -5456, 4268, -5456, -5456, -5456, 64448, 4035, -5456, -5456, -5456, -5456, 4760, -5456, 985, -5456, -5456, -5456, -5456, 88458, 3870, 3962, 4064, -5456, 4092, 3465, 2197, 13565, -5456, 44172, 88458, 88458, 4117, -5456, 2659, 43678, 3447, 4418, -5456, 2429, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 417, 4272, 4276, -5456, -5456, 13697, 68858, 37686, 4427, -5456, 4489, -5456, 1249, 1350, 1920, 4714, 2475, 2475, -5456, -5456, -5456, 33622, -5456, -5456, -5456, 4515, 4414, -5456, -5456, 1548, -5456, 1543, -5456, -5456, -5456, 33622, -5456, -5456, 2226, 2226, 3870, -5456, -5456, 4117, 2197, 4092, 4384, -5456, -5456, -5456, -5456, 4538, -5456, 2677, 4117, 4225, 2324, -5456, -5456, 2356, 2592, 4373, 4624, -5456, 4289, -5456, -5456, -5456, 88458, 88458, 61998, 88458, 88458, 13897, -5456, 47630, 4520, 187, -5456, 1543, 2685, -5456, -5456, -5456, -5456, 4092, 4117, 88458, 3083, -5456, 43678, 3319, 4652, -5456, 2429, 4412, 4416, 60038, -5456, -5456, 320, 4691, -5456, 2694, -5456, 4296, -5456, 4361, 1381, 4301, 88458, -5456, -5456, 4117, -5456, -5456, 3447, -5456, -5456, 244, -5456, 4345, 4350, -5456, 2696, -5456, -5456, -5456, -5456, 33622, 61998, -5456, -5456, 4360, 33622, 2698, -5456, 4117, 68858, 4645, 4646, -5456, 60038, 866, 4368, 4376, 2713, 786, 3319, 4313, 68858, 68858, -5456, 4314, 88458, -5456, -5456, 1381, -5456, -5456, 60038, -5456, -5456, 2559, -5456, 4374, 2714, 4376, -5456, -5456 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { -5456, -5456, -5456, 3930, -569, -1721, -5055, -1119, 6184, -5456, -5456, -950, -685, 3165, -1745, -5456, -5456, -5456, 1376, -5456, -5456, -5456, -5456, 3892, -5456, -2899, -5456, -5456, 177, 3850, -1366, 131, 3470, 1475, -5456, -993, -5456, -5456, -630, 1, -5456, 3857, 505, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -855, 1930, -5456, 2023, 1273, -3211, -5456, -5456, -1505, -3726, -5456, 540, -5456, 568, -4805, -1052, -5456, -5456, -5456, 1918, -5456, -5456, -5456, 1869, 1068, -463, -5456, -5456, -5456, -5456, -5456, -5456, -889, -5456, -5456, -1160, 8, -649, -2933, -4300, -5456, -5456, 392, -502, -1480, -5456, 590, -5456, 592, -5456, -4846, -5456, -98, -2660, -2472, -5456, -5456, -5456, -472, -1451, 1375, -5456, -738, -1133, 1745, -2344, -1007, -5456, -350, -3557, -1131, -900, -898, -1041, -4338, -4860, -5456, -5456, -1161, -3768, -5142, -5385, -4874, -5084, 1382, -5456, -131, 396, -5456, 9, -3645, -3728, 10, 371, -5456, 11, 13, -5456, 388, -832, -963, -1579, -5456, -823, -5456, -5456, -5456, -3432, -5456, -5456, -5456, 167, -5456, -5456, -5456, -5456, 432, -5456, -5456, -5456, -5456, -5456, -5456, -3110, 1892, 1893, -5456, -4329, -5456, -927, -5456, 595, -3474, 1305, -5456, -5456, 1064, 3915, 412, -5456, -5456, -5456, -5456, -5456, -5456, -1783, -5456, -5456, -5456, -5456, -108, -449, -5456, -5456, -5456, -5456, -5456, -5456, -5456, 14, -5456, 1029, 354, -5456, -5456, -741, -5456, -5456, -5456, -5456, -5456, -5456, -1208, -5155, -1311, -1292, -5456, -3475, -5456, -5456, -5456, -423, -5456, -5456, -5456, -5456, -5456, -699, -5456, 1127, -4141, -5456, -5456, 397, -5456, -5456, -5456, -5456, -5456, -1014, -359, 3089, -5456, -599, -807, -5456, -5456, -5456, -358, -5456, -5456, -5456, -5456, -5456, -505, -1239, 4915, 4292, -1100, 9317, -830, -564, -5456, -5456, -5456, -2756, -5456, -5456, -4253, -5456, 4906, 2546, 1477, 17, -5456, -2, 82, 3728, -5456, 995, -1153, -3091, 357, -560, -5456, -5456, -5456, 355, -5456, -1951, -5456, -5456, -5456, -5456, -4089, 18, -5456, -4365, -5181, -4600, -4104, -1171, -5456, -4378, -5113, -4058, -5456, 1925, -5456, -5456, -562, -184, 3063, -5456, -1465, 2263, -1421, -5456, -2478, 425, 1474, 3077, -3276, -93, 3067, -2988, -5456, -732, 1069, -5456, -443, -3758, -5456, -5456, -5456, -2754, -683, -5456, -5456, 1624, 766, -5456, -5456, -5456, -5456, -635, 3040, -191, -5456, -5456, 4270, -5456, -4951, -5456, 4243, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -1473, 1237, -5456, -828, -5456, -5456, 2030, 634, -5456, -5456, -5456, -5456, 1322, -509, -5456, -5456, -5456, -5456, -5456, -5456, -5456, -992, -1185, -5456, -5456, -4492, -5456, -5456, -5456, -5456, -5456, 2317, -945, -737, 4153, -230, 19, -5314, -5456, -5456, -1178, -5456, 3488, -5456, -5456, -5456, -5456, -5456, 415, 418, -5456, -5456, -5456, -5456, -3906, -5456, -5456, -5027, -5456, -5456, 2009, -5456, -5456, 966, 6, 3186, -5456, -5456, -5456, -26, -5456, -5456, -1008, 2359, -5456, -2387, -5456, -591, -5456, -5456, -1905, 21, -4347, -5456, 12, -5456, -5456, -5044, -1190, 226, -5456, -5456, -3976, 15, -5456, -5456, -5456, -5456, -5053, -5456, 16, -4744, 776, -3322, -5456, 2, -5456, -500, -884, -5456, -5456, -5456, -3866, 23, 33, -5456, -5456, 4, 334, -49, -46, -23, 5, 139, 3597, -5456, -5456, -5456, -4325, 3641, -5456, -9, -857, 4959, 4961, -5456, -886, -146, 377, 1579, -707, -2586, 3548, 3565, -5456, 1565, 2378, -2457, -2453, -5456, -1251, -859, -690, -5456, -5456, -5456, -5456, -1813, -691, -2594, -5456, 3567, -5456, -5456, -5456, -2358, -3360, -3262, 1610, -3274, -3197, -5456, 860, 847, -1215, -182, 49, -1482, -781, 1529, -5456, -5456, 1616, -434, -5456, -5456, -430, -3281, 808, -5456, -4576, -2798, 1625, -1113, -835, -5456, -967, -5456, -657, 3667, 3623, -816, -5456, -5456, -789, 12773, -5456, -5456, -5456, 12919, 13933, -5456, -5456, 14697, 14950, -5456, -579, 15425, 12713, -787, -1925, 614, 17470, -1748, 2328, 94, -5456, -2966, -2295, -5456, -5456, -5456, -393, 963, 699, -5456, -5456, -4587, -4424, -5456, 2509, -2335, -5456, -661, 1698, -660, -5456, -5456, -5456, -2702, -5455, -2846, 2515, -5456, -5456, -5456, -176, -5456, 17280, -3242, -5456, -826, -1013, -1596, 3000, -3089, -1911, -5456, -5456, -5456, -3094, -5456, -5456, -5456, -2791, 1723, -5456, -5456, 1845, -5456, -5456, -5456, -953, 2083, -758, -1172, 1729, -1906, -3031, -5456, -1926, 1740, -2182, -5456, -1914, 1816, 1045, -5456, -1615, -5456, 4174, -788, 2528, -783, 16521, -689, 10673, -1276, -5456, 261, -5001, 1665, 7219, 24, -128, 680, -276, 2443, 3011, -5456, -5456, 5100, 6943, -578, -969, -5456, -6, 13850, 11185, -3663, -5456 }; /* 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 -2896 static const yytype_int16 yytable[] = { 632, 71, 184, 1702, 186, 191, 175, 904, 80, 83, 84, 85, 180, 86, 106, 181, 183, 124, 129, 159, 973, 178, 938, 185, 1393, 1629, 191, 746, 1080, 1347, 979, 1461, 1799, 984, 808, 974, 844, 1359, 1206, 1207, 1208, 637, 1916, 915, 1212, 892, 773, 1172, 688, 1788, 2892, 2719, 773, 2683, 1447, 1682, 1449, 1412, 3510, 2814, 3186, 1432, 1634, 1388, 1026, 1118, 3450, 1793, 2785, 1694, 1970, 3844, 1212, 1403, 1404, 3451, 2777, 3813, 2018, 4134, 2797, 4136, 1411, 1859, 2010, 1387, 3048, 3896, 982, 1418, 1375, 1179, 4198, 840, 3972, 3177, 4350, 2786, 4278, 1480, 628, 2960, 1004, 2002, 926, 780, 4524, 2004, 3202, 3236, 2005, 2006, 2853, 2853, 4257, 1832, 2853, 1120, 809, 1837, 2683, 4498, 3240, 3835, 1841, 4302, 1571, 4304, 3232, 4758, 4797, 3728, 1575, 1628, 1851, 4511, 4447, 4174, 4549, 1047, 4212, 4792, 1660, 4157, 3287, 917, 3289, 5189, 1871, 909, 1180, 1593, 1687, 3696, 1151, 2615, 1610, 1155, 3115, 2922, 2923, 3067, 5057, 5036, 1026, 2768, 803, 1163, 918, 232, 5488, 4859, 4997, 837, 5201, 5028, 5203, 5046, 3360, 1905, 5387, 5507, 1543, 3362, 4187, 2918, 5380, 5585, 3442, 855, 3372, 632, 5348, 1367, 3445, 5376, 4218, 4006, 4211, 5237, 632, 949, 1801, 5515, 3476, 3478, 1538, 1454, 632, 5637, 949, 632, 2949, 4172, 5045, 4177, 4508, 1026, 829, 3772, 4101, 3775, 3776, 1457, 949, 2768, 3780, 3781, 3782, -2489, 3784, 3785, 3786, 4773, 694, 755, 5624, 3421, 4008, 5810, 5379, -2531, 2768, -2556, -2380, 1120, 5538, 1538, -2594, 5146, -2380, 694, 1538, -2380, -2380, 5582, -2381, -2413, 647, 924, 755, 2574, -2381, 1502, 3832, -2381, -2381, 629, 755, 3862, 1026, 1387, -2340, 694, 997, 2748, 2074, -2769, -2340, 5548, 5549, 1400, 1401, -2769, 2713, 3182, -2769, -2769, 1187, 4037, 1898, 1410, 4534, 1867, 5798, 4018, -1939, 3255, 5234, -1906, 3045, 1009, -1939, 2714, 1377, -1906, -1919, -2493, 6174, -1944, 2580, -1934, -1919, 4090, 694, -1944, 2703, -1934, 755, -1947, 2069, 1824, 694, 3415, 1484, -1947, 694, 3297, 2537, 1994, 1026, -1947, 2537, 3297, 187, 1898, 5735, -1947, 1191, 3212, 2929, 3990, 694, 2582, 2788, 1510, 5992, 2713, 3213, 1363, 4591, 1951, 5105, 5106, 5107, 187, 5109, 5110, 5111, 5112, 5113, 3144, 2715, 2727, 2620, 919, 2853, 2551, 2788, 1572, 694, 2788, 4872, 1572, 3753, 755, 2552, 1503, -150, 755, 5574, 1844, 2716, 1829, -150, 3167, 3960, 5058, -2336, 2534, 903, 5975, 1898, 1898, 5721, 1898, 1238, 1868, 3480, 694, 5217, 4926, 5670, 1010, -2554, 761, 5627, 5964, 3009, 5709, 5675, 3392, 5631, 1485, 5516, -1760, 1052, 761, 1898, 761, 5632, 5628, 4987, 5977, 761, 2715, 2788, 5956, 3272, 762, 1694, 1107, 1846, 761, 1793, 2626, 3447, 2916, 4258, 2838, 2937, 762, 1153, 762, 1898, 2716, 3014, 1120, 762, 3642, 645, 5341, 3214, 3163, 920, 1210, 1166, 762, 927, 1511, 1011, 1881, 1788, 3178, 5993, 4759, 1486, 939, 1849, 2560, 5732, 761, 2901, 4977, 4063, 939, 4065, 4066, 939, 1403, 1404, 3393, 2622, 761, 5812, 2553, 2788, 974, 4592, 5944, 644, 3046, 2788, 4873, 40, 762, 2074, 2065, 6175, 921, 4978, 2902, 4009, 4370, 1411, 5260, 2788, 762, 1176, 4037, 2788, 4435, 2561, 1898, 3168, 3651, 6091, 1418, 1012, 5625, 2074, 3974, 2575, 783, 2728, 916, 3643, 6092, 3215, -2200, 2580, 44, 5007, 1074, 1898, 4760, -2200, 974, 4377, 1084, 2717, 3339, 2618, 919, 3448, 1211, 847, 3164, 3340, 1504, 2556, 1098, 194, 1914, 2580, 2569, 2569, 1378, 2725, 4019, 4495, -2219, 5676, 2582, 4037, 4091, 2066, 3015, -2219, 5342, 6052, 5613, 1487, 48, 3273, 2934, 2596, 5710, 4988, 5978, 2839, 2938, 1242, 1899, 868, 4927, 49, 2582, 1505, -1760, 1793, 5965, 1954, 5677, 5633, 2540, 195, 1426, 3216, 5244, 4874, 3217, 3160, 2717, 1017, 3010, 3160, 5629, 1018, 5887, 50, 3481, 2554, 2015, 3482, 5671, 2729, 3160, 5218, 6132, 5769, 3160, 3961, 1506, 4593, 5994, 5469, 5008, 1899, 56, 5995, 3145, 920, 1379, 2702, 5884, 949, 1106, 2798, -441, 5889, 5890, 2669, 2617, 5576, 1235, 6176, 4092, 1995, 4447, 1057, 1241, 1058, 191, 3002, 949, 2718, -2554, 5927, 6110, 1054, 949, 2753, 1055, 1056, 1120, 3204, 3047, 2815, 5955, 4544, 4427, 4428, 949, 2887, 4894, 4535, 2890, 1400, 1401, 2895, 1582, 2958, 2959, 1995, 1899, 1899, 2535, 1899, 949, 922, 2948, 1507, 904, 632, 3298, 2755, 1693, 4258, 892, 1107, 4110, 6177, 632, 949, 1512, 2762, 2593, 2897, 1410, 632, 1899, 949, 632, 3218, 3551, 5009, 648, 3627, 2718, 1183, 5910, 1830, 5434, 2831, 892, 949, 6153, 6109, 3169, 3754, 1017, 4093, -2554, 4010, 1018, 949, 1899, 3389, 1211, 2549, 1492, 3415, 1493, 1900, -2554, 191, -2489, 2957, 2930, 3170, 2832, 1398, -2380, 2660, 767, 768, 5006, 5805, -2531, 3365, -2556, 4802, 767, 768, -2381, -2594, 6180, 1830, 1513, 2661, 1462, 1112, 2917, 2522, -2413, 5808, 3198, 6054, 1017, 1184, -2340, 1189, 1018, 1193, 1108, -2769, 4052, 4901, 949, 1197, 4020, 1120, 2877, 4905, 5053, 2880, 2881, 5054, 2876, 1120, 1120, 5223, 1200, 6044, -1939, 1899, 2772, 1402, 1413, 1414, 632, 632, 767, 768, 1406, 2965, 949, -1944, 6073, -1934, 1413, 1414, 2070, 689, -2493, 3219, 1899, 1415, 2598, 2599, 2538, 3803, 4408, 4280, 6196, 3133, 1214, 6017, 4371, 1417, 6093, 949, 3117, 632, 1602, 1907, 1911, 1815, 1922, 1830, 6021, 1811, 4819, 2621, 5418, 1816, 4864, 1817, 917, 2772, 3001, 1017, 974, 1211, 4447, 1018, 892, 922, 1603, 1573, 1574, 1944, 1924, 1573, 1574, 3143, 2772, 4174, -150, -150, 5010, 918, 1249, 848, 4214, 4037, 947, 3158, 632, -2896, -2896, -2896, 1214, 2726, -2200, 983, 2816, 1947, 2859, 5717, 4738, 949, 4496, 6112, 4742, 3161, 3341, 71, 184, 1005, 186, 191, 175, 4496, 80, 83, 84, 85, 180, 86, 106, 181, 183, 124, 129, 159, -2219, 178, 4508, 185, 5245, 1495, 4638, 1991, 4489, 5954, 1806, 1914, 4365, 4366, 1109, 4589, 3804, 4367, 2001, 4782, 5948, 4281, 2910, 2911, 2840, 5011, 1914, 4729, 2935, 4731, 4586, 4969, 2799, 936, 927, 2011, 2815, 4965, 6100, 5577, 1914, 1848, 6152, 939, 1466, 4622, 2800, 3442, 2801, 4545, 939, 1110, 4192, 939, 4463, 187, 5928, 2936, 5936, 1517, 4141, 4586, 2979, 1394, 2519, 2520, 2521, 2522, 6115, 6116, 4220, 1362, 4221, 4968, 5947, 1372, 3416, 4049, 4050, 4051, 4052, 3324, 2747, 632, 632, 1789, 2517, 2518, 2519, 2520, 2521, 2522, 949, 5302, 4422, 3235, 1891, 632, 1070, 1134, 2991, 4018, 892, 632, 6205, 912, 5612, 632, 4008, 632, 1892, 2802, 1111, 892, 1112, 4253, 1249, 5303, 1113, 4037, 3962, 3619, 1239, 4038, 4039, 4040, 694, 3522, 694, 892, 4047, 4048, 4049, 4050, 4051, 4052, 2817, 1249, 2622, 2721, 4037, 1671, 5618, -1759, 4038, 4039, 4040, 1672, 187, 903, 4487, 2815, 4550, 1469, 3791, 6053, 1202, 2909, 3497, 2856, 6045, 3900, 2860, 2050, 4690, 2818, 1893, 2722, 694, 4892, 6224, 5402, 6182, 632, 3023, 632, 632, 1594, 4215, 6105, 3415, 1560, 5858, 3415, 3609, 1666, 1793, 3395, 690, 694, 2819, 1863, 4877, 3667, 2815, 4354, 2815, 803, 1652, 3295, 5077, 4797, 1510, 1249, 6200, 5521, 4037, 6005, 5022, 6168, 4038, 4039, 4040, 3061, 3805, 5831, 949, 910, 3542, 3712, 2633, 3424, 3325, 3019, 4193, 3713, 4328, 3326, 1667, 5970, 3415, 2813, 3454, 5689, 1864, 5711, 4282, 4283, 3415, 3020, 3610, 4551, 912, 694, 632, 4043, 3498, 1422, 691, 6031, 3901, 6117, 787, 6232, 4761, 1673, 3024, 3078, 3345, 3050, 5712, 191, 5971, 5832, 3199, 2816, 3201, 4284, 1894, 6211, 4995, 3327, 3208, 3667, 957, 3155, 3156, 949, 3223, 3224, 3079, 958, 959, 960, 3241, 911, 892, 692, 949, 693, 1026, 1595, 1956, 3260, 1958, 2815, 1960, 4982, 1962, 3275, 1964, 1965, 1966, 1426, 3806, 949, 4041, 1968, 3543, 6151, 949, 3425, 916, 4878, 187, 4599, 1511, -1759, 6176, 1422, 6158, 2964, 632, 1423, 4477, 5791, 2634, 3509, 2723, 4042, 3119, 2815, 1895, 3714, 3475, 1830, 937, 1205, 3620, 1203, 4329, 4798, 5804, 1849, 5819, 6106, 3611, 904, 5378, 5794, 4042, 3552, 6181, 2992, 1890, 5807, 3963, 632, 5802, 3142, 4033, 1470, 5790, 3147, 927, 4019, 3792, 4464, 3154, 912, 939, 3157, 4009, 3833, 939, 3570, 939, 5366, 2066, 6203, 2816, 5372, 5397, 6075, 4254, 2889, 632, 632, 632, 5304, 632, 5229, 5806, 1424, 4444, 1423, 1425, 695, 4194, 2815, 2815, 1071, 1135, 6215, 3346, 4043, 4552, 3768, 5840, 5102, 632, 1668, 3018, 3401, 1075, 3092, 4042, 1865, 3659, 3328, 1075, 3094, 3455, 2816, 5403, 2816, 4043, 1674, 4762, 3628, 1896, 2817, 1075, 2815, 2815, 3126, 3107, 949, 2578, 3109, 1883, 3763, 1885, 1886, 3080, 949, 949, 3113, 3523, -2896, -2896, -2896, 4047, 4048, 4049, 4050, 4051, 4052, 3756, 4448, 2818, 4983, 6032, 1596, 6076, 1424, 1675, 4996, 1425, 632, 4355, 6172, 3902, 2627, 2628, 6082, 2632, 4553, 2768, 4600, 1691, 3246, 5715, 974, 4541, 2819, 3903, 3546, 641, 3146, 1933, 40, 4043, 3152, 3153, 3416, 918, 918, 1789, 918, 2919, 1676, 1597, 4478, 5679, 3715, 4451, 3660, 993, 1426, 5770, 913, 4330, 794, 4139, 632, 3612, 1669, 1450, 632, 632, 2074, 2073, 1866, 2816, 2074, 2813, 5222, 44, -2896, -2896, -2896, 5660, 1934, 5190, 632, 5938, 1598, 5514, 994, 642, 892, 6033, 2950, 3716, 3553, 2817, 6062, 2892, 5698, 5193, 4331, 5143, 2763, 1640, 5197, 4374, 6077, 5199, 2580, 2816, 3661, 3137, 4185, 3542, 4453, 2581, 2542, 3057, 5033, 48, 6034, 793, 1009, 5680, 2818, 1224, 4034, 4035, 3717, 3057, 1426, 4054, 49, 3197, 1466, 4332, 1466, 2582, 2817, 187, 2817, 2582, 5345, 3058, 5034, 2636, 795, 3361, 1452, 2819, 5778, 3659, 3844, 3542, 4375, 3058, 50, 892, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 2818, 1641, 2818, 1427, 3662, 4085, 4086, 5067, 3456, 3819, 2816, 2816, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 2543, 6062, 2813, 2637, 2819, 3629, 2819, 1428, 6050, 6051, 892, 2764, 4649, 2882, 4650, 3543, 5537, 5731, 1599, 2020, 1692, 1793, 1642, 2816, 2816, 5771, 5144, 1225, 5333, 1643, 5033, 1914, 1644, 4456, 5987, 1495, 1010, 2032, 5877, 2029, 1495, 4363, 3885, 892, 4447, 2813, 5626, 2813, 6043, 4784, 3544, 2817, 3660, 660, 1427, 3543, 5034, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 6078, 2636, 2583, 906, 6135, 3096, 5661, 2584, 5617, 6067, 4457, 1935, -697, 3138, 2818, 1788, 2683, 814, 3555, 3108, 2683, 2817, 5760, 3545, 5762, 2063, 4458, 1011, 5766, 5767, 3663, 5886, 3114, 4959, 4805, 838, 5779, 6062, 4963, 2819, 3661, 1849, 949, 4373, 4410, -1906, 3139, 2637, 1495, 2639, 2818, 2586, 1495, 6143, 662, 772, 3964, 632, 632, 632, 3140, 772, 963, 964, 965, 966, 967, 968, 969, 970, 971, 2913, 4270, 5027, 2731, 2819, 1182, 4821, 4866, 6108, 2813, 3495, 1914, 1914, 2732, 1012, 3059, 5035, 1947, 2817, 2817, 4165, 4651, 2883, 3820, 3095, 3141, 2884, 5360, 3105, 3135, 3662, 6067, 6154, -2364, 6136, 2587, 850, -175, 2638, 2640, 5024, 5780, 974, 974, 3556, 2813, 1936, 2818, 2818, 4806, 3718, 1450, 2817, 2817, 4166, 4459, -1906, 3546, 1223, 1226, 6144, 2882, 2707, 5187, 1645, 3135, 3380, 3965, -175, 4744, 1374, 815, 2819, 2819, 2708, 6150, 4271, 916, 916, -466, 916, 2818, 2818, 3664, 3416, 4168, 949, 3416, 2639, 3719, 1009, 3665, 2709, 4202, 3666, 194, 4986, 3546, 892, 1646, 1227, 4785, 1228, 1647, 3088, 1444, 2819, 2819, 4786, 892, 4164, 1389, 811, 2813, 2813, 4787, 5942, 1560, 4807, 2805, 1378, 1789, 4808, 3505, 3720, 892, 6013, 4805, 2589, 1631, 4203, 4444, 1452, 6067, 3416, 907, 4636, 4637, 1648, 195, 4368, 3616, 3416, 3663, 949, 1649, 5547, 2813, 2813, 2640, 4862, 4788, 949, 1602, 5811, 2806, 673, 4890, 674, 1412, 949, 1484, 3418, 4312, 974, 3415, 3135, 3640, 1632, 3415, 923, 1439, 3446, 4789, 5962, 4313, 816, 1603, 5797, 892, 3496, 1453, 2733, 1584, 1845, -1084, 4165, 3821, 632, 1450, 2073, 632, 1010, 2074, 892, 1451, 1379, 892, 892, 3509, -466, 632, 632, 5818, 949, 949, 4170, 2883, 1235, 3678, 1445, 2884, 4214, 4806, 194, 4369, 632, 4697, 949, 632, 4166, 2734, 2722, 3568, 5969, 4863, 4980, 2580, 892, 892, 2513, 949, 949, 5465, -2896, 4167, 3415, 3822, -1906, -2896, -2896, -2896, 2517, 2518, 2519, 2520, 2521, 2522, 6119, 1011, 1485, 4168, 1830, 660, 2710, 191, 5329, 1585, 195, 4837, 2582, 4236, 694, 924, 5544, 2788, 3640, 3664, 1368, 632, 1452, 3741, 5659, 632, 632, 3665, 2789, 1672, 3666, 4169, 1633, 3227, 4807, 1523, 40, 3127, 4808, 3128, 5545, 3129, 5330, 3130, 641, 3131, 4838, 3918, 3587, 3132, 4981, 1057, 4590, 1058, 191, 1486, 3183, 5416, 5194, 1012, 632, 1054, 632, 1947, 1055, 1056, 5439, 632, 632, 3677, 4602, 1453, 662, 44, 632, 632, 632, 632, 632, 632, 632, 4087, -612, 632, 3801, 632, 5946, 632, 632, 632, 632, 632, 632, 3172, 1476, 632, 908, 632, 632, 4444, 2683, 632, 6184, 3844, 5896, 3679, 1471, 3702, 5520, 3726, 2683, 3588, 5347, 3682, 5963, 48, 3685, 892, 632, 632, 632, 3757, 3758, 3759, 4170, 5945, 4614, -2896, 4624, 1477, 932, -1683, -2896, 1478, 4628, 4839, 632, 1673, 1789, 5349, 5440, 3747, 3589, 3187, -1683, 1472, 3654, 4269, 2892, 3727, -1683, 5371, 5552, 4627, 2863, 4635, 5241, 4631, 4632, 2866, 2074, 1487, 4081, 5789, 3652, 5358, 3653, 934, 1479, 5648, 4585, 56, 1481, 3722, 2788, -1730, -2896, 1120, 5897, 1099, 1473, -1730, 955, 1662, 5497, 2796, 5499, 1099, 5350, 3912, 5367, 2683, -1906, 1637, 2580, 1612, 4572, 6058, 29, -1683, -1906, 2951, 1402, -1906, 1431, 3590, -1906, 927, 3723, 3763, 927, 1482, 5544, 5822, 5195, 4417, 1100, 4586, 2853, 956, 939, 939, 1663, 1488, 1100, -1683, 1664, 2582, 5242, 6046, 1008, 2587, 1638, 2940, 1613, 939, 5545, 2946, 939, 35, 2952, 3956, 2793, 4325, 2794, 673, 1483, 674, 999, 3415, 3415, 5320, 1101, 5321, 5322, 5323, -1730, 1665, 1489, 1947, 4490, 3724, 1490, 3693, 1016, 3694, 35, 1639, 2805, 3698, 2862, 1602, 5763, 678, -1683, 3721, 4372, 5764, 5839, 5337, 632, 5339, 4326, -1683, 1188, 1190, 1192, 4727, 939, 1194, 1195, 1196, 939, 939, 40, 1603, 3725, 1491, 1869, 1201, 1102, 4798, 5801, 4283, 2806, -1730, 1062, 2795, 1102, 5592, -1682, 1602, 2953, 5558, -150, 4798, 1794, 4327, 1060, 1795, 1941, 4409, 1870, -1682, -2896, 2954, 6111, 632, 5765, -1682, 1492, 44, 1493, 4850, 3377, 1603, 187, 5768, 1370, 4645, 4646, 4647, 4648, 4217, 1942, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 2955, 4071, 4928, 3378, 5559, 1067, 2546, 4078, 5593, 5544, 5652, 5594, 4945, 1413, 1414, 1081, 233, 5595, 48, 3945, 3874, 6011, 646, -1682, 6121, 632, 4929, 1494, 187, 5560, 738, 49, 1415, 5545, 5653, 4946, 3848, 3849, 3850, 3851, 6222, 3853, 6225, 6137, -1910, 5596, 1095, 5561, 812, -1682, -1910, 5562, 2846, 1605, 2943, 50, 4703, 4704, 5262, 4520, 40, 3226, 6236, 3, 4, 5267, 3881, 6138, 3836, 2870, -1683, -2896, 1679, 5563, 6059, 1683, 2824, 5564, 1072, 3274, 1073, -1683, 755, 2517, 2518, 2519, 2520, 2521, 2522, 1017, 1104, -2340, 5565, 1018, -1683, 1413, 1414, 44, -1682, 4224, -1683, 1408, 1409, 5597, 1402, 4781, 2616, -1682, 6015, 6016, 1402, 1076, 2616, 1077, 1417, 772, 5598, 772, 4798, 772, 5876, 1953, 4036, -611, 1795, 772, 1198, 1199, 740, 5599, 5734, 3415, 3986, 1103, 4064, 5738, 5739, 2591, 3415, 48, 40, 1017, 1402, 3415, 1431, 1018, 3415, 910, 15, -1683, 3944, 6204, 49, 2003, -2332, 2019, 1795, 56, -1917, 1017, -1731, 1205, 2066, 1018, -1917, 1249, -1731, 1105, 4037, 4135, 4088, 4164, 4038, 4039, 4040, -1683, 50, 44, -1907, 1249, 1122, 5187, 4037, 20, -1907, -1908, 4038, 4039, 4040, 5566, -1911, -1908, 4691, -1909, 1126, 56, -1911, 3565, -1683, -1909, 740, 1133, 632, 632, 632, 632, 632, 632, 632, 632, 632, -1683, 632, 3987, 4121, 911, 694, -1683, 3988, 48, 15, 1142, 2067, 632, -1683, 2825, 632, 3022, 4190, 1143, 6098, 755, 49, -1683, 755, 3039, 2577, 1149, 2569, 1795, 5567, -1731, 3416, 2943, 694, 3535, 3416, 4165, 1167, -1682, 4687, 3532, 694, 3536, 3537, 20, 50, 5554, 4907, 694, 974, 1402, 770, 2616, 4557, 5180, -1683, 632, 770, 4558, 3303, 632, 2962, 2963, 632, 56, 632, -2333, 3373, 632, 4378, 4166, 1017, 632, 1205, 3083, 1018, 3084, 3097, 4104, -1731, 4105, -1683, 4146, 4147, 5061, 4167, 1592, 2590, 912, 4558, 2591, 1609, 4126, 1789, 4127, 632, 3309, 3310, 3311, 3312, 1160, 4168, 3416, 772, 2943, 4259, 2624, 6146, 3123, 1795, 4137, 2591, 632, 3134, 3136, 5600, 3135, 3135, 5601, 5094, 3175, 632, 632, 3176, 3376, 1177, 4219, 1947, 3529, 4169, -1683, 4288, 641, 3564, 4164, 5101, 5823, 755, 3381, -1683, 3467, 2591, 4180, 2591, 1955, -1134, -1134, 1957, 949, 1959, 3458, 1961, 4517, 1963, 4518, 892, 4774, 1967, 3562, 892, 892, 3563, 3443, 3444, -1683, 32, 949, 4042, 3634, 4108, 949, 3635, 3797, 772, 949, 3798, 3936, 2617, 4262, 3135, 1204, 4042, 3985, 949, 1793, 2591, 4976, 5123, 4849, 3499, 4970, 3502, 4971, 5126, 5127, 3413, 29, 40, 1209, 3994, 4001, 949, 2591, 2591, 632, 5029, 1615, 6090, 3415, 4506, 4165, 4002, 1213, 4016, 2591, 632, 3756, 892, 632, 3658, 632, 632, 4170, 892, 1205, 4798, 4023, 5214, 1616, 2591, 913, 5719, 1017, 1216, 44, 949, 1018, 32, 3281, 5724, 5725, 3284, 4056, 4043, 4166, 2591, 4070, 4075, 4144, 2591, 4076, 2591, 3, 4, 4320, 949, 949, 4043, 4305, 4167, 4840, 4306, 4846, 4310, 892, 4336, 4311, 1219, 4337, 40, 4820, 4128, 1120, 4129, 6009, 4168, 48, 4829, 4444, 1617, 741, -1683, 3550, 1221, 2683, 4406, 1789, 949, 4337, 49, 1789, 5134, 40, 5135, 4228, 4529, 40, 4532, 4530, 3744, 4533, 4601, 4563, 4169, 4670, 4564, 44, 4671, 4681, 1413, 1414, 4682, 3001, 50, 949, 4493, 1789, -1754, -1754, 4693, 949, 2073, 2591, 6160, 2074, 6161, 5952, 5448, 4865, 44, 5449, 1222, 742, 44, 949, 4465, 4769, 4775, 1232, 4770, 4776, 949, 4780, 1233, 949, 3482, -1758, -1758, 48, 1017, 949, 5030, 1436, 1018, 3135, 1436, 5096, -1671, 2580, 1995, 6185, 49, 629, 3416, 3416, -2896, 4723, 1236, 4725, 1618, 949, 48, -1757, -1757, 5131, 48, 949, 2591, 5510, 5511, 4246, 3649, 5704, 949, 49, 50, 3415, 5170, 49, 5225, 2591, 2582, 3482, 5179, 4345, 5182, 4170, 949, 5640, 4351, 5231, 3303, 5238, 5232, 56, 3135, 3415, 1234, 50, 3692, 949, 1615, 50, 5239, 1237, 1789, 3135, 6226, 1243, 5240, 3415, 949, 3135, 5373, 1373, 1619, 5374, 56, -1421, 1620, -1421, 56, 1120, 1616, 5410, 3406, 4743, 4564, 4746, 632, 632, 632, 1235, 5431, 2891, 632, 5432, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 5433, 5852, 5853, 2591, 4107, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 1245, 5452, 632, 892, 5453, 2662, 4798, 2665, 1622, 1380, 187, 1789, 927, 5462, 1617, 939, 1947, 939, 939, 5983, 5984, 3978, 5371, 3980, 3981, 5047, 5468, 5470, 5587, 4503, 4503, 5588, 5607, 1376, 5641, 3135, -2896, 5642, 1381, 5687, 5693, -2896, 5688, 1947, 632, 1382, 5696, 5707, 4771, 4503, 5708, 772, 5753, 1624, 1390, 5754, 772, 772, 1398, 5793, 5820, 5843, 2545, 5708, 4076, 5844, 5862, 5866, 2591, 5863, 1947, 1395, 5867, 3863, 5040, 2591, 892, 1625, 901, 902, 892, 3885, 1386, 1249, 2597, -2896, 4037, 1405, 1396, 1419, 4038, 4039, 4040, 2604, 1402, 2605, 5952, 1627, 5895, 2608, 1406, 3176, 4798, 4483, 1618, 1421, 2614, 1436, 3415, 3975, 4436, 5901, 1448, 1463, 3176, 4800, 4801, 5902, 4676, 4804, 3176, 1437, 1468, 5874, 1249, 2683, 5905, 4037, 1464, 2591, 3416, 4038, 4039, 4040, 1465, 5906, 5907, 3416, 2591, 5908, 2587, 2622, 3416, 5934, 3413, 3416, 5935, 5988, 1544, 6002, 4503, 5163, 2591, 6004, 6010, 1474, 2591, 3135, 974, 6025, 1619, 1431, 6026, 1515, 1620, 1541, 949, -2382, 1789, 4608, 4497, 3415, 1546, 6048, 6089, 4448, 6049, 5701, 1547, 2891, 1582, 4449, 1587, 892, 1586, 949, 1588, 4466, 6118, 4468, 4595, 5708, 949, 1599, 4450, 1601, 632, 772, 892, 632, 1611, 632, 632, 892, 4798, 1694, 6156, 772, 1614, 6157, 1636, 632, 6028, 1622, 6179, 1653, 632, 2591, 904, 1654, 4642, 1670, 4451, 6198, 4452, 6208, 5863, 6214, 6209, 1680, 4770, 1684, 892, -2896, 4225, 4226, 3394, 3396, 3397, 1120, 1793, 1120, 6223, 6235, 1681, 2591, 6209, 1689, 1690, 1805, 1803, 1198, 1199, 1807, 4669, 1812, 1818, 1823, 1624, 632, 632, 632, 1826, 4186, 632, 1828, 904, 4580, -2668, 1833, 1836, 4538, 632, 632, 632, 632, 1838, 2622, 1830, 1847, 1852, 4453, 1625, 1789, 4849, 1853, -137, 1855, 632, 1789, 1856, 632, 1858, 632, 772, 1860, -2896, 772, 772, 1861, 1872, 1879, 1627, 1881, 1884, 632, 632, 4711, 1888, 632, 4454, 629, 213, 1897, 6056, 1902, 1903, 1904, 1906, 1910, 1909, 1913, 1914, 1120, 1921, 1925, 1927, 1928, 1930, 1932, 632, 3415, 632, 1938, 632, -2896, 1937, 4042, 1940, 1943, -1109, 1946, 1949, 1950, 1952, 1969, 4841, 2517, 2518, 2519, 2520, 2521, 2522, 632, 2000, 3616, 2007, 4860, 4131, 4132, 4133, 5257, 2009, 2073, 3468, 2012, 2074, 2016, -2668, 904, 2017, 2024, 4043, 2025, 949, 2026, 2027, 2028, 56, 2030, 4341, 3640, 3484, 4455, 2031, 2050, 3487, 2032, 4456, 2033, 3490, 2034, 2035, 2036, 2528, 2037, 2038, 2039, 5425, 2040, 2580, 2042, 4358, 187, 2530, 2043, 2044, -2896, 2045, 632, 2046, 2047, 632, 4043, 2048, 2049, 2532, 3515, 3416, -2668, 904, 2052, 2534, 2053, 2054, 632, 3415, 2055, 660, 2056, 632, 4457, -2668, 2582, 2057, 4816, 5074, 2058, -2668, 2535, 2059, 2550, 2545, 2617, -2668, 632, 2563, 4458, 1615, 2572, -2668, 3557, -1082, -2668, 2594, 2595, 2600, -2668, 2602, 632, 2603, 2606, 2607, 927, 2609, 2610, 939, 632, 939, 939, 1616, 1075, 2611, 2612, 2613, 2618, 2625, 1451, 5665, 892, 2656, 1453, 892, 2658, 892, 2668, 2670, -2668, 2616, 892, 772, 2671, 4964, 4951, 2672, 662, 2673, 2689, 2690, 2696, 2691, 2692, 4702, 3607, 949, 949, 2693, 2694, 6183, 3413, 632, 2695, 3413, -2668, 2697, 2698, 2699, 2705, 2724, 2730, 2736, 1617, 2750, 2754, 2756, 2757, 2758, 3415, 4889, 2760, 3636, 949, 2761, 2774, 949, 2778, 3645, 892, 2780, 2791, 2779, 2792, 2807, 2803, 4956, 892, 2810, 4459, -2896, 664, 3655, 2812, 2809, -2896, 2813, 2811, 4476, 1075, 4479, 3413, 3668, 2821, -2668, 2822, 2823, -2668, 3673, 3413, 2826, 2827, 892, -2668, 2833, 2834, 2828, 2847, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 2837, 3686, 2843, 4843, 2844, 2861, 2871, 3689, 2857, 2878, 2885, 3416, -2896, 2888, 3695, 2903, 2063, 1560, 2905, 2858, 2864, 1789, 1789, 1789, 2867, 2868, 1618, 2907, 3710, 2912, 2914, 3416, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 3735, 2873, -2668, 2874, 3416, 949, 2931, 3956, 2915, 2932, 4186, 1075, 2886, 2893, 892, 2894, 892, 2939, 2899, 2900, 2906, 2908, 2920, 2063, 949, 2921, 2587, 2933, 2944, 2961, 2968, 2976, 5393, 2973, 2975, 2977, 2978, 2982, 2983, 2984, 2986, 1619, 673, 2989, 674, 1620, 949, 3303, 2987, 2988, 629, 3415, 2990, 629, 2994, -1109, 2995, 2996, 2997, 787, 2891, 3004, 3005, 4117, 655, 5667, 3008, 677, 3021, 3013, 1845, 3032, 1633, 3305, 1249, 3306, 3036, 4037, 3037, 3210, 3211, 4038, 4039, 4040, 3040, 4603, 3049, -2668, 3052, 3055, 3242, 3243, 3056, 3065, 1622, 5686, 3069, 3073, 3076, 3307, 629, 5164, 4094, 3082, 4095, 878, 3086, 3098, 629, 3091, 892, -2668, 3100, -2668, -2668, 3101, 3103, 3102, 3116, -2896, 3148, 3159, 3288, 4151, 3173, 3185, 4156, 3209, 4096, 3204, 3276, 3282, 949, 2074, 3296, -2668, 3286, 632, 3323, 1624, 3343, 3415, 3302, 632, 3364, 5091, 3321, 3415, 3348, 3349, 3368, 3367, 892, 3399, 3382, -2668, 3369, 3370, -2668, -2668, -2668, 3383, 3416, 1625, 3308, 1426, 3384, 3386, 2649, 3385, 3387, 3391, 3400, 3406, 3436, 3418, 3423, 903, 911, 1789, 892, 3406, 3437, 1627, 3435, 949, 3438, 949, 3452, 3459, 3460, 3471, 3472, 3308, 3474, 3491, 3500, 3503, 3505, 3507, 949, 3508, 949, 3514, 3519, 2622, 3524, 3538, 3525, 3527, 3530, 3309, 3310, 3311, 3312, 3554, 3559, 1370, 3313, 3314, 1374, -2896, 632, 3561, 3315, 3416, 3952, 3571, 3578, 3591, 3596, 3597, 5142, 2517, 2518, 2519, 2520, 2521, 2522, 3617, 3309, 3310, 3311, 3312, 3623, 3968, 3630, 4097, 892, 3415, 3624, 3625, 3952, 4098, 3688, 3633, 5156, 3650, 3651, 5354, 3730, 3672, 3641, 3743, 4523, 3648, 3751, 3671, 1849, 949, 892, 3755, 3752, 5086, 5087, 5088, 5089, 5090, 912, 3764, 3771, 3778, 3777, 3779, 5205, 3783, 3788, 4042, 3799, 3810, 3811, 3825, 892, 3829, 3831, 3839, 3858, 3827, 3857, 3860, 4560, 3852, 3861, 3865, 3859, 3868, 3870, 3872, 3846, 3873, 5040, 949, 3876, 4527, 3882, 3877, 3897, 3898, 3899, 3907, 3908, 3909, 3911, 3913, 3927, 3929, 3930, 3935, 3933, 3943, 949, 3953, 3938, 3957, 949, 3939, 3940, 3941, 3942, 3959, 3966, 3969, 1947, 3971, 3979, 3998, 1944, 4000, 4004, 4015, 4012, -2192, 4069, 4072, 1911, 949, 4089, 3948, 3947, 4709, 3958, 4103, 3996, 4043, 3997, 5212, 1211, 3999, 4115, 3756, 4007, 632, 4017, 3316, 892, 4024, 4025, -2670, 4084, 632, 4033, 632, 4029, 4142, 3317, 3416, 4031, 4032, 4055, 4060, 5722, 632, 4178, 4061, 1214, 632, 632, 2591, 4068, 4083, 4154, 632, 4099, 5327, 4116, 5266, 4150, 4118, 4120, 632, 4143, 632, 4148, 4100, 632, 4122, 4155, 4149, 892, 632, 632, 632, 632, 4182, 4163, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 4188, 4197, 4216, 632, 632, 632, 4195, 4199, 892, 4208, 4222, 4238, 4201, 632, 4234, 4227, 4230, 4241, 632, 904, 1789, 4243, 632, 4229, 4235, 4266, 4255, 4256, 4239, 4267, 632, 4268, 4272, 632, 4273, 632, 4274, 4279, 4275, 4290, 4291, 4293, -2670, 4299, 4300, 3416, 4309, 4301, 4315, 4338, 4324, 4344, 4346, 632, 4340, 4348, 632, 632, 4342, 4352, 4353, 632, 632, 4357, 4359, 4360, 632, 4361, 632, 4716, 4717, 4718, 4719, 4362, 5209, 4364, 4381, 4379, 4380, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4390, 4389, 4186, 4391, 4392, 4394, 4395, -2670, 4393, 4398, 4402, 1057, 4404, 1058, 191, 632, 4405, 2929, 4411, 4414, -2670, 1054, 4418, 632, 1055, 1056, -2670, 632, 4186, 4432, 4400, 4415, -2670, 4421, 4416, 4426, 4434, 4469, -2670, 4474, 4481, -2670, 4484, 1615, 4485, -2670, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4488, 4492, 4502, 4505, 632, 3416, 4475, 4512, 4503, 4515, 1616, 4521, 5002, 5003, 4522, 4244, 4526, 4542, 187, 4525, -2670, 632, 4528, 4559, 4556, 4562, 4574, 892, 4575, 4576, 4577, 4578, 5393, 4579, 4566, 4596, 4832, 4568, 4597, 632, 4598, 4581, 2019, 4604, 4605, 4617, -2670, 5305, 5306, 4606, 5308, 4607, 4609, 4610, 187, 6083, 6084, 4611, 5338, 4612, 949, 1617, 4842, 4613, 4623, 3225, 4625, 4626, 3413, 2727, 4629, 4633, 3413, 4634, 4037, -2191, 4695, 4643, 4683, 4666, 4698, 4667, 3388, 3390, 4696, 4668, 4740, 4699, 3398, 4739, 4747, 4753, 4754, 4748, 4755, -2670, 4763, 4728, -2670, 5447, 4766, 4675, 4701, 4768, -2670, 4772, 4783, 4732, 4712, 4791, 4724, 1789, 4726, 4735, 4812, 4316, 1789, 892, 1789, 4813, 3441, 3441, 4814, 4737, 4752, 4757, 4815, 4822, 4843, 4823, 4825, 4826, 4828, 5485, 4832, 4836, 4835, 4855, 4852, 3413, 4868, 4867, 1789, 892, 4869, 4870, 4871, 4881, 4882, 4883, 4895, 1618, 4884, 4885, 4886, 3416, 2892, 4897, 4898, 4904, 4916, -2670, 4917, 4186, 4925, 4941, 5557, 4922, 4942, 4944, 4842, 4999, 4958, 4947, 3234, 3234, 4957, 4960, 4984, 4961, 4962, 5013, 772, 1132, 3256, 5020, 5019, 4906, 5032, 949, 4973, 4994, 949, 3277, 5005, 5042, 5048, 5026, 5025, 4915, 5049, 5059, 5066, 5068, 5065, 5070, 5072, 1619, 5069, 1132, 5073, 1620, 5078, 3160, 5092, 5084, 5098, 5099, 787, 5108, 5115, 5116, 5119, 5118, 5120, 5124, 2891, 5125, 5133, 5121, 4844, 5145, 5148, 5128, 2073, 629, -2193, 2074, 5139, 629, 5150, 5149, 4412, 5160, 5154, 3416, -2670, 5173, 5161, 5198, 5188, 3416, 5169, 5184, 5207, 5221, 632, 5747, 5210, 5749, 1622, 2063, 5191, 5224, 5202, 2073, 3574, 5211, 2074, 5228, -2670, 2580, -2670, -2670, 5226, 5234, 5233, 5243, -2896, 5263, 5264, 5274, 949, 949, 5265, 5268, 892, 5273, 187, 5275, 5294, 1548, 5287, 949, -2670, 5296, 5300, 1549, 5309, 5290, 632, 632, 2580, 5301, 2582, 1624, 629, 5317, 3406, -2896, 949, 5310, 3406, 5461, -2670, 5319, 5318, -2670, -2670, -2670, 5324, 5328, 5331, 5335, 5461, 5336, 5343, 5346, 5351, 1625, 5355, 5352, 5353, 892, 5361, 2582, 5051, 5359, 892, 632, 632, 5370, 1551, 5365, 5375, 5377, 5381, 5384, 5382, 1627, 632, 4845, 5386, 3416, 4275, 772, 5388, 5389, 5390, 5857, 5255, 5399, 5414, 772, 5405, 3135, 772, 5407, 5415, 5420, 5421, 5422, 5426, 4705, 5430, 5757, 5436, 5437, 772, 5604, 5446, 5438, 5450, 5454, 5460, 5489, 5464, 5492, 5467, 5501, 5509, 949, 974, 5498, 1789, 5513, 5883, 5486, 1552, 5512, 3413, 3413, 5517, 5518, 4706, 1553, 5550, 5519, 1554, 5505, 5530, 5524, 5531, 5572, 5535, 4983, 5580, 5669, 5578, -2896, 632, 2943, 5541, 5542, -2896, 5543, 5583, 5586, 5610, 5591, 5590, 5674, 5611, 5615, 632, 1555, 5620, 5622, 5638, 5643, 4584, 5649, 5918, 5920, 4588, 5650, 5651, 5657, 632, 5672, -2896, 5298, 5695, 5681, 5703, -2896, 5493, 5673, 5685, 2065, 5697, 5527, 5705, 2813, 5728, 5729, 5699, 5718, -2896, 5735, 5727, 1556, 5701, 5741, 5777, 5720, 632, 5702, 5772, 632, 5781, 5787, 5774, 5795, 5785, 5809, 5813, 632, 632, 5814, 892, 5815, 5800, 5817, 5816, 632, 632, 5826, 5827, -2896, 632, 5828, 5834, 5854, 5836, 5829, 5845, 632, 5838, 5855, 632, 632, 5856, 1810, 5859, 5879, 5869, 632, 4123, 5878, 5881, 5894, 5882, 2587, 1819, 5898, 5742, 5743, 5917, 5923, 5926, 5861, 5929, 5933, 5931, 5937, 5940, 632, 5941, 5957, 1827, 5959, 1657, 5958, 632, 5759, 1558, 5967, 5356, 632, 5960, 5974, 632, 632, 2587, 5968, 1559, 5973, 5976, 5981, 632, 5985, 5986, 5991, 5998, 1560, 2073, 629, 629, 2074, 6000, 632, 6020, 6012, 5912, 6007, 6029, 1561, 6022, 632, 5927, 5928, 6037, 5213, 5215, 6038, 5694, 6039, 6055, 6057, 6074, 6085, 6088, 6096, 6102, 6027, 5557, 6104, 6122, 632, 5227, 2073, 6128, 2580, 2074, 6134, 6129, 6133, 6139, 6141, -2896, 6163, 6142, 6162, 6173, 6164, -2896, 892, 6186, 1563, 1564, 6188, 5924, 6197, 772, 6189, 4214, 6201, 6206, 6212, 949, 6199, 6221, 6207, 6217, 6218, 2582, 3413, 2580, 6227, 3406, 6230, 5645, 6234, 3413, -2896, 6176, -2896, 1438, 3413, 1545, 1565, 3413, 4140, 3703, 1651, 3622, 892, 2945, 4285, 2571, 1650, 4858, 6079, 6080, 4851, 187, 6023, 3742, 4431, 5261, 2582, 5751, 3790, 949, 5569, 5911, 6103, 5001, 892, 5269, -2895, 5868, 5621, 5870, 4847, 949, 4848, 5334, 5603, 4232, 3937, 6014, 5503, 6099, 5932, 5930, 1998, 6036, 6114, 5363, 4237, 632, 5023, 5052, 5167, 5031, 5892, 4993, 632, 3808, 3809, 4856, 4491, 5018, 1635, 4303, 5357, -2896, 5609, 1566, 949, 4531, 5076, 5830, 6159, 3297, 6233, 6219, 5584, 2517, 2518, 2519, 2520, 2521, 2522, 4437, 6041, 5060, 5529, 5737, 5900, 3012, 5532, 736, 789, 4817, 1050, 5714, -2896, 1992, -2896, 892, 4582, 5093, 5095, -2896, 3477, 6155, 3837, 3075, 2517, 2518, 2519, 2520, 2521, 2522, 4223, 5646, 5062, 5824, 3071, 3104, 4548, 3434, 3087, 5746, 1121, 632, 3740, 4401, -2895, 4887, 1161, 4347, 6061, -2896, 6187, 5079, 3767, 1120, -2896, 2970, 5080, 632, 3422, 5888, 2704, 6202, 1789, -2896, 4777, 1383, 2592, 629, 5713, 2541, 5216, 6008, 5522, 817, 629, 818, 4184, 4196, 2653, 629, 5122, 949, 629, 5200, 6003, 5871, 4730, 3432, 632, 4158, 4745, 5466, 4152, 5684, 2652, -2895, 5683, 4778, -2896, 2657, 6170, 4153, 5990, 6086, 4138, 5860, 772, 5912, -2895, 2601, 5368, 5668, 3344, 4677, -2895, 5872, 4119, 5873, 2587, 3347, -2895, 3262, 4145, 4113, 3991, 3766, -2895, 4111, 4102, -2895, 4022, 974, 4630, -2895, 892, 0, 892, 3359, 4930, 0, 3420, 4933, 0, 1434, 0, 0, 0, 3406, 0, 0, 0, 0, 3406, 2587, 0, 3406, 0, 0, 0, 5885, 0, 0, 0, -2895, 0, -2895, 0, 949, 5528, 4191, 4191, 4186, 0, 0, 5526, 0, 187, 187, 0, 0, 630, 0, 0, 974, 0, 0, 0, 0, 3413, -2895, 0, 0, 0, 0, 0, 0, 0, 782, 632, 784, 0, 632, 0, 790, 632, 632, 632, 0, 798, 806, 810, -2896, 813, 0, 0, 806, 806, 0, 843, 5571, 846, 0, 0, 0, 0, 0, 0, 900, 900, 900, 0, 632, 632, 0, 0, 632, 0, 0, -2895, 0, 0, -2895, 5015, 0, 0, 0, -2896, -2895, 0, 0, 0, 0, 1120, 0, 0, 0, 632, 6210, 0, 2943, 0, 0, 632, 0, 0, 0, 632, 0, 0, 6195, 0, 0, 892, 632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 632, 0, 0, 632, 0, 0, 0, 0, 949, 0, 949, 0, 0, 0, 632, 0, 0, 0, -2895, 0, 0, 0, 0, 0, 0, 0, 0, -2896, 6195, 0, 0, 0, 5487, 0, 0, 0, 0, 2836, 5340, 2517, 2518, 2519, 2520, 2521, 2522, 0, 6195, 0, 0, 0, 0, 0, 0, 0, 3952, 892, 949, 0, 0, 0, 0, 0, -2896, 0, 6147, 0, 632, 0, 0, 629, 0, 3298, 0, 0, 2517, 2518, 2519, 2520, 2521, 2522, 3413, 0, 0, 0, 0, 630, 929, 929, 0, 0, 929, 0, 0, 0, 940, 0, 843, 0, 0, 976, 3413, 0, 940, -2895, 0, 940, 1789, 0, 843, 0, 929, 632, 6220, 843, 3413, 0, 0, 929, 5746, 843, 0, 0, 0, 0, 0, 0, 0, -2895, 0, -2895, -2895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5608, 0, 0, 0, -2895, 0, 0, 187, 6148, 6149, 0, 0, 0, 0, 0, 0, 6213, 0, 0, 0, 0, 0, 0, 0, 0, 632, 0, -2895, 892, -2895, -2895, 5634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 184, 0, 186, 191, 175, 0, 80, 83, 84, 85, 180, 86, 106, 181, 183, 124, 129, 159, 632, 178, 0, 185, 632, 904, 632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5636, 3887, 632, 0, 0, 0, 0, 0, 0, 632, 1120, 0, 632, 0, 0, 0, 0, 0, 0, 0, 0, 629, 0, 632, 0, 1518, 772, 0, 0, 0, 632, 0, 0, 0, 0, 0, 2974, 0, 0, 0, 0, 629, 0, 0, 0, 0, 3413, 2985, 0, 4480, 0, 0, 0, 0, 0, 629, 0, 0, 0, 0, 1519, 0, 0, 3003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 892, 0, 0, 0, 0, 892, 892, 0, 0, 0, 632, 0, 0, 3406, 0, 0, 632, 632, 949, 0, 0, 0, 0, 0, 0, 974, 939, 0, 3413, 0, 5281, 1548, 949, 0, 0, 0, 3077, 1549, 0, 0, 1520, 0, 5291, 0, 0, 0, 0, 0, 0, 0, 0, 3089, 632, 0, 1132, 3093, 0, 0, 0, 0, 632, 3256, 3256, 1789, 0, 0, 3256, 0, 0, 0, 0, 939, 0, 0, 0, 0, 0, 1521, 0, 0, 0, 0, 1551, 0, 0, 3112, 1132, 0, 632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5803, 0, 0, 0, 0, 0, 0, 3256, 3256, 0, 0, 0, 0, 0, 0, 3888, 0, 892, 892, 0, 1522, 0, 0, 0, 0, 772, 0, 0, 0, 0, 0, 0, 629, 0, 0, 0, 0, 0, 1552, 0, 0, 632, 0, 0, 0, 1553, 0, 0, 1554, 1548, 632, 632, 632, 0, 0, 1549, 0, 0, 0, 0, 0, 0, 1524, 632, 1789, 0, 0, 892, 0, 0, 187, 0, 632, 0, 632, 1555, 632, 0, 0, 0, 0, 0, 0, 632, 0, 0, 0, 0, 3413, 0, 5875, 0, 6019, 0, 1526, 629, 0, 0, 0, 0, 1551, 187, 0, 0, 632, 0, 0, 0, 0, 0, 0, 1556, 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, 3290, 0, 1029, 0, 0, 0, 0, 1789, 843, 949, 929, 0, 929, 0, 35, 929, 0, 0, 0, 3889, 0, 0, 976, 0, 0, 0, 0, 1087, 1529, 929, 0, 0, 0, 0, 1552, 929, 0, 1530, 3952, 0, 0, 1553, 6068, 6069, 1554, 2771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1532, 0, 630, 1657, 3413, 632, 0, 1558, 0, 1533, 2063, 940, 0, 1534, 1555, 976, 0, 1559, 940, 0, 0, 940, 0, 0, 0, 0, 1560, 0, 0, 0, 0, 0, 0, 3890, 0, 0, 0, 929, 1561, 0, 0, 0, 632, 0, 0, 0, 0, 0, 5786, 0, 1556, 0, 0, 0, 0, 632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 632, 0, 0, 1535, 0, 0, 0, 3891, 0, 0, 632, 629, 1685, 949, 0, 1563, 1564, 0, 0, 0, 0, 0, 0, 0, 0, 843, 632, 0, 0, 0, 0, 0, 0, 0, 1231, 0, 0, 0, 0, 949, 3413, 0, 0, 3952, 0, 3952, 0, 1686, 0, 0, 0, 0, 0, 0, 1353, 1353, 1657, 843, 806, 0, 1558, 0, 806, 0, 0, 0, 0, 0, 0, 0, 1559, 0, 0, 0, 0, 0, 843, 0, 0, 1560, 632, 843, 6042, 0, 3406, 0, 187, 1353, 0, 0, 632, 1561, 0, 0, 0, 0, 0, 0, 632, 632, 0, 0, 0, 0, 632, 0, 629, 6066, 191, 0, 0, 0, 0, 0, 772, 6063, 1566, 0, 6064, 6065, 0, 0, 0, 632, 632, 0, 0, 0, 0, 0, 2751, 0, 1353, 1563, 1564, 0, 0, 0, 0, 0, 772, 0, 0, 0, 0, 0, 843, 6127, 0, 0, 0, 0, 0, 0, 772, 0, 0, 949, 0, 843, 0, 3887, 0, 0, 0, 2752, 772, 0, 0, 0, 6228, 6229, 0, 0, 843, 0, 187, 0, 0, 0, 632, 0, 0, 0, 0, 1518, 632, 0, 0, 0, 3413, 0, 0, 843, 0, 0, 0, 0, 929, 929, 6066, 191, 0, 0, 632, 632, 0, 629, 6063, 0, 0, 6064, 6065, 0, 0, 0, 0, 0, 0, 632, 1519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 806, 806, 0, 632, 1566, 0, 0, 0, 0, 0, 0, 0, 1198, 1199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1353, 1353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 630, 632, 929, 0, 0, 0, 940, -2686, 0, 976, 940, 0, 940, 3413, 1520, 0, 0, 929, 0, 3413, 0, 632, 0, 0, 0, 0, 939, 0, 1789, 0, 0, 0, 0, 0, 0, 6066, 191, 0, 0, 0, 0, 843, 0, 6063, 0, 0, 6064, 6065, 929, 929, 0, 1521, 0, 0, 0, 0, 0, 0, 0, 0, 632, 632, 0, 772, 0, 632, 0, 0, 0, 632, 843, 843, 843, 1789, 929, 0, 630, 0, 630, 630, 0, 632, 632, 0, 0, 0, 0, 0, 0, 3888, 629, 1789, 0, 0, 1522, 0, 0, 0, 939, 939, 0, 0, 0, 0, 0, 0, 0, -2686, 0, 0, 0, 0, 929, 0, 929, 929, 772, 2073, 0, 0, 2074, 3413, 0, 0, 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1524, 0, 0, 0, 0, 0, 0, 0, 2579, 187, 0, 1353, 0, 0, 0, 0, 0, 0, 2580, 0, 0, 0, -2686, 0, 0, 2581, 0, 0, 0, 0, 0, 0, 1526, 0, 187, -2686, 0, 1972, 0, 1972, 0, -2686, 0, 843, 629, 782, 0, -2686, 0, 0, 629, 2582, 0, -2686, 0, 0, -2686, 0, 0, 0, -2686, 0, 0, 0, 0, 0, 0, 0, 6131, 2008, 0, 843, 0, 0, 35, 2014, 0, 0, 0, 1528, 0, 0, 3234, 0, 0, 0, 0, 0, 1529, 1353, -2686, 0, 0, 0, 0, 0, 0, 1530, 0, 0, 3256, 3256, 3256, 3256, 0, 2771, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, -2686, 1532, 0, 0, 0, 0, 0, 0, 1353, 0, 1533, 6126, 0, 0, 1534, 0, 6167, 0, 4673, 0, 0, 0, 0, 0, 0, 3531, 0, 0, 0, 0, 0, 3539, 0, 0, 3890, 0, 629, 1353, 1353, 1353, 0, 1353, 0, 0, 0, 0, 0, 0, 0, -2686, 2583, 0, -2686, 0, 0, 2584, 3256, 3256, -2686, 0, 0, 1353, 0, 0, 0, 0, 0, 0, 0, 1535, 0, 0, 3572, 3891, 0, 0, 6167, 0, 2585, 2264, 0, 0, 0, 0, 6216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 939, 939, 0, 2586, 0, 4734, 843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, -2686, 0, 0, 772, 0, 1353, 0, 0, 0, 772, 0, 0, 0, 772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2587, 5284, 5285, 2588, 0, 0, 5288, 5289, 0, 0, 0, 0, 1353, 0, 0, 0, 1353, 1353, 787, 0, 0, 0, 0, 0, 0, 0, 3952, 843, 843, 843, 2667, 0, 1353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2686, 0, 1518, 0, 0, 0, 0, 0, 0, 806, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2686, 0, -2686, -2686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1519, 0, 0, 0, 0, 0, 0, 2759, 0, 0, 2589, -2686, 806, 0, 0, 929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 843, 2787, 0, -2686, 0, 0, -2686, -2686, -2686, 843, 0, 0, 929, 0, 0, 0, 3795, 0, 0, 0, 0, 0, 2073, 0, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 1520, 0, 0, 0, 0, 0, 976, 0, 843, 0, 0, 806, 0, 0, 2855, 2855, 2579, 0, 2855, 0, 0, 0, 0, 0, 0, 0, 2580, 0, 806, 0, 0, 843, 0, 2581, 843, 0, 0, 1521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2513, 0, 0, 0, 0, 929, 0, 0, 2582, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 0, 843, 0, 2073, 4014, 0, 2074, 1522, 0, 0, 2075, 2076, 2077, 929, 929, 929, 929, 843, 0, 0, 0, 0, 0, 0, 0, 0, 3256, 0, 0, 0, 2579, 843, 0, 0, 0, 0, 0, 0, 0, 0, 2580, 0, 1353, 1353, 1353, 1523, 0, 2581, 0, 1524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2582, 0, 0, 0, 0, 0, 0, 1525, 1526, 0, 0, 0, 0, 0, 0, 0, 0, 3967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 3977, 2584, 0, 0, 0, 3982, 0, 0, 0, 0, 0, 0, 0, 0, 1527, 0, 0, 0, 35, 0, 0, 0, 0, 1528, 2585, 2264, 0, 0, 0, 0, 0, 0, 1529, 0, 4003, 0, 843, 0, 0, 0, 0, 1530, 0, 0, 0, 2586, 0, 843, 0, 1531, 0, 0, 0, 0, 0, 929, 929, 0, 0, 0, 0, 1532, 0, 0, 0, 0, 0, 0, 0, 0, 1533, 929, 0, 0, 1534, 0, 0, 0, 0, 0, 772, 0, 0, 2583, 0, 0, 2322, 0, 2584, 843, 2855, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2587, 0, 0, 2588, 0, 929, 929, 929, 929, 0, 0, 2585, 2264, 0, 843, 0, 0, 0, 0, 0, 0, 843, 0, 0, 3068, 0, 0, 0, 0, 1535, 0, 0, 2586, 0, 0, 0, 891, 0, 2073, 630, 0, 2074, 630, 0, 5147, 2075, 2076, 2077, 0, 0, 0, 0, 940, 940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 976, 976, 2579, 0, 940, 0, 0, 940, 0, 0, 2322, 0, 2580, 0, 0, 0, 0, 0, 0, 2581, 0, 0, 929, 929, 2587, 0, 0, 2588, 0, 929, 2589, 843, 2073, 0, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 0, 2582, 0, 0, 1972, 0, 0, 0, 0, 0, 0, 929, 0, 940, 0, 2579, 3151, 940, 940, 0, 843, 843, 0, 929, 0, 2580, 0, 0, 0, 0, 843, 0, 2581, 0, 0, 0, 0, 843, 0, 0, 843, 3068, 0, 0, 782, 0, 0, 782, 3188, 0, 0, 0, 1353, 0, 1353, 0, 0, 0, 2582, 1353, 1353, 0, 0, 0, 0, 0, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 2589, 0, 1353, 0, 1353, 976, 1353, 1353, 1353, 1353, 1353, 1353, 0, 0, 1353, 2513, 1353, 1353, 0, 0, 1353, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 1353, 1353, 1353, 4028, 0, 0, 2583, 0, 0, 0, 0, 2584, 0, 0, 0, 0, 0, 0, 1353, 0, 0, 0, 4247, 0, 0, 0, 0, 0, 0, 0, 4250, 0, 0, 0, 2585, 2264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 772, 0, 0, 0, 0, 0, 0, 0, 2586, 0, 0, 929, 0, 0, 698, 0, 2583, 0, 2513, 0, 0, 2584, 0, 786, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 4026, 0, 0, 4027, 2585, 2264, 0, 0, 0, 2322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2587, 0, 2586, 2588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4333, 0, 4335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1908, 0, 0, 0, 0, 0, 1912, -136, 0, 0, 0, 0, 0, 2322, 0, 0, 1923, 0, 0, 0, 1926, 0, 1353, 0, 1929, 0, 1931, 2587, 0, 1, 2588, 0, 1939, 0, 0, 0, 0, 0, 1945, 0, 2, 1948, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 2589, 0, 0, 0, 0, 0, 1353, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4397, 7, 0, 8, 9, 0, 0, 0, 0, 0, 10, 0, 11, 0, 0, 5909, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2589, 0, 1353, 4419, 14, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, 0, 3256, 0, 18, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 20, 0, 21, 2513, 0, 0, 0, 0, 0, 22, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 0, 0, 23, 4079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3256, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3572, 0, 0, 2513, 0, 0, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 3285, 0, 0, 0, 0, 0, 0, 0, 0, 25, 26, 0, 0, 0, 0, 27, 0, 0, 0, 4561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1548, 0, 0, 0, 0, 0, 1549, 0, 29, 0, 0, 0, 0, 0, 0, 0, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 0, 1353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 843, 1353, 0, 0, 1353, 0, 0, 0, 0, 0, 0, 843, 0, 0, 891, 1551, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4618, 0, 0, 0, 31, 0, 0, 0, 0, 0, 32, 33, 0, 34, 891, 0, 0, 843, 35, 1353, 0, 0, 929, 1353, 36, 0, 1353, 37, 1353, 0, 0, 1353, 0, 0, 38, 1353, 0, 0, 0, 0, 0, 39, 40, 0, 4644, 1552, 0, 0, 0, 41, 0, 0, 1553, 42, 0, 1554, 0, 0, 3417, 2073, 0, 0, 2074, 43, 843, 843, 2075, 2076, 2077, 4665, 0, 0, 0, 0, 0, 1353, 0, 0, 0, 44, 0, 0, 1555, 0, 1353, 1353, 2579, 0, 0, 0, 0, 0, 0, 0, 3256, 0, 2580, 0, 843, 45, 0, 0, 0, 2581, 0, 0, 3461, 0, 3466, 0, 46, 0, 0, 0, 0, 0, 47, 0, 1556, 0, 0, 48, 0, 0, 3256, 0, 0, 0, 0, 2582, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 782, 0, 782, 0, 0, 0, 0, 0, 891, 0, 50, 0, 51, 52, 53, 54, 55, 0, 0, 1353, 0, 6193, 0, 0, 0, 0, 0, 0, 0, 56, 630, 0, -136, 940, 976, 940, 940, 0, 0, 929, 0, 1557, 843, 0, 0, 1558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1559, 1051, 0, 0, 0, 0, 0, 0, 806, 1560, 0, 6193, 0, 0, 0, 0, 1548, 0, 0, 2787, 0, 1561, 1549, 0, 0, 0, 0, 3575, 843, 6193, 0, 0, 0, 0, 3586, 0, 0, 1655, 0, 0, 0, 2583, 0, 843, 0, 0, 2584, 0, 0, 0, 0, 1119, 698, 0, 0, 0, 0, 0, 0, 0, 2829, 0, 0, 1563, 1564, 843, 0, 1551, 0, 2585, 2264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 843, 0, 0, 0, 2586, 0, 0, 0, 0, 2830, 1704, 0, 0, 806, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 891, 0, 0, 0, 0, 0, 1656, 929, 1552, 0, 929, 891, 0, 0, 0, 1553, 2322, 0, 1554, 0, 0, 0, 0, 0, 0, 0, 0, 891, 0, 0, 2587, 0, 1218, 2588, 0, 0, 843, 843, 3256, 0, 0, 0, 0, 0, 0, 1555, 0, 0, 0, 1566, 0, 3729, 1240, 3732, 3734, 0, 0, 0, 0, 0, 1356, 0, 0, 1365, 1119, 1369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1556, 0, 0, 1353, 1353, 1353, 0, 0, 0, 1353, 0, 0, 0, 0, 0, 0, 0, 929, 0, 0, 0, 0, 0, 0, 0, 0, 2073, 0, 0, 2074, 929, 0, 0, 2075, 2076, 2077, 1353, 0, 929, 0, 0, 3099, 2589, 0, 0, 0, 0, 0, 0, 3106, 0, 2787, 0, 2579, 0, 0, 843, 0, 0, 0, 0, 0, 3834, 2580, 0, 782, 0, 0, 0, 0, 2581, 1657, 0, 0, 0, 1558, 0, 929, 3845, 0, 0, 0, 0, 0, 0, 1559, 0, 0, 3729, 5004, 0, 0, 0, 0, 1560, 0, 2582, 0, 929, 0, 3867, 0, 0, 891, 0, 0, 1561, 0, 0, 0, 0, 0, 1548, 0, 0, 0, 0, 0, 1549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5989, 0, 0, 0, 0, 1655, 0, 0, 0, 0, 0, 929, 0, 929, 0, 929, 2513, 1658, 0, 0, 1563, 1564, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 1551, 0, 0, 4433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1972, 0, 0, 0, 1659, 0, 0, 0, 0, 1119, 0, 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, 2073, 2584, 1656, 2074, 1552, 0, 0, 2075, 2076, 2077, 0, 1553, 0, 0, 1554, 630, 929, 0, 940, 0, 940, 940, 0, 929, 2585, 2264, 0, 2579, 0, 0, 1353, 0, 0, 0, 1566, 1353, 0, 2580, 0, 0, 1518, 1555, 0, 0, 2581, 2586, 3256, 3256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2582, 0, 0, 0, 0, 1519, 0, 1556, 1353, 1353, 1353, 0, 0, 1353, 0, 0, 2322, 0, 0, 0, 0, 1353, 1353, 1353, 1353, 0, 0, 0, 0, 0, 2587, 0, 0, 2588, 0, 0, 0, 1353, 0, 0, 1353, 0, 1353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1353, 1353, 0, 0, 1353, 0, 0, 0, 0, 0, 0, 0, 1520, 0, 0, 0, 0, 0, 0, 2688, 0, 0, 0, 976, 1657, 1353, 0, 1353, 1558, 1353, 0, 0, 0, 0, 0, 0, 0, 1997, 1559, 0, 0, 0, 0, 1518, 0, 0, 0, 1560, 1353, 1521, 0, 4125, 0, 0, 0, 843, 0, 0, 0, 1561, 0, 2583, 0, 0, 1119, 0, 2584, 0, 0, 2589, 0, 0, 0, 0, 0, 0, 843, 0, 1519, 0, 0, 5247, 0, 0, 0, 0, 2688, 0, 0, 2585, 2264, 0, 1522, 0, 0, 0, 0, 0, 3700, 0, 0, 1563, 1564, 0, 630, 0, 0, 3417, 4162, 0, 2586, 0, 4162, 4176, 4162, 0, 0, 0, 0, 0, 1353, 5270, 0, 0, 0, 1353, 0, 891, 0, 0, 0, 0, 0, 3701, 1524, 0, 0, 0, 0, 1520, 1353, 0, 0, 5286, 0, 0, 2068, 0, 0, 0, 0, 2322, 0, 0, 3417, 2071, 0, 0, 4207, 0, 891, 4210, 3417, 0, 3466, 2587, 1526, 0, 2588, 0, 2539, 2513, 0, 0, 0, 0, 1521, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 1119, 0, 4619, 2558, 2559, 0, 0, 0, 1119, 1119, 0, 1566, 0, 0, 1353, 0, 0, 35, 0, 2770, 0, 0, 1528, 0, 0, 5314, 0, 0, 1522, 0, 0, 1529, 0, 0, 0, 0, 0, 0, 0, 0, 1530, 0, 0, 0, 929, 929, 0, 0, 2771, 1704, 1704, 1704, 0, 0, 0, 0, 0, 0, 0, 0, 1532, 0, 0, 0, 0, 0, 1523, 2589, 0, 1533, 1524, 0, 0, 1534, 0, 0, 0, 0, 699, 0, 0, 0, 0, 3189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1548, 0, 0, 0, 0, 0, 1549, 1589, 1526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1550, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1535, 0, 0, 0, 0, 0, 702, 3190, 0, 0, 0, 0, 1590, 0, 0, 0, 35, 1551, 5398, 0, 0, 1528, 703, 0, 843, 0, 0, 0, 0, 0, 1529, 0, 0, 891, 2855, 0, 0, 0, 0, 1530, 1034, 2513, 0, 3371, 891, 0, 0, 1591, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 1532, 891, 0, 0, 4686, 3191, 0, 0, 0, 1533, 0, 0, 0, 1534, 1552, 0, 706, 0, 0, 0, 0, 1553, 0, 0, 1554, 707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 708, 0, 0, 0, 0, 0, 3192, 0, 0, 0, 0, 0, 0, 1555, 0, 0, 0, 891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1535, 0, 891, 1037, 0, 891, 891, 0, 2896, 0, 0, 0, 1353, 0, 0, 0, 2904, 0, 1353, 1556, 0, 0, 0, 0, 0, 0, 0, 4397, 0, 929, 0, 0, 0, 0, 3193, 0, 891, 891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 843, 843, 843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 843, 0, 0, 0, 0, 0, 0, 1557, 0, 0, 0, 1558, 0, 0, 1353, 0, 0, 0, 0, 0, 0, 1559, 0, 0, 0, 0, 0, 0, 0, 0, 1560, 0, 1972, 843, 843, 0, 0, 0, 843, 0, 0, 0, 1561, 0, 0, 0, 0, 0, 213, 3194, 843, 1704, 717, 0, 0, 0, 0, 0, 0, 0, 1704, 0, 0, 1704, 0, 0, 0, 0, 2073, 0, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 1041, 0, 1562, 3195, 0, 1563, 1564, 0, 0, 0, 721, 891, 0, 0, 0, 0, 2579, 722, 0, 0, 723, 0, 0, 0, 0, 0, 2580, 929, 0, 0, 0, 0, 0, 2581, 0, 0, 0, 1565, 0, 724, 0, 3151, 4583, 0, 0, 0, 1043, 0, 0, 0, 0, 0, 843, 726, 0, 0, 1044, 0, 0, 2582, 728, 0, 0, 0, 0, 843, 0, 0, 0, 3033, 0, 0, 0, 3038, 0, 3196, 0, 0, 0, 0, 0, 0, 0, 0, 1353, 0, 0, 0, 0, 0, 0, 0, 1353, 0, 1353, 0, 0, 0, 0, 0, 0, 733, 0, 0, 1353, 0, 1566, 0, 1353, 1353, 0, 0, 0, 0, 1353, 0, 0, 0, 0, 0, 0, 0, 1353, 0, 1353, 0, 0, 1353, 0, 0, 0, 0, 1353, 1353, 1353, 1353, 0, 0, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 0, 0, 0, 1353, 1353, 1353, 0, 0, 0, 0, 0, 0, 0, 1353, 0, 0, 0, 0, 1353, 0, 0, 0, 1353, 0, 0, 0, 2583, 0, 0, 0, 1353, 2584, 0, 1353, 0, 1353, 0, 0, 1998, 0, 0, 0, 0, 1998, 1998, 0, 0, 0, 0, 0, 0, 0, 0, 1353, 2585, 2264, 1353, 1353, 0, 0, 0, 1353, 1353, 0, 0, 0, 1353, 0, 1353, 4715, 0, 0, 0, 0, 0, 2586, 0, 843, 843, 843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3222, 0, 4162, 4176, 4162, 0, 1353, 4162, 0, 0, 4736, 0, 0, 0, 3417, 0, 0, 0, 3417, 0, 0, 2322, 3910, 0, 4751, 0, 0, 3916, 0, 3917, 0, 0, 0, 0, 0, 2587, 0, 0, 2588, 3923, 0, 0, 3924, 0, 3925, 3926, 0, 0, 3928, 0, 1353, 0, 3931, 0, 3932, 0, 0, 3934, 0, 0, 0, 5825, 0, 0, 0, 3466, 0, 1353, 0, 1548, 0, 0, 0, 0, 0, 1549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4799, 1972, 1972, 0, 0, 1972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1518, 0, 0, 0, 0, 0, 0, 5865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1551, 3973, 0, 0, 0, 2787, 4831, 0, 2589, 0, 0, 0, 0, 0, 0, 0, 0, -136, 1519, 0, 0, 0, 0, 0, 4854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 4, 0, 0, 1552, 0, 0, 0, 0, 0, 0, 1553, 0, 0, 1554, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 4903, 0, 1520, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 1555, 8, 9, 0, 0, 0, 0, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 2513, 0, 1704, 0, 0, 12, 1521, 13, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 1556, 0, 0, 4793, 4948, 14, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 928, 930, 0, 0, 933, 0, 16, 0, 17, 0, 0, 0, 18, 1522, 0, 0, 0, 0, 19, 0, 929, 0, 0, 0, 991, 0, 20, 0, 21, 0, 0, 1001, 0, 0, 929, 22, 1353, 0, 0, 0, 0, 0, 0, 843, 0, 0, 0, 0, 0, 4992, 0, 1523, 0, 23, 1657, 1524, 0, 0, 1558, 0, 2787, 0, 0, 0, 0, 0, 0, 0, 1559, 0, 24, 0, 0, 0, 0, 843, 0, 1560, 0, 0, 3417, 3845, 0, 0, 0, 0, 1606, 1526, 3729, 1561, 0, 0, 0, 0, 0, 0, 0, 5041, 0, 0, 0, 0, 0, 0, 0, 0, 3473, 843, 0, 0, 2688, 3479, 0, 0, 0, 0, 0, 25, 26, 1353, 1353, 0, 0, 27, 0, 1607, 0, 0, 3567, 35, 1353, 1563, 1564, 0, 1528, 0, 0, 28, 0, 0, 0, 1972, 843, 1529, 0, 0, 0, 0, 0, 0, 0, 0, 1530, 0, 0, 29, 0, 0, 0, 843, 1608, 0, 0, 1565, 0, 0, 0, 0, 891, 0, 0, 0, 1532, 0, 891, 0, 0, 0, 0, 0, 0, 1533, 4242, 0, 0, 1534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 1353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 1353, 891, 0, 0, 0, 32, 33, 0, 34, 0, 0, 0, 0, 35, 1353, 0, 0, 0, 1566, 36, 0, 0, 37, 0, 0, 0, 1535, 0, 0, 38, 0, 0, 0, 0, 0, 0, 39, 40, 0, 4292, 0, 4294, 1353, 0, 41, 1353, 0, 3366, 42, 0, 0, 0, 0, 1353, 1353, 0, 0, 0, 43, 0, 0, 1353, 1353, 0, 0, 0, 1353, 0, 0, 0, 0, 0, 0, 1353, 44, 0, 1353, 1353, 0, 0, 0, 0, 0, 1353, 0, 0, 0, 843, 843, 843, 843, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 630, 0, 46, 4162, 0, 0, 0, 3417, 47, 0, 0, 0, 3417, 48, 0, 3417, 630, 0, 3729, 0, 5204, 0, 0, 1353, 0, 976, 49, 0, 0, 0, 0, 0, 0, 0, 1353, 0, 0, 0, 4207, 0, 0, 0, 1353, 0, 3466, 0, 2073, 0, 0, 2074, 50, 0, 0, 2075, 2076, 2077, 0, 0, 0, 782, 0, 0, 1353, 0, 0, 0, 0, 0, 0, 56, 0, 0, -136, 2579, 0, 1704, 0, 0, 0, 0, 4396, 0, 1548, 2580, 0, 0, 4403, 0, 1549, 0, 2581, 0, 0, 1119, 0, 0, 2787, 0, 0, 0, 5259, 0, 0, 0, 0, 0, 0, 891, 0, 0, 0, 0, 0, 0, 0, 0, 2582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1551, 0, 0, 1061, 0, 1064, 0, 0, 1066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1369, 0, 0, 1092, 0, 0, 0, 0, 0, 1096, 0, 0, 0, 1353, 0, 0, 0, 0, 0, 0, 1353, 0, 0, 0, 0, 0, 0, 0, 2688, 0, 0, 0, 2688, 0, 0, 0, 0, 1552, 0, 0, 0, 0, 0, 929, 1553, 0, 0, 1554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2073, 929, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 1555, 0, 0, 0, 0, 2583, 1369, 0, 0, 0, 2584, 0, 0, 0, 0, 1353, 0, 0, 0, 0, 2580, 0, 0, 0, 0, 0, 0, 2581, 0, 0, 1369, 630, 0, 2585, 2264, 0, 1556, 0, 2787, 0, 0, 0, 0, 0, 4565, 0, 4567, 1972, 4569, 0, 0, 0, 0, 2582, 2586, 0, 0, 0, 0, 0, 0, 891, 3845, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 929, 891, 3867, 0, 0, 0, 891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2322, 0, 3738, 0, 0, 0, 0, 0, 843, 0, 0, 0, 1657, 0, 2587, 891, 1558, 2588, 0, 843, 0, 0, 0, 0, 0, 0, 1559, 0, 0, 0, 0, 0, 0, 0, 0, 1560, 0, 0, 0, 3770, 0, 3770, 0, 3770, 3770, 0, 0, 1561, 3770, 3770, 3770, 0, 3770, 3770, 3770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 1353, 2584, 0, 1353, 0, 0, 1353, 1353, 1353, 3745, 0, 0, 1563, 1564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2585, 2264, 0, 0, 0, 3847, 2589, 0, 0, 1353, 1353, 0, 0, 1353, 0, 0, 0, 0, 0, 0, 3746, 2586, 0, 0, 1580, 1581, 0, 0, 0, 0, 3875, 0, 0, 0, 1353, 0, 0, 0, 0, 0, 1353, 0, 0, 0, 3417, 0, 0, 0, 5204, 0, 0, 1353, 0, 5484, 0, 0, 0, 0, 0, 0, 0, 0, 2322, 0, 4799, 0, 0, 1353, 0, 0, 0, 0, 0, 0, 0, 0, 2587, 0, 4799, 976, 929, 0, 929, 0, 0, 0, 0, 0, 0, 1566, 0, 0, 0, 0, 0, 1808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2513, 0, 1820, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 2967, 0, 940, 976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1842, 1843, 0, 0, 0, 0, 0, 0, 0, 1548, 0, 0, 0, 0, 0, 1549, 0, 0, 0, 0, 2688, 0, 0, 3479, 0, 3479, 1880, 0, 2589, 0, 2688, 0, 0, 0, 940, 0, 2073, 0, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 4992, 0, 0, 0, 0, 843, 0, 0, 0, 0, 843, 0, 0, 0, 1551, 0, 0, 2579, 0, 2787, 1918, 1920, 0, 0, 0, 0, 0, 2580, 0, 843, 0, 0, 891, 5041, 2581, 0, 5623, 0, 0, 0, 891, 0, 0, 0, 0, 0, 0, 929, 843, 4799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2582, 0, 0, 0, 0, 2688, 0, 0, 0, 0, 1552, 0, 0, 0, 0, 0, 0, 1553, 0, 0, 1554, 0, 0, 0, 2513, 1353, 0, 0, 0, 1353, 0, 1353, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 1353, 0, 1555, 0, 0, 0, 0, 630, 0, 0, 1353, 0, 0, 0, 5692, 0, 0, 0, 0, 0, 0, 1353, 0, 0, 0, 0, 0, 0, 1353, 0, 891, 0, 891, 0, 0, 0, 2073, 0, 1556, 2074, 1119, 0, 0, 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 843, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 2580, 0, 2584, 0, 0, 0, 0, 2581, 0, 0, 0, 0, 0, 0, 0, 0, 1353, 0, 0, 0, 0, 0, 1353, 1353, 0, 2585, 2264, 929, 929, 929, 929, 0, 0, 2582, 0, 0, 1657, 0, 0, 0, 1558, 0, 0, 0, 0, 0, 2586, 0, 0, 0, 1559, 0, 0, 891, 0, 0, 0, 0, 1353, 1560, 0, 0, 638, 0, 0, 0, 630, 1548, 687, 638, 0, 1561, 0, 1549, 739, 0, 638, 0, 0, 0, 1704, 0, 638, 0, 792, 0, 1704, 2322, 0, 0, 0, 843, 0, 0, 3417, 891, 0, 0, 0, 0, 0, 2587, 0, 854, 854, 0, 0, 0, 0, 0, 4260, 0, 0, 1563, 1564, 0, 0, 0, 1551, 843, 0, 0, 0, 3479, 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 5083, 0, 0, 5085, 0, 0, 0, 0, 0, 0, 4261, 0, 1353, 2583, 0, 0, 0, 0, 2584, 0, 0, 1353, 1353, 1353, 0, 0, 0, 1972, 0, 0, 0, 3729, 5100, 0, 1353, 0, 0, 0, 0, 1552, 0, -2896, -2896, 1353, 0, 1353, 1553, 1353, 5484, 1554, 0, 0, 0, 0, 4799, 0, 891, 0, 0, 2589, 0, 0, 2586, 0, 1972, 0, 976, 0, 0, 0, 4308, 0, 0, 0, 0, 1353, 1555, 0, 3479, 1566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2769, 0, 0, 891, 0, 0, -2896, 0, 0, 0, 0, 0, 0, 1972, 1972, 1556, 0, 0, 0, 0, 2587, 0, 931, 0, 0, 2808, 935, 0, 0, 0, 0, 4356, 0, 0, 978, 0, 0, 980, 0, 0, 985, 986, 0, 989, 929, 992, 0, 0, 998, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 5953, 0, 0, 0, 0, 0, 2513, 0, 0, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 891, 1657, 0, 0, 0, 1558, 0, 0, 0, 0, 1353, 0, 0, 0, 4399, 1559, 0, 2898, 0, 0, 0, 0, 0, 1353, 1560, 0, 0, 5692, 2589, 0, 0, 0, 0, 1353, 0, 0, 1561, 0, 0, 0, 0, 0, 3466, 1353, 891, 0, 0, 2924, 2925, 2926, 2927, 0, 0, 0, 0, 0, 0, 0, 5246, 940, 3770, 0, 0, 0, 0, 0, 0, 0, 0, 891, 0, 0, 4430, 4430, 929, 4318, 0, 0, 1563, 1564, 0, 1972, 4446, 0, 0, 0, 0, 1119, 0, 1119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5271, 5272, 0, 0, 0, 2787, 0, 0, 0, 4319, 0, 0, 1353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4799, 0, 0, 0, 0, 0, 0, 2513, 940, 940, 6071, 0, 4501, 0, 1353, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 1972, 1972, 6081, 0, 0, 0, 0, 1353, 1353, 0, 0, 0, 0, 6087, 0, 0, 0, 0, 0, 0, 0, 4537, 1119, 0, 0, 0, 0, 0, 0, 0, 1566, 0, 0, 0, 0, 929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2980, 2981, 5315, 5316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2998, 0, 0, 5953, 929, 929, 0, 0, 0, 4799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2688, 0, 0, 0, 0, 0, 0, 0, 630, 1353, 0, 0, 0, 0, 0, 3041, 3042, 3043, 3044, 0, 0, 0, 0, 1353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1353, 2073, 0, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2579, 0, 0, 0, 0, 6165, 6166, 630, 6169, 5692, 2580, 0, 3466, 0, 0, 0, 0, 2581, 0, 0, 0, 0, 0, 0, 929, 3479, 0, 4799, 0, 0, 0, 3118, 5409, 0, 0, 5411, 5412, 3122, 0, 0, 0, 0, 0, 2582, 0, 0, 0, 4207, 0, 0, 0, 3479, 0, 0, 0, 5417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1353, 630, 0, 0, 0, 1353, 4688, 0, 0, 630, 2073, 0, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 1028, 940, 940, 0, 0, 6231, 0, 0, 0, 0, 0, 1065, 0, 0, 0, 1069, 0, 2579, 0, 0, 0, 0, 1082, 1083, 0, 0, 1089, 2580, 1093, 1094, 0, 0, 0, 0, 2581, 0, 0, 0, 0, 0, 0, 0, 0, 1116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2582, 1129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 941, 951, 2584, 0, 0, 0, 0, 1157, 941, 1159, 951, 941, 0, 0, 0, 0, 0, 0, 0, 1175, 0, 0, 0, 0, 951, 2585, 2264, 0, 0, 0, 0, 0, 0, 891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2586, 0, 0, 0, 0, 0, 638, 0, 0, 0, 0, 0, 0, 3300, 0, 0, 0, 0, 0, 2073, 0, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 0, 0, 0, 3479, 0, 0, 0, 0, 2688, 0, 2322, 0, 0, 0, 0, 2579, 0, 0, 0, 0, 0, 0, 0, 2583, 2587, 2580, 0, 2588, 2584, 0, 0, 0, 2581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2585, 2264, 0, 0, 0, 854, 0, 2582, 0, 0, 0, 0, 4446, 0, 0, 0, 0, 0, 0, 0, 0, 2586, 0, 0, 0, 0, 0, 0, 2073, 0, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 4893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4908, 0, 2579, 0, 4909, 0, 4910, 0, 0, 2322, 0, 0, 2580, 2589, 0, 0, 0, 0, 0, 2581, 0, 0, 0, 2587, 0, 0, 2588, 0, 0, 0, 0, 0, 0, 0, 0, 1509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2582, 0, 0, 0, 0, 0, 0, 4950, 0, 0, 0, 891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3770, 2583, 0, 0, 0, 3770, 2584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2585, 2264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1688, 0, 5716, 0, 0, 0, 2513, 2589, 0, 2586, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 1809, 0, 0, 5021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1821, 0, 1822, 0, 0, 0, 0, 0, 0, 0, 2322, 2583, 1825, 0, 0, 5752, 2584, 0, 0, 1835, 0, 0, 0, 5055, 2587, 0, 4446, 2588, 0, 0, 0, 0, 0, 0, 891, 0, 0, 0, 0, 2585, 2264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2586, 0, 1887, 0, 1889, 0, 0, 0, 0, 2513, 0, 0, 0, 0, 891, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 5129, 0, 0, 0, 0, 891, 0, 0, 0, 0, 2322, 5104, 5104, 5104, 5104, 951, 5104, 5104, 5104, 5104, 5104, 0, 0, 0, 2587, 0, 2589, 2588, 0, 0, 0, 0, 0, 0, 951, 0, 0, 5841, 0, 0, 951, 0, 0, 0, 0, 0, 0, 638, 0, 638, 0, 638, 951, 638, 0, 638, 638, 638, 0, 0, 0, 0, 638, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 1993, 0, 0, 0, 891, 0, 0, 0, 941, 951, 0, 0, 0, 3300, 0, 941, 0, 951, 941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 951, 0, 2589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2513, 0, 0, 5181, 0, 5183, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2073, 0, 0, 2074, 5168, 0, 0, 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 2579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2580, 0, 0, 0, 0, 0, 0, 2581, 0, 0, 0, 0, 0, 951, 5396, 0, 891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2582, 2073, 0, 2513, 2074, 951, 0, 0, 2075, 2076, 2077, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 5172, 0, 0, 2579, 0, 0, 0, 0, 0, 0, 0, 3540, 0, 2580, 0, 854, 0, 0, 0, 0, 2581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 2073, 2582, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2580, 0, 0, 0, 0, 0, 0, 2581, 2583, 0, 0, 0, 891, 2584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5312, 5313, 0, 0, 2582, 0, 0, 2585, 2264, 0, 0, 0, 0, 3770, 0, 3770, 3770, 3770, 0, 0, 0, 0, 0, 0, 2749, 0, 0, 0, 2586, 6097, 0, 0, 0, 0, 0, 0, 0, 0, 3680, 1791, 0, 3683, 0, 0, 0, 0, 951, 0, 0, 0, 2583, 0, 3479, 0, 0, 2584, 0, 941, 0, 0, 0, 941, 0, 941, 0, 0, 0, 0, 0, 2322, 0, 0, 0, 0, 0, 0, 0, 0, 2585, 2264, 0, 5364, 0, 2587, 0, 0, 2588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2841, 0, 0, 2586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 5392, 0, 0, 0, 2584, 0, 0, 0, 0, 3774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2322, 0, 3787, 0, 0, 0, 0, 2585, 2264, 0, 3796, 0, 0, 0, 2587, 0, 0, 2588, 0, 0, 0, 0, 0, 5104, 0, 0, 0, 0, 2586, 0, 951, 0, 3479, 0, 0, 0, 2589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3840, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2322, 3864, 0, 2073, 0, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 2587, 0, 0, 2588, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 2579, 0, 0, 951, 0, 0, 0, 0, 2589, 0, 2580, 0, 0, 0, 3919, 0, 3921, 2581, 0, 0, 951, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2513, 0, 0, 0, 2582, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 2073, 0, 5424, 2074, 0, 0, 891, 2075, 2076, 2077, 0, 891, 891, 0, 2971, 0, 0, 0, 2589, 0, 0, 0, 0, 0, 0, 0, 0, 2579, 0, 0, 4446, 0, 0, 0, 0, 0, 0, 2580, 0, 0, 0, 0, 0, 0, 2581, 3976, 0, 0, 0, 3007, 0, 2513, 3983, 0, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 2582, 0, 0, 5435, 0, 0, 3770, 0, 0, 0, 0, 0, 0, 0, 0, 5570, 0, 0, 0, 0, 0, 0, 0, 951, 0, 3072, 0, 0, 0, 2583, 0, 951, 951, 0, 2584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3090, 0, 0, 0, 0, 2513, 0, 0, 5396, 891, 0, 0, 2585, 2264, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 3110, 5445, 3111, 0, 0, 0, 0, 2586, 0, 0, 0, 0, 0, 1791, 0, 0, 0, 3120, 0, 3121, 0, 0, 0, 0, 0, 638, 0, 638, 0, 638, 0, 638, 891, 638, 0, 0, 0, 638, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 2322, 2584, 2073, 0, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 2587, 0, 0, 2588, 0, 0, 0, 0, 0, 0, 2585, 2264, 3180, 0, 0, 2579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2580, 0, 0, 0, 0, 0, 2586, 2581, 2073, 0, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2582, 0, 2579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2580, 0, 2322, 0, 0, 0, 0, 2581, 0, 0, 0, 0, 0, 0, 0, 0, 2587, 0, 0, 2588, 0, 0, 0, 2589, 0, 0, 0, 0, 0, 890, 0, 0, 0, 2582, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 5761, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2073, 0, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2579, 0, 0, 0, 0, 881, 0, 0, 0, 0, 2580, 0, 0, 0, 0, 0, 0, 2581, 0, 2583, 0, 0, 0, 0, 2584, 2589, 0, 0, 0, 0, 0, 4248, 4249, 0, 0, 0, 0, 0, 0, 0, 0, 2513, 0, 2582, 0, 0, 951, 2585, 2264, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 5500, 2583, 0, 0, 0, 2586, 2584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2585, 2264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2322, 0, 0, 0, 2586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2587, 0, 0, 2588, 2513, 0, 0, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 5534, 0, 883, 0, 0, 2322, 0, 1119, 0, 2583, 0, 5915, 951, 5916, 2584, 0, 0, 5921, 5922, 2587, 0, 0, 2588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2585, 2264, 0, 0, 0, 0, 0, 0, 0, 0, 1791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2586, 0, 0, 0, 0, 0, 0, 0, 0, 2589, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2589, 2587, 0, 0, 2588, 0, 0, 0, 0, 0, 4420, 0, 0, 0, 0, 941, 941, 0, 951, 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 941, 0, 951, 941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 951, 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2513, 0, 1704, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 5536, 0, 0, 0, 941, 0, 0, 0, 941, 941, 0, 0, 0, 0, 0, 2589, 0, 0, 0, 0, 0, 0, 0, 2513, 0, 0, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 5575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2073, 0, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 0, 0, 4573, 0, 0, 0, 2579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2580, 0, 0, 0, 0, 0, 0, 2581, 0, 0, 0, 0, 2513, 0, 0, 0, 1791, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 2582, 5903, 0, 0, 0, 0, 0, 0, 699, 0, 0, 0, 0, 2738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3469, 3470, 0, 2739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 702, 0, 0, 3485, 3486, 0, 3488, 3489, 0, 0, 0, 3492, 3493, 0, 0, 0, 703, 0, 0, 0, 0, 0, 6194, 0, 0, 2539, 3504, 0, 0, 0, 0, 0, 0, 3513, 1034, 0, 0, 3516, 3517, 0, 0, 3520, 3521, 0, 0, 0, 0, 0, 3526, 0, 0, 2583, 0, 0, 0, 0, 2584, 890, 2740, 0, 3541, 0, 0, 0, 0, 0, 0, 6194, 0, 706, 0, 0, 3558, 0, 0, 0, 0, 3560, 707, 2585, 2264, 0, 0, 890, 0, 6194, 0, 0, 5181, 0, 0, 708, 3566, 0, 0, 0, 0, 2741, 0, 0, 2586, 3573, 0, 0, 3577, 0, 3579, 3582, 3584, 0, 0, 0, 0, 3592, 3595, 0, 0, 881, 0, 0, 0, 0, 0, 3608, 1037, 0, 0, 0, 0, 3618, 0, 0, 0, 3621, 0, 0, 0, 0, 0, 0, 0, 2322, 0, 881, 0, 3631, 3632, 0, 0, 0, 3637, 0, 0, 0, 0, 2587, 3646, 3647, 2588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3656, 0, 0, 3657, 0, 0, 0, 712, 0, 0, 3669, 3670, 0, 0, 0, 0, 3674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3681, 0, 0, 3684, 0, 0, 0, 0, 3687, 0, 0, 0, 0, 0, 3690, 3691, 2073, 0, 0, 2074, 2742, 0, 3697, 2075, 2076, 2077, 3699, 890, 0, 0, 3706, 3707, 3708, 3709, 0, 3711, 0, 0, 0, 0, 0, 0, 0, 2579, 0, 0, 0, 0, 3736, 3737, 2589, 3739, 0, 2580, 213, 2743, 0, 0, 717, 0, 2581, 0, 3748, 3749, 3750, 883, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1041, 2582, 881, 2744, 0, 0, 883, 0, 0, 0, 721, 0, 0, 0, 0, 0, 0, 722, 0, 0, 723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3802, 0, 0, 0, 0, 724, 0, 0, 3826, 0, 0, 0, 1043, 0, 0, 0, 0, 0, 0, 726, 0, 0, 1044, 0, 0, 0, 728, 3838, 0, 2073, 0, 0, 2074, 2513, 2745, 0, 2075, 2076, 2077, 0, 0, 2746, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 5925, 2579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2580, 733, 0, 0, 890, 0, 0, 2581, 4972, 0, 0, 3906, 0, 0, 0, 890, 2583, 0, 0, 0, 0, 2584, 4974, 0, 0, 0, 0, 0, 0, 0, 3920, 890, 3922, 2582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2585, 2264, 0, 0, 883, 0, 0, 0, 0, 0, 0, 0, 0, 1791, 0, 0, 0, 0, 0, 0, 881, 2586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2322, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 2587, 0, 0, 2588, 0, 0, 0, 3984, 0, 0, 951, 0, 0, 0, 951, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, 951, 2583, 0, 0, 0, 0, 2584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2073, 0, 951, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 0, 2585, 2264, 0, 0, 0, 0, 941, 0, 941, 941, 0, 0, 890, 0, 2579, 0, 0, 0, 0, 0, 0, 2586, 0, 951, 2580, 0, 0, 0, 0, 0, 0, 2581, 0, 0, 883, 0, 0, 2589, 0, 0, 0, 0, 0, 951, 951, 883, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2582, 0, 0, 0, 883, 2322, 0, 884, 0, 0, 0, 0, 0, 0, 0, 881, 0, 1791, 951, 2587, 0, 1791, 2588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 951, 0, 1791, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 951, 0, 0, 951, 0, 0, 0, 0, 950, 951, 2513, 0, 0, 0, 0, 0, 0, 950, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 951, 0, 950, 6113, 0, 0, 951, 0, 2557, 0, 0, 2589, 0, 951, 2583, 0, 0, 0, 0, 2584, 0, 0, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 951, 0, 2585, 2264, 0, 1791, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, 883, 0, 0, 2586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4233, 0, 0, 0, 2322, 0, 0, 0, 0, 890, 0, 1791, 0, 2513, 0, 0, 0, 0, 2587, 0, 4245, 2588, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 6130, 0, 4252, 0, 0, 0, 4252, 0, 0, 0, 0, 4263, 4264, 4265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5307, 0, 0, 881, 0, 0, 0, 0, 0, 0, 890, 0, 0, 0, 0, 5311, 4295, 4296, 4297, 4298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2589, 4314, 0, 0, 0, 0, 890, 0, 0, 4317, 0, 4321, 4322, 4323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 951, 0, 1791, 0, 0, 0, 5369, 0, 0, 0, 0, 881, 0, 0, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 941, 0, 941, 941, 0, 0, 0, 0, 0, 0, 0, 881, 0, 0, 2513, 0, 883, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 6171, 0, 0, 4407, 0, 0, 0, 0, 0, 0, 0, 0, 4413, 0, 0, 0, 0, 0, 0, 699, 0, 0, 0, 0, 1030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4423, 4424, 0, 0, 0, 4425, 0, 0, 0, 883, 1791, 0, 0, 0, 0, 0, 1791, 0, 0, 0, 0, 0, 0, 0, 1031, 0, 0, 4467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 702, 1032, 0, 0, 950, 0, 0, 0, 0, 0, 0, 0, 1033, 883, 0, 0, 703, 0, 0, 0, 0, 0, 0, 950, 0, 0, 0, 0, 0, 950, 0, 0, 890, 0, 1034, 0, 0, 0, 0, 0, 0, 950, 4504, 890, 0, 0, 883, 4510, 0, 0, 0, 0, 0, 4516, 0, 0, 0, 950, 1035, 890, 0, 0, 0, 5506, 951, 5508, 0, 0, 0, 706, 0, 0, 950, 0, 0, 0, 0, 0, 707, 0, 950, 0, 0, 4555, 0, 0, 0, 0, 0, 0, 0, 708, 881, 0, 950, 0, 0, 1036, 0, 0, 0, 0, 0, 881, 950, 0, 0, 0, 0, 0, 0, 0, 4570, 890, 4571, 0, 0, 0, 0, 881, 0, 0, 0, 0, 1037, 0, 0, 0, 890, 0, 0, 890, 890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 884, 0, 0, 0, 0, 1038, 0, 950, 0, 0, 0, 0, 890, 890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 881, 0, 0, 884, 712, 0, 0, 0, 0, 0, 0, 0, 950, 0, 0, 881, 0, 0, 881, 881, 0, 951, 951, 0, 0, 0, 0, 0, 0, 0, 0, 2073, 0, 0, 2074, 0, 0, 950, 2075, 2076, 2077, 0, 0, 0, 5635, 1039, 0, 0, 951, 881, 881, 951, 0, 0, 0, 0, 0, 0, 2579, 0, 0, 0, 3424, 0, 0, 883, 0, 0, 2580, 715, 0, 0, 0, 0, 0, 2581, 883, 0, 0, 213, 1040, 0, 0, 717, 0, 0, 0, 886, 0, 0, 0, 0, 883, 0, 0, 0, 0, 950, 0, 0, 0, 2582, 0, 0, 0, 0, 0, 0, 0, 0, 1041, 0, 0, 1042, 0, 0, 0, 720, 0, 0, 721, 0, 0, 1791, 1791, 1791, 890, 722, 0, 0, 723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 884, 883, 0, 951, 724, 0, 0, 3425, 0, 0, 0, 1043, 0, 0, 0, 0, 883, 0, 726, 883, 883, 1044, 951, 0, 0, 728, 0, 0, 0, 0, 0, 0, 0, 1045, 0, 730, 0, 0, 0, 0, 1046, 881, 0, 0, 951, 0, 0, 0, 0, 0, 883, 883, 0, 0, 0, 0, 0, 0, 5748, 0, 5750, 0, 1790, 0, 0, 0, 733, 0, 0, 950, 0, 2583, 0, 0, 0, 0, 2584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2585, 2264, 0, 0, 0, 0, 4803, 0, 0, 4810, 0, 4811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2586, 0, 0, 4818, 0, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 4824, 0, 0, 0, 4827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4853, 0, 0, 2322, 884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 884, 0, 2587, 4857, 1791, 2588, 0, 0, 0, 4861, 951, 0, 951, 0, 883, 0, 884, 0, 0, 0, 950, 0, 887, 0, 0, 951, 0, 951, 0, 0, 0, 0, 0, 0, 4896, 0, 0, 0, 4900, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4911, 4912, 4913, 4914, 0, 0, 0, 0, 0, 0, 4918, 4919, 4920, 4921, 0, 0, 0, 0, 0, 4923, 4924, 0, 0, 0, 0, 4931, 4932, 950, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 0, 0, 0, 950, 0, 951, 2589, 0, 0, 4949, 0, 0, 0, 4952, 4953, 4954, 4955, 0, 0, 2073, 950, 0, 2074, 0, 0, 950, 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 4252, 0, 0, 0, 0, 0, 0, 5939, 0, 2579, 951, 0, 0, 0, 0, 0, 0, 0, 4975, 2580, 0, 0, 0, 0, 0, 0, 2581, 0, 0, 951, 3426, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 884, 0, 0, 0, 0, 2582, 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2513, 0, 0, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 0, 5056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 950, 0, 0, 0, 0, 0, 0, 6024, 950, 950, 0, 0, 4252, 0, 0, 0, 0, 0, 0, 5081, 0, 5082, 0, 0, 0, 0, 0, 4057, 0, 0, 0, 0, 0, 4058, 0, 0, 0, 0, 0, 1791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5097, 0, 0, 2583, 0, 0, 0, 0, 2584, 0, 0, 0, 1790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2585, 2264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2073, 0, 2586, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 6101, 0, 0, 0, 0, 0, 0, 0, 0, 2579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2580, 0, 0, 0, 0, 0, 2322, 2581, 0, 0, 0, 1092, 1092, 0, 0, 0, 0, 0, 0, 0, 2587, 0, 0, 2588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2582, 0, 890, 0, 0, 0, 890, 890, 0, 0, 0, 0, 0, 886, 0, 0, 0, 0, 884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 881, 0, 890, 0, 881, 881, 0, 0, 890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4059, 0, 1092, 0, 0, 884, 0, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5248, 5249, 5250, 0, 0, 1791, 5251, 5252, 5253, 5254, 1791, 0, 1791, 5256, 890, 0, 0, 0, 2583, 0, 0, 0, 0, 2584, 0, 0, 0, 881, 0, 884, 0, 0, 0, 881, 0, 0, 1791, 0, 0, 0, 0, 0, 0, 0, 950, 0, 2585, 2264, 0, 0, 0, 5276, 5277, 5278, 5279, 5280, 0, 5282, 5283, 0, 0, 0, 884, 0, 0, 0, 0, 2586, 0, 5292, 5293, 0, 0, 0, 881, 0, 0, 0, 0, 0, 0, 0, 0, 951, 886, 2513, 951, 0, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 5299, 0, 0, 0, 2322, 0, 0, 883, 0, 0, 0, 883, 883, 0, 0, 0, 0, 0, 2587, 0, 0, 2588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4678, 0, 0, 0, 0, 0, 0, 0, 0, 950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 887, 0, 0, 0, 883, 0, 0, 951, 951, 0, 883, 0, 0, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 1790, 887, 0, 0, 0, 0, 0, 0, 0, 0, 951, 0, 5362, 0, 0, 0, 0, 0, 0, 0, 0, 2589, 0, 950, 0, 0, 883, 0, 0, 890, 0, 950, 0, 0, 0, 0, 0, 0, 4679, 950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 886, 0, 0, 0, 0, 0, 0, 0, 884, 0, 0, 886, 0, 0, 0, 0, 0, 0, 0, 884, 0, 0, 0, 0, 0, 5413, 0, 886, 0, 0, 0, 950, 950, 0, 0, 884, 0, 881, 0, 951, 0, 0, 1791, 0, 0, 950, 0, 0, 0, 0, 890, 0, 0, 0, 890, 0, 0, 5419, 950, 950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2513, 0, 0, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 884, 0, 887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 884, 0, 0, 884, 884, 0, 881, 0, 0, 0, 881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2073, 0, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 884, 884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2073, 638, 2579, 2074, 0, 0, 890, 2075, 2076, 2077, 0, 0, 2580, 0, 0, 0, 0, 0, 0, 2581, 0, 890, 0, 0, 0, 0, 890, 2579, 0, 0, 3993, 0, 883, 886, 0, 0, 0, 2580, 0, 0, 0, 0, 0, 0, 2581, 2582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 890, 0, 0, 0, 0, 0, 0, 1790, 0, 0, 5523, 881, 0, 0, 0, 2582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 881, 0, 0, 5533, 0, 881, 0, 0, 0, 5539, 5540, 0, 0, 0, 0, 0, 0, 0, 0, 5551, 0, 887, 0, 0, 883, 0, 5553, 0, 883, 0, 0, 0, 887, 0, 881, 0, 0, 0, 0, 0, 0, 0, 0, 884, 0, 0, 951, 0, 887, 0, 0, 0, 0, 5979, 0, 0, 0, 0, 0, 0, 0, 5605, 5606, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5614, 0, 5616, 0, 0, 2583, 0, 0, 0, 0, 2584, 0, 0, 0, 0, 0, 951, 5630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 951, 0, 2583, 0, 0, 2585, 2264, 2584, 0, 0, 0, 0, 0, 0, 4252, 0, 0, 0, 0, 0, 0, 0, 5664, 0, 0, 0, 2586, 0, 0, 883, 2585, 2264, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, 883, 0, 0, 0, 0, 883, 0, 2586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 889, 0, 0, 2322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 883, 0, 0, 2587, 0, 0, 2588, 0, 0, 0, 0, 0, 889, 0, 2322, 0, 0, 0, 5706, 0, 0, 0, 0, 0, 0, 887, 0, 886, 2587, 5980, 0, 2588, 0, 0, 0, 1791, 0, 0, 0, 0, 0, 890, 5726, 0, 890, 0, 890, 0, 0, 0, 0, 890, 0, 5733, 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 886, 0, 2589, 0, 0, 890, 0, 881, 0, 0, 881, 0, 881, 890, 0, 0, 0, 881, 0, 0, 0, 0, 0, 0, 0, 0, 5792, 2589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 890, 0, 0, 886, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 889, 0, 0, 0, 0, 881, 0, 0, 0, 0, 0, 0, 0, 881, 886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4252, 0, 881, 0, 0, 0, 0, 0, 2513, 0, 0, 0, 890, 0, 890, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 0, 0, 0, 2513, 0, 0, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 0, 0, 883, 0, 0, 883, 0, 883, 0, 0, 0, 5891, 883, 0, 0, 0, 0, 881, 0, 881, 0, 0, 951, 0, 951, 5904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 890, 0, 0, 0, 0, 0, 0, 883, 0, 0, 0, 0, 0, 0, 0, 883, 0, 951, 889, 0, 0, 0, 0, 0, 1790, 0, 0, 941, 0, 889, 0, 5943, 0, 0, 0, 0, 0, 0, 0, 0, 883, 0, 890, 0, 0, 889, 0, 0, 2073, 887, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 881, 0, 886, 0, 0, 0, 0, 1791, 0, 0, 890, 0, 941, 886, 0, 2579, 0, 0, 0, 950, 0, 0, 0, 0, 0, 2580, 0, 0, 0, 886, 887, 0, 2581, 0, 0, 0, 0, 950, 0, 0, 0, 950, 881, 0, 0, 950, 0, 0, 0, 0, 883, 0, 883, 0, 950, 0, 0, 0, 2582, 0, 0, 0, 0, 887, 0, 6018, 0, 0, 0, 0, 881, 0, 950, 0, 0, 0, 0, 0, 890, 0, 0, 0, 0, 886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6030, 886, 0, 890, 886, 886, 0, 0, 0, 950, 0, 6040, 884, 0, 0, 0, 884, 884, 0, 0, 0, 0, 0, 0, 0, 890, 0, 0, 0, 950, 950, 0, 0, 0, 0, 886, 886, 0, 0, 0, 0, 881, 0, 0, 0, 889, 0, 0, 0, 883, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1790, 950, 0, 881, 1790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 884, 0, 2583, 0, 0, 0, 884, 2584, 0, 0, 0, 881, 0, 0, 950, 2073, 1790, 883, 2074, 0, 950, 0, 2075, 2076, 2077, 0, 0, 0, 0, 0, 2585, 2264, 0, 890, 950, 0, 0, 0, 0, 6107, 0, 950, 2579, 0, 950, 883, 0, 884, 0, 0, 950, 2586, 2580, 0, 0, 951, 954, 0, 0, 2581, 0, 0, 0, 0, 0, 0, 0, 0, 988, 951, 950, 0, 0, 0, 0, 0, 950, 890, 0, 1007, 0, 0, 0, 950, 887, 2582, 0, 0, 0, 0, 0, 0, 2322, 881, 0, 887, 0, 950, 886, 0, 1791, 0, 890, 0, 0, 0, 2587, 0, 0, 2588, 950, 887, 0, 883, 0, 1790, 0, 0, 0, 0, 0, 950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 883, 0, 881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2073, 0, 0, 2074, 0, 883, 0, 2075, 2076, 2077, 881, 0, 0, 887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2579, 887, 1790, 4062, 887, 887, 0, 0, 0, 0, 2580, 0, 0, 0, 0, 0, 0, 2581, 0, 0, 2589, 2583, 1791, 0, 0, 0, 2584, 0, 0, 0, 0, 0, 0, 0, 0, 887, 887, 0, 0, 0, 0, 0, 0, 2582, 0, 0, 0, 889, 0, 2585, 2264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 883, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2586, 2073, 0, 0, 2074, 0, 0, 884, 2075, 2076, 2077, 0, 0, 890, 0, 0, 0, 1791, 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, 2579, 0, 0, 0, 0, 0, 883, 0, 0, 0, 2580, 0, 0, 2322, 0, 0, 889, 2581, 0, 0, 0, 0, 0, 4004, 2513, 0, 0, 2587, 0, 0, 2588, 883, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 2582, 0, 881, 0, 0, 0, 4030, 0, 0, 884, 0, 0, 0, 884, 889, 0, 950, 2583, 1790, 0, 0, 0, 2584, 0, 0, 0, 0, 0, 0, 0, 0, 887, 890, 0, 0, 950, 0, 0, 0, 0, 0, 0, 950, 0, 0, 2585, 2264, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 890, 0, 0, 0, 0, 0, 0, 0, 2586, 0, 0, 0, 0, 0, 0, 0, 951, 0, 0, 2589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 941, 0, 0, 0, 0, 881, 0, 0, 0, 4067, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 2322, 0, 0, 0, 0, 0, 0, 0, 2583, 884, 0, 881, 0, 2584, 2587, 0, 0, 2588, 0, 0, 0, 0, 0, 0, 884, 0, 1790, 0, 0, 884, 0, 0, 1790, 0, 0, 0, 2585, 2264, 0, 0, 0, 883, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 941, 941, 0, 0, 0, 2586, 884, 0, 0, 0, 0, 0, 1027, 0, 0, 0, 0, 0, 1059, 0, 2513, 0, 0, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 890, 0, 0, 0, 2322, 0, 0, 0, 0, 0, 0, 0, 0, 2589, 0, 0, 0, 951, 2587, 0, 0, 2588, 0, 950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 883, 889, 0, 0, 0, 0, 0, 0, 0, 0, 890, 0, 889, 0, 0, 890, 0, 0, 0, 0, 0, 0, 0, 881, 0, 0, 883, 0, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 881, 0, 0, 0, 2589, 881, 0, 0, 2513, 0, 0, 0, 889, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 889, 0, 0, 889, 889, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 950, 950, 1791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1385, 0, 889, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 950, 886, 0, 950, 0, 886, 886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1791, 0, 0, 0, 890, 0, 883, 0, 941, 941, 0, 884, 0, 2513, 884, 0, 884, 0, 1791, 0, 0, 884, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 0, 1443, 0, 0, 0, 0, 0, 0, 886, 0, 0, 0, 0, 0, 886, 0, 0, 0, 883, 0, 1790, 1790, 1790, 883, 0, 0, 0, 0, 0, 881, 0, 0, 2073, 0, 884, 2074, 0, 0, 0, 2075, 2076, 2077, 884, 0, 0, 950, 0, 0, 1579, 0, 0, 0, 0, 0, 0, 886, 0, 0, 0, 2579, 0, 0, 4074, 0, 950, 0, 0, 884, 0, 2580, 889, 0, 0, 0, 0, 0, 2581, 0, 0, 0, 0, 0, 0, 0, 2073, 0, 950, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 890, 0, 0, 0, 0, 0, 2582, 0, 0, 0, 0, 0, 0, 0, 0, 2579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2580, 0, 0, 0, 0, 0, 0, 2581, 0, 0, 0, 0, 0, 0, 0, 890, 884, 0, 884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2582, 0, 881, 0, 890, 0, 0, 0, 0, 1840, 0, 0, 0, 0, 0, 0, 0, 2073, 950, 0, 2074, 883, 0, 0, 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1874, 1877, 1878, 0, 881, 0, 2579, 887, 0, 4685, 0, 887, 887, 0, 0, 0, 2580, 0, 0, 0, 0, 0, 0, 2581, 0, 2583, 881, 1790, 0, 0, 2584, 0, 0, 950, 0, 950, 0, 0, 0, 890, 0, 884, 0, 0, 0, 0, 0, 0, 950, 2582, 950, 0, 0, 2585, 2264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 887, 0, 0, 886, 0, 2586, 887, 0, 2583, 0, 0, 0, 0, 2584, 884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 881, 0, 0, 0, 0, 0, 2585, 2264, 0, 0, 1360, 883, 884, 0, 0, 0, 2322, 887, 950, 0, 0, 0, 0, 0, 0, 0, 0, 2586, 0, 0, 2587, 0, 0, 2588, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 886, 0, 0, 0, 886, 883, 0, 0, 0, 0, 0, 0, 0, 0, 950, 890, 0, 0, 0, 2583, 0, 0, 2322, 0, 2584, 0, 0, 883, 0, 0, 0, 0, 0, 950, 884, 0, 2587, 950, 0, 2588, 0, 0, 0, 0, 0, 0, 0, 2585, 2264, 0, 0, 0, 0, 0, 0, 0, 884, 0, 950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2586, 0, 0, 0, 0, 0, 0, 881, 0, 2589, 884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 883, 0, 0, 0, 0, 0, 0, 886, 0, 2322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 886, 2587, 0, 0, 2588, 886, 0, 2589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 890, 0, 0, 0, 0, 886, 0, 1790, 0, 884, 0, 4615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2513, 887, 0, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 0, 0, 0, 884, 0, 0, 0, 0, 0, 0, 881, 0, 0, 0, 0, 2589, 0, 0, 2664, 890, 883, 0, 0, 0, 0, 0, 0, 0, 884, 0, 2513, 0, 0, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 887, 0, 0, 0, 887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2781, 0, 0, 0, 0, 0, 0, 0, 0, 2804, 0, 0, 0, 0, 0, 0, 2513, 0, 0, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 889, 0, 950, 890, 889, 889, 2842, 0, 0, 0, 0, 0, 2854, 2854, 0, 0, 2854, 0, 0, 0, 883, 0, 0, 887, 0, 0, 0, 0, 0, 2872, 0, 0, 2875, 0, 0, 0, 0, 0, 887, 0, 0, 0, 0, 887, 0, 0, 0, 0, 0, 0, 0, 0, 884, 1790, 0, 0, 0, 0, 1790, 0, 1790, 0, 889, 881, 0, 0, 886, 0, 889, 886, 0, 886, 887, 0, 0, 0, 886, 0, 0, 0, 0, 0, 0, 0, 1790, 0, 0, 0, 2928, 883, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2947, 0, 0, 0, 0, 0, 0, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 886, 0, 0, 0, 0, 0, 0, 950, 886, 0, 950, 890, 0, 0, 0, 0, 890, 890, 884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1335, 1335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 881, 0, 0, 0, 0, 881, 881, 0, 0, 0, 0, 0, 0, 0, 883, 0, 0, 2969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2972, 950, 950, 0, 886, 0, 886, 0, 2073, 0, 0, 2074, 950, 0, 0, 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 950, 890, 0, 0, 0, 0, 2579, 0, 0, 0, 1335, 0, 0, 3016, 2854, 0, 2580, 0, 0, 0, 0, 2073, 0, 2581, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 3051, 0, 0, 0, 0, 0, 0, 3064, 0, 0, 2579, 2582, 890, 0, 0, 0, 0, 0, 0, 0, 2580, 884, 0, 881, 0, 0, 0, 2581, 889, 887, 0, 0, 887, 886, 887, 0, 0, 0, 0, 887, 0, 0, 0, 950, 0, 0, 1790, 0, 0, 0, 0, 883, 0, 2582, 0, 0, 883, 883, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 884, 0, 0, 0, 881, 884, 0, 886, 0, 0, 0, 0, 3125, 0, 0, 0, 0, 0, 0, 887, 0, 0, 0, 0, 0, 1701, 1705, 887, 0, 0, 0, 0, 0, 889, 0, 886, 0, 889, 0, 5130, 0, 0, 0, 0, 0, 1360, 1360, 0, 0, 0, 0, 0, 887, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 3179, 2584, 0, 3181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5136, 0, 0, 0, 0, 2585, 2264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 883, 0, 886, 0, 2584, 0, 2586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 887, 0, 887, 886, 0, 0, 2585, 2264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 889, 0, 0, 0, 0, 0, 0, 886, 2322, 2586, 883, 0, 0, 0, 2524, 889, 0, 884, 0, 0, 889, 0, 2587, 0, 0, 2588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 889, 2322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2587, 0, 0, 2588, 0, 0, 0, 2524, 0, 0, 950, 0, 0, 0, 887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2589, 0, 0, 950, 0, 887, 0, 0, 0, 2022, 0, 0, 0, 0, 0, 950, 0, 0, 886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2073, 884, 0, 2074, 0, 887, 0, 2075, 2076, 2077, 0, 0, 0, 0, 2589, 886, 2041, 0, 0, 0, 0, 0, 950, 0, 0, 0, 0, 2579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2580, 0, 0, 0, 884, 0, 0, 2581, 2060, 2061, 2062, 0, 2064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 884, 0, 0, 0, 0, 0, 2531, 2582, 0, 0, 887, 2513, 0, 0, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 887, 0, 0, 0, 0, 1790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2513, 887, 0, 950, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 889, 0, 0, 889, 0, 889, 0, 5137, 0, 0, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2631, 886, 0, 0, 2643, 2648, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 2584, 0, 0, 0, 0, 0, 0, 0, 0, 887, 0, 0, 0, 0, 0, 950, 0, 0, 0, 0, 0, 889, 0, 2585, 2264, 0, 0, 0, 0, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2586, 0, 0, 2524, 0, 0, 0, 2524, 0, 887, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 884, 0, 0, 0, 0, 0, 0, 0, 886, 0, 0, 887, 0, 0, 0, 0, 0, 0, 2322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2587, 0, 886, 2588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3358, 0, 0, 889, 0, 889, 0, 0, 0, 0, 0, 3363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 950, 0, 950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2073, 0, 0, 2074, 1443, 0, 0, 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2579, 0, 0, 950, 0, 2589, 0, 0, 0, 0, 2580, 0, 0, 0, 0, 0, 884, 2581, 0, 0, 0, 0, 0, 0, 1443, 1443, 0, 0, 0, 0, 0, 0, 0, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2582, 1701, 1701, 1701, 0, 0, 0, 0, 887, 0, 1790, 0, 0, 0, 886, 1360, 0, 0, 2073, 0, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 0, 0, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 884, 0, 0, 2579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2580, 0, 0, 0, 0, 889, 886, 2581, 0, 2513, 0, 886, 0, 0, 5138, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 0, 0, 2582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 0, 0, 0, 2584, 0, 0, 0, 887, 0, 0, 0, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 2585, 2264, 0, 0, 0, 3576, 0, 889, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 3257, 884, 3598, 2586, 0, 0, 0, 0, 0, 0, 0, 889, 0, 0, 0, 2524, 2524, 2524, 0, 2524, 0, 0, 2073, 0, 3626, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583, 0, 2322, 0, 0, 2584, 0, 2579, 0, 0, 0, 0, 0, 0, 0, 886, 2587, 2580, 0, 2588, 0, 0, 0, 0, 2581, 0, 950, 0, 2585, 2264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 950, 0, 0, 0, 0, 0, 0, 0, 0, 2586, 2582, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 887, 0, 0, 0, 3704, 3705, 0, 1790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2322, 884, 0, 0, 0, 889, 884, 884, 0, 0, 0, 0, 0, 0, 2587, 0, 0, 2588, 0, 2589, 0, 887, 0, 0, 0, 0, 887, 0, 0, 0, 889, 0, 0, 0, 0, 0, 0, 3207, 0, 0, 0, 0, 0, 0, 0, 0, 3228, 3228, 3233, 3239, 5666, 0, 886, 3244, 0, 3245, 0, 3247, 0, 0, 3261, 3264, 3269, 0, 0, 0, 0, 0, 3278, 0, 0, 3283, 0, 0, 0, 2583, 0, 0, 0, 3828, 2584, 0, 1790, 0, 0, 0, 0, 0, 3291, 3292, 3293, 0, 886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2585, 2264, 0, 3294, 2589, 0, 0, 0, 0, 0, 0, 886, 0, 0, 0, 0, 884, 0, 2513, 0, 0, 2586, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 0, 0, 0, 0, 1790, 0, 950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2322, 0, 2073, 884, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 887, 2587, 0, 0, 2588, 5493, 0, 0, 0, 886, 0, 0, 889, 0, 0, 0, 2579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2580, 0, 0, 0, 0, 2513, 0, 2581, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2589, 0, 0, 950, 0, 0, 0, 0, 889, 0, 0, 0, 0, 1548, 0, 0, 0, 0, 0, 1549, 0, 0, 0, 0, 0, 3320, 1615, 0, 0, 950, 0, 0, 0, 887, 889, 0, 886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1551, 0, 0, 0, 0, 0, 0, 0, 0, 887, 0, 0, 0, 0, 3322, 0, 2583, 0, 2524, 0, 0, 2584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 887, 0, 0, 0, 1617, 0, 0, 2513, 0, 0, 0, 0, 0, 2585, 2264, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 1552, 0, 0, 0, 0, 0, 0, 1553, 0, 2586, 1554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4130, 0, 950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1555, 0, 0, 0, 0, 0, 0, 0, 0, 1443, 0, 887, 0, 2322, 0, 886, 0, 0, 0, 0, 889, 0, 0, 0, 0, 2524, 0, 2587, 0, 0, 2588, 0, 1618, 0, 0, 0, 1556, 2524, 0, 0, 0, 0, 2524, 1548, 0, 0, 0, 0, 0, 1549, 0, 0, 0, 0, 0, 0, 1615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 889, 0, 0, 0, 0, 889, 0, 0, 0, 0, 0, 1616, 0, 0, 0, 0, 0, 886, 0, 0, 0, 1619, 0, 0, 0, 1620, 0, 1551, 0, 0, 0, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 1621, 3338, 0, 0, 1558, 0, 0, 0, 0, 0, 0, 0, 1335, 2589, 1559, 1701, 0, 0, 0, 0, 0, 1790, 1617, 1560, 0, 887, 0, 0, 0, 0, 0, 0, 0, 0, 1622, 1561, 0, 0, 0, 0, 0, 0, 0, 1552, 0, 0, 0, 0, 0, 0, 1553, 0, 0, 1554, 0, 0, 3294, 0, 0, 0, 3301, 0, 0, 3320, 0, 3322, 1790, 0, 3375, 0, 0, 0, 0, 0, 1623, 0, 0, 1563, 1564, 1624, 1555, 0, 0, 0, 1790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 886, 0, 0, 0, 0, 0, 1625, 0, 0, 0, 0, 0, 1626, 0, 0, 1618, 0, 0, 2513, 1556, 889, 0, 0, 0, 2061, 2062, 1627, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 887, 0, 0, 0, 0, 0, 0, 1619, 4339, 0, 0, 1620, 0, 0, 0, 0, 0, 1566, 2854, 0, 0, 0, 0, 0, 0, 0, 1621, 0, 0, 0, 1558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1559, 0, 0, 3518, 0, 0, 0, 0, 0, 1560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1622, 1561, 0, 0, 0, 0, 0, 0, 886, 887, 0, 0, 0, 886, 886, 0, 0, 0, 0, 0, 0, 0, 0, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 650, 0, 0, 0, 0, 3675, 0, 0, 1563, 1564, 1624, 0, 0, 0, 0, 0, 0, 0, 651, 0, 0, 0, 0, 0, 0, 0, 0, 0, 889, 0, 0, 0, 0, 0, 1625, 0, 0, 0, 0, 0, 3676, 0, 0, 652, 0, 0, 0, 0, 0, 0, 889, 0, 0, 0, 1627, 0, 653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4471, 4472, 4473, 0, 0, 0, 0, 0, 654, 886, 0, 0, 887, 0, 655, 0, 0, 4482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1566, 0, 0, 0, 0, 656, 0, 0, 0, 0, 0, 0, 0, 0, 889, 0, 657, 0, 0, 0, 0, 0, 0, 4507, 4509, 658, 0, 0, 4514, 0, 0, 886, 0, 0, 0, 0, 0, 0, 659, 0, 0, 0, 0, 0, 0, 0, 0, 660, 0, 0, 0, 661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1082, 0, 0, 3760, 3761, 1701, 0, 0, 0, 3765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3794, 0, 0, 0, 0, 0, 0, 662, 0, 0, 887, 0, 0, 0, 0, 887, 887, -612, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 1360, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 663, 2524, 2524, 664, 2524, 0, 0, 0, 0, 3257, 3257, 0, 4053, 0, 3257, 0, 0, 0, 2524, 0, 0, 2524, 0, 0, 665, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 666, 0, 2524, 0, 0, 0, 0, -466, 0, 0, 2524, 2524, 2524, 2524, 0, 0, 0, 3257, 3257, 0, 2524, 0, 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 887, 0, 0, 0, 0, 668, 0, 2524, 0, 2524, 0, 0, -466, 0, 0, 669, 2524, 2524, 2524, 2524, 2524, 2524, 2524, 2524, 2524, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 670, 0, 889, 0, 0, 0, 0, 671, 0, 0, 0, 0, 0, 0, -466, 887, 0, 672, 673, 0, 674, 675, 0, 0, 0, 4720, 4721, 4722, 2524, 0, 0, 0, 0, 0, 0, 0, 676, 0, 0, 0, 0, 0, 0, 677, 0, 0, 678, 3989, 0, 679, 0, 0, 3995, 0, 0, 0, 0, 0, 0, 0, 0, 0, -466, 0, 0, 0, 0, 0, 0, 0, 0, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3269, 0, 3269, 3269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4077, 0, 0, 4080, 0, 4082, 0, 0, 0, 0, 2, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 4109, 0, 4112, 0, 4114, 2524, 0, 0, 0, 0, 7, 0, 8, 9, 0, 0, 0, 0, 0, 10, 0, 11, 0, 0, 0, 889, 0, 0, 0, 0, 0, 0, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, 0, 0, 0, 18, 0, 0, 699, 0, 0, 5644, 0, 700, 0, 0, 0, 0, 0, 20, 0, 21, 0, 0, 4181, 0, 0, 0, 22, 2631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2648, 0, 23, 0, 0, 0, 0, 701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 703, 0, 0, 0, 0, 0, 889, 0, 0, 0, 0, 889, 889, 0, 0, 0, 0, 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4231, 25, 26, 0, 0, 0, 4985, 27, 0, 0, 0, 0, 0, 705, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 706, 0, 0, 0, 0, 0, 0, 0, 0, 707, 0, 0, 0, 0, 5017, 29, 0, 0, 0, 0, 0, 0, 708, 0, 0, 0, 0, 0, 709, 0, 0, 0, 0, 0, 0, 710, 0, 0, 0, 0, 0, 0, 0, 2524, 2524, 0, 3064, 0, 2524, 0, 0, 0, 0, 0, 0, 711, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 889, 0, 31, 0, 0, 0, 2524, 0, 32, 33, 5075, 34, 0, 0, 0, 0, 35, 0, 0, 4545, 0, 0, 36, 0, 0, 37, 0, 3125, 0, 0, 0, 0, 38, 0, 0, 0, 0, 712, 0, 39, 40, 0, 0, 0, 0, 0, 0, 41, 0, 889, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 713, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 714, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 715, 0, 0, 0, 0, 0, 46, 0, 0, 0, 213, 716, 47, 0, 717, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 718, 0, 0, 719, 0, 0, 0, 720, 0, 0, 721, 0, 0, 50, 0, 1701, 0, 722, 0, 0, 723, 1701, 0, 0, 0, 0, 5175, 5176, 5177, 5178, 0, 0, 56, 0, 0, -136, 0, 0, 0, 724, 0, 0, 0, 0, 0, 0, 725, 0, 0, 0, 0, 0, 0, 726, 0, 0, 727, 0, 2524, 0, 728, 0, 0, 0, 2524, 0, 0, 0, 729, 0, 730, 0, 0, 0, 0, 731, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4494, 733, 0, 4053, 4053, 0, 0, 3257, 3257, 3257, 3257, 0, 0, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 4053, 0, 0, 0, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 2524, 0, 0, 2524, 0, 2524, 0, 0, 4053, 4053, 0, 0, 0, 0, 0, 200, 0, 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 3257, 3257, 2524, 0, 2524, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 0, 0, 0, 0, 0, 206, 0, 0, 0, 0, 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4616, 2524, 208, 0, 0, 0, 0, 0, 4620, 0, 4621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3228, 0, 0, 0, 3228, 3228, 0, 0, 0, 0, 3239, 0, 0, 209, 0, 0, 0, 0, 4639, 0, 4640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4662, 4663, 4664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3278, 0, 0, 0, 0, 0, 0, 0, 4689, 0, 211, 4692, 0, 4694, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4700, 0, 0, 212, 0, 5391, 0, 0, 4707, 4708, 0, 0, 0, 213, 214, 4713, 5401, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 217, 0, 0, 0, 218, 0, 0, 219, 0, 0, 0, 0, 0, 0, 220, 0, 0, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 0, 0, 0, 0, 0, 0, 223, 0, 4765, 0, 0, 224, 0, 225, 0, 0, 226, 0, 0, 0, 227, 0, 0, 0, 0, 4779, 0, 0, 0, 0, 228, 0, 0, 0, 0, 229, 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, 3257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5589, 0, 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5619, 0, 0, 0, 0, 2524, 0, 0, 0, 2524, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 2524, 0, 0, 0, 0, 4053, 4053, 4053, 4053, 0, 0, 0, 4053, 4053, 4053, 4053, 4053, 4053, 4053, 4053, 4053, 4053, 2524, 2524, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 2524, 0, 2524, 0, 0, 0, 0, 0, 2524, 0, 0, 4053, 4053, 0, 0, 2524, 2524, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5063, 5064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5151, 5153, 0, 0, 0, 0, 0, 5821, 5157, 5158, 0, 0, 0, 5159, 0, 0, 0, 0, 0, 0, 5162, 0, 0, 5165, 5166, 0, 0, 0, 0, 0, 5171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1335, 0, 0, 0, 0, 0, 0, 0, 5220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4053, 0, 0, 0, 0, 0, 0, 0, 5230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 2524, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5295, 0, 0, 0, 0, 0, 0, 5297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 3257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 2524, 0, 0, 0, 2524, 2524, 2524, 0, 0, 2524, 5332, 0, 2524, 2524, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5423, 0, 0, 0, 0, 0, 5427, 5428, 5429, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5442, 5443, 0, 0, 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, 5463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 4053, 3257, 2524, 2524, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 2524, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3257, 0, 0, 4053, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2064, 0, 0, 4053, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4053, 0, 3257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5776, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 5842, 0, 0, 0, 0, 0, 0, 0, 0, 5849, 5849, 5849, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5481, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3257, 3257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5849, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6006, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4053, 4053, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6047, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 0, 1246, 694, 0, 1247, 1248, 1249, 755, 1250, 0, 0, 0, 0, 0, 0, 0, 0, 5849, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1695, 244, 245, 246, 6140, 0, 0, 0, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 1696, 0, 323, 324, 864, 326, 327, 1701, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 1697, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 1698, 0, 0, 0, 0, 0, 0, 1323, 1699, 234, 0, 1246, 694, 0, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 40, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 44, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 1181, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 49, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 0, 0, 0, 0, 1323, 5700, 234, 0, 1246, 694, 0, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 0, 0, 0, 0, 1323, 3259, 234, 0, 1246, 694, 0, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 0, 0, 0, 0, 1323, 4641, 234, 0, 1246, 694, 0, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 635, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 0, 0, 0, 0, 1323, 4710, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 4159, 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, 0, 291, 292, 293, 294, 295, 296, 0, -1818, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, -1818, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, -1818, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, -1818, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, -1818, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1818, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, -1818, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 0, 0, 0, 0, 0, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1436, 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, 857, 260, 858, 859, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 860, 861, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 862, 863, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 0, 339, 340, 341, 342, 0, 0, 344, 0, 345, 346, 347, 865, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 0, 0, 0, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 2674, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 2675, 385, 386, 387, 388, 866, 867, 0, 868, 0, 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, 0, 0, 408, 0, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 869, 435, 870, 437, 438, 439, 440, 441, 442, 443, 0, 0, 446, 0, 447, 448, 449, 450, 0, 0, 452, 871, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 2677, 465, 466, 467, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 482, 0, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 872, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 0, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 2678, 542, 543, 544, 545, 546, 874, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 875, 876, 0, 0, 576, 577, 0, 579, 0, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 0, 877, 2679, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 626, 627, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 0, 2775, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 857, 260, 858, 859, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 860, 861, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 862, 863, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 0, 339, 340, 341, 342, 0, 0, 344, 0, 345, 346, 347, 865, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 0, 0, 0, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 2674, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 2675, 385, 386, 387, 388, 866, 867, 0, 868, 0, 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, 0, 0, 408, 0, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 869, 435, 870, 437, 438, 439, 440, 441, 442, 443, 0, 0, 446, 0, 447, 448, 449, 450, 0, 0, 452, 871, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 2677, 465, 466, 467, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 482, 0, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 872, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 0, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 2678, 542, 543, 544, 545, 546, 874, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 875, 876, 0, 0, 576, 577, 0, 579, 0, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 0, 877, 2679, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 234, 0, 1246, 694, 0, 1247, 1248, 1249, 755, 1250, 0, 625, 626, 627, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1251, 3883, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 3225, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 40, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 44, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 1181, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 49, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 40, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 44, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 1181, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 49, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 3265, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 3266, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 3267, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 3268, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, -2222, 244, 245, 246, 0, 0, 0, -2222, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, -2222, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, -2220, 244, 245, 246, 0, 0, 0, -2220, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, -2220, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 0, 0, 2019, 3200, 1323, 234, 0, 1246, 694, 0, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 1322, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 2641, 244, 245, 246, 0, 0, 0, 0, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 3225, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 3762, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 3266, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 3323, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644, 2645, 0, 0, 0, 234, 0, 3439, 694, 1323, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 4764, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 5140, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 5152, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 5471, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 5472, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 5473, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 5474, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 5846, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 5847, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 5848, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 5847, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 5848, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 5456, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 0, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 3251, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3252, 3253, 0, 0, 0, 234, 0, 1246, 694, 3254, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, -2896, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 5847, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 1270, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, -2896, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 0, 0, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, -2896, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 1290, 447, 448, 0, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 1298, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, -2896, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 5848, 587, 588, 0, 1308, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, -2896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 1321, 0, 0, 0, 234, 0, 1246, 694, 1323, 1247, 1248, 1249, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 0, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 1294, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 3251, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3252, 3253, 234, 0, 1246, 694, 0, 1247, 1248, 3254, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 0, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 3428, 3429, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3430, 3431, 234, 0, 1246, 694, 0, 1247, 1248, 3254, 755, 1250, 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, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 0, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 3251, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 0, 0, 0, 234, 0, 1246, 694, 0, 1247, 1248, 0, 755, 1250, 0, 0, 0, 0, 0, 0, 0, 0, 3254, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 4672, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 0, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 3251, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 0, 0, 0, 234, 0, 1246, 694, 0, 1247, 1248, 0, 755, 1250, 0, 0, 0, 0, 0, 0, 0, 0, 3254, 235, 236, 237, 238, 239, 240, 241, 242, 243, 0, 244, 245, 246, 0, 0, 0, 0, 1251, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 258, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 1255, 1256, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 1271, 339, 340, 341, 342, 1272, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 1276, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 1289, 446, 0, 447, 448, 449, 450, 1291, 1292, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 3251, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 1305, 579, 1306, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 4733, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3254, 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, 1256, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 1272, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 3402, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 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, 1289, 446, 0, 447, 448, 449, 450, 0, 1292, 452, 453, 454, 455, 456, 0, 457, 458, 0, 839, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 3403, 525, 526, 527, 528, 529, 530, 531, 532, 533, 40, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 44, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 1305, 579, 1306, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 1181, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 49, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 3404, 625, 626, 627, 0, 0, 0, 50, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3405, 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, 1256, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 1272, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 3402, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 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, 1289, 446, 0, 447, 448, 449, 450, 0, 1292, 452, 453, 454, 455, 456, 0, 457, 458, 0, 839, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 3403, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 1305, 579, 1306, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 3404, 625, 626, 627, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3405, 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, 1256, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 1272, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 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, 1289, 446, 0, 447, 448, 449, 450, 0, 1292, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 1305, 579, 1306, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3841, 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, 1256, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 1272, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 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, 1289, 446, 0, 447, 448, 449, 450, 0, 1292, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 3403, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 1305, 579, 1306, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 3404, 625, 626, 627, 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, 1256, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 1272, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 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, 1289, 446, 0, 447, 448, 449, 450, 0, 1292, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 1305, 579, 1306, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4794, 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, 1256, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 1272, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 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, 1289, 446, 0, 447, 448, 449, 450, 0, 1292, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 1305, 579, 1306, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 0, 0, 0, 0, 942, 0, 1572, 694, 0, 0, 0, 0, 755, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5949, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 1796, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 1797, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 1798, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 0, 0, 0, 0, 942, 0, 0, 0, 0, 0, 0, 0, 0, 1573, 1574, 5755, 0, 0, 0, 0, 0, 0, 5756, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 40, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 44, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 1181, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 49, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 1021, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 0, 0, 0, 0, 635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5525, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 40, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 44, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 1181, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 49, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 0, 0, 0, 50, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 2848, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 839, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 2849, 2850, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 0, 0, 0, 0, 635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1830, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 0, 0, 0, 0, 635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1384, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 0, 0, 0, 0, 635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3462, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 0, 0, 0, 0, 635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4123, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 0, 0, 0, 0, 856, 0, 1572, 694, 0, 0, 0, 957, 755, 0, 0, 0, 0, 0, 958, 959, 960, 0, 4750, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1708, 244, 245, 246, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 247, 248, 249, 1716, 250, 251, 252, 253, 254, 255, 256, 257, 0, 857, 260, 858, 859, 1717, 263, 264, 265, 266, 267, 268, 269, 1718, 1719, 270, 271, 860, 861, 274, 1720, 275, 276, 277, 278, 0, 1721, 280, 1722, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 1723, 291, 292, 293, 294, 295, 296, 1724, 297, 298, 299, 300, 1725, 1726, 1727, 301, 1728, 1729, 1730, 302, 303, 304, 305, 306, 307, 862, 863, 310, 1731, 311, 1732, 312, 313, 314, 315, 316, 317, 318, 1733, 319, 320, 321, 322, 1734, 1735, 323, 324, 864, 326, 327, 1736, 328, 329, 330, 1737, 331, 332, 333, 1738, 334, 335, 336, 337, 0, 339, 340, 341, 342, 0, 1739, 344, 1740, 345, 346, 347, 865, 349, 1741, 350, 1742, 351, 352, 353, 1743, 354, 355, 356, 357, 358, 1744, 359, 0, 1745, 0, 362, 363, 1746, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 1747, 374, 375, 376, 377, 378, 379, 380, 381, 1748, 382, 383, 0, 385, 386, 387, 388, 866, 867, 1749, 868, 1750, 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, 1751, 1752, 408, 0, 410, 411, 412, 1753, 413, 414, 415, 1754, 1755, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 869, 435, 870, 437, 438, 439, 440, 441, 442, 443, 4438, 0, 446, 1756, 447, 448, 449, 450, 1757, 0, 452, 871, 454, 455, 456, 1758, 457, 458, 1759, 1760, 4439, 460, 461, 1761, 1762, 462, 463, 0, 465, 466, 467, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 1763, 479, 480, 0, 482, 0, 484, 485, 486, 1764, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 872, 498, 499, 500, 501, 1765, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 1766, 515, 516, 517, 518, 519, 520, 521, 522, 0, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 1767, 534, 535, 536, 537, 538, 1768, 539, 540, 2678, 542, 543, 544, 545, 546, 874, 548, 1769, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 563, 1770, 564, 565, 1771, 1772, 566, 567, 568, 569, 570, 571, 572, 1773, 573, 875, 876, 1774, 1775, 576, 577, 0, 579, 0, 1776, 581, 582, 583, 584, 585, 586, 587, 588, 1777, 1778, 589, 590, 591, 592, 593, 1779, 1780, 594, 595, 596, 597, 598, 0, 877, 1781, 601, 602, 603, 604, 605, 606, 1782, 1783, 607, 1784, 1785, 608, 609, 610, 611, 612, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 626, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 963, 964, 965, 4440, 4441, 968, 969, 970, 971, 856, 0, 1572, 694, 0, 0, 0, 957, 755, 0, 0, 0, 0, 0, 958, 959, 960, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1708, 244, 245, 246, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 247, 248, 249, 1716, 250, 251, 252, 253, 254, 255, 256, 257, 0, 857, 260, 858, 859, 1717, 263, 264, 265, 266, 267, 268, 269, 1718, 1719, 270, 271, 860, 861, 274, 1720, 275, 276, 277, 278, 0, 1721, 280, 1722, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 1723, 291, 292, 293, 294, 295, 296, 1724, 297, 298, 299, 300, 1725, 1726, 1727, 301, 1728, 1729, 1730, 302, 303, 304, 305, 306, 307, 862, 863, 310, 1731, 311, 1732, 312, 313, 314, 315, 316, 317, 318, 1733, 319, 320, 321, 322, 1734, 1735, 323, 324, 864, 326, 327, 1736, 328, 329, 330, 1737, 331, 332, 333, 1738, 334, 335, 336, 337, 0, 339, 340, 341, 342, 0, 1739, 344, 1740, 345, 346, 347, 865, 349, 1741, 350, 1742, 351, 352, 353, 1743, 354, 355, 356, 357, 358, 1744, 359, 0, 1745, 0, 362, 363, 1746, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 1747, 374, 375, 376, 377, 378, 379, 380, 381, 1748, 382, 383, 0, 385, 386, 387, 388, 866, 867, 1749, 868, 1750, 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, 1751, 1752, 408, 0, 410, 411, 412, 1753, 413, 414, 415, 1754, 1755, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 869, 435, 870, 437, 438, 439, 440, 441, 442, 443, 4888, 0, 446, 1756, 447, 448, 449, 450, 1757, 0, 452, 871, 454, 455, 456, 1758, 457, 458, 1759, 1760, 4439, 460, 461, 1761, 1762, 462, 463, 0, 465, 466, 467, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 1763, 479, 480, 0, 482, 0, 484, 485, 486, 1764, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 872, 498, 499, 500, 501, 1765, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 1766, 515, 516, 517, 518, 519, 520, 521, 522, 0, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 1767, 534, 535, 536, 537, 538, 1768, 539, 540, 2678, 542, 543, 544, 545, 546, 874, 548, 1769, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 563, 1770, 564, 565, 1771, 1772, 566, 567, 568, 569, 570, 571, 572, 1773, 573, 875, 876, 1774, 1775, 576, 577, 0, 579, 0, 1776, 581, 582, 583, 584, 585, 586, 587, 588, 1777, 1778, 589, 590, 591, 592, 593, 1779, 1780, 594, 595, 596, 597, 598, 0, 877, 1781, 601, 602, 603, 604, 605, 606, 1782, 1783, 607, 1784, 1785, 608, 609, 610, 611, 612, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 626, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 963, 964, 965, 4440, 4441, 968, 969, 970, 971, 2072, 0, 0, 0, 0, 0, 0, 2073, 0, 0, 2074, 0, 0, 0, 2075, 2076, 2077, 0, 0, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 0, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 0, 0, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 0, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 0, 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, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 0, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 0, 0, 2214, 2215, 2216, 2217, 0, 2218, 2219, 2220, 2221, 2222, 0, 2223, 2224, 2225, 2226, 2227, 0, 2228, 2229, 0, 2230, 2231, 2232, 0, 2233, 2234, 0, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 0, 2261, 0, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 0, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 0, 2301, 2302, 0, 2303, 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, 0, 2331, 2332, 0, 2333, 2334, 2335, 2336, 2337, 0, 2338, 2339, 2340, 2341, 0, 0, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 0, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 0, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 0, 2408, 2409, 2410, 2411, 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, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 0, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 0, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 0, 2489, 2490, 2491, 2492, 2493, 2494, 0, 2495, 0, 0, 0, 0, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 0, 2511, 2512, 0, 2513, 0, 0, 0, 0, 0, 0, 0, 0, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 635, 0, 0, 0, 0, 0, 0, 957, 0, 0, 0, 0, 0, 0, 958, 959, 960, 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, 961, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 962, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 963, 964, 965, 966, 967, 968, 969, 970, 971, 635, 0, 0, 0, 0, 0, 0, 957, 0, 0, 0, 0, 0, 0, 958, 959, 960, 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, 1078, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 1079, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 963, 964, 965, 966, 967, 968, 969, 970, 971, 635, 0, 0, 0, 0, 0, 0, 957, 0, 0, 0, 0, 0, 0, 958, 959, 960, 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, 1144, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 1145, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1146, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 963, 964, 965, 966, 967, 968, 969, 970, 971, 635, 0, 0, 0, 0, 0, 0, 957, 0, 0, 0, 0, 0, 0, 958, 959, 960, 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, 1813, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 1814, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 963, 964, 965, 966, 967, 968, 969, 970, 971, 635, 0, 0, 0, 0, 0, 0, 957, 0, 0, 0, 0, 0, 0, 958, 959, 960, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 963, 964, 965, 966, 967, 968, 969, 970, 971, 635, 0, 0, 0, 0, 0, 0, 957, 0, 0, 0, 0, 0, 0, 958, 959, 960, 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, 3533, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 3534, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 963, 964, 965, 966, 967, 968, 969, 970, 971, 635, 0, 0, 0, 0, 0, 0, 957, 0, 0, 0, 0, 0, 0, 958, 959, 960, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 5504, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 1707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 963, 964, 965, 966, 967, 968, 969, 970, 971, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1708, 244, 245, 246, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 247, 248, 249, 1716, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 1717, 263, 264, 265, 266, 267, 268, 269, 1718, 1719, 270, 271, 272, 273, 274, 1720, 275, 276, 277, 278, 279, 1721, 280, 1722, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 1723, 291, 292, 293, 294, 295, 296, 1724, 297, 298, 299, 300, 1725, 1726, 1727, 301, 1728, 1729, 1730, 302, 303, 304, 305, 306, 307, 308, 309, 310, 1731, 311, 1732, 312, 313, 314, 315, 316, 317, 318, 1733, 319, 320, 321, 322, 1734, 1735, 323, 324, 325, 326, 327, 1736, 328, 329, 330, 1737, 331, 332, 333, 1738, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 1739, 344, 1740, 345, 346, 347, 348, 349, 1741, 350, 1742, 351, 352, 353, 1743, 354, 355, 356, 357, 358, 1744, 359, 360, 1745, 361, 362, 363, 1746, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 1747, 374, 375, 376, 377, 378, 379, 380, 381, 1748, 382, 383, 384, 385, 386, 387, 388, 389, 390, 1749, 391, 1750, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1751, 1752, 408, 409, 410, 411, 412, 1753, 413, 414, 415, 1754, 1755, 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, 1756, 447, 448, 449, 450, 1757, 451, 452, 453, 454, 455, 456, 1758, 457, 458, 1759, 1760, 459, 460, 461, 1761, 1762, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 1763, 479, 480, 481, 482, 483, 484, 485, 486, 1764, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 1765, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 1766, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 1767, 534, 535, 536, 537, 538, 1768, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 1769, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 1770, 564, 565, 1771, 1772, 566, 567, 568, 569, 570, 571, 572, 1773, 573, 574, 575, 1774, 1775, 576, 577, 578, 579, 580, 1776, 581, 582, 583, 584, 585, 586, 587, 588, 1777, 1778, 589, 590, 591, 592, 593, 1779, 1780, 594, 595, 596, 597, 598, 599, 600, 1781, 601, 602, 603, 604, 605, 606, 1782, 1783, 607, 1784, 1785, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1786, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 845, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5919, 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, 857, 260, 858, 859, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 860, 861, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 862, 863, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 0, 339, 340, 341, 342, 0, 0, 344, 0, 345, 346, 347, 865, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 0, 0, 0, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 2674, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 2675, 385, 386, 387, 388, 866, 867, 0, 868, 0, 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, 0, 0, 408, 0, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 869, 435, 870, 437, 438, 439, 440, 441, 442, 443, 0, 0, 446, 0, 447, 448, 449, 450, 0, 0, 452, 871, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 2676, 462, 463, 2677, 465, 466, 467, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 482, 0, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 872, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 0, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 2678, 542, 543, 544, 545, 546, 874, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 875, 876, 0, 0, 576, 577, 0, 579, 0, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 0, 877, 2679, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 0, 3878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 626, 627, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 2680, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 254, 255, 256, 257, 0, 857, 260, 858, 859, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 860, 861, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 862, 863, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 0, 339, 340, 341, 342, 0, 0, 344, 0, 345, 346, 347, 865, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 0, 0, 0, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 2674, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 2675, 385, 386, 387, 388, 866, 867, 0, 868, 0, 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, 0, 0, 408, 0, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 869, 435, 870, 437, 438, 439, 440, 441, 442, 443, 0, 0, 446, 0, 447, 448, 449, 450, 0, 0, 452, 871, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 2676, 462, 463, 2677, 465, 466, 467, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 482, 0, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 872, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 0, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 2678, 542, 543, 544, 545, 546, 874, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 875, 876, 0, 0, 576, 577, 0, 579, 0, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 0, 877, 2679, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 0, 942, 0, 1572, 694, 0, 0, 0, 0, 755, 2564, 625, 626, 627, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 2680, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 2565, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 1796, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 1797, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 1798, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 0, 1572, 694, 0, 0, 0, 0, 755, 2564, 0, 0, 0, 1573, 1574, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 2570, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 1796, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 1797, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 1798, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 0, 1572, 694, 0, 0, 0, 0, 755, 0, 0, 0, 0, 1573, 1574, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 3494, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 1796, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 1797, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 1798, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 0, 1572, 694, 0, 0, 0, 0, 755, 2564, 0, 0, 0, 1573, 1574, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 1796, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 1797, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 1798, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 0, 1572, 694, 0, 0, 0, 0, 755, 0, 0, 0, 0, 1573, 1574, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 1796, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 1797, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 1798, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 0, 0, 0, 0, 0, 0, 0, 755, 0, 0, 0, 0, 1573, 1574, 0, 0, 0, 0, 235, 236, 756, 238, 239, 240, 241, 242, 243, 757, 244, 245, 246, 0, 0, 0, 0, 0, 0, 0, 247, 248, 249, 0, 250, 251, 252, 253, 0, 758, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 759, 348, 349, 0, 350, 0, 351, 760, 0, 761, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 762, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 763, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 764, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 765, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 766, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 767, 768, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 1021, 1707, 0, 6190, 694, 0, 0, 0, 0, 755, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1708, 244, 245, 246, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 247, 248, 249, 1716, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 1717, 263, 264, 265, 266, 267, 268, 269, 1718, 1719, 270, 271, 272, 273, 274, 1720, 275, 276, 277, 278, 279, 1721, 280, 1722, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 1723, 291, 292, 293, 294, 295, 296, 1724, 297, 298, 299, 300, 1725, 1726, 1727, 301, 1728, 1729, 1730, 302, 303, 304, 305, 306, 307, 308, 309, 310, 1731, 311, 1732, 312, 313, 314, 315, 316, 317, 318, 1733, 319, 320, 321, 322, 1734, 1735, 323, 324, 325, 326, 327, 1736, 328, 329, 330, 1737, 331, 332, 333, 1738, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 1739, 344, 1740, 345, 346, 347, 348, 349, 1741, 350, 1742, 351, 352, 353, 1743, 354, 355, 356, 357, 358, 1744, 359, 360, 1745, 361, 362, 363, 1746, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 1747, 374, 375, 376, 377, 378, 379, 380, 381, 1748, 382, 383, 384, 385, 386, 387, 388, 389, 390, 1749, 391, 1750, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1751, 1752, 408, 409, 410, 411, 412, 1753, 413, 414, 415, 1754, 1755, 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, 1756, 447, 448, 449, 450, 1757, 451, 452, 453, 454, 455, 456, 1758, 457, 458, 1759, 1760, 459, 460, 461, 1761, 1762, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 1763, 479, 480, 481, 482, 483, 484, 485, 486, 1764, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 1765, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 1766, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 1767, 534, 535, 536, 537, 538, 1768, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 1769, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 1770, 564, 565, 1771, 1772, 566, 567, 568, 569, 570, 571, 572, 1773, 573, 574, 575, 1774, 1775, 576, 577, 578, 579, 580, 1776, 581, 582, 583, 584, 585, 586, 587, 588, 1777, 1778, 589, 590, 591, 592, 593, 1779, 1780, 594, 595, 596, 597, 598, 599, 600, 1781, 601, 602, 603, 604, 605, 606, 1782, 1783, 607, 1784, 1785, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 1707, 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, 1708, 244, 245, 246, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 247, 248, 249, 1716, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 1717, 263, 264, 265, 266, 267, 268, 269, 1718, 1719, 270, 271, 272, 273, 274, 1720, 275, 276, 277, 278, 279, 1721, 280, 1722, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 1723, 291, 292, 293, 294, 295, 296, 1724, 297, 298, 299, 300, 1725, 1726, 1727, 301, 1728, 1729, 1730, 302, 303, 304, 305, 306, 307, 308, 309, 310, 1731, 311, 1732, 312, 313, 314, 315, 316, 317, 318, 1733, 319, 320, 321, 322, 1734, 1735, 323, 324, 325, 326, 327, 1736, 328, 329, 330, 1737, 331, 332, 333, 1738, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 1739, 344, 1740, 345, 346, 347, 348, 349, 1741, 350, 1742, 351, 352, 353, 1743, 354, 355, 356, 357, 358, 1744, 359, 360, 1745, 361, 362, 363, 1746, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 1747, 374, 375, 376, 377, 378, 379, 380, 381, 1748, 382, 383, 384, 385, 386, 387, 388, 389, 390, 1749, 391, 1750, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1751, 1752, 408, 409, 410, 411, 412, 1753, 413, 414, 415, 1754, 1755, 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, 1756, 447, 448, 449, 450, 1757, 451, 452, 453, 454, 455, 456, 1758, 457, 458, 1759, 1760, 459, 460, 461, 1761, 1762, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 1763, 479, 480, 481, 482, 483, 484, 485, 486, 1764, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 1765, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 1766, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 1767, 534, 535, 536, 537, 538, 1768, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 1769, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 1770, 564, 565, 1771, 1772, 566, 567, 568, 569, 570, 571, 572, 1773, 573, 574, 575, 1774, 1775, 576, 577, 578, 579, 580, 1776, 581, 582, 583, 584, 585, 586, 587, 588, 1777, 1778, 589, 590, 591, 592, 593, 1779, 1780, 594, 595, 596, 597, 598, 599, 600, 1781, 601, 602, 603, 604, 605, 606, 1782, 1783, 607, 1784, 1785, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 1707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 237, 238, 239, 3599, 241, 242, 243, 1708, 244, 245, 246, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 247, 248, 249, 1716, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 1717, 263, 264, 265, 266, 267, 268, 269, 1718, 1719, 270, 271, 272, 273, 274, 1720, 275, 276, 277, 278, 279, 1721, 280, 1722, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 1723, 291, 292, 293, 294, 295, 296, 1724, 297, 298, 299, 300, 1725, 1726, 1727, 301, 1728, 1729, 1730, 302, 303, 304, 305, 306, 307, 308, 309, 310, 1731, 311, 1732, 312, 313, 314, 315, 316, 317, 318, 1733, 319, 320, 321, 322, 1734, 1735, 323, 324, 325, 3600, 327, 1736, 328, 329, 330, 1737, 331, 332, 333, 1738, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 1739, 344, 1740, 345, 346, 347, 348, 349, 1741, 350, 1742, 351, 352, 353, 1743, 354, 355, 356, 357, 358, 1744, 359, 360, 1745, 361, 362, 363, 1746, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 1747, 374, 375, 376, 377, 378, 379, 380, 381, 1748, 382, 383, 384, 385, 386, 387, 388, 389, 390, 1749, 391, 1750, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 1751, 1752, 408, 409, 410, 411, 412, 1753, 413, 414, 415, 1754, 1755, 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, 1756, 447, 448, 449, 450, 1757, 451, 452, 453, 454, 455, 456, 1758, 457, 458, 1759, 1760, 459, 460, 461, 1761, 1762, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 1763, 479, 480, 481, 482, 483, 484, 485, 486, 1764, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 1765, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 1766, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 1767, 534, 535, 536, 537, 538, 1768, 3601, 540, 541, 542, 543, 544, 545, 546, 547, 548, 1769, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 1770, 564, 565, 1771, 1772, 566, 567, 568, 569, 570, 571, 572, 1773, 573, 574, 575, 1774, 1775, 576, 577, 578, 579, 580, 1776, 581, 582, 583, 584, 585, 586, 587, 588, 1777, 1778, 589, 590, 591, 592, 593, 1779, 1780, 594, 595, 596, 597, 598, 599, 600, 1781, 601, 602, 603, 604, 605, 606, 1782, 1783, 607, 1784, 1785, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 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, 1256, 270, 271, 272, 273, 274, 0, 275, 276, 277, 278, 1259, 0, 1260, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 1272, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 1275, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 1280, 1281, 1282, 1283, 402, 403, 404, 405, 406, 407, 0, 0, 408, 1284, 410, 411, 412, 0, 413, 414, 415, 1285, 1286, 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, 1289, 446, 0, 447, 448, 449, 450, 0, 1292, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 1295, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1296, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 1299, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 1301, 563, 0, 564, 565, 1302, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 1305, 579, 1306, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 1309, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 1311, 1312, 1313, 1314, 619, 1315, 1316, 1317, 1318, 624, 625, 626, 627, 234, 0, 1246, 694, 0, 1247, 1248, 0, 755, 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, 1252, 260, 1253, 1254, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 1257, 1258, 274, 0, 275, 276, 277, 278, 279, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 1268, 1269, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 1273, 344, 0, 345, 346, 347, 1274, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 1277, 1278, 0, 1279, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 1287, 435, 1288, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 449, 450, 1291, 451, 452, 1293, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 1297, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 1300, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 1303, 1304, 0, 0, 576, 577, 578, 579, 580, 1307, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 1310, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 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, 981, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 943, 301, 0, 0, 944, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 945, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 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, 1002, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 943, 301, 0, 0, 944, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 1003, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 945, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 943, 301, 0, 0, 944, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 945, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 2941, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 943, 301, 0, 0, 944, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 3949, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 945, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 0, 0, 694, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 1796, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 1797, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 1798, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 943, 301, 0, 0, 944, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 945, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 943, 301, 0, 0, 944, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 1097, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 945, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 943, 301, 0, 0, 944, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1139, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 945, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 943, 301, 0, 0, 944, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1152, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 945, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 943, 301, 0, 0, 944, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1164, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 1165, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 945, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 0, 0, 694, 0, 0, 0, 0, 0, 2547, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 2548, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 0, 0, 694, 0, 0, 0, 0, 0, 1366, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 0, 0, 694, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1123, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1136, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1150, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1154, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 942, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 410, 411, 412, 0, 413, 414, 415, 0, 0, 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, 0, 447, 448, 449, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 2713, 275, 276, 277, 278, 279, 0, 0, 2782, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 2714, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 2783, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 2716, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 2784, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 2717, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 2718, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 2713, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 2714, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 2783, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 2716, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 3812, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 2717, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 2718, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 774, 244, 775, 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, 0, 291, 292, 293, 294, 295, 296, 776, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 807, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 777, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 778, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 774, 244, 775, 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, 0, 291, 292, 293, 294, 295, 296, 776, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 3501, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 777, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 778, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 2713, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 2714, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 2783, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 2716, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 2717, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 2718, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 774, 244, 775, 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, 0, 291, 292, 293, 294, 295, 296, 776, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 777, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 778, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 3017, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 2848, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 839, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 2849, 2850, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 1974, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 1975, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 1976, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 1977, 351, 352, 0, 0, 0, 1978, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 1979, 1980, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 1981, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 1982, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 1983, 522, 523, 524, 525, 526, 527, 1984, 529, 530, 531, 532, 533, 0, 1985, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 1986, 566, 0, 1987, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 1988, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 775, 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, 0, 291, 292, 293, 294, 295, 296, 776, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 777, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 778, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 2848, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 839, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 2849, 2850, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 995, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 996, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 839, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 0, 0, 694, 0, 0, 0, 0, 0, 1368, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 3580, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 3581, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 3593, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 3594, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 636, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 685, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 686, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 799, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 800, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 801, 575, 0, 0, 802, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 833, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 834, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 835, 575, 0, 0, 836, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 839, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 0, 0, 0, 0, 0, 0, 0, 0, 897, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 952, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 953, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 1115, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 1357, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 1370, 255, 256, 257, 258, 259, 0, 261, 262, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 819, 271, 272, 273, 1371, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 822, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 823, 519, 520, 521, 522, 523, 524, 525, 526, 527, 824, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 1361, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 826, 575, 0, 0, 827, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 828, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1516, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 839, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 1577, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1578, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 799, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 3351, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 3352, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 3353, 566, 0, 568, 3354, 570, 3355, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 3356, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 0, 0, 0, 0, 0, 0, 0, 755, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 4159, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 4173, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 4830, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 4902, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 5258, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 791, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 797, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 819, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 0, 820, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 821, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 822, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 823, 519, 520, 521, 522, 523, 524, 525, 526, 527, 824, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 825, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 826, 575, 0, 0, 827, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 828, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 851, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 977, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 987, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 990, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1006, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1063, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1068, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1085, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1088, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1090, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1128, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1156, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1158, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1168, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1171, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1174, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 819, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 822, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 823, 519, 520, 521, 522, 523, 524, 525, 526, 527, 824, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 1361, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 826, 575, 0, 0, 827, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 828, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1839, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1873, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1875, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1915, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1917, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 1919, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 2013, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 2666, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 0, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 819, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 822, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 823, 519, 520, 521, 522, 523, 524, 525, 526, 527, 824, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 1361, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 2700, 569, 570, 571, 572, 0, 573, 826, 575, 0, 0, 827, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 828, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 819, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 822, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 823, 519, 520, 521, 522, 523, 524, 525, 526, 527, 2765, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 2766, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 826, 575, 0, 0, 2767, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 828, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 819, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 822, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 823, 519, 520, 521, 522, 523, 524, 525, 526, 527, 2845, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 2766, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 826, 575, 0, 0, 2767, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 828, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 819, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 822, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 823, 519, 520, 521, 522, 523, 524, 525, 526, 527, 2869, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 2766, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 826, 575, 0, 0, 2767, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 828, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 3062, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 3066, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 3124, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 3512, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 819, 271, 272, 273, 274, 0, 275, 276, 277, 278, 279, 0, 0, 0, 281, 282, 283, 284, 285, 286, 0, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 822, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 823, 519, 520, 521, 522, 523, 524, 525, 526, 527, 824, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 2766, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 826, 575, 0, 0, 2767, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 828, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 3569, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 3583, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 3585, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 3733, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 3773, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 362, 363, 0, 364, 365, 366, 367, 5016, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 635, 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, 0, 291, 292, 293, 294, 295, 296, 0, 0, 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 0, 344, 0, 345, 346, 347, 348, 349, 0, 350, 0, 351, 352, 0, 0, 0, 355, 356, 357, 358, 0, 359, 360, 0, 361, 0, 363, 0, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 0, 384, 385, 386, 387, 388, 389, 390, 0, 391, 0, 392, 0, 0, 395, 0, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 0, 0, 408, 409, 0, 411, 0, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 0, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 0, 447, 448, 0, 450, 0, 451, 452, 453, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 464, 0, 466, 0, 468, 469, 470, 471, 472, 473, 474, 475, 0, 477, 478, 0, 479, 480, 481, 482, 483, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 0, 496, 497, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 0, 518, 519, 520, 521, 522, 523, 0, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 541, 542, 543, 0, 545, 546, 547, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 0, 564, 565, 0, 0, 566, 0, 568, 569, 570, 571, 572, 0, 573, 574, 575, 0, 0, 576, 577, 578, 579, 580, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 599, 600, 0, 601, 0, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 856, 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, 857, 260, 858, 859, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 860, 861, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 862, 863, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 0, 339, 340, 341, 342, 0, 0, 344, 0, 345, 346, 347, 865, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 0, 0, 0, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 2674, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 2675, 385, 386, 387, 388, 866, 867, 0, 868, 0, 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, 0, 0, 408, 0, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 869, 435, 870, 437, 438, 439, 440, 441, 442, 443, 0, 0, 446, 0, 447, 448, 449, 450, 0, 0, 452, 871, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 2677, 465, 466, 467, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 482, 0, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 872, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 0, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 2678, 542, 543, 544, 545, 546, 874, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 875, 876, 0, 0, 576, 577, 0, 579, 0, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 0, 877, 2679, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 626, 627, 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, 857, 260, 858, 859, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 860, 861, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 862, 863, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 0, 339, 340, 341, 342, 0, 0, 344, 0, 345, 346, 347, 865, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 0, 0, 0, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 0, 385, 386, 387, 388, 866, 867, 0, 868, 0, 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, 0, 0, 408, 0, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 869, 435, 870, 437, 438, 439, 440, 441, 442, 443, 0, 0, 446, 0, 447, 448, 449, 450, 2761, 0, 452, 871, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 0, 465, 466, 467, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 482, 0, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 872, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 0, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 2678, 542, 543, 544, 545, 546, 874, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 563, 0, 564, 565, 0, 4539, 566, 567, 568, 569, 570, 571, 572, 0, 573, 875, 876, 0, 0, 576, 577, 0, 579, 0, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 0, 877, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 626, 627, 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, 857, 260, 858, 859, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 860, 861, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 862, 863, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 0, 339, 340, 341, 342, 0, 0, 344, 0, 345, 346, 347, 865, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 0, 0, 0, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 0, 385, 386, 387, 388, 866, 867, 0, 868, 0, 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, 0, 0, 408, 0, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 869, 435, 870, 437, 438, 439, 440, 441, 442, 443, 2835, 0, 446, 0, 447, 448, 449, 450, 0, 0, 452, 871, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 0, 465, 466, 467, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 482, 0, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 872, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 0, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 873, 542, 543, 544, 545, 546, 874, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 875, 876, 0, 0, 576, 577, 0, 579, 0, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 0, 877, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 626, 627, 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, 857, 260, 858, 859, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 860, 861, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 862, 863, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 0, 339, 340, 341, 342, 0, 0, 344, 0, 345, 346, 347, 865, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 0, 0, 0, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 0, 385, 386, 387, 388, 866, 867, 0, 868, 0, 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, 0, 0, 408, 0, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 869, 435, 870, 437, 438, 439, 440, 441, 442, 443, 4334, 0, 446, 0, 447, 448, 449, 450, 0, 0, 452, 871, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 0, 465, 466, 467, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 482, 0, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 872, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 0, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 873, 542, 543, 544, 545, 546, 874, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 875, 876, 0, 0, 576, 577, 0, 579, 0, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 0, 877, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 626, 627, 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, 857, 260, 858, 859, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 860, 861, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 862, 863, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 0, 339, 340, 341, 342, 0, 0, 344, 0, 345, 346, 347, 865, 349, 5864, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 0, 0, 0, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 0, 385, 386, 387, 388, 866, 867, 0, 868, 0, 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, 0, 0, 408, 0, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 869, 435, 870, 437, 438, 439, 440, 441, 442, 443, 0, 0, 446, 0, 447, 448, 449, 450, 0, 0, 452, 871, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 0, 465, 466, 467, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 482, 0, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 872, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 0, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 873, 542, 543, 544, 545, 546, 874, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 875, 876, 0, 0, 576, 577, 0, 579, 0, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 0, 877, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 626, 627, 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, 857, 260, 858, 859, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 860, 861, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 862, 863, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 0, 339, 340, 341, 342, 0, 0, 344, 0, 345, 346, 347, 865, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 0, 0, 0, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 0, 385, 386, 387, 388, 866, 867, 0, 868, 0, 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, 0, 0, 408, 0, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 869, 435, 870, 437, 438, 439, 440, 441, 442, 443, 0, 0, 446, 0, 447, 448, 449, 450, 0, 0, 452, 871, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 0, 465, 466, 467, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 482, 0, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 872, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 0, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 873, 542, 543, 544, 545, 546, 874, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 875, 876, 0, 0, 576, 577, 0, 579, 0, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 0, 877, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 626, 627, 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, 857, 260, 858, 859, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 860, 861, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 862, 863, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 0, 339, 340, 341, 342, 0, 0, 344, 0, 345, 346, 347, 865, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 0, 0, 0, 362, 363, 0, 364, 365, 366, 367, 1130, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 0, 385, 386, 387, 388, 866, 867, 0, 868, 0, 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, 0, 0, 408, 0, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 869, 435, 870, 437, 438, 439, 440, 441, 442, 443, 0, 0, 446, 0, 447, 448, 449, 450, 0, 0, 452, 871, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 0, 465, 466, 467, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 482, 0, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 872, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 0, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 873, 542, 543, 544, 545, 546, 874, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 875, 876, 0, 0, 576, 577, 0, 579, 0, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 0, 877, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 626, 627, 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, 857, 260, 858, 859, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 860, 861, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 862, 863, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 0, 339, 340, 341, 342, 0, 0, 344, 0, 345, 346, 347, 865, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 0, 0, 0, 362, 363, 0, 364, 365, 366, 367, 1162, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 0, 385, 386, 387, 388, 866, 867, 0, 868, 0, 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, 0, 0, 408, 0, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 869, 435, 870, 437, 438, 439, 440, 441, 442, 443, 0, 0, 446, 0, 447, 448, 449, 450, 0, 0, 452, 871, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 0, 465, 466, 467, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 482, 0, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 872, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 0, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 873, 542, 543, 544, 545, 546, 874, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 875, 876, 0, 0, 576, 577, 0, 579, 0, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 0, 877, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 626, 627, 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, 857, 260, 858, 859, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 860, 861, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 862, 863, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 0, 339, 340, 341, 342, 0, 0, 344, 0, 345, 346, 347, 865, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 0, 0, 0, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 0, 385, 386, 387, 388, 866, 867, 0, 868, 0, 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, 0, 0, 408, 0, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 869, 435, 870, 437, 438, 439, 440, 441, 442, 443, 0, 0, 446, 0, 447, 448, 449, 450, 0, 0, 452, 871, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 0, 465, 466, 467, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 482, 0, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 872, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 0, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 2678, 542, 543, 544, 545, 546, 874, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 875, 876, 0, 0, 576, 577, 0, 579, 0, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 0, 877, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 626, 627, 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, 857, 260, 858, 859, 0, 263, 264, 265, 266, 267, 268, 269, 0, 0, 270, 271, 860, 861, 274, 0, 275, 276, 277, 278, 0, 0, 280, 0, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 862, 863, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 864, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 0, 339, 340, 341, 342, 0, 0, 344, 0, 345, 346, 347, 865, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 0, 0, 0, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 0, 385, 386, 387, 388, 866, 867, 0, 868, 0, 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, 0, 0, 408, 0, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 869, 435, 870, 437, 438, 439, 440, 441, 442, 443, 0, 0, 446, 0, 447, 448, 449, 450, 0, 0, 452, 871, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 0, 465, 466, 467, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 482, 0, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 872, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 0, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 0, 542, 543, 544, 545, 546, 874, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 875, 876, 0, 0, 576, 577, 0, 579, 0, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 0, 877, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 626, 627, 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, 0, 291, 292, 293, 294, 295, 296, 0, 297, 298, 299, 300, 0, 0, 0, 301, 0, 0, 0, 302, 303, 304, 305, 306, 307, 0, 0, 310, 0, 311, 0, 312, 313, 314, 315, 316, 317, 318, 0, 319, 320, 321, 322, 0, 0, 323, 324, 325, 326, 327, 0, 328, 329, 330, 0, 331, 332, 333, 0, 334, 335, 336, 337, 0, 339, 340, 341, 342, 0, 0, 344, 0, 345, 346, 347, 0, 349, 0, 350, 0, 351, 352, 353, 0, 354, 355, 356, 357, 358, 0, 359, 0, 0, 0, 362, 363, 0, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 0, 374, 375, 376, 377, 378, 379, 380, 381, 0, 382, 383, 0, 385, 386, 387, 388, 0, 0, 0, 0, 0, 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, 0, 0, 408, 0, 410, 411, 412, 0, 413, 414, 415, 0, 0, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 0, 435, 0, 437, 438, 439, 440, 441, 442, 443, 0, 0, 446, 0, 447, 448, 449, 450, 0, 0, 452, 0, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 461, 0, 0, 462, 463, 0, 465, 466, 467, 0, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 482, 0, 484, 485, 486, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 0, 498, 499, 500, 501, 0, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, 515, 516, 517, 518, 519, 520, 521, 522, 0, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 534, 535, 536, 537, 538, 0, 539, 540, 0, 542, 543, 544, 545, 546, 0, 548, 0, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 563, 0, 564, 565, 0, 0, 566, 567, 568, 569, 570, 571, 572, 0, 573, 0, 0, 0, 0, 576, 577, 0, 579, 0, 0, 581, 582, 583, 584, 585, 586, 587, 588, 0, 0, 589, 590, 591, 592, 593, 0, 0, 594, 595, 596, 597, 598, 0, 0, 0, 601, 602, 603, 604, 605, 606, 0, 0, 607, 0, 0, 608, 609, 610, 611, 612, 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 626, 627 }; static const yytype_int16 yycheck[] = { 6, 0, 0, 1016, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, 0, 206, 0, 850, 988, 21, 21, 663, 817, 214, 917, 1025, 217, 36, 211, 45, 820, 776, 777, 778, 8, 1142, 189, 782, 51, 22, 736, 15, 1018, 1629, 1502, 28, 1474, 911, 1005, 913, 873, 2718, 1564, 2011, 891, 989, 844, 642, 695, 2660, 1020, 1548, 1014, 1203, 3037, 810, 862, 863, 2661, 1541, 3010, 1250, 3360, 1553, 3362, 871, 1091, 1237, 843, 1869, 3075, 216, 876, 827, 740, 3452, 44, 3185, 2000, 3653, 1548, 3573, 929, 6, 1697, 230, 1222, 197, 23, 3874, 1226, 2019, 2035, 1229, 1230, 1594, 1595, 3546, 1065, 1598, 695, 36, 1069, 1541, 3847, 2036, 3022, 1074, 3599, 954, 3601, 2034, 4187, 4234, 2929, 955, 988, 1084, 3863, 3799, 3411, 3896, 644, 3462, 4230, 997, 3405, 2069, 191, 2071, 4734, 1098, 175, 741, 979, 1007, 2907, 716, 1431, 984, 719, 1941, 1664, 1665, 1882, 4527, 4510, 742, 1531, 35, 731, 191, 2, 5214, 4312, 4472, 42, 4750, 4504, 4752, 4515, 2536, 1129, 5054, 5236, 940, 2541, 3426, 1658, 5046, 5342, 2645, 50, 2577, 197, 4997, 823, 2647, 5041, 3472, 3228, 3460, 4799, 206, 207, 1025, 5256, 2682, 2683, 938, 914, 214, 5390, 216, 217, 1685, 3410, 4514, 3412, 3861, 795, 41, 2975, 3314, 2977, 2978, 914, 230, 1591, 2982, 2983, 2984, 0, 2986, 2987, 2988, 4209, 6, 11, 5378, 2624, 23, 5624, 5045, 0, 1608, 0, 6, 823, 5299, 979, 0, 4673, 12, 6, 984, 15, 16, 5339, 6, 0, 56, 37, 11, 96, 12, 27, 3018, 15, 16, 6, 11, 155, 848, 1029, 6, 6, 225, 1514, 13, 6, 12, 5306, 5307, 860, 861, 12, 74, 2006, 15, 16, 31, 13, 65, 870, 121, 40, 5608, 23, 6, 2045, 80, 6, 148, 123, 12, 93, 176, 12, 6, 0, 121, 6, 47, 6, 12, 39, 6, 12, 1494, 12, 11, 6, 12, 1059, 6, 2618, 3, 12, 6, 45, 12, 200, 908, 6, 12, 45, 0, 65, 170, 12, 31, 3, 49, 143, 6, 80, 82, 27, 3, 74, 12, 121, 162, 1177, 4605, 4606, 4607, 21, 4609, 4610, 4611, 4612, 4613, 114, 152, 121, 15, 126, 1848, 3, 82, 5, 6, 82, 178, 5, 87, 11, 12, 141, 5, 11, 5331, 1080, 172, 176, 11, 25, 154, 4528, 297, 221, 56, 5846, 65, 65, 5507, 65, 176, 1096, 303, 6, 297, 170, 278, 225, 176, 176, 126, 32, 318, 283, 187, 192, 66, 92, 5260, 298, 646, 176, 65, 176, 74, 141, 178, 169, 176, 152, 82, 5812, 136, 200, 1375, 93, 1081, 176, 1387, 1443, 286, 93, 3548, 374, 374, 200, 718, 200, 65, 172, 344, 1025, 200, 352, 329, 37, 116, 151, 215, 429, 732, 200, 197, 141, 282, 89, 1431, 429, 121, 167, 145, 206, 472, 95, 5523, 176, 374, 34, 3265, 214, 3267, 3268, 217, 1268, 1269, 262, 1435, 176, 5626, 121, 82, 663, 300, 5803, 297, 339, 82, 299, 380, 200, 13, 1323, 311, 260, 61, 403, 287, 93, 1293, 4834, 82, 200, 738, 13, 82, 176, 138, 65, 154, 519, 126, 1304, 340, 5379, 13, 176, 357, 172, 282, 191, 429, 137, 192, 31, 47, 417, 31, 661, 65, 237, 38, 713, 166, 667, 330, 31, 176, 126, 394, 519, 177, 245, 38, 313, 1373, 679, 431, 519, 47, 1378, 1379, 429, 93, 287, 176, 31, 339, 80, 13, 291, 1324, 465, 38, 155, 5955, 176, 251, 459, 282, 49, 1402, 451, 334, 325, 515, 515, 812, 358, 220, 354, 472, 80, 352, 472, 1543, 216, 1183, 370, 248, 1353, 475, 378, 262, 123, 406, 265, 183, 330, 513, 515, 183, 327, 517, 5722, 496, 516, 248, 1243, 519, 491, 374, 183, 515, 6074, 5571, 183, 390, 387, 436, 282, 5202, 126, 358, 515, 287, 384, 215, 505, 313, 5719, 642, 30, 34, 128, 5724, 5725, 1468, 1432, 193, 517, 459, 373, 519, 4312, 648, 429, 648, 648, 1832, 661, 446, 429, 126, 6044, 648, 667, 1517, 648, 648, 1243, 468, 515, 25, 5811, 53, 404, 405, 679, 1624, 4338, 505, 1627, 1257, 1258, 287, 515, 1695, 1696, 519, 358, 358, 519, 358, 695, 451, 429, 456, 742, 700, 413, 1519, 519, 3808, 705, 93, 413, 515, 709, 710, 387, 1529, 1396, 1635, 1288, 716, 358, 718, 719, 378, 429, 215, 515, 429, 446, 746, 5748, 515, 5147, 1579, 731, 732, 6112, 6042, 369, 443, 513, 458, 505, 519, 517, 742, 358, 514, 519, 1370, 420, 3037, 422, 519, 517, 741, 518, 1693, 458, 390, 1579, 462, 515, 1461, 506, 507, 4483, 5618, 518, 515, 518, 4237, 506, 507, 515, 518, 6152, 515, 451, 1461, 917, 434, 429, 511, 518, 5622, 2016, 5959, 513, 756, 515, 758, 517, 760, 178, 515, 511, 4345, 795, 766, 519, 1370, 1616, 4351, 4523, 1619, 1620, 4524, 1615, 1378, 1379, 4778, 770, 5946, 515, 358, 1539, 515, 496, 497, 817, 818, 506, 507, 515, 1702, 823, 515, 5974, 515, 496, 497, 515, 31, 518, 490, 358, 515, 1408, 1409, 515, 65, 429, 27, 515, 1969, 788, 5891, 429, 515, 451, 848, 1943, 850, 472, 519, 519, 1039, 519, 515, 5904, 1036, 429, 505, 5108, 1040, 429, 1042, 905, 1592, 1830, 513, 1039, 519, 4528, 517, 873, 451, 496, 506, 507, 519, 1149, 506, 507, 1976, 1609, 4152, 506, 507, 380, 905, 10, 515, 519, 13, 207, 1988, 895, 17, 18, 19, 844, 429, 397, 216, 254, 519, 1598, 5500, 4163, 908, 519, 6046, 4167, 472, 397, 907, 907, 230, 907, 907, 907, 519, 907, 907, 907, 907, 907, 907, 907, 907, 907, 907, 907, 907, 397, 907, 4574, 907, 455, 931, 4027, 1210, 3834, 5810, 1030, 519, 3693, 3694, 334, 519, 176, 3698, 1221, 4222, 5807, 141, 1648, 1649, 1586, 451, 519, 4151, 429, 4153, 519, 4433, 355, 114, 700, 1238, 25, 453, 6018, 515, 519, 170, 6111, 709, 922, 4003, 369, 3431, 371, 359, 716, 371, 3432, 719, 155, 648, 451, 458, 5790, 937, 3374, 519, 1812, 851, 508, 509, 510, 511, 6050, 6051, 3475, 821, 3477, 4432, 5806, 825, 2618, 508, 509, 510, 511, 54, 1514, 1016, 1017, 1018, 506, 507, 508, 509, 510, 511, 1025, 176, 3777, 2035, 42, 1030, 114, 114, 176, 23, 1035, 1036, 6186, 303, 5362, 1040, 23, 1042, 56, 434, 432, 1046, 434, 188, 10, 200, 438, 13, 154, 78, 300, 17, 18, 19, 6, 34, 6, 1062, 506, 507, 508, 509, 510, 511, 420, 10, 2018, 93, 13, 27, 5369, 298, 17, 18, 19, 33, 741, 742, 3831, 25, 126, 70, 205, 5956, 332, 337, 364, 1595, 5947, 126, 1598, 289, 37, 449, 112, 121, 6, 4338, 311, 176, 6154, 1106, 100, 1108, 1109, 27, 3463, 121, 3402, 301, 5685, 3405, 121, 90, 2066, 262, 322, 6, 474, 90, 178, 2865, 25, 12, 25, 993, 994, 2095, 4559, 5232, 27, 10, 6175, 5273, 13, 5878, 4495, 6137, 17, 18, 19, 1878, 374, 369, 1149, 151, 188, 27, 167, 41, 195, 1849, 298, 33, 27, 200, 133, 369, 3452, 515, 121, 40, 133, 257, 356, 357, 3460, 1851, 177, 215, 303, 6, 1177, 299, 452, 116, 382, 65, 215, 6052, 417, 6224, 298, 141, 182, 29, 369, 1871, 282, 1183, 402, 417, 2017, 254, 2019, 387, 214, 6197, 318, 244, 2025, 2945, 10, 1985, 1986, 1210, 2031, 2032, 52, 17, 18, 19, 2037, 219, 1219, 421, 1221, 423, 1795, 141, 1186, 2046, 1188, 25, 1190, 123, 1192, 2052, 1194, 1195, 1196, 378, 464, 1238, 200, 1201, 278, 6110, 1243, 131, 905, 299, 907, 114, 141, 472, 459, 116, 6121, 519, 1255, 192, 185, 5590, 273, 453, 282, 223, 1946, 25, 278, 141, 2682, 515, 417, 515, 295, 515, 141, 4234, 5616, 472, 5636, 287, 283, 1323, 5043, 5605, 223, 2751, 6153, 429, 1114, 5620, 390, 1290, 5614, 1975, 515, 278, 5589, 1979, 1030, 287, 417, 468, 1984, 303, 1036, 1987, 287, 3021, 1040, 2782, 1042, 5030, 2063, 6180, 254, 5036, 5067, 104, 457, 374, 1319, 1320, 1321, 472, 1323, 4793, 5619, 262, 3799, 192, 265, 235, 472, 25, 25, 417, 417, 6204, 515, 299, 380, 287, 5664, 287, 1343, 316, 1848, 2616, 661, 1906, 223, 316, 3, 392, 667, 1910, 311, 254, 429, 254, 299, 313, 472, 2829, 376, 420, 679, 25, 25, 1953, 1925, 1370, 1391, 1928, 1106, 2964, 1108, 1109, 216, 1378, 1379, 1938, 355, 503, 504, 505, 506, 507, 508, 509, 510, 511, 519, 74, 449, 287, 278, 313, 185, 262, 352, 515, 265, 1402, 287, 6142, 437, 1446, 1447, 5989, 1449, 451, 2771, 278, 298, 2043, 5498, 1586, 3889, 474, 451, 457, 463, 1978, 90, 380, 299, 1982, 1983, 3037, 1446, 1447, 1431, 1449, 374, 387, 352, 364, 60, 313, 121, 92, 356, 378, 44, 445, 313, 258, 3366, 1448, 453, 422, 164, 1452, 1453, 13, 10, 422, 254, 13, 515, 4776, 417, 17, 18, 19, 278, 133, 4735, 1468, 5792, 387, 387, 387, 515, 1474, 358, 374, 352, 374, 420, 5966, 3054, 388, 4739, 352, 345, 125, 27, 4744, 121, 278, 4747, 47, 254, 146, 179, 299, 188, 180, 54, 124, 292, 292, 459, 387, 312, 123, 130, 449, 115, 3252, 3253, 387, 292, 378, 3257, 472, 2016, 1463, 387, 1465, 80, 420, 1183, 420, 80, 4994, 318, 318, 232, 515, 2538, 245, 474, 177, 3, 4496, 188, 170, 318, 496, 1541, 503, 504, 505, 506, 507, 508, 509, 510, 511, 449, 92, 449, 490, 207, 3298, 3299, 4540, 515, 28, 254, 254, 503, 504, 505, 506, 507, 508, 509, 510, 511, 196, 6059, 515, 278, 474, 374, 474, 515, 5952, 5953, 1582, 222, 136, 113, 138, 278, 387, 387, 200, 1251, 477, 2540, 134, 254, 254, 198, 458, 205, 282, 141, 292, 519, 144, 287, 387, 1600, 225, 515, 5708, 1271, 1605, 374, 3073, 1615, 5273, 515, 5380, 515, 5943, 179, 313, 420, 92, 181, 490, 278, 318, 503, 504, 505, 506, 507, 508, 509, 510, 511, 426, 232, 195, 0, 387, 1913, 457, 200, 5368, 5966, 330, 316, 301, 335, 449, 2616, 3069, 234, 125, 1927, 3073, 420, 5560, 352, 5562, 1323, 346, 282, 5566, 5567, 320, 5721, 1940, 4421, 123, 431, 317, 6161, 4426, 474, 146, 472, 1680, 374, 374, 39, 368, 278, 1679, 390, 449, 244, 1683, 137, 248, 22, 369, 1695, 1696, 1697, 382, 28, 503, 504, 505, 506, 507, 508, 509, 510, 511, 1654, 312, 4503, 134, 474, 742, 374, 374, 6040, 515, 2706, 519, 519, 144, 340, 515, 515, 519, 420, 420, 177, 282, 259, 200, 1911, 418, 263, 515, 1922, 519, 207, 6059, 6113, 352, 387, 299, 515, 356, 340, 451, 4497, 393, 1921, 1922, 222, 515, 422, 449, 449, 209, 313, 164, 420, 420, 211, 446, 121, 457, 795, 374, 215, 113, 170, 4732, 313, 519, 2595, 451, 387, 226, 396, 31, 474, 474, 182, 6107, 387, 1446, 1447, 344, 1449, 449, 449, 444, 3402, 242, 1795, 3405, 390, 352, 123, 452, 200, 415, 455, 431, 4459, 457, 1807, 348, 415, 368, 417, 352, 1900, 31, 474, 474, 375, 1818, 101, 848, 329, 515, 515, 382, 515, 301, 278, 171, 429, 1830, 282, 453, 387, 1834, 5887, 123, 392, 313, 452, 4312, 245, 6161, 3452, 518, 4021, 4022, 387, 475, 312, 2813, 3460, 320, 1853, 394, 354, 515, 515, 451, 312, 418, 1861, 472, 5625, 207, 421, 4338, 423, 2678, 1869, 3, 469, 505, 2043, 4163, 519, 2839, 352, 4167, 519, 908, 2658, 440, 170, 517, 136, 496, 5607, 1888, 2706, 294, 313, 313, 449, 515, 177, 364, 1897, 164, 10, 1900, 225, 13, 1903, 170, 505, 1906, 1907, 453, 465, 1910, 1911, 5634, 1913, 1914, 363, 259, 517, 2875, 136, 263, 519, 209, 431, 387, 1925, 4102, 1927, 1928, 211, 352, 121, 2781, 5833, 387, 124, 47, 1937, 1938, 494, 1940, 1941, 5198, 54, 226, 4234, 414, 303, 503, 504, 505, 506, 507, 508, 509, 510, 511, 6055, 282, 92, 242, 515, 181, 362, 1953, 178, 387, 475, 158, 80, 515, 6, 37, 472, 82, 2938, 444, 12, 1978, 245, 27, 5407, 1982, 1983, 452, 93, 33, 455, 270, 464, 2033, 278, 278, 380, 1955, 282, 1957, 496, 1959, 212, 1961, 463, 1963, 193, 3098, 371, 1967, 196, 2000, 3954, 2000, 2000, 145, 2009, 5099, 297, 340, 2017, 2000, 2019, 519, 2000, 2000, 204, 2024, 2025, 2875, 3972, 294, 248, 417, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 149, 258, 2040, 3004, 2042, 5805, 2044, 2045, 2046, 2047, 2048, 2049, 1995, 313, 2052, 515, 2054, 2055, 4528, 3472, 2058, 6157, 5020, 303, 2879, 313, 2913, 5270, 352, 3482, 434, 4996, 2887, 5823, 459, 2890, 2074, 2075, 2076, 2077, 2958, 2959, 2960, 363, 5804, 3988, 195, 4005, 348, 332, 151, 200, 352, 4011, 282, 2093, 141, 2095, 153, 278, 2947, 371, 2012, 164, 352, 2855, 3563, 3678, 2928, 170, 5035, 5314, 4010, 1600, 4020, 124, 4014, 4015, 1605, 13, 251, 3285, 5588, 2853, 5015, 2855, 434, 387, 5401, 472, 515, 313, 352, 82, 164, 244, 2706, 377, 344, 387, 170, 291, 313, 5226, 93, 5228, 344, 202, 3090, 155, 3563, 505, 313, 47, 313, 3930, 283, 284, 219, 513, 313, 515, 516, 517, 434, 519, 1897, 387, 3756, 1900, 352, 472, 5639, 453, 3762, 381, 519, 3651, 465, 1910, 1911, 352, 313, 381, 245, 356, 80, 196, 5948, 235, 299, 352, 1679, 352, 1925, 496, 1683, 1928, 356, 352, 3161, 369, 313, 371, 421, 387, 423, 377, 4495, 4496, 4958, 417, 4960, 4961, 4962, 245, 387, 348, 519, 417, 352, 352, 2903, 515, 2905, 356, 387, 171, 2909, 387, 472, 282, 449, 294, 2925, 3700, 287, 5661, 4984, 2237, 4986, 352, 303, 758, 759, 760, 4143, 1978, 763, 764, 765, 1982, 1983, 380, 496, 387, 387, 170, 773, 465, 5218, 5613, 357, 207, 294, 515, 434, 465, 31, 151, 472, 340, 56, 515, 5232, 516, 387, 261, 519, 170, 3745, 194, 164, 392, 353, 6045, 2284, 338, 170, 420, 417, 422, 387, 258, 496, 1953, 5569, 50, 4038, 4039, 4040, 4041, 3466, 194, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 383, 3276, 170, 282, 102, 434, 73, 3282, 85, 472, 272, 88, 29, 496, 497, 354, 5, 94, 459, 3148, 3064, 5884, 11, 219, 6056, 2337, 194, 472, 2000, 127, 19, 472, 515, 496, 296, 52, 3041, 3042, 3043, 3044, 6212, 3046, 6214, 429, 6, 122, 377, 145, 37, 245, 12, 149, 1592, 983, 1680, 496, 4110, 4111, 4836, 3870, 380, 2033, 6234, 35, 36, 4843, 3071, 453, 3023, 1609, 445, 494, 1002, 171, 515, 1005, 5, 175, 421, 2051, 423, 151, 11, 506, 507, 508, 509, 510, 511, 513, 97, 515, 190, 517, 164, 496, 497, 417, 294, 510, 170, 71, 72, 180, 515, 510, 517, 303, 5889, 5890, 515, 421, 517, 423, 515, 756, 193, 758, 5390, 760, 5707, 516, 3254, 258, 519, 766, 767, 768, 100, 206, 5525, 4732, 514, 258, 3266, 5530, 5531, 519, 4739, 459, 380, 513, 515, 4744, 517, 517, 4747, 151, 120, 219, 3145, 6183, 472, 516, 508, 513, 519, 515, 6, 513, 164, 515, 3226, 517, 12, 10, 170, 205, 13, 3361, 3302, 101, 17, 18, 19, 245, 496, 417, 6, 10, 261, 5453, 13, 155, 12, 6, 17, 18, 19, 287, 6, 12, 37, 6, 194, 515, 12, 2779, 151, 12, 100, 434, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 164, 2524, 514, 3346, 219, 6, 170, 519, 459, 120, 89, 12, 2535, 294, 5, 2538, 1853, 5, 465, 6011, 11, 472, 303, 11, 1861, 516, 61, 3367, 519, 338, 245, 4163, 1869, 6, 2742, 4167, 177, 235, 445, 12, 2741, 6, 2743, 2744, 155, 496, 5319, 12, 6, 2742, 515, 22, 517, 297, 12, 219, 2579, 28, 302, 2242, 2583, 15, 16, 2586, 515, 2588, 508, 2578, 2591, 3705, 211, 513, 2595, 515, 472, 517, 474, 1914, 472, 294, 474, 245, 3386, 3387, 297, 226, 979, 516, 303, 302, 519, 984, 421, 2616, 423, 2618, 274, 275, 276, 277, 377, 242, 4234, 955, 1941, 3549, 516, 6099, 516, 519, 3364, 519, 2635, 516, 516, 403, 519, 519, 406, 4587, 516, 2644, 2645, 519, 516, 515, 3473, 519, 2738, 270, 294, 3575, 463, 2778, 101, 4603, 5641, 11, 516, 303, 516, 519, 3417, 519, 1184, 15, 16, 1187, 2671, 1189, 2663, 1191, 472, 1193, 474, 2678, 297, 1197, 516, 2682, 2683, 519, 369, 370, 445, 348, 2689, 223, 516, 3321, 2693, 519, 516, 1025, 2697, 519, 516, 3483, 3550, 519, 415, 223, 516, 2706, 3654, 519, 4451, 4630, 4284, 2708, 472, 2710, 474, 4636, 4637, 2618, 284, 380, 297, 516, 516, 2724, 519, 519, 2727, 4505, 40, 6005, 5020, 3859, 177, 516, 374, 516, 519, 2738, 519, 2740, 2741, 2864, 2743, 2744, 363, 2746, 515, 5708, 516, 311, 62, 519, 445, 5502, 513, 519, 417, 2758, 517, 348, 2056, 5510, 5511, 2059, 516, 299, 211, 519, 516, 516, 516, 519, 519, 519, 35, 36, 3626, 2778, 2779, 299, 516, 226, 4282, 519, 4284, 516, 2787, 516, 519, 515, 519, 380, 4260, 421, 3367, 423, 5882, 242, 459, 4274, 5273, 113, 463, 445, 2750, 61, 4222, 516, 2809, 2810, 519, 472, 2813, 136, 380, 138, 3500, 516, 380, 516, 519, 2944, 519, 3971, 516, 270, 516, 519, 417, 519, 516, 496, 497, 519, 3798, 496, 2837, 3840, 2839, 369, 370, 516, 2843, 10, 519, 516, 13, 518, 5809, 5179, 4318, 417, 5182, 465, 515, 417, 2857, 3802, 516, 516, 50, 519, 519, 2864, 516, 492, 2867, 519, 369, 370, 459, 513, 2873, 516, 516, 517, 519, 516, 516, 518, 47, 519, 6158, 472, 2618, 4495, 4496, 54, 4134, 300, 4136, 203, 2893, 459, 369, 370, 516, 459, 2899, 519, 5239, 5240, 3527, 2849, 5485, 2906, 472, 496, 5198, 516, 472, 516, 519, 80, 519, 4723, 3649, 4725, 363, 2920, 5393, 3654, 516, 2584, 516, 519, 515, 519, 5218, 225, 496, 2902, 2933, 40, 496, 516, 297, 2938, 519, 6215, 170, 516, 5232, 2944, 519, 516, 492, 259, 519, 515, 516, 263, 518, 515, 3527, 62, 516, 2618, 4168, 519, 4170, 2962, 2963, 2964, 517, 516, 278, 2968, 519, 503, 504, 505, 506, 507, 508, 509, 510, 511, 516, 5676, 5677, 519, 149, 503, 504, 505, 506, 507, 508, 509, 510, 511, 297, 516, 2995, 2996, 519, 1463, 5959, 1465, 312, 50, 2663, 3004, 2738, 516, 113, 2741, 519, 2743, 2744, 5852, 5853, 3192, 5942, 3194, 3195, 4517, 516, 516, 516, 519, 519, 519, 516, 300, 516, 519, 195, 519, 492, 516, 516, 200, 519, 519, 3037, 225, 516, 516, 4207, 519, 519, 1373, 516, 357, 175, 519, 1378, 1379, 462, 516, 516, 516, 519, 519, 519, 516, 516, 516, 519, 519, 519, 519, 516, 3056, 4512, 519, 3069, 381, 54, 55, 3073, 4533, 508, 10, 1406, 244, 13, 326, 515, 39, 17, 18, 19, 1415, 515, 1417, 6049, 401, 516, 1421, 515, 519, 6055, 3828, 203, 515, 1428, 516, 5390, 3189, 3796, 516, 61, 176, 519, 4235, 4236, 516, 4074, 4239, 519, 516, 515, 5704, 10, 4533, 516, 13, 221, 519, 4732, 17, 18, 19, 221, 516, 516, 4739, 519, 519, 299, 4081, 4744, 516, 3037, 4747, 519, 516, 352, 516, 519, 37, 519, 516, 516, 515, 519, 519, 3321, 516, 259, 517, 519, 476, 263, 515, 3159, 515, 3161, 3979, 3846, 5453, 200, 516, 516, 74, 519, 519, 156, 278, 515, 80, 156, 3176, 517, 3178, 297, 3804, 516, 3806, 3958, 519, 3185, 200, 93, 352, 3189, 1519, 3191, 3192, 297, 3194, 3195, 3196, 6157, 4137, 516, 1529, 156, 519, 156, 3204, 516, 312, 516, 200, 3209, 519, 3254, 156, 4033, 297, 121, 516, 123, 516, 519, 516, 519, 170, 519, 156, 3225, 392, 3497, 3498, 2609, 2610, 2611, 3804, 4180, 3806, 516, 516, 352, 519, 519, 243, 123, 297, 453, 1573, 1574, 515, 4067, 291, 170, 516, 357, 3252, 3253, 3254, 74, 3426, 3257, 282, 3302, 3943, 0, 40, 282, 3888, 3265, 3266, 3267, 3268, 476, 4217, 515, 297, 282, 180, 381, 3276, 4850, 50, 50, 282, 3281, 3282, 439, 3284, 282, 3286, 1616, 92, 223, 1619, 1620, 313, 465, 465, 401, 89, 434, 3298, 3299, 4120, 170, 3302, 209, 3037, 333, 156, 5961, 156, 515, 156, 156, 156, 476, 156, 519, 3888, 156, 156, 156, 156, 156, 156, 3323, 5613, 3325, 156, 3327, 494, 170, 223, 156, 156, 93, 156, 156, 297, 417, 515, 4283, 506, 507, 508, 509, 510, 511, 3346, 40, 4311, 243, 4313, 3354, 3355, 3356, 4828, 170, 10, 2671, 170, 13, 297, 100, 3405, 515, 515, 299, 515, 3367, 170, 515, 515, 515, 515, 3643, 4337, 2689, 282, 515, 289, 2693, 515, 287, 515, 2697, 515, 515, 515, 473, 515, 515, 515, 5133, 515, 47, 515, 3665, 3056, 309, 515, 515, 54, 515, 3402, 515, 515, 3405, 299, 515, 515, 165, 2724, 5020, 151, 3456, 515, 221, 515, 515, 3418, 5708, 515, 181, 515, 3423, 330, 164, 80, 515, 4252, 4556, 515, 170, 519, 515, 40, 519, 4219, 176, 3438, 104, 346, 40, 243, 182, 2758, 205, 185, 40, 515, 39, 189, 427, 3452, 427, 513, 513, 3189, 429, 429, 3192, 3460, 3194, 3195, 62, 2778, 429, 515, 429, 176, 519, 170, 5416, 3472, 170, 294, 3475, 292, 3477, 387, 70, 219, 517, 3482, 1812, 429, 4429, 4407, 429, 248, 374, 429, 464, 245, 429, 374, 149, 2810, 3497, 3498, 429, 429, 6155, 3402, 3503, 374, 3405, 245, 429, 81, 429, 505, 429, 93, 374, 113, 156, 297, 379, 240, 429, 5809, 4338, 429, 2837, 3524, 287, 129, 3527, 429, 2843, 3530, 420, 318, 452, 297, 292, 369, 4417, 3538, 429, 446, 195, 302, 2857, 193, 515, 200, 515, 429, 3819, 2864, 3821, 3452, 2867, 93, 294, 519, 129, 297, 2873, 3460, 313, 200, 3563, 303, 453, 453, 156, 129, 503, 504, 505, 506, 507, 508, 509, 510, 511, 429, 2893, 429, 180, 429, 115, 129, 2899, 429, 61, 61, 5198, 244, 267, 2906, 337, 3254, 301, 337, 429, 429, 3599, 3600, 3601, 429, 429, 203, 337, 2920, 420, 318, 5218, 503, 504, 505, 506, 507, 508, 509, 510, 511, 2933, 429, 360, 429, 5232, 3624, 49, 4589, 318, 49, 3799, 2944, 429, 429, 3633, 429, 3635, 519, 429, 429, 429, 429, 429, 3302, 3643, 429, 299, 429, 429, 516, 520, 297, 5066, 223, 223, 223, 223, 223, 223, 223, 223, 259, 421, 297, 423, 263, 3665, 3326, 223, 223, 3402, 5959, 429, 3405, 439, 434, 515, 40, 156, 417, 278, 297, 156, 3342, 121, 5426, 282, 446, 156, 453, 449, 156, 464, 136, 10, 138, 156, 13, 297, 2027, 2028, 17, 18, 19, 251, 3974, 282, 445, 282, 282, 2038, 2039, 40, 170, 312, 5456, 515, 515, 40, 162, 3452, 37, 136, 235, 138, 51, 376, 156, 3460, 515, 3729, 469, 156, 471, 472, 453, 453, 156, 156, 392, 291, 429, 2070, 3402, 286, 176, 3405, 515, 162, 468, 267, 267, 3751, 13, 427, 493, 519, 3756, 429, 357, 185, 6049, 515, 3762, 431, 4581, 515, 6055, 515, 308, 516, 519, 3771, 265, 516, 513, 193, 193, 516, 517, 518, 513, 5390, 381, 227, 378, 492, 516, 1453, 492, 516, 516, 516, 3452, 232, 469, 519, 3456, 219, 3798, 3799, 3460, 298, 401, 390, 3804, 519, 3806, 453, 40, 453, 306, 61, 227, 516, 464, 374, 515, 453, 232, 3819, 232, 3821, 287, 287, 4771, 429, 170, 429, 429, 515, 274, 275, 276, 277, 287, 297, 50, 281, 282, 396, 494, 3841, 297, 287, 5453, 3159, 282, 243, 243, 243, 369, 4671, 506, 507, 508, 509, 510, 511, 261, 274, 275, 276, 277, 297, 3178, 129, 281, 3867, 6157, 429, 420, 3185, 287, 387, 519, 4685, 200, 519, 5005, 194, 352, 297, 384, 3873, 297, 429, 297, 472, 3888, 3889, 340, 429, 4575, 4576, 4577, 4578, 4579, 303, 516, 40, 453, 223, 453, 4754, 235, 336, 223, 505, 156, 292, 170, 3911, 40, 418, 172, 156, 465, 384, 156, 3909, 515, 156, 292, 515, 453, 472, 282, 337, 40, 5374, 3930, 282, 3877, 29, 297, 297, 235, 292, 191, 191, 170, 40, 171, 235, 384, 170, 282, 297, 476, 3949, 61, 200, 429, 3953, 200, 200, 200, 200, 176, 264, 472, 519, 297, 291, 176, 519, 176, 493, 458, 303, 309, 136, 319, 519, 3974, 176, 517, 519, 4118, 515, 281, 516, 299, 516, 4766, 519, 516, 429, 519, 516, 3990, 516, 436, 3993, 516, 516, 0, 492, 3998, 515, 4000, 516, 258, 447, 5613, 516, 516, 516, 516, 5508, 4010, 496, 516, 3958, 4014, 4015, 519, 516, 516, 176, 4020, 436, 4966, 515, 4841, 516, 515, 515, 4028, 515, 4030, 514, 447, 4033, 469, 515, 514, 4037, 4038, 4039, 4040, 4041, 185, 519, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 495, 253, 505, 4057, 4058, 4059, 451, 469, 4062, 297, 61, 205, 459, 4067, 515, 297, 297, 156, 4072, 4116, 4074, 429, 4076, 300, 515, 213, 429, 429, 515, 287, 4084, 159, 429, 4087, 282, 4089, 156, 387, 406, 379, 156, 156, 100, 379, 379, 5708, 205, 243, 159, 505, 297, 159, 374, 4107, 429, 469, 4110, 4111, 453, 245, 320, 4115, 4116, 320, 450, 159, 4120, 429, 4122, 4126, 4127, 4128, 4129, 429, 4757, 403, 255, 429, 429, 255, 255, 429, 429, 374, 429, 429, 429, 374, 4312, 374, 429, 429, 129, 151, 374, 282, 156, 4143, 429, 4143, 4143, 4155, 429, 49, 429, 516, 164, 4143, 514, 4163, 4143, 4143, 170, 4167, 4338, 188, 387, 516, 176, 223, 516, 223, 516, 301, 182, 516, 439, 185, 3, 40, 170, 189, 503, 504, 505, 506, 507, 508, 509, 510, 511, 50, 114, 516, 170, 4199, 5809, 519, 515, 519, 516, 62, 40, 4477, 4478, 156, 3524, 156, 170, 3873, 429, 219, 4216, 505, 188, 292, 515, 156, 4222, 374, 374, 374, 374, 5642, 374, 453, 384, 88, 453, 154, 4234, 154, 519, 513, 223, 223, 147, 245, 4925, 4926, 223, 4928, 223, 223, 223, 3909, 5992, 5993, 223, 4985, 223, 4255, 113, 114, 223, 227, 360, 297, 297, 4163, 121, 61, 297, 4167, 297, 13, 309, 176, 519, 464, 516, 446, 516, 2606, 2607, 281, 516, 307, 446, 2612, 226, 226, 304, 61, 419, 189, 294, 426, 514, 297, 5174, 360, 516, 516, 458, 303, 91, 439, 515, 519, 170, 516, 4306, 516, 516, 40, 3624, 4311, 4312, 4313, 453, 2644, 2645, 453, 515, 515, 515, 235, 429, 180, 213, 61, 420, 156, 5208, 88, 180, 403, 379, 439, 4234, 159, 429, 4337, 4338, 429, 429, 374, 429, 429, 374, 352, 203, 516, 516, 516, 5959, 5924, 515, 472, 515, 61, 360, 420, 4528, 170, 297, 5324, 459, 80, 156, 114, 208, 223, 439, 2035, 2036, 516, 223, 232, 223, 223, 429, 2706, 705, 2045, 297, 476, 4352, 40, 4384, 515, 515, 4387, 2054, 515, 318, 295, 519, 516, 4364, 297, 3, 515, 439, 519, 46, 429, 259, 519, 731, 515, 263, 516, 183, 182, 384, 114, 176, 417, 223, 516, 145, 287, 516, 287, 287, 278, 287, 176, 516, 282, 61, 470, 516, 10, 4163, 309, 13, 516, 4167, 516, 470, 3751, 233, 519, 6049, 445, 318, 233, 226, 515, 6055, 516, 516, 471, 505, 4451, 5546, 426, 5548, 312, 4116, 515, 439, 515, 10, 2790, 292, 13, 176, 469, 47, 471, 472, 429, 80, 472, 207, 54, 194, 194, 61, 4477, 4478, 287, 287, 4481, 505, 4143, 420, 429, 27, 519, 4488, 493, 74, 429, 33, 156, 519, 4495, 4496, 47, 429, 80, 357, 4234, 429, 4163, 54, 4505, 159, 4167, 5191, 513, 223, 516, 516, 517, 518, 515, 128, 178, 121, 5202, 40, 200, 292, 515, 381, 40, 384, 453, 4528, 172, 80, 4521, 282, 4533, 4534, 4535, 292, 78, 384, 472, 61, 86, 472, 420, 401, 4545, 403, 40, 6157, 406, 2879, 176, 297, 515, 5681, 4825, 170, 300, 2887, 347, 519, 2890, 210, 221, 516, 516, 516, 176, 149, 515, 5557, 458, 400, 2902, 5351, 61, 516, 377, 40, 83, 93, 515, 137, 515, 201, 346, 4586, 4757, 297, 4589, 429, 5718, 516, 134, 516, 4495, 4496, 40, 156, 149, 141, 170, 156, 144, 5233, 515, 429, 515, 40, 515, 287, 256, 5432, 453, 195, 4615, 3930, 515, 515, 200, 515, 515, 515, 156, 384, 516, 5446, 114, 40, 4629, 171, 516, 301, 176, 439, 3949, 398, 5764, 5765, 3953, 398, 516, 170, 4643, 204, 195, 4916, 5467, 113, 40, 200, 468, 516, 515, 5474, 515, 5285, 458, 515, 193, 453, 515, 515, 244, 170, 420, 207, 519, 420, 205, 515, 4671, 519, 278, 4674, 297, 6, 515, 163, 516, 515, 370, 4682, 4683, 370, 4685, 74, 476, 74, 300, 4690, 4691, 518, 137, 244, 4695, 472, 142, 516, 468, 472, 458, 4702, 457, 167, 4705, 4706, 167, 1035, 519, 37, 515, 4712, 515, 387, 257, 420, 176, 299, 1046, 343, 5541, 5542, 287, 207, 420, 5689, 297, 515, 297, 384, 40, 4732, 40, 300, 1062, 515, 278, 300, 4739, 5557, 282, 178, 5013, 4744, 201, 155, 4747, 4748, 299, 178, 292, 515, 369, 152, 4755, 61, 61, 304, 40, 301, 10, 4495, 4496, 13, 353, 4766, 61, 516, 5756, 425, 407, 313, 429, 4774, 126, 451, 516, 4768, 4769, 6, 5464, 384, 515, 142, 37, 287, 515, 425, 515, 5917, 5754, 26, 369, 4794, 4791, 10, 519, 47, 13, 305, 519, 369, 83, 283, 54, 176, 387, 429, 283, 515, 392, 4812, 155, 355, 356, 398, 5774, 121, 3148, 398, 519, 515, 472, 458, 4825, 459, 453, 472, 178, 178, 80, 4732, 47, 515, 4495, 516, 5400, 458, 4739, 54, 459, 392, 907, 4744, 947, 387, 4747, 3367, 2913, 994, 2822, 4852, 1682, 3575, 1379, 993, 4311, 5985, 5986, 4286, 4521, 5908, 2939, 3790, 4835, 80, 5550, 2993, 4869, 5327, 5754, 6026, 4475, 4874, 4845, 0, 5697, 5374, 5699, 4284, 4881, 4284, 4975, 5350, 3504, 3135, 5888, 5232, 6014, 5784, 5783, 1219, 5928, 6049, 5020, 3508, 4897, 4496, 4522, 149, 4507, 5728, 4465, 4904, 3007, 3007, 4306, 3838, 4491, 989, 3600, 5014, 494, 5357, 456, 4916, 3882, 4558, 5654, 6122, 45, 6227, 6209, 5341, 506, 507, 508, 509, 510, 511, 3798, 5940, 4530, 5287, 5528, 5737, 1842, 5290, 18, 28, 4255, 644, 5497, 494, 1211, 195, 4947, 3947, 4586, 4589, 200, 2683, 6118, 3023, 1886, 506, 507, 508, 509, 510, 511, 3482, 5400, 4533, 5642, 1883, 1921, 3893, 2635, 1897, 5543, 696, 4973, 2938, 3732, 100, 4337, 729, 3651, 5966, 195, 6161, 4562, 2969, 5557, 200, 1795, 4564, 4989, 2625, 5723, 1498, 6177, 4994, 244, 4214, 838, 1395, 4732, 5494, 1354, 4770, 5881, 5274, 40, 4739, 40, 3423, 3438, 1456, 4744, 4629, 5013, 4747, 4748, 5869, 5701, 4152, 2635, 5020, 3405, 4169, 5199, 3402, 5453, 1455, 151, 5452, 4215, 244, 1458, 6139, 3402, 5863, 5996, 3365, 5688, 3367, 6026, 164, 1412, 5032, 5430, 2529, 4076, 170, 5702, 3344, 5703, 299, 2530, 176, 2047, 3383, 3326, 3205, 2968, 182, 3324, 3314, 185, 3240, 5233, 4013, 189, 5066, -1, 5068, 2535, 4384, -1, 2623, 4387, -1, 895, -1, -1, -1, 4739, -1, -1, -1, -1, 4744, 299, -1, 4747, -1, -1, -1, 5720, -1, -1, -1, 219, -1, 221, -1, 5099, 5285, 3430, 3431, 5273, -1, -1, 5284, -1, 4768, 4769, -1, -1, 6, -1, -1, 5285, -1, -1, -1, -1, 5020, 245, -1, -1, -1, -1, -1, -1, -1, 23, 5130, 25, -1, 5133, -1, 29, 5136, 5137, 5138, -1, 34, 35, 36, 392, 38, -1, -1, 41, 42, -1, 44, 5329, 46, -1, -1, -1, -1, -1, -1, 53, 54, 55, -1, 5163, 5164, -1, -1, 5167, -1, -1, 294, -1, -1, 297, 4488, -1, -1, -1, 392, 303, -1, -1, -1, -1, 5756, -1, -1, -1, 5188, 6196, -1, 4505, -1, -1, 5194, -1, -1, -1, 5198, -1, -1, 6164, -1, -1, 5204, 5205, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5218, -1, -1, 5221, -1, -1, -1, -1, 5226, -1, 5228, -1, -1, -1, 5232, -1, -1, -1, 360, -1, -1, -1, -1, -1, -1, -1, -1, 494, 6209, -1, -1, -1, 5211, -1, -1, -1, -1, 1582, 4989, 506, 507, 508, 509, 510, 511, -1, 6227, -1, -1, -1, -1, -1, -1, -1, 4586, 5273, 5274, -1, -1, -1, -1, -1, 494, -1, 6102, -1, 5284, -1, -1, 5020, -1, 413, -1, -1, 506, 507, 508, 509, 510, 511, 5198, -1, -1, -1, -1, 197, 198, 199, -1, -1, 202, -1, -1, -1, 206, -1, 208, -1, -1, 211, 5218, -1, 214, 445, -1, 217, 5324, -1, 220, -1, 222, 5329, 6210, 225, 5232, -1, -1, 229, 5908, 231, -1, -1, -1, -1, -1, -1, -1, 469, -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5355, -1, -1, -1, 493, -1, -1, 5032, 6105, 6106, -1, -1, -1, -1, -1, -1, 6201, -1, -1, -1, -1, -1, -1, -1, -1, 5390, -1, 516, 5393, 518, 519, 5386, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5400, 5400, -1, 5400, 5400, 5400, -1, 5400, 5400, 5400, 5400, 5400, 5400, 5400, 5400, 5400, 5400, 5400, 5400, 5426, 5400, -1, 5400, 5430, 5474, 5432, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5389, 40, 5446, -1, -1, -1, -1, -1, -1, 5453, 6026, -1, 5456, -1, -1, -1, -1, -1, -1, -1, -1, 5198, -1, 5467, -1, 64, 3799, -1, -1, -1, 5474, -1, -1, -1, -1, -1, 1807, -1, -1, -1, -1, 5218, -1, -1, -1, -1, 5390, 1818, -1, 3822, -1, -1, -1, -1, -1, 5232, -1, -1, -1, -1, 99, -1, -1, 1834, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5525, -1, -1, -1, -1, 5530, 5531, -1, -1, -1, 5535, -1, -1, 5198, -1, -1, 5541, 5542, 5543, -1, -1, -1, -1, -1, -1, 5720, 5284, -1, 5453, -1, 4869, 27, 5557, -1, -1, -1, 1888, 33, -1, -1, 160, -1, 4881, -1, -1, -1, -1, -1, -1, -1, -1, 1903, 5577, -1, 1906, 1907, -1, -1, -1, -1, 5585, 3252, 3253, 5588, -1, -1, 3257, -1, -1, -1, -1, 5329, -1, -1, -1, -1, -1, 197, -1, -1, -1, -1, 78, -1, -1, 1937, 1938, -1, 5613, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5615, -1, -1, -1, -1, -1, -1, 3298, 3299, -1, -1, -1, -1, -1, -1, 235, -1, 5642, 5643, -1, 240, -1, -1, -1, -1, 3979, -1, -1, -1, -1, -1, -1, 5390, -1, -1, -1, -1, -1, 134, -1, -1, 5666, -1, -1, -1, 141, -1, -1, 144, 27, 5675, 5676, 5677, -1, -1, 33, -1, -1, -1, -1, -1, -1, 282, 5688, 5689, -1, -1, 5692, -1, -1, 5355, -1, 5697, -1, 5699, 171, 5701, -1, -1, -1, -1, -1, -1, 5708, -1, -1, -1, -1, 5613, -1, 5705, -1, 5895, -1, 314, 5453, -1, -1, -1, -1, 78, 5386, -1, -1, 5729, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, 5400, -1, -1, -1, -1, -1, -1, 2074, -1, 643, -1, -1, -1, -1, 5754, 649, 5756, 651, -1, 653, -1, 356, 656, -1, -1, -1, 361, -1, -1, 663, -1, -1, -1, -1, 668, 370, 670, -1, -1, -1, -1, 134, 676, -1, 379, 5099, -1, -1, 141, 5967, 5968, 144, 387, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 399, -1, 700, 278, 5708, 5809, -1, 282, -1, 408, 5474, 709, -1, 412, 171, 713, -1, 292, 716, -1, -1, 719, -1, -1, -1, -1, 301, -1, -1, -1, -1, -1, -1, 432, -1, -1, -1, 735, 313, -1, -1, -1, 5846, -1, -1, -1, -1, -1, 5585, -1, 207, -1, -1, -1, -1, 5859, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5869, -1, -1, 467, -1, -1, -1, 471, -1, -1, 5879, 5613, 352, 5882, -1, 355, 356, -1, -1, -1, -1, -1, -1, -1, -1, 788, 5895, -1, -1, -1, -1, -1, -1, -1, 797, -1, -1, -1, -1, 5908, 5809, -1, -1, 5226, -1, 5228, -1, 387, -1, -1, -1, -1, -1, -1, 817, 818, 278, 820, 821, -1, 282, -1, 825, -1, -1, -1, -1, -1, -1, -1, 292, -1, -1, -1, -1, -1, 839, -1, -1, 301, 5949, 844, 5941, -1, 5613, -1, 5615, 850, -1, -1, 5959, 313, -1, -1, -1, -1, -1, -1, 5967, 5968, -1, -1, -1, -1, 5973, -1, 5708, 5966, 5966, -1, -1, -1, -1, -1, 4312, 5966, 456, -1, 5966, 5966, -1, -1, -1, 5992, 5993, -1, -1, -1, -1, -1, 352, -1, 895, 355, 356, -1, -1, -1, -1, -1, 4338, -1, -1, -1, -1, -1, 909, 6059, -1, -1, -1, -1, -1, -1, 4352, -1, -1, 6026, -1, 922, -1, 40, -1, -1, -1, 387, 4364, -1, -1, -1, 6217, 6218, -1, -1, 937, -1, 5705, -1, -1, -1, 6049, -1, -1, -1, -1, 64, 6055, -1, -1, -1, 5959, -1, -1, 956, -1, -1, -1, -1, 961, 962, 6059, 6059, -1, -1, 6073, 6074, -1, 5809, 6059, -1, -1, 6059, 6059, -1, -1, -1, -1, -1, -1, 6088, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, 993, 994, -1, 6102, 456, -1, -1, -1, -1, -1, -1, -1, 4440, 4441, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1016, 1017, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1030, 6137, 1032, -1, -1, -1, 1036, 0, -1, 1039, 1040, -1, 1042, 6049, 160, -1, -1, 1047, -1, 6055, -1, 6157, -1, -1, -1, -1, 5895, -1, 6164, -1, -1, -1, -1, -1, -1, 6161, 6161, -1, -1, -1, -1, 1071, -1, 6161, -1, -1, 6161, 6161, 1078, 1079, -1, 197, -1, -1, -1, -1, -1, -1, -1, -1, 6196, 6197, -1, 4528, -1, 6201, -1, -1, -1, 6205, 1100, 1101, 1102, 6209, 1104, -1, 1106, -1, 1108, 1109, -1, 6217, 6218, -1, -1, -1, -1, -1, -1, 235, 5959, 6227, -1, -1, 240, -1, -1, -1, 5967, 5968, -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, 1142, -1, 1144, 1145, 4581, 10, -1, -1, 13, 6157, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, 282, -1, -1, -1, -1, -1, -1, -1, 37, 5941, -1, 1177, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, 151, -1, -1, 54, -1, -1, -1, -1, -1, -1, 314, -1, 5966, 164, -1, 1203, -1, 1205, -1, 170, -1, 1209, 6049, 1211, -1, 176, -1, -1, 6055, 80, -1, 182, -1, -1, 185, -1, -1, -1, 189, -1, -1, -1, -1, -1, -1, -1, 6073, 1235, -1, 1237, -1, -1, 356, 1241, -1, -1, -1, 361, -1, -1, 4020, -1, -1, -1, -1, -1, 370, 1255, 219, -1, -1, -1, -1, -1, -1, 379, -1, -1, 4038, 4039, 4040, 4041, -1, 387, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 245, 399, -1, -1, -1, -1, -1, -1, 1290, -1, 408, 6059, -1, -1, 412, -1, 6137, -1, 4072, -1, -1, -1, -1, -1, -1, 2740, -1, -1, -1, -1, -1, 2746, -1, -1, 432, -1, 6157, 1319, 1320, 1321, -1, 1323, -1, -1, -1, -1, -1, -1, -1, 294, 195, -1, 297, -1, -1, 200, 4110, 4111, 303, -1, -1, 1343, -1, -1, -1, -1, -1, -1, -1, 467, -1, -1, 2787, 471, -1, -1, 6197, -1, 223, 224, -1, -1, -1, -1, 6205, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6217, 6218, -1, 244, -1, 4155, 1384, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6161, -1, 360, -1, -1, 4835, -1, 1402, -1, -1, -1, 4841, -1, -1, -1, 4845, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 299, 4872, 4873, 302, -1, -1, 4877, 4878, -1, -1, -1, -1, 1448, -1, -1, -1, 1452, 1453, 417, -1, -1, -1, -1, -1, -1, -1, 5882, 1463, 1464, 1465, 1466, -1, 1468, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 445, -1, 64, -1, -1, -1, -1, -1, -1, 1491, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 469, -1, 471, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, 1526, -1, -1, 392, 493, 1531, -1, -1, 1534, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1547, 1548, -1, 513, -1, -1, 516, 517, 518, 1556, -1, -1, 1559, -1, -1, -1, 2996, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, 160, -1, -1, -1, -1, -1, 1586, -1, 1588, -1, -1, 1591, -1, -1, 1594, 1595, 37, -1, 1598, -1, -1, -1, -1, -1, -1, -1, 47, -1, 1608, -1, -1, 1611, -1, 54, 1614, -1, -1, 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 494, -1, -1, -1, -1, 1636, -1, -1, 80, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, -1, 1654, -1, 10, 520, -1, 13, 240, -1, -1, 17, 18, 19, 1666, 1667, 1668, 1669, 1670, -1, -1, -1, -1, -1, -1, -1, -1, 4451, -1, -1, -1, 37, 1684, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, 1695, 1696, 1697, 278, -1, 54, -1, 282, -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, -1, -1, -1, -1, -1, 313, 314, -1, -1, -1, -1, -1, -1, -1, -1, 3176, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, 3191, 200, -1, -1, -1, 3196, -1, -1, -1, -1, -1, -1, -1, -1, 352, -1, -1, -1, 356, -1, -1, -1, -1, 361, 223, 224, -1, -1, -1, -1, -1, -1, 370, -1, 3225, -1, 1794, -1, -1, -1, -1, 379, -1, -1, -1, 244, -1, 1805, -1, 387, -1, -1, -1, -1, -1, 1813, 1814, -1, -1, -1, -1, 399, -1, -1, -1, -1, -1, -1, -1, -1, 408, 1829, -1, -1, 412, -1, -1, -1, -1, -1, 5273, -1, -1, 195, -1, -1, 285, -1, 200, 1847, 1848, -1, -1, -1, -1, -1, -1, -1, -1, -1, 299, -1, -1, 302, -1, 1863, 1864, 1865, 1866, -1, -1, 223, 224, -1, 1872, -1, -1, -1, -1, -1, -1, 1879, -1, -1, 1882, -1, -1, -1, -1, 467, -1, -1, 244, -1, -1, -1, 51, -1, 10, 1897, -1, 13, 1900, -1, 4674, 17, 18, 19, -1, -1, -1, -1, 1910, 1911, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1921, 1922, 37, -1, 1925, -1, -1, 1928, -1, -1, 285, -1, 47, -1, -1, -1, -1, -1, -1, 54, -1, -1, 1943, 1944, 299, -1, -1, 302, -1, 1950, 392, 1952, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, 80, -1, -1, 1969, -1, -1, -1, -1, -1, -1, 1976, -1, 1978, -1, 37, 1981, 1982, 1983, -1, 1985, 1986, -1, 1988, -1, 47, -1, -1, -1, -1, 1995, -1, 54, -1, -1, -1, -1, 2002, -1, -1, 2005, 2006, -1, -1, 2009, -1, -1, 2012, 2013, -1, -1, -1, 2017, -1, 2019, -1, -1, -1, 80, 2024, 2025, -1, -1, -1, -1, -1, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 392, -1, 2040, -1, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, -1, -1, 2052, 494, 2054, 2055, -1, -1, 2058, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, 2075, 2076, 2077, 519, -1, -1, 195, -1, -1, -1, -1, 200, -1, -1, -1, -1, -1, -1, 2093, -1, -1, -1, 3530, -1, -1, -1, -1, -1, -1, -1, 3538, -1, -1, -1, 223, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5557, -1, -1, -1, -1, -1, -1, -1, 244, -1, -1, 2133, -1, -1, 17, -1, 195, -1, 494, -1, -1, 200, -1, 26, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, 516, -1, -1, 519, 223, 224, -1, -1, -1, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 299, -1, 244, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3633, -1, 3635, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1131, -1, -1, -1, -1, -1, 1137, 0, -1, -1, -1, -1, -1, 285, -1, -1, 1147, -1, -1, -1, 1151, -1, 2237, -1, 1155, -1, 1157, 299, -1, 22, 302, -1, 1163, -1, -1, -1, -1, -1, 1169, -1, 33, 1172, 35, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, -1, 392, -1, -1, -1, -1, -1, 2284, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3729, 75, -1, 77, 78, -1, -1, -1, -1, -1, 84, -1, 86, -1, -1, 5746, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 392, -1, 2337, 3771, 117, -1, -1, 120, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, 137, -1, 5133, -1, 141, -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, 155, -1, 157, 494, -1, -1, -1, -1, -1, 164, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, -1, -1, 182, 519, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5188, -1, -1, -1, -1, 199, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3867, -1, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, 516, -1, -1, -1, -1, -1, -1, -1, -1, 246, 247, -1, -1, -1, -1, 252, -1, -1, -1, 3911, -1, -1, -1, -1, -1, -1, -1, -1, -1, 266, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, 33, -1, 284, -1, -1, -1, -1, -1, -1, -1, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, -1, 2524, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2534, 2535, -1, -1, 2538, -1, -1, -1, -1, -1, -1, 2545, -1, -1, 705, 78, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3993, -1, -1, -1, 342, -1, -1, -1, -1, -1, 348, 349, -1, 351, 731, -1, -1, 2577, 356, 2579, -1, -1, 2582, 2583, 362, -1, 2586, 365, 2588, -1, -1, 2591, -1, -1, 372, 2595, -1, -1, -1, -1, -1, 379, 380, -1, 4037, 134, -1, -1, -1, 387, -1, -1, 141, 391, -1, 144, -1, -1, 2618, 10, -1, -1, 13, 401, 2624, 2625, 17, 18, 19, 4062, -1, -1, -1, -1, -1, 2635, -1, -1, -1, 417, -1, -1, 171, -1, 2644, 2645, 37, -1, -1, -1, -1, -1, -1, -1, 5426, -1, 47, -1, 2658, 437, -1, -1, -1, 54, -1, -1, 2666, -1, 2668, -1, 448, -1, -1, -1, -1, -1, 454, -1, 207, -1, -1, 459, -1, -1, 5456, -1, -1, -1, -1, 80, -1, -1, -1, -1, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2708, -1, 2710, -1, -1, -1, -1, -1, 873, -1, 496, -1, 498, 499, 500, 501, 502, -1, -1, 2727, -1, 6164, -1, -1, -1, -1, -1, -1, -1, 515, 2738, -1, 518, 2741, 2742, 2743, 2744, -1, -1, 2747, -1, 278, 2750, -1, -1, 282, -1, -1, -1, -1, -1, -1, -1, -1, -1, 292, 645, -1, -1, -1, -1, -1, -1, 2771, 301, -1, 6209, -1, -1, -1, -1, 27, -1, -1, 2782, -1, 313, 33, -1, -1, -1, -1, 2790, 2791, 6227, -1, -1, -1, -1, 2797, -1, -1, 48, -1, -1, -1, 195, -1, 2806, -1, -1, 200, -1, -1, -1, -1, 695, 696, -1, -1, -1, -1, -1, -1, -1, 352, -1, -1, 355, 356, 2828, -1, 78, -1, 223, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2849, -1, -1, -1, 244, -1, -1, -1, -1, 387, 1016, -1, -1, 2862, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1035, -1, -1, -1, -1, -1, 132, 2885, 134, -1, 2888, 1046, -1, -1, -1, 141, 285, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, 1062, -1, -1, 299, -1, 791, 302, -1, -1, 2914, 2915, 5688, -1, -1, -1, -1, -1, -1, 171, -1, -1, -1, 456, -1, 2929, 811, 2931, 2932, -1, -1, -1, -1, -1, 819, -1, -1, 822, 823, 824, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, 2962, 2963, 2964, -1, -1, -1, 2968, -1, -1, -1, -1, -1, -1, -1, 2976, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, 2989, -1, -1, 17, 18, 19, 2995, -1, 2997, -1, -1, 1916, 392, -1, -1, -1, -1, -1, -1, 1924, -1, 3010, -1, 37, -1, -1, 3015, -1, -1, -1, -1, -1, 3021, 47, -1, 3024, -1, -1, -1, -1, 54, 278, -1, -1, -1, 282, -1, 3036, 3037, -1, -1, -1, -1, -1, -1, 292, -1, -1, 3047, 4481, -1, -1, -1, -1, 301, -1, 80, -1, 3057, -1, 3059, -1, -1, 1219, -1, -1, 313, -1, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5859, -1, -1, -1, -1, 48, -1, -1, -1, -1, -1, 3098, -1, 3100, -1, 3102, 494, 352, -1, -1, 355, 356, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, 78, -1, -1, 516, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3135, -1, -1, -1, 387, -1, -1, -1, -1, 1025, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, 10, 200, 132, 13, 134, -1, -1, 17, 18, 19, -1, 141, -1, -1, 144, 3189, 3190, -1, 3192, -1, 3194, 3195, -1, 3197, 223, 224, -1, 37, -1, -1, 3204, -1, -1, -1, 456, 3209, -1, 47, -1, -1, 64, 171, -1, -1, 54, 244, 5992, 5993, -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, -1, -1, 99, -1, 207, 3252, 3253, 3254, -1, -1, 3257, -1, -1, 285, -1, -1, -1, -1, 3265, 3266, 3267, 3268, -1, -1, -1, -1, -1, 299, -1, -1, 302, -1, -1, -1, 3281, -1, -1, 3284, -1, 3286, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3298, 3299, -1, -1, 3302, -1, -1, -1, -1, -1, -1, -1, 160, -1, -1, -1, -1, -1, -1, 1474, -1, -1, -1, 3321, 278, 3323, -1, 3325, 282, 3327, -1, -1, -1, -1, -1, -1, -1, 1216, 292, -1, -1, -1, -1, 64, -1, -1, -1, 301, 3346, 197, -1, 3349, -1, -1, -1, 3353, -1, -1, -1, 313, -1, 195, -1, -1, 1243, -1, 200, -1, -1, 392, -1, -1, -1, -1, -1, -1, 3374, -1, 99, -1, -1, 4812, -1, -1, -1, -1, 1541, -1, -1, 223, 224, -1, 240, -1, -1, -1, -1, -1, 352, -1, -1, 355, 356, -1, 3402, -1, -1, 3405, 3406, -1, 244, -1, 3410, 3411, 3412, -1, -1, -1, -1, -1, 3418, 4852, -1, -1, -1, 3423, -1, 1582, -1, -1, -1, -1, -1, 387, 282, -1, -1, -1, -1, 160, 3438, -1, -1, 4874, -1, -1, 1325, -1, -1, -1, -1, 285, -1, -1, 3452, 1334, -1, -1, 3456, -1, 1615, 3459, 3460, -1, 3462, 299, 314, -1, 302, -1, 1349, 494, -1, -1, -1, -1, 197, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, 1370, -1, 516, 1373, 1374, -1, -1, -1, 1378, 1379, -1, 456, -1, -1, 3503, -1, -1, 356, -1, 358, -1, -1, 361, -1, -1, 4947, -1, -1, 240, -1, -1, 370, -1, -1, -1, -1, -1, -1, -1, -1, 379, -1, -1, -1, 3533, 3534, -1, -1, 387, 1695, 1696, 1697, -1, -1, -1, -1, -1, -1, -1, -1, 399, -1, -1, -1, -1, -1, 278, 392, -1, 408, 282, -1, -1, 412, -1, -1, -1, -1, 25, -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, 33, 313, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 467, -1, -1, -1, -1, -1, 81, 82, -1, -1, -1, -1, 352, -1, -1, -1, 356, 78, 5068, -1, -1, 361, 97, -1, 3641, -1, -1, -1, -1, -1, 370, -1, -1, 1807, 3651, -1, -1, -1, -1, 379, 115, 494, -1, 2576, 1818, -1, -1, 387, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 399, 1834, -1, -1, 516, 139, -1, -1, -1, 408, -1, -1, -1, 412, 134, -1, 150, -1, -1, -1, -1, 141, -1, -1, 144, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 172, -1, -1, -1, -1, -1, 178, -1, -1, -1, -1, -1, -1, 171, -1, -1, -1, 1888, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 467, -1, 1903, 205, -1, 1906, 1907, -1, 1633, -1, -1, -1, 3756, -1, -1, -1, 1641, -1, 3762, 207, -1, -1, -1, -1, -1, -1, -1, 5204, -1, 3773, -1, -1, -1, -1, 236, -1, 1937, 1938, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 258, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3810, 3811, 3812, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3827, -1, -1, -1, -1, -1, -1, 278, -1, -1, -1, 282, -1, -1, 3841, -1, -1, -1, -1, -1, -1, 292, -1, -1, -1, -1, -1, -1, -1, -1, 301, -1, 3859, 3860, 3861, -1, -1, -1, 3865, -1, -1, -1, 313, -1, -1, -1, -1, -1, 333, 334, 3877, 2035, 337, -1, -1, -1, -1, -1, -1, -1, 2044, -1, -1, 2047, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, 364, -1, 352, 367, -1, 355, 356, -1, -1, -1, 374, 2074, -1, -1, -1, -1, 37, 381, -1, -1, 384, -1, -1, -1, -1, -1, 47, 3933, -1, -1, -1, -1, -1, 54, -1, -1, -1, 387, -1, 403, -1, 3947, 3948, -1, -1, -1, 410, -1, -1, -1, -1, -1, 3958, 417, -1, -1, 420, -1, -1, 80, 424, -1, -1, -1, -1, 3971, -1, -1, -1, 1856, -1, -1, -1, 1860, -1, 439, -1, -1, -1, -1, -1, -1, -1, -1, 3990, -1, -1, -1, -1, -1, -1, -1, 3998, -1, 4000, -1, -1, -1, -1, -1, -1, 465, -1, -1, 4010, -1, 456, -1, 4014, 4015, -1, -1, -1, -1, 4020, -1, -1, -1, -1, -1, -1, -1, 4028, -1, 4030, -1, -1, 4033, -1, -1, -1, -1, 4038, 4039, 4040, 4041, -1, -1, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, -1, -1, -1, 4057, 4058, 4059, -1, -1, -1, -1, -1, -1, -1, 4067, -1, -1, -1, -1, 4072, -1, -1, -1, 4076, -1, -1, -1, 195, -1, -1, -1, 4084, 200, -1, 4087, -1, 4089, -1, -1, 5525, -1, -1, -1, -1, 5530, 5531, -1, -1, -1, -1, -1, -1, -1, -1, 4107, 223, 224, 4110, 4111, -1, -1, -1, 4115, 4116, -1, -1, -1, 4120, -1, 4122, 4123, -1, -1, -1, -1, -1, 244, -1, 4131, 4132, 4133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2030, -1, 4151, 4152, 4153, -1, 4155, 4156, -1, -1, 4159, -1, -1, -1, 4163, -1, -1, -1, 4167, -1, -1, 285, 3087, -1, 4173, -1, -1, 3092, -1, 3094, -1, -1, -1, -1, -1, 299, -1, -1, 302, 3104, -1, -1, 3107, -1, 3109, 3110, -1, -1, 3113, -1, 4199, -1, 3117, -1, 3119, -1, -1, 3122, -1, -1, -1, 5643, -1, -1, -1, 4214, -1, 4216, -1, 27, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4234, 4235, 4236, -1, -1, 4239, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, -1, -1, -1, -1, -1, -1, 5692, -1, -1, -1, -1, -1, -1, -1, -1, -1, 78, 3186, -1, -1, -1, 4274, 4275, -1, 392, -1, -1, -1, -1, -1, -1, -1, -1, 0, 99, -1, -1, -1, -1, -1, 4293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, 35, 36, -1, -1, 134, -1, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, 53, -1, -1, -1, -1, -1, -1, 4346, -1, 160, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 75, 171, 77, 78, -1, -1, -1, -1, -1, 84, -1, 86, -1, -1, -1, -1, -1, -1, 494, -1, 2538, -1, -1, 98, 197, 100, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, 207, -1, -1, 516, 4402, 117, -1, -1, 120, -1, -1, -1, -1, -1, -1, -1, -1, 198, 199, -1, -1, 202, -1, 135, -1, 137, -1, -1, -1, 141, 240, -1, -1, -1, -1, 147, -1, 4435, -1, -1, -1, 222, -1, 155, -1, 157, -1, -1, 229, -1, -1, 4449, 164, 4451, -1, -1, -1, -1, -1, -1, 4458, -1, -1, -1, -1, -1, 4464, -1, 278, -1, 182, 278, 282, -1, -1, 282, -1, 4475, -1, -1, -1, -1, -1, -1, -1, 292, -1, 199, -1, -1, -1, -1, 4490, -1, 301, -1, -1, 4495, 4496, -1, -1, -1, -1, 313, 314, 4503, 313, -1, -1, -1, -1, -1, -1, -1, 4512, -1, -1, -1, -1, -1, -1, -1, -1, 2678, 4522, -1, -1, 2682, 2683, -1, -1, -1, -1, -1, 246, 247, 4534, 4535, -1, -1, 252, -1, 352, -1, -1, 352, 356, 4545, 355, 356, -1, 361, -1, -1, 266, -1, -1, -1, 4556, 4557, 370, -1, -1, -1, -1, -1, -1, -1, -1, 379, -1, -1, 284, -1, -1, -1, 4574, 387, -1, -1, 387, -1, -1, -1, -1, 2740, -1, -1, -1, 399, -1, 2746, -1, -1, -1, -1, -1, -1, 408, 3513, -1, -1, 412, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 328, 4615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 342, 4629, 2787, -1, -1, -1, 348, 349, -1, 351, -1, -1, -1, -1, 356, 4643, -1, -1, -1, 456, 362, -1, -1, 365, -1, -1, -1, 467, -1, -1, 372, -1, -1, -1, -1, -1, -1, 379, 380, -1, 3584, -1, 3586, 4671, -1, 387, 4674, -1, 2557, 391, -1, -1, -1, -1, 4682, 4683, -1, -1, -1, 401, -1, -1, 4690, 4691, -1, -1, -1, 4695, -1, -1, -1, -1, -1, -1, 4702, 417, -1, 4705, 4706, -1, -1, -1, -1, -1, 4712, -1, -1, -1, 4716, 4717, 4718, 4719, -1, -1, -1, 437, -1, -1, -1, -1, -1, -1, -1, -1, 4732, -1, 448, 4735, -1, -1, -1, 4739, 454, -1, -1, -1, 4744, 459, -1, 4747, 4748, -1, 4750, -1, 4752, -1, -1, 4755, -1, 4757, 472, -1, -1, -1, -1, -1, -1, -1, 4766, -1, -1, -1, 4770, -1, -1, -1, 4774, -1, 4776, -1, 10, -1, -1, 13, 496, -1, -1, 17, 18, 19, -1, -1, -1, 4791, -1, -1, 4794, -1, -1, -1, -1, -1, -1, 515, -1, -1, 518, 37, -1, 2964, -1, -1, -1, -1, 3728, -1, 27, 47, -1, -1, 3734, -1, 33, -1, 54, -1, -1, 2706, -1, -1, 4828, -1, -1, -1, 4832, -1, -1, -1, -1, -1, -1, 2996, -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, 78, -1, -1, 651, -1, 653, -1, -1, 656, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2765, -1, -1, 670, -1, -1, -1, -1, -1, 676, -1, -1, -1, 4897, -1, -1, -1, -1, -1, -1, 4904, -1, -1, -1, -1, -1, -1, -1, 3069, -1, -1, -1, 3073, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, 4927, 141, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, 4942, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, 171, -1, -1, -1, -1, 195, 2845, -1, -1, -1, 200, -1, -1, -1, -1, 4973, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, -1, -1, 2869, 4989, -1, 223, 224, -1, 207, -1, 4996, -1, -1, -1, -1, -1, 3918, -1, 3920, 5005, 3922, -1, -1, -1, -1, 80, 244, -1, -1, -1, -1, -1, -1, 3176, 5020, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5033, 3191, 5035, -1, -1, -1, 3196, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 285, -1, 2936, -1, -1, -1, -1, -1, 5061, -1, -1, -1, 278, -1, 299, 3225, 282, 302, -1, 5072, -1, -1, -1, -1, -1, -1, 292, -1, -1, -1, -1, -1, -1, -1, -1, 301, -1, -1, -1, 2973, -1, 2975, -1, 2977, 2978, -1, -1, 313, 2982, 2983, 2984, -1, 2986, 2987, 2988, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, 5130, 200, -1, 5133, -1, -1, 5136, 5137, 5138, 352, -1, -1, 355, 356, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 223, 224, -1, -1, -1, 3040, 392, -1, -1, 5163, 5164, -1, -1, 5167, -1, -1, -1, -1, -1, -1, 387, 244, -1, -1, 961, 962, -1, -1, -1, -1, 3065, -1, -1, -1, 5188, -1, -1, -1, -1, -1, 5194, -1, -1, -1, 5198, -1, -1, -1, 5202, -1, -1, 5205, -1, 5207, -1, -1, -1, -1, -1, -1, -1, -1, 285, -1, 5218, -1, -1, 5221, -1, -1, -1, -1, -1, -1, -1, -1, 299, -1, 5232, 5233, 5234, -1, 5236, -1, -1, -1, -1, -1, -1, 456, -1, -1, -1, -1, -1, 1032, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 494, -1, 1047, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, 514, -1, 5284, 5285, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1078, 1079, -1, -1, -1, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, 3472, -1, -1, 3475, -1, 3477, 1104, -1, 392, -1, 3482, -1, -1, -1, 5329, -1, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, 5341, -1, -1, -1, -1, 5346, -1, -1, -1, -1, 5351, -1, -1, -1, 78, -1, -1, 37, -1, 5360, 1144, 1145, -1, -1, -1, -1, -1, 47, -1, 5370, -1, -1, 3530, 5374, 54, -1, 5377, -1, -1, -1, 3538, -1, -1, -1, -1, -1, -1, 5388, 5389, 5390, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 3563, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, 494, 5426, -1, -1, -1, 5430, -1, 5432, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, 5446, -1, 171, -1, -1, -1, -1, 5453, -1, -1, 5456, -1, -1, -1, 5460, -1, -1, -1, -1, -1, -1, 5467, -1, -1, -1, -1, -1, -1, 5474, -1, 3633, -1, 3635, -1, -1, -1, 10, -1, 207, 13, 3367, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5509, -1, -1, -1, -1, -1, -1, 195, -1, -1, 47, -1, 200, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, 5535, -1, -1, -1, -1, -1, 5541, 5542, -1, 223, 224, 5546, 5547, 5548, 5549, -1, -1, 80, -1, -1, 278, -1, -1, -1, 282, -1, -1, -1, -1, -1, 244, -1, -1, -1, 292, -1, -1, 3729, -1, -1, -1, -1, 5577, 301, -1, -1, 8, -1, -1, -1, 5585, 27, 14, 15, -1, 313, -1, 33, 20, -1, 22, -1, -1, -1, 3756, -1, 28, -1, 30, -1, 3762, 285, -1, -1, -1, 5610, -1, -1, 5613, 3771, -1, -1, -1, -1, -1, 299, -1, 49, 50, -1, -1, -1, -1, -1, 352, -1, -1, 355, 356, -1, -1, -1, 78, 5638, -1, -1, -1, 3799, -1, -1, -1, 3527, -1, -1, -1, -1, -1, -1, -1, 4570, -1, -1, 4573, -1, -1, -1, -1, -1, -1, 387, -1, 5666, 195, -1, -1, -1, -1, 200, -1, -1, 5675, 5676, 5677, -1, -1, -1, 5681, -1, -1, -1, 5685, 4602, -1, 5688, -1, -1, -1, -1, 134, -1, 223, 224, 5697, -1, 5699, 141, 5701, 5702, 144, -1, -1, -1, -1, 5708, -1, 3867, -1, -1, 392, -1, -1, 244, -1, 5718, -1, 5720, -1, -1, -1, 3605, -1, -1, -1, -1, 5729, 171, -1, 3889, 456, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1534, -1, -1, 3911, -1, -1, 285, -1, -1, -1, -1, -1, -1, 5764, 5765, 207, -1, -1, -1, -1, 299, -1, 200, -1, -1, 1559, 204, -1, -1, -1, -1, 3663, -1, -1, 212, -1, -1, 215, -1, -1, 218, 219, -1, 221, 5795, 223, -1, -1, 226, -1, 228, -1, -1, -1, -1, -1, -1, -1, 5809, -1, -1, -1, -1, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, 3993, 278, -1, -1, -1, 282, -1, -1, -1, -1, 5846, -1, -1, -1, 3731, 292, -1, 1636, -1, -1, -1, -1, -1, 5859, 301, -1, -1, 5863, 392, -1, -1, -1, -1, 5869, -1, -1, 313, -1, -1, -1, -1, -1, 5878, 5879, 4037, -1, -1, 1666, 1667, 1668, 1669, -1, -1, -1, -1, -1, -1, -1, 4810, 5895, 3777, -1, -1, -1, -1, -1, -1, -1, -1, 4062, -1, -1, 3789, 3790, 5910, 352, -1, -1, 355, 356, -1, 5917, 3799, -1, -1, -1, -1, 3804, -1, 3806, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4853, 4854, -1, -1, -1, 5942, -1, -1, -1, 387, -1, -1, 5949, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5959, -1, -1, -1, -1, -1, -1, 494, 5967, 5968, 5969, -1, 3852, -1, 5973, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, 5985, 5986, 5987, -1, -1, -1, -1, 5992, 5993, -1, -1, -1, -1, 5998, -1, -1, -1, -1, -1, -1, -1, 3887, 3888, -1, -1, -1, -1, -1, -1, -1, 456, -1, -1, -1, -1, 6020, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1813, 1814, 4948, 4949, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1829, -1, -1, 6049, 6050, 6051, -1, -1, -1, 6055, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4222, -1, -1, -1, -1, -1, -1, -1, 6073, 6074, -1, -1, -1, -1, -1, 1863, 1864, 1865, 1866, -1, -1, -1, -1, 6088, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6102, 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, -1, -1, 6135, 6136, 6137, 6138, 6139, 47, -1, 6142, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, 6154, 4312, -1, 6157, -1, -1, -1, 1944, 5078, -1, -1, 5081, 5082, 1950, -1, -1, -1, -1, -1, 80, -1, -1, -1, 6177, -1, -1, -1, 4338, -1, -1, -1, 5101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6196, 6197, -1, -1, -1, 6201, 4083, -1, -1, 6205, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, 643, 6217, 6218, -1, -1, 6221, -1, -1, -1, -1, -1, 654, -1, -1, -1, 658, -1, 37, -1, -1, -1, -1, 665, 666, -1, -1, 669, 47, 671, 672, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, 686, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, 704, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 195, -1, -1, 206, 207, 200, -1, -1, -1, -1, 725, 214, 727, 216, 217, -1, -1, -1, -1, -1, -1, -1, 737, -1, -1, -1, -1, 230, 223, 224, -1, -1, -1, -1, -1, -1, 4481, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 244, -1, -1, -1, -1, -1, 770, -1, -1, -1, -1, -1, -1, 2133, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, 4528, -1, -1, -1, -1, 4533, -1, 285, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, 195, 299, 47, -1, 302, 200, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 223, 224, -1, -1, -1, 851, -1, 80, -1, -1, -1, -1, 4312, -1, -1, -1, -1, -1, -1, -1, -1, 244, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, 4338, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4353, -1, 37, -1, 4357, -1, 4359, -1, -1, 285, -1, -1, 47, 392, -1, -1, -1, -1, -1, 54, -1, -1, -1, 299, -1, -1, 302, -1, -1, -1, -1, -1, -1, -1, -1, 934, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, 4405, -1, -1, -1, 4685, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4421, 195, -1, -1, -1, 4426, 200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 223, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1008, -1, 5499, -1, -1, -1, 494, 392, -1, 244, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, 1033, -1, -1, 516, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1048, -1, 1050, -1, -1, -1, -1, -1, -1, -1, 285, 195, 1060, -1, -1, 5552, 200, -1, -1, 1067, -1, -1, -1, 4525, 299, -1, 4528, 302, -1, -1, -1, -1, -1, -1, 4812, -1, -1, -1, -1, 223, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 244, -1, 1110, -1, 1112, -1, -1, -1, -1, 494, -1, -1, -1, -1, 4852, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, 516, -1, -1, -1, -1, 4874, -1, -1, -1, -1, 285, 4604, 4605, 4606, 4607, 642, 4609, 4610, 4611, 4612, 4613, -1, -1, -1, 299, -1, 392, 302, -1, -1, -1, -1, -1, -1, 661, -1, -1, 5665, -1, -1, 667, -1, -1, -1, -1, -1, -1, 1186, -1, 1188, -1, 1190, 679, 1192, -1, 1194, 1195, 1196, -1, -1, -1, -1, 1201, -1, -1, -1, -1, -1, 695, -1, -1, -1, -1, -1, 1213, -1, -1, -1, 4947, -1, -1, -1, 709, 710, -1, -1, -1, 2582, -1, 716, -1, 718, 719, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 732, -1, -1, -1, -1, -1, -1, -1, -1, -1, 742, -1, 392, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 494, -1, -1, 4724, -1, 4726, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 10, -1, -1, 13, 516, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 795, -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, 823, 5066, -1, 5068, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, 10, -1, 494, 13, 848, -1, -1, 17, 18, 19, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, 516, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, 2747, -1, 47, -1, 1395, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 908, -1, -1, -1, -1, 10, 80, -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, -1, -1, -1, -1, -1, 54, 195, -1, -1, -1, 5204, 200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4945, 4946, -1, -1, 80, -1, -1, 223, 224, -1, -1, -1, -1, 4958, -1, 4960, 4961, 4962, -1, -1, -1, -1, -1, -1, 1515, -1, -1, -1, 244, 6009, -1, -1, -1, -1, -1, -1, -1, -1, 2885, 1018, -1, 2888, -1, -1, -1, -1, 1025, -1, -1, -1, 195, -1, 5273, -1, -1, 200, -1, 1036, -1, -1, -1, 1040, -1, 1042, -1, -1, -1, -1, -1, 285, -1, -1, -1, -1, -1, -1, -1, -1, 223, 224, -1, 5026, -1, 299, -1, -1, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1587, -1, -1, 244, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 195, 5065, -1, -1, -1, 200, -1, -1, -1, -1, 2976, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 285, -1, 2989, -1, -1, -1, -1, 223, 224, -1, 2997, -1, -1, -1, 299, -1, -1, 302, -1, -1, -1, -1, -1, 5108, -1, -1, -1, -1, 244, -1, 1149, -1, 5393, -1, -1, -1, 392, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3036, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 285, 3057, -1, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, 299, -1, -1, 302, -1, -1, -1, -1, 1210, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, 1221, -1, -1, -1, -1, 392, -1, 47, -1, -1, -1, 3100, -1, 3102, 54, -1, -1, 1238, -1, -1, -1, -1, 1243, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 494, -1, -1, -1, 80, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, 10, -1, 516, 13, -1, -1, 5525, 17, 18, 19, -1, 5530, 5531, -1, 1803, -1, -1, -1, 392, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, 5273, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, 3190, -1, -1, -1, 1838, -1, 494, 3197, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, 80, -1, -1, 516, -1, -1, 5319, -1, -1, -1, -1, -1, -1, -1, -1, 5328, -1, -1, -1, -1, -1, -1, -1, 1370, -1, 1884, -1, -1, -1, 195, -1, 1378, 1379, -1, 200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1904, -1, -1, -1, -1, 494, -1, -1, 5642, 5643, -1, -1, 223, 224, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, 1930, 516, 1932, -1, -1, -1, -1, 244, -1, -1, -1, -1, -1, 1431, -1, -1, -1, 1947, -1, 1949, -1, -1, -1, -1, -1, 1955, -1, 1957, -1, 1959, -1, 1961, 5692, 1963, -1, -1, -1, 1967, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, 285, 200, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, 299, -1, -1, 302, -1, -1, -1, -1, -1, -1, 223, 224, 2004, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, 244, 54, 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, 80, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, 285, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, 299, -1, -1, 302, -1, -1, -1, 392, -1, -1, -1, -1, -1, 51, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 5557, -1, -1, -1, 5561, -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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, 51, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, -1, 195, -1, -1, -1, -1, 200, 392, -1, -1, -1, -1, -1, 3533, 3534, -1, -1, -1, -1, -1, -1, -1, -1, 494, -1, 80, -1, -1, 1680, 223, 224, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, 516, 195, -1, -1, -1, 244, 200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 223, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 285, -1, -1, -1, 244, -1, -1, -1, -1, -1, -1, -1, -1, -1, 299, -1, -1, 302, 494, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, 516, -1, 51, -1, -1, 285, -1, 5756, -1, 195, -1, 5760, 1795, 5762, 200, -1, -1, 5766, 5767, 299, -1, -1, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 223, 224, -1, -1, -1, -1, -1, -1, -1, -1, 1830, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 244, -1, -1, -1, -1, -1, -1, -1, -1, 392, -1, -1, 1853, -1, -1, -1, -1, -1, -1, -1, 1861, -1, -1, -1, -1, -1, -1, -1, 1869, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 392, 299, -1, -1, 302, -1, -1, -1, -1, -1, 3773, -1, -1, -1, -1, 1910, 1911, -1, 1913, 1914, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1925, -1, 1927, 1928, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1940, 1941, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 494, -1, 6196, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, 516, -1, -1, -1, 1978, -1, -1, -1, 1982, 1983, -1, -1, -1, -1, -1, 392, -1, -1, -1, -1, -1, -1, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, 516, -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, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, 6026, -1, -1, -1, -1, 3933, -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, 494, -1, -1, -1, 2095, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, 80, 516, -1, -1, -1, -1, -1, -1, 25, -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2672, 2673, -1, 68, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, -1, 2691, 2692, -1, 2694, 2695, -1, -1, -1, 2699, 2700, -1, -1, -1, 97, -1, -1, -1, -1, -1, 6164, -1, -1, 6167, 2714, -1, -1, -1, -1, -1, -1, 2721, 115, -1, -1, 2725, 2726, -1, -1, 2729, 2730, -1, -1, -1, -1, -1, 2736, -1, -1, 195, -1, -1, -1, -1, 200, 705, 139, -1, 2748, -1, -1, -1, -1, -1, -1, 6209, -1, 150, -1, -1, 2760, -1, -1, -1, -1, 2765, 159, 223, 224, -1, -1, 731, -1, 6227, -1, -1, 6230, -1, -1, 172, 2780, -1, -1, -1, -1, 178, -1, -1, 244, 2789, -1, -1, 2792, -1, 2794, 2795, 2796, -1, -1, -1, -1, 2801, 2802, -1, -1, 705, -1, -1, -1, -1, -1, 2811, 205, -1, -1, -1, -1, 2817, -1, -1, -1, 2821, -1, -1, -1, -1, -1, -1, -1, 285, -1, 731, -1, 2833, 2834, -1, -1, -1, 2838, -1, -1, -1, -1, 299, 2844, 2845, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2858, -1, -1, 2861, -1, -1, -1, 258, -1, -1, 2868, 2869, -1, -1, -1, -1, 2874, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2886, -1, -1, 2889, -1, -1, -1, -1, 2894, -1, -1, -1, -1, -1, 2900, 2901, 10, -1, -1, 13, 299, -1, 2908, 17, 18, 19, 2912, 873, -1, -1, 2916, 2917, 2918, 2919, -1, 2921, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, 2934, 2935, 392, 2937, -1, 47, 333, 334, -1, -1, 337, -1, 54, -1, 2948, 2949, 2950, 705, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 364, 80, 873, 367, -1, -1, 731, -1, -1, -1, 374, -1, -1, -1, -1, -1, -1, 381, -1, -1, 384, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3005, -1, -1, -1, -1, 403, -1, -1, 3013, -1, -1, -1, 410, -1, -1, -1, -1, -1, -1, 417, -1, -1, 420, -1, -1, -1, 424, 3032, -1, 10, -1, -1, 13, 494, 432, -1, 17, 18, 19, -1, -1, 439, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, 516, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, 465, -1, -1, 1035, -1, -1, 54, 4435, -1, -1, 3082, -1, -1, -1, 1046, 195, -1, -1, -1, -1, 200, 4449, -1, -1, -1, -1, -1, -1, -1, 3101, 1062, 3103, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 223, 224, -1, -1, 873, -1, -1, -1, -1, -1, -1, -1, -1, 2616, -1, -1, -1, -1, -1, -1, 1035, 244, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1046, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1062, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 285, -1, -1, -1, -1, -1, 2671, -1, -1, -1, -1, -1, -1, -1, 299, -1, -1, 302, -1, -1, -1, 3198, -1, -1, 2689, -1, -1, -1, 2693, -1, -1, -1, 2697, -1, -1, -1, -1, -1, -1, -1, -1, 2706, 195, -1, -1, -1, -1, 200, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, 2724, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, 223, 224, -1, -1, -1, -1, 2741, -1, 2743, 2744, -1, -1, 1219, -1, 37, -1, -1, -1, -1, -1, -1, 244, -1, 2758, 47, -1, -1, -1, -1, -1, -1, 54, -1, -1, 1035, -1, -1, 392, -1, -1, -1, -1, -1, 2778, 2779, 1046, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 1062, 285, -1, 51, -1, -1, -1, -1, -1, -1, -1, 1219, -1, 2809, 2810, 299, -1, 2813, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2837, -1, 2839, -1, -1, -1, 2843, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2857, -1, -1, -1, -1, -1, -1, 2864, -1, -1, 2867, -1, -1, -1, -1, 207, 2873, 494, -1, -1, -1, -1, -1, -1, 216, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, 2893, -1, 230, 516, -1, -1, 2899, -1, 1373, -1, -1, 392, -1, 2906, 195, -1, -1, -1, -1, 200, -1, -1, -1, -1, -1, -1, -1, 2920, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2933, -1, 223, 224, -1, 2938, -1, -1, -1, -1, -1, 2944, -1, -1, -1, -1, -1, -1, -1, -1, 1219, -1, -1, 244, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3505, -1, -1, -1, 285, -1, -1, -1, -1, 1474, -1, 3004, -1, 494, -1, -1, -1, -1, 299, -1, 3525, 302, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, 516, -1, 3542, -1, -1, -1, 3546, -1, -1, -1, -1, 3551, 3552, 3553, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4927, -1, -1, 1474, -1, -1, -1, -1, -1, -1, 1541, -1, -1, -1, -1, 4942, 3587, 3588, 3589, 3590, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 392, 3617, -1, -1, -1, -1, 1582, -1, -1, 3625, -1, 3627, 3628, 3629, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3159, -1, 3161, -1, -1, -1, 5033, -1, -1, -1, -1, 1582, -1, -1, -1, -1, -1, -1, -1, 3178, -1, -1, -1, -1, -1, -1, 3185, -1, -1, -1, -1, -1, -1, 3192, -1, 3194, 3195, -1, -1, -1, -1, -1, -1, -1, 1615, -1, -1, 494, -1, 1474, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, 516, -1, -1, 3743, -1, -1, -1, -1, -1, -1, -1, -1, 3752, -1, -1, -1, -1, -1, -1, 25, -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3778, 3779, -1, -1, -1, 3783, -1, -1, -1, 1541, 3276, -1, -1, -1, -1, -1, 3282, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, 3805, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, 82, -1, -1, 642, -1, -1, -1, -1, -1, -1, -1, 93, 1582, -1, -1, 97, -1, -1, -1, -1, -1, -1, 661, -1, -1, -1, -1, -1, 667, -1, -1, 1807, -1, 115, -1, -1, -1, -1, -1, -1, 679, 3857, 1818, -1, -1, 1615, 3862, -1, -1, -1, -1, -1, 3868, -1, -1, -1, 695, 139, 1834, -1, -1, -1, 5234, 3367, 5236, -1, -1, -1, 150, -1, -1, 710, -1, -1, -1, -1, -1, 159, -1, 718, -1, -1, 3898, -1, -1, -1, -1, -1, -1, -1, 172, 1807, -1, 732, -1, -1, 178, -1, -1, -1, -1, -1, 1818, 742, -1, -1, -1, -1, -1, -1, -1, 3927, 1888, 3929, -1, -1, -1, -1, 1834, -1, -1, -1, -1, 205, -1, -1, -1, 1903, -1, -1, 1906, 1907, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, -1, -1, -1, -1, 236, -1, 795, -1, -1, -1, -1, 1937, 1938, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1888, -1, -1, 731, 258, -1, -1, -1, -1, -1, -1, -1, 823, -1, -1, 1903, -1, -1, 1906, 1907, -1, 3497, 3498, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, 848, 17, 18, 19, -1, -1, -1, 5388, 299, -1, -1, 3524, 1937, 1938, 3527, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, 41, -1, -1, 1807, -1, -1, 47, 323, -1, -1, -1, -1, -1, 54, 1818, -1, -1, 333, 334, -1, -1, 337, -1, -1, -1, 51, -1, -1, -1, -1, 1834, -1, -1, -1, -1, 908, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, 364, -1, -1, 367, -1, -1, -1, 371, -1, -1, 374, -1, -1, 3599, 3600, 3601, 2074, 381, -1, -1, 384, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 873, 1888, -1, 3624, 403, -1, -1, 131, -1, -1, -1, 410, -1, -1, -1, -1, 1903, -1, 417, 1906, 1907, 420, 3643, -1, -1, 424, -1, -1, -1, -1, -1, -1, -1, 432, -1, 434, -1, -1, -1, -1, 439, 2074, -1, -1, 3665, -1, -1, -1, -1, -1, 1937, 1938, -1, -1, -1, -1, -1, -1, 5547, -1, 5549, -1, 1018, -1, -1, -1, 465, -1, -1, 1025, -1, 195, -1, -1, -1, -1, 200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 223, 224, -1, -1, -1, -1, 4238, -1, -1, 4241, -1, 4243, -1, -1, -1, -1, -1, -1, -1, -1, -1, 244, -1, -1, 4256, -1, -1, -1, -1, -1, -1, 3751, -1, -1, -1, -1, 4268, -1, -1, -1, 4272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4291, -1, -1, 285, 1035, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1046, -1, 299, 4309, 3798, 302, -1, -1, -1, 4315, 3804, -1, 3806, -1, 2074, -1, 1062, -1, -1, -1, 1149, -1, 51, -1, -1, 3819, -1, 3821, -1, -1, -1, -1, -1, -1, 4340, -1, -1, -1, 4344, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4360, 4361, 4362, 4363, -1, -1, -1, -1, -1, -1, 4370, 4371, 4372, 4373, -1, -1, -1, -1, -1, 4379, 4380, -1, -1, -1, -1, 4385, 4386, 1210, 4388, 4389, 4390, 4391, 4392, 4393, 4394, -1, -1, -1, 1221, -1, 3888, 392, -1, -1, 4404, -1, -1, -1, 4408, 4409, 4410, 4411, -1, -1, 10, 1238, -1, 13, -1, -1, 1243, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, 4432, -1, -1, -1, -1, -1, -1, 5795, -1, 37, 3930, -1, -1, -1, -1, -1, -1, -1, 4450, 47, -1, -1, -1, -1, -1, -1, 54, -1, -1, 3949, 453, -1, -1, 3953, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1219, -1, -1, -1, -1, 80, -1, 3974, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, -1, 4526, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1370, -1, -1, -1, -1, -1, -1, 5910, 1378, 1379, -1, -1, 4559, -1, -1, -1, -1, -1, -1, 4566, -1, 4568, -1, -1, -1, -1, -1, 170, -1, -1, -1, -1, -1, 176, -1, -1, -1, -1, -1, 4074, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4596, -1, -1, 195, -1, -1, -1, -1, 200, -1, -1, -1, 1431, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 223, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, 244, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, 6020, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, 285, 54, -1, -1, -1, 6050, 6051, -1, -1, -1, -1, -1, -1, -1, 299, -1, -1, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, 2678, -1, -1, -1, 2682, 2683, -1, -1, -1, -1, -1, 705, -1, -1, -1, -1, 1474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 731, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4255, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2678, -1, 2740, -1, 2682, 2683, -1, -1, 2746, -1, -1, -1, -1, -1, -1, -1, -1, -1, 392, -1, 6154, -1, -1, 1541, -1, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4813, 4814, 4815, -1, -1, 4306, 4819, 4820, 4821, 4822, 4311, -1, 4313, 4826, 2787, -1, -1, -1, 195, -1, -1, -1, -1, 200, -1, -1, -1, 2740, -1, 1582, -1, -1, -1, 2746, -1, -1, 4337, -1, -1, -1, -1, -1, -1, -1, 1680, -1, 223, 224, -1, -1, -1, 4864, 4865, 4866, 4867, 4868, -1, 4870, 4871, -1, -1, -1, 1615, -1, -1, -1, -1, 244, -1, 4882, 4883, -1, -1, -1, 2787, -1, -1, -1, -1, -1, -1, -1, -1, 4384, 873, 494, 4387, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, 4917, -1, -1, -1, 285, -1, -1, 2678, -1, -1, -1, 2682, 2683, -1, -1, -1, -1, -1, 299, -1, -1, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 327, -1, -1, -1, -1, -1, -1, -1, -1, 1795, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, -1, -1, -1, 2740, -1, -1, 4477, 4478, -1, 2746, -1, -1, -1, -1, -1, -1, -1, 4488, -1, -1, -1, -1, -1, -1, 1830, 731, -1, -1, -1, -1, -1, -1, -1, -1, 4505, -1, 5019, -1, -1, -1, -1, -1, -1, -1, -1, 392, -1, 1853, -1, -1, 2787, -1, -1, 2996, -1, 1861, -1, -1, -1, -1, -1, -1, 409, 1869, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1035, -1, -1, -1, -1, -1, -1, -1, 1807, -1, -1, 1046, -1, -1, -1, -1, -1, -1, -1, 1818, -1, -1, -1, -1, -1, 5084, -1, 1062, -1, -1, -1, 1913, 1914, -1, -1, 1834, -1, 2996, -1, 4586, -1, -1, 4589, -1, -1, 1927, -1, -1, -1, -1, 3069, -1, -1, -1, 3073, -1, -1, 5116, 1940, 1941, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 1888, -1, 873, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1903, -1, -1, 1906, 1907, -1, 3069, -1, -1, -1, 3073, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, 1937, 1938, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, 5211, 37, 13, -1, -1, 3176, 17, 18, 19, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, -1, 3191, -1, -1, -1, -1, 3196, 37, -1, -1, 40, -1, 2996, 1219, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3225, -1, -1, -1, -1, -1, -1, 2095, -1, -1, 5275, 3176, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3191, -1, -1, 5294, -1, 3196, -1, -1, -1, 5300, 5301, -1, -1, -1, -1, -1, -1, -1, -1, 5310, -1, 1035, -1, -1, 3069, -1, 5317, -1, 3073, -1, -1, -1, 1046, -1, 3225, -1, -1, -1, -1, -1, -1, -1, -1, 2074, -1, -1, 4825, -1, 1062, -1, -1, -1, -1, 169, -1, -1, -1, -1, -1, -1, -1, 5352, 5353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5365, -1, 5367, -1, -1, 195, -1, -1, -1, -1, 200, -1, -1, -1, -1, -1, 4869, 5382, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4881, -1, 195, -1, -1, 223, 224, 200, -1, -1, -1, -1, -1, -1, 5407, -1, -1, -1, -1, -1, -1, -1, 5415, -1, -1, -1, 244, -1, -1, 3176, 223, 224, -1, -1, -1, 4916, -1, -1, -1, -1, -1, -1, -1, -1, 3191, -1, -1, -1, -1, 3196, -1, 244, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, -1, -1, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3225, -1, -1, 299, -1, -1, 302, -1, -1, -1, -1, -1, 731, -1, 285, -1, -1, -1, 5489, -1, -1, -1, -1, -1, -1, 1219, -1, 1474, 299, 325, -1, 302, -1, -1, -1, 4994, -1, -1, -1, -1, -1, 3472, 5513, -1, 3475, -1, 3477, -1, -1, -1, -1, 3482, -1, 5524, 5013, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1541, -1, 392, -1, -1, 3530, -1, 3472, -1, -1, 3475, -1, 3477, 3538, -1, -1, -1, 3482, -1, -1, -1, -1, -1, -1, -1, -1, 5591, 392, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3563, -1, -1, 1582, -1, -1, -1, -1, 5099, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 873, -1, -1, -1, -1, 3530, -1, -1, -1, -1, -1, -1, -1, 3538, 1615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5661, -1, 3563, -1, -1, -1, -1, -1, 494, -1, -1, -1, 3633, -1, 3635, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, -1, -1, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, -1, -1, 3472, -1, -1, 3475, -1, 3477, -1, -1, -1, 5727, 3482, -1, -1, -1, -1, 3633, -1, 3635, -1, -1, 5226, -1, 5228, 5741, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3729, -1, -1, -1, -1, -1, -1, 3530, -1, -1, -1, -1, -1, -1, -1, 3538, -1, 5274, 1035, -1, -1, -1, -1, -1, 2616, -1, -1, 5284, -1, 1046, -1, 5800, -1, -1, -1, -1, -1, -1, -1, -1, 3563, -1, 3771, -1, -1, 1062, -1, -1, 10, 1541, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, 3729, -1, 1807, -1, -1, -1, -1, 5324, -1, -1, 3799, -1, 5329, 1818, -1, 37, -1, -1, -1, 2671, -1, -1, -1, -1, -1, 47, -1, -1, -1, 1834, 1582, -1, 54, -1, -1, -1, -1, 2689, -1, -1, -1, 2693, 3771, -1, -1, 2697, -1, -1, -1, -1, 3633, -1, 3635, -1, 2706, -1, -1, -1, 80, -1, -1, -1, -1, 1615, -1, 5894, -1, -1, -1, -1, 3799, -1, 2724, -1, -1, -1, -1, -1, 3867, -1, -1, -1, -1, 1888, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5926, 1903, -1, 3889, 1906, 1907, -1, -1, -1, 2758, -1, 5937, 2678, -1, -1, -1, 2682, 2683, -1, -1, -1, -1, -1, -1, -1, 3911, -1, -1, -1, 2778, 2779, -1, -1, -1, -1, 1937, 1938, -1, -1, -1, -1, 3867, -1, -1, -1, 1219, -1, -1, -1, 3729, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2809, 2810, -1, 3889, 2813, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2740, -1, 195, -1, -1, -1, 2746, 200, -1, -1, -1, 3911, -1, -1, 2837, 10, 2839, 3771, 13, -1, 2843, -1, 17, 18, 19, -1, -1, -1, -1, -1, 223, 224, -1, 3993, 2857, -1, -1, -1, -1, 6039, -1, 2864, 37, -1, 2867, 3799, -1, 2787, -1, -1, 2873, 244, 47, -1, -1, 5543, 208, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, 220, 5557, 2893, -1, -1, -1, -1, -1, 2899, 4037, -1, 231, -1, -1, -1, 2906, 1807, 80, -1, -1, -1, -1, -1, -1, 285, 3993, -1, 1818, -1, 2920, 2074, -1, 5588, -1, 4062, -1, -1, -1, 299, -1, -1, 302, 2933, 1834, -1, 3867, -1, 2938, -1, -1, -1, -1, -1, 2944, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3889, -1, 4037, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, 3911, -1, 17, 18, 19, 4062, -1, -1, 1888, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, 1903, 3004, 40, 1906, 1907, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, -1, -1, 392, 195, 5689, -1, -1, -1, 200, -1, -1, -1, -1, -1, -1, -1, -1, 1937, 1938, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 1474, -1, 223, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3993, -1, -1, -1, -1, -1, -1, -1, -1, -1, 244, 10, -1, -1, 13, -1, -1, 2996, 17, 18, 19, -1, -1, 4222, -1, -1, -1, 5754, -1, 5756, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, 4037, -1, -1, -1, 47, -1, -1, 285, -1, -1, 1541, 54, -1, -1, -1, -1, -1, 493, 494, -1, -1, 299, -1, -1, 302, 4062, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, 80, -1, 4222, -1, -1, -1, 321, -1, -1, 3069, -1, -1, -1, 3073, 1582, -1, 3159, 195, 3161, -1, -1, -1, 200, -1, -1, -1, -1, -1, -1, -1, -1, 2074, 4312, -1, -1, 3178, -1, -1, -1, -1, -1, -1, 3185, -1, -1, 223, 224, 1615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4338, -1, -1, -1, -1, -1, -1, -1, 244, -1, -1, -1, -1, -1, -1, -1, 5882, -1, -1, 392, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5895, -1, -1, -1, -1, 4312, -1, -1, -1, 176, -1, -1, -1, 5908, -1, -1, -1, -1, -1, -1, 285, -1, -1, -1, -1, -1, -1, -1, 195, 3176, -1, 4338, -1, 200, 299, -1, -1, 302, -1, -1, -1, -1, -1, -1, 3191, -1, 3276, -1, -1, 3196, -1, -1, 3282, -1, -1, -1, 223, 224, -1, -1, -1, 4222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5967, 5968, -1, -1, -1, 244, 3225, -1, -1, -1, -1, -1, 643, -1, -1, -1, -1, -1, 649, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, 4481, -1, -1, -1, 285, -1, -1, -1, -1, -1, -1, -1, -1, 392, -1, -1, -1, 6026, 299, -1, -1, 302, -1, 3367, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4312, 1807, -1, -1, -1, -1, -1, -1, -1, -1, 4528, -1, 1818, -1, -1, 4533, -1, -1, -1, -1, -1, -1, -1, 4481, -1, -1, 4338, -1, 1834, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4528, -1, -1, -1, 392, 4533, -1, -1, 494, -1, -1, -1, 1888, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, 1903, -1, -1, 1906, 1907, -1, -1, -1, -1, -1, -1, -1, -1, 820, -1, -1, -1, -1, -1, 3497, 3498, 6164, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 839, -1, 1937, 1938, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3524, 2678, -1, 3527, -1, 2682, 2683, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6209, -1, -1, -1, 4685, -1, 4481, -1, 6217, 6218, -1, 3472, -1, 494, 3475, -1, 3477, -1, 6227, -1, -1, 3482, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, -1, 909, -1, -1, -1, -1, -1, -1, 2740, -1, -1, -1, -1, -1, 2746, -1, -1, -1, 4528, -1, 3599, 3600, 3601, 4533, -1, -1, -1, -1, -1, 4685, -1, -1, 10, -1, 3530, 13, -1, -1, -1, 17, 18, 19, 3538, -1, -1, 3624, -1, -1, 956, -1, -1, -1, -1, -1, -1, 2787, -1, -1, -1, 37, -1, -1, 40, -1, 3643, -1, -1, 3563, -1, 47, 2074, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, 10, -1, 3665, 13, -1, -1, -1, 17, 18, 19, -1, -1, 4812, -1, -1, -1, -1, -1, 80, -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, -1, -1, 4852, 3633, -1, 3635, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, 4812, -1, 4874, -1, -1, -1, -1, 1071, -1, -1, -1, -1, -1, -1, -1, 10, 3751, -1, 13, 4685, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1100, 1101, 1102, -1, 4852, -1, 37, 2678, -1, 40, -1, 2682, 2683, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, -1, 195, 4874, 3798, -1, -1, 200, -1, -1, 3804, -1, 3806, -1, -1, -1, 4947, -1, 3729, -1, -1, -1, -1, -1, -1, 3819, 80, 3821, -1, -1, 223, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2740, -1, -1, 2996, -1, 244, 2746, -1, 195, -1, -1, -1, -1, 200, 3771, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4947, -1, -1, -1, -1, -1, 223, 224, -1, -1, 1209, 4812, 3799, -1, -1, -1, 285, 2787, 3888, -1, -1, -1, -1, -1, -1, -1, -1, 244, -1, -1, 299, -1, -1, 302, -1, -1, -1, -1, 1237, -1, -1, -1, -1, -1, -1, -1, 3069, -1, -1, -1, 3073, 4852, -1, -1, -1, -1, -1, -1, -1, -1, 3930, 5068, -1, -1, -1, 195, -1, -1, 285, -1, 200, -1, -1, 4874, -1, -1, -1, -1, -1, 3949, 3867, -1, 299, 3953, -1, 302, -1, -1, -1, -1, -1, -1, -1, 223, 224, -1, -1, -1, -1, -1, -1, -1, 3889, -1, 3974, -1, -1, -1, -1, -1, -1, -1, -1, -1, 244, -1, -1, -1, -1, -1, -1, 5068, -1, 392, 3911, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4947, -1, -1, -1, -1, -1, -1, 3176, -1, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3191, 299, -1, -1, 302, 3196, -1, 392, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1384, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5204, -1, -1, -1, -1, 3225, -1, 4074, -1, 3993, -1, 425, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 494, 2996, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, -1, -1, -1, 4037, -1, -1, -1, -1, -1, -1, 5204, -1, -1, -1, -1, 392, -1, -1, 1464, 5273, 5068, -1, -1, -1, -1, -1, -1, -1, 4062, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, 3069, -1, -1, -1, 3073, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1547, -1, -1, -1, -1, -1, -1, -1, -1, 1556, -1, -1, -1, -1, -1, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, 2678, -1, 4255, 5393, 2682, 2683, 1588, -1, -1, -1, -1, -1, 1594, 1595, -1, -1, 1598, -1, -1, -1, 5204, -1, -1, 3176, -1, -1, -1, -1, -1, 1611, -1, -1, 1614, -1, -1, -1, -1, -1, 3191, -1, -1, -1, -1, 3196, -1, -1, -1, -1, -1, -1, -1, -1, 4222, 4306, -1, -1, -1, -1, 4311, -1, 4313, -1, 2740, 5393, -1, -1, 3472, -1, 2746, 3475, -1, 3477, 3225, -1, -1, -1, 3482, -1, -1, -1, -1, -1, -1, -1, 4337, -1, -1, -1, 1670, 5273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1684, -1, -1, -1, -1, -1, -1, 2787, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3530, -1, -1, -1, -1, -1, -1, 4384, 3538, -1, 4387, 5525, -1, -1, -1, -1, 5530, 5531, 4312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3563, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4338, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 817, 818, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5525, -1, -1, -1, -1, 5530, 5531, -1, -1, -1, -1, -1, -1, -1, 5393, -1, -1, 1794, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1805, 4477, 4478, -1, 3633, -1, 3635, -1, 10, -1, -1, 13, 4488, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4505, 5643, -1, -1, -1, -1, 37, -1, -1, -1, 895, -1, -1, 1847, 1848, -1, 47, -1, -1, -1, -1, 10, -1, 54, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, 1872, -1, -1, -1, -1, -1, -1, 1879, -1, -1, 37, 80, 5692, -1, -1, -1, -1, -1, -1, -1, 47, 4481, -1, 5643, -1, -1, -1, 54, 2996, 3472, -1, -1, 3475, 3729, 3477, -1, -1, -1, -1, 3482, -1, -1, -1, 4586, -1, -1, 4589, -1, -1, -1, -1, 5525, -1, 80, -1, -1, 5530, 5531, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4528, -1, -1, -1, 5692, 4533, -1, 3771, -1, -1, -1, -1, 1952, -1, -1, -1, -1, -1, -1, 3530, -1, -1, -1, -1, -1, 1016, 1017, 3538, -1, -1, -1, -1, -1, 3069, -1, 3799, -1, 3073, -1, 176, -1, -1, -1, -1, -1, 1985, 1986, -1, -1, -1, -1, -1, 3563, -1, -1, -1, -1, -1, 195, -1, -1, -1, 2002, 200, -1, 2005, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 176, -1, -1, -1, -1, 223, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 195, 5643, -1, 3867, -1, 200, -1, 244, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3633, -1, 3635, 3889, -1, -1, 223, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3176, -1, -1, -1, -1, -1, -1, 3911, 285, 244, 5692, -1, -1, -1, 1335, 3191, -1, 4685, -1, -1, 3196, -1, 299, -1, -1, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3225, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 299, -1, -1, 302, -1, -1, -1, 1392, -1, -1, 4825, -1, -1, -1, 3729, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3993, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 392, -1, -1, 4869, -1, 3771, -1, -1, -1, 1255, -1, -1, -1, -1, -1, 4881, -1, -1, 4037, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, 4812, -1, 13, -1, 3799, -1, 17, 18, 19, -1, -1, -1, -1, 392, 4062, 1290, -1, -1, -1, -1, -1, 4916, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, 4852, -1, -1, 54, 1319, 1320, 1321, -1, 1323, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4874, -1, -1, -1, -1, -1, 1343, 80, -1, -1, 3867, 494, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, 3889, -1, -1, -1, -1, 4994, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 494, 3911, -1, 5013, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, 4947, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3472, -1, -1, 3475, -1, 3477, -1, 170, -1, -1, 3482, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1448, 4222, -1, -1, 1452, 1453, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, 200, -1, -1, -1, -1, -1, -1, -1, -1, 3993, -1, -1, -1, -1, -1, 5099, -1, -1, -1, -1, -1, 3530, -1, 223, 224, -1, -1, -1, -1, 3538, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 244, -1, -1, 1701, -1, -1, -1, 1705, -1, 4037, 3563, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5068, -1, -1, -1, -1, -1, -1, -1, 4312, -1, -1, 4062, -1, -1, -1, -1, -1, -1, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 299, -1, 4338, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2534, -1, -1, 3633, -1, 3635, -1, -1, -1, -1, -1, 2545, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5226, -1, 5228, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, 2577, -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, 5274, -1, 392, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, 5204, 54, -1, -1, -1, -1, -1, -1, 2624, 2625, -1, -1, -1, -1, -1, -1, -1, 3729, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, 1695, 1696, 1697, -1, -1, -1, -1, 4222, -1, 5324, -1, -1, -1, 4481, 2658, -1, -1, 10, -1, -1, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, 3771, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5273, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, 3799, 4528, 54, -1, 494, -1, 4533, -1, -1, 149, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, 200, -1, -1, -1, 4338, -1, -1, -1, 3867, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2022, -1, -1, -1, -1, 223, 224, -1, -1, -1, 2791, -1, 3889, -1, -1, -1, -1, -1, -1, 2041, -1, -1, -1, 2045, 5393, 2806, 244, -1, -1, -1, -1, -1, -1, -1, 3911, -1, -1, -1, 2060, 2061, 2062, -1, 2064, -1, -1, 10, -1, 2828, 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 195, -1, 285, -1, -1, 200, -1, 37, -1, -1, -1, -1, -1, -1, -1, 4685, 299, 47, -1, 302, -1, -1, -1, -1, 54, -1, 5543, -1, 223, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5557, -1, -1, -1, -1, -1, -1, -1, -1, 244, 80, 3993, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4481, -1, -1, -1, 2914, 2915, -1, 5588, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 285, 5525, -1, -1, -1, 4037, 5530, 5531, -1, -1, -1, -1, -1, -1, 299, -1, -1, 302, -1, 392, -1, 4528, -1, -1, -1, -1, 4533, -1, -1, -1, 4062, -1, -1, -1, -1, -1, -1, 2024, -1, -1, -1, -1, -1, -1, -1, -1, 2033, 2034, 2035, 2036, 170, -1, 4812, 2040, -1, 2042, -1, 2044, -1, -1, 2047, 2048, 2049, -1, -1, -1, -1, -1, 2055, -1, -1, 2058, -1, -1, -1, 195, -1, -1, -1, 3015, 200, -1, 5689, -1, -1, -1, -1, -1, 2075, 2076, 2077, -1, 4852, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 223, 224, -1, 2093, 392, -1, -1, -1, -1, -1, -1, 4874, -1, -1, -1, -1, 5643, -1, 494, -1, -1, 244, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, -1, -1, -1, -1, 5754, -1, 5756, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 285, -1, 10, 5692, -1, 13, -1, -1, -1, 17, 18, 19, -1, 4685, 299, -1, -1, 302, 468, -1, -1, -1, 4947, -1, -1, 4222, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, 494, -1, 54, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 392, -1, -1, 5882, -1, -1, -1, -1, 4312, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, 2284, 40, -1, -1, 5908, -1, -1, -1, 4812, 4338, -1, 5068, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 78, -1, -1, -1, -1, -1, -1, -1, -1, 4852, -1, -1, -1, -1, 2337, -1, 195, -1, 2531, -1, -1, 200, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4874, -1, -1, -1, 113, -1, -1, 494, -1, -1, -1, -1, -1, 223, 224, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 134, -1, -1, -1, -1, -1, -1, 141, -1, 244, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3353, -1, 6026, -1, -1, -1, -1, -1, -1, -1, -1, -1, 171, -1, -1, -1, -1, -1, -1, -1, -1, 3374, -1, 4947, -1, 285, -1, 5204, -1, -1, -1, -1, 4481, -1, -1, -1, -1, 2631, -1, 299, -1, -1, 302, -1, 203, -1, -1, -1, 207, 2643, -1, -1, -1, -1, 2648, 27, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4528, -1, -1, -1, -1, 4533, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, 5273, -1, -1, -1, 259, -1, -1, -1, 263, -1, 78, -1, -1, -1, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 278, 2524, -1, -1, 282, -1, -1, -1, -1, -1, -1, -1, 2535, 392, 292, 2538, -1, -1, -1, -1, -1, 6164, 113, 301, -1, 5068, -1, -1, -1, -1, -1, -1, -1, -1, 312, 313, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, 141, -1, -1, 144, -1, -1, 2579, -1, -1, -1, 2583, -1, -1, 2586, -1, 2588, 6209, -1, 2591, -1, -1, -1, -1, -1, 352, -1, -1, 355, 356, 357, 171, -1, -1, -1, 6227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5393, -1, -1, -1, -1, -1, 381, -1, -1, -1, -1, -1, 387, -1, -1, 203, -1, -1, 494, 207, 4685, -1, -1, -1, 2644, 2645, 401, 503, 504, 505, 506, 507, 508, 509, 510, 511, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5204, -1, -1, -1, -1, -1, -1, 259, 3641, -1, -1, 263, -1, -1, -1, -1, -1, 456, 3651, -1, -1, -1, -1, -1, -1, -1, 278, -1, -1, -1, 282, -1, -1, -1, -1, -1, -1, -1, -1, -1, 292, -1, -1, 2727, -1, -1, -1, -1, -1, 301, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, 313, -1, -1, -1, -1, -1, -1, 5525, 5273, -1, -1, -1, 5530, 5531, -1, -1, -1, -1, -1, -1, -1, -1, 4812, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, -1, -1, -1, 352, -1, -1, 355, 356, 357, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4852, -1, -1, -1, -1, -1, 381, -1, -1, -1, -1, -1, 387, -1, -1, 68, -1, -1, -1, -1, -1, -1, 4874, -1, -1, -1, 401, -1, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3810, 3811, 3812, -1, -1, -1, -1, -1, 115, 5643, -1, -1, 5393, -1, 121, -1, -1, 3827, -1, -1, -1, -1, -1, -1, -1, -1, -1, 456, -1, -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, 4947, -1, 150, -1, -1, -1, -1, -1, -1, 3860, 3861, 159, -1, -1, 3865, -1, -1, 5692, -1, -1, -1, -1, -1, -1, 172, -1, -1, -1, -1, -1, -1, -1, -1, 181, -1, -1, -1, 185, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 205, -1, -1, 2962, 2963, 2964, -1, -1, -1, 2968, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2995, -1, -1, -1, -1, -1, -1, 248, -1, -1, 5525, -1, -1, -1, -1, 5530, 5531, 258, -1, -1, -1, -1, 3207, -1, -1, -1, -1, 3971, 5068, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3228, -1, -1, -1, -1, 3233, -1, -1, -1, -1, -1, 3239, -1, -1, -1, 299, 3244, 3245, 302, 3247, -1, -1, -1, -1, 3252, 3253, -1, 3255, -1, 3257, -1, -1, -1, 3261, -1, -1, 3264, -1, -1, 323, -1, 3269, -1, -1, -1, -1, -1, -1, -1, -1, 3278, -1, -1, 337, -1, 3283, -1, -1, -1, -1, 344, -1, -1, 3291, 3292, 3293, 3294, -1, -1, -1, 3298, 3299, -1, 3301, -1, -1, -1, -1, -1, -1, 364, -1, -1, -1, -1, 5643, -1, -1, -1, -1, 374, -1, 3320, -1, 3322, -1, -1, 381, -1, -1, 384, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, -1, -1, -1, -1, -1, -1, -1, -1, 403, -1, 5204, -1, -1, -1, -1, 410, -1, -1, -1, -1, -1, -1, 417, 5692, -1, 420, 421, -1, 423, 424, -1, -1, -1, 4131, 4132, 4133, 3375, -1, -1, -1, -1, -1, -1, -1, 439, -1, -1, -1, -1, -1, -1, 446, -1, -1, 449, 3204, -1, 452, -1, -1, 3209, -1, -1, -1, -1, -1, -1, -1, -1, -1, 465, -1, -1, -1, -1, -1, -1, -1, -1, 5273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3265, -1, 3267, 3268, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 3281, -1, -1, 3284, -1, 3286, -1, -1, -1, -1, 33, -1, 35, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, 3323, -1, 3325, -1, 3327, 3518, -1, -1, -1, -1, 75, -1, 77, 78, -1, -1, -1, -1, -1, 84, -1, 86, -1, -1, -1, 5393, -1, -1, -1, -1, -1, -1, -1, 98, -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 117, -1, -1, 120, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, 137, -1, -1, -1, 141, -1, -1, 25, -1, -1, 147, -1, 30, -1, -1, -1, -1, -1, 155, -1, 157, -1, -1, 3418, -1, -1, -1, 164, 3423, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3438, -1, 182, -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 199, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, 5525, -1, -1, -1, -1, 5530, 5531, -1, -1, -1, -1, -1, 115, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3503, 246, 247, -1, -1, -1, 4458, 252, -1, -1, -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, 266, -1, -1, 150, -1, -1, -1, -1, -1, -1, -1, -1, 159, -1, -1, -1, -1, 4490, 284, -1, -1, -1, -1, -1, -1, 172, -1, -1, -1, -1, -1, 178, -1, -1, -1, -1, -1, -1, 185, -1, -1, -1, -1, -1, -1, -1, 3760, 3761, -1, 4522, -1, 3765, -1, -1, -1, -1, -1, -1, 205, -1, -1, -1, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5643, -1, 342, -1, -1, -1, 3794, -1, 348, 349, 4557, 351, -1, -1, -1, -1, 356, -1, -1, 359, -1, -1, 362, -1, -1, 365, -1, 4574, -1, -1, -1, -1, 372, -1, -1, -1, -1, 258, -1, 379, 380, -1, -1, -1, -1, -1, -1, 387, -1, 5692, -1, 391, -1, -1, -1, -1, -1, -1, -1, -1, -1, 401, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 417, 299, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, -1, -1, 437, -1, -1, -1, -1, 323, -1, -1, -1, -1, -1, 448, -1, -1, -1, 333, 334, 454, -1, 337, -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 364, -1, -1, 367, -1, -1, -1, 371, -1, -1, 374, -1, -1, 496, -1, 3756, -1, 381, -1, -1, 384, 3762, -1, -1, -1, -1, 4716, 4717, 4718, 4719, -1, -1, 515, -1, -1, 518, -1, -1, -1, 403, -1, -1, -1, -1, -1, -1, 410, -1, -1, -1, -1, -1, -1, 417, -1, -1, 420, -1, 3989, -1, 424, -1, -1, -1, 3995, -1, -1, -1, 432, -1, 434, -1, -1, -1, -1, 439, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 452, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3841, 465, -1, 4034, 4035, -1, -1, 4038, 4039, 4040, 4041, -1, -1, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, 4077, -1, -1, 4080, -1, 4082, -1, -1, 4085, 4086, -1, -1, -1, -1, -1, 115, -1, -1, -1, -1, -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4109, 4110, 4111, 4112, -1, 4114, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 150, -1, -1, -1, -1, -1, -1, -1, -1, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 172, -1, -1, -1, -1, -1, 178, -1, -1, -1, -1, -1, -1, 185, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3990, 4181, 205, -1, -1, -1, -1, -1, 3998, -1, 4000, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4010, -1, -1, -1, 4014, 4015, -1, -1, -1, -1, 4020, -1, -1, 236, -1, -1, -1, -1, 4028, -1, 4030, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4231, -1, -1, -1, 258, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4057, 4058, 4059, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4076, -1, -1, -1, -1, -1, -1, -1, 4084, -1, 299, 4087, -1, 4089, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4107, -1, -1, 323, -1, 5061, -1, -1, 4115, 4116, -1, -1, -1, 333, 334, 4122, 5072, 337, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 364, -1, -1, 367, -1, -1, -1, 371, -1, -1, 374, -1, -1, -1, -1, -1, -1, 381, -1, -1, 384, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 403, -1, -1, -1, -1, -1, -1, 410, -1, 4199, -1, -1, 415, -1, 417, -1, -1, 420, -1, -1, -1, 424, -1, -1, -1, -1, 4216, -1, -1, -1, -1, 434, -1, -1, -1, -1, 439, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 452, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 465, -1, -1, -1, -1, -1, -1, -1, -1, 4451, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5346, -1, -1, -1, -1, 5351, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5370, -1, -1, -1, -1, 4616, -1, -1, -1, 4620, 4621, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4639, 4640, -1, -1, -1, -1, 4645, 4646, 4647, 4648, -1, -1, -1, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4689, -1, -1, 4692, -1, 4694, -1, -1, -1, -1, -1, 4700, -1, -1, 4703, 4704, -1, -1, 4707, 4708, -1, -1, -1, -1, 4713, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4534, 4535, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4545, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4765, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4779, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4629, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4643, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5610, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4682, 4683, -1, -1, -1, -1, -1, 5638, 4690, 4691, -1, -1, -1, 4695, -1, -1, -1, -1, -1, -1, 4702, -1, -1, 4705, 4706, -1, -1, -1, -1, -1, 4712, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4755, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4766, -1, -1, -1, -1, -1, -1, -1, 4774, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4976, -1, -1, -1, -1, -1, -1, -1, 4794, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5063, 5064, -1, -1, -1, -1, -1, -1, 5071, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4897, -1, -1, -1, -1, -1, -1, 4904, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5132, 5133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5151, -1, 5153, -1, -1, -1, 5157, 5158, 5159, -1, -1, 5162, 4973, -1, 5165, 5166, -1, -1, -1, -1, 5171, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5188, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5206, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5220, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5295, -1, 5297, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5130, -1, -1, -1, -1, -1, 5136, 5137, 5138, -1, -1, -1, 5332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5163, 5164, -1, -1, 5167, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5194, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5205, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5221, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5423, -1, 5425, 5426, 5427, 5428, 5429, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5442, 5443, 5444, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5456, -1, -1, 5459, -1, -1, -1, 5463, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5481, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5496, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5430, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5474, -1, -1, 5667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5686, -1, 5688, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5535, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5740, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5577, -1, -1, -1, -1, -1, -1, -1, -1, 5776, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5842, -1, -1, -1, -1, -1, -1, 5849, -1, -1, -1, -1, -1, -1, 5666, -1, -1, -1, -1, -1, -1, -1, -1, 5675, 5676, 5677, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5701, -1, 5893, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5729, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5992, 5993, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6006, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5846, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6047, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5869, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5879, -1, -1, 6072, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6083, 6084, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5949, 6140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5973, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, 5, 6, -1, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, 6074, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 6088, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, 136, -1, 138, 139, 140, 141, 142, 6196, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, 508, -1, -1, -1, -1, -1, -1, 515, 516, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 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, -1, 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, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, 496, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, -1, -1, -1, -1, 515, 516, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, -1, -1, -1, -1, 515, 516, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, -1, -1, -1, -1, 515, 516, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, -1, -1, -1, -1, 515, 516, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, -1, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 516, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, -1, -1, -1, -1, 232, 233, 234, 235, 236, 237, -1, -1, 240, -1, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, -1, 281, -1, 283, 284, 285, 286, -1, -1, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, -1, 325, -1, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, -1, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, -1, 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 490, 491, 492, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, 516, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, -1, -1, -1, -1, 232, 233, 234, 235, 236, 237, -1, -1, 240, -1, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, -1, 281, -1, 283, 284, 285, 286, -1, -1, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, -1, 325, -1, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, -1, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, -1, 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 3, -1, 5, 6, -1, 8, 9, 10, 11, 12, -1, 490, 491, 492, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, -1, -1, -1, -1, 39, 516, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 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, -1, 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, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, 496, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 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, -1, 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, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, 496, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, 176, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 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, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 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, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, -1, -1, 513, 514, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, 508, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 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, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, 176, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, 429, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -1, -1, -1, 3, -1, 5, 6, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, 3, -1, 5, 6, -1, 8, 9, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, 3, -1, 5, 6, -1, 8, 9, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, 3, -1, 5, 6, -1, 8, 9, -1, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, 3, -1, 5, 6, -1, 8, 9, -1, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, 244, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 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, -1, 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, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, 496, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, 244, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, 3, -1, 5, 6, -1, -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, 508, -1, -1, -1, -1, -1, -1, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 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, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, 417, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, -1, -1, 496, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, 417, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, 496, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, 417, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 515, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, 3, -1, 5, 6, -1, -1, -1, 10, 11, -1, -1, -1, -1, -1, 17, 18, 19, -1, 515, 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, -1, 157, 158, 159, 160, -1, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, -1, 185, -1, 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, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, -1, -1, -1, -1, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, 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, -1, 281, 282, 283, 284, 285, 286, 287, -1, 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, 316, 317, 318, 319, 320, 321, 322, 323, -1, 325, -1, 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, -1, 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, -1, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 490, 491, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 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, -1, 157, 158, 159, 160, -1, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, -1, 185, -1, 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, -1, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, -1, -1, -1, -1, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, 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, -1, 281, 282, 283, 284, 285, 286, 287, -1, 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, 316, 317, 318, 319, 320, 321, 322, 323, -1, 325, -1, 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, -1, 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, -1, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, -1, 434, -1, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 490, 491, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 3, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, -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, -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, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, -1, 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, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, -1, 166, 167, 168, 169, -1, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, -1, 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, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, -1, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, -1, 263, 264, -1, 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, 299, 300, 301, 302, -1, 304, 305, 306, 307, -1, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, -1, 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, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, -1, 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, -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, -1, 463, 464, 465, 466, 467, 468, -1, 470, -1, -1, -1, -1, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, -1, 491, 492, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 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, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, -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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, -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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, -1, -1, -1, -1, 232, 233, 234, 235, 236, 237, -1, -1, 240, -1, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, -1, 281, -1, 283, 284, 285, 286, -1, -1, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, -1, 325, -1, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, -1, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, -1, 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 490, 491, 492, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 508, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, -1, -1, -1, -1, 232, 233, 234, 235, 236, 237, -1, -1, 240, -1, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, -1, 281, -1, 283, 284, 285, 286, -1, -1, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, 303, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, -1, 325, -1, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, -1, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, -1, 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, -1, 3, -1, 5, 6, -1, -1, -1, -1, 11, 12, 490, 491, 492, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 508, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 3, -1, 5, 6, -1, -1, -1, -1, 11, 12, -1, -1, -1, 506, 507, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 3, -1, 5, 6, -1, -1, -1, -1, 11, -1, -1, -1, -1, 506, 507, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 3, -1, 5, 6, -1, -1, -1, -1, 11, 12, -1, -1, -1, 506, 507, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 3, -1, 5, 6, -1, -1, -1, -1, 11, -1, -1, -1, -1, 506, 507, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 3, -1, -1, -1, -1, -1, -1, -1, 11, -1, -1, -1, -1, 506, 507, -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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, 176, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, 507, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 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, 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, 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, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, 416, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, 107, 108, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, 107, 108, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, 107, 108, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, 107, 108, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, 185, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, 107, 108, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, 107, 108, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, 107, 108, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, 107, 108, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, 107, 108, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, 244, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, 182, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 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, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, 182, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 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, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, 446, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 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, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, 417, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, 172, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, 417, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, 100, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 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, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, 417, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, 298, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, 417, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, 187, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, -1, -1, -1, 178, 179, 180, 181, -1, 183, 184, -1, 186, -1, 188, -1, 190, 191, 192, 193, 194, -1, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, -1, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, -1, -1, 225, -1, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, -1, 240, 241, -1, 243, -1, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, -1, 283, 284, -1, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, -1, 308, -1, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, -1, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, -1, 364, 365, 366, 367, 368, 369, -1, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, -1, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -1, 414, 415, -1, -1, 418, -1, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, 433, 434, 435, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, 459, 460, -1, 462, -1, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, -1, -1, -1, -1, 232, 233, 234, 235, 236, 237, -1, -1, 240, -1, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, -1, 281, -1, 283, 284, 285, 286, -1, -1, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, -1, 325, -1, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, -1, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, -1, 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 490, 491, 492, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, -1, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, -1, -1, -1, -1, 232, 233, 234, 235, 236, 237, -1, -1, 240, -1, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, -1, 281, -1, 283, 284, 285, 286, 287, -1, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, -1, 325, -1, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, -1, 412, -1, 414, 415, -1, 417, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, -1, 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, -1, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 490, 491, 492, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, -1, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, -1, -1, -1, -1, 232, 233, 234, 235, 236, 237, -1, -1, 240, -1, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 281, -1, 283, 284, 285, 286, -1, -1, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, -1, 325, -1, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, -1, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, -1, 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, -1, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 490, 491, 492, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, -1, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, -1, -1, -1, -1, 232, 233, 234, 235, 236, 237, -1, -1, 240, -1, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, 281, -1, 283, 284, 285, 286, -1, -1, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, -1, 325, -1, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, -1, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, -1, 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, -1, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 490, 491, 492, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, -1, 163, -1, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, -1, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, -1, -1, -1, -1, 232, 233, 234, 235, 236, 237, -1, -1, 240, -1, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, -1, 281, -1, 283, 284, 285, 286, -1, -1, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, -1, 325, -1, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, -1, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, -1, 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, -1, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 490, 491, 492, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, -1, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, -1, -1, -1, -1, 232, 233, 234, 235, 236, 237, -1, -1, 240, -1, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, -1, 281, -1, 283, 284, 285, 286, -1, -1, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, -1, 325, -1, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, -1, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, -1, 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, -1, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 490, 491, 492, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, -1, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, -1, -1, -1, -1, 232, 233, 234, 235, 236, 237, -1, -1, 240, -1, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, -1, 281, -1, 283, 284, 285, 286, -1, -1, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, -1, 325, -1, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, -1, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, -1, 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, -1, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 490, 491, 492, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, -1, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, -1, -1, -1, -1, 232, 233, 234, 235, 236, 237, -1, -1, 240, -1, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, -1, 281, -1, 283, 284, 285, 286, -1, -1, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, -1, 325, -1, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, -1, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, -1, 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, -1, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 490, 491, 492, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, -1, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, -1, -1, -1, -1, 232, 233, 234, 235, 236, 237, -1, -1, 240, -1, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, -1, 281, -1, 283, 284, 285, 286, -1, -1, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, -1, 325, -1, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, -1, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, -1, 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, -1, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 490, 491, 492, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, -1, 163, -1, 165, 166, 167, 168, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, -1, 213, 214, 215, 216, 217, 218, -1, 220, -1, 222, 223, 224, 225, 226, 227, -1, -1, -1, -1, 232, 233, 234, 235, 236, 237, -1, -1, 240, -1, 242, 243, 244, -1, 246, 247, 248, -1, -1, 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, -1, -1, 281, -1, 283, 284, 285, 286, -1, -1, 289, 290, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, -1, 325, -1, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, -1, 390, 391, 392, 393, 394, 395, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, -1, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, 427, 428, -1, -1, 431, 432, -1, 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, -1, 460, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 490, 491, 492, -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, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, -1, -1, 120, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, -1, 132, 133, 134, 135, -1, -1, 138, 139, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, -1, 152, 153, 154, 155, -1, 157, 158, 159, 160, -1, -1, 163, -1, 165, 166, 167, -1, 169, -1, 171, -1, 173, 174, 175, -1, 177, 178, 179, 180, 181, -1, 183, -1, -1, -1, 187, 188, -1, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, 206, 207, 208, -1, 210, 211, -1, 213, 214, 215, 216, -1, -1, -1, -1, -1, 222, 223, 224, 225, 226, 227, -1, -1, -1, -1, 232, 233, 234, 235, 236, 237, -1, -1, 240, -1, 242, 243, 244, -1, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, -1, 270, -1, 272, 273, 274, 275, 276, 277, 278, -1, -1, 281, -1, 283, 284, 285, 286, -1, -1, 289, -1, 291, 292, 293, -1, 295, 296, -1, -1, 299, 300, 301, -1, -1, 304, 305, -1, 307, 308, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, -1, 322, 323, -1, 325, -1, 327, 328, 329, -1, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -1, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, -1, 387, 388, -1, 390, 391, 392, 393, 394, -1, 396, -1, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, -1, 412, -1, 414, 415, -1, -1, 418, 419, 420, 421, 422, 423, 424, -1, 426, -1, -1, -1, -1, 431, 432, -1, 434, -1, -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, 448, 449, 450, 451, -1, -1, 454, 455, 456, 457, 458, -1, -1, -1, 462, 463, 464, 465, 466, 467, -1, -1, 470, -1, -1, 473, 474, 475, 476, 477, 478, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 490, 491, 492 }; /* 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, 98, 100, 117, 120, 135, 137, 141, 147, 155, 157, 164, 182, 199, 246, 247, 252, 266, 284, 328, 342, 348, 349, 351, 356, 362, 365, 372, 379, 380, 387, 391, 401, 417, 437, 448, 454, 459, 472, 496, 498, 499, 500, 501, 502, 515, 522, 523, 524, 525, 530, 531, 537, 538, 540, 541, 542, 543, 545, 548, 560, 565, 566, 569, 570, 571, 589, 592, 593, 608, 657, 660, 661, 664, 667, 668, 669, 677, 684, 686, 687, 690, 693, 694, 698, 707, 711, 712, 713, 716, 718, 719, 720, 721, 729, 731, 751, 755, 757, 758, 768, 770, 777, 778, 781, 782, 783, 784, 785, 794, 796, 798, 801, 805, 806, 816, 817, 822, 827, 838, 870, 873, 874, 875, 880, 883, 885, 887, 889, 890, 894, 895, 898, 900, 901, 905, 906, 907, 910, 911, 912, 913, 914, 921, 923, 924, 925, 926, 932, 934, 935, 941, 942, 943, 946, 947, 948, 949, 951, 952, 954, 955, 957, 958, 960, 972, 974, 977, 979, 980, 989, 991, 996, 1001, 1009, 1013, 1014, 1015, 1016, 1017, 1018, 1024, 1060, 431, 475, 927, 30, 81, 97, 115, 121, 139, 150, 159, 172, 178, 185, 205, 236, 258, 299, 323, 333, 334, 337, 364, 367, 371, 374, 381, 384, 403, 410, 415, 417, 420, 424, 434, 439, 452, 465, 683, 927, 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, 94, 95, 96, 97, 98, 99, 101, 102, 103, 104, 108, 112, 113, 114, 115, 116, 117, 118, 119, 120, 122, 124, 125, 126, 127, 128, 129, 130, 132, 133, 134, 135, 138, 139, 140, 141, 142, 144, 145, 146, 148, 149, 150, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 163, 165, 166, 167, 168, 169, 171, 173, 174, 175, 177, 178, 179, 180, 181, 183, 184, 186, 187, 188, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 213, 214, 215, 216, 217, 218, 220, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 240, 241, 242, 243, 244, 246, 247, 248, 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, 283, 284, 285, 286, 288, 289, 290, 291, 292, 293, 295, 296, 299, 300, 301, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 322, 323, 324, 325, 326, 327, 328, 329, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 381, 382, 383, 384, 385, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 414, 415, 418, 419, 420, 421, 422, 423, 424, 426, 427, 428, 431, 432, 433, 434, 435, 437, 438, 439, 440, 441, 442, 443, 444, 447, 448, 449, 450, 451, 454, 455, 456, 457, 458, 459, 460, 462, 463, 464, 465, 466, 467, 470, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 1121, 1205, 1217, 1218, 1222, 1223, 1224, 3, 31, 1010, 1202, 1217, 1222, 463, 515, 965, 297, 329, 927, 56, 515, 600, 25, 43, 68, 81, 115, 121, 139, 150, 159, 172, 181, 185, 248, 299, 302, 323, 337, 364, 374, 384, 403, 410, 420, 421, 423, 424, 439, 446, 449, 452, 609, 666, 773, 828, 839, 31, 328, 1202, 1010, 31, 322, 382, 421, 423, 6, 235, 881, 882, 1208, 25, 30, 68, 81, 97, 115, 139, 150, 159, 172, 178, 185, 205, 258, 299, 312, 323, 334, 337, 364, 367, 371, 374, 381, 384, 403, 410, 417, 420, 424, 432, 434, 439, 452, 465, 683, 786, 788, 789, 927, 1202, 100, 463, 515, 661, 664, 667, 960, 973, 977, 980, 989, 996, 1001, 1009, 1013, 11, 24, 31, 51, 167, 174, 176, 200, 237, 273, 331, 350, 506, 507, 802, 803, 1010, 1207, 1209, 31, 33, 100, 346, 380, 807, 808, 809, 1217, 172, 1217, 1204, 1208, 417, 1027, 802, 1217, 431, 1202, 312, 258, 515, 893, 372, 1217, 31, 385, 427, 431, 552, 561, 562, 1217, 182, 807, 808, 1217, 329, 927, 1217, 234, 31, 136, 1029, 1030, 69, 94, 248, 268, 364, 374, 385, 427, 431, 478, 549, 550, 551, 552, 31, 385, 427, 431, 552, 431, 298, 1072, 1073, 1200, 1217, 1027, 508, 1217, 177, 515, 966, 515, 344, 1019, 1020, 1202, 1019, 3, 55, 57, 58, 71, 72, 118, 119, 140, 168, 217, 218, 220, 269, 271, 290, 341, 389, 395, 427, 428, 460, 1095, 1097, 1099, 1101, 1103, 1105, 1106, 1107, 1109, 1110, 1111, 1113, 1114, 1218, 1222, 1029, 1030, 1031, 1213, 12, 1214, 1215, 1217, 1214, 1214, 1014, 1015, 1018, 0, 518, 515, 965, 151, 219, 303, 445, 1032, 1033, 1014, 1016, 1017, 126, 215, 260, 451, 519, 37, 931, 855, 1205, 791, 1217, 791, 1202, 332, 791, 434, 1202, 114, 417, 843, 1205, 1217, 1224, 3, 107, 111, 386, 1210, 1211, 1219, 1222, 1223, 1224, 31, 194, 1200, 291, 465, 10, 17, 18, 19, 76, 163, 503, 504, 505, 506, 507, 508, 509, 510, 511, 877, 879, 1152, 1153, 1217, 194, 1202, 843, 1202, 31, 1210, 1211, 843, 1202, 1202, 194, 1200, 1202, 194, 791, 1202, 356, 387, 31, 194, 1072, 1202, 377, 1202, 791, 31, 255, 1210, 1211, 194, 1200, 235, 123, 225, 282, 340, 928, 929, 930, 515, 513, 517, 1178, 1180, 493, 959, 960, 961, 962, 1219, 1200, 1202, 1217, 30, 68, 82, 93, 115, 139, 178, 205, 236, 299, 334, 364, 367, 410, 420, 432, 439, 786, 787, 788, 789, 1208, 931, 976, 980, 989, 996, 1001, 1013, 1200, 261, 791, 515, 194, 791, 1202, 791, 434, 194, 1202, 114, 417, 421, 423, 1210, 1211, 421, 423, 76, 163, 877, 354, 1202, 1202, 1210, 194, 526, 1217, 194, 1202, 194, 527, 791, 1202, 1202, 377, 791, 255, 1210, 344, 381, 417, 465, 258, 97, 205, 30, 93, 178, 334, 371, 432, 434, 438, 678, 31, 1202, 1011, 559, 1208, 1219, 882, 261, 194, 855, 856, 194, 886, 194, 1202, 194, 793, 1095, 434, 114, 417, 194, 842, 843, 194, 1211, 1212, 89, 465, 76, 163, 194, 878, 879, 61, 194, 842, 194, 1212, 194, 842, 194, 1202, 194, 1202, 377, 886, 194, 793, 194, 255, 1212, 235, 194, 790, 791, 194, 1201, 1202, 194, 1202, 931, 515, 978, 609, 973, 459, 959, 965, 1209, 803, 804, 31, 804, 1209, 804, 31, 804, 1209, 804, 804, 804, 1209, 1207, 1207, 1010, 804, 332, 515, 415, 515, 634, 634, 634, 297, 429, 519, 634, 374, 1072, 1074, 519, 922, 1208, 515, 975, 61, 465, 959, 115, 205, 374, 415, 417, 891, 892, 1217, 50, 492, 225, 517, 300, 297, 176, 300, 1208, 429, 931, 170, 799, 297, 5, 8, 9, 10, 12, 39, 55, 57, 58, 67, 68, 71, 72, 79, 81, 105, 106, 107, 108, 109, 110, 111, 118, 119, 121, 156, 161, 162, 168, 184, 186, 217, 218, 220, 228, 229, 230, 231, 241, 249, 250, 269, 271, 280, 282, 287, 288, 290, 299, 310, 324, 341, 369, 386, 395, 411, 416, 427, 428, 433, 435, 436, 446, 452, 460, 480, 481, 482, 483, 485, 486, 487, 488, 494, 506, 507, 508, 515, 1014, 1098, 1101, 1104, 1105, 1106, 1108, 1109, 1110, 1113, 1114, 1118, 1120, 1121, 1122, 1124, 1148, 1149, 1150, 1154, 1172, 1177, 1194, 1197, 1198, 1205, 1206, 1207, 1208, 1217, 1196, 1197, 1208, 31, 567, 1199, 1200, 385, 549, 121, 558, 1208, 12, 559, 12, 1208, 50, 73, 549, 492, 396, 929, 300, 176, 429, 505, 50, 492, 225, 930, 515, 1200, 508, 1180, 1074, 959, 175, 967, 1118, 1157, 1019, 519, 515, 968, 462, 1112, 1112, 1112, 515, 1100, 1100, 326, 515, 1102, 71, 72, 1112, 1100, 1097, 496, 497, 515, 1115, 515, 1115, 39, 1096, 515, 116, 192, 262, 265, 378, 490, 515, 1116, 1117, 517, 792, 1100, 1196, 1181, 516, 516, 524, 959, 969, 970, 971, 1200, 31, 136, 1028, 1028, 61, 1028, 164, 170, 245, 294, 1036, 1038, 1039, 1054, 1056, 1057, 1058, 1032, 1033, 176, 221, 221, 1072, 1075, 515, 70, 278, 313, 352, 387, 515, 853, 313, 348, 352, 387, 792, 313, 352, 387, 3, 92, 145, 251, 313, 348, 352, 387, 420, 422, 472, 560, 563, 936, 937, 938, 939, 823, 27, 141, 313, 352, 387, 456, 576, 1202, 27, 141, 387, 451, 544, 476, 194, 1072, 64, 99, 160, 197, 240, 278, 282, 313, 314, 352, 361, 370, 379, 387, 399, 408, 412, 467, 560, 564, 859, 871, 899, 515, 840, 1180, 352, 544, 200, 156, 27, 33, 48, 78, 134, 141, 144, 171, 207, 278, 282, 292, 301, 313, 352, 355, 356, 387, 456, 572, 574, 575, 701, 899, 5, 506, 507, 675, 1209, 31, 194, 1200, 791, 791, 515, 876, 313, 387, 517, 156, 297, 313, 352, 387, 871, 899, 27, 141, 313, 352, 387, 200, 539, 352, 472, 496, 532, 539, 313, 352, 387, 871, 899, 297, 313, 352, 156, 40, 62, 113, 203, 259, 263, 278, 312, 352, 357, 381, 387, 401, 572, 672, 673, 313, 352, 464, 701, 709, 156, 313, 352, 387, 27, 92, 134, 141, 144, 313, 348, 352, 387, 394, 562, 550, 552, 200, 156, 48, 132, 278, 352, 387, 572, 573, 313, 352, 356, 387, 90, 133, 316, 422, 297, 27, 33, 141, 313, 352, 387, 590, 591, 539, 170, 352, 532, 539, 156, 352, 387, 572, 1202, 243, 123, 298, 477, 519, 928, 31, 136, 461, 508, 516, 848, 1118, 1158, 1159, 1218, 1118, 1179, 3, 31, 35, 36, 37, 38, 39, 40, 41, 45, 59, 67, 68, 74, 80, 82, 93, 100, 105, 106, 107, 109, 110, 111, 121, 123, 131, 136, 137, 143, 147, 151, 162, 164, 170, 172, 176, 182, 185, 189, 200, 209, 219, 221, 238, 239, 245, 249, 250, 282, 287, 294, 297, 298, 302, 303, 321, 330, 346, 360, 380, 386, 397, 413, 416, 417, 425, 429, 430, 436, 445, 446, 452, 453, 461, 468, 469, 471, 472, 508, 1203, 1220, 1222, 1223, 1224, 1225, 1178, 516, 519, 162, 297, 436, 556, 559, 675, 963, 453, 956, 297, 855, 515, 791, 1202, 1095, 843, 291, 76, 163, 879, 843, 843, 170, 1095, 791, 1202, 1202, 516, 634, 1202, 74, 1095, 282, 176, 515, 759, 532, 40, 950, 1202, 282, 532, 476, 194, 1200, 532, 791, 791, 759, 449, 609, 297, 170, 472, 867, 532, 282, 50, 546, 282, 439, 708, 282, 968, 92, 313, 685, 90, 133, 316, 422, 40, 759, 170, 194, 532, 465, 194, 1200, 194, 662, 1200, 1200, 465, 791, 89, 528, 1205, 434, 1205, 1205, 1202, 170, 1202, 683, 42, 56, 112, 214, 278, 376, 156, 65, 358, 519, 529, 156, 515, 156, 532, 156, 519, 529, 476, 156, 519, 529, 156, 519, 194, 790, 194, 791, 194, 791, 156, 519, 529, 1212, 156, 529, 156, 156, 529, 156, 529, 156, 90, 133, 316, 422, 170, 156, 529, 156, 170, 194, 156, 519, 529, 156, 519, 529, 156, 297, 1157, 417, 516, 973, 804, 1010, 804, 1010, 804, 1010, 804, 1010, 804, 1010, 1010, 1010, 804, 1010, 515, 635, 636, 1217, 635, 31, 115, 139, 172, 178, 235, 236, 315, 334, 367, 374, 381, 417, 420, 439, 812, 1199, 1212, 809, 1202, 200, 519, 992, 1208, 1095, 1161, 40, 1212, 528, 516, 528, 528, 528, 243, 1217, 170, 812, 1212, 170, 372, 1217, 559, 297, 515, 1181, 513, 1014, 1162, 1118, 1176, 515, 515, 170, 515, 515, 1014, 515, 515, 515, 515, 515, 515, 515, 515, 515, 515, 515, 1118, 515, 515, 515, 515, 515, 515, 515, 515, 289, 625, 515, 515, 515, 515, 515, 515, 515, 515, 1118, 1118, 1118, 1014, 1118, 1157, 1180, 12, 1208, 12, 515, 1208, 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, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 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, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 166, 167, 168, 169, 171, 172, 173, 174, 175, 177, 178, 179, 180, 181, 183, 184, 186, 187, 188, 190, 191, 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, 220, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 263, 264, 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, 298, 299, 300, 301, 302, 304, 305, 306, 307, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 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, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 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, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 463, 464, 465, 466, 467, 468, 470, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 492, 494, 503, 504, 505, 506, 507, 508, 509, 510, 511, 1152, 1154, 1156, 1221, 1226, 473, 1135, 309, 1118, 165, 1136, 221, 519, 1025, 12, 515, 1208, 1180, 1025, 124, 196, 568, 519, 73, 12, 121, 559, 40, 3, 12, 121, 248, 557, 675, 1114, 1208, 1208, 95, 138, 1130, 104, 12, 121, 553, 554, 556, 675, 121, 553, 243, 1200, 96, 357, 795, 516, 965, 37, 47, 54, 80, 195, 200, 223, 244, 299, 302, 392, 516, 519, 1020, 1201, 40, 515, 1157, 1207, 1112, 1112, 39, 1096, 427, 427, 1207, 1207, 513, 513, 1207, 429, 429, 429, 515, 429, 1207, 1203, 517, 1100, 176, 1061, 15, 505, 1178, 1216, 516, 519, 968, 1016, 1016, 1034, 1035, 1118, 1016, 167, 273, 1045, 232, 278, 340, 390, 451, 31, 1040, 1118, 506, 507, 1041, 1042, 1118, 1120, 1054, 1055, 1039, 1038, 1036, 1037, 170, 1057, 292, 1059, 1036, 1054, 1075, 981, 1200, 1075, 40, 1217, 387, 1157, 70, 429, 429, 374, 200, 212, 303, 306, 389, 461, 508, 846, 847, 848, 850, 852, 854, 1095, 1218, 429, 464, 429, 374, 429, 429, 374, 245, 429, 81, 429, 420, 549, 313, 936, 938, 505, 940, 170, 182, 200, 362, 824, 825, 74, 93, 152, 172, 330, 446, 631, 632, 93, 121, 282, 429, 93, 429, 121, 282, 374, 93, 134, 144, 313, 352, 756, 374, 691, 30, 68, 139, 178, 299, 334, 367, 432, 439, 786, 787, 1202, 156, 352, 387, 572, 297, 675, 379, 240, 429, 1217, 429, 287, 675, 125, 222, 374, 385, 431, 551, 791, 358, 387, 859, 872, 129, 516, 841, 846, 429, 452, 420, 1200, 82, 152, 194, 616, 631, 1217, 82, 93, 896, 318, 297, 369, 371, 434, 93, 896, 34, 355, 369, 371, 434, 369, 1200, 171, 207, 292, 791, 515, 429, 429, 193, 515, 580, 25, 254, 420, 449, 474, 580, 93, 519, 129, 5, 5, 313, 200, 156, 352, 387, 572, 899, 453, 453, 279, 1095, 429, 374, 515, 877, 1202, 1200, 429, 429, 374, 872, 129, 108, 417, 418, 908, 909, 1073, 1200, 1217, 909, 429, 429, 759, 909, 115, 387, 563, 429, 534, 563, 429, 429, 374, 872, 129, 1200, 429, 429, 1200, 1097, 675, 61, 674, 675, 675, 113, 259, 263, 61, 429, 532, 267, 374, 532, 278, 673, 429, 429, 287, 1208, 701, 791, 429, 429, 374, 403, 337, 1208, 337, 429, 337, 429, 337, 759, 759, 420, 1072, 318, 318, 93, 429, 896, 374, 429, 429, 580, 580, 791, 791, 791, 791, 1200, 49, 458, 49, 49, 429, 49, 429, 458, 374, 515, 519, 563, 452, 717, 1211, 429, 534, 563, 1200, 429, 896, 374, 313, 352, 340, 353, 383, 555, 928, 1158, 1158, 1159, 516, 15, 16, 519, 1032, 1033, 514, 520, 1200, 961, 1202, 1200, 223, 1095, 223, 297, 223, 223, 675, 791, 791, 223, 223, 223, 1095, 223, 223, 223, 297, 429, 176, 429, 594, 439, 515, 40, 156, 791, 760, 761, 1220, 936, 1095, 297, 156, 688, 1202, 282, 318, 515, 533, 773, 453, 344, 465, 1200, 31, 909, 759, 533, 156, 1211, 100, 182, 547, 608, 668, 731, 805, 827, 932, 156, 1208, 709, 710, 156, 297, 1208, 1211, 251, 791, 791, 791, 791, 148, 339, 515, 717, 282, 533, 1200, 282, 670, 672, 282, 40, 292, 318, 515, 634, 634, 194, 665, 1200, 170, 194, 526, 1217, 515, 763, 853, 1202, 515, 844, 844, 40, 1095, 29, 52, 216, 732, 235, 472, 474, 1012, 376, 856, 855, 1095, 1202, 515, 793, 1095, 842, 843, 1212, 1211, 156, 529, 156, 453, 156, 453, 878, 879, 529, 842, 1212, 842, 1202, 1202, 1095, 793, 1212, 717, 156, 790, 791, 1201, 1202, 1202, 791, 516, 194, 1200, 973, 1010, 1010, 1010, 1010, 1010, 1010, 635, 516, 519, 516, 179, 335, 368, 382, 418, 1201, 790, 114, 384, 842, 1201, 291, 810, 811, 1217, 842, 842, 1201, 1199, 1199, 1201, 790, 429, 183, 472, 821, 151, 245, 714, 715, 25, 154, 369, 390, 993, 1072, 286, 994, 516, 519, 976, 429, 1200, 1202, 1200, 526, 807, 808, 176, 821, 808, 1217, 30, 82, 139, 178, 236, 334, 367, 439, 786, 787, 1157, 514, 1157, 1162, 1163, 468, 1173, 1174, 1118, 1157, 515, 1207, 1207, 3, 12, 116, 192, 262, 265, 378, 490, 1164, 1165, 1208, 1157, 1157, 360, 1014, 1015, 1118, 1183, 1186, 1193, 1183, 1118, 1120, 1158, 1186, 1189, 1190, 1118, 1190, 1157, 1207, 1207, 1118, 1118, 877, 1118, 1158, 1160, 1167, 369, 506, 507, 515, 1119, 1120, 1154, 1168, 516, 1157, 1118, 1160, 1169, 1118, 59, 176, 239, 430, 1118, 1157, 1170, 136, 282, 1014, 1157, 267, 1120, 1118, 1128, 1129, 1130, 267, 1118, 1130, 516, 519, 1116, 1207, 1116, 1095, 1118, 1118, 1118, 1118, 1220, 427, 45, 413, 1182, 791, 1118, 515, 1014, 1171, 136, 138, 162, 227, 274, 275, 276, 277, 281, 282, 287, 436, 447, 1166, 1187, 1118, 515, 1118, 429, 54, 195, 200, 244, 392, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 31, 38, 397, 1151, 185, 1136, 369, 515, 1148, 515, 308, 1140, 181, 248, 417, 421, 423, 449, 1026, 1200, 1198, 1061, 1158, 1061, 1200, 431, 515, 1208, 519, 516, 193, 193, 529, 971, 960, 964, 1118, 516, 258, 282, 1021, 1157, 516, 516, 513, 492, 492, 516, 516, 1207, 514, 1207, 516, 192, 262, 1117, 262, 1117, 1117, 1207, 265, 516, 1203, 238, 370, 489, 515, 1014, 1062, 1063, 1064, 1072, 1078, 1088, 1121, 1123, 1124, 1194, 1217, 469, 1083, 1213, 971, 969, 519, 41, 131, 453, 836, 369, 370, 506, 507, 1042, 1044, 1120, 390, 232, 298, 519, 5, 1043, 1207, 1043, 369, 370, 1044, 1199, 286, 394, 995, 1055, 1037, 453, 990, 121, 311, 515, 982, 1013, 40, 453, 1217, 515, 997, 998, 999, 1217, 516, 1211, 1202, 1202, 306, 61, 1218, 516, 848, 850, 847, 850, 1218, 303, 516, 519, 792, 1211, 1202, 1202, 1211, 1202, 1202, 1211, 464, 1202, 1202, 121, 556, 675, 364, 452, 807, 374, 182, 807, 515, 1202, 453, 829, 232, 232, 453, 625, 656, 194, 1202, 287, 1211, 1202, 1202, 1118, 287, 1202, 1202, 34, 355, 429, 429, 1202, 429, 692, 855, 515, 1095, 843, 76, 163, 879, 843, 843, 170, 1095, 791, 1202, 188, 278, 313, 352, 457, 695, 696, 697, 1072, 429, 896, 374, 287, 125, 222, 1211, 1202, 297, 1202, 297, 516, 519, 1210, 1212, 1202, 352, 572, 194, 616, 282, 1095, 1202, 1207, 1217, 1200, 1202, 243, 1202, 31, 452, 1202, 194, 1202, 194, 1217, 371, 434, 371, 434, 243, 1202, 31, 452, 1202, 243, 369, 1200, 27, 141, 387, 702, 703, 704, 705, 1220, 1211, 1202, 121, 177, 283, 453, 579, 582, 583, 1220, 261, 1202, 78, 295, 1202, 575, 297, 429, 420, 1200, 429, 896, 374, 129, 1202, 1202, 519, 516, 519, 1211, 1202, 902, 903, 1220, 297, 352, 429, 725, 1211, 1202, 1202, 297, 1072, 200, 519, 634, 634, 1180, 1211, 1202, 1202, 1210, 3, 92, 146, 207, 320, 444, 452, 455, 535, 1211, 1202, 1202, 297, 352, 1211, 1202, 352, 387, 572, 672, 675, 791, 1202, 675, 791, 1202, 675, 1211, 1202, 387, 1211, 1202, 1202, 1209, 1201, 1201, 1211, 867, 1202, 1201, 1202, 352, 387, 572, 573, 1200, 1200, 1202, 1202, 1202, 1202, 1211, 1202, 27, 33, 141, 313, 352, 387, 313, 352, 387, 759, 352, 387, 352, 387, 352, 899, 1087, 1217, 194, 769, 1217, 194, 1217, 1211, 1202, 1202, 1208, 1202, 902, 27, 591, 384, 1210, 352, 387, 572, 1202, 1202, 1202, 429, 429, 87, 443, 340, 519, 1032, 1032, 1032, 1118, 1118, 461, 1159, 516, 1118, 1179, 956, 287, 797, 1208, 40, 797, 139, 791, 797, 797, 223, 453, 453, 797, 797, 797, 235, 797, 797, 797, 791, 336, 595, 595, 205, 417, 730, 1118, 1095, 791, 516, 519, 505, 622, 1220, 1202, 65, 176, 374, 464, 689, 696, 697, 156, 292, 244, 610, 612, 614, 616, 628, 631, 28, 200, 364, 414, 535, 536, 170, 1202, 465, 1200, 40, 726, 418, 867, 526, 1217, 546, 609, 839, 1202, 172, 791, 515, 658, 659, 1123, 1217, 337, 1208, 759, 759, 759, 759, 515, 759, 1085, 1086, 1087, 384, 156, 515, 156, 156, 155, 1013, 791, 292, 610, 1217, 453, 651, 472, 581, 282, 40, 634, 1208, 282, 297, 3, 764, 765, 759, 29, 516, 845, 846, 851, 40, 235, 361, 432, 471, 857, 858, 859, 860, 857, 297, 235, 292, 126, 215, 437, 451, 733, 734, 1202, 191, 191, 170, 529, 40, 532, 171, 944, 945, 529, 529, 790, 791, 1202, 791, 1202, 529, 529, 529, 529, 235, 529, 384, 170, 529, 529, 297, 529, 282, 516, 636, 200, 200, 200, 200, 200, 476, 1201, 675, 676, 519, 517, 185, 813, 814, 1211, 61, 818, 819, 1220, 429, 515, 176, 154, 390, 154, 390, 369, 451, 264, 1095, 1211, 472, 663, 297, 813, 529, 176, 855, 791, 1095, 843, 291, 843, 843, 1095, 791, 1202, 516, 514, 514, 519, 1118, 143, 1174, 1175, 40, 516, 1118, 516, 516, 176, 516, 176, 516, 516, 1095, 493, 1184, 1184, 516, 23, 287, 519, 1192, 303, 1195, 520, 458, 516, 516, 23, 287, 519, 1191, 1191, 516, 516, 516, 516, 519, 519, 516, 321, 516, 516, 515, 1119, 1119, 1157, 13, 17, 18, 19, 200, 223, 299, 503, 504, 505, 506, 507, 508, 509, 510, 511, 1154, 1119, 516, 516, 170, 176, 392, 516, 516, 40, 1170, 1157, 1170, 1170, 176, 516, 136, 516, 1220, 319, 1133, 40, 516, 519, 1118, 1220, 519, 1118, 1181, 1118, 516, 492, 1119, 1119, 149, 1157, 176, 39, 291, 373, 458, 136, 138, 162, 281, 287, 436, 447, 1166, 1187, 281, 472, 474, 1188, 149, 877, 1118, 413, 1182, 1118, 1171, 1118, 429, 515, 1014, 515, 1140, 515, 1157, 469, 515, 1141, 1217, 421, 423, 421, 423, 1200, 1027, 1027, 1027, 1083, 1032, 1083, 929, 1207, 1116, 554, 971, 258, 515, 516, 1207, 1115, 1115, 514, 514, 516, 1014, 1078, 1088, 176, 515, 1014, 1063, 1064, 40, 1065, 1066, 1217, 519, 101, 177, 211, 226, 242, 270, 363, 1069, 1066, 40, 1065, 1068, 1217, 1066, 496, 1082, 1180, 1118, 185, 1046, 1035, 299, 1152, 1155, 495, 837, 5, 1207, 1044, 298, 472, 451, 1041, 253, 1062, 469, 1084, 459, 415, 452, 983, 984, 985, 1217, 297, 986, 1217, 1063, 999, 1000, 519, 1061, 505, 1181, 854, 792, 850, 850, 61, 852, 510, 1212, 1212, 297, 1201, 300, 297, 1118, 632, 1202, 515, 515, 515, 656, 205, 515, 749, 156, 529, 429, 1211, 1202, 559, 1095, 791, 791, 1095, 679, 1202, 188, 457, 429, 429, 679, 695, 701, 352, 387, 572, 1202, 1202, 1202, 213, 287, 159, 846, 312, 387, 429, 282, 156, 406, 620, 621, 749, 387, 27, 141, 356, 357, 387, 576, 584, 585, 701, 897, 379, 156, 529, 156, 529, 1202, 1202, 1202, 1202, 379, 379, 243, 704, 705, 704, 516, 519, 706, 1208, 205, 516, 519, 505, 517, 1202, 159, 1211, 1202, 352, 387, 572, 1202, 1202, 1202, 297, 313, 352, 387, 27, 141, 313, 352, 387, 1095, 279, 1095, 516, 519, 505, 1200, 429, 1212, 453, 722, 159, 634, 374, 908, 469, 641, 641, 634, 245, 320, 12, 287, 1208, 320, 1212, 450, 159, 429, 429, 374, 403, 867, 867, 867, 312, 387, 93, 429, 896, 374, 121, 170, 586, 166, 528, 429, 429, 255, 255, 255, 429, 429, 374, 429, 429, 374, 429, 374, 429, 374, 429, 129, 529, 1095, 282, 1208, 387, 897, 156, 529, 429, 429, 516, 1202, 429, 896, 374, 429, 1211, 1202, 516, 516, 516, 1159, 514, 1095, 791, 223, 797, 1202, 1202, 1202, 223, 404, 405, 596, 1208, 596, 188, 516, 516, 176, 759, 761, 279, 299, 506, 507, 675, 762, 850, 1155, 1208, 1225, 74, 80, 93, 121, 123, 180, 209, 282, 287, 330, 346, 446, 623, 624, 627, 155, 468, 532, 559, 1202, 559, 301, 699, 1200, 1200, 1200, 516, 519, 1212, 185, 364, 1212, 1207, 439, 1200, 634, 3, 170, 727, 867, 50, 546, 417, 708, 114, 968, 1118, 176, 519, 1201, 581, 766, 767, 1208, 516, 519, 1202, 170, 635, 1200, 662, 1200, 1202, 663, 515, 611, 1200, 516, 1202, 472, 474, 652, 580, 40, 156, 1013, 651, 429, 156, 1072, 505, 516, 519, 733, 516, 519, 121, 505, 861, 1208, 559, 417, 849, 850, 170, 866, 53, 359, 862, 863, 860, 863, 126, 215, 380, 451, 919, 1202, 292, 297, 302, 188, 1013, 1095, 515, 516, 519, 529, 453, 529, 453, 529, 1202, 1202, 717, 791, 156, 374, 374, 374, 374, 374, 1201, 519, 811, 1217, 1211, 472, 519, 815, 1211, 519, 821, 162, 300, 436, 820, 1074, 384, 154, 154, 114, 278, 812, 821, 1212, 223, 223, 223, 223, 675, 223, 223, 223, 223, 223, 1162, 425, 1118, 147, 1095, 516, 1118, 1118, 1184, 227, 1186, 297, 297, 1183, 1186, 61, 1192, 1183, 1183, 297, 297, 1190, 1188, 1188, 1166, 1118, 1118, 516, 1157, 519, 1095, 1119, 1119, 1119, 1119, 136, 138, 282, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1118, 1118, 1118, 1095, 516, 516, 516, 1157, 516, 519, 61, 1120, 1134, 516, 1220, 1129, 327, 409, 1132, 516, 519, 464, 1125, 40, 516, 12, 1208, 1118, 37, 37, 1118, 516, 1118, 176, 281, 1188, 446, 446, 1118, 516, 149, 1119, 1119, 149, 149, 1118, 1118, 1033, 516, 1157, 519, 1118, 1142, 1217, 1027, 1027, 1027, 1027, 1200, 1200, 1200, 1046, 516, 1046, 516, 976, 514, 1066, 1068, 1066, 515, 484, 1120, 516, 1217, 515, 1063, 226, 307, 1070, 1063, 1070, 226, 1069, 1070, 226, 419, 1076, 515, 1217, 515, 304, 61, 189, 1053, 515, 837, 167, 237, 298, 472, 426, 104, 1118, 360, 988, 458, 516, 519, 1181, 91, 988, 297, 516, 519, 998, 1084, 1118, 516, 510, 854, 439, 179, 368, 375, 382, 418, 440, 826, 170, 826, 516, 515, 639, 640, 832, 1123, 1217, 635, 635, 749, 1202, 635, 123, 209, 278, 282, 750, 1202, 1202, 40, 453, 453, 235, 792, 1211, 1202, 429, 896, 374, 429, 213, 1202, 61, 420, 1202, 156, 616, 121, 1217, 88, 618, 619, 403, 180, 158, 193, 282, 580, 532, 114, 180, 282, 403, 580, 618, 620, 673, 387, 585, 439, 1202, 1217, 379, 703, 1202, 583, 762, 1220, 1202, 312, 387, 429, 896, 374, 429, 159, 429, 429, 374, 178, 299, 406, 771, 772, 178, 299, 779, 780, 429, 429, 374, 516, 516, 516, 903, 279, 675, 850, 904, 1155, 1208, 1225, 352, 1202, 515, 472, 723, 1202, 641, 108, 1217, 515, 641, 1209, 12, 1208, 1208, 1208, 1202, 1202, 1202, 1202, 1209, 61, 420, 1202, 1202, 1202, 1202, 459, 1202, 1202, 170, 170, 354, 170, 194, 1211, 1202, 1202, 1211, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 297, 80, 577, 156, 29, 52, 439, 1217, 1202, 1208, 701, 1202, 1202, 1202, 1202, 1032, 516, 223, 797, 223, 223, 223, 797, 532, 453, 601, 602, 679, 749, 472, 474, 791, 515, 791, 1202, 1119, 34, 61, 626, 124, 196, 123, 287, 232, 1200, 625, 178, 334, 745, 752, 753, 1217, 688, 515, 318, 515, 611, 629, 208, 646, 614, 1212, 1212, 1095, 515, 581, 31, 126, 215, 380, 451, 728, 429, 724, 1211, 194, 1200, 710, 476, 297, 516, 1062, 659, 867, 516, 519, 1087, 699, 717, 516, 670, 40, 292, 318, 515, 978, 613, 615, 617, 631, 1217, 318, 647, 648, 611, 646, 580, 295, 297, 653, 1013, 665, 663, 581, 1208, 1202, 829, 762, 3, 765, 297, 851, 1118, 1118, 519, 515, 857, 439, 519, 46, 1118, 429, 515, 635, 1200, 734, 679, 516, 944, 945, 1202, 1202, 529, 384, 529, 1201, 1201, 1201, 1201, 1201, 675, 182, 814, 821, 819, 516, 1202, 114, 176, 529, 821, 287, 800, 1208, 800, 800, 800, 223, 800, 800, 800, 800, 800, 1118, 516, 145, 1185, 516, 287, 287, 516, 1034, 1186, 287, 287, 1186, 1186, 516, 516, 176, 516, 1118, 176, 136, 138, 176, 170, 149, 516, 479, 1127, 1157, 345, 458, 61, 1134, 1120, 470, 470, 516, 1118, 278, 1118, 519, 1126, 1097, 1118, 1118, 1118, 233, 233, 1118, 37, 37, 1118, 1118, 149, 516, 516, 516, 1118, 516, 318, 1143, 1200, 1200, 1200, 1200, 1053, 12, 1208, 1053, 1208, 516, 1079, 1080, 1123, 515, 1133, 1065, 515, 1201, 1063, 297, 453, 1071, 1063, 226, 1063, 1205, 1086, 515, 1086, 1217, 1028, 1118, 471, 1137, 877, 426, 292, 1197, 1013, 311, 1013, 985, 297, 515, 987, 1118, 505, 999, 988, 439, 516, 429, 807, 176, 749, 1118, 516, 519, 472, 80, 831, 835, 831, 516, 516, 516, 124, 196, 207, 123, 455, 529, 1095, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1212, 1202, 616, 121, 1217, 699, 1209, 626, 194, 194, 287, 675, 626, 287, 1209, 1095, 529, 529, 505, 61, 420, 1202, 1202, 1202, 1202, 1202, 1211, 1202, 1202, 1207, 1207, 1095, 519, 1207, 1207, 519, 1211, 1202, 1202, 429, 1118, 74, 1118, 1212, 1202, 429, 429, 176, 200, 472, 1201, 1201, 791, 1201, 156, 159, 791, 1208, 1208, 1095, 529, 529, 429, 516, 223, 797, 797, 797, 797, 515, 597, 598, 532, 128, 178, 212, 178, 1118, 282, 624, 121, 40, 867, 634, 867, 1205, 37, 155, 200, 700, 704, 292, 610, 586, 153, 202, 515, 384, 453, 635, 40, 1212, 722, 546, 282, 515, 172, 1202, 658, 1208, 384, 581, 155, 1013, 791, 292, 610, 663, 516, 519, 472, 622, 61, 651, 586, 647, 86, 420, 654, 472, 933, 40, 654, 176, 297, 515, 1200, 1208, 848, 868, 869, 1218, 863, 1095, 170, 864, 1200, 176, 429, 888, 347, 735, 210, 680, 529, 516, 529, 529, 1202, 300, 221, 813, 529, 800, 1202, 516, 516, 516, 1118, 516, 1119, 176, 1118, 1118, 1118, 515, 516, 519, 516, 1134, 516, 458, 400, 516, 204, 278, 1131, 1118, 1118, 1118, 516, 61, 1032, 1137, 1137, 377, 1022, 516, 519, 40, 1081, 121, 1093, 1094, 1119, 83, 1201, 516, 1118, 515, 1063, 1071, 515, 516, 1086, 516, 103, 186, 366, 515, 1047, 1048, 1049, 1050, 1051, 1052, 1118, 1138, 1139, 1217, 1032, 516, 1010, 983, 93, 830, 832, 137, 468, 1002, 1003, 1118, 813, 297, 813, 516, 201, 637, 640, 299, 877, 791, 527, 791, 346, 637, 637, 516, 429, 387, 994, 622, 40, 156, 156, 577, 762, 1212, 1202, 429, 515, 843, 877, 879, 772, 515, 515, 780, 1202, 516, 515, 516, 387, 994, 1202, 1202, 515, 515, 515, 472, 496, 953, 354, 953, 953, 170, 1202, 577, 1202, 797, 603, 604, 1220, 56, 102, 127, 145, 149, 171, 175, 190, 287, 338, 599, 597, 1208, 843, 40, 884, 884, 516, 193, 515, 453, 655, 256, 638, 655, 515, 753, 745, 515, 516, 519, 1200, 516, 384, 31, 85, 88, 94, 122, 180, 193, 206, 403, 406, 630, 630, 1199, 1202, 1202, 516, 1013, 723, 156, 114, 699, 176, 1202, 40, 1202, 663, 611, 1200, 516, 615, 301, 1217, 652, 647, 651, 126, 141, 327, 1202, 66, 74, 248, 1013, 791, 1072, 830, 176, 748, 850, 516, 519, 439, 147, 525, 862, 865, 1083, 398, 398, 516, 272, 296, 736, 737, 738, 170, 741, 679, 278, 457, 681, 682, 1202, 821, 170, 1119, 1128, 1157, 278, 491, 204, 516, 1157, 187, 339, 370, 1144, 60, 130, 113, 1023, 1082, 1079, 515, 1119, 516, 519, 40, 1089, 1090, 1217, 516, 1201, 1157, 516, 515, 388, 515, 516, 519, 519, 40, 1037, 458, 1202, 516, 519, 283, 451, 257, 282, 1003, 815, 826, 529, 831, 515, 867, 515, 836, 580, 1200, 867, 867, 1202, 420, 193, 453, 578, 387, 994, 1202, 1161, 170, 775, 775, 1161, 1161, 1118, 420, 1157, 1157, 587, 588, 1219, 790, 791, 790, 791, 1201, 529, 516, 519, 508, 515, 556, 605, 675, 950, 1208, 950, 282, 287, 338, 950, 950, 1083, 884, 44, 198, 278, 633, 515, 671, 1118, 205, 177, 317, 393, 297, 642, 643, 644, 516, 1205, 6, 754, 704, 611, 646, 1202, 516, 699, 163, 774, 581, 933, 1200, 476, 1062, 699, 1013, 978, 647, 611, 646, 622, 515, 653, 651, 652, 370, 370, 74, 300, 74, 663, 829, 516, 1200, 749, 857, 868, 1095, 518, 137, 472, 472, 737, 369, 417, 739, 142, 742, 468, 744, 457, 679, 699, 529, 1118, 516, 516, 458, 54, 104, 442, 1118, 1145, 1146, 1145, 1145, 516, 167, 167, 635, 1086, 519, 1094, 1220, 516, 519, 170, 1095, 516, 516, 1157, 515, 1157, 1048, 1139, 1141, 1055, 1013, 1083, 832, 387, 37, 1004, 257, 176, 635, 655, 877, 837, 836, 634, 655, 655, 1202, 671, 1118, 420, 516, 303, 377, 343, 776, 776, 516, 516, 516, 1202, 516, 516, 516, 519, 1207, 953, 604, 556, 606, 607, 1208, 1208, 287, 635, 508, 635, 1208, 1208, 207, 672, 516, 420, 126, 451, 297, 644, 297, 643, 515, 516, 519, 586, 384, 699, 791, 40, 40, 515, 1202, 933, 663, 651, 586, 647, 515, 649, 650, 1123, 1217, 654, 652, 653, 300, 300, 515, 201, 833, 170, 863, 32, 216, 920, 178, 178, 950, 369, 402, 743, 515, 155, 1146, 369, 169, 325, 169, 325, 152, 1147, 1147, 1147, 61, 61, 387, 516, 1120, 1090, 304, 3, 121, 282, 287, 1091, 1092, 40, 1067, 353, 1077, 516, 1047, 516, 997, 1118, 425, 1004, 813, 516, 641, 516, 837, 638, 749, 749, 994, 1202, 843, 61, 994, 429, 587, 791, 516, 519, 635, 516, 407, 1202, 65, 278, 358, 387, 645, 645, 516, 6, 384, 1202, 771, 1013, 699, 652, 647, 651, 1118, 516, 519, 835, 835, 653, 654, 830, 515, 625, 142, 283, 515, 915, 917, 921, 980, 989, 996, 1013, 1024, 843, 843, 740, 1217, 1118, 745, 37, 104, 185, 278, 426, 635, 635, 1217, 1133, 1119, 1119, 287, 1092, 1217, 515, 516, 1083, 126, 137, 451, 1005, 1006, 425, 529, 749, 642, 994, 791, 515, 607, 26, 121, 287, 1202, 699, 933, 653, 651, 652, 516, 650, 527, 527, 654, 516, 832, 834, 581, 369, 916, 917, 918, 1014, 1015, 519, 519, 516, 1205, 1146, 369, 305, 387, 387, 429, 453, 83, 1118, 283, 387, 137, 215, 1007, 749, 1157, 634, 634, 699, 654, 652, 653, 835, 833, 516, 519, 654, 744, 516, 518, 429, 176, 515, 1217, 1217, 1205, 1206, 1217, 1089, 516, 997, 283, 121, 311, 459, 515, 1008, 516, 653, 654, 527, 625, 832, 1083, 155, 918, 398, 398, 5, 746, 747, 1207, 1208, 1220, 515, 121, 516, 459, 983, 515, 984, 654, 581, 745, 472, 472, 516, 519, 1158, 1206, 458, 1157, 516, 654, 1205, 178, 178, 747, 1032, 453, 1008, 516, 311, 1008, 1083, 515, 843, 843, 516, 1217, 983, 746, 458, 516, 1008 }; #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 890 "gram.y" { pg_yyget_extra(yyscanner)->parsetree = (yyvsp[(1) - (1)].list); (void) yynerrs; /* suppress compiler warning */ ;} break; case 3: #line 895 "gram.y" { pg_yyget_extra(yyscanner)->parsetree = list_make1((yyvsp[(2) - (2)].typnam)); ;} break; case 4: #line 899 "gram.y" { pg_yyget_extra(yyscanner)->parsetree = list_make1(makeRawStmt((yyvsp[(2) - (2)].node), 0)); ;} break; case 5: #line 904 "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 912 "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 920 "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 940 "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 952 "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 1095 "gram.y" { (yyval.node) = NULL; ;} break; case 137: #line 1102 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 138: #line 1103 "gram.y" { (yyval.str) = NULL; ;} break; case 139: #line 1107 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 140: #line 1108 "gram.y" { (yyval.list) = NIL; ;} break; case 141: #line 1112 "gram.y" { (yyval.boolean) = true; ;} break; case 142: #line 1113 "gram.y" { (yyval.boolean) = false; ;} break; case 143: #line 1117 "gram.y" { (yyval.dbehavior) = DROP_CASCADE; ;} break; case 144: #line 1118 "gram.y" { (yyval.dbehavior) = DROP_RESTRICT; ;} break; case 145: #line 1119 "gram.y" { (yyval.dbehavior) = DROP_RESTRICT; /* default */ ;} break; case 146: #line 1129 "gram.y" { CallStmt *n = makeNode(CallStmt); n->funccall = castNode(FuncCall, (yyvsp[(2) - (2)].node)); (yyval.node) = (Node *) n; ;} break; case 147: #line 1145 "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 1167 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 152: #line 1168 "gram.y" { (yyval.list) = NIL; ;} break; case 153: #line 1172 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 154: #line 1173 "gram.y" { (yyval.list) = NIL; ;} break; case 155: #line 1178 "gram.y" { (yyval.defelt) = makeDefElem("password", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); ;} break; case 156: #line 1183 "gram.y" { (yyval.defelt) = makeDefElem("password", (Node *)makeParamRef((yyvsp[(2) - (2)].ival), (yylsp[(2) - (2)])), (yylsp[(1) - (2)])); ;} break; case 157: #line 1188 "gram.y" { (yyval.defelt) = makeDefElem("password", NULL, (yylsp[(1) - (2)])); ;} break; case 158: #line 1192 "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 1202 "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 1212 "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 1220 "gram.y" { (yyval.defelt) = makeDefElem("inherit", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); ;} break; case 162: #line 1224 "gram.y" { (yyval.defelt) = makeDefElem("connectionlimit", (Node *) makeInteger((yyvsp[(3) - (3)].ival)), (yylsp[(1) - (3)])); ;} break; case 163: #line 1228 "gram.y" { (yyval.defelt) = makeDefElem("validUntil", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); ;} break; case 164: #line 1233 "gram.y" { (yyval.defelt) = makeDefElem("rolemembers", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} break; case 165: #line 1237 "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 1284 "gram.y" { (yyval.defelt) = (yyvsp[(1) - (1)].defelt); ;} break; case 167: #line 1287 "gram.y" { (yyval.defelt) = makeDefElem("sysid", (Node *) makeInteger((yyvsp[(2) - (2)].ival)), (yylsp[(1) - (2)])); ;} break; case 168: #line 1291 "gram.y" { (yyval.defelt) = makeDefElem("adminmembers", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} break; case 169: #line 1295 "gram.y" { (yyval.defelt) = makeDefElem("rolemembers", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} break; case 170: #line 1299 "gram.y" { (yyval.defelt) = makeDefElem("addroleto", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 171: #line 1303 "gram.y" { (yyval.defelt) = makeDefElem("addroleto", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 172: #line 1317 "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 1336 "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 1345 "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 1356 "gram.y" { (yyval.str) = NULL; ;} break; case 176: #line 1357 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].str); ;} break; case 177: #line 1362 "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 1371 "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 1380 "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 1389 "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 1411 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = false; n->roles = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *) n; ;} break; case 182: #line 1419 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = true; n->roles = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 183: #line 1427 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = false; n->roles = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *) n; ;} break; case 184: #line 1435 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->roles = (yyvsp[(5) - (5)].list); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 185: #line 1443 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = false; n->roles = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *) n; ;} break; case 186: #line 1451 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = true; n->roles = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 187: #line 1469 "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 1488 "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 1499 "gram.y" { (yyval.ival) = +1; ;} break; case 190: #line 1500 "gram.y" { (yyval.ival) = -1; ;} break; case 191: #line 1512 "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 1523 "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 1534 "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 1550 "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 1569 "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 1575 "gram.y" { (yyval.list) = NIL; ;} break; case 203: #line 1603 "gram.y" { VariableSetStmt *n = (yyvsp[(2) - (2)].vsetstmt); n->is_local = false; (yyval.node) = (Node *) n; ;} break; case 204: #line 1610 "gram.y" { VariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); n->is_local = true; (yyval.node) = (Node *) n; ;} break; case 205: #line 1617 "gram.y" { VariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); n->is_local = false; (yyval.node) = (Node *) n; ;} break; case 206: #line 1627 "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 1636 "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 1649 "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 1658 "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 1667 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = (yyvsp[(1) - (3)].str); (yyval.vsetstmt) = n; ;} break; case 212: #line 1675 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = (yyvsp[(1) - (3)].str); (yyval.vsetstmt) = n; ;} break; case 213: #line 1685 "gram.y" {(yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt);;} break; case 214: #line 1687 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_CURRENT; n->name = (yyvsp[(1) - (3)].str); (yyval.vsetstmt) = n; ;} break; case 215: #line 1696 "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 1708 "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 1716 "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 1725 "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 1733 "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 1745 "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 1754 "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 1762 "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 1771 "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 1779 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = "session_authorization"; (yyval.vsetstmt) = n; ;} break; case 225: #line 1787 "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 1797 "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 1807 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 228: #line 1809 "gram.y" { (yyval.str) = psprintf("%s.%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); ;} break; case 229: #line 1812 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 230: #line 1813 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 231: #line 1817 "gram.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 232: #line 1819 "gram.y" { (yyval.node) = makeAConst((yyvsp[(1) - (1)].node), (yylsp[(1) - (1)])); ;} break; case 233: #line 1821 "gram.y" { (yyval.node) = makeParamRef((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); ;} break; case 234: #line 1824 "gram.y" { (yyval.str) = "read uncommitted"; ;} break; case 235: #line 1825 "gram.y" { (yyval.str) = "read committed"; ;} break; case 236: #line 1826 "gram.y" { (yyval.str) = "repeatable read"; ;} break; case 237: #line 1827 "gram.y" { (yyval.str) = "serializable"; ;} break; case 238: #line 1831 "gram.y" { (yyval.str) = "true"; ;} break; case 239: #line 1832 "gram.y" { (yyval.str) = "false"; ;} break; case 240: #line 1833 "gram.y" { (yyval.str) = "on"; ;} break; case 241: #line 1839 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 242: #line 1852 "gram.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 243: #line 1856 "gram.y" { (yyval.node) = makeParamRef((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); ;} break; case 244: #line 1860 "gram.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 245: #line 1864 "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 1881 "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 1888 "gram.y" { (yyval.node) = makeAConst((yyvsp[(1) - (1)].node), (yylsp[(1) - (1)])); ;} break; case 248: #line 1889 "gram.y" { (yyval.node) = NULL; ;} break; case 249: #line 1890 "gram.y" { (yyval.node) = NULL; ;} break; case 250: #line 1894 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 251: #line 1895 "gram.y" { (yyval.str) = NULL; ;} break; case 252: #line 1896 "gram.y" { (yyval.str) = NULL; ;} break; case 253: #line 1900 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 254: #line 1901 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 255: #line 1905 "gram.y" { (yyval.node) = (Node *) (yyvsp[(2) - (2)].vsetstmt); ;} break; case 256: #line 1909 "gram.y" { (yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt); ;} break; case 257: #line 1911 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "timezone"; (yyval.vsetstmt) = n; ;} break; case 258: #line 1919 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "transaction_isolation"; (yyval.vsetstmt) = n; ;} break; case 259: #line 1927 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "session_authorization"; (yyval.vsetstmt) = n; ;} break; case 260: #line 1938 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = (yyvsp[(1) - (1)].str); (yyval.vsetstmt) = n; ;} break; case 261: #line 1946 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET_ALL; (yyval.vsetstmt) = n; ;} break; case 262: #line 1956 "gram.y" { (yyval.vsetstmt) = (yyvsp[(2) - (2)].vsetstmt); ;} break; case 263: #line 1957 "gram.y" { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[(1) - (1)].node); ;} break; case 264: #line 1962 "gram.y" { (yyval.vsetstmt) = (yyvsp[(2) - (2)].vsetstmt); ;} break; case 265: #line 1963 "gram.y" { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[(1) - (1)].node); ;} break; case 266: #line 1969 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; ;} break; case 267: #line 1976 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "timezone"; (yyval.node) = (Node *) n; ;} break; case 268: #line 1983 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "transaction_isolation"; (yyval.node) = (Node *) n; ;} break; case 269: #line 1990 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "session_authorization"; (yyval.node) = (Node *) n; ;} break; case 270: #line 1997 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "all"; (yyval.node) = (Node *) n; ;} break; case 271: #line 2008 "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 2018 "gram.y" { (yyval.list) = NIL; ;} break; case 273: #line 2019 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 274: #line 2023 "gram.y" { (yyval.boolean) = true; ;} break; case 275: #line 2024 "gram.y" { (yyval.boolean) = false; ;} break; case 276: #line 2033 "gram.y" { CheckPointStmt *n = makeNode(CheckPointStmt); (yyval.node) = (Node *) n; ;} break; case 277: #line 2049 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_ALL; (yyval.node) = (Node *) n; ;} break; case 278: #line 2056 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_TEMP; (yyval.node) = (Node *) n; ;} break; case 279: #line 2063 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_TEMP; (yyval.node) = (Node *) n; ;} break; case 280: #line 2070 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_PLANS; (yyval.node) = (Node *) n; ;} break; case 281: #line 2077 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_SEQUENCES; (yyval.node) = (Node *) n; ;} break; case 282: #line 2097 "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 2107 "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 2117 "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 2127 "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 2137 "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 2149 "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 2161 "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 2171 "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 2181 "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 2191 "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 2203 "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 2215 "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 2225 "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 2235 "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 2245 "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 2255 "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 2265 "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 2275 "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 2287 "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 2299 "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 2309 "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 2321 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 304: #line 2322 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 305: #line 2328 "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 2342 "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 2355 "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 2371 "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 2388 "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 2398 "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 2408 "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 2418 "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 2428 "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 2438 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropNotNull; n->name = (yyvsp[(3) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 315: #line 2447 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetNotNull; n->name = (yyvsp[(3) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 316: #line 2456 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropExpression; n->name = (yyvsp[(3) - (5)].str); (yyval.node) = (Node *) n; ;} break; case 317: #line 2465 "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 318: #line 2475 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetStatistics; n->name = (yyvsp[(3) - (6)].str); n->def = (Node *) makeInteger((yyvsp[(6) - (6)].ival)); (yyval.node) = (Node *) n; ;} break; case 319: #line 2485 "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 = (Node *) makeInteger((yyvsp[(6) - (6)].ival)); (yyval.node) = (Node *) n; ;} break; case 320: #line 2501 "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 321: #line 2511 "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 322: #line 2521 "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 323: #line 2531 "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 324: #line 2541 "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 325: #line 2558 "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 326: #line 2568 "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 327: #line 2578 "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 328: #line 2588 "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 329: #line 2599 "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 330: #line 2613 "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 331: #line 2629 "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 332: #line 2639 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddConstraint; n->def = (yyvsp[(2) - (2)].node); (yyval.node) = (Node *) n; ;} break; case 333: #line 2648 "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)]), "ALTER CONSTRAINT statement", &c->deferrable, &c->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *) n; ;} break; case 334: #line 2664 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ValidateConstraint; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 335: #line 2673 "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 336: #line 2684 "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 337: #line 2695 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropOids; (yyval.node) = (Node *) n; ;} break; case 338: #line 2703 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ClusterOn; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 339: #line 2712 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropCluster; n->name = NULL; (yyval.node) = (Node *) n; ;} break; case 340: #line 2721 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetLogged; (yyval.node) = (Node *) n; ;} break; case 341: #line 2729 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetUnLogged; (yyval.node) = (Node *) n; ;} break; case 342: #line 2737 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrig; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 343: #line 2746 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableAlwaysTrig; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *) n; ;} break; case 344: #line 2755 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableReplicaTrig; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *) n; ;} break; case 345: #line 2764 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrigAll; (yyval.node) = (Node *) n; ;} break; case 346: #line 2772 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrigUser; (yyval.node) = (Node *) n; ;} break; case 347: #line 2780 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrig; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 348: #line 2789 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrigAll; (yyval.node) = (Node *) n; ;} break; case 349: #line 2797 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrigUser; (yyval.node) = (Node *) n; ;} break; case 350: #line 2805 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableRule; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 351: #line 2814 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableAlwaysRule; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *) n; ;} break; case 352: #line 2823 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableReplicaRule; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *) n; ;} break; case 353: #line 2832 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableRule; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 354: #line 2841 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddInherit; n->def = (Node *) (yyvsp[(2) - (2)].range); (yyval.node) = (Node *) n; ;} break; case 355: #line 2850 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropInherit; n->def = (Node *) (yyvsp[(3) - (3)].range); (yyval.node) = (Node *) n; ;} break; case 356: #line 2859 "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 357: #line 2870 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropOf; (yyval.node) = (Node *) n; ;} break; case 358: #line 2878 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ChangeOwner; n->newowner = (yyvsp[(3) - (3)].rolespec); (yyval.node) = (Node *) n; ;} break; case 359: #line 2887 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetAccessMethod; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *) n; ;} break; case 360: #line 2896 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetTableSpace; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 361: #line 2905 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetRelOptions; n->def = (Node *) (yyvsp[(2) - (2)].list); (yyval.node) = (Node *) n; ;} break; case 362: #line 2914 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ResetRelOptions; n->def = (Node *) (yyvsp[(2) - (2)].list); (yyval.node) = (Node *) n; ;} break; case 363: #line 2923 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ReplicaIdentity; n->def = (yyvsp[(3) - (3)].node); (yyval.node) = (Node *) n; ;} break; case 364: #line 2932 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableRowSecurity; (yyval.node) = (Node *) n; ;} break; case 365: #line 2940 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableRowSecurity; (yyval.node) = (Node *) n; ;} break; case 366: #line 2948 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ForceRowSecurity; (yyval.node) = (Node *) n; ;} break; case 367: #line 2956 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_NoForceRowSecurity; (yyval.node) = (Node *) n; ;} break; case 368: #line 2963 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_GenericOptions; n->def = (Node *) (yyvsp[(1) - (1)].list); (yyval.node) = (Node *) n; ;} break; case 369: #line 2973 "gram.y" { (yyval.node) = (yyvsp[(3) - (3)].node); ;} break; case 370: #line 2974 "gram.y" { (yyval.node) = NULL; ;} break; case 371: #line 2979 "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 372: #line 2987 "gram.y" { (yyval.node) = NULL; ;} break; case 373: #line 2991 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 374: #line 2992 "gram.y" { (yyval.node) = NULL; ;} break; case 375: #line 2997 "gram.y" { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_NOTHING; n->name = NULL; (yyval.node) = (Node *) n; ;} break; case 376: #line 3005 "gram.y" { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_FULL; n->name = NULL; (yyval.node) = (Node *) n; ;} break; case 377: #line 3013 "gram.y" { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_DEFAULT; n->name = NULL; (yyval.node) = (Node *) n; ;} break; case 378: #line 3021 "gram.y" { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_INDEX; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 379: #line 3031 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 380: #line 3034 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 381: #line 3035 "gram.y" { (yyval.list) = NIL; ;} break; case 382: #line 3039 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 383: #line 3040 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 384: #line 3046 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 385: #line 3050 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)])); ;} break; case 386: #line 3054 "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 387: #line 3059 "gram.y" { (yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str), NULL, DEFELEM_UNSPEC, (yylsp[(1) - (3)])); ;} break; case 388: #line 3066 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 389: #line 3068 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 390: #line 3073 "gram.y" { (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)])); ;} break; case 391: #line 3077 "gram.y" { (yyval.defelt) = makeDefElem("restart", (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 392: #line 3081 "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 393: #line 3092 "gram.y" { (yyval.defelt) = makeDefElem("generated", (Node *) makeInteger((yyvsp[(3) - (3)].ival)), (yylsp[(1) - (3)])); ;} break; case 394: #line 3100 "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 395: #line 3153 "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 396: #line 3166 "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 397: #line 3180 "gram.y" { PartitionBoundSpec *n = makeNode(PartitionBoundSpec); n->is_default = true; n->location = (yylsp[(1) - (1)]); (yyval.partboundspec) = n; ;} break; case 398: #line 3192 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (Node *) makeInteger((yyvsp[(2) - (2)].ival)), (yylsp[(1) - (2)])); ;} break; case 399: #line 3199 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 400: #line 3203 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 401: #line 3217 "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 402: #line 3229 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 403: #line 3230 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 404: #line 3236 "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 405: #line 3246 "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 406: #line 3257 "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 407: #line 3268 "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 408: #line 3295 "gram.y" { ClosePortalStmt *n = makeNode(ClosePortalStmt); n->portalname = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; ;} break; case 409: #line 3302 "gram.y" { ClosePortalStmt *n = makeNode(ClosePortalStmt); n->portalname = NULL; (yyval.node) = (Node *) n; ;} break; case 410: #line 3338 "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 411: #line 3372 "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 412: #line 3394 "gram.y" { (yyval.boolean) = true; ;} break; case 413: #line 3395 "gram.y" { (yyval.boolean) = false; ;} break; case 414: #line 3399 "gram.y" { (yyval.boolean) = true; ;} break; case 415: #line 3400 "gram.y" { (yyval.boolean) = false; ;} break; case 416: #line 3409 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 417: #line 3410 "gram.y" { (yyval.str) = NULL; ;} break; case 418: #line 3411 "gram.y" { (yyval.str) = NULL; ;} break; case 419: #line 3414 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 420: #line 3415 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 421: #line 3420 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 422: #line 3421 "gram.y" { (yyval.list) = NIL; ;} break; case 423: #line 3426 "gram.y" { (yyval.defelt) = makeDefElem("format", (Node *) makeString("binary"), (yylsp[(1) - (1)])); ;} break; case 424: #line 3430 "gram.y" { (yyval.defelt) = makeDefElem("freeze", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); ;} break; case 425: #line 3434 "gram.y" { (yyval.defelt) = makeDefElem("delimiter", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); ;} break; case 426: #line 3438 "gram.y" { (yyval.defelt) = makeDefElem("null", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); ;} break; case 427: #line 3442 "gram.y" { (yyval.defelt) = makeDefElem("format", (Node *) makeString("csv"), (yylsp[(1) - (1)])); ;} break; case 428: #line 3446 "gram.y" { (yyval.defelt) = makeDefElem("header", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); ;} break; case 429: #line 3450 "gram.y" { (yyval.defelt) = makeDefElem("quote", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); ;} break; case 430: #line 3454 "gram.y" { (yyval.defelt) = makeDefElem("escape", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); ;} break; case 431: #line 3458 "gram.y" { (yyval.defelt) = makeDefElem("force_quote", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 432: #line 3462 "gram.y" { (yyval.defelt) = makeDefElem("force_quote", (Node *) makeNode(A_Star), (yylsp[(1) - (3)])); ;} break; case 433: #line 3466 "gram.y" { (yyval.defelt) = makeDefElem("force_not_null", (Node *) (yyvsp[(4) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 434: #line 3470 "gram.y" { (yyval.defelt) = makeDefElem("force_null", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 435: #line 3474 "gram.y" { (yyval.defelt) = makeDefElem("encoding", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); ;} break; case 436: #line 3483 "gram.y" { (yyval.defelt) = makeDefElem("format", (Node *) makeString("binary"), (yylsp[(1) - (1)])); ;} break; case 437: #line 3486 "gram.y" { (yyval.defelt) = NULL; ;} break; case 438: #line 3491 "gram.y" { (yyval.defelt) = makeDefElem("delimiter", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(2) - (3)])); ;} break; case 439: #line 3494 "gram.y" { (yyval.defelt) = NULL; ;} break; case 442: #line 3505 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 443: #line 3509 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 444: #line 3516 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 445: #line 3522 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 446: #line 3523 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].node); ;} break; case 447: #line 3524 "gram.y" { (yyval.node) = (Node *) makeNode(A_Star); ;} break; case 448: #line 3525 "gram.y" { (yyval.node) = (Node *) (yyvsp[(2) - (3)].list); ;} break; case 449: #line 3526 "gram.y" { (yyval.node) = NULL; ;} break; case 450: #line 3531 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 451: #line 3535 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 452: #line 3542 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 453: #line 3556 "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 454: #line 3576 "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 455: #line 3596 "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 456: #line 3617 "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 457: #line 3638 "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 458: #line 3659 "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 459: #line 3690 "gram.y" { (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 460: #line 3691 "gram.y" { (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 461: #line 3692 "gram.y" { (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 462: #line 3693 "gram.y" { (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 463: #line 3695 "gram.y" { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[(1) - (2)])))); (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 464: #line 3702 "gram.y" { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[(1) - (2)])))); (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 465: #line 3708 "gram.y" { (yyval.ival) = RELPERSISTENCE_UNLOGGED; ;} break; case 466: #line 3709 "gram.y" { (yyval.ival) = RELPERSISTENCE_PERMANENT; ;} break; case 467: #line 3713 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 468: #line 3714 "gram.y" { (yyval.list) = NIL; ;} break; case 469: #line 3718 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 470: #line 3719 "gram.y" { (yyval.list) = NIL; ;} break; case 471: #line 3724 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 472: #line 3728 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 473: #line 3735 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 474: #line 3739 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 475: #line 3745 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 476: #line 3746 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 477: #line 3747 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 478: #line 3751 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 479: #line 3752 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 480: #line 3756 "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 481: #line 3780 "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 482: #line 3799 "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 483: #line 3820 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 484: #line 3821 "gram.y" { (yyval.str) = pstrdup("default"); ;} break; case 485: #line 3825 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 486: #line 3826 "gram.y" { (yyval.str) = NULL; ;} break; case 487: #line 3830 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 488: #line 3831 "gram.y" { (yyval.str) = pstrdup("default"); ;} break; case 489: #line 3835 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 490: #line 3836 "gram.y" { (yyval.str) = NULL; ;} break; case 491: #line 3840 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 492: #line 3841 "gram.y" { (yyval.list) = NIL; ;} break; case 493: #line 3846 "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 494: #line 3853 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 495: #line 3854 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 496: #line 3856 "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 497: #line 3888 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_NOTNULL; n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *) n; ;} break; case 498: #line 3896 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_NULL; n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *) n; ;} break; case 499: #line 3904 "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 500: #line 3917 "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 501: #line 3929 "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 502: #line 3942 "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 503: #line 3952 "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 504: #line 3962 "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 505: #line 3986 "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 506: #line 4005 "gram.y" { (yyval.boolean) = true; ;} break; case 507: #line 4006 "gram.y" { (yyval.boolean) = false; ;} break; case 508: #line 4007 "gram.y" { (yyval.boolean) = true; ;} break; case 509: #line 4011 "gram.y" { (yyval.ival) = ATTRIBUTE_IDENTITY_ALWAYS; ;} break; case 510: #line 4012 "gram.y" { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; ;} break; case 511: #line 4032 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_DEFERRABLE; n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *) n; ;} break; case 512: #line 4040 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_NOT_DEFERRABLE; n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *) n; ;} break; case 513: #line 4048 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_DEFERRED; n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *) n; ;} break; case 514: #line 4056 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_IMMEDIATE; n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *) n; ;} break; case 515: #line 4068 "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 516: #line 4079 "gram.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;} break; case 517: #line 4080 "gram.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) & ~(yyvsp[(3) - (3)].ival); ;} break; case 518: #line 4081 "gram.y" { (yyval.ival) = 0; ;} break; case 519: #line 4085 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_COMMENTS; ;} break; case 520: #line 4086 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_COMPRESSION; ;} break; case 521: #line 4087 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_CONSTRAINTS; ;} break; case 522: #line 4088 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_DEFAULTS; ;} break; case 523: #line 4089 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_IDENTITY; ;} break; case 524: #line 4090 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_GENERATED; ;} break; case 525: #line 4091 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_INDEXES; ;} break; case 526: #line 4092 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_STATISTICS; ;} break; case 527: #line 4093 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_STORAGE; ;} break; case 528: #line 4094 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_ALL; ;} break; case 529: #line 4104 "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 530: #line 4111 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 531: #line 4116 "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 532: #line 4131 "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 533: #line 4148 "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 534: #line 4165 "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 535: #line 4181 "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 536: #line 4199 "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 537: #line 4218 "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 538: #line 4239 "gram.y" { (yyval.boolean) = true; ;} break; case 539: #line 4240 "gram.y" { (yyval.boolean) = false; ;} break; case 540: #line 4244 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 541: #line 4245 "gram.y" { (yyval.list) = NIL; ;} break; case 542: #line 4249 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 543: #line 4250 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 544: #line 4254 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 545: #line 4259 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 546: #line 4260 "gram.y" { (yyval.list) = NIL; ;} break; case 547: #line 4264 "gram.y" { (yyval.ival) = FKCONSTR_MATCH_FULL; ;} break; case 548: #line 4268 "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 549: #line 4276 "gram.y" { (yyval.ival) = FKCONSTR_MATCH_SIMPLE; ;} break; case 550: #line 4280 "gram.y" { (yyval.ival) = FKCONSTR_MATCH_SIMPLE; ;} break; case 551: #line 4286 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} break; case 552: #line 4288 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} break; case 553: #line 4292 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (3)].ielem), (yyvsp[(3) - (3)].list)); ;} break; case 554: #line 4297 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (6)].ielem), (yyvsp[(5) - (6)].list)); ;} break; case 555: #line 4303 "gram.y" { (yyval.node) = (yyvsp[(3) - (4)].node); ;} break; case 556: #line 4304 "gram.y" { (yyval.node) = NULL; ;} break; case 557: #line 4309 "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 558: #line 4319 "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 559: #line 4329 "gram.y" { KeyActions *n = palloc(sizeof(KeyActions)); n->updateAction = (yyvsp[(1) - (2)].keyaction); n->deleteAction = (yyvsp[(2) - (2)].keyaction); (yyval.keyactions) = n; ;} break; case 560: #line 4337 "gram.y" { KeyActions *n = palloc(sizeof(KeyActions)); n->updateAction = (yyvsp[(2) - (2)].keyaction); n->deleteAction = (yyvsp[(1) - (2)].keyaction); (yyval.keyactions) = n; ;} break; case 561: #line 4345 "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 562: #line 4359 "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 563: #line 4371 "gram.y" { (yyval.keyaction) = (yyvsp[(3) - (3)].keyaction); ;} break; case 564: #line 4378 "gram.y" { KeyAction *n = palloc(sizeof(KeyAction)); n->action = FKCONSTR_ACTION_NOACTION; n->cols = NIL; (yyval.keyaction) = n; ;} break; case 565: #line 4386 "gram.y" { KeyAction *n = palloc(sizeof(KeyAction)); n->action = FKCONSTR_ACTION_RESTRICT; n->cols = NIL; (yyval.keyaction) = n; ;} break; case 566: #line 4394 "gram.y" { KeyAction *n = palloc(sizeof(KeyAction)); n->action = FKCONSTR_ACTION_CASCADE; n->cols = NIL; (yyval.keyaction) = n; ;} break; case 567: #line 4402 "gram.y" { KeyAction *n = palloc(sizeof(KeyAction)); n->action = FKCONSTR_ACTION_SETNULL; n->cols = (yyvsp[(3) - (3)].list); (yyval.keyaction) = n; ;} break; case 568: #line 4410 "gram.y" { KeyAction *n = palloc(sizeof(KeyAction)); n->action = FKCONSTR_ACTION_SETDEFAULT; n->cols = (yyvsp[(3) - (3)].list); (yyval.keyaction) = n; ;} break; case 569: #line 4419 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 570: #line 4420 "gram.y" { (yyval.list) = NIL; ;} break; case 571: #line 4424 "gram.y" { (yyval.partspec) = (yyvsp[(1) - (1)].partspec); ;} break; case 572: #line 4425 "gram.y" { (yyval.partspec) = NULL; ;} break; case 573: #line 4429 "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 574: #line 4440 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].partelem)); ;} break; case 575: #line 4441 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].partelem)); ;} break; case 576: #line 4445 "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 577: #line 4456 "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 578: #line 4467 "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 579: #line 4480 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 580: #line 4481 "gram.y" { (yyval.str) = NULL; ;} break; case 581: #line 4486 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 582: #line 4487 "gram.y" { (yyval.list) = NIL; ;} break; case 583: #line 4488 "gram.y" { (yyval.list) = NIL; ;} break; case 584: #line 4491 "gram.y" { (yyval.oncommit) = ONCOMMIT_DROP; ;} break; case 585: #line 4492 "gram.y" { (yyval.oncommit) = ONCOMMIT_DELETE_ROWS; ;} break; case 586: #line 4493 "gram.y" { (yyval.oncommit) = ONCOMMIT_PRESERVE_ROWS; ;} break; case 587: #line 4494 "gram.y" { (yyval.oncommit) = ONCOMMIT_NOOP; ;} break; case 588: #line 4497 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 589: #line 4498 "gram.y" { (yyval.str) = NULL; ;} break; case 590: #line 4501 "gram.y" { (yyval.str) = (yyvsp[(4) - (4)].str); ;} break; case 591: #line 4502 "gram.y" { (yyval.str) = NULL; ;} break; case 592: #line 4505 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].str); ;} break; case 593: #line 4527 "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 594: #line 4540 "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 595: #line 4560 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].selem)); ;} break; case 596: #line 4561 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].selem)); ;} break; case 597: #line 4565 "gram.y" { (yyval.selem) = makeNode(StatsElem); (yyval.selem)->name = (yyvsp[(1) - (1)].str); (yyval.selem)->expr = NULL; ;} break; case 598: #line 4571 "gram.y" { (yyval.selem) = makeNode(StatsElem); (yyval.selem)->name = NULL; (yyval.selem)->expr = (yyvsp[(1) - (1)].node); ;} break; case 599: #line 4577 "gram.y" { (yyval.selem) = makeNode(StatsElem); (yyval.selem)->name = NULL; (yyval.selem)->expr = (yyvsp[(2) - (3)].node); ;} break; case 600: #line 4594 "gram.y" { AlterStatsStmt *n = makeNode(AlterStatsStmt); n->defnames = (yyvsp[(3) - (6)].list); n->missing_ok = false; n->stxstattarget = (yyvsp[(6) - (6)].ival); (yyval.node) = (Node *) n; ;} break; case 601: #line 4603 "gram.y" { AlterStatsStmt *n = makeNode(AlterStatsStmt); n->defnames = (yyvsp[(5) - (8)].list); n->missing_ok = true; n->stxstattarget = (yyvsp[(8) - (8)].ival); (yyval.node) = (Node *) n; ;} break; case 602: #line 4625 "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 603: #line 4639 "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 604: #line 4657 "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 605: #line 4671 "gram.y" { (yyval.boolean) = true; ;} break; case 606: #line 4672 "gram.y" { (yyval.boolean) = false; ;} break; case 607: #line 4673 "gram.y" { (yyval.boolean) = true; ;} break; case 608: #line 4686 "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 609: #line 4700 "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 610: #line 4717 "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 611: #line 4730 "gram.y" { (yyval.ival) = RELPERSISTENCE_UNLOGGED; ;} break; case 612: #line 4731 "gram.y" { (yyval.ival) = RELPERSISTENCE_PERMANENT; ;} break; case 613: #line 4744 "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 614: #line 4765 "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 615: #line 4776 "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 616: #line 4790 "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 617: #line 4799 "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 618: #line 4810 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 619: #line 4811 "gram.y" { (yyval.list) = NIL; ;} break; case 620: #line 4814 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 621: #line 4815 "gram.y" { (yyval.list) = NIL; ;} break; case 622: #line 4818 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 623: #line 4819 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 624: #line 4823 "gram.y" { (yyval.defelt) = makeDefElem("as", (Node *) (yyvsp[(2) - (2)].typnam), (yylsp[(1) - (2)])); ;} break; case 625: #line 4827 "gram.y" { (yyval.defelt) = makeDefElem("cache", (Node *) (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 626: #line 4831 "gram.y" { (yyval.defelt) = makeDefElem("cycle", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); ;} break; case 627: #line 4835 "gram.y" { (yyval.defelt) = makeDefElem("cycle", (Node *) makeBoolean(false), (yylsp[(1) - (2)])); ;} break; case 628: #line 4839 "gram.y" { (yyval.defelt) = makeDefElem("increment", (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 629: #line 4843 "gram.y" { (yyval.defelt) = makeDefElem("maxvalue", (Node *) (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 630: #line 4847 "gram.y" { (yyval.defelt) = makeDefElem("minvalue", (Node *) (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 631: #line 4851 "gram.y" { (yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[(1) - (2)])); ;} break; case 632: #line 4855 "gram.y" { (yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[(1) - (2)])); ;} break; case 633: #line 4859 "gram.y" { (yyval.defelt) = makeDefElem("owned_by", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 634: #line 4863 "gram.y" { /* not documented, only used by pg_dump */ (yyval.defelt) = makeDefElem("sequence_name", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 635: #line 4868 "gram.y" { (yyval.defelt) = makeDefElem("start", (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 636: #line 4872 "gram.y" { (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)])); ;} break; case 637: #line 4876 "gram.y" { (yyval.defelt) = makeDefElem("restart", (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 640: #line 4886 "gram.y" { (yyval.node) = (Node *) makeFloat((yyvsp[(1) - (1)].str)); ;} break; case 641: #line 4887 "gram.y" { (yyval.node) = (Node *) makeFloat((yyvsp[(2) - (2)].str)); ;} break; case 642: #line 4889 "gram.y" { Float *f = makeFloat((yyvsp[(2) - (2)].str)); doNegateFloat(f); (yyval.node) = (Node *) f; ;} break; case 643: #line 4895 "gram.y" { (yyval.node) = (Node *) makeInteger((yyvsp[(1) - (1)].ival)); ;} break; case 644: #line 4898 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 645: #line 4899 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 646: #line 4912 "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 647: #line 4929 "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 648: #line 4943 "gram.y" { (yyval.boolean) = true; ;} break; case 649: #line 4944 "gram.y" { (yyval.boolean) = false; ;} break; case 650: #line 4952 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 651: #line 4953 "gram.y" { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;} break; case 652: #line 4957 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 653: #line 4958 "gram.y" { (yyval.list) = NIL; ;} break; case 654: #line 4962 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 655: #line 4963 "gram.y" { (yyval.list) = NIL; ;} break; case 656: #line 4967 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 657: #line 4968 "gram.y" { (yyval.list) = NIL; ;} break; case 660: #line 4984 "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 661: #line 4995 "gram.y" { (yyval.rolespec) = (yyvsp[(2) - (2)].rolespec); ;} break; case 662: #line 4996 "gram.y" { (yyval.rolespec) = NULL; ;} break; case 663: #line 5010 "gram.y" { DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); n->tablespacename = (yyvsp[(3) - (3)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 664: #line 5018 "gram.y" { DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); n->tablespacename = (yyvsp[(5) - (5)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 665: #line 5036 "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 666: #line 5045 "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 667: #line 5057 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 668: #line 5059 "gram.y" { (yyval.list) = NIL; ;} break; case 669: #line 5064 "gram.y" { (yyval.defelt) = makeDefElem("schema", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); ;} break; case 670: #line 5068 "gram.y" { (yyval.defelt) = makeDefElem("new_version", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); ;} break; case 671: #line 5072 "gram.y" { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE EXTENSION ... FROM is no longer supported"), parser_errposition((yylsp[(1) - (2)])))); ;} break; case 672: #line 5079 "gram.y" { (yyval.defelt) = makeDefElem("cascade", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); ;} break; case 673: #line 5091 "gram.y" { AlterExtensionStmt *n = makeNode(AlterExtensionStmt); n->extname = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 674: #line 5102 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 675: #line 5104 "gram.y" { (yyval.list) = NIL; ;} break; case 676: #line 5109 "gram.y" { (yyval.defelt) = makeDefElem("new_version", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); ;} break; case 677: #line 5122 "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 678: #line 5132 "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 679: #line 5142 "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 680: #line 5152 "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 681: #line 5162 "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 682: #line 5172 "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 683: #line 5182 "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 684: #line 5192 "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 685: #line 5202 "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 686: #line 5212 "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 687: #line 5222 "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 688: #line 5232 "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 689: #line 5242 "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 690: #line 5261 "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 691: #line 5272 "gram.y" { (yyval.defelt) = makeDefElem("handler", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} break; case 692: #line 5273 "gram.y" { (yyval.defelt) = makeDefElem("handler", NULL, (yylsp[(1) - (2)])); ;} break; case 693: #line 5274 "gram.y" { (yyval.defelt) = makeDefElem("validator", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} break; case 694: #line 5275 "gram.y" { (yyval.defelt) = makeDefElem("validator", NULL, (yylsp[(1) - (2)])); ;} break; case 695: #line 5279 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 696: #line 5280 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 697: #line 5284 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 698: #line 5285 "gram.y" { (yyval.list) = NIL; ;} break; case 699: #line 5296 "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 700: #line 5305 "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 701: #line 5317 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 702: #line 5318 "gram.y" { (yyval.list) = NIL; ;} break; case 703: #line 5323 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 704: #line 5327 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 705: #line 5334 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 706: #line 5339 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 707: #line 5343 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 708: #line 5350 "gram.y" { (yyval.defelt) = (yyvsp[(1) - (1)].defelt); ;} break; case 709: #line 5354 "gram.y" { (yyval.defelt) = (yyvsp[(2) - (2)].defelt); (yyval.defelt)->defaction = DEFELEM_SET; ;} break; case 710: #line 5359 "gram.y" { (yyval.defelt) = (yyvsp[(2) - (2)].defelt); (yyval.defelt)->defaction = DEFELEM_ADD; ;} break; case 711: #line 5364 "gram.y" { (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[(2) - (2)].str), NULL, DEFELEM_DROP, (yylsp[(2) - (2)])); ;} break; case 712: #line 5371 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 713: #line 5377 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 714: #line 5382 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 715: #line 5394 "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 716: #line 5407 "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 717: #line 5421 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 718: #line 5422 "gram.y" { (yyval.str) = NULL; ;} break; case 719: #line 5427 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 720: #line 5428 "gram.y" { (yyval.str) = NULL; ;} break; case 721: #line 5432 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 722: #line 5433 "gram.y" { (yyval.str) = NULL; ;} break; case 723: #line 5444 "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 724: #line 5454 "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 725: #line 5463 "gram.y" { AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); n->servername = (yyvsp[(3) - (4)].str); n->options = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *) n; ;} break; case 726: #line 5483 "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 727: #line 5504 "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 728: #line 5525 "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 729: #line 5547 "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 730: #line 5580 "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 731: #line 5594 "gram.y" { (yyval.ival) = FDW_IMPORT_SCHEMA_LIMIT_TO; ;} break; case 732: #line 5595 "gram.y" { (yyval.ival) = FDW_IMPORT_SCHEMA_EXCEPT; ;} break; case 733: #line 5600 "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 734: #line 5608 "gram.y" { ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual)); n->type = FDW_IMPORT_SCHEMA_ALL; n->table_names = NIL; (yyval.importqual) = n; ;} break; case 735: #line 5624 "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 736: #line 5634 "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 737: #line 5646 "gram.y" { (yyval.rolespec) = (yyvsp[(1) - (1)].rolespec); ;} break; case 738: #line 5647 "gram.y" { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[(1) - (1)])); ;} break; case 739: #line 5660 "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 740: #line 5669 "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 741: #line 5687 "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 742: #line 5714 "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 743: #line 5731 "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 744: #line 5744 "gram.y" { (yyval.node) = (yyvsp[(3) - (4)].node); ;} break; case 745: #line 5745 "gram.y" { (yyval.node) = NULL; ;} break; case 746: #line 5749 "gram.y" { (yyval.node) = (yyvsp[(4) - (5)].node); ;} break; case 747: #line 5750 "gram.y" { (yyval.node) = NULL; ;} break; case 748: #line 5754 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 749: #line 5755 "gram.y" { (yyval.list) = list_make1(makeRoleSpec(ROLESPEC_PUBLIC, -1)); ;} break; case 750: #line 5759 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 751: #line 5760 "gram.y" { (yyval.list) = NULL; ;} break; case 752: #line 5765 "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 753: #line 5778 "gram.y" { (yyval.boolean) = true; ;} break; case 754: #line 5782 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 755: #line 5783 "gram.y" { (yyval.str) = "all"; ;} break; case 756: #line 5787 "gram.y" { (yyval.str) = "all"; ;} break; case 757: #line 5788 "gram.y" { (yyval.str) = "select"; ;} break; case 758: #line 5789 "gram.y" { (yyval.str) = "insert"; ;} break; case 759: #line 5790 "gram.y" { (yyval.str) = "update"; ;} break; case 760: #line 5791 "gram.y" { (yyval.str) = "delete"; ;} break; case 761: #line 5802 "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 762: #line 5813 "gram.y" { (yyval.chr) = AMTYPE_INDEX; ;} break; case 763: #line 5814 "gram.y" { (yyval.chr) = AMTYPE_TABLE; ;} break; case 764: #line 5828 "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 765: #line 5852 "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 766: #line 5880 "gram.y" { (yyval.ival) = TRIGGER_TYPE_BEFORE; ;} break; case 767: #line 5881 "gram.y" { (yyval.ival) = TRIGGER_TYPE_AFTER; ;} break; case 768: #line 5882 "gram.y" { (yyval.ival) = TRIGGER_TYPE_INSTEAD; ;} break; case 769: #line 5887 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 770: #line 5889 "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 771: #line 5911 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_INSERT), NIL); ;} break; case 772: #line 5913 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_DELETE), NIL); ;} break; case 773: #line 5915 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), NIL); ;} break; case 774: #line 5917 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), (yyvsp[(3) - (3)].list)); ;} break; case 775: #line 5919 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_TRUNCATE), NIL); ;} break; case 776: #line 5923 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 777: #line 5924 "gram.y" { (yyval.list) = NIL; ;} break; case 778: #line 5928 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 779: #line 5929 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 780: #line 5934 "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 781: #line 5945 "gram.y" { (yyval.boolean) = true; ;} break; case 782: #line 5946 "gram.y" { (yyval.boolean) = false; ;} break; case 783: #line 5950 "gram.y" { (yyval.boolean) = true; ;} break; case 784: #line 5959 "gram.y" { (yyval.boolean) = false; ;} break; case 785: #line 5963 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 786: #line 5968 "gram.y" { (yyval.boolean) = (yyvsp[(3) - (3)].boolean); ;} break; case 787: #line 5972 "gram.y" { /* * If ROW/STATEMENT not specified, default to * STATEMENT, per SQL */ (yyval.boolean) = false; ;} break; case 790: #line 5987 "gram.y" { (yyval.boolean) = true; ;} break; case 791: #line 5988 "gram.y" { (yyval.boolean) = false; ;} break; case 792: #line 5992 "gram.y" { (yyval.node) = (yyvsp[(3) - (4)].node); ;} break; case 793: #line 5993 "gram.y" { (yyval.node) = NULL; ;} break; case 796: #line 6002 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 797: #line 6003 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 798: #line 6004 "gram.y" { (yyval.list) = NIL; ;} break; case 799: #line 6009 "gram.y" { (yyval.node) = (Node *) makeString(psprintf("%d", (yyvsp[(1) - (1)].ival))); ;} break; case 800: #line 6012 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 801: #line 6013 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 802: #line 6014 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 803: #line 6018 "gram.y" { (yyval.range) = (yyvsp[(2) - (2)].range); ;} break; case 804: #line 6019 "gram.y" { (yyval.range) = NULL; ;} break; case 805: #line 6024 "gram.y" { (yyval.ival) = 0; ;} break; case 806: #line 6026 "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 807: #line 6052 "gram.y" { (yyval.ival) = CAS_NOT_DEFERRABLE; ;} break; case 808: #line 6053 "gram.y" { (yyval.ival) = CAS_DEFERRABLE; ;} break; case 809: #line 6054 "gram.y" { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; ;} break; case 810: #line 6055 "gram.y" { (yyval.ival) = CAS_INITIALLY_DEFERRED; ;} break; case 811: #line 6056 "gram.y" { (yyval.ival) = CAS_NOT_VALID; ;} break; case 812: #line 6057 "gram.y" { (yyval.ival) = CAS_NO_INHERIT; ;} break; case 813: #line 6072 "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 814: #line 6084 "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 815: #line 6097 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 816: #line 6099 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 817: #line 6104 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (5)].str), (Node *) (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); ;} break; case 818: #line 6109 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 819: #line 6111 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; case 820: #line 6116 "gram.y" { AlterEventTrigStmt *n = makeNode(AlterEventTrigStmt); n->trigname = (yyvsp[(4) - (5)].str); n->tgenabled = (yyvsp[(5) - (5)].chr); (yyval.node) = (Node *) n; ;} break; case 821: #line 6126 "gram.y" { (yyval.chr) = TRIGGER_FIRES_ON_ORIGIN; ;} break; case 822: #line 6127 "gram.y" { (yyval.chr) = TRIGGER_FIRES_ON_REPLICA; ;} break; case 823: #line 6128 "gram.y" { (yyval.chr) = TRIGGER_FIRES_ALWAYS; ;} break; case 824: #line 6129 "gram.y" { (yyval.chr) = TRIGGER_DISABLED; ;} break; case 825: #line 6141 "gram.y" { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE ASSERTION is not yet implemented"))); (yyval.node) = NULL; ;} break; case 826: #line 6160 "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 827: #line 6172 "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 828: #line 6185 "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 829: #line 6196 "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 830: #line 6207 "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 831: #line 6219 "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 832: #line 6228 "gram.y" { CreateEnumStmt *n = makeNode(CreateEnumStmt); n->typeName = (yyvsp[(3) - (8)].list); n->vals = (yyvsp[(7) - (8)].list); (yyval.node) = (Node *) n; ;} break; case 833: #line 6236 "gram.y" { CreateRangeStmt *n = makeNode(CreateRangeStmt); n->typeName = (yyvsp[(3) - (6)].list); n->params = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 834: #line 6244 "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 835: #line 6254 "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 836: #line 6264 "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 837: #line 6274 "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 838: #line 6284 "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 839: #line 6294 "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 840: #line 6305 "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 841: #line 6315 "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 842: #line 6327 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 843: #line 6330 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 844: #line 6331 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 845: #line 6335 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 846: #line 6339 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)])); ;} break; case 847: #line 6345 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].typnam); ;} break; case 848: #line 6346 "gram.y" { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;} break; case 849: #line 6347 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].list); ;} break; case 850: #line 6348 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].node); ;} break; case 851: #line 6349 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 852: #line 6350 "gram.y" { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;} break; case 853: #line 6353 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 854: #line 6356 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 855: #line 6357 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 856: #line 6366 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 857: #line 6372 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 858: #line 6373 "gram.y" { (yyval.list) = NIL; ;} break; case 859: #line 6377 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 860: #line 6379 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; case 861: #line 6390 "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 862: #line 6402 "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 863: #line 6414 "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 864: #line 6426 "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 865: #line 6439 "gram.y" { (yyval.boolean) = true; ;} break; case 866: #line 6440 "gram.y" { (yyval.boolean) = false; ;} break; case 867: #line 6458 "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 868: #line 6472 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 869: #line 6473 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 870: #line 6478 "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 871: #line 6492 "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 872: #line 6502 "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 873: #line 6511 "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 874: #line 6521 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_STORAGETYPE; n->storedtype = (yyvsp[(2) - (2)].typnam); (yyval.node) = (Node *) n; ;} break; case 875: #line 6530 "gram.y" { (yyval.boolean) = true; ;} break; case 876: #line 6531 "gram.y" { (yyval.boolean) = false; ;} break; case 877: #line 6534 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 878: #line 6535 "gram.y" { (yyval.list) = NIL; ;} break; case 879: #line 6538 "gram.y" { (yyval.list) = NIL; ;} break; case 880: #line 6539 "gram.y" { (yyval.list) = (yyvsp[(4) - (4)].list); ;} break; case 881: #line 6540 "gram.y" { (yyval.list) = NIL; ;} break; case 882: #line 6544 "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 883: #line 6557 "gram.y" { (yyval.boolean) = false; ;} break; case 884: #line 6563 "gram.y" { CreateOpFamilyStmt *n = makeNode(CreateOpFamilyStmt); n->opfamilyname = (yyvsp[(4) - (6)].list); n->amname = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 885: #line 6574 "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 886: #line 6584 "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 887: #line 6596 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 888: #line 6597 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 889: #line 6602 "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 890: #line 6611 "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 891: #line 6624 "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 892: #line 6635 "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 893: #line 6649 "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 894: #line 6660 "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 895: #line 6683 "gram.y" { DropOwnedStmt *n = makeNode(DropOwnedStmt); n->roles = (yyvsp[(4) - (5)].list); n->behavior = (yyvsp[(5) - (5)].dbehavior); (yyval.node) = (Node *) n; ;} break; case 896: #line 6694 "gram.y" { ReassignOwnedStmt *n = makeNode(ReassignOwnedStmt); n->roles = (yyvsp[(4) - (6)].list); n->newrole = (yyvsp[(6) - (6)].rolespec); (yyval.node) = (Node *) n; ;} break; case 897: #line 6713 "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 898: #line 6724 "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 899: #line 6735 "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 900: #line 6746 "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 901: #line 6757 "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 902: #line 6768 "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 903: #line 6779 "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 904: #line 6790 "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 905: #line 6801 "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 906: #line 6812 "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 907: #line 6823 "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 908: #line 6834 "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 909: #line 6848 "gram.y" { (yyval.objtype) = OBJECT_TABLE; ;} break; case 910: #line 6849 "gram.y" { (yyval.objtype) = OBJECT_SEQUENCE; ;} break; case 911: #line 6850 "gram.y" { (yyval.objtype) = OBJECT_VIEW; ;} break; case 912: #line 6851 "gram.y" { (yyval.objtype) = OBJECT_MATVIEW; ;} break; case 913: #line 6852 "gram.y" { (yyval.objtype) = OBJECT_INDEX; ;} break; case 914: #line 6853 "gram.y" { (yyval.objtype) = OBJECT_FOREIGN_TABLE; ;} break; case 915: #line 6854 "gram.y" { (yyval.objtype) = OBJECT_COLLATION; ;} break; case 916: #line 6855 "gram.y" { (yyval.objtype) = OBJECT_CONVERSION; ;} break; case 917: #line 6856 "gram.y" { (yyval.objtype) = OBJECT_STATISTIC_EXT; ;} break; case 918: #line 6857 "gram.y" { (yyval.objtype) = OBJECT_TSPARSER; ;} break; case 919: #line 6858 "gram.y" { (yyval.objtype) = OBJECT_TSDICTIONARY; ;} break; case 920: #line 6859 "gram.y" { (yyval.objtype) = OBJECT_TSTEMPLATE; ;} break; case 921: #line 6860 "gram.y" { (yyval.objtype) = OBJECT_TSCONFIGURATION; ;} break; case 922: #line 6870 "gram.y" { (yyval.objtype) = (yyvsp[(1) - (1)].objtype); ;} break; case 923: #line 6871 "gram.y" { (yyval.objtype) = OBJECT_DATABASE; ;} break; case 924: #line 6872 "gram.y" { (yyval.objtype) = OBJECT_ROLE; ;} break; case 925: #line 6873 "gram.y" { (yyval.objtype) = OBJECT_SUBSCRIPTION; ;} break; case 926: #line 6874 "gram.y" { (yyval.objtype) = OBJECT_TABLESPACE; ;} break; case 927: #line 6878 "gram.y" { (yyval.objtype) = OBJECT_ACCESS_METHOD; ;} break; case 928: #line 6879 "gram.y" { (yyval.objtype) = OBJECT_EVENT_TRIGGER; ;} break; case 929: #line 6880 "gram.y" { (yyval.objtype) = OBJECT_EXTENSION; ;} break; case 930: #line 6881 "gram.y" { (yyval.objtype) = OBJECT_FDW; ;} break; case 931: #line 6882 "gram.y" { (yyval.objtype) = OBJECT_LANGUAGE; ;} break; case 932: #line 6883 "gram.y" { (yyval.objtype) = OBJECT_PUBLICATION; ;} break; case 933: #line 6884 "gram.y" { (yyval.objtype) = OBJECT_SCHEMA; ;} break; case 934: #line 6885 "gram.y" { (yyval.objtype) = OBJECT_FOREIGN_SERVER; ;} break; case 935: #line 6890 "gram.y" { (yyval.objtype) = OBJECT_POLICY; ;} break; case 936: #line 6891 "gram.y" { (yyval.objtype) = OBJECT_RULE; ;} break; case 937: #line 6892 "gram.y" { (yyval.objtype) = OBJECT_TRIGGER; ;} break; case 938: #line 6896 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} break; case 939: #line 6897 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} break; case 940: #line 6900 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 941: #line 6901 "gram.y" { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;} break; case 942: #line 6905 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;} break; case 943: #line 6907 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; case 944: #line 6911 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;} break; case 945: #line 6912 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;} break; case 946: #line 6924 "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 947: #line 6935 "gram.y" { (yyval.boolean) = false; ;} break; case 948: #line 6936 "gram.y" { (yyval.boolean) = true; ;} break; case 949: #line 6937 "gram.y" { (yyval.boolean) = false; ;} break; case 950: #line 6948 "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 951: #line 6957 "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 952: #line 6966 "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 953: #line 6975 "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 954: #line 6984 "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 955: #line 6993 "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 956: #line 7002 "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 957: #line 7011 "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 958: #line 7020 "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 959: #line 7029 "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 960: #line 7043 "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 961: #line 7052 "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 962: #line 7061 "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 963: #line 7070 "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 964: #line 7079 "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 965: #line 7088 "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 966: #line 7097 "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 967: #line 7106 "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 968: #line 7117 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 969: #line 7118 "gram.y" { (yyval.str) = NULL; ;} break; case 970: #line 7134 "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 971: #line 7145 "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 972: #line 7156 "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 973: #line 7167 "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 974: #line 7178 "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 975: #line 7189 "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 976: #line 7200 "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 977: #line 7211 "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 978: #line 7222 "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 979: #line 7233 "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 980: #line 7244 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 981: #line 7245 "gram.y" { (yyval.str) = NULL; ;} break; case 982: #line 7248 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 983: #line 7249 "gram.y" { (yyval.str) = NULL; ;} break; case 984: #line 7260 "gram.y" { FetchStmt *n = (FetchStmt *) (yyvsp[(2) - (2)].node); n->ismove = false; (yyval.node) = (Node *) n; ;} break; case 985: #line 7267 "gram.y" { FetchStmt *n = (FetchStmt *) (yyvsp[(2) - (2)].node); n->ismove = true; (yyval.node) = (Node *) n; ;} break; case 986: #line 7276 "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 987: #line 7285 "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 988: #line 7294 "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 989: #line 7303 "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 990: #line 7312 "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 991: #line 7321 "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 992: #line 7330 "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 993: #line 7339 "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 994: #line 7348 "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 995: #line 7357 "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 996: #line 7366 "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 997: #line 7375 "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 998: #line 7384 "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 999: #line 7393 "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 1000: #line 7402 "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 1001: #line 7411 "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 1006: #line 7438 "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 1007: #line 7456 "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 1008: #line 7472 "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 1009: #line 7499 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1010: #line 7501 "gram.y" { (yyval.list) = NIL; ;} break; case 1011: #line 7503 "gram.y" { (yyval.list) = NIL; ;} break; case 1012: #line 7505 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = NULL; n->cols = (yyvsp[(3) - (4)].list); (yyval.list) = list_make1(n); ;} break; case 1013: #line 7513 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = NULL; n->cols = (yyvsp[(4) - (5)].list); (yyval.list) = list_make1(n); ;} break; case 1014: #line 7522 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].accesspriv)); ;} break; case 1015: #line 7523 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].accesspriv)); ;} break; case 1016: #line 7527 "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 1017: #line 7535 "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 1018: #line 7543 "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 1019: #line 7551 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = pstrdup("alter system"); n->cols = NIL; (yyval.accesspriv) = n; ;} break; case 1020: #line 7558 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = (yyvsp[(1) - (2)].str); n->cols = (yyvsp[(2) - (2)].list); (yyval.accesspriv) = n; ;} break; case 1021: #line 7569 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 1022: #line 7573 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; case 1023: #line 7580 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1024: #line 7584 "gram.y" { (yyval.str) = psprintf("%s.%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); ;} break; case 1025: #line 7595 "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 1026: #line 7604 "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 1027: #line 7613 "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 1028: #line 7622 "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 1029: #line 7631 "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 1030: #line 7640 "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 1031: #line 7649 "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 1032: #line 7658 "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 1033: #line 7667 "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 1034: #line 7676 "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 1035: #line 7685 "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 1036: #line 7694 "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 1037: #line 7703 "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 1038: #line 7711 "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 1039: #line 7720 "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 1040: #line 7729 "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 1041: #line 7738 "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 1042: #line 7747 "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 1043: #line 7756 "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 1044: #line 7765 "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 1045: #line 7774 "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 1046: #line 7786 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].rolespec)); ;} break; case 1047: #line 7787 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].rolespec)); ;} break; case 1048: #line 7791 "gram.y" { (yyval.rolespec) = (yyvsp[(1) - (1)].rolespec); ;} break; case 1049: #line 7792 "gram.y" { (yyval.rolespec) = (yyvsp[(2) - (2)].rolespec); ;} break; case 1050: #line 7797 "gram.y" { (yyval.boolean) = true; ;} break; case 1051: #line 7798 "gram.y" { (yyval.boolean) = false; ;} break; case 1052: #line 7809 "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 1053: #line 7820 "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 1054: #line 7834 "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 1055: #line 7846 "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 1056: #line 7863 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 1057: #line 7864 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1058: #line 7869 "gram.y" { (yyval.defelt) = makeDefElem(pstrdup((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1059: #line 7875 "gram.y" { (yyval.node) = (Node *) makeBoolean(true); ;} break; case 1060: #line 7876 "gram.y" { (yyval.node) = (Node *) makeBoolean(true); ;} break; case 1061: #line 7877 "gram.y" { (yyval.node) = (Node *) makeBoolean(false); ;} break; case 1062: #line 7880 "gram.y" { (yyval.rolespec) = (yyvsp[(3) - (3)].rolespec); ;} break; case 1063: #line 7881 "gram.y" { (yyval.rolespec) = NULL; ;} break; case 1064: #line 7892 "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 1065: #line 7902 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1066: #line 7903 "gram.y" { (yyval.list) = NIL; ;} break; case 1067: #line 7908 "gram.y" { (yyval.defelt) = makeDefElem("schemas", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 1068: #line 7912 "gram.y" { (yyval.defelt) = makeDefElem("roles", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 1069: #line 7916 "gram.y" { (yyval.defelt) = makeDefElem("roles", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 1070: #line 7928 "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 1071: #line 7942 "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 1072: #line 7957 "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 1073: #line 7973 "gram.y" { (yyval.ival) = OBJECT_TABLE; ;} break; case 1074: #line 7974 "gram.y" { (yyval.ival) = OBJECT_FUNCTION; ;} break; case 1075: #line 7975 "gram.y" { (yyval.ival) = OBJECT_FUNCTION; ;} break; case 1076: #line 7976 "gram.y" { (yyval.ival) = OBJECT_SEQUENCE; ;} break; case 1077: #line 7977 "gram.y" { (yyval.ival) = OBJECT_TYPE; ;} break; case 1078: #line 7978 "gram.y" { (yyval.ival) = OBJECT_SCHEMA; ;} break; case 1079: #line 7993 "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 1080: #line 8025 "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 1081: #line 8057 "gram.y" { (yyval.boolean) = true; ;} break; case 1082: #line 8058 "gram.y" { (yyval.boolean) = false; ;} break; case 1083: #line 8062 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 1084: #line 8063 "gram.y" { (yyval.str) = DEFAULT_INDEX_TYPE; ;} break; case 1085: #line 8066 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].ielem)); ;} break; case 1086: #line 8067 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].ielem)); ;} break; case 1087: #line 8073 "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 1088: #line 8085 "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 1089: #line 8104 "gram.y" { (yyval.ielem) = (yyvsp[(2) - (2)].ielem); (yyval.ielem)->name = (yyvsp[(1) - (2)].str); ;} break; case 1090: #line 8109 "gram.y" { (yyval.ielem) = (yyvsp[(2) - (2)].ielem); (yyval.ielem)->expr = (yyvsp[(1) - (2)].node); ;} break; case 1091: #line 8114 "gram.y" { (yyval.ielem) = (yyvsp[(4) - (4)].ielem); (yyval.ielem)->expr = (yyvsp[(2) - (4)].node); ;} break; case 1092: #line 8120 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 1093: #line 8121 "gram.y" { (yyval.list) = NIL; ;} break; case 1094: #line 8124 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].ielem)); ;} break; case 1095: #line 8125 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].ielem)); ;} break; case 1096: #line 8128 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1097: #line 8129 "gram.y" { (yyval.list) = NIL; ;} break; case 1098: #line 8133 "gram.y" { (yyval.ival) = SORTBY_ASC; ;} break; case 1099: #line 8134 "gram.y" { (yyval.ival) = SORTBY_DESC; ;} break; case 1100: #line 8135 "gram.y" { (yyval.ival) = SORTBY_DEFAULT; ;} break; case 1101: #line 8138 "gram.y" { (yyval.ival) = SORTBY_NULLS_FIRST; ;} break; case 1102: #line 8139 "gram.y" { (yyval.ival) = SORTBY_NULLS_LAST; ;} break; case 1103: #line 8140 "gram.y" { (yyval.ival) = SORTBY_NULLS_DEFAULT; ;} break; case 1104: #line 8158 "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 1105: #line 8172 "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 1106: #line 8187 "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 1107: #line 8201 "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 1108: #line 8216 "gram.y" { (yyval.boolean) = true; ;} break; case 1109: #line 8217 "gram.y" { (yyval.boolean) = false; ;} break; case 1110: #line 8220 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1111: #line 8221 "gram.y" { (yyval.list) = NIL; ;} break; case 1112: #line 8225 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ;} break; case 1113: #line 8226 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); ;} break; case 1114: #line 8230 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].objwithargs)); ;} break; case 1115: #line 8232 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].objwithargs)); ;} break; case 1116: #line 8237 "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 1117: #line 8251 "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 1118: #line 8259 "gram.y" { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = list_make1(makeString((yyvsp[(1) - (1)].str))); n->args_unspecified = true; (yyval.objwithargs) = n; ;} break; case 1119: #line 8267 "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 1120: #line 8282 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1121: #line 8283 "gram.y" { (yyval.list) = NIL; ;} break; case 1122: #line 8287 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ;} break; case 1123: #line 8289 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); ;} break; case 1124: #line 8304 "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 1125: #line 8314 "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 1126: #line 8324 "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 1127: #line 8334 "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 1128: #line 8344 "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 1129: #line 8356 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_IN; ;} break; case 1130: #line 8357 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_OUT; ;} break; case 1131: #line 8358 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; ;} break; case 1132: #line 8359 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; ;} break; case 1133: #line 8360 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_VARIADIC; ;} break; case 1135: #line 8371 "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 1136: #line 8385 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1137: #line 8387 "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 1138: #line 8393 "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 1139: #line 8403 "gram.y" { (yyval.fun_param) = (yyvsp[(1) - (1)].fun_param); ;} break; case 1140: #line 8407 "gram.y" { (yyval.fun_param) = (yyvsp[(1) - (3)].fun_param); (yyval.fun_param)->defexpr = (yyvsp[(3) - (3)].node); ;} break; case 1141: #line 8412 "gram.y" { (yyval.fun_param) = (yyvsp[(1) - (3)].fun_param); (yyval.fun_param)->defexpr = (yyvsp[(3) - (3)].node); ;} break; case 1142: #line 8420 "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 1143: #line 8462 "gram.y" { (yyval.list) = list_make2(NIL, makeInteger(-1)); ;} break; case 1144: #line 8466 "gram.y" { (yyval.list) = list_make2((yyvsp[(2) - (3)].list), makeInteger(-1)); ;} break; case 1145: #line 8470 "gram.y" { (yyval.list) = list_make2((yyvsp[(4) - (5)].list), makeInteger(0)); ;} break; case 1146: #line 8474 "gram.y" { /* this is the only case requiring consistency checking */ (yyval.list) = makeOrderedSetArgs((yyvsp[(2) - (6)].list), (yyvsp[(5) - (6)].list), yyscanner); ;} break; case 1147: #line 8481 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ;} break; case 1148: #line 8482 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); ;} break; case 1149: #line 8487 "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 1150: #line 8498 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].objwithargs)); ;} break; case 1151: #line 8500 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].objwithargs)); ;} break; case 1153: #line 8505 "gram.y" { (yyval.list) = NIL; ;} break; case 1154: #line 8510 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1155: #line 8511 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1156: #line 8519 "gram.y" { (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(false), (yylsp[(1) - (4)])); ;} break; case 1157: #line 8523 "gram.y" { (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(true), (yylsp[(1) - (5)])); ;} break; case 1158: #line 8527 "gram.y" { (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); ;} break; case 1159: #line 8531 "gram.y" { (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("immutable"), (yylsp[(1) - (1)])); ;} break; case 1160: #line 8535 "gram.y" { (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("stable"), (yylsp[(1) - (1)])); ;} break; case 1161: #line 8539 "gram.y" { (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("volatile"), (yylsp[(1) - (1)])); ;} break; case 1162: #line 8543 "gram.y" { (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(true), (yylsp[(1) - (3)])); ;} break; case 1163: #line 8547 "gram.y" { (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(false), (yylsp[(1) - (3)])); ;} break; case 1164: #line 8551 "gram.y" { (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(true), (yylsp[(1) - (2)])); ;} break; case 1165: #line 8555 "gram.y" { (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(false), (yylsp[(1) - (2)])); ;} break; case 1166: #line 8559 "gram.y" { (yyval.defelt) = makeDefElem("leakproof", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); ;} break; case 1167: #line 8563 "gram.y" { (yyval.defelt) = makeDefElem("leakproof", (Node *) makeBoolean(false), (yylsp[(1) - (2)])); ;} break; case 1168: #line 8567 "gram.y" { (yyval.defelt) = makeDefElem("cost", (Node *) (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1169: #line 8571 "gram.y" { (yyval.defelt) = makeDefElem("rows", (Node *) (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1170: #line 8575 "gram.y" { (yyval.defelt) = makeDefElem("support", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} break; case 1171: #line 8579 "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 1172: #line 8584 "gram.y" { (yyval.defelt) = makeDefElem("parallel", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); ;} break; case 1173: #line 8591 "gram.y" { (yyval.defelt) = makeDefElem("as", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} break; case 1174: #line 8595 "gram.y" { (yyval.defelt) = makeDefElem("language", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); ;} break; case 1175: #line 8599 "gram.y" { (yyval.defelt) = makeDefElem("transform", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} break; case 1176: #line 8603 "gram.y" { (yyval.defelt) = makeDefElem("window", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); ;} break; case 1177: #line 8607 "gram.y" { (yyval.defelt) = (yyvsp[(1) - (1)].defelt); ;} break; case 1178: #line 8612 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 1179: #line 8614 "gram.y" { (yyval.list) = list_make2(makeString((yyvsp[(1) - (3)].str)), makeString((yyvsp[(3) - (3)].str))); ;} break; case 1180: #line 8620 "gram.y" { ReturnStmt *r = makeNode(ReturnStmt); r->returnval = (Node *) (yyvsp[(2) - (2)].node); (yyval.node) = (Node *) r; ;} break; case 1181: #line 8630 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1182: #line 8634 "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 1183: #line 8644 "gram.y" { (yyval.node) = NULL; ;} break; case 1184: #line 8651 "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 1185: #line 8659 "gram.y" { (yyval.list) = NIL; ;} break; case 1188: #line 8670 "gram.y" { (yyval.list) = list_make1((yyvsp[(3) - (3)].typnam)); ;} break; case 1189: #line 8671 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (5)].list), (yyvsp[(5) - (5)].typnam)); ;} break; case 1190: #line 8675 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1191: #line 8676 "gram.y" { (yyval.list) = NIL; ;} break; case 1192: #line 8680 "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 1193: #line 8693 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ;} break; case 1194: #line 8697 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); ;} break; case 1195: #line 8712 "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 1196: #line 8721 "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 1197: #line 8730 "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 1198: #line 8742 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1199: #line 8743 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1202: #line 8767 "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 1203: #line 8778 "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 1204: #line 8789 "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 1205: #line 8800 "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 1206: #line 8811 "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 1207: #line 8822 "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 1208: #line 8836 "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 1209: #line 8847 "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 1210: #line 8861 "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 1211: #line 8872 "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 1212: #line 8886 "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 1213: #line 8894 "gram.y" { (yyval.list) = list_make2((yyvsp[(2) - (5)].typnam), (yyvsp[(4) - (5)].typnam)); ;} break; case 1214: #line 8896 "gram.y" { (yyval.list) = list_make2(NULL, (yyvsp[(4) - (5)].typnam)); ;} break; case 1215: #line 8898 "gram.y" { (yyval.list) = list_make2((yyvsp[(2) - (5)].typnam), NULL); ;} break; case 1216: #line 8903 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 1217: #line 8905 "gram.y" { (yyval.list) = lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(3) - (3)].list)); ;} break; case 1218: #line 8909 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].objwithargs)); ;} break; case 1219: #line 8911 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].objwithargs)); ;} break; case 1220: #line 8916 "gram.y" { ObjectWithArgs *n = makeNode(ObjectWithArgs); n->objname = (yyvsp[(1) - (2)].list); n->objargs = (yyvsp[(2) - (2)].list); (yyval.objwithargs) = n; ;} break; case 1221: #line 8935 "gram.y" { DoStmt *n = makeNode(DoStmt); n->args = (yyvsp[(2) - (2)].list); (yyval.node) = (Node *) n; ;} break; case 1222: #line 8944 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1223: #line 8945 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1224: #line 8950 "gram.y" { (yyval.defelt) = makeDefElem("as", (Node *) makeString((yyvsp[(1) - (1)].str)), (yylsp[(1) - (1)])); ;} break; case 1225: #line 8954 "gram.y" { (yyval.defelt) = makeDefElem("language", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); ;} break; case 1226: #line 8967 "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 1227: #line 8979 "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 1228: #line 8991 "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 1229: #line 9003 "gram.y" { (yyval.ival) = COERCION_IMPLICIT; ;} break; case 1230: #line 9004 "gram.y" { (yyval.ival) = COERCION_ASSIGNMENT; ;} break; case 1231: #line 9005 "gram.y" { (yyval.ival) = COERCION_EXPLICIT; ;} break; case 1232: #line 9010 "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 1233: #line 9022 "gram.y" { (yyval.boolean) = true; ;} break; case 1234: #line 9023 "gram.y" { (yyval.boolean) = false; ;} break; case 1235: #line 9034 "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 1236: #line 9047 "gram.y" { (yyval.list) = list_make2((yyvsp[(5) - (11)].objwithargs), (yyvsp[(11) - (11)].objwithargs)); ;} break; case 1237: #line 9051 "gram.y" { (yyval.list) = list_make2((yyvsp[(11) - (11)].objwithargs), (yyvsp[(5) - (11)].objwithargs)); ;} break; case 1238: #line 9055 "gram.y" { (yyval.list) = list_make2((yyvsp[(5) - (5)].objwithargs), NULL); ;} break; case 1239: #line 9059 "gram.y" { (yyval.list) = list_make2(NULL, (yyvsp[(5) - (5)].objwithargs)); ;} break; case 1240: #line 9066 "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 1241: #line 9088 "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 1242: #line 9101 "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 1243: #line 9114 "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 1244: #line 9128 "gram.y" { (yyval.ival) = REINDEX_OBJECT_INDEX; ;} break; case 1245: #line 9129 "gram.y" { (yyval.ival) = REINDEX_OBJECT_TABLE; ;} break; case 1246: #line 9132 "gram.y" { (yyval.ival) = REINDEX_OBJECT_SYSTEM; ;} break; case 1247: #line 9133 "gram.y" { (yyval.ival) = REINDEX_OBJECT_DATABASE; ;} break; case 1248: #line 9136 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1249: #line 9137 "gram.y" { (yyval.list) = NULL; ;} break; case 1250: #line 9148 "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 1251: #line 9158 "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 1252: #line 9176 "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 1253: #line 9186 "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 1254: #line 9196 "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 1255: #line 9206 "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 1256: #line 9216 "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 1257: #line 9226 "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 1258: #line 9236 "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 1259: #line 9246 "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 1260: #line 9256 "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 1261: #line 9266 "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 1262: #line 9276 "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 1263: #line 9286 "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 1264: #line 9296 "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 1265: #line 9307 "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 1266: #line 9318 "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 1267: #line 9328 "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 1268: #line 9338 "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 1269: #line 9348 "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 1270: #line 9358 "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 1271: #line 9368 "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 1272: #line 9378 "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 1273: #line 9389 "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 1274: #line 9400 "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 1275: #line 9411 "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 1276: #line 9422 "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 1277: #line 9433 "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 1278: #line 9444 "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 1279: #line 9455 "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 1280: #line 9466 "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 1281: #line 9477 "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 1282: #line 9488 "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 1283: #line 9499 "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 1284: #line 9510 "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 1285: #line 9522 "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 1286: #line 9534 "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 1287: #line 9546 "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 1288: #line 9558 "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 1289: #line 9570 "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 1290: #line 9582 "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 1291: #line 9593 "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 1292: #line 9604 "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 1293: #line 9616 "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 1294: #line 9628 "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 1295: #line 9639 "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 1296: #line 9650 "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 1297: #line 9659 "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 1298: #line 9669 "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 1299: #line 9679 "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 1300: #line 9689 "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 1301: #line 9699 "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 1302: #line 9709 "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 1303: #line 9719 "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 1304: #line 9729 "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 1305: #line 9739 "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 1306: #line 9749 "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 1309: #line 9767 "gram.y" { (yyval.ival) = 1; ;} break; case 1310: #line 9768 "gram.y" { (yyval.ival) = 0; ;} break; case 1311: #line 9779 "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 1312: #line 9789 "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 1313: #line 9799 "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 1314: #line 9809 "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 1315: #line 9820 "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 1316: #line 9830 "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 1317: #line 9841 "gram.y" { (yyval.boolean) = true; ;} break; case 1318: #line 9842 "gram.y" { (yyval.boolean) = false; ;} break; case 1319: #line 9853 "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 1320: #line 9863 "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 1321: #line 9873 "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 1322: #line 9883 "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 1323: #line 9893 "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 1324: #line 9903 "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 1325: #line 9913 "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 1326: #line 9923 "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 1327: #line 9933 "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 1328: #line 9943 "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 1329: #line 9953 "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 1330: #line 9963 "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 1331: #line 9973 "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 1332: #line 9983 "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 1333: #line 9993 "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 1334: #line 10003 "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 1335: #line 10013 "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 1336: #line 10023 "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 1337: #line 10033 "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 1338: #line 10043 "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 1339: #line 10053 "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 1340: #line 10063 "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 1341: #line 10073 "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 1342: #line 10083 "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 1343: #line 10093 "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 1344: #line 10103 "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 1345: #line 10113 "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 1346: #line 10132 "gram.y" { AlterOperatorStmt *n = makeNode(AlterOperatorStmt); n->opername = (yyvsp[(3) - (7)].objwithargs); n->options = (yyvsp[(6) - (7)].list); (yyval.node) = (Node *) n; ;} break; case 1347: #line 10141 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1348: #line 10142 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 1349: #line 10146 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), NULL, (yylsp[(1) - (3)])); ;} break; case 1350: #line 10148 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 1351: #line 10153 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].typnam); ;} break; case 1352: #line 10154 "gram.y" { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;} break; case 1353: #line 10155 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].list); ;} break; case 1354: #line 10156 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].node); ;} break; case 1355: #line 10157 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 1356: #line 10170 "gram.y" { AlterTypeStmt *n = makeNode(AlterTypeStmt); n->typeName = (yyvsp[(3) - (7)].list); n->options = (yyvsp[(6) - (7)].list); (yyval.node) = (Node *) n; ;} break; case 1357: #line 10186 "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 1358: #line 10195 "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 1359: #line 10204 "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 1360: #line 10213 "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 1361: #line 10222 "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 1362: #line 10231 "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 1363: #line 10240 "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 1364: #line 10249 "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 1365: #line 10258 "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 1366: #line 10267 "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 1367: #line 10276 "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 1368: #line 10285 "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 1369: #line 10294 "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 1370: #line 10303 "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 1371: #line 10312 "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 1372: #line 10321 "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 1373: #line 10330 "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 1374: #line 10339 "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 1375: #line 10348 "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 1376: #line 10357 "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 1377: #line 10366 "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 1378: #line 10375 "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 1379: #line 10384 "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 1380: #line 10393 "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 1381: #line 10421 "gram.y" { CreatePublicationStmt *n = makeNode(CreatePublicationStmt); n->pubname = (yyvsp[(3) - (4)].str); n->options = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *) n; ;} break; case 1382: #line 10429 "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 1383: #line 10438 "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 1384: #line 10464 "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 1385: #line 10473 "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 1386: #line 10480 "gram.y" { (yyval.publicationobjectspec) = makeNode(PublicationObjSpec); (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA; (yyval.publicationobjectspec)->location = (yylsp[(4) - (4)]); ;} break; case 1387: #line 10486 "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 1388: #line 10513 "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 1389: #line 10524 "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 1390: #line 10533 "gram.y" { (yyval.publicationobjectspec) = makeNode(PublicationObjSpec); (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION; (yyval.publicationobjectspec)->location = (yylsp[(1) - (1)]); ;} break; case 1391: #line 10541 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].publicationobjectspec)); ;} break; case 1392: #line 10543 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].publicationobjectspec)); ;} break; case 1393: #line 10565 "gram.y" { AlterPublicationStmt *n = makeNode(AlterPublicationStmt); n->pubname = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 1394: #line 10573 "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 1395: #line 10583 "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 1396: #line 10593 "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 1397: #line 10612 "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 1398: #line 10631 "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 1399: #line 10641 "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 1400: #line 10651 "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 1401: #line 10661 "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 1402: #line 10672 "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 1403: #line 10683 "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 1404: #line 10694 "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 1405: #line 10705 "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 1406: #line 10716 "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 1407: #line 10734 "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 1408: #line 10743 "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 1409: #line 10762 "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 1410: #line 10777 "gram.y" { (yyval.list) = NIL; ;} break; case 1411: #line 10778 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1412: #line 10779 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1413: #line 10785 "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 1414: #line 10791 "gram.y" { if ((yyvsp[(1) - (1)].node) != NULL) (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); else (yyval.list) = NIL; ;} break; case 1420: #line 10807 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1421: #line 10808 "gram.y" { (yyval.node) = NULL; ;} break; case 1422: #line 10811 "gram.y" { (yyval.ival) = CMD_SELECT; ;} break; case 1423: #line 10812 "gram.y" { (yyval.ival) = CMD_UPDATE; ;} break; case 1424: #line 10813 "gram.y" { (yyval.ival) = CMD_DELETE; ;} break; case 1425: #line 10814 "gram.y" { (yyval.ival) = CMD_INSERT; ;} break; case 1426: #line 10818 "gram.y" { (yyval.boolean) = true; ;} break; case 1427: #line 10819 "gram.y" { (yyval.boolean) = false; ;} break; case 1428: #line 10820 "gram.y" { (yyval.boolean) = false; ;} break; case 1429: #line 10833 "gram.y" { NotifyStmt *n = makeNode(NotifyStmt); n->conditionname = (yyvsp[(2) - (3)].str); n->payload = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 1430: #line 10843 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 1431: #line 10844 "gram.y" { (yyval.str) = NULL; ;} break; case 1432: #line 10848 "gram.y" { ListenStmt *n = makeNode(ListenStmt); n->conditionname = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; ;} break; case 1433: #line 10858 "gram.y" { UnlistenStmt *n = makeNode(UnlistenStmt); n->conditionname = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; ;} break; case 1434: #line 10865 "gram.y" { UnlistenStmt *n = makeNode(UnlistenStmt); n->conditionname = NULL; (yyval.node) = (Node *) n; ;} break; case 1435: #line 10885 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK; n->options = NIL; n->chain = (yyvsp[(3) - (3)].boolean); (yyval.node) = (Node *) n; ;} break; case 1436: #line 10894 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_START; n->options = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *) n; ;} break; case 1437: #line 10902 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT; n->options = NIL; n->chain = (yyvsp[(3) - (3)].boolean); (yyval.node) = (Node *) n; ;} break; case 1438: #line 10911 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK; n->options = NIL; n->chain = (yyvsp[(3) - (3)].boolean); (yyval.node) = (Node *) n; ;} break; case 1439: #line 10920 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_SAVEPOINT; n->savepoint_name = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; ;} break; case 1440: #line 10928 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_RELEASE; n->savepoint_name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 1441: #line 10936 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_RELEASE; n->savepoint_name = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; ;} break; case 1442: #line 10944 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_TO; n->savepoint_name = (yyvsp[(5) - (5)].str); (yyval.node) = (Node *) n; ;} break; case 1443: #line 10952 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_TO; n->savepoint_name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *) n; ;} break; case 1444: #line 10960 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_PREPARE; n->gid = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 1445: #line 10968 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT_PREPARED; n->gid = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 1446: #line 10976 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_PREPARED; n->gid = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 1447: #line 10987 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_BEGIN; n->options = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *) n; ;} break; case 1448: #line 10995 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT; n->options = NIL; n->chain = (yyvsp[(3) - (3)].boolean); (yyval.node) = (Node *) n; ;} break; case 1452: #line 11012 "gram.y" { (yyval.defelt) = makeDefElem("transaction_isolation", makeStringConst((yyvsp[(3) - (3)].str), (yylsp[(3) - (3)])), (yylsp[(1) - (3)])); ;} break; case 1453: #line 11015 "gram.y" { (yyval.defelt) = makeDefElem("transaction_read_only", makeIntConst(true, (yylsp[(1) - (2)])), (yylsp[(1) - (2)])); ;} break; case 1454: #line 11018 "gram.y" { (yyval.defelt) = makeDefElem("transaction_read_only", makeIntConst(false, (yylsp[(1) - (2)])), (yylsp[(1) - (2)])); ;} break; case 1455: #line 11021 "gram.y" { (yyval.defelt) = makeDefElem("transaction_deferrable", makeIntConst(true, (yylsp[(1) - (1)])), (yylsp[(1) - (1)])); ;} break; case 1456: #line 11024 "gram.y" { (yyval.defelt) = makeDefElem("transaction_deferrable", makeIntConst(false, (yylsp[(1) - (2)])), (yylsp[(1) - (2)])); ;} break; case 1457: #line 11031 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1458: #line 11033 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 1459: #line 11035 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1461: #line 11041 "gram.y" { (yyval.list) = NIL; ;} break; case 1462: #line 11045 "gram.y" { (yyval.boolean) = true; ;} break; case 1463: #line 11046 "gram.y" { (yyval.boolean) = false; ;} break; case 1464: #line 11047 "gram.y" { (yyval.boolean) = false; ;} break; case 1465: #line 11061 "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 1466: #line 11075 "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 1467: #line 11089 "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 1468: #line 11108 "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 1469: #line 11128 "gram.y" { (yyval.ival) = CASCADED_CHECK_OPTION; ;} break; case 1470: #line 11129 "gram.y" { (yyval.ival) = CASCADED_CHECK_OPTION; ;} break; case 1471: #line 11130 "gram.y" { (yyval.ival) = LOCAL_CHECK_OPTION; ;} break; case 1472: #line 11131 "gram.y" { (yyval.ival) = NO_CHECK_OPTION; ;} break; case 1473: #line 11142 "gram.y" { LoadStmt *n = makeNode(LoadStmt); n->filename = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; ;} break; case 1474: #line 11159 "gram.y" { CreatedbStmt *n = makeNode(CreatedbStmt); n->dbname = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 1475: #line 11169 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1476: #line 11170 "gram.y" { (yyval.list) = NIL; ;} break; case 1477: #line 11174 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1478: #line 11175 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1479: #line 11180 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} break; case 1480: #line 11184 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); ;} break; case 1481: #line 11188 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), NULL, (yylsp[(1) - (3)])); ;} break; case 1482: #line 11205 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1483: #line 11206 "gram.y" { (yyval.str) = pstrdup("connection_limit"); ;} break; case 1484: #line 11207 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 1485: #line 11208 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 1486: #line 11209 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 1487: #line 11210 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 1488: #line 11211 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 1491: #line 11231 "gram.y" { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 1492: #line 11239 "gram.y" { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[(3) - (4)].str); n->options = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *) n; ;} break; case 1493: #line 11247 "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 1494: #line 11256 "gram.y" { AlterDatabaseRefreshCollStmt *n = makeNode(AlterDatabaseRefreshCollStmt); n->dbname = (yyvsp[(3) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 1495: #line 11266 "gram.y" { AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt); n->dbname = (yyvsp[(3) - (4)].str); n->setstmt = (yyvsp[(4) - (4)].vsetstmt); (yyval.node) = (Node *) n; ;} break; case 1496: #line 11284 "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 1497: #line 11293 "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 1498: #line 11302 "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 1499: #line 11311 "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 1500: #line 11323 "gram.y" { (yyval.list) = list_make1((Node *) (yyvsp[(1) - (1)].defelt)); ;} break; case 1501: #line 11327 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (Node *) (yyvsp[(3) - (3)].defelt)); ;} break; case 1502: #line 11338 "gram.y" { (yyval.defelt) = makeDefElem("force", NULL, (yylsp[(1) - (1)])); ;} break; case 1503: #line 11350 "gram.y" { AlterCollationStmt *n = makeNode(AlterCollationStmt); n->collname = (yyvsp[(3) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 1504: #line 11368 "gram.y" { AlterSystemStmt *n = makeNode(AlterSystemStmt); n->setstmt = (yyvsp[(4) - (4)].vsetstmt); (yyval.node) = (Node *) n; ;} break; case 1505: #line 11375 "gram.y" { AlterSystemStmt *n = makeNode(AlterSystemStmt); n->setstmt = (yyvsp[(4) - (4)].vsetstmt); (yyval.node) = (Node *) n; ;} break; case 1506: #line 11392 "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 1507: #line 11406 "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 1508: #line 11416 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'N'; n->typeName = (yyvsp[(3) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 1509: #line 11425 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'O'; n->typeName = (yyvsp[(3) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 1510: #line 11434 "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 1511: #line 11444 "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 1512: #line 11456 "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 1513: #line 11468 "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 1516: #line 11491 "gram.y" { AlterTSDictionaryStmt *n = makeNode(AlterTSDictionaryStmt); n->dictname = (yyvsp[(5) - (6)].list); n->options = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 1517: #line 11502 "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 1518: #line 11514 "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 1519: #line 11526 "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 1520: #line 11538 "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 1521: #line 11550 "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 1522: #line 11560 "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 1525: #line 11589 "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 1526: #line 11613 "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 1527: #line 11625 "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 1528: #line 11634 "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 1529: #line 11646 "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 1530: #line 11659 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 1531: #line 11660 "gram.y" { (yyval.str) = NULL; ;} break; case 1532: #line 11673 "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 1533: #line 11694 "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 1534: #line 11705 "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 1535: #line 11717 "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 1536: #line 11729 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1537: #line 11733 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 1540: #line 11745 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1541: #line 11751 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1542: #line 11752 "gram.y" { (yyval.str) = "analyze"; ;} break; case 1543: #line 11753 "gram.y" { (yyval.str) = "format"; ;} break; case 1544: #line 11757 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 1545: #line 11758 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].node); ;} break; case 1546: #line 11759 "gram.y" { (yyval.node) = NULL; ;} break; case 1547: #line 11763 "gram.y" { (yyval.boolean) = true; ;} break; case 1548: #line 11764 "gram.y" { (yyval.boolean) = false; ;} break; case 1549: #line 11768 "gram.y" { (yyval.boolean) = true; ;} break; case 1550: #line 11769 "gram.y" { (yyval.boolean) = false; ;} break; case 1551: #line 11772 "gram.y" { (yyval.boolean) = true; ;} break; case 1552: #line 11773 "gram.y" { (yyval.boolean) = false; ;} break; case 1553: #line 11776 "gram.y" { (yyval.boolean) = true; ;} break; case 1554: #line 11777 "gram.y" { (yyval.boolean) = false; ;} break; case 1555: #line 11781 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1556: #line 11782 "gram.y" { (yyval.list) = NIL; ;} break; case 1557: #line 11787 "gram.y" { (yyval.node) = (Node *) makeVacuumRelation((yyvsp[(1) - (2)].range), InvalidOid, (yyvsp[(2) - (2)].list)); ;} break; case 1558: #line 11794 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1559: #line 11796 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1560: #line 11800 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1561: #line 11801 "gram.y" { (yyval.list) = NIL; ;} break; case 1562: #line 11815 "gram.y" { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[(2) - (2)].node); n->options = NIL; (yyval.node) = (Node *) n; ;} break; case 1563: #line 11823 "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 1564: #line 11834 "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 1565: #line 11842 "gram.y" { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[(5) - (5)].node); n->options = (yyvsp[(3) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 1576: #line 11872 "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 1577: #line 11882 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1578: #line 11883 "gram.y" { (yyval.list) = NIL; ;} break; case 1584: #line 11902 "gram.y" { ExecuteStmt *n = makeNode(ExecuteStmt); n->name = (yyvsp[(2) - (3)].str); n->params = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *) n; ;} break; case 1585: #line 11911 "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 1586: #line 11929 "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 1587: #line 11947 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1588: #line 11948 "gram.y" { (yyval.list) = NIL; ;} break; case 1589: #line 11959 "gram.y" { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; ;} break; case 1590: #line 11966 "gram.y" { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 1591: #line 11973 "gram.y" { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = NULL; (yyval.node) = (Node *) n; ;} break; case 1592: #line 11980 "gram.y" { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = NULL; (yyval.node) = (Node *) n; ;} break; case 1593: #line 11998 "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 1594: #line 12015 "gram.y" { (yyval.range) = (yyvsp[(1) - (1)].range); ;} break; case 1595: #line 12019 "gram.y" { (yyvsp[(1) - (3)].range)->alias = makeAlias((yyvsp[(3) - (3)].str), NIL); (yyval.range) = (yyvsp[(1) - (3)].range); ;} break; case 1596: #line 12027 "gram.y" { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->selectStmt = (yyvsp[(1) - (1)].node); ;} break; case 1597: #line 12033 "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 1598: #line 12040 "gram.y" { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = (yyvsp[(2) - (4)].list); (yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node); ;} break; case 1599: #line 12046 "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 1600: #line 12053 "gram.y" { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->selectStmt = NULL; ;} break; case 1601: #line 12061 "gram.y" { (yyval.ival) = OVERRIDING_USER_VALUE; ;} break; case 1602: #line 12062 "gram.y" { (yyval.ival) = OVERRIDING_SYSTEM_VALUE; ;} break; case 1603: #line 12067 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 1604: #line 12069 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} break; case 1605: #line 12074 "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 1606: #line 12085 "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 1607: #line 12095 "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 1608: #line 12104 "gram.y" { (yyval.onconflict) = NULL; ;} break; case 1609: #line 12111 "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 1610: #line 12120 "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 1611: #line 12128 "gram.y" { (yyval.infer) = NULL; ;} break; case 1612: #line 12134 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1613: #line 12135 "gram.y" { (yyval.list) = NIL; ;} break; case 1614: #line 12148 "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 1615: #line 12161 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1616: #line 12162 "gram.y" { (yyval.list) = NIL; ;} break; case 1617: #line 12174 "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 1618: #line 12184 "gram.y" { (yyval.ival) = (yyvsp[(2) - (3)].ival); ;} break; case 1619: #line 12185 "gram.y" { (yyval.ival) = AccessExclusiveLock; ;} break; case 1620: #line 12188 "gram.y" { (yyval.ival) = AccessShareLock; ;} break; case 1621: #line 12189 "gram.y" { (yyval.ival) = RowShareLock; ;} break; case 1622: #line 12190 "gram.y" { (yyval.ival) = RowExclusiveLock; ;} break; case 1623: #line 12191 "gram.y" { (yyval.ival) = ShareUpdateExclusiveLock; ;} break; case 1624: #line 12192 "gram.y" { (yyval.ival) = ShareLock; ;} break; case 1625: #line 12193 "gram.y" { (yyval.ival) = ShareRowExclusiveLock; ;} break; case 1626: #line 12194 "gram.y" { (yyval.ival) = ExclusiveLock; ;} break; case 1627: #line 12195 "gram.y" { (yyval.ival) = AccessExclusiveLock; ;} break; case 1628: #line 12198 "gram.y" { (yyval.boolean) = true; ;} break; case 1629: #line 12199 "gram.y" { (yyval.boolean) = false; ;} break; case 1630: #line 12203 "gram.y" { (yyval.ival) = LockWaitError; ;} break; case 1631: #line 12204 "gram.y" { (yyval.ival) = LockWaitSkip; ;} break; case 1632: #line 12205 "gram.y" { (yyval.ival) = LockWaitBlock; ;} break; case 1633: #line 12221 "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 1634: #line 12235 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1635: #line 12236 "gram.y" { (yyval.list) = list_concat((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].list)); ;} break; case 1636: #line 12241 "gram.y" { (yyvsp[(1) - (3)].target)->val = (Node *) (yyvsp[(3) - (3)].node); (yyval.list) = list_make1((yyvsp[(1) - (3)].target)); ;} break; case 1637: #line 12246 "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 1638: #line 12270 "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 1639: #line 12280 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 1640: #line 12281 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].target)); ;} break; case 1641: #line 12297 "gram.y" { MergeStmt *m = makeNode(MergeStmt); m->withClause = (yyvsp[(1) - (9)].with); m->relation = (yyvsp[(4) - (9)].range); m->sourceRelation = (yyvsp[(6) - (9)].node); m->joinCondition = (yyvsp[(8) - (9)].node); m->mergeWhenClauses = (yyvsp[(9) - (9)].list); (yyval.node) = (Node *) m; ;} break; case 1642: #line 12311 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1643: #line 12312 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list),(yyvsp[(2) - (2)].node)); ;} break; case 1644: #line 12317 "gram.y" { (yyvsp[(5) - (5)].mergewhen)->matched = true; (yyvsp[(5) - (5)].mergewhen)->condition = (yyvsp[(3) - (5)].node); (yyval.node) = (Node *) (yyvsp[(5) - (5)].mergewhen); ;} break; case 1645: #line 12324 "gram.y" { (yyvsp[(5) - (5)].mergewhen)->matched = true; (yyvsp[(5) - (5)].mergewhen)->condition = (yyvsp[(3) - (5)].node); (yyval.node) = (Node *) (yyvsp[(5) - (5)].mergewhen); ;} break; case 1646: #line 12331 "gram.y" { (yyvsp[(6) - (6)].mergewhen)->matched = false; (yyvsp[(6) - (6)].mergewhen)->condition = (yyvsp[(4) - (6)].node); (yyval.node) = (Node *) (yyvsp[(6) - (6)].mergewhen); ;} break; case 1647: #line 12338 "gram.y" { MergeWhenClause *m = makeNode(MergeWhenClause); m->matched = true; m->commandType = CMD_NOTHING; m->condition = (yyvsp[(3) - (6)].node); (yyval.node) = (Node *) m; ;} break; case 1648: #line 12348 "gram.y" { MergeWhenClause *m = makeNode(MergeWhenClause); m->matched = false; m->commandType = CMD_NOTHING; m->condition = (yyvsp[(4) - (7)].node); (yyval.node) = (Node *) m; ;} break; case 1649: #line 12360 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1650: #line 12361 "gram.y" { (yyval.node) = NULL; ;} break; case 1651: #line 12366 "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 1652: #line 12379 "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 1653: #line 12392 "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 1654: #line 12401 "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 1655: #line 12410 "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 1656: #line 12419 "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 1657: #line 12428 "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 1658: #line 12440 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 1659: #line 12452 "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 1660: #line 12463 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1661: #line 12466 "gram.y" { (yyval.ival) = 0; ;} break; case 1662: #line 12467 "gram.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) | CURSOR_OPT_NO_SCROLL; ;} break; case 1663: #line 12468 "gram.y" { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_SCROLL; ;} break; case 1664: #line 12469 "gram.y" { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_BINARY; ;} break; case 1665: #line 12470 "gram.y" { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_ASENSITIVE; ;} break; case 1666: #line 12471 "gram.y" { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_INSENSITIVE; ;} break; case 1667: #line 12474 "gram.y" { (yyval.ival) = 0; ;} break; case 1668: #line 12475 "gram.y" { (yyval.ival) = CURSOR_OPT_HOLD; ;} break; case 1669: #line 12476 "gram.y" { (yyval.ival) = 0; ;} break; case 1672: #line 12529 "gram.y" { (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; case 1673: #line 12530 "gram.y" { (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; case 1674: #line 12545 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1675: #line 12547 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list), NIL, NULL, NULL, yyscanner); (yyval.node) = (yyvsp[(1) - (2)].node); ;} break; case 1676: #line 12554 "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 1677: #line 12562 "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 1678: #line 12570 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(2) - (2)].node), NULL, NIL, NULL, (yyvsp[(1) - (2)].with), yyscanner); (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1679: #line 12578 "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 1680: #line 12586 "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 1681: #line 12594 "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 1682: #line 12604 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1683: #line 12605 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1684: #line 12640 "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 1685: #line 12656 "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 1686: #line 12670 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1687: #line 12672 "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 1688: #line 12691 "gram.y" { (yyval.node) = makeSetOp(SETOP_UNION, (yyvsp[(3) - (4)].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); ;} break; case 1689: #line 12695 "gram.y" { (yyval.node) = makeSetOp(SETOP_INTERSECT, (yyvsp[(3) - (4)].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); ;} break; case 1690: #line 12699 "gram.y" { (yyval.node) = makeSetOp(SETOP_EXCEPT, (yyvsp[(3) - (4)].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); ;} break; case 1691: #line 12714 "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 1692: #line 12721 "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 1693: #line 12728 "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 1694: #line 12737 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1695: #line 12738 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1696: #line 12742 "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 1697: #line 12757 "gram.y" { (yyval.ival) = CTEMaterializeAlways; ;} break; case 1698: #line 12758 "gram.y" { (yyval.ival) = CTEMaterializeNever; ;} break; case 1699: #line 12759 "gram.y" { (yyval.ival) = CTEMaterializeDefault; ;} break; case 1700: #line 12764 "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 1701: #line 12774 "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 1702: #line 12784 "gram.y" { (yyval.node) = NULL; ;} break; case 1703: #line 12791 "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 1704: #line 12803 "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 1705: #line 12815 "gram.y" { (yyval.node) = NULL; ;} break; case 1706: #line 12821 "gram.y" { (yyval.with) = (yyvsp[(1) - (1)].with); ;} break; case 1707: #line 12822 "gram.y" { (yyval.with) = NULL; ;} break; case 1708: #line 12827 "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 1709: #line 12838 "gram.y" { (yyval.into) = NULL; ;} break; case 1710: #line 12847 "gram.y" { (yyval.range) = (yyvsp[(3) - (3)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ;} break; case 1711: #line 12852 "gram.y" { (yyval.range) = (yyvsp[(3) - (3)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ;} break; case 1712: #line 12857 "gram.y" { (yyval.range) = (yyvsp[(4) - (4)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ;} break; case 1713: #line 12862 "gram.y" { (yyval.range) = (yyvsp[(4) - (4)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ;} break; case 1714: #line 12867 "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 1715: #line 12875 "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 1716: #line 12883 "gram.y" { (yyval.range) = (yyvsp[(3) - (3)].range); (yyval.range)->relpersistence = RELPERSISTENCE_UNLOGGED; ;} break; case 1717: #line 12888 "gram.y" { (yyval.range) = (yyvsp[(2) - (2)].range); (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; ;} break; case 1718: #line 12893 "gram.y" { (yyval.range) = (yyvsp[(1) - (1)].range); (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; ;} break; case 1721: #line 12904 "gram.y" { (yyval.setquantifier) = SET_QUANTIFIER_ALL; ;} break; case 1722: #line 12905 "gram.y" { (yyval.setquantifier) = SET_QUANTIFIER_DISTINCT; ;} break; case 1723: #line 12906 "gram.y" { (yyval.setquantifier) = SET_QUANTIFIER_DEFAULT; ;} break; case 1724: #line 12913 "gram.y" { (yyval.list) = list_make1(NIL); ;} break; case 1725: #line 12914 "gram.y" { (yyval.list) = (yyvsp[(4) - (5)].list); ;} break; case 1728: #line 12923 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1729: #line 12924 "gram.y" { (yyval.list) = NIL; ;} break; case 1730: #line 12928 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1731: #line 12929 "gram.y" { (yyval.list) = NIL; ;} break; case 1732: #line 12933 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); ;} break; case 1733: #line 12937 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].sortby)); ;} break; case 1734: #line 12938 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].sortby)); ;} break; case 1735: #line 12942 "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 1736: #line 12951 "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 1737: #line 12964 "gram.y" { (yyval.selectlimit) = (yyvsp[(1) - (2)].selectlimit); ((yyval.selectlimit))->limitOffset = (yyvsp[(2) - (2)].node); ;} break; case 1738: #line 12969 "gram.y" { (yyval.selectlimit) = (yyvsp[(2) - (2)].selectlimit); ((yyval.selectlimit))->limitOffset = (yyvsp[(1) - (2)].node); ;} break; case 1739: #line 12974 "gram.y" { (yyval.selectlimit) = (yyvsp[(1) - (1)].selectlimit); ;} break; case 1740: #line 12978 "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 1741: #line 12989 "gram.y" { (yyval.selectlimit) = (yyvsp[(1) - (1)].selectlimit); ;} break; case 1742: #line 12990 "gram.y" { (yyval.selectlimit) = NULL; ;} break; case 1743: #line 12995 "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 1744: #line 13004 "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 1745: #line 13020 "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 1746: #line 13029 "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 1747: #line 13038 "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 1748: #line 13047 "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 1749: #line 13059 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1750: #line 13062 "gram.y" { (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; case 1751: #line 13066 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1752: #line 13068 "gram.y" { /* LIMIT ALL is represented as a NULL constant */ (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); ;} break; case 1753: #line 13075 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1754: #line 13095 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1755: #line 13097 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1756: #line 13099 "gram.y" { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1757: #line 13103 "gram.y" { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival),(yylsp[(1) - (1)])); ;} break; case 1758: #line 13104 "gram.y" { (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str),(yylsp[(1) - (1)])); ;} break; case 1759: #line 13108 "gram.y" { (yyval.ival) = 0; ;} break; case 1760: #line 13109 "gram.y" { (yyval.ival) = 0; ;} break; case 1761: #line 13112 "gram.y" { (yyval.ival) = 0; ;} break; case 1762: #line 13113 "gram.y" { (yyval.ival) = 0; ;} break; case 1763: #line 13139 "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 1764: #line 13147 "gram.y" { GroupClause *n = (GroupClause *) palloc(sizeof(GroupClause)); n->distinct = false; n->list = NIL; (yyval.groupclause) = n; ;} break; case 1765: #line 13157 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1766: #line 13158 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].node)); ;} break; case 1767: #line 13162 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1768: #line 13163 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1769: #line 13164 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1770: #line 13165 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1771: #line 13166 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1772: #line 13171 "gram.y" { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[(1) - (2)])); ;} break; case 1773: #line 13184 "gram.y" { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 1774: #line 13191 "gram.y" { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 1775: #line 13198 "gram.y" { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); ;} break; case 1776: #line 13204 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1777: #line 13205 "gram.y" { (yyval.node) = NULL; ;} break; case 1778: #line 13209 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1779: #line 13210 "gram.y" { (yyval.list) = NIL; ;} break; case 1780: #line 13214 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1781: #line 13215 "gram.y" { (yyval.list) = NIL; ;} break; case 1782: #line 13219 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1783: #line 13220 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 1784: #line 13225 "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 1785: #line 13236 "gram.y" { (yyval.ival) = LCS_FORUPDATE; ;} break; case 1786: #line 13237 "gram.y" { (yyval.ival) = LCS_FORNOKEYUPDATE; ;} break; case 1787: #line 13238 "gram.y" { (yyval.ival) = LCS_FORSHARE; ;} break; case 1788: #line 13239 "gram.y" { (yyval.ival) = LCS_FORKEYSHARE; ;} break; case 1789: #line 13243 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1790: #line 13244 "gram.y" { (yyval.list) = NIL; ;} break; case 1791: #line 13255 "gram.y" { SelectStmt *n = makeNode(SelectStmt); n->valuesLists = list_make1((yyvsp[(3) - (4)].list)); (yyval.node) = (Node *) n; ;} break; case 1792: #line 13262 "gram.y" { SelectStmt *n = (SelectStmt *) (yyvsp[(1) - (5)].node); n->valuesLists = lappend(n->valuesLists, (yyvsp[(4) - (5)].list)); (yyval.node) = (Node *) n; ;} break; case 1793: #line 13280 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1794: #line 13281 "gram.y" { (yyval.list) = NIL; ;} break; case 1795: #line 13285 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1796: #line 13286 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1797: #line 13293 "gram.y" { (yyvsp[(1) - (2)].range)->alias = (yyvsp[(2) - (2)].alias); (yyval.node) = (Node *) (yyvsp[(1) - (2)].range); ;} break; case 1798: #line 13298 "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 1799: #line 13307 "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 1800: #line 13315 "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 1801: #line 13324 "gram.y" { RangeTableFunc *n = (RangeTableFunc *) (yyvsp[(1) - (2)].node); n->alias = (yyvsp[(2) - (2)].alias); (yyval.node) = (Node *) n; ;} break; case 1802: #line 13331 "gram.y" { RangeTableFunc *n = (RangeTableFunc *) (yyvsp[(2) - (3)].node); n->lateral = true; n->alias = (yyvsp[(3) - (3)].alias); (yyval.node) = (Node *) n; ;} break; case 1803: #line 13339 "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 1804: #line 13348 "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 1805: #line 13357 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].jexpr); ;} break; case 1806: #line 13361 "gram.y" { (yyvsp[(2) - (4)].jexpr)->alias = (yyvsp[(4) - (4)].alias); (yyval.node) = (Node *) (yyvsp[(2) - (4)].jexpr); ;} break; case 1807: #line 13387 "gram.y" { (yyval.jexpr) = (yyvsp[(2) - (3)].jexpr); ;} break; case 1808: #line 13391 "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 1809: #line 13405 "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 1810: #line 13426 "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 1811: #line 13448 "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 1812: #line 13461 "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 1813: #line 13478 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(2) - (5)].str); (yyval.alias)->colnames = (yyvsp[(4) - (5)].list); ;} break; case 1814: #line 13484 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(2) - (2)].str); ;} break; case 1815: #line 13489 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(1) - (4)].str); (yyval.alias)->colnames = (yyvsp[(3) - (4)].list); ;} break; case 1816: #line 13495 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(1) - (1)].str); ;} break; case 1817: #line 13501 "gram.y" { (yyval.alias) = (yyvsp[(1) - (1)].alias); ;} break; case 1818: #line 13502 "gram.y" { (yyval.alias) = NULL; ;} break; case 1819: #line 13513 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(2) - (2)].str); /* the column name list will be inserted later */ ;} break; case 1820: #line 13518 "gram.y" { (yyval.alias) = NULL; ;} break; case 1821: #line 13527 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (1)].alias), NIL); ;} break; case 1822: #line 13531 "gram.y" { (yyval.list) = list_make2(NULL, (yyvsp[(3) - (4)].list)); ;} break; case 1823: #line 13535 "gram.y" { Alias *a = makeNode(Alias); a->aliasname = (yyvsp[(2) - (5)].str); (yyval.list) = list_make2(a, (yyvsp[(4) - (5)].list)); ;} break; case 1824: #line 13542 "gram.y" { Alias *a = makeNode(Alias); a->aliasname = (yyvsp[(1) - (4)].str); (yyval.list) = list_make2(a, (yyvsp[(3) - (4)].list)); ;} break; case 1825: #line 13549 "gram.y" { (yyval.list) = list_make2(NULL, NIL); ;} break; case 1826: #line 13554 "gram.y" { (yyval.jtype) = JOIN_FULL; ;} break; case 1827: #line 13555 "gram.y" { (yyval.jtype) = JOIN_LEFT; ;} break; case 1828: #line 13556 "gram.y" { (yyval.jtype) = JOIN_RIGHT; ;} break; case 1829: #line 13557 "gram.y" { (yyval.jtype) = JOIN_INNER; ;} break; case 1832: #line 13578 "gram.y" { (yyval.node) = (Node *) list_make2((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].alias)); ;} break; case 1833: #line 13582 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1834: #line 13590 "gram.y" { /* inheritance query, implicitly */ (yyval.range) = (yyvsp[(1) - (1)].range); (yyval.range)->inh = true; (yyval.range)->alias = NULL; ;} break; case 1835: #line 13597 "gram.y" { (yyval.range) = (yyvsp[(1) - (1)].range); ;} break; case 1836: #line 13604 "gram.y" { /* inheritance query, explicitly */ (yyval.range) = (yyvsp[(1) - (2)].range); (yyval.range)->inh = true; (yyval.range)->alias = NULL; ;} break; case 1837: #line 13611 "gram.y" { /* no inheritance */ (yyval.range) = (yyvsp[(2) - (2)].range); (yyval.range)->inh = false; (yyval.range)->alias = NULL; ;} break; case 1838: #line 13618 "gram.y" { /* no inheritance, SQL99-style syntax */ (yyval.range) = (yyvsp[(3) - (4)].range); (yyval.range)->inh = false; (yyval.range)->alias = NULL; ;} break; case 1839: #line 13628 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;} break; case 1840: #line 13629 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;} break; case 1841: #line 13643 "gram.y" { (yyval.range) = (yyvsp[(1) - (1)].range); ;} break; case 1842: #line 13647 "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 1843: #line 13655 "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 1844: #line 13669 "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 1845: #line 13682 "gram.y" { (yyval.node) = (Node *) (yyvsp[(3) - (4)].node); ;} break; case 1846: #line 13683 "gram.y" { (yyval.node) = NULL; ;} break; case 1847: #line 13699 "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 1848: #line 13710 "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 1849: #line 13723 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list)); ;} break; case 1850: #line 13727 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} break; case 1851: #line 13728 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} break; case 1852: #line 13731 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 1853: #line 13732 "gram.y" { (yyval.list) = NIL; ;} break; case 1854: #line 13735 "gram.y" { (yyval.boolean) = true; ;} break; case 1855: #line 13736 "gram.y" { (yyval.boolean) = false; ;} break; case 1856: #line 13741 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1857: #line 13742 "gram.y" { (yyval.node) = NULL; ;} break; case 1858: #line 13747 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1859: #line 13749 "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 1860: #line 13757 "gram.y" { (yyval.node) = NULL; ;} break; case 1861: #line 13762 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1862: #line 13763 "gram.y" { (yyval.list) = NIL; ;} break; case 1863: #line 13768 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1864: #line 13772 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1865: #line 13778 "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 1866: #line 13803 "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 1867: #line 13815 "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 1868: #line 13827 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1869: #line 13828 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1870: #line 13833 "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 1871: #line 13847 "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, "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 1872: #line 13904 "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 1873: #line 13918 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1874: #line 13920 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1875: #line 13925 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1876: #line 13927 "gram.y" { (yyval.defelt) = makeDefElem("default", (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1877: #line 13929 "gram.y" { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeBoolean(true), (yylsp[(1) - (2)])); ;} break; case 1878: #line 13931 "gram.y" { (yyval.defelt) = makeDefElem("is_not_null", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); ;} break; case 1879: #line 13936 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 1880: #line 13938 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} break; case 1881: #line 13943 "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 1882: #line 13951 "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 1883: #line 13971 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (2)].typnam); (yyval.typnam)->arrayBounds = (yyvsp[(2) - (2)].list); ;} break; case 1884: #line 13976 "gram.y" { (yyval.typnam) = (yyvsp[(2) - (3)].typnam); (yyval.typnam)->arrayBounds = (yyvsp[(3) - (3)].list); (yyval.typnam)->setof = true; ;} break; case 1885: #line 13983 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (5)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(4) - (5)].ival))); ;} break; case 1886: #line 13988 "gram.y" { (yyval.typnam) = (yyvsp[(2) - (6)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(5) - (6)].ival))); (yyval.typnam)->setof = true; ;} break; case 1887: #line 13994 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (2)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); ;} break; case 1888: #line 13999 "gram.y" { (yyval.typnam) = (yyvsp[(2) - (3)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); (yyval.typnam)->setof = true; ;} break; case 1889: #line 14008 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeInteger(-1)); ;} break; case 1890: #line 14010 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (4)].list), makeInteger((yyvsp[(3) - (4)].ival))); ;} break; case 1891: #line 14012 "gram.y" { (yyval.list) = NIL; ;} break; case 1892: #line 14016 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1893: #line 14017 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1894: #line 14018 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1895: #line 14019 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1896: #line 14020 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1897: #line 14022 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (2)].typnam); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); ;} break; case 1898: #line 14027 "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 1899: #line 14046 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1900: #line 14047 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1901: #line 14048 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1902: #line 14049 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1903: #line 14061 "gram.y" { (yyval.typnam) = makeTypeName((yyvsp[(1) - (2)].str)); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1904: #line 14067 "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 1905: #line 14074 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1906: #line 14075 "gram.y" { (yyval.list) = NIL; ;} break; case 1907: #line 14082 "gram.y" { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1908: #line 14087 "gram.y" { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1909: #line 14092 "gram.y" { (yyval.typnam) = SystemTypeName("int2"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1910: #line 14097 "gram.y" { (yyval.typnam) = SystemTypeName("int8"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1911: #line 14102 "gram.y" { (yyval.typnam) = SystemTypeName("float4"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1912: #line 14107 "gram.y" { (yyval.typnam) = (yyvsp[(2) - (2)].typnam); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1913: #line 14112 "gram.y" { (yyval.typnam) = SystemTypeName("float8"); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1914: #line 14117 "gram.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1915: #line 14123 "gram.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1916: #line 14129 "gram.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1917: #line 14135 "gram.y" { (yyval.typnam) = SystemTypeName("bool"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1918: #line 14142 "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 1919: #line 14163 "gram.y" { (yyval.typnam) = SystemTypeName("float8"); ;} break; case 1920: #line 14173 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1921: #line 14177 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1922: #line 14185 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1923: #line 14189 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); (yyval.typnam)->typmods = NIL; ;} break; case 1924: #line 14197 "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 1925: #line 14209 "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 1926: #line 14230 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1927: #line 14234 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1928: #line 14240 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1929: #line 14244 "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 1930: #line 14257 "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 1931: #line 14265 "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 1932: #line 14275 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} break; case 1933: #line 14277 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} break; case 1934: #line 14279 "gram.y" { (yyval.str) = "varchar"; ;} break; case 1935: #line 14281 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;} break; case 1936: #line 14283 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;} break; case 1937: #line 14285 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} break; case 1938: #line 14289 "gram.y" { (yyval.boolean) = true; ;} break; case 1939: #line 14290 "gram.y" { (yyval.boolean) = false; ;} break; case 1940: #line 14298 "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 1941: #line 14307 "gram.y" { if ((yyvsp[(2) - (2)].boolean)) (yyval.typnam) = SystemTypeName("timestamptz"); else (yyval.typnam) = SystemTypeName("timestamp"); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1942: #line 14315 "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 1943: #line 14324 "gram.y" { if ((yyvsp[(2) - (2)].boolean)) (yyval.typnam) = SystemTypeName("timetz"); else (yyval.typnam) = SystemTypeName("time"); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1944: #line 14335 "gram.y" { (yyval.typnam) = SystemTypeName("interval"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1945: #line 14342 "gram.y" { (yyval.boolean) = true; ;} break; case 1946: #line 14343 "gram.y" { (yyval.boolean) = false; ;} break; case 1947: #line 14344 "gram.y" { (yyval.boolean) = false; ;} break; case 1948: #line 14349 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[(1) - (1)]))); ;} break; case 1949: #line 14351 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[(1) - (1)]))); ;} break; case 1950: #line 14353 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[(1) - (1)]))); ;} break; case 1951: #line 14355 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[(1) - (1)]))); ;} break; case 1952: #line 14357 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[(1) - (1)]))); ;} break; case 1953: #line 14359 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1954: #line 14361 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) | INTERVAL_MASK(MONTH), (yylsp[(1) - (3)]))); ;} break; case 1955: #line 14366 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR), (yylsp[(1) - (3)]))); ;} break; case 1956: #line 14371 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)]))); ;} break; case 1957: #line 14377 "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 1958: #line 14385 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)]))); ;} break; case 1959: #line 14390 "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 1960: #line 14397 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])); ;} break; case 1961: #line 14403 "gram.y" { (yyval.list) = NIL; ;} break; case 1962: #line 14408 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (1)]))); ;} break; case 1963: #line 14412 "gram.y" { (yyval.list) = list_make2(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (4)])), makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); ;} break; case 1964: #line 14447 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1965: #line 14449 "gram.y" { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); ;} break; case 1966: #line 14451 "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 1967: #line 14460 "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 1968: #line 14476 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1969: #line 14478 "gram.y" { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1970: #line 14480 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1971: #line 14482 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1972: #line 14484 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1973: #line 14486 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1974: #line 14488 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1975: #line 14490 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1976: #line 14492 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1977: #line 14494 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1978: #line 14496 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1979: #line 14498 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1980: #line 14500 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1981: #line 14502 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1982: #line 14505 "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 1983: #line 14507 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1984: #line 14510 "gram.y" { (yyval.node) = makeAndExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1985: #line 14512 "gram.y" { (yyval.node) = makeOrExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1986: #line 14514 "gram.y" { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1987: #line 14516 "gram.y" { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1988: #line 14519 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1989: #line 14524 "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 1990: #line 14533 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); ;} break; case 1991: #line 14538 "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 1992: #line 14547 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1993: #line 14552 "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 1994: #line 14561 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); ;} break; case 1995: #line 14566 "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 1996: #line 14576 "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 1997: #line 14585 "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 1998: #line 14594 "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 1999: #line 14603 "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 2000: #line 14622 "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 2001: #line 14631 "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 2002: #line 14640 "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 2003: #line 14649 "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 2004: #line 14658 "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 2005: #line 14675 "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 2006: #line 14684 "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 2007: #line 14693 "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 2008: #line 14702 "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 2009: #line 14711 "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 2010: #line 14720 "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 2011: #line 14729 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); ;} break; case 2012: #line 14733 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])); ;} break; case 2013: #line 14737 "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 2014: #line 14745 "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 2015: #line 14753 "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 2016: #line 14761 "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 2017: #line 14769 "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 2018: #line 14790 "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 2019: #line 14813 "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 2020: #line 14825 "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 2021: #line 14832 "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 2022: #line 14848 "gram.y" { (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[(1) - (3)].node)), (yylsp[(2) - (3)])); ;} break; case 2023: #line 14853 "gram.y" { (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[(1) - (4)].node)), (yylsp[(2) - (4)])), (yylsp[(2) - (4)])); ;} break; case 2024: #line 14859 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("is_normalized"), list_make1((yyvsp[(1) - (3)].node)), COERCE_SQL_SYNTAX, (yylsp[(2) - (3)])); ;} break; case 2025: #line 14866 "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 2026: #line 14873 "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 2027: #line 14881 "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 2028: #line 14890 "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 2029: #line 14909 "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 2030: #line 14927 "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 2031: #line 14953 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2032: #line 14955 "gram.y" { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); ;} break; case 2033: #line 14957 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 2034: #line 14959 "gram.y" { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 2035: #line 14961 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2036: #line 14963 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2037: #line 14965 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2038: #line 14967 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2039: #line 14969 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2040: #line 14971 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2041: #line 14973 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2042: #line 14975 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2043: #line 14977 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2044: #line 14979 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2045: #line 14981 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2046: #line 14983 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 2047: #line 14985 "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 2048: #line 14987 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 2049: #line 14989 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); ;} break; case 2050: #line 14993 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])); ;} break; case 2051: #line 14997 "gram.y" { (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[(1) - (3)].node)), (yylsp[(2) - (3)])); ;} break; case 2052: #line 15002 "gram.y" { (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[(1) - (4)].node)), (yylsp[(2) - (4)])), (yylsp[(2) - (4)])); ;} break; case 2053: #line 15017 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2054: #line 15018 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2055: #line 15020 "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 2056: #line 15037 "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 2057: #line 15050 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2058: #line 15052 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2059: #line 15054 "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 2060: #line 15066 "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 2061: #line 15091 "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 2062: #line 15103 "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 2063: #line 15115 "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 2064: #line 15123 "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 2065: #line 15134 "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 2066: #line 15145 "gram.y" { GroupingFunc *g = makeNode(GroupingFunc); g->args = (yyvsp[(3) - (4)].list); g->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *) g; ;} break; case 2067: #line 15155 "gram.y" { (yyval.node) = (Node *) makeFuncCall((yyvsp[(1) - (3)].list), NIL, COERCE_EXPLICIT_CALL, (yylsp[(1) - (3)])); ;} break; case 2068: #line 15161 "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 2069: #line 15170 "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 2070: #line 15180 "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 2071: #line 15190 "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 2072: #line 15203 "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 2073: #line 15213 "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 2074: #line 15244 "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 2075: #line 15280 "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 2076: #line 15290 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2077: #line 15300 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2078: #line 15301 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2079: #line 15302 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2080: #line 15310 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("pg_collation_for"), list_make1((yyvsp[(4) - (5)].node)), COERCE_SQL_SYNTAX, (yylsp[(1) - (5)])); ;} break; case 2081: #line 15317 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_DATE, -1, (yylsp[(1) - (1)])); ;} break; case 2082: #line 15321 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME, -1, (yylsp[(1) - (1)])); ;} break; case 2083: #line 15325 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); ;} break; case 2084: #line 15329 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[(1) - (1)])); ;} break; case 2085: #line 15333 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); ;} break; case 2086: #line 15337 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME, -1, (yylsp[(1) - (1)])); ;} break; case 2087: #line 15341 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); ;} break; case 2088: #line 15345 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP, -1, (yylsp[(1) - (1)])); ;} break; case 2089: #line 15349 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); ;} break; case 2090: #line 15353 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_ROLE, -1, (yylsp[(1) - (1)])); ;} break; case 2091: #line 15357 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_USER, -1, (yylsp[(1) - (1)])); ;} break; case 2092: #line 15361 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_SESSION_USER, -1, (yylsp[(1) - (1)])); ;} break; case 2093: #line 15365 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("system_user"), NIL, COERCE_SQL_SYNTAX, (yylsp[(1) - (1)])); ;} break; case 2094: #line 15372 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_USER, -1, (yylsp[(1) - (1)])); ;} break; case 2095: #line 15376 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_CATALOG, -1, (yylsp[(1) - (1)])); ;} break; case 2096: #line 15380 "gram.y" { (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_SCHEMA, -1, (yylsp[(1) - (1)])); ;} break; case 2097: #line 15384 "gram.y" { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), (yylsp[(1) - (6)])); ;} break; case 2098: #line 15386 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("extract"), (yyvsp[(3) - (4)].list), COERCE_SQL_SYNTAX, (yylsp[(1) - (4)])); ;} break; case 2099: #line 15393 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("normalize"), list_make1((yyvsp[(3) - (4)].node)), COERCE_SQL_SYNTAX, (yylsp[(1) - (4)])); ;} break; case 2100: #line 15400 "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 2101: #line 15407 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlay"), (yyvsp[(3) - (4)].list), COERCE_SQL_SYNTAX, (yylsp[(1) - (4)])); ;} break; case 2102: #line 15414 "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 2103: #line 15425 "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 2104: #line 15439 "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 2105: #line 15449 "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 2106: #line 15460 "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 2107: #line 15476 "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 2108: #line 15486 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("ltrim"), (yyvsp[(4) - (5)].list), COERCE_SQL_SYNTAX, (yylsp[(1) - (5)])); ;} break; case 2109: #line 15493 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("rtrim"), (yyvsp[(4) - (5)].list), COERCE_SQL_SYNTAX, (yylsp[(1) - (5)])); ;} break; case 2110: #line 15500 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"), (yyvsp[(3) - (4)].list), COERCE_SQL_SYNTAX, (yylsp[(1) - (4)])); ;} break; case 2111: #line 15507 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NULLIF, "=", (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(1) - (6)])); ;} break; case 2112: #line 15511 "gram.y" { CoalesceExpr *c = makeNode(CoalesceExpr); c->args = (yyvsp[(3) - (4)].list); c->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *) c; ;} break; case 2113: #line 15519 "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 2114: #line 15528 "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 2115: #line 15537 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLCONCAT, NULL, NIL, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 2116: #line 15541 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (5)].str), NIL, NIL, (yylsp[(1) - (5)])); ;} break; case 2117: #line 15545 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (7)].str), (yyvsp[(6) - (7)].list), NIL, (yylsp[(1) - (7)])); ;} break; case 2118: #line 15549 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (7)].str), NIL, (yyvsp[(6) - (7)].list), (yylsp[(1) - (7)])); ;} break; case 2119: #line 15553 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (9)].str), (yyvsp[(6) - (9)].list), (yyvsp[(8) - (9)].list), (yylsp[(1) - (9)])); ;} break; case 2120: #line 15557 "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 2121: #line 15566 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLFOREST, NULL, (yyvsp[(3) - (4)].list), NIL, (yylsp[(1) - (4)])); ;} break; case 2122: #line 15570 "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 2123: #line 15580 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[(4) - (5)].str), NULL, NIL, (yylsp[(1) - (5)])); ;} break; case 2124: #line 15584 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[(4) - (7)].str), NULL, list_make1((yyvsp[(6) - (7)].node)), (yylsp[(1) - (7)])); ;} break; case 2125: #line 15588 "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 2126: #line 15593 "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 2127: #line 15604 "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 2128: #line 15613 "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 2129: #line 15624 "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 2130: #line 15639 "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 2131: #line 15654 "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 2132: #line 15667 "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 2133: #line 15682 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 2134: #line 15684 "gram.y" { (yyval.node) = makeNullAConst(-1); ;} break; case 2135: #line 15688 "gram.y" { (yyval.node) = makeIntConst(XML_STANDALONE_YES, -1); ;} break; case 2136: #line 15690 "gram.y" { (yyval.node) = makeIntConst(XML_STANDALONE_NO, -1); ;} break; case 2137: #line 15692 "gram.y" { (yyval.node) = makeIntConst(XML_STANDALONE_NO_VALUE, -1); ;} break; case 2138: #line 15694 "gram.y" { (yyval.node) = makeIntConst(XML_STANDALONE_OMITTED, -1); ;} break; case 2139: #line 15697 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 2140: #line 15700 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 2141: #line 15701 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} break; case 2142: #line 15705 "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 2143: #line 15713 "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 2144: #line 15722 "gram.y" { (yyval.ival) = XMLOPTION_DOCUMENT; ;} break; case 2145: #line 15723 "gram.y" { (yyval.ival) = XMLOPTION_CONTENT; ;} break; case 2146: #line 15726 "gram.y" { (yyval.boolean) = true; ;} break; case 2147: #line 15727 "gram.y" { (yyval.boolean) = false; ;} break; case 2148: #line 15728 "gram.y" { (yyval.boolean) = false; ;} break; case 2149: #line 15731 "gram.y" { (yyval.boolean) = true; ;} break; case 2150: #line 15732 "gram.y" { (yyval.boolean) = false; ;} break; case 2151: #line 15733 "gram.y" { (yyval.boolean) = false; ;} break; case 2152: #line 15739 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 2153: #line 15743 "gram.y" { (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; case 2154: #line 15747 "gram.y" { (yyval.node) = (yyvsp[(3) - (3)].node); ;} break; case 2155: #line 15751 "gram.y" { (yyval.node) = (yyvsp[(3) - (4)].node); ;} break; case 2158: #line 15766 "gram.y" { (yyval.list) = (yyvsp[(4) - (5)].list); ;} break; case 2159: #line 15767 "gram.y" { (yyval.list) = NIL; ;} break; case 2160: #line 15771 "gram.y" { (yyval.node) = (yyvsp[(4) - (5)].node); ;} break; case 2161: #line 15772 "gram.y" { (yyval.node) = NULL; ;} break; case 2162: #line 15780 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 2163: #line 15781 "gram.y" { (yyval.list) = NIL; ;} break; case 2164: #line 15785 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].windef)); ;} break; case 2165: #line 15787 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].windef)); ;} break; case 2166: #line 15792 "gram.y" { WindowDef *n = (yyvsp[(3) - (3)].windef); n->name = (yyvsp[(1) - (3)].str); (yyval.windef) = n; ;} break; case 2167: #line 15801 "gram.y" { (yyval.windef) = (yyvsp[(2) - (2)].windef); ;} break; case 2168: #line 15803 "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 2169: #line 15817 "gram.y" { (yyval.windef) = NULL; ;} break; case 2170: #line 15822 "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 2171: #line 15848 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2172: #line 15849 "gram.y" { (yyval.str) = NULL; ;} break; case 2173: #line 15852 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); ;} break; case 2174: #line 15853 "gram.y" { (yyval.list) = NIL; ;} break; case 2175: #line 15862 "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 2176: #line 15870 "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 2177: #line 15878 "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 2178: #line 15886 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_DEFAULTS; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; ;} break; case 2179: #line 15897 "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 2180: #line 15915 "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 2181: #line 15961 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; ;} break; case 2182: #line 15970 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; ;} break; case 2183: #line 15979 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_CURRENT_ROW; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; ;} break; case 2184: #line 15988 "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 2185: #line 15997 "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 2186: #line 16008 "gram.y" { (yyval.ival) = FRAMEOPTION_EXCLUDE_CURRENT_ROW; ;} break; case 2187: #line 16009 "gram.y" { (yyval.ival) = FRAMEOPTION_EXCLUDE_GROUP; ;} break; case 2188: #line 16010 "gram.y" { (yyval.ival) = FRAMEOPTION_EXCLUDE_TIES; ;} break; case 2189: #line 16011 "gram.y" { (yyval.ival) = 0; ;} break; case 2190: #line 16012 "gram.y" { (yyval.ival) = 0; ;} break; case 2191: #line 16026 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 2192: #line 16027 "gram.y" { (yyval.list) = NIL; ;} break; case 2193: #line 16028 "gram.y" { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;} break; case 2194: #line 16031 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 2195: #line 16032 "gram.y" { (yyval.list) = NIL; ;} break; case 2196: #line 16035 "gram.y" { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;} break; case 2197: #line 16038 "gram.y" { (yyval.ival) = ANY_SUBLINK; ;} break; case 2198: #line 16039 "gram.y" { (yyval.ival) = ANY_SUBLINK; ;} break; case 2199: #line 16040 "gram.y" { (yyval.ival) = ALL_SUBLINK; ;} break; case 2200: #line 16043 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2201: #line 16044 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2202: #line 16047 "gram.y" { (yyval.str) = "+"; ;} break; case 2203: #line 16048 "gram.y" { (yyval.str) = "-"; ;} break; case 2204: #line 16049 "gram.y" { (yyval.str) = "*"; ;} break; case 2205: #line 16050 "gram.y" { (yyval.str) = "/"; ;} break; case 2206: #line 16051 "gram.y" { (yyval.str) = "%"; ;} break; case 2207: #line 16052 "gram.y" { (yyval.str) = "^"; ;} break; case 2208: #line 16053 "gram.y" { (yyval.str) = "<"; ;} break; case 2209: #line 16054 "gram.y" { (yyval.str) = ">"; ;} break; case 2210: #line 16055 "gram.y" { (yyval.str) = "="; ;} break; case 2211: #line 16056 "gram.y" { (yyval.str) = "<="; ;} break; case 2212: #line 16057 "gram.y" { (yyval.str) = ">="; ;} break; case 2213: #line 16058 "gram.y" { (yyval.str) = "<>"; ;} break; case 2214: #line 16062 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 2215: #line 16064 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 2216: #line 16069 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 2217: #line 16071 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 2218: #line 16076 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 2219: #line 16078 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 2220: #line 16080 "gram.y" { (yyval.list) = list_make1(makeString("~~")); ;} break; case 2221: #line 16082 "gram.y" { (yyval.list) = list_make1(makeString("!~~")); ;} break; case 2222: #line 16084 "gram.y" { (yyval.list) = list_make1(makeString("~~*")); ;} break; case 2223: #line 16086 "gram.y" { (yyval.list) = list_make1(makeString("!~~*")); ;} break; case 2224: #line 16098 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2225: #line 16102 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 2226: #line 16109 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2227: #line 16113 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 2228: #line 16119 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2229: #line 16123 "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 2230: #line 16133 "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 2231: #line 16144 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 2232: #line 16145 "gram.y" { (yyval.list) = NIL; ;} break; case 2233: #line 16148 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;} break; case 2234: #line 16149 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;} break; case 2235: #line 16153 "gram.y" { (yyval.node) = makeAArrayExpr((yyvsp[(2) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 2236: #line 16157 "gram.y" { (yyval.node) = makeAArrayExpr((yyvsp[(2) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 2237: #line 16161 "gram.y" { (yyval.node) = makeAArrayExpr(NIL, (yylsp[(1) - (2)])); ;} break; case 2238: #line 16166 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2239: #line 16167 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 2240: #line 16173 "gram.y" { (yyval.list) = list_make2(makeStringConst((yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node)); ;} break; case 2241: #line 16177 "gram.y" { (yyval.list) = list_make2(makeParamRef((yyvsp[(1) - (3)].ival), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node)); ;} break; case 2242: #line 16186 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2243: #line 16187 "gram.y" { (yyval.str) = "year"; ;} break; case 2244: #line 16188 "gram.y" { (yyval.str) = "month"; ;} break; case 2245: #line 16189 "gram.y" { (yyval.str) = "day"; ;} break; case 2246: #line 16190 "gram.y" { (yyval.str) = "hour"; ;} break; case 2247: #line 16191 "gram.y" { (yyval.str) = "minute"; ;} break; case 2248: #line 16192 "gram.y" { (yyval.str) = "second"; ;} break; case 2249: #line 16193 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2250: #line 16197 "gram.y" { (yyval.str) = "NFC"; ;} break; case 2251: #line 16198 "gram.y" { (yyval.str) = "NFD"; ;} break; case 2252: #line 16199 "gram.y" { (yyval.str) = "NFKC"; ;} break; case 2253: #line 16200 "gram.y" { (yyval.str) = "NFKD"; ;} break; case 2254: #line 16206 "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 2255: #line 16211 "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 2256: #line 16219 "gram.y" { (yyval.list) = list_make2((yyvsp[(3) - (3)].node), (yyvsp[(1) - (3)].node)); ;} break; case 2257: #line 16241 "gram.y" { (yyval.list) = list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)); ;} break; case 2258: #line 16245 "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 2259: #line 16250 "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 2260: #line 16261 "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 2261: #line 16278 "gram.y" { (yyval.list) = list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)); ;} break; case 2262: #line 16283 "gram.y" { (yyval.list) = lappend((yyvsp[(3) - (3)].list), (yyvsp[(1) - (3)].node)); ;} break; case 2263: #line 16284 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 2264: #line 16285 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 2265: #line 16289 "gram.y" { SubLink *n = makeNode(SubLink); n->subselect = (yyvsp[(1) - (1)].node); /* other fields will be filled later */ (yyval.node) = (Node *) n; ;} break; case 2266: #line 16296 "gram.y" { (yyval.node) = (Node *) (yyvsp[(2) - (3)].list); ;} break; case 2267: #line 16307 "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 2268: #line 16321 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2269: #line 16322 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 2270: #line 16327 "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 2271: #line 16338 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 2272: #line 16339 "gram.y" { (yyval.node) = NULL; ;} break; case 2273: #line 16342 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2274: #line 16343 "gram.y" { (yyval.node) = NULL; ;} break; case 2275: #line 16347 "gram.y" { (yyval.node) = makeColumnRef((yyvsp[(1) - (1)].str), NIL, (yylsp[(1) - (1)]), yyscanner); ;} break; case 2276: #line 16351 "gram.y" { (yyval.node) = makeColumnRef((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner); ;} break; case 2277: #line 16358 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(2) - (2)].str)); ;} break; case 2278: #line 16362 "gram.y" { (yyval.node) = (Node *) makeNode(A_Star); ;} break; case 2279: #line 16366 "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 2280: #line 16375 "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 2281: #line 16386 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 2282: #line 16387 "gram.y" { (yyval.node) = NULL; ;} break; case 2283: #line 16391 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2284: #line 16392 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 2285: #line 16396 "gram.y" { (yyval.list) = NIL; ;} break; case 2286: #line 16397 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 2289: #line 16407 "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 2290: #line 16416 "gram.y" { (yyval.node) = (Node *) makeJsonFormat(JS_FORMAT_JSON, (yyvsp[(3) - (3)].ival), (yylsp[(1) - (3)])); ;} break; case 2291: #line 16420 "gram.y" { (yyval.node) = (Node *) makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1); ;} break; case 2292: #line 16426 "gram.y" { (yyval.ival) = makeJsonEncoding((yyvsp[(2) - (2)].str)); ;} break; case 2293: #line 16427 "gram.y" { (yyval.ival) = JS_ENC_DEFAULT; ;} break; case 2294: #line 16432 "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 2295: #line 16440 "gram.y" { (yyval.node) = NULL; ;} break; case 2296: #line 16444 "gram.y" { (yyval.ival) = JS_TYPE_ANY; ;} break; case 2297: #line 16445 "gram.y" { (yyval.ival) = JS_TYPE_ANY; ;} break; case 2298: #line 16446 "gram.y" { (yyval.ival) = JS_TYPE_ARRAY; ;} break; case 2299: #line 16447 "gram.y" { (yyval.ival) = JS_TYPE_OBJECT; ;} break; case 2300: #line 16448 "gram.y" { (yyval.ival) = JS_TYPE_SCALAR; ;} break; case 2301: #line 16453 "gram.y" { (yyval.boolean) = true; ;} break; case 2302: #line 16454 "gram.y" { (yyval.boolean) = true; ;} break; case 2303: #line 16455 "gram.y" { (yyval.boolean) = false; ;} break; case 2304: #line 16456 "gram.y" { (yyval.boolean) = false; ;} break; case 2305: #line 16457 "gram.y" { (yyval.boolean) = false; ;} break; case 2306: #line 16462 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2307: #line 16464 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 2308: #line 16474 "gram.y" { (yyval.node) = makeJsonKeyValue((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); ;} break; case 2309: #line 16477 "gram.y" { (yyval.node) = makeJsonKeyValue((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); ;} break; case 2310: #line 16482 "gram.y" { (yyval.boolean) = false; ;} break; case 2311: #line 16483 "gram.y" { (yyval.boolean) = true; ;} break; case 2312: #line 16484 "gram.y" { (yyval.boolean) = false; ;} break; case 2313: #line 16488 "gram.y" { (yyval.boolean) = false; ;} break; case 2314: #line 16489 "gram.y" { (yyval.boolean) = true; ;} break; case 2315: #line 16490 "gram.y" { (yyval.boolean) = true; ;} break; case 2316: #line 16494 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2317: #line 16495 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));;} break; case 2318: #line 16505 "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 2319: #line 16523 "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 2320: #line 16537 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); ;} break; case 2321: #line 16538 "gram.y" { (yyval.list) = NIL; ;} break; case 2322: #line 16547 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 2323: #line 16548 "gram.y" { (yyval.list) = NIL; ;} break; case 2324: #line 16552 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 2325: #line 16553 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} break; case 2326: #line 16557 "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 2327: #line 16565 "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 2328: #line 16573 "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 2329: #line 16581 "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 2330: #line 16603 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;} break; case 2331: #line 16604 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;} break; case 2332: #line 16616 "gram.y" { (yyval.range) = makeRangeVar(NULL, (yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 2333: #line 16620 "gram.y" { (yyval.range) = makeRangeVarFromQualifiedName((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner); ;} break; case 2334: #line 16626 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 2335: #line 16628 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; case 2336: #line 16632 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2337: #line 16634 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2338: #line 16636 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2339: #line 16647 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 2340: #line 16649 "gram.y" { (yyval.list) = check_func_name(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)), yyscanner); ;} break; case 2341: #line 16660 "gram.y" { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); ;} break; case 2342: #line 16664 "gram.y" { (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 2343: #line 16668 "gram.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 2344: #line 16672 "gram.y" { (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 2345: #line 16676 "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 2346: #line 16685 "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 2347: #line 16693 "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 2348: #line 16725 "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 2349: #line 16732 "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 2350: #line 16764 "gram.y" { (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam)); ;} break; case 2351: #line 16768 "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 2352: #line 16775 "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 2353: #line 16783 "gram.y" { (yyval.node) = makeParamRefCast((yyvsp[(2) - (2)].ival), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam)); ;} break; case 2354: #line 16787 "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 2355: #line 16793 "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 2356: #line 16800 "gram.y" { (yyval.node) = makeBoolAConst(true, (yylsp[(1) - (1)])); ;} break; case 2357: #line 16804 "gram.y" { (yyval.node) = makeBoolAConst(false, (yylsp[(1) - (1)])); ;} break; case 2358: #line 16808 "gram.y" { (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); ;} break; case 2359: #line 16813 "gram.y" { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} break; case 2360: #line 16814 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2361: #line 16816 "gram.y" { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} break; case 2362: #line 16817 "gram.y" { (yyval.ival) = + (yyvsp[(2) - (2)].ival); ;} break; case 2363: #line 16818 "gram.y" { (yyval.ival) = - (yyvsp[(2) - (2)].ival); ;} break; case 2364: #line 16823 "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 2365: #line 16864 "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 2366: #line 16892 "gram.y" { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_ROLE, (yylsp[(1) - (1)])); ;} break; case 2367: #line 16896 "gram.y" { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[(1) - (1)])); ;} break; case 2368: #line 16900 "gram.y" { (yyval.rolespec) = makeRoleSpec(ROLESPEC_SESSION_USER, (yylsp[(1) - (1)])); ;} break; case 2369: #line 16906 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].rolespec)); ;} break; case 2370: #line 16908 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].rolespec)); ;} break; case 2371: #line 16925 "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 2372: #line 16958 "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 2373: #line 16970 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2374: #line 16971 "gram.y" { (yyval.str) = psprintf("$%d", (yyvsp[(1) - (1)].ival)); ;} break; case 2377: #line 16992 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2378: #line 16993 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2379: #line 16994 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2380: #line 16999 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2381: #line 17000 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2382: #line 17001 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2383: #line 17006 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2384: #line 17007 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2385: #line 17008 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2386: #line 17009 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2387: #line 17015 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2388: #line 17016 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2389: #line 17017 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2390: #line 17018 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2391: #line 17019 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2392: #line 17025 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2393: #line 17026 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; /* Line 1267 of yacc.c. */ #line 50175 "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 17998 "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 * makeStringConst(char *str, int location) { A_Const *n = makeNode(A_Const); n->val.sval.type = T_String; n->val.sval.sval = str; 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 && limitClause->limitOption != LIMIT_OPTION_DEFAULT) { 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 */ }