/*-------------------------------------------------------------------- * Symbols referenced in this file: * - parser_init * - base_yyparse * - SystemTypeName * - SystemFuncName * - yypact * - yytranslate * - yycheck * - yytable * - yydefact * - yyr2 * - makeStringConst * - makeAConst * - makeStringConstCast * - makeIntConst * - processCASbits * - makeRangeVarFromAnyName * - SplitColQualList * - doNegateFloat * - extractAggrArgTypes * - makeRoleSpec * - extractArgTypes * - mergeTableFuncParameters * - TableFuncTypeName * - makeOrderedSetArgs * - makeRecursiveViewSelect * - check_indirection * - insertSelectOptions * - makeSetOp * - makeNullAConst * - makeTypeCast * - doNegate * - makeInterval_or_AExprOp * - makeAndExpr * - makeOrExpr * - makeNotExpr * - makeXmlExpr * - makeParamRef * - makeBoolAConst * - makeAArrayExpr * - makeColumnRef * - check_qualified_name * - check_func_name * - makeFloatConst * - 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, FCONST = 259, SCONST = 260, BCONST = 261, XCONST = 262, Op = 263, ICONST = 264, PARAM = 265, TYPECAST = 266, DOT_DOT = 267, COLON_EQUALS = 268, EQUALS_GREATER = 269, LESS_EQUALS = 270, GREATER_EQUALS = 271, NOT_EQUALS = 272, ABORT_P = 273, ABSOLUTE_P = 274, ACCESS = 275, ACTION = 276, ADD_P = 277, ADMIN = 278, AFTER = 279, AGGREGATE = 280, ALL = 281, ALSO = 282, ALTER = 283, ALWAYS = 284, ANALYSE = 285, ANALYZE = 286, AND = 287, ANY = 288, ARRAY = 289, AS = 290, ASC = 291, ASSERTION = 292, ASSIGNMENT = 293, ASYMMETRIC = 294, AT = 295, ATTRIBUTE = 296, AUTHORIZATION = 297, BACKWARD = 298, BEFORE = 299, BEGIN_P = 300, BETWEEN = 301, BIGINT = 302, BINARY = 303, BIT = 304, BOOLEAN_P = 305, BOTH = 306, BY = 307, CACHE = 308, CALLED = 309, CASCADE = 310, CASCADED = 311, CASE = 312, CAST = 313, CATALOG_P = 314, CHAIN = 315, CHAR_P = 316, CHARACTER = 317, CHARACTERISTICS = 318, CHECK = 319, CHECKPOINT = 320, CLASS = 321, CLOSE = 322, CLUSTER = 323, COALESCE = 324, COLLATE = 325, COLLATION = 326, COLUMN = 327, COMMENT = 328, COMMENTS = 329, COMMIT = 330, COMMITTED = 331, CONCURRENTLY = 332, CONFIGURATION = 333, CONFLICT = 334, CONNECTION = 335, CONSTRAINT = 336, CONSTRAINTS = 337, CONTENT_P = 338, CONTINUE_P = 339, CONVERSION_P = 340, COPY = 341, COST = 342, CREATE = 343, CROSS = 344, CSV = 345, CUBE = 346, CURRENT_P = 347, CURRENT_CATALOG = 348, CURRENT_DATE = 349, CURRENT_ROLE = 350, CURRENT_SCHEMA = 351, CURRENT_TIME = 352, CURRENT_TIMESTAMP = 353, CURRENT_USER = 354, CURSOR = 355, CYCLE = 356, DATA_P = 357, DATABASE = 358, DAY_P = 359, DEALLOCATE = 360, DEC = 361, DECIMAL_P = 362, DECLARE = 363, DEFAULT = 364, DEFAULTS = 365, DEFERRABLE = 366, DEFERRED = 367, DEFINER = 368, DELETE_P = 369, DELIMITER = 370, DELIMITERS = 371, DESC = 372, DICTIONARY = 373, DISABLE_P = 374, DISCARD = 375, DISTINCT = 376, DO = 377, DOCUMENT_P = 378, DOMAIN_P = 379, DOUBLE_P = 380, DROP = 381, EACH = 382, ELSE = 383, ENABLE_P = 384, ENCODING = 385, ENCRYPTED = 386, END_P = 387, ENUM_P = 388, ESCAPE = 389, EVENT = 390, EXCEPT = 391, EXCLUDE = 392, EXCLUDING = 393, EXCLUSIVE = 394, EXECUTE = 395, EXISTS = 396, EXPLAIN = 397, EXTENSION = 398, EXTERNAL = 399, EXTRACT = 400, FALSE_P = 401, FAMILY = 402, FETCH = 403, FILTER = 404, FIRST_P = 405, FLOAT_P = 406, FOLLOWING = 407, FOR = 408, FORCE = 409, FOREIGN = 410, FORWARD = 411, FREEZE = 412, FROM = 413, FULL = 414, FUNCTION = 415, FUNCTIONS = 416, GLOBAL = 417, GRANT = 418, GRANTED = 419, GREATEST = 420, GROUP_P = 421, GROUPING = 422, HANDLER = 423, HAVING = 424, HEADER_P = 425, HOLD = 426, HOUR_P = 427, IDENTITY_P = 428, IF_P = 429, ILIKE = 430, IMMEDIATE = 431, IMMUTABLE = 432, IMPLICIT_P = 433, IMPORT_P = 434, IN_P = 435, INCLUDING = 436, INCREMENT = 437, INDEX = 438, INDEXES = 439, INHERIT = 440, INHERITS = 441, INITIALLY = 442, INLINE_P = 443, INNER_P = 444, INOUT = 445, INPUT_P = 446, INSENSITIVE = 447, INSERT = 448, INSTEAD = 449, INT_P = 450, INTEGER = 451, INTERSECT = 452, INTERVAL = 453, INTO = 454, INVOKER = 455, IS = 456, ISNULL = 457, ISOLATION = 458, JOIN = 459, KEY = 460, LABEL = 461, LANGUAGE = 462, LARGE_P = 463, LAST_P = 464, LATERAL_P = 465, LEADING = 466, LEAKPROOF = 467, LEAST = 468, LEFT = 469, LEVEL = 470, LIKE = 471, LIMIT = 472, LISTEN = 473, LOAD = 474, LOCAL = 475, LOCALTIME = 476, LOCALTIMESTAMP = 477, LOCATION = 478, LOCK_P = 479, LOCKED = 480, LOGGED = 481, MAPPING = 482, MATCH = 483, MATERIALIZED = 484, MAXVALUE = 485, MINUTE_P = 486, MINVALUE = 487, MODE = 488, MONTH_P = 489, MOVE = 490, NAME_P = 491, NAMES = 492, NATIONAL = 493, NATURAL = 494, NCHAR = 495, NEXT = 496, NO = 497, NONE = 498, NOT = 499, NOTHING = 500, NOTIFY = 501, NOTNULL = 502, NOWAIT = 503, NULL_P = 504, NULLIF = 505, NULLS_P = 506, NUMERIC = 507, OBJECT_P = 508, OF = 509, OFF = 510, OFFSET = 511, OIDS = 512, ON = 513, ONLY = 514, OPERATOR = 515, OPTION = 516, OPTIONS = 517, OR = 518, ORDER = 519, ORDINALITY = 520, OUT_P = 521, OUTER_P = 522, OVER = 523, OVERLAPS = 524, OVERLAY = 525, OWNED = 526, OWNER = 527, PARSER = 528, PARTIAL = 529, PARTITION = 530, PASSING = 531, PASSWORD = 532, PLACING = 533, PLANS = 534, POLICY = 535, POSITION = 536, PRECEDING = 537, PRECISION = 538, PRESERVE = 539, PREPARE = 540, PREPARED = 541, PRIMARY = 542, PRIOR = 543, PRIVILEGES = 544, PROCEDURAL = 545, PROCEDURE = 546, PROGRAM = 547, QUOTE = 548, RANGE = 549, READ = 550, REAL = 551, REASSIGN = 552, RECHECK = 553, RECURSIVE = 554, REF = 555, REFERENCES = 556, REFRESH = 557, REINDEX = 558, RELATIVE_P = 559, RELEASE = 560, RENAME = 561, REPEATABLE = 562, REPLACE = 563, REPLICA = 564, RESET = 565, RESTART = 566, RESTRICT = 567, RETURNING = 568, RETURNS = 569, REVOKE = 570, RIGHT = 571, ROLE = 572, ROLLBACK = 573, ROLLUP = 574, ROW = 575, ROWS = 576, RULE = 577, SAVEPOINT = 578, SCHEMA = 579, SCROLL = 580, SEARCH = 581, SECOND_P = 582, SECURITY = 583, SELECT = 584, SEQUENCE = 585, SEQUENCES = 586, SERIALIZABLE = 587, SERVER = 588, SESSION = 589, SESSION_USER = 590, SET = 591, SETS = 592, SETOF = 593, SHARE = 594, SHOW = 595, SIMILAR = 596, SIMPLE = 597, SKIP = 598, SMALLINT = 599, SNAPSHOT = 600, SOME = 601, SQL_P = 602, STABLE = 603, STANDALONE_P = 604, START = 605, STATEMENT = 606, STATISTICS = 607, STDIN = 608, STDOUT = 609, STORAGE = 610, STRICT_P = 611, STRIP_P = 612, SUBSTRING = 613, SYMMETRIC = 614, SYSID = 615, SYSTEM_P = 616, TABLE = 617, TABLES = 618, TABLESAMPLE = 619, TABLESPACE = 620, TEMP = 621, TEMPLATE = 622, TEMPORARY = 623, TEXT_P = 624, THEN = 625, TIME = 626, TIMESTAMP = 627, TO = 628, TRAILING = 629, TRANSACTION = 630, TRANSFORM = 631, TREAT = 632, TRIGGER = 633, TRIM = 634, TRUE_P = 635, TRUNCATE = 636, TRUSTED = 637, TYPE_P = 638, TYPES_P = 639, UNBOUNDED = 640, UNCOMMITTED = 641, UNENCRYPTED = 642, UNION = 643, UNIQUE = 644, UNKNOWN = 645, UNLISTEN = 646, UNLOGGED = 647, UNTIL = 648, UPDATE = 649, USER = 650, USING = 651, VACUUM = 652, VALID = 653, VALIDATE = 654, VALIDATOR = 655, VALUE_P = 656, VALUES = 657, VARCHAR = 658, VARIADIC = 659, VARYING = 660, VERBOSE = 661, VERSION_P = 662, VIEW = 663, VIEWS = 664, VOLATILE = 665, WHEN = 666, WHERE = 667, WHITESPACE_P = 668, WINDOW = 669, WITH = 670, WITHIN = 671, WITHOUT = 672, WORK = 673, WRAPPER = 674, WRITE = 675, XML_P = 676, XMLATTRIBUTES = 677, XMLCONCAT = 678, XMLELEMENT = 679, XMLEXISTS = 680, XMLFOREST = 681, XMLPARSE = 682, XMLPI = 683, XMLROOT = 684, XMLSERIALIZE = 685, YEAR_P = 686, YES_P = 687, ZONE = 688, NOT_LA = 689, NULLS_LA = 690, WITH_LA = 691, POSTFIXOP = 692, UMINUS = 693 }; #endif /* Tokens. */ #define IDENT 258 #define FCONST 259 #define SCONST 260 #define BCONST 261 #define XCONST 262 #define Op 263 #define ICONST 264 #define PARAM 265 #define TYPECAST 266 #define DOT_DOT 267 #define COLON_EQUALS 268 #define EQUALS_GREATER 269 #define LESS_EQUALS 270 #define GREATER_EQUALS 271 #define NOT_EQUALS 272 #define ABORT_P 273 #define ABSOLUTE_P 274 #define ACCESS 275 #define ACTION 276 #define ADD_P 277 #define ADMIN 278 #define AFTER 279 #define AGGREGATE 280 #define ALL 281 #define ALSO 282 #define ALTER 283 #define ALWAYS 284 #define ANALYSE 285 #define ANALYZE 286 #define AND 287 #define ANY 288 #define ARRAY 289 #define AS 290 #define ASC 291 #define ASSERTION 292 #define ASSIGNMENT 293 #define ASYMMETRIC 294 #define AT 295 #define ATTRIBUTE 296 #define AUTHORIZATION 297 #define BACKWARD 298 #define BEFORE 299 #define BEGIN_P 300 #define BETWEEN 301 #define BIGINT 302 #define BINARY 303 #define BIT 304 #define BOOLEAN_P 305 #define BOTH 306 #define BY 307 #define CACHE 308 #define CALLED 309 #define CASCADE 310 #define CASCADED 311 #define CASE 312 #define CAST 313 #define CATALOG_P 314 #define CHAIN 315 #define CHAR_P 316 #define CHARACTER 317 #define CHARACTERISTICS 318 #define CHECK 319 #define CHECKPOINT 320 #define CLASS 321 #define CLOSE 322 #define CLUSTER 323 #define COALESCE 324 #define COLLATE 325 #define COLLATION 326 #define COLUMN 327 #define COMMENT 328 #define COMMENTS 329 #define COMMIT 330 #define COMMITTED 331 #define CONCURRENTLY 332 #define CONFIGURATION 333 #define CONFLICT 334 #define CONNECTION 335 #define CONSTRAINT 336 #define CONSTRAINTS 337 #define CONTENT_P 338 #define CONTINUE_P 339 #define CONVERSION_P 340 #define COPY 341 #define COST 342 #define CREATE 343 #define CROSS 344 #define CSV 345 #define CUBE 346 #define CURRENT_P 347 #define CURRENT_CATALOG 348 #define CURRENT_DATE 349 #define CURRENT_ROLE 350 #define CURRENT_SCHEMA 351 #define CURRENT_TIME 352 #define CURRENT_TIMESTAMP 353 #define CURRENT_USER 354 #define CURSOR 355 #define CYCLE 356 #define DATA_P 357 #define DATABASE 358 #define DAY_P 359 #define DEALLOCATE 360 #define DEC 361 #define DECIMAL_P 362 #define DECLARE 363 #define DEFAULT 364 #define DEFAULTS 365 #define DEFERRABLE 366 #define DEFERRED 367 #define DEFINER 368 #define DELETE_P 369 #define DELIMITER 370 #define DELIMITERS 371 #define DESC 372 #define DICTIONARY 373 #define DISABLE_P 374 #define DISCARD 375 #define DISTINCT 376 #define DO 377 #define DOCUMENT_P 378 #define DOMAIN_P 379 #define DOUBLE_P 380 #define DROP 381 #define EACH 382 #define ELSE 383 #define ENABLE_P 384 #define ENCODING 385 #define ENCRYPTED 386 #define END_P 387 #define ENUM_P 388 #define ESCAPE 389 #define EVENT 390 #define EXCEPT 391 #define EXCLUDE 392 #define EXCLUDING 393 #define EXCLUSIVE 394 #define EXECUTE 395 #define EXISTS 396 #define EXPLAIN 397 #define EXTENSION 398 #define EXTERNAL 399 #define EXTRACT 400 #define FALSE_P 401 #define FAMILY 402 #define FETCH 403 #define FILTER 404 #define FIRST_P 405 #define FLOAT_P 406 #define FOLLOWING 407 #define FOR 408 #define FORCE 409 #define FOREIGN 410 #define FORWARD 411 #define FREEZE 412 #define FROM 413 #define FULL 414 #define FUNCTION 415 #define FUNCTIONS 416 #define GLOBAL 417 #define GRANT 418 #define GRANTED 419 #define GREATEST 420 #define GROUP_P 421 #define GROUPING 422 #define HANDLER 423 #define HAVING 424 #define HEADER_P 425 #define HOLD 426 #define HOUR_P 427 #define IDENTITY_P 428 #define IF_P 429 #define ILIKE 430 #define IMMEDIATE 431 #define IMMUTABLE 432 #define IMPLICIT_P 433 #define IMPORT_P 434 #define IN_P 435 #define INCLUDING 436 #define INCREMENT 437 #define INDEX 438 #define INDEXES 439 #define INHERIT 440 #define INHERITS 441 #define INITIALLY 442 #define INLINE_P 443 #define INNER_P 444 #define INOUT 445 #define INPUT_P 446 #define INSENSITIVE 447 #define INSERT 448 #define INSTEAD 449 #define INT_P 450 #define INTEGER 451 #define INTERSECT 452 #define INTERVAL 453 #define INTO 454 #define INVOKER 455 #define IS 456 #define ISNULL 457 #define ISOLATION 458 #define JOIN 459 #define KEY 460 #define LABEL 461 #define LANGUAGE 462 #define LARGE_P 463 #define LAST_P 464 #define LATERAL_P 465 #define LEADING 466 #define LEAKPROOF 467 #define LEAST 468 #define LEFT 469 #define LEVEL 470 #define LIKE 471 #define LIMIT 472 #define LISTEN 473 #define LOAD 474 #define LOCAL 475 #define LOCALTIME 476 #define LOCALTIMESTAMP 477 #define LOCATION 478 #define LOCK_P 479 #define LOCKED 480 #define LOGGED 481 #define MAPPING 482 #define MATCH 483 #define MATERIALIZED 484 #define MAXVALUE 485 #define MINUTE_P 486 #define MINVALUE 487 #define MODE 488 #define MONTH_P 489 #define MOVE 490 #define NAME_P 491 #define NAMES 492 #define NATIONAL 493 #define NATURAL 494 #define NCHAR 495 #define NEXT 496 #define NO 497 #define NONE 498 #define NOT 499 #define NOTHING 500 #define NOTIFY 501 #define NOTNULL 502 #define NOWAIT 503 #define NULL_P 504 #define NULLIF 505 #define NULLS_P 506 #define NUMERIC 507 #define OBJECT_P 508 #define OF 509 #define OFF 510 #define OFFSET 511 #define OIDS 512 #define ON 513 #define ONLY 514 #define OPERATOR 515 #define OPTION 516 #define OPTIONS 517 #define OR 518 #define ORDER 519 #define ORDINALITY 520 #define OUT_P 521 #define OUTER_P 522 #define OVER 523 #define OVERLAPS 524 #define OVERLAY 525 #define OWNED 526 #define OWNER 527 #define PARSER 528 #define PARTIAL 529 #define PARTITION 530 #define PASSING 531 #define PASSWORD 532 #define PLACING 533 #define PLANS 534 #define POLICY 535 #define POSITION 536 #define PRECEDING 537 #define PRECISION 538 #define PRESERVE 539 #define PREPARE 540 #define PREPARED 541 #define PRIMARY 542 #define PRIOR 543 #define PRIVILEGES 544 #define PROCEDURAL 545 #define PROCEDURE 546 #define PROGRAM 547 #define QUOTE 548 #define RANGE 549 #define READ 550 #define REAL 551 #define REASSIGN 552 #define RECHECK 553 #define RECURSIVE 554 #define REF 555 #define REFERENCES 556 #define REFRESH 557 #define REINDEX 558 #define RELATIVE_P 559 #define RELEASE 560 #define RENAME 561 #define REPEATABLE 562 #define REPLACE 563 #define REPLICA 564 #define RESET 565 #define RESTART 566 #define RESTRICT 567 #define RETURNING 568 #define RETURNS 569 #define REVOKE 570 #define RIGHT 571 #define ROLE 572 #define ROLLBACK 573 #define ROLLUP 574 #define ROW 575 #define ROWS 576 #define RULE 577 #define SAVEPOINT 578 #define SCHEMA 579 #define SCROLL 580 #define SEARCH 581 #define SECOND_P 582 #define SECURITY 583 #define SELECT 584 #define SEQUENCE 585 #define SEQUENCES 586 #define SERIALIZABLE 587 #define SERVER 588 #define SESSION 589 #define SESSION_USER 590 #define SET 591 #define SETS 592 #define SETOF 593 #define SHARE 594 #define SHOW 595 #define SIMILAR 596 #define SIMPLE 597 #define SKIP 598 #define SMALLINT 599 #define SNAPSHOT 600 #define SOME 601 #define SQL_P 602 #define STABLE 603 #define STANDALONE_P 604 #define START 605 #define STATEMENT 606 #define STATISTICS 607 #define STDIN 608 #define STDOUT 609 #define STORAGE 610 #define STRICT_P 611 #define STRIP_P 612 #define SUBSTRING 613 #define SYMMETRIC 614 #define SYSID 615 #define SYSTEM_P 616 #define TABLE 617 #define TABLES 618 #define TABLESAMPLE 619 #define TABLESPACE 620 #define TEMP 621 #define TEMPLATE 622 #define TEMPORARY 623 #define TEXT_P 624 #define THEN 625 #define TIME 626 #define TIMESTAMP 627 #define TO 628 #define TRAILING 629 #define TRANSACTION 630 #define TRANSFORM 631 #define TREAT 632 #define TRIGGER 633 #define TRIM 634 #define TRUE_P 635 #define TRUNCATE 636 #define TRUSTED 637 #define TYPE_P 638 #define TYPES_P 639 #define UNBOUNDED 640 #define UNCOMMITTED 641 #define UNENCRYPTED 642 #define UNION 643 #define UNIQUE 644 #define UNKNOWN 645 #define UNLISTEN 646 #define UNLOGGED 647 #define UNTIL 648 #define UPDATE 649 #define USER 650 #define USING 651 #define VACUUM 652 #define VALID 653 #define VALIDATE 654 #define VALIDATOR 655 #define VALUE_P 656 #define VALUES 657 #define VARCHAR 658 #define VARIADIC 659 #define VARYING 660 #define VERBOSE 661 #define VERSION_P 662 #define VIEW 663 #define VIEWS 664 #define VOLATILE 665 #define WHEN 666 #define WHERE 667 #define WHITESPACE_P 668 #define WINDOW 669 #define WITH 670 #define WITHIN 671 #define WITHOUT 672 #define WORK 673 #define WRAPPER 674 #define WRITE 675 #define XML_P 676 #define XMLATTRIBUTES 677 #define XMLCONCAT 678 #define XMLELEMENT 679 #define XMLEXISTS 680 #define XMLFOREST 681 #define XMLPARSE 682 #define XMLPI 683 #define XMLROOT 684 #define XMLSERIALIZE 685 #define YEAR_P 686 #define YES_P 687 #define ZONE 688 #define NOT_LA 689 #define NULLS_LA 690 #define WITH_LA 691 #define POSTFIXOP 692 #define UMINUS 693 /* Copy the first part of user declarations. */ #line 1 "gram.y" /*#define YYDEBUG 1*/ /*------------------------------------------------------------------------- * * gram.y * POSTGRESQL BISON rules/actions * * Portions Copyright (c) 1996-2015, 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 SQL_inheritance 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. The handling of SQL_inheritance is * a good example. * * 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 "catalog/index.h" #include "catalog/namespace.h" #include "catalog/pg_trigger.h" #include "commands/defrem.h" #include "commands/trigger.h" #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" #include "parser/gramparse.h" #include "parser/parser.h" #include "parser/parse_expr.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. 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.) */ /* * 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. Note this only works with * bison >= 2.0. However, in bison 1.875 the default is to use alloca() * if possible, so there's not really much problem anyhow, at least if * you're building with gcc. */ #define YYMALLOC palloc #define YYFREE pfree /* Private struct for the result of privilege_target production */ typedef struct PrivTarget { GrantTargetType targtype; GrantObjectType objtype; List *objs; } PrivTarget; /* Private struct for the result of import_qualification production */ typedef struct ImportQual { ImportForeignSchemaType type; List *table_names; } ImportQual; /* 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 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 *makeBitStringConst(char *str, int location); static Node *makeNullAConst(int location); static Node *makeAConst(Value *v, int location); static Node *makeBoolAConst(bool state, int location); static Node *makeParamRef(int number, int location); static Node *makeParamRefCast(int number, int location, TypeName *typename); static Node *makeInterval_or_AExprOp(Node *lexpr, Node *rexpr, int location); static Node *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, Node *limitOffset, Node *limitCount, 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(Value *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 *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 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 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 194 "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; Value *value; ObjectType objtype; TypeName *typnam; FunctionParameter *fun_param; FunctionParameterMode fun_param_mode; FuncWithArgs *funwithargs; DefElem *defelt; SortBy *sortby; WindowDef *windef; JoinExpr *jexpr; IndexElem *ielem; 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; } /* Line 193 of yacc.c. */ #line 1204 "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 1229 "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 755 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 92266 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 457 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 616 /* YYNRULES -- Number of rules. */ #define YYNRULES 2502 /* YYNRULES -- Number of states. */ #define YYNSTATES 4948 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 693 #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, 445, 2, 2, 451, 452, 443, 441, 455, 442, 453, 444, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 456, 454, 437, 439, 438, 447, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 449, 2, 450, 446, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 440, 448 }; #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, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, 195, 197, 199, 201, 203, 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 233, 235, 237, 239, 241, 243, 245, 247, 249, 251, 253, 255, 256, 262, 264, 266, 267, 270, 271, 274, 275, 278, 281, 285, 289, 291, 295, 299, 302, 304, 306, 309, 312, 315, 319, 323, 329, 335, 336, 340, 346, 352, 358, 363, 367, 373, 377, 383, 389, 396, 398, 400, 404, 410, 417, 422, 432, 440, 442, 443, 446, 447, 449, 451, 453, 455, 457, 459, 462, 466, 470, 473, 479, 481, 485, 489, 493, 497, 499, 503, 507, 510, 513, 516, 519, 523, 527, 531, 535, 537, 541, 543, 547, 549, 551, 553, 556, 559, 562, 564, 566, 568, 570, 572, 574, 576, 580, 586, 588, 590, 592, 594, 596, 597, 599, 601, 604, 606, 609, 613, 616, 618, 620, 623, 625, 628, 630, 633, 637, 642, 646, 649, 654, 656, 658, 660, 662, 664, 667, 670, 673, 676, 679, 684, 691, 702, 716, 721, 728, 739, 753, 758, 765, 770, 777, 783, 791, 803, 818, 820, 824, 827, 831, 836, 843, 850, 857, 863, 869, 876, 883, 888, 897, 902, 905, 910, 914, 921, 926, 930, 934, 938, 942, 945, 948, 952, 957, 962, 966, 970, 974, 978, 982, 986, 991, 996, 1000, 1003, 1007, 1010, 1013, 1017, 1021, 1024, 1027, 1031, 1036, 1041, 1046, 1052, 1054, 1058, 1061, 1063, 1065, 1066, 1069, 1070, 1073, 1074, 1076, 1078, 1080, 1084, 1088, 1091, 1092, 1094, 1098, 1102, 1104, 1110, 1114, 1119, 1121, 1125, 1130, 1137, 1142, 1151, 1154, 1157, 1169, 1177, 1179, 1181, 1183, 1184, 1186, 1188, 1190, 1192, 1196, 1199, 1200, 1202, 1204, 1206, 1210, 1214, 1216, 1218, 1222, 1226, 1230, 1234, 1239, 1243, 1246, 1248, 1249, 1252, 1253, 1257, 1258, 1260, 1261, 1263, 1267, 1270, 1272, 1274, 1276, 1280, 1281, 1283, 1287, 1289, 1301, 1316, 1327, 1341, 1343, 1345, 1348, 1351, 1354, 1357, 1359, 1360, 1362, 1363, 1367, 1368, 1370, 1374, 1376, 1380, 1382, 1384, 1386, 1388, 1390, 1395, 1400, 1403, 1404, 1408, 1410, 1412, 1415, 1418, 1420, 1424, 1429, 1435, 1438, 1444, 1446, 1449, 1452, 1455, 1459, 1463, 1467, 1468, 1470, 1472, 1474, 1476, 1478, 1480, 1484, 1486, 1492, 1500, 1504, 1513, 1518, 1528, 1540, 1543, 1544, 1548, 1549, 1551, 1555, 1557, 1560, 1563, 1566, 1567, 1569, 1573, 1577, 1584, 1589, 1590, 1592, 1594, 1597, 1600, 1601, 1605, 1609, 1612, 1614, 1616, 1619, 1622, 1627, 1628, 1631, 1634, 1637, 1638, 1642, 1647, 1652, 1653, 1656, 1657, 1662, 1663, 1667, 1675, 1686, 1692, 1695, 1699, 1700, 1709, 1721, 1726, 1728, 1729, 1736, 1742, 1751, 1756, 1763, 1765, 1766, 1768, 1771, 1774, 1776, 1779, 1783, 1786, 1789, 1792, 1795, 1799, 1803, 1805, 1809, 1811, 1812, 1814, 1817, 1819, 1821, 1825, 1832, 1843, 1845, 1846, 1848, 1851, 1854, 1855, 1858, 1861, 1863, 1864, 1870, 1878, 1880, 1881, 1889, 1892, 1893, 1897, 1903, 1909, 1918, 1921, 1922, 1925, 1928, 1931, 1937, 1940, 1941, 1944, 1952, 1963, 1970, 1977, 1984, 1991, 1999, 2007, 2017, 2027, 2034, 2042, 2049, 2058, 2067, 2076, 2085, 2092, 2099, 2107, 2115, 2124, 2131, 2141, 2148, 2156, 2159, 2162, 2165, 2168, 2170, 2173, 2175, 2176, 2183, 2192, 2200, 2207, 2212, 2213, 2215, 2219, 2224, 2226, 2230, 2232, 2235, 2238, 2241, 2244, 2246, 2248, 2259, 2262, 2263, 2266, 2269, 2271, 2272, 2277, 2284, 2290, 2295, 2300, 2312, 2327, 2333, 2341, 2353, 2356, 2358, 2363, 2364, 2373, 2375, 2377, 2385, 2395, 2404, 2414, 2423, 2430, 2439, 2444, 2445, 2451, 2452, 2455, 2456, 2459, 2460, 2463, 2464, 2466, 2468, 2470, 2472, 2474, 2490, 2511, 2513, 2515, 2518, 2520, 2524, 2526, 2528, 2530, 2534, 2536, 2540, 2541, 2543, 2544, 2546, 2548, 2553, 2554, 2556, 2560, 2561, 2563, 2565, 2567, 2569, 2572, 2573, 2574, 2577, 2580, 2582, 2585, 2588, 2591, 2594, 2601, 2610, 2622, 2636, 2638, 2642, 2648, 2650, 2654, 2660, 2662, 2665, 2668, 2670, 2679, 2684, 2690, 2695, 2700, 2705, 2709, 2717, 2726, 2733, 2740, 2747, 2754, 2761, 2766, 2772, 2776, 2778, 2782, 2786, 2788, 2790, 2792, 2794, 2796, 2798, 2802, 2804, 2808, 2812, 2814, 2815, 2817, 2821, 2829, 2839, 2849, 2853, 2854, 2868, 2870, 2874, 2880, 2887, 2892, 2900, 2903, 2905, 2906, 2909, 2910, 2913, 2918, 2919, 2921, 2922, 2929, 2938, 2947, 2949, 2953, 2959, 2965, 2973, 2983, 2991, 3001, 3007, 3014, 3021, 3026, 3031, 3038, 3043, 3050, 3056, 3064, 3066, 3068, 3070, 3073, 3075, 3078, 3081, 3083, 3085, 3087, 3089, 3093, 3097, 3101, 3105, 3107, 3111, 3113, 3116, 3119, 3123, 3125, 3129, 3135, 3138, 3141, 3142, 3149, 3156, 3163, 3171, 3179, 3187, 3196, 3206, 3215, 3224, 3231, 3241, 3250, 3260, 3270, 3278, 3289, 3297, 3299, 3301, 3303, 3305, 3307, 3309, 3311, 3314, 3316, 3318, 3320, 3322, 3324, 3327, 3329, 3333, 3336, 3340, 3344, 3348, 3352, 3354, 3356, 3365, 3374, 3383, 3393, 3403, 3413, 3423, 3426, 3427, 3429, 3431, 3434, 3437, 3439, 3441, 3443, 3445, 3447, 3449, 3452, 3454, 3456, 3459, 3462, 3464, 3467, 3471, 3475, 3479, 3483, 3488, 3493, 3497, 3501, 3505, 3510, 3515, 3519, 3524, 3529, 3531, 3533, 3535, 3536, 3544, 3552, 3563, 3565, 3567, 3570, 3575, 3581, 3583, 3587, 3590, 3593, 3596, 3599, 3601, 3604, 3607, 3612, 3616, 3619, 3622, 3625, 3628, 3632, 3635, 3638, 3641, 3647, 3653, 3659, 3661, 3665, 3667, 3670, 3674, 3675, 3677, 3681, 3684, 3691, 3698, 3708, 3712, 3713, 3717, 3718, 3724, 3727, 3728, 3732, 3736, 3740, 3748, 3756, 3767, 3769, 3771, 3773, 3775, 3790, 3808, 3810, 3811, 3813, 3814, 3816, 3817, 3820, 3821, 3823, 3827, 3833, 3839, 3847, 3850, 3851, 3853, 3856, 3857, 3859, 3861, 3862, 3865, 3868, 3869, 3879, 3892, 3900, 3903, 3904, 3908, 3911, 3913, 3917, 3921, 3924, 3926, 3930, 3934, 3938, 3941, 3944, 3946, 3948, 3950, 3952, 3955, 3957, 3959, 3961, 3963, 3968, 3974, 3976, 3980, 3984, 3986, 3990, 3994, 4000, 4007, 4009, 4013, 4015, 4018, 4023, 4029, 4031, 4033, 4035, 4037, 4041, 4045, 4048, 4051, 4053, 4056, 4059, 4062, 4064, 4067, 4070, 4073, 4075, 4077, 4079, 4083, 4087, 4093, 4096, 4097, 4100, 4102, 4106, 4112, 4114, 4117, 4119, 4120, 4126, 4134, 4140, 4148, 4154, 4162, 4166, 4172, 4178, 4184, 4186, 4190, 4193, 4195, 4198, 4200, 4203, 4215, 4226, 4237, 4240, 4243, 4244, 4254, 4257, 4258, 4269, 4281, 4293, 4299, 4305, 4314, 4318, 4322, 4329, 4336, 4338, 4340, 4342, 4344, 4346, 4348, 4352, 4354, 4360, 4366, 4374, 4381, 4388, 4395, 4402, 4411, 4420, 4427, 4434, 4442, 4452, 4462, 4471, 4482, 4489, 4496, 4503, 4512, 4519, 4528, 4535, 4544, 4552, 4562, 4569, 4578, 4586, 4596, 4605, 4616, 4626, 4638, 4647, 4658, 4668, 4680, 4689, 4698, 4706, 4713, 4720, 4727, 4736, 4745, 4754, 4763, 4770, 4780, 4782, 4783, 4786, 4787, 4795, 4802, 4809, 4816, 4823, 4830, 4838, 4848, 4858, 4865, 4874, 4883, 4892, 4901, 4910, 4917, 4926, 4933, 4942, 4950, 4960, 4968, 4978, 4985, 4993, 5000, 5007, 5014, 5021, 5028, 5036, 5044, 5052, 5062, 5072, 5079, 5086, 5093, 5102, 5111, 5120, 5127, 5135, 5149, 5151, 5153, 5157, 5161, 5163, 5165, 5167, 5169, 5171, 5173, 5175, 5176, 5178, 5180, 5182, 5184, 5186, 5188, 5189, 5196, 5205, 5209, 5212, 5213, 5216, 5219, 5222, 5225, 5229, 5233, 5236, 5239, 5242, 5245, 5249, 5252, 5258, 5263, 5267, 5271, 5275, 5277, 5279, 5280, 5284, 5287, 5290, 5292, 5295, 5297, 5301, 5304, 5306, 5307, 5317, 5329, 5342, 5357, 5361, 5366, 5371, 5372, 5375, 5381, 5383, 5384, 5386, 5389, 5393, 5397, 5401, 5403, 5406, 5408, 5410, 5412, 5414, 5416, 5418, 5419, 5425, 5430, 5437, 5442, 5446, 5452, 5457, 5462, 5469, 5474, 5481, 5488, 5494, 5502, 5512, 5519, 5521, 5522, 5529, 5541, 5553, 5565, 5579, 5589, 5601, 5603, 5605, 5616, 5621, 5624, 5630, 5633, 5634, 5639, 5645, 5651, 5656, 5663, 5665, 5669, 5671, 5673, 5675, 5677, 5680, 5685, 5687, 5689, 5691, 5692, 5694, 5695, 5697, 5698, 5702, 5703, 5706, 5711, 5715, 5721, 5723, 5725, 5727, 5729, 5731, 5733, 5735, 5737, 5739, 5741, 5745, 5748, 5750, 5752, 5754, 5756, 5757, 5763, 5767, 5768, 5770, 5772, 5774, 5776, 5780, 5790, 5794, 5795, 5798, 5802, 5805, 5809, 5817, 5819, 5823, 5825, 5830, 5833, 5835, 5839, 5842, 5851, 5857, 5858, 5863, 5867, 5868, 5871, 5872, 5880, 5883, 5884, 5890, 5894, 5895, 5898, 5901, 5904, 5908, 5910, 5914, 5916, 5919, 5921, 5922, 5924, 5927, 5928, 5937, 5939, 5943, 5945, 5947, 5951, 5957, 5963, 5966, 5968, 5972, 5980, 5982, 5983, 5987, 5990, 5993, 5996, 5997, 6000, 6003, 6005, 6007, 6011, 6015, 6017, 6020, 6025, 6030, 6033, 6037, 6043, 6049, 6051, 6053, 6063, 6073, 6075, 6078, 6083, 6088, 6093, 6096, 6099, 6103, 6105, 6109, 6116, 6118, 6119, 6122, 6123, 6127, 6131, 6136, 6141, 6146, 6151, 6155, 6158, 6160, 6162, 6163, 6165, 6167, 6168, 6170, 6176, 6178, 6179, 6181, 6182, 6186, 6188, 6192, 6197, 6201, 6204, 6207, 6209, 6211, 6213, 6214, 6217, 6222, 6228, 6231, 6235, 6237, 6239, 6241, 6243, 6247, 6248, 6250, 6252, 6254, 6256, 6258, 6262, 6263, 6265, 6269, 6271, 6273, 6275, 6277, 6279, 6282, 6287, 6292, 6298, 6301, 6302, 6304, 6308, 6310, 6311, 6313, 6316, 6320, 6323, 6328, 6331, 6335, 6338, 6339, 6342, 6346, 6349, 6350, 6352, 6356, 6359, 6363, 6366, 6370, 6373, 6377, 6379, 6384, 6388, 6393, 6399, 6404, 6410, 6415, 6421, 6424, 6429, 6431, 6433, 6434, 6436, 6441, 6447, 6452, 6453, 6456, 6459, 6462, 6464, 6466, 6467, 6472, 6475, 6477, 6480, 6483, 6488, 6490, 6494, 6496, 6499, 6503, 6510, 6515, 6516, 6519, 6526, 6529, 6531, 6535, 6540, 6541, 6544, 6545, 6548, 6549, 6552, 6557, 6558, 6560, 6561, 6563, 6567, 6571, 6574, 6578, 6584, 6591, 6594, 6598, 6602, 6607, 6608, 6610, 6612, 6614, 6616, 6618, 6621, 6626, 6628, 6630, 6632, 6634, 6637, 6641, 6645, 6646, 6648, 6650, 6652, 6654, 6656, 6659, 6662, 6665, 6668, 6671, 6673, 6677, 6678, 6680, 6682, 6684, 6686, 6692, 6695, 6697, 6699, 6701, 6703, 6709, 6712, 6715, 6718, 6720, 6724, 6728, 6731, 6733, 6734, 6738, 6739, 6745, 6748, 6754, 6757, 6759, 6763, 6767, 6768, 6770, 6772, 6774, 6776, 6778, 6780, 6784, 6788, 6792, 6796, 6800, 6804, 6808, 6809, 6811, 6816, 6818, 6822, 6826, 6832, 6835, 6838, 6842, 6846, 6850, 6854, 6858, 6862, 6866, 6870, 6874, 6878, 6882, 6886, 6890, 6893, 6897, 6900, 6903, 6907, 6911, 6914, 6917, 6921, 6927, 6932, 6939, 6943, 6949, 6954, 6961, 6966, 6973, 6979, 6987, 6991, 6994, 6999, 7002, 7006, 7010, 7015, 7019, 7024, 7028, 7033, 7039, 7046, 7053, 7061, 7068, 7076, 7083, 7091, 7095, 7100, 7105, 7112, 7115, 7119, 7124, 7126, 7130, 7133, 7136, 7140, 7144, 7148, 7152, 7156, 7160, 7164, 7168, 7172, 7176, 7180, 7184, 7188, 7191, 7195, 7198, 7201, 7207, 7214, 7221, 7229, 7233, 7238, 7240, 7242, 7245, 7248, 7253, 7255, 7257, 7259, 7262, 7265, 7268, 7271, 7273, 7275, 7280, 7284, 7290, 7297, 7306, 7313, 7320, 7325, 7330, 7332, 7334, 7336, 7342, 7344, 7346, 7351, 7353, 7358, 7360, 7365, 7367, 7372, 7374, 7376, 7378, 7380, 7382, 7384, 7391, 7396, 7401, 7406, 7411, 7418, 7424, 7430, 7436, 7441, 7448, 7453, 7458, 7463, 7468, 7474, 7482, 7490, 7500, 7506, 7511, 7518, 7524, 7532, 7540, 7548, 7551, 7555, 7559, 7563, 7568, 7569, 7574, 7576, 7580, 7584, 7586, 7588, 7590, 7593, 7596, 7597, 7600, 7605, 7610, 7617, 7623, 7624, 7630, 7631, 7634, 7635, 7637, 7641, 7645, 7648, 7651, 7652, 7659, 7661, 7662, 7666, 7667, 7670, 7673, 7674, 7676, 7681, 7684, 7687, 7690, 7693, 7696, 7701, 7705, 7711, 7716, 7720, 7726, 7728, 7730, 7732, 7734, 7736, 7738, 7740, 7742, 7744, 7746, 7748, 7750, 7752, 7754, 7756, 7758, 7760, 7762, 7764, 7769, 7771, 7776, 7778, 7783, 7785, 7788, 7790, 7793, 7795, 7799, 7801, 7805, 7807, 7811, 7815, 7817, 7821, 7825, 7829, 7832, 7834, 7838, 7842, 7846, 7847, 7849, 7851, 7853, 7855, 7857, 7859, 7861, 7863, 7868, 7872, 7875, 7879, 7880, 7884, 7888, 7891, 7894, 7896, 7897, 7900, 7903, 7907, 7910, 7912, 7914, 7918, 7924, 7926, 7929, 7934, 7937, 7938, 7940, 7941, 7943, 7946, 7949, 7952, 7956, 7962, 7964, 7967, 7968, 7971, 7973, 7974, 7976, 7978, 7980, 7984, 7988, 7990, 7991, 7993, 7997, 8001, 8004, 8006, 8008, 8010, 8014, 8016, 8019, 8021, 8025, 8027, 8029, 8031, 8033, 8035, 8037, 8039, 8042, 8044, 8046, 8048, 8050, 8052, 8055, 8062, 8065, 8069, 8075, 8082, 8084, 8086, 8088, 8090, 8092, 8094, 8097, 8100, 8102, 8104, 8106, 8108, 8110, 8114, 8116, 8118, 8120, 8122, 8124, 8126, 8128, 8130, 8132, 8134, 8136, 8138, 8140, 8142, 8144, 8146, 8148, 8150, 8152, 8154, 8156, 8158, 8160, 8162, 8164, 8166, 8168, 8170, 8172, 8174, 8176, 8178, 8180, 8182, 8184, 8186, 8188, 8190, 8192, 8194, 8196, 8198, 8200, 8202, 8204, 8206, 8208, 8210, 8212, 8214, 8216, 8218, 8220, 8222, 8224, 8226, 8228, 8230, 8232, 8234, 8236, 8238, 8240, 8242, 8244, 8246, 8248, 8250, 8252, 8254, 8256, 8258, 8260, 8262, 8264, 8266, 8268, 8270, 8272, 8274, 8276, 8278, 8280, 8282, 8284, 8286, 8288, 8290, 8292, 8294, 8296, 8298, 8300, 8302, 8304, 8306, 8308, 8310, 8312, 8314, 8316, 8318, 8320, 8322, 8324, 8326, 8328, 8330, 8332, 8334, 8336, 8338, 8340, 8342, 8344, 8346, 8348, 8350, 8352, 8354, 8356, 8358, 8360, 8362, 8364, 8366, 8368, 8370, 8372, 8374, 8376, 8378, 8380, 8382, 8384, 8386, 8388, 8390, 8392, 8394, 8396, 8398, 8400, 8402, 8404, 8406, 8408, 8410, 8412, 8414, 8416, 8418, 8420, 8422, 8424, 8426, 8428, 8430, 8432, 8434, 8436, 8438, 8440, 8442, 8444, 8446, 8448, 8450, 8452, 8454, 8456, 8458, 8460, 8462, 8464, 8466, 8468, 8470, 8472, 8474, 8476, 8478, 8480, 8482, 8484, 8486, 8488, 8490, 8492, 8494, 8496, 8498, 8500, 8502, 8504, 8506, 8508, 8510, 8512, 8514, 8516, 8518, 8520, 8522, 8524, 8526, 8528, 8530, 8532, 8534, 8536, 8538, 8540, 8542, 8544, 8546, 8548, 8550, 8552, 8554, 8556, 8558, 8560, 8562, 8564, 8566, 8568, 8570, 8572, 8574, 8576, 8578, 8580, 8582, 8584, 8586, 8588, 8590, 8592, 8594, 8596, 8598, 8600, 8602, 8604, 8606, 8608, 8610, 8612, 8614, 8616, 8618, 8620, 8622, 8624, 8626, 8628, 8630, 8632, 8634, 8636, 8638, 8640, 8642, 8644, 8646, 8648, 8650, 8652, 8654, 8656, 8658, 8660, 8662, 8664, 8666, 8668, 8670, 8672, 8674, 8676, 8678, 8680, 8682, 8684, 8686, 8688, 8690, 8692, 8694, 8696, 8698, 8700, 8702, 8704, 8706, 8708, 8710, 8712, 8714, 8716, 8718, 8720, 8722, 8724, 8726, 8728, 8730, 8732, 8734, 8736, 8738, 8740, 8742, 8744, 8746, 8748, 8750, 8752, 8754, 8756, 8758, 8760, 8762, 8764, 8766, 8768, 8770, 8772, 8774, 8776, 8778, 8780, 8782, 8784, 8786, 8788, 8790, 8792, 8794, 8796, 8798, 8800, 8802, 8804, 8806, 8808, 8810, 8812, 8814, 8816, 8818, 8820, 8822, 8824, 8826, 8828, 8830, 8832, 8834, 8836, 8838, 8840, 8842, 8844, 8846, 8848, 8850, 8852, 8854, 8856, 8858, 8860, 8862, 8864, 8866, 8868, 8870, 8872, 8874, 8876, 8878, 8880, 8882, 8884, 8886, 8888, 8890, 8892, 8894, 8896, 8898, 8900, 8902, 8904, 8906, 8908, 8910, 8912, 8914, 8916, 8918, 8920, 8922, 8924, 8926, 8928, 8930, 8932, 8934, 8936, 8938, 8940, 8942, 8944, 8946, 8948, 8950, 8952, 8954, 8956, 8958, 8960, 8962, 8964, 8966, 8968, 8970, 8972, 8974, 8976, 8978, 8980, 8982, 8984, 8986, 8988, 8990 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { 458, 0, -1, 459, -1, 459, 454, 460, -1, 460, -1, 664, -1, 823, -1, 824, -1, 729, -1, 828, -1, 678, -1, 604, -1, 607, -1, 613, -1, 627, -1, 629, -1, 768, -1, 476, -1, 795, -1, 796, -1, 638, -1, 583, -1, 826, -1, 506, -1, 791, -1, 518, -1, 470, -1, 468, -1, 831, -1, 830, -1, 636, -1, 472, -1, 471, -1, 839, -1, 504, -1, 521, -1, 834, -1, 703, -1, 501, -1, 522, -1, 575, -1, 666, -1, 779, -1, 833, -1, 827, -1, 601, -1, 608, -1, 622, -1, 628, -1, 745, -1, 475, -1, 578, -1, 680, -1, 687, -1, 688, -1, 637, -1, 590, -1, 479, -1, 582, -1, 538, -1, 598, -1, 783, -1, 646, -1, 660, -1, 461, -1, 467, -1, 633, -1, 817, -1, 856, -1, 879, -1, 668, -1, 865, -1, 505, -1, 776, -1, 667, -1, 781, -1, 612, -1, 626, -1, 478, -1, 691, -1, 692, -1, 693, -1, 639, -1, 596, -1, 804, -1, 695, -1, 600, -1, 785, -1, 659, -1, 473, -1, 474, -1, 635, -1, 825, -1, 854, -1, 845, -1, 710, -1, 714, -1, 725, -1, 630, -1, 734, -1, 857, -1, 807, -1, 581, -1, 816, -1, 867, -1, 805, -1, 851, -1, 694, -1, 786, -1, 772, -1, 771, -1, 773, -1, 792, -1, 715, -1, 726, -1, 797, -1, 706, -1, 883, -1, 809, -1, 701, -1, 808, -1, 872, -1, 836, -1, 495, -1, 483, -1, 500, -1, 814, -1, -1, 88, 317, 1058, 462, 463, -1, 415, -1, 436, -1, -1, 463, 466, -1, -1, 464, 465, -1, -1, 277, 1063, -1, 277, 249, -1, 131, 277, 1063, -1, 387, 277, 1063, -1, 185, -1, 80, 217, 1057, -1, 398, 393, 1056, -1, 395, 1060, -1, 3, -1, 465, -1, 360, 1055, -1, 23, 1060, -1, 317, 1060, -1, 180, 317, 1060, -1, 180, 166, 1060, -1, 88, 395, 1058, 462, 463, -1, 28, 317, 1059, 462, 464, -1, -1, 180, 103, 1048, -1, 28, 317, 1059, 469, 498, -1, 28, 317, 26, 469, 498, -1, 28, 395, 1059, 462, 464, -1, 28, 395, 1059, 498, -1, 126, 317, 1060, -1, 126, 317, 174, 141, 1060, -1, 126, 395, 1060, -1, 126, 395, 174, 141, 1060, -1, 88, 166, 1058, 462, 463, -1, 28, 166, 1059, 477, 395, 1060, -1, 22, -1, 126, -1, 126, 166, 1060, -1, 126, 166, 174, 141, 1060, -1, 88, 324, 480, 42, 1059, 481, -1, 88, 324, 1065, 481, -1, 88, 324, 174, 244, 141, 480, 42, 1059, 481, -1, 88, 324, 174, 244, 141, 1065, 481, -1, 1065, -1, -1, 481, 482, -1, -1, 538, -1, 734, -1, 582, -1, 646, -1, 714, -1, 814, -1, 336, 484, -1, 336, 220, 484, -1, 336, 334, 484, -1, 375, 812, -1, 334, 63, 35, 375, 812, -1, 486, -1, 487, 373, 488, -1, 487, 439, 488, -1, 487, 373, 109, -1, 487, 439, 109, -1, 485, -1, 487, 158, 92, -1, 371, 433, 492, -1, 59, 1056, -1, 324, 1062, -1, 237, 493, -1, 317, 1064, -1, 334, 42, 1064, -1, 334, 42, 109, -1, 421, 261, 988, -1, 375, 345, 1056, -1, 1065, -1, 487, 453, 1065, -1, 489, -1, 488, 455, 489, -1, 491, -1, 588, -1, 447, -1, 295, 386, -1, 295, 76, -1, 307, 295, -1, 332, -1, 380, -1, 146, -1, 258, -1, 494, -1, 1062, -1, 3, -1, 972, 1056, 974, -1, 972, 451, 1055, 452, 1056, -1, 588, -1, 109, -1, 220, -1, 1056, -1, 109, -1, -1, 1067, -1, 1056, -1, 310, 496, -1, 497, -1, 371, 433, -1, 375, 203, 215, -1, 334, 42, -1, 487, -1, 26, -1, 336, 484, -1, 495, -1, 336, 486, -1, 495, -1, 340, 487, -1, 340, 371, 433, -1, 340, 375, 203, 215, -1, 340, 334, 42, -1, 340, 26, -1, 336, 82, 502, 503, -1, 26, -1, 1044, -1, 112, -1, 176, -1, 65, -1, 120, 26, -1, 120, 366, -1, 120, 368, -1, 120, 279, -1, 120, 331, -1, 28, 362, 937, 507, -1, 28, 362, 174, 141, 937, 507, -1, 28, 362, 26, 180, 365, 1047, 336, 365, 1047, 870, -1, 28, 362, 26, 180, 365, 1047, 271, 52, 1060, 336, 365, 1047, 870, -1, 28, 183, 1045, 507, -1, 28, 183, 174, 141, 1045, 507, -1, 28, 183, 26, 180, 365, 1047, 336, 365, 1047, 870, -1, 28, 183, 26, 180, 365, 1047, 271, 52, 1060, 336, 365, 1047, 870, -1, 28, 330, 1045, 507, -1, 28, 330, 174, 141, 1045, 507, -1, 28, 408, 1045, 507, -1, 28, 408, 174, 141, 1045, 507, -1, 28, 229, 408, 1045, 507, -1, 28, 229, 408, 174, 141, 1045, 507, -1, 28, 229, 408, 26, 180, 365, 1047, 336, 365, 1047, 870, -1, 28, 229, 408, 26, 180, 365, 1047, 271, 52, 1060, 336, 365, 1047, 870, -1, 508, -1, 507, 455, 508, -1, 22, 546, -1, 22, 72, 546, -1, 28, 793, 1065, 509, -1, 28, 793, 1065, 126, 244, 249, -1, 28, 793, 1065, 336, 244, 249, -1, 28, 793, 1065, 336, 352, 1057, -1, 28, 793, 1065, 336, 514, -1, 28, 793, 1065, 310, 514, -1, 28, 793, 1065, 336, 355, 1065, -1, 126, 793, 174, 141, 1065, 510, -1, 126, 793, 1065, 510, -1, 28, 793, 1065, 794, 383, 952, 511, 512, -1, 28, 793, 1065, 616, -1, 22, 555, -1, 28, 81, 1047, 657, -1, 399, 81, 1047, -1, 126, 81, 174, 141, 1047, 510, -1, 126, 81, 1047, 510, -1, 336, 415, 257, -1, 336, 417, 257, -1, 68, 258, 1047, -1, 336, 417, 68, -1, 336, 226, -1, 336, 392, -1, 129, 378, 1047, -1, 129, 29, 378, 1047, -1, 129, 309, 378, 1047, -1, 129, 378, 26, -1, 129, 378, 395, -1, 119, 378, 1047, -1, 119, 378, 26, -1, 119, 378, 395, -1, 129, 322, 1047, -1, 129, 29, 322, 1047, -1, 129, 309, 322, 1047, -1, 119, 322, 1047, -1, 185, 1045, -1, 242, 185, 1045, -1, 254, 698, -1, 244, 254, -1, 272, 373, 1059, -1, 336, 365, 1047, -1, 336, 514, -1, 310, 514, -1, 309, 173, 513, -1, 129, 320, 215, 328, -1, 119, 320, 215, 328, -1, 154, 320, 215, 328, -1, 242, 154, 320, 215, 328, -1, 616, -1, 336, 109, 976, -1, 126, 109, -1, 55, -1, 312, -1, -1, 70, 698, -1, -1, 396, 976, -1, -1, 245, -1, 159, -1, 109, -1, 396, 183, 1047, -1, 451, 516, 452, -1, 415, 514, -1, -1, 517, -1, 516, 455, 517, -1, 1068, 439, 672, -1, 1068, -1, 1068, 453, 1068, 439, 672, -1, 1068, 453, 1068, -1, 28, 383, 698, 519, -1, 520, -1, 519, 455, 520, -1, 22, 41, 951, 510, -1, 126, 41, 174, 141, 1065, 510, -1, 126, 41, 1065, 510, -1, 28, 41, 1065, 794, 383, 952, 511, 510, -1, 67, 880, -1, 67, 26, -1, 86, 529, 1045, 558, 530, 523, 524, 525, 531, 462, 526, -1, 86, 884, 373, 524, 525, 462, 526, -1, 158, -1, 373, -1, 292, -1, -1, 1056, -1, 353, -1, 354, -1, 527, -1, 451, 533, 452, -1, 527, 528, -1, -1, 48, -1, 257, -1, 157, -1, 115, 829, 1056, -1, 249, 829, 1056, -1, 90, -1, 170, -1, 293, 829, 1056, -1, 134, 829, 1056, -1, 154, 293, 559, -1, 154, 293, 443, -1, 154, 244, 249, 559, -1, 154, 249, 559, -1, 130, 1056, -1, 48, -1, -1, 415, 257, -1, -1, 532, 116, 1056, -1, -1, 396, -1, -1, 534, -1, 533, 455, 534, -1, 1068, 535, -1, 491, -1, 588, -1, 443, -1, 451, 536, 452, -1, -1, 537, -1, 536, 455, 537, -1, 491, -1, 88, 539, 362, 1045, 451, 540, 452, 569, 570, 571, 572, -1, 88, 539, 362, 174, 244, 141, 1045, 451, 540, 452, 569, 570, 571, 572, -1, 88, 539, 362, 1045, 254, 698, 541, 570, 571, 572, -1, 88, 539, 362, 174, 244, 141, 1045, 254, 698, 541, 570, 571, 572, -1, 368, -1, 366, -1, 220, 368, -1, 220, 366, -1, 162, 368, -1, 162, 366, -1, 392, -1, -1, 542, -1, -1, 451, 543, 452, -1, -1, 544, -1, 542, 455, 544, -1, 545, -1, 543, 455, 545, -1, 546, -1, 552, -1, 555, -1, 547, -1, 555, -1, 1065, 952, 614, 548, -1, 1065, 415, 262, 548, -1, 548, 549, -1, -1, 81, 1047, 550, -1, 550, -1, 551, -1, 70, 698, -1, 244, 249, -1, 249, -1, 389, 765, 573, -1, 287, 205, 765, 573, -1, 64, 451, 976, 452, 557, -1, 109, 977, -1, 301, 1045, 558, 561, 565, -1, 111, -1, 244, 111, -1, 187, 112, -1, 187, 176, -1, 216, 1045, 553, -1, 553, 181, 554, -1, 553, 138, 554, -1, -1, 110, -1, 82, -1, 184, -1, 355, -1, 74, -1, 26, -1, 81, 1047, 556, -1, 556, -1, 64, 451, 976, 452, 657, -1, 389, 451, 559, 452, 765, 573, 657, -1, 389, 574, 657, -1, 287, 205, 451, 559, 452, 765, 573, 657, -1, 287, 205, 574, 657, -1, 137, 738, 451, 562, 452, 765, 573, 564, 657, -1, 155, 205, 451, 559, 452, 301, 1045, 558, 561, 565, 657, -1, 242, 185, -1, -1, 451, 559, 452, -1, -1, 560, -1, 559, 455, 560, -1, 1065, -1, 228, 159, -1, 228, 274, -1, 228, 342, -1, -1, 563, -1, 562, 455, 563, -1, 740, 415, 775, -1, 740, 415, 260, 451, 775, 452, -1, 412, 451, 976, 452, -1, -1, 566, -1, 567, -1, 566, 567, -1, 567, 566, -1, -1, 258, 394, 568, -1, 258, 114, 568, -1, 242, 21, -1, 312, -1, 55, -1, 336, 249, -1, 336, 109, -1, 186, 451, 1044, 452, -1, -1, 415, 514, -1, 415, 257, -1, 417, 257, -1, -1, 258, 75, 126, -1, 258, 75, 114, 321, -1, 258, 75, 284, 321, -1, -1, 365, 1047, -1, -1, 396, 183, 365, 1047, -1, -1, 396, 183, 1051, -1, 88, 539, 362, 576, 35, 883, 577, -1, 88, 539, 362, 174, 244, 141, 576, 35, 883, 577, -1, 1045, 558, 570, 571, 572, -1, 415, 102, -1, 415, 242, 102, -1, -1, 88, 580, 229, 408, 579, 35, 883, 577, -1, 88, 580, 229, 408, 174, 244, 141, 579, 35, 883, 577, -1, 1045, 558, 515, 572, -1, 392, -1, -1, 302, 229, 408, 736, 1045, 577, -1, 88, 539, 330, 1045, 584, -1, 88, 539, 330, 174, 244, 141, 1045, 584, -1, 28, 330, 1045, 585, -1, 28, 330, 174, 141, 1045, 585, -1, 585, -1, -1, 586, -1, 585, 586, -1, 53, 588, -1, 101, -1, 242, 101, -1, 182, 587, 588, -1, 230, 588, -1, 232, 588, -1, 242, 230, -1, 242, 232, -1, 271, 52, 698, -1, 350, 462, 588, -1, 311, -1, 311, 462, 588, -1, 52, -1, -1, 4, -1, 442, 4, -1, 1057, -1, 588, -1, 589, 455, 588, -1, 88, 746, 591, 597, 207, 494, -1, 88, 746, 591, 597, 207, 494, 168, 592, 593, 595, -1, 382, -1, -1, 1047, -1, 1047, 699, -1, 188, 592, -1, -1, 400, 592, -1, 242, 400, -1, 594, -1, -1, 126, 597, 207, 494, 510, -1, 126, 597, 207, 174, 141, 494, 510, -1, 290, -1, -1, 88, 365, 1047, 599, 223, 1056, 515, -1, 272, 1059, -1, -1, 126, 365, 1047, -1, 126, 365, 174, 141, 1047, -1, 88, 143, 1047, 462, 602, -1, 88, 143, 174, 244, 141, 1047, 462, 602, -1, 602, 603, -1, -1, 324, 1047, -1, 407, 494, -1, 158, 494, -1, 28, 143, 1047, 394, 605, -1, 605, 606, -1, -1, 373, 494, -1, 28, 143, 1047, 477, 25, 1053, 758, -1, 28, 143, 1047, 477, 58, 451, 952, 35, 952, 452, -1, 28, 143, 1047, 477, 71, 698, -1, 28, 143, 1047, 477, 85, 698, -1, 28, 143, 1047, 477, 124, 952, -1, 28, 143, 1047, 477, 160, 724, -1, 28, 143, 1047, 477, 597, 207, 1047, -1, 28, 143, 1047, 477, 260, 775, 774, -1, 28, 143, 1047, 477, 260, 66, 698, 396, 1049, -1, 28, 143, 1047, 477, 260, 147, 698, 396, 1049, -1, 28, 143, 1047, 477, 324, 1047, -1, 28, 143, 1047, 477, 135, 378, 1047, -1, 28, 143, 1047, 477, 362, 698, -1, 28, 143, 1047, 477, 369, 326, 273, 698, -1, 28, 143, 1047, 477, 369, 326, 118, 698, -1, 28, 143, 1047, 477, 369, 326, 367, 698, -1, 28, 143, 1047, 477, 369, 326, 78, 698, -1, 28, 143, 1047, 477, 330, 698, -1, 28, 143, 1047, 477, 408, 698, -1, 28, 143, 1047, 477, 229, 408, 698, -1, 28, 143, 1047, 477, 155, 362, 698, -1, 28, 143, 1047, 477, 155, 102, 419, 1047, -1, 28, 143, 1047, 477, 333, 1047, -1, 28, 143, 1047, 477, 376, 153, 952, 207, 1047, -1, 28, 143, 1047, 477, 383, 952, -1, 88, 155, 102, 419, 1047, 611, 614, -1, 168, 592, -1, 242, 168, -1, 400, 592, -1, 242, 400, -1, 609, -1, 610, 609, -1, 610, -1, -1, 126, 155, 102, 419, 1047, 510, -1, 126, 155, 102, 419, 174, 141, 1047, 510, -1, 28, 155, 102, 419, 1047, 611, 616, -1, 28, 155, 102, 419, 1047, 610, -1, 262, 451, 615, 452, -1, -1, 619, -1, 615, 455, 619, -1, 262, 451, 617, 452, -1, 618, -1, 617, 455, 618, -1, 619, -1, 336, 619, -1, 22, 619, -1, 126, 620, -1, 620, 621, -1, 1068, -1, 1056, -1, 88, 333, 1047, 623, 625, 155, 102, 419, 1047, 614, -1, 383, 1056, -1, -1, 407, 1056, -1, 407, 249, -1, 624, -1, -1, 126, 333, 1047, 510, -1, 126, 333, 174, 141, 1047, 510, -1, 28, 333, 1047, 624, 616, -1, 28, 333, 1047, 624, -1, 28, 333, 1047, 616, -1, 88, 155, 362, 1045, 451, 540, 452, 569, 333, 1047, 614, -1, 88, 155, 362, 174, 244, 141, 1045, 451, 540, 452, 569, 333, 1047, 614, -1, 28, 155, 362, 937, 507, -1, 28, 155, 362, 174, 141, 937, 507, -1, 179, 155, 324, 1047, 632, 158, 333, 1047, 199, 1047, 614, -1, 217, 373, -1, 136, -1, 631, 451, 938, 452, -1, -1, 88, 395, 227, 153, 634, 333, 1047, 614, -1, 1059, -1, 395, -1, 126, 395, 227, 153, 634, 333, 1047, -1, 126, 395, 227, 174, 141, 153, 634, 333, 1047, -1, 28, 395, 227, 153, 634, 333, 1047, 616, -1, 88, 280, 1047, 258, 1045, 644, 642, 640, 641, -1, 28, 280, 1047, 258, 1045, 643, 640, 641, -1, 126, 280, 1047, 258, 698, 510, -1, 126, 280, 174, 141, 1047, 258, 698, 510, -1, 396, 451, 976, 452, -1, -1, 415, 64, 451, 976, 452, -1, -1, 373, 1060, -1, -1, 373, 1060, -1, -1, 153, 645, -1, -1, 26, -1, 329, -1, 193, -1, 394, -1, 114, -1, 88, 378, 1047, 647, 648, 258, 1045, 650, 653, 140, 291, 1053, 451, 654, 452, -1, 88, 81, 378, 1047, 24, 648, 258, 1045, 656, 657, 153, 127, 320, 653, 140, 291, 1053, 451, 654, 452, -1, 44, -1, 24, -1, 194, 254, -1, 649, -1, 648, 263, 649, -1, 193, -1, 114, -1, 394, -1, 394, 254, 559, -1, 381, -1, 153, 651, 652, -1, -1, 127, -1, -1, 320, -1, 351, -1, 411, 451, 976, 452, -1, -1, 655, -1, 654, 455, 655, -1, -1, 1055, -1, 4, -1, 1056, -1, 1068, -1, 158, 1045, -1, -1, -1, 657, 658, -1, 244, 111, -1, 111, -1, 187, 176, -1, 187, 112, -1, 244, 398, -1, 242, 185, -1, 126, 378, 1047, 258, 698, 510, -1, 126, 378, 174, 141, 1047, 258, 698, 510, -1, 88, 135, 378, 1047, 258, 1068, 140, 291, 1053, 451, 452, -1, 88, 135, 378, 1047, 258, 1068, 411, 661, 140, 291, 1053, 451, 452, -1, 662, -1, 661, 32, 662, -1, 1065, 180, 451, 663, 452, -1, 5, -1, 663, 455, 5, -1, 28, 135, 378, 1047, 665, -1, 129, -1, 129, 309, -1, 129, 29, -1, 119, -1, 88, 37, 1047, 64, 451, 976, 452, 657, -1, 126, 37, 1047, 510, -1, 88, 25, 1053, 758, 669, -1, 88, 25, 1053, 673, -1, 88, 260, 775, 669, -1, 88, 383, 698, 669, -1, 88, 383, 698, -1, 88, 383, 698, 35, 451, 949, 452, -1, 88, 383, 698, 35, 133, 451, 676, 452, -1, 88, 383, 698, 35, 294, 669, -1, 88, 369, 326, 273, 698, 669, -1, 88, 369, 326, 118, 698, 669, -1, 88, 369, 326, 367, 698, 669, -1, 88, 369, 326, 78, 698, 669, -1, 88, 71, 698, 669, -1, 88, 71, 698, 158, 698, -1, 451, 670, 452, -1, 671, -1, 670, 455, 671, -1, 1068, 439, 672, -1, 1068, -1, 755, -1, 1072, -1, 1010, -1, 588, -1, 1056, -1, 451, 674, 452, -1, 675, -1, 674, 455, 675, -1, 3, 439, 672, -1, 677, -1, -1, 1056, -1, 677, 455, 1056, -1, 28, 383, 698, 22, 401, 679, 1056, -1, 28, 383, 698, 22, 401, 679, 1056, 44, 1056, -1, 28, 383, 698, 22, 401, 679, 1056, 24, 1056, -1, 174, 244, 141, -1, -1, 88, 260, 66, 698, 683, 153, 383, 952, 396, 1049, 684, 35, 681, -1, 682, -1, 681, 455, 682, -1, 260, 1055, 775, 685, 686, -1, 260, 1055, 775, 774, 685, 686, -1, 160, 1055, 1053, 747, -1, 160, 1055, 451, 1015, 452, 1053, 747, -1, 355, 952, -1, 109, -1, -1, 147, 698, -1, -1, 153, 326, -1, 153, 264, 52, 698, -1, -1, 298, -1, -1, 88, 260, 147, 698, 396, 1049, -1, 28, 260, 147, 698, 396, 1049, 22, 681, -1, 28, 260, 147, 698, 396, 1049, 126, 689, -1, 690, -1, 689, 455, 690, -1, 260, 1055, 451, 1015, 452, -1, 160, 1055, 451, 1015, 452, -1, 126, 260, 66, 698, 396, 1049, 510, -1, 126, 260, 66, 174, 141, 698, 396, 1049, 510, -1, 126, 260, 147, 698, 396, 1049, 510, -1, 126, 260, 147, 174, 141, 698, 396, 1049, 510, -1, 126, 271, 52, 1060, 510, -1, 297, 271, 52, 1060, 373, 1059, -1, 126, 696, 174, 141, 697, 510, -1, 126, 696, 697, 510, -1, 126, 383, 700, 510, -1, 126, 383, 174, 141, 700, 510, -1, 126, 124, 700, 510, -1, 126, 124, 174, 141, 700, 510, -1, 126, 183, 77, 697, 510, -1, 126, 183, 77, 174, 141, 697, 510, -1, 362, -1, 330, -1, 408, -1, 229, 408, -1, 183, -1, 155, 362, -1, 135, 378, -1, 71, -1, 85, -1, 324, -1, 143, -1, 369, 326, 273, -1, 369, 326, 118, -1, 369, 326, 367, -1, 369, 326, 78, -1, 698, -1, 697, 455, 698, -1, 1065, -1, 1065, 699, -1, 453, 1050, -1, 699, 453, 1050, -1, 952, -1, 700, 455, 952, -1, 381, 894, 938, 702, 510, -1, 84, 173, -1, 311, 173, -1, -1, 73, 258, 704, 698, 201, 705, -1, 73, 258, 383, 952, 201, 705, -1, 73, 258, 124, 952, 201, 705, -1, 73, 258, 25, 1053, 758, 201, 705, -1, 73, 258, 160, 1053, 747, 201, 705, -1, 73, 258, 260, 775, 774, 201, 705, -1, 73, 258, 81, 1047, 258, 698, 201, 705, -1, 73, 258, 81, 1047, 258, 124, 698, 201, 705, -1, 73, 258, 280, 1047, 258, 698, 201, 705, -1, 73, 258, 322, 1047, 258, 698, 201, 705, -1, 73, 258, 322, 1047, 201, 705, -1, 73, 258, 376, 153, 952, 207, 1047, 201, 705, -1, 73, 258, 378, 1047, 258, 698, 201, 705, -1, 73, 258, 260, 66, 698, 396, 1049, 201, 705, -1, 73, 258, 260, 147, 698, 396, 1049, 201, 705, -1, 73, 258, 208, 253, 588, 201, 705, -1, 73, 258, 58, 451, 952, 35, 952, 452, 201, 705, -1, 73, 258, 597, 207, 698, 201, 705, -1, 72, -1, 103, -1, 324, -1, 183, -1, 330, -1, 362, -1, 408, -1, 229, 408, -1, 71, -1, 85, -1, 365, -1, 143, -1, 317, -1, 155, 362, -1, 333, -1, 155, 102, 419, -1, 135, 378, -1, 369, 326, 78, -1, 369, 326, 118, -1, 369, 326, 273, -1, 369, 326, 367, -1, 1056, -1, 249, -1, 328, 206, 707, 258, 708, 698, 201, 709, -1, 328, 206, 707, 258, 383, 952, 201, 709, -1, 328, 206, 707, 258, 124, 952, 201, 709, -1, 328, 206, 707, 258, 25, 1053, 758, 201, 709, -1, 328, 206, 707, 258, 160, 1053, 747, 201, 709, -1, 328, 206, 707, 258, 208, 253, 588, 201, 709, -1, 328, 206, 707, 258, 597, 207, 698, 201, 709, -1, 153, 494, -1, -1, 72, -1, 103, -1, 135, 378, -1, 155, 362, -1, 324, -1, 330, -1, 362, -1, 317, -1, 365, -1, 408, -1, 229, 408, -1, 1056, -1, 249, -1, 148, 711, -1, 235, 711, -1, 880, -1, 712, 880, -1, 241, 713, 880, -1, 288, 713, 880, -1, 150, 713, 880, -1, 209, 713, 880, -1, 19, 1057, 713, 880, -1, 304, 1057, 713, 880, -1, 1057, 713, 880, -1, 26, 713, 880, -1, 156, 713, 880, -1, 156, 1057, 713, 880, -1, 156, 26, 713, 880, -1, 43, 713, 880, -1, 43, 1057, 713, 880, -1, 43, 26, 713, 880, -1, 158, -1, 180, -1, 712, -1, -1, 163, 716, 258, 719, 373, 720, 722, -1, 315, 716, 258, 719, 158, 720, 510, -1, 315, 163, 261, 153, 716, 258, 719, 158, 720, 510, -1, 717, -1, 26, -1, 26, 289, -1, 26, 451, 559, 452, -1, 26, 289, 451, 559, 452, -1, 718, -1, 717, 455, 718, -1, 329, 558, -1, 301, 558, -1, 88, 558, -1, 1065, 558, -1, 1044, -1, 362, 1044, -1, 330, 1044, -1, 155, 102, 419, 1046, -1, 155, 333, 1046, -1, 160, 723, -1, 103, 1046, -1, 124, 697, -1, 207, 1046, -1, 208, 253, 589, -1, 324, 1046, -1, 365, 1046, -1, 383, 697, -1, 26, 363, 180, 324, 1046, -1, 26, 331, 180, 324, 1046, -1, 26, 161, 180, 324, 1046, -1, 721, -1, 720, 455, 721, -1, 1059, -1, 166, 1059, -1, 415, 163, 261, -1, -1, 724, -1, 723, 455, 724, -1, 1053, 747, -1, 163, 717, 373, 1060, 727, 728, -1, 315, 717, 158, 1060, 728, 510, -1, 315, 23, 261, 153, 717, 158, 1060, 728, 510, -1, 415, 23, 261, -1, -1, 164, 52, 1059, -1, -1, 28, 109, 289, 730, 732, -1, 730, 731, -1, -1, 180, 324, 1046, -1, 153, 317, 1060, -1, 153, 395, 1060, -1, 163, 716, 258, 733, 373, 720, 722, -1, 315, 716, 258, 733, 158, 720, 510, -1, 315, 163, 261, 153, 716, 258, 733, 158, 720, 510, -1, 363, -1, 161, -1, 331, -1, 384, -1, 88, 735, 183, 736, 737, 258, 1045, 738, 451, 739, 452, 515, 572, 947, -1, 88, 735, 183, 736, 174, 244, 141, 1051, 258, 1045, 738, 451, 739, 452, 515, 572, 947, -1, 389, -1, -1, 77, -1, -1, 1051, -1, -1, 396, 1049, -1, -1, 740, -1, 739, 455, 740, -1, 1065, 741, 742, 743, 744, -1, 981, 741, 742, 743, 744, -1, 451, 976, 452, 741, 742, 743, 744, -1, 70, 698, -1, -1, 698, -1, 396, 698, -1, -1, 36, -1, 117, -1, -1, 435, 150, -1, 435, 209, -1, -1, 88, 746, 160, 1053, 749, 314, 754, 760, 765, -1, 88, 746, 160, 1053, 749, 314, 362, 451, 767, 452, 760, 765, -1, 88, 746, 160, 1053, 749, 760, 765, -1, 263, 308, -1, -1, 451, 748, 452, -1, 451, 452, -1, 751, -1, 748, 455, 751, -1, 451, 750, 452, -1, 451, 452, -1, 756, -1, 750, 455, 756, -1, 752, 753, 755, -1, 753, 752, 755, -1, 753, 755, -1, 752, 755, -1, 755, -1, 180, -1, 266, -1, 190, -1, 180, 266, -1, 404, -1, 1066, -1, 755, -1, 952, -1, 1066, 699, 445, 383, -1, 338, 1066, 699, 445, 383, -1, 751, -1, 751, 109, 976, -1, 751, 439, 976, -1, 751, -1, 451, 443, 452, -1, 451, 759, 452, -1, 451, 264, 52, 759, 452, -1, 451, 759, 264, 52, 759, 452, -1, 757, -1, 759, 455, 757, -1, 762, -1, 760, 762, -1, 54, 258, 249, 191, -1, 314, 249, 258, 249, 191, -1, 356, -1, 177, -1, 348, -1, 410, -1, 144, 328, 113, -1, 144, 328, 200, -1, 328, 113, -1, 328, 200, -1, 212, -1, 244, 212, -1, 87, 588, -1, 321, 588, -1, 499, -1, 35, 763, -1, 207, 494, -1, 376, 764, -1, 414, -1, 761, -1, 1056, -1, 1056, 455, 1056, -1, 153, 383, 952, -1, 764, 455, 153, 383, 952, -1, 415, 669, -1, -1, 753, 755, -1, 766, -1, 767, 455, 766, -1, 28, 160, 724, 769, 770, -1, 761, -1, 769, 761, -1, 312, -1, -1, 126, 160, 1053, 747, 510, -1, 126, 160, 174, 141, 1053, 747, 510, -1, 126, 25, 1053, 758, 510, -1, 126, 25, 174, 141, 1053, 758, 510, -1, 126, 260, 775, 774, 510, -1, 126, 260, 174, 141, 775, 774, 510, -1, 451, 952, 452, -1, 451, 952, 455, 952, 452, -1, 451, 243, 455, 952, 452, -1, 451, 952, 455, 243, 452, -1, 1007, -1, 1065, 453, 775, -1, 122, 777, -1, 778, -1, 777, 778, -1, 1056, -1, 207, 494, -1, 88, 58, 451, 952, 35, 952, 452, 415, 160, 724, 780, -1, 88, 58, 451, 952, 35, 952, 452, 417, 160, 780, -1, 88, 58, 451, 952, 35, 952, 452, 415, 190, 780, -1, 35, 178, -1, 35, 38, -1, -1, 126, 58, 782, 451, 952, 35, 952, 452, 510, -1, 174, 141, -1, -1, 88, 746, 376, 153, 952, 207, 1047, 451, 784, 452, -1, 158, 347, 415, 160, 724, 455, 373, 347, 415, 160, 724, -1, 373, 347, 415, 160, 724, 455, 158, 347, 415, 160, 724, -1, 158, 347, 415, 160, 724, -1, 373, 347, 415, 160, 724, -1, 126, 376, 782, 153, 952, 207, 1047, 510, -1, 303, 787, 1045, -1, 303, 788, 1047, -1, 303, 451, 789, 452, 787, 1045, -1, 303, 451, 789, 452, 788, 1047, -1, 183, -1, 362, -1, 324, -1, 361, -1, 103, -1, 790, -1, 789, 455, 790, -1, 406, -1, 28, 365, 1047, 336, 514, -1, 28, 365, 1047, 310, 514, -1, 28, 25, 1053, 758, 306, 373, 1047, -1, 28, 71, 698, 306, 373, 1047, -1, 28, 85, 698, 306, 373, 1047, -1, 28, 103, 1048, 306, 373, 1048, -1, 28, 124, 698, 306, 373, 1047, -1, 28, 124, 698, 306, 81, 1047, 373, 1047, -1, 28, 155, 102, 419, 1047, 306, 373, 1047, -1, 28, 160, 724, 306, 373, 1047, -1, 28, 166, 1058, 306, 373, 1058, -1, 28, 597, 207, 1047, 306, 373, 1047, -1, 28, 260, 66, 698, 396, 1049, 306, 373, 1047, -1, 28, 260, 147, 698, 396, 1049, 306, 373, 1047, -1, 28, 280, 1047, 258, 1045, 306, 373, 1047, -1, 28, 280, 174, 141, 1047, 258, 1045, 306, 373, 1047, -1, 28, 324, 1047, 306, 373, 1047, -1, 28, 333, 1047, 306, 373, 1047, -1, 28, 362, 937, 306, 373, 1047, -1, 28, 362, 174, 141, 937, 306, 373, 1047, -1, 28, 330, 1045, 306, 373, 1047, -1, 28, 330, 174, 141, 1045, 306, 373, 1047, -1, 28, 408, 1045, 306, 373, 1047, -1, 28, 408, 174, 141, 1045, 306, 373, 1047, -1, 28, 229, 408, 1045, 306, 373, 1047, -1, 28, 229, 408, 174, 141, 1045, 306, 373, 1047, -1, 28, 183, 1045, 306, 373, 1047, -1, 28, 183, 174, 141, 1045, 306, 373, 1047, -1, 28, 155, 362, 937, 306, 373, 1047, -1, 28, 155, 362, 174, 141, 937, 306, 373, 1047, -1, 28, 362, 937, 306, 793, 1047, 373, 1047, -1, 28, 362, 174, 141, 937, 306, 793, 1047, 373, 1047, -1, 28, 229, 408, 1045, 306, 793, 1047, 373, 1047, -1, 28, 229, 408, 174, 141, 1045, 306, 793, 1047, 373, 1047, -1, 28, 362, 937, 306, 81, 1047, 373, 1047, -1, 28, 362, 174, 141, 937, 306, 81, 1047, 373, 1047, -1, 28, 155, 362, 937, 306, 793, 1047, 373, 1047, -1, 28, 155, 362, 174, 141, 937, 306, 793, 1047, 373, 1047, -1, 28, 322, 1047, 258, 1045, 306, 373, 1047, -1, 28, 378, 1047, 258, 1045, 306, 373, 1047, -1, 28, 135, 378, 1047, 306, 373, 1047, -1, 28, 317, 1058, 306, 373, 1058, -1, 28, 395, 1058, 306, 373, 1058, -1, 28, 365, 1047, 306, 373, 1047, -1, 28, 369, 326, 273, 698, 306, 373, 1047, -1, 28, 369, 326, 118, 698, 306, 373, 1047, -1, 28, 369, 326, 367, 698, 306, 373, 1047, -1, 28, 369, 326, 78, 698, 306, 373, 1047, -1, 28, 383, 698, 306, 373, 1047, -1, 28, 383, 698, 306, 41, 1047, 373, 1047, 510, -1, 72, -1, -1, 336, 102, -1, -1, 28, 25, 1053, 758, 336, 324, 1047, -1, 28, 71, 698, 336, 324, 1047, -1, 28, 85, 698, 336, 324, 1047, -1, 28, 124, 698, 336, 324, 1047, -1, 28, 143, 698, 336, 324, 1047, -1, 28, 160, 724, 336, 324, 1047, -1, 28, 260, 775, 774, 336, 324, 1047, -1, 28, 260, 66, 698, 396, 1049, 336, 324, 1047, -1, 28, 260, 147, 698, 396, 1049, 336, 324, 1047, -1, 28, 362, 937, 336, 324, 1047, -1, 28, 362, 174, 141, 937, 336, 324, 1047, -1, 28, 369, 326, 273, 698, 336, 324, 1047, -1, 28, 369, 326, 118, 698, 336, 324, 1047, -1, 28, 369, 326, 367, 698, 336, 324, 1047, -1, 28, 369, 326, 78, 698, 336, 324, 1047, -1, 28, 330, 1045, 336, 324, 1047, -1, 28, 330, 174, 141, 1045, 336, 324, 1047, -1, 28, 408, 1045, 336, 324, 1047, -1, 28, 408, 174, 141, 1045, 336, 324, 1047, -1, 28, 229, 408, 1045, 336, 324, 1047, -1, 28, 229, 408, 174, 141, 1045, 336, 324, 1047, -1, 28, 155, 362, 937, 336, 324, 1047, -1, 28, 155, 362, 174, 141, 937, 336, 324, 1047, -1, 28, 383, 698, 336, 324, 1047, -1, 28, 25, 1053, 758, 272, 373, 1059, -1, 28, 71, 698, 272, 373, 1059, -1, 28, 85, 698, 272, 373, 1059, -1, 28, 103, 1048, 272, 373, 1059, -1, 28, 124, 698, 272, 373, 1059, -1, 28, 160, 724, 272, 373, 1059, -1, 28, 597, 207, 1047, 272, 373, 1059, -1, 28, 208, 253, 588, 272, 373, 1059, -1, 28, 260, 775, 774, 272, 373, 1059, -1, 28, 260, 66, 698, 396, 1049, 272, 373, 1059, -1, 28, 260, 147, 698, 396, 1049, 272, 373, 1059, -1, 28, 324, 1047, 272, 373, 1059, -1, 28, 383, 698, 272, 373, 1059, -1, 28, 365, 1047, 272, 373, 1059, -1, 28, 369, 326, 118, 698, 272, 373, 1059, -1, 28, 369, 326, 78, 698, 272, 373, 1059, -1, 28, 155, 102, 419, 1047, 272, 373, 1059, -1, 28, 333, 1047, 272, 373, 1059, -1, 28, 135, 378, 1047, 272, 373, 1059, -1, 88, 746, 322, 1047, 35, 258, 802, 373, 1045, 947, 122, 803, 798, -1, 245, -1, 800, -1, 451, 799, 452, -1, 799, 454, 801, -1, 801, -1, 883, -1, 857, -1, 872, -1, 865, -1, 805, -1, 800, -1, -1, 329, -1, 394, -1, 114, -1, 193, -1, 194, -1, 27, -1, -1, 126, 322, 1047, 258, 698, 510, -1, 126, 322, 174, 141, 1047, 258, 698, 510, -1, 246, 1065, 806, -1, 455, 1056, -1, -1, 218, 1065, -1, 391, 1065, -1, 391, 443, -1, 18, 810, -1, 45, 810, 813, -1, 350, 375, 813, -1, 75, 810, -1, 132, 810, -1, 318, 810, -1, 323, 1065, -1, 305, 323, 1065, -1, 305, 1065, -1, 318, 810, 373, 323, 1065, -1, 318, 810, 373, 1065, -1, 285, 375, 1056, -1, 75, 286, 1056, -1, 318, 286, 1056, -1, 418, -1, 375, -1, -1, 203, 215, 490, -1, 295, 259, -1, 295, 420, -1, 111, -1, 244, 111, -1, 811, -1, 812, 455, 811, -1, 812, 811, -1, 812, -1, -1, 88, 539, 408, 1045, 558, 515, 35, 883, 815, -1, 88, 263, 308, 539, 408, 1045, 558, 515, 35, 883, 815, -1, 88, 539, 299, 408, 1045, 451, 559, 452, 515, 35, 883, 815, -1, 88, 263, 308, 539, 299, 408, 1045, 451, 559, 452, 515, 35, 883, 815, -1, 415, 64, 261, -1, 415, 56, 64, 261, -1, 415, 220, 64, 261, -1, -1, 219, 1052, -1, 88, 103, 1048, 462, 818, -1, 819, -1, -1, 820, -1, 819, 820, -1, 821, 822, 1057, -1, 821, 822, 491, -1, 821, 822, 109, -1, 3, -1, 80, 217, -1, 130, -1, 223, -1, 272, -1, 365, -1, 367, -1, 439, -1, -1, 28, 103, 1048, 415, 818, -1, 28, 103, 1048, 818, -1, 28, 103, 1048, 336, 365, 1047, -1, 28, 103, 1048, 498, -1, 126, 103, 1048, -1, 126, 103, 174, 141, 1048, -1, 28, 361, 336, 485, -1, 28, 361, 310, 497, -1, 88, 124, 698, 829, 952, 548, -1, 28, 124, 698, 509, -1, 28, 124, 698, 126, 244, 249, -1, 28, 124, 698, 336, 244, 249, -1, 28, 124, 698, 22, 555, -1, 28, 124, 698, 126, 81, 1047, 510, -1, 28, 124, 698, 126, 81, 174, 141, 1047, 510, -1, 28, 124, 698, 399, 81, 1047, -1, 35, -1, -1, 28, 369, 326, 118, 698, 669, -1, 28, 369, 326, 78, 698, 22, 227, 153, 1046, 832, 697, -1, 28, 369, 326, 78, 698, 28, 227, 153, 1046, 832, 697, -1, 28, 369, 326, 78, 698, 28, 227, 308, 698, 832, 698, -1, 28, 369, 326, 78, 698, 28, 227, 153, 1046, 308, 698, 832, 698, -1, 28, 369, 326, 78, 698, 126, 227, 153, 1046, -1, 28, 369, 326, 78, 698, 126, 227, 174, 141, 153, 1046, -1, 415, -1, 436, -1, 88, 683, 85, 698, 153, 1056, 373, 1056, 158, 698, -1, 68, 841, 1045, 835, -1, 68, 841, -1, 68, 841, 1051, 258, 1045, -1, 396, 1051, -1, -1, 397, 842, 843, 841, -1, 397, 842, 843, 841, 1045, -1, 397, 842, 843, 841, 839, -1, 397, 451, 837, 452, -1, 397, 451, 837, 452, 1045, 844, -1, 838, -1, 837, 455, 838, -1, 840, -1, 406, -1, 157, -1, 159, -1, 840, 841, -1, 840, 841, 1045, 844, -1, 31, -1, 30, -1, 406, -1, -1, 159, -1, -1, 157, -1, -1, 451, 1046, 452, -1, -1, 142, 846, -1, 142, 840, 841, 846, -1, 142, 406, 846, -1, 142, 451, 847, 452, 846, -1, 883, -1, 857, -1, 872, -1, 865, -1, 879, -1, 575, -1, 578, -1, 581, -1, 854, -1, 848, -1, 847, 455, 848, -1, 849, 850, -1, 1067, -1, 840, -1, 491, -1, 588, -1, -1, 285, 1047, 852, 35, 853, -1, 451, 1015, 452, -1, -1, 883, -1, 857, -1, 872, -1, 865, -1, 140, 1047, 855, -1, 88, 539, 362, 576, 35, 140, 1047, 855, 577, -1, 451, 1012, 452, -1, -1, 105, 1047, -1, 105, 285, 1047, -1, 105, 26, -1, 105, 285, 26, -1, 891, 193, 199, 858, 859, 862, 864, -1, 1045, -1, 1045, 35, 1065, -1, 883, -1, 451, 860, 452, 883, -1, 109, 402, -1, 861, -1, 860, 455, 861, -1, 1065, 1036, -1, 258, 79, 863, 122, 394, 336, 873, 947, -1, 258, 79, 863, 122, 245, -1, -1, 451, 739, 452, 947, -1, 258, 81, 1047, -1, -1, 313, 1042, -1, -1, 891, 114, 158, 939, 866, 948, 864, -1, 396, 928, -1, -1, 224, 894, 938, 868, 870, -1, 180, 869, 233, -1, -1, 20, 339, -1, 320, 339, -1, 320, 139, -1, 339, 394, 139, -1, 339, -1, 339, 320, 139, -1, 139, -1, 20, 139, -1, 248, -1, -1, 248, -1, 343, 225, -1, -1, 891, 394, 939, 336, 873, 927, 948, 864, -1, 874, -1, 873, 455, 874, -1, 875, -1, 876, -1, 877, 439, 1038, -1, 451, 878, 452, 439, 1040, -1, 451, 878, 452, 439, 884, -1, 1065, 1036, -1, 877, -1, 878, 455, 877, -1, 108, 880, 881, 100, 882, 153, 883, -1, 1047, -1, -1, 881, 242, 325, -1, 881, 325, -1, 881, 48, -1, 881, 192, -1, -1, 415, 171, -1, 417, 171, -1, 885, -1, 884, -1, 451, 885, 452, -1, 451, 884, 452, -1, 887, -1, 886, 899, -1, 886, 898, 920, 903, -1, 886, 898, 902, 921, -1, 888, 886, -1, 888, 886, 899, -1, 888, 886, 898, 920, 903, -1, 888, 886, 898, 902, 921, -1, 887, -1, 884, -1, 329, 897, 1041, 892, 927, 947, 912, 919, 993, -1, 329, 896, 1042, 892, 927, 947, 912, 919, 993, -1, 926, -1, 362, 937, -1, 886, 388, 895, 886, -1, 886, 197, 895, 886, -1, 886, 136, 895, 886, -1, 415, 889, -1, 436, 889, -1, 415, 299, 889, -1, 890, -1, 889, 455, 890, -1, 1047, 844, 35, 451, 853, 452, -1, 888, -1, -1, 199, 893, -1, -1, 368, 894, 1045, -1, 366, 894, 1045, -1, 220, 368, 894, 1045, -1, 220, 366, 894, 1045, -1, 162, 368, 894, 1045, -1, 162, 366, 894, 1045, -1, 392, 894, 1045, -1, 362, 1045, -1, 1045, -1, 362, -1, -1, 26, -1, 121, -1, -1, 121, -1, 121, 258, 451, 1012, 452, -1, 26, -1, -1, 899, -1, -1, 264, 52, 900, -1, 901, -1, 900, 455, 901, -1, 976, 396, 1010, 744, -1, 976, 743, 744, -1, 904, 905, -1, 905, 904, -1, 904, -1, 905, -1, 902, -1, -1, 217, 906, -1, 217, 906, 455, 907, -1, 148, 911, 908, 910, 259, -1, 256, 907, -1, 256, 909, 910, -1, 976, -1, 26, -1, 976, -1, 1057, -1, 451, 976, 452, -1, -1, 978, -1, 320, -1, 321, -1, 150, -1, 241, -1, 166, 52, 913, -1, -1, 914, -1, 913, 455, 914, -1, 976, -1, 915, -1, 917, -1, 916, -1, 918, -1, 451, 452, -1, 319, 451, 1012, 452, -1, 91, 451, 1012, 452, -1, 167, 337, 451, 913, 452, -1, 169, 976, -1, -1, 922, -1, 153, 295, 259, -1, 920, -1, -1, 923, -1, 922, 923, -1, 924, 925, 871, -1, 153, 394, -1, 153, 242, 205, 394, -1, 153, 339, -1, 153, 205, 339, -1, 254, 1044, -1, -1, 402, 1040, -1, 926, 455, 1040, -1, 158, 928, -1, -1, 929, -1, 928, 455, 929, -1, 937, 932, -1, 937, 932, 940, -1, 942, 933, -1, 210, 942, 933, -1, 884, 932, -1, 210, 884, 932, -1, 930, -1, 451, 930, 452, 931, -1, 451, 930, 452, -1, 929, 89, 204, 929, -1, 929, 934, 204, 929, 936, -1, 929, 204, 929, 936, -1, 929, 239, 934, 204, 929, -1, 929, 239, 204, 929, -1, 35, 1065, 451, 1046, 452, -1, 35, 1065, -1, 1065, 451, 1046, 452, -1, 1065, -1, 931, -1, -1, 931, -1, 35, 451, 950, 452, -1, 35, 1065, 451, 950, 452, -1, 1065, 451, 950, 452, -1, -1, 159, 935, -1, 214, 935, -1, 316, 935, -1, 189, -1, 267, -1, -1, 396, 451, 1046, 452, -1, 258, 976, -1, 1045, -1, 1045, 443, -1, 259, 1045, -1, 259, 451, 1045, 452, -1, 937, -1, 938, 455, 937, -1, 937, -1, 937, 1065, -1, 937, 35, 1065, -1, 364, 1053, 451, 1012, 452, 941, -1, 307, 451, 976, 452, -1, -1, 981, 946, -1, 321, 158, 451, 944, 452, 946, -1, 981, 945, -1, 943, -1, 944, 455, 943, -1, 35, 451, 950, 452, -1, -1, 436, 265, -1, -1, 412, 976, -1, -1, 412, 976, -1, 412, 92, 254, 880, -1, -1, 950, -1, -1, 951, -1, 950, 455, 951, -1, 1065, 952, 511, -1, 954, 953, -1, 338, 954, 953, -1, 954, 34, 449, 1055, 450, -1, 338, 954, 34, 449, 1055, 450, -1, 954, 34, -1, 338, 954, 34, -1, 953, 449, 450, -1, 953, 449, 1055, 450, -1, -1, 956, -1, 958, -1, 960, -1, 964, -1, 971, -1, 972, 974, -1, 972, 451, 1055, 452, -1, 958, -1, 961, -1, 965, -1, 971, -1, 1066, 957, -1, 1066, 699, 957, -1, 451, 1012, 452, -1, -1, 195, -1, 196, -1, 344, -1, 47, -1, 296, -1, 151, 959, -1, 125, 283, -1, 107, 957, -1, 106, 957, -1, 252, 957, -1, 50, -1, 451, 1055, 452, -1, -1, 962, -1, 963, -1, 962, -1, 963, -1, 49, 969, 451, 1012, 452, -1, 49, 969, -1, 966, -1, 967, -1, 966, -1, 967, -1, 968, 451, 1061, 452, 970, -1, 968, 970, -1, 62, 969, -1, 61, 969, -1, 403, -1, 238, 62, 969, -1, 238, 61, 969, -1, 240, 969, -1, 405, -1, -1, 62, 336, 1065, -1, -1, 372, 451, 1055, 452, 973, -1, 372, 973, -1, 371, 451, 1055, 452, 973, -1, 371, 973, -1, 198, -1, 436, 371, 433, -1, 417, 371, 433, -1, -1, 431, -1, 234, -1, 104, -1, 172, -1, 231, -1, 975, -1, 431, 373, 234, -1, 104, 373, 172, -1, 104, 373, 231, -1, 104, 373, 975, -1, 172, 373, 231, -1, 172, 373, 975, -1, 231, 373, 975, -1, -1, 327, -1, 327, 451, 1055, 452, -1, 978, -1, 976, 11, 952, -1, 976, 70, 698, -1, 976, 40, 371, 433, 976, -1, 441, 976, -1, 442, 976, -1, 976, 441, 976, -1, 976, 442, 976, -1, 976, 443, 976, -1, 976, 444, 976, -1, 976, 445, 976, -1, 976, 446, 976, -1, 976, 437, 976, -1, 976, 438, 976, -1, 976, 439, 976, -1, 976, 15, 976, -1, 976, 16, 976, -1, 976, 17, 976, -1, 976, 447, 976, -1, 976, 447, -1, 976, 1009, 976, -1, 1009, 976, -1, 976, 1009, -1, 976, 32, 976, -1, 976, 263, 976, -1, 244, 976, -1, 434, 976, -1, 976, 216, 976, -1, 976, 216, 976, 134, 976, -1, 976, 434, 216, 976, -1, 976, 434, 216, 976, 134, 976, -1, 976, 175, 976, -1, 976, 175, 976, 134, 976, -1, 976, 434, 175, 976, -1, 976, 434, 175, 976, 134, 976, -1, 976, 341, 373, 976, -1, 976, 341, 373, 976, 134, 976, -1, 976, 434, 341, 373, 976, -1, 976, 434, 341, 373, 976, 134, 976, -1, 976, 201, 249, -1, 976, 202, -1, 976, 201, 244, 249, -1, 976, 247, -1, 1003, 269, 1003, -1, 976, 201, 380, -1, 976, 201, 244, 380, -1, 976, 201, 146, -1, 976, 201, 244, 146, -1, 976, 201, 390, -1, 976, 201, 244, 390, -1, 976, 201, 121, 158, 976, -1, 976, 201, 244, 121, 158, 976, -1, 976, 201, 254, 451, 1015, 452, -1, 976, 201, 244, 254, 451, 1015, 452, -1, 976, 46, 1037, 977, 32, 976, -1, 976, 434, 46, 1037, 977, 32, 976, -1, 976, 46, 359, 977, 32, 976, -1, 976, 434, 46, 359, 977, 32, 976, -1, 976, 180, 1027, -1, 976, 434, 180, 1027, -1, 976, 1011, 1006, 884, -1, 976, 1011, 1006, 451, 976, 452, -1, 389, 884, -1, 976, 201, 123, -1, 976, 201, 244, 123, -1, 978, -1, 977, 11, 952, -1, 441, 977, -1, 442, 977, -1, 977, 441, 977, -1, 977, 442, 977, -1, 977, 443, 977, -1, 977, 444, 977, -1, 977, 445, 977, -1, 977, 446, 977, -1, 977, 437, 977, -1, 977, 438, 977, -1, 977, 439, 977, -1, 977, 15, 977, -1, 977, 16, 977, -1, 977, 17, 977, -1, 977, 447, 977, -1, 977, 447, -1, 977, 1009, 977, -1, 1009, 977, -1, 977, 1009, -1, 977, 201, 121, 158, 977, -1, 977, 201, 244, 121, 158, 977, -1, 977, 201, 254, 451, 1015, 452, -1, 977, 201, 244, 254, 451, 1015, 452, -1, 977, 201, 123, -1, 977, 201, 244, 123, -1, 1033, -1, 1054, -1, 447, 1036, -1, 10, 1036, -1, 451, 976, 452, 1036, -1, 1028, -1, 980, -1, 884, -1, 884, 1035, -1, 141, 884, -1, 34, 884, -1, 34, 1016, -1, 1004, -1, 1005, -1, 167, 451, 1012, 452, -1, 1053, 451, 452, -1, 1053, 451, 1013, 898, 452, -1, 1053, 451, 404, 1014, 898, 452, -1, 1053, 451, 1013, 455, 404, 1014, 898, 452, -1, 1053, 451, 26, 1013, 898, 452, -1, 1053, 451, 121, 1013, 898, 452, -1, 1053, 451, 443, 452, -1, 979, 991, 992, 996, -1, 982, -1, 979, -1, 982, -1, 71, 153, 451, 976, 452, -1, 94, -1, 97, -1, 97, 451, 1055, 452, -1, 98, -1, 98, 451, 1055, 452, -1, 221, -1, 221, 451, 1055, 452, -1, 222, -1, 222, 451, 1055, 452, -1, 95, -1, 99, -1, 335, -1, 395, -1, 93, -1, 96, -1, 58, 451, 976, 35, 952, 452, -1, 145, 451, 1018, 452, -1, 270, 451, 1020, 452, -1, 281, 451, 1022, 452, -1, 358, 451, 1023, 452, -1, 377, 451, 976, 35, 952, 452, -1, 379, 451, 51, 1026, 452, -1, 379, 451, 211, 1026, 452, -1, 379, 451, 374, 1026, 452, -1, 379, 451, 1026, 452, -1, 250, 451, 976, 455, 976, 452, -1, 69, 451, 1012, 452, -1, 165, 451, 1012, 452, -1, 213, 451, 1012, 452, -1, 423, 451, 1012, 452, -1, 424, 451, 236, 1068, 452, -1, 424, 451, 236, 1068, 455, 985, 452, -1, 424, 451, 236, 1068, 455, 1012, 452, -1, 424, 451, 236, 1068, 455, 985, 455, 1012, 452, -1, 425, 451, 978, 990, 452, -1, 426, 451, 986, 452, -1, 427, 451, 988, 976, 989, 452, -1, 428, 451, 236, 1068, 452, -1, 428, 451, 236, 1068, 455, 976, 452, -1, 429, 451, 976, 455, 983, 984, 452, -1, 430, 451, 988, 976, 35, 954, 452, -1, 407, 976, -1, 407, 242, 401, -1, 455, 349, 432, -1, 455, 349, 242, -1, 455, 349, 242, 401, -1, -1, 422, 451, 986, 452, -1, 987, -1, 986, 455, 987, -1, 976, 35, 1068, -1, 976, -1, 123, -1, 83, -1, 284, 413, -1, 357, 413, -1, -1, 276, 978, -1, 276, 978, 52, 300, -1, 276, 52, 300, 978, -1, 276, 52, 300, 978, 52, 300, -1, 416, 166, 451, 899, 452, -1, -1, 149, 451, 412, 976, 452, -1, -1, 414, 994, -1, -1, 995, -1, 994, 455, 995, -1, 1065, 35, 997, -1, 268, 997, -1, 268, 1065, -1, -1, 451, 998, 999, 898, 1000, 452, -1, 1065, -1, -1, 275, 52, 1012, -1, -1, 294, 1001, -1, 321, 1001, -1, -1, 1002, -1, 46, 1002, 32, 1002, -1, 385, 282, -1, 385, 152, -1, 92, 320, -1, 976, 282, -1, 976, 152, -1, 320, 451, 1012, 452, -1, 320, 451, 452, -1, 451, 1012, 455, 976, 452, -1, 320, 451, 1012, 452, -1, 320, 451, 452, -1, 451, 1012, 455, 976, 452, -1, 33, -1, 346, -1, 26, -1, 8, -1, 1008, -1, 441, -1, 442, -1, 443, -1, 444, -1, 445, -1, 446, -1, 437, -1, 438, -1, 439, -1, 15, -1, 16, -1, 17, -1, 447, -1, 8, -1, 260, 451, 775, 452, -1, 1007, -1, 260, 451, 775, 452, -1, 1007, -1, 260, 451, 775, 452, -1, 216, -1, 434, 216, -1, 175, -1, 434, 175, -1, 976, -1, 1012, 455, 976, -1, 1014, -1, 1013, 455, 1014, -1, 976, -1, 753, 13, 976, -1, 753, 14, 976, -1, 952, -1, 1015, 455, 952, -1, 449, 1012, 450, -1, 449, 1017, 450, -1, 449, 450, -1, 1016, -1, 1017, 455, 1016, -1, 1019, 158, 976, -1, 447, 158, 976, -1, -1, 3, -1, 431, -1, 234, -1, 104, -1, 172, -1, 231, -1, 327, -1, 1056, -1, 976, 1021, 1024, 1025, -1, 976, 1021, 1024, -1, 278, 976, -1, 977, 180, 977, -1, -1, 976, 1024, 1025, -1, 976, 1025, 1024, -1, 976, 1024, -1, 976, 1025, -1, 1012, -1, -1, 158, 976, -1, 153, 976, -1, 976, 158, 1012, -1, 158, 1012, -1, 1012, -1, 884, -1, 451, 1012, 452, -1, 57, 1032, 1029, 1031, 132, -1, 1030, -1, 1029, 1030, -1, 411, 976, 370, 976, -1, 128, 976, -1, -1, 976, -1, -1, 1065, -1, 1065, 1035, -1, 453, 1050, -1, 453, 443, -1, 449, 976, 450, -1, 449, 976, 456, 976, 450, -1, 1034, -1, 1035, 1034, -1, -1, 1036, 1034, -1, 39, -1, -1, 976, -1, 109, -1, 1038, -1, 1039, 455, 1038, -1, 451, 1039, 452, -1, 1042, -1, -1, 1043, -1, 1042, 455, 1043, -1, 976, 35, 1068, -1, 976, 3, -1, 976, -1, 443, -1, 1045, -1, 1044, 455, 1045, -1, 1065, -1, 1065, 1035, -1, 1047, -1, 1046, 455, 1047, -1, 1065, -1, 1065, -1, 1065, -1, 1068, -1, 1065, -1, 1056, -1, 1066, -1, 1065, 1035, -1, 1055, -1, 4, -1, 1056, -1, 6, -1, 7, -1, 1053, 1056, -1, 1053, 451, 1013, 898, 452, 1056, -1, 955, 1056, -1, 972, 1056, 974, -1, 972, 451, 1055, 452, 1056, -1, 972, 451, 447, 452, 447, 974, -1, 380, -1, 146, -1, 249, -1, 9, -1, 5, -1, 1055, -1, 441, 1055, -1, 442, 1055, -1, 1059, -1, 1067, -1, 99, -1, 335, -1, 1059, -1, 1060, 455, 1059, -1, 1055, -1, 447, -1, 1056, -1, 447, -1, 1056, -1, 447, -1, 494, -1, 447, -1, 3, -1, 1069, -1, 1070, -1, 3, -1, 1069, -1, 1071, -1, 3, -1, 1069, -1, 1070, -1, 1071, -1, 3, -1, 1069, -1, 1070, -1, 1071, -1, 1072, -1, 18, -1, 19, -1, 20, -1, 21, -1, 22, -1, 23, -1, 24, -1, 25, -1, 27, -1, 28, -1, 29, -1, 37, -1, 38, -1, 40, -1, 41, -1, 43, -1, 44, -1, 45, -1, 52, -1, 53, -1, 54, -1, 55, -1, 56, -1, 59, -1, 60, -1, 63, -1, 65, -1, 66, -1, 67, -1, 68, -1, 73, -1, 74, -1, 75, -1, 76, -1, 78, -1, 79, -1, 80, -1, 82, -1, 83, -1, 84, -1, 85, -1, 86, -1, 87, -1, 90, -1, 91, -1, 92, -1, 100, -1, 101, -1, 102, -1, 103, -1, 104, -1, 105, -1, 108, -1, 110, -1, 112, -1, 113, -1, 114, -1, 115, -1, 116, -1, 118, -1, 119, -1, 120, -1, 123, -1, 124, -1, 125, -1, 126, -1, 127, -1, 129, -1, 130, -1, 131, -1, 133, -1, 134, -1, 135, -1, 137, -1, 138, -1, 139, -1, 140, -1, 142, -1, 143, -1, 144, -1, 147, -1, 149, -1, 150, -1, 152, -1, 154, -1, 156, -1, 160, -1, 161, -1, 162, -1, 164, -1, 168, -1, 170, -1, 171, -1, 172, -1, 173, -1, 174, -1, 176, -1, 177, -1, 178, -1, 179, -1, 181, -1, 182, -1, 183, -1, 184, -1, 185, -1, 186, -1, 188, -1, 191, -1, 192, -1, 193, -1, 194, -1, 200, -1, 203, -1, 205, -1, 206, -1, 207, -1, 208, -1, 209, -1, 212, -1, 215, -1, 218, -1, 219, -1, 220, -1, 223, -1, 224, -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, 241, -1, 242, -1, 245, -1, 246, -1, 248, -1, 251, -1, 253, -1, 254, -1, 255, -1, 257, -1, 260, -1, 261, -1, 262, -1, 265, -1, 268, -1, 271, -1, 272, -1, 273, -1, 274, -1, 275, -1, 276, -1, 277, -1, 279, -1, 280, -1, 282, -1, 285, -1, 286, -1, 284, -1, 288, -1, 289, -1, 290, -1, 291, -1, 292, -1, 293, -1, 294, -1, 295, -1, 297, -1, 298, -1, 299, -1, 300, -1, 302, -1, 303, -1, 304, -1, 305, -1, 306, -1, 307, -1, 308, -1, 309, -1, 310, -1, 311, -1, 312, -1, 314, -1, 315, -1, 317, -1, 318, -1, 319, -1, 321, -1, 322, -1, 323, -1, 324, -1, 325, -1, 326, -1, 327, -1, 328, -1, 330, -1, 331, -1, 332, -1, 333, -1, 334, -1, 336, -1, 337, -1, 339, -1, 340, -1, 342, -1, 343, -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, 360, -1, 361, -1, 363, -1, 365, -1, 366, -1, 367, -1, 368, -1, 369, -1, 375, -1, 376, -1, 378, -1, 381, -1, 382, -1, 383, -1, 384, -1, 385, -1, 386, -1, 387, -1, 390, -1, 391, -1, 392, -1, 393, -1, 394, -1, 397, -1, 398, -1, 399, -1, 400, -1, 401, -1, 405, -1, 407, -1, 408, -1, 409, -1, 410, -1, 413, -1, 416, -1, 417, -1, 418, -1, 419, -1, 420, -1, 421, -1, 431, -1, 432, -1, 433, -1, 46, -1, 47, -1, 49, -1, 50, -1, 61, -1, 62, -1, 69, -1, 106, -1, 107, -1, 141, -1, 145, -1, 151, -1, 165, -1, 167, -1, 190, -1, 195, -1, 196, -1, 198, -1, 213, -1, 238, -1, 240, -1, 243, -1, 250, -1, 252, -1, 266, -1, 270, -1, 281, -1, 283, -1, 296, -1, 320, -1, 338, -1, 344, -1, 358, -1, 371, -1, 372, -1, 377, -1, 379, -1, 402, -1, 403, -1, 422, -1, 423, -1, 424, -1, 425, -1, 426, -1, 427, -1, 428, -1, 429, -1, 430, -1, 42, -1, 48, -1, 71, -1, 77, -1, 89, -1, 96, -1, 157, -1, 159, -1, 175, -1, 189, -1, 201, -1, 202, -1, 204, -1, 214, -1, 216, -1, 239, -1, 247, -1, 267, -1, 269, -1, 316, -1, 341, -1, 364, -1, 406, -1, 26, -1, 30, -1, 31, -1, 32, -1, 33, -1, 34, -1, 35, -1, 36, -1, 39, -1, 51, -1, 57, -1, 58, -1, 64, -1, 70, -1, 72, -1, 81, -1, 88, -1, 93, -1, 94, -1, 95, -1, 97, -1, 98, -1, 99, -1, 109, -1, 111, -1, 117, -1, 121, -1, 122, -1, 128, -1, 132, -1, 136, -1, 146, -1, 148, -1, 153, -1, 155, -1, 158, -1, 163, -1, 166, -1, 169, -1, 180, -1, 187, -1, 197, -1, 199, -1, 210, -1, 211, -1, 217, -1, 221, -1, 222, -1, 244, -1, 249, -1, 256, -1, 258, -1, 259, -1, 263, -1, 264, -1, 278, -1, 287, -1, 301, -1, 313, -1, 329, -1, 335, -1, 346, -1, 359, -1, 362, -1, 370, -1, 373, -1, 374, -1, 380, -1, 388, -1, 389, -1, 395, -1, 396, -1, 404, -1, 411, -1, 412, -1, 414, -1, 415, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { 0, 737, 737, 744, 751, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 884, 894, 905, 906, 907, 916, 917, 921, 922, 926, 930, 934, 938, 942, 946, 950, 955, 959, 1017, 1019, 1023, 1027, 1031, 1035, 1049, 1067, 1078, 1079, 1083, 1091, 1109, 1121, 1142, 1149, 1168, 1175, 1192, 1210, 1221, 1222, 1234, 1241, 1258, 1268, 1278, 1293, 1311, 1312, 1316, 1323, 1331, 1332, 1333, 1334, 1335, 1336, 1350, 1356, 1362, 1371, 1379, 1387, 1391, 1399, 1407, 1414, 1423, 1424, 1432, 1443, 1451, 1459, 1470, 1478, 1486, 1493, 1502, 1512, 1513, 1517, 1518, 1521, 1523, 1525, 1529, 1530, 1531, 1532, 1536, 1537, 1538, 1544, 1556, 1560, 1564, 1579, 1586, 1587, 1588, 1592, 1593, 1594, 1598, 1599, 1603, 1607, 1608, 1615, 1622, 1632, 1639, 1649, 1650, 1655, 1656, 1661, 1667, 1673, 1679, 1685, 1695, 1705, 1706, 1710, 1711, 1719, 1734, 1740, 1746, 1752, 1758, 1777, 1786, 1795, 1806, 1817, 1826, 1835, 1846, 1857, 1866, 1875, 1884, 1893, 1902, 1911, 1922, 1936, 1937, 1942, 1950, 1958, 1967, 1975, 1983, 1992, 2001, 2010, 2019, 2029, 2042, 2057, 2066, 2074, 2089, 2097, 2107, 2117, 2124, 2131, 2139, 2147, 2154, 2161, 2169, 2177, 2185, 2192, 2199, 2207, 2214, 2221, 2229, 2237, 2245, 2253, 2261, 2269, 2279, 2286, 2294, 2302, 2310, 2318, 2326, 2333, 2340, 2347, 2353, 2363, 2364, 2368, 2369, 2370, 2374, 2382, 2386, 2387, 2391, 2398, 2405, 2412, 2422, 2425, 2426, 2430, 2431, 2436, 2440, 2444, 2449, 2464, 2477, 2478, 2483, 2492, 2502, 2512, 2538, 2544, 2574, 2603, 2625, 2626, 2630, 2631, 2640, 2641, 2642, 2645, 2646, 2651, 2652, 2656, 2660, 2664, 2668, 2672, 2676, 2680, 2684, 2688, 2692, 2696, 2700, 2704, 2708, 2717, 2721, 2725, 2729, 2733, 2737, 2741, 2742, 2747, 2751, 2758, 2765, 2766, 2767, 2768, 2769, 2773, 2777, 2785, 2796, 2812, 2829, 2846, 2876, 2877, 2878, 2879, 2880, 2887, 2894, 2895, 2899, 2900, 2904, 2905, 2909, 2913, 2920, 2924, 2931, 2932, 2933, 2937, 2938, 2941, 2962, 2983, 2984, 2988, 2996, 2997, 2998, 3029, 3036, 3043, 3054, 3065, 3075, 3084, 3117, 3124, 3131, 3138, 3149, 3159, 3160, 3161, 3165, 3166, 3167, 3168, 3169, 3170, 3179, 3187, 3191, 3204, 3219, 3233, 3248, 3262, 3280, 3301, 3302, 3306, 3307, 3311, 3312, 3315, 3321, 3325, 3333, 3338, 3344, 3345, 3349, 3354, 3361, 3362, 3372, 3374, 3376, 3378, 3381, 3384, 3387, 3391, 3392, 3393, 3394, 3395, 3398, 3399, 3404, 3405, 3406, 3407, 3410, 3411, 3412, 3413, 3416, 3417, 3420, 3421, 3424, 3439, 3452, 3468, 3482, 3483, 3484, 3496, 3509, 3525, 3538, 3539, 3551, 3571, 3581, 3594, 3602, 3613, 3614, 3617, 3618, 3621, 3625, 3629, 3633, 3637, 3641, 3645, 3649, 3653, 3657, 3661, 3665, 3671, 3672, 3676, 3677, 3682, 3685, 3686, 3698, 3710, 3725, 3726, 3734, 3735, 3739, 3740, 3744, 3745, 3749, 3750, 3754, 3765, 3778, 3779, 3789, 3800, 3801, 3814, 3821, 3838, 3846, 3857, 3860, 3864, 3868, 3872, 3884, 3894, 3897, 3901, 3914, 3924, 3934, 3943, 3952, 3961, 3971, 3980, 3990, 3999, 4008, 4017, 4026, 4035, 4044, 4053, 4062, 4071, 4080, 4089, 4098, 4107, 4116, 4125, 4135, 4153, 4164, 4165, 4166, 4167, 4171, 4172, 4176, 4177, 4187, 4198, 4218, 4226, 4238, 4239, 4243, 4247, 4255, 4259, 4263, 4270, 4274, 4279, 4284, 4291, 4298, 4303, 4313, 4327, 4328, 4333, 4334, 4338, 4339, 4349, 4360, 4380, 4389, 4397, 4414, 4434, 4464, 4473, 4494, 4509, 4510, 4514, 4522, 4537, 4548, 4549, 4559, 4567, 4584, 4606, 4622, 4636, 4647, 4661, 4662, 4666, 4667, 4671, 4672, 4676, 4677, 4681, 4682, 4686, 4687, 4688, 4689, 4690, 4702, 4722, 4747, 4748, 4749, 4753, 4755, 4777, 4779, 4781, 4783, 4785, 4790, 4795, 4805, 4806, 4810, 4811, 4815, 4816, 4820, 4821, 4822, 4826, 4830, 4831, 4832, 4836, 4837, 4842, 4843, 4870, 4871, 4872, 4873, 4874, 4875, 4880, 4891, 4914, 4924, 4938, 4940, 4945, 4950, 4952, 4957, 4967, 4968, 4969, 4970, 4982, 5002, 5025, 5035, 5046, 5056, 5066, 5077, 5086, 5093, 5100, 5109, 5118, 5127, 5136, 5145, 5156, 5159, 5160, 5163, 5167, 5174, 5175, 5176, 5177, 5178, 5181, 5184, 5185, 5193, 5200, 5201, 5204, 5206, 5217, 5227, 5237, 5249, 5250, 5266, 5281, 5282, 5286, 5296, 5307, 5316, 5326, 5335, 5336, 5339, 5340, 5343, 5344, 5345, 5348, 5362, 5367, 5377, 5386, 5398, 5399, 5403, 5411, 5423, 5433, 5446, 5456, 5478, 5488, 5506, 5517, 5528, 5538, 5548, 5558, 5568, 5579, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5611, 5612, 5615, 5616, 5619, 5621, 5626, 5627, 5637, 5648, 5649, 5650, 5683, 5692, 5701, 5710, 5719, 5728, 5737, 5746, 5760, 5769, 5778, 5788, 5797, 5806, 5814, 5823, 5832, 5841, 5853, 5854, 5855, 5856, 5857, 5858, 5859, 5860, 5861, 5862, 5863, 5864, 5865, 5866, 5867, 5868, 5869, 5870, 5871, 5872, 5873, 5877, 5878, 5892, 5903, 5914, 5925, 5936, 5947, 5958, 5971, 5972, 5976, 5977, 5978, 5979, 5980, 5981, 5982, 5983, 5984, 5985, 5986, 5989, 5990, 6000, 6006, 6014, 6022, 6030, 6038, 6046, 6054, 6062, 6070, 6078, 6086, 6094, 6102, 6110, 6118, 6126, 6134, 6144, 6145, 6148, 6149, 6159, 6175, 6189, 6215, 6217, 6219, 6221, 6228, 6237, 6238, 6241, 6248, 6255, 6262, 6276, 6284, 6292, 6300, 6308, 6316, 6324, 6332, 6340, 6348, 6356, 6364, 6372, 6380, 6388, 6396, 6408, 6409, 6413, 6414, 6419, 6420, 6424, 6425, 6430, 6446, 6459, 6469, 6481, 6482, 6485, 6486, 6496, 6506, 6507, 6511, 6515, 6519, 6530, 6543, 6557, 6574, 6575, 6576, 6577, 6589, 6615, 6644, 6645, 6649, 6650, 6654, 6655, 6659, 6660, 6663, 6664, 6672, 6683, 6694, 6707, 6708, 6711, 6712, 6713, 6716, 6717, 6718, 6721, 6722, 6723, 6739, 6751, 6764, 6779, 6780, 6783, 6784, 6788, 6789, 6797, 6798, 6802, 6803, 6818, 6827, 6836, 6845, 6854, 6866, 6867, 6868, 6869, 6870, 6876, 6880, 6895, 6896, 6902, 6912, 6916, 6921, 6929, 6970, 6974, 6978, 6982, 6990, 6991, 6996, 6997, 7004, 7008, 7012, 7016, 7020, 7024, 7028, 7032, 7036, 7040, 7044, 7048, 7052, 7056, 7060, 7068, 7072, 7076, 7080, 7084, 7090, 7091, 7098, 7099, 7103, 7104, 7107, 7119, 7123, 7138, 7149, 7150, 7155, 7156, 7171, 7182, 7196, 7207, 7221, 7232, 7246, 7254, 7256, 7258, 7263, 7265, 7278, 7287, 7288, 7292, 7296, 7308, 7319, 7330, 7343, 7344, 7345, 7349, 7362, 7363, 7373, 7385, 7389, 7393, 7397, 7404, 7425, 7434, 7443, 7452, 7463, 7464, 7467, 7468, 7469, 7472, 7473, 7476, 7486, 7495, 7512, 7522, 7531, 7540, 7549, 7558, 7567, 7576, 7586, 7595, 7604, 7613, 7622, 7632, 7642, 7651, 7660, 7670, 7680, 7690, 7700, 7710, 7720, 7730, 7740, 7750, 7760, 7770, 7780, 7791, 7802, 7813, 7824, 7834, 7844, 7855, 7866, 7876, 7886, 7894, 7903, 7912, 7921, 7930, 7939, 7948, 7957, 7966, 7980, 7981, 7984, 7985, 7995, 8005, 8014, 8023, 8032, 8041, 8051, 8061, 8070, 8079, 8088, 8097, 8106, 8115, 8124, 8133, 8142, 8151, 8160, 8169, 8178, 8187, 8196, 8205, 8222, 8231, 8239, 8247, 8255, 8263, 8272, 8280, 8288, 8297, 8305, 8313, 8321, 8329, 8337, 8345, 8353, 8361, 8369, 8386, 8403, 8404, 8405, 8410, 8416, 8425, 8426, 8427, 8428, 8429, 8433, 8434, 8437, 8438, 8439, 8440, 8444, 8445, 8446, 8451, 8462, 8484, 8494, 8495, 8498, 8507, 8513, 8532, 8539, 8546, 8553, 8560, 8567, 8574, 8582, 8590, 8598, 8606, 8614, 8621, 8628, 8637, 8638, 8639, 8643, 8646, 8649, 8652, 8655, 8662, 8664, 8666, 8671, 8673, 8685, 8698, 8711, 8729, 8750, 8751, 8752, 8753, 8763, 8779, 8789, 8790, 8794, 8795, 8799, 8803, 8807, 8825, 8826, 8827, 8828, 8829, 8830, 8831, 8838, 8839, 8850, 8857, 8864, 8875, 8892, 8899, 8917, 8923, 8939, 8952, 8961, 8969, 8977, 8986, 8997, 9008, 9018, 9019, 9030, 9040, 9051, 9062, 9073, 9084, 9093, 9105, 9106, 9120, 9143, 9151, 9160, 9171, 9172, 9184, 9198, 9212, 9224, 9232, 9245, 9246, 9250, 9251, 9252, 9253, 9257, 9267, 9280, 9281, 9285, 9286, 9289, 9290, 9293, 9294, 9298, 9299, 9312, 9319, 9329, 9336, 9346, 9347, 9348, 9349, 9350, 9351, 9352, 9353, 9354, 9358, 9362, 9369, 9376, 9377, 9381, 9382, 9383, 9393, 9403, 9404, 9408, 9409, 9410, 9411, 9421, 9428, 9446, 9447, 9457, 9463, 9469, 9475, 9491, 9509, 9513, 9521, 9527, 9533, 9542, 9544, 9549, 9560, 9570, 9580, 9586, 9595, 9604, 9610, 9611, 9622, 9636, 9637, 9648, 9659, 9660, 9663, 9664, 9665, 9666, 9667, 9668, 9669, 9670, 9673, 9674, 9678, 9679, 9680, 9691, 9709, 9710, 9714, 9715, 9719, 9735, 9761, 9794, 9805, 9806, 9816, 9827, 9830, 9831, 9832, 9833, 9834, 9837, 9838, 9839, 9887, 9888, 9892, 9893, 9908, 9909, 9916, 9924, 9932, 9940, 9948, 9956, 9967, 9968, 9995, 10009, 10024, 10025, 10044, 10048, 10052, 10069, 10076, 10083, 10093, 10094, 10097, 10109, 10110, 10114, 10126, 10134, 10139, 10144, 10149, 10154, 10162, 10170, 10175, 10180, 10187, 10188, 10192, 10193, 10194, 10201, 10202, 10206, 10207, 10211, 10212, 10216, 10220, 10221, 10224, 10233, 10246, 10247, 10248, 10249, 10253, 10254, 10258, 10260, 10270, 10275, 10278, 10283, 10284, 10292, 10302, 10303, 10304, 10312, 10316, 10317, 10320, 10321, 10346, 10347, 10351, 10352, 10356, 10357, 10358, 10359, 10360, 10364, 10377, 10384, 10391, 10398, 10399, 10403, 10404, 10408, 10409, 10413, 10414, 10418, 10429, 10430, 10431, 10432, 10436, 10437, 10442, 10448, 10466, 10467, 10471, 10472, 10478, 10483, 10491, 10498, 10506, 10541, 10566, 10570, 10596, 10600, 10612, 10625, 10639, 10650, 10665, 10671, 10676, 10682, 10689, 10690, 10698, 10702, 10706, 10712, 10719, 10724, 10725, 10726, 10727, 10731, 10732, 10744, 10745, 10750, 10757, 10764, 10771, 10782, 10783, 10796, 10800, 10807, 10820, 10833, 10834, 10849, 10859, 10871, 10876, 10877, 10880, 10881, 10884, 10885, 10890, 10891, 10896, 10897, 10905, 10910, 10911, 10915, 10919, 10925, 10955, 10960, 10967, 10972, 10978, 10983, 10992, 10994, 10997, 11001, 11002, 11003, 11004, 11005, 11006, 11011, 11031, 11032, 11033, 11034, 11045, 11051, 11059, 11060, 11066, 11071, 11076, 11081, 11086, 11091, 11096, 11101, 11107, 11113, 11119, 11126, 11148, 11157, 11161, 11169, 11173, 11181, 11193, 11214, 11218, 11224, 11228, 11241, 11252, 11267, 11269, 11271, 11273, 11275, 11277, 11282, 11283, 11287, 11288, 11295, 11304, 11312, 11321, 11332, 11340, 11341, 11342, 11346, 11348, 11350, 11352, 11354, 11356, 11358, 11363, 11368, 11374, 11382, 11387, 11394, 11401, 11405, 11409, 11445, 11446, 11448, 11456, 11471, 11473, 11475, 11477, 11479, 11481, 11483, 11485, 11487, 11489, 11491, 11493, 11495, 11497, 11500, 11504, 11507, 11509, 11511, 11514, 11516, 11518, 11520, 11523, 11528, 11536, 11541, 11549, 11554, 11562, 11567, 11576, 11584, 11592, 11600, 11618, 11626, 11634, 11642, 11650, 11666, 11674, 11682, 11690, 11698, 11706, 11714, 11718, 11724, 11728, 11732, 11740, 11748, 11756, 11764, 11784, 11806, 11817, 11824, 11840, 11845, 11862, 11864, 11866, 11868, 11870, 11872, 11874, 11876, 11878, 11880, 11882, 11884, 11886, 11888, 11890, 11892, 11894, 11898, 11900, 11902, 11904, 11906, 11910, 11916, 11920, 11924, 11929, 11945, 11946, 11947, 11959, 11974, 12004, 12006, 12008, 12019, 12043, 12054, 12065, 12073, 12083, 12093, 12102, 12106, 12112, 12119, 12126, 12136, 12143, 12171, 12206, 12217, 12218, 12225, 12231, 12257, 12267, 12280, 12288, 12301, 12311, 12324, 12334, 12347, 12351, 12355, 12359, 12363, 12367, 12371, 12373, 12377, 12386, 12391, 12398, 12413, 12420, 12424, 12428, 12432, 12436, 12443, 12451, 12459, 12463, 12467, 12471, 12475, 12479, 12485, 12489, 12498, 12502, 12506, 12511, 12525, 12527, 12531, 12533, 12535, 12538, 12541, 12544, 12545, 12548, 12556, 12566, 12567, 12570, 12571, 12572, 12577, 12581, 12585, 12589, 12600, 12601, 12605, 12606, 12614, 12615, 12619, 12620, 12625, 12633, 12635, 12649, 12652, 12679, 12680, 12683, 12684, 12695, 12713, 12720, 12729, 12746, 12791, 12799, 12807, 12815, 12823, 12844, 12845, 12846, 12849, 12850, 12853, 12856, 12857, 12858, 12861, 12862, 12865, 12866, 12867, 12868, 12869, 12870, 12871, 12872, 12873, 12874, 12875, 12876, 12877, 12880, 12882, 12887, 12889, 12894, 12896, 12898, 12900, 12902, 12904, 12916, 12920, 12927, 12931, 12937, 12941, 12950, 12961, 12962, 12965, 12969, 12973, 12979, 12980, 12985, 12989, 12993, 13000, 13001, 13002, 13003, 13004, 13005, 13006, 13007, 13017, 13021, 13028, 13035, 13036, 13052, 13056, 13061, 13065, 13080, 13085, 13089, 13092, 13095, 13096, 13097, 13100, 13107, 13117, 13131, 13132, 13136, 13147, 13148, 13151, 13152, 13155, 13159, 13166, 13170, 13174, 13181, 13191, 13192, 13196, 13197, 13200, 13201, 13212, 13213, 13222, 13223, 13231, 13241, 13242, 13246, 13247, 13250, 13266, 13274, 13282, 13304, 13305, 13316, 13320, 13347, 13349, 13354, 13357, 13360, 13362, 13364, 13366, 13376, 13378, 13389, 13393, 13397, 13401, 13405, 13414, 13421, 13453, 13457, 13463, 13471, 13483, 13487, 13491, 13497, 13498, 13500, 13501, 13502, 13506, 13536, 13563, 13567, 13573, 13575, 13582, 13583, 13586, 13587, 13590, 13591, 13594, 13595, 13611, 13612, 13613, 13618, 13619, 13620, 13625, 13626, 13627, 13628, 13634, 13635, 13636, 13637, 13638, 13658, 13659, 13660, 13661, 13662, 13663, 13664, 13665, 13666, 13667, 13668, 13669, 13670, 13671, 13672, 13673, 13674, 13675, 13676, 13677, 13678, 13679, 13680, 13681, 13682, 13683, 13684, 13685, 13686, 13687, 13688, 13689, 13690, 13691, 13692, 13693, 13694, 13695, 13696, 13697, 13698, 13699, 13700, 13701, 13702, 13703, 13704, 13705, 13706, 13707, 13708, 13709, 13710, 13711, 13712, 13713, 13714, 13715, 13716, 13717, 13718, 13719, 13720, 13721, 13722, 13723, 13724, 13725, 13726, 13727, 13728, 13729, 13730, 13731, 13732, 13733, 13734, 13735, 13736, 13737, 13738, 13739, 13740, 13741, 13742, 13743, 13744, 13745, 13746, 13747, 13748, 13749, 13750, 13751, 13752, 13753, 13754, 13755, 13756, 13757, 13758, 13759, 13760, 13761, 13762, 13763, 13764, 13765, 13766, 13767, 13768, 13769, 13770, 13771, 13772, 13773, 13774, 13775, 13776, 13777, 13778, 13779, 13780, 13781, 13782, 13783, 13784, 13785, 13786, 13787, 13788, 13789, 13790, 13791, 13792, 13793, 13794, 13795, 13796, 13797, 13798, 13799, 13800, 13801, 13802, 13803, 13804, 13805, 13806, 13807, 13808, 13809, 13810, 13811, 13812, 13813, 13814, 13815, 13816, 13817, 13818, 13819, 13820, 13821, 13822, 13823, 13824, 13825, 13826, 13827, 13828, 13829, 13830, 13831, 13832, 13833, 13834, 13835, 13836, 13837, 13838, 13839, 13840, 13841, 13842, 13843, 13844, 13845, 13846, 13847, 13848, 13849, 13850, 13851, 13852, 13853, 13854, 13855, 13856, 13857, 13858, 13859, 13860, 13861, 13862, 13863, 13864, 13865, 13866, 13867, 13868, 13869, 13870, 13871, 13872, 13873, 13874, 13875, 13876, 13877, 13878, 13879, 13880, 13881, 13882, 13883, 13884, 13885, 13886, 13887, 13888, 13889, 13890, 13891, 13892, 13893, 13894, 13895, 13896, 13897, 13898, 13899, 13900, 13901, 13902, 13903, 13904, 13905, 13906, 13907, 13908, 13909, 13910, 13911, 13912, 13913, 13914, 13915, 13916, 13917, 13918, 13919, 13920, 13921, 13922, 13923, 13924, 13925, 13939, 13940, 13941, 13942, 13943, 13944, 13945, 13946, 13947, 13948, 13949, 13950, 13951, 13952, 13953, 13954, 13955, 13956, 13957, 13958, 13959, 13960, 13961, 13962, 13963, 13964, 13965, 13966, 13967, 13968, 13969, 13970, 13971, 13972, 13973, 13974, 13975, 13976, 13977, 13978, 13979, 13980, 13981, 13982, 13983, 13984, 13985, 13986, 14000, 14001, 14002, 14003, 14004, 14005, 14006, 14007, 14008, 14009, 14010, 14011, 14012, 14013, 14014, 14015, 14016, 14017, 14018, 14019, 14020, 14021, 14022, 14032, 14033, 14034, 14035, 14036, 14037, 14038, 14039, 14040, 14041, 14042, 14043, 14044, 14045, 14046, 14047, 14048, 14049, 14050, 14051, 14052, 14053, 14054, 14055, 14056, 14057, 14058, 14059, 14060, 14061, 14062, 14063, 14064, 14065, 14066, 14067, 14068, 14069, 14070, 14071, 14072, 14073, 14074, 14075, 14076, 14077, 14078, 14079, 14080, 14081, 14082, 14083, 14084, 14085, 14086, 14087, 14088, 14089, 14090, 14091, 14092, 14093, 14094, 14095, 14096, 14097, 14098, 14099, 14100, 14101, 14102, 14103, 14104, 14105, 14106, 14107, 14108 }; #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", "FCONST", "SCONST", "BCONST", "XCONST", "Op", "ICONST", "PARAM", "TYPECAST", "DOT_DOT", "COLON_EQUALS", "EQUALS_GREATER", "LESS_EQUALS", "GREATER_EQUALS", "NOT_EQUALS", "ABORT_P", "ABSOLUTE_P", "ACCESS", "ACTION", "ADD_P", "ADMIN", "AFTER", "AGGREGATE", "ALL", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY", "ARRAY", "AS", "ASC", "ASSERTION", "ASSIGNMENT", "ASYMMETRIC", "AT", "ATTRIBUTE", "AUTHORIZATION", "BACKWARD", "BEFORE", "BEGIN_P", "BETWEEN", "BIGINT", "BINARY", "BIT", "BOOLEAN_P", "BOTH", "BY", "CACHE", "CALLED", "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG_P", "CHAIN", "CHAR_P", "CHARACTER", "CHARACTERISTICS", "CHECK", "CHECKPOINT", "CLASS", "CLOSE", "CLUSTER", "COALESCE", "COLLATE", "COLLATION", "COLUMN", "COMMENT", "COMMENTS", "COMMIT", "COMMITTED", "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", "DESC", "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", "EXTENSION", "EXTERNAL", "EXTRACT", "FALSE_P", "FAMILY", "FETCH", "FILTER", "FIRST_P", "FLOAT_P", "FOLLOWING", "FOR", "FORCE", "FOREIGN", "FORWARD", "FREEZE", "FROM", "FULL", "FUNCTION", "FUNCTIONS", "GLOBAL", "GRANT", "GRANTED", "GREATEST", "GROUP_P", "GROUPING", "HANDLER", "HAVING", "HEADER_P", "HOLD", "HOUR_P", "IDENTITY_P", "IF_P", "ILIKE", "IMMEDIATE", "IMMUTABLE", "IMPLICIT_P", "IMPORT_P", "IN_P", "INCLUDING", "INCREMENT", "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", "KEY", "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", "MATERIALIZED", "MAXVALUE", "MINUTE_P", "MINVALUE", "MODE", "MONTH_P", "MOVE", "NAME_P", "NAMES", "NATIONAL", "NATURAL", "NCHAR", "NEXT", "NO", "NONE", "NOT", "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", "NULL_P", "NULLIF", "NULLS_P", "NUMERIC", "OBJECT_P", "OF", "OFF", "OFFSET", "OIDS", "ON", "ONLY", "OPERATOR", "OPTION", "OPTIONS", "OR", "ORDER", "ORDINALITY", "OUT_P", "OUTER_P", "OVER", "OVERLAPS", "OVERLAY", "OWNED", "OWNER", "PARSER", "PARTIAL", "PARTITION", "PASSING", "PASSWORD", "PLACING", "PLANS", "POLICY", "POSITION", "PRECEDING", "PRECISION", "PRESERVE", "PREPARE", "PREPARED", "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PROGRAM", "QUOTE", "RANGE", "READ", "REAL", "REASSIGN", "RECHECK", "RECURSIVE", "REF", "REFERENCES", "REFRESH", "REINDEX", "RELATIVE_P", "RELEASE", "RENAME", "REPEATABLE", "REPLACE", "REPLICA", "RESET", "RESTART", "RESTRICT", "RETURNING", "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", "ROW", "ROWS", "RULE", "SAVEPOINT", "SCHEMA", "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", "STRICT_P", "STRIP_P", "SUBSTRING", "SYMMETRIC", "SYSID", "SYSTEM_P", "TABLE", "TABLES", "TABLESAMPLE", "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", "TEXT_P", "THEN", "TIME", "TIMESTAMP", "TO", "TRAILING", "TRANSACTION", "TRANSFORM", "TREAT", "TRIGGER", "TRIM", "TRUE_P", "TRUNCATE", "TRUSTED", "TYPE_P", "TYPES_P", "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", "XMLPARSE", "XMLPI", "XMLROOT", "XMLSERIALIZE", "YEAR_P", "YES_P", "ZONE", "NOT_LA", "NULLS_LA", "WITH_LA", "'<'", "'>'", "'='", "POSTFIXOP", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "'?'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", "';'", "','", "':'", "$accept", "stmtblock", "stmtmulti", "stmt", "CreateRoleStmt", "opt_with", "OptRoleList", "AlterOptRoleList", "AlterOptRoleElem", "CreateOptRoleElem", "CreateUserStmt", "AlterRoleStmt", "opt_in_database", "AlterRoleSetStmt", "AlterUserStmt", "AlterUserSetStmt", "DropRoleStmt", "DropUserStmt", "CreateGroupStmt", "AlterGroupStmt", "add_drop", "DropGroupStmt", "CreateSchemaStmt", "OptSchemaName", "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", "alter_table_cmd", "alter_column_default", "opt_drop_behavior", "opt_collate_clause", "alter_using", "replica_identity", "reloptions", "opt_reloptions", "reloption_list", "reloption_elem", "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", "opt_oids", "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", "ColQualList", "ColConstraint", "ColConstraintElem", "ConstraintAttr", "TableLikeClause", "TableLikeOptionList", "TableLikeOption", "TableConstraint", "ConstraintElem", "opt_no_inherit", "opt_column_list", "columnList", "columnElem", "key_match", "ExclusionConstraintList", "ExclusionConstraintElem", "ExclusionWhereClause", "key_actions", "key_update", "key_delete", "key_action", "OptInherit", "OptWith", "OnCommitOption", "OptTableSpace", "OptConsTableSpace", "ExistingIndex", "CreateAsStmt", "create_as_target", "opt_with_data", "CreateMatViewStmt", "create_mv_target", "OptNoLog", "RefreshMatViewStmt", "CreateSeqStmt", "AlterSeqStmt", "OptSeqOptList", "SeqOptList", "SeqOptElem", "opt_by", "NumericOnly", "NumericOnly_list", "CreatePLangStmt", "opt_trusted", "handler_name", "opt_inline_handler", "validator_clause", "opt_validator", "DropPLangStmt", "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", "DropFdwStmt", "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", "DropForeignServerStmt", "AlterForeignServerStmt", "CreateForeignTableStmt", "AlterForeignTableStmt", "ImportForeignSchemaStmt", "import_qualification_type", "import_qualification", "CreateUserMappingStmt", "auth_ident", "DropUserMappingStmt", "AlterUserMappingStmt", "CreatePolicyStmt", "AlterPolicyStmt", "DropPolicyStmt", "RowSecurityOptionalExpr", "RowSecurityOptionalWithCheck", "RowSecurityDefaultToRole", "RowSecurityOptionalToRole", "RowSecurityDefaultForCmd", "row_security_cmd", "CreateTrigStmt", "TriggerActionTime", "TriggerEvents", "TriggerOneEvent", "TriggerForSpec", "TriggerForOptEach", "TriggerForType", "TriggerWhen", "TriggerFuncArgs", "TriggerFuncArg", "OptConstrFromTable", "ConstraintAttributeSpec", "ConstraintAttributeElem", "DropTrigStmt", "CreateEventTrigStmt", "event_trigger_when_list", "event_trigger_when_item", "event_trigger_value_list", "AlterEventTrigStmt", "enable_trigger", "CreateAssertStmt", "DropAssertStmt", "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", "drop_type", "any_name_list", "any_name", "attrs", "type_name_list", "TruncateStmt", "opt_restart_seqs", "CommentStmt", "comment_type", "comment_text", "SecLabelStmt", "opt_provider", "security_label_type", "security_label", "FetchStmt", "fetch_args", "from_in", "opt_from_in", "GrantStmt", "RevokeStmt", "privileges", "privilege_list", "privilege", "privilege_target", "grantee_list", "grantee", "opt_grant_grant_option", "function_with_argtypes_list", "function_with_argtypes", "GrantRoleStmt", "RevokeRoleStmt", "opt_grant_admin_option", "opt_granted_by", "AlterDefaultPrivilegesStmt", "DefACLOptionList", "DefACLOption", "DefACLAction", "defacl_privilege_target", "IndexStmt", "opt_unique", "opt_concurrently", "opt_index_name", "access_method_clause", "index_params", "index_elem", "opt_collate", "opt_class", "opt_asc_desc", "opt_nulls_order", "CreateFunctionStmt", "opt_or_replace", "func_args", "func_args_list", "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", "createfunc_opt_list", "common_func_opt_item", "createfunc_opt_item", "func_as", "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", "DoStmt", "dostmt_opt_list", "dostmt_opt_item", "CreateCastStmt", "cast_context", "DropCastStmt", "opt_if_exists", "CreateTransformStmt", "transform_element_list", "DropTransformStmt", "ReindexStmt", "reindex_target_type", "reindex_target_multitable", "reindex_option_list", "reindex_option_elem", "AlterTblSpcStmt", "RenameStmt", "opt_column", "opt_set_data", "AlterObjectSchemaStmt", "AlterOwnerStmt", "RuleStmt", "RuleActionList", "RuleActionMulti", "RuleActionStmt", "RuleActionStmtOrEmpty", "event", "opt_instead", "DropRuleStmt", "NotifyStmt", "notify_payload", "ListenStmt", "UnlistenStmt", "TransactionStmt", "opt_transaction", "transaction_mode_item", "transaction_mode_list", "transaction_mode_list_or_empty", "ViewStmt", "opt_check_option", "LoadStmt", "CreatedbStmt", "createdb_opt_list", "createdb_opt_items", "createdb_opt_item", "createdb_opt_name", "opt_equal", "AlterDatabaseStmt", "AlterDatabaseSetStmt", "DropdbStmt", "AlterSystemStmt", "CreateDomainStmt", "AlterDomainStmt", "opt_as", "AlterTSDictionaryStmt", "AlterTSConfigurationStmt", "any_with", "CreateConversionStmt", "ClusterStmt", "cluster_index_specification", "VacuumStmt", "vacuum_option_list", "vacuum_option_elem", "AnalyzeStmt", "analyze_keyword", "opt_verbose", "opt_full", "opt_freeze", "opt_name_list", "ExplainStmt", "ExplainableStmt", "explain_option_list", "explain_option_elem", "explain_option_name", "explain_option_arg", "PrepareStmt", "prep_type_clause", "PreparableStmt", "ExecuteStmt", "execute_param_clause", "DeallocateStmt", "InsertStmt", "insert_target", "insert_rest", "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", "single_set_clause", "multiple_set_clause", "set_target", "set_target_list", "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_with_clause", "into_clause", "OptTempTableName", "opt_table", "all_or_distinct", "distinct_clause", "opt_all_clause", "opt_sort_clause", "sort_clause", "sortby_list", "sortby", "select_limit", "opt_select_limit", "limit_clause", "offset_clause", "select_limit_value", "select_offset_value", "opt_select_fetch_first_value", "select_offset_value2", "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", "func_alias_clause", "join_type", "join_outer", "join_qual", "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", "Typename", "opt_array_bounds", "SimpleTypename", "ConstTypename", "GenericType", "opt_type_modifiers", "Numeric", "opt_float", "Bit", "ConstBit", "BitWithLength", "BitWithoutLength", "Character", "ConstCharacter", "CharacterWithLength", "CharacterWithoutLength", "character", "opt_varying", "opt_charset", "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_whitespace_option", "xmlexists_argument", "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", "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", "type_list", "array_expr", "array_expr_list", "extract_list", "extract_arg", "overlay_list", "overlay_placing", "position_list", "substr_list", "substr_from", "substr_for", "trim_list", "in_expr", "case_expr", "when_clause_list", "when_clause", "case_default", "case_arg", "columnref", "indirection_el", "indirection", "opt_indirection", "opt_asymmetric", "ctext_expr", "ctext_expr_list", "ctext_row", "opt_target_list", "target_list", "target_el", "qualified_name_list", "qualified_name", "name_list", "name", "database_name", "access_method", "attr_name", "index_name", "file_name", "func_name", "AexprConst", "Iconst", "Sconst", "SignedIconst", "RoleId", "RoleSpec", "role_list", "Iconst_or_Normalized", "Sconst_or_Normalized", "Flat_Sconst_or_Normalized", "NonReservedWord_or_Sconst_or_Normalized", "ColId", "type_function_name", "NonReservedWord", "ColLabel", "unreserved_keyword", "col_name_keyword", "type_func_name_keyword", "reserved_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, 60, 62, 61, 692, 43, 45, 42, 47, 37, 94, 63, 693, 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, 457, 458, 459, 459, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 461, 462, 462, 462, 463, 463, 464, 464, 465, 465, 465, 465, 465, 465, 465, 465, 465, 466, 466, 466, 466, 466, 466, 467, 468, 469, 469, 470, 470, 471, 472, 473, 473, 474, 474, 475, 476, 477, 477, 478, 478, 479, 479, 479, 479, 480, 480, 481, 481, 482, 482, 482, 482, 482, 482, 483, 483, 483, 484, 484, 484, 485, 485, 485, 485, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 487, 487, 488, 488, 489, 489, 489, 490, 490, 490, 490, 491, 491, 491, 491, 492, 492, 492, 492, 492, 492, 492, 493, 493, 493, 494, 494, 495, 496, 496, 496, 496, 497, 497, 498, 498, 499, 499, 500, 500, 500, 500, 500, 501, 502, 502, 503, 503, 504, 505, 505, 505, 505, 505, 506, 506, 506, 506, 506, 506, 506, 506, 506, 506, 506, 506, 506, 506, 506, 506, 507, 507, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 509, 509, 510, 510, 510, 511, 511, 512, 512, 513, 513, 513, 513, 514, 515, 515, 516, 516, 517, 517, 517, 517, 518, 519, 519, 520, 520, 520, 520, 521, 521, 522, 522, 523, 523, 524, 524, 525, 525, 525, 526, 526, 527, 527, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 529, 529, 530, 530, 531, 531, 532, 532, 533, 533, 534, 535, 535, 535, 535, 535, 536, 536, 537, 538, 538, 538, 538, 539, 539, 539, 539, 539, 539, 539, 539, 540, 540, 541, 541, 542, 542, 543, 543, 544, 544, 544, 545, 545, 546, 547, 548, 548, 549, 549, 549, 549, 550, 550, 550, 550, 550, 550, 550, 551, 551, 551, 551, 552, 553, 553, 553, 554, 554, 554, 554, 554, 554, 555, 555, 556, 556, 556, 556, 556, 556, 556, 557, 557, 558, 558, 559, 559, 560, 561, 561, 561, 561, 562, 562, 563, 563, 564, 564, 565, 565, 565, 565, 565, 566, 567, 568, 568, 568, 568, 568, 569, 569, 570, 570, 570, 570, 571, 571, 571, 571, 572, 572, 573, 573, 574, 575, 575, 576, 577, 577, 577, 578, 578, 579, 580, 580, 581, 582, 582, 583, 583, 584, 584, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 588, 588, 588, 589, 589, 590, 590, 591, 591, 592, 592, 593, 593, 594, 594, 595, 595, 596, 596, 597, 597, 598, 599, 599, 600, 600, 601, 601, 602, 602, 603, 603, 603, 604, 605, 605, 606, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 608, 609, 609, 609, 609, 610, 610, 611, 611, 612, 612, 613, 613, 614, 614, 615, 615, 616, 617, 617, 618, 618, 618, 618, 619, 620, 621, 622, 623, 623, 624, 624, 625, 625, 626, 626, 627, 627, 627, 628, 628, 629, 629, 630, 631, 631, 632, 632, 633, 634, 634, 635, 635, 636, 637, 638, 639, 639, 640, 640, 641, 641, 642, 642, 643, 643, 644, 644, 645, 645, 645, 645, 645, 646, 646, 647, 647, 647, 648, 648, 649, 649, 649, 649, 649, 650, 650, 651, 651, 652, 652, 653, 653, 654, 654, 654, 655, 655, 655, 655, 656, 656, 657, 657, 658, 658, 658, 658, 658, 658, 659, 659, 660, 660, 661, 661, 662, 663, 663, 664, 665, 665, 665, 665, 666, 667, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 669, 670, 670, 671, 671, 672, 672, 672, 672, 672, 673, 674, 674, 675, 676, 676, 677, 677, 678, 678, 678, 679, 679, 680, 681, 681, 682, 682, 682, 682, 682, 683, 683, 684, 684, 685, 685, 685, 686, 686, 687, 688, 688, 689, 689, 690, 690, 691, 691, 692, 692, 693, 694, 695, 695, 695, 695, 695, 695, 695, 695, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 696, 697, 697, 698, 698, 699, 699, 700, 700, 701, 702, 702, 702, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 705, 705, 706, 706, 706, 706, 706, 706, 706, 707, 707, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 709, 709, 710, 710, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 712, 712, 713, 713, 714, 715, 715, 716, 716, 716, 716, 716, 717, 717, 718, 718, 718, 718, 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 720, 720, 721, 721, 722, 722, 723, 723, 724, 725, 726, 726, 727, 727, 728, 728, 729, 730, 730, 731, 731, 731, 732, 732, 732, 733, 733, 733, 733, 734, 734, 735, 735, 736, 736, 737, 737, 738, 738, 739, 739, 740, 740, 740, 741, 741, 742, 742, 742, 743, 743, 743, 744, 744, 744, 745, 745, 745, 746, 746, 747, 747, 748, 748, 749, 749, 750, 750, 751, 751, 751, 751, 751, 752, 752, 752, 752, 752, 753, 754, 755, 755, 755, 756, 756, 756, 757, 758, 758, 758, 758, 759, 759, 760, 760, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 762, 762, 762, 762, 762, 763, 763, 764, 764, 765, 765, 766, 767, 767, 768, 769, 769, 770, 770, 771, 771, 772, 772, 773, 773, 774, 774, 774, 774, 775, 775, 776, 777, 777, 778, 778, 779, 779, 779, 780, 780, 780, 781, 782, 782, 783, 784, 784, 784, 784, 785, 786, 786, 786, 786, 787, 787, 788, 788, 788, 789, 789, 790, 791, 791, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 793, 793, 794, 794, 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 797, 798, 798, 798, 799, 799, 800, 800, 800, 800, 800, 801, 801, 802, 802, 802, 802, 803, 803, 803, 804, 804, 805, 806, 806, 807, 808, 808, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 810, 810, 810, 811, 811, 811, 811, 811, 812, 812, 812, 813, 813, 814, 814, 814, 814, 815, 815, 815, 815, 816, 817, 818, 818, 819, 819, 820, 820, 820, 821, 821, 821, 821, 821, 821, 821, 822, 822, 823, 823, 823, 824, 825, 825, 826, 826, 827, 828, 828, 828, 828, 828, 828, 828, 829, 829, 830, 831, 831, 831, 831, 831, 831, 832, 832, 833, 834, 834, 834, 835, 835, 836, 836, 836, 836, 836, 837, 837, 838, 838, 838, 838, 839, 839, 840, 840, 841, 841, 842, 842, 843, 843, 844, 844, 845, 845, 845, 845, 846, 846, 846, 846, 846, 846, 846, 846, 846, 847, 847, 848, 849, 849, 850, 850, 850, 851, 852, 852, 853, 853, 853, 853, 854, 854, 855, 855, 856, 856, 856, 856, 857, 858, 858, 859, 859, 859, 860, 860, 861, 862, 862, 862, 863, 863, 863, 864, 864, 865, 866, 866, 867, 868, 868, 869, 869, 869, 869, 869, 869, 869, 869, 870, 870, 871, 871, 871, 872, 873, 873, 874, 874, 875, 876, 876, 877, 878, 878, 879, 880, 881, 881, 881, 881, 881, 882, 882, 882, 883, 883, 884, 884, 885, 885, 885, 885, 885, 885, 885, 885, 886, 886, 887, 887, 887, 887, 887, 887, 887, 888, 888, 888, 889, 889, 890, 891, 891, 892, 892, 893, 893, 893, 893, 893, 893, 893, 893, 893, 894, 894, 895, 895, 895, 896, 896, 897, 897, 898, 898, 899, 900, 900, 901, 901, 902, 902, 902, 902, 903, 903, 904, 904, 904, 905, 905, 906, 906, 907, 908, 908, 908, 909, 910, 910, 911, 911, 912, 912, 913, 913, 914, 914, 914, 914, 914, 915, 916, 917, 918, 919, 919, 920, 920, 921, 921, 922, 922, 923, 924, 924, 924, 924, 925, 925, 926, 926, 927, 927, 928, 928, 929, 929, 929, 929, 929, 929, 929, 929, 930, 930, 930, 930, 930, 930, 931, 931, 931, 931, 932, 932, 933, 933, 933, 933, 933, 934, 934, 934, 934, 935, 935, 936, 936, 937, 937, 937, 937, 938, 938, 939, 939, 939, 940, 941, 941, 942, 942, 943, 944, 944, 945, 945, 946, 946, 947, 947, 948, 948, 948, 949, 949, 950, 950, 951, 952, 952, 952, 952, 952, 952, 953, 953, 953, 954, 954, 954, 954, 954, 954, 954, 955, 955, 955, 955, 956, 956, 957, 957, 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, 959, 959, 960, 960, 961, 961, 962, 963, 964, 964, 965, 965, 966, 967, 968, 968, 968, 968, 968, 968, 969, 969, 970, 970, 971, 971, 971, 971, 972, 973, 973, 973, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 975, 975, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 979, 979, 979, 979, 979, 979, 979, 980, 980, 981, 981, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 983, 983, 984, 984, 984, 984, 985, 986, 986, 987, 987, 988, 988, 989, 989, 989, 990, 990, 990, 990, 991, 991, 992, 992, 993, 993, 994, 994, 995, 996, 996, 996, 997, 998, 998, 999, 999, 1000, 1000, 1000, 1001, 1001, 1002, 1002, 1002, 1002, 1002, 1003, 1003, 1003, 1004, 1004, 1005, 1006, 1006, 1006, 1007, 1007, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1009, 1009, 1010, 1010, 1011, 1011, 1011, 1011, 1011, 1011, 1012, 1012, 1013, 1013, 1014, 1014, 1014, 1015, 1015, 1016, 1016, 1016, 1017, 1017, 1018, 1018, 1018, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1020, 1020, 1021, 1022, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1024, 1025, 1026, 1026, 1026, 1027, 1027, 1028, 1029, 1029, 1030, 1031, 1031, 1032, 1032, 1033, 1033, 1034, 1034, 1034, 1034, 1035, 1035, 1036, 1036, 1037, 1037, 1038, 1038, 1039, 1039, 1040, 1041, 1041, 1042, 1042, 1043, 1043, 1043, 1043, 1044, 1044, 1045, 1045, 1046, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1053, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1055, 1056, 1057, 1057, 1057, 1058, 1059, 1059, 1059, 1060, 1060, 1061, 1061, 1062, 1062, 1063, 1063, 1064, 1064, 1065, 1065, 1065, 1066, 1066, 1066, 1067, 1067, 1067, 1067, 1068, 1068, 1068, 1068, 1068, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 5, 1, 1, 0, 2, 0, 2, 0, 2, 2, 3, 3, 1, 3, 3, 2, 1, 1, 2, 2, 2, 3, 3, 5, 5, 0, 3, 5, 5, 5, 4, 3, 5, 3, 5, 5, 6, 1, 1, 3, 5, 6, 4, 9, 7, 1, 0, 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, 3, 3, 3, 3, 1, 3, 1, 3, 1, 1, 1, 2, 2, 2, 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, 10, 13, 4, 6, 10, 13, 4, 6, 4, 6, 5, 7, 11, 14, 1, 3, 2, 3, 4, 6, 6, 6, 5, 5, 6, 6, 4, 8, 4, 2, 4, 3, 6, 4, 3, 3, 3, 3, 2, 2, 3, 4, 4, 3, 3, 3, 3, 3, 3, 4, 4, 3, 2, 3, 2, 2, 3, 3, 2, 2, 3, 4, 4, 4, 5, 1, 3, 2, 1, 1, 0, 2, 0, 2, 0, 1, 1, 1, 3, 3, 2, 0, 1, 3, 3, 1, 5, 3, 4, 1, 3, 4, 6, 4, 8, 2, 2, 11, 7, 1, 1, 1, 0, 1, 1, 1, 1, 3, 2, 0, 1, 1, 1, 3, 3, 1, 1, 3, 3, 3, 3, 4, 3, 2, 1, 0, 2, 0, 3, 0, 1, 0, 1, 3, 2, 1, 1, 1, 3, 0, 1, 3, 1, 11, 14, 10, 13, 1, 1, 2, 2, 2, 2, 1, 0, 1, 0, 3, 0, 1, 3, 1, 3, 1, 1, 1, 1, 1, 4, 4, 2, 0, 3, 1, 1, 2, 2, 1, 3, 4, 5, 2, 5, 1, 2, 2, 2, 3, 3, 3, 0, 1, 1, 1, 1, 1, 1, 3, 1, 5, 7, 3, 8, 4, 9, 11, 2, 0, 3, 0, 1, 3, 1, 2, 2, 2, 0, 1, 3, 3, 6, 4, 0, 1, 1, 2, 2, 0, 3, 3, 2, 1, 1, 2, 2, 4, 0, 2, 2, 2, 0, 3, 4, 4, 0, 2, 0, 4, 0, 3, 7, 10, 5, 2, 3, 0, 8, 11, 4, 1, 0, 6, 5, 8, 4, 6, 1, 0, 1, 2, 2, 1, 2, 3, 2, 2, 2, 2, 3, 3, 1, 3, 1, 0, 1, 2, 1, 1, 3, 6, 10, 1, 0, 1, 2, 2, 0, 2, 2, 1, 0, 5, 7, 1, 0, 7, 2, 0, 3, 5, 5, 8, 2, 0, 2, 2, 2, 5, 2, 0, 2, 7, 10, 6, 6, 6, 6, 7, 7, 9, 9, 6, 7, 6, 8, 8, 8, 8, 6, 6, 7, 7, 8, 6, 9, 6, 7, 2, 2, 2, 2, 1, 2, 1, 0, 6, 8, 7, 6, 4, 0, 1, 3, 4, 1, 3, 1, 2, 2, 2, 2, 1, 1, 10, 2, 0, 2, 2, 1, 0, 4, 6, 5, 4, 4, 11, 14, 5, 7, 11, 2, 1, 4, 0, 8, 1, 1, 7, 9, 8, 9, 8, 6, 8, 4, 0, 5, 0, 2, 0, 2, 0, 2, 0, 1, 1, 1, 1, 1, 15, 20, 1, 1, 2, 1, 3, 1, 1, 1, 3, 1, 3, 0, 1, 0, 1, 1, 4, 0, 1, 3, 0, 1, 1, 1, 1, 2, 0, 0, 2, 2, 1, 2, 2, 2, 2, 6, 8, 11, 13, 1, 3, 5, 1, 3, 5, 1, 2, 2, 1, 8, 4, 5, 4, 4, 4, 3, 7, 8, 6, 6, 6, 6, 6, 4, 5, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 1, 0, 1, 3, 7, 9, 9, 3, 0, 13, 1, 3, 5, 6, 4, 7, 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, 4, 6, 4, 6, 5, 7, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 3, 3, 3, 3, 1, 3, 1, 2, 2, 3, 1, 3, 5, 2, 2, 0, 6, 6, 6, 7, 7, 7, 8, 9, 8, 8, 6, 9, 8, 9, 9, 7, 10, 7, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 3, 2, 3, 3, 3, 3, 1, 1, 8, 8, 8, 9, 9, 9, 9, 2, 0, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 3, 3, 3, 3, 4, 4, 3, 3, 3, 4, 4, 3, 4, 4, 1, 1, 1, 0, 7, 7, 10, 1, 1, 2, 4, 5, 1, 3, 2, 2, 2, 2, 1, 2, 2, 4, 3, 2, 2, 2, 2, 3, 2, 2, 2, 5, 5, 5, 1, 3, 1, 2, 3, 0, 1, 3, 2, 6, 6, 9, 3, 0, 3, 0, 5, 2, 0, 3, 3, 3, 7, 7, 10, 1, 1, 1, 1, 14, 17, 1, 0, 1, 0, 1, 0, 2, 0, 1, 3, 5, 5, 7, 2, 0, 1, 2, 0, 1, 1, 0, 2, 2, 0, 9, 12, 7, 2, 0, 3, 2, 1, 3, 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, 1, 2, 4, 5, 1, 1, 1, 1, 3, 3, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 3, 3, 5, 2, 0, 2, 1, 3, 5, 1, 2, 1, 0, 5, 7, 5, 7, 5, 7, 3, 5, 5, 5, 1, 3, 2, 1, 2, 1, 2, 11, 10, 10, 2, 2, 0, 9, 2, 0, 10, 11, 11, 5, 5, 8, 3, 3, 6, 6, 1, 1, 1, 1, 1, 1, 3, 1, 5, 5, 7, 6, 6, 6, 6, 8, 8, 6, 6, 7, 9, 9, 8, 10, 6, 6, 6, 8, 6, 8, 6, 8, 7, 9, 6, 8, 7, 9, 8, 10, 9, 11, 8, 10, 9, 11, 8, 8, 7, 6, 6, 6, 8, 8, 8, 8, 6, 9, 1, 0, 2, 0, 7, 6, 6, 6, 6, 6, 7, 9, 9, 6, 8, 8, 8, 8, 8, 6, 8, 6, 8, 7, 9, 7, 9, 6, 7, 6, 6, 6, 6, 6, 7, 7, 7, 9, 9, 6, 6, 6, 8, 8, 8, 6, 7, 13, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 6, 8, 3, 2, 0, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 3, 2, 5, 4, 3, 3, 3, 1, 1, 0, 3, 2, 2, 1, 2, 1, 3, 2, 1, 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, 4, 3, 5, 4, 4, 6, 4, 6, 6, 5, 7, 9, 6, 1, 0, 6, 11, 11, 11, 13, 9, 11, 1, 1, 10, 4, 2, 5, 2, 0, 4, 5, 5, 4, 6, 1, 3, 1, 1, 1, 1, 2, 4, 1, 1, 1, 0, 1, 0, 1, 0, 3, 0, 2, 4, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 1, 1, 1, 1, 0, 5, 3, 0, 1, 1, 1, 1, 3, 9, 3, 0, 2, 3, 2, 3, 7, 1, 3, 1, 4, 2, 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, 1, 1, 3, 5, 5, 2, 1, 3, 7, 1, 0, 3, 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, 6, 1, 0, 2, 0, 3, 3, 4, 4, 4, 4, 3, 2, 1, 1, 0, 1, 1, 0, 1, 5, 1, 0, 1, 0, 3, 1, 3, 4, 3, 2, 2, 1, 1, 1, 0, 2, 4, 5, 2, 3, 1, 1, 1, 1, 3, 0, 1, 1, 1, 1, 1, 3, 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, 2, 3, 2, 0, 1, 3, 2, 3, 2, 3, 2, 3, 1, 4, 3, 4, 5, 4, 5, 4, 5, 2, 4, 1, 1, 0, 1, 4, 5, 4, 0, 2, 2, 2, 1, 1, 0, 4, 2, 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, 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, 5, 2, 2, 2, 1, 3, 3, 2, 1, 0, 3, 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, 2, 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, 6, 7, 3, 4, 4, 6, 2, 3, 4, 1, 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 2, 2, 5, 6, 6, 7, 3, 4, 1, 1, 2, 2, 4, 1, 1, 1, 2, 2, 2, 2, 1, 1, 4, 3, 5, 6, 8, 6, 6, 4, 4, 1, 1, 1, 5, 1, 1, 4, 1, 4, 1, 4, 1, 4, 1, 1, 1, 1, 1, 1, 6, 4, 4, 4, 4, 6, 5, 5, 5, 4, 6, 4, 4, 4, 4, 5, 7, 7, 9, 5, 4, 6, 5, 7, 7, 7, 2, 3, 3, 3, 4, 0, 4, 1, 3, 3, 1, 1, 1, 2, 2, 0, 2, 4, 4, 6, 5, 0, 5, 0, 2, 0, 1, 3, 3, 2, 2, 0, 6, 1, 0, 3, 0, 2, 2, 0, 1, 4, 2, 2, 2, 2, 2, 4, 3, 5, 4, 3, 5, 1, 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, 3, 3, 3, 2, 1, 3, 3, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 4, 3, 2, 3, 0, 3, 3, 2, 2, 1, 0, 2, 2, 3, 2, 1, 1, 3, 5, 1, 2, 4, 2, 0, 1, 0, 1, 2, 2, 2, 3, 5, 1, 2, 0, 2, 1, 0, 1, 1, 1, 3, 3, 1, 0, 1, 3, 3, 2, 1, 1, 1, 3, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 6, 2, 3, 5, 6, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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[] = { 1477, 1263, 564, 1347, 1346, 1263, 252, 0, 1349, 0, 1263, 385, 1008, 0, 0, 0, 0, 564, 1263, 0, 1477, 0, 0, 0, 0, 0, 1490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1263, 0, 0, 1497, 0, 0, 0, 0, 1490, 0, 1351, 0, 0, 0, 0, 0, 2, 4, 64, 65, 27, 26, 32, 31, 89, 90, 50, 17, 78, 57, 124, 123, 125, 38, 34, 72, 23, 25, 35, 39, 59, 40, 51, 102, 58, 21, 56, 83, 60, 86, 45, 11, 12, 46, 76, 13, 47, 77, 14, 48, 15, 98, 66, 91, 30, 55, 20, 82, 62, 88, 63, 5, 41, 74, 70, 10, 52, 53, 54, 79, 80, 81, 107, 85, 119, 37, 116, 95, 96, 113, 97, 114, 8, 99, 49, 16, 110, 109, 111, 73, 42, 75, 61, 87, 108, 24, 112, 18, 19, 115, 84, 105, 101, 120, 118, 126, 103, 67, 6, 7, 92, 22, 44, 9, 29, 28, 43, 36, 122, 33, 1349, 94, 106, 93, 68, 100, 71, 104, 121, 69, 117, 1450, 1449, 1499, 1453, 1476, 0, 1465, 1262, 1261, 1247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1273, 2072, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 356, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2355, 2356, 2357, 2358, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2359, 2360, 2112, 2113, 2114, 2115, 2116, 2361, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2362, 2363, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2364, 2164, 2165, 2166, 2365, 2167, 2168, 2169, 2366, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2367, 2368, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2369, 2194, 2195, 2196, 2197, 2370, 2371, 2372, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2373, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2374, 2375, 2225, 2226, 2376, 2227, 2228, 2229, 2377, 2230, 2378, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2379, 2239, 2380, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2381, 2249, 2382, 2252, 2250, 2251, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2383, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2384, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2385, 2296, 2297, 2298, 2299, 2386, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2387, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2388, 2389, 2320, 2321, 2390, 2322, 2391, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2392, 2393, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2352, 2353, 2354, 355, 1440, 2031, 2073, 2074, 1348, 1329, 564, 0, 1250, 384, 0, 0, 0, 0, 0, 0, 0, 0, 777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, 408, 407, 0, 0, 0, 980, 413, 0, 0, 0, 0, 0, 552, 1390, 2250, 1388, 1441, 253, 256, 257, 254, 255, 2054, 0, 1090, 1091, 1093, 0, 0, 1103, 814, 815, 0, 0, 0, 817, 0, 0, 0, 811, 0, 0, 0, 0, 0, 0, 816, 808, 0, 807, 0, 0, 1103, 0, 0, 0, 809, 0, 0, 1251, 1387, 414, 1477, 0, 1365, 1366, 1367, 1349, 1356, 1368, 1361, 1363, 1362, 1364, 1360, 2053, 2088, 918, 918, 918, 918, 915, 916, 918, 918, 918, 2267, 0, 0, 897, 0, 899, 2055, 918, 923, 469, 469, 469, 0, 922, 927, 469, 0, 1244, 1282, 2036, 1489, 0, 898, 1243, 2320, 1379, 0, 0, 1118, 1114, 1116, 1117, 1115, 0, 0, 0, 2283, 1255, 237, 2293, 2388, 2320, 236, 231, 232, 204, 2092, 0, 0, 922, 0, 1252, 1253, 883, 1496, 1494, 0, 2018, 2110, 2124, 2209, 228, 2278, 2284, 2293, 2388, 2320, 2351, 183, 193, 188, 0, 246, 2293, 2388, 2320, 242, 1273, 0, 1466, 1594, 2027, 0, 1246, 1245, 1350, 0, 1353, 0, 1555, 2263, 1470, 1473, 1355, 1471, 1462, 0, 0, 1, 1477, 1344, 1493, 1493, 0, 1493, 0, 1454, 1462, 1457, 1461, 0, 0, 0, 0, 2072, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 0, 0, 2037, 2073, 2077, 0, 824, 0, 1285, 2032, 967, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 2078, 2060, 2061, 0, 2058, 2059, 2079, 2080, 2081, 0, 2182, 0, 0, 0, 1924, 1935, 1936, 1937, 2114, 2167, 1932, 1933, 1934, 1926, 1927, 1928, 1929, 1930, 1931, 1938, 0, 1088, 1925, 0, 2182, 0, 153, 0, 131, 0, 0, 2182, 0, 0, 0, 0, 0, 2182, 0, 0, 0, 0, 0, 2214, 0, 131, 2182, 0, 0, 1267, 0, 0, 0, 1269, 1272, 1248, 1332, 0, 2027, 0, 0, 860, 852, 0, 861, 853, 0, 0, 863, 0, 0, 855, 0, 0, 0, 0, 864, 0, 854, 856, 866, 857, 862, 0, 0, 0, 0, 858, 0, 0, 1259, 469, 362, 0, 0, 0, 0, 0, 131, 1317, 0, 2182, 131, 0, 0, 412, 411, 131, 2058, 410, 409, 2114, 2167, 0, 1007, 0, 131, 2182, 0, 176, 635, 567, 0, 0, 736, 2214, 131, 0, 0, 0, 0, 0, 0, 983, 0, 0, 0, 551, 564, 1391, 1389, 0, 1094, 230, 229, 1092, 2182, 0, 330, 0, 0, 2182, 1304, 2075, 1652, 1681, 1659, 1681, 1681, 1648, 1648, 2151, 1661, 2182, 1649, 1650, 1688, 0, 1681, 1648, 1653, 0, 1651, 1691, 1691, 1676, 330, 828, 1633, 1634, 1635, 1636, 1662, 1663, 1637, 1668, 1669, 1683, 1638, 1705, 1648, 2076, 813, 0, 812, 2182, 0, 2182, 2062, 167, 0, 810, 2114, 2167, 2182, 0, 0, 2182, 0, 2182, 159, 2182, 0, 2182, 330, 2182, 568, 0, 0, 2182, 0, 2182, 330, 2182, 2214, 161, 0, 2182, 330, 822, 0, 1384, 0, 1358, 2392, 1373, 0, 1369, 1376, 1372, 1477, 918, 917, 0, 918, 0, 918, 0, 918, 0, 918, 0, 0, 0, 918, 2056, 2057, 900, 0, 924, 0, 0, 931, 930, 929, 0, 0, 0, 932, 0, 1598, 1414, 0, 1241, 1258, 0, 0, 0, 983, 1121, 0, 1119, 1110, 1111, 1254, 235, 233, 0, 0, 0, 0, 0, 0, 1260, 0, 0, 0, 0, 2040, 2042, 2043, 1939, 2008, 0, 2356, 2357, 2358, 1999, 0, 2359, 2360, 2361, 2405, 1840, 1827, 1836, 1841, 1828, 1830, 1837, 2362, 2363, 2364, 2365, 2051, 2366, 2367, 2368, 2370, 2371, 2372, 2373, 1832, 1834, 2374, 2375, 0, 2052, 2377, 2378, 2235, 2380, 2381, 2383, 2384, 1838, 2386, 2387, 2388, 2389, 2390, 2391, 2050, 0, 1839, 2393, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 0, 0, 0, 2024, 2008, 0, 1807, 0, 1641, 1642, 1664, 1665, 1643, 1670, 1671, 1644, 0, 2023, 1708, 1889, 1806, 1823, 0, 1812, 1813, 0, 1805, 1800, 1479, 2019, 0, 1801, 2039, 2041, 2000, 1479, 2017, 196, 248, 0, 249, 2025, 2293, 184, 227, 198, 226, 2071, 2070, 199, 2067, 2066, 197, 0, 2112, 185, 0, 0, 186, 0, 0, 0, 0, 245, 243, 0, 1249, 0, 1596, 1595, 0, 0, 2006, 2028, 833, 1342, 1343, 1341, 0, 1338, 1340, 1352, 1349, 2013, 2012, 2014, 0, 1472, 0, 0, 0, 1452, 1451, 3, 1355, 1491, 1492, 0, 0, 0, 0, 0, 0, 0, 0, 1545, 1507, 1508, 1510, 1542, 1546, 1554, 0, 1458, 0, 0, 1600, 0, 1556, 0, 0, 2038, 0, 0, 0, 0, 825, 0, 0, 0, 1291, 0, 1293, 1294, 1295, 0, 0, 1296, 1297, 1285, 239, 1303, 1301, 1284, 1286, 1299, 0, 0, 0, 0, 0, 0, 0, 1309, 0, 0, 165, 166, 579, 564, 0, 2182, 0, 0, 0, 0, 1047, 1054, 0, 0, 0, 0, 0, 0, 0, 1048, 1046, 1049, 241, 1058, 1074, 1077, 0, 957, 0, 0, 0, 0, 0, 1173, 0, 0, 1173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 274, 325, 544, 0, 0, 546, 0, 2182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 135, 0, 0, 0, 0, 0, 0, 531, 543, 0, 0, 0, 0, 0, 540, 0, 131, 266, 524, 528, 0, 0, 0, 644, 643, 1307, 1306, 0, 0, 0, 1173, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 348, 349, 0, 0, 0, 135, 158, 0, 0, 0, 268, 0, 0, 1268, 1265, 1266, 0, 1271, 0, 1328, 0, 0, 0, 0, 0, 868, 0, 865, 0, 0, 859, 2114, 2167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 387, 361, 0, 0, 733, 0, 0, 0, 0, 0, 744, 0, 1285, 1316, 0, 0, 0, 573, 0, 2182, 0, 133, 778, 0, 734, 413, 0, 0, 133, 0, 0, 170, 0, 639, 0, 0, 0, 0, 0, 0, 682, 681, 0, 0, 0, 735, 0, 133, 0, 2182, 527, 2182, 0, 469, 469, 0, 0, 982, 985, 0, 0, 0, 0, 1444, 1446, 1445, 0, 1443, 0, 330, 328, 329, 731, 1102, 0, 0, 1680, 1667, 1675, 1674, 0, 1657, 1656, 1655, 0, 1654, 0, 1681, 1681, 1679, 1658, 1633, 0, 0, 0, 1687, 0, 1685, 0, 803, 1629, 1625, 0, 0, 1673, 1694, 1695, 1696, 1693, 1706, 1692, 0, 1639, 1697, 1648, 1645, 0, 0, 330, 0, 0, 2182, 330, 2182, 0, 2182, 0, 0, 330, 330, 0, 0, 0, 0, 0, 0, 640, 0, 821, 819, 818, 820, 0, 0, 0, 0, 801, 0, 0, 0, 2182, 330, 0, 0, 800, 1949, 0, 0, 1477, 0, 216, 217, 215, 1374, 218, 1375, 1371, 1357, 0, 908, 0, 912, 0, 903, 0, 909, 0, 904, 901, 902, 0, 907, 0, 0, 470, 472, 0, 0, 2136, 2150, 0, 2173, 2202, 2203, 2284, 2289, 0, 2315, 2325, 0, 933, 962, 928, 653, 0, 0, 1424, 1242, 1956, 0, 1477, 0, 0, 0, 0, 234, 205, 0, 0, 0, 964, 2283, 1257, 882, 564, 0, 1803, 0, 1810, 1811, 1998, 0, 0, 0, 0, 0, 0, 1809, 1965, 0, 0, 0, 0, 0, 1733, 0, 0, 0, 1978, 0, 1984, 0, 0, 1770, 0, 0, 0, 0, 0, 0, 0, 0, 1734, 1712, 1713, 1802, 1807, 1949, 0, 1808, 2046, 0, 1705, 2022, 1939, 0, 1935, 1936, 1937, 0, 0, 0, 2011, 0, 1947, 0, 0, 1748, 1945, 1750, 0, 0, 0, 0, 1932, 1933, 1934, 1926, 1927, 1928, 1929, 1930, 1931, 1727, 1943, 1730, 0, 0, 1891, 0, 1729, 0, 0, 1558, 0, 2044, 2001, 1558, 250, 251, 247, 0, 0, 201, 200, 0, 220, 224, 225, 195, 223, 0, 219, 203, 1880, 1879, 202, 194, 191, 210, 189, 206, 208, 209, 192, 190, 244, 0, 0, 2082, 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, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2003, 2002, 2034, 2083, 2084, 2085, 2086, 2007, 0, 0, 330, 1336, 0, 1333, 2016, 0, 1474, 0, 2029, 0, 1345, 1469, 1468, 1500, 1501, 1000, 1467, 1525, 1526, 1521, 0, 0, 0, 1551, 1549, 1517, 1511, 1516, 1514, 0, 1518, 1708, 1544, 1456, 1505, 1506, 1509, 1455, 0, 1547, 0, 1427, 1545, 1510, 1411, 0, 1393, 0, 1601, 0, 1022, 1024, 0, 1023, 0, 1026, 0, 1035, 0, 0, 1021, 1040, 0, 1029, 1027, 0, 0, 0, 0, 0, 0, 826, 0, 0, 0, 0, 1292, 0, 0, 2315, 238, 1295, 1300, 1287, 1298, 0, 0, 0, 0, 0, 966, 965, 0, 0, 987, 0, 0, 0, 1312, 458, 0, 327, 0, 0, 0, 0, 0, 0, 0, 0, 729, 726, 0, 0, 725, 0, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 614, 0, 1173, 0, 647, 0, 1056, 0, 1055, 0, 0, 0, 1057, 1052, 1053, 2284, 2293, 2320, 240, 1076, 0, 1075, 1073, 1010, 0, 1011, 0, 0, 0, 0, 0, 2160, 276, 289, 0, 1172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 315, 314, 0, 0, 0, 0, 0, 319, 298, 0, 299, 0, 0, 318, 0, 0, 545, 0, 0, 0, 1173, 0, 270, 0, 0, 0, 0, 0, 0, 1089, 0, 671, 0, 156, 0, 152, 155, 0, 0, 0, 0, 530, 542, 0, 534, 535, 532, 536, 537, 0, 0, 0, 0, 0, 0, 529, 0, 0, 637, 636, 642, 0, 0, 0, 0, 0, 0, 0, 0, 1123, 1122, 0, 0, 0, 0, 0, 0, 768, 0, 0, 0, 0, 0, 0, 0, 656, 0, 655, 0, 157, 0, 0, 0, 0, 0, 0, 0, 214, 1264, 1270, 1331, 2035, 1330, 0, 0, 0, 0, 867, 0, 0, 0, 0, 0, 0, 0, 0, 869, 870, 871, 872, 0, 0, 0, 0, 0, 0, 0, 364, 365, 131, 363, 2075, 0, 757, 732, 0, 0, 745, 0, 747, 750, 0, 1283, 431, 0, 0, 570, 614, 0, 416, 163, 0, 0, 0, 0, 673, 128, 174, 176, 414, 0, 175, 177, 179, 180, 181, 178, 182, 634, 638, 0, 566, 0, 0, 0, 0, 0, 683, 687, 686, 690, 688, 0, 684, 0, 0, 1621, 0, 151, 0, 0, 522, 526, 0, 0, 0, 416, 500, 341, 2182, 0, 469, 0, 2182, 0, 984, 0, 0, 0, 0, 0, 0, 0, 0, 1442, 0, 1080, 0, 1305, 0, 0, 0, 330, 1678, 1677, 1630, 1626, 0, 0, 0, 0, 829, 0, 0, 0, 2065, 2064, 0, 0, 0, 0, 0, 0, 0, 1646, 2182, 330, 0, 1078, 168, 2063, 0, 805, 0, 0, 0, 0, 0, 1082, 797, 0, 330, 160, 0, 330, 330, 569, 0, 0, 330, 330, 162, 0, 0, 0, 561, 330, 823, 1386, 0, 2182, 469, 1359, 1370, 905, 914, 913, 911, 910, 906, 0, 925, 0, 468, 0, 0, 0, 939, 940, 0, 0, 938, 955, 941, 0, 943, 935, 934, 944, 945, 0, 0, 964, 651, 0, 0, 0, 0, 1421, 0, 1419, 0, 1599, 1423, 1412, 1378, 0, 1377, 1381, 1383, 1382, 1380, 0, 515, 0, 0, 1120, 0, 0, 922, 0, 0, 330, 1256, 0, 884, 885, 0, 0, 0, 0, 0, 0, 891, 888, 889, 890, 892, 0, 893, 0, 0, 0, 2009, 1960, 0, 1961, 0, 0, 1997, 1993, 0, 0, 0, 0, 0, 1966, 1969, 1970, 1971, 1968, 1972, 1967, 0, 0, 0, 1973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2384, 0, 0, 0, 0, 1773, 0, 0, 1919, 0, 1949, 1983, 0, 0, 0, 0, 0, 0, 1949, 1989, 0, 0, 0, 0, 1878, 0, 1875, 0, 0, 0, 0, 2008, 0, 0, 0, 2047, 1709, 1723, 1724, 1725, 1731, 2021, 0, 2010, 0, 0, 1710, 1739, 0, 1990, 1766, 0, 1771, 1754, 0, 1747, 0, 1752, 1756, 1735, 0, 1732, 0, 2011, 1948, 0, 1946, 0, 1720, 1721, 1722, 1714, 1715, 1716, 1717, 1718, 1719, 1726, 1728, 1923, 1921, 1922, 0, 0, 0, 1899, 0, 0, 1751, 2175, 2209, 0, 1490, 1490, 1490, 1478, 1488, 2020, 0, 1616, 0, 0, 0, 0, 1815, 0, 1953, 1499, 1951, 1027, 1616, 2026, 0, 0, 1705, 0, 1597, 2004, 0, 831, 832, 830, 1355, 1339, 1335, 1334, 2015, 1354, 0, 1477, 0, 998, 999, 0, 1003, 0, 0, 1519, 1552, 0, 1543, 0, 1523, 1524, 1515, 1553, 1425, 0, 1548, 1460, 1459, 0, 1619, 0, 0, 1403, 1395, 0, 1602, 0, 1558, 1429, 1431, 1432, 0, 2008, 1025, 0, 1648, 1036, 0, 1020, 0, 1019, 1648, 0, 1037, 0, 1648, 0, 0, 0, 1201, 1125, 1177, 827, 1202, 1126, 1178, 1203, 1127, 1302, 1290, 1289, 1288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 708, 2182, 330, 1310, 1204, 0, 1128, 326, 1311, 1179, 1315, 728, 727, 0, 0, 1180, 0, 578, 0, 0, 583, 584, 585, 0, 0, 0, 586, 0, 2114, 2167, 0, 591, 598, 603, 593, 0, 0, 605, 599, 0, 0, 0, 0, 0, 0, 611, 618, 0, 0, 0, 0, 0, 0, 1050, 1051, 1205, 1131, 0, 1181, 1009, 0, 1132, 164, 0, 0, 263, 277, 620, 708, 1175, 296, 0, 311, 306, 307, 305, 2182, 330, 2182, 330, 0, 0, 0, 0, 0, 308, 303, 304, 300, 0, 0, 313, 2091, 2152, 2294, 0, 624, 626, 0, 631, 316, 1148, 337, 336, 335, 0, 320, 0, 342, 345, 317, 294, 297, 295, 291, 275, 0, 0, 0, 0, 0, 0, 0, 2033, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 665, 154, 1163, 144, 0, 0, 140, 0, 0, 0, 0, 134, 0, 1211, 1138, 0, 0, 267, 525, 533, 538, 1142, 541, 1191, 539, 1217, 1139, 0, 1173, 0, 259, 0, 1140, 0, 1185, 1213, 1165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1318, 0, 0, 0, 0, 0, 330, 0, 0, 0, 1175, 2182, 330, 1212, 0, 1170, 1199, 0, 350, 0, 1164, 0, 0, 269, 1144, 1193, 0, 0, 212, 211, 213, 0, 0, 2150, 0, 874, 836, 873, 0, 0, 0, 0, 0, 0, 844, 0, 0, 0, 835, 0, 834, 386, 359, 360, 362, 369, 0, 756, 0, 0, 0, 746, 0, 0, 0, 1308, 0, 131, 0, 0, 0, 572, 613, 620, 0, 0, 0, 415, 419, 423, 424, 425, 0, 0, 0, 0, 145, 132, 0, 786, 0, 469, 0, 669, 0, 176, 169, 0, 0, 0, 341, 743, 741, 740, 742, 0, 0, 0, 761, 739, 0, 1620, 1622, 0, 0, 0, 0, 0, 515, 418, 0, 472, 0, 0, 504, 0, 0, 0, 0, 341, 0, 0, 0, 1014, 0, 1032, 1015, 0, 0, 0, 0, 1062, 1069, 1063, 1042, 0, 0, 549, 1447, 1448, 0, 330, 0, 0, 1647, 1660, 804, 0, 1690, 1689, 1691, 1691, 0, 1631, 0, 1682, 1683, 1699, 1700, 1701, 1702, 1703, 1704, 0, 1698, 1640, 0, 615, 330, 330, 0, 330, 0, 330, 330, 0, 662, 0, 1239, 641, 0, 0, 716, 802, 0, 0, 330, 799, 1950, 0, 926, 471, 0, 0, 0, 0, 937, 0, 547, 942, 0, 954, 949, 951, 0, 958, 650, 0, 0, 1422, 1415, 1417, 1416, 0, 0, 1413, 1957, 798, 0, 521, 1112, 1113, 0, 0, 330, 0, 959, 0, 0, 886, 887, 0, 0, 894, 0, 0, 0, 1495, 1958, 1959, 0, 0, 0, 1994, 0, 0, 1853, 0, 1829, 1831, 0, 1843, 0, 1854, 1814, 1855, 1833, 1835, 0, 1940, 0, 0, 1844, 0, 1775, 1776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1790, 1793, 1792, 1845, 1918, 0, 0, 1981, 1982, 1846, 0, 0, 1988, 0, 0, 0, 1851, 1856, 0, 0, 0, 0, 1862, 0, 1883, 0, 0, 0, 1804, 1950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1772, 1755, 1749, 0, 1753, 1757, 0, 0, 0, 1743, 0, 0, 1741, 1767, 1737, 0, 0, 1768, 0, 0, 0, 1822, 0, 0, 1490, 1490, 1490, 1490, 1487, 0, 0, 0, 0, 2281, 0, 1580, 1557, 1559, 1567, 1580, 1585, 1824, 1614, 1825, 0, 2027, 0, 1528, 1499, 1499, 1499, 1821, 0, 0, 0, 0, 1498, 1528, 187, 0, 221, 207, 0, 1337, 2030, 0, 1502, 0, 1941, 1003, 0, 1504, 0, 0, 1550, 1512, 1426, 1410, 0, 1408, 1397, 0, 1398, 2008, 0, 1408, 1394, 1437, 0, 0, 1619, 0, 1436, 0, 1648, 1017, 1018, 0, 1041, 0, 1200, 1124, 1176, 969, 970, 0, 968, 0, 0, 0, 457, 986, 0, 0, 0, 708, 0, 0, 461, 0, 1313, 0, 1218, 1162, 580, 581, 0, 592, 0, 601, 600, 0, 0, 588, 0, 0, 0, 0, 0, 587, 607, 553, 608, 610, 0, 0, 609, 612, 617, 1173, 0, 648, 1150, 0, 1197, 1044, 0, 1012, 0, 0, 0, 0, 431, 290, 0, 0, 0, 278, 288, 0, 322, 0, 293, 0, 286, 309, 301, 310, 302, 321, 323, 0, 628, 629, 627, 623, 0, 630, 632, 0, 339, 0, 0, 0, 1207, 0, 1173, 0, 271, 1146, 0, 1195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1208, 1182, 0, 0, 670, 0, 667, 0, 0, 137, 2069, 2068, 136, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 332, 0, 764, 0, 0, 0, 353, 0, 0, 0, 0, 1206, 1133, 837, 0, 0, 0, 838, 849, 0, 0, 839, 0, 0, 0, 0, 851, 0, 0, 358, 366, 2235, 1926, 1927, 754, 759, 751, 753, 755, 752, 0, 758, 708, 0, 748, 749, 0, 0, 0, 0, 0, 443, 0, 0, 437, 0, 0, 1069, 430, 433, 434, 0, 0, 573, 576, 574, 575, 606, 0, 450, 496, 0, 147, 0, 0, 148, 146, 0, 0, 341, 674, 678, 676, 675, 677, 672, 0, 665, 0, 172, 414, 0, 0, 565, 689, 692, 685, 0, 760, 762, 737, 0, 620, 0, 527, 0, 469, 1387, 510, 0, 500, 496, 498, 497, 499, 0, 506, 340, 0, 0, 515, 506, 0, 0, 987, 1013, 0, 0, 0, 1059, 1064, 1060, 0, 0, 1028, 0, 1061, 0, 1043, 1006, 1234, 1235, 1232, 1233, 0, 0, 0, 1439, 1081, 0, 1666, 0, 1686, 1684, 1627, 1632, 1672, 1707, 330, 1079, 806, 0, 793, 0, 795, 1083, 330, 330, 330, 330, 657, 0, 562, 0, 0, 0, 0, 936, 956, 0, 952, 0, 0, 919, 961, 0, 0, 1420, 1418, 513, 0, 964, 0, 920, 963, 0, 0, 0, 0, 0, 0, 0, 1962, 0, 1996, 1992, 0, 1826, 1964, 1963, 0, 1976, 1975, 1919, 0, 0, 1774, 1786, 1787, 1788, 1977, 0, 1798, 0, 0, 1783, 1784, 1785, 1777, 1778, 1779, 1780, 1781, 1782, 1789, 1791, 1986, 1985, 1979, 1980, 0, 1848, 1849, 1850, 1987, 1857, 0, 2105, 1884, 1861, 1877, 1876, 0, 0, 0, 1864, 0, 0, 1873, 0, 1920, 1705, 2048, 1711, 0, 0, 1740, 1991, 1758, 0, 0, 0, 1736, 1940, 0, 0, 0, 0, 0, 1745, 0, 0, 0, 1902, 1897, 1898, 1916, 0, 0, 0, 0, 0, 0, 1481, 1480, 1486, 1580, 1585, 0, 1462, 0, 1567, 0, 1579, 1565, 1578, 0, 0, 1591, 1589, 0, 1591, 0, 1591, 0, 1561, 0, 1581, 1563, 1578, 0, 1606, 0, 2028, 1615, 0, 1541, 0, 0, 0, 0, 1954, 1955, 0, 1952, 1816, 1541, 0, 2005, 1475, 0, 1503, 1001, 1002, 1520, 1513, 2132, 1617, 0, 1409, 0, 0, 1400, 1406, 1392, 0, 0, 1430, 1408, 1433, 1038, 0, 0, 1030, 975, 976, 974, 977, 0, 0, 0, 708, 0, 0, 477, 0, 994, 994, 0, 0, 463, 509, 1069, 711, 0, 0, 0, 709, 330, 1129, 0, 602, 0, 0, 597, 595, 594, 596, 0, 554, 1216, 1130, 0, 0, 0, 0, 1045, 0, 0, 1149, 0, 428, 0, 283, 1174, 0, 0, 0, 282, 0, 330, 330, 324, 625, 338, 343, 344, 347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 787, 770, 0, 0, 788, 789, 0, 0, 0, 1086, 1087, 1085, 0, 1136, 0, 0, 661, 141, 138, 139, 142, 1160, 1143, 1192, 0, 0, 0, 1141, 0, 1186, 1156, 1152, 0, 0, 0, 0, 0, 1215, 1169, 1190, 1214, 1167, 1188, 1166, 1187, 1168, 1189, 1161, 0, 1624, 767, 0, 0, 0, 330, 330, 659, 1145, 1194, 0, 0, 840, 0, 0, 842, 843, 0, 846, 389, 0, 392, 399, 370, 375, 1317, 0, 1317, 0, 372, 376, 1317, 371, 1317, 368, 730, 0, 0, 707, 0, 435, 0, 441, 445, 446, 444, 436, 1069, 469, 508, 0, 0, 720, 0, 571, 416, 447, 0, 0, 420, 150, 149, 0, 0, 0, 668, 667, 176, 2182, 0, 0, 694, 698, 738, 0, 1623, 654, 341, 523, 0, 0, 416, 515, 0, 421, 426, 427, 0, 504, 500, 0, 0, 512, 1281, 0, 516, 518, 0, 0, 0, 1016, 1033, 1034, 0, 0, 1069, 0, 0, 1068, 0, 0, 556, 330, 1628, 616, 330, 330, 663, 1240, 1109, 717, 0, 948, 947, 946, 548, 0, 950, 652, 0, 514, 330, 0, 0, 896, 877, 895, 0, 0, 876, 0, 875, 1995, 1842, 1852, 1974, 1918, 1950, 0, 0, 1799, 0, 0, 1847, 2394, 0, 0, 0, 0, 1881, 1882, 1863, 0, 2226, 1868, 0, 0, 0, 2049, 1764, 1762, 1759, 0, 1760, 1744, 0, 0, 1742, 1738, 0, 1769, 1888, 0, 1904, 1901, 1915, 1950, 1485, 1484, 1483, 1482, 1566, 1564, 0, 1569, 1576, 0, 1560, 0, 1590, 1586, 0, 1587, 0, 0, 1588, 0, 0, 1562, 0, 1576, 0, 1613, 1499, 0, 0, 1893, 1819, 1820, 1817, 1499, 2045, 1893, 222, 0, 0, 1407, 1396, 1399, 0, 0, 0, 0, 1438, 1428, 1031, 1039, 0, 0, 0, 459, 0, 1069, 0, 0, 0, 997, 997, 0, 1069, 508, 713, 712, 715, 710, 714, 1314, 0, 589, 590, 604, 1151, 0, 1198, 1158, 0, 1424, 0, 621, 279, 280, 281, 284, 332, 292, 285, 0, 0, 0, 1147, 0, 1196, 1154, 1209, 1134, 1183, 0, 0, 776, 0, 0, 0, 0, 1210, 1135, 1184, 0, 0, 0, 0, 1424, 0, 0, 0, 0, 0, 1323, 0, 331, 766, 765, 332, 352, 1171, 0, 841, 847, 848, 845, 390, 131, 0, 367, 0, 397, 0, 395, 394, 396, 0, 383, 0, 0, 0, 0, 0, 0, 0, 1100, 1100, 0, 708, 0, 0, 432, 508, 476, 0, 438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 660, 171, 0, 416, 620, 693, 0, 0, 0, 763, 0, 515, 418, 0, 1385, 417, 0, 0, 506, 504, 0, 501, 0, 505, 0, 1274, 0, 0, 0, 0, 1065, 0, 1071, 0, 1027, 1004, 1066, 0, 1616, 0, 0, 0, 0, 560, 1101, 794, 796, 658, 953, 0, 960, 330, 878, 879, 880, 881, 1920, 1794, 0, 0, 0, 0, 1858, 0, 1859, 1886, 1885, 1865, 1869, 0, 1866, 1867, 1761, 1765, 1763, 1746, 1890, 0, 1499, 1917, 1609, 0, 1612, 1568, 0, 0, 1570, 0, 0, 1572, 1574, 0, 0, 0, 0, 0, 0, 2031, 0, 2131, 2368, 2280, 0, 1527, 1529, 1532, 1534, 1533, 1535, 1531, 1540, 0, 1464, 0, 1463, 1942, 1618, 0, 0, 988, 0, 0, 1435, 1434, 954, 0, 330, 994, 508, 478, 2235, 479, 993, 0, 995, 1000, 1000, 0, 508, 708, 582, 0, 0, 264, 619, 0, 334, 346, 0, 1424, 0, 0, 0, 783, 771, 0, 0, 790, 1137, 664, 0, 0, 260, 1157, 1153, 1325, 1326, 0, 0, 0, 0, 0, 330, 850, 369, 0, 393, 402, 0, 400, 373, 378, 0, 382, 380, 379, 374, 377, 1100, 0, 1097, 1096, 706, 0, 467, 439, 0, 487, 0, 0, 721, 0, 0, 496, 456, 455, 452, 451, 453, 454, 449, 448, 0, 620, 780, 341, 1281, 0, 633, 695, 696, 691, 0, 0, 0, 511, 500, 496, 422, 431, 405, 506, 502, 503, 0, 0, 0, 515, 1327, 987, 0, 1070, 0, 0, 0, 0, 0, 0, 1104, 555, 0, 0, 559, 550, 620, 921, 1795, 0, 1796, 0, 0, 0, 1871, 1870, 0, 1907, 1614, 0, 0, 1608, 0, 1577, 1593, 0, 1573, 1571, 0, 1582, 0, 1584, 1816, 0, 0, 0, 1536, 0, 1892, 1894, 0, 1818, 1405, 1616, 0, 1402, 0, 971, 0, 972, 997, 482, 0, 996, 1003, 1003, 469, 708, 460, 1159, 0, 622, 0, 287, 0, 272, 1155, 0, 774, 0, 785, 783, 0, 0, 0, 0, 1319, 0, 1320, 1321, 1324, 354, 357, 388, 398, 0, 381, 1095, 1099, 1098, 0, 0, 440, 473, 474, 475, 0, 442, 483, 484, 0, 718, 0, 723, 0, 0, 495, 645, 0, 0, 0, 1275, 0, 0, 0, 1281, 504, 500, 429, 403, 0, 1278, 0, 517, 0, 341, 1069, 1072, 1067, 1238, 0, 0, 558, 557, 649, 1797, 1874, 1860, 1887, 1872, 1903, 0, 0, 0, 1607, 1610, 0, 1575, 0, 0, 1583, 0, 0, 0, 1530, 0, 0, 1404, 989, 0, 0, 1000, 0, 708, 0, 991, 990, 476, 462, 1424, 333, 0, 0, 0, 781, 784, 772, 785, 792, 791, 666, 1424, 0, 401, 0, 466, 0, 0, 0, 485, 0, 486, 507, 0, 722, 0, 0, 779, 0, 0, 416, 697, 0, 1276, 506, 504, 1279, 1280, 0, 506, 1005, 1237, 1236, 1477, 0, 0, 2355, 2132, 2327, 0, 1905, 1908, 1906, 1900, 0, 1592, 1605, 1538, 0, 1537, 1895, 1896, 1616, 330, 1003, 0, 464, 480, 487, 265, 1424, 0, 0, 773, 261, 1322, 698, 492, 0, 491, 0, 489, 488, 719, 724, 620, 769, 1281, 701, 406, 506, 0, 1616, 1220, 1477, 1219, 1221, 1229, 1226, 1228, 1227, 1225, 1107, 1108, 0, 1912, 1911, 1910, 1914, 1913, 1611, 0, 1603, 1539, 1401, 973, 992, 0, 708, 273, 775, 782, 0, 490, 494, 493, 646, 1277, 703, 0, 699, 702, 704, 705, 404, 341, 978, 0, 1230, 1224, 1462, 1449, 0, 0, 0, 0, 481, 465, 0, 679, 0, 506, 1222, 1477, 0, 0, 1909, 0, 0, 700, 1616, 1223, 0, 0, 1604, 0, 979, 0, 0, 701, 0, 0, 0, 1105, 1106, 680 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 51, 52, 53, 54, 1417, 2283, 2168, 3003, 3004, 55, 56, 1413, 57, 58, 59, 60, 61, 62, 63, 1348, 64, 65, 943, 1538, 2294, 66, 2024, 726, 727, 728, 1847, 1848, 2231, 1849, 1836, 1234, 1671, 1367, 700, 701, 1330, 1368, 68, 69, 1228, 1827, 70, 71, 72, 1395, 1396, 1342, 1579, 3993, 4665, 2844, 2146, 3043, 2845, 2846, 73, 1465, 1466, 74, 75, 2971, 1509, 2262, 3533, 3534, 4027, 548, 2259, 4313, 4314, 4013, 4014, 4320, 4532, 4533, 2295, 1533, 3037, 3614, 2994, 4076, 2995, 4077, 2996, 4078, 2982, 3562, 3563, 3564, 2997, 4049, 4564, 2998, 2043, 4694, 2330, 1693, 1691, 4551, 3877, 3878, 4765, 4699, 4700, 4701, 4853, 4051, 3041, 3620, 4085, 4341, 2738, 635, 1559, 3146, 636, 2333, 580, 637, 2296, 81, 2324, 2325, 1436, 2176, 3538, 3126, 82, 963, 3389, 4397, 4606, 4607, 83, 217, 84, 1542, 85, 86, 2279, 2988, 87, 2060, 2755, 88, 89, 2783, 2784, 2785, 90, 91, 3411, 4260, 1397, 2833, 2834, 2835, 2836, 3436, 92, 1540, 1441, 2303, 93, 94, 95, 96, 97, 2448, 2449, 98, 2219, 99, 100, 101, 102, 103, 3468, 3960, 3591, 2871, 3010, 3589, 2297, 1550, 2315, 2316, 4065, 4360, 4575, 4362, 4901, 4902, 4334, 3367, 3891, 105, 106, 4044, 4045, 4706, 107, 2058, 108, 109, 110, 1517, 2271, 2272, 3539, 1511, 2265, 2266, 3601, 3602, 111, 2926, 112, 3944, 3945, 581, 4711, 4672, 4778, 113, 114, 3948, 3949, 115, 116, 117, 118, 119, 629, 1053, 1054, 1315, 1001, 120, 1944, 121, 914, 2953, 122, 1121, 2494, 4128, 123, 660, 1067, 1068, 2298, 125, 669, 2472, 671, 1706, 3128, 3129, 3687, 2434, 813, 126, 127, 2445, 2475, 128, 1335, 2034, 2035, 3872, 2299, 582, 1565, 2337, 2733, 4472, 4473, 4239, 4489, 2663, 3320, 130, 583, 1372, 2104, 2340, 3051, 2001, 2002, 2003, 3637, 2004, 3053, 2005, 1309, 2006, 3059, 3060, 3061, 3633, 3640, 3643, 4386, 4387, 131, 1370, 2102, 132, 133, 134, 1408, 845, 135, 595, 596, 136, 4544, 137, 975, 138, 4395, 139, 140, 691, 692, 1105, 1106, 141, 142, 2117, 3418, 143, 144, 145, 4867, 4909, 4910, 4911, 3648, 4815, 146, 4869, 1098, 148, 149, 150, 186, 878, 879, 880, 2300, 4379, 152, 153, 1331, 1332, 1333, 1334, 2029, 154, 155, 156, 157, 158, 159, 1521, 160, 161, 4521, 162, 163, 1484, 164, 1267, 1268, 165, 166, 543, 744, 1271, 1279, 167, 639, 1061, 1062, 1063, 1673, 168, 1101, 2460, 640, 1056, 170, 641, 1989, 2684, 3330, 3331, 3334, 4224, 3853, 642, 2681, 173, 1713, 2454, 2457, 2677, 643, 2689, 2690, 2691, 2692, 2693, 3337, 644, 662, 966, 2346, 645, 1195, 178, 179, 180, 754, 748, 749, 182, 1820, 2624, 678, 1286, 713, 714, 762, 3305, 1957, 1958, 1980, 1981, 1295, 1296, 1970, 1972, 2665, 1973, 2673, 1963, 3830, 4457, 4458, 4459, 4460, 4461, 4462, 4209, 1976, 1977, 1298, 1299, 1300, 1985, 183, 2628, 3285, 3286, 3287, 3807, 3808, 3822, 3818, 4193, 4443, 3288, 1096, 1306, 4201, 4884, 3289, 4434, 4435, 4623, 3825, 3296, 3328, 3027, 3028, 3029, 2007, 1608, 1003, 1196, 1004, 1622, 1197, 1592, 1006, 1198, 1199, 1200, 1009, 1201, 1202, 1203, 1012, 1584, 1611, 1204, 1205, 1602, 1619, 1620, 1662, 2533, 1207, 1208, 1209, 3291, 1210, 3762, 4159, 4148, 2554, 2555, 1843, 3758, 3230, 1815, 2614, 4466, 4640, 4641, 3270, 3788, 4176, 4432, 4745, 4822, 4823, 1211, 1212, 1213, 2611, 1811, 847, 1214, 3541, 1813, 2548, 2636, 2637, 1716, 1736, 2500, 2517, 2518, 2528, 3188, 2536, 2541, 3217, 3218, 2549, 2579, 1215, 2502, 2503, 3171, 1738, 1216, 1261, 1262, 1733, 2574, 1274, 1275, 746, 1224, 1217, 1218, 1707, 737, 4439, 538, 803, 2860, 1935, 882, 675, 1219, 1220, 1221, 1222, 1401, 818, 1023, 1024, 2370, 1241, 3474, 1238, 539, 797, 820, 2837, 540, 541, 799, 1940 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ #define YYPACT_NINF -4149 static const int yypact[] = { 5506, 25, 7646, -4149, -4149, 25, -4149, 63926, 465, 660, 29, 170, 13876, 64357, 70822, 748, 295, 14366, 25, 70822, 1573, 49703, 60909, 891, 70822, 1252, 1055, 49703, 70822, 71253, 1158, 1211, 837, 71684, 64788, 59616, 1124, 70822, 1330, 1162, 72115, 65219, 1237, 65650, 1055, 47127, 93, 1206, 72546, 70822, 2042, 1664, 1232, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 465, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 1606, -4149, 963, 2206, 1141, 777, 1241, -4149, -4149, -4149, 57461, 70822, 70822, 70822, 1455, 70822, 1357, 70822, 277, 57461, 53582, 66081, 1553, 1359, 43164, 72977, -4149, 52289, 70822, 70822, 73408, 70822, 112, 62202, 70822, 1519, 70822, 70822, 54013, 73839, 1593, 1617, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 70822, 11044, 1252, -4149, -4149, 70822, 1484, 57461, 70822, 1431, 70822, 1560, 70822, -4149, 70822, 1564, 74270, 430, 1183, 53582, 1483, 43609, 1622, 70822, 53582, 74701, 70822, 70822, -4149, -4149, 1670, 70822, 70822, -4149, 1778, 54444, 1025, 1810, 1960, 1807, 133, -4149, 66512, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 56599, 295, -4149, -4149, 57892, 70822, 1837, -4149, -4149, 75132, 89738, 1671, -4149, 707, 58323, 54875, 1988, 1678, 44054, 2030, 75563, 55306, 75994, -4149, -4149, 76425, -4149, 76856, 1768, 1837, 77287, 90157, 55737, -4149, 1892, 77718, -4149, 1658, 1675, 1696, 37535, -4149, -4149, -4149, 465, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 199, 1311, 331, 204, 345, -4149, -4149, 206, 207, 217, 199, 2101, 2101, -4149, 70822, -4149, -4149, 1311, 568, 1683, 1683, 1683, 1891, 851, -4149, 1683, 1829, -4149, -4149, -4149, -4149, 65650, -4149, 1711, 1252, 1716, 2121, 1752, -4149, -4149, -4149, -4149, -4149, 1780, 70822, 70822, 70822, -4149, -4149, 2139, 1754, 1990, 1751, -4149, -4149, -4149, 1956, 1967, 1977, 98, 1252, 1871, -4149, 2096, -4149, 2010, 26879, 26879, 1252, 66943, 78149, 216, 42731, 210, 67374, 1862, 1563, 2044, -4149, -4149, -4149, 127, -4149, 2284, 1881, 2130, 1751, 1617, 38837, -4149, 1896, 1380, 65650, -4149, -4149, -4149, 361, 2177, 27328, -4149, 70822, 1889, -4149, 1923, 1889, 1930, 1935, 1141, -4149, 5506, 70822, 1174, 1174, 2326, 1174, 1448, 1598, -4149, 2319, -4149, 2247, 2196, 65650, 1206, 225, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 1958, 1380, -4149, 229, -4149, 1257, 1966, 1382, 1404, -4149, -4149, 483, 70822, 2095, 333, 33, 2006, 67805, 2631, 1994, -4149, -4149, -4149, 2152, 359, -4149, -4149, -4149, -4149, 2305, 2348, 3282, 309, 68236, -4149, -4149, -4149, -4149, 70822, 70822, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 2045, -4149, -4149, 2048, 2370, 2264, 2338, 2217, 1492, 2266, 1130, 2387, 10528, 1411, 68667, 70822, 2352, 2406, 4723, 1710, 757, 2293, 895, 2400, 2258, 1152, 2429, 5907, 70822, -4149, 2357, 2471, 710, -4149, 801, -4149, 2191, 2333, 793, 57461, 2148, -4149, -4149, 70822, -4149, -4149, 90576, 2233, -4149, 727, 57461, -4149, 2354, 2205, 44499, 70822, -4149, 70822, -4149, -4149, -4149, -4149, -4149, 2292, 2466, 70822, 90576, -4149, 2436, 70822, -4149, 1683, 2358, 2200, 2603, 90576, 125, 70822, 1428, 2637, 70822, 2435, 1428, 2255, 78580, -4149, -4149, 1428, -4149, -4149, -4149, 70822, 70822, 2253, 1247, 2422, 1428, 2444, 2656, 2666, 2327, 2440, 771, 840, 179, 2561, 1428, 2307, 79011, 79442, 70822, 2311, 70822, 2646, 57461, 70822, 2572, -4149, 2438, -4149, -4149, 832, -4149, -4149, -4149, -4149, 2589, 1958, 807, 2590, 2282, 2594, -4149, -4149, -4149, 2331, -4149, 2331, 2331, 2290, 2290, 2460, 2294, 2605, -4149, -4149, -4149, 1906, 2331, 2290, -4149, 91414, -4149, 1435, 1505, -4149, 161, -4149, 2710, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 149, -4149, 1014, 1663, -4149, -4149, 2328, -4149, 2607, 1994, 2608, -4149, 2297, 79873, -4149, 80304, 80735, 2615, 2045, 53582, 2617, 2501, 2620, 2297, 2621, 2505, 2623, 807, 2625, -4149, 812, 2614, 2628, 2512, 2630, 161, 2632, 1700, 2297, 57030, 2635, 168, -4149, 29124, -4149, 2410, -4149, 1206, -4149, 874, -4149, 48841, -4149, 1696, 1311, -4149, 70822, 1311, 70822, 1311, 70822, 1311, 70822, 1311, 70822, 70822, 70822, 1311, -4149, -4149, -4149, 70822, 2329, 70822, 70822, -4149, -4149, -4149, 61340, 53582, 61771, -4149, 70822, -4149, 232, 1252, -4149, -4149, 90576, 2742, 53582, 2646, -4149, 1474, -4149, -4149, -4149, -4149, -4149, -4149, 2563, 70822, 2626, 2640, 61340, 53582, -4149, 81166, 56599, 2523, 2346, -4149, -4149, -4149, -4149, -4149, 1674, 2779, 208, 2793, 29124, 2359, 228, 228, 2360, 2652, -4149, -4149, -4149, 231, 2361, 2362, -4149, 241, 241, 2363, 2364, -4149, 246, 2365, 2367, 2818, 2819, 250, 2376, 2377, 2378, 1906, 228, 29124, -4149, 2381, 241, 2382, 2383, 2385, 2832, 2388, -4149, 2835, 2390, 329, 347, 2395, 2397, -4149, 2363, -4149, 230, 2399, 2403, 2407, 2408, 2409, 2413, 2414, 2415, 29124, 29124, 29124, -4149, -4149, 25532, 1380, 1252, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 254, 4686, -4149, 2445, -4149, -4149, 2599, -4149, -4149, 29124, -4149, -4149, 645, -4149, 255, -4149, -4149, -4149, 1380, 2670, 2416, -4149, -4149, 749, 2417, -4149, 1876, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 42300, 2839, -4149, 373, 1252, 801, 328, 2778, 41007, 41438, -4149, -4149, 2661, -4149, 70822, -4149, -4149, 29124, 46696, -4149, 1380, 187, -4149, -4149, -4149, 1580, -4149, -4149, -4149, 465, -4149, 14843, -4149, 1582, 1889, 70822, 70822, 2842, -4149, -4149, -4149, 1923, -4149, -4149, 1141, 1141, 29124, 1141, 1128, 1571, 27777, 29124, 2730, 2639, 235, 1331, 2731, -4149, 2634, 1448, 1598, 65650, 70822, 81597, 2557, -4149, 47558, 1444, 1380, 2524, 2525, 2575, 50565, 2447, 2531, 2532, 2583, -4149, 2691, -4149, -4149, 2536, 2539, 82028, -4149, -4149, 902, -4149, -4149, -4149, 902, -4149, 2475, 1552, 1246, 1060, 2542, 218, 811, 2836, -4149, 1229, 2596, -4149, -4149, -4149, 2732, 70822, 2780, 6245, 2664, 309, 2597, -4149, -4149, 2712, 2553, 2554, 2680, 309, 257, 82459, -4149, -4149, -4149, -4149, -4149, -4149, 2178, 24245, -4149, 2560, 2535, 2570, 70822, 58754, 358, 2678, 1360, 1538, 190, 2618, 70822, 1412, 2688, 70822, 2493, 2576, 2580, 2775, 2503, 1933, 2874, 2511, -4149, -4149, -4149, 419, 2684, -4149, 2788, 2817, 6389, 2564, 2578, 88900, 939, 44944, 70822, 70822, 2869, 1389, 2602, -4149, -4149, -4149, 1389, 70822, 2611, 2624, 70822, 309, -4149, 2929, 309, 309, 2041, 2938, 2629, 410, 1425, 1428, 2511, 2287, -4149, 2633, 2641, 275, -4149, 2729, -4149, -4149, 1213, 2636, 65650, 181, 1500, 2511, 2642, 2643, 2503, 2503, 70822, 70822, 70822, 70822, 70822, 184, 2952, 2953, 2645, 183, 2672, 2543, -4149, 52720, 2647, 78149, -4149, -4149, 70822, 2651, 1926, 2511, 1625, 1549, -4149, -4149, -4149, 1617, -4149, 70822, -4149, 70822, 1958, 90576, 2741, 2803, -4149, 2588, -4149, 1994, 309, -4149, 70822, 70822, 2045, 2750, 205, 828, 90576, 2752, 2810, 70822, 2811, 2598, -4149, 394, 47984, -4149, 2253, 2568, 2990, 70822, 50565, -4149, 3003, 902, -4149, 90576, 2770, 2889, -4149, 70822, 2787, 2581, -4149, 2924, 2644, -4149, -4149, 883, 70822, -4149, 2893, 53582, 1194, 1252, 2648, 53582, 2812, 70822, 70822, 70822, 70822, -4149, -4149, 2783, 1012, 107, -4149, 52720, -4149, 70822, 2798, 2287, 2800, 3010, 40, 1683, 82890, 2896, -4149, 83321, 2595, 3016, 90576, 2847, -4149, 1825, -4149, 2733, -4149, 57461, 807, -4149, -4149, -4149, -4149, 90576, 70822, -4149, 2606, -4149, -4149, 29124, -4149, -4149, -4149, 2101, -4149, 90576, 2331, 2331, -4149, -4149, 3027, 2692, 2693, 2101, -4149, 2101, -4149, 90576, -4149, 2619, 2622, 2737, 200, -4149, 2694, 2702, 2703, -4149, 2649, 2704, 2101, -4149, -4149, 1811, -4149, 83752, 57461, 807, 53582, 53582, 2925, 168, 2939, 2683, 2940, 2686, 44944, 807, 176, 70822, 70822, 53582, 70822, 70822, 70822, -4149, 70822, -4149, -4149, -4149, -4149, 90576, 70822, 70822, 90576, -4149, 53582, 52720, 2942, 2943, 807, 70822, 70822, -4149, 14843, 1607, 84183, 1696, 56168, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 70822, -4149, 70822, -4149, 70822, -4149, 70822, -4149, 70822, -4149, -4149, -4149, 70822, -4149, 70822, 1619, -4149, -4149, 1669, 687, 70822, 70822, 195, 57461, 70822, 2833, 70822, 70822, 70822, 70822, 70822, 2715, 2417, 1337, -4149, 849, 268, 65650, 2837, -4149, -4149, 1684, 2042, 1032, 70822, 1087, 1780, -4149, -4149, 61771, 60909, 2941, 142, 70822, -4149, -4149, 3086, 29124, 1380, 26430, -4149, -4149, 14843, 2685, 29124, 29124, 2658, 2101, 2101, -4149, 305, 29124, 29124, 29124, 2101, 2101, 3337, 29124, 44944, 29124, 32267, 22475, 29124, 29124, 25981, -4149, 29124, 2861, 33614, 29124, 328, 2862, 29124, 328, 3337, 3091, 3091, 1380, 1920, 5894, 2655, 1380, -4149, 248, 934, -4149, 272, 90576, 29124, 29124, 29124, 29124, 50565, 2736, 215, 70822, 29124, 2663, 1639, -4149, 29124, -4149, 2665, 29124, 2744, 817, 29124, 29124, 29124, 29124, 29124, 29124, 29124, 29124, 29124, 34048, -4149, 34931, 288, 2937, 2970, 550, 457, 69098, 26879, 2962, 21575, -4149, 284, 2962, -4149, -4149, -4149, 70822, 2839, -4149, -4149, 2746, -4149, -4149, -4149, -4149, -4149, 273, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 2669, -4149, -4149, -4149, -4149, 2669, -4149, 2673, 3122, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 2955, 2956, 807, 70822, 361, 62633, -4149, 27328, -4149, 1686, -4149, 2675, -4149, 2934, -4149, 2677, -4149, 5029, 2934, -4149, -4149, 327, 2795, 2930, 2877, -4149, -4149, -4149, 2690, 14843, -4149, 1660, 14843, 1749, -4149, -4149, -4149, -4149, -4149, -4149, 1161, -4149, 70822, 965, 2730, 1331, 2745, 804, 3120, 70822, -4149, 39271, 2897, -4149, 3107, -4149, 91414, -4149, 2714, -4149, 90995, 87631, -4149, -4149, 739, -4149, 1043, 2791, 2799, 2849, 53582, 70822, 70822, -4149, 50565, 53582, 70822, 70822, -4149, 53582, 70822, 70822, -4149, -4149, -4149, -4149, -4149, 49272, 628, 60909, 2852, 60047, -4149, -4149, 2720, 70822, 2782, 2976, 2977, 1057, -4149, -4149, 84614, -4149, 2926, 53582, 70822, 70822, 29124, 2936, 70822, 70822, -4149, 467, 2813, 2815, -4149, 70822, 2820, 57461, 2739, 70822, 70822, 90576, 2805, 745, 57461, 2786, 45389, 70822, 70822, 70822, 70822, 2870, 3042, 90576, 70822, 2991, 1388, 65650, 191, 2135, 2511, 2948, -4149, 1009, -4149, 53582, 70822, 2944, -4149, -4149, -4149, 46265, 3161, 2859, -4149, -4149, 85045, -4149, -4149, -4149, 1691, -4149, 53582, 53582, 70822, 7004, 70822, 1144, -4149, -4149, 90576, -4149, 70822, 70822, 70822, 2992, 70822, 63064, 85476, 85907, 88, 921, 2993, 70822, 63495, 2994, -4149, 2886, 70822, -4149, -4149, 50996, 53582, 70822, 906, 50565, -4149, -4149, 70822, -4149, 2954, 264, -4149, 70822, 2851, -4149, 2840, 2850, 70822, 192, 2150, 2511, 70822, 70822, 2761, 1709, 2853, 2898, -4149, 2965, 1040, 70822, -4149, 53582, 1073, -4149, 2914, 53582, 70822, 13665, -4149, -4149, 309, -4149, -4149, -4149, -4149, -4149, 70822, 70822, 309, 70822, 309, 1280, -4149, 53582, 70822, -4149, -4149, -4149, 70822, 7551, 70822, 70822, 70822, 70822, 53582, 70822, -4149, -4149, 1258, 1285, 1401, 1541, 2918, 70822, 3054, 70822, 86338, 53582, 70822, 70822, 70822, 1522, -4149, 2899, -4149, 53582, 1073, 7901, 70822, 70822, 2857, 2858, 189, 2945, -4149, -4149, -4149, -4149, -4149, -4149, 3032, 3199, 86769, 281, -4149, 3034, 3035, 2841, 2843, 3037, 70822, 281, 70822, -4149, -4149, -4149, -4149, 3036, 70822, 281, 3041, 281, 2995, 653, -4149, -4149, 1428, -4149, 2808, 1713, -4149, -4149, 29124, 90576, -4149, 1722, -4149, 2809, 1012, -4149, -4149, 50565, 70822, 126, 841, 3108, 59185, 1823, 3098, 70822, 2845, 70822, 3101, 1823, 70822, -4149, 1136, 60909, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 3100, -4149, 1252, 2253, 2253, 2253, 2253, -4149, -4149, -4149, -4149, 3004, 1086, -4149, 2826, 2253, 70822, 2927, 1823, 2827, 3118, -4149, 2287, 3121, 1346, 70822, 59185, 1855, 2846, 3019, 3234, 1683, 1252, 3043, 3013, -4149, 24664, 5684, 3022, 3074, 56599, 3114, 3119, 3136, -4149, 1958, -4149, 3256, -4149, 29124, 1733, 2844, 161, -4149, -4149, 2854, 2622, 2865, 2866, 2848, 2855, -4149, 2101, 203, 70822, -4149, -4149, 2856, 1191, 1001, 2968, 2101, 3058, 2864, -4149, 3160, 807, 1994, -4149, 2297, -4149, 70822, -4149, 70822, 70822, 70822, 70822, 2045, -4149, -4149, 3048, 807, 2297, 3051, 807, 807, -4149, 3104, 3055, 807, 161, 2297, 2981, 3164, 56599, -4149, 168, -4149, -4149, 29124, 3075, 1683, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 1753, -4149, 70822, -4149, 3138, 3140, 3141, 2867, 2871, 2906, 70822, 2872, -4149, 2867, 309, 2867, 2417, 2417, 2867, 2871, 53151, 3305, 3165, -4149, 2957, 2880, 3174, 162, -4149, 756, 829, 3102, -4149, -4149, -4149, -4149, 90576, -4149, -4149, -4149, -4149, -4149, 53582, 2921, 70822, 70822, -4149, 114, 3079, 2878, 53151, 3288, 807, -4149, 57461, -4149, -4149, 90576, 2963, 2980, 57461, 3094, 2947, -4149, -4149, -4149, -4149, -4149, 90576, -4149, 3137, 70822, 1759, -4149, -4149, 1470, -4149, 1550, 29124, 146, -4149, 11594, 1761, 29124, 2904, 2909, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 3193, 2910, 3205, -4149, 1767, 1775, 1782, 2912, 2913, 3406, 2915, 12290, 2916, 2919, 32267, 32267, 25532, 1199, -4149, 32267, 2920, 3097, 1822, 8082, 2923, 2922, 12575, 28226, 29124, 28226, 28226, 12652, 2923, 2928, 1828, 50565, 3095, 13171, 1830, -4149, 29124, 50565, 4355, 29124, -4149, 29124, 2932, 2935, -4149, -4149, 5178, 5178, 5178, 3337, -4149, 2946, -4149, 32267, 32267, -4149, 3159, 25532, -4149, -4149, 3215, -4149, -4149, 1853, -4149, 2949, -4149, -4149, 3479, 44944, 5951, 29124, 222, 29124, 2663, 29124, 3008, 5178, 5178, 5178, 520, 520, 355, 355, 355, 319, 457, 457, -4149, -4149, -4149, 2951, 2958, 2961, 3124, 2964, 29124, -4149, 1910, 1922, 70822, 2437, 2638, 2765, -4149, -4149, -4149, 35799, 2974, 29124, 29124, 29124, 2966, -4149, 2063, 14843, 747, -4149, 291, 2974, -4149, 1617, 2101, 934, 41869, -4149, -4149, 29124, -4149, -4149, -4149, 1923, -4149, -4149, -4149, -4149, -4149, 70822, 2042, 29124, -4149, -4149, 1969, 2959, 29124, 1660, -4149, -4149, 3001, -4149, 29124, -4149, -4149, -4149, 2417, -4149, 3163, -4149, -4149, -4149, 35799, 2984, 2987, 38403, 3139, -4149, 70822, -4149, 70822, 115, -4149, -4149, -4149, 2960, -4149, -4149, 87631, 1663, -4149, 90995, -4149, 90995, -4149, 1663, 3346, -4149, 87631, 1585, 53582, 70822, 70822, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 53582, 53582, 3146, 70822, 3144, 3148, 29124, 950, 70822, 2969, 2973, 1156, 3230, 70822, -4149, 3285, 807, -4149, -4149, 3056, -4149, 14843, -4149, -4149, -4149, -4149, -4149, 53582, 70822, -4149, 56599, -4149, 1958, 90576, -4149, -4149, -4149, 70822, 3009, 70822, -4149, 70822, 70822, 70822, 2045, -4149, -4149, -4149, -4149, 910, 90576, -4149, -4149, 70822, 70822, 134, 3057, 3059, 70822, -4149, 143, 2729, 8623, 70822, 70822, 70822, 3236, -4149, -4149, -4149, -4149, 3182, -4149, -4149, 87631, -4149, 2297, 109, 3061, 2511, -4149, 3173, -4149, 882, -4149, 3109, -4149, -4149, -4149, -4149, 3298, 807, 3299, 807, 70822, 70822, 70822, 70822, 3113, -4149, -4149, -4149, -4149, 3116, 3227, -4149, 50565, 50565, 50565, 1832, -4149, -4149, 1252, -4149, -4149, -4149, -4149, -4149, -4149, 3262, -4149, 1852, -4149, 1106, -4149, -4149, -4149, -4149, -4149, -4149, 53582, 70822, 8996, 70822, 70822, 70822, 1583, -4149, 1058, 90576, -4149, 89319, 53582, 70822, 70822, 3076, 53582, 3064, -4149, -4149, -4149, 3238, 3170, -4149, 197, 3176, 53582, 3071, -4149, 3084, -4149, -4149, 3099, 2260, 2511, 2287, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 1023, 186, 2317, 2511, 3106, -4149, 3110, -4149, -4149, -4149, 3244, 3246, 3247, 3112, 3115, 3151, 3125, 3126, 3156, -4149, 3128, 3157, 3129, 3167, 3130, 807, 90576, 3245, 1252, 3169, 3351, 807, -4149, 3133, -4149, -4149, 3454, -4149, 70822, -4149, 3134, 2427, 2511, -4149, -4149, 53582, 70822, -4149, -4149, -4149, 281, 90576, 70822, 3296, -4149, -4149, -4149, 281, 281, 70822, 70822, 281, 3307, -4149, 3308, 70822, 3313, -4149, 281, -4149, -4149, -4149, -4149, 2358, 3065, 40576, -4149, 3515, 6002, 3068, -4149, 50565, 40576, 1739, 1547, 368, 1428, 56599, 70822, 56599, -4149, 841, 3173, 70822, 70822, 3069, 3067, -4149, -4149, -4149, -4149, 53582, 167, 53582, 2101, -4149, -4149, 3145, -4149, 70822, 1683, 814, 3150, 3485, 2666, 1194, 3221, 1581, 3428, 2846, -4149, -4149, -4149, -4149, 70822, 70822, 1012, 1252, -4149, 3081, 3080, -4149, 70822, 70822, 70822, 70822, 70822, 2921, 3083, 3088, 90576, 72, 3274, 3283, 2503, 3507, 3402, 2042, 2846, 3175, 3405, 70822, -4149, 1860, 128, -4149, 1252, 56599, 88050, 3397, -4149, 5522, -4149, -4149, 209, 70822, 3387, -4149, -4149, 2042, 807, 90576, 1868, -4149, -4149, -4149, 2101, -4149, -4149, 1496, 1496, 3123, -4149, 3127, -4149, 3495, -4149, -4149, -4149, -4149, -4149, -4149, 3131, -4149, -4149, 70822, -4149, 807, 168, 3162, 807, 3166, 807, 807, 70822, -4149, 70822, -4149, -4149, 70822, 70822, -4149, -4149, 70822, 52720, 807, -4149, 14843, 3429, -4149, -4149, 3250, 3251, 3252, 70822, 2867, 57461, -4149, 3132, 53582, 1423, -4149, -4149, 3310, -4149, -4149, 65650, 3249, -4149, -4149, -4149, -4149, 3441, 3450, -4149, -4149, -4149, 237, -4149, -4149, -4149, 53582, 61340, 283, 53582, -4149, 1958, 3389, -4149, -4149, 1994, 309, -4149, 3393, 70822, 3394, -4149, -4149, -4149, 3147, 14278, 29124, -4149, 3466, 90576, -4149, 6567, -4149, -4149, 29124, -4149, 29124, -4149, -4149, -4149, -4149, -4149, 29124, -4149, 29124, 3451, -4149, 22925, 3588, 3588, 3168, 90576, 32267, 32267, 32267, 32267, 1231, 2382, 32267, 32267, 32267, 32267, 32267, 32267, 32267, 32267, 32267, 33165, 33165, 616, -4149, 3347, 29124, 29124, 3462, 3451, -4149, 90576, 3177, 2923, 3178, 3179, 29124, -4149, -4149, 1880, 34497, 3180, 50565, -4149, 29124, 11456, 1905, 3210, 14570, 1380, 7162, 3172, 1252, 29124, 2705, 3738, 29124, 1911, 29124, 3463, -4149, -4149, -4149, 3184, -4149, -4149, 90576, 29124, 3186, 3831, 32267, 32267, 4117, -4149, 4329, 29124, 25532, -4149, 3356, 3214, 39705, -4149, 23375, 3181, 1055, 1055, 1055, 1055, -4149, 70822, 70822, 70822, 36233, 3469, 35365, 69529, 3185, 1986, -4149, 69529, 69960, -4149, 3192, -4149, 3188, 1380, 29124, 3475, 789, 789, 3356, -4149, 29124, 29124, 28675, 3190, -4149, 3475, 801, 3191, -4149, -4149, 11138, -4149, -4149, 3195, -4149, 3194, -4149, 2959, 244, -4149, 7190, 3385, -4149, -4149, -4149, 3185, 29573, 3336, -4149, 1912, -4149, -4149, 3571, 3336, -4149, -4149, 1913, 39271, 2984, 27328, 1380, 1931, 1650, -4149, -4149, 87631, -4149, 3268, -4149, -4149, -4149, 2297, 2297, 1011, 2867, 3499, 1011, 7277, -4149, -4149, 36667, 70822, 70822, -4149, 70822, 1965, 1568, 70822, -4149, 70822, -4149, -4149, -4149, -4149, 3620, -4149, 70822, -4149, -4149, 3261, 3264, -4149, 70822, 70822, 70822, 70822, 3455, -4149, -4149, 1966, -4149, -4149, 53582, 70822, -4149, -4149, -4149, 219, 2430, 2511, -4149, 3290, -4149, -4149, 3467, -4149, 3609, 3300, 70822, 3213, -4149, 1568, 249, 2503, 785, -4149, -4149, 3284, -4149, 70822, -4149, 70822, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 3340, -4149, -4149, -4149, -4149, 50996, -4149, -4149, 70822, -4149, 50565, 40576, 50565, -4149, 1026, 398, 2465, 2511, -4149, 3297, -4149, 3301, 3302, 3348, 1027, 201, 3303, 3304, 3355, 3219, 3228, 3231, -4149, -4149, 3376, 70822, 2297, 3239, 3276, 199, 242, -4149, -4149, -4149, -4149, 242, 2297, 1252, 70822, 70822, 70822, 3640, 3328, 70822, 70822, 70822, 70822, 70822, 70822, 3544, 705, 1784, 53582, 70822, 70822, 53582, 70822, 70822, 70822, 70822, 70822, 70822, 70822, -4149, 3629, 3559, 396, 3599, 3319, 70822, -4149, 70822, 2729, 70822, 70822, -4149, -4149, -4149, 3255, 3502, 281, -4149, -4149, 3503, 3508, -4149, 281, 281, 3509, 281, -4149, 394, 50565, -4149, 3740, 3194, 2101, 419, -4149, -4149, -4149, -4149, -4149, -4149, 2808, -4149, -4149, 1882, -4149, -4149, 70822, 3257, 70822, 70822, 32267, -4149, 1471, 238, -4149, 3510, 70822, 3306, -4149, -4149, -4149, 3421, 70822, -4149, -4149, -4149, -4149, -4149, 3263, -4149, 3530, 59185, 2297, 53582, 53582, 2297, -4149, 90576, 3269, 2846, -4149, -4149, -4149, -4149, -4149, -4149, 53582, 3064, 53582, 1194, 1147, 87200, 3312, -4149, 3267, 3572, -4149, 3272, 3271, -4149, -4149, 70822, 3173, 1974, 2287, 3692, 53, 1658, -4149, 60478, 1855, 3530, -4149, -4149, -4149, 3658, 3369, -4149, 2042, 70822, 2921, 3369, 1252, 70822, 2782, -4149, 87631, 29124, 29124, -4149, 3286, -4149, 3291, 6258, -4149, 3360, 3289, 2253, -4149, -4149, -4149, -4149, -4149, -4149, 3372, 3309, 70822, -4149, -4149, 3311, -4149, 3314, -4149, -4149, -4149, -4149, -4149, -4149, 807, -4149, -4149, 70822, -4149, 70822, -4149, -4149, 807, 807, 807, 807, -4149, 3417, -4149, 70822, 70822, 70822, 70822, 2867, -4149, 309, -4149, 3593, 53151, -4149, -4149, 1980, 70822, -4149, -4149, -4149, 3649, 142, 3600, -4149, -4149, 3556, 298, 3558, 3561, 298, 3564, 298, -4149, 29124, 14843, -4149, 3315, -4149, 14843, 14843, 7750, 14843, 3462, -4149, 1981, 29124, -4149, 534, 534, 534, 1131, 3608, -4149, 875, 3317, 534, 534, 534, 515, 515, 357, 357, 357, 276, 616, 616, 14843, 14843, -4149, -4149, 3320, -4149, -4149, -4149, 2923, -4149, 30022, 3473, 3717, -4149, -4149, -4149, 3364, 3373, 3333, -4149, 29124, 30471, 3332, 91414, 3522, 934, -4149, 1446, 29124, 29124, 4666, -4149, 8160, 29124, 90576, 2008, 4666, 481, 29124, 4054, 4647, 29124, 29124, 4471, 8110, 3341, 29124, 88469, -4149, -4149, -4149, 2016, 29124, 70822, 70822, 70822, 70822, -4149, -4149, -4149, 69529, 69960, 3343, 23810, 1986, 3345, 70822, -4149, -4149, 3349, 35799, 3594, 3532, -4149, 35799, 3532, 1395, 3532, 3598, 3439, 40139, -4149, -4149, 3353, 3540, -4149, 21575, 1561, 14843, 3754, 3638, 29124, 3357, 3358, 3362, 14843, 14843, 29124, -4149, 1252, 3638, 1252, -4149, -4149, 44944, -4149, -4149, -4149, -4149, -4149, 3554, 14843, 26879, -4149, 2042, 70822, 1380, 86, -4149, 3377, 70822, -4149, 3336, -4149, -4149, 3432, 2021, -4149, -4149, -4149, -4149, -4149, 3445, 60909, 3654, -4149, 29124, 2025, -4149, 3404, 3751, 152, 2027, 2032, 1568, -4149, 3306, -4149, 1514, 3637, 164, -4149, 807, -4149, 90576, -4149, 70822, 70822, -4149, -4149, -4149, -4149, 70822, 2447, -4149, -4149, 70822, 70822, 70822, 70822, -4149, 53582, 70822, -4149, 50565, 1547, 3575, -4149, -4149, 3577, 199, 70822, -4149, 90576, 807, 807, -4149, -4149, -4149, -4149, -4149, 3388, 3776, 3464, 70822, 70822, 70822, 70822, 53582, 70822, 70822, 2101, 2101, 90576, 3379, -4149, 2101, 2101, 3380, -4149, 53582, 70822, 70822, -4149, -4149, -4149, 3458, -4149, 29124, 3768, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 53582, 70822, 3465, -4149, 3468, -4149, -4149, -4149, 70822, 70822, 70822, 70822, 3696, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 70822, -4149, -4149, 1252, 1252, 90576, 807, 807, -4149, -4149, -4149, 3653, 281, -4149, 281, 281, -4149, -4149, 281, -4149, 400, 2053, -4149, 37101, -4149, -4149, 2637, 1252, 2637, 1586, -4149, -4149, 2637, -4149, 2637, -4149, 1568, 243, 3698, 3702, 29124, -4149, 984, 1131, -4149, -4149, -4149, -4149, 3306, 1683, 3471, 57461, 1080, -4149, 3682, 126, 59185, 1409, 3412, 3531, -4149, 2297, 2297, 3472, 70822, 3830, 2297, 3276, -4149, 3625, 97, 70822, 3745, 3470, -4149, 1252, -4149, -4149, 2846, -4149, 2042, 70822, 59185, 2921, 2055, -4149, -4149, -4149, 3460, 3283, 1855, 752, 70822, -4149, 3461, 3843, -4149, -4149, 3721, 3622, 3435, -4149, 14843, 14843, 1252, 91833, 5522, 90576, 3735, -4149, 70822, 738, 3704, 807, -4149, -4149, 807, 807, -4149, -4149, -4149, -4149, 70822, 2867, 2867, 2867, -4149, 3634, -4149, -4149, 3691, -4149, 807, 53151, 298, -4149, -4149, -4149, 298, 298, -4149, 298, -4149, 14843, -4149, -4149, -4149, -4149, 8384, 32267, 3741, -4149, 3447, 90576, -4149, 3449, 2057, 2078, 33614, 3603, -4149, -4149, -4149, 8460, 3505, 14843, 3555, 3456, 3476, -4149, 4666, 4666, 8160, 2085, -4149, 4666, 29124, 29124, 4666, 4666, 29124, -4149, -4149, 8750, 3632, -4149, -4149, 8907, -4149, -4149, -4149, -4149, -4149, -4149, 51427, 69529, 3478, 70822, 1986, 35799, -4149, -4149, 1473, -4149, 35799, 3708, -4149, 35799, 57461, -4149, 70822, 3480, 70822, -4149, 747, 30920, 29124, 3500, -4149, -4149, -4149, 3356, -4149, 3500, -4149, 3481, 70822, 2416, -4149, -4149, 3834, 36667, 3794, 3483, -4149, -4149, -4149, -4149, 53151, 3659, 53151, 1568, 9030, 3306, 36667, 45834, 70822, 70391, 70391, 3617, 3306, 3471, -4149, -4149, -4149, -4149, -4149, -4149, 3484, -4149, -4149, -4149, -4149, 3557, -4149, -4149, 20, 2837, 2089, -4149, -4149, -4149, -4149, -4149, 3629, -4149, -4149, 40576, 53582, 70822, -4149, 3565, -4149, -4149, -4149, -4149, -4149, 37969, 44944, -4149, 1027, 3486, 3489, 201, -4149, -4149, -4149, 70822, 9203, 3490, 588, 2837, 70822, 70822, 1214, 1143, 1533, 2867, 3774, -4149, -4149, -4149, 3629, -4149, -4149, 281, -4149, -4149, -4149, -4149, -4149, 1428, 3816, -4149, 50565, -4149, 51858, -4149, -4149, -4149, 1252, -4149, 1252, 3693, 70822, 48410, 1252, 1252, 57461, 3908, 3908, 70822, -4149, 9499, 3697, -4149, 3471, 3716, 3762, -4149, 3496, 70822, 3657, 3498, 3501, 253, 253, 70822, 70822, 70822, 2093, 2042, -4149, 1194, 3809, 59185, 3173, -4149, 1443, 3504, 3811, -4149, 3917, 2921, 3083, 3506, -4149, -4149, 60478, 3701, 3369, 3283, 3639, -4149, 3643, -4149, 332, -4149, 2042, 70822, 70822, 36667, -4149, 90995, -4149, 2094, -4149, -4149, -4149, 3576, 2974, 3619, 3621, 3517, 70822, 770, -4149, -4149, -4149, -4149, -4149, 70822, -4149, 283, -4149, -4149, -4149, -4149, -4149, 1955, 32267, 90576, 2105, 29124, -4149, 29124, -4149, 3915, -4149, -4149, -4149, 608, -4149, -4149, -4149, 4666, 4666, 4666, -4149, 3918, 3356, -4149, -4149, 2114, 3936, -4149, 70822, 2116, -4149, 29124, 3521, -4149, -4149, 35799, 1473, 3523, 2122, 70822, 2124, 90576, 3525, 3524, 23, 3527, 22025, 3518, -4149, -4149, -4149, -4149, -4149, 14843, 14843, 70822, -4149, 3529, -4149, -4149, -4149, 70822, 2126, -4149, 622, 25083, -4149, -4149, 1423, 1011, 283, 3751, 3471, -4149, 3533, -4149, -4149, 70822, -4149, 1243, 1243, 70822, 3471, -4149, -4149, 70822, 3618, -4149, -4149, 50565, 3586, -4149, 809, 2837, 70822, 90576, 1994, 95, -4149, 90576, 90576, -4149, -4149, -4149, 29124, 3627, -4149, -4149, -4149, -4149, -4149, 70822, 70822, 70822, 70822, 70822, 807, -4149, 3065, 1252, -4149, -4149, 2137, -4149, -4149, -4149, 70822, 3267, -4149, 3267, -4149, -4149, 3908, 312, -4149, -4149, -4149, 1672, 3743, -4149, 880, 3728, 3628, 3535, -4149, 57461, 3990, 3530, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 2141, 3173, 3849, 2846, 3461, 70822, -4149, -4149, -4149, -4149, 29124, 3709, 2042, -4149, 1855, 3530, -4149, -4149, -4149, 3369, -4149, -4149, 3937, 3744, 3938, 2921, -4149, 2782, 2153, -4149, 6258, 91833, 90576, 3882, 3592, 3595, -4149, -4149, 3612, 70822, -4149, -4149, 3173, -4149, 1955, 2157, -4149, 2165, 2172, 3713, 3614, -4149, 29124, 1186, 3192, 51427, 3566, -4149, 2174, -4149, 14843, 70822, -4149, -4149, 29124, -4149, 2180, -4149, -4149, 29124, 3567, 29124, -4149, 30920, 3569, -4149, 3981, -4149, -4149, 2974, 36667, -4149, 3684, -4149, 3863, -4149, 70391, 3613, 44944, -4149, 2959, 2959, 1683, -4149, 1568, -4149, 70822, -4149, 29124, -4149, 3661, -4149, -4149, 2181, -4149, 975, 3729, 3875, 2187, 2203, 9541, 70822, 2871, 1533, 2871, -4149, 2867, -4149, -4149, -4149, -4149, 51858, 3267, -4149, -4149, -4149, 3902, 3846, -4149, -4149, -4149, -4149, 447, -4149, 3777, 3778, 70822, -4149, 3581, -4149, 2214, 3705, -4149, -4149, 70822, 3999, 4002, -4149, 591, 9849, 57461, 3461, 3283, 1855, 1547, -4149, 3779, -4149, 3780, -4149, 3591, 2846, 5522, -4149, -4149, 282, 3879, 3883, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 2923, 31369, 31369, 3596, -4149, -4149, 70822, -4149, 2216, 2221, -4149, 2229, 30920, 2235, -4149, 70822, 3601, -4149, -4149, 39271, 53151, 1243, 3602, -4149, 3597, -4149, -4149, 3716, 1568, 2837, 14843, 70822, 57461, 3992, -4149, -4149, -4149, 3729, -4149, -4149, -4149, 2837, 70822, -4149, 3725, -4149, 913, 913, 3940, -4149, 3656, -4149, -4149, 3604, -4149, 4050, 70822, -4149, 1027, 2042, 59185, -4149, 3606, -4149, 3369, 3283, -4149, -4149, 36667, 3369, -4149, -4149, -4149, 1934, 57461, 57461, 32716, 3747, 196, 11910, -4149, -4149, -4149, -4149, 2237, -4149, 3753, -4149, 2242, -4149, -4149, -4149, 1159, 283, 2959, 29124, 1568, -4149, 3728, -4149, 2837, 1994, 70822, -4149, -4149, -4149, 3470, -4149, 4037, -4149, 788, -4149, -4149, -4149, -4149, 3173, 3379, 3461, 50134, -4149, 3369, 2244, 2974, -4149, 1718, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 3623, 3624, 4029, -4149, -4149, -4149, -4149, -4149, -4149, 3626, -4149, -4149, -4149, -4149, -4149, 10457, -4149, -4149, -4149, -4149, 3923, -4149, -4149, -4149, -4149, -4149, -4149, 2251, -4149, -4149, -4149, -4149, -4149, 2846, -4149, 1899, -4149, -4149, 2002, 1935, 3699, 3906, 31818, 29124, -4149, 1568, 3782, -4149, 50134, 3369, -4149, 1718, 3737, 3742, -4149, 10645, 57461, -4149, 2974, -4149, 3667, 3670, -4149, 3636, -4149, 3916, 3928, 50134, 57461, 57461, 2272, -4149, -4149, -4149 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { -4149, -4149, -4149, 3334, -4149, -827, -1119, 2627, -1751, -4149, -4149, -4149, 3240, -4149, -4149, -4149, -4149, -4149, -4149, -4149, 3275, -4149, -4149, 1805, -2219, -4149, -4149, 139, 3208, -1193, 135, 2860, 1452, -4149, -1039, -4149, -4149, -534, 113, -4149, 3241, -674, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -734, 1951, 1294, -313, -3868, -4149, -4149, -1309, -2906, -4149, 663, -4149, -4149, 1888, -4149, -4149, -4149, 1135, 576, -420, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -204, -4149, -4149, -574, 154, 46, -2247, -250, -4149, -4149, 543, -247, -1222, -4149, -3278, -4149, 90, -4149, -4149, -4149, -222, -1296, 1396, -4149, -650, -1070, 1704, -638, -4149, -104, -4149, -707, -567, -565, -653, -3454, -3457, -3892, -3491, -3179, 1402, 158, -2846, -2913, 163, 516, -4149, 165, 166, -4149, 530, -739, -1336, -4149, -710, -4149, -4149, -4149, -2711, -4149, -4149, -4149, -4149, 68, -4149, -4149, -4149, -4149, 573, -4149, -4149, -4149, -4149, -4149, -4149, -2467, 1861, 1863, -4149, -4149, -2908, -4149, -812, -4149, 709, -2729, 1314, -4149, -4149, -4149, 2609, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -1463, -4149, -4149, -4149, -4149, -4149, 555, 89, -4149, -4149, -4149, -4149, 171, -4149, 1873, 1126, -4149, -4149, -4149, -697, -789, -768, -4149, -2712, -4149, -4149, -4149, -4149, -188, -4149, -4149, -4149, -4149, -4149, -4149, -888, -4149, 1177, -2854, -4149, -4149, 1184, -4149, -4149, -4149, -4149, -4149, -642, -122, 2657, -4149, -512, -617, -4149, -4149, -4149, -121, -4149, -4149, -4149, -4149, -4149, -4149, -976, -119, -956, -476, -4149, -4149, -4149, -4149, -2083, -4149, -4149, -4149, -3377, -4149, 4138, 847, 1123, 173, -4149, -27, 84, 3077, -1053, -2416, 480, -310, -4149, -1660, -4149, -4149, -4149, -2315, -4149, -4149, -4149, -4149, -3229, 175, -4149, 3070, -4149, -3480, -4114, -3234, -3691, -4030, -4148, -3202, -4149, -4149, -1010, -4149, -4149, -4149, -1317, 2167, -1776, -4149, -1924, 541, 1468, -851, -2510, -3486, -625, -2983, -4149, -4149, -3414, -419, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -1029, -532, -4149, -4149, 3610, -4149, -4050, -4149, 3568, -4149, -4149, -4149, -4149, 2468, 2469, -4149, 2472, -4149, -4149, -1294, 1263, -4149, -4149, -4149, -4149, -4149, -623, -730, -4149, -4149, -4149, 177, -4149, -4149, -4149, -4149, 2108, -832, -658, 3474, 178, -3731, -4149, -4149, -1024, -4149, 2875, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -2003, -4149, -4149, -4069, -4149, -4149, -4149, -4149, -4149, 2252, 2250, 87, -24, -4149, -4149, -1168, -4149, -488, -4149, 2537, -4149, -4149, -4149, -4149, 1546, 180, 598, -4149, 4, -4149, -4149, -4149, 356, -4149, -4149, -3131, 6, -4149, -4149, -4149, -4149, -4061, -4149, 7, -551, 876, -4149, -4149, -2549, -4149, 182, 14, -4149, -4149, 2, 3, -38, -35, -13, 5, 132, 2950, -4149, 2988, -4149, 0, 1705, -4149, -4149, -736, -145, -4149, 1556, -571, 2230, 2933, 2931, -4149, 1548, -4149, -4149, 1551, -4149, 914, -535, -418, -4149, -4149, -4149, -4149, 382, -569, 2238, -4149, 2971, -4149, -4149, -4149, -1672, 1543, -3124, 942, -3133, -3088, 429, 415, -1320, -213, 31, -688, 2978, -4149, -4149, 953, -386, -4149, -4149, -384, -2553, 898, -4149, -4005, -2100, -309, 2659, -957, -4149, -4149, -896, 12954, -4149, -4149, -4149, 14385, 14454, -4149, -4149, 15303, 15533, -4149, -788, 1157, 15909, 12573, -947, -1717, 67, 13175, -2254, -950, -2290, -4149, -3249, -2108, -4149, -4149, -4149, -176, 1008, 656, -4149, -4149, -4149, -4149, 27, -4149, -513, -4149, -511, -4149, -4149, -4149, -498, -3932, 2433, -4149, -4149, -4149, -171, -4149, 16718, 1592, -4149, -924, -2493, -2506, -3120, -1630, -4149, -4149, -4149, -4149, -4149, -4149, -4149, -1328, -3016, -2119, 1662, -4149, -4149, 1756, -4149, -4149, -4149, -1178, -763, -1129, 1668, -1829, -4149, -743, -4149, -683, 2442, -703, 5666, -1237, 6665, -462, -2065, -1131, -1415, -4149, -177, -4149, 15, -16, -1, -113, -149, -518, -4149, 3021, -1444, 3025, 3695, 8184, -557, -1204, 9216, 11654, 12648, -2813 }; /* 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 -2409 static const yytype_int16 yytable[] = { 597, 1635, 176, 177, 171, 181, 172, 174, 705, 676, 795, 1625, 753, 1229, 549, 1690, 1087, 1088, 1089, 814, 664, 537, 1093, 177, 1670, 181, 664, 1307, 587, 1301, 846, 1225, 938, 1310, 763, 2993, 663, 969, 2435, 1598, 2042, 1951, 663, 1470, 739, 2634, 1440, 1482, 819, 1629, 1531, 1263, 1604, 752, 2105, 853, 1936, 3151, 579, 1621, 967, 1552, 2564, 1726, 1772, 1247, 870, 1512, 2233, 800, 802, 3395, 3013, 806, 736, 808, 3642, 1064, 2700, 2702, 1030, 2113, 3571, 2140, 1941, 628, 3306, 2123, 1588, 1589, 2320, 852, 2862, 923, 3412, 867, 1519, 1035, 1597, 2188, 1524, 3431, 869, 3433, 2499, 1528, 670, 638, 1050, 2923, 1936, 3597, 3880, 67, 1535, 1954, 3845, 1400, 1435, 706, 2655, 1576, 3612, 1434, 1554, 3299, 3549, 3879, 3874, 1449, 3132, 1663, 1941, 3915, 4089, 3775, 3297, 3298, 1475, 3336, 3625, 977, 757, 2202, 2203, 1058, 765, 4042, 4092, 1047, 2338, 4098, 2639, 2198, 76, 2112, 3821, 4081, 77, 3804, 3543, 4082, 969, 78, 2961, 79, 80, 3543, 766, 699, 2098, 104, 2965, 124, 2967, 129, 733, 147, 151, 725, 169, 751, 175, 2015, 764, 1237, 3342, 3609, 1369, 4372, 4240, 1294, 2405, 1297, 1585, 1586, 1471, 4448, 4497, 4450, 3819, 3742, 593, 3858, -2169, 1596, -2204, -2225, 646, 646, 4490, 1609, 646, -1681, 1551, 593, 1577, -2253, 547, 2124, 3006, 593, 4238, 1577, 2214, 2209, 2699, 1604, 4523, 4524, -2075, 1577, 4516, -1681, -2076, -1676, -2408, 3631, -2075, -2075, 2317, 863, -2076, -2076, -2408, -2408, -1648, 593, 4671, 1588, 1589, -1661, 742, 2115, 2572, -1688, 1117, 646, 2115, 593, 593, 2572, 2196, 2115, 2115, 2945, 1507, 3483, 1597, 4594, 1775, 1942, 3149, 2627, 3169, 4247, 3191, 3192, 593, 4558, 593, 3212, 4545, 1515, 2985, 1249, 593, 3194, 2450, -2038, -1681, 2115, -1676, 959, 2328, 1002, -2037, 2432, -1924, 2048, 593, 3136, 3391, 593, 2026, -1924, 2474, 4073, 2509, 4813, 593, 2778, 2273, 1398, 2608, 545, 1002, 3396, 646, 3243, 3244, 2609, 3098, 3644, 3100, 1233, 4132, 4559, 4134, 3616, 1782, -2102, 2850, 3577, -1691, 4560, 646, 3290, 1577, 3693, 646, 4656, 4657, 1975, 4222, -2172, 1585, 1586, 4878, 4038, 4690, 2328, -1691, 1672, 646, 1345, 4496, 1069, 2045, 1788, 4636, 3946, 652, 4561, 652, 652, 1782, 1498, 3194, -824, 2093, 1073, 1596, 918, -2224, 652, 1833, 1398, 593, 811, 3407, 1345, 646, 1290, 653, 2779, 653, 653, 4588, 1790, 3290, 3, 4, 846, 3846, 1788, 4589, 653, 4500, 593, 184, 2318, 3645, 4330, 184, -613, 2247, 2451, 2764, 2510, 2818, 1841, 1711, 933, -131, 1482, 2289, 2882, 933, -131, 3995, 972, 859, 2149, 3221, 1790, 3223, 3224, 646, 933, 2115, 1021, 1776, 4331, 921, 2321, 4526, 4562, 924, 2116, 3996, 846, 4667, 185, 4632, 3408, 3471, 185, 860, 932, 2986, 1842, 1292, 3847, 941, 960, 949, 2094, 2430, 1346, 1823, 3947, 2436, 2248, 2438, 951, 2819, 2441, 1782, 2245, 2115, 2882, 4243, 1578, 1747, 1627, 4814, 2511, 4879, 3694, 1578, 4585, 1834, 2241, 3578, 1346, 1314, 4039, 1578, 652, 4691, 2329, 4689, 3916, 969, 2275, 2749, 1788, 1943, 2125, 1250, 3137, 594, 652, 4074, 1336, 969, -1944, 3565, 961, 2126, 653, 2127, 1636, -1944, 962, -391, 1658, 1264, 3292, 1265, 2851, 3396, 2139, 2191, 653, 3194, 1790, 2433, 915, 2952, 1782, 928, 2987, 3392, 1837, 2512, 4223, 3646, 2513, 1850, 1850, 1126, 2782, 743, 3194, 1407, 4127, 4357, -2409, -2409, -2409, 4590, 1092, 2197, 2496, 2215, 2501, 2319, 3484, 1788, 4788, 4248, 969, 2787, 2857, 1251, 3632, 2128, 1092, 3338, 991, 3292, 1708, 2573, 2946, 1516, 1674, 968, 597, 1113, 3259, 1489, 2570, 1718, 2210, 1730, 3930, 2452, -2224, 1790, 2049, 3906, 1835, 2496, 1578, 753, 1627, 1941, 1727, 1610, 1259, 1504, 3647, 2184, 1260, 2186, 2453, 4563, 1337, 4784, 1514, 913, 1583, 1065, 4836, 1605, 2084, -1924, 2423, 1302, 50, 4763, 1660, 2267, 4373, 4338, 3194, 3543, 2193, 1516, 1627, 2514, 1583, 2610, 2236, 177, 752, 181, 812, 658, 659, 1712, 2086, 3472, 1941, 1066, 2368, 1071, 2232, 1075, 2092, 3884, 3080, 4165, -2224, 1079, 1239, -2169, -1681, -2204, -2225, 663, 2353, 663, 1099, 663, 3360, 3821, -2224, 2155, -2253, 663, 1080, 1081, 1082, -2075, 4057, 1057, -1681, -2076, -1676, -2408, 2409, 4389, 969, 4190, 1712, 1606, 3472, 4194, 1118, 1587, 969, 969, 2562, 4863, 1591, 4069, 1226, 4138, -1688, 1235, 968, 1240, 1778, 1821, 1486, 1237, 1095, 4841, 4088, 4184, 2174, 1405, 1406, 2177, 2178, 1493, 765, 2431, 1060, 4846, 3210, 2642, 2377, 1643, 1347, 846, 2442, 1986, 4227, 1987, 1259, 1653, -2038, 2515, 1260, 3686, 2166, 1661, 766, -2037, 4826, 2169, 2101, 1599, 2260, 2261, 4406, 658, 1399, 2516, 4407, 4408, 1338, 4409, 764, 176, 177, 171, 181, 172, 174, 1599, 1600, 1810, 1266, 658, 659, 1095, 3934, 658, 659, 588, 3344, 2750, 3345, 2664, 3566, 1601, 4891, 1566, 1600, 2242, -2102, 658, 659, 2788, 1339, 4652, 1715, 929, 3593, 3200, 1506, 4312, 3838, 1603, -2172, 1305, 1809, 1810, 3209, 3210, 2534, 2356, 2357, 2495, 1018, 2498, 2969, 1936, 2552, 658, 1399, 2505, 1529, 1530, 1340, 1239, 4482, 2520, 2521, 2522, 1415, 4806, -1944, 4492, 1491, 1269, 3609, 2538, 2540, 4028, 1454, 3866, 2550, 1563, 4713, 3584, 4789, 663, 1351, 1818, 4073, 1416, 2762, 2427, 1543, 4616, -131, -131, 2634, 2634, 2634, 1232, 1084, 3977, 2858, 1244, 1825, 1577, 2592, 1547, 3517, 4374, 4647, 661, 67, 2615, 542, 3521, 3522, 661, 1455, 3525, 2162, 4375, 1276, 1570, 4584, 1341, 3530, 1548, 2714, 4876, 3918, 2804, 1544, 1645, 767, 3523, 3524, 2050, 3138, 4393, 4896, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1319, 2249, 2098, 1631, 1633, 76, 2331, 874, 2682, 77, 4862, 1329, 1459, 544, 78, 2050, 79, 80, 1460, 4515, 1826, 3309, 104, 3585, 124, 1646, 129, 1571, 147, 151, 2847, 169, 4436, 175, 4104, 685, 3721, 3722, 3723, 3724, 2724, 2250, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3206, 3207, 3208, 3209, 3210, 1806, 1807, 1808, 1809, 1810, 4849, 1479, 768, -2409, -2409, -2409, 3880, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 1320, 1329, 4928, 2446, 4805, 3880, 3383, 2188, 2722, 3290, 2593, 3290, 699, 1444, 4142, 2594, 4143, 2439, 2440, 2616, 3879, 2704, 875, 3779, 3780, 3586, 3413, 2778, 1776, 760, 4604, 3978, 2036, 2840, 4648, 3339, 2428, 1085, 686, 1461, 3052, 2725, 1572, 4414, 2970, 589, 3384, 3919, 1456, 1569, 1321, 2595, 1549, 968, 4376, 4897, 1612, 4695, 4617, 1598, 4802, 1627, 1545, 876, 673, 968, 3551, 3540, 2429, -2035, 2707, 760, 4437, 2051, 3540, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 4493, 2841, 2447, 4440, 177, 1019, 181, 3290, 4444, 2983, 1573, 4446, 2874, -1648, 663, 590, 3454, 1714, 1676, 2779, 1678, 1647, 1680, 2038, 1682, 1492, 1684, 1685, 1686, 3554, 4721, 3139, 877, 1688, 2159, 758, 1819, 2251, 2390, 4707, 968, 2039, 1613, 2763, 2382, 1064, 4728, 4394, 4343, 4726, 591, 3642, 592, 2355, 1612, 1578, 2351, 2395, 2791, 4718, 1457, 1322, 2311, 4719, 4899, 4144, 1480, 1735, 3638, 39, 3880, 2052, 2404, 3920, 1546, 1126, 3921, 2044, 3194, 3587, 1388, 4666, 3195, 3196, 3197, 3140, 1744, 2842, -1648, 2875, 4696, 4850, 753, 1574, 2596, 4549, 759, 687, 4368, 4233, 4364, 1614, 43, 1462, 1615, 2045, 4605, 769, 3868, 3292, 2025, 3292, 2403, 2415, 2237, 1648, 1777, 1760, 2286, 3385, 3455, 4261, 1613, 3941, 711, 1779, 685, 2705, 3414, 2253, 2706, 2252, 3123, 1773, 688, 689, 1284, 1463, 3303, 1822, 2876, 2312, 47, 1126, 3588, 2792, 3194, 2160, 2276, 2675, 3195, 3196, 3197, 554, 3415, 48, 4344, 2526, 4697, 3141, 1091, 4851, 968, 760, 4336, 1240, 1840, 1464, 3087, 3558, 968, 968, 2139, 2040, 846, 4775, 49, 2782, 1259, 2820, 3831, 1614, 1260, 1947, 1615, 4852, 4650, 1955, 1956, 3292, 1960, 2683, 1481, 593, 2877, 2342, 663, 1616, 4807, 2349, 1627, 663, 663, 1326, 2134, 1327, 686, 3559, 2350, 766, 766, 2161, 766, 3386, 1961, 2660, 2908, 2674, 2292, 712, 1002, 3560, 2909, 3942, 690, 764, 764, 2287, 764, 4611, 3481, 1285, 2364, 3932, 561, 2821, 4035, 4776, 2843, 4653, 2046, 4720, 1092, -1648, 2676, 561, 2036, 4226, 2381, 4659, 4812, 4861, 2385, 2917, 2220, -981, 4864, 4628, 2391, 2392, 952, 3838, 1665, 2037, 1616, 1666, 3456, 4213, 3199, 4206, 1305, 2204, 2205, 2206, 2207, 2041, 2400, 1616, 3869, 1002, 3023, 2408, 2869, 3228, 2054, 3024, 2878, 761, 3725, 3235, 3726, 953, 563, 2293, 2055, 3482, 2661, 3101, 3933, 3084, 3457, 1617, 1964, 563, 663, 1962, 3095, 4906, 4436, 3561, 3870, 2803, 663, 2243, 2244, 3198, 4124, 2179, 3943, 2038, 2910, 4669, 2256, 954, 2291, 4674, 4675, 3200, 2304, 2313, 3458, 3871, 2270, 3880, 2348, 3014, 3199, 2039, 1420, 1965, 2220, 2465, 2314, 1319, 3096, 561, 707, 687, 4760, 2870, 1081, 4501, 2079, 677, 3018, 3019, 3020, 3021, 3085, 2192, 2306, 2307, 2308, 2309, 3070, 683, 3026, 3238, 4932, 955, 2889, 2972, 1421, 4005, 663, 2888, 684, 663, 663, 4008, 4009, 1617, 4011, 2380, 688, 689, 4572, 4522, 4579, 2736, 4767, 4768, 3543, 1782, -2058, 3200, 2879, 2901, 34, 846, 3682, 1618, 2890, 563, 2880, 652, 39, 2881, 969, 2565, 2893, 3727, 2895, 2195, 2383, 1290, 4743, 3406, -1648, 3312, 1320, 3728, 3034, 1627, 1469, 2940, 3355, 653, -1648, 2263, 1587, -1648, 1314, 3068, -1648, 184, 1967, 2056, 571, 43, 572, 4068, 2220, 4744, 2737, 663, 2180, 3863, 2181, 571, 574, 572, 1790, 3540, 1616, 2394, 3290, 814, 2397, 2301, 3290, 576, 1329, 2634, 1532, 1311, 2911, 1329, 2402, 2040, 1321, 2057, 710, 3706, 2768, 1532, 2732, 2410, 185, 47, 2934, 3441, -414, 4347, 1292, 930, 1460, 931, 2736, 2188, 3812, 1968, 2778, 2914, 4519, 3442, 2719, 3880, 3811, 1312, 2912, 3341, 2131, 1415, 3201, 3202, 3203, 3295, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 4520, 2534, 2534, 846, 4036, 3813, 2534, 1250, 1293, 1416, 2800, 4348, 2915, 50, 1313, 2913, -987, 1290, 2132, 2657, 4196, 4108, 1291, 4109, 3, 4, 3485, 2354, 3363, 3193, 3815, 2115, 3551, 734, 571, 3338, 572, 2362, 3552, 2363, 2122, 3222, 2916, 4547, 2534, 2534, 2369, 4244, 1322, 3553, 4519, 2779, 2650, 3812, 2376, 4888, 2041, 3201, 3202, 3203, 1532, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 4037, 1461, 3675, 4520, 2141, 1251, 3246, 1316, -414, 3554, 745, 3555, 4709, 2780, 632, 3813, 4712, 755, 1292, 1113, 3366, 177, 2657, 181, 2575, 1412, 1388, 874, 39, 1323, 3814, 4725, 3887, 2119, 14, 2120, 1437, 3046, 4603, 756, 3815, 1317, 2417, 4245, 2418, 3272, 2419, 2781, 2420, 770, 2421, 2471, 34, 4736, 2422, 3292, 2872, 1293, 2030, 3292, 2918, 43, 4405, 1324, 3817, 3816, 19, 34, 2031, 2009, 1438, 1318, 2464, 177, 2461, 181, 2462, 2463, 1469, 2141, 3125, 874, 2519, 3617, 4441, 2032, 3621, 3556, 807, 1516, 2919, 2121, 3382, 1325, 3343, -1462, 2455, 805, 3642, -1498, 2707, 47, 2185, 2010, -1498, 2444, 1060, -1462, 3888, 2760, 2507, 2508, -1462, 2580, 48, 2581, 4573, 2523, 2524, 875, 828, 2775, 1326, 4663, 1327, 1070, 1072, 1074, 2273, 1964, 1076, 1077, 1078, 2011, 4660, 49, 3887, 632, 2582, 969, 1083, 2782, 3817, 2142, 3557, 1627, 2563, 4574, 2578, 3558, 50, -2058, 2493, 873, 4346, -153, -1462, 14, 2805, 827, 876, 2470, 3064, 3889, 2377, 3890, 1965, 4478, -1498, 4480, 2143, 1439, 1328, 875, 4811, 2643, -1462, 2199, 4692, 2874, 4367, -153, 1259, 4325, 4251, 4252, 1260, 3559, 4326, 19, 561, 3685, 4599, 2144, 4355, 2145, 1415, 2228, 865, 2999, 2920, 3560, 934, 969, 935, 1599, 1655, -1498, 3451, 2229, 917, 877, 3888, 3716, 876, -1462, 2711, 1416, 2142, 1966, 2033, 2715, 4442, -1462, 1600, 2718, 3113, 1656, 31, 2139, 2921, 3686, 4327, 952, 2230, 920, 2583, 2756, 3681, 1601, 4411, 2584, 3452, 3743, 814, 2143, 2585, 4735, 563, 3290, 2226, 2742, 846, 3304, 3290, 39, 2875, -520, 3374, 3290, 1415, 1246, 3290, 1967, 953, 877, 1599, 3889, 2144, 3890, 2145, 1242, 3453, 3165, 4308, 1599, 4309, 4310, 2412, 1720, 4311, 1416, 1721, 939, 2227, 1600, 3290, 1850, 43, 3561, 3979, 922, 1829, 2793, 1600, 925, 3595, 2758, 2759, 3290, 4770, 4519, 4898, 3885, 2139, 3598, 2770, 2876, 2772, 1603, 933, 3980, 2776, 2977, 3607, 2666, 1126, 28, 1968, 3194, 1594, 1595, 4520, 3195, 3196, 3197, 3397, 3248, 47, 3249, 829, 663, 633, 2671, 2672, 1450, 3307, 830, 831, 832, 2838, 48, 955, 958, 2685, 177, 2799, -1462, 3417, 947, 3550, 31, 3250, 3166, 4923, 3024, 3000, 2726, 3167, 2729, -519, 2877, 49, 1259, 974, -2038, 968, 1260, 4322, 1451, 4324, 933, 2586, 1452, 4328, 2884, 4329, 634, 39, 3962, 3754, 2723, 2587, 3348, 3963, 1945, 1269, 1948, 1946, 1587, 1949, 2016, 956, 2896, 571, 3073, 572, 663, 957, 1453, 39, 4161, 1017, 2634, 2906, 3400, 4838, 2873, 2634, -1462, 3257, 43, 2411, 2496, 2634, 2412, 2891, 2930, 1025, 3094, 577, -1462, -1522, -1522, 2424, 933, -1462, 2425, 3811, 3301, 3302, 3292, 1240, 43, 3103, 1031, 3292, 3105, 3106, 1026, 969, 3292, 3109, 3110, 3292, 4759, 3290, 1042, 3865, 3114, 3696, 47, 1051, 2878, 1587, 3251, 2016, 3907, 3917, 3922, 3252, 2937, 1055, 646, 48, 2786, 218, 1587, 3292, 1314, -1462, 546, 2951, 47, 2426, 3447, 1734, 2425, 50, 630, 2960, 3292, 2962, 3656, 3657, 49, 48, 1086, 2964, 2458, -1462, 2656, 2459, 3001, 2657, 2179, 2797, 708, 3812, 2798, 50, 3701, 1090, 3143, 3935, 2141, 1094, 49, 3290, -2409, 3567, 4610, 2141, 1103, 2864, 3153, 2496, 2865, 2974, 1097, 1100, 2975, 50, -1231, 3155, -1231, 1102, 2978, 3813, -1462, 2979, 4919, 4865, 28, 1110, 3161, 3002, -1462, 3071, 1104, 1111, 2412, 1675, 3814, 663, 1677, 1112, 1679, 2131, 1681, 969, 1683, 663, 3815, 663, 1687, 3856, 1113, 3117, 3352, 3353, 2425, 3036, 2879, 3164, 4091, 3173, 2412, 3200, 2412, 1114, 2880, 3180, 3373, 2881, 2412, 2954, 4527, 3816, 2132, 3181, 1115, 3316, 2412, 2954, 1352, 3253, 3182, 1116, 2847, 2412, 3931, 2954, 2344, 2954, 2345, 3254, 1119, 2534, 2534, 2534, 2534, 1120, 2225, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 1587, 39, 2016, 1353, 3718, 3097, 1122, 3099, 3039, 2180, 3040, 2181, 3214, 3292, 3273, 2412, 3274, 3752, 3227, 4886, 3232, 2412, 3434, 3233, 4568, 3435, 3275, 3017, 3276, 2142, 3882, 3883, 3130, 1245, 43, 4029, 2142, 4030, 3154, 3748, 3817, 3699, 3439, 1248, 3158, 3440, -1462, 2534, 2534, 4908, 3629, 3052, 1253, 3630, 3144, 4079, 2143, 3047, 3654, 4385, 1354, 2412, 3130, 2143, 1252, 968, 4015, 3035, 177, 3290, 3749, 1254, 1270, 3750, 47, 3292, 3015, 1258, 1423, 2144, -1461, 2145, 1277, 3540, 4835, 3791, 2144, 48, 2145, 4924, 3466, 4925, -1461, 1355, 3290, 3759, 3583, -1461, 3760, 2141, 3476, 3771, 3854, 3859, 2412, 3855, 3860, 1259, 49, 39, 1280, 1260, 1278, 3163, 2141, 2139, 1288, 4938, 3079, 3081, 1280, 3864, 2139, 4866, 2706, 1281, 1424, 3090, 1356, 968, 3201, 3202, 3203, 1304, 3204, 3205, 3206, 3207, 3208, 3209, 3210, -1461, 43, 1303, 835, 836, 837, 1308, 838, 839, 840, 841, 842, 843, 844, 3886, 846, 1314, 2425, 2556, 1357, -1461, 2559, 1349, 4070, 3369, 969, 2425, 969, 1344, 4121, 4139, 3903, 1712, 2412, -2316, 3086, 3088, 3089, 4115, 4116, 4117, 47, 1371, 3689, 2377, 3375, 3702, 3293, 3568, 663, 3570, 1280, 758, -1450, 48, 1373, 2789, 4166, 4595, -1461, 2459, 1287, 3387, 1289, -1499, 4178, 1425, -1461, 2412, -1499, 4229, 2859, 1482, 2706, 4235, 49, 4241, 4236, 3576, 2425, 3579, 4242, 1375, 2141, 2425, 34, 1376, 2099, 3317, 1360, 50, 753, 4195, 1407, 4198, 969, 1361, 2142, 1409, 3421, 3293, 3423, 4315, 1362, 4369, 4316, 4416, 4370, 1410, 4417, 3292, 2100, 2142, 759, 1426, 1412, 1427, 3290, 3635, 1411, 1414, 1419, -2316, 1364, 2143, 1422, 2187, 4418, 3827, 1445, 2412, 1365, 1773, -1499, 4426, 3292, 753, 2459, 4498, 2143, 2141, 4499, 4569, 4596, 1446, 2425, 4597, 2144, 1458, 2145, 1467, 3459, 4367, 3461, 4612, 1429, 3349, 2459, 3832, 3833, 3834, 1468, 2144, 4620, 2145, 4625, 4621, 1472, 2657, 1477, -2316, 4631, -1499, 4633, 3605, 4645, 3605, 1773, 4646, 1478, 760, 3480, -2316, 2139, 1483, 1366, 4686, -2316, 1485, 4687, 4708, -1461, -2316, 1828, 2578, 1431, 1487, -2316, 2139, 3371, -2316, 2534, 4727, -2316, 1494, 4646, 4737, 3503, 1490, 2459, 1495, 3266, 3504, 3510, 4738, 1501, 1502, 3233, 3278, 3279, 3280, 4739, 2142, 4749, 2412, 968, 2657, 3284, 3695, 4752, 4774, -2316, 3605, 2459, 1433, -2318, 4780, 3518, 3486, 2459, 1505, 3378, 753, 3379, 3380, 3381, 1941, 1508, 1510, 2143, 2141, -2316, 4781, 2141, 3308, 2459, 663, 2464, 177, 2461, 181, 2462, 2463, 4796, 1513, 4827, 4797, 4542, 2657, 1520, 4828, 1525, 2144, 2412, 2145, 2496, 1523, 1534, 4829, 2142, 3284, 2412, 1352, 752, 4831, 1536, 4882, 2412, 2141, 3605, -2316, 4885, -2316, 4907, 4639, 1537, 4646, 4000, -2316, 3292, 4921, 1516, 3443, 4922, 761, -173, 2143, 1539, 2139, 1541, 1126, 1553, 1555, 3194, 3462, 1353, 1562, 3195, 3196, 3197, 1564, 4947, 1568, -2318, 4922, 203, 2805, 1575, 1580, 2144, 1581, 2145, 1582, 1583, 3768, 968, 4296, 4297, 1587, 4299, 1590, 1607, 1591, 1593, 1623, 1624, 1626, -2316, 3514, 1627, 4101, 3908, 3652, 1634, 2061, 1637, 1638, 3653, 1639, 1640, 1641, 1642, -2332, 1644, 1649, 2139, 1650, 1651, 1652, 1664, 1654, -2318, 1354, 1659, 1717, 1722, 1724, 1689, 1731, 3663, 3664, -1652, 3666, -2318, 3668, 3669, 3936, 2062, -2318, 2142, 1725, 3515, 2142, -2318, 1732, -1659, 677, 3676, -2318, 3317, 2063, -2318, 1741, 4160, -2318, 1355, 3317, 1739, 1740, 1742, 1743, 50, 1745, 1746, 2064, 1747, 2143, 3437, 4385, 2143, -1649, -1650, -2316, 4149, 1748, 1749, 1750, 2142, 3519, 1752, 1753, 1754, -2318, 1755, -1653, 3697, 1756, -1651, 1757, 2144, 1356, 2145, 2144, 1758, 2145, 1759, -2316, 1761, -2316, -2316, -2332, 1762, -2318, 2065, 2143, 1763, 1764, 1765, 1814, 3473, 3710, 1766, 1767, 1768, 2066, 1816, 1818, 1844, 1819, 1828, 1377, 1832, 1357, 1853, 1953, 2139, 1378, 2144, 2139, 2145, 1291, 1982, 3720, -2316, 2067, 1984, -2316, -2316, -2316, 2068, 1993, -2318, 1293, -2318, 2012, 2013, 2014, 2016, -2332, -2318, 1358, 2017, 2018, 3199, 2019, 2020, 2021, 3506, 3744, 2022, -2332, 2028, 2047, 2139, 2053, -2332, 1379, 2059, 2081, 2085, -2332, 2088, 2087, 2089, 2090, -2332, 2091, 2107, -2332, 2954, 2106, -2332, 2108, 2118, 1359, 2129, 2954, 2954, 34, 2133, 2954, 2135, 1360, 1715, 814, 2138, 2136, 2954, -2318, 1361, 2137, 2139, 2147, 2150, 3542, 2152, 1362, 2156, 2069, -2332, 2220, 3542, 3200, 2148, 1363, 2151, 968, 1380, 968, 2165, 4118, 2157, 2167, 4319, 1381, 3684, 1364, 1382, 2175, -2332, 3670, 2171, 3671, 4352, 1365, 663, 3673, 2182, 1388, 2070, 2211, 2212, 663, 2216, 2172, 2217, 2238, 677, 2194, 2183, 3698, 2239, 1383, 2189, 2240, 2246, 3603, 2254, 2255, 2257, 2258, 2190, 2200, 2201, 3580, 2213, 2268, 2221, -2332, 203, -2332, 2224, 2269, -2318, 2274, 2277, -2332, 2278, 2281, 2282, 556, 2290, 2305, 1384, 2310, 3634, 968, 2285, 1366, 2323, 3704, 2326, 2327, 2339, 3624, 177, 2335, -2318, 2341, -2318, -2318, 2343, 1439, 2071, 2352, 2347, 4053, 4054, 2358, 2072, 2360, 2361, 2073, 2384, 2371, 2365, 3651, 177, 2366, 4058, 2367, 4079, 2372, 2373, 2375, -2332, 2387, 2386, 2388, 2389, 2406, 2407, 2456, 2437, -2318, 2443, 3655, -2318, -2318, -2318, 1385, 2074, 1386, 2501, 2551, 2557, 2473, 2374, 2075, 1782, 2612, 3293, 1387, 3293, 2571, 2076, 2506, 2561, 2477, 4015, 1388, 2577, 2077, 2589, 2591, 1310, 2613, 2627, 2641, 3785, 1389, 2644, 2645, 2658, 677, 2648, 2649, 1781, 759, 2659, 1782, 2667, 2668, 2669, 1783, 1784, 1785, 2078, 2680, 3201, 3202, 3203, 2670, 3204, 3205, 3206, 3207, 3208, 3209, 3210, -2332, 1786, 2686, 4874, 4875, 2478, 2696, 1391, 1392, 1788, 2695, 2708, 1095, 2698, 1781, 1789, 4219, 1782, 2730, 2709, 2710, 663, 2741, 2727, -2332, 2732, -2332, -2332, 2734, 2735, 2761, 3293, 2746, 2751, 1393, 2752, 2479, 2757, 2534, 1790, 2754, 2765, 2774, 2773, 2790, 2777, 1788, 4419, 4624, 2795, 1242, 1246, -2409, 2828, 2809, 2822, 2827, 2480, 2849, 4624, 2854, -2332, 2855, 2863, -2332, -2332, -2332, 2883, 2481, 2867, 2868, 2922, 3766, 2866, 753, 2925, 1790, 2943, 2944, 2936, 2948, 2949, 2955, 2956, 2957, 2959, 2958, 2947, 2482, 2966, 2963, 3904, 753, 2483, 2973, 2980, 2991, 1394, 3005, 2968, 3007, 3009, 3016, 4537, 4539, 3022, 3032, 3030, 3042, 3033, 3044, 3898, 3899, 3900, 3901, 1773, 3045, 3317, 3049, 4055, 3793, 3794, 3795, 3796, 3025, 3031, 4531, 3062, 3063, 4945, 4946, 3800, 3065, 3803, 3048, 4682, 3067, 3066, 3069, 3091, 3245, 2484, 1616, 3072, 1791, 3075, 3076, 3077, 3093, 1792, 3074, 1377, 4321, 3102, 3078, 3083, 3104, 1378, 3107, 4217, 3108, 3111, 2485, 3092, 3112, 3119, 3116, 3120, 3121, 2657, 1793, 1794, 3122, 1660, 3124, 3131, 2474, 3133, 3134, 3135, 1092, -2409, 3142, 3145, 3150, 1795, -2409, 3152, 3156, 3157, 3981, 3162, 1781, 3984, 3159, 1782, 4107, 1379, 3177, 1783, 1784, 1785, 3160, 3175, 4110, 4111, 4112, 4113, 3176, 3178, 3179, 3183, 3184, -1916, 3186, 3189, 1796, 3190, 3229, 3213, 3247, 3219, -2409, 203, 1788, 2412, 3242, 3226, 3264, 1797, 1789, 3240, 1798, 3295, 3241, 3325, 3329, 4750, 4339, 3269, 4258, 3319, 3323, 3327, 3333, 3346, 3340, 3255, 1380, 3265, 2486, 3354, 3356, 3357, 1790, 1381, 3267, 2487, 1382, 3268, 3365, 1781, 3271, 2488, 1782, 3300, 1797, 3361, 1783, 1784, 1785, 3362, 3542, 3368, 3404, 3377, 3370, 3393, 3405, 3394, 4033, 3409, 3410, 1383, 3419, 1786, 3420, 3422, 3428, 3430, 4060, 3429, 3438, 1788, 3470, 2489, 3465, 4292, 2490, 1789, 3475, 3473, 3469, 663, 3478, 969, 3473, 3467, 3964, 2534, 1799, 3477, 1715, 4688, 1384, 3961, 2491, 4452, 3489, 3479, 3490, 3491, 3494, 1790, 4467, 4673, 3487, 3497, 3499, 4477, 3488, 663, 3492, 4528, 1781, 3493, 3505, 1782, 3501, 3509, 4614, 2492, 2209, 4670, 3520, 3495, 3496, -2409, 3498, 3500, 3502, 2954, 3507, 3511, 3513, 3526, 3527, 2954, 2954, 1791, 2954, 3529, 2263, 3532, 1792, 3544, 1788, 3547, 3574, 3575, 3590, 1385, -2409, 1386, 3592, 3581, 3594, 3596, 3618, 1775, 3604, 3613, 3605, 1387, 3130, 1793, 1794, 3615, 3619, 3622, 3623, 1388, 4678, 3627, 4680, 3626, 1790, 3639, 1080, 1081, 1795, 1389, 3650, 1800, 1609, 3665, 1801, 1802, 1803, 3667, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 3677, 3688, 2646, 3658, 3678, 3679, 3680, 3659, 2647, 4249, 3691, 1791, 3690, 3661, 1796, 4250, 1792, 3683, 1390, 3692, 3700, 1391, 1392, -2409, 3703, 3705, 1734, 1797, 3709, 3194, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1793, 1794, 3216, 4090, 4267, 4268, 3256, 4266, 3215, -1915, 3761, 1393, 3765, 760, 3773, 1795, 3719, 4086, 177, 3786, 3802, 3824, 3745, 3746, 3747, 3753, 3293, 4281, 3774, 3792, 3293, 3777, 3826, 3810, 3829, 3839, 3841, 3849, 3844, 4566, 3843, 4531, 3852, 3857, 3867, 3873, 1796, -2409, 3894, 4905, 3896, 3910, -2409, 3897, 3911, 3902, 3909, 3914, 3912, 1797, 3923, 3926, 1798, 3937, 3953, 3940, 846, 3938, 3939, 3950, 3951, 1799, 3952, 3954, 1394, 3956, 3955, 4129, 4305, 4306, 4129, 4304, 4129, 3958, 3959, 3968, 3969, 4742, -2409, 4619, 3976, 663, 3992, 3994, 3918, 3997, 4004, 4006, 4485, 4751, 4003, 4032, 4007, 4010, 4753, 4043, 4755, 4048, 4040, 4050, 672, 4905, 674, 4056, 3641, 2425, 680, 4066, 4064, 4067, 4072, 694, 702, 672, 4063, 709, 4083, 4084, 702, 702, 4905, 738, 1797, 741, 4096, 4097, 4099, 4100, 4102, 1126, 1799, 4507, 3194, 4114, 4123, 4502, 3195, 3196, 3197, 4119, 4126, 4125, 4130, 4103, 969, 4131, 4105, 4106, 4133, 4141, 4136, 4145, 4151, 3769, 1800, 4146, 4150, 1801, 1802, 1803, 4152, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 4154, 4153, 4158, 4016, 4276, 4390, -1917, 4398, 4174, 4186, 4399, 4400, 4187, 4191, 4192, 4189, 4286, 4199, 4200, 4204, 4205, 4207, 4208, 4218, 4210, 4211, 4404, 4232, 3284, 4212, 4228, 4225, 3284, 4230, 4237, -2409, 4238, 4246, 4214, 4262, 4216, 4263, 4269, 4270, 4271, 4017, 4289, 4291, 4892, 4282, 4285, 1715, 4300, 4294, 1781, 1800, 4295, 1782, 1801, 1802, 1803, 4231, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 4307, 4018, 4220, 177, 4332, 4298, 4333, 3185, 4345, 4349, 4350, 4353, 4342, 4340, 4351, 4356, 4019, 1788, 4359, 4301, 4020, 4371, 4378, -2409, 4380, 4381, 4382, 4361, 796, 801, 801, 804, 4383, 801, 4391, 810, 4403, 796, 4396, 738, 4021, 4402, 848, 4022, 4413, 4412, 4415, 1790, 738, 4420, 4423, 738, 4422, 4431, 4424, 801, 4023, 738, 4445, -2409, 4465, 4471, 4474, 4479, 4491, 4264, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 4525, 4425, 4438, 4495, 4449, 4529, 4469, 4475, 663, 4494, 4509, 4504, 3199, 4510, 4514, 4536, 4543, 4550, 4552, 4039, 4553, 4555, 4556, 4571, 4577, 4578, 4557, 4366, 4576, 4279, 4280, 4581, 4598, 4586, 4283, 4284, 4583, 4587, 3778, 4600, 4615, 4601, 4602, 4618, 4622, 4627, 4639, 4630, 4635, 3130, 4634, 4637, 4302, 4303, 4643, 4664, 4662, 4654, 4693, 4698, 4703, 2954, 4024, 2954, 2954, 4677, 4702, 2954, 4705, 4710, 4025, 3200, 968, 4716, 4722, 4724, 4323, 4731, 4723, -2409, 4732, 4769, 3293, 4733, -2409, 4734, 4740, 3293, 4741, 4758, 4748, 4754, 3293, 4761, 4762, 3293, 4447, 4757, 4764, 4773, 4777, 4671, 4786, 663, 4787, 4795, 4026, 4800, 4790, 4792, 4801, 4798, 4816, 4808, 4809, 4810, 4817, 4844, 4848, 3293, -2409, 4825, 4839, 4789, 4363, 3787, 4837, 4788, 4856, 4855, 4860, 4895, 3293, 4883, 4916, 1126, 4920, 4927, 3194, 846, 4877, 1443, 3195, 3196, 3197, 4926, 4930, 4365, 177, 4942, 4917, 4914, 4915, 4384, 3130, 4939, 3130, 4934, 4940, 4168, 4941, 4943, 4935, 1282, 1797, 4609, 1418, 1374, 3011, 3310, 2222, 3317, 2853, 1442, 3416, 4506, 3929, 1715, 2935, 3531, 4012, 4684, 846, 4129, 1852, 4530, 4785, 4129, 4129, 4580, 4129, 4052, 4486, 4488, 4488, 4766, 4582, 4337, 1781, 4565, 3359, 1782, 3118, 969, 4840, 4483, 4890, 4793, 4791, 4854, 3364, 4071, 4087, 4047, 2989, 3504, 2990, 3927, 3432, 4059, 2981, 4354, 2302, 3600, 4894, 4944, 814, 4931, 4554, 3548, 1788, 4858, 3545, 4508, 4779, 4845, -2409, 4511, 679, 4120, 4651, 4649, 1709, 2701, 4093, -2409, 1719, 3347, 3201, 3202, 3203, 4729, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 2284, 1790, 2467, 2468, 3508, 1043, 4868, 2469, 3284, 4933, 1715, 2653, 2652, 3284, 1715, 1715, 3284, 2416, 3314, 970, 3293, 2027, 1255, 4075, 4834, 4221, 1824, 4683, 3861, 3315, 3322, 2679, 3324, 4830, 3840, 4756, 4215, 3326, 2678, 3805, 1978, 1950, 4476, 1979, 4185, 4197, 4470, 4629, 3801, 4747, 4746, 3862, 883, 4613, 3660, 3755, 4468, 738, 4832, 796, 4824, 4833, 801, 2617, 804, 3781, 801, 3542, 3318, 3199, 3262, 2359, 3170, 848, 3260, 2626, 4592, 944, 0, -2409, 1839, 1831, 3293, 1983, 801, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 1988, 0, 0, 663, 0, 0, 0, 0, 4730, 0, 2954, -2409, 796, 0, 0, 0, -2409, 804, 0, 0, 0, 968, 796, 0, 0, 4534, 848, 4535, 0, 0, 0, 4540, 4541, 3200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 801, 0, 0, 0, 0, 0, 0, 0, 0, -2409, 0, 0, 0, 1781, 0, 0, 1782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4570, 177, 0, 0, 0, 0, 0, 0, 1781, 0, 0, 1782, 0, 4655, 1788, 1783, 1784, 1785, 738, 0, -2409, 0, 1797, 4704, 0, 0, 0, 4591, 177, 0, 0, 738, 1786, 1109, 0, 0, 0, 0, 0, 0, 1788, 0, 0, 0, 1790, 0, 1789, 0, 4679, 0, 4681, 0, 0, 1223, 1223, 0, 738, 702, 0, 0, 0, 702, 0, 753, 0, 0, 0, 0, 0, 0, 1790, 0, 0, 0, 0, 738, 0, 0, 0, 738, 0, 0, 753, 0, 0, 1223, 0, 0, 0, 3293, 0, 0, 0, 3284, 0, 0, 0, 738, 0, 0, 0, 0, 0, -2409, 1773, 0, 0, 0, 3782, 738, 0, 0, 0, 0, 3293, 0, 0, 0, 0, 0, 0, 0, 0, 1773, 1781, 0, 0, 1782, 846, 0, 0, 0, 0, 0, 0, 0, 3201, 3202, 3203, 0, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 0, 0, -2409, 0, 0, 738, 0, -2409, 0, 1788, 0, 4685, 0, 0, 0, -2409, 0, 0, 0, 0, 4887, 738, 0, 0, 0, 0, 801, 801, 1791, 0, 0, 4488, 0, 1792, 0, 0, 0, 4804, 0, 1790, 0, 0, 0, -2409, 0, 0, 0, 0, 0, -2409, 0, 0, 702, 702, 1793, 1794, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 0, 0, 1795, 0, 0, 0, 0, 0, 0, 0, 796, 4717, 177, 0, 0, 0, 0, 0, 0, 0, 1797, 796, 4799, 0, 0, 848, 0, 0, 4843, 0, 0, 0, 0, 1796, 0, 0, 4172, 0, 0, 0, 801, 0, 0, 0, 3130, 0, 1797, 0, 0, 1798, 0, 0, 0, 0, 0, 738, 0, 0, 0, 0, 0, 0, 801, 801, 3293, 0, 0, 0, 0, 0, 814, 814, 0, 0, 0, 0, 0, -2409, 0, 738, 738, 738, -2409, 801, 0, 796, 1126, 0, 0, 3194, 0, 0, 0, 3195, 3196, 3197, 4847, 0, 0, 0, 0, -2409, 968, 0, 0, 1781, 0, 0, 1782, 0, 4169, 0, 0, 0, 0, 0, 0, 0, -2409, 0, 1780, 0, 0, 0, 0, 1781, 0, 1799, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 0, 1788, 0, 0, 0, 0, 0, -2409, 0, 0, 0, 0, 0, 1786, 0, 801, 1787, 801, 801, 0, 4893, 1788, 0, 0, 0, 0, 1797, 1789, 0, 0, 0, 1790, 0, 0, 0, 0, 0, 0, 0, 0, 1377, 0, 0, 0, 0, 1223, 1378, 0, 4937, 0, 0, 1790, 0, 0, 0, 0, 0, 0, -2409, 0, 814, 814, 0, 0, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 1692, 1692, 0, 0, 0, 738, 0, 672, 0, 1800, 0, 1379, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 4859, 177, 0, 0, 0, 1723, 0, 3236, 738, -2409, 0, 1729, 0, 0, 4873, 177, 4870, 181, 4871, 4872, 0, 0, 0, 0, 1223, 4913, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2409, 1380, 0, 4904, 0, -2409, 0, 3199, 1381, 0, 0, 1382, 0, 0, 0, 1223, 0, 0, 0, 0, 1791, 0, 0, 0, 0, 1792, 0, 4873, 4912, 4870, 181, 4871, 4872, 0, 4903, 0, 1383, 0, 0, 0, 0, -2409, 0, 1223, 1223, 1223, 1793, 1794, 1223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1795, 0, 0, -2409, 4904, 3200, 1384, 1223, 0, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 0, 0, 4904, 1797, 4873, 177, 4870, 181, 4871, 4872, 1796, 0, 0, 0, 4903, 0, 0, 0, 0, 0, 0, 0, 0, 1797, 0, 0, 1798, 0, 738, 0, 0, 1223, 0, 4903, 0, 0, 0, 0, 0, 0, 0, 0, 1385, 0, 1386, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1387, 0, 0, 0, 0, 0, 1223, 0, 1388, 0, 1223, 1223, 0, 0, 0, 0, 0, 0, 1389, 0, 0, 738, 738, 1992, 0, 0, 0, 0, 0, 0, -2409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 702, 0, 0, 0, 0, 0, 0, 1799, 0, 1447, 0, 0, 1391, 1392, 0, 0, 0, 1781, 0, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 702, 1448, 0, 1786, 0, 0, 0, 2660, 0, 0, 0, 1788, 0, 738, 2114, 0, 0, 1789, 0, 0, 0, 738, 0, 0, 801, 0, 3201, 3202, 3203, 0, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 0, 0, 0, 0, 1790, -2409, 0, 0, 0, 848, 0, 738, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 738, 0, 0, 738, 0, 0, 1800, 0, 1394, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 0, 0, 0, 738, 0, 0, 0, 0, 2661, 0, 0, 801, 801, 801, 801, 738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 702, 0, 0, 738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2234, 0, 738, 0, 0, 0, 0, 0, 1781, 0, 0, 1782, 0, 801, 801, -2409, -2409, -2409, 0, 0, 0, 0, 801, 0, 0, 0, 1791, 0, 0, 0, 0, 1792, 801, 0, 0, 0, 0, 0, 0, 0, 1788, 0, 0, 0, 0, 0, 1789, 0, 0, 0, 0, 738, 1793, 1794, 0, 0, 0, 0, 0, 0, 801, 801, 801, 801, 0, 0, 0, 1795, 0, 0, 1790, 0, 738, 0, 0, 0, 0, 0, 0, 738, 0, 0, 2234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, 0, 1796, 804, 0, 0, 0, 0, 1223, 0, 0, 0, 0, 0, 0, 1797, 0, 0, 1798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 848, 0, 0, 0, 801, 0, 0, 801, 0, 0, 0, 0, 0, 0, 0, 0, 0, 801, 0, 0, 0, 0, 0, 0, 1791, 801, 801, 0, 0, 1792, 738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1692, 0, 0, 0, 0, 0, 0, 801, 0, 796, 1795, 0, 0, 738, 738, 0, 801, 0, 0, 0, 0, 0, 0, 738, 0, 0, 0, 0, 0, 0, 738, 0, 0, 0, 0, 672, 672, 0, 0, 2476, 0, 2662, 0, 1223, 0, 1223, 0, 0, 0, 0, 1223, 1223, 0, 0, 1797, 0, 0, 1223, 1223, 1223, 0, 0, 0, 1223, 848, 1223, 1223, 1223, 1223, 1223, 1223, 0, 1223, 0, 1223, 1223, 0, 0, 1223, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 1223, 1223, 1223, 1223, 0, 0, 0, 801, 1223, 0, 0, 0, 1223, 0, 0, 1223, 0, 0, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, -127, 1223, 0, 0, 0, 0, 0, 738, 1223, 0, 1223, 0, 0, 1799, 0, 0, 0, 738, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 3054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 0, 1352, 0, 0, 9, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1353, 0, 13, 1800, 0, 14, -2409, -2409, -2409, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 15, 0, 16, 0, 0, 0, 17, 0, 0, 0, 0, 0, 18, 0, 738, 0, 738, 0, 1223, 0, 19, 0, 20, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1354, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 738, 0, 0, 0, 0, 0, 23, 2687, 0, 2694, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 804, 0, 3054, 0, 0, 0, 0, 24, 25, 672, 0, 672, 3055, 26, 0, 0, 0, 1356, 0, 0, 0, 1352, 0, 0, 27, 0, 0, 0, 1223, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 796, 0, 801, 801, 0, 0, 0, 796, 0, 848, 1357, 801, 0, 801, 0, 1353, 0, 801, 0, 0, 738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 702, 0, 0, 0, 0, 0, 0, 0, 30, 0, 2114, 0, 0, 31, 32, 0, 33, 2807, 0, 0, 0, 34, 0, 2817, 0, 0, 35, 0, 0, 36, 0, 0, 738, 1354, 37, 0, 0, 34, 0, 38, 39, 1360, 0, 0, 0, 0, 0, 40, 1361, 0, 0, 41, 738, 0, 0, 1362, 2861, 2861, 0, 0, 0, 42, 0, 2100, 0, 804, 1355, 0, 0, 826, 0, 0, 0, 43, 0, 1364, 0, 0, 857, 0, 0, 0, 801, 1365, 0, 0, 0, 872, 0, 0, 0, 0, 44, 0, 0, 0, 3055, 0, 0, 0, 0, 1356, 45, 3057, 0, 0, 0, 1781, 46, 2924, 1782, 2927, 2929, 47, 1783, 1784, 1785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 1786, 0, 1357, 1377, 0, 0, 1366, 801, 1788, 1378, 3058, 3641, 0, 0, 1789, 801, 49, 801, 0, 0, 0, 0, 0, 801, 0, 0, 0, 0, 0, 0, 0, 50, 0, 1781, -127, 0, 1782, 1223, 1790, 0, 1783, 1784, 1785, 0, 0, 0, 0, 0, 0, 1379, 0, 2114, 0, 0, 2861, 0, 738, 1786, 0, 3012, 0, 0, 672, 0, 0, 1788, 0, 0, 34, 0, 0, 1789, 3056, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 1781, 0, 1362, 1782, 2924, 0, 0, 1783, 1784, 1785, 2100, 1790, 0, 801, 3038, 0, 1380, 0, 0, 0, 0, 0, 1364, 1381, 1786, 0, 1382, 0, 0, 0, 1365, 0, 1788, 0, 0, 0, 0, 1223, 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3057, 1383, 3082, 0, 0, 0, 0, 0, 0, 1791, 0, 0, 1790, 0, 1792, 0, 0, 0, 0, 801, 0, 801, 2861, 801, 2861, 0, 0, 0, 0, 0, 0, 0, 1384, 0, 1366, 1793, 1794, 0, 3058, 0, 0, 0, 0, 0, 0, 0, 0, 1223, 0, 0, 1795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1692, 0, 0, 0, 0, 0, 1791, 0, 0, 0, 0, 1792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1796, 0, 0, 0, 0, 0, 0, 0, 1385, 0, 1386, 1793, 1794, 1797, 0, 0, 1798, 0, 0, 0, 1387, 738, 0, 0, 0, 0, 1795, 0, 1388, 0, 0, 796, 0, 0, 0, 0, 1791, 796, 1389, 0, 0, 1792, 0, 0, 0, 0, 0, 0, 801, 0, 0, 0, 0, 0, 0, 1223, 0, 1796, 0, 0, 1223, 0, 1793, 1794, 0, 0, 0, 0, 881, 0, 1797, 0, 1473, 916, 0, 1391, 1392, 1795, 0, 0, 0, 0, 0, 0, 1223, 1223, 1223, 0, 0, 1223, 0, 0, 0, 0, 1799, 0, 0, 1223, 1223, 1223, 1223, 0, 1474, 0, 0, 0, 0, 0, 1796, 0, 1223, 0, 0, 1223, 0, 1223, 0, 0, 0, 0, 0, 1797, 0, 0, 1798, 0, 1377, 1223, 1223, 0, 0, 1223, 1378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 848, 0, 1223, 0, 1223, 0, 1223, 0, 1799, 3054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1394, 0, 0, 0, 0, 1223, 1352, 1379, 0, 738, 0, 0, 0, 0, 0, 0, 3294, 0, 1223, 1223, 1223, 0, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1223, 1799, 0, 1353, 2560, 0, 0, 0, 0, 0, 0, 0, 1223, 0, 0, 1107, 0, 1223, 0, 0, 0, 0, 1380, 1223, 0, 0, 0, 0, 0, 1381, 0, 0, 1382, 3294, 0, 0, 3332, 0, 0, 3335, 1230, 2694, 0, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1383, 0, 1257, 1354, 0, 0, 0, 0, 0, 0, 0, 0, 1377, 0, 0, 0, 0, 0, 1378, 0, 0, 0, 0, 0, 1283, 0, 1223, 0, 2861, 0, 0, 1384, 0, 1692, 0, 0, 1355, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 3546, 0, 0, 1379, 801, 0, 801, 801, 801, 0, 0, 3055, 0, 0, 0, 0, 1356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1385, 0, 1386, 0, 0, 0, 0, 1404, 0, 0, 0, 0, 1387, 0, 0, 1357, 0, 0, 0, 0, 1388, 1380, 0, 0, 0, 0, 0, 0, 1381, 0, 1389, 1382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1383, 0, 0, 0, 0, 0, 0, 0, 2082, 0, 0, 1391, 1392, 0, 0, 0, 0, 0, 0, 0, 738, 0, 0, 0, 0, 34, 0, 0, 0, 1360, 0, 1384, 1781, 0, 0, 1782, 1361, 0, 2083, 1783, 1784, 1785, 0, 1362, 0, 0, 0, 0, 0, 0, 0, 2100, 1527, 0, 0, 0, 1786, 0, 0, 0, 0, 0, 0, 1364, 1788, 0, 0, 0, 0, 0, 1789, 1365, 0, 0, 0, 0, 1557, 1560, 1561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1385, 0, 1386, 3057, 0, 0, 1790, 0, 0, 0, 0, 0, 1387, 1394, 801, 0, 0, 0, 0, 0, 1388, 2861, 2861, 0, 0, 0, 0, 0, 0, 0, 1389, 0, 0, 0, 0, 0, 0, 1366, 0, 0, 0, 3058, 0, 0, 0, 0, 0, 586, 0, 0, 0, 0, 0, 631, 0, 738, 738, 0, 0, 0, 0, 0, 0, 682, 2153, 0, 0, 1391, 1392, 0, 0, 738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 750, 750, 0, 0, 1692, 738, 0, 0, 0, 0, 0, 0, 2154, 1692, 738, 738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1791, 0, 738, 0, 0, 1792, 0, 0, 0, 0, 0, 0, 0, 0, 1230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1793, 1794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1230, 1795, 0, 0, 0, 0, 1394, 0, 0, 0, 0, 0, 0, 0, 0, 801, 0, 801, 0, 0, 0, 801, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1796, 0, 0, 0, 0, 796, 0, 0, 0, 0, 0, 0, 0, 1797, 0, 738, 1798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 801, 0, 809, 0, 0, 0, 0, 1223, 0, 0, 850, 0, 0, 854, 855, 1223, 858, 1223, 0, 864, 0, 866, 0, 1223, 0, 1223, 0, 0, 1223, 0, 0, 0, 0, 1223, 1223, 1223, 1223, 0, 0, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 0, 1799, 0, 1223, 1223, 0, 0, 0, 0, 0, 0, 0, 0, 1223, 0, 1854, 0, 1223, 0, 0, 0, 1223, 0, 0, 0, 0, 0, 0, 0, 0, 1223, 0, 0, 1223, 0, 1223, 0, 0, 0, 0, 0, 0, 0, 0, 1223, 0, 0, 1223, 1223, 0, 0, 0, 1223, 1223, 0, 0, 0, 3789, 0, 1223, 0, 0, 0, 1990, 0, 0, 738, 738, 738, 796, 0, 3294, 3809, 0, 0, 0, 3809, 3823, 0, 0, 0, 0, 0, 1223, 0, 0, 0, 0, 0, 1223, 1223, 1223, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 3711, 0, 0, 1223, 0, 0, 0, 1377, 0, 0, 0, 0, 0, 1378, 2694, 0, 1223, 0, 0, 0, 0, 0, 0, 2109, 0, 0, 0, 0, 0, 0, 0, 2130, 0, 0, 0, 0, 0, 3881, 1692, 1692, 0, 2234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1379, 0, 0, 0, 0, 2164, 801, 801, 801, 801, 0, 0, 0, 2170, 0, 0, 2173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3925, 0, 0, 0, 0, 0, 1380, 2208, 0, 0, 0, 0, 0, 1381, 0, 0, 1382, 0, 0, 0, 0, 2223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2235, 0, 0, 0, 0, 0, 0, 1383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1781, 0, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1384, 0, 0, 0, 0, 1786, 0, 0, 0, 1781, 0, 2288, 1782, 1788, 0, 3998, 1783, 1784, 1785, 1789, 0, 0, 0, 0, 0, 0, 0, 919, 0, 0, 0, 0, 2322, 1786, 0, 927, 0, 0, 0, 2334, 0, 1788, 940, 1790, 0, 945, 946, 1789, 0, 0, 948, 0, 0, 0, 0, 0, 738, 1385, 801, 1386, 1223, 965, 0, 0, 0, 0, 738, 0, 0, 1387, 0, 1790, 4046, 0, 0, 973, 0, 1388, 0, 0, 0, 2114, 0, 0, 0, 0, 0, 1389, 0, 0, 1033, 0, 1037, 0, 0, 1039, 1781, 1041, 0, 1782, 1045, 738, 0, 1783, 1784, 1785, 0, 0, 0, 0, 0, 2924, 0, 0, 0, 0, 0, 0, 0, 4080, 1786, 2802, 0, 0, 1391, 1392, 0, 0, 1788, 738, 0, 0, 0, 2234, 1789, 0, 0, 1223, 1223, 0, 0, 2414, 0, 0, 0, 0, 0, 0, 1791, 0, 0, 1393, 0, 1792, 0, 0, 0, 0, 1790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1108, 0, 0, 2861, 0, 2861, 1793, 1794, 1791, 0, 0, 1230, 1230, 1792, 0, 738, 0, 0, 0, 0, 0, 1795, 0, 0, 0, 0, 0, 0, 2466, 0, 0, 0, 0, 0, 1793, 1794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1223, 1394, 0, 0, 1795, 0, 0, 1796, 0, 0, 750, 0, 1223, 0, 0, 0, 0, 0, 0, 0, 1797, 0, 0, 1798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1796, 0, 0, 0, 0, 0, 0, 0, 1223, 0, 0, 0, 0, 1797, 0, 1791, 1798, 0, 1223, 1223, 1792, 0, 0, 0, 0, 0, 1223, 1223, 0, 0, 0, 1223, 0, 0, 0, 1343, 1223, 0, 0, 1223, 1223, 1793, 1794, 0, 1223, 4177, 0, 2625, 0, 0, 1223, 738, 738, 738, 738, 0, 1795, 2640, 3809, 3823, 0, 3809, 0, 0, 4188, 0, 1799, 0, 3294, 0, 0, 0, 3294, 0, 0, 0, 0, 0, 4203, 0, 0, 0, 0, 0, 1223, 0, 0, 1796, 0, 1223, 0, 0, 0, 0, 1799, 1223, 0, 0, 0, 0, 1797, 1476, 848, 1798, 0, 0, 0, 0, 0, 0, 1223, 0, 0, 3332, 0, 0, 1488, 0, 2694, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1499, 0, 1500, 672, 0, 0, 1223, 0, 1377, 0, 1503, 0, 0, 0, 1378, 0, 0, 0, 0, 0, 0, 0, 1518, 0, 0, 1522, 2861, 2861, 0, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 2651, 0, 2654, 3764, 0, 4265, 0, 1799, 1379, 0, 0, 0, 0, 1800, 1567, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 3848, 0, 0, 0, 0, 0, 0, 0, 1230, 0, 0, 1223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1380, 187, 0, 801, 0, 0, 0, 1381, 0, 0, 1382, 0, 0, 0, 0, 0, 0, 801, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1383, 0, 0, 0, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 188, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 1223, 0, 3875, 0, 189, 0, 0, 0, 0, 1384, 0, 796, 0, 0, 0, 0, 2114, 0, 0, 0, 0, 0, 190, 0, 1692, 0, 0, 0, 191, 0, 0, 1781, 1710, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 801, 3038, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, 1786, 0, 0, 0, 0, 0, 0, 194, 1788, 0, 0, 1385, 0, 1386, 1789, 738, 2829, 0, 0, 195, 0, 0, 0, 1387, 196, 0, 0, 0, 0, 0, 197, 1388, 0, 0, 0, 0, 2856, 0, 1790, 0, 0, 1389, 0, 0, 0, 0, 0, 198, 0, 0, 0, 0, 0, 0, 1223, 0, 0, 0, 0, 0, 0, 0, 0, 1223, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 2899, 0, 0, 1391, 1392, 0, 1223, 1223, 0, 0, 1223, 0, 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, 0, 0, 796, 3809, 0, 0, 0, 3294, 2900, 0, 0, 0, 3294, 0, 0, 3294, 796, 0, 2924, 0, 4451, 0, 0, 1223, 1223, 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3881, 0, 0, 0, 0, 1377, 0, 1791, 202, 0, 0, 1378, 1792, 3881, 848, 801, 801, 801, 203, 0, 0, 0, 0, 0, 750, 1952, 0, 0, 0, 0, 0, 0, 1394, 1793, 1794, 3008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, 1795, 0, 205, 1379, 206, 0, 0, 0, 796, 848, 207, 0, 0, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 210, 0, 1797, 211, 0, 1798, 2080, 212, 0, 0, 0, 0, 1380, 1692, 1692, 0, 213, 796, 0, 1381, 738, 214, 1382, 0, 0, 0, 0, 0, 0, 0, 4046, 0, 0, 215, 0, 0, 738, 0, 2861, 0, 0, 0, 0, 0, 2114, 0, 216, 1383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2163, 801, 738, 3881, 0, 0, 0, 0, 0, 0, 0, 1384, 0, 0, 0, 1781, 1799, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 0, 0, 0, 0, 0, 0, 1223, 0, 0, 1223, 0, 1223, 0, 1786, 0, 0, 0, 1781, 0, 0, 1782, 1788, 0, 0, 1783, 1784, 1785, 1789, 0, 0, 0, 0, 3147, 0, 0, 1223, 0, 0, 0, 3294, 0, 1786, 1385, 4451, 1386, 0, 0, 0, 0, 1788, 1223, 1790, 0, 0, 1387, 1789, 0, 0, 0, 4642, 0, 0, 1388, 0, 0, 0, 0, 1781, 0, 1223, 1782, 0, 1389, 0, 1783, 1784, 1785, 0, 0, 1790, 0, 801, 0, 1800, 0, 738, 1801, 1802, 1803, 2280, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 1788, 0, 4137, 0, 0, 0, 1789, 2938, 0, 1223, 1391, 1392, 0, 0, 0, 0, 801, 801, 801, 801, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1790, 1692, 0, 0, 0, 3215, 0, 2939, 0, 0, 3216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, 0, 0, 1791, 0, 0, 0, 0, 1792, 0, 0, 0, 738, 0, 0, 0, 0, 1223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1793, 1794, 1791, 3277, 0, 2379, 0, 1792, 0, 0, 0, 0, 0, 0, 0, 1795, 0, 1394, 0, 2393, 0, 0, 2396, 0, 2398, 0, 2399, 0, 1793, 1794, 1223, 0, 2401, 796, 0, 0, 0, 0, 0, 0, 0, 0, 1223, 1795, 0, 0, 1796, 1223, 0, 1223, 0, 1223, 1791, 0, 0, 0, 0, 1792, 3881, 1797, 0, 0, 1798, 0, 801, 0, 848, 0, 0, 0, 0, 0, 0, 0, 1796, 0, 1223, 1952, -2409, -2409, 0, 1952, 0, 1952, 0, 0, 1952, 1797, 0, 0, 1798, 0, 0, 1795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1781, 0, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 0, 0, 801, 0, -2409, 0, 0, 0, 796, 0, 0, 0, 0, 1786, 0, 0, 0, 1797, 0, 0, 1799, 1788, 0, 0, 0, 0, 0, 1789, 0, 0, 0, 0, 0, 0, 0, 1223, 1223, 0, 0, 0, 2924, 0, 0, 0, 0, 0, 1223, 0, 1799, 4642, 0, 1790, 0, 2694, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1781, 796, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 801, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1786, 0, 0, 0, 0, 2114, 0, 0, 1788, 1799, 0, 0, 0, 3881, 1789, 0, 0, 0, 0, 796, 796, 1223, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1790, 0, 1223, 0, 3464, 0, 0, 0, 0, 801, 0, 0, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 1791, 0, 0, 4173, 0, 1792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1793, 1794, 0, 0, 0, 0, 0, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 1795, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 1223, 1223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, 0, 1796, 0, 0, 0, 1791, 0, 796, 796, 0, 1792, 0, 0, 0, 1797, 1377, 0, 1798, 0, 0, 0, 1378, 0, 0, 0, 0, 0, 3572, 3573, 0, 0, 1793, 1794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3582, 0, 0, 1795, 0, 2712, 2713, 0, 0, 0, 2716, 2717, 0, 0, 0, 2720, 3599, 0, 1379, 0, 0, 0, 0, 0, 0, 3608, 3610, 0, 0, 2731, 0, 0, 0, 0, 1796, 0, 2740, 0, 0, 0, 2743, 2744, 3628, 0, 2747, 2748, 0, 1797, 0, 0, 1798, 2753, 1799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2769, 0, 2771, 0, 0, 0, 1380, 0, 0, 0, 0, 0, 0, 1381, 0, 0, 1382, 0, 0, 2794, 0, 0, 1781, 0, 2796, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 0, 0, 0, 0, 2801, 0, 0, 0, 1383, 0, 0, 0, 2806, 1786, 2808, 0, 2810, 2813, 2815, 1015, 0, 1788, 0, 2823, 2826, 0, 0, 1789, 0, 0, 0, 0, 1799, 2839, 0, 0, 0, 0, 2848, 1384, 1015, 0, 0, 2852, 0, 0, 0, 1230, 0, 1800, 0, 1790, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 4410, 2885, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2892, 0, 2894, 0, 0, 0, 0, 2897, 0, 0, 0, 2898, 0, 2902, 2903, 2904, 2905, 1385, 2907, 1386, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1387, 0, 2931, 2932, 2933, 0, 0, 0, 1388, 0, 0, 0, 2941, 2942, 0, 0, 0, 1800, 1389, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 4421, 0, 0, 1781, 0, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 1791, 0, 0, 0, 3398, 1792, 0, 1391, 1392, 0, 0, 0, 0, 0, 1786, 0, 0, 0, 2984, 3797, 3798, 3799, 1788, 0, 0, 0, 1793, 1794, 1789, 0, 0, 0, 0, 0, 3399, 0, 0, 0, 0, 0, 0, 1795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1797, 0, 0, 1798, 0, 0, 0, 0, 1377, 0, 0, 0, 1394, 0, 1378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1781, 0, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1786, 0, 1379, 0, 0, 0, 0, 0, 1788, 0, 0, 0, 0, 1015, 1789, 0, 0, 0, 0, 0, 1791, 0, 0, 0, 0, 1792, 0, 0, 0, 1799, 0, 0, 0, 1015, 0, 0, 1952, 0, 1790, 0, 0, 0, 1015, 0, 0, 0, 1793, 1794, 0, 0, 0, 0, 0, 1380, 0, 0, 0, 0, 0, 0, 1381, 1795, 0, 1382, 0, 0, 0, 0, 0, 0, 0, 3148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1383, 0, 0, 0, 1796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1797, 0, 0, 1798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1015, 1384, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 4430, 0, 0, 1791, 0, 0, 0, 0, 1792, 1781, 0, 0, 1782, 0, 4031, 0, 1783, 1784, 1785, 0, 0, 0, 0, 0, 4041, 0, 0, 0, 0, 1793, 1794, 0, 0, 1786, 0, 0, 1385, 0, 1386, 0, 0, 1788, 0, 0, 1795, 0, 1799, 1789, 1387, 0, 0, 0, 0, 0, 0, 0, 1388, 0, 0, 4062, 0, 0, 0, 0, 0, 0, 1389, 0, 0, 0, 0, 1790, 0, 0, 0, 1796, 0, 0, 0, 0, 0, 0, 1015, 0, 0, 0, 0, 2334, 1797, 0, 0, 1798, 0, 0, 0, 0, 0, 0, 0, 0, 3445, 0, 0, 1391, 1392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3446, 0, 0, 0, 0, 0, 0, 0, 0, 1800, 0, 2414, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 4433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1799, 0, 0, 3350, 3351, 0, 0, 1791, 0, 0, 0, 0, 1792, 0, 0, 0, 0, 0, 0, 0, 0, 1952, 0, 0, 1394, 0, 0, 0, 0, 0, 0, 0, 798, 1793, 1794, 0, 0, 0, 0, 0, 0, 798, 821, 0, 0, 0, 3372, 0, 1795, 821, 0, 0, 0, 0, 0, 3376, 0, 0, 0, 0, 821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3388, 3390, 0, 0, 0, 3390, 0, 0, 1796, 0, 3401, 3402, 3403, 0, 0, 0, 0, 4180, 4181, 4182, 4183, 1797, 1800, 0, 1798, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 4481, 3424, 3425, 3426, 3427, 0, 0, 0, 0, 0, 2008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1781, 0, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 0, 0, 3444, 0, 3448, 3449, 3450, 0, 0, 0, 0, 0, 0, 1786, 3463, 0, 0, 0, 0, 0, 0, 1788, 0, 0, 0, 0, 1799, 1789, 0, 0, 0, 1781, 0, 0, 1782, 0, 0, 2008, 1783, 1784, 1785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1790, 0, 0, 0, 1786, 0, 0, 0, 0, 0, 0, 0, 1788, 0, 0, 0, 0, 0, 1789, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3512, 0, 0, 0, 0, 0, 0, 0, 3516, 0, 1790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3528, 0, 0, 0, 0, 0, 0, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 3569, 0, 0, 0, 4513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1015, 0, 0, 1791, 0, 0, 0, 0, 1792, 0, 0, 0, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 2008, 3606, 0, 0, 0, 3611, 1793, 1794, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1795, 1791, 0, 0, 0, 0, 1792, 0, 0, 0, 0, 0, 0, 3649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1793, 1794, 0, 0, 1796, 0, 0, 0, 0, 0, 1015, 0, 0, 0, 0, 1795, 3662, 1797, 0, 0, 1798, 0, 0, 1015, 798, 0, 4392, 0, 0, 0, 3672, 0, 0, 0, 3674, 1015, 821, 0, 0, 0, 0, 821, 0, 0, 0, 1952, 1796, 1015, 0, 0, 0, 0, 821, 0, 0, 0, 0, 0, 0, 1797, 0, 0, 1798, 0, 0, 0, 0, 0, 821, 0, 0, 0, 798, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 798, 821, 0, 0, 0, 0, 0, 821, 0, 1015, 0, 0, 1015, 0, 0, 0, 1799, 1016, 821, 0, 0, 0, 0, 0, 0, 0, 821, 0, 0, 0, 0, 0, 0, 1781, 0, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1786, 1799, 0, 0, 0, 0, 0, 0, 1788, 0, 0, 0, 0, 0, 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 798, 0, 0, 1800, 0, 821, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 4548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 4782, 0, 0, 0, 0, 0, 4546, 0, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1230, 0, 0, 0, 0, 0, 0, 0, 0, 1791, 0, 0, 0, 0, 1792, 0, 0, 0, 3892, 0, 3893, 0, 0, 0, 0, 0, 0, 3895, 0, 0, 0, 0, 0, 4593, 0, 1793, 1794, 0, 0, 0, 0, 0, 0, 0, 3905, 0, 0, 0, 0, 0, 1795, 0, 0, 0, 0, 0, 0, 0, 0, 3913, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1796, 0, 0, 0, 798, 0, 0, 3928, 0, 0, 0, 1016, 0, 1797, 0, 798, 1798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1016, 0, 0, 3957, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 0, 0, 0, 3965, 3966, 3967, 0, 0, 3970, 3971, 3972, 3973, 3974, 3975, 0, 0, 0, 4658, 3982, 3983, 0, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 0, 0, 0, 0, 0, 0, 0, 798, 3999, 0, 4001, 4002, 0, 0, 2697, 0, 0, 0, 2008, 2703, 0, 0, 1799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 0, 0, 4034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 821, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 821, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 821, 0, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 1015, 0, 0, 4803, 0, 0, 0, 0, 0, 821, 0, 0, 0, 0, 0, 0, 0, 3390, 1016, 0, 821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 821, 0, 0, 821, 0, 0, 0, 0, 0, 0, 1952, 1952, 1952, 0, 0, 798, 0, 0, 0, 0, 0, 0, 4122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 798, 798, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1015, 0, 0, 0, 0, 821, 0, 0, 0, 0, 0, 0, 1781, 821, 821, 1782, 0, 0, 0, 1783, 1784, 1785, 798, 1937, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1786, 0, 0, 0, 0, 0, 0, 0, 1788, 0, 0, 0, 0, 0, 1789, 798, 0, 0, 0, 798, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2008, 1016, 0, 0, 1790, 0, 0, 1937, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1377, 0, 0, 0, 0, 0, 1378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4253, 0, 0, 0, 4254, 4255, 4256, 4257, 0, 0, 4259, 0, 0, 0, 1423, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 1379, 0, 0, 4272, 4273, 4274, 4275, 0, 4277, 4278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4287, 4288, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 0, 0, 1424, 0, 0, 1791, 0, 4293, 0, 0, 1792, 0, 0, 0, 1952, 1952, 1015, 1952, 0, 0, 1380, 0, 0, 0, 0, 0, 1781, 1381, 0, 1782, 1382, 1793, 1794, 1783, 1784, 1785, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 1795, 0, 1015, 0, 1786, 0, 0, 0, 0, 1383, 821, 0, 1788, 0, 0, 0, 0, 0, 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1016, 1796, 0, 0, 0, 0, 0, 1425, 0, 0, 1384, 0, 1790, 0, 1797, 1016, 0, 1798, 0, 0, 0, 0, 0, 1016, 0, 4358, 0, 0, 0, 1937, 0, 0, 0, 0, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4377, 0, 0, 0, 821, 0, 0, 0, 821, 1426, 0, 1427, 0, 0, 0, 0, 0, 0, 0, 0, 821, 1428, 0, 1386, 0, 0, 0, 0, 0, 0, 4401, 0, 0, 1387, 0, 1016, 0, 0, 0, 0, 0, 1388, 798, 0, 0, 0, 0, 0, 1016, 1799, 1429, 1389, 0, 0, 798, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 2638, 2638, 2638, 0, 0, 0, 0, 1791, 1016, 0, 0, 0, 1792, 0, 0, 0, 0, 0, 0, 0, 0, 1430, 0, 0, 1391, 1392, 1431, 798, 0, 821, 821, 0, 0, 1793, 1794, 0, 0, 0, 0, 0, 0, 1952, 821, 0, 0, 0, 0, 0, 1795, 0, 0, 1432, 1016, 0, 0, 1016, 1952, 821, 821, 0, 0, 0, 0, 0, 0, 1433, 0, 2008, 0, 821, 2703, 0, 2703, 0, 0, 0, 0, 2008, 1800, 1796, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1797, 0, 0, 1798, 4918, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1394, 0, 0, 0, 0, 0, 0, 0, 0, 4503, 0, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 0, 798, 0, 798, 0, 0, 0, 4512, 798, 798, 0, 1015, 4517, 4518, 0, 798, 798, 798, 0, 0, 0, 798, 0, 798, 798, 798, 798, 798, 798, 0, 798, 0, 798, 798, 0, 2008, 798, 0, 0, 1799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1016, 798, 798, 798, 798, 1937, 0, 0, 0, 798, 0, 0, 0, 798, 0, 0, 798, 4567, 0, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 0, 798, 0, 0, 0, 0, 0, 0, 798, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1015, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3390, 0, 0, 0, 0, 0, 0, 4608, 884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 4936, 0, 0, 0, 0, 885, 1952, 0, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 1952, 886, 887, 0, 0, 0, 0, 0, 0, 0, 0, 888, 0, 0, 0, 889, 0, 0, 0, 1015, 0, 0, 4644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1781, 890, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 2703, 0, 0, 4661, 0, 0, 0, 2703, 798, 0, 0, 891, 4668, 1786, 0, 0, 0, 0, 0, 0, 0, 1788, 892, 0, 0, 0, 0, 1789, 0, 0, 893, 0, 0, 1952, 0, 0, 0, 0, 0, 0, 0, 0, 894, 0, 0, 0, 0, 895, 0, 0, 0, 1790, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 1016, 1016, 0, 0, 1015, 0, 0, 0, 0, 896, 821, 0, 0, 0, 1937, 821, 0, 0, 0, 821, 0, 0, 2703, 0, 0, 0, 0, 821, 0, 0, 0, 0, 0, 0, 897, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 821, 0, 0, 798, 0, 0, 0, 3390, 0, 0, 898, 0, 0, 0, 798, 0, 0, 0, 1016, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 1952, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 899, 821, 0, 0, 0, 0, 0, 0, 0, 1791, 0, 0, 0, 0, 1792, 0, 0, 0, 821, 821, 900, 0, 0, 4771, 0, 0, 1016, 0, 0, 0, 203, 0, 0, 0, 0, 1793, 1794, 0, 4783, 0, 0, 0, 0, 0, 0, 0, 0, 1937, 821, 0, 1795, 1937, 1015, 0, 0, 0, 0, 901, 0, 0, 0, 0, 902, 4794, 903, 0, 0, 0, 0, 0, 904, 0, 0, 905, 1015, 0, 0, 0, 0, 821, 0, 1796, 0, 821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1797, 0, 0, 1798, 0, 0, 1015, 821, 906, 0, 0, 907, 0, 0, 0, 908, 0, 0, 821, 0, 0, 0, 909, 0, 910, 0, 0, 0, 0, 911, 0, 821, 0, 0, 0, 0, 0, 0, 0, 821, 4842, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4857, 1781, 0, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 0, 0, 0, 0, 1799, 0, 0, 0, 0, 798, 1016, 0, 2638, 1786, 0, 0, 0, 0, 1937, 0, 0, 1788, 0, 0, 0, 0, 0, 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1790, 0, 0, 0, 2008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 821, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 3842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1781, 0, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 821, 0, 2703, 1786, 0, 798, 3172, 0, 1791, 0, 0, 1788, 0, 1792, 0, 0, 0, 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1793, 1794, 821, 0, 0, 0, 0, 1790, 0, 0, 0, 0, 0, 0, 0, 1795, 0, 0, 1016, 0, 0, 0, 0, 0, 821, 0, 0, 0, 0, 0, 0, 0, 821, 0, 0, 0, 798, 0, 0, 1016, 0, 0, 798, 0, 0, 0, 1796, 0, 0, 0, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 1797, 798, 0, 1798, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3756, 0, 0, 0, 0, 0, 798, 798, 798, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 798, 798, 798, 798, 0, 0, 1015, 0, 1937, 0, 1791, 0, 0, 798, 1937, 1792, 798, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 798, 0, 0, 798, 0, 1793, 1794, 1799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 798, 1795, 798, 0, 3757, 2008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 1796, 0, 798, 0, 798, 798, 798, 0, 0, 0, 822, 0, 0, 1797, 0, 0, 1798, 822, 0, 821, 0, 0, 798, 0, 0, 0, 0, 0, 822, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 798, 0, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 798, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 0, 0, 0, 0, 1016, 0, 0, 1016, 0, 1016, 1781, 0, 0, 1782, 1016, 0, 821, 1783, 1784, 1785, 0, 0, 0, 0, 0, 0, 0, 1799, 0, 0, 0, 0, 821, 821, 1786, 0, 0, 0, 798, 1015, 0, 0, 1788, 0, 0, 0, 0, 0, 1789, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 821, 0, 0, 821, 0, 0, 1016, 0, 0, 0, 0, 0, 0, 1790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2638, 0, 0, 0, 1016, 2638, 0, 0, 0, 0, 0, 2638, 0, 0, 0, 0, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 1937, 1937, 1937, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4880, 0, 0, 0, 0, 0, 0, 0, 821, 0, 0, 0, 0, 0, 0, 0, 1015, 1016, 0, 1016, 821, 0, 0, 1791, 821, 0, 0, 0, 1792, 0, 0, 0, 0, 0, 821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1015, 0, 0, 0, 1793, 1794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1795, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1796, 0, 821, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 0, 1797, 0, 0, 1798, 0, 0, 0, 0, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 1016, 0, 0, 4881, 0, 0, 1937, 1016, 0, 0, 0, 0, 821, 0, 821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 821, 822, 821, 0, 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 822, 0, 0, 1799, 0, 0, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 822, 0, 0, 0, 0, 0, 822, 0, 821, 1016, 0, 0, 0, 0, 0, 0, 0, 822, 4388, 0, 1015, 0, 1016, 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1781, 0, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1786, 0, 0, 0, 0, 0, 821, 1015, 1788, 0, 0, 0, 0, 0, 1789, 0, 0, 0, 798, 0, 0, 821, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 1790, 0, 0, 0, 0, 821, 0, 0, 821, 0, 0, 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 1016, 0, 0, 0, 0, 798, 0, 798, 0, 0, 0, 0, 0, 798, 0, 798, 0, 0, 798, 0, 0, 0, 1016, 798, 798, 798, 798, 0, 0, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 0, 0, 0, 798, 798, 0, 0, 0, 1016, 0, 0, 0, 0, 798, 0, 0, 0, 798, 0, 1937, 0, 798, 0, 0, 0, 2703, 0, 0, 0, 0, 798, 0, 0, 798, 0, 798, 0, 1791, 0, 0, 0, 0, 1792, 1016, 798, 0, 0, 798, 798, 0, 0, 0, 798, 798, 0, 0, 0, 0, 0, 798, 0, 0, 0, 1793, 1794, 0, 0, 0, 0, 798, 0, 798, 0, 0, 0, 0, 0, 0, 1795, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 798, 798, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1796, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 1797, 0, 0, 1798, 0, 0, 798, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 0, 0, 3187, 2703, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 1781, 0, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1786, 0, 821, 3220, 0, 0, 0, 0, 1788, 0, 0, 0, 0, 0, 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1799, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1790, 0, 0, 0, 0, 0, 1937, 0, 0, 0, 0, 1937, 1016, 1937, 0, 1781, 0, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1786, 822, 0, 0, 0, 1015, 0, 0, 1788, 1015, 1015, 0, 0, 0, 1789, 0, 0, 0, 0, 0, 0, 822, 0, 0, 821, 0, 0, 821, 0, 0, 0, 0, 0, 822, 0, 0, 0, 0, 1790, 0, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 0, 0, 0, 822, 0, 0, 1937, 0, 1791, 0, 0, 0, 0, 1792, 822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 822, 0, 0, 822, 0, 1793, 1794, 0, 0, 0, 4388, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 1795, 0, 821, 821, 0, 0, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 821, 0, 821, 0, 3225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1796, 0, 0, 0, 0, 1791, 0, 0, 0, 0, 1792, 0, 0, 1797, 0, 0, 1798, 0, 0, 0, 0, 0, 0, 823, 1016, 798, 798, 0, 0, 0, 823, 1793, 1794, 0, 0, 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 0, 1795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 822, 0, 0, 1796, 0, 0, 821, 0, 822, 822, 0, 0, 0, 0, 0, 0, 1797, 0, 1938, 1798, 1799, 0, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 1938, 0, 0, 0, 0, 0, 0, 0, 798, 798, 0, 1016, 0, 0, 0, 0, 798, 798, 0, 0, 0, 798, 1016, 0, 0, 1799, 798, 0, 0, 798, 798, 0, 0, 0, 798, 0, 0, 0, 0, 0, 798, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 798, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 798, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 822, 0, 0, 0, 0, 0, 821, 0, 0, 1937, 0, 0, 0, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 821, 0, 0, 0, 0, 1016, 0, 0, 0, 0, 0, 0, 821, 0, 0, 0, 1938, 0, 0, 0, 798, 0, 0, 1014, 0, 1781, 0, 0, 1782, 0, 821, 0, 1783, 1784, 1785, 0, 0, 822, 0, 0, 0, 822, 0, 0, 1014, 0, 0, 0, 0, 1786, 0, 0, 3231, 822, 0, 0, 823, 1788, 0, 1016, 0, 823, 0, 1789, 0, 0, 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 0, 821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1790, 823, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 823, 0, 798, 0, 0, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 0, 0, 822, 822, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 822, 822, 0, 0, 0, 1016, 0, 1016, 0, 0, 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 821, 0, 0, 0, 0, 1791, 0, 0, 0, 0, 1792, 0, 0, 0, 0, 0, 798, 0, 0, 0, 1016, 0, 0, 0, 0, 798, 823, 0, 0, 0, 0, 1793, 1794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 798, 0, 1795, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 798, 0, 0, 0, 0, 798, 0, 0, 798, 798, 0, 1796, 0, 0, 0, 0, 798, 798, 0, 0, 0, 0, 0, 0, 1797, 0, 0, 1798, 0, 0, 0, 0, 798, 0, 1938, 0, 0, 0, 0, 821, 0, 821, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 1016, 821, 0, 0, 0, 0, 0, 0, 1014, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1937, 0, 821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 1016, 0, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 1016, 0, 798, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 0, 798, 0, 0, 0, 0, 822, 1016, 0, 0, 1938, 822, 798, 1014, 0, 822, 0, 0, 0, 823, 0, 0, 0, 822, 0, 0, 0, 1377, 0, 0, 0, 798, 0, 1378, 0, 0, 0, 0, 0, 823, 0, 822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 1937, 0, 0, 1423, 0, 0, 1016, 0, 0, 0, 1016, 1016, 0, 0, 0, 798, 0, 0, 1379, 0, 0, 0, 0, 0, 823, 0, 0, 0, 822, 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 822, 822, 0, 0, 0, 823, 1424, 0, 823, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1380, 0, 0, 0, 0, 1938, 822, 1381, 798, 1938, 1382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1016, 1016, 0, 0, 0, 1838, 1383, 0, 822, 0, 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 798, 0, 0, 0, 0, 0, 822, 0, 1005, 798, 1425, 0, 0, 1384, 798, 0, 798, 822, 798, 0, 0, 0, 0, 0, 0, 798, 0, 0, 1005, 0, 822, 0, 0, 0, 0, 0, 0, 1005, 822, 0, 0, 0, 0, 798, 1014, 0, 0, 0, 0, 0, 0, 1206, 1206, 823, 0, 0, 0, 0, 1426, 0, 1427, 823, 823, 0, 550, 0, 821, 0, 0, 0, 1428, 1939, 1386, 0, 0, 0, 551, 0, 0, 0, 0, 0, 1387, 1273, 0, 0, 0, 0, 0, 0, 1388, 0, 0, 0, 1938, 798, 0, 552, 0, 1429, 1389, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 553, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 554, 0, 798, 798, -778, 1939, 0, 0, 0, 0, 0, 0, 0, 798, 2886, 0, 0, 1391, 1392, 1431, 0, 821, 555, 1014, 0, 0, 0, 0, 556, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 822, 0, 0, 557, 2887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, 0, 0, 1433, 0, 0, 0, 559, 0, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 560, 798, 798, 798, 0, 0, 0, 561, 0, 0, 0, 562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 1005, 0, 0, 0, 0, -981, 1014, 822, 0, 0, 1394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 1937, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 563, 822, 0, 0, 0, 0, 0, 0, 0, -520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, 822, 0, 0, 0, 0, 798, 798, 0, 0, 564, 0, 1937, 565, 0, 1014, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 566, 1937, 798, 798, 0, 0, 0, 0, 1939, 0, 1014, 0, 0, 0, 0, 0, 0, 0, 0, -414, 0, 0, 1014, 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 823, 0, 0, 0, 567, 0, 0, 0, 0, 0, 0, 568, 823, 0, 0, 0, 1938, -414, 0, 0, 569, 0, 1938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 1014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -414, 0, 0, 570, 571, 0, 572, 573, 0, 0, 0, 0, 0, 0, 0, 0, 574, 0, 0, 0, 0, 575, 0, 0, 1005, 0, 0, 576, 0, 0, 577, 0, 0, 578, 0, 0, 823, 823, 0, 0, 0, 0, 0, 0, 0, 0, -414, 0, 1781, 823, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 0, 822, 0, 0, 0, 823, 823, 0, 0, 0, 1737, 0, 0, 1786, 0, 0, 0, 823, 0, 0, 0, 1788, 0, 0, 0, 0, 0, 1789, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1790, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0, 0, 1005, 822, 0, 1769, 1770, 1771, 0, 0, 1774, 0, 0, 0, 0, 0, 0, 0, 0, 822, 822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1817, 0, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 599, 0, 822, 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1855, 1939, 0, 601, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 602, 0, 1791, 0, 0, 1005, 0, 1792, 0, 0, 0, 0, 1959, 1005, 0, 0, 1971, 1974, 603, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 1793, 1794, 0, 0, 0, 1938, 1938, 1938, 0, 0, 0, 604, 0, 0, 0, 1795, 0, 0, 0, 0, 0, 0, 605, 0, 0, 0, 0, 0, 0, 822, 606, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 822, 607, 1005, 0, 822, 1796, 608, 0, 0, 0, 0, 0, 609, 0, 822, 1005, 0, 0, 1797, 0, 0, 1798, 0, 0, 0, 0, 0, 1005, 0, 610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 0, 1014, 1014, 0, 1781, 0, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 0, 0, 0, 0, 0, 0, 0, 611, 0, 822, 0, 0, 0, 0, 1786, 1005, 0, 3763, 1005, 0, 0, 0, 1788, 0, 0, 0, 0, 0, 1789, 0, 0, 1799, 0, 0, 0, 0, 0, 0, 612, 0, 0, 0, 0, 0, 0, 1938, 0, 0, 0, 613, 1014, 822, 1790, 822, 0, 0, 0, 0, 614, 0, 3707, 0, 1014, 0, 0, 822, 0, 822, 203, 0, 0, 0, 823, 0, 0, 0, 1939, 823, 0, 0, 0, 823, 0, 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 0, 0, 615, 0, 0, 0, 1014, 616, 0, 617, 0, 0, 0, 0, 823, 618, 0, 0, 619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 822, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 0, 620, 0, 0, 621, 0, 0, 0, 622, 1005, 823, 0, 0, 0, 0, 623, 0, 624, 1791, 0, 0, 0, 625, 1792, 0, 0, 0, 823, 823, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 822, 0, 0, 0, 0, 1793, 1794, 0, 627, 0, 0, 0, 0, 0, 0, 822, 0, 1939, 823, 0, 1795, 1939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 822, 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, 0, 823, 0, 1796, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1797, 0, 0, 1798, 0, 0, 0, 823, 0, 0, 0, 0, 1014, 0, 0, 0, 0, 0, 823, 0, 0, 1781, 0, 0, 1782, 0, 0, 0, 1783, 1784, 1785, 823, 0, 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 0, 0, 1786, 0, 0, 0, 0, 0, 0, 0, 1788, 0, 1938, 0, 0, 0, 1789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1799, 1014, 1790, 2504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1939, 0, 2525, 0, 2527, 0, 0, 2539, 2542, 2547, 0, 0, 0, 0, 2553, 0, 0, 2558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 1005, 1005, 2566, 2567, 2568, 2569, 0, 0, 0, 0, 2576, 0, 0, 0, 2588, 0, 0, 2590, 0, 0, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 0, 2607, 0, 1007, 0, 823, 0, 0, 1206, 0, 2635, 0, 0, 0, 0, 0, 0, 0, 1800, 0, 0, 1801, 1802, 1803, 1007, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1791, 1005, 0, 0, 0, 1792, 0, 0, 0, 0, 0, 0, 0, 1005, 1014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1793, 1794, 0, 822, 0, 0, 0, 0, 0, 1014, 0, 823, 0, 0, 1008, 1795, 0, 0, 0, 0, 1014, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1938, 1796, 823, 0, 0, 1938, 0, 1938, 0, 0, 0, 0, 0, 0, 1797, 0, 0, 1798, 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 0, 0, 0, 0, 823, 0, 0, 1273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 822, 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1799, 0, 1938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1939, 0, 0, 0, 0, 0, 1939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 2745, 0, 0, 0, 0, 0, 822, 822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 822, 0, 822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 1014, 0, 1014, 0, 1007, 1800, 0, 1014, 1801, 1802, 1803, 0, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 823, 1005, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 822, 0, 0, 0, 0, 1008, 0, 1014, 0, 0, 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 1014, 823, 823, 1008, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 823, 0, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 1014, 0, 1014, 0, 0, 0, 0, 2976, 0, 1005, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1939, 1939, 1939, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 823, 0, 0, 0, 1014, 0, 0, 0, 0, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0, 0, 0, 1014, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 822, 0, 0, 1938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3115, 0, 0, 0, 823, 822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 822, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 822, 0, 0, 0, 0, 1939, 0, 1014, 0, 0, 0, 823, 0, 823, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0, 823, 0, 823, 1005, 0, 0, 1005, 0, 1005, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 822, 0, 0, 0, 0, 0, 0, 3168, 0, 0, 0, 0, 3174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 1774, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 2547, 0, 2547, 2547, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 3234, 0, 0, 3237, 0, 3239, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 1007, 0, 0, 0, 823, 0, 1008, 0, 0, 0, 3258, 1014, 3261, 0, 3263, 0, 0, 0, 0, 823, 0, 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 1014, 0, 0, 0, 823, 0, 0, 823, 0, 0, 0, 2635, 2635, 2635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 1005, 0, 0, 3311, 0, 0, 1008, 0, 0, 1014, 0, 0, 0, 0, 0, 1959, 0, 0, 0, 0, 3321, 0, 0, 0, 0, 0, 1974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 1005, 1939, 0, 0, 0, 0, 822, 0, 822, 1007, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 3358, 1007, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0, 822, 0, 0, 1005, 1010, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 1007, 0, 0, 0, 1938, 0, 822, 0, 0, 1008, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 1014, 0, 0, 0, 0, 0, 0, 0, 1008, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 1008, 0, 1007, 0, 0, 0, 823, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1939, 0, 0, 0, 0, 1939, 0, 1939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 823, 0, 0, 823, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 1938, 1014, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 1939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 823, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 823, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 823, 0, 1014, 0, 0, 0, 0, 822, 0, 0, 3708, 0, 0, 1014, 0, 0, 0, 0, 3712, 0, 3713, 0, 0, 0, 0, 0, 3714, 0, 3715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 1007, 1007, 0, 3740, 3741, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 2553, 0, 0, 0, 0, 0, 0, 0, 822, 3767, 0, 0, 3770, 0, 3772, 0, 1011, 0, 0, 0, 0, 0, 0, 3776, 0, 0, 0, 0, 0, 0, 0, 3783, 3784, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 1007, 0, 1008, 1011, 0, 0, 1008, 1008, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 1014, 0, 0, 3828, 0, 0, 0, 0, 0, 3835, 3836, 2635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 1007, 0, 0, 3851, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 1938, 1273, 1014, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 1008, 0, 0, 1013, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 823, 0, 0, 1939, 0, 0, 0, 0, 0, 1008, 0, 1014, 0, 0, 0, 0, 0, 1938, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 1938, 0, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 1005, 1014, 0, 0, 0, 0, 1008, 1007, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 1010, 4094, 4095, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 1010, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 1014, 0, 1007, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 1007, 1005, 823, 0, 823, 0, 4135, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4140, 0, 1010, 1005, 0, 0, 0, 0, 0, 0, 1011, 1013, 0, 0, 1010, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 4155, 4157, 0, 0, 0, 1011, 0, 0, 4162, 4163, 1008, 0, 0, 4164, 0, 0, 1005, 1010, 4167, 0, 1010, 4170, 4171, 1014, 0, 0, 4175, 0, 0, 1939, 0, 823, 4179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2635, 0, 0, 0, 0, 2635, 0, 0, 1013, 0, 0, 2635, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 1014, 0, 0, 1206, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 4234, 0, 1005, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 1007, 1014, 1014, 1007, 1010, 1007, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 4290, 0, 0, 0, 0, 1011, 0, 0, 0, 1007, 0, 0, 0, 0, 1939, 0, 0, 1008, 0, 0, 1008, 0, 1008, 0, 0, 0, 1007, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 1007, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4335, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 1007, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 1010, 1010, 0, 0, 1007, 0, 0, 0, 0, 0, 1011, 1013, 1008, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 823, 0, 0, 0, 1005, 0, 0, 0, 4427, 4428, 0, 0, 4429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 1007, 0, 1005, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 1010, 0, 4463, 4464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 1008, 0, 1005, 0, 0, 0, 0, 823, 1013, 0, 0, 0, 0, 0, 1010, 0, 1013, 0, 0, 0, 1007, 0, 0, 0, 1008, 0, 0, 1013, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 1005, 0, 0, 0, 1005, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 1939, 0, 1008, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 1011, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 1007, 1013, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 1939, 0, 1010, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1939, 2553, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 4626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 1774, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 1010, 0, 0, 0, 0, 1011, 1008, 0, 1273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4676, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 1008, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 1013, 1013, 0, 0, 0, 0, 0, 4821, 4821, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 4463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 1812, 1011, 4821, 0, 0, 0, 0, 0, 1010, 0, 0, 1010, 0, 1010, 0, 0, 0, 0, 1010, 0, 0, 4889, 1011, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 1013, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 4821, 4929, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 1010, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 1008, 1011, 0, 0, 1011, 0, 1011, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 1007, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 1010, 0, 0, 0, 0, 1008, 0, 0, 1812, 0, 1007, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 1011, 1008, 1011, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 1812, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 2535, 0, 1010, 0, 0, 0, 0, 0, 0, 1011, 0, 1007, 0, 0, 1812, 1812, 1812, 0, 0, 1812, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 1011, 0, 0, 1013, 0, 0, 1013, 0, 1013, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 1812, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 1013, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 1007, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 1013, 0, 1010, 0, 0, 0, 0, 1013, 1007, 0, 0, 0, 1007, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 1008, 1008, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 1013, 0, 0, 0, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 1812, 1010, 0, 2535, 2535, 0, 3211, 0, 2535, 0, 1013, 0, 1812, 0, 0, 1812, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 1812, 1812, 1812, 1812, 0, 0, 0, 2535, 2535, 0, 1812, 0, 1011, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 1812, 1011, 1812, 0, 0, 0, 0, 0, 0, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 1013, 0, 0, 0, 0, 1010, 0, 0, 0, 1010, 1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 0, 0, 0, 0, 1013, 0, 0, 3211, 3211, 0, 0, 2535, 2535, 2535, 2535, 0, 1011, 2535, 2535, 2535, 2535, 2535, 2535, 2535, 2535, 2535, 2535, 2535, 3211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 1812, 0, 0, 1812, 0, 1812, 0, 0, 0, 3211, 3211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 2535, 2535, 1812, 0, 1812, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 1812, 0, 0, 1011, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 1013, 1013, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 1812, 1812, 1812, 1812, 0, 0, 0, 0, 0, 3211, 3211, 3211, 3211, 0, 0, 0, 0, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 1812, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 1812, 0, 1812, 0, 0, 0, 1812, 0, 0, 3211, 3211, 0, 0, 1812, 1812, 0, 0, 0, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 1812, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 1812, 2535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 1812, 0, 0, 0, 0, 1812, 1812, 1812, 0, 0, 1812, 0, 0, 1812, 1812, 0, 0, 0, 1812, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3211, 2535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 1812, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 2629, 229, 230, 231, 0, 0, 1812, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 1812, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 2630, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 2631, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 0, 0, 0, 1190, 1191, 2632, 0, 0, 0, 1193, 0, 0, 0, 1194, 2633, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 39, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 43, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 1059, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 48, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 49, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 4638, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 2537, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 3717, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 219, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 3790, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 3806, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, -1580, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, -1580, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, -1580, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, -1580, 352, 353, 354, 355, 356, 0, 0, 357, 358, -1580, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, -1580, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, -1580, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 0, 0, 0, 0, 978, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1280, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 0, 979, 773, 980, 981, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 982, 983, 252, 0, 253, 254, 255, 256, 0, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 984, 985, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 0, 308, 309, 310, 0, 0, 312, 0, 313, 314, 987, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 0, 0, 0, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 1994, 335, 336, 337, 338, 339, 340, 0, 341, 781, 1995, 343, 344, 345, 346, 989, 990, 0, 991, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 0, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 992, 787, 993, 380, 381, 0, 0, 383, 384, 788, 385, 0, 0, 387, 994, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 1997, 789, 398, 790, 0, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 410, 0, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 995, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 1998, 461, 462, 792, 463, 464, 997, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 998, 999, 0, 0, 489, 490, 0, 492, 0, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 0, 1000, 1999, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 978, 0, 0, 0, 0, 0, 0, 0, 0, 534, 535, 536, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 2103, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 0, 979, 773, 980, 981, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 982, 983, 252, 0, 253, 254, 255, 256, 0, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 984, 985, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 0, 308, 309, 310, 0, 0, 312, 0, 313, 314, 987, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 0, 0, 0, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 1994, 335, 336, 337, 338, 339, 340, 0, 341, 781, 1995, 343, 344, 345, 346, 989, 990, 0, 991, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 0, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 992, 787, 993, 380, 381, 0, 0, 383, 384, 788, 385, 0, 0, 387, 994, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 1997, 789, 398, 790, 0, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 410, 0, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 995, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 1998, 461, 462, 792, 463, 464, 997, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 998, 999, 0, 0, 489, 490, 0, 492, 0, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 0, 1000, 1999, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 534, 535, 536, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 3050, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 1272, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 39, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 43, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 1059, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 48, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 49, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 39, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 43, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 1059, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 48, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 49, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 2543, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 2544, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 2545, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 2546, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 1734, 2497, 1194, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 0, 0, 0, 1190, 1191, 1192, 0, 0, 0, 1193, 0, 0, 0, 1194, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 1272, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 1969, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 2544, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 3837, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 3850, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 4147, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 4156, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 4453, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 4454, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 4455, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 4456, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 4818, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 4819, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 4820, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 4819, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 4820, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 1189, 0, 0, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 0, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 2529, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 0, 0, 0, 0, 0, 0, 0, 2530, 2531, 0, 0, 0, 0, 1193, 0, 0, 0, 2532, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, -2409, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 4819, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, -2409, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 0, 0, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, -2409, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 0, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, -2409, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 4820, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, -2409, 0, 0, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 0, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 0, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 2529, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 0, 0, 0, 0, 0, 0, 0, 2530, 2531, 0, 0, 0, 0, 1193, 0, 0, 0, 2532, 771, 1123, 593, 1124, 1125, 0, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 0, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 2529, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 0, 0, 0, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 1193, 0, 0, 0, 2532, 220, 221, 222, 223, 224, 225, 226, 227, -1938, 229, 230, 231, 0, 0, 0, -1938, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 0, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 0, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 0, 0, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 0, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 0, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 0, 463, 464, 1171, 466, -1938, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 0, 0, 0, 0, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 771, 1123, 593, 1124, 1125, 0, 646, 1127, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 1129, 773, 1130, 1131, 0, 3751, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 0, 383, 384, 788, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 2529, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 0, 0, 0, 771, 1123, 593, 1124, 1125, 1126, 646, 1127, 0, 0, 1193, 0, 0, 0, 2532, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 1128, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 0, 1129, 773, 1130, 1131, 0, 243, 244, 245, 246, 247, 1132, 1133, 248, 249, 1134, 1135, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 1145, 1146, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 0, 302, 0, 303, 304, 305, 306, 1147, 308, 309, 310, 1148, 1149, 312, 0, 313, 314, 1150, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 1152, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 1153, 1154, 0, 1155, 0, 350, 0, 0, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 0, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 1159, 787, 1160, 380, 381, 382, 1161, 383, 384, 0, 385, 1162, 1163, 387, 1164, 389, 390, 391, 0, 392, 0, 0, 1165, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 1168, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 1169, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 0, 463, 464, 1171, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 1173, 1174, 0, 0, 489, 490, 1175, 492, 1176, 1177, 494, 495, 496, 497, 498, 499, 500, 0, 1178, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 1180, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 0, 0, 0, 771, 0, 0, 0, 1190, 1191, 0, 0, 0, 0, 1193, 0, 0, 0, 1194, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 1133, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 1148, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 3281, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 1163, 387, 388, 389, 390, 391, 0, 392, 0, 735, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 3282, 446, 447, 448, 449, 450, 451, 452, 39, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 43, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 1175, 492, 1176, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 1059, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 48, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 0, 0, 49, 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3283, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 1133, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 1148, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 3281, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 1163, 387, 388, 389, 390, 391, 0, 392, 0, 735, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 3282, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 1175, 492, 1176, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 0, 0, 0, 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3283, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 1133, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 1148, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 1163, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 3282, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 1175, 492, 1176, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 0, 0, 0, 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 1133, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 1148, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 1163, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 1175, 492, 1176, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 0, 0, 0, 815, 1398, 593, 0, 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, 3876, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1667, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 1668, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 1669, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 0, 0, 0, 815, 0, 0, 0, 658, 1399, 4317, 0, 0, 0, 0, 0, 0, 0, 4318, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 3, 4, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 39, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 43, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 1059, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 48, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 0, 0, 49, 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4505, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 39, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 43, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 1059, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 48, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 0, 0, 49, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1256, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2688, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3787, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 0, 0, 0, 0, 0, 0, 978, 1398, 593, 0, 0, 829, 646, 0, 0, 0, 0, 4202, 830, 831, 832, 220, 221, 222, 223, 224, 225, 226, 227, 1857, 229, 230, 231, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 232, 233, 1865, 234, 235, 772, 236, 237, 238, 0, 979, 773, 980, 981, 1866, 243, 244, 245, 246, 247, 1867, 1868, 248, 249, 982, 983, 252, 1869, 253, 254, 255, 256, 0, 1870, 774, 1871, 258, 259, 260, 261, 775, 262, 263, 264, 1872, 265, 266, 267, 268, 269, 270, 1873, 776, 271, 272, 273, 1874, 1875, 1876, 777, 1877, 1878, 1879, 274, 275, 276, 277, 278, 279, 984, 985, 282, 1880, 283, 1881, 284, 285, 286, 287, 288, 1882, 289, 290, 291, 1883, 1884, 292, 293, 986, 295, 296, 1885, 297, 298, 299, 1886, 300, 301, 302, 1887, 303, 304, 305, 306, 0, 308, 309, 310, 0, 1888, 312, 1889, 313, 314, 987, 316, 1890, 317, 1891, 318, 778, 1892, 779, 319, 320, 321, 1893, 322, 0, 1894, 0, 325, 1895, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 1896, 335, 336, 337, 338, 339, 340, 1897, 341, 781, 0, 343, 344, 345, 346, 989, 990, 1898, 991, 1899, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 1900, 1901, 357, 0, 785, 359, 786, 1902, 360, 361, 362, 1903, 1904, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 992, 787, 993, 380, 381, 0, 1905, 383, 384, 788, 385, 1906, 0, 387, 994, 389, 390, 391, 1907, 392, 1908, 1909, 3535, 394, 395, 1910, 1911, 396, 0, 789, 398, 790, 0, 400, 401, 402, 403, 404, 405, 406, 1912, 407, 408, 0, 410, 0, 412, 413, 414, 1913, 415, 416, 417, 418, 419, 420, 421, 422, 995, 424, 425, 426, 427, 1914, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 1915, 439, 440, 791, 441, 442, 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, 1916, 453, 454, 455, 456, 457, 1917, 458, 459, 1998, 461, 462, 792, 463, 464, 997, 466, 1918, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, 1919, 479, 480, 1920, 481, 793, 482, 483, 484, 485, 486, 1921, 998, 999, 1922, 1923, 489, 490, 0, 492, 0, 1924, 494, 495, 496, 497, 498, 499, 500, 1925, 1926, 501, 502, 503, 504, 505, 1927, 1928, 506, 507, 508, 509, 510, 0, 1000, 1929, 513, 794, 514, 515, 516, 517, 1930, 1931, 518, 1932, 1933, 519, 520, 521, 522, 523, 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 534, 535, 536, 815, 1398, 593, 835, 836, 837, 646, 3536, 3537, 840, 841, 842, 843, 844, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 1845, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1667, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 1668, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 1669, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 1398, 593, 0, 0, 0, 646, 658, 1399, 0, 0, 0, 0, 1846, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 1851, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1667, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 1668, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 1669, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 1398, 593, 0, 0, 0, 646, 658, 1399, 0, 0, 0, 0, 1846, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1667, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 1668, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 1669, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 0, 593, 0, 0, 0, 0, 658, 1399, 0, 0, 0, 0, 1846, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 1830, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 0, 593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1236, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 0, 0, 219, 0, 0, 0, 0, 829, 0, 0, 0, 0, 0, 1236, 830, 831, 832, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 833, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 834, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 0, 0, 0, 835, 836, 837, 0, 838, 839, 840, 841, 842, 843, 844, 219, 0, 0, 0, 0, 829, 0, 0, 0, 0, 0, 0, 830, 831, 832, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 936, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 937, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 0, 0, 0, 835, 836, 837, 0, 838, 839, 840, 841, 842, 843, 844, 219, 0, 0, 0, 0, 829, 0, 0, 0, 0, 0, 0, 830, 831, 832, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 1027, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 1028, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1029, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 0, 0, 0, 835, 836, 837, 0, 838, 839, 840, 841, 842, 843, 844, 219, 0, 0, 0, 0, 829, 0, 0, 0, 0, 0, 0, 830, 831, 832, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 1496, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 1497, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 0, 0, 0, 835, 836, 837, 0, 838, 839, 840, 841, 842, 843, 844, 219, 0, 0, 0, 0, 829, 0, 0, 0, 0, 0, 0, 830, 831, 832, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 0, 0, 0, 835, 836, 837, 0, 838, 839, 840, 841, 842, 843, 844, 219, 0, 0, 0, 0, 829, 0, 0, 0, 0, 0, 0, 830, 831, 832, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 2766, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 2767, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 0, 0, 0, 835, 836, 837, 0, 838, 839, 840, 841, 842, 843, 844, 219, 0, 0, 0, 0, 829, 0, 0, 0, 0, 0, 0, 830, 831, 832, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 4484, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 593, 835, 836, 837, 0, 838, 839, 840, 841, 842, 843, 844, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 1856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1239, 0, 220, 221, 222, 223, 224, 225, 226, 227, 1857, 229, 230, 231, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 232, 233, 1865, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 1866, 243, 244, 245, 246, 247, 1867, 1868, 248, 249, 250, 251, 252, 1869, 253, 254, 255, 256, 257, 1870, 774, 1871, 258, 259, 260, 261, 775, 262, 263, 264, 1872, 265, 266, 267, 268, 269, 270, 1873, 776, 271, 272, 273, 1874, 1875, 1876, 777, 1877, 1878, 1879, 274, 275, 276, 277, 278, 279, 280, 281, 282, 1880, 283, 1881, 284, 285, 286, 287, 288, 1882, 289, 290, 291, 1883, 1884, 292, 293, 294, 295, 296, 1885, 297, 298, 299, 1886, 300, 301, 302, 1887, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1888, 312, 1889, 313, 314, 315, 316, 1890, 317, 1891, 318, 778, 1892, 779, 319, 320, 321, 1893, 322, 323, 1894, 324, 325, 1895, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 1896, 335, 336, 337, 338, 339, 340, 1897, 341, 781, 342, 343, 344, 345, 346, 347, 348, 1898, 349, 1899, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 1900, 1901, 357, 358, 785, 359, 786, 1902, 360, 361, 362, 1903, 1904, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 1905, 383, 384, 788, 385, 1906, 386, 387, 388, 389, 390, 391, 1907, 392, 1908, 1909, 393, 394, 395, 1910, 1911, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 1912, 407, 408, 409, 410, 411, 412, 413, 414, 1913, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 1914, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 1915, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 1916, 453, 454, 455, 456, 457, 1917, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 1918, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 1919, 479, 480, 1920, 481, 793, 482, 483, 484, 485, 486, 1921, 487, 488, 1922, 1923, 489, 490, 491, 492, 493, 1924, 494, 495, 496, 497, 498, 499, 500, 1925, 1926, 501, 502, 503, 504, 505, 1927, 1928, 506, 507, 508, 509, 510, 511, 512, 1929, 513, 794, 514, 515, 516, 517, 1930, 1931, 518, 1932, 1933, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 1934, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 978, 0, 0, 0, 0, 0, 0, 0, 0, 740, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 0, 979, 773, 980, 981, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 982, 983, 252, 0, 253, 254, 255, 256, 0, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 984, 985, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 0, 308, 309, 310, 0, 0, 312, 0, 313, 314, 987, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 0, 0, 0, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 1994, 335, 336, 337, 338, 339, 340, 0, 341, 781, 1995, 343, 344, 345, 346, 989, 990, 0, 991, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 0, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 992, 787, 993, 380, 381, 0, 0, 383, 384, 788, 385, 0, 0, 387, 994, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 1996, 396, 1997, 789, 398, 790, 0, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 410, 0, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 995, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 1998, 461, 462, 792, 463, 464, 997, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 998, 999, 0, 0, 489, 490, 0, 492, 0, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 0, 1000, 1999, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 0, 0, 0, 0, 0, 0, 0, 2264, 0, 534, 535, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2000, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 0, 979, 773, 980, 981, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 982, 983, 252, 0, 253, 254, 255, 256, 0, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 984, 985, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 0, 308, 309, 310, 0, 0, 312, 0, 313, 314, 987, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 0, 0, 0, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 1994, 335, 336, 337, 338, 339, 340, 0, 341, 781, 1995, 343, 344, 345, 346, 989, 990, 0, 991, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 0, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 992, 787, 993, 380, 381, 0, 0, 383, 384, 788, 385, 0, 0, 387, 994, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 1996, 396, 1997, 789, 398, 790, 0, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 410, 0, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 995, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 1998, 461, 462, 792, 463, 464, 997, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 998, 999, 0, 0, 489, 490, 0, 492, 0, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 0, 1000, 1999, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 0, 0, 0, 0, 0, 0, 0, 219, 0, 534, 535, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2000, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 1398, 593, 0, 0, 0, 646, 0, 0, 4538, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1667, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 1668, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 1669, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 0, 593, 0, 0, 0, 646, 658, 1399, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 2721, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1667, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 1668, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 1669, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 646, 658, 659, 0, 0, 0, 0, 0, 0, 220, 647, 222, 223, 224, 225, 226, 227, 648, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 649, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 650, 315, 316, 0, 317, 0, 651, 0, 652, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 653, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 654, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 655, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 656, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 657, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 1856, 4900, 593, 0, 0, 0, 646, 658, 659, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 1857, 229, 230, 231, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 232, 233, 1865, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 1866, 243, 244, 245, 246, 247, 1867, 1868, 248, 249, 250, 251, 252, 1869, 253, 254, 255, 256, 257, 1870, 774, 1871, 258, 259, 260, 261, 775, 262, 263, 264, 1872, 265, 266, 267, 268, 269, 270, 1873, 776, 271, 272, 273, 1874, 1875, 1876, 777, 1877, 1878, 1879, 274, 275, 276, 277, 278, 279, 280, 281, 282, 1880, 283, 1881, 284, 285, 286, 287, 288, 1882, 289, 290, 291, 1883, 1884, 292, 293, 294, 295, 296, 1885, 297, 298, 299, 1886, 300, 301, 302, 1887, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1888, 312, 1889, 313, 314, 315, 316, 1890, 317, 1891, 318, 778, 1892, 779, 319, 320, 321, 1893, 322, 323, 1894, 324, 325, 1895, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 1896, 335, 336, 337, 338, 339, 340, 1897, 341, 781, 342, 343, 344, 345, 346, 347, 348, 1898, 349, 1899, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 1900, 1901, 357, 358, 785, 359, 786, 1902, 360, 361, 362, 1903, 1904, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 1905, 383, 384, 788, 385, 1906, 386, 387, 388, 389, 390, 391, 1907, 392, 1908, 1909, 393, 394, 395, 1910, 1911, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 1912, 407, 408, 409, 410, 411, 412, 413, 414, 1913, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 1914, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 1915, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 1916, 453, 454, 455, 456, 457, 1917, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 1918, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 1919, 479, 480, 1920, 481, 793, 482, 483, 484, 485, 486, 1921, 487, 488, 1922, 1923, 489, 490, 491, 492, 493, 1924, 494, 495, 496, 497, 498, 499, 500, 1925, 1926, 501, 502, 503, 504, 505, 1927, 1928, 506, 507, 508, 509, 510, 511, 512, 1929, 513, 794, 514, 515, 516, 517, 1930, 1931, 518, 1932, 1933, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 1856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 1857, 229, 230, 231, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 232, 233, 1865, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 1866, 243, 244, 245, 246, 247, 1867, 1868, 248, 249, 250, 251, 252, 1869, 253, 254, 255, 256, 257, 1870, 774, 1871, 258, 259, 260, 261, 775, 262, 263, 264, 1872, 265, 266, 267, 268, 269, 270, 1873, 776, 271, 272, 273, 1874, 1875, 1876, 777, 1877, 1878, 1879, 274, 275, 276, 277, 278, 279, 280, 281, 282, 1880, 283, 1881, 284, 285, 286, 287, 288, 1882, 289, 290, 291, 1883, 1884, 292, 293, 294, 295, 296, 1885, 297, 298, 299, 1886, 300, 301, 302, 1887, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1888, 312, 1889, 313, 314, 315, 316, 1890, 317, 1891, 318, 778, 1892, 779, 319, 320, 321, 1893, 322, 323, 1894, 324, 325, 1895, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 1896, 335, 336, 337, 338, 339, 340, 1897, 341, 781, 342, 343, 344, 345, 346, 347, 348, 1898, 349, 1899, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 1900, 1901, 357, 358, 785, 359, 786, 1902, 360, 361, 362, 1903, 1904, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 1905, 383, 384, 788, 385, 1906, 386, 387, 388, 389, 390, 391, 1907, 392, 1908, 1909, 393, 394, 395, 1910, 1911, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 1912, 407, 408, 409, 410, 411, 412, 413, 414, 1913, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 1914, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 1915, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 1916, 453, 454, 455, 456, 457, 1917, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 1918, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 1919, 479, 480, 1920, 481, 793, 482, 483, 484, 485, 486, 1921, 487, 488, 1922, 1923, 489, 490, 491, 492, 493, 1924, 494, 495, 496, 497, 498, 499, 500, 1925, 1926, 501, 502, 503, 504, 505, 1927, 1928, 506, 507, 508, 509, 510, 511, 512, 1929, 513, 794, 514, 515, 516, 517, 1930, 1931, 518, 1932, 1933, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 1856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 2830, 225, 226, 227, 1857, 229, 230, 231, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 232, 233, 1865, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 1866, 243, 244, 245, 246, 247, 1867, 1868, 248, 249, 250, 251, 252, 1869, 253, 254, 255, 256, 257, 1870, 774, 1871, 258, 259, 260, 261, 775, 262, 263, 264, 1872, 265, 266, 267, 268, 269, 270, 1873, 776, 271, 272, 273, 1874, 1875, 1876, 777, 1877, 1878, 1879, 274, 275, 276, 277, 278, 279, 280, 281, 282, 1880, 283, 1881, 284, 285, 286, 287, 288, 1882, 289, 290, 291, 1883, 1884, 292, 293, 294, 2831, 296, 1885, 297, 298, 299, 1886, 300, 301, 302, 1887, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1888, 312, 1889, 313, 314, 315, 316, 1890, 317, 1891, 318, 778, 1892, 779, 319, 320, 321, 1893, 322, 323, 1894, 324, 325, 1895, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 1896, 335, 336, 337, 338, 339, 340, 1897, 341, 781, 342, 343, 344, 345, 346, 347, 348, 1898, 349, 1899, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 1900, 1901, 357, 358, 785, 359, 786, 1902, 360, 361, 362, 1903, 1904, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 1905, 383, 384, 788, 385, 1906, 386, 387, 388, 389, 390, 391, 1907, 392, 1908, 1909, 393, 394, 395, 1910, 1911, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 1912, 407, 408, 409, 410, 411, 412, 413, 414, 1913, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 1914, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 1915, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 1916, 453, 454, 455, 456, 457, 1917, 2832, 459, 460, 461, 462, 792, 463, 464, 465, 466, 1918, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 1919, 479, 480, 1920, 481, 793, 482, 483, 484, 485, 486, 1921, 487, 488, 1922, 1923, 489, 490, 491, 492, 493, 1924, 494, 495, 496, 497, 498, 499, 500, 1925, 1926, 501, 502, 503, 504, 505, 1927, 1928, 506, 507, 508, 509, 510, 511, 512, 1929, 513, 794, 514, 515, 516, 517, 1930, 1931, 518, 1932, 1933, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 1133, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 1136, 0, 1137, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 1148, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 1151, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 1156, 785, 359, 786, 0, 360, 361, 362, 1157, 1158, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 1163, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 1166, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 1167, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 1170, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 1172, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 1175, 492, 1176, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 1179, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 534, 535, 536, 815, 0, 593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1667, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 1668, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 1669, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 851, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 816, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 817, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 816, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 817, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 2218, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 816, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 3127, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 817, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 816, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 817, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 816, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 868, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 817, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 816, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 950, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 817, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 816, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1022, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 817, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 816, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1034, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 817, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 816, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1048, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 1049, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 817, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 3, 4, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 0, 593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 815, 0, 593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1657, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 971, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 239, 240, 773, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1020, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 358, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 787, 379, 380, 381, 382, 0, 383, 384, 788, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 789, 398, 790, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 792, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 2036, 253, 254, 255, 256, 257, 0, 0, 2110, 258, 259, 260, 261, 0, 262, 263, 264, 2037, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 2111, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 2039, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 2040, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 2041, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 2036, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 2037, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 2111, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 2039, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 2992, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 2040, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 2041, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 703, 226, 227, 665, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 666, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 704, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 667, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 668, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 665, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 666, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 2728, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 667, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 668, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 2036, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 2037, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 2111, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 2039, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 2040, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 2041, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 665, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 666, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 667, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 668, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 1694, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 1695, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 1696, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 1697, 318, 0, 0, 0, 1698, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 1699, 1700, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 1701, 449, 450, 451, 452, 0, 1702, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 1703, 481, 0, 1704, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 1705, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 666, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 667, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 668, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 861, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 862, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 735, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 3, 4, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 2811, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 2812, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 2824, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 2825, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 584, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 585, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 695, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 696, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 697, 488, 0, 0, 698, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 729, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 730, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 731, 488, 0, 0, 732, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 735, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 824, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 825, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 964, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 1227, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 1242, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 715, 249, 250, 251, 1243, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 718, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 719, 442, 443, 444, 445, 446, 447, 720, 449, 450, 451, 452, 0, 453, 454, 455, 456, 1231, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 722, 488, 0, 0, 723, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 724, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1350, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 735, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 1402, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1403, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 695, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 2618, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 2619, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 2620, 481, 0, 482, 2621, 484, 2622, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 2623, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 3806, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 3820, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 4487, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 681, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 693, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 715, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 716, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 717, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 718, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 719, 442, 443, 444, 445, 446, 447, 720, 449, 450, 451, 452, 0, 453, 454, 455, 456, 721, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 722, 488, 0, 0, 723, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 724, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 747, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 849, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 856, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 871, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 926, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 942, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 976, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1032, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1036, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1038, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1040, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1044, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1052, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 715, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 718, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 719, 442, 443, 444, 445, 446, 447, 720, 449, 450, 451, 452, 0, 453, 454, 455, 456, 1231, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 722, 488, 0, 0, 723, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 724, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1526, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1556, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1558, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1628, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1630, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 1632, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 1728, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 1991, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 0, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 715, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 718, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 719, 442, 443, 444, 445, 446, 447, 720, 449, 450, 451, 452, 0, 453, 454, 455, 456, 1231, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 2023, 483, 484, 485, 486, 0, 722, 488, 0, 0, 723, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 724, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 715, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 718, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 719, 442, 443, 444, 445, 446, 447, 2095, 449, 450, 451, 452, 0, 453, 454, 455, 456, 2096, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 722, 488, 0, 0, 2097, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 724, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 2332, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 2336, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 2378, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 2413, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 2739, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 715, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 718, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 719, 442, 443, 444, 445, 446, 447, 720, 449, 450, 451, 452, 0, 453, 454, 455, 456, 2096, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 722, 488, 0, 0, 2097, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 724, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 2814, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 2816, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 2928, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 2950, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 4061, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 978, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 0, 979, 773, 980, 981, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 982, 983, 252, 0, 253, 254, 255, 256, 0, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 984, 985, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 0, 308, 309, 310, 0, 0, 312, 0, 313, 314, 987, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 0, 0, 0, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 1994, 335, 336, 337, 338, 339, 340, 0, 341, 781, 1995, 343, 344, 345, 346, 989, 990, 0, 991, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 0, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 992, 787, 993, 380, 381, 0, 0, 383, 384, 788, 385, 0, 0, 387, 994, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 1997, 789, 398, 790, 0, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 410, 0, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 995, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 1998, 461, 462, 792, 463, 464, 997, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 998, 999, 0, 0, 489, 490, 0, 492, 0, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 0, 1000, 1999, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 978, 0, 0, 0, 0, 0, 0, 0, 0, 534, 535, 536, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 0, 979, 773, 980, 981, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 982, 983, 252, 0, 253, 254, 255, 256, 0, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 984, 985, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 0, 308, 309, 310, 0, 0, 312, 0, 313, 314, 987, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 0, 0, 0, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 0, 343, 344, 345, 346, 989, 990, 0, 991, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 0, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 992, 787, 993, 380, 381, 0, 0, 383, 384, 788, 385, 2091, 0, 387, 994, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 0, 789, 398, 790, 0, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 410, 0, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 995, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 1998, 461, 462, 792, 463, 464, 997, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, 0, 479, 480, 3636, 481, 793, 482, 483, 484, 485, 486, 0, 998, 999, 0, 0, 489, 490, 0, 492, 0, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 0, 1000, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 219, 0, 0, 0, 0, 0, 0, 0, 0, 534, 535, 536, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 0, 236, 237, 238, 239, 240, 0, 241, 242, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 250, 251, 252, 0, 253, 254, 255, 256, 257, 0, 0, 0, 258, 259, 260, 261, 0, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 0, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 274, 275, 276, 277, 278, 279, 280, 281, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, 312, 0, 313, 314, 315, 316, 0, 317, 0, 318, 0, 0, 0, 319, 320, 321, 0, 322, 323, 0, 324, 325, 0, 326, 327, 328, 329, 330, 0, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 0, 342, 343, 344, 345, 346, 347, 348, 0, 349, 0, 350, 0, 0, 351, 0, 352, 353, 354, 355, 356, 0, 0, 357, 358, 0, 359, 0, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 0, 379, 380, 381, 382, 0, 383, 384, 0, 385, 0, 386, 387, 388, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 397, 0, 398, 0, 399, 400, 401, 402, 403, 0, 405, 406, 0, 407, 408, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 0, 422, 423, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 0, 441, 442, 443, 444, 0, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 460, 461, 462, 0, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 479, 480, 0, 481, 0, 482, 483, 484, 485, 486, 0, 487, 488, 0, 0, 489, 490, 491, 492, 493, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 511, 512, 0, 513, 0, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 978, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 0, 979, 773, 980, 981, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 982, 983, 252, 0, 253, 254, 255, 256, 0, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 984, 985, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 0, 308, 309, 310, 0, 0, 312, 0, 313, 314, 987, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 0, 0, 0, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 0, 343, 344, 345, 346, 989, 990, 0, 991, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 0, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 992, 787, 993, 380, 381, 2158, 0, 383, 384, 788, 385, 0, 0, 387, 994, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 0, 789, 398, 790, 0, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 410, 0, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 995, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 996, 461, 462, 792, 463, 464, 997, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 998, 999, 0, 0, 489, 490, 0, 492, 0, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 0, 1000, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 978, 0, 0, 0, 0, 0, 0, 0, 0, 534, 535, 536, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 0, 979, 773, 980, 981, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 982, 983, 252, 0, 253, 254, 255, 256, 0, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 984, 985, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 0, 308, 309, 310, 0, 0, 312, 0, 313, 314, 987, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 0, 0, 0, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 0, 343, 344, 345, 346, 989, 990, 0, 991, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 0, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 992, 787, 993, 380, 381, 3460, 0, 383, 384, 788, 385, 0, 0, 387, 994, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 0, 789, 398, 790, 0, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 410, 0, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 995, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 996, 461, 462, 792, 463, 464, 997, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 998, 999, 0, 0, 489, 490, 0, 492, 0, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 0, 1000, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 978, 0, 0, 0, 0, 0, 0, 0, 0, 534, 535, 536, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 0, 979, 773, 980, 981, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 982, 983, 252, 0, 253, 254, 255, 256, 0, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 984, 985, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 0, 308, 309, 310, 0, 0, 312, 0, 313, 314, 987, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 0, 0, 0, 325, 0, 326, 327, 328, 329, 988, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 0, 343, 344, 345, 346, 989, 990, 0, 991, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 0, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 992, 787, 993, 380, 381, 0, 0, 383, 384, 788, 385, 0, 0, 387, 994, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 0, 789, 398, 790, 0, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 410, 0, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 995, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 996, 461, 462, 792, 463, 464, 997, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 998, 999, 0, 0, 489, 490, 0, 492, 0, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 0, 1000, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 978, 0, 0, 0, 0, 0, 0, 0, 0, 534, 535, 536, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 0, 979, 773, 980, 981, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 982, 983, 252, 0, 253, 254, 255, 256, 0, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 984, 985, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 0, 308, 309, 310, 0, 0, 312, 0, 313, 314, 987, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 0, 0, 0, 325, 0, 326, 327, 328, 329, 1046, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 0, 343, 344, 345, 346, 989, 990, 0, 991, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 0, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 992, 787, 993, 380, 381, 0, 0, 383, 384, 788, 385, 0, 0, 387, 994, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 0, 789, 398, 790, 0, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 410, 0, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 995, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 996, 461, 462, 792, 463, 464, 997, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 998, 999, 0, 0, 489, 490, 0, 492, 0, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 0, 1000, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 978, 0, 0, 0, 0, 0, 0, 0, 0, 534, 535, 536, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 0, 979, 773, 980, 981, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 982, 983, 252, 0, 253, 254, 255, 256, 0, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 984, 985, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 0, 308, 309, 310, 0, 0, 312, 0, 313, 314, 987, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 0, 0, 0, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 0, 343, 344, 345, 346, 989, 990, 0, 991, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 0, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 992, 787, 993, 380, 381, 0, 0, 383, 384, 788, 385, 0, 0, 387, 994, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 0, 789, 398, 790, 0, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 410, 0, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 995, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 996, 461, 462, 792, 463, 464, 997, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 998, 999, 0, 0, 489, 490, 0, 492, 0, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 0, 1000, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 978, 0, 0, 0, 0, 0, 0, 0, 0, 534, 535, 536, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 0, 979, 773, 980, 981, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 982, 983, 252, 0, 253, 254, 255, 256, 0, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 984, 985, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 0, 308, 309, 310, 0, 0, 312, 0, 313, 314, 987, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 0, 0, 0, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 0, 343, 344, 345, 346, 989, 990, 0, 991, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 0, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 992, 787, 993, 380, 381, 0, 0, 383, 384, 788, 385, 0, 0, 387, 994, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 0, 789, 398, 790, 0, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 410, 0, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 995, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 1998, 461, 462, 792, 463, 464, 997, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 998, 999, 0, 0, 489, 490, 0, 492, 0, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 0, 1000, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 978, 0, 0, 0, 0, 0, 0, 0, 0, 534, 535, 536, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 0, 979, 773, 980, 981, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 982, 983, 252, 0, 253, 254, 255, 256, 0, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 984, 985, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 986, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 0, 308, 309, 310, 0, 0, 312, 0, 313, 314, 987, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 0, 0, 0, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 0, 343, 344, 345, 346, 989, 990, 0, 991, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 0, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 992, 787, 993, 380, 381, 0, 0, 383, 384, 788, 385, 0, 0, 387, 994, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 0, 789, 398, 790, 0, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 410, 0, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 995, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 0, 461, 462, 792, 463, 464, 997, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 998, 999, 0, 0, 489, 490, 0, 492, 0, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 0, 1000, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 978, 0, 0, 0, 0, 0, 0, 0, 0, 534, 535, 536, 0, 0, 0, 220, 221, 222, 223, 224, 225, 226, 227, 0, 229, 230, 231, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 234, 235, 772, 236, 237, 238, 0, 0, 773, 0, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 249, 0, 0, 252, 0, 253, 254, 255, 256, 0, 0, 774, 0, 258, 259, 260, 261, 775, 262, 263, 264, 0, 265, 266, 267, 268, 269, 270, 0, 776, 271, 272, 273, 0, 0, 0, 777, 0, 0, 0, 274, 275, 276, 277, 278, 279, 0, 0, 282, 0, 283, 0, 284, 285, 286, 287, 288, 0, 289, 290, 291, 0, 0, 292, 293, 294, 295, 296, 0, 297, 298, 299, 0, 300, 301, 302, 0, 303, 304, 305, 306, 0, 308, 309, 310, 0, 0, 312, 0, 313, 314, 0, 316, 0, 317, 0, 318, 778, 0, 779, 319, 320, 321, 0, 322, 0, 0, 0, 325, 0, 326, 327, 328, 329, 330, 780, 331, 332, 333, 334, 0, 335, 336, 337, 338, 339, 340, 0, 341, 781, 0, 343, 344, 345, 346, 0, 0, 0, 0, 0, 350, 782, 783, 351, 784, 352, 353, 354, 355, 356, 0, 0, 357, 0, 785, 359, 786, 0, 360, 361, 362, 0, 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 0, 787, 0, 380, 381, 0, 0, 383, 384, 788, 385, 0, 0, 387, 0, 389, 390, 391, 0, 392, 0, 0, 393, 394, 395, 0, 0, 396, 0, 789, 398, 790, 0, 400, 401, 402, 403, 404, 405, 406, 0, 407, 408, 0, 410, 0, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 421, 422, 0, 424, 425, 426, 427, 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 0, 439, 440, 791, 441, 442, 443, 0, 445, 446, 447, 448, 449, 450, 451, 452, 0, 453, 454, 455, 456, 457, 0, 458, 459, 0, 461, 462, 792, 463, 464, 0, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 0, 0, 479, 480, 0, 481, 793, 482, 483, 484, 485, 486, 0, 0, 0, 0, 0, 489, 490, 0, 492, 0, 0, 494, 495, 496, 497, 498, 499, 500, 0, 0, 501, 502, 503, 504, 505, 0, 0, 506, 507, 508, 509, 510, 0, 0, 0, 513, 794, 514, 515, 516, 517, 0, 0, 518, 0, 0, 519, 520, 521, 522, 523, 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 534, 535, 536 }; static const yytype_int16 yycheck[] = { 16, 1030, 0, 0, 0, 0, 0, 0, 35, 25, 187, 1021, 50, 716, 11, 1085, 666, 667, 668, 196, 21, 7, 672, 20, 1063, 20, 27, 770, 14, 765, 201, 714, 564, 796, 179, 2282, 21, 594, 1698, 996, 1336, 1278, 27, 870, 44, 1821, 858, 879, 197, 1025, 938, 739, 999, 50, 1371, 204, 1260, 2473, 12, 1015, 594, 949, 1779, 1116, 1193, 723, 215, 918, 1483, 188, 189, 2782, 2291, 192, 43, 194, 3059, 634, 2002, 2003, 612, 1377, 2990, 1392, 1262, 17, 2639, 1381, 984, 985, 1553, 204, 2157, 555, 2806, 214, 923, 615, 994, 1435, 927, 2830, 215, 2832, 1734, 932, 22, 20, 626, 2209, 1314, 3017, 3361, 0, 941, 1283, 3318, 827, 857, 35, 1949, 972, 3035, 857, 951, 2631, 2980, 3361, 3357, 863, 2445, 1055, 1310, 3411, 3625, 3255, 2629, 2630, 872, 2688, 3046, 603, 166, 1452, 1453, 633, 181, 3561, 3628, 625, 1565, 3637, 1824, 1447, 0, 1377, 3289, 3614, 0, 3283, 2973, 3615, 719, 0, 2247, 0, 0, 2980, 181, 34, 1363, 0, 2255, 0, 2257, 0, 41, 0, 0, 40, 0, 49, 0, 1314, 181, 719, 2696, 3033, 813, 4081, 3881, 762, 1655, 762, 982, 983, 870, 4202, 4259, 4204, 3288, 3217, 5, 3334, 0, 993, 0, 0, 9, 9, 4240, 62, 9, 5, 35, 5, 55, 0, 48, 29, 2285, 5, 70, 55, 41, 41, 2002, 1174, 4297, 4298, 5, 55, 4293, 5, 5, 5, 5, 109, 13, 14, 133, 210, 13, 14, 13, 14, 5, 5, 153, 1145, 1146, 5, 159, 72, 39, 5, 158, 9, 72, 5, 5, 39, 81, 72, 72, 76, 916, 81, 1164, 4383, 1194, 84, 158, 158, 128, 111, 2530, 2531, 5, 26, 5, 2535, 4332, 158, 158, 158, 5, 11, 20, 5, 62, 72, 62, 160, 254, 604, 5, 102, 26, 81, 5, 139, 168, 5, 1328, 33, 164, 254, 3, 27, 5, 168, 1516, 4, 26, 286, 625, 2784, 9, 2573, 2574, 33, 2387, 114, 2389, 109, 3703, 74, 3705, 257, 11, 0, 68, 166, 5, 82, 9, 2627, 55, 102, 9, 4489, 4490, 1293, 258, 0, 1134, 1135, 152, 111, 38, 254, 5, 1063, 9, 22, 336, 26, 109, 40, 337, 160, 158, 110, 158, 158, 11, 899, 11, 336, 113, 26, 1160, 550, 158, 158, 3, 4, 5, 102, 271, 22, 9, 148, 180, 242, 180, 180, 56, 70, 2680, 30, 31, 564, 150, 40, 64, 180, 4266, 5, 375, 294, 193, 160, 375, 262, 201, 139, 2068, 104, 322, 83, 180, 562, 4, 1247, 1535, 2168, 567, 9, 24, 598, 310, 4, 2543, 70, 2545, 2546, 9, 578, 72, 608, 1195, 190, 553, 1554, 4304, 184, 557, 81, 44, 612, 4503, 418, 4449, 336, 249, 418, 336, 562, 324, 123, 217, 209, 567, 322, 575, 200, 1695, 126, 1223, 260, 1699, 258, 1701, 578, 378, 1704, 11, 1498, 72, 2222, 3886, 312, 451, 455, 194, 172, 282, 242, 312, 4373, 109, 1493, 317, 126, 453, 249, 312, 158, 178, 451, 4542, 244, 1051, 1519, 29, 40, 311, 309, 373, 339, 207, 158, 451, 22, 1063, 26, 140, 376, 320, 180, 322, 1031, 33, 382, 116, 1051, 157, 2627, 159, 257, 2989, 451, 249, 180, 11, 70, 333, 545, 249, 11, 102, 407, 400, 1245, 231, 451, 329, 234, 1250, 1251, 8, 400, 451, 11, 451, 249, 451, 15, 16, 17, 220, 455, 373, 1733, 373, 411, 451, 373, 40, 114, 398, 1120, 373, 373, 439, 439, 378, 455, 455, 198, 2680, 1091, 359, 386, 451, 1065, 594, 595, 453, 359, 891, 1787, 1102, 401, 1120, 3441, 320, 373, 70, 373, 373, 220, 1772, 312, 634, 455, 1776, 1117, 451, 449, 911, 394, 1431, 453, 1433, 339, 355, 126, 4679, 920, 544, 405, 638, 4763, 455, 1351, 346, 1689, 765, 451, 4652, 455, 1512, 4082, 4040, 11, 3441, 1441, 451, 455, 327, 405, 346, 1486, 633, 634, 633, 362, 441, 442, 455, 1353, 447, 1823, 647, 447, 649, 1481, 651, 1361, 3364, 450, 3774, 439, 657, 447, 454, 451, 454, 454, 647, 1587, 649, 681, 651, 2732, 3801, 453, 1404, 454, 657, 658, 659, 661, 451, 3583, 632, 451, 451, 451, 451, 1659, 4098, 1242, 3810, 455, 1001, 447, 3814, 707, 451, 1250, 1251, 447, 4810, 451, 3606, 715, 3716, 451, 718, 719, 720, 451, 451, 884, 1242, 678, 4771, 3624, 3800, 1423, 833, 834, 1426, 1427, 895, 754, 1696, 634, 4783, 447, 451, 1621, 1039, 394, 899, 1705, 1301, 3862, 1301, 449, 1047, 451, 431, 453, 455, 1413, 1053, 754, 451, 4748, 1418, 1370, 417, 353, 354, 4126, 441, 442, 447, 4130, 4131, 272, 4133, 754, 756, 756, 756, 756, 756, 756, 417, 436, 447, 406, 441, 442, 739, 373, 441, 442, 26, 2699, 309, 2701, 451, 411, 451, 4842, 959, 436, 1494, 454, 441, 442, 2082, 306, 4481, 1100, 362, 3012, 260, 914, 396, 3303, 451, 454, 769, 446, 447, 446, 447, 1755, 1594, 1595, 1732, 102, 1734, 158, 2016, 1763, 441, 442, 1740, 936, 937, 336, 447, 4235, 1746, 1747, 1748, 415, 4718, 346, 4242, 102, 743, 3677, 1756, 1757, 3546, 78, 3346, 1761, 957, 4570, 26, 394, 827, 812, 199, 254, 436, 102, 161, 78, 242, 441, 442, 2629, 2630, 2631, 717, 289, 153, 2153, 721, 112, 55, 46, 24, 2948, 114, 245, 21, 756, 320, 406, 2955, 2956, 27, 118, 2959, 1409, 126, 747, 48, 4372, 399, 2966, 44, 2016, 4818, 102, 2110, 118, 78, 114, 2957, 2958, 109, 139, 158, 109, 441, 442, 443, 444, 445, 446, 447, 3, 78, 2100, 1027, 1028, 756, 1561, 111, 109, 756, 4807, 803, 22, 258, 756, 109, 756, 756, 28, 336, 176, 2643, 756, 114, 756, 118, 756, 100, 756, 756, 2139, 756, 4186, 756, 3650, 103, 3195, 3196, 3197, 3198, 317, 118, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 443, 444, 445, 446, 447, 443, 444, 445, 446, 447, 55, 259, 193, 437, 438, 439, 4223, 441, 442, 443, 444, 445, 446, 447, 80, 870, 4916, 136, 4717, 4236, 78, 2325, 2029, 3281, 175, 3283, 859, 860, 121, 180, 123, 1702, 1703, 451, 4236, 264, 203, 3259, 3260, 193, 126, 168, 1773, 264, 242, 308, 64, 109, 394, 2689, 331, 451, 183, 126, 2339, 395, 192, 4145, 373, 279, 118, 244, 273, 963, 130, 216, 194, 1051, 284, 249, 104, 159, 432, 1998, 451, 455, 273, 244, 155, 1063, 64, 2973, 363, 258, 2008, 264, 4187, 244, 2980, 441, 442, 443, 444, 445, 446, 447, 4243, 159, 217, 4191, 1065, 362, 1065, 3361, 4196, 2277, 242, 4199, 3, 34, 1063, 331, 22, 1097, 1068, 242, 1070, 273, 1072, 137, 1074, 362, 1076, 1077, 1078, 109, 4585, 339, 295, 1083, 1407, 136, 455, 273, 1634, 4557, 1120, 155, 172, 362, 1626, 1666, 4596, 373, 32, 4593, 366, 4098, 368, 1593, 104, 312, 1582, 1639, 113, 4580, 367, 223, 114, 4581, 4859, 254, 420, 1128, 3056, 329, 4383, 324, 1654, 352, 367, 8, 355, 81, 11, 329, 262, 336, 15, 16, 17, 320, 1147, 245, 109, 80, 274, 242, 1194, 325, 341, 4338, 197, 324, 4075, 3875, 4070, 231, 362, 272, 234, 109, 400, 394, 161, 3281, 272, 3283, 1652, 1665, 1487, 367, 1196, 1178, 299, 273, 126, 3914, 172, 160, 26, 1205, 103, 452, 310, 1502, 455, 367, 2433, 1194, 361, 362, 26, 306, 455, 1219, 131, 193, 402, 8, 394, 200, 11, 272, 1521, 248, 15, 16, 17, 81, 336, 415, 140, 1753, 342, 394, 373, 312, 1242, 264, 244, 1245, 1246, 336, 231, 249, 1250, 1251, 451, 287, 1409, 264, 436, 400, 449, 322, 455, 231, 453, 1271, 234, 336, 4479, 1286, 1287, 3361, 1289, 451, 455, 5, 185, 1568, 1245, 327, 4719, 1576, 455, 1250, 1251, 365, 1387, 367, 183, 287, 1581, 1286, 1287, 336, 1289, 367, 150, 36, 22, 1984, 88, 121, 1593, 301, 28, 260, 451, 1286, 1287, 408, 1289, 4413, 271, 121, 1605, 271, 162, 378, 3554, 326, 396, 4482, 244, 4583, 455, 264, 343, 162, 64, 3860, 1625, 4492, 4728, 4806, 1629, 2205, 1467, 183, 4811, 4445, 1635, 1636, 299, 3831, 452, 81, 327, 455, 272, 3837, 201, 3826, 1303, 1454, 1455, 1456, 1457, 389, 1649, 327, 331, 1652, 258, 1658, 306, 2551, 119, 263, 277, 388, 121, 2557, 123, 330, 220, 163, 129, 336, 117, 2390, 336, 172, 306, 431, 205, 220, 1353, 241, 2380, 4862, 4621, 389, 363, 2109, 1361, 1496, 1497, 180, 3695, 101, 355, 137, 126, 4505, 1505, 362, 1537, 4509, 4510, 260, 1541, 381, 336, 384, 1515, 4646, 1575, 263, 201, 155, 272, 242, 1553, 373, 394, 3, 2384, 162, 286, 324, 4646, 373, 1399, 4269, 1348, 362, 2306, 2307, 2308, 2309, 231, 1439, 1543, 1544, 1545, 1546, 2352, 271, 2318, 2560, 4923, 408, 2173, 2262, 306, 3520, 1423, 2173, 229, 1426, 1427, 3526, 3527, 431, 3529, 1624, 361, 362, 4358, 308, 4365, 396, 4656, 4657, 4269, 11, 306, 260, 387, 2195, 310, 1634, 3124, 451, 2176, 220, 395, 158, 329, 398, 2029, 1782, 2184, 244, 2186, 1446, 1627, 148, 294, 2798, 439, 2651, 80, 254, 140, 455, 336, 2223, 2727, 180, 449, 1509, 451, 452, 453, 2348, 455, 375, 339, 272, 366, 362, 368, 3605, 1655, 321, 451, 1494, 230, 3340, 232, 366, 378, 368, 70, 3441, 327, 1638, 3810, 1698, 1641, 1539, 3814, 389, 1413, 3303, 392, 272, 272, 1418, 1651, 287, 130, 306, 206, 3167, 2070, 392, 396, 1660, 418, 402, 22, 439, 299, 138, 217, 366, 28, 368, 396, 2889, 159, 394, 168, 272, 415, 453, 2022, 4810, 89, 306, 306, 2694, 154, 415, 437, 438, 439, 412, 441, 442, 443, 444, 445, 446, 447, 436, 2530, 2531, 1753, 112, 189, 2535, 373, 256, 436, 2107, 181, 306, 451, 336, 336, 451, 148, 185, 455, 204, 3665, 153, 3667, 30, 31, 2899, 1591, 451, 2532, 214, 72, 64, 375, 366, 455, 368, 1601, 70, 1603, 81, 2544, 336, 4334, 2573, 2574, 1610, 112, 223, 81, 415, 242, 1944, 159, 1618, 4836, 389, 437, 438, 439, 392, 441, 442, 443, 444, 445, 446, 447, 176, 126, 3112, 436, 226, 439, 2577, 272, 408, 109, 451, 111, 4567, 272, 88, 189, 4569, 0, 217, 453, 2737, 1665, 455, 1665, 1790, 180, 262, 111, 329, 272, 204, 4591, 111, 320, 108, 322, 272, 2334, 4396, 454, 214, 306, 1675, 176, 1677, 2616, 1679, 306, 1681, 455, 1683, 1725, 310, 4608, 1687, 3810, 2165, 256, 153, 3814, 306, 362, 4125, 306, 316, 239, 140, 310, 163, 272, 306, 336, 1717, 1717, 1717, 1717, 1717, 1717, 336, 226, 2437, 111, 1745, 3039, 258, 180, 3042, 187, 378, 451, 336, 378, 2768, 336, 2697, 136, 1712, 289, 4728, 148, 2703, 402, 324, 306, 153, 415, 1666, 148, 187, 2065, 1742, 1743, 153, 121, 415, 123, 320, 1749, 1750, 203, 408, 2077, 365, 4499, 367, 649, 650, 651, 2979, 205, 654, 655, 656, 336, 4493, 436, 111, 88, 146, 2343, 664, 400, 316, 365, 244, 455, 1778, 351, 1792, 249, 451, 306, 1731, 207, 4048, 310, 197, 108, 2114, 253, 244, 1724, 2343, 242, 2707, 244, 242, 4230, 217, 4232, 392, 407, 415, 203, 4727, 1838, 217, 324, 153, 3, 4074, 336, 449, 244, 3896, 3897, 453, 287, 249, 140, 162, 415, 4392, 415, 4060, 417, 415, 295, 326, 23, 306, 301, 366, 2407, 368, 417, 153, 256, 272, 307, 373, 295, 187, 3188, 244, 256, 2012, 436, 365, 295, 315, 2017, 396, 264, 436, 2021, 2407, 174, 302, 451, 336, 455, 293, 299, 332, 451, 244, 2061, 3122, 451, 4141, 249, 306, 3218, 2068, 392, 254, 4605, 220, 4186, 272, 2047, 2070, 2636, 4191, 329, 80, 229, 2756, 4196, 415, 345, 4199, 339, 330, 295, 417, 242, 415, 244, 417, 42, 336, 450, 4004, 417, 4006, 4007, 455, 452, 4010, 436, 455, 308, 306, 436, 4223, 2644, 362, 389, 153, 378, 63, 2089, 436, 378, 362, 2063, 2064, 4236, 4659, 415, 4857, 3365, 451, 3022, 2072, 131, 2074, 451, 2106, 174, 2078, 2269, 3031, 1963, 8, 246, 394, 11, 61, 62, 436, 15, 16, 17, 2785, 121, 402, 123, 8, 1963, 406, 320, 321, 272, 2641, 15, 16, 17, 2136, 415, 408, 183, 1989, 1989, 2106, 388, 2807, 326, 258, 302, 146, 450, 4907, 263, 180, 2031, 455, 2033, 229, 185, 436, 449, 174, 451, 2029, 453, 4018, 306, 4020, 2167, 380, 310, 4024, 2171, 4026, 451, 329, 3470, 3231, 2029, 390, 445, 3475, 452, 1946, 452, 455, 451, 455, 453, 229, 2189, 366, 2355, 368, 2029, 85, 336, 329, 3765, 378, 3826, 2200, 2786, 4765, 2167, 3831, 136, 2589, 362, 452, 3238, 3837, 455, 2182, 2213, 77, 2379, 392, 148, 320, 321, 452, 2221, 153, 455, 89, 13, 14, 4186, 2095, 362, 2394, 52, 4191, 2397, 2398, 408, 2644, 4196, 2402, 2403, 4199, 4645, 4383, 326, 445, 2409, 3150, 402, 207, 277, 451, 249, 453, 3398, 3414, 3415, 254, 2221, 451, 9, 415, 2081, 5, 451, 4223, 453, 197, 10, 2238, 402, 452, 2856, 449, 455, 451, 18, 2246, 4236, 2248, 3077, 3078, 436, 415, 451, 2254, 452, 217, 452, 455, 317, 455, 101, 452, 36, 159, 455, 451, 3158, 258, 2459, 3445, 226, 324, 436, 4445, 201, 2984, 4412, 226, 408, 452, 2475, 3341, 455, 452, 455, 451, 455, 451, 452, 2480, 454, 52, 452, 189, 256, 455, 4890, 245, 246, 42, 2491, 360, 264, 452, 406, 433, 455, 1066, 204, 2176, 1069, 203, 1071, 154, 1073, 2754, 1075, 2184, 214, 2186, 1079, 3332, 453, 452, 2724, 2725, 455, 2328, 387, 452, 3627, 452, 455, 260, 455, 261, 395, 452, 2754, 398, 455, 2239, 4307, 239, 185, 452, 261, 260, 455, 2247, 54, 380, 452, 258, 3440, 455, 3442, 2255, 415, 2257, 417, 390, 373, 3195, 3196, 3197, 3198, 153, 324, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 451, 329, 453, 87, 3190, 2386, 258, 2388, 415, 230, 417, 232, 452, 4383, 366, 455, 368, 3229, 452, 4834, 452, 455, 452, 455, 4351, 455, 366, 2305, 368, 365, 3362, 3363, 2443, 433, 362, 415, 365, 417, 2477, 3225, 316, 3154, 452, 261, 2483, 455, 388, 3259, 3260, 4864, 452, 3630, 433, 455, 2465, 3613, 392, 2335, 452, 4097, 144, 455, 2473, 392, 42, 2343, 3532, 2327, 2327, 4621, 452, 203, 157, 455, 402, 4445, 2292, 443, 53, 415, 136, 417, 455, 4269, 4762, 3271, 415, 415, 417, 452, 2870, 454, 148, 177, 4646, 452, 3008, 153, 455, 226, 2880, 452, 452, 452, 455, 455, 455, 449, 436, 329, 452, 453, 451, 2494, 226, 451, 52, 4932, 2365, 2366, 452, 452, 451, 451, 455, 452, 101, 2374, 212, 2407, 437, 438, 439, 199, 441, 442, 443, 444, 445, 446, 447, 197, 362, 158, 437, 438, 439, 451, 441, 442, 443, 444, 445, 446, 447, 452, 2589, 453, 455, 1765, 244, 217, 1768, 419, 452, 2740, 2985, 455, 2987, 336, 452, 452, 3390, 455, 455, 0, 2371, 2372, 2373, 3678, 3679, 3680, 402, 451, 3134, 3343, 2757, 3159, 2627, 2985, 2437, 2987, 452, 136, 454, 415, 306, 324, 452, 4385, 256, 455, 759, 2774, 761, 148, 452, 182, 264, 455, 153, 452, 324, 3307, 455, 452, 436, 452, 455, 2999, 455, 3001, 452, 180, 226, 455, 310, 141, 312, 2662, 314, 451, 2532, 3815, 451, 3817, 3055, 321, 365, 453, 2815, 2680, 2817, 452, 328, 452, 455, 452, 455, 141, 455, 4621, 336, 365, 197, 230, 180, 232, 4810, 3055, 258, 306, 258, 88, 348, 392, 141, 242, 452, 3294, 180, 455, 356, 2532, 217, 452, 4646, 2577, 455, 452, 392, 226, 455, 452, 452, 141, 455, 455, 415, 258, 417, 153, 2863, 4802, 2865, 452, 271, 2708, 455, 3297, 3298, 3299, 306, 415, 452, 417, 452, 455, 141, 455, 215, 136, 452, 256, 452, 455, 452, 455, 2577, 455, 111, 264, 324, 148, 451, 396, 410, 452, 153, 258, 455, 452, 388, 158, 455, 2594, 311, 451, 163, 451, 2751, 166, 3554, 452, 169, 253, 455, 452, 2923, 378, 455, 408, 2611, 2924, 2929, 452, 326, 153, 455, 2621, 2622, 2623, 452, 365, 452, 455, 2644, 455, 2627, 3149, 452, 452, 197, 455, 455, 350, 0, 452, 2949, 324, 455, 207, 2763, 2683, 2765, 2766, 2767, 3827, 292, 451, 392, 226, 217, 452, 226, 2642, 455, 2644, 2658, 2658, 2658, 2658, 2658, 2658, 452, 64, 452, 455, 4330, 455, 35, 452, 419, 415, 455, 417, 3856, 244, 258, 452, 365, 2680, 455, 54, 2683, 452, 244, 452, 455, 226, 455, 256, 452, 258, 452, 455, 42, 455, 3512, 264, 4810, 452, 451, 2854, 455, 388, 42, 392, 383, 451, 272, 8, 153, 408, 11, 2866, 87, 408, 15, 16, 17, 77, 452, 153, 88, 455, 290, 3038, 141, 141, 415, 451, 417, 141, 405, 32, 2754, 3976, 3977, 451, 3979, 283, 34, 451, 141, 419, 141, 141, 313, 324, 455, 3641, 324, 3068, 141, 25, 141, 258, 3069, 141, 141, 258, 141, 0, 141, 153, 451, 141, 258, 141, 362, 141, 136, 144, 141, 35, 215, 153, 451, 258, 3095, 3096, 5, 3098, 148, 3100, 3101, 324, 58, 153, 365, 153, 2943, 365, 158, 451, 5, 362, 3113, 163, 2973, 71, 166, 153, 3763, 169, 177, 2980, 451, 451, 451, 451, 451, 451, 451, 85, 451, 392, 2836, 4597, 392, 5, 5, 388, 3750, 451, 451, 451, 365, 2950, 451, 451, 451, 197, 451, 5, 3151, 451, 5, 451, 415, 212, 417, 415, 451, 417, 451, 412, 451, 414, 415, 88, 451, 217, 124, 392, 451, 451, 451, 416, 2878, 3172, 451, 451, 451, 135, 269, 199, 92, 455, 455, 22, 35, 244, 215, 35, 451, 28, 415, 451, 417, 153, 153, 3194, 449, 155, 254, 452, 453, 454, 160, 336, 256, 256, 258, 373, 373, 324, 453, 136, 264, 272, 373, 373, 201, 324, 217, 373, 2926, 3220, 373, 148, 439, 373, 451, 81, 153, 68, 324, 141, 258, 158, 212, 328, 373, 373, 163, 249, 395, 166, 2948, 373, 169, 365, 258, 306, 320, 2955, 2956, 310, 254, 2959, 451, 314, 3255, 3124, 173, 373, 2966, 313, 321, 373, 451, 81, 272, 2973, 141, 328, 396, 229, 197, 3112, 2980, 260, 455, 336, 180, 2985, 119, 2987, 103, 3683, 396, 373, 4015, 126, 3127, 348, 129, 52, 217, 3102, 373, 3104, 4056, 356, 2973, 3108, 52, 262, 260, 41, 41, 2980, 324, 373, 455, 258, 362, 365, 373, 3152, 201, 154, 373, 419, 258, 3025, 258, 201, 201, 415, 373, 373, 373, 3002, 373, 451, 373, 256, 290, 258, 373, 35, 388, 24, 258, 264, 141, 244, 451, 109, 141, 223, 185, 254, 3054, 3055, 396, 410, 244, 3162, 244, 35, 451, 3045, 3045, 153, 412, 35, 414, 415, 207, 407, 324, 451, 325, 3577, 3578, 34, 330, 371, 371, 333, 141, 373, 449, 3067, 3067, 449, 3590, 336, 4370, 373, 373, 373, 313, 396, 141, 141, 396, 141, 141, 248, 253, 449, 373, 3074, 452, 453, 454, 242, 362, 244, 411, 236, 236, 158, 451, 369, 11, 166, 3281, 254, 3283, 371, 376, 451, 455, 25, 4316, 262, 451, 383, 451, 373, 3881, 149, 158, 375, 3267, 272, 455, 452, 451, 362, 173, 173, 8, 197, 455, 11, 339, 205, 259, 15, 16, 17, 408, 396, 437, 438, 439, 455, 441, 442, 443, 444, 445, 446, 447, 388, 32, 35, 4816, 4817, 72, 52, 309, 310, 40, 266, 373, 3134, 452, 8, 46, 3852, 11, 451, 373, 324, 3159, 249, 324, 412, 396, 414, 415, 205, 205, 378, 3361, 249, 373, 336, 373, 103, 451, 4141, 70, 373, 408, 153, 326, 249, 207, 40, 4150, 4438, 258, 42, 345, 46, 320, 215, 215, 215, 124, 257, 4449, 373, 449, 365, 455, 452, 453, 454, 306, 135, 324, 258, 306, 3241, 373, 3265, 174, 70, 373, 373, 333, 201, 35, 201, 201, 396, 201, 396, 295, 155, 201, 207, 3393, 3283, 160, 439, 439, 141, 399, 153, 257, 408, 153, 155, 4326, 4327, 254, 141, 333, 415, 141, 244, 3383, 3384, 3385, 3386, 3265, 35, 3441, 258, 3581, 3273, 3274, 3275, 3276, 451, 451, 4318, 258, 207, 4942, 4943, 3281, 171, 3283, 244, 4525, 153, 171, 35, 234, 134, 208, 327, 452, 175, 433, 433, 452, 141, 180, 449, 22, 4015, 258, 452, 452, 258, 28, 207, 3844, 258, 333, 229, 452, 153, 180, 244, 180, 180, 455, 201, 202, 419, 455, 455, 23, 164, 373, 451, 158, 455, 175, 233, 415, 258, 216, 180, 52, 378, 362, 3492, 207, 8, 3495, 253, 11, 3662, 68, 158, 15, 16, 17, 408, 452, 3670, 3671, 3672, 3673, 452, 452, 158, 452, 452, 269, 452, 452, 247, 451, 276, 452, 158, 452, 216, 290, 40, 455, 433, 452, 373, 260, 46, 452, 263, 412, 452, 225, 402, 4627, 4041, 268, 3911, 435, 394, 412, 258, 52, 439, 451, 119, 451, 317, 258, 261, 258, 70, 126, 451, 324, 129, 451, 183, 8, 451, 330, 11, 452, 260, 451, 15, 16, 17, 451, 3441, 141, 191, 419, 373, 373, 249, 373, 3552, 373, 262, 154, 328, 32, 141, 141, 328, 215, 3592, 328, 183, 40, 277, 362, 373, 3968, 365, 46, 277, 3470, 217, 3441, 373, 4015, 3475, 396, 3477, 4412, 341, 393, 3774, 4536, 185, 3469, 383, 4206, 227, 373, 227, 227, 324, 70, 4213, 4507, 373, 324, 324, 4225, 373, 3469, 373, 4313, 8, 373, 244, 11, 324, 141, 4417, 408, 41, 4506, 201, 373, 373, 341, 373, 373, 373, 3520, 336, 373, 373, 201, 201, 3526, 3527, 175, 3529, 201, 3531, 451, 180, 3, 40, 452, 452, 455, 373, 242, 46, 244, 42, 383, 308, 102, 257, 4456, 452, 451, 455, 254, 3686, 201, 202, 452, 258, 35, 141, 262, 4521, 141, 4523, 373, 70, 153, 3536, 3537, 216, 272, 168, 434, 62, 396, 437, 438, 439, 396, 441, 442, 443, 444, 445, 446, 447, 141, 261, 450, 450, 324, 324, 324, 450, 456, 3892, 139, 175, 333, 452, 247, 3894, 180, 455, 306, 139, 201, 309, 310, 434, 201, 201, 449, 260, 132, 11, 441, 442, 443, 444, 445, 446, 447, 201, 202, 158, 3626, 3924, 3925, 134, 3923, 153, 269, 407, 336, 447, 264, 158, 216, 455, 3622, 3622, 412, 158, 436, 452, 452, 452, 452, 3810, 3943, 451, 455, 3814, 452, 451, 455, 166, 452, 452, 259, 451, 4349, 452, 4687, 313, 79, 383, 153, 247, 175, 35, 4860, 396, 191, 180, 396, 52, 207, 373, 451, 365, 260, 383, 328, 263, 373, 452, 324, 3844, 373, 373, 373, 373, 341, 324, 452, 399, 306, 452, 3700, 3998, 3999, 3703, 3997, 3705, 451, 415, 52, 365, 4618, 216, 4432, 153, 3683, 70, 141, 102, 383, 201, 201, 4237, 4630, 452, 451, 201, 201, 4635, 291, 4637, 451, 205, 186, 22, 4922, 24, 451, 415, 455, 28, 452, 153, 455, 35, 33, 34, 35, 419, 37, 75, 365, 40, 41, 4941, 43, 260, 45, 455, 451, 383, 455, 373, 8, 341, 4280, 11, 333, 102, 4270, 15, 16, 17, 163, 201, 158, 201, 451, 4318, 201, 452, 450, 201, 158, 452, 451, 52, 32, 434, 452, 300, 437, 438, 439, 413, 441, 442, 443, 444, 445, 446, 447, 452, 413, 455, 48, 3938, 4099, 269, 4105, 452, 451, 4108, 4109, 452, 204, 267, 451, 3950, 204, 364, 451, 265, 52, 169, 254, 452, 452, 4124, 158, 3810, 452, 383, 439, 3814, 373, 415, 341, 70, 185, 3839, 249, 3841, 249, 439, 52, 365, 90, 373, 64, 4843, 455, 455, 4145, 141, 373, 8, 434, 373, 11, 437, 438, 439, 3873, 441, 442, 443, 444, 445, 446, 447, 201, 115, 3854, 3854, 160, 3978, 158, 455, 180, 451, 333, 35, 4043, 396, 396, 244, 130, 40, 127, 3992, 134, 415, 415, 46, 35, 158, 258, 411, 187, 188, 189, 190, 451, 192, 153, 194, 199, 196, 188, 198, 154, 261, 201, 157, 451, 158, 451, 70, 207, 300, 349, 210, 401, 275, 452, 214, 170, 216, 204, 434, 414, 81, 122, 258, 301, 3920, 441, 442, 443, 444, 445, 446, 447, 153, 452, 451, 373, 451, 116, 452, 451, 3920, 452, 451, 373, 201, 451, 451, 249, 35, 228, 183, 249, 451, 291, 451, 141, 140, 35, 452, 4073, 451, 3941, 3942, 452, 383, 321, 3946, 3947, 262, 321, 134, 347, 52, 347, 452, 52, 35, 451, 455, 451, 451, 4125, 452, 451, 3995, 3996, 452, 396, 365, 451, 242, 258, 452, 4004, 249, 4006, 4007, 365, 365, 4010, 5, 147, 257, 260, 4015, 291, 64, 64, 4019, 122, 261, 175, 415, 4658, 4186, 415, 180, 400, 300, 4191, 401, 35, 451, 451, 4196, 336, 158, 4199, 4200, 455, 412, 365, 298, 153, 127, 4015, 185, 451, 293, 35, 258, 258, 35, 333, 160, 261, 261, 451, 160, 52, 320, 4223, 216, 452, 452, 394, 4067, 451, 451, 114, 5, 452, 451, 21, 4236, 307, 32, 8, 140, 158, 11, 4237, 320, 860, 15, 16, 17, 373, 291, 4072, 4072, 160, 451, 455, 455, 4096, 4230, 415, 4232, 347, 415, 32, 451, 160, 347, 756, 260, 4405, 853, 819, 2290, 2644, 1470, 4269, 2148, 859, 2807, 4279, 3440, 4413, 2217, 2971, 3531, 4528, 4280, 4126, 1251, 4316, 4687, 4130, 4131, 4366, 4133, 3575, 4238, 4239, 4240, 4654, 4370, 4034, 8, 4348, 2731, 11, 2425, 4687, 4769, 4236, 4840, 4701, 4700, 4789, 2735, 3608, 3623, 3567, 2280, 4451, 2280, 3435, 2831, 3591, 2274, 4059, 1540, 3024, 4848, 4941, 4330, 4922, 4343, 2979, 40, 4800, 2975, 4282, 4673, 4779, 46, 4285, 27, 3686, 4480, 4478, 1092, 2003, 3630, 341, 1103, 2706, 437, 438, 439, 4597, 441, 442, 443, 444, 445, 446, 447, 1529, 70, 1720, 1720, 2927, 623, 4815, 1721, 4191, 4925, 4505, 1947, 1946, 4196, 4509, 4510, 4199, 1666, 2658, 595, 4383, 1332, 734, 3611, 4761, 3855, 1224, 4526, 3338, 2659, 2665, 1987, 2670, 4754, 3306, 4639, 3840, 2680, 1986, 3283, 1295, 1277, 4225, 1296, 3801, 3816, 4218, 4446, 3281, 4621, 4620, 3339, 543, 4415, 3083, 3233, 4215, 548, 4757, 550, 4744, 4758, 553, 1816, 555, 134, 557, 4269, 2662, 201, 2594, 1598, 2502, 564, 2592, 1819, 4381, 568, -1, 434, 1245, 1242, 4445, 1298, 575, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, 1303, -1, -1, 4269, -1, -1, -1, -1, 4598, -1, 4307, 175, 598, -1, -1, -1, 180, 603, -1, -1, -1, 4318, 608, -1, -1, 4322, 612, 4324, -1, -1, -1, 4328, 4329, 260, -1, -1, -1, -1, -1, -1, -1, -1, -1, 629, -1, -1, -1, -1, -1, -1, -1, -1, 216, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4353, 4353, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, 4487, 40, 15, 16, 17, 678, -1, 46, -1, 260, 4555, -1, -1, -1, 4380, 4380, -1, -1, 691, 32, 693, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, 70, -1, 46, -1, 4522, -1, 4524, -1, -1, 713, 714, -1, 716, 717, -1, -1, -1, 721, -1, 4456, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, 735, -1, -1, -1, 739, -1, -1, 4475, -1, -1, 745, -1, -1, -1, 4621, -1, -1, -1, 4445, -1, -1, -1, 757, -1, -1, -1, -1, -1, 341, 4456, -1, -1, -1, 134, 769, -1, -1, -1, -1, 4646, -1, -1, -1, -1, -1, -1, -1, -1, 4475, 8, -1, -1, 11, 4654, -1, -1, -1, -1, -1, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, 175, -1, -1, 812, -1, 180, -1, 40, -1, 4529, -1, -1, -1, 46, -1, -1, -1, -1, 4835, 828, -1, -1, -1, -1, 833, 834, 175, -1, -1, 4652, -1, 180, -1, -1, -1, 4716, -1, 70, -1, -1, -1, 216, -1, -1, -1, -1, -1, 434, -1, -1, 859, 860, 201, 202, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, -1, -1, 216, -1, -1, -1, -1, -1, -1, -1, 884, 4578, 4578, -1, -1, -1, -1, -1, -1, -1, 260, 895, 4710, -1, -1, 899, -1, -1, 4774, -1, -1, -1, -1, 247, -1, -1, 134, -1, -1, -1, 914, -1, -1, -1, 4762, -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, 929, -1, -1, -1, -1, -1, -1, 936, 937, 4810, -1, -1, -1, -1, -1, 4816, 4817, -1, -1, -1, -1, -1, 175, -1, 953, 954, 955, 180, 957, -1, 959, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, 4784, -1, -1, -1, -1, 341, 4687, -1, -1, 8, -1, -1, 11, -1, 32, -1, -1, -1, -1, -1, -1, -1, 216, -1, 3, -1, -1, -1, -1, 8, -1, 341, 11, -1, -1, -1, 15, 16, 17, -1, -1, 40, -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, 32, -1, 1025, 35, 1027, 1028, -1, 4844, 40, -1, -1, -1, -1, 260, 46, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, 1055, 28, -1, 4930, -1, -1, 70, -1, -1, -1, -1, -1, -1, 434, -1, 4942, 4943, -1, -1, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, 1085, 1086, -1, -1, -1, 1090, -1, 1092, -1, 434, -1, 68, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, 4801, 4801, -1, -1, -1, 1113, -1, 455, 1116, 341, -1, 1119, -1, -1, 4815, 4815, 4815, 4815, 4815, 4815, -1, -1, -1, -1, 1132, 4866, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 175, 119, -1, 4860, -1, 180, -1, 201, 126, -1, -1, 129, -1, -1, -1, 1161, -1, -1, -1, -1, 175, -1, -1, -1, -1, 180, -1, 4866, 4866, 4866, 4866, 4866, 4866, -1, 4860, -1, 154, -1, -1, -1, -1, 216, -1, 1189, 1190, 1191, 201, 202, 1194, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 216, -1, -1, 434, 4922, 260, 185, 1214, -1, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, -1, -1, 4941, 260, 4925, 4925, 4925, 4925, 4925, 4925, 247, -1, -1, -1, 4922, -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, 1256, -1, -1, 1259, -1, 4941, -1, -1, -1, -1, -1, -1, -1, -1, 242, -1, 244, -1, -1, -1, -1, -1, -1, -1, -1, -1, 254, -1, -1, -1, -1, -1, 1288, -1, 262, -1, 1292, 1293, -1, -1, -1, -1, -1, -1, 272, -1, -1, 1303, 1304, 1305, -1, -1, -1, -1, -1, -1, 341, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1325, -1, -1, -1, -1, -1, -1, 341, -1, 306, -1, -1, 309, 310, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1363, 336, -1, 32, -1, -1, -1, 36, -1, -1, -1, 40, -1, 1376, 1377, -1, -1, 46, -1, -1, -1, 1384, -1, -1, 1387, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, 70, 434, -1, -1, -1, 1409, -1, 1411, 441, 442, 443, 444, 445, 446, 447, 1419, -1, -1, 1422, -1, -1, 434, -1, 399, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, -1, -1, -1, 1446, -1, -1, -1, -1, 117, -1, -1, 1454, 1455, 1456, 1457, 1458, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1469, -1, -1, 1472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1483, -1, 1485, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, 1496, 1497, 15, 16, 17, -1, -1, -1, -1, 1505, -1, -1, -1, 175, -1, -1, -1, -1, 180, 1515, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, 1534, 201, 202, -1, -1, -1, -1, -1, -1, 1543, 1544, 1545, 1546, -1, -1, -1, 216, -1, -1, 70, -1, 1555, -1, -1, -1, -1, -1, -1, 1562, -1, -1, 1565, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1575, -1, -1, -1, -1, -1, 247, 1582, -1, -1, -1, -1, 1587, -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1624, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1634, -1, -1, -1, 1638, -1, -1, 1641, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1651, -1, -1, -1, -1, -1, -1, 175, 1659, 1660, -1, -1, 180, 1664, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 341, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1689, -1, -1, -1, -1, -1, -1, 1696, -1, 1698, 216, -1, -1, 1702, 1703, -1, 1705, -1, -1, -1, -1, -1, -1, 1712, -1, -1, -1, -1, -1, -1, 1719, -1, -1, -1, -1, 1724, 1725, -1, -1, 1728, -1, 396, -1, 1732, -1, 1734, -1, -1, -1, -1, 1739, 1740, -1, -1, 260, -1, -1, 1746, 1747, 1748, -1, -1, -1, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, -1, 1761, -1, 1763, 1764, -1, -1, 1767, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, 1783, 1784, 1785, 1786, -1, -1, -1, 1790, 1791, -1, -1, -1, 1795, -1, -1, 1798, -1, -1, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 0, 1812, -1, -1, -1, -1, -1, 1818, 1819, -1, 1821, -1, -1, 341, -1, -1, -1, 1828, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, -1, -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, 67, 68, -1, 54, -1, -1, 73, -1, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 86, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, 105, 434, -1, 108, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, 120, -1, 122, -1, -1, -1, 126, -1, -1, -1, -1, -1, 132, -1, 1945, -1, 1947, -1, 1949, -1, 140, -1, 142, -1, -1, -1, -1, -1, 148, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, -1, 163, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1984, -1, -1, -1, -1, -1, 179, 1991, -1, 1993, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2022, -1, 35, -1, -1, -1, -1, 218, 219, 2031, -1, 2033, 207, 224, -1, -1, -1, 212, -1, -1, -1, 54, -1, -1, 235, -1, -1, -1, 2050, -1, -1, -1, -1, -1, -1, 246, -1, -1, -1, 2061, -1, 2063, 2064, -1, -1, -1, 2068, -1, 2070, 244, 2072, -1, 2074, -1, 87, -1, 2078, -1, -1, 2081, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 285, -1, -1, -1, 2100, -1, -1, -1, -1, -1, -1, -1, 297, -1, 2110, -1, -1, 302, 303, -1, 305, 2117, -1, -1, -1, 310, -1, 2123, -1, -1, 315, -1, -1, 318, -1, -1, 2132, 144, 323, -1, -1, 310, -1, 328, 329, 314, -1, -1, -1, -1, -1, 336, 321, -1, -1, 340, 2152, -1, -1, 328, 2156, 2157, -1, -1, -1, 350, -1, 336, -1, 2165, 177, -1, -1, 198, -1, -1, -1, 362, -1, 348, -1, -1, 207, -1, -1, -1, 2182, 356, -1, -1, -1, 216, -1, -1, -1, -1, 381, -1, -1, -1, 207, -1, -1, -1, -1, 212, 391, 376, -1, -1, -1, 8, 397, 2209, 11, 2211, 2212, 402, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, 415, -1, -1, -1, -1, 32, -1, 244, 22, -1, -1, 410, 2238, 40, 28, 414, 415, -1, -1, 46, 2246, 436, 2248, -1, -1, -1, -1, -1, 2254, -1, -1, -1, -1, -1, -1, -1, 451, -1, 8, 454, -1, 11, 2268, 70, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, 68, -1, 2282, -1, -1, 2285, -1, 2287, 32, -1, 2290, -1, -1, 2293, -1, -1, 40, -1, -1, 310, -1, -1, 46, 314, -1, -1, -1, -1, -1, -1, 321, -1, -1, -1, -1, 8, -1, 328, 11, 2319, -1, -1, 15, 16, 17, 336, 70, -1, 2328, 2329, -1, 119, -1, -1, -1, -1, -1, 348, 126, 32, -1, 129, -1, -1, -1, 356, -1, 40, -1, -1, -1, -1, 2352, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 376, 154, 2367, -1, -1, -1, -1, -1, -1, 175, -1, -1, 70, -1, 180, -1, -1, -1, -1, 2384, -1, 2386, 2387, 2388, 2389, -1, -1, -1, -1, -1, -1, -1, 185, -1, 410, 201, 202, -1, 414, -1, -1, -1, -1, -1, -1, -1, -1, 2412, -1, -1, 216, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2425, -1, -1, -1, -1, -1, 175, -1, -1, -1, -1, 180, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, -1, -1, -1, -1, -1, -1, 242, -1, 244, 201, 202, 260, -1, -1, 263, -1, -1, -1, 254, 2467, -1, -1, -1, -1, 216, -1, 262, -1, -1, 2477, -1, -1, -1, -1, 175, 2483, 272, -1, -1, 180, -1, -1, -1, -1, -1, -1, 2494, -1, -1, -1, -1, -1, -1, 2501, -1, 247, -1, -1, 2506, -1, 201, 202, -1, -1, -1, -1, 543, -1, 260, -1, 306, 548, -1, 309, 310, 216, -1, -1, -1, -1, -1, -1, 2530, 2531, 2532, -1, -1, 2535, -1, -1, -1, -1, 341, -1, -1, 2543, 2544, 2545, 2546, -1, 336, -1, -1, -1, -1, -1, 247, -1, 2556, -1, -1, 2559, -1, 2561, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, 22, 2573, 2574, -1, -1, 2577, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2589, -1, 2591, -1, 2593, -1, 2595, -1, 341, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 399, -1, -1, -1, -1, 2616, 54, 68, -1, 2620, -1, -1, -1, -1, -1, -1, 2627, -1, 2629, 2630, 2631, -1, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, 2647, 341, -1, 87, 452, -1, -1, -1, -1, -1, -1, -1, 2659, -1, -1, 691, -1, 2664, -1, -1, -1, -1, 119, 2670, -1, -1, -1, -1, -1, 126, -1, -1, 129, 2680, -1, -1, 2683, -1, -1, 2686, 716, 2688, -1, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, 154, -1, 735, 144, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, 757, -1, 2730, -1, 2732, -1, -1, 185, -1, 2737, -1, -1, 177, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, 452, -1, -1, 68, 2763, -1, 2765, 2766, 2767, -1, -1, 207, -1, -1, -1, -1, 212, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 242, -1, 244, -1, -1, -1, -1, 828, -1, -1, -1, -1, 254, -1, -1, 244, -1, -1, -1, -1, 262, 119, -1, -1, -1, -1, -1, -1, 126, -1, 272, 129, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, 306, -1, -1, 309, 310, -1, -1, -1, -1, -1, -1, -1, 2868, -1, -1, -1, -1, 310, -1, -1, -1, 314, -1, 185, 8, -1, -1, 11, 321, -1, 336, 15, 16, 17, -1, 328, -1, -1, -1, -1, -1, -1, -1, 336, 929, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, 348, 40, -1, -1, -1, -1, -1, 46, 356, -1, -1, -1, -1, 953, 954, 955, -1, -1, -1, -1, -1, -1, -1, -1, -1, 242, -1, 244, 376, -1, -1, 70, -1, -1, -1, -1, -1, 254, 399, 2950, -1, -1, -1, -1, -1, 262, 2957, 2958, -1, -1, -1, -1, -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, 410, -1, -1, -1, 414, -1, -1, -1, -1, -1, 13, -1, -1, -1, -1, -1, 19, -1, 2991, 2992, -1, -1, -1, -1, -1, -1, 29, 306, -1, -1, 309, 310, -1, -1, 3007, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, -1, -1, 3022, 3023, -1, -1, -1, -1, -1, -1, 336, 3031, 3032, 3033, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 175, -1, 3049, -1, -1, 180, -1, -1, -1, -1, -1, -1, -1, -1, 1090, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 201, 202, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1116, 216, -1, -1, -1, -1, 399, -1, -1, -1, -1, -1, -1, -1, -1, 3102, -1, 3104, -1, -1, -1, 3108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, -1, -1, -1, 3124, -1, -1, -1, -1, -1, -1, -1, 260, -1, 3134, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3150, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3162, -1, 194, -1, -1, -1, -1, 3169, -1, -1, 202, -1, -1, 205, 206, 3177, 208, 3179, -1, 211, -1, 213, -1, 3185, -1, 3187, -1, -1, 3190, -1, -1, -1, -1, 3195, 3196, 3197, 3198, -1, -1, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, -1, 341, -1, 3215, 3216, -1, -1, -1, -1, -1, -1, -1, -1, 3225, -1, 1256, -1, 3229, -1, -1, -1, 3233, -1, -1, -1, -1, -1, -1, -1, -1, 3242, -1, -1, 3245, -1, 3247, -1, -1, -1, -1, -1, -1, -1, -1, 3256, -1, -1, 3259, 3260, -1, -1, -1, 3264, 3265, -1, -1, -1, 3269, -1, 3271, -1, -1, -1, 1304, -1, -1, 3278, 3279, 3280, 3281, -1, 3283, 3284, -1, -1, -1, 3288, 3289, -1, -1, -1, -1, -1, 3295, -1, -1, -1, -1, -1, 3301, 3302, 3303, -1, -1, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, 452, -1, -1, 3327, -1, -1, -1, 22, -1, -1, -1, -1, -1, 28, 3338, -1, 3340, -1, -1, -1, -1, -1, -1, 1376, -1, -1, -1, -1, -1, -1, -1, 1384, -1, -1, -1, -1, -1, 3361, 3362, 3363, -1, 3365, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, 1411, 3383, 3384, 3385, 3386, -1, -1, -1, 1419, -1, -1, 1422, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3422, -1, -1, -1, -1, -1, 119, 1458, -1, -1, -1, -1, -1, 126, -1, -1, 129, -1, -1, -1, -1, 1472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1485, -1, -1, -1, -1, -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, 185, -1, -1, -1, -1, 32, -1, -1, -1, 8, -1, 1534, 11, 40, -1, 3509, 15, 16, 17, 46, -1, -1, -1, -1, -1, -1, -1, 551, -1, -1, -1, -1, 1555, 32, -1, 559, -1, -1, -1, 1562, -1, 40, 566, 70, -1, 569, 570, 46, -1, -1, 574, -1, -1, -1, -1, -1, 3550, 242, 3552, 244, 3554, 585, -1, -1, -1, -1, 3560, -1, -1, 254, -1, 70, 3566, -1, -1, 599, -1, 262, -1, -1, -1, 3575, -1, -1, -1, -1, -1, 272, -1, -1, 614, -1, 616, -1, -1, 619, 8, 621, -1, 11, 624, 3595, -1, 15, 16, 17, -1, -1, -1, -1, -1, 3605, -1, -1, -1, -1, -1, -1, -1, 3613, 32, 306, -1, -1, 309, 310, -1, -1, 40, 3623, -1, -1, -1, 3627, 46, -1, -1, 3631, 3632, -1, -1, 1664, -1, -1, -1, -1, -1, -1, 175, -1, -1, 336, -1, 180, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, 692, -1, -1, 3665, -1, 3667, 201, 202, 175, -1, -1, 1702, 1703, 180, -1, 3677, -1, -1, -1, -1, -1, 216, -1, -1, -1, -1, -1, -1, 1719, -1, -1, -1, -1, -1, 201, 202, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3707, 399, -1, -1, 216, -1, -1, 247, -1, -1, 747, -1, 3719, -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, -1, -1, -1, -1, -1, -1, 3750, -1, -1, -1, -1, 260, -1, 175, 263, -1, 3760, 3761, 180, -1, -1, -1, -1, -1, 3768, 3769, -1, -1, -1, 3773, -1, -1, -1, 807, 3778, -1, -1, 3781, 3782, 201, 202, -1, 3786, 3787, -1, 1818, -1, -1, 3792, 3793, 3794, 3795, 3796, -1, 216, 1828, 3800, 3801, -1, 3803, -1, -1, 3806, -1, 341, -1, 3810, -1, -1, -1, 3814, -1, -1, -1, -1, -1, 3820, -1, -1, -1, -1, -1, 3826, -1, -1, 247, -1, 3831, -1, -1, -1, -1, 341, 3837, -1, -1, -1, -1, 260, 873, 3844, 263, -1, -1, -1, -1, -1, -1, 3852, -1, -1, 3855, -1, -1, 888, -1, 3860, -1, -1, -1, -1, -1, -1, -1, -1, -1, 900, -1, 902, 3873, -1, -1, 3876, -1, 22, -1, 910, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, 922, -1, -1, 925, 3896, 3897, -1, -1, -1, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, 1945, -1, 1947, 452, -1, 3921, -1, 341, 68, -1, -1, -1, -1, 434, 960, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, 452, -1, -1, -1, -1, -1, -1, -1, 1984, -1, -1, 3958, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, 25, -1, 3978, -1, -1, -1, 126, -1, -1, 129, -1, -1, -1, -1, -1, -1, 3992, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 154, -1, -1, -1, -1, -1, 434, -1, -1, 437, 438, 439, 71, 441, 442, 443, 444, 445, 446, 447, -1, -1, 4032, -1, 452, -1, 85, -1, -1, -1, -1, 185, -1, 4043, -1, -1, -1, -1, 4048, -1, -1, -1, -1, -1, 103, -1, 4056, -1, -1, -1, 109, -1, -1, 8, 1094, -1, 11, -1, -1, -1, 15, 16, 17, 4073, 4074, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, 32, -1, -1, -1, -1, -1, -1, 143, 40, -1, -1, 242, -1, 244, 46, 4102, 2132, -1, -1, 155, -1, -1, -1, 254, 160, -1, -1, -1, -1, -1, 166, 262, -1, -1, -1, -1, 2152, -1, 70, -1, -1, 272, -1, -1, -1, -1, -1, 183, -1, -1, -1, -1, -1, -1, 4141, -1, -1, -1, -1, -1, -1, -1, -1, 4150, -1, -1, -1, -1, -1, -1, -1, -1, 208, -1, -1, 306, -1, -1, 309, 310, -1, 4168, 4169, -1, -1, 4172, -1, -1, -1, -1, -1, -1, -1, 229, -1, -1, -1, -1, -1, 4186, 4187, -1, -1, -1, 4191, 336, -1, -1, -1, 4196, -1, -1, 4199, 4200, -1, 4202, -1, 4204, -1, -1, 4207, 4208, -1, -1, 260, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4223, -1, -1, -1, -1, 22, -1, 175, 280, -1, -1, 28, 180, 4236, 4237, 4238, 4239, 4240, 290, -1, -1, -1, -1, -1, 1277, 1278, -1, -1, -1, -1, -1, -1, 399, 201, 202, 2287, -1, -1, -1, -1, -1, -1, -1, -1, -1, 317, -1, -1, 216, -1, 322, 68, 324, -1, -1, -1, 4279, 4280, 330, -1, -1, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, 362, -1, 260, 365, -1, 263, 1349, 369, -1, -1, -1, -1, 119, 4326, 4327, -1, 378, 4330, -1, 126, 4333, 383, 129, -1, -1, -1, -1, -1, -1, -1, 4343, -1, -1, 395, -1, -1, 4349, -1, 4351, -1, -1, -1, -1, -1, 4357, -1, 408, 154, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4370, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1410, 4381, 4382, 4383, -1, -1, -1, -1, -1, -1, -1, 185, -1, -1, -1, 8, 341, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, 4412, -1, -1, 4415, -1, 4417, -1, 32, -1, -1, -1, 8, -1, -1, 11, 40, -1, -1, 15, 16, 17, 46, -1, -1, -1, -1, 2467, -1, -1, 4441, -1, -1, -1, 4445, -1, 32, 242, 4449, 244, -1, -1, -1, -1, 40, 4456, 70, -1, -1, 254, 46, -1, -1, -1, 4465, -1, -1, 262, -1, -1, -1, -1, 8, -1, 4475, 11, -1, 272, -1, 15, 16, 17, -1, -1, 70, -1, 4487, -1, 434, -1, 4491, 437, 438, 439, 1525, 441, 442, 443, 444, 445, 446, 447, -1, -1, 40, -1, 452, -1, -1, -1, 46, 306, -1, 4514, 309, 310, -1, -1, -1, -1, 4521, 4522, 4523, 4524, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, 4536, -1, -1, -1, 153, -1, 336, -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4555, -1, -1, -1, -1, -1, -1, 175, -1, -1, -1, -1, 180, -1, -1, -1, 4571, -1, -1, -1, -1, 4576, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 201, 202, 175, 2620, -1, 1623, -1, 180, -1, -1, -1, -1, -1, -1, -1, 216, -1, 399, -1, 1637, -1, -1, 1640, -1, 1642, -1, 1644, -1, 201, 202, 4618, -1, 1650, 4621, -1, -1, -1, -1, -1, -1, -1, -1, 4630, 216, -1, -1, 247, 4635, -1, 4637, -1, 4639, 175, -1, -1, -1, -1, 180, 4646, 260, -1, -1, 263, -1, 4652, -1, 4654, -1, -1, -1, -1, -1, -1, -1, 247, -1, 4664, 1695, 201, 202, -1, 1699, -1, 1701, -1, -1, 1704, 260, -1, -1, 263, -1, -1, 216, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, 4710, -1, 247, -1, -1, -1, 4716, -1, -1, -1, -1, 32, -1, -1, -1, 260, -1, -1, 341, 40, -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, 4743, 4744, -1, -1, -1, 4748, -1, -1, -1, -1, -1, 4754, -1, 341, 4757, -1, 70, -1, 4761, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, 4774, -1, 11, -1, -1, -1, 15, 16, 17, -1, 4784, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, 4802, -1, -1, 40, 341, -1, -1, -1, 4810, 46, -1, -1, -1, -1, 4816, 4817, 4818, -1, -1, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, 70, -1, 4837, -1, 2868, -1, -1, -1, -1, 4844, -1, -1, -1, -1, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, 175, -1, -1, 452, -1, 180, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 201, 202, -1, -1, -1, -1, -1, -1, -1, 434, -1, -1, 437, 438, 439, 216, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, 4916, 4917, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4930, -1, -1, -1, -1, -1, 247, -1, -1, -1, 175, -1, 4942, 4943, -1, 180, -1, -1, -1, 260, 22, -1, 263, -1, -1, -1, 28, -1, -1, -1, -1, -1, 2991, 2992, -1, -1, 201, 202, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3007, -1, -1, 216, -1, 2013, 2014, -1, -1, -1, 2018, 2019, -1, -1, -1, 2023, 3023, -1, 68, -1, -1, -1, -1, -1, -1, 3032, 3033, -1, -1, 2037, -1, -1, -1, -1, 247, -1, 2044, -1, -1, -1, 2048, 2049, 3049, -1, 2052, 2053, -1, 260, -1, -1, 263, 2059, 341, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2071, -1, 2073, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, -1, -1, 129, -1, -1, 2090, -1, -1, 8, -1, 2095, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, 2108, -1, -1, -1, 154, -1, -1, -1, 2116, 32, 2118, -1, 2120, 2121, 2122, 604, -1, 40, -1, 2127, 2128, -1, -1, 46, -1, -1, -1, -1, 341, 2137, -1, -1, -1, -1, 2142, 185, 625, -1, -1, 2147, -1, -1, -1, 3150, -1, 434, -1, 70, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, 452, 2172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2183, -1, 2185, -1, -1, -1, -1, 2190, -1, -1, -1, 2194, -1, 2196, 2197, 2198, 2199, 242, 2201, 244, -1, -1, -1, -1, -1, -1, -1, -1, -1, 254, -1, 2214, 2215, 2216, -1, -1, -1, 262, -1, -1, -1, 2224, 2225, -1, -1, -1, 434, 272, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, 452, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, 175, -1, -1, -1, 306, 180, -1, 309, 310, -1, -1, -1, -1, -1, 32, -1, -1, -1, 2278, 3278, 3279, 3280, 40, -1, -1, -1, 201, 202, 46, -1, -1, -1, -1, -1, 336, -1, -1, -1, -1, -1, -1, 216, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, 22, -1, -1, -1, 399, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, 68, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, 891, 46, -1, -1, -1, -1, -1, 175, -1, -1, -1, -1, 180, -1, -1, -1, 341, -1, -1, -1, 911, -1, -1, 2433, -1, 70, -1, -1, -1, 920, -1, -1, -1, 201, 202, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, 216, -1, 129, -1, -1, -1, -1, -1, -1, -1, 2468, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 154, -1, -1, -1, 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, 996, 185, -1, -1, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, 452, -1, -1, 175, -1, -1, -1, -1, 180, 8, -1, -1, 11, -1, 3550, -1, 15, 16, 17, -1, -1, -1, -1, -1, 3560, -1, -1, -1, -1, 201, 202, -1, -1, 32, -1, -1, 242, -1, 244, -1, -1, 40, -1, -1, 216, -1, 341, 46, 254, -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, 3595, -1, -1, -1, -1, -1, -1, 272, -1, -1, -1, -1, 70, -1, -1, -1, 247, -1, -1, -1, -1, -1, -1, 1100, -1, -1, -1, -1, 3623, 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, 306, -1, -1, 309, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2657, -1, -1, -1, -1, -1, -1, -1, -1, -1, 336, -1, -1, -1, -1, -1, -1, -1, -1, 434, -1, 3677, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, 452, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 341, -1, -1, 2709, 2710, -1, -1, 175, -1, -1, -1, -1, 180, -1, -1, -1, -1, -1, -1, -1, -1, 2727, -1, -1, 399, -1, -1, -1, -1, -1, -1, -1, 187, 201, 202, -1, -1, -1, -1, -1, -1, 196, 197, -1, -1, -1, 2752, -1, 216, 204, -1, -1, -1, -1, -1, 2761, -1, -1, -1, -1, 215, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2777, 2778, -1, -1, -1, 2782, -1, -1, 247, -1, 2787, 2788, 2789, -1, -1, -1, -1, 3793, 3794, 3795, 3796, 260, 434, -1, 263, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, 452, 2818, 2819, 2820, 2821, -1, -1, -1, -1, -1, 1308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, 2855, -1, 2857, 2858, 2859, -1, -1, -1, -1, -1, -1, 32, 2867, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, 341, 46, -1, -1, -1, 8, -1, -1, 11, -1, -1, 1371, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, 46, -1, -1, -1, 1407, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2936, -1, -1, -1, -1, -1, -1, -1, 2944, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2963, -1, -1, -1, -1, -1, -1, -1, -1, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, 2986, -1, -1, -1, 452, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1487, -1, -1, 175, -1, -1, -1, -1, 180, -1, -1, -1, -1, -1, -1, 1502, -1, -1, -1, -1, -1, -1, -1, 1510, 3030, -1, -1, -1, 3034, 201, 202, -1, -1, -1, 1521, -1, -1, -1, -1, -1, -1, -1, -1, -1, 216, 175, -1, -1, -1, -1, 180, -1, -1, -1, -1, -1, -1, 3063, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 201, 202, -1, -1, 247, -1, -1, -1, -1, -1, 1568, -1, -1, -1, -1, 216, 3093, 260, -1, -1, 263, -1, -1, 1581, 550, -1, 4102, -1, -1, -1, 3107, -1, -1, -1, 3111, 1593, 562, -1, -1, -1, -1, 567, -1, -1, -1, 3122, 247, 1605, -1, -1, -1, -1, 578, -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, 594, -1, -1, -1, 598, -1, -1, -1, -1, -1, 604, -1, -1, -1, 608, 609, -1, -1, -1, -1, -1, 615, -1, 1649, -1, -1, 1652, -1, -1, -1, 341, 625, 626, -1, -1, -1, -1, -1, -1, -1, 634, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, 341, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, 713, 714, -1, -1, 434, -1, 719, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, 452, -1, -1, -1, -1, -1, -1, -1, -1, -1, 745, -1, -1, -1, -1, 1782, -1, -1, -1, -1, -1, -1, -1, -1, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, 452, -1, -1, -1, -1, -1, 4333, -1, -1, -1, -1, -1, 1821, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4349, -1, -1, -1, -1, -1, -1, -1, -1, 175, -1, -1, -1, -1, 180, -1, -1, -1, 3368, -1, 3370, -1, -1, -1, -1, -1, -1, 3377, -1, -1, -1, -1, -1, 4382, -1, 201, 202, -1, -1, -1, -1, -1, -1, -1, 3394, -1, -1, -1, -1, -1, 216, -1, -1, -1, -1, -1, -1, -1, -1, 3409, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3420, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, -1, -1, 884, -1, -1, 3438, -1, -1, -1, 891, -1, 260, -1, 895, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 911, -1, -1, 3465, -1, -1, -1, -1, -1, 920, -1, -1, -1, -1, -1, -1, 3478, 3479, 3480, -1, -1, 3483, 3484, 3485, 3486, 3487, 3488, -1, -1, -1, 4491, 3493, 3494, -1, 3496, 3497, 3498, 3499, 3500, 3501, 3502, -1, -1, -1, -1, -1, -1, -1, 959, 3511, -1, 3513, 3514, -1, -1, 1998, -1, -1, -1, 2002, 2003, -1, -1, 341, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 996, -1, -1, -1, -1, -1, 3553, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4571, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1031, -1, 2065, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2077, -1, -1, -1, -1, -1, 1051, -1, -1, -1, 1055, -1, -1, -1, -1, -1, -1, -1, 1063, -1, -1, -1, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, 2114, -1, -1, 452, -1, -1, -1, -1, -1, 1091, -1, -1, -1, -1, -1, -1, -1, 3650, 1100, -1, 1102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1117, -1, -1, 1120, -1, -1, -1, -1, -1, -1, 3678, 3679, 3680, -1, -1, 1132, -1, -1, -1, -1, -1, -1, 3690, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1161, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1189, 1190, 1191, -1, -1, 1194, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1214, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2269, -1, -1, -1, -1, 1242, -1, -1, -1, -1, -1, -1, 8, 1250, 1251, 11, -1, -1, -1, 15, 16, 17, 1259, 1260, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, 46, 1288, -1, -1, -1, 1292, 1293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2339, 1308, -1, -1, 70, -1, -1, 1314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3902, -1, -1, -1, 3906, 3907, 3908, 3909, -1, -1, 3912, -1, -1, -1, 53, -1, -1, -1, -1, -1, 1371, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, 3934, 3935, 3936, 3937, -1, 3939, 3940, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3951, 3952, -1, -1, -1, -1, -1, 1407, -1, -1, -1, -1, -1, 101, -1, -1, 175, -1, 3969, -1, -1, 180, -1, -1, -1, 3976, 3977, 2459, 3979, -1, -1, 119, -1, -1, -1, -1, -1, 8, 126, -1, 11, 129, 201, 202, 15, 16, 17, -1, 2480, -1, -1, -1, -1, -1, -1, -1, -1, 216, -1, 2491, -1, 32, -1, -1, -1, -1, 154, 1467, -1, 40, -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1487, 247, -1, -1, -1, -1, -1, 182, -1, -1, 185, -1, 70, -1, 260, 1502, -1, 263, -1, -1, -1, -1, -1, 1510, -1, 4063, -1, -1, -1, 1516, -1, -1, -1, -1, 1521, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4084, -1, -1, -1, 1537, -1, -1, -1, 1541, 230, -1, 232, -1, -1, -1, -1, -1, -1, -1, -1, 1553, 242, -1, 244, -1, -1, -1, -1, -1, -1, 4114, -1, -1, 254, -1, 1568, -1, -1, -1, -1, -1, 262, 1575, -1, -1, -1, -1, -1, 1581, 341, 271, 272, -1, -1, 1587, -1, -1, -1, -1, -1, 1593, -1, -1, -1, 2629, 2630, 2631, -1, -1, -1, -1, 175, 1605, -1, -1, -1, 180, -1, -1, -1, -1, -1, -1, -1, -1, 306, -1, -1, 309, 310, 311, 1624, -1, 1626, 1627, -1, -1, 201, 202, -1, -1, -1, -1, -1, -1, 4189, 1639, -1, -1, -1, -1, -1, 216, -1, -1, 336, 1649, -1, -1, 1652, 4204, 1654, 1655, -1, -1, -1, -1, -1, -1, 350, -1, 2696, -1, 1666, 2699, -1, 2701, -1, -1, -1, -1, 2706, 434, 247, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, 260, -1, -1, 263, 452, -1, -1, -1, -1, 1698, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 399, -1, -1, -1, -1, -1, -1, -1, -1, 4271, -1, -1, -1, -1, 2757, -1, -1, -1, -1, -1, -1, 1732, -1, 1734, -1, -1, -1, 4289, 1739, 1740, -1, 2774, 4294, 4295, -1, 1746, 1747, 1748, -1, -1, -1, 1752, -1, 1754, 1755, 1756, 1757, 1758, 1759, -1, 1761, -1, 1763, 1764, -1, 2798, 1767, -1, -1, 341, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1782, 1783, 1784, 1785, 1786, 1787, -1, -1, -1, 1791, -1, -1, -1, 1795, -1, -1, 1798, 4350, -1, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, -1, 1812, -1, -1, -1, -1, -1, -1, 1819, -1, 1821, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2863, -1, 2865, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4396, -1, -1, -1, -1, -1, -1, 4403, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, 452, -1, -1, -1, -1, 58, 4438, -1, -1, -1, -1, 2924, -1, -1, -1, -1, -1, 4449, 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, 85, -1, -1, -1, 2949, -1, -1, 4471, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, 103, -1, 11, -1, -1, -1, 15, 16, 17, -1, 2973, -1, -1, 4495, -1, -1, -1, 2980, 1949, -1, -1, 124, 4504, 32, -1, -1, -1, -1, -1, -1, -1, 40, 135, -1, -1, -1, -1, 46, -1, -1, 143, -1, -1, 4525, -1, -1, -1, -1, -1, -1, -1, -1, 155, -1, -1, -1, -1, 160, -1, -1, -1, 70, -1, -1, -1, -1, -1, 1998, -1, -1, -1, 2002, 2003, -1, -1, 3038, -1, -1, -1, -1, 183, 2012, -1, -1, -1, 2016, 2017, -1, -1, -1, 2021, -1, -1, 3056, -1, -1, -1, -1, 2029, -1, -1, -1, -1, -1, -1, 208, 3069, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2047, -1, -1, 2050, -1, -1, -1, 4605, -1, -1, 229, -1, -1, -1, 2061, -1, -1, -1, 2065, -1, -1, 2068, -1, -1, -1, -1, -1, -1, -1, 4627, 2077, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, 2089, -1, -1, -1, -1, -1, -1, -1, 175, -1, -1, -1, -1, 180, -1, -1, -1, 2106, 2107, 280, -1, -1, 4662, -1, -1, 2114, -1, -1, -1, 290, -1, -1, -1, -1, 201, 202, -1, 4677, -1, -1, -1, -1, -1, -1, -1, -1, 2135, 2136, -1, 216, 2139, 3172, -1, -1, -1, -1, 317, -1, -1, -1, -1, 322, 4702, 324, -1, -1, -1, -1, -1, 330, -1, -1, 333, 3194, -1, -1, -1, -1, 2167, -1, 247, -1, 2171, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, 3220, 2189, 362, -1, -1, 365, -1, -1, -1, 369, -1, -1, 2200, -1, -1, -1, 376, -1, 378, -1, -1, -1, -1, 383, -1, 2213, -1, -1, -1, -1, -1, -1, -1, 2221, 4773, 3255, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 408, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4798, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, 341, -1, -1, -1, -1, 2268, 2269, -1, 3303, 32, -1, -1, -1, -1, 2277, -1, -1, 40, -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, 3346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2339, -1, -1, -1, 2343, -1, -1, -1, -1, -1, -1, -1, -1, 2352, -1, -1, -1, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, 450, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2407, -1, 3441, 32, -1, 2412, 35, -1, 175, -1, -1, 40, -1, 180, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 201, 202, 2443, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 216, -1, -1, 2459, -1, -1, -1, -1, -1, 2465, -1, -1, -1, -1, -1, -1, -1, 2473, -1, -1, -1, 2477, -1, -1, 2480, -1, -1, 2483, -1, -1, -1, 247, -1, -1, -1, 2491, -1, -1, -1, -1, -1, -1, -1, -1, 260, 2501, -1, 263, -1, -1, 2506, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 284, -1, -1, -1, -1, -1, 2530, 2531, 2532, -1, -1, 2535, -1, -1, -1, -1, -1, -1, -1, 2543, 2544, 2545, 2546, -1, -1, 3581, -1, 2551, -1, 175, -1, -1, 2556, 2557, 180, 2559, -1, 2561, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2573, 2574, -1, -1, 2577, -1, 201, 202, 341, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2591, -1, 2593, 216, 2595, -1, 357, 3630, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2616, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, 2627, -1, 2629, 2630, 2631, -1, -1, -1, 197, -1, -1, 260, -1, -1, 263, 204, -1, 2644, -1, -1, 2647, -1, -1, -1, -1, -1, 215, -1, -1, -1, -1, -1, 2659, -1, -1, -1, -1, 2664, -1, -1, -1, -1, -1, 2670, -1, -1, -1, 434, -1, -1, 437, 438, 439, 2680, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, -1, -1, -1, -1, 2696, -1, -1, 2699, -1, 2701, 8, -1, -1, 11, 2706, -1, 2708, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, 341, -1, -1, -1, -1, 2724, 2725, 32, -1, -1, -1, 2730, 3763, -1, -1, 40, -1, -1, -1, -1, -1, 46, -1, 3774, -1, -1, -1, -1, -1, -1, -1, -1, 2751, -1, -1, 2754, -1, -1, 2757, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2774, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3826, -1, -1, -1, 2798, 3831, -1, -1, -1, -1, -1, 3837, -1, -1, -1, -1, -1, -1, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, 2830, 2831, 2832, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, 2854, -1, -1, -1, -1, -1, -1, -1, 3894, 2863, -1, 2865, 2866, -1, -1, 175, 2870, -1, -1, -1, 180, -1, -1, -1, -1, -1, 2880, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3923, -1, -1, -1, 201, 202, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 216, 3943, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2924, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, 2943, -1, -1, -1, -1, -1, 2949, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, 3997, -1, -1, -1, -1, -1, -1, -1, 2973, -1, -1, 282, -1, -1, 2979, 2980, -1, -1, -1, -1, 2985, -1, 2987, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2999, 562, 3001, -1, -1, -1, 567, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 578, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 594, -1, -1, 341, -1, -1, 3038, -1, -1, -1, -1, -1, -1, -1, -1, 609, -1, -1, -1, -1, -1, 615, -1, 3055, 3056, -1, -1, -1, -1, -1, -1, -1, 626, 4097, -1, 4099, -1, 3069, -1, -1, 634, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, 3112, 4145, 40, -1, -1, -1, -1, -1, 46, -1, -1, -1, 3124, -1, -1, 3127, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, 70, -1, -1, -1, -1, 3149, -1, -1, 3152, -1, -1, -1, -1, 719, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3169, -1, -1, 3172, -1, -1, -1, -1, 3177, -1, 3179, -1, -1, -1, -1, -1, 3185, -1, 3187, -1, -1, 3190, -1, -1, -1, 3194, 3195, 3196, 3197, 3198, -1, -1, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, -1, -1, -1, 3215, 3216, -1, -1, -1, 3220, -1, -1, -1, -1, 3225, -1, -1, -1, 3229, -1, 3231, -1, 3233, -1, -1, -1, 4269, -1, -1, -1, -1, 3242, -1, -1, 3245, -1, 3247, -1, 175, -1, -1, -1, -1, 180, 3255, 3256, -1, -1, 3259, 3260, -1, -1, -1, 3264, 3265, -1, -1, -1, -1, -1, 3271, -1, -1, -1, 201, 202, -1, -1, -1, -1, 3281, -1, 3283, -1, -1, -1, -1, -1, -1, 216, -1, -1, -1, -1, 3295, -1, -1, -1, -1, -1, 3301, 3302, 3303, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, -1, -1, -1, -1, 3327, -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, 3340, -1, -1, -1, -1, -1, 3346, -1, -1, -1, -1, -1, 278, 4385, -1, -1, -1, -1, -1, -1, -1, 3361, -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, 4413, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, 3393, 35, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, 341, -1, -1, -1, 4451, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, 3435, -1, -1, -1, -1, 3440, 3441, 3442, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, 1031, -1, -1, -1, 4505, -1, -1, 40, 4509, 4510, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, 1051, -1, -1, 3492, -1, -1, 3495, -1, -1, -1, -1, -1, 1063, -1, -1, -1, -1, 70, -1, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, -1, -1, -1, 1091, -1, -1, 3532, -1, 175, -1, -1, -1, -1, 180, 1102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3554, 1117, -1, -1, 1120, -1, 201, 202, -1, -1, -1, 4597, 4598, -1, -1, -1, -1, -1, -1, -1, -1, 216, -1, 3577, 3578, -1, -1, 3581, -1, -1, -1, -1, -1, -1, -1, -1, 3590, -1, 3592, -1, 158, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, -1, -1, -1, 175, -1, -1, -1, -1, 180, -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, 197, 3630, 3631, 3632, -1, -1, -1, 204, 201, 202, -1, -1, -1, -1, -1, -1, -1, -1, 215, -1, -1, -1, -1, 216, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1242, -1, -1, 247, -1, -1, 3686, -1, 1250, 1251, -1, -1, -1, -1, -1, -1, 260, -1, 1260, 263, 341, -1, -1, -1, -1, -1, -1, 3707, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3719, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3750, -1, 1314, -1, -1, -1, -1, -1, -1, -1, 3760, 3761, -1, 3763, -1, -1, -1, -1, 3768, 3769, -1, -1, -1, 3773, 3774, -1, -1, 341, 3778, -1, -1, 3781, 3782, -1, -1, -1, 3786, -1, -1, -1, -1, -1, 3792, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, 3810, -1, -1, -1, 3814, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3826, -1, -1, -1, -1, 3831, -1, -1, -1, -1, -1, 3837, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3852, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 434, -1, -1, 437, 438, 439, 3876, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3894, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1467, -1, -1, -1, -1, -1, 3911, -1, -1, 3914, -1, -1, -1, -1, -1, -1, -1, -1, 3923, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3938, -1, -1, -1, -1, 3943, -1, -1, -1, -1, -1, -1, 3950, -1, -1, -1, 1516, -1, -1, -1, 3958, -1, -1, 604, -1, 8, -1, -1, 11, -1, 3968, -1, 15, 16, 17, -1, -1, 1537, -1, -1, -1, 1541, -1, -1, 625, -1, -1, -1, -1, 32, -1, -1, 35, 1553, -1, -1, 562, 40, -1, 3997, -1, 567, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, 578, -1, -1, -1, -1, 4015, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, 594, -1, -1, -1, -1, -1, 4032, -1, -1, -1, -1, -1, -1, -1, -1, 609, -1, 4043, -1, -1, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 626, -1, -1, -1, -1, -1, 1626, 1627, 634, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1639, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1654, 1655, -1, -1, -1, 4097, -1, 4099, -1, -1, -1, -1, 1666, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4125, -1, -1, -1, -1, 175, -1, -1, -1, -1, 180, -1, -1, -1, -1, -1, 4141, -1, -1, -1, 4145, -1, -1, -1, -1, 4150, 719, -1, -1, -1, -1, 201, 202, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4168, 4169, -1, 216, 4172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4186, -1, -1, -1, -1, 4191, -1, -1, -1, -1, 4196, -1, -1, 4199, 4200, -1, 247, -1, -1, -1, -1, 4207, 4208, -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, 4223, -1, 1787, -1, -1, -1, -1, 4230, -1, 4232, -1, -1, -1, 4236, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 891, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 911, 4269, 4270, -1, -1, -1, -1, -1, -1, 920, -1, 4279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 341, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4316, -1, 4318, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4330, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 604, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 996, -1, -1, -1, -1, -1, -1, -1, -1, -1, 625, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4383, -1, 4385, -1, -1, -1, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4412, 4413, -1, 4415, -1, 4417, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4441, -1, -1, -1, 4445, -1, -1, -1, -1, 2012, 4451, -1, -1, 2016, 2017, 4456, 1100, -1, 2021, -1, -1, -1, 1031, -1, -1, -1, 2029, -1, -1, -1, 22, -1, -1, -1, 4475, -1, 28, -1, -1, -1, -1, -1, 1051, -1, 2047, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1063, -1, -1, -1, 4499, -1, -1, 53, -1, -1, 4505, -1, -1, -1, 4509, 4510, -1, -1, -1, 4514, -1, -1, 68, -1, -1, -1, -1, -1, 1091, -1, -1, -1, 2089, -1, -1, -1, -1, -1, -1, 1102, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2106, 2107, -1, -1, -1, 1117, 101, -1, 1120, -1, -1, 4555, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, 2135, 2136, 126, 4576, 2139, 129, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4597, 4598, -1, -1, -1, 1245, 154, -1, 2167, -1, -1, -1, 2171, -1, -1, -1, -1, -1, -1, -1, -1, 4618, -1, -1, 4621, -1, -1, -1, -1, -1, 2189, -1, 891, 4630, 182, -1, -1, 185, 4635, -1, 4637, 2200, 4639, -1, -1, -1, -1, -1, -1, 4646, -1, -1, 911, -1, 2213, -1, -1, -1, -1, -1, -1, 920, 2221, -1, -1, -1, -1, 4664, 1308, -1, -1, -1, -1, -1, -1, 713, 714, 1242, -1, -1, -1, -1, 230, -1, 232, 1250, 1251, -1, 25, -1, 4687, -1, -1, -1, 242, 1260, 244, -1, -1, -1, 37, -1, -1, -1, -1, -1, 254, 745, -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, 2277, 4716, -1, 58, -1, 271, 272, -1, -1, -1, -1, -1, -1, 1371, -1, -1, 71, -1, -1, 996, -1, -1, -1, -1, -1, -1, 81, -1, 4743, 4744, 85, 1314, -1, -1, -1, -1, -1, -1, -1, 4754, 306, -1, -1, 309, 310, 311, -1, 4762, 103, 1407, -1, -1, -1, -1, 109, -1, -1, -1, -1, 4774, -1, -1, -1, -1, -1, -1, 2343, -1, -1, 124, 336, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, 350, -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, 4810, -1, -1, -1, -1, 155, 4816, 4817, 4818, -1, -1, -1, 162, -1, -1, -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4837, 1100, -1, -1, -1, -1, 183, 1487, 2407, -1, -1, 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1502, 4860, -1, -1, -1, -1, -1, -1, 1510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1521, -1, 220, 2443, -1, -1, -1, -1, -1, -1, -1, 229, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1467, -1, -1, -1, 2465, -1, -1, -1, -1, -1, -1, -1, 2473, -1, -1, -1, -1, 4916, 4917, -1, -1, 260, -1, 4922, 263, -1, 1568, -1, -1, -1, -1, 4930, -1, -1, -1, -1, -1, -1, -1, 1581, -1, 280, 4941, 4942, 4943, -1, -1, -1, -1, 1516, -1, 1593, -1, -1, -1, -1, -1, -1, -1, -1, 299, -1, -1, 1605, -1, -1, -1, -1, -1, -1, 1537, -1, -1, -1, 1541, -1, -1, -1, 317, -1, -1, -1, -1, -1, -1, 324, 1553, -1, -1, -1, 2551, 330, -1, -1, 333, -1, 2557, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1649, -1, -1, 1652, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 362, -1, -1, 365, 366, -1, 368, 369, -1, -1, -1, -1, -1, -1, -1, -1, 378, -1, -1, -1, -1, 383, -1, -1, 1308, -1, -1, 389, -1, -1, 392, -1, -1, 395, -1, -1, 1626, 1627, -1, -1, -1, -1, -1, -1, -1, -1, 408, -1, 8, 1639, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, 2644, -1, -1, -1, 1654, 1655, -1, -1, -1, 1132, -1, -1, 32, -1, -1, -1, 1666, -1, -1, -1, 40, -1, -1, -1, -1, -1, 46, 1371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1161, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, 1782, -1, -1, -1, -1, -1, 1407, 2708, -1, 1189, 1190, 1191, -1, -1, 1194, -1, -1, -1, -1, -1, -1, -1, -1, 2724, 2725, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1214, -1, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, 2751, -1, -1, 2754, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1259, 1787, -1, 71, -1, -1, -1, 1487, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, 175, -1, -1, 1502, -1, 180, -1, -1, -1, -1, 1288, 1510, -1, -1, 1292, 1293, 103, -1, -1, -1, -1, -1, 1521, -1, -1, -1, 201, 202, -1, -1, -1, 2830, 2831, 2832, -1, -1, -1, 124, -1, -1, -1, 216, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, 2854, 143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2866, 155, 1568, -1, 2870, 247, 160, -1, -1, -1, -1, -1, 166, -1, 2880, 1581, -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, 1593, -1, 183, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1605, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1998, -1, -1, -1, 2002, 2003, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, 229, -1, 2943, -1, -1, -1, -1, 32, 1649, -1, 35, 1652, -1, -1, -1, 40, -1, -1, -1, -1, -1, 46, -1, -1, 341, -1, -1, -1, -1, -1, -1, 260, -1, -1, -1, -1, -1, -1, 2979, -1, -1, -1, 271, 2065, 2985, 70, 2987, -1, -1, -1, -1, 280, -1, 370, -1, 2077, -1, -1, 2999, -1, 3001, 290, -1, -1, -1, 2012, -1, -1, -1, 2016, 2017, -1, -1, -1, 2021, -1, -1, -1, -1, -1, -1, -1, 2029, -1, -1, -1, -1, -1, 317, -1, -1, -1, 2114, 322, -1, 324, -1, -1, -1, -1, 2047, 330, -1, -1, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3055, -1, -1, 434, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, -1, 362, -1, -1, 365, -1, -1, -1, 369, 1782, 2089, -1, -1, -1, -1, 376, -1, 378, 175, -1, -1, -1, 383, 180, -1, -1, -1, 2106, 2107, -1, -1, -1, -1, -1, 395, -1, -1, -1, -1, 3112, -1, -1, -1, -1, 201, 202, -1, 408, -1, -1, -1, -1, -1, -1, 3127, -1, 2135, 2136, -1, 216, 2139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3149, -1, -1, 3152, -1, -1, -1, -1, -1, -1, -1, -1, 2167, -1, 247, -1, 2171, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, 2189, -1, -1, -1, -1, 2269, -1, -1, -1, -1, -1, 2200, -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, 2213, -1, -1, -1, -1, -1, -1, -1, 2221, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, 40, -1, 3231, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 341, 2339, 70, 1739, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2277, -1, 1752, -1, 1754, -1, -1, 1757, 1758, 1759, -1, -1, -1, -1, 1764, -1, -1, 1767, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1998, -1, -1, -1, 2002, 2003, 1783, 1784, 1785, 1786, -1, -1, -1, -1, 1791, -1, -1, -1, 1795, -1, -1, 1798, -1, -1, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, -1, 1812, -1, 604, -1, 2343, -1, -1, 1819, -1, 1821, -1, -1, -1, -1, -1, -1, -1, 434, -1, -1, 437, 438, 439, 625, 441, 442, 443, 444, 445, 446, 447, 175, 2065, -1, -1, -1, 180, -1, -1, -1, -1, -1, -1, -1, 2077, 2459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 201, 202, -1, 3393, -1, -1, -1, -1, -1, 2480, -1, 2407, -1, -1, 604, 216, -1, -1, -1, -1, 2491, -1, -1, -1, 2114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 625, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3435, 247, 2443, -1, -1, 3440, -1, 3442, -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, -1, -1, -1, -1, -1, -1, 2465, -1, -1, -1, -1, -1, -1, -1, 2473, -1, -1, 1949, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3492, -1, -1, 3495, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 341, -1, 3532, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2551, -1, -1, -1, -1, -1, 2557, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2269, -1, 2050, -1, -1, -1, -1, -1, 3577, 3578, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3590, -1, 3592, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2696, -1, -1, 2699, -1, 2701, -1, 891, 434, -1, 2706, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, 2644, 2339, -1, -1, 911, -1, -1, -1, -1, -1, -1, -1, -1, 920, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2757, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3686, -1, -1, -1, -1, 891, -1, 2774, -1, -1, -1, -1, -1, -1, -1, -1, 2708, -1, -1, -1, -1, -1, -1, -1, -1, 911, -1, -1, -1, -1, -1, 2798, 2724, 2725, 920, -1, -1, -1, -1, -1, -1, 996, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2751, -1, -1, 2754, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2480, -1, 2863, -1, 2865, -1, -1, -1, -1, 2268, -1, 2491, -1, -1, -1, -1, 996, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2830, 2831, 2832, -1, -1, -1, -1, 1100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2924, -1, -1, -1, -1, 2854, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2866, -1, -1, -1, 2870, -1, -1, -1, 2949, -1, -1, -1, -1, -1, 2880, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2973, -1, -1, -1, -1, -1, -1, 2980, 1100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3911, -1, -1, 3914, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2412, -1, -1, -1, 2943, 3938, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3950, -1, -1, -1, -1, -1, -1, 3038, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3968, -1, -1, -1, -1, 2979, -1, 3056, -1, -1, -1, 2985, -1, 2987, -1, -1, -1, -1, -1, -1, 3069, -1, -1, -1, -1, 2999, -1, 3001, 2696, -1, -1, 2699, -1, 2701, -1, -1, -1, -1, 2706, -1, -1, -1, -1, -1, -1, -1, -1, 4015, -1, -1, -1, -1, -1, -1, 2501, -1, -1, -1, -1, 2506, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1308, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3055, -1, -1, -1, 2532, -1, -1, -1, 2757, -1, -1, -1, -1, -1, -1, 2543, -1, 2545, 2546, -1, -1, -1, -1, -1, -1, 2774, -1, -1, 2556, -1, -1, 2559, -1, 2561, -1, -1, -1, -1, -1, -1, -1, -1, 3172, -1, -1, -1, -1, -1, -1, 2798, -1, -1, -1, 1371, -1, -1, -1, 3112, -1, 1308, -1, -1, -1, 2591, 3194, 2593, -1, 2595, -1, -1, -1, -1, 3127, -1, -1, -1, 4125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1407, 3220, -1, -1, -1, 3149, -1, -1, 3152, -1, -1, -1, 2629, 2630, 2631, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2863, -1, 2865, -1, -1, 2647, -1, -1, 1371, -1, -1, 3255, -1, -1, -1, -1, -1, 2659, -1, -1, -1, -1, 2664, -1, -1, -1, -1, -1, 2670, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1407, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1487, -1, -1, -1, -1, -1, 2924, 3231, -1, -1, -1, -1, 4230, -1, 4232, 1502, -1, -1, -1, -1, -1, -1, -1, 1510, -1, -1, -1, -1, -1, -1, -1, 2949, -1, 2730, 1521, 604, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3346, -1, -1, -1, -1, 4270, -1, -1, 2973, 625, -1, -1, -1, -1, -1, 2980, -1, -1, -1, -1, -1, -1, 1487, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1568, -1, -1, 1502, -1, -1, -1, -1, -1, -1, -1, 1510, -1, 1581, -1, -1, -1, 4316, -1, 4318, -1, -1, 1521, -1, -1, 1593, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1605, -1, 3038, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3056, -1, -1, -1, 3441, -1, -1, -1, -1, -1, -1, -1, 1568, 3069, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1649, 1581, -1, 1652, -1, -1, -1, 3393, -1, -1, -1, -1, -1, 1593, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1605, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3435, -1, -1, -1, -1, 3440, -1, 3442, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1649, -1, -1, 1652, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 604, -1, -1, 3492, -1, -1, 3495, -1, -1, -1, -1, 3194, -1, -1, -1, -1, 4499, 3581, -1, -1, -1, 625, -1, -1, -1, -1, -1, -1, -1, -1, 1782, -1, -1, -1, -1, -1, -1, 3220, -1, -1, -1, -1, -1, 3532, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 891, -1, -1, -1, -1, -1, -1, -1, -1, 3630, -1, -1, -1, -1, -1, 3255, -1, -1, -1, -1, 911, -1, -1, -1, -1, -1, -1, -1, -1, 920, -1, 3577, 3578, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1782, -1, 3590, -1, 3592, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 996, 3346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3686, -1, 3763, -1, -1, -1, -1, 4687, -1, -1, 3169, -1, -1, 3774, -1, -1, -1, -1, 3177, -1, 3179, -1, -1, -1, -1, -1, 3185, -1, 3187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1998, -1, -1, -1, 2002, 2003, -1, 3215, 3216, -1, -1, -1, 3441, -1, -1, -1, -1, -1, -1, -1, 1100, -1, -1, -1, -1, 3233, -1, -1, -1, -1, -1, -1, -1, 4762, 3242, -1, -1, 3245, -1, 3247, -1, 891, -1, -1, -1, -1, -1, -1, 3256, -1, -1, -1, -1, -1, -1, -1, 3264, 3265, -1, -1, -1, 911, -1, -1, -1, -1, -1, 2065, -1, 1998, 920, -1, -1, 2002, 2003, -1, -1, -1, -1, 2077, -1, -1, -1, -1, 3894, -1, -1, 3295, -1, -1, -1, -1, -1, 3301, 3302, 3303, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3923, -1, -1, 2114, -1, -1, 3327, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 604, 4860, 3340, 3943, -1, -1, 2065, -1, -1, -1, -1, -1, -1, -1, -1, -1, 996, -1, 2077, -1, -1, 625, 3581, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3911, -1, -1, 3914, -1, -1, -1, -1, -1, 2114, -1, 3997, -1, -1, -1, -1, -1, 4922, -1, -1, -1, -1, -1, -1, -1, 3630, -1, 3938, -1, -1, -1, -1, -1, -1, -1, -1, 4941, -1, -1, 3950, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1308, -1, -1, -1, -1, 3968, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2269, -1, -1, -1, -1, -1, -1, -1, -1, 4015, -1, -1, -1, -1, -1, -1, -1, -1, 4099, -1, 1371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1407, -1, -1, -1, -1, -1, -1, 3763, 4145, -1, -1, -1, -1, 2269, 2339, -1, -1, -1, 3774, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1487, -1, -1, 2339, -1, -1, -1, -1, -1, -1, 891, -1, -1, -1, -1, 1502, 3631, 3632, -1, -1, -1, -1, -1, 1510, -1, -1, -1, -1, -1, -1, 911, -1, -1, -1, 1521, -1, -1, -1, -1, 920, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1308, 4269, -1, 2459, -1, -1, -1, 3894, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2480, -1, -1, -1, -1, -1, 1568, -1, -1, -1, -1, 2491, 3923, 4230, -1, 4232, -1, 3707, -1, 1581, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3719, -1, 1593, 3943, -1, -1, -1, -1, -1, -1, 1371, 996, -1, -1, 1605, -1, -1, -1, -1, 2459, -1, -1, -1, -1, 4270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2480, 3760, 3761, -1, -1, -1, 1407, -1, -1, 3768, 3769, 2491, -1, -1, 3773, -1, -1, 3997, 1649, 3778, -1, 1652, 3781, 3782, 4385, -1, -1, 3786, -1, -1, 4316, -1, 4318, 3792, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4413, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3826, -1, -1, -1, -1, 3831, -1, -1, 1100, -1, -1, 3837, -1, -1, -1, -1, -1, -1, -1, 1487, -1, -1, -1, 4451, -1, -1, 3852, -1, -1, -1, -1, -1, -1, -1, 1502, -1, -1, -1, -1, -1, -1, -1, 1510, -1, -1, -1, -1, -1, -1, -1, 3876, -1, 4099, 1521, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4505, -1, -1, 2696, 4509, 4510, 2699, 1782, 2701, -1, -1, -1, -1, 2706, -1, -1, -1, -1, -1, -1, -1, 4145, -1, 1568, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1581, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1593, -1, -1, -1, -1, -1, -1, 3958, -1, -1, -1, -1, 1605, -1, -1, -1, 2757, -1, -1, -1, -1, 4499, -1, -1, 2696, -1, -1, 2699, -1, 2701, -1, -1, -1, 2774, 2706, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4598, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1649, 2798, -1, 1652, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4032, -1, -1, -1, 2757, -1, -1, -1, -1, -1, 1308, -1, -1, -1, -1, -1, 4269, -1, -1, -1, -1, 2774, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2863, -1, 2865, -1, 2798, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1998, -1, -1, -1, 2002, 2003, -1, -1, 2924, -1, -1, -1, -1, -1, 1782, 1407, 2863, -1, 2865, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2949, 4687, -1, -1, -1, 4385, -1, -1, -1, 4168, 4169, -1, -1, 4172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2973, -1, -1, -1, -1, -1, -1, 2980, -1, 4413, 2065, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2924, -1, 2077, -1, 4207, 4208, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1487, -1, -1, -1, -1, -1, -1, 2949, -1, 4451, -1, -1, -1, -1, 4762, 1502, -1, -1, -1, -1, -1, 2114, -1, 1510, -1, -1, -1, 3038, -1, -1, -1, 2973, -1, -1, 1521, -1, -1, -1, 2980, -1, -1, -1, -1, -1, -1, 3056, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3069, -1, -1, -1, -1, 4505, -1, -1, -1, 4509, 4510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1568, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1581, -1, 3038, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1593, -1, -1, -1, -1, -1, 4860, -1, 3056, -1, -1, -1, 1605, -1, -1, -1, -1, -1, -1, -1, -1, 3069, -1, -1, -1, -1, -1, -1, -1, 1998, -1, -1, -1, 2002, 2003, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4598, -1, -1, -1, -1, 3172, 1649, -1, -1, 1652, -1, -1, -1, -1, -1, -1, -1, -1, 4922, -1, 2269, -1, -1, -1, -1, -1, -1, 3194, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4941, 4415, -1, -1, -1, -1, -1, -1, -1, 2065, -1, -1, -1, -1, -1, -1, 3220, -1, -1, -1, -1, 2077, -1, -1, -1, -1, -1, 4441, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3172, -1, -1, -1, -1, 4456, -1, -1, -1, -1, -1, -1, -1, -1, 3255, -1, 2339, -1, -1, -1, -1, 2114, 3194, -1, 4475, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4514, -1, 1782, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3255, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4576, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2491, -1, -1, -1, -1, -1, 3346, -1, 2269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4639, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3441, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, -1, -1, -1, -1, -1, -1, -1, 2339, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3441, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1998, -1, -1, -1, 2002, 2003, -1, -1, -1, -1, -1, 4743, 4744, -1, -1, -1, -1, 1206, -1, -1, -1, -1, 4754, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3581, -1, -1, -1, -1, -1, -1, -1, 2065, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2077, -1, -1, -1, -1, 1273, 2459, 4818, -1, -1, -1, -1, -1, 2696, -1, -1, 2699, -1, 2701, -1, -1, -1, -1, 2706, -1, -1, 4837, 2480, -1, 3630, -1, -1, -1, -1, -1, -1, -1, 2114, 2491, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3581, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2757, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2774, -1, -1, -1, -1, -1, -1, 3630, -1, -1, -1, -1, -1, -1, 4916, 4917, -1, -1, -1, -1, -1, -1, -1, -1, 2798, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3763, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3774, -1, -1, -1, -1, -1, -1, 2863, -1, 2865, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3763, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2924, 3774, 2696, -1, -1, 2699, -1, 2701, -1, -1, -1, -1, 2706, -1, -1, -1, -1, -1, -1, -1, -1, 2339, -1, -1, -1, 2949, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2973, -1, -1, 3894, -1, -1, -1, 2980, -1, -1, -1, -1, -1, -1, 2757, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2774, 3923, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3943, -1, -1, 2798, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3038, -1, -1, -1, -1, -1, -1, 3894, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3056, -1, -1, -1, -1, -1, -1, -1, -1, 2459, -1, -1, -1, 3069, -1, -1, -1, -1, 3923, -1, -1, 1662, -1, 3997, -1, -1, -1, -1, -1, -1, 2480, -1, -1, -1, -1, -1, -1, 2863, 3943, 2865, -1, 2491, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3997, -1, -1, -1, 1737, -1, 2924, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1751, -1, -1, -1, 1755, -1, 3172, -1, -1, -1, -1, -1, -1, 2949, -1, 4099, -1, -1, 1769, 1770, 1771, -1, -1, 1774, -1, -1, -1, -1, 3194, -1, -1, -1, -1, -1, -1, -1, -1, 2973, -1, -1, -1, -1, -1, -1, 2980, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3220, -1, -1, -1, -1, -1, -1, 4145, -1, -1, -1, -1, 1817, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4099, -1, -1, -1, -1, 3255, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3038, -1, 1855, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3056, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4145, -1, -1, 3069, -1, -1, 2696, -1, -1, 2699, -1, 2701, -1, -1, -1, -1, 2706, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3346, -1, -1, -1, -1, 4269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2757, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1959, -1, -1, -1, -1, -1, 2774, -1, -1, -1, -1, -1, 1971, -1, -1, 1974, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3172, -1, 2798, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4269, -1, -1, -1, 3194, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3441, -1, -1, -1, -1, -1, -1, -1, -1, 3220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4385, -1, 2863, -1, 2865, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3255, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4413, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2924, -1, -1, 4451, -1, -1, 4385, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2949, -1, -1, -1, -1, -1, -1, -1, -1, 4413, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3346, -1, -1, 2973, -1, 3581, -1, -1, -1, -1, 2980, 4505, -1, -1, -1, 4509, 4510, -1, -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, 3630, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3038, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4505, -1, -1, -1, 4509, 4510, 3056, -1, -1, -1, -1, -1, -1, -1, -1, 3441, -1, -1, -1, 3069, -1, -1, -1, -1, 4598, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4598, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3763, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3774, -1, -1, -1, 3172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3194, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3581, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3630, 3255, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3894, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2504, -1, -1, -1, 3923, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2525, -1, 2527, 3943, -1, 2530, 2531, -1, 2533, -1, 2535, -1, 3346, -1, 2539, -1, -1, 2542, -1, -1, -1, -1, 2547, -1, -1, -1, -1, -1, 2553, -1, -1, -1, -1, 2558, -1, -1, -1, -1, -1, -1, -1, 2566, 2567, 2568, 2569, -1, -1, -1, 2573, 2574, -1, 2576, -1, 3763, -1, -1, -1, 3997, -1, -1, -1, -1, -1, 2588, 3774, 2590, -1, -1, -1, -1, -1, -1, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3441, -1, -1, 2635, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4099, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3894, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4145, -1, -1, -1, -1, -1, -1, -1, 3923, -1, -1, -1, -1, -1, -1, 2745, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3943, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3581, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3997, -1, -1, -1, -1, -1, -1, -1, -1, 3630, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4099, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3763, -1, -1, -1, -1, -1, 4145, -1, -1, -1, -1, 3774, -1, -1, -1, -1, 4385, -1, -1, -1, -1, -1, 2976, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4413, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, -1, 4269, 3894, -1, -1, -1, -1, 4505, -1, -1, -1, 4509, 4510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3923, 3115, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3943, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3168, -1, -1, -1, -1, -1, 3174, -1, -1, -1, -1, -1, -1, -1, -1, 4598, -1, -1, -1, -1, 3997, -1, -1, 3191, 3192, -1, -1, 3195, 3196, 3197, 3198, -1, 4385, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4413, -1, -1, -1, -1, -1, 3234, -1, -1, 3237, -1, 3239, -1, -1, -1, 3243, 3244, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3258, 3259, 3260, 3261, -1, 3263, -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, 4099, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3311, -1, -1, -1, -1, -1, -1, -1, -1, 4505, 3321, -1, -1, 4509, 4510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3358, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4598, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3554, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4385, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4413, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4505, -1, -1, -1, 4509, 4510, -1, -1, -1, -1, -1, -1, 3708, -1, -1, -1, 3712, 3713, 3714, 3715, -1, -1, -1, -1, -1, 3721, 3722, 3723, 3724, -1, -1, -1, -1, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3767, -1, -1, 3770, -1, 3772, -1, -1, -1, 3776, -1, -1, 3779, 3780, -1, -1, 3783, 3784, -1, -1, -1, -1, 4598, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3828, -1, -1, -1, -1, -1, -1, 3835, 3836, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3851, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4035, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4094, 4095, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4135, -1, -1, -1, -1, 4140, 4141, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4155, -1, 4157, -1, -1, -1, -1, 4162, 4163, 4164, -1, -1, 4167, -1, -1, 4170, 4171, -1, -1, -1, 4175, -1, -1, -1, 4179, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4335, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4411, 4412, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4427, 4428, 4429, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4463, 4464, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4610, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4626, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4676, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4715, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4772, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4821, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, 4889, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, 4929, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, 443, -1, -1, -1, 447, -1, -1, -1, 451, 452, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 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, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, 436, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 452, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 452, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 452, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, 3, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 452, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, 35, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 452, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, -1, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, 142, 143, 144, -1, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, -1, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, -1, -1, 245, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, -1, 282, -1, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, -1, 378, -1, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 3, -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, 433, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, 452, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, -1, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, 142, 143, 144, -1, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, -1, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, -1, -1, 245, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, -1, 282, -1, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, -1, 378, -1, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 3, 4, 5, 6, 7, 8, 9, 10, -1, 431, 432, 433, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, 452, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 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, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, 436, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 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, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, 436, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 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, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, 449, 450, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, 443, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 248, 249, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, -1, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, 447, -1, -1, -1, 451, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, 33, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, -1, -1, 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, -1, 248, 249, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 3, 4, 5, 6, 7, -1, 9, 10, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, 447, -1, -1, -1, 451, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, 34, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, -1, -1, 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, -1, 248, 249, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 3, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, -1, -1, 451, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, 212, 213, 214, 215, 216, -1, 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, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, 259, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 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, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, 436, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 451, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, 212, 213, 214, 215, 216, -1, 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, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, 259, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 451, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 451, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 3, 4, 5, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, 451, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, 258, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 3, -1, -1, -1, 441, 442, 443, -1, -1, -1, -1, -1, -1, -1, 451, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, 436, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 451, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 451, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, 436, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 451, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 451, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 451, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 451, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, -1, -1, -1, 3, 4, 5, -1, -1, 8, 9, -1, -1, -1, -1, 451, 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, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, -1, 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, -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, -1, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, -1, 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, -1, 244, 245, 246, 247, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, 282, -1, 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, -1, 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, -1, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, -1, 378, -1, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, 433, 3, 4, 5, 437, 438, 439, 9, 441, 442, 443, 444, 445, 446, 447, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, 258, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, 4, 5, -1, -1, -1, 9, 441, 442, -1, -1, -1, -1, 447, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, 258, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, 4, 5, -1, -1, -1, 9, 441, 442, -1, -1, -1, -1, 447, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, 258, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, 5, -1, -1, -1, -1, 441, 442, -1, -1, -1, -1, 447, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 447, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, 3, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, 447, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, 3, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, 3, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, 3, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, 3, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, 3, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -1, -1, -1, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, 3, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, 5, 437, 438, 439, -1, 441, 442, 443, 444, 445, 446, 447, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 447, -1, 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, 3, -1, -1, -1, -1, -1, -1, -1, -1, 443, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, 443, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, -1, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, 142, 143, 144, -1, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, -1, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, -1, -1, 245, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, -1, 282, -1, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, -1, 378, -1, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, -1, -1, -1, -1, -1, -1, -1, 3, -1, 431, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, 443, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, -1, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, 142, 143, 144, -1, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, -1, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, -1, -1, 245, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, -1, 282, -1, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, -1, 378, -1, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, -1, -1, -1, -1, -1, -1, -1, 3, -1, 431, 432, 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, 443, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, 4, 5, -1, -1, -1, 9, -1, -1, 443, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, 258, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, 5, -1, -1, -1, 9, 441, 442, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, 258, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, 9, 441, 442, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, 158, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, 4, 5, -1, -1, -1, 9, 441, 442, -1, -1, -1, -1, -1, -1, 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, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 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, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 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, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, 258, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, 166, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 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, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, 213, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, -1, -1, 72, 73, 74, 75, 76, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, 155, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, 155, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, 163, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 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, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, 163, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 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, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, 155, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, 389, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 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, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, 155, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 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, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, 259, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, 259, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, 259, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, 35, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, 35, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, 396, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, 35, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, -1, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, -1, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, 142, 143, 144, -1, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, -1, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, -1, -1, 245, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, -1, 282, -1, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, -1, 378, -1, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 3, -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, 433, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, -1, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, 142, 143, 144, -1, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, -1, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, -1, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, -1, -1, 245, 246, 247, 248, 249, -1, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, -1, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, -1, 282, -1, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, -1, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, -1, 378, -1, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 3, -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, 433, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, -1, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, -1, -1, -1, 73, 74, 75, 76, -1, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, -1, 90, 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, -1, -1, -1, 160, 161, 162, -1, 164, 165, -1, 167, 168, -1, 170, 171, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, -1, -1, 203, -1, 205, 206, 207, 208, 209, -1, -1, 212, 213, -1, 215, -1, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, -1, 240, 241, 242, 243, -1, 245, 246, -1, 248, -1, 250, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, 266, -1, 268, -1, 270, 271, 272, 273, 274, -1, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, -1, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, -1, 317, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, -1, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, -1, 363, -1, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, -1, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, -1, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, 142, 143, 144, -1, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, -1, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, -1, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, -1, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, -1, 282, -1, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, -1, 378, -1, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 3, -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, 433, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, -1, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, 142, 143, 144, -1, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, -1, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, -1, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, 245, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, -1, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, -1, 282, -1, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, -1, 378, -1, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 3, -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, 433, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, -1, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, 142, 143, 144, -1, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, -1, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, -1, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, -1, -1, 245, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, -1, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, -1, 282, -1, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, -1, 378, -1, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 3, -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, 433, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, -1, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, 142, 143, 144, -1, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, -1, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, -1, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, -1, -1, 245, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, -1, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, -1, 282, -1, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, -1, 378, -1, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 3, -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, 433, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, -1, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, 142, 143, 144, -1, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, -1, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, -1, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, -1, -1, 245, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, -1, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, -1, 282, -1, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, -1, 378, -1, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 3, -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, 433, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, -1, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, 142, 143, 144, -1, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, -1, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, -1, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, -1, -1, 245, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, -1, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, -1, 282, -1, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, -1, 378, -1, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 3, -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, 433, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, -1, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, 142, 143, 144, -1, -1, 147, -1, 149, 150, 151, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, -1, 191, 192, 193, 194, 195, 196, -1, 198, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, -1, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, -1, -1, 245, 246, 247, 248, -1, -1, 251, 252, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, -1, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, -1, 282, -1, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, -1, 339, 340, 341, 342, 343, 344, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, 371, 372, -1, -1, 375, 376, -1, 378, -1, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, 403, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, 3, -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, 433, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, -1, -1, 48, -1, -1, -1, 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, -1, 63, -1, 65, 66, 67, 68, -1, -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, 92, -1, -1, -1, 96, -1, -1, -1, 100, 101, 102, 103, 104, 105, -1, -1, 108, -1, 110, -1, 112, 113, 114, 115, 116, -1, 118, 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, 140, -1, 142, 143, 144, -1, -1, 147, -1, 149, 150, -1, 152, -1, 154, -1, 156, 157, -1, 159, 160, 161, 162, -1, 164, -1, -1, -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, 188, 189, -1, 191, 192, 193, 194, -1, -1, -1, -1, -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, -1, 212, -1, 214, 215, 216, -1, 218, 219, 220, -1, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -1, 239, -1, 241, 242, -1, -1, 245, 246, 247, 248, -1, -1, 251, -1, 253, 254, 255, -1, 257, -1, -1, 260, 261, 262, -1, -1, 265, -1, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, -1, 282, -1, 284, 285, 286, -1, 288, 289, 290, 291, 292, 293, 294, 295, -1, 297, 298, 299, 300, -1, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, -1, 314, 315, 316, 317, 318, 319, -1, 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, -1, 336, 337, -1, 339, 340, 341, 342, 343, -1, 345, -1, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, -1, 360, 361, -1, 363, 364, 365, 366, 367, 368, 369, -1, -1, -1, -1, -1, 375, 376, -1, 378, -1, -1, 381, 382, 383, 384, 385, 386, 387, -1, -1, 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, 400, 401, -1, -1, -1, 405, 406, 407, 408, 409, 410, -1, -1, 413, -1, -1, 416, 417, 418, 419, 420, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, 431, 432, 433 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { 0, 18, 28, 30, 31, 45, 65, 67, 68, 73, 75, 86, 88, 105, 108, 120, 122, 126, 132, 140, 142, 148, 163, 179, 218, 219, 224, 235, 246, 285, 297, 302, 303, 305, 310, 315, 318, 323, 328, 329, 336, 340, 350, 362, 381, 391, 397, 402, 415, 436, 451, 458, 459, 460, 461, 467, 468, 470, 471, 472, 473, 474, 475, 476, 478, 479, 483, 495, 500, 501, 504, 505, 506, 518, 521, 522, 538, 575, 578, 581, 582, 583, 590, 596, 598, 600, 601, 604, 607, 608, 612, 613, 622, 626, 627, 628, 629, 630, 633, 635, 636, 637, 638, 639, 646, 659, 660, 664, 666, 667, 668, 678, 680, 687, 688, 691, 692, 693, 694, 695, 701, 703, 706, 710, 714, 715, 725, 726, 729, 734, 745, 768, 771, 772, 773, 776, 779, 781, 783, 785, 786, 791, 792, 795, 796, 797, 804, 805, 807, 808, 809, 814, 816, 817, 823, 824, 825, 826, 827, 828, 830, 831, 833, 834, 836, 839, 840, 845, 851, 854, 856, 857, 865, 867, 872, 879, 883, 884, 885, 886, 887, 888, 891, 926, 375, 418, 810, 25, 71, 85, 103, 109, 124, 135, 143, 155, 160, 166, 183, 208, 229, 260, 280, 290, 317, 322, 324, 330, 333, 361, 362, 365, 369, 378, 383, 395, 408, 597, 810, 3, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 37, 38, 40, 41, 43, 44, 45, 46, 47, 49, 50, 52, 53, 54, 55, 56, 59, 60, 61, 62, 63, 65, 66, 67, 68, 69, 73, 74, 75, 76, 78, 79, 80, 82, 83, 84, 85, 86, 87, 90, 91, 92, 100, 101, 102, 103, 104, 105, 106, 107, 108, 110, 112, 113, 114, 115, 116, 118, 119, 120, 123, 124, 125, 126, 127, 129, 130, 131, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 147, 149, 150, 151, 152, 154, 156, 160, 161, 162, 164, 165, 167, 168, 170, 171, 172, 173, 174, 176, 177, 178, 179, 181, 182, 183, 184, 185, 186, 188, 190, 191, 192, 193, 194, 195, 196, 198, 200, 203, 205, 206, 207, 208, 209, 212, 213, 215, 218, 219, 220, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 240, 241, 242, 243, 245, 246, 248, 250, 251, 252, 253, 254, 255, 257, 260, 261, 262, 265, 266, 268, 270, 271, 272, 273, 274, 275, 276, 277, 279, 280, 281, 282, 283, 284, 285, 286, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 314, 315, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 330, 331, 332, 333, 334, 336, 337, 338, 339, 340, 342, 343, 344, 345, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 360, 361, 363, 365, 366, 367, 368, 369, 371, 372, 375, 376, 377, 378, 379, 381, 382, 383, 384, 385, 386, 387, 390, 391, 392, 393, 394, 397, 398, 399, 400, 401, 402, 403, 405, 407, 408, 409, 410, 413, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 880, 1047, 1065, 1069, 1070, 406, 841, 258, 286, 810, 48, 529, 884, 25, 37, 58, 71, 81, 103, 109, 124, 135, 143, 155, 162, 166, 220, 260, 263, 280, 317, 324, 333, 365, 366, 368, 369, 378, 383, 389, 392, 395, 539, 580, 683, 735, 746, 26, 285, 1047, 880, 26, 279, 331, 366, 368, 5, 207, 777, 778, 1056, 25, 37, 58, 71, 85, 103, 124, 135, 143, 155, 160, 166, 183, 229, 260, 271, 280, 317, 322, 324, 330, 333, 362, 365, 369, 376, 378, 383, 395, 408, 597, 696, 810, 1047, 88, 406, 451, 575, 578, 581, 840, 846, 854, 857, 865, 872, 879, 883, 9, 19, 26, 43, 150, 156, 158, 180, 209, 241, 288, 304, 441, 442, 711, 712, 880, 1055, 1057, 26, 88, 301, 329, 716, 717, 718, 1065, 155, 1065, 1052, 1056, 362, 894, 711, 1065, 375, 1047, 271, 229, 103, 183, 324, 361, 362, 451, 787, 788, 323, 1065, 26, 334, 371, 375, 487, 496, 497, 1065, 23, 163, 716, 717, 286, 810, 1065, 206, 26, 121, 896, 897, 59, 82, 220, 237, 317, 324, 334, 371, 375, 421, 484, 485, 486, 487, 26, 334, 371, 375, 487, 375, 259, 937, 1045, 1065, 894, 443, 1065, 159, 451, 842, 451, 1040, 299, 889, 890, 1047, 889, 884, 885, 888, 0, 454, 841, 136, 197, 264, 388, 898, 899, 884, 886, 887, 114, 193, 394, 455, 3, 42, 48, 71, 77, 89, 96, 157, 159, 175, 189, 201, 202, 204, 214, 216, 239, 247, 267, 269, 316, 341, 364, 406, 1053, 1065, 1066, 1069, 1071, 698, 1065, 698, 1048, 1065, 289, 698, 378, 698, 1047, 1065, 102, 362, 724, 1053, 3, 99, 335, 1058, 1059, 1067, 1069, 1070, 1071, 26, 174, 1045, 253, 408, 8, 15, 16, 17, 66, 147, 437, 438, 439, 441, 442, 443, 444, 445, 446, 447, 775, 1007, 1008, 1065, 174, 1047, 26, 1058, 1059, 1047, 1047, 174, 1045, 1047, 310, 336, 26, 174, 937, 1047, 326, 1047, 698, 227, 1058, 1059, 174, 1045, 207, 111, 203, 244, 295, 811, 812, 813, 1045, 1051, 1065, 25, 58, 71, 72, 81, 85, 103, 124, 135, 143, 155, 160, 183, 208, 229, 260, 280, 317, 322, 324, 330, 333, 362, 365, 369, 376, 378, 383, 408, 597, 704, 1056, 1045, 373, 1053, 1047, 451, 698, 378, 1048, 698, 378, 174, 1047, 102, 362, 366, 368, 1058, 1059, 366, 368, 66, 147, 775, 308, 1047, 1058, 174, 480, 1065, 1047, 1047, 326, 1047, 698, 227, 1058, 299, 330, 362, 408, 229, 85, 183, 160, 322, 376, 382, 591, 26, 1047, 881, 494, 1056, 1067, 778, 174, 1053, 1047, 174, 782, 174, 1048, 3, 47, 49, 50, 61, 62, 106, 107, 125, 151, 174, 195, 196, 198, 238, 240, 252, 296, 338, 344, 371, 372, 403, 700, 952, 954, 956, 958, 960, 962, 963, 964, 966, 967, 968, 971, 972, 1066, 1069, 378, 102, 362, 174, 1053, 174, 1059, 1060, 77, 408, 66, 147, 174, 775, 52, 174, 1047, 174, 1060, 174, 1047, 174, 1047, 174, 1047, 326, 782, 174, 1047, 174, 700, 174, 227, 1060, 207, 174, 697, 698, 451, 855, 539, 846, 402, 840, 847, 848, 849, 1067, 841, 1057, 712, 713, 26, 713, 1057, 713, 26, 713, 1057, 713, 713, 713, 1057, 1055, 1055, 880, 713, 289, 451, 451, 558, 558, 558, 258, 373, 455, 558, 324, 937, 938, 455, 806, 1056, 451, 852, 52, 408, 406, 789, 790, 1045, 1047, 1065, 42, 433, 203, 453, 261, 261, 258, 158, 1056, 373, 153, 707, 258, 4, 6, 7, 8, 10, 34, 47, 49, 50, 57, 58, 61, 62, 69, 71, 93, 94, 95, 96, 97, 98, 99, 106, 107, 141, 145, 146, 151, 165, 167, 195, 196, 198, 213, 221, 222, 238, 240, 244, 249, 250, 252, 260, 270, 281, 296, 320, 335, 344, 358, 371, 372, 377, 379, 380, 389, 395, 403, 423, 424, 425, 426, 427, 428, 429, 430, 434, 441, 442, 443, 447, 451, 884, 955, 958, 961, 962, 963, 965, 966, 967, 971, 972, 976, 978, 979, 980, 982, 1003, 1004, 1005, 1009, 1028, 1033, 1042, 1043, 1053, 1054, 1055, 1056, 1065, 1041, 1042, 1056, 26, 502, 1044, 1045, 334, 484, 109, 493, 1056, 447, 494, 1064, 447, 1056, 1062, 42, 63, 484, 433, 345, 812, 261, 158, 373, 439, 42, 433, 203, 813, 451, 1045, 443, 449, 453, 1034, 1035, 938, 157, 159, 406, 837, 838, 840, 157, 843, 109, 976, 1038, 1039, 889, 455, 451, 844, 452, 452, 460, 1045, 26, 121, 895, 895, 52, 895, 148, 153, 217, 256, 902, 904, 905, 920, 922, 923, 924, 898, 899, 158, 199, 937, 939, 1040, 451, 758, 1035, 272, 306, 336, 453, 699, 272, 306, 336, 3, 80, 130, 223, 272, 306, 336, 365, 367, 415, 495, 498, 818, 819, 820, 821, 730, 22, 126, 272, 306, 336, 399, 509, 1047, 336, 22, 126, 394, 477, 419, 174, 937, 54, 87, 144, 177, 212, 244, 272, 306, 314, 321, 328, 336, 348, 356, 410, 495, 499, 761, 769, 451, 747, 306, 477, 180, 141, 22, 28, 68, 119, 126, 129, 154, 185, 242, 244, 254, 262, 272, 306, 309, 310, 336, 399, 507, 508, 616, 4, 442, 588, 1057, 26, 174, 1045, 698, 698, 451, 774, 453, 141, 258, 180, 469, 306, 415, 436, 462, 469, 258, 272, 306, 141, 53, 101, 182, 230, 232, 242, 271, 306, 311, 336, 350, 507, 585, 586, 272, 306, 407, 616, 624, 497, 485, 487, 180, 141, 306, 336, 507, 272, 306, 310, 336, 78, 118, 273, 367, 258, 22, 28, 126, 272, 306, 336, 519, 520, 153, 306, 336, 462, 498, 141, 306, 336, 507, 1047, 215, 111, 259, 420, 455, 811, 396, 835, 258, 1053, 451, 1047, 952, 378, 102, 362, 1053, 253, 408, 66, 147, 775, 1047, 1047, 326, 153, 1047, 952, 207, 698, 558, 292, 524, 451, 673, 758, 64, 952, 158, 451, 669, 1047, 462, 35, 829, 1047, 244, 462, 419, 174, 1045, 462, 698, 698, 669, 392, 539, 258, 462, 244, 42, 481, 383, 623, 272, 599, 78, 118, 273, 367, 24, 44, 194, 647, 35, 669, 153, 462, 408, 174, 1045, 174, 576, 1045, 1045, 408, 698, 77, 736, 1053, 1047, 153, 597, 48, 100, 192, 242, 325, 141, 758, 55, 312, 510, 141, 451, 141, 405, 969, 969, 969, 451, 957, 957, 283, 451, 959, 141, 61, 62, 969, 957, 954, 417, 436, 451, 973, 451, 973, 455, 510, 34, 953, 62, 451, 970, 104, 172, 231, 234, 327, 431, 451, 974, 975, 699, 957, 419, 141, 747, 141, 455, 174, 697, 174, 698, 174, 698, 141, 774, 1060, 141, 258, 141, 141, 258, 141, 510, 141, 78, 118, 273, 367, 153, 141, 258, 141, 510, 141, 153, 174, 174, 494, 141, 455, 510, 976, 1012, 362, 452, 455, 146, 258, 380, 491, 494, 588, 850, 846, 713, 880, 713, 880, 713, 880, 713, 880, 713, 880, 880, 880, 713, 880, 451, 559, 560, 1065, 559, 26, 103, 124, 155, 160, 207, 208, 324, 330, 362, 365, 383, 719, 1044, 1060, 718, 1047, 180, 455, 868, 1056, 952, 1015, 35, 1060, 736, 452, 455, 215, 1065, 153, 153, 719, 1060, 323, 1065, 494, 258, 451, 1036, 449, 884, 1016, 976, 1032, 451, 451, 153, 451, 451, 884, 451, 451, 451, 451, 451, 451, 976, 451, 451, 451, 451, 451, 451, 451, 451, 884, 451, 451, 451, 451, 451, 451, 451, 451, 976, 976, 976, 1036, 884, 976, 1012, 1035, 1056, 451, 1056, 3, 8, 11, 15, 16, 17, 32, 35, 40, 46, 70, 175, 180, 201, 202, 216, 247, 260, 263, 341, 434, 437, 438, 439, 441, 442, 443, 444, 445, 446, 447, 1007, 1009, 1011, 416, 991, 269, 976, 199, 455, 892, 451, 1056, 1035, 892, 112, 176, 503, 455, 63, 109, 1064, 35, 3, 109, 220, 492, 588, 972, 1062, 1056, 83, 123, 988, 92, 109, 447, 488, 489, 491, 588, 109, 488, 215, 1045, 976, 3, 26, 30, 31, 32, 33, 34, 35, 36, 39, 51, 57, 58, 64, 70, 72, 81, 88, 93, 94, 95, 97, 98, 99, 109, 111, 117, 121, 122, 128, 132, 136, 146, 148, 153, 155, 158, 163, 166, 169, 180, 187, 197, 199, 210, 211, 217, 221, 222, 244, 249, 256, 258, 259, 263, 264, 278, 287, 301, 313, 329, 335, 346, 359, 362, 370, 373, 374, 380, 388, 389, 395, 396, 404, 411, 412, 414, 415, 443, 1050, 1068, 1069, 1070, 1071, 1072, 1034, 84, 311, 702, 452, 455, 841, 452, 455, 890, 1046, 1047, 35, 844, 886, 886, 900, 901, 976, 886, 150, 241, 911, 205, 242, 295, 339, 394, 26, 906, 976, 907, 909, 976, 978, 920, 921, 905, 904, 902, 903, 153, 923, 254, 925, 902, 920, 939, 858, 1045, 35, 1065, 336, 180, 190, 264, 266, 338, 404, 443, 751, 752, 753, 755, 757, 759, 952, 1066, 272, 306, 336, 373, 373, 324, 1050, 453, 373, 373, 324, 217, 373, 373, 365, 484, 272, 818, 820, 439, 822, 153, 163, 180, 315, 731, 732, 64, 81, 137, 155, 287, 389, 555, 556, 81, 109, 244, 373, 81, 373, 109, 244, 324, 81, 119, 129, 272, 306, 665, 324, 605, 25, 58, 71, 85, 124, 135, 155, 160, 229, 260, 324, 330, 333, 362, 369, 376, 383, 408, 597, 1047, 141, 306, 336, 507, 258, 588, 328, 212, 373, 373, 249, 588, 113, 200, 324, 334, 375, 486, 312, 336, 761, 770, 452, 748, 751, 373, 395, 365, 1045, 72, 137, 546, 555, 1065, 72, 81, 793, 258, 320, 322, 378, 81, 793, 29, 309, 320, 322, 378, 320, 1045, 154, 185, 254, 698, 451, 373, 373, 173, 451, 514, 226, 365, 392, 415, 417, 514, 81, 455, 4, 272, 180, 141, 306, 336, 507, 396, 396, 243, 952, 272, 336, 775, 1047, 1045, 103, 498, 373, 464, 498, 1045, 373, 373, 1045, 588, 52, 587, 588, 588, 101, 230, 232, 52, 373, 462, 324, 462, 242, 586, 373, 373, 249, 1056, 616, 365, 937, 81, 373, 793, 324, 373, 373, 514, 514, 698, 698, 698, 698, 1045, 41, 401, 41, 41, 373, 41, 373, 324, 455, 395, 634, 1059, 373, 464, 1045, 373, 324, 272, 306, 295, 307, 332, 490, 811, 1051, 1065, 1045, 758, 952, 258, 201, 419, 747, 588, 698, 698, 774, 258, 201, 258, 78, 118, 273, 367, 952, 258, 201, 698, 201, 415, 530, 353, 354, 525, 1056, 3, 674, 675, 669, 451, 35, 698, 670, 671, 1068, 24, 818, 952, 258, 141, 602, 1047, 244, 451, 463, 683, 396, 299, 408, 1045, 463, 141, 1059, 88, 163, 482, 538, 582, 646, 714, 734, 814, 1056, 624, 625, 1059, 223, 698, 698, 698, 698, 254, 114, 193, 381, 394, 648, 649, 133, 294, 451, 634, 463, 1045, 244, 584, 585, 244, 35, 254, 451, 558, 558, 174, 579, 1045, 153, 174, 737, 1051, 451, 749, 35, 952, 207, 415, 417, 882, 325, 1053, 510, 952, 1048, 451, 1012, 1055, 700, 969, 969, 34, 953, 371, 371, 1055, 1055, 952, 449, 449, 336, 447, 1055, 1061, 373, 373, 373, 451, 373, 1055, 957, 174, 1047, 1053, 510, 1060, 1059, 141, 510, 141, 396, 141, 396, 775, 510, 510, 1047, 698, 1060, 1047, 698, 1047, 1047, 952, 1047, 698, 700, 1060, 634, 141, 141, 510, 697, 698, 452, 455, 174, 1045, 846, 848, 880, 880, 880, 880, 880, 880, 559, 452, 455, 452, 161, 331, 363, 1046, 697, 102, 333, 723, 724, 1046, 253, 1046, 1044, 1044, 1046, 697, 373, 415, 727, 136, 217, 631, 632, 20, 139, 320, 339, 869, 937, 248, 870, 452, 455, 853, 857, 865, 872, 883, 373, 1045, 787, 788, 790, 717, 716, 717, 158, 164, 728, 1065, 25, 72, 103, 124, 135, 155, 160, 208, 229, 317, 324, 330, 362, 365, 383, 408, 597, 708, 1012, 1034, 450, 1012, 1016, 1017, 411, 1029, 1030, 976, 1012, 451, 1055, 1055, 3, 104, 172, 231, 234, 327, 431, 447, 1018, 1019, 1056, 1012, 1012, 1012, 1055, 1055, 976, 775, 976, 1020, 320, 441, 442, 451, 977, 978, 1009, 1022, 452, 1012, 976, 1012, 1023, 976, 51, 158, 211, 374, 976, 1012, 1026, 1012, 236, 978, 976, 986, 987, 988, 236, 976, 988, 452, 455, 447, 1055, 974, 952, 976, 976, 976, 976, 1068, 371, 39, 359, 1037, 698, 976, 451, 884, 1027, 121, 123, 146, 244, 249, 254, 380, 390, 976, 451, 976, 373, 46, 175, 180, 216, 341, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 26, 33, 346, 1006, 166, 149, 992, 320, 451, 1003, 162, 220, 362, 366, 368, 392, 893, 1045, 1043, 158, 927, 26, 121, 404, 443, 452, 753, 976, 1013, 1014, 1066, 927, 1045, 375, 451, 1056, 455, 452, 450, 456, 173, 173, 510, 1045, 838, 839, 1045, 1038, 452, 455, 451, 455, 36, 117, 396, 743, 451, 908, 1057, 339, 205, 259, 455, 320, 321, 910, 1044, 248, 343, 871, 921, 903, 396, 866, 109, 451, 859, 883, 35, 1065, 451, 873, 874, 875, 876, 877, 1065, 266, 52, 1066, 452, 753, 755, 752, 755, 1066, 264, 452, 455, 699, 373, 373, 324, 1059, 1047, 1047, 1050, 1059, 1047, 1047, 1059, 1048, 1047, 109, 491, 1057, 317, 395, 716, 324, 163, 716, 451, 1047, 396, 738, 205, 205, 396, 451, 574, 174, 1047, 249, 1059, 1047, 1047, 976, 249, 1047, 1047, 29, 309, 373, 373, 1047, 373, 606, 1053, 451, 698, 698, 952, 378, 102, 362, 724, 408, 66, 147, 775, 1047, 698, 1047, 698, 326, 153, 952, 698, 207, 168, 242, 272, 306, 400, 609, 610, 611, 937, 373, 793, 324, 249, 113, 200, 1059, 1047, 258, 1047, 452, 455, 1058, 1060, 1047, 306, 507, 546, 952, 1047, 1065, 1047, 215, 1047, 26, 395, 1047, 174, 1047, 174, 1065, 322, 378, 322, 378, 215, 1047, 26, 395, 1047, 215, 320, 1045, 22, 126, 336, 617, 618, 619, 620, 1068, 1059, 1047, 109, 159, 245, 396, 513, 516, 517, 1068, 1047, 257, 68, 257, 1047, 508, 373, 365, 1045, 373, 793, 324, 1049, 1065, 1049, 455, 452, 455, 373, 324, 258, 306, 373, 643, 1048, 1058, 3, 80, 131, 185, 277, 387, 395, 398, 465, 306, 1059, 1047, 306, 336, 507, 585, 588, 698, 1047, 588, 1047, 588, 1059, 1047, 1047, 306, 336, 507, 1047, 1047, 1047, 1047, 1059, 1047, 22, 28, 126, 272, 306, 336, 272, 306, 336, 669, 306, 336, 306, 336, 306, 951, 1065, 174, 679, 1065, 174, 1065, 1059, 1047, 1047, 1047, 22, 520, 333, 1058, 306, 336, 507, 1047, 1047, 373, 373, 76, 386, 295, 201, 35, 124, 698, 249, 705, 1056, 201, 201, 396, 396, 201, 698, 705, 698, 207, 698, 705, 201, 705, 257, 158, 373, 523, 462, 439, 452, 455, 976, 952, 452, 455, 439, 648, 548, 1068, 1047, 158, 324, 407, 603, 610, 611, 141, 216, 540, 542, 544, 546, 552, 555, 23, 180, 317, 360, 465, 466, 153, 1049, 408, 1045, 153, 644, 480, 1065, 481, 263, 539, 155, 1056, 669, 669, 669, 669, 254, 258, 263, 451, 669, 949, 950, 951, 333, 451, 141, 141, 140, 883, 698, 540, 1065, 415, 417, 570, 415, 515, 244, 35, 558, 1056, 244, 258, 452, 750, 751, 756, 35, 207, 314, 376, 414, 760, 761, 762, 258, 207, 494, 171, 171, 153, 758, 35, 1012, 452, 452, 510, 449, 433, 433, 452, 452, 1055, 450, 1055, 1065, 452, 172, 231, 975, 231, 975, 975, 1055, 234, 452, 141, 510, 747, 697, 698, 1049, 698, 1049, 774, 258, 510, 258, 510, 510, 207, 258, 510, 510, 333, 153, 494, 510, 976, 244, 452, 560, 180, 180, 180, 419, 1046, 455, 588, 589, 166, 720, 721, 1059, 23, 728, 373, 451, 158, 139, 339, 139, 339, 320, 394, 233, 952, 1059, 415, 577, 1045, 1047, 158, 258, 720, 52, 510, 1053, 952, 378, 362, 1053, 253, 408, 952, 207, 698, 452, 450, 450, 455, 976, 128, 1030, 1031, 35, 452, 976, 452, 452, 158, 452, 158, 452, 452, 452, 452, 452, 455, 452, 278, 1021, 452, 451, 977, 977, 1012, 11, 15, 16, 17, 180, 201, 260, 437, 438, 439, 441, 442, 443, 444, 445, 446, 447, 1009, 977, 452, 452, 153, 158, 1024, 1025, 452, 35, 1026, 1012, 1026, 1026, 158, 452, 452, 1068, 276, 990, 35, 452, 455, 976, 1068, 455, 976, 1036, 976, 452, 452, 433, 977, 977, 134, 1012, 158, 121, 123, 146, 249, 254, 380, 390, 451, 134, 775, 976, 359, 1037, 976, 1027, 976, 373, 451, 884, 451, 451, 268, 996, 451, 1012, 366, 368, 366, 368, 1045, 894, 894, 894, 210, 321, 451, 884, 928, 929, 930, 937, 942, 979, 981, 982, 1053, 1065, 412, 947, 1013, 1013, 1014, 452, 13, 14, 455, 898, 899, 947, 812, 1055, 974, 489, 976, 844, 1047, 853, 901, 260, 1007, 1010, 435, 744, 976, 910, 394, 907, 225, 928, 412, 948, 402, 860, 861, 1065, 258, 862, 1065, 877, 878, 455, 927, 439, 1036, 759, 699, 755, 755, 52, 757, 445, 1059, 1047, 1047, 1060, 1060, 258, 1046, 261, 258, 976, 556, 1049, 451, 451, 451, 574, 183, 559, 657, 141, 510, 373, 1059, 1047, 494, 758, 952, 1047, 419, 698, 698, 698, 698, 774, 78, 118, 273, 367, 952, 1047, 592, 1047, 168, 400, 373, 373, 592, 609, 616, 306, 336, 507, 1047, 1047, 1047, 191, 249, 751, 271, 336, 373, 262, 614, 657, 126, 310, 336, 509, 616, 794, 328, 141, 510, 141, 510, 1047, 1047, 1047, 1047, 328, 328, 215, 619, 620, 619, 452, 455, 621, 1056, 183, 452, 455, 439, 453, 1059, 1047, 306, 336, 507, 1047, 1047, 1047, 272, 306, 336, 22, 126, 272, 306, 336, 952, 243, 952, 1059, 1047, 1045, 373, 1060, 396, 640, 217, 277, 249, 447, 1056, 1063, 277, 1060, 393, 373, 373, 324, 271, 336, 81, 373, 793, 324, 373, 373, 227, 227, 227, 373, 373, 324, 373, 373, 324, 373, 324, 373, 324, 373, 510, 952, 244, 1056, 336, 794, 141, 510, 373, 1047, 373, 324, 1059, 1047, 705, 952, 698, 201, 705, 705, 1049, 1049, 705, 201, 201, 1047, 201, 705, 524, 451, 526, 527, 260, 441, 442, 588, 672, 755, 1010, 1056, 1072, 3, 675, 452, 452, 671, 672, 258, 64, 70, 81, 109, 111, 187, 244, 249, 287, 301, 389, 549, 550, 551, 140, 411, 462, 494, 1047, 494, 614, 1045, 1045, 452, 455, 1060, 166, 317, 1060, 1055, 383, 1045, 558, 26, 114, 193, 329, 394, 645, 373, 642, 42, 481, 308, 362, 102, 515, 559, 1045, 649, 676, 677, 1056, 452, 455, 1047, 559, 1045, 576, 1045, 1047, 577, 451, 541, 452, 257, 514, 257, 258, 571, 514, 35, 141, 883, 515, 373, 141, 1045, 452, 455, 109, 439, 763, 1056, 494, 362, 754, 755, 153, 764, 415, 762, 765, 114, 193, 329, 394, 802, 1047, 168, 883, 510, 952, 452, 1055, 973, 973, 450, 450, 970, 452, 1047, 510, 510, 396, 510, 396, 510, 510, 698, 698, 1047, 698, 1047, 634, 510, 141, 324, 324, 324, 1046, 724, 455, 1059, 415, 455, 722, 261, 938, 333, 139, 139, 102, 242, 1060, 719, 510, 1059, 758, 201, 747, 588, 201, 698, 201, 1016, 370, 976, 132, 952, 452, 976, 976, 976, 976, 1024, 452, 1012, 455, 952, 977, 977, 977, 977, 121, 123, 244, 254, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 976, 976, 1025, 1024, 952, 452, 452, 452, 1012, 452, 455, 52, 978, 452, 1068, 987, 284, 357, 989, 452, 455, 407, 983, 35, 452, 447, 1056, 976, 32, 32, 976, 452, 976, 158, 451, 1015, 976, 452, 134, 977, 977, 134, 134, 976, 976, 899, 412, 451, 997, 1065, 452, 1012, 455, 894, 894, 894, 894, 1045, 1045, 1045, 884, 942, 158, 884, 929, 930, 35, 931, 932, 1065, 455, 89, 159, 189, 204, 214, 239, 316, 934, 932, 35, 931, 933, 1065, 436, 946, 451, 1035, 976, 166, 912, 455, 898, 898, 898, 976, 976, 404, 1014, 452, 912, 452, 450, 452, 451, 744, 150, 209, 452, 259, 92, 976, 313, 864, 452, 455, 1036, 79, 864, 452, 455, 874, 948, 1038, 452, 445, 759, 383, 161, 331, 363, 384, 733, 153, 733, 452, 451, 562, 563, 740, 981, 1065, 559, 559, 657, 1051, 452, 111, 187, 242, 244, 658, 1047, 1047, 35, 1047, 396, 396, 698, 698, 698, 698, 207, 699, 1059, 1047, 373, 793, 324, 373, 191, 52, 365, 1047, 451, 548, 244, 514, 102, 244, 352, 355, 514, 383, 1047, 1065, 328, 618, 1047, 517, 672, 1068, 271, 336, 373, 793, 324, 373, 373, 373, 324, 160, 260, 355, 681, 682, 160, 260, 689, 690, 373, 373, 324, 452, 452, 452, 306, 1047, 451, 415, 641, 1057, 1063, 1063, 1056, 1047, 1047, 1047, 52, 365, 1047, 1047, 1047, 1047, 1047, 1047, 153, 153, 308, 153, 174, 1059, 1047, 1047, 1059, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 70, 511, 141, 24, 44, 383, 1065, 1047, 616, 1047, 1047, 452, 201, 705, 201, 201, 705, 705, 201, 705, 525, 533, 534, 1068, 48, 90, 115, 130, 134, 154, 157, 170, 249, 257, 293, 528, 657, 415, 417, 1045, 451, 698, 1047, 977, 112, 176, 111, 249, 205, 1045, 765, 291, 661, 662, 1065, 602, 451, 553, 186, 569, 544, 1060, 1060, 952, 451, 515, 1060, 640, 1059, 174, 1045, 419, 153, 650, 452, 455, 951, 614, 452, 584, 35, 254, 451, 855, 543, 545, 547, 555, 1065, 570, 569, 75, 365, 572, 883, 579, 577, 572, 1056, 1051, 738, 756, 976, 976, 455, 451, 760, 383, 455, 669, 373, 451, 592, 452, 450, 510, 1049, 1049, 510, 510, 510, 510, 333, 1046, 1046, 1046, 588, 163, 721, 452, 1047, 102, 728, 158, 201, 249, 709, 1056, 201, 201, 709, 201, 709, 976, 452, 452, 1025, 452, 976, 158, 121, 123, 254, 451, 452, 422, 985, 1012, 300, 52, 413, 413, 452, 976, 242, 976, 455, 984, 954, 974, 976, 976, 976, 1015, 452, 976, 32, 32, 976, 976, 134, 452, 452, 976, 998, 1065, 452, 976, 1045, 1045, 1045, 1045, 932, 933, 451, 452, 1065, 451, 929, 204, 267, 935, 929, 935, 204, 934, 935, 204, 364, 940, 451, 1065, 451, 265, 1013, 52, 169, 919, 452, 452, 452, 1014, 1056, 919, 1056, 775, 254, 1042, 883, 861, 258, 451, 863, 439, 877, 864, 383, 452, 373, 716, 158, 657, 976, 452, 455, 415, 70, 741, 741, 452, 452, 765, 112, 176, 185, 111, 398, 510, 952, 1049, 1049, 1047, 1047, 1047, 1047, 1047, 1060, 1047, 615, 619, 249, 249, 1057, 1065, 952, 510, 510, 439, 52, 365, 1047, 1047, 1047, 1047, 1059, 1047, 1047, 1055, 1055, 952, 455, 1055, 1055, 455, 1059, 1047, 1047, 373, 976, 64, 1060, 1047, 373, 373, 1046, 1046, 698, 1046, 141, 698, 1056, 1056, 952, 510, 510, 201, 705, 705, 705, 705, 396, 531, 532, 452, 455, 443, 451, 491, 535, 588, 829, 1056, 829, 244, 249, 293, 829, 829, 160, 190, 160, 158, 656, 976, 244, 550, 765, 558, 396, 573, 1053, 32, 140, 180, 540, 138, 181, 451, 333, 396, 559, 35, 641, 481, 244, 451, 1047, 127, 651, 411, 653, 1056, 515, 883, 698, 540, 577, 452, 455, 415, 571, 570, 114, 126, 284, 1047, 415, 815, 35, 158, 258, 451, 1056, 753, 766, 767, 1066, 765, 952, 153, 1045, 158, 373, 784, 188, 593, 510, 510, 510, 1047, 261, 199, 510, 720, 709, 709, 709, 709, 452, 977, 158, 451, 1015, 451, 452, 455, 452, 978, 300, 452, 401, 349, 452, 452, 452, 976, 976, 976, 452, 275, 999, 452, 943, 944, 981, 931, 451, 1046, 929, 258, 396, 936, 929, 204, 929, 1053, 950, 451, 950, 1065, 898, 91, 167, 319, 451, 913, 914, 915, 916, 917, 918, 976, 976, 414, 993, 898, 993, 452, 880, 81, 739, 740, 122, 451, 884, 1040, 720, 258, 720, 452, 765, 563, 260, 775, 698, 396, 698, 742, 742, 301, 765, 573, 452, 373, 336, 870, 452, 455, 511, 672, 1060, 1047, 373, 451, 1053, 775, 682, 451, 451, 690, 1047, 452, 451, 336, 870, 1047, 1047, 415, 436, 832, 308, 832, 832, 153, 511, 705, 462, 116, 534, 491, 536, 537, 1056, 1056, 249, 559, 443, 559, 1056, 1056, 724, 35, 780, 780, 1045, 657, 452, 573, 228, 561, 183, 451, 662, 291, 451, 452, 26, 74, 82, 110, 184, 355, 554, 554, 1044, 1047, 1049, 452, 883, 141, 614, 320, 351, 652, 451, 140, 35, 577, 541, 452, 545, 262, 572, 571, 321, 321, 56, 64, 220, 883, 698, 1045, 739, 755, 452, 455, 383, 947, 347, 347, 452, 592, 242, 400, 594, 595, 1047, 510, 977, 1015, 452, 986, 1012, 52, 242, 432, 52, 898, 452, 455, 35, 945, 1046, 452, 976, 451, 929, 936, 451, 452, 950, 452, 452, 451, 337, 451, 452, 455, 994, 995, 1065, 452, 1047, 452, 455, 245, 394, 722, 733, 510, 741, 573, 451, 698, 743, 743, 1045, 573, 657, 1047, 365, 619, 396, 512, 336, 870, 1047, 1015, 747, 153, 685, 774, 1015, 1015, 976, 365, 697, 698, 697, 698, 1046, 510, 526, 1056, 452, 455, 559, 780, 38, 178, 153, 242, 557, 159, 274, 342, 258, 565, 566, 567, 365, 452, 1053, 5, 663, 569, 452, 614, 147, 684, 515, 815, 1045, 976, 291, 883, 570, 569, 548, 572, 64, 261, 64, 577, 738, 452, 760, 766, 952, 122, 415, 415, 400, 592, 614, 452, 452, 452, 300, 401, 1012, 294, 321, 1000, 946, 943, 451, 452, 1046, 1012, 452, 1012, 451, 1012, 914, 455, 35, 947, 740, 336, 158, 742, 412, 564, 775, 744, 744, 558, 657, 1047, 976, 365, 452, 264, 326, 298, 686, 685, 452, 452, 452, 1047, 832, 537, 127, 185, 114, 394, 258, 567, 258, 566, 1047, 451, 452, 455, 333, 698, 35, 35, 451, 452, 1053, 815, 571, 570, 261, 261, 451, 515, 765, 27, 194, 803, 160, 160, 46, 92, 385, 976, 1001, 1002, 1001, 452, 950, 452, 452, 452, 913, 452, 995, 997, 873, 720, 743, 451, 657, 452, 561, 870, 1047, 1053, 52, 686, 870, 698, 320, 55, 242, 312, 336, 568, 568, 452, 5, 1047, 681, 883, 451, 572, 571, 739, 572, 245, 451, 798, 800, 805, 857, 865, 872, 883, 724, 724, 1002, 320, 152, 282, 152, 282, 452, 307, 941, 452, 947, 510, 744, 976, 565, 870, 747, 698, 653, 21, 109, 249, 614, 815, 4, 654, 655, 1055, 1056, 1068, 572, 452, 947, 799, 800, 801, 884, 885, 455, 455, 32, 451, 452, 657, 140, 452, 455, 515, 452, 454, 373, 158, 1002, 976, 291, 655, 572, 801, 347, 347, 452, 1053, 947, 415, 415, 451, 160, 160, 654, 724, 724, 452 }; #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 738 "gram.y" { pg_yyget_extra(yyscanner)->parsetree = (yyvsp[(1) - (1)].list); ;} break; case 3: #line 745 "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 4: #line 752 "gram.y" { if ((yyvsp[(1) - (1)].node) != NULL) (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); else (yyval.list) = NIL; ;} break; case 127: #line 884 "gram.y" { (yyval.node) = NULL; ;} break; case 128: #line 895 "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 129: #line 905 "gram.y" {;} break; case 130: #line 906 "gram.y" {;} break; case 131: #line 907 "gram.y" {;} break; case 132: #line 916 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 133: #line 917 "gram.y" { (yyval.list) = NIL; ;} break; case 134: #line 921 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 135: #line 922 "gram.y" { (yyval.list) = NIL; ;} break; case 136: #line 927 "gram.y" { (yyval.defelt) = makeDefElemExtended(NULL, "password", (yyvsp[(2) - (2)].node), DEFELEM_UNSPEC, (yylsp[(2) - (2)])); ;} break; case 137: #line 931 "gram.y" { (yyval.defelt) = makeDefElem("password", NULL); ;} break; case 138: #line 935 "gram.y" { (yyval.defelt) = makeDefElemExtended(NULL, "encryptedPassword", (yyvsp[(3) - (3)].node), DEFELEM_UNSPEC, (yylsp[(3) - (3)])); ;} break; case 139: #line 939 "gram.y" { (yyval.defelt) = makeDefElemExtended(NULL, "unencryptedPassword", (yyvsp[(3) - (3)].node), DEFELEM_UNSPEC, (yylsp[(3) - (3)])); ;} break; case 140: #line 943 "gram.y" { (yyval.defelt) = makeDefElem("inherit", (Node *)makeInteger(TRUE)); ;} break; case 141: #line 947 "gram.y" { (yyval.defelt) = makeDefElem("connectionlimit", (Node *)makeInteger((yyvsp[(3) - (3)].ival))); ;} break; case 142: #line 951 "gram.y" { (yyval.defelt) = makeDefElem("validUntil", (Node *)makeString((yyvsp[(3) - (3)].str))); ;} break; case 143: #line 956 "gram.y" { (yyval.defelt) = makeDefElem("rolemembers", (Node *)(yyvsp[(2) - (2)].list)); ;} break; case 144: #line 960 "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 *)makeInteger(TRUE)); else if (strcmp((yyvsp[(1) - (1)].str), "nosuperuser") == 0) (yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(FALSE)); else if (strcmp((yyvsp[(1) - (1)].str), "createuser") == 0) { /* For backwards compatibility, synonym for SUPERUSER */ (yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(TRUE)); } else if (strcmp((yyvsp[(1) - (1)].str), "nocreateuser") == 0) { /* For backwards compatibility, synonym for SUPERUSER */ (yyval.defelt) = makeDefElem("superuser", (Node *)makeInteger(FALSE)); } else if (strcmp((yyvsp[(1) - (1)].str), "createrole") == 0) (yyval.defelt) = makeDefElem("createrole", (Node *)makeInteger(TRUE)); else if (strcmp((yyvsp[(1) - (1)].str), "nocreaterole") == 0) (yyval.defelt) = makeDefElem("createrole", (Node *)makeInteger(FALSE)); else if (strcmp((yyvsp[(1) - (1)].str), "replication") == 0) (yyval.defelt) = makeDefElem("isreplication", (Node *)makeInteger(TRUE)); else if (strcmp((yyvsp[(1) - (1)].str), "noreplication") == 0) (yyval.defelt) = makeDefElem("isreplication", (Node *)makeInteger(FALSE)); else if (strcmp((yyvsp[(1) - (1)].str), "createdb") == 0) (yyval.defelt) = makeDefElem("createdb", (Node *)makeInteger(TRUE)); else if (strcmp((yyvsp[(1) - (1)].str), "nocreatedb") == 0) (yyval.defelt) = makeDefElem("createdb", (Node *)makeInteger(FALSE)); else if (strcmp((yyvsp[(1) - (1)].str), "login") == 0) (yyval.defelt) = makeDefElem("canlogin", (Node *)makeInteger(TRUE)); else if (strcmp((yyvsp[(1) - (1)].str), "nologin") == 0) (yyval.defelt) = makeDefElem("canlogin", (Node *)makeInteger(FALSE)); else if (strcmp((yyvsp[(1) - (1)].str), "bypassrls") == 0) (yyval.defelt) = makeDefElem("bypassrls", (Node *)makeInteger(TRUE)); else if (strcmp((yyvsp[(1) - (1)].str), "nobypassrls") == 0) (yyval.defelt) = makeDefElem("bypassrls", (Node *)makeInteger(FALSE)); 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 *)makeInteger(FALSE)); } else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized role option \"%s\"", (yyvsp[(1) - (1)].str)), parser_errposition((yylsp[(1) - (1)])))); ;} break; case 145: #line 1017 "gram.y" { (yyval.defelt) = (yyvsp[(1) - (1)].defelt); ;} break; case 146: #line 1020 "gram.y" { (yyval.defelt) = makeDefElem("sysid", (Node *)makeInteger((yyvsp[(2) - (2)].ival))); ;} break; case 147: #line 1024 "gram.y" { (yyval.defelt) = makeDefElem("adminmembers", (Node *)(yyvsp[(2) - (2)].list)); ;} break; case 148: #line 1028 "gram.y" { (yyval.defelt) = makeDefElem("rolemembers", (Node *)(yyvsp[(2) - (2)].list)); ;} break; case 149: #line 1032 "gram.y" { (yyval.defelt) = makeDefElem("addroleto", (Node *)(yyvsp[(3) - (3)].list)); ;} break; case 150: #line 1036 "gram.y" { (yyval.defelt) = makeDefElem("addroleto", (Node *)(yyvsp[(3) - (3)].list)); ;} break; case 151: #line 1050 "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 152: #line 1068 "gram.y" { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[(3) - (5)].node); n->action = +1; /* add, if there are members */ n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; ;} break; case 153: #line 1078 "gram.y" { (yyval.str) = NULL; ;} break; case 154: #line 1079 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].str); ;} break; case 155: #line 1084 "gram.y" { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = (yyvsp[(3) - (5)].node); n->database = (yyvsp[(4) - (5)].str); n->setstmt = (yyvsp[(5) - (5)].vsetstmt); (yyval.node) = (Node *)n; ;} break; case 156: #line 1092 "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 157: #line 1110 "gram.y" { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[(3) - (5)].node); n->action = +1; /* add, if there are members */ n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; ;} break; case 158: #line 1122 "gram.y" { AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); n->role = (yyvsp[(3) - (4)].node); n->database = NULL; n->setstmt = (yyvsp[(4) - (4)].vsetstmt); (yyval.node) = (Node *)n; ;} break; case 159: #line 1143 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = FALSE; n->roles = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *)n; ;} break; case 160: #line 1150 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = TRUE; n->roles = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; ;} break; case 161: #line 1169 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = FALSE; n->roles = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *)n; ;} break; case 162: #line 1176 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->roles = (yyvsp[(5) - (5)].list); n->missing_ok = TRUE; (yyval.node) = (Node *)n; ;} break; case 163: #line 1193 "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 164: #line 1211 "gram.y" { AlterRoleStmt *n = makeNode(AlterRoleStmt); n->role = (yyvsp[(3) - (6)].node); n->action = (yyvsp[(4) - (6)].ival); n->options = list_make1(makeDefElem("rolemembers", (Node *)(yyvsp[(6) - (6)].list))); (yyval.node) = (Node *)n; ;} break; case 165: #line 1221 "gram.y" { (yyval.ival) = +1; ;} break; case 166: #line 1222 "gram.y" { (yyval.ival) = -1; ;} break; case 167: #line 1235 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = FALSE; n->roles = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *)n; ;} break; case 168: #line 1242 "gram.y" { DropRoleStmt *n = makeNode(DropRoleStmt); n->missing_ok = TRUE; n->roles = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; ;} break; case 169: #line 1259 "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)].node); n->schemaElts = (yyvsp[(6) - (6)].list); n->if_not_exists = false; (yyval.node) = (Node *)n; ;} break; case 170: #line 1269 "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 171: #line 1279 "gram.y" { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); /* schema name can be omitted here, too */ n->schemaname = (yyvsp[(6) - (9)].str); n->authrole = (yyvsp[(8) - (9)].node); 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 172: #line 1294 "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 173: #line 1311 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 174: #line 1312 "gram.y" { (yyval.str) = NULL; ;} break; case 175: #line 1317 "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 176: #line 1323 "gram.y" { (yyval.list) = NIL; ;} break; case 183: #line 1351 "gram.y" { VariableSetStmt *n = (yyvsp[(2) - (2)].vsetstmt); n->is_local = false; (yyval.node) = (Node *) n; ;} break; case 184: #line 1357 "gram.y" { VariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); n->is_local = true; (yyval.node) = (Node *) n; ;} break; case 185: #line 1363 "gram.y" { VariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); n->is_local = false; (yyval.node) = (Node *) n; ;} break; case 186: #line 1372 "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 187: #line 1380 "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 189: #line 1392 "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 190: #line 1400 "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 191: #line 1408 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = (yyvsp[(1) - (3)].str); (yyval.vsetstmt) = n; ;} break; case 192: #line 1415 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = (yyvsp[(1) - (3)].str); (yyval.vsetstmt) = n; ;} break; case 193: #line 1423 "gram.y" {(yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt);;} break; case 194: #line 1425 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_CURRENT; n->name = (yyvsp[(1) - (3)].str); (yyval.vsetstmt) = n; ;} break; case 195: #line 1433 "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 196: #line 1444 "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 197: #line 1452 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "search_path"; n->args = list_make1((yyvsp[(2) - (2)].node)); (yyval.vsetstmt) = n; ;} break; case 198: #line 1460 "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 199: #line 1471 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "role"; n->args = list_make1((yyvsp[(2) - (2)].node)); (yyval.vsetstmt) = n; ;} break; case 200: #line 1479 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_VALUE; n->name = "session_authorization"; n->args = list_make1((yyvsp[(3) - (3)].node)); (yyval.vsetstmt) = n; ;} break; case 201: #line 1487 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_SET_DEFAULT; n->name = "session_authorization"; (yyval.vsetstmt) = n; ;} break; case 202: #line 1494 "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 203: #line 1503 "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 204: #line 1512 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 205: #line 1514 "gram.y" { (yyval.str) = psprintf("%s.%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); ;} break; case 206: #line 1517 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 207: #line 1518 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 208: #line 1522 "gram.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 209: #line 1524 "gram.y" { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); ;} break; case 210: #line 1526 "gram.y" { (yyval.node) = makeStringConst("?", (yylsp[(1) - (1)])); ;} break; case 211: #line 1529 "gram.y" { (yyval.str) = "read uncommitted"; ;} break; case 212: #line 1530 "gram.y" { (yyval.str) = "read committed"; ;} break; case 213: #line 1531 "gram.y" { (yyval.str) = "repeatable read"; ;} break; case 214: #line 1532 "gram.y" { (yyval.str) = "serializable"; ;} break; case 215: #line 1536 "gram.y" { (yyval.str) = "true"; ;} break; case 216: #line 1537 "gram.y" { (yyval.str) = "false"; ;} break; case 217: #line 1538 "gram.y" { (yyval.str) = "on"; ;} break; case 218: #line 1544 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 219: #line 1557 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 220: #line 1561 "gram.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 221: #line 1565 "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.val.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 222: #line 1580 "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 223: #line 1586 "gram.y" { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); ;} break; case 224: #line 1587 "gram.y" { (yyval.node) = NULL; ;} break; case 225: #line 1588 "gram.y" { (yyval.node) = NULL; ;} break; case 226: #line 1592 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 227: #line 1593 "gram.y" { (yyval.str) = NULL; ;} break; case 228: #line 1594 "gram.y" { (yyval.str) = NULL; ;} break; case 229: #line 1598 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 230: #line 1599 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 231: #line 1603 "gram.y" { (yyval.node) = (Node *) (yyvsp[(2) - (2)].vsetstmt); ;} break; case 232: #line 1607 "gram.y" { (yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt); ;} break; case 233: #line 1609 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "timezone"; (yyval.vsetstmt) = n; ;} break; case 234: #line 1616 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "transaction_isolation"; (yyval.vsetstmt) = n; ;} break; case 235: #line 1623 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = "session_authorization"; (yyval.vsetstmt) = n; ;} break; case 236: #line 1633 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET; n->name = (yyvsp[(1) - (1)].str); (yyval.vsetstmt) = n; ;} break; case 237: #line 1640 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->kind = VAR_RESET_ALL; (yyval.vsetstmt) = n; ;} break; case 238: #line 1649 "gram.y" { (yyval.vsetstmt) = (yyvsp[(2) - (2)].vsetstmt); ;} break; case 239: #line 1650 "gram.y" { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[(1) - (1)].node); ;} break; case 240: #line 1655 "gram.y" { (yyval.vsetstmt) = (yyvsp[(2) - (2)].vsetstmt); ;} break; case 241: #line 1656 "gram.y" { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[(1) - (1)].node); ;} break; case 242: #line 1662 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; ;} break; case 243: #line 1668 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "timezone"; (yyval.node) = (Node *) n; ;} break; case 244: #line 1674 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "transaction_isolation"; (yyval.node) = (Node *) n; ;} break; case 245: #line 1680 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "session_authorization"; (yyval.node) = (Node *) n; ;} break; case 246: #line 1686 "gram.y" { VariableShowStmt *n = makeNode(VariableShowStmt); n->name = "all"; (yyval.node) = (Node *) n; ;} break; case 247: #line 1696 "gram.y" { ConstraintsSetStmt *n = makeNode(ConstraintsSetStmt); n->constraints = (yyvsp[(3) - (4)].list); n->deferred = (yyvsp[(4) - (4)].boolean); (yyval.node) = (Node *) n; ;} break; case 248: #line 1705 "gram.y" { (yyval.list) = NIL; ;} break; case 249: #line 1706 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 250: #line 1710 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 251: #line 1711 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 252: #line 1720 "gram.y" { CheckPointStmt *n = makeNode(CheckPointStmt); (yyval.node) = (Node *)n; ;} break; case 253: #line 1735 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_ALL; (yyval.node) = (Node *) n; ;} break; case 254: #line 1741 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_TEMP; (yyval.node) = (Node *) n; ;} break; case 255: #line 1747 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_TEMP; (yyval.node) = (Node *) n; ;} break; case 256: #line 1753 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_PLANS; (yyval.node) = (Node *) n; ;} break; case 257: #line 1759 "gram.y" { DiscardStmt *n = makeNode(DiscardStmt); n->target = DISCARD_SEQUENCES; (yyval.node) = (Node *) n; ;} break; case 258: #line 1778 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(3) - (4)].range); n->cmds = (yyvsp[(4) - (4)].list); n->relkind = OBJECT_TABLE; n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 259: #line 1787 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(5) - (6)].range); n->cmds = (yyvsp[(6) - (6)].list); n->relkind = OBJECT_TABLE; n->missing_ok = true; (yyval.node) = (Node *)n; ;} break; case 260: #line 1796 "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 261: #line 1807 "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 262: #line 1818 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(3) - (4)].range); n->cmds = (yyvsp[(4) - (4)].list); n->relkind = OBJECT_INDEX; n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 263: #line 1827 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(5) - (6)].range); n->cmds = (yyvsp[(6) - (6)].list); n->relkind = OBJECT_INDEX; n->missing_ok = true; (yyval.node) = (Node *)n; ;} break; case 264: #line 1836 "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 265: #line 1847 "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 266: #line 1858 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(3) - (4)].range); n->cmds = (yyvsp[(4) - (4)].list); n->relkind = OBJECT_SEQUENCE; n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 267: #line 1867 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(5) - (6)].range); n->cmds = (yyvsp[(6) - (6)].list); n->relkind = OBJECT_SEQUENCE; n->missing_ok = true; (yyval.node) = (Node *)n; ;} break; case 268: #line 1876 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(3) - (4)].range); n->cmds = (yyvsp[(4) - (4)].list); n->relkind = OBJECT_VIEW; n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 269: #line 1885 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(5) - (6)].range); n->cmds = (yyvsp[(6) - (6)].list); n->relkind = OBJECT_VIEW; n->missing_ok = true; (yyval.node) = (Node *)n; ;} break; case 270: #line 1894 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(4) - (5)].range); n->cmds = (yyvsp[(5) - (5)].list); n->relkind = OBJECT_MATVIEW; n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 271: #line 1903 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(6) - (7)].range); n->cmds = (yyvsp[(7) - (7)].list); n->relkind = OBJECT_MATVIEW; n->missing_ok = true; (yyval.node) = (Node *)n; ;} break; case 272: #line 1912 "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 273: #line 1923 "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 274: #line 1936 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 275: #line 1937 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 276: #line 1943 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[(2) - (2)].node); (yyval.node) = (Node *)n; ;} break; case 277: #line 1951 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddColumn; n->def = (yyvsp[(3) - (3)].node); (yyval.node) = (Node *)n; ;} break; case 278: #line 1959 "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 279: #line 1968 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropNotNull; n->name = (yyvsp[(3) - (6)].str); (yyval.node) = (Node *)n; ;} break; case 280: #line 1976 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetNotNull; n->name = (yyvsp[(3) - (6)].str); (yyval.node) = (Node *)n; ;} break; case 281: #line 1984 "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 282: #line 1993 "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 283: #line 2002 "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 284: #line 2011 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetStorage; n->name = (yyvsp[(3) - (6)].str); n->def = (Node *) makeString((yyvsp[(6) - (6)].str)); (yyval.node) = (Node *)n; ;} break; case 285: #line 2020 "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 286: #line 2030 "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 287: #line 2043 "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 288: #line 2058 "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 289: #line 2067 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddConstraint; n->def = (yyvsp[(2) - (2)].node); (yyval.node) = (Node *)n; ;} break; case 290: #line 2075 "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 291: #line 2090 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ValidateConstraint; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; ;} break; case 292: #line 2098 "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 293: #line 2108 "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 294: #line 2118 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddOids; (yyval.node) = (Node *)n; ;} break; case 295: #line 2125 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropOids; (yyval.node) = (Node *)n; ;} break; case 296: #line 2132 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ClusterOn; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; ;} break; case 297: #line 2140 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropCluster; n->name = NULL; (yyval.node) = (Node *)n; ;} break; case 298: #line 2148 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetLogged; (yyval.node) = (Node *)n; ;} break; case 299: #line 2155 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetUnLogged; (yyval.node) = (Node *)n; ;} break; case 300: #line 2162 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrig; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; ;} break; case 301: #line 2170 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableAlwaysTrig; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *)n; ;} break; case 302: #line 2178 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableReplicaTrig; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *)n; ;} break; case 303: #line 2186 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrigAll; (yyval.node) = (Node *)n; ;} break; case 304: #line 2193 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableTrigUser; (yyval.node) = (Node *)n; ;} break; case 305: #line 2200 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrig; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; ;} break; case 306: #line 2208 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrigAll; (yyval.node) = (Node *)n; ;} break; case 307: #line 2215 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableTrigUser; (yyval.node) = (Node *)n; ;} break; case 308: #line 2222 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableRule; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; ;} break; case 309: #line 2230 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableAlwaysRule; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *)n; ;} break; case 310: #line 2238 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableReplicaRule; n->name = (yyvsp[(4) - (4)].str); (yyval.node) = (Node *)n; ;} break; case 311: #line 2246 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableRule; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; ;} break; case 312: #line 2254 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_AddInherit; n->def = (Node *) (yyvsp[(2) - (2)].range); (yyval.node) = (Node *)n; ;} break; case 313: #line 2262 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropInherit; n->def = (Node *) (yyvsp[(3) - (3)].range); (yyval.node) = (Node *)n; ;} break; case 314: #line 2270 "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 315: #line 2280 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropOf; (yyval.node) = (Node *)n; ;} break; case 316: #line 2287 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ChangeOwner; n->newowner = (yyvsp[(3) - (3)].node); (yyval.node) = (Node *)n; ;} break; case 317: #line 2295 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetTableSpace; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; ;} break; case 318: #line 2303 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetRelOptions; n->def = (Node *)(yyvsp[(2) - (2)].list); (yyval.node) = (Node *)n; ;} break; case 319: #line 2311 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ResetRelOptions; n->def = (Node *)(yyvsp[(2) - (2)].list); (yyval.node) = (Node *)n; ;} break; case 320: #line 2319 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ReplicaIdentity; n->def = (yyvsp[(3) - (3)].node); (yyval.node) = (Node *)n; ;} break; case 321: #line 2327 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_EnableRowSecurity; (yyval.node) = (Node *)n; ;} break; case 322: #line 2334 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DisableRowSecurity; (yyval.node) = (Node *)n; ;} break; case 323: #line 2341 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_ForceRowSecurity; (yyval.node) = (Node *)n; ;} break; case 324: #line 2348 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_NoForceRowSecurity; (yyval.node) = (Node *)n; ;} break; case 325: #line 2354 "gram.y" { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_GenericOptions; n->def = (Node *)(yyvsp[(1) - (1)].list); (yyval.node) = (Node *) n; ;} break; case 326: #line 2363 "gram.y" { (yyval.node) = (yyvsp[(3) - (3)].node); ;} break; case 327: #line 2364 "gram.y" { (yyval.node) = NULL; ;} break; case 328: #line 2368 "gram.y" { (yyval.dbehavior) = DROP_CASCADE; ;} break; case 329: #line 2369 "gram.y" { (yyval.dbehavior) = DROP_RESTRICT; ;} break; case 330: #line 2370 "gram.y" { (yyval.dbehavior) = DROP_RESTRICT; /* default */ ;} break; case 331: #line 2375 "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 332: #line 2382 "gram.y" { (yyval.node) = NULL; ;} break; case 333: #line 2386 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 334: #line 2387 "gram.y" { (yyval.node) = NULL; ;} break; case 335: #line 2392 "gram.y" { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_NOTHING; n->name = NULL; (yyval.node) = (Node *) n; ;} break; case 336: #line 2399 "gram.y" { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_FULL; n->name = NULL; (yyval.node) = (Node *) n; ;} break; case 337: #line 2406 "gram.y" { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_DEFAULT; n->name = NULL; (yyval.node) = (Node *) n; ;} break; case 338: #line 2413 "gram.y" { ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); n->identity_type = REPLICA_IDENTITY_INDEX; n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 339: #line 2422 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 340: #line 2425 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 341: #line 2426 "gram.y" { (yyval.list) = NIL; ;} break; case 342: #line 2430 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 343: #line 2431 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 344: #line 2437 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node)); ;} break; case 345: #line 2441 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL); ;} break; case 346: #line 2445 "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 347: #line 2450 "gram.y" { (yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str), NULL, DEFELEM_UNSPEC, (yylsp[(1) - (3)])); ;} break; case 348: #line 2465 "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->relkind = OBJECT_TYPE; (yyval.node) = (Node *)n; ;} break; case 349: #line 2477 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 350: #line 2478 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 351: #line 2484 "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 352: #line 2493 "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 353: #line 2503 "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 354: #line 2513 "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 355: #line 2539 "gram.y" { ClosePortalStmt *n = makeNode(ClosePortalStmt); n->portalname = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *)n; ;} break; case 356: #line 2545 "gram.y" { ClosePortalStmt *n = makeNode(ClosePortalStmt); n->portalname = NULL; (yyval.node) = (Node *)n; ;} break; case 357: #line 2576 "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[(6) - (11)].boolean); n->is_program = (yyvsp[(7) - (11)].boolean); n->filename = (yyvsp[(8) - (11)].str); 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)])))); n->options = NIL; /* Concatenate user-supplied flags */ if ((yyvsp[(2) - (11)].defelt)) n->options = lappend(n->options, (yyvsp[(2) - (11)].defelt)); if ((yyvsp[(5) - (11)].defelt)) n->options = lappend(n->options, (yyvsp[(5) - (11)].defelt)); if ((yyvsp[(9) - (11)].defelt)) n->options = lappend(n->options, (yyvsp[(9) - (11)].defelt)); if ((yyvsp[(11) - (11)].list)) n->options = list_concat(n->options, (yyvsp[(11) - (11)].list)); (yyval.node) = (Node *)n; ;} break; case 358: #line 2604 "gram.y" { CopyStmt *n = makeNode(CopyStmt); n->relation = NULL; n->query = (yyvsp[(2) - (7)].node); n->attlist = NIL; n->is_from = false; n->is_program = (yyvsp[(4) - (7)].boolean); n->filename = (yyvsp[(5) - (7)].str); n->options = (yyvsp[(7) - (7)].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) - (7)])))); (yyval.node) = (Node *)n; ;} break; case 359: #line 2625 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 360: #line 2626 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 361: #line 2630 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 362: #line 2631 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 363: #line 2640 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 364: #line 2641 "gram.y" { (yyval.str) = NULL; ;} break; case 365: #line 2642 "gram.y" { (yyval.str) = NULL; ;} break; case 366: #line 2645 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 367: #line 2646 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 368: #line 2651 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 369: #line 2652 "gram.y" { (yyval.list) = NIL; ;} break; case 370: #line 2657 "gram.y" { (yyval.defelt) = makeDefElem("format", (Node *)makeString("binary")); ;} break; case 371: #line 2661 "gram.y" { (yyval.defelt) = makeDefElem("oids", (Node *)makeInteger(TRUE)); ;} break; case 372: #line 2665 "gram.y" { (yyval.defelt) = makeDefElem("freeze", (Node *)makeInteger(TRUE)); ;} break; case 373: #line 2669 "gram.y" { (yyval.defelt) = makeDefElem("delimiter", (Node *)makeString((yyvsp[(3) - (3)].str))); ;} break; case 374: #line 2673 "gram.y" { (yyval.defelt) = makeDefElem("null", (Node *)makeString((yyvsp[(3) - (3)].str))); ;} break; case 375: #line 2677 "gram.y" { (yyval.defelt) = makeDefElem("format", (Node *)makeString("csv")); ;} break; case 376: #line 2681 "gram.y" { (yyval.defelt) = makeDefElem("header", (Node *)makeInteger(TRUE)); ;} break; case 377: #line 2685 "gram.y" { (yyval.defelt) = makeDefElem("quote", (Node *)makeString((yyvsp[(3) - (3)].str))); ;} break; case 378: #line 2689 "gram.y" { (yyval.defelt) = makeDefElem("escape", (Node *)makeString((yyvsp[(3) - (3)].str))); ;} break; case 379: #line 2693 "gram.y" { (yyval.defelt) = makeDefElem("force_quote", (Node *)(yyvsp[(3) - (3)].list)); ;} break; case 380: #line 2697 "gram.y" { (yyval.defelt) = makeDefElem("force_quote", (Node *)makeNode(A_Star)); ;} break; case 381: #line 2701 "gram.y" { (yyval.defelt) = makeDefElem("force_not_null", (Node *)(yyvsp[(4) - (4)].list)); ;} break; case 382: #line 2705 "gram.y" { (yyval.defelt) = makeDefElem("force_null", (Node *)(yyvsp[(3) - (3)].list)); ;} break; case 383: #line 2709 "gram.y" { (yyval.defelt) = makeDefElem("encoding", (Node *)makeString((yyvsp[(2) - (2)].str))); ;} break; case 384: #line 2718 "gram.y" { (yyval.defelt) = makeDefElem("format", (Node *)makeString("binary")); ;} break; case 385: #line 2721 "gram.y" { (yyval.defelt) = NULL; ;} break; case 386: #line 2726 "gram.y" { (yyval.defelt) = makeDefElem("oids", (Node *)makeInteger(TRUE)); ;} break; case 387: #line 2729 "gram.y" { (yyval.defelt) = NULL; ;} break; case 388: #line 2734 "gram.y" { (yyval.defelt) = makeDefElem("delimiter", (Node *)makeString((yyvsp[(3) - (3)].str))); ;} break; case 389: #line 2737 "gram.y" { (yyval.defelt) = NULL; ;} break; case 390: #line 2741 "gram.y" {;} break; case 391: #line 2742 "gram.y" {;} break; case 392: #line 2748 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 393: #line 2752 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 394: #line 2759 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node)); ;} break; case 395: #line 2765 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 396: #line 2766 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].value); ;} break; case 397: #line 2767 "gram.y" { (yyval.node) = (Node *) makeNode(A_Star); ;} break; case 398: #line 2768 "gram.y" { (yyval.node) = (Node *) (yyvsp[(2) - (3)].list); ;} break; case 399: #line 2769 "gram.y" { (yyval.node) = NULL; ;} break; case 400: #line 2774 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 401: #line 2778 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 402: #line 2785 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 403: #line 2798 "gram.y" { CreateStmt *n = makeNode(CreateStmt); (yyvsp[(4) - (11)].range)->relpersistence = (yyvsp[(2) - (11)].ival); n->relation = (yyvsp[(4) - (11)].range); n->tableElts = (yyvsp[(6) - (11)].list); n->inhRelations = (yyvsp[(8) - (11)].list); n->ofTypename = NULL; n->constraints = NIL; n->options = (yyvsp[(9) - (11)].list); n->oncommit = (yyvsp[(10) - (11)].oncommit); n->tablespacename = (yyvsp[(11) - (11)].str); n->if_not_exists = false; (yyval.node) = (Node *)n; ;} break; case 404: #line 2815 "gram.y" { CreateStmt *n = makeNode(CreateStmt); (yyvsp[(7) - (14)].range)->relpersistence = (yyvsp[(2) - (14)].ival); n->relation = (yyvsp[(7) - (14)].range); n->tableElts = (yyvsp[(9) - (14)].list); n->inhRelations = (yyvsp[(11) - (14)].list); n->ofTypename = NULL; n->constraints = NIL; n->options = (yyvsp[(12) - (14)].list); n->oncommit = (yyvsp[(13) - (14)].oncommit); n->tablespacename = (yyvsp[(14) - (14)].str); n->if_not_exists = true; (yyval.node) = (Node *)n; ;} break; case 405: #line 2831 "gram.y" { CreateStmt *n = makeNode(CreateStmt); (yyvsp[(4) - (10)].range)->relpersistence = (yyvsp[(2) - (10)].ival); n->relation = (yyvsp[(4) - (10)].range); n->tableElts = (yyvsp[(7) - (10)].list); n->inhRelations = NIL; n->ofTypename = makeTypeNameFromNameList((yyvsp[(6) - (10)].list)); n->ofTypename->location = (yylsp[(6) - (10)]); n->constraints = NIL; n->options = (yyvsp[(8) - (10)].list); n->oncommit = (yyvsp[(9) - (10)].oncommit); n->tablespacename = (yyvsp[(10) - (10)].str); n->if_not_exists = false; (yyval.node) = (Node *)n; ;} break; case 406: #line 2848 "gram.y" { CreateStmt *n = makeNode(CreateStmt); (yyvsp[(7) - (13)].range)->relpersistence = (yyvsp[(2) - (13)].ival); n->relation = (yyvsp[(7) - (13)].range); n->tableElts = (yyvsp[(10) - (13)].list); n->inhRelations = NIL; n->ofTypename = makeTypeNameFromNameList((yyvsp[(9) - (13)].list)); n->ofTypename->location = (yylsp[(9) - (13)]); n->constraints = NIL; n->options = (yyvsp[(11) - (13)].list); n->oncommit = (yyvsp[(12) - (13)].oncommit); n->tablespacename = (yyvsp[(13) - (13)].str); n->if_not_exists = true; (yyval.node) = (Node *)n; ;} break; case 407: #line 2876 "gram.y" { (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 408: #line 2877 "gram.y" { (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 409: #line 2878 "gram.y" { (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 410: #line 2879 "gram.y" { (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 411: #line 2881 "gram.y" { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[(1) - (2)])))); (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 412: #line 2888 "gram.y" { ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition((yylsp[(1) - (2)])))); (yyval.ival) = RELPERSISTENCE_TEMP; ;} break; case 413: #line 2894 "gram.y" { (yyval.ival) = RELPERSISTENCE_UNLOGGED; ;} break; case 414: #line 2895 "gram.y" { (yyval.ival) = RELPERSISTENCE_PERMANENT; ;} break; case 415: #line 2899 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 416: #line 2900 "gram.y" { (yyval.list) = NIL; ;} break; case 417: #line 2904 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 418: #line 2905 "gram.y" { (yyval.list) = NIL; ;} break; case 419: #line 2910 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 420: #line 2914 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 421: #line 2921 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 422: #line 2925 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 423: #line 2931 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 424: #line 2932 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 425: #line 2933 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 426: #line 2937 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 427: #line 2938 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 428: #line 2942 "gram.y" { ColumnDef *n = makeNode(ColumnDef); n->colname = (yyvsp[(1) - (4)].str); n->typeName = (yyvsp[(2) - (4)].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->collOid = InvalidOid; n->fdwoptions = (yyvsp[(3) - (4)].list); SplitColQualList((yyvsp[(4) - (4)].list), &n->constraints, &n->collClause, yyscanner); n->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *)n; ;} break; case 429: #line 2963 "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 430: #line 2983 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 431: #line 2984 "gram.y" { (yyval.list) = NIL; ;} break; case 432: #line 2989 "gram.y" { Constraint *n = (Constraint *) (yyvsp[(3) - (3)].node); Assert(IsA(n, Constraint)); n->conname = (yyvsp[(2) - (3)].str); n->location = (yylsp[(1) - (3)]); (yyval.node) = (Node *) n; ;} break; case 433: #line 2996 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 434: #line 2997 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 435: #line 2999 "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 436: #line 3030 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_NOTNULL; n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *)n; ;} break; case 437: #line 3037 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_NULL; n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *)n; ;} break; case 438: #line 3044 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; n->location = (yylsp[(1) - (3)]); n->keys = NULL; n->options = (yyvsp[(2) - (3)].list); n->indexname = NULL; n->indexspace = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; ;} break; case 439: #line 3055 "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 440: #line 3066 "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; (yyval.node) = (Node *)n; ;} break; case 441: #line 3076 "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 442: #line 3085 "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 = (char) ((yyvsp[(5) - (5)].ival) >> 8); n->fk_del_action = (char) ((yyvsp[(5) - (5)].ival) & 0xFF); n->skip_validation = false; n->initially_valid = true; (yyval.node) = (Node *)n; ;} break; case 443: #line 3118 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_DEFERRABLE; n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *)n; ;} break; case 444: #line 3125 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_NOT_DEFERRABLE; n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *)n; ;} break; case 445: #line 3132 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_DEFERRED; n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *)n; ;} break; case 446: #line 3139 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_ATTR_IMMEDIATE; n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *)n; ;} break; case 447: #line 3150 "gram.y" { TableLikeClause *n = makeNode(TableLikeClause); n->relation = (yyvsp[(2) - (3)].range); n->options = (yyvsp[(3) - (3)].ival); (yyval.node) = (Node *)n; ;} break; case 448: #line 3159 "gram.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;} break; case 449: #line 3160 "gram.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) & ~(yyvsp[(3) - (3)].ival); ;} break; case 450: #line 3161 "gram.y" { (yyval.ival) = 0; ;} break; case 451: #line 3165 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_DEFAULTS; ;} break; case 452: #line 3166 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_CONSTRAINTS; ;} break; case 453: #line 3167 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_INDEXES; ;} break; case 454: #line 3168 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_STORAGE; ;} break; case 455: #line 3169 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_COMMENTS; ;} break; case 456: #line 3170 "gram.y" { (yyval.ival) = CREATE_TABLE_LIKE_ALL; ;} break; case 457: #line 3180 "gram.y" { Constraint *n = (Constraint *) (yyvsp[(3) - (3)].node); Assert(IsA(n, Constraint)); n->conname = (yyvsp[(2) - (3)].str); n->location = (yylsp[(1) - (3)]); (yyval.node) = (Node *) n; ;} break; case 458: #line 3187 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 459: #line 3192 "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 460: #line 3206 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; n->location = (yylsp[(1) - (7)]); n->keys = (yyvsp[(3) - (7)].list); n->options = (yyvsp[(5) - (7)].list); n->indexname = NULL; n->indexspace = (yyvsp[(6) - (7)].str); processCASbits((yyvsp[(7) - (7)].ival), (yylsp[(7) - (7)]), "UNIQUE", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; ;} break; case 461: #line 3220 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; n->location = (yylsp[(1) - (3)]); n->keys = 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 462: #line 3235 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; n->location = (yylsp[(1) - (8)]); n->keys = (yyvsp[(4) - (8)].list); n->options = (yyvsp[(6) - (8)].list); n->indexname = NULL; n->indexspace = (yyvsp[(7) - (8)].str); processCASbits((yyvsp[(8) - (8)].ival), (yylsp[(8) - (8)]), "PRIMARY KEY", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; ;} break; case 463: #line 3249 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; n->location = (yylsp[(1) - (4)]); n->keys = 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 464: #line 3265 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_EXCLUSION; n->location = (yylsp[(1) - (9)]); n->access_method = (yyvsp[(2) - (9)].str); n->exclusions = (yyvsp[(4) - (9)].list); n->options = (yyvsp[(6) - (9)].list); n->indexname = NULL; n->indexspace = (yyvsp[(7) - (9)].str); n->where_clause = (yyvsp[(8) - (9)].node); processCASbits((yyvsp[(9) - (9)].ival), (yylsp[(9) - (9)]), "EXCLUDE", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); (yyval.node) = (Node *)n; ;} break; case 465: #line 3282 "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 = (char) ((yyvsp[(10) - (11)].ival) >> 8); n->fk_del_action = (char) ((yyvsp[(10) - (11)].ival) & 0xFF); 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 466: #line 3301 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 467: #line 3302 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 468: #line 3306 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 469: #line 3307 "gram.y" { (yyval.list) = NIL; ;} break; case 470: #line 3311 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 471: #line 3312 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 472: #line 3316 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 473: #line 3322 "gram.y" { (yyval.ival) = FKCONSTR_MATCH_FULL; ;} break; case 474: #line 3326 "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 475: #line 3334 "gram.y" { (yyval.ival) = FKCONSTR_MATCH_SIMPLE; ;} break; case 476: #line 3338 "gram.y" { (yyval.ival) = FKCONSTR_MATCH_SIMPLE; ;} break; case 477: #line 3344 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} break; case 478: #line 3346 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} break; case 479: #line 3350 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (3)].ielem), (yyvsp[(3) - (3)].list)); ;} break; case 480: #line 3355 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (6)].ielem), (yyvsp[(5) - (6)].list)); ;} break; case 481: #line 3361 "gram.y" { (yyval.node) = (yyvsp[(3) - (4)].node); ;} break; case 482: #line 3362 "gram.y" { (yyval.node) = NULL; ;} break; case 483: #line 3373 "gram.y" { (yyval.ival) = ((yyvsp[(1) - (1)].ival) << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); ;} break; case 484: #line 3375 "gram.y" { (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[(1) - (1)].ival) & 0xFF); ;} break; case 485: #line 3377 "gram.y" { (yyval.ival) = ((yyvsp[(1) - (2)].ival) << 8) | ((yyvsp[(2) - (2)].ival) & 0xFF); ;} break; case 486: #line 3379 "gram.y" { (yyval.ival) = ((yyvsp[(2) - (2)].ival) << 8) | ((yyvsp[(1) - (2)].ival) & 0xFF); ;} break; case 487: #line 3381 "gram.y" { (yyval.ival) = (FKCONSTR_ACTION_NOACTION << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); ;} break; case 488: #line 3384 "gram.y" { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;} break; case 489: #line 3387 "gram.y" { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;} break; case 490: #line 3391 "gram.y" { (yyval.ival) = FKCONSTR_ACTION_NOACTION; ;} break; case 491: #line 3392 "gram.y" { (yyval.ival) = FKCONSTR_ACTION_RESTRICT; ;} break; case 492: #line 3393 "gram.y" { (yyval.ival) = FKCONSTR_ACTION_CASCADE; ;} break; case 493: #line 3394 "gram.y" { (yyval.ival) = FKCONSTR_ACTION_SETNULL; ;} break; case 494: #line 3395 "gram.y" { (yyval.ival) = FKCONSTR_ACTION_SETDEFAULT; ;} break; case 495: #line 3398 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 496: #line 3399 "gram.y" { (yyval.list) = NIL; ;} break; case 497: #line 3404 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 498: #line 3405 "gram.y" { (yyval.list) = list_make1(defWithOids(true)); ;} break; case 499: #line 3406 "gram.y" { (yyval.list) = list_make1(defWithOids(false)); ;} break; case 500: #line 3407 "gram.y" { (yyval.list) = NIL; ;} break; case 501: #line 3410 "gram.y" { (yyval.oncommit) = ONCOMMIT_DROP; ;} break; case 502: #line 3411 "gram.y" { (yyval.oncommit) = ONCOMMIT_DELETE_ROWS; ;} break; case 503: #line 3412 "gram.y" { (yyval.oncommit) = ONCOMMIT_PRESERVE_ROWS; ;} break; case 504: #line 3413 "gram.y" { (yyval.oncommit) = ONCOMMIT_NOOP; ;} break; case 505: #line 3416 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 506: #line 3417 "gram.y" { (yyval.str) = NULL; ;} break; case 507: #line 3420 "gram.y" { (yyval.str) = (yyvsp[(4) - (4)].str); ;} break; case 508: #line 3421 "gram.y" { (yyval.str) = NULL; ;} break; case 509: #line 3424 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].str); ;} break; case 510: #line 3440 "gram.y" { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[(6) - (7)].node); ctas->into = (yyvsp[(4) - (7)].into); ctas->relkind = 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 511: #line 3453 "gram.y" { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[(9) - (10)].node); ctas->into = (yyvsp[(7) - (10)].into); ctas->relkind = 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 512: #line 3469 "gram.y" { (yyval.into) = makeNode(IntoClause); (yyval.into)->rel = (yyvsp[(1) - (5)].range); (yyval.into)->colNames = (yyvsp[(2) - (5)].list); (yyval.into)->options = (yyvsp[(3) - (5)].list); (yyval.into)->onCommit = (yyvsp[(4) - (5)].oncommit); (yyval.into)->tableSpaceName = (yyvsp[(5) - (5)].str); (yyval.into)->viewQuery = NULL; (yyval.into)->skipData = false; /* might get changed later */ ;} break; case 513: #line 3482 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 514: #line 3483 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 515: #line 3484 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 516: #line 3497 "gram.y" { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[(7) - (8)].node); ctas->into = (yyvsp[(5) - (8)].into); ctas->relkind = 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 517: #line 3510 "gram.y" { CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = (yyvsp[(10) - (11)].node); ctas->into = (yyvsp[(8) - (11)].into); ctas->relkind = 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 518: #line 3526 "gram.y" { (yyval.into) = makeNode(IntoClause); (yyval.into)->rel = (yyvsp[(1) - (4)].range); (yyval.into)->colNames = (yyvsp[(2) - (4)].list); (yyval.into)->options = (yyvsp[(3) - (4)].list); (yyval.into)->onCommit = ONCOMMIT_NOOP; (yyval.into)->tableSpaceName = (yyvsp[(4) - (4)].str); (yyval.into)->viewQuery = NULL; /* filled at analysis time */ (yyval.into)->skipData = false; /* might get changed later */ ;} break; case 519: #line 3538 "gram.y" { (yyval.ival) = RELPERSISTENCE_UNLOGGED; ;} break; case 520: #line 3539 "gram.y" { (yyval.ival) = RELPERSISTENCE_PERMANENT; ;} break; case 521: #line 3552 "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 522: #line 3572 "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 523: #line 3582 "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 524: #line 3595 "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 525: #line 3603 "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 526: #line 3613 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 527: #line 3614 "gram.y" { (yyval.list) = NIL; ;} break; case 528: #line 3617 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 529: #line 3618 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 530: #line 3622 "gram.y" { (yyval.defelt) = makeDefElem("cache", (Node *)(yyvsp[(2) - (2)].value)); ;} break; case 531: #line 3626 "gram.y" { (yyval.defelt) = makeDefElem("cycle", (Node *)makeInteger(TRUE)); ;} break; case 532: #line 3630 "gram.y" { (yyval.defelt) = makeDefElem("cycle", (Node *)makeInteger(FALSE)); ;} break; case 533: #line 3634 "gram.y" { (yyval.defelt) = makeDefElem("increment", (Node *)(yyvsp[(3) - (3)].value)); ;} break; case 534: #line 3638 "gram.y" { (yyval.defelt) = makeDefElem("maxvalue", (Node *)(yyvsp[(2) - (2)].value)); ;} break; case 535: #line 3642 "gram.y" { (yyval.defelt) = makeDefElem("minvalue", (Node *)(yyvsp[(2) - (2)].value)); ;} break; case 536: #line 3646 "gram.y" { (yyval.defelt) = makeDefElem("maxvalue", NULL); ;} break; case 537: #line 3650 "gram.y" { (yyval.defelt) = makeDefElem("minvalue", NULL); ;} break; case 538: #line 3654 "gram.y" { (yyval.defelt) = makeDefElem("owned_by", (Node *)(yyvsp[(3) - (3)].list)); ;} break; case 539: #line 3658 "gram.y" { (yyval.defelt) = makeDefElem("start", (Node *)(yyvsp[(3) - (3)].value)); ;} break; case 540: #line 3662 "gram.y" { (yyval.defelt) = makeDefElem("restart", NULL); ;} break; case 541: #line 3666 "gram.y" { (yyval.defelt) = makeDefElem("restart", (Node *)(yyvsp[(3) - (3)].value)); ;} break; case 542: #line 3671 "gram.y" {;} break; case 543: #line 3672 "gram.y" {;} break; case 544: #line 3676 "gram.y" { (yyval.value) = makeFloat((yyvsp[(1) - (1)].str)); ;} break; case 545: #line 3678 "gram.y" { (yyval.value) = makeFloat((yyvsp[(2) - (2)].str)); doNegateFloat((yyval.value)); ;} break; case 546: #line 3682 "gram.y" { (yyval.value) = makeInteger((yyvsp[(1) - (1)].ival)); ;} break; case 547: #line 3685 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].value)); ;} break; case 548: #line 3686 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].value)); ;} break; case 549: #line 3699 "gram.y" { CreatePLangStmt *n = makeNode(CreatePLangStmt); n->replace = (yyvsp[(2) - (6)].boolean); n->plname = (yyvsp[(6) - (6)].str); /* parameters are all to be supplied by system */ n->plhandler = NIL; n->plinline = NIL; n->plvalidator = NIL; n->pltrusted = false; (yyval.node) = (Node *)n; ;} break; case 550: #line 3712 "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 551: #line 3725 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 552: #line 3726 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 553: #line 3734 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 554: #line 3735 "gram.y" { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;} break; case 555: #line 3739 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 556: #line 3740 "gram.y" { (yyval.list) = NIL; ;} break; case 557: #line 3744 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 558: #line 3745 "gram.y" { (yyval.list) = NIL; ;} break; case 559: #line 3749 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 560: #line 3750 "gram.y" { (yyval.list) = NIL; ;} break; case 561: #line 3755 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_LANGUAGE; n->objects = list_make1(list_make1(makeString((yyvsp[(4) - (5)].str)))); n->arguments = NIL; n->behavior = (yyvsp[(5) - (5)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; ;} break; case 562: #line 3766 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_LANGUAGE; n->objects = list_make1(list_make1(makeString((yyvsp[(6) - (7)].str)))); n->behavior = (yyvsp[(7) - (7)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; ;} break; case 563: #line 3778 "gram.y" {;} break; case 564: #line 3779 "gram.y" {;} break; case 565: #line 3790 "gram.y" { CreateTableSpaceStmt *n = makeNode(CreateTableSpaceStmt); n->tablespacename = (yyvsp[(3) - (7)].str); n->owner = (yyvsp[(4) - (7)].node); n->location = (yyvsp[(6) - (7)].str); n->options = (yyvsp[(7) - (7)].list); (yyval.node) = (Node *) n; ;} break; case 566: #line 3800 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 567: #line 3801 "gram.y" { (yyval.node) = NULL; ;} break; case 568: #line 3815 "gram.y" { DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); n->tablespacename = (yyvsp[(3) - (3)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 569: #line 3822 "gram.y" { DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); n->tablespacename = (yyvsp[(5) - (5)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 570: #line 3839 "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 571: #line 3847 "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 572: #line 3858 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 573: #line 3860 "gram.y" { (yyval.list) = NIL; ;} break; case 574: #line 3865 "gram.y" { (yyval.defelt) = makeDefElem("schema", (Node *)makeString((yyvsp[(2) - (2)].str))); ;} break; case 575: #line 3869 "gram.y" { (yyval.defelt) = makeDefElem("new_version", (Node *)makeString((yyvsp[(2) - (2)].str))); ;} break; case 576: #line 3873 "gram.y" { (yyval.defelt) = makeDefElem("old_version", (Node *)makeString((yyvsp[(2) - (2)].str))); ;} break; case 577: #line 3885 "gram.y" { AlterExtensionStmt *n = makeNode(AlterExtensionStmt); n->extname = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 578: #line 3895 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 579: #line 3897 "gram.y" { (yyval.list) = NIL; ;} break; case 580: #line 3902 "gram.y" { (yyval.defelt) = makeDefElem("new_version", (Node *)makeString((yyvsp[(2) - (2)].str))); ;} break; case 581: #line 3915 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (7)].str); n->action = (yyvsp[(4) - (7)].ival); n->objtype = OBJECT_AGGREGATE; n->objname = (yyvsp[(6) - (7)].list); n->objargs = extractAggrArgTypes((yyvsp[(7) - (7)].list)); (yyval.node) = (Node *)n; ;} break; case 582: #line 3925 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (10)].str); n->action = (yyvsp[(4) - (10)].ival); n->objtype = OBJECT_CAST; n->objname = list_make1((yyvsp[(7) - (10)].typnam)); n->objargs = list_make1((yyvsp[(9) - (10)].typnam)); (yyval.node) = (Node *) n; ;} break; case 583: #line 3935 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_COLLATION; n->objname = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; ;} break; case 584: #line 3944 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_CONVERSION; n->objname = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; ;} break; case 585: #line 3953 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_DOMAIN; n->objname = list_make1((yyvsp[(6) - (6)].typnam)); (yyval.node) = (Node *)n; ;} break; case 586: #line 3962 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_FUNCTION; n->objname = (yyvsp[(6) - (6)].funwithargs)->funcname; n->objargs = (yyvsp[(6) - (6)].funwithargs)->funcargs; (yyval.node) = (Node *)n; ;} break; case 587: #line 3972 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (7)].str); n->action = (yyvsp[(4) - (7)].ival); n->objtype = OBJECT_LANGUAGE; n->objname = list_make1(makeString((yyvsp[(7) - (7)].str))); (yyval.node) = (Node *)n; ;} break; case 588: #line 3981 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (7)].str); n->action = (yyvsp[(4) - (7)].ival); n->objtype = OBJECT_OPERATOR; n->objname = (yyvsp[(6) - (7)].list); n->objargs = (yyvsp[(7) - (7)].list); (yyval.node) = (Node *)n; ;} break; case 589: #line 3991 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (9)].str); n->action = (yyvsp[(4) - (9)].ival); n->objtype = OBJECT_OPCLASS; n->objname = lcons(makeString((yyvsp[(9) - (9)].str)), (yyvsp[(7) - (9)].list)); (yyval.node) = (Node *)n; ;} break; case 590: #line 4000 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (9)].str); n->action = (yyvsp[(4) - (9)].ival); n->objtype = OBJECT_OPFAMILY; n->objname = lcons(makeString((yyvsp[(9) - (9)].str)), (yyvsp[(7) - (9)].list)); (yyval.node) = (Node *)n; ;} break; case 591: #line 4009 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_SCHEMA; n->objname = list_make1(makeString((yyvsp[(6) - (6)].str))); (yyval.node) = (Node *)n; ;} break; case 592: #line 4018 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (7)].str); n->action = (yyvsp[(4) - (7)].ival); n->objtype = OBJECT_EVENT_TRIGGER; n->objname = list_make1(makeString((yyvsp[(7) - (7)].str))); (yyval.node) = (Node *)n; ;} break; case 593: #line 4027 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_TABLE; n->objname = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; ;} break; case 594: #line 4036 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (8)].str); n->action = (yyvsp[(4) - (8)].ival); n->objtype = OBJECT_TSPARSER; n->objname = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *)n; ;} break; case 595: #line 4045 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (8)].str); n->action = (yyvsp[(4) - (8)].ival); n->objtype = OBJECT_TSDICTIONARY; n->objname = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *)n; ;} break; case 596: #line 4054 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (8)].str); n->action = (yyvsp[(4) - (8)].ival); n->objtype = OBJECT_TSTEMPLATE; n->objname = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *)n; ;} break; case 597: #line 4063 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (8)].str); n->action = (yyvsp[(4) - (8)].ival); n->objtype = OBJECT_TSCONFIGURATION; n->objname = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *)n; ;} break; case 598: #line 4072 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_SEQUENCE; n->objname = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; ;} break; case 599: #line 4081 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_VIEW; n->objname = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; ;} break; case 600: #line 4090 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (7)].str); n->action = (yyvsp[(4) - (7)].ival); n->objtype = OBJECT_MATVIEW; n->objname = (yyvsp[(7) - (7)].list); (yyval.node) = (Node *)n; ;} break; case 601: #line 4099 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (7)].str); n->action = (yyvsp[(4) - (7)].ival); n->objtype = OBJECT_FOREIGN_TABLE; n->objname = (yyvsp[(7) - (7)].list); (yyval.node) = (Node *)n; ;} break; case 602: #line 4108 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (8)].str); n->action = (yyvsp[(4) - (8)].ival); n->objtype = OBJECT_FDW; n->objname = list_make1(makeString((yyvsp[(8) - (8)].str))); (yyval.node) = (Node *)n; ;} break; case 603: #line 4117 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_FOREIGN_SERVER; n->objname = list_make1(makeString((yyvsp[(6) - (6)].str))); (yyval.node) = (Node *)n; ;} break; case 604: #line 4126 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (9)].str); n->action = (yyvsp[(4) - (9)].ival); n->objtype = OBJECT_TRANSFORM; n->objname = list_make1((yyvsp[(7) - (9)].typnam)); n->objargs = list_make1(makeString((yyvsp[(9) - (9)].str))); (yyval.node) = (Node *)n; ;} break; case 605: #line 4136 "gram.y" { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = (yyvsp[(3) - (6)].str); n->action = (yyvsp[(4) - (6)].ival); n->objtype = OBJECT_TYPE; n->objname = list_make1((yyvsp[(6) - (6)].typnam)); (yyval.node) = (Node *)n; ;} break; case 606: #line 4154 "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 607: #line 4164 "gram.y" { (yyval.defelt) = makeDefElem("handler", (Node *)(yyvsp[(2) - (2)].list)); ;} break; case 608: #line 4165 "gram.y" { (yyval.defelt) = makeDefElem("handler", NULL); ;} break; case 609: #line 4166 "gram.y" { (yyval.defelt) = makeDefElem("validator", (Node *)(yyvsp[(2) - (2)].list)); ;} break; case 610: #line 4167 "gram.y" { (yyval.defelt) = makeDefElem("validator", NULL); ;} break; case 611: #line 4171 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 612: #line 4172 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 613: #line 4176 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 614: #line 4177 "gram.y" { (yyval.list) = NIL; ;} break; case 615: #line 4188 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FDW; n->objects = list_make1(list_make1(makeString((yyvsp[(5) - (6)].str)))); n->arguments = NIL; n->missing_ok = false; n->behavior = (yyvsp[(6) - (6)].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 616: #line 4199 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FDW; n->objects = list_make1(list_make1(makeString((yyvsp[(7) - (8)].str)))); n->arguments = NIL; n->missing_ok = true; n->behavior = (yyvsp[(8) - (8)].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 617: #line 4219 "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 618: #line 4227 "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 619: #line 4238 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 620: #line 4239 "gram.y" { (yyval.list) = NIL; ;} break; case 621: #line 4244 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 622: #line 4248 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 623: #line 4255 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 624: #line 4260 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 625: #line 4264 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 626: #line 4271 "gram.y" { (yyval.defelt) = (yyvsp[(1) - (1)].defelt); ;} break; case 627: #line 4275 "gram.y" { (yyval.defelt) = (yyvsp[(2) - (2)].defelt); (yyval.defelt)->defaction = DEFELEM_SET; ;} break; case 628: #line 4280 "gram.y" { (yyval.defelt) = (yyvsp[(2) - (2)].defelt); (yyval.defelt)->defaction = DEFELEM_ADD; ;} break; case 629: #line 4285 "gram.y" { (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[(2) - (2)].str), NULL, DEFELEM_DROP, (yylsp[(2) - (2)])); ;} break; case 630: #line 4292 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node)); ;} break; case 631: #line 4298 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 632: #line 4303 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 633: #line 4315 "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); (yyval.node) = (Node *) n; ;} break; case 634: #line 4327 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 635: #line 4328 "gram.y" { (yyval.str) = NULL; ;} break; case 636: #line 4333 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 637: #line 4334 "gram.y" { (yyval.str) = NULL; ;} break; case 638: #line 4338 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 639: #line 4339 "gram.y" { (yyval.str) = NULL; ;} break; case 640: #line 4350 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FOREIGN_SERVER; n->objects = list_make1(list_make1(makeString((yyvsp[(3) - (4)].str)))); n->arguments = NIL; n->missing_ok = false; n->behavior = (yyvsp[(4) - (4)].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 641: #line 4361 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FOREIGN_SERVER; n->objects = list_make1(list_make1(makeString((yyvsp[(5) - (6)].str)))); n->arguments = NIL; n->missing_ok = true; n->behavior = (yyvsp[(6) - (6)].dbehavior); n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 642: #line 4381 "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 643: #line 4390 "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 644: #line 4398 "gram.y" { AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); n->servername = (yyvsp[(3) - (4)].str); n->options = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *) n; ;} break; case 645: #line 4417 "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 646: #line 4437 "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 647: #line 4465 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(4) - (5)].range); n->cmds = (yyvsp[(5) - (5)].list); n->relkind = OBJECT_FOREIGN_TABLE; n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 648: #line 4474 "gram.y" { AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = (yyvsp[(6) - (7)].range); n->cmds = (yyvsp[(7) - (7)].list); n->relkind = OBJECT_FOREIGN_TABLE; n->missing_ok = true; (yyval.node) = (Node *)n; ;} break; case 649: #line 4496 "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 650: #line 4509 "gram.y" { (yyval.ival) = FDW_IMPORT_SCHEMA_LIMIT_TO; ;} break; case 651: #line 4510 "gram.y" { (yyval.ival) = FDW_IMPORT_SCHEMA_EXCEPT; ;} break; case 652: #line 4515 "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 653: #line 4522 "gram.y" { ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual)); n->type = FDW_IMPORT_SCHEMA_ALL; n->table_names = NIL; (yyval.importqual) = n; ;} break; case 654: #line 4538 "gram.y" { CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt); n->user = (yyvsp[(5) - (8)].node); n->servername = (yyvsp[(7) - (8)].str); n->options = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *) n; ;} break; case 655: #line 4548 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 656: #line 4549 "gram.y" { (yyval.node) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[(1) - (1)])); ;} break; case 657: #line 4560 "gram.y" { DropUserMappingStmt *n = makeNode(DropUserMappingStmt); n->user = (yyvsp[(5) - (7)].node); n->servername = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *) n; ;} break; case 658: #line 4568 "gram.y" { DropUserMappingStmt *n = makeNode(DropUserMappingStmt); n->user = (yyvsp[(7) - (9)].node); n->servername = (yyvsp[(9) - (9)].str); n->missing_ok = true; (yyval.node) = (Node *) n; ;} break; case 659: #line 4585 "gram.y" { AlterUserMappingStmt *n = makeNode(AlterUserMappingStmt); n->user = (yyvsp[(5) - (8)].node); n->servername = (yyvsp[(7) - (8)].str); n->options = (yyvsp[(8) - (8)].list); (yyval.node) = (Node *) n; ;} break; case 660: #line 4609 "gram.y" { CreatePolicyStmt *n = makeNode(CreatePolicyStmt); n->policy_name = (yyvsp[(3) - (9)].str); n->table = (yyvsp[(5) - (9)].range); n->cmd_name = (yyvsp[(6) - (9)].str); n->roles = (yyvsp[(7) - (9)].list); n->qual = (yyvsp[(8) - (9)].node); n->with_check = (yyvsp[(9) - (9)].node); (yyval.node) = (Node *) n; ;} break; case 661: #line 4624 "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 662: #line 4637 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_POLICY; n->objects = list_make1(lappend((yyvsp[(5) - (6)].list), makeString((yyvsp[(3) - (6)].str)))); n->arguments = NIL; n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 663: #line 4648 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_POLICY; n->objects = list_make1(lappend((yyvsp[(7) - (8)].list), makeString((yyvsp[(5) - (8)].str)))); n->arguments = NIL; n->behavior = (yyvsp[(8) - (8)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 664: #line 4661 "gram.y" { (yyval.node) = (yyvsp[(3) - (4)].node); ;} break; case 665: #line 4662 "gram.y" { (yyval.node) = NULL; ;} break; case 666: #line 4666 "gram.y" { (yyval.node) = (yyvsp[(4) - (5)].node); ;} break; case 667: #line 4667 "gram.y" { (yyval.node) = NULL; ;} break; case 668: #line 4671 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 669: #line 4672 "gram.y" { (yyval.list) = list_make1(makeRoleSpec(ROLESPEC_PUBLIC, -1)); ;} break; case 670: #line 4676 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 671: #line 4677 "gram.y" { (yyval.list) = NULL; ;} break; case 672: #line 4681 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 673: #line 4682 "gram.y" { (yyval.str) = "all"; ;} break; case 674: #line 4686 "gram.y" { (yyval.str) = "all"; ;} break; case 675: #line 4687 "gram.y" { (yyval.str) = "select"; ;} break; case 676: #line 4688 "gram.y" { (yyval.str) = "insert"; ;} break; case 677: #line 4689 "gram.y" { (yyval.str) = "update"; ;} break; case 678: #line 4690 "gram.y" { (yyval.str) = "delete"; ;} break; case 679: #line 4705 "gram.y" { CreateTrigStmt *n = makeNode(CreateTrigStmt); n->trigname = (yyvsp[(3) - (15)].str); n->relation = (yyvsp[(7) - (15)].range); n->funcname = (yyvsp[(12) - (15)].list); n->args = (yyvsp[(14) - (15)].list); n->row = (yyvsp[(8) - (15)].boolean); n->timing = (yyvsp[(4) - (15)].ival); n->events = intVal(linitial((yyvsp[(5) - (15)].list))); n->columns = (List *) lsecond((yyvsp[(5) - (15)].list)); n->whenClause = (yyvsp[(9) - (15)].node); n->isconstraint = FALSE; n->deferrable = FALSE; n->initdeferred = FALSE; n->constrrel = NULL; (yyval.node) = (Node *)n; ;} break; case 680: #line 4726 "gram.y" { CreateTrigStmt *n = makeNode(CreateTrigStmt); n->trigname = (yyvsp[(4) - (20)].str); n->relation = (yyvsp[(8) - (20)].range); n->funcname = (yyvsp[(17) - (20)].list); n->args = (yyvsp[(19) - (20)].list); n->row = TRUE; n->timing = TRIGGER_TYPE_AFTER; n->events = intVal(linitial((yyvsp[(6) - (20)].list))); n->columns = (List *) lsecond((yyvsp[(6) - (20)].list)); n->whenClause = (yyvsp[(14) - (20)].node); n->isconstraint = TRUE; processCASbits((yyvsp[(10) - (20)].ival), (yylsp[(10) - (20)]), "TRIGGER", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); n->constrrel = (yyvsp[(9) - (20)].range); (yyval.node) = (Node *)n; ;} break; case 681: #line 4747 "gram.y" { (yyval.ival) = TRIGGER_TYPE_BEFORE; ;} break; case 682: #line 4748 "gram.y" { (yyval.ival) = TRIGGER_TYPE_AFTER; ;} break; case 683: #line 4749 "gram.y" { (yyval.ival) = TRIGGER_TYPE_INSTEAD; ;} break; case 684: #line 4754 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 685: #line 4756 "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 686: #line 4778 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_INSERT), NIL); ;} break; case 687: #line 4780 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_DELETE), NIL); ;} break; case 688: #line 4782 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), NIL); ;} break; case 689: #line 4784 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), (yyvsp[(3) - (3)].list)); ;} break; case 690: #line 4786 "gram.y" { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_TRUNCATE), NIL); ;} break; case 691: #line 4791 "gram.y" { (yyval.boolean) = (yyvsp[(3) - (3)].boolean); ;} break; case 692: #line 4795 "gram.y" { /* * If ROW/STATEMENT not specified, default to * STATEMENT, per SQL */ (yyval.boolean) = FALSE; ;} break; case 693: #line 4805 "gram.y" {;} break; case 694: #line 4806 "gram.y" {;} break; case 695: #line 4810 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 696: #line 4811 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 697: #line 4815 "gram.y" { (yyval.node) = (yyvsp[(3) - (4)].node); ;} break; case 698: #line 4816 "gram.y" { (yyval.node) = NULL; ;} break; case 699: #line 4820 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].value)); ;} break; case 700: #line 4821 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].value)); ;} break; case 701: #line 4822 "gram.y" { (yyval.list) = NIL; ;} break; case 702: #line 4827 "gram.y" { (yyval.value) = makeString(psprintf("%d", (yyvsp[(1) - (1)].ival))); ;} break; case 703: #line 4830 "gram.y" { (yyval.value) = makeString((yyvsp[(1) - (1)].str)); ;} break; case 704: #line 4831 "gram.y" { (yyval.value) = makeString((yyvsp[(1) - (1)].str)); ;} break; case 705: #line 4832 "gram.y" { (yyval.value) = makeString((yyvsp[(1) - (1)].str)); ;} break; case 706: #line 4836 "gram.y" { (yyval.range) = (yyvsp[(2) - (2)].range); ;} break; case 707: #line 4837 "gram.y" { (yyval.range) = NULL; ;} break; case 708: #line 4842 "gram.y" { (yyval.ival) = 0; ;} break; case 709: #line 4844 "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 710: #line 4870 "gram.y" { (yyval.ival) = CAS_NOT_DEFERRABLE; ;} break; case 711: #line 4871 "gram.y" { (yyval.ival) = CAS_DEFERRABLE; ;} break; case 712: #line 4872 "gram.y" { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; ;} break; case 713: #line 4873 "gram.y" { (yyval.ival) = CAS_INITIALLY_DEFERRED; ;} break; case 714: #line 4874 "gram.y" { (yyval.ival) = CAS_NOT_VALID; ;} break; case 715: #line 4875 "gram.y" { (yyval.ival) = CAS_NO_INHERIT; ;} break; case 716: #line 4881 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TRIGGER; n->objects = list_make1(lappend((yyvsp[(5) - (6)].list), makeString((yyvsp[(3) - (6)].str)))); n->arguments = NIL; n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 717: #line 4892 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TRIGGER; n->objects = list_make1(lappend((yyvsp[(7) - (8)].list), makeString((yyvsp[(5) - (8)].str)))); n->arguments = NIL; n->behavior = (yyvsp[(8) - (8)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 718: #line 4916 "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 719: #line 4927 "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 720: #line 4939 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 721: #line 4941 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 722: #line 4946 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (5)].str), (Node *) (yyvsp[(4) - (5)].list)); ;} break; case 723: #line 4951 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 724: #line 4953 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; case 725: #line 4958 "gram.y" { AlterEventTrigStmt *n = makeNode(AlterEventTrigStmt); n->trigname = (yyvsp[(4) - (5)].str); n->tgenabled = (yyvsp[(5) - (5)].chr); (yyval.node) = (Node *) n; ;} break; case 726: #line 4967 "gram.y" { (yyval.chr) = TRIGGER_FIRES_ON_ORIGIN; ;} break; case 727: #line 4968 "gram.y" { (yyval.chr) = TRIGGER_FIRES_ON_REPLICA; ;} break; case 728: #line 4969 "gram.y" { (yyval.chr) = TRIGGER_FIRES_ALWAYS; ;} break; case 729: #line 4970 "gram.y" { (yyval.chr) = TRIGGER_DISABLED; ;} break; case 730: #line 4984 "gram.y" { CreateTrigStmt *n = makeNode(CreateTrigStmt); n->trigname = (yyvsp[(3) - (8)].str); n->args = list_make1((yyvsp[(6) - (8)].node)); n->isconstraint = TRUE; processCASbits((yyvsp[(8) - (8)].ival), (yylsp[(8) - (8)]), "ASSERTION", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE ASSERTION is not yet implemented"))); (yyval.node) = (Node *)n; ;} break; case 731: #line 5003 "gram.y" { DropStmt *n = makeNode(DropStmt); n->objects = NIL; n->arguments = NIL; n->behavior = (yyvsp[(4) - (4)].dbehavior); n->removeType = OBJECT_TRIGGER; /* XXX */ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("DROP ASSERTION is not yet implemented"))); (yyval.node) = (Node *) n; ;} break; case 732: #line 5026 "gram.y" { DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_AGGREGATE; n->oldstyle = false; n->defnames = (yyvsp[(3) - (5)].list); n->args = (yyvsp[(4) - (5)].list); n->definition = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; ;} break; case 733: #line 5036 "gram.y" { /* old-style (pre-8.2) syntax for CREATE AGGREGATE */ DefineStmt *n = makeNode(DefineStmt); n->kind = OBJECT_AGGREGATE; n->oldstyle = true; n->defnames = (yyvsp[(3) - (4)].list); n->args = NIL; n->definition = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *)n; ;} break; case 734: #line 5047 "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 735: #line 5057 "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 736: #line 5067 "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 737: #line 5078 "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 738: #line 5087 "gram.y" { CreateEnumStmt *n = makeNode(CreateEnumStmt); n->typeName = (yyvsp[(3) - (8)].list); n->vals = (yyvsp[(7) - (8)].list); (yyval.node) = (Node *)n; ;} break; case 739: #line 5094 "gram.y" { CreateRangeStmt *n = makeNode(CreateRangeStmt); n->typeName = (yyvsp[(3) - (6)].list); n->params = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; ;} break; case 740: #line 5101 "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 741: #line 5110 "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 742: #line 5119 "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 743: #line 5128 "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 744: #line 5137 "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 745: #line 5146 "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))); (yyval.node) = (Node *)n; ;} break; case 746: #line 5156 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 747: #line 5159 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 748: #line 5160 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 749: #line 5164 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node)); ;} break; case 750: #line 5168 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL); ;} break; case 751: #line 5174 "gram.y" { (yyval.node) = (Node *)(yyvsp[(1) - (1)].typnam); ;} break; case 752: #line 5175 "gram.y" { (yyval.node) = (Node *)makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;} break; case 753: #line 5176 "gram.y" { (yyval.node) = (Node *)(yyvsp[(1) - (1)].list); ;} break; case 754: #line 5177 "gram.y" { (yyval.node) = (Node *)(yyvsp[(1) - (1)].value); ;} break; case 755: #line 5178 "gram.y" { (yyval.node) = (Node *)makeString((yyvsp[(1) - (1)].str)); ;} break; case 756: #line 5181 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 757: #line 5184 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 758: #line 5185 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 759: #line 5194 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *)(yyvsp[(3) - (3)].node)); ;} break; case 760: #line 5200 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 761: #line 5201 "gram.y" { (yyval.list) = NIL; ;} break; case 762: #line 5205 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 763: #line 5207 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; case 764: #line 5218 "gram.y" { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[(3) - (7)].list); n->newVal = (yyvsp[(7) - (7)].str); n->newValNeighbor = NULL; n->newValIsAfter = true; n->skipIfExists = (yyvsp[(6) - (7)].boolean); (yyval.node) = (Node *) n; ;} break; case 765: #line 5228 "gram.y" { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[(3) - (9)].list); n->newVal = (yyvsp[(7) - (9)].str); n->newValNeighbor = (yyvsp[(9) - (9)].str); n->newValIsAfter = false; n->skipIfExists = (yyvsp[(6) - (9)].boolean); (yyval.node) = (Node *) n; ;} break; case 766: #line 5238 "gram.y" { AlterEnumStmt *n = makeNode(AlterEnumStmt); n->typeName = (yyvsp[(3) - (9)].list); n->newVal = (yyvsp[(7) - (9)].str); n->newValNeighbor = (yyvsp[(9) - (9)].str); n->newValIsAfter = true; n->skipIfExists = (yyvsp[(6) - (9)].boolean); (yyval.node) = (Node *) n; ;} break; case 767: #line 5249 "gram.y" { (yyval.boolean) = true; ;} break; case 768: #line 5250 "gram.y" { (yyval.boolean) = false; ;} break; case 769: #line 5268 "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 770: #line 5281 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 771: #line 5282 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 772: #line 5287 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_OPERATOR; n->name = (yyvsp[(3) - (5)].list); n->args = NIL; n->number = (yyvsp[(2) - (5)].ival); n->order_family = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 773: #line 5298 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_OPERATOR; n->name = (yyvsp[(3) - (6)].list); n->args = (yyvsp[(4) - (6)].list); n->number = (yyvsp[(2) - (6)].ival); n->order_family = (yyvsp[(5) - (6)].list); (yyval.node) = (Node *) n; ;} break; case 774: #line 5308 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->name = (yyvsp[(3) - (4)].list); n->args = extractArgTypes((yyvsp[(4) - (4)].list)); n->number = (yyvsp[(2) - (4)].ival); (yyval.node) = (Node *) n; ;} break; case 775: #line 5317 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->name = (yyvsp[(6) - (7)].list); n->args = extractArgTypes((yyvsp[(7) - (7)].list)); n->number = (yyvsp[(2) - (7)].ival); n->class_args = (yyvsp[(4) - (7)].list); (yyval.node) = (Node *) n; ;} break; case 776: #line 5327 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_STORAGETYPE; n->storedtype = (yyvsp[(2) - (2)].typnam); (yyval.node) = (Node *) n; ;} break; case 777: #line 5335 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 778: #line 5336 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 779: #line 5339 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 780: #line 5340 "gram.y" { (yyval.list) = NIL; ;} break; case 781: #line 5343 "gram.y" { (yyval.list) = NIL; ;} break; case 782: #line 5344 "gram.y" { (yyval.list) = (yyvsp[(4) - (4)].list); ;} break; case 783: #line 5345 "gram.y" { (yyval.list) = NIL; ;} break; case 784: #line 5349 "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 785: #line 5362 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 786: #line 5368 "gram.y" { CreateOpFamilyStmt *n = makeNode(CreateOpFamilyStmt); n->opfamilyname = (yyvsp[(4) - (6)].list); n->amname = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 787: #line 5378 "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 788: #line 5387 "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 789: #line 5398 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 790: #line 5399 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 791: #line 5404 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_OPERATOR; n->number = (yyvsp[(2) - (5)].ival); n->args = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 792: #line 5412 "gram.y" { CreateOpClassItem *n = makeNode(CreateOpClassItem); n->itemtype = OPCLASS_ITEM_FUNCTION; n->number = (yyvsp[(2) - (5)].ival); n->args = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 793: #line 5424 "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 794: #line 5434 "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 795: #line 5447 "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 796: #line 5457 "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 797: #line 5479 "gram.y" { DropOwnedStmt *n = makeNode(DropOwnedStmt); n->roles = (yyvsp[(4) - (5)].list); n->behavior = (yyvsp[(5) - (5)].dbehavior); (yyval.node) = (Node *)n; ;} break; case 798: #line 5489 "gram.y" { ReassignOwnedStmt *n = makeNode(ReassignOwnedStmt); n->roles = (yyvsp[(4) - (6)].list); n->newrole = (yyvsp[(6) - (6)].node); (yyval.node) = (Node *)n; ;} break; case 799: #line 5507 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[(2) - (6)].objtype); n->missing_ok = TRUE; n->objects = (yyvsp[(5) - (6)].list); n->arguments = NIL; n->behavior = (yyvsp[(6) - (6)].dbehavior); n->concurrent = false; (yyval.node) = (Node *)n; ;} break; case 800: #line 5518 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = (yyvsp[(2) - (4)].objtype); n->missing_ok = FALSE; n->objects = (yyvsp[(3) - (4)].list); n->arguments = NIL; n->behavior = (yyvsp[(4) - (4)].dbehavior); n->concurrent = false; (yyval.node) = (Node *)n; ;} break; case 801: #line 5529 "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 802: #line 5539 "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 803: #line 5549 "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 804: #line 5559 "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 805: #line 5569 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_INDEX; n->missing_ok = FALSE; n->objects = (yyvsp[(4) - (5)].list); n->arguments = NIL; n->behavior = (yyvsp[(5) - (5)].dbehavior); n->concurrent = true; (yyval.node) = (Node *)n; ;} break; case 806: #line 5580 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_INDEX; n->missing_ok = TRUE; n->objects = (yyvsp[(6) - (7)].list); n->arguments = NIL; n->behavior = (yyvsp[(7) - (7)].dbehavior); n->concurrent = true; (yyval.node) = (Node *)n; ;} break; case 807: #line 5593 "gram.y" { (yyval.objtype) = OBJECT_TABLE; ;} break; case 808: #line 5594 "gram.y" { (yyval.objtype) = OBJECT_SEQUENCE; ;} break; case 809: #line 5595 "gram.y" { (yyval.objtype) = OBJECT_VIEW; ;} break; case 810: #line 5596 "gram.y" { (yyval.objtype) = OBJECT_MATVIEW; ;} break; case 811: #line 5597 "gram.y" { (yyval.objtype) = OBJECT_INDEX; ;} break; case 812: #line 5598 "gram.y" { (yyval.objtype) = OBJECT_FOREIGN_TABLE; ;} break; case 813: #line 5599 "gram.y" { (yyval.objtype) = OBJECT_EVENT_TRIGGER; ;} break; case 814: #line 5600 "gram.y" { (yyval.objtype) = OBJECT_COLLATION; ;} break; case 815: #line 5601 "gram.y" { (yyval.objtype) = OBJECT_CONVERSION; ;} break; case 816: #line 5602 "gram.y" { (yyval.objtype) = OBJECT_SCHEMA; ;} break; case 817: #line 5603 "gram.y" { (yyval.objtype) = OBJECT_EXTENSION; ;} break; case 818: #line 5604 "gram.y" { (yyval.objtype) = OBJECT_TSPARSER; ;} break; case 819: #line 5605 "gram.y" { (yyval.objtype) = OBJECT_TSDICTIONARY; ;} break; case 820: #line 5606 "gram.y" { (yyval.objtype) = OBJECT_TSTEMPLATE; ;} break; case 821: #line 5607 "gram.y" { (yyval.objtype) = OBJECT_TSCONFIGURATION; ;} break; case 822: #line 5611 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} break; case 823: #line 5612 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} break; case 824: #line 5615 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 825: #line 5616 "gram.y" { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;} break; case 826: #line 5620 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;} break; case 827: #line 5622 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; case 828: #line 5626 "gram.y" { (yyval.list) = list_make1(list_make1((yyvsp[(1) - (1)].typnam))); ;} break; case 829: #line 5627 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), list_make1((yyvsp[(3) - (3)].typnam))); ;} break; case 830: #line 5638 "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 831: #line 5648 "gram.y" { (yyval.boolean) = false; ;} break; case 832: #line 5649 "gram.y" { (yyval.boolean) = true; ;} break; case 833: #line 5650 "gram.y" { (yyval.boolean) = false; ;} break; case 834: #line 5684 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = (yyvsp[(3) - (6)].objtype); n->objname = (yyvsp[(4) - (6)].list); n->objargs = NIL; n->comment = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 835: #line 5693 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TYPE; n->objname = list_make1((yyvsp[(4) - (6)].typnam)); n->objargs = NIL; n->comment = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 836: #line 5702 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_DOMAIN; n->objname = list_make1((yyvsp[(4) - (6)].typnam)); n->objargs = NIL; n->comment = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 837: #line 5711 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_AGGREGATE; n->objname = (yyvsp[(4) - (7)].list); n->objargs = extractAggrArgTypes((yyvsp[(5) - (7)].list)); n->comment = (yyvsp[(7) - (7)].str); (yyval.node) = (Node *) n; ;} break; case 838: #line 5720 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_FUNCTION; n->objname = (yyvsp[(4) - (7)].list); n->objargs = extractArgTypes((yyvsp[(5) - (7)].list)); n->comment = (yyvsp[(7) - (7)].str); (yyval.node) = (Node *) n; ;} break; case 839: #line 5729 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPERATOR; n->objname = (yyvsp[(4) - (7)].list); n->objargs = (yyvsp[(5) - (7)].list); n->comment = (yyvsp[(7) - (7)].str); (yyval.node) = (Node *) n; ;} break; case 840: #line 5738 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TABCONSTRAINT; n->objname = lappend((yyvsp[(6) - (8)].list), makeString((yyvsp[(4) - (8)].str))); n->objargs = NIL; n->comment = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 841: #line 5747 "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->objname = list_make1(makeTypeNameFromNameList((yyvsp[(7) - (9)].list))); n->objargs = list_make1(makeString((yyvsp[(4) - (9)].str))); n->comment = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; ;} break; case 842: #line 5761 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_POLICY; n->objname = lappend((yyvsp[(6) - (8)].list), makeString((yyvsp[(4) - (8)].str))); n->objargs = NIL; n->comment = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 843: #line 5770 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_RULE; n->objname = lappend((yyvsp[(6) - (8)].list), makeString((yyvsp[(4) - (8)].str))); n->objargs = NIL; n->comment = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 844: #line 5779 "gram.y" { /* Obsolete syntax supported for awhile for compatibility */ CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_RULE; n->objname = list_make1(makeString((yyvsp[(4) - (6)].str))); n->objargs = NIL; n->comment = (yyvsp[(6) - (6)].str); (yyval.node) = (Node *) n; ;} break; case 845: #line 5789 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TRANSFORM; n->objname = list_make1((yyvsp[(5) - (9)].typnam)); n->objargs = list_make1(makeString((yyvsp[(7) - (9)].str))); n->comment = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; ;} break; case 846: #line 5798 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_TRIGGER; n->objname = lappend((yyvsp[(6) - (8)].list), makeString((yyvsp[(4) - (8)].str))); n->objargs = NIL; n->comment = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 847: #line 5807 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPCLASS; n->objname = lcons(makeString((yyvsp[(7) - (9)].str)), (yyvsp[(5) - (9)].list)); n->comment = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; ;} break; case 848: #line 5815 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_OPFAMILY; n->objname = lcons(makeString((yyvsp[(7) - (9)].str)), (yyvsp[(5) - (9)].list)); n->objargs = NIL; n->comment = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; ;} break; case 849: #line 5824 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_LARGEOBJECT; n->objname = list_make1((yyvsp[(5) - (7)].value)); n->objargs = NIL; n->comment = (yyvsp[(7) - (7)].str); (yyval.node) = (Node *) n; ;} break; case 850: #line 5833 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_CAST; n->objname = list_make1((yyvsp[(5) - (10)].typnam)); n->objargs = list_make1((yyvsp[(7) - (10)].typnam)); n->comment = (yyvsp[(10) - (10)].str); (yyval.node) = (Node *) n; ;} break; case 851: #line 5842 "gram.y" { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_LANGUAGE; n->objname = (yyvsp[(5) - (7)].list); n->objargs = NIL; n->comment = (yyvsp[(7) - (7)].str); (yyval.node) = (Node *) n; ;} break; case 852: #line 5853 "gram.y" { (yyval.objtype) = OBJECT_COLUMN; ;} break; case 853: #line 5854 "gram.y" { (yyval.objtype) = OBJECT_DATABASE; ;} break; case 854: #line 5855 "gram.y" { (yyval.objtype) = OBJECT_SCHEMA; ;} break; case 855: #line 5856 "gram.y" { (yyval.objtype) = OBJECT_INDEX; ;} break; case 856: #line 5857 "gram.y" { (yyval.objtype) = OBJECT_SEQUENCE; ;} break; case 857: #line 5858 "gram.y" { (yyval.objtype) = OBJECT_TABLE; ;} break; case 858: #line 5859 "gram.y" { (yyval.objtype) = OBJECT_VIEW; ;} break; case 859: #line 5860 "gram.y" { (yyval.objtype) = OBJECT_MATVIEW; ;} break; case 860: #line 5861 "gram.y" { (yyval.objtype) = OBJECT_COLLATION; ;} break; case 861: #line 5862 "gram.y" { (yyval.objtype) = OBJECT_CONVERSION; ;} break; case 862: #line 5863 "gram.y" { (yyval.objtype) = OBJECT_TABLESPACE; ;} break; case 863: #line 5864 "gram.y" { (yyval.objtype) = OBJECT_EXTENSION; ;} break; case 864: #line 5865 "gram.y" { (yyval.objtype) = OBJECT_ROLE; ;} break; case 865: #line 5866 "gram.y" { (yyval.objtype) = OBJECT_FOREIGN_TABLE; ;} break; case 866: #line 5867 "gram.y" { (yyval.objtype) = OBJECT_FOREIGN_SERVER; ;} break; case 867: #line 5868 "gram.y" { (yyval.objtype) = OBJECT_FDW; ;} break; case 868: #line 5869 "gram.y" { (yyval.objtype) = OBJECT_EVENT_TRIGGER; ;} break; case 869: #line 5870 "gram.y" { (yyval.objtype) = OBJECT_TSCONFIGURATION; ;} break; case 870: #line 5871 "gram.y" { (yyval.objtype) = OBJECT_TSDICTIONARY; ;} break; case 871: #line 5872 "gram.y" { (yyval.objtype) = OBJECT_TSPARSER; ;} break; case 872: #line 5873 "gram.y" { (yyval.objtype) = OBJECT_TSTEMPLATE; ;} break; case 873: #line 5877 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 874: #line 5878 "gram.y" { (yyval.str) = NULL; ;} break; case 875: #line 5894 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (8)].str); n->objtype = (yyvsp[(5) - (8)].objtype); n->objname = (yyvsp[(6) - (8)].list); n->objargs = NIL; n->label = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 876: #line 5905 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (8)].str); n->objtype = OBJECT_TYPE; n->objname = list_make1((yyvsp[(6) - (8)].typnam)); n->objargs = NIL; n->label = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 877: #line 5916 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (8)].str); n->objtype = OBJECT_TYPE; n->objname = list_make1((yyvsp[(6) - (8)].typnam)); n->objargs = NIL; n->label = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *) n; ;} break; case 878: #line 5927 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (9)].str); n->objtype = OBJECT_AGGREGATE; n->objname = (yyvsp[(6) - (9)].list); n->objargs = extractAggrArgTypes((yyvsp[(7) - (9)].list)); n->label = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; ;} break; case 879: #line 5938 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (9)].str); n->objtype = OBJECT_FUNCTION; n->objname = (yyvsp[(6) - (9)].list); n->objargs = extractArgTypes((yyvsp[(7) - (9)].list)); n->label = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; ;} break; case 880: #line 5949 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (9)].str); n->objtype = OBJECT_LARGEOBJECT; n->objname = list_make1((yyvsp[(7) - (9)].value)); n->objargs = NIL; n->label = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; ;} break; case 881: #line 5960 "gram.y" { SecLabelStmt *n = makeNode(SecLabelStmt); n->provider = (yyvsp[(3) - (9)].str); n->objtype = OBJECT_LANGUAGE; n->objname = (yyvsp[(7) - (9)].list); n->objargs = NIL; n->label = (yyvsp[(9) - (9)].str); (yyval.node) = (Node *) n; ;} break; case 882: #line 5971 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 883: #line 5972 "gram.y" { (yyval.str) = NULL; ;} break; case 884: #line 5976 "gram.y" { (yyval.objtype) = OBJECT_COLUMN; ;} break; case 885: #line 5977 "gram.y" { (yyval.objtype) = OBJECT_DATABASE; ;} break; case 886: #line 5978 "gram.y" { (yyval.objtype) = OBJECT_EVENT_TRIGGER; ;} break; case 887: #line 5979 "gram.y" { (yyval.objtype) = OBJECT_FOREIGN_TABLE; ;} break; case 888: #line 5980 "gram.y" { (yyval.objtype) = OBJECT_SCHEMA; ;} break; case 889: #line 5981 "gram.y" { (yyval.objtype) = OBJECT_SEQUENCE; ;} break; case 890: #line 5982 "gram.y" { (yyval.objtype) = OBJECT_TABLE; ;} break; case 891: #line 5983 "gram.y" { (yyval.objtype) = OBJECT_ROLE; ;} break; case 892: #line 5984 "gram.y" { (yyval.objtype) = OBJECT_TABLESPACE; ;} break; case 893: #line 5985 "gram.y" { (yyval.objtype) = OBJECT_VIEW; ;} break; case 894: #line 5986 "gram.y" { (yyval.objtype) = OBJECT_MATVIEW; ;} break; case 895: #line 5989 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 896: #line 5990 "gram.y" { (yyval.str) = NULL; ;} break; case 897: #line 6001 "gram.y" { FetchStmt *n = (FetchStmt *) (yyvsp[(2) - (2)].node); n->ismove = FALSE; (yyval.node) = (Node *)n; ;} break; case 898: #line 6007 "gram.y" { FetchStmt *n = (FetchStmt *) (yyvsp[(2) - (2)].node); n->ismove = TRUE; (yyval.node) = (Node *)n; ;} break; case 899: #line 6015 "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 900: #line 6023 "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 901: #line 6031 "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 902: #line 6039 "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 903: #line 6047 "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 904: #line 6055 "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 905: #line 6063 "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 906: #line 6071 "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 907: #line 6079 "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 908: #line 6087 "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 909: #line 6095 "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 910: #line 6103 "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 911: #line 6111 "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 912: #line 6119 "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 913: #line 6127 "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 914: #line 6135 "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 915: #line 6144 "gram.y" {;} break; case 916: #line 6145 "gram.y" {;} break; case 917: #line 6148 "gram.y" {;} break; case 918: #line 6149 "gram.y" {;} break; case 919: #line 6161 "gram.y" { GrantStmt *n = makeNode(GrantStmt); n->is_grant = true; n->privileges = (yyvsp[(2) - (7)].list); n->targtype = ((yyvsp[(4) - (7)].privtarget))->targtype; n->objtype = ((yyvsp[(4) - (7)].privtarget))->objtype; n->objects = ((yyvsp[(4) - (7)].privtarget))->objs; n->grantees = (yyvsp[(6) - (7)].list); n->grant_option = (yyvsp[(7) - (7)].boolean); (yyval.node) = (Node*)n; ;} break; case 920: #line 6177 "gram.y" { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = false; n->privileges = (yyvsp[(2) - (7)].list); n->targtype = ((yyvsp[(4) - (7)].privtarget))->targtype; n->objtype = ((yyvsp[(4) - (7)].privtarget))->objtype; n->objects = ((yyvsp[(4) - (7)].privtarget))->objs; n->grantees = (yyvsp[(6) - (7)].list); n->behavior = (yyvsp[(7) - (7)].dbehavior); (yyval.node) = (Node *)n; ;} break; case 921: #line 6191 "gram.y" { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; n->grant_option = true; n->privileges = (yyvsp[(5) - (10)].list); n->targtype = ((yyvsp[(7) - (10)].privtarget))->targtype; n->objtype = ((yyvsp[(7) - (10)].privtarget))->objtype; n->objects = ((yyvsp[(7) - (10)].privtarget))->objs; n->grantees = (yyvsp[(9) - (10)].list); n->behavior = (yyvsp[(10) - (10)].dbehavior); (yyval.node) = (Node *)n; ;} break; case 922: #line 6216 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 923: #line 6218 "gram.y" { (yyval.list) = NIL; ;} break; case 924: #line 6220 "gram.y" { (yyval.list) = NIL; ;} break; case 925: #line 6222 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = NULL; n->cols = (yyvsp[(3) - (4)].list); (yyval.list) = list_make1(n); ;} break; case 926: #line 6229 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = NULL; n->cols = (yyvsp[(4) - (5)].list); (yyval.list) = list_make1(n); ;} break; case 927: #line 6237 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].accesspriv)); ;} break; case 928: #line 6238 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].accesspriv)); ;} break; case 929: #line 6242 "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 930: #line 6249 "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 931: #line 6256 "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 932: #line 6263 "gram.y" { AccessPriv *n = makeNode(AccessPriv); n->priv_name = (yyvsp[(1) - (2)].str); n->cols = (yyvsp[(2) - (2)].list); (yyval.accesspriv) = n; ;} break; case 933: #line 6277 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_RELATION; n->objs = (yyvsp[(1) - (1)].list); (yyval.privtarget) = n; ;} break; case 934: #line 6285 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_RELATION; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 935: #line 6293 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_SEQUENCE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 936: #line 6301 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_FDW; n->objs = (yyvsp[(4) - (4)].list); (yyval.privtarget) = n; ;} break; case 937: #line 6309 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_FOREIGN_SERVER; n->objs = (yyvsp[(3) - (3)].list); (yyval.privtarget) = n; ;} break; case 938: #line 6317 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_FUNCTION; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 939: #line 6325 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_DATABASE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 940: #line 6333 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_DOMAIN; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 941: #line 6341 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_LANGUAGE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 942: #line 6349 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_LARGEOBJECT; n->objs = (yyvsp[(3) - (3)].list); (yyval.privtarget) = n; ;} break; case 943: #line 6357 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_NAMESPACE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 944: #line 6365 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_TABLESPACE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 945: #line 6373 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_TYPE; n->objs = (yyvsp[(2) - (2)].list); (yyval.privtarget) = n; ;} break; case 946: #line 6381 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = ACL_OBJECT_RELATION; n->objs = (yyvsp[(5) - (5)].list); (yyval.privtarget) = n; ;} break; case 947: #line 6389 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = ACL_OBJECT_SEQUENCE; n->objs = (yyvsp[(5) - (5)].list); (yyval.privtarget) = n; ;} break; case 948: #line 6397 "gram.y" { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_ALL_IN_SCHEMA; n->objtype = ACL_OBJECT_FUNCTION; n->objs = (yyvsp[(5) - (5)].list); (yyval.privtarget) = n; ;} break; case 949: #line 6408 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 950: #line 6409 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 951: #line 6413 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 952: #line 6414 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 953: #line 6419 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 954: #line 6420 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 955: #line 6424 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].funwithargs)); ;} break; case 956: #line 6426 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].funwithargs)); ;} break; case 957: #line 6431 "gram.y" { FuncWithArgs *n = makeNode(FuncWithArgs); n->funcname = (yyvsp[(1) - (2)].list); n->funcargs = extractArgTypes((yyvsp[(2) - (2)].list)); (yyval.funwithargs) = n; ;} break; case 958: #line 6447 "gram.y" { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = true; n->granted_roles = (yyvsp[(2) - (6)].list); n->grantee_roles = (yyvsp[(4) - (6)].list); n->admin_opt = (yyvsp[(5) - (6)].boolean); n->grantor = (yyvsp[(6) - (6)].node); (yyval.node) = (Node*)n; ;} break; case 959: #line 6460 "gram.y" { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = false; n->admin_opt = false; n->granted_roles = (yyvsp[(2) - (6)].list); n->grantee_roles = (yyvsp[(4) - (6)].list); n->behavior = (yyvsp[(6) - (6)].dbehavior); (yyval.node) = (Node*)n; ;} break; case 960: #line 6470 "gram.y" { GrantRoleStmt *n = makeNode(GrantRoleStmt); n->is_grant = false; n->admin_opt = true; n->granted_roles = (yyvsp[(5) - (9)].list); n->grantee_roles = (yyvsp[(7) - (9)].list); n->behavior = (yyvsp[(9) - (9)].dbehavior); (yyval.node) = (Node*)n; ;} break; case 961: #line 6481 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 962: #line 6482 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 963: #line 6485 "gram.y" { (yyval.node) = (yyvsp[(3) - (3)].node); ;} break; case 964: #line 6486 "gram.y" { (yyval.node) = NULL; ;} break; case 965: #line 6497 "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 966: #line 6506 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 967: #line 6507 "gram.y" { (yyval.list) = NIL; ;} break; case 968: #line 6512 "gram.y" { (yyval.defelt) = makeDefElem("schemas", (Node *)(yyvsp[(3) - (3)].list)); ;} break; case 969: #line 6516 "gram.y" { (yyval.defelt) = makeDefElem("roles", (Node *)(yyvsp[(3) - (3)].list)); ;} break; case 970: #line 6520 "gram.y" { (yyval.defelt) = makeDefElem("roles", (Node *)(yyvsp[(3) - (3)].list)); ;} break; case 971: #line 6532 "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 972: #line 6545 "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 973: #line 6559 "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 974: #line 6574 "gram.y" { (yyval.ival) = ACL_OBJECT_RELATION; ;} break; case 975: #line 6575 "gram.y" { (yyval.ival) = ACL_OBJECT_FUNCTION; ;} break; case 976: #line 6576 "gram.y" { (yyval.ival) = ACL_OBJECT_SEQUENCE; ;} break; case 977: #line 6577 "gram.y" { (yyval.ival) = ACL_OBJECT_TYPE; ;} break; case 978: #line 6592 "gram.y" { IndexStmt *n = makeNode(IndexStmt); n->unique = (yyvsp[(2) - (14)].boolean); n->concurrent = (yyvsp[(4) - (14)].boolean); n->idxname = (yyvsp[(5) - (14)].str); n->relation = (yyvsp[(7) - (14)].range); n->accessMethod = (yyvsp[(8) - (14)].str); n->indexParams = (yyvsp[(10) - (14)].list); n->options = (yyvsp[(12) - (14)].list); n->tableSpace = (yyvsp[(13) - (14)].str); n->whereClause = (yyvsp[(14) - (14)].node); n->excludeOpNames = NIL; n->idxcomment = NULL; n->indexOid = InvalidOid; n->oldNode = InvalidOid; n->primary = false; n->isconstraint = false; n->deferrable = false; n->initdeferred = false; n->transformed = false; n->if_not_exists = false; (yyval.node) = (Node *)n; ;} break; case 979: #line 6618 "gram.y" { IndexStmt *n = makeNode(IndexStmt); n->unique = (yyvsp[(2) - (17)].boolean); n->concurrent = (yyvsp[(4) - (17)].boolean); n->idxname = (yyvsp[(8) - (17)].str); n->relation = (yyvsp[(10) - (17)].range); n->accessMethod = (yyvsp[(11) - (17)].str); n->indexParams = (yyvsp[(13) - (17)].list); n->options = (yyvsp[(15) - (17)].list); n->tableSpace = (yyvsp[(16) - (17)].str); n->whereClause = (yyvsp[(17) - (17)].node); n->excludeOpNames = NIL; n->idxcomment = NULL; n->indexOid = InvalidOid; n->oldNode = InvalidOid; n->primary = false; n->isconstraint = false; n->deferrable = false; n->initdeferred = false; n->transformed = false; n->if_not_exists = true; (yyval.node) = (Node *)n; ;} break; case 980: #line 6644 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 981: #line 6645 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 982: #line 6649 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 983: #line 6650 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 984: #line 6654 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 985: #line 6655 "gram.y" { (yyval.str) = NULL; ;} break; case 986: #line 6659 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 987: #line 6660 "gram.y" { (yyval.str) = DEFAULT_INDEX_TYPE; ;} break; case 988: #line 6663 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].ielem)); ;} break; case 989: #line 6664 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].ielem)); ;} break; case 990: #line 6673 "gram.y" { (yyval.ielem) = makeNode(IndexElem); (yyval.ielem)->name = (yyvsp[(1) - (5)].str); (yyval.ielem)->expr = NULL; (yyval.ielem)->indexcolname = NULL; (yyval.ielem)->collation = (yyvsp[(2) - (5)].list); (yyval.ielem)->opclass = (yyvsp[(3) - (5)].list); (yyval.ielem)->ordering = (yyvsp[(4) - (5)].ival); (yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].ival); ;} break; case 991: #line 6684 "gram.y" { (yyval.ielem) = makeNode(IndexElem); (yyval.ielem)->name = NULL; (yyval.ielem)->expr = (yyvsp[(1) - (5)].node); (yyval.ielem)->indexcolname = NULL; (yyval.ielem)->collation = (yyvsp[(2) - (5)].list); (yyval.ielem)->opclass = (yyvsp[(3) - (5)].list); (yyval.ielem)->ordering = (yyvsp[(4) - (5)].ival); (yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].ival); ;} break; case 992: #line 6695 "gram.y" { (yyval.ielem) = makeNode(IndexElem); (yyval.ielem)->name = NULL; (yyval.ielem)->expr = (yyvsp[(2) - (7)].node); (yyval.ielem)->indexcolname = NULL; (yyval.ielem)->collation = (yyvsp[(4) - (7)].list); (yyval.ielem)->opclass = (yyvsp[(5) - (7)].list); (yyval.ielem)->ordering = (yyvsp[(6) - (7)].ival); (yyval.ielem)->nulls_ordering = (yyvsp[(7) - (7)].ival); ;} break; case 993: #line 6707 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 994: #line 6708 "gram.y" { (yyval.list) = NIL; ;} break; case 995: #line 6711 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 996: #line 6712 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 997: #line 6713 "gram.y" { (yyval.list) = NIL; ;} break; case 998: #line 6716 "gram.y" { (yyval.ival) = SORTBY_ASC; ;} break; case 999: #line 6717 "gram.y" { (yyval.ival) = SORTBY_DESC; ;} break; case 1000: #line 6718 "gram.y" { (yyval.ival) = SORTBY_DEFAULT; ;} break; case 1001: #line 6721 "gram.y" { (yyval.ival) = SORTBY_NULLS_FIRST; ;} break; case 1002: #line 6722 "gram.y" { (yyval.ival) = SORTBY_NULLS_LAST; ;} break; case 1003: #line 6723 "gram.y" { (yyval.ival) = SORTBY_NULLS_DEFAULT; ;} break; case 1004: #line 6741 "gram.y" { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); 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->withClause = (yyvsp[(9) - (9)].list); (yyval.node) = (Node *)n; ;} break; case 1005: #line 6753 "gram.y" { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); 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->withClause = (yyvsp[(12) - (12)].list); (yyval.node) = (Node *)n; ;} break; case 1006: #line 6766 "gram.y" { CreateFunctionStmt *n = makeNode(CreateFunctionStmt); 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->withClause = (yyvsp[(7) - (7)].list); (yyval.node) = (Node *)n; ;} break; case 1007: #line 6779 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 1008: #line 6780 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 1009: #line 6783 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1010: #line 6784 "gram.y" { (yyval.list) = NIL; ;} break; case 1011: #line 6788 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ;} break; case 1012: #line 6789 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); ;} break; case 1013: #line 6797 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1014: #line 6798 "gram.y" { (yyval.list) = NIL; ;} break; case 1015: #line 6802 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ;} break; case 1016: #line 6804 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); ;} break; case 1017: #line 6819 "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 1018: #line 6828 "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 1019: #line 6837 "gram.y" { FunctionParameter *n = makeNode(FunctionParameter); n->name = (yyvsp[(1) - (2)].str); n->argType = (yyvsp[(2) - (2)].typnam); n->mode = FUNC_PARAM_IN; n->defexpr = NULL; (yyval.fun_param) = n; ;} break; case 1020: #line 6846 "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 1021: #line 6855 "gram.y" { FunctionParameter *n = makeNode(FunctionParameter); n->name = NULL; n->argType = (yyvsp[(1) - (1)].typnam); n->mode = FUNC_PARAM_IN; n->defexpr = NULL; (yyval.fun_param) = n; ;} break; case 1022: #line 6866 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_IN; ;} break; case 1023: #line 6867 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_OUT; ;} break; case 1024: #line 6868 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; ;} break; case 1025: #line 6869 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; ;} break; case 1026: #line 6870 "gram.y" { (yyval.fun_param_mode) = FUNC_PARAM_VARIADIC; ;} break; case 1028: #line 6881 "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 1029: #line 6895 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1030: #line 6897 "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 1031: #line 6903 "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 1032: #line 6913 "gram.y" { (yyval.fun_param) = (yyvsp[(1) - (1)].fun_param); ;} break; case 1033: #line 6917 "gram.y" { (yyval.fun_param) = (yyvsp[(1) - (3)].fun_param); (yyval.fun_param)->defexpr = (yyvsp[(3) - (3)].node); ;} break; case 1034: #line 6922 "gram.y" { (yyval.fun_param) = (yyvsp[(1) - (3)].fun_param); (yyval.fun_param)->defexpr = (yyvsp[(3) - (3)].node); ;} break; case 1035: #line 6930 "gram.y" { if (!((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 1036: #line 6971 "gram.y" { (yyval.list) = list_make2(NIL, makeInteger(-1)); ;} break; case 1037: #line 6975 "gram.y" { (yyval.list) = list_make2((yyvsp[(2) - (3)].list), makeInteger(-1)); ;} break; case 1038: #line 6979 "gram.y" { (yyval.list) = list_make2((yyvsp[(4) - (5)].list), makeInteger(0)); ;} break; case 1039: #line 6983 "gram.y" { /* this is the only case requiring consistency checking */ (yyval.list) = makeOrderedSetArgs((yyvsp[(2) - (6)].list), (yyvsp[(5) - (6)].list), yyscanner); ;} break; case 1040: #line 6990 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ;} break; case 1041: #line 6991 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); ;} break; case 1042: #line 6996 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1043: #line 6997 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1044: #line 7005 "gram.y" { (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(FALSE)); ;} break; case 1045: #line 7009 "gram.y" { (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(TRUE)); ;} break; case 1046: #line 7013 "gram.y" { (yyval.defelt) = makeDefElem("strict", (Node *)makeInteger(TRUE)); ;} break; case 1047: #line 7017 "gram.y" { (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("immutable")); ;} break; case 1048: #line 7021 "gram.y" { (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("stable")); ;} break; case 1049: #line 7025 "gram.y" { (yyval.defelt) = makeDefElem("volatility", (Node *)makeString("volatile")); ;} break; case 1050: #line 7029 "gram.y" { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(TRUE)); ;} break; case 1051: #line 7033 "gram.y" { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(FALSE)); ;} break; case 1052: #line 7037 "gram.y" { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(TRUE)); ;} break; case 1053: #line 7041 "gram.y" { (yyval.defelt) = makeDefElem("security", (Node *)makeInteger(FALSE)); ;} break; case 1054: #line 7045 "gram.y" { (yyval.defelt) = makeDefElem("leakproof", (Node *)makeInteger(TRUE)); ;} break; case 1055: #line 7049 "gram.y" { (yyval.defelt) = makeDefElem("leakproof", (Node *)makeInteger(FALSE)); ;} break; case 1056: #line 7053 "gram.y" { (yyval.defelt) = makeDefElem("cost", (Node *)(yyvsp[(2) - (2)].value)); ;} break; case 1057: #line 7057 "gram.y" { (yyval.defelt) = makeDefElem("rows", (Node *)(yyvsp[(2) - (2)].value)); ;} break; case 1058: #line 7061 "gram.y" { /* we abuse the normal content of a DefElem here */ (yyval.defelt) = makeDefElem("set", (Node *)(yyvsp[(1) - (1)].vsetstmt)); ;} break; case 1059: #line 7069 "gram.y" { (yyval.defelt) = makeDefElem("as", (Node *)(yyvsp[(2) - (2)].list)); ;} break; case 1060: #line 7073 "gram.y" { (yyval.defelt) = makeDefElem("language", (Node *)makeString((yyvsp[(2) - (2)].str))); ;} break; case 1061: #line 7077 "gram.y" { (yyval.defelt) = makeDefElem("transform", (Node *)(yyvsp[(2) - (2)].list)); ;} break; case 1062: #line 7081 "gram.y" { (yyval.defelt) = makeDefElem("window", (Node *)makeInteger(TRUE)); ;} break; case 1063: #line 7085 "gram.y" { (yyval.defelt) = (yyvsp[(1) - (1)].defelt); ;} break; case 1064: #line 7090 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 1065: #line 7092 "gram.y" { (yyval.list) = list_make2(makeString((yyvsp[(1) - (3)].str)), makeString((yyvsp[(3) - (3)].str))); ;} break; case 1066: #line 7098 "gram.y" { (yyval.list) = list_make1((yyvsp[(3) - (3)].typnam)); ;} break; case 1067: #line 7099 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (5)].list), (yyvsp[(5) - (5)].typnam)); ;} break; case 1068: #line 7103 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1069: #line 7104 "gram.y" { (yyval.list) = NIL; ;} break; case 1070: #line 7108 "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 1071: #line 7120 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ;} break; case 1072: #line 7124 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); ;} break; case 1073: #line 7139 "gram.y" { AlterFunctionStmt *n = makeNode(AlterFunctionStmt); n->func = (yyvsp[(3) - (5)].funwithargs); n->actions = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 1074: #line 7149 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1075: #line 7150 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1078: #line 7172 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FUNCTION; n->objects = list_make1((yyvsp[(3) - (5)].list)); n->arguments = list_make1(extractArgTypes((yyvsp[(4) - (5)].list))); n->behavior = (yyvsp[(5) - (5)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; ;} break; case 1079: #line 7183 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_FUNCTION; n->objects = list_make1((yyvsp[(5) - (7)].list)); n->arguments = list_make1(extractArgTypes((yyvsp[(6) - (7)].list))); n->behavior = (yyvsp[(7) - (7)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; ;} break; case 1080: #line 7197 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_AGGREGATE; n->objects = list_make1((yyvsp[(3) - (5)].list)); n->arguments = list_make1(extractAggrArgTypes((yyvsp[(4) - (5)].list))); n->behavior = (yyvsp[(5) - (5)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; ;} break; case 1081: #line 7208 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_AGGREGATE; n->objects = list_make1((yyvsp[(5) - (7)].list)); n->arguments = list_make1(extractAggrArgTypes((yyvsp[(6) - (7)].list))); n->behavior = (yyvsp[(7) - (7)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; ;} break; case 1082: #line 7222 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_OPERATOR; n->objects = list_make1((yyvsp[(3) - (5)].list)); n->arguments = list_make1((yyvsp[(4) - (5)].list)); n->behavior = (yyvsp[(5) - (5)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *)n; ;} break; case 1083: #line 7233 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_OPERATOR; n->objects = list_make1((yyvsp[(5) - (7)].list)); n->arguments = list_make1((yyvsp[(6) - (7)].list)); n->behavior = (yyvsp[(7) - (7)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *)n; ;} break; case 1084: #line 7247 "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 1085: #line 7255 "gram.y" { (yyval.list) = list_make2((yyvsp[(2) - (5)].typnam), (yyvsp[(4) - (5)].typnam)); ;} break; case 1086: #line 7257 "gram.y" { (yyval.list) = list_make2(NULL, (yyvsp[(4) - (5)].typnam)); ;} break; case 1087: #line 7259 "gram.y" { (yyval.list) = list_make2((yyvsp[(2) - (5)].typnam), NULL); ;} break; case 1088: #line 7264 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 1089: #line 7266 "gram.y" { (yyval.list) = lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(3) - (3)].list)); ;} break; case 1090: #line 7279 "gram.y" { DoStmt *n = makeNode(DoStmt); n->args = (yyvsp[(2) - (2)].list); (yyval.node) = (Node *)n; ;} break; case 1091: #line 7287 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1092: #line 7288 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1093: #line 7293 "gram.y" { (yyval.defelt) = makeDefElem("as", (Node *)makeString((yyvsp[(1) - (1)].str))); ;} break; case 1094: #line 7297 "gram.y" { (yyval.defelt) = makeDefElem("language", (Node *)makeString((yyvsp[(2) - (2)].str))); ;} break; case 1095: #line 7310 "gram.y" { CreateCastStmt *n = makeNode(CreateCastStmt); n->sourcetype = (yyvsp[(4) - (11)].typnam); n->targettype = (yyvsp[(6) - (11)].typnam); n->func = (yyvsp[(10) - (11)].funwithargs); n->context = (CoercionContext) (yyvsp[(11) - (11)].ival); n->inout = false; (yyval.node) = (Node *)n; ;} break; case 1096: #line 7321 "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 1097: #line 7332 "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 1098: #line 7343 "gram.y" { (yyval.ival) = COERCION_IMPLICIT; ;} break; case 1099: #line 7344 "gram.y" { (yyval.ival) = COERCION_ASSIGNMENT; ;} break; case 1100: #line 7345 "gram.y" { (yyval.ival) = COERCION_EXPLICIT; ;} break; case 1101: #line 7350 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_CAST; n->objects = list_make1(list_make1((yyvsp[(5) - (9)].typnam))); n->arguments = list_make1(list_make1((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 1102: #line 7362 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 1103: #line 7363 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 1104: #line 7374 "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 1105: #line 7386 "gram.y" { (yyval.list) = list_make2((yyvsp[(5) - (11)].funwithargs), (yyvsp[(11) - (11)].funwithargs)); ;} break; case 1106: #line 7390 "gram.y" { (yyval.list) = list_make2((yyvsp[(11) - (11)].funwithargs), (yyvsp[(5) - (11)].funwithargs)); ;} break; case 1107: #line 7394 "gram.y" { (yyval.list) = list_make2((yyvsp[(5) - (5)].funwithargs), NULL); ;} break; case 1108: #line 7398 "gram.y" { (yyval.list) = list_make2(NULL, (yyvsp[(5) - (5)].funwithargs)); ;} break; case 1109: #line 7405 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_TRANSFORM; n->objects = list_make1(list_make1((yyvsp[(5) - (8)].typnam))); n->arguments = list_make1(list_make1(makeString((yyvsp[(7) - (8)].str)))); n->behavior = (yyvsp[(8) - (8)].dbehavior); n->missing_ok = (yyvsp[(3) - (8)].boolean); (yyval.node) = (Node *)n; ;} break; case 1110: #line 7426 "gram.y" { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[(2) - (3)].ival); n->relation = (yyvsp[(3) - (3)].range); n->name = NULL; n->options = 0; (yyval.node) = (Node *)n; ;} break; case 1111: #line 7435 "gram.y" { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[(2) - (3)].ival); n->name = (yyvsp[(3) - (3)].str); n->relation = NULL; n->options = 0; (yyval.node) = (Node *)n; ;} break; case 1112: #line 7444 "gram.y" { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[(5) - (6)].ival); n->relation = (yyvsp[(6) - (6)].range); n->name = NULL; n->options = (yyvsp[(3) - (6)].ival); (yyval.node) = (Node *)n; ;} break; case 1113: #line 7453 "gram.y" { ReindexStmt *n = makeNode(ReindexStmt); n->kind = (yyvsp[(5) - (6)].ival); n->name = (yyvsp[(6) - (6)].str); n->relation = NULL; n->options = (yyvsp[(3) - (6)].ival); (yyval.node) = (Node *)n; ;} break; case 1114: #line 7463 "gram.y" { (yyval.ival) = REINDEX_OBJECT_INDEX; ;} break; case 1115: #line 7464 "gram.y" { (yyval.ival) = REINDEX_OBJECT_TABLE; ;} break; case 1116: #line 7467 "gram.y" { (yyval.ival) = REINDEX_OBJECT_SCHEMA; ;} break; case 1117: #line 7468 "gram.y" { (yyval.ival) = REINDEX_OBJECT_SYSTEM; ;} break; case 1118: #line 7469 "gram.y" { (yyval.ival) = REINDEX_OBJECT_DATABASE; ;} break; case 1119: #line 7472 "gram.y" { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} break; case 1120: #line 7473 "gram.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;} break; case 1121: #line 7476 "gram.y" { (yyval.ival) = REINDEXOPT_VERBOSE; ;} break; case 1122: #line 7487 "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 1123: #line 7496 "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 1124: #line 7513 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_AGGREGATE; n->object = (yyvsp[(3) - (7)].list); n->objarg = extractAggrArgTypes((yyvsp[(4) - (7)].list)); n->newname = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1125: #line 7523 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_COLLATION; n->object = (yyvsp[(3) - (6)].list); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1126: #line 7532 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_CONVERSION; n->object = (yyvsp[(3) - (6)].list); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1127: #line 7541 "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 1128: #line 7550 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DOMAIN; n->object = (yyvsp[(3) - (6)].list); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1129: #line 7559 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_DOMCONSTRAINT; n->object = (yyvsp[(3) - (8)].list); n->subname = (yyvsp[(6) - (8)].str); n->newname = (yyvsp[(8) - (8)].str); (yyval.node) = (Node *)n; ;} break; case 1130: #line 7568 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FDW; n->object = list_make1(makeString((yyvsp[(5) - (8)].str))); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1131: #line 7577 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FUNCTION; n->object = (yyvsp[(3) - (6)].funwithargs)->funcname; n->objarg = (yyvsp[(3) - (6)].funwithargs)->funcargs; n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1132: #line 7587 "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 1133: #line 7596 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_LANGUAGE; n->object = list_make1(makeString((yyvsp[(4) - (7)].str))); n->newname = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1134: #line 7605 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_OPCLASS; n->object = 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 1135: #line 7614 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_OPFAMILY; n->object = 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 1136: #line 7623 "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 1137: #line 7633 "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 1138: #line 7643 "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 1139: #line 7652 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_FOREIGN_SERVER; n->object = list_make1(makeString((yyvsp[(3) - (6)].str))); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1140: #line 7661 "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 1141: #line 7671 "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 1142: #line 7681 "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 1143: #line 7691 "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 1144: #line 7701 "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 1145: #line 7711 "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 1146: #line 7721 "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 1147: #line 7731 "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 1148: #line 7741 "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 1149: #line 7751 "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 1150: #line 7761 "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 1151: #line 7771 "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 1152: #line 7781 "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 1153: #line 7792 "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 1154: #line 7803 "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 1155: #line 7814 "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 1156: #line 7825 "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 1157: #line 7835 "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 1158: #line 7845 "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 1159: #line 7856 "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 1160: #line 7867 "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 1161: #line 7877 "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 1162: #line 7887 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_EVENT_TRIGGER; n->object = list_make1(makeString((yyvsp[(4) - (7)].str))); n->newname = (yyvsp[(7) - (7)].str); (yyval.node) = (Node *)n; ;} break; case 1163: #line 7895 "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 1164: #line 7904 "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 1165: #line 7913 "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 1166: #line 7922 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSPARSER; n->object = (yyvsp[(5) - (8)].list); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1167: #line 7931 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSDICTIONARY; n->object = (yyvsp[(5) - (8)].list); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1168: #line 7940 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSTEMPLATE; n->object = (yyvsp[(5) - (8)].list); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1169: #line 7949 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TSCONFIGURATION; n->object = (yyvsp[(5) - (8)].list); n->newname = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1170: #line 7958 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->renameType = OBJECT_TYPE; n->object = (yyvsp[(3) - (6)].list); n->newname = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1171: #line 7967 "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 1172: #line 7980 "gram.y" { (yyval.ival) = COLUMN; ;} break; case 1173: #line 7981 "gram.y" { (yyval.ival) = 0; ;} break; case 1174: #line 7984 "gram.y" { (yyval.ival) = 1; ;} break; case 1175: #line 7985 "gram.y" { (yyval.ival) = 0; ;} break; case 1176: #line 7996 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_AGGREGATE; n->object = (yyvsp[(3) - (7)].list); n->objarg = extractAggrArgTypes((yyvsp[(4) - (7)].list)); n->newschema = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1177: #line 8006 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_COLLATION; n->object = (yyvsp[(3) - (6)].list); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1178: #line 8015 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_CONVERSION; n->object = (yyvsp[(3) - (6)].list); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1179: #line 8024 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_DOMAIN; n->object = (yyvsp[(3) - (6)].list); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1180: #line 8033 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_EXTENSION; n->object = (yyvsp[(3) - (6)].list); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1181: #line 8042 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_FUNCTION; n->object = (yyvsp[(3) - (6)].funwithargs)->funcname; n->objarg = (yyvsp[(3) - (6)].funwithargs)->funcargs; n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1182: #line 8052 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPERATOR; n->object = (yyvsp[(3) - (7)].list); n->objarg = (yyvsp[(4) - (7)].list); n->newschema = (yyvsp[(7) - (7)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1183: #line 8062 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPCLASS; n->object = 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 1184: #line 8071 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_OPFAMILY; n->object = 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 1185: #line 8080 "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 1186: #line 8089 "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 1187: #line 8098 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSPARSER; n->object = (yyvsp[(5) - (8)].list); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1188: #line 8107 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSDICTIONARY; n->object = (yyvsp[(5) - (8)].list); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1189: #line 8116 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSTEMPLATE; n->object = (yyvsp[(5) - (8)].list); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1190: #line 8125 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TSCONFIGURATION; n->object = (yyvsp[(5) - (8)].list); n->newschema = (yyvsp[(8) - (8)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1191: #line 8134 "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 1192: #line 8143 "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 1193: #line 8152 "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 1194: #line 8161 "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 1195: #line 8170 "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 1196: #line 8179 "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 1197: #line 8188 "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 1198: #line 8197 "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 1199: #line 8206 "gram.y" { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); n->objectType = OBJECT_TYPE; n->object = (yyvsp[(3) - (6)].list); n->newschema = (yyvsp[(6) - (6)].str); n->missing_ok = false; (yyval.node) = (Node *)n; ;} break; case 1200: #line 8223 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_AGGREGATE; n->object = (yyvsp[(3) - (7)].list); n->objarg = extractAggrArgTypes((yyvsp[(4) - (7)].list)); n->newowner = (yyvsp[(7) - (7)].node); (yyval.node) = (Node *)n; ;} break; case 1201: #line 8232 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_COLLATION; n->object = (yyvsp[(3) - (6)].list); n->newowner = (yyvsp[(6) - (6)].node); (yyval.node) = (Node *)n; ;} break; case 1202: #line 8240 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_CONVERSION; n->object = (yyvsp[(3) - (6)].list); n->newowner = (yyvsp[(6) - (6)].node); (yyval.node) = (Node *)n; ;} break; case 1203: #line 8248 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_DATABASE; n->object = list_make1(makeString((yyvsp[(3) - (6)].str))); n->newowner = (yyvsp[(6) - (6)].node); (yyval.node) = (Node *)n; ;} break; case 1204: #line 8256 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_DOMAIN; n->object = (yyvsp[(3) - (6)].list); n->newowner = (yyvsp[(6) - (6)].node); (yyval.node) = (Node *)n; ;} break; case 1205: #line 8264 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FUNCTION; n->object = (yyvsp[(3) - (6)].funwithargs)->funcname; n->objarg = (yyvsp[(3) - (6)].funwithargs)->funcargs; n->newowner = (yyvsp[(6) - (6)].node); (yyval.node) = (Node *)n; ;} break; case 1206: #line 8273 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_LANGUAGE; n->object = list_make1(makeString((yyvsp[(4) - (7)].str))); n->newowner = (yyvsp[(7) - (7)].node); (yyval.node) = (Node *)n; ;} break; case 1207: #line 8281 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_LARGEOBJECT; n->object = list_make1((yyvsp[(4) - (7)].value)); n->newowner = (yyvsp[(7) - (7)].node); (yyval.node) = (Node *)n; ;} break; case 1208: #line 8289 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPERATOR; n->object = (yyvsp[(3) - (7)].list); n->objarg = (yyvsp[(4) - (7)].list); n->newowner = (yyvsp[(7) - (7)].node); (yyval.node) = (Node *)n; ;} break; case 1209: #line 8298 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPCLASS; n->object = lcons(makeString((yyvsp[(6) - (9)].str)), (yyvsp[(4) - (9)].list)); n->newowner = (yyvsp[(9) - (9)].node); (yyval.node) = (Node *)n; ;} break; case 1210: #line 8306 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_OPFAMILY; n->object = lcons(makeString((yyvsp[(6) - (9)].str)), (yyvsp[(4) - (9)].list)); n->newowner = (yyvsp[(9) - (9)].node); (yyval.node) = (Node *)n; ;} break; case 1211: #line 8314 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_SCHEMA; n->object = list_make1(makeString((yyvsp[(3) - (6)].str))); n->newowner = (yyvsp[(6) - (6)].node); (yyval.node) = (Node *)n; ;} break; case 1212: #line 8322 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TYPE; n->object = (yyvsp[(3) - (6)].list); n->newowner = (yyvsp[(6) - (6)].node); (yyval.node) = (Node *)n; ;} break; case 1213: #line 8330 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TABLESPACE; n->object = list_make1(makeString((yyvsp[(3) - (6)].str))); n->newowner = (yyvsp[(6) - (6)].node); (yyval.node) = (Node *)n; ;} break; case 1214: #line 8338 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TSDICTIONARY; n->object = (yyvsp[(5) - (8)].list); n->newowner = (yyvsp[(8) - (8)].node); (yyval.node) = (Node *)n; ;} break; case 1215: #line 8346 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_TSCONFIGURATION; n->object = (yyvsp[(5) - (8)].list); n->newowner = (yyvsp[(8) - (8)].node); (yyval.node) = (Node *)n; ;} break; case 1216: #line 8354 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FDW; n->object = list_make1(makeString((yyvsp[(5) - (8)].str))); n->newowner = (yyvsp[(8) - (8)].node); (yyval.node) = (Node *)n; ;} break; case 1217: #line 8362 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_FOREIGN_SERVER; n->object = list_make1(makeString((yyvsp[(3) - (6)].str))); n->newowner = (yyvsp[(6) - (6)].node); (yyval.node) = (Node *)n; ;} break; case 1218: #line 8370 "gram.y" { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_EVENT_TRIGGER; n->object = list_make1(makeString((yyvsp[(4) - (7)].str))); n->newowner = (yyvsp[(7) - (7)].node); (yyval.node) = (Node *)n; ;} break; case 1219: #line 8389 "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 1220: #line 8403 "gram.y" { (yyval.list) = NIL; ;} break; case 1221: #line 8404 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1222: #line 8405 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1223: #line 8411 "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 1224: #line 8417 "gram.y" { if ((yyvsp[(1) - (1)].node) != NULL) (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); else (yyval.list) = NIL; ;} break; case 1230: #line 8433 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1231: #line 8434 "gram.y" { (yyval.node) = NULL; ;} break; case 1232: #line 8437 "gram.y" { (yyval.ival) = CMD_SELECT; ;} break; case 1233: #line 8438 "gram.y" { (yyval.ival) = CMD_UPDATE; ;} break; case 1234: #line 8439 "gram.y" { (yyval.ival) = CMD_DELETE; ;} break; case 1235: #line 8440 "gram.y" { (yyval.ival) = CMD_INSERT; ;} break; case 1236: #line 8444 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 1237: #line 8445 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 1238: #line 8446 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 1239: #line 8452 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_RULE; n->objects = list_make1(lappend((yyvsp[(5) - (6)].list), makeString((yyvsp[(3) - (6)].str)))); n->arguments = NIL; n->behavior = (yyvsp[(6) - (6)].dbehavior); n->missing_ok = false; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 1240: #line 8463 "gram.y" { DropStmt *n = makeNode(DropStmt); n->removeType = OBJECT_RULE; n->objects = list_make1(lappend((yyvsp[(7) - (8)].list), makeString((yyvsp[(5) - (8)].str)))); n->arguments = NIL; n->behavior = (yyvsp[(8) - (8)].dbehavior); n->missing_ok = true; n->concurrent = false; (yyval.node) = (Node *) n; ;} break; case 1241: #line 8485 "gram.y" { NotifyStmt *n = makeNode(NotifyStmt); n->conditionname = (yyvsp[(2) - (3)].str); n->payload = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; ;} break; case 1242: #line 8494 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 1243: #line 8495 "gram.y" { (yyval.str) = NULL; ;} break; case 1244: #line 8499 "gram.y" { ListenStmt *n = makeNode(ListenStmt); n->conditionname = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *)n; ;} break; case 1245: #line 8508 "gram.y" { UnlistenStmt *n = makeNode(UnlistenStmt); n->conditionname = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *)n; ;} break; case 1246: #line 8514 "gram.y" { UnlistenStmt *n = makeNode(UnlistenStmt); n->conditionname = NULL; (yyval.node) = (Node *)n; ;} break; case 1247: #line 8533 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK; n->options = NIL; (yyval.node) = (Node *)n; ;} break; case 1248: #line 8540 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_BEGIN; n->options = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *)n; ;} break; case 1249: #line 8547 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_START; n->options = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *)n; ;} break; case 1250: #line 8554 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT; n->options = NIL; (yyval.node) = (Node *)n; ;} break; case 1251: #line 8561 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT; n->options = NIL; (yyval.node) = (Node *)n; ;} break; case 1252: #line 8568 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK; n->options = NIL; (yyval.node) = (Node *)n; ;} break; case 1253: #line 8575 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_SAVEPOINT; n->options = list_make1(makeDefElem("savepoint_name", (Node *)makeString((yyvsp[(2) - (2)].str)))); (yyval.node) = (Node *)n; ;} break; case 1254: #line 8583 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_RELEASE; n->options = list_make1(makeDefElem("savepoint_name", (Node *)makeString((yyvsp[(3) - (3)].str)))); (yyval.node) = (Node *)n; ;} break; case 1255: #line 8591 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_RELEASE; n->options = list_make1(makeDefElem("savepoint_name", (Node *)makeString((yyvsp[(2) - (2)].str)))); (yyval.node) = (Node *)n; ;} break; case 1256: #line 8599 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_TO; n->options = list_make1(makeDefElem("savepoint_name", (Node *)makeString((yyvsp[(5) - (5)].str)))); (yyval.node) = (Node *)n; ;} break; case 1257: #line 8607 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_TO; n->options = list_make1(makeDefElem("savepoint_name", (Node *)makeString((yyvsp[(4) - (4)].str)))); (yyval.node) = (Node *)n; ;} break; case 1258: #line 8615 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_PREPARE; n->gid = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; ;} break; case 1259: #line 8622 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_COMMIT_PREPARED; n->gid = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; ;} break; case 1260: #line 8629 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->kind = TRANS_STMT_ROLLBACK_PREPARED; n->gid = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *)n; ;} break; case 1261: #line 8637 "gram.y" {;} break; case 1262: #line 8638 "gram.y" {;} break; case 1263: #line 8639 "gram.y" {;} break; case 1264: #line 8644 "gram.y" { (yyval.defelt) = makeDefElem("transaction_isolation", makeStringConst((yyvsp[(3) - (3)].str), (yylsp[(3) - (3)]))); ;} break; case 1265: #line 8647 "gram.y" { (yyval.defelt) = makeDefElem("transaction_read_only", makeIntConst(TRUE, (yylsp[(1) - (2)]))); ;} break; case 1266: #line 8650 "gram.y" { (yyval.defelt) = makeDefElem("transaction_read_only", makeIntConst(FALSE, (yylsp[(1) - (2)]))); ;} break; case 1267: #line 8653 "gram.y" { (yyval.defelt) = makeDefElem("transaction_deferrable", makeIntConst(TRUE, (yylsp[(1) - (1)]))); ;} break; case 1268: #line 8656 "gram.y" { (yyval.defelt) = makeDefElem("transaction_deferrable", makeIntConst(FALSE, (yylsp[(1) - (2)]))); ;} break; case 1269: #line 8663 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1270: #line 8665 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 1271: #line 8667 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1273: #line 8673 "gram.y" { (yyval.list) = NIL; ;} break; case 1274: #line 8687 "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 1275: #line 8700 "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 1276: #line 8713 "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 1277: #line 8731 "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 1278: #line 8750 "gram.y" { (yyval.ival) = CASCADED_CHECK_OPTION; ;} break; case 1279: #line 8751 "gram.y" { (yyval.ival) = CASCADED_CHECK_OPTION; ;} break; case 1280: #line 8752 "gram.y" { (yyval.ival) = LOCAL_CHECK_OPTION; ;} break; case 1281: #line 8753 "gram.y" { (yyval.ival) = NO_CHECK_OPTION; ;} break; case 1282: #line 8764 "gram.y" { LoadStmt *n = makeNode(LoadStmt); n->filename = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *)n; ;} break; case 1283: #line 8780 "gram.y" { CreatedbStmt *n = makeNode(CreatedbStmt); n->dbname = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; ;} break; case 1284: #line 8789 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1285: #line 8790 "gram.y" { (yyval.list) = NIL; ;} break; case 1286: #line 8794 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1287: #line 8795 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} break; case 1288: #line 8800 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *)makeInteger((yyvsp[(3) - (3)].ival))); ;} break; case 1289: #line 8804 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *)makeString((yyvsp[(3) - (3)].str))); ;} break; case 1290: #line 8808 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), NULL); ;} break; case 1291: #line 8825 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1292: #line 8826 "gram.y" { (yyval.str) = pstrdup("connection_limit"); ;} break; case 1293: #line 8827 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 1294: #line 8828 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 1295: #line 8829 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 1296: #line 8830 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 1297: #line 8831 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 1298: #line 8838 "gram.y" {;} break; case 1299: #line 8839 "gram.y" {;} break; case 1300: #line 8851 "gram.y" { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[(3) - (5)].str); n->options = (yyvsp[(5) - (5)].list); (yyval.node) = (Node *)n; ;} break; case 1301: #line 8858 "gram.y" { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[(3) - (4)].str); n->options = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *)n; ;} break; case 1302: #line 8865 "gram.y" { AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); n->dbname = (yyvsp[(3) - (6)].str); n->options = list_make1(makeDefElem("tablespace", (Node *)makeString((yyvsp[(6) - (6)].str)))); (yyval.node) = (Node *)n; ;} break; case 1303: #line 8876 "gram.y" { AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt); n->dbname = (yyvsp[(3) - (4)].str); n->setstmt = (yyvsp[(4) - (4)].vsetstmt); (yyval.node) = (Node *)n; ;} break; case 1304: #line 8893 "gram.y" { DropdbStmt *n = makeNode(DropdbStmt); n->dbname = (yyvsp[(3) - (3)].str); n->missing_ok = FALSE; (yyval.node) = (Node *)n; ;} break; case 1305: #line 8900 "gram.y" { DropdbStmt *n = makeNode(DropdbStmt); n->dbname = (yyvsp[(5) - (5)].str); n->missing_ok = TRUE; (yyval.node) = (Node *)n; ;} break; case 1306: #line 8918 "gram.y" { AlterSystemStmt *n = makeNode(AlterSystemStmt); n->setstmt = (yyvsp[(4) - (4)].vsetstmt); (yyval.node) = (Node *)n; ;} break; case 1307: #line 8924 "gram.y" { AlterSystemStmt *n = makeNode(AlterSystemStmt); n->setstmt = (yyvsp[(4) - (4)].vsetstmt); (yyval.node) = (Node *)n; ;} break; case 1308: #line 8940 "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 1309: #line 8953 "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 1310: #line 8962 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'N'; n->typeName = (yyvsp[(3) - (6)].list); (yyval.node) = (Node *)n; ;} break; case 1311: #line 8970 "gram.y" { AlterDomainStmt *n = makeNode(AlterDomainStmt); n->subtype = 'O'; n->typeName = (yyvsp[(3) - (6)].list); (yyval.node) = (Node *)n; ;} break; case 1312: #line 8978 "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 1313: #line 8987 "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 1314: #line 8998 "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 1315: #line 9009 "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 1316: #line 9018 "gram.y" {;} break; case 1317: #line 9019 "gram.y" {;} break; case 1318: #line 9031 "gram.y" { AlterTSDictionaryStmt *n = makeNode(AlterTSDictionaryStmt); n->dictname = (yyvsp[(5) - (6)].list); n->options = (yyvsp[(6) - (6)].list); (yyval.node) = (Node *)n; ;} break; case 1319: #line 9041 "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 1320: #line 9052 "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 1321: #line 9063 "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 1322: #line 9074 "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 1323: #line 9085 "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 1324: #line 9094 "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 1325: #line 9105 "gram.y" {;} break; case 1326: #line 9106 "gram.y" {;} break; case 1327: #line 9122 "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 1328: #line 9144 "gram.y" { ClusterStmt *n = makeNode(ClusterStmt); n->relation = (yyvsp[(3) - (4)].range); n->indexname = (yyvsp[(4) - (4)].str); n->verbose = (yyvsp[(2) - (4)].boolean); (yyval.node) = (Node*)n; ;} break; case 1329: #line 9152 "gram.y" { ClusterStmt *n = makeNode(ClusterStmt); n->relation = NULL; n->indexname = NULL; n->verbose = (yyvsp[(2) - (2)].boolean); (yyval.node) = (Node*)n; ;} break; case 1330: #line 9161 "gram.y" { ClusterStmt *n = makeNode(ClusterStmt); n->relation = (yyvsp[(5) - (5)].range); n->indexname = (yyvsp[(3) - (5)].str); n->verbose = (yyvsp[(2) - (5)].boolean); (yyval.node) = (Node*)n; ;} break; case 1331: #line 9171 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; case 1332: #line 9172 "gram.y" { (yyval.str) = NULL; ;} break; case 1333: #line 9185 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->options = VACOPT_VACUUM; if ((yyvsp[(2) - (4)].boolean)) n->options |= VACOPT_FULL; if ((yyvsp[(3) - (4)].boolean)) n->options |= VACOPT_FREEZE; if ((yyvsp[(4) - (4)].boolean)) n->options |= VACOPT_VERBOSE; n->relation = NULL; n->va_cols = NIL; (yyval.node) = (Node *)n; ;} break; case 1334: #line 9199 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->options = VACOPT_VACUUM; if ((yyvsp[(2) - (5)].boolean)) n->options |= VACOPT_FULL; if ((yyvsp[(3) - (5)].boolean)) n->options |= VACOPT_FREEZE; if ((yyvsp[(4) - (5)].boolean)) n->options |= VACOPT_VERBOSE; n->relation = (yyvsp[(5) - (5)].range); n->va_cols = NIL; (yyval.node) = (Node *)n; ;} break; case 1335: #line 9213 "gram.y" { VacuumStmt *n = (VacuumStmt *) (yyvsp[(5) - (5)].node); n->options |= VACOPT_VACUUM; if ((yyvsp[(2) - (5)].boolean)) n->options |= VACOPT_FULL; if ((yyvsp[(3) - (5)].boolean)) n->options |= VACOPT_FREEZE; if ((yyvsp[(4) - (5)].boolean)) n->options |= VACOPT_VERBOSE; (yyval.node) = (Node *)n; ;} break; case 1336: #line 9225 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->options = VACOPT_VACUUM | (yyvsp[(3) - (4)].ival); n->relation = NULL; n->va_cols = NIL; (yyval.node) = (Node *) n; ;} break; case 1337: #line 9233 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->options = VACOPT_VACUUM | (yyvsp[(3) - (6)].ival); n->relation = (yyvsp[(5) - (6)].range); n->va_cols = (yyvsp[(6) - (6)].list); if (n->va_cols != NIL) /* implies analyze */ n->options |= VACOPT_ANALYZE; (yyval.node) = (Node *) n; ;} break; case 1338: #line 9245 "gram.y" { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} break; case 1339: #line 9246 "gram.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;} break; case 1340: #line 9250 "gram.y" { (yyval.ival) = VACOPT_ANALYZE; ;} break; case 1341: #line 9251 "gram.y" { (yyval.ival) = VACOPT_VERBOSE; ;} break; case 1342: #line 9252 "gram.y" { (yyval.ival) = VACOPT_FREEZE; ;} break; case 1343: #line 9253 "gram.y" { (yyval.ival) = VACOPT_FULL; ;} break; case 1344: #line 9258 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->options = VACOPT_ANALYZE; if ((yyvsp[(2) - (2)].boolean)) n->options |= VACOPT_VERBOSE; n->relation = NULL; n->va_cols = NIL; (yyval.node) = (Node *)n; ;} break; case 1345: #line 9268 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->options = VACOPT_ANALYZE; if ((yyvsp[(2) - (4)].boolean)) n->options |= VACOPT_VERBOSE; n->relation = (yyvsp[(3) - (4)].range); n->va_cols = (yyvsp[(4) - (4)].list); (yyval.node) = (Node *)n; ;} break; case 1346: #line 9280 "gram.y" {;} break; case 1347: #line 9281 "gram.y" {;} break; case 1348: #line 9285 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 1349: #line 9286 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 1350: #line 9289 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 1351: #line 9290 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 1352: #line 9293 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 1353: #line 9294 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 1354: #line 9298 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1355: #line 9299 "gram.y" { (yyval.list) = NIL; ;} break; case 1356: #line 9313 "gram.y" { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[(2) - (2)].node); n->options = NIL; (yyval.node) = (Node *) n; ;} break; case 1357: #line 9320 "gram.y" { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[(4) - (4)].node); n->options = list_make1(makeDefElem("analyze", NULL)); if ((yyvsp[(3) - (4)].boolean)) n->options = lappend(n->options, makeDefElem("verbose", NULL)); (yyval.node) = (Node *) n; ;} break; case 1358: #line 9330 "gram.y" { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[(3) - (3)].node); n->options = list_make1(makeDefElem("verbose", NULL)); (yyval.node) = (Node *) n; ;} break; case 1359: #line 9337 "gram.y" { ExplainStmt *n = makeNode(ExplainStmt); n->query = (yyvsp[(5) - (5)].node); n->options = (yyvsp[(3) - (5)].list); (yyval.node) = (Node *) n; ;} break; case 1369: #line 9359 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; case 1370: #line 9363 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; case 1371: #line 9370 "gram.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node)); ;} break; case 1372: #line 9376 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1373: #line 9377 "gram.y" { (yyval.str) = "analyze"; ;} break; case 1374: #line 9381 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 1375: #line 9382 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].value); ;} break; case 1376: #line 9383 "gram.y" { (yyval.node) = NULL; ;} break; case 1377: #line 9394 "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 1378: #line 9403 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1379: #line 9404 "gram.y" { (yyval.list) = NIL; ;} break; case 1384: #line 9422 "gram.y" { ExecuteStmt *n = makeNode(ExecuteStmt); n->name = (yyvsp[(2) - (3)].str); n->params = (yyvsp[(3) - (3)].list); (yyval.node) = (Node *) n; ;} break; case 1385: #line 9430 "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->relkind = OBJECT_TABLE; ctas->is_select_into = 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 1386: #line 9446 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1387: #line 9447 "gram.y" { (yyval.list) = NIL; ;} break; case 1388: #line 9458 "gram.y" { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = (yyvsp[(2) - (2)].str); (yyval.node) = (Node *) n; ;} break; case 1389: #line 9464 "gram.y" { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = (yyvsp[(3) - (3)].str); (yyval.node) = (Node *) n; ;} break; case 1390: #line 9470 "gram.y" { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = NULL; (yyval.node) = (Node *) n; ;} break; case 1391: #line 9476 "gram.y" { DeallocateStmt *n = makeNode(DeallocateStmt); n->name = NULL; (yyval.node) = (Node *) n; ;} break; case 1392: #line 9493 "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 1393: #line 9510 "gram.y" { (yyval.range) = (yyvsp[(1) - (1)].range); ;} break; case 1394: #line 9514 "gram.y" { (yyvsp[(1) - (3)].range)->alias = makeAlias((yyvsp[(3) - (3)].str), NIL); (yyval.range) = (yyvsp[(1) - (3)].range); ;} break; case 1395: #line 9522 "gram.y" { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->selectStmt = (yyvsp[(1) - (1)].node); ;} break; case 1396: #line 9528 "gram.y" { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = (yyvsp[(2) - (4)].list); (yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node); ;} break; case 1397: #line 9534 "gram.y" { (yyval.istmt) = makeNode(InsertStmt); (yyval.istmt)->cols = NIL; (yyval.istmt)->selectStmt = NULL; ;} break; case 1398: #line 9543 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 1399: #line 9545 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} break; case 1400: #line 9550 "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 1401: #line 9561 "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 1402: #line 9571 "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 1403: #line 9580 "gram.y" { (yyval.onconflict) = NULL; ;} break; case 1404: #line 9587 "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 1405: #line 9596 "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 1406: #line 9604 "gram.y" { (yyval.infer) = NULL; ;} break; case 1407: #line 9610 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1408: #line 9611 "gram.y" { (yyval.list) = NIL; ;} break; case 1409: #line 9624 "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 1410: #line 9636 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1411: #line 9637 "gram.y" { (yyval.list) = NIL; ;} break; case 1412: #line 9649 "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 1413: #line 9659 "gram.y" { (yyval.ival) = (yyvsp[(2) - (3)].ival); ;} break; case 1414: #line 9660 "gram.y" { (yyval.ival) = AccessExclusiveLock; ;} break; case 1415: #line 9663 "gram.y" { (yyval.ival) = AccessShareLock; ;} break; case 1416: #line 9664 "gram.y" { (yyval.ival) = RowShareLock; ;} break; case 1417: #line 9665 "gram.y" { (yyval.ival) = RowExclusiveLock; ;} break; case 1418: #line 9666 "gram.y" { (yyval.ival) = ShareUpdateExclusiveLock; ;} break; case 1419: #line 9667 "gram.y" { (yyval.ival) = ShareLock; ;} break; case 1420: #line 9668 "gram.y" { (yyval.ival) = ShareRowExclusiveLock; ;} break; case 1421: #line 9669 "gram.y" { (yyval.ival) = ExclusiveLock; ;} break; case 1422: #line 9670 "gram.y" { (yyval.ival) = AccessExclusiveLock; ;} break; case 1423: #line 9673 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 1424: #line 9674 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 1425: #line 9678 "gram.y" { (yyval.ival) = LockWaitError; ;} break; case 1426: #line 9679 "gram.y" { (yyval.ival) = LockWaitSkip; ;} break; case 1427: #line 9680 "gram.y" { (yyval.ival) = LockWaitBlock; ;} break; case 1428: #line 9696 "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 1429: #line 9709 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1430: #line 9710 "gram.y" { (yyval.list) = list_concat((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].list)); ;} break; case 1431: #line 9714 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 1432: #line 9715 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1433: #line 9720 "gram.y" { (yyval.target) = (yyvsp[(1) - (3)].target); (yyval.target)->val = (Node *) (yyvsp[(3) - (3)].node); ;} break; case 1434: #line 9736 "gram.y" { ListCell *col_cell; ListCell *val_cell; /* * Break the ctext_row apart, merge individual expressions * into the destination ResTargets. This is semantically * equivalent to, and much cheaper to process than, the * general case. */ if (list_length((yyvsp[(2) - (5)].list)) != list_length((yyvsp[(5) - (5)].list))) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("number of columns does not match number of values"), parser_errposition((yylsp[(5) - (5)])))); forboth(col_cell, (yyvsp[(2) - (5)].list), val_cell, (yyvsp[(5) - (5)].list)) { ResTarget *res_col = (ResTarget *) lfirst(col_cell); Node *res_val = (Node *) lfirst(val_cell); res_col->val = res_val; } (yyval.list) = (yyvsp[(2) - (5)].list); ;} break; case 1435: #line 9762 "gram.y" { SubLink *sl = makeNode(SubLink); int ncolumns = list_length((yyvsp[(2) - (5)].list)); int i = 1; ListCell *col_cell; /* First, convert bare SelectStmt into a SubLink */ sl->subLinkType = MULTIEXPR_SUBLINK; sl->subLinkId = 0; /* will be assigned later */ sl->testexpr = NULL; sl->operName = NIL; sl->subselect = (yyvsp[(5) - (5)].node); sl->location = (yylsp[(5) - (5)]); /* 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 *) sl; r->colno = i; r->ncolumns = ncolumns; res_col->val = (Node *) r; i++; } (yyval.list) = (yyvsp[(2) - (5)].list); ;} break; case 1436: #line 9795 "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 1437: #line 9805 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 1438: #line 9806 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].target)); ;} break; case 1439: #line 9817 "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 1440: #line 9827 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1441: #line 9830 "gram.y" { (yyval.ival) = 0; ;} break; case 1442: #line 9831 "gram.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) | CURSOR_OPT_NO_SCROLL; ;} break; case 1443: #line 9832 "gram.y" { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_SCROLL; ;} break; case 1444: #line 9833 "gram.y" { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_BINARY; ;} break; case 1445: #line 9834 "gram.y" { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_INSENSITIVE; ;} break; case 1446: #line 9837 "gram.y" { (yyval.ival) = 0; ;} break; case 1447: #line 9838 "gram.y" { (yyval.ival) = CURSOR_OPT_HOLD; ;} break; case 1448: #line 9839 "gram.y" { (yyval.ival) = 0; ;} break; case 1451: #line 9892 "gram.y" { (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; case 1452: #line 9893 "gram.y" { (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; case 1453: #line 9908 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1454: #line 9910 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list), NIL, NULL, NULL, NULL, yyscanner); (yyval.node) = (yyvsp[(1) - (2)].node); ;} break; case 1455: #line 9917 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].list), list_nth((yyvsp[(4) - (4)].list), 0), list_nth((yyvsp[(4) - (4)].list), 1), NULL, yyscanner); (yyval.node) = (yyvsp[(1) - (4)].node); ;} break; case 1456: #line 9925 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(4) - (4)].list), list_nth((yyvsp[(3) - (4)].list), 0), list_nth((yyvsp[(3) - (4)].list), 1), NULL, yyscanner); (yyval.node) = (yyvsp[(1) - (4)].node); ;} break; case 1457: #line 9933 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(2) - (2)].node), NULL, NIL, NULL, NULL, (yyvsp[(1) - (2)].with), yyscanner); (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1458: #line 9941 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].list), NIL, NULL, NULL, (yyvsp[(1) - (3)].with), yyscanner); (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; case 1459: #line 9949 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(4) - (5)].list), list_nth((yyvsp[(5) - (5)].list), 0), list_nth((yyvsp[(5) - (5)].list), 1), (yyvsp[(1) - (5)].with), yyscanner); (yyval.node) = (yyvsp[(2) - (5)].node); ;} break; case 1460: #line 9957 "gram.y" { insertSelectOptions((SelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list), list_nth((yyvsp[(4) - (5)].list), 0), list_nth((yyvsp[(4) - (5)].list), 1), (yyvsp[(1) - (5)].with), yyscanner); (yyval.node) = (yyvsp[(2) - (5)].node); ;} break; case 1461: #line 9967 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1462: #line 9968 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1463: #line 9998 "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)].list); n->havingClause = (yyvsp[(8) - (9)].node); n->windowClause = (yyvsp[(9) - (9)].list); (yyval.node) = (Node *)n; ;} break; case 1464: #line 10012 "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)].list); n->havingClause = (yyvsp[(8) - (9)].node); n->windowClause = (yyvsp[(9) - (9)].list); (yyval.node) = (Node *)n; ;} break; case 1465: #line 10024 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1466: #line 10026 "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 1467: #line 10045 "gram.y" { (yyval.node) = makeSetOp(SETOP_UNION, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); ;} break; case 1468: #line 10049 "gram.y" { (yyval.node) = makeSetOp(SETOP_INTERSECT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); ;} break; case 1469: #line 10053 "gram.y" { (yyval.node) = makeSetOp(SETOP_EXCEPT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); ;} break; case 1470: #line 10070 "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 1471: #line 10077 "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 1472: #line 10084 "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 1473: #line 10093 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1474: #line 10094 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1475: #line 10098 "gram.y" { CommonTableExpr *n = makeNode(CommonTableExpr); n->ctename = (yyvsp[(1) - (6)].str); n->aliascolnames = (yyvsp[(2) - (6)].list); n->ctequery = (yyvsp[(5) - (6)].node); n->location = (yylsp[(1) - (6)]); (yyval.node) = (Node *) n; ;} break; case 1476: #line 10109 "gram.y" { (yyval.with) = (yyvsp[(1) - (1)].with); ;} break; case 1477: #line 10110 "gram.y" { (yyval.with) = NULL; ;} break; case 1478: #line 10115 "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 1479: #line 10126 "gram.y" { (yyval.into) = NULL; ;} break; case 1480: #line 10135 "gram.y" { (yyval.range) = (yyvsp[(3) - (3)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ;} break; case 1481: #line 10140 "gram.y" { (yyval.range) = (yyvsp[(3) - (3)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ;} break; case 1482: #line 10145 "gram.y" { (yyval.range) = (yyvsp[(4) - (4)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ;} break; case 1483: #line 10150 "gram.y" { (yyval.range) = (yyvsp[(4) - (4)].range); (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ;} break; case 1484: #line 10155 "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 1485: #line 10163 "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 1486: #line 10171 "gram.y" { (yyval.range) = (yyvsp[(3) - (3)].range); (yyval.range)->relpersistence = RELPERSISTENCE_UNLOGGED; ;} break; case 1487: #line 10176 "gram.y" { (yyval.range) = (yyvsp[(2) - (2)].range); (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; ;} break; case 1488: #line 10181 "gram.y" { (yyval.range) = (yyvsp[(1) - (1)].range); (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; ;} break; case 1489: #line 10187 "gram.y" {;} break; case 1490: #line 10188 "gram.y" {;} break; case 1491: #line 10192 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 1492: #line 10193 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 1493: #line 10194 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 1494: #line 10201 "gram.y" { (yyval.list) = list_make1(NIL); ;} break; case 1495: #line 10202 "gram.y" { (yyval.list) = (yyvsp[(4) - (5)].list); ;} break; case 1496: #line 10206 "gram.y" { (yyval.list) = NIL;;} break; case 1497: #line 10207 "gram.y" { (yyval.list) = NIL; ;} break; case 1498: #line 10211 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list);;} break; case 1499: #line 10212 "gram.y" { (yyval.list) = NIL; ;} break; case 1500: #line 10216 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); ;} break; case 1501: #line 10220 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].sortby)); ;} break; case 1502: #line 10221 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].sortby)); ;} break; case 1503: #line 10225 "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 1504: #line 10234 "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 1505: #line 10246 "gram.y" { (yyval.list) = list_make2((yyvsp[(2) - (2)].node), (yyvsp[(1) - (2)].node)); ;} break; case 1506: #line 10247 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); ;} break; case 1507: #line 10248 "gram.y" { (yyval.list) = list_make2(NULL, (yyvsp[(1) - (1)].node)); ;} break; case 1508: #line 10249 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (1)].node), NULL); ;} break; case 1509: #line 10253 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1510: #line 10254 "gram.y" { (yyval.list) = list_make2(NULL,NULL); ;} break; case 1511: #line 10259 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1512: #line 10261 "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 1513: #line 10271 "gram.y" { (yyval.node) = (yyvsp[(3) - (5)].node); ;} break; case 1514: #line 10276 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1515: #line 10279 "gram.y" { (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; case 1516: #line 10283 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1517: #line 10285 "gram.y" { /* LIMIT ALL is represented as a NULL constant */ (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); ;} break; case 1518: #line 10292 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1519: #line 10302 "gram.y" { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); ;} break; case 1520: #line 10303 "gram.y" { (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; case 1521: #line 10304 "gram.y" { (yyval.node) = makeIntConst(1, -1); ;} break; case 1522: #line 10312 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1523: #line 10316 "gram.y" { (yyval.ival) = 0; ;} break; case 1524: #line 10317 "gram.y" { (yyval.ival) = 0; ;} break; case 1525: #line 10320 "gram.y" { (yyval.ival) = 0; ;} break; case 1526: #line 10321 "gram.y" { (yyval.ival) = 0; ;} break; case 1527: #line 10346 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); ;} break; case 1528: #line 10347 "gram.y" { (yyval.list) = NIL; ;} break; case 1529: #line 10351 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1530: #line 10352 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].node)); ;} break; case 1531: #line 10356 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1532: #line 10357 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1533: #line 10358 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1534: #line 10359 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1535: #line 10360 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1536: #line 10365 "gram.y" { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[(1) - (2)])); ;} break; case 1537: #line 10378 "gram.y" { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 1538: #line 10385 "gram.y" { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 1539: #line 10392 "gram.y" { (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); ;} break; case 1540: #line 10398 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1541: #line 10399 "gram.y" { (yyval.node) = NULL; ;} break; case 1542: #line 10403 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1543: #line 10404 "gram.y" { (yyval.list) = NIL; ;} break; case 1544: #line 10408 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1545: #line 10409 "gram.y" { (yyval.list) = NIL; ;} break; case 1546: #line 10413 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1547: #line 10414 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 1548: #line 10419 "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 1549: #line 10429 "gram.y" { (yyval.ival) = LCS_FORUPDATE; ;} break; case 1550: #line 10430 "gram.y" { (yyval.ival) = LCS_FORNOKEYUPDATE; ;} break; case 1551: #line 10431 "gram.y" { (yyval.ival) = LCS_FORSHARE; ;} break; case 1552: #line 10432 "gram.y" { (yyval.ival) = LCS_FORKEYSHARE; ;} break; case 1553: #line 10436 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1554: #line 10437 "gram.y" { (yyval.list) = NIL; ;} break; case 1555: #line 10443 "gram.y" { SelectStmt *n = makeNode(SelectStmt); n->valuesLists = list_make1((yyvsp[(2) - (2)].list)); (yyval.node) = (Node *) n; ;} break; case 1556: #line 10449 "gram.y" { SelectStmt *n = (SelectStmt *) (yyvsp[(1) - (3)].node); n->valuesLists = lappend(n->valuesLists, (yyvsp[(3) - (3)].list)); (yyval.node) = (Node *) n; ;} break; case 1557: #line 10466 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1558: #line 10467 "gram.y" { (yyval.list) = NIL; ;} break; case 1559: #line 10471 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1560: #line 10472 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1561: #line 10479 "gram.y" { (yyvsp[(1) - (2)].range)->alias = (yyvsp[(2) - (2)].alias); (yyval.node) = (Node *) (yyvsp[(1) - (2)].range); ;} break; case 1562: #line 10484 "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 1563: #line 10492 "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 1564: #line 10499 "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 1565: #line 10507 "gram.y" { RangeSubselect *n = makeNode(RangeSubselect); n->lateral = false; n->subquery = (yyvsp[(1) - (2)].node); n->alias = (yyvsp[(2) - (2)].alias); /* * The SQL spec does not permit a subselect * () without an alias clause, * so we don't either. This avoids the problem * of needing to invent a unique refname for it. * That could be surmounted if there's sufficient * popular demand, but for now let's just implement * the spec and see if anyone complains. * However, it does seem like a good idea to emit * an error message that's better than "syntax error". */ if ((yyvsp[(2) - (2)].alias) == NULL) { if (IsA((yyvsp[(1) - (2)].node), SelectStmt) && ((SelectStmt *) (yyvsp[(1) - (2)].node))->valuesLists) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("VALUES in FROM must have an alias"), errhint("For example, FROM (VALUES ...) [AS] foo."), parser_errposition((yylsp[(1) - (2)])))); else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("subquery in FROM must have an alias"), errhint("For example, FROM (SELECT ...) [AS] foo."), parser_errposition((yylsp[(1) - (2)])))); } (yyval.node) = (Node *) n; ;} break; case 1566: #line 10542 "gram.y" { RangeSubselect *n = makeNode(RangeSubselect); n->lateral = true; n->subquery = (yyvsp[(2) - (3)].node); n->alias = (yyvsp[(3) - (3)].alias); /* same coment as above */ if ((yyvsp[(3) - (3)].alias) == NULL) { if (IsA((yyvsp[(2) - (3)].node), SelectStmt) && ((SelectStmt *) (yyvsp[(2) - (3)].node))->valuesLists) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("VALUES in FROM must have an alias"), errhint("For example, FROM (VALUES ...) [AS] foo."), parser_errposition((yylsp[(2) - (3)])))); else ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("subquery in FROM must have an alias"), errhint("For example, FROM (SELECT ...) [AS] foo."), parser_errposition((yylsp[(2) - (3)])))); } (yyval.node) = (Node *) n; ;} break; case 1567: #line 10567 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].jexpr); ;} break; case 1568: #line 10571 "gram.y" { (yyvsp[(2) - (4)].jexpr)->alias = (yyvsp[(4) - (4)].alias); (yyval.node) = (Node *) (yyvsp[(2) - (4)].jexpr); ;} break; case 1569: #line 10597 "gram.y" { (yyval.jexpr) = (yyvsp[(2) - (3)].jexpr); ;} break; case 1570: #line 10601 "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->quals = NULL; (yyval.jexpr) = n; ;} break; case 1571: #line 10613 "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)) n->usingClause = (List *) (yyvsp[(5) - (5)].node); /* USING clause */ else n->quals = (yyvsp[(5) - (5)].node); /* ON clause */ (yyval.jexpr) = n; ;} break; case 1572: #line 10626 "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)) n->usingClause = (List *) (yyvsp[(4) - (4)].node); /* USING clause */ else n->quals = (yyvsp[(4) - (4)].node); /* ON clause */ (yyval.jexpr) = n; ;} break; case 1573: #line 10640 "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->quals = NULL; /* fill later */ (yyval.jexpr) = n; ;} break; case 1574: #line 10651 "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->quals = NULL; /* fill later */ (yyval.jexpr) = n; ;} break; case 1575: #line 10666 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(2) - (5)].str); (yyval.alias)->colnames = (yyvsp[(4) - (5)].list); ;} break; case 1576: #line 10672 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(2) - (2)].str); ;} break; case 1577: #line 10677 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(1) - (4)].str); (yyval.alias)->colnames = (yyvsp[(3) - (4)].list); ;} break; case 1578: #line 10683 "gram.y" { (yyval.alias) = makeNode(Alias); (yyval.alias)->aliasname = (yyvsp[(1) - (1)].str); ;} break; case 1579: #line 10689 "gram.y" { (yyval.alias) = (yyvsp[(1) - (1)].alias); ;} break; case 1580: #line 10690 "gram.y" { (yyval.alias) = NULL; ;} break; case 1581: #line 10699 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (1)].alias), NIL); ;} break; case 1582: #line 10703 "gram.y" { (yyval.list) = list_make2(NULL, (yyvsp[(3) - (4)].list)); ;} break; case 1583: #line 10707 "gram.y" { Alias *a = makeNode(Alias); a->aliasname = (yyvsp[(2) - (5)].str); (yyval.list) = list_make2(a, (yyvsp[(4) - (5)].list)); ;} break; case 1584: #line 10713 "gram.y" { Alias *a = makeNode(Alias); a->aliasname = (yyvsp[(1) - (4)].str); (yyval.list) = list_make2(a, (yyvsp[(3) - (4)].list)); ;} break; case 1585: #line 10719 "gram.y" { (yyval.list) = list_make2(NULL, NIL); ;} break; case 1586: #line 10724 "gram.y" { (yyval.jtype) = JOIN_FULL; ;} break; case 1587: #line 10725 "gram.y" { (yyval.jtype) = JOIN_LEFT; ;} break; case 1588: #line 10726 "gram.y" { (yyval.jtype) = JOIN_RIGHT; ;} break; case 1589: #line 10727 "gram.y" { (yyval.jtype) = JOIN_INNER; ;} break; case 1590: #line 10731 "gram.y" { (yyval.node) = NULL; ;} break; case 1591: #line 10732 "gram.y" { (yyval.node) = NULL; ;} break; case 1592: #line 10744 "gram.y" { (yyval.node) = (Node *) (yyvsp[(3) - (4)].list); ;} break; case 1593: #line 10745 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1594: #line 10751 "gram.y" { /* default inheritance */ (yyval.range) = (yyvsp[(1) - (1)].range); (yyval.range)->inhOpt = INH_DEFAULT; (yyval.range)->alias = NULL; ;} break; case 1595: #line 10758 "gram.y" { /* inheritance query */ (yyval.range) = (yyvsp[(1) - (2)].range); (yyval.range)->inhOpt = INH_YES; (yyval.range)->alias = NULL; ;} break; case 1596: #line 10765 "gram.y" { /* no inheritance */ (yyval.range) = (yyvsp[(2) - (2)].range); (yyval.range)->inhOpt = INH_NO; (yyval.range)->alias = NULL; ;} break; case 1597: #line 10772 "gram.y" { /* no inheritance, SQL99-style syntax */ (yyval.range) = (yyvsp[(3) - (4)].range); (yyval.range)->inhOpt = INH_NO; (yyval.range)->alias = NULL; ;} break; case 1598: #line 10782 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;} break; case 1599: #line 10783 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;} break; case 1600: #line 10797 "gram.y" { (yyval.range) = (yyvsp[(1) - (1)].range); ;} break; case 1601: #line 10801 "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 1602: #line 10808 "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 1603: #line 10821 "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 1604: #line 10833 "gram.y" { (yyval.node) = (Node *) (yyvsp[(3) - (4)].node); ;} break; case 1605: #line 10834 "gram.y" { (yyval.node) = NULL; ;} break; case 1606: #line 10850 "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 1607: #line 10860 "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 1608: #line 10872 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list)); ;} break; case 1609: #line 10876 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} break; case 1610: #line 10877 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} break; case 1611: #line 10880 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 1612: #line 10881 "gram.y" { (yyval.list) = NIL; ;} break; case 1613: #line 10884 "gram.y" { (yyval.boolean) = true; ;} break; case 1614: #line 10885 "gram.y" { (yyval.boolean) = false; ;} break; case 1615: #line 10890 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1616: #line 10891 "gram.y" { (yyval.node) = NULL; ;} break; case 1617: #line 10896 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1618: #line 10898 "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 1619: #line 10905 "gram.y" { (yyval.node) = NULL; ;} break; case 1620: #line 10910 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1621: #line 10911 "gram.y" { (yyval.list) = NIL; ;} break; case 1622: #line 10916 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1623: #line 10920 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1624: #line 10926 "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 1625: #line 10956 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (2)].typnam); (yyval.typnam)->arrayBounds = (yyvsp[(2) - (2)].list); ;} break; case 1626: #line 10961 "gram.y" { (yyval.typnam) = (yyvsp[(2) - (3)].typnam); (yyval.typnam)->arrayBounds = (yyvsp[(3) - (3)].list); (yyval.typnam)->setof = TRUE; ;} break; case 1627: #line 10968 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (5)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(4) - (5)].ival))); ;} break; case 1628: #line 10973 "gram.y" { (yyval.typnam) = (yyvsp[(2) - (6)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(5) - (6)].ival))); (yyval.typnam)->setof = TRUE; ;} break; case 1629: #line 10979 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (2)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); ;} break; case 1630: #line 10984 "gram.y" { (yyval.typnam) = (yyvsp[(2) - (3)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); (yyval.typnam)->setof = TRUE; ;} break; case 1631: #line 10993 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeInteger(-1)); ;} break; case 1632: #line 10995 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (4)].list), makeInteger((yyvsp[(3) - (4)].ival))); ;} break; case 1633: #line 10997 "gram.y" { (yyval.list) = NIL; ;} break; case 1634: #line 11001 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1635: #line 11002 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1636: #line 11003 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1637: #line 11004 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1638: #line 11005 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1639: #line 11007 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (2)].typnam); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); ;} break; case 1640: #line 11012 "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 1641: #line 11031 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1642: #line 11032 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1643: #line 11033 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1644: #line 11034 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1645: #line 11046 "gram.y" { (yyval.typnam) = makeTypeName((yyvsp[(1) - (2)].str)); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1646: #line 11052 "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 1647: #line 11059 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 1648: #line 11060 "gram.y" { (yyval.list) = NIL; ;} break; case 1649: #line 11067 "gram.y" { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1650: #line 11072 "gram.y" { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1651: #line 11077 "gram.y" { (yyval.typnam) = SystemTypeName("int2"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1652: #line 11082 "gram.y" { (yyval.typnam) = SystemTypeName("int8"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1653: #line 11087 "gram.y" { (yyval.typnam) = SystemTypeName("float4"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1654: #line 11092 "gram.y" { (yyval.typnam) = (yyvsp[(2) - (2)].typnam); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1655: #line 11097 "gram.y" { (yyval.typnam) = SystemTypeName("float8"); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1656: #line 11102 "gram.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1657: #line 11108 "gram.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1658: #line 11114 "gram.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1659: #line 11120 "gram.y" { (yyval.typnam) = SystemTypeName("bool"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1660: #line 11127 "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 1661: #line 11148 "gram.y" { (yyval.typnam) = SystemTypeName("float8"); ;} break; case 1662: #line 11158 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1663: #line 11162 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1664: #line 11170 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1665: #line 11174 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); (yyval.typnam)->typmods = NIL; ;} break; case 1666: #line 11182 "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 1667: #line 11194 "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 1668: #line 11215 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1669: #line 11219 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1670: #line 11225 "gram.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; case 1671: #line 11229 "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 1672: #line 11242 "gram.y" { if (((yyvsp[(5) - (5)].str) != NULL) && (strcmp((yyvsp[(5) - (5)].str), "sql_text") != 0)) (yyvsp[(1) - (5)].str) = psprintf("%s_%s", (yyvsp[(1) - (5)].str), (yyvsp[(5) - (5)].str)); (yyval.typnam) = SystemTypeName((yyvsp[(1) - (5)].str)); (yyval.typnam)->typmods = list_make1((yyvsp[(3) - (5)].node)); (yyval.typnam)->location = (yylsp[(1) - (5)]); ;} break; case 1673: #line 11253 "gram.y" { if (((yyvsp[(2) - (2)].str) != NULL) && (strcmp((yyvsp[(2) - (2)].str), "sql_text") != 0)) (yyvsp[(1) - (2)].str) = psprintf("%s_%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)); (yyval.typnam) = SystemTypeName((yyvsp[(1) - (2)].str)); /* char defaults to char(1), varchar to no limit */ if (strcmp((yyvsp[(1) - (2)].str), "bpchar") == 0) (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1674: #line 11268 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} break; case 1675: #line 11270 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} break; case 1676: #line 11272 "gram.y" { (yyval.str) = "varchar"; ;} break; case 1677: #line 11274 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;} break; case 1678: #line 11276 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;} break; case 1679: #line 11278 "gram.y" { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} break; case 1680: #line 11282 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 1681: #line 11283 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 1682: #line 11287 "gram.y" { (yyval.str) = (yyvsp[(3) - (3)].str); ;} break; case 1683: #line 11288 "gram.y" { (yyval.str) = NULL; ;} break; case 1684: #line 11296 "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 1685: #line 11305 "gram.y" { if ((yyvsp[(2) - (2)].boolean)) (yyval.typnam) = SystemTypeName("timestamptz"); else (yyval.typnam) = SystemTypeName("timestamp"); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1686: #line 11313 "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 1687: #line 11322 "gram.y" { if ((yyvsp[(2) - (2)].boolean)) (yyval.typnam) = SystemTypeName("timetz"); else (yyval.typnam) = SystemTypeName("time"); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; case 1688: #line 11333 "gram.y" { (yyval.typnam) = SystemTypeName("interval"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; case 1689: #line 11340 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 1690: #line 11341 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 1691: #line 11342 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 1692: #line 11347 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[(1) - (1)]))); ;} break; case 1693: #line 11349 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[(1) - (1)]))); ;} break; case 1694: #line 11351 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[(1) - (1)]))); ;} break; case 1695: #line 11353 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[(1) - (1)]))); ;} break; case 1696: #line 11355 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[(1) - (1)]))); ;} break; case 1697: #line 11357 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1698: #line 11359 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) | INTERVAL_MASK(MONTH), (yylsp[(1) - (3)]))); ;} break; case 1699: #line 11364 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR), (yylsp[(1) - (3)]))); ;} break; case 1700: #line 11369 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)]))); ;} break; case 1701: #line 11375 "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 1702: #line 11383 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)]))); ;} break; case 1703: #line 11388 "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 1704: #line 11395 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])); ;} break; case 1705: #line 11401 "gram.y" { (yyval.list) = NIL; ;} break; case 1706: #line 11406 "gram.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (1)]))); ;} break; case 1707: #line 11410 "gram.y" { (yyval.list) = list_make2(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (4)])), makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); ;} break; case 1708: #line 11445 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1709: #line 11447 "gram.y" { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); ;} break; case 1710: #line 11449 "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 1711: #line 11457 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("timezone"), list_make2((yyvsp[(5) - (5)].node), (yyvsp[(1) - (5)].node)), (yylsp[(2) - (5)])); ;} break; case 1712: #line 11472 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1713: #line 11474 "gram.y" { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1714: #line 11476 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1715: #line 11478 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1716: #line 11480 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1717: #line 11482 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1718: #line 11484 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1719: #line 11486 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1720: #line 11488 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1721: #line 11490 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1722: #line 11492 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1723: #line 11494 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1724: #line 11496 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1725: #line 11498 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1726: #line 11501 "gram.y" { (yyval.node) = makeInterval_or_AExprOp((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1727: #line 11505 "gram.y" { (yyval.node) = makeInterval_or_AExprOp((yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;} break; case 1728: #line 11508 "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 1729: #line 11510 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1730: #line 11512 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;} break; case 1731: #line 11515 "gram.y" { (yyval.node) = makeAndExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1732: #line 11517 "gram.y" { (yyval.node) = makeOrExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1733: #line 11519 "gram.y" { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1734: #line 11521 "gram.y" { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1735: #line 11524 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1736: #line 11529 "gram.y" { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)), (yylsp[(2) - (5)])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~", (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)])); ;} break; case 1737: #line 11537 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); ;} break; case 1738: #line 11542 "gram.y" { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), (yylsp[(2) - (6)])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~", (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)])); ;} break; case 1739: #line 11550 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1740: #line 11555 "gram.y" { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)), (yylsp[(2) - (5)])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*", (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)])); ;} break; case 1741: #line 11563 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); ;} break; case 1742: #line 11568 "gram.y" { FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), (yylsp[(2) - (6)])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*", (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)])); ;} break; case 1743: #line 11577 "gram.y" { FuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), list_make2((yyvsp[(4) - (4)].node), makeNullAConst(-1)), (yylsp[(2) - (4)])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~", (yyvsp[(1) - (4)].node), (Node *) n, (yylsp[(2) - (4)])); ;} break; case 1744: #line 11585 "gram.y" { FuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), (yylsp[(2) - (6)])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~", (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)])); ;} break; case 1745: #line 11593 "gram.y" { FuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), list_make2((yyvsp[(5) - (5)].node), makeNullAConst(-1)), (yylsp[(2) - (5)])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~", (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)])); ;} break; case 1746: #line 11601 "gram.y" { FuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)), (yylsp[(2) - (7)])); (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~", (yyvsp[(1) - (7)].node), (Node *) n, (yylsp[(2) - (7)])); ;} break; case 1747: #line 11619 "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 1748: #line 11627 "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 1749: #line 11635 "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 1750: #line 11643 "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 1751: #line 11651 "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)), (yylsp[(2) - (3)])); ;} break; case 1752: #line 11667 "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 1753: #line 11675 "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 1754: #line 11683 "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 1755: #line 11691 "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 1756: #line 11699 "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 1757: #line 11707 "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 1758: #line 11715 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); ;} break; case 1759: #line 11719 "gram.y" { (yyval.node) = makeNotExpr((Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])), (yylsp[(2) - (6)])); ;} break; case 1760: #line 11725 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (Node *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)])); ;} break; case 1761: #line 11729 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (Node *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)])); ;} break; case 1762: #line 11733 "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 1763: #line 11741 "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 1764: #line 11749 "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 1765: #line 11757 "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 1766: #line 11765 "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 1767: #line 11785 "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 1768: #line 11807 "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 1769: #line 11818 "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 1770: #line 11825 "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) - (2)])))); ;} break; case 1771: #line 11841 "gram.y" { (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[(1) - (3)].node)), (yylsp[(2) - (3)])); ;} break; case 1772: #line 11846 "gram.y" { (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[(1) - (4)].node)), (yylsp[(2) - (4)])), (yylsp[(2) - (4)])); ;} break; case 1773: #line 11863 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1774: #line 11865 "gram.y" { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); ;} break; case 1775: #line 11867 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1776: #line 11869 "gram.y" { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1777: #line 11871 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1778: #line 11873 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1779: #line 11875 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1780: #line 11877 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1781: #line 11879 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1782: #line 11881 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1783: #line 11883 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1784: #line 11885 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1785: #line 11887 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1786: #line 11889 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1787: #line 11891 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1788: #line 11893 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1789: #line 11895 "gram.y" { (yyval.node) = makeInterval_or_AExprOp((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; case 1790: #line 11899 "gram.y" { (yyval.node) = makeInterval_or_AExprOp((yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;} break; case 1791: #line 11901 "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 1792: #line 11903 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 1793: #line 11905 "gram.y" { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;} break; case 1794: #line 11907 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); ;} break; case 1795: #line 11911 "gram.y" { (yyval.node) = makeNotExpr((Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])), (yylsp[(2) - (6)])); ;} break; case 1796: #line 11917 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (Node *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)])); ;} break; case 1797: #line 11921 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (Node *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)])); ;} break; case 1798: #line 11925 "gram.y" { (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[(1) - (3)].node)), (yylsp[(2) - (3)])); ;} break; case 1799: #line 11930 "gram.y" { (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL, list_make1((yyvsp[(1) - (4)].node)), (yylsp[(2) - (4)])), (yylsp[(2) - (4)])); ;} break; case 1800: #line 11945 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1801: #line 11946 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1802: #line 11948 "gram.y" { if ((yyvsp[(2) - (2)].list)) { A_Indirection *n = makeNode(A_Indirection); n->arg = makeParamRef(0, (yylsp[(1) - (2)])); n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); (yyval.node) = (Node *) n; } else (yyval.node) = makeParamRef(0, (yylsp[(1) - (2)])); ;} break; case 1803: #line 11960 "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 1804: #line 11975 "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 if (operator_precedence_warning) { /* * If precedence warnings are enabled, insert * AEXPR_PAREN nodes wrapping all explicitly * parenthesized subexpressions; this prevents bogus * warnings from being issued when the ordering has * been forced by parentheses. * * In principle we should not be relying on a GUC to * decide whether to insert AEXPR_PAREN nodes. * However, since they have no effect except to * suppress warnings, it's probably safe enough; and * we'd just as soon not waste cycles on dummy parse * nodes if we don't have to. */ (yyval.node) = (Node *) makeA_Expr(AEXPR_PAREN, NIL, (yyvsp[(2) - (4)].node), NULL, (yylsp[(1) - (4)])); } else (yyval.node) = (yyvsp[(2) - (4)].node); ;} break; case 1805: #line 12005 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1806: #line 12007 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1807: #line 12009 "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 1808: #line 12020 "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 1809: #line 12044 "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 1810: #line 12055 "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 1811: #line 12066 "gram.y" { A_ArrayExpr *n = (A_ArrayExpr *) (yyvsp[(2) - (2)].node); Assert(IsA(n, A_ArrayExpr)); /* point outermost A_ArrayExpr to the ARRAY keyword */ n->location = (yylsp[(1) - (2)]); (yyval.node) = (Node *)n; ;} break; case 1812: #line 12074 "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 1813: #line 12084 "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 1814: #line 12094 "gram.y" { GroupingFunc *g = makeNode(GroupingFunc); g->args = (yyvsp[(3) - (4)].list); g->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *)g; ;} break; case 1815: #line 12103 "gram.y" { (yyval.node) = (Node *) makeFuncCall((yyvsp[(1) - (3)].list), NIL, (yylsp[(1) - (3)])); ;} break; case 1816: #line 12107 "gram.y" { FuncCall *n = makeFuncCall((yyvsp[(1) - (5)].list), (yyvsp[(3) - (5)].list), (yylsp[(1) - (5)])); n->agg_order = (yyvsp[(4) - (5)].list); (yyval.node) = (Node *)n; ;} break; case 1817: #line 12113 "gram.y" { FuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), list_make1((yyvsp[(4) - (6)].node)), (yylsp[(1) - (6)])); n->func_variadic = TRUE; n->agg_order = (yyvsp[(5) - (6)].list); (yyval.node) = (Node *)n; ;} break; case 1818: #line 12120 "gram.y" { FuncCall *n = makeFuncCall((yyvsp[(1) - (8)].list), lappend((yyvsp[(3) - (8)].list), (yyvsp[(6) - (8)].node)), (yylsp[(1) - (8)])); n->func_variadic = TRUE; n->agg_order = (yyvsp[(7) - (8)].list); (yyval.node) = (Node *)n; ;} break; case 1819: #line 12127 "gram.y" { FuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), (yyvsp[(4) - (6)].list), (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 1820: #line 12137 "gram.y" { FuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), (yyvsp[(4) - (6)].list), (yylsp[(1) - (6)])); n->agg_order = (yyvsp[(5) - (6)].list); n->agg_distinct = TRUE; (yyval.node) = (Node *)n; ;} break; case 1821: #line 12144 "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, (yylsp[(1) - (4)])); n->agg_star = TRUE; (yyval.node) = (Node *)n; ;} break; case 1822: #line 12172 "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 1823: #line 12207 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1824: #line 12217 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1825: #line 12218 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1826: #line 12226 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("pg_collation_for"), list_make1((yyvsp[(4) - (5)].node)), (yylsp[(1) - (5)])); ;} break; case 1827: #line 12232 "gram.y" { /* * Translate as "'now'::text::date". * * We cannot use "'now'::date" because coerce_type() will * immediately reduce that to a constant representing * today's date. We need to delay the conversion until * runtime, else the wrong things will happen when * CURRENT_DATE is used in a column default value or rule. * * This could be simplified if we had a way to generate * an expression tree representing runtime application * of type-input conversion functions. (As of PG 7.3 * that is actually possible, but not clear that we want * to rely on it.) * * The token location is attached to the run-time * typecast, not to the Const, for the convenience of * pg_stat_statements (which doesn't want these constructs * to appear to be replaceable constants). */ Node *n; n = makeStringConstCast("now", -1, SystemTypeName("text")); (yyval.node) = makeTypeCast(n, SystemTypeName("date"), (yylsp[(1) - (1)])); ;} break; case 1828: #line 12258 "gram.y" { /* * Translate as "'now'::text::timetz". * See comments for CURRENT_DATE. */ Node *n; n = makeStringConstCast("now", -1, SystemTypeName("text")); (yyval.node) = makeTypeCast(n, SystemTypeName("timetz"), (yylsp[(1) - (1)])); ;} break; case 1829: #line 12268 "gram.y" { /* * Translate as "'now'::text::timetz(n)". * See comments for CURRENT_DATE. */ Node *n; TypeName *d; n = makeStringConstCast("now", -1, SystemTypeName("text")); d = SystemTypeName("timetz"); d->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); (yyval.node) = makeTypeCast(n, d, (yylsp[(1) - (4)])); ;} break; case 1830: #line 12281 "gram.y" { /* * Translate as "now()", since we have a function that * does exactly what is needed. */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("now"), NIL, (yylsp[(1) - (1)])); ;} break; case 1831: #line 12289 "gram.y" { /* * Translate as "'now'::text::timestamptz(n)". * See comments for CURRENT_DATE. */ Node *n; TypeName *d; n = makeStringConstCast("now", -1, SystemTypeName("text")); d = SystemTypeName("timestamptz"); d->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); (yyval.node) = makeTypeCast(n, d, (yylsp[(1) - (4)])); ;} break; case 1832: #line 12302 "gram.y" { /* * Translate as "'now'::text::time". * See comments for CURRENT_DATE. */ Node *n; n = makeStringConstCast("now", -1, SystemTypeName("text")); (yyval.node) = makeTypeCast((Node *)n, SystemTypeName("time"), (yylsp[(1) - (1)])); ;} break; case 1833: #line 12312 "gram.y" { /* * Translate as "'now'::text::time(n)". * See comments for CURRENT_DATE. */ Node *n; TypeName *d; n = makeStringConstCast("now", -1, SystemTypeName("text")); d = SystemTypeName("time"); d->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); (yyval.node) = makeTypeCast((Node *)n, d, (yylsp[(1) - (4)])); ;} break; case 1834: #line 12325 "gram.y" { /* * Translate as "'now'::text::timestamp". * See comments for CURRENT_DATE. */ Node *n; n = makeStringConstCast("now", -1, SystemTypeName("text")); (yyval.node) = makeTypeCast(n, SystemTypeName("timestamp"), (yylsp[(1) - (1)])); ;} break; case 1835: #line 12335 "gram.y" { /* * Translate as "'now'::text::timestamp(n)". * See comments for CURRENT_DATE. */ Node *n; TypeName *d; n = makeStringConstCast("now", -1, SystemTypeName("text")); d = SystemTypeName("timestamp"); d->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); (yyval.node) = makeTypeCast(n, d, (yylsp[(1) - (4)])); ;} break; case 1836: #line 12348 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("current_user"), NIL, (yylsp[(1) - (1)])); ;} break; case 1837: #line 12352 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("current_user"), NIL, (yylsp[(1) - (1)])); ;} break; case 1838: #line 12356 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("session_user"), NIL, (yylsp[(1) - (1)])); ;} break; case 1839: #line 12360 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("current_user"), NIL, (yylsp[(1) - (1)])); ;} break; case 1840: #line 12364 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("current_database"), NIL, (yylsp[(1) - (1)])); ;} break; case 1841: #line 12368 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("current_schema"), NIL, (yylsp[(1) - (1)])); ;} break; case 1842: #line 12372 "gram.y" { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), (yylsp[(1) - (6)])); ;} break; case 1843: #line 12374 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("date_part"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 1844: #line 12378 "gram.y" { /* overlay(A PLACING B FROM C FOR D) is converted to * overlay(A, B, C, D) * overlay(A PLACING B FROM C) is converted to * overlay(A, B, C) */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlay"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 1845: #line 12387 "gram.y" { /* position(A in B) is converted to position(B, A) */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("position"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 1846: #line 12392 "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), (yylsp[(1) - (4)])); ;} break; case 1847: #line 12399 "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(((Value *)llast((yyvsp[(5) - (6)].typnam)->names))->val.str), list_make1((yyvsp[(3) - (6)].node)), (yylsp[(1) - (6)])); ;} break; case 1848: #line 12414 "gram.y" { /* various trim expressions are defined in SQL * - thomas 1997-07-19 */ (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); ;} break; case 1849: #line 12421 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("ltrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); ;} break; case 1850: #line 12425 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("rtrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); ;} break; case 1851: #line 12429 "gram.y" { (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 1852: #line 12433 "gram.y" { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NULLIF, "=", (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(1) - (6)])); ;} break; case 1853: #line 12437 "gram.y" { CoalesceExpr *c = makeNode(CoalesceExpr); c->args = (yyvsp[(3) - (4)].list); c->location = (yylsp[(1) - (4)]); (yyval.node) = (Node *)c; ;} break; case 1854: #line 12444 "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 1855: #line 12452 "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 1856: #line 12460 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLCONCAT, NULL, NIL, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 1857: #line 12464 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (5)].str), NIL, NIL, (yylsp[(1) - (5)])); ;} break; case 1858: #line 12468 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (7)].str), (yyvsp[(6) - (7)].list), NIL, (yylsp[(1) - (7)])); ;} break; case 1859: #line 12472 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (7)].str), NIL, (yyvsp[(6) - (7)].list), (yylsp[(1) - (7)])); ;} break; case 1860: #line 12476 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (9)].str), (yyvsp[(6) - (9)].list), (yyvsp[(8) - (9)].list), (yylsp[(1) - (9)])); ;} break; case 1861: #line 12480 "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)), (yylsp[(1) - (5)])); ;} break; case 1862: #line 12486 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLFOREST, NULL, (yyvsp[(3) - (4)].list), NIL, (yylsp[(1) - (4)])); ;} break; case 1863: #line 12490 "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 1864: #line 12499 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[(4) - (5)].str), NULL, NIL, (yylsp[(1) - (5)])); ;} break; case 1865: #line 12503 "gram.y" { (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[(4) - (7)].str), NULL, list_make1((yyvsp[(6) - (7)].node)), (yylsp[(1) - (7)])); ;} break; case 1866: #line 12507 "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 1867: #line 12512 "gram.y" { XmlSerialize *n = makeNode(XmlSerialize); n->xmloption = (yyvsp[(3) - (7)].ival); n->expr = (yyvsp[(4) - (7)].node); n->typeName = (yyvsp[(6) - (7)].typnam); n->location = (yylsp[(1) - (7)]); (yyval.node) = (Node *)n; ;} break; case 1868: #line 12526 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1869: #line 12528 "gram.y" { (yyval.node) = makeNullAConst(-1); ;} break; case 1870: #line 12532 "gram.y" { (yyval.node) = makeIntConst(XML_STANDALONE_YES, -1); ;} break; case 1871: #line 12534 "gram.y" { (yyval.node) = makeIntConst(XML_STANDALONE_NO, -1); ;} break; case 1872: #line 12536 "gram.y" { (yyval.node) = makeIntConst(XML_STANDALONE_NO_VALUE, -1); ;} break; case 1873: #line 12538 "gram.y" { (yyval.node) = makeIntConst(XML_STANDALONE_OMITTED, -1); ;} break; case 1874: #line 12541 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 1875: #line 12544 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 1876: #line 12545 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} break; case 1877: #line 12549 "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 1878: #line 12557 "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 1879: #line 12566 "gram.y" { (yyval.ival) = XMLOPTION_DOCUMENT; ;} break; case 1880: #line 12567 "gram.y" { (yyval.ival) = XMLOPTION_CONTENT; ;} break; case 1881: #line 12570 "gram.y" { (yyval.boolean) = TRUE; ;} break; case 1882: #line 12571 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 1883: #line 12572 "gram.y" { (yyval.boolean) = FALSE; ;} break; case 1884: #line 12578 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1885: #line 12582 "gram.y" { (yyval.node) = (yyvsp[(2) - (4)].node); ;} break; case 1886: #line 12586 "gram.y" { (yyval.node) = (yyvsp[(4) - (4)].node); ;} break; case 1887: #line 12590 "gram.y" { (yyval.node) = (yyvsp[(4) - (6)].node); ;} break; case 1888: #line 12600 "gram.y" { (yyval.list) = (yyvsp[(4) - (5)].list); ;} break; case 1889: #line 12601 "gram.y" { (yyval.list) = NIL; ;} break; case 1890: #line 12605 "gram.y" { (yyval.node) = (yyvsp[(4) - (5)].node); ;} break; case 1891: #line 12606 "gram.y" { (yyval.node) = NULL; ;} break; case 1892: #line 12614 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1893: #line 12615 "gram.y" { (yyval.list) = NIL; ;} break; case 1894: #line 12619 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].windef)); ;} break; case 1895: #line 12621 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].windef)); ;} break; case 1896: #line 12626 "gram.y" { WindowDef *n = (yyvsp[(3) - (3)].windef); n->name = (yyvsp[(1) - (3)].str); (yyval.windef) = n; ;} break; case 1897: #line 12634 "gram.y" { (yyval.windef) = (yyvsp[(2) - (2)].windef); ;} break; case 1898: #line 12636 "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 1899: #line 12649 "gram.y" { (yyval.windef) = NULL; ;} break; case 1900: #line 12654 "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 1901: #line 12679 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1902: #line 12680 "gram.y" { (yyval.str) = NULL; ;} break; case 1903: #line 12683 "gram.y" { (yyval.list) = (yyvsp[(3) - (3)].list); ;} break; case 1904: #line 12684 "gram.y" { (yyval.list) = NIL; ;} break; case 1905: #line 12696 "gram.y" { WindowDef *n = (yyvsp[(2) - (2)].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE; if (n->frameOptions & (FRAMEOPTION_START_VALUE_PRECEDING | FRAMEOPTION_END_VALUE_PRECEDING)) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("RANGE PRECEDING is only supported with UNBOUNDED"), parser_errposition((yylsp[(1) - (2)])))); if (n->frameOptions & (FRAMEOPTION_START_VALUE_FOLLOWING | FRAMEOPTION_END_VALUE_FOLLOWING)) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("RANGE FOLLOWING is only supported with UNBOUNDED"), parser_errposition((yylsp[(1) - (2)])))); (yyval.windef) = n; ;} break; case 1906: #line 12714 "gram.y" { WindowDef *n = (yyvsp[(2) - (2)].windef); n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS; (yyval.windef) = n; ;} break; case 1907: #line 12720 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_DEFAULTS; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; ;} break; case 1908: #line 12730 "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_VALUE_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 1909: #line 12747 "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_VALUE_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_VALUE_FOLLOWING) && (frameOptions & (FRAMEOPTION_END_VALUE_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 1910: #line 12792 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; ;} break; case 1911: #line 12800 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; ;} break; case 1912: #line 12808 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_CURRENT_ROW; n->startOffset = NULL; n->endOffset = NULL; (yyval.windef) = n; ;} break; case 1913: #line 12816 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_VALUE_PRECEDING; n->startOffset = (yyvsp[(1) - (2)].node); n->endOffset = NULL; (yyval.windef) = n; ;} break; case 1914: #line 12824 "gram.y" { WindowDef *n = makeNode(WindowDef); n->frameOptions = FRAMEOPTION_START_VALUE_FOLLOWING; n->startOffset = (yyvsp[(1) - (2)].node); n->endOffset = NULL; (yyval.windef) = n; ;} break; case 1915: #line 12844 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 1916: #line 12845 "gram.y" { (yyval.list) = NIL; ;} break; case 1917: #line 12846 "gram.y" { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;} break; case 1918: #line 12849 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 1919: #line 12850 "gram.y" { (yyval.list) = NIL; ;} break; case 1920: #line 12853 "gram.y" { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;} break; case 1921: #line 12856 "gram.y" { (yyval.ival) = ANY_SUBLINK; ;} break; case 1922: #line 12857 "gram.y" { (yyval.ival) = ANY_SUBLINK; ;} break; case 1923: #line 12858 "gram.y" { (yyval.ival) = ALL_SUBLINK; ;} break; case 1924: #line 12861 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1925: #line 12862 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1926: #line 12865 "gram.y" { (yyval.str) = "+"; ;} break; case 1927: #line 12866 "gram.y" { (yyval.str) = "-"; ;} break; case 1928: #line 12867 "gram.y" { (yyval.str) = "*"; ;} break; case 1929: #line 12868 "gram.y" { (yyval.str) = "/"; ;} break; case 1930: #line 12869 "gram.y" { (yyval.str) = "%"; ;} break; case 1931: #line 12870 "gram.y" { (yyval.str) = "^"; ;} break; case 1932: #line 12871 "gram.y" { (yyval.str) = "<"; ;} break; case 1933: #line 12872 "gram.y" { (yyval.str) = ">"; ;} break; case 1934: #line 12873 "gram.y" { (yyval.str) = "="; ;} break; case 1935: #line 12874 "gram.y" { (yyval.str) = "<="; ;} break; case 1936: #line 12875 "gram.y" { (yyval.str) = ">="; ;} break; case 1937: #line 12876 "gram.y" { (yyval.str) = "<>"; ;} break; case 1938: #line 12877 "gram.y" { (yyval.str) = "?"; ;} break; case 1939: #line 12881 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 1940: #line 12883 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 1941: #line 12888 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 1942: #line 12890 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 1943: #line 12895 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 1944: #line 12897 "gram.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; case 1945: #line 12899 "gram.y" { (yyval.list) = list_make1(makeString("~~")); ;} break; case 1946: #line 12901 "gram.y" { (yyval.list) = list_make1(makeString("!~~")); ;} break; case 1947: #line 12903 "gram.y" { (yyval.list) = list_make1(makeString("~~*")); ;} break; case 1948: #line 12905 "gram.y" { (yyval.list) = list_make1(makeString("!~~*")); ;} break; case 1949: #line 12917 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1950: #line 12921 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1951: #line 12928 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1952: #line 12932 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1953: #line 12938 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1954: #line 12942 "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 1955: #line 12951 "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 1956: #line 12961 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;} break; case 1957: #line 12962 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;} break; case 1958: #line 12966 "gram.y" { (yyval.node) = makeAArrayExpr((yyvsp[(2) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 1959: #line 12970 "gram.y" { (yyval.node) = makeAArrayExpr((yyvsp[(2) - (3)].list), (yylsp[(1) - (3)])); ;} break; case 1960: #line 12974 "gram.y" { (yyval.node) = makeAArrayExpr(NIL, (yylsp[(1) - (2)])); ;} break; case 1961: #line 12979 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1962: #line 12980 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 1963: #line 12986 "gram.y" { (yyval.list) = list_make2(makeStringConst((yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node)); ;} break; case 1964: #line 12990 "gram.y" { (yyval.list) = list_make2(makeParamRef(0, (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node)); ;} break; case 1965: #line 12993 "gram.y" { (yyval.list) = NIL; ;} break; case 1966: #line 13000 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1967: #line 13001 "gram.y" { (yyval.str) = "year"; ;} break; case 1968: #line 13002 "gram.y" { (yyval.str) = "month"; ;} break; case 1969: #line 13003 "gram.y" { (yyval.str) = "day"; ;} break; case 1970: #line 13004 "gram.y" { (yyval.str) = "hour"; ;} break; case 1971: #line 13005 "gram.y" { (yyval.str) = "minute"; ;} break; case 1972: #line 13006 "gram.y" { (yyval.str) = "second"; ;} break; case 1973: #line 13007 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 1974: #line 13018 "gram.y" { (yyval.list) = list_make4((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node)); ;} break; case 1975: #line 13022 "gram.y" { (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); ;} break; case 1976: #line 13029 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1977: #line 13035 "gram.y" { (yyval.list) = list_make2((yyvsp[(3) - (3)].node), (yyvsp[(1) - (3)].node)); ;} break; case 1978: #line 13036 "gram.y" { (yyval.list) = NIL; ;} break; case 1979: #line 13053 "gram.y" { (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); ;} break; case 1980: #line 13057 "gram.y" { /* not legal per SQL99, but might as well allow it */ (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyvsp[(2) - (3)].node)); ;} break; case 1981: #line 13062 "gram.y" { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); ;} break; case 1982: #line 13066 "gram.y" { /* * 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) - (2)].node), makeIntConst(1, -1), makeTypeCast((yyvsp[(2) - (2)].node), SystemTypeName("int4"), -1)); ;} break; case 1983: #line 13081 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1984: #line 13085 "gram.y" { (yyval.list) = NIL; ;} break; case 1985: #line 13089 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1986: #line 13092 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1987: #line 13095 "gram.y" { (yyval.list) = lappend((yyvsp[(3) - (3)].list), (yyvsp[(1) - (3)].node)); ;} break; case 1988: #line 13096 "gram.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 1989: #line 13097 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 1990: #line 13101 "gram.y" { SubLink *n = makeNode(SubLink); n->subselect = (yyvsp[(1) - (1)].node); /* other fields will be filled later */ (yyval.node) = (Node *)n; ;} break; case 1991: #line 13107 "gram.y" { (yyval.node) = (Node *)(yyvsp[(2) - (3)].list); ;} break; case 1992: #line 13118 "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 1993: #line 13131 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 1994: #line 13132 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 1995: #line 13137 "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 1996: #line 13147 "gram.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 1997: #line 13148 "gram.y" { (yyval.node) = NULL; ;} break; case 1998: #line 13151 "gram.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 1999: #line 13152 "gram.y" { (yyval.node) = NULL; ;} break; case 2000: #line 13156 "gram.y" { (yyval.node) = makeColumnRef((yyvsp[(1) - (1)].str), NIL, (yylsp[(1) - (1)]), yyscanner); ;} break; case 2001: #line 13160 "gram.y" { (yyval.node) = makeColumnRef((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner); ;} break; case 2002: #line 13167 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(2) - (2)].str)); ;} break; case 2003: #line 13171 "gram.y" { (yyval.node) = (Node *) makeNode(A_Star); ;} break; case 2004: #line 13175 "gram.y" { A_Indices *ai = makeNode(A_Indices); ai->lidx = NULL; ai->uidx = (yyvsp[(2) - (3)].node); (yyval.node) = (Node *) ai; ;} break; case 2005: #line 13182 "gram.y" { A_Indices *ai = makeNode(A_Indices); ai->lidx = (yyvsp[(2) - (5)].node); ai->uidx = (yyvsp[(4) - (5)].node); (yyval.node) = (Node *) ai; ;} break; case 2006: #line 13191 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2007: #line 13192 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 2008: #line 13196 "gram.y" { (yyval.list) = NIL; ;} break; case 2009: #line 13197 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; case 2012: #line 13212 "gram.y" { (yyval.node) = (Node *) (yyvsp[(1) - (1)].node); ;} break; case 2013: #line 13214 "gram.y" { SetToDefault *n = makeNode(SetToDefault); n->location = (yylsp[(1) - (1)]); (yyval.node) = (Node *) n; ;} break; case 2014: #line 13222 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2015: #line 13223 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 2016: #line 13231 "gram.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; case 2017: #line 13241 "gram.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 2018: #line 13242 "gram.y" { (yyval.list) = NIL; ;} break; case 2019: #line 13246 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; case 2020: #line 13247 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} break; case 2021: #line 13251 "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 2022: #line 13267 "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 2023: #line 13275 "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 2024: #line 13283 "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 2025: #line 13304 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;} break; case 2026: #line 13305 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;} break; case 2027: #line 13317 "gram.y" { (yyval.range) = makeRangeVar(NULL, (yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 2028: #line 13321 "gram.y" { check_qualified_name((yyvsp[(2) - (2)].list), yyscanner); (yyval.range) = makeRangeVar(NULL, NULL, (yylsp[(1) - (2)])); switch (list_length((yyvsp[(2) - (2)].list))) { case 1: (yyval.range)->catalogname = NULL; (yyval.range)->schemaname = (yyvsp[(1) - (2)].str); (yyval.range)->relname = strVal(linitial((yyvsp[(2) - (2)].list))); break; case 2: (yyval.range)->catalogname = (yyvsp[(1) - (2)].str); (yyval.range)->schemaname = strVal(linitial((yyvsp[(2) - (2)].list))); (yyval.range)->relname = strVal(lsecond((yyvsp[(2) - (2)].list))); break; default: ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("improper qualified name (too many dotted names): %s", NameListToString(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)))), parser_errposition((yylsp[(1) - (2)])))); break; } ;} break; case 2029: #line 13348 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 2030: #line 13350 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; case 2031: #line 13354 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2032: #line 13357 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2033: #line 13360 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2034: #line 13362 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2035: #line 13364 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2036: #line 13366 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2037: #line 13377 "gram.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; case 2038: #line 13379 "gram.y" { (yyval.list) = check_func_name(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)), yyscanner); ;} break; case 2039: #line 13390 "gram.y" { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); ;} break; case 2040: #line 13394 "gram.y" { (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 2041: #line 13398 "gram.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 2042: #line 13402 "gram.y" { (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 2043: #line 13406 "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 2044: #line 13415 "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 2045: #line 13422 "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 2046: #line 13454 "gram.y" { (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam)); ;} break; case 2047: #line 13458 "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 2048: #line 13464 "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 2049: #line 13472 "gram.y" { TypeName *t = (yyvsp[(1) - (6)].typnam); if ((yyvsp[(6) - (6)].list) != NIL) { t->typmods = lappend((yyvsp[(6) - (6)].list), makeParamRef(0, (yylsp[(3) - (6)]))); } else t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeParamRef(0, (yylsp[(3) - (6)]))); (yyval.node) = makeParamRefCast(0, (yylsp[(5) - (6)]), t); ;} break; case 2050: #line 13484 "gram.y" { (yyval.node) = makeBoolAConst(TRUE, (yylsp[(1) - (1)])); ;} break; case 2051: #line 13488 "gram.y" { (yyval.node) = makeBoolAConst(FALSE, (yylsp[(1) - (1)])); ;} break; case 2052: #line 13492 "gram.y" { (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); ;} break; case 2053: #line 13497 "gram.y" { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} break; case 2054: #line 13498 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2055: #line 13500 "gram.y" { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} break; case 2056: #line 13501 "gram.y" { (yyval.ival) = + (yyvsp[(2) - (2)].ival); ;} break; case 2057: #line 13502 "gram.y" { (yyval.ival) = - (yyvsp[(2) - (2)].ival); ;} break; case 2058: #line 13507 "gram.y" { RoleSpec *spc = (RoleSpec *) (yyvsp[(1) - (1)].node); 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)])))); 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)])))); 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 2059: #line 13537 "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 = (RoleSpec *) makeRoleSpec(ROLESPEC_CSTRING, (yylsp[(1) - (1)])); n->rolename = pstrdup((yyvsp[(1) - (1)].str)); } (yyval.node) = (Node *) n; ;} break; case 2060: #line 13564 "gram.y" { (yyval.node) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[(1) - (1)])); ;} break; case 2061: #line 13568 "gram.y" { (yyval.node) = makeRoleSpec(ROLESPEC_SESSION_USER, (yylsp[(1) - (1)])); ;} break; case 2062: #line 13574 "gram.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 2063: #line 13576 "gram.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 2064: #line 13582 "gram.y" { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); ;} break; case 2065: #line 13583 "gram.y" { (yyval.node) = makeParamRef( 0, (yylsp[(1) - (1)])); ;} break; case 2066: #line 13586 "gram.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 2067: #line 13587 "gram.y" { (yyval.node) = makeParamRef( 0, (yylsp[(1) - (1)])); ;} break; case 2068: #line 13590 "gram.y" { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} break; case 2069: #line 13591 "gram.y" { (yyval.node) = makeParamRef( 0, (yylsp[(1) - (1)])); ;} break; case 2070: #line 13594 "gram.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; case 2071: #line 13595 "gram.y" { (yyval.node) = makeParamRef( 0, (yylsp[(1) - (1)])); ;} break; case 2072: #line 13611 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2073: #line 13612 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2074: #line 13613 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2075: #line 13618 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2076: #line 13619 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2077: #line 13620 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2078: #line 13625 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2079: #line 13626 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2080: #line 13627 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2081: #line 13628 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2082: #line 13634 "gram.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 2083: #line 13635 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2084: #line 13636 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2085: #line 13637 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; case 2086: #line 13638 "gram.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; /* Line 1267 of yacc.c. */ #line 40777 "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 14111 "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 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(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.type = T_String; n->val.val.str = 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.type = T_Integer; n->val.val.ival = val; n->location = location; return (Node *)n; } static Node * makeFloatConst(char *str, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_Float; n->val.val.str = str; n->location = location; return (Node *)n; } static Node * makeBitStringConst(char *str, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_BitString; n->val.val.str = str; n->location = location; return (Node *)n; } static Node * makeNullAConst(int location) { A_Const *n = makeNode(A_Const); n->val.type = T_Null; n->location = location; return (Node *)n; } static Node * makeAConst(Value *v, int location) { Node *n; switch (v->type) { case T_Float: n = makeFloatConst(v->val.str, location); break; case T_Integer: n = makeIntConst(v->val.ival, location); break; case T_String: default: n = makeStringConst(v->val.str, location); break; } return n; } /* makeBoolAConst() * Create an A_Const string node and put it inside a boolean cast. */ static Node * makeBoolAConst(bool state, int location) { A_Const *n = makeNode(A_Const); n->val.type = T_String; n->val.val.str = (state ? "t" : "f"); n->location = location; return makeTypeCast((Node *)n, SystemTypeName("bool"), -1); } /* 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); } /* * Makes INTERVAL-like nodes for "INTERVAL ? typemod", otherwise treat as A_EXPR */ static Node * makeInterval_or_AExprOp(Node *lexpr, Node *rexpr, int location) { if (lexpr && IsA(lexpr, ColumnRef)) { ColumnRef *c = (ColumnRef *) lexpr; if (strcmp(strVal(linitial(c->fields)), "interval") == 0 ) { TypeName *t = SystemTypeName("interval"); t->location = c->location; /* Its too difficult to tell the parser to give us the right typemod, * just use a dummy one if present */ if (rexpr) t->typmods = list_make1(makeIntConst(0, -1)); return makeParamRefCast(0, location, t); } } return (Node *) makeA_Expr(AEXPR_OP, list_make1(makeString("?")), lexpr, rexpr, location); } /* makeRoleSpec * Create a RoleSpec with the given type */ static Node * makeRoleSpec(RoleSpecType type, int location) { RoleSpec *spec = makeNode(RoleSpec); spec->roletype = type; spec->location = location; return (Node *) 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(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); int 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 = list_length(directargs); return list_make2(list_concat(directargs, orderedargs), makeInteger(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, Node *limitOffset, Node *limitCount, 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 (limitOffset) { if (stmt->limitOffset) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple OFFSET clauses not allowed"), parser_errposition(exprLocation(limitOffset)))); stmt->limitOffset = limitOffset; } if (limitCount) { if (stmt->limitCount) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple LIMIT clauses not allowed"), parser_errposition(exprLocation(limitCount)))); stmt->limitCount = limitCount; } 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 (con->val.type == T_Integer) { con->val.val.ival = -con->val.val.ival; return n; } if (con->val.type == T_Float) { doNegateFloat(&con->val); return n; } } return (Node *) makeSimpleA_Expr(AEXPR_OP, "-", NULL, n, location); } static void doNegateFloat(Value *v) { char *oldval = v->val.str; Assert(IsA(v, Float)); if (*oldval == '+') oldval++; if (*oldval == '-') v->val.str = oldval+1; /* just strip the '-' */ else v->val.str = 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 * 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_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 = (TypeName *) 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; } /* Separate Constraint nodes from COLLATE clauses in a ColQualList */ static void SplitColQualList(List *qualList, List **constraintList, CollateClause **collClause, core_yyscan_t yyscanner) { ListCell *cell; ListCell *prev; ListCell *next; *collClause = NULL; prev = NULL; for (cell = list_head(qualList); cell; cell = next) { Node *n = (Node *) lfirst(cell); next = lnext(cell); if (IsA(n, Constraint)) { /* keep it in list */ prev = cell; 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 = list_delete_cell(qualList, cell, prev); } *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))); } } /*---------- * 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->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 */ } /* * Must undefine this stuff before including scan.c, since it has different * definitions for these macros. */ #undef yyerror #undef yylval #undef yylloc #include "scan.c"