#ifndef lint
static char Ft_mathyysccsid[] = "@(#)yaccpar	1.9 (Berkeley) 02/21/93";
#endif
#define YYBYACC 1
#define YYMAJOR 1
#define YYMINOR 9
#define Ft_mathyyclearin (Ft_mathyychar=(-1))
#define Ft_mathyyerrok (Ft_mathyyerrflag=0)
#define YYRECOVERING (Ft_mathyyerrflag!=0)
#define YYPREFIX "Ft_mathyy"
#line 2 "parse.y"
#include "symbol.h"
#include "code.h"
#define code(c1)	Ft_code(c1)
#define code2(c1, c2) code(c1); code(c2)
#define code3(c1, c2, c3) code(c1); code(c2); code(c3)

#undef DEBUG

#ifdef DEBUG
#include <stdio.h>
#define PNUM(a)    fprintf(stderr, "Parse: at address %d\n", a);
#define ARGNO(a)   fprintf(stderr, "Parse: argument no %d\n", a);
#define CODE(a)    fprintf(stderr, "Parse: %s\n", a)
#define CODE2(a, b)    CODE(a); CODE(b);
#define CODE3(a, b, c) CODE(a); CODE(b); CODE(c)
#else
#define PNUM(a)
#define ARGNO(a)
#define CODE(a)
#define CODE2(a, b)
#define CODE3(a, b, c)
#endif
int Ft_mathyyerror(char *);
int Ft_mathyylex(void);
extern int Ft_autosymremove(int);
extern int Ft_more_input(int, char *);
extern int Ft_Inbrace;
extern int Ft_Indef;
extern int Ft_Inproto;
extern int Ft_Inauto;
static char *interprompt = 0;
#line 34 "parse.y"
typedef union {
    Symbol *sym;
    Inst *inst;
    int narg;
    double val;
} YYSTYPE;
#line 51 "y.tab.c"
#define VAR 257
#define BLTINVAR 258
#define CONST 259
#define BLTINCONST 260
#define STRVAR 261
#define BLTINSTRVAR 262
#define STRCONST 263
#define BLTINSTRCONST 264
#define STRING 265
#define UNDEFVEC 266
#define UNDEFVAR 267
#define UNDEFSTRVAR 268
#define VEC 269
#define AUTOVEC 270
#define PARAM 271
#define PRINT 272
#define WHILE 273
#define IF 274
#define ELSE 275
#define CONTINUE 276
#define BREAK 277
#define FOR 278
#define RETURN 279
#define FUNC 280
#define PROC 281
#define FUNCSYM 282
#define PROCSYM 283
#define EFUNCSYM 284
#define EPROCSYM 285
#define AUTO 286
#define ARG 287
#define AUTOSTRVAR 288
#define BLTIN0 289
#define BLTIN1 290
#define BLTIN2 291
#define STRBLTIN2 292
#define BLTIN1VEC 293
#define BLTIN0STR 294
#define BLTIN1STR 295
#define BLTIN2STR 296
#define VARARG 297
#define STRVARARG 298
#define VECARG 299
#define PARARG 300
#define NUMBER 301
#define DIVASS 302
#define MULASS 303
#define ADDASS 304
#define SUBASS 305
#define OR 306
#define AND 307
#define GT 308
#define GE 309
#define LT 310
#define LE 311
#define EQ 312
#define NE 313
#define UNARYMINUS 314
#define NOT 315
#define INCR 316
#define DECR 317
#define YYERRCODE 256
short Ft_mathyylhs[] = {                                        -1,
    0,    0,    0,    0,    0,    1,    1,   11,   11,   11,
   11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
   11,   11,   11,   11,   11,   11,   11,   15,   15,   18,
   18,   18,   18,   18,   18,   18,   18,   18,   18,   19,
   19,   19,   19,   19,   19,   19,   19,   19,   19,   39,
   39,   34,   34,   41,   17,   16,    8,    8,    8,    8,
    8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
    8,    8,   46,    8,   43,   43,   30,   47,   45,   45,
   45,   37,   37,   37,   37,   37,   48,   35,   36,   49,
   36,   36,   36,   36,   50,   36,   36,   36,   20,   13,
   12,   12,   12,   12,   12,   12,   12,   12,   14,    7,
    6,    6,    6,    6,    6,    6,    6,    6,   21,   22,
   44,   25,   23,   24,    2,    2,    5,    5,    5,   29,
   29,   27,   27,   31,   28,   28,   32,    9,    9,    9,
    9,    9,    9,    9,    9,    3,    3,    3,    3,    3,
    3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    3,    3,    3,    3,    3,    3,    3,   26,   26,    4,
    4,    4,    4,    4,    4,    4,    4,    4,    4,   51,
   53,   54,   40,   55,   56,   57,   40,   33,   33,   33,
   52,   52,   52,   52,   52,   52,   52,   52,   52,   38,
   38,   38,   38,   38,   38,   38,   38,   38,   42,   42,
   42,   42,   10,   10,   10,   10,
};
short Ft_mathyylen[] = {                                         2,
    0,    2,    3,    3,    3,    2,    3,    3,    3,    3,
    3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    3,    3,    3,    3,    3,    3,    3,    3,    3,    4,
    4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
    4,    4,    4,    4,    4,    4,    4,    4,    4,    2,
    2,    2,    2,    3,    0,    0,    1,    1,    1,    1,
    1,    2,    1,    4,    1,    1,    5,    5,    5,    6,
   10,    7,    0,    5,    0,    1,    1,    1,    0,    2,
    2,    0,    1,    2,    2,    2,    0,    3,    1,    0,
    4,    1,    1,    3,    0,    6,    3,    3,    3,    2,
    1,    1,    1,    1,    3,    3,    3,    3,    3,    2,
    1,    1,    1,    1,    3,    3,    3,    3,    1,    1,
    1,    1,    0,    0,    1,    1,    1,    1,    1,    1,
    1,    1,    1,    1,    1,    1,    1,    2,    2,    2,
    2,    2,    2,    2,    2,    1,    1,    1,    1,    5,
    5,    3,    4,    4,    6,    6,    1,    1,    3,    3,
    3,    3,    3,    3,    3,    2,    3,    3,    3,    3,
    3,    3,    3,    3,    3,    3,    2,    1,    1,    1,
    1,    1,    1,    6,    4,    3,    3,    3,    3,    0,
    0,    0,    9,    0,    0,    0,    9,    1,    1,    1,
    0,    1,    1,    1,    1,    3,    3,    3,    3,    0,
    1,    1,    1,    1,    3,    3,    3,    3,    1,    1,
    3,    3,    1,    1,    3,    3,
};
short Ft_mathyydefred[] = {                                      1,
    0,    0,    0,    0,    2,    0,    0,    0,    5,  198,
  199,  200,  190,  194,    4,    0,    0,  149,    0,  183,
  180,    0,    0,    0,  119,  120,   65,   66,  122,    0,
  123,  123,  123,  123,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,  146,    0,    0,    0,
    0,    0,   77,    0,    0,    0,    0,    6,  125,  126,
    0,   59,   60,    0,    0,    0,    0,  127,    0,    0,
    0,    0,    3,    0,    0,    7,    0,    0,    0,    0,
    0,  139,  141,    0,   55,   55,   55,   55,   55,    0,
   52,   56,   56,   56,   56,   56,   53,    0,    0,    0,
    0,  131,  130,  178,    0,    0,  179,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,  143,  145,    0,   55,
   55,   55,   55,   55,   50,   56,   56,   56,   56,   56,
   51,    0,    0,  138,  142,  140,  144,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   87,   83,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,  191,  195,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,  152,    0,    0,    0,  134,    0,  186,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,  159,  189,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   76,  123,  123,    0,    0,    0,
    0,    0,    0,  101,    0,  102,  103,  104,    0,    0,
    0,    0,    0,    0,  188,  187,    0,   85,   84,   86,
   79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,   54,    0,    0,    0,    0,    0,    0,    0,   64,
    0,  136,  133,    0,    0,  213,  212,    0,  135,  211,
    0,    0,    0,    0,  154,    0,    0,  153,  185,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   99,    0,    0,    0,    0,    0,    0,    0,  113,  114,
    0,    0,   92,   93,    0,    0,  202,  205,  203,  204,
    0,    0,  151,    0,   68,  150,   67,    0,    0,    0,
   69,    0,  105,  106,  107,  108,  109,  110,    0,  123,
   90,    0,   80,   78,    0,   74,  192,    0,  196,  217,
  216,    0,  215,  155,  156,  184,    0,    0,  117,  118,
    0,    0,    0,    0,   98,   97,    0,  206,  209,  207,
  208,    0,  121,    0,   72,    0,   95,  193,  197,  123,
    0,    0,    0,   71,
};
short Ft_mathyydgoto[] = {                                       1,
    6,  102,  103,  104,   57,  347,  348,   58,   59,  106,
   60,  265,  168,  272,  107,  202,  196,   62,   63,  165,
   64,   65,    7,  371,   66,   67,  316,  317,   68,   69,
  319,  320,   13,   70,  174,  355,  175,  321,   71,    8,
   91,   72,  256,  414,  356,  281,  386,  277,  403,  421,
   74,  361,  294,  407,   75,  295,  412,
};
short Ft_mathyysindex[] = {                                      0,
   21,   16, -235, -235,    0,   13, 3416,   25,    0,    0,
    0,    0,    0,    0,    0, 3416,  -37,    0,  -57,    0,
    0,   46,  370, 4281,    0,    0,    0,    0,    0,    5,
    0,    0,    0,    0,   10,   11,   38,   49,   85,  116,
  143,  150,  123,  -25,  449,  496,    0, 4281, 4281, -205,
 -196, 4281,    0,    0,    0,    0,   -3,    0,    0,    0,
    0,    0,    0,  158,  158,  159,  -38,    0, -240,   77,
  269,   30,    0,  167,  175,    0, 4281, 4281, 4281, 4281,
 4281,    0,    0,   78,    0,    0,    0,    0,    0, 4281,
    0,    0,    0,    0,    0,    0,    0,  -18,  -18,  -18,
  -18,    0,    0,    0,   -3,   72,    0,  -38, 4281,  189,
  190,  209,  217,   24, 4281, 4281,   78, -115,  204,   78,
   78, 4281, 4281, 4281, 4281, 4281,    0,    0,   78,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  170,  170,    0,    0,    0,    0, 1160,   19, 4281,
 4281, 4281, 4281, 4281, 4281, 4281, 4281, 4281, 4281, 4281,
 4281, 4281, 4281, 4281,  261,  261,  461,  213,   78,   78,
   78,   78,    0,    0,    4, 4281, 4281, 4281, 4281, 4281,
 4281, 4281, 4281, 4281, 4281, 4281,    0,    0,   -3,   -3,
   -3,   -3,   -3,   78,   91, 4281, 4281, 4281, 4281, 4281,
 1181, 4281, 4281, 4281, 4281, 4281, 4281, 1218, 2473, 2473,
 2473, 2473,    0, 1574, 1595,   65,    0,  235,    0,   76,
  238,   -3,   -3,   -3,   -3,   -3,   91, 4281, 4281, 4281,
 4281, 4281, 4281, 4281, 4281, 4281, 4281,    0,    0, 2046,
  351,  169,  169,  169,  169,  169,  169,   34,   34,  170,
  170,  170,  170, 1632,    0,    0,    0,  336,  -57,   46,
  374,  -25,  449,    0,  256,    0,    0,    0,   77,  269,
 4281, 8729,   91,   91,    0,    0,   29,    0,    0,    0,
    0,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,
   -3,    0,    0, -136, -136,   79,   -3,   -3,   -3,   -3,
   -3,    0,   -3,   -3,   -3,   -3,   -3,   -3,  -38,    0,
  -57,    0,    0,  -18,  -18,    0,    0,    0,    0,    0,
   36,   52,   53,   58,    0, 4281,   78,    0,    0,   78,
   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,
    0,  253,  253,  461, 1988,   -3,   59,  261,    0,    0,
  -38,  273,    0,    0,  296,   33,    0,    0,    0,    0,
  138,  164,    0, 2473,    0,    0,    0, 2009,   88,  114,
    0,  261,    0,    0,    0,    0,    0,    0, 8729,    0,
    0,   92,    0,    0,  253,    0,    0,  -56,    0,    0,
    0,    0,    0,    0,    0,    0,   42,   -3,    0,    0,
  -38,  253, 4281,  281,    0,    0, 3416,    0,    0,    0,
    0, 3416,    0,  261,    0,   -3,    0,    0,    0,    0,
 4281,  253,   -3,    0,
};
short Ft_mathyyrindex[] = {                                      0,
10489,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,10205,    0,  191,    0,
    0,   12,    0,    0,    0,    0,    0,    0,    0, 9546,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,10310,  252,  377,    0,    0,    0,    0,    0,
    0,    0,    0, 2681, 2328, 3942,    0,    0,    0,    0,
 4344,    0,    0,    0,    0,    0,    0,    0, 9725,  319,
  611, 8850,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,  672,    0,  733,
    0,    0,    0,    0, 8911, 8972,    0, 9033,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0, 1025, 1086,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,10584,10584,    0,    0,    0,    0,
    0,    0,    0,    0, 3016,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0, 4405, 4466,
 4675, 4736, 4797,    0, 1853,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,  214,  214,
  214,  214,    0,    0,    0,    0,    0,    0,    0,    0,
    0, 4862, 5132, 5193, 5254, 5319, 1914,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0, 4003,
 3881, 3081, 3142, 3203, 3481, 3542, 3603, 2742, 2803, 1147,
 1439, 1500, 1561,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,  254,    0,    0,    0,    0,    0,
    0,    0, 1975, 2267,    0,    0,    0,    0,    0,    0,
    0, 5589, 5650, 5711, 5776, 6046, 6107, 6168, 6233, 6503,
 6564, 2389, 4066,  215,  215,    0, 6438, 6625, 6834, 6895,
 6956,    0, 7017, 7226, 7287, 7348, 7409, 9242, 9303,    0,
  -26,    0,    0,  746,  229,    0,    0,  767,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 7618, 7679, 7740, 7801, 8010, 8071, 8132, 8193, 8402, 8463,
    0, 9839, 9839,    0,    0,  247,    0,10584,    0,    0,
  294, 8524,    0,    0, 9364,10489,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,10384,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,10018,    0,    0,    0,    0,    0,
    0,  804,    0,    0,    0,    0, 9912,  311,    0,    0,
  313, 9839,    0, 8585,    0,    0,    0,    0,    0,    0,
    0,    0,    0,10584,    0, 9425,    0,    0,    0,    0,
    0, 9839, 9634,    0,
};
short Ft_mathyygindex[] = {                                      0,
   -9,   -4,   -6,   -5,  -11,    0,    0,   -8,    0,    0,
 -147,    0,    0,    0,   -7,  726,  607, -142, -140,  279,
    0,    0,  220, -327,    0,    6,    1,    3, -124,    0,
  240,   20,  349, -135,  194,    0,    0,  205, -134,    0,
  -17,    0, -145,    0,    0,    0,    0,    0,    0,    0,
    0,   75,    0,    0,    0,    0,    0,
};
#define YYTABLESIZE 10901
short Ft_mathyytable[] = {                                      61,
   55,   56,   54,   84,  171,   97,  172,   76,   61,   55,
   56,   54,  105,  278,  132,  372,  181,  132,  181,  264,
  257,   10,   15,   77,  267,    9,  268,  135,  141,  108,
    5,  269,  270,  162,   73,  129,  142,  143,  160,  158,
  148,  159,  383,  161,  109,  173,   11,   12,  128,  114,
  115,  144,  128,  128,  128,  128,  128,  149,  128,  239,
  146,  171,  279,  172,  213,  189,  190,  191,  192,  193,
  162,   16,   90,  186,  415,  160,  363,  116,  201,  364,
  161,   97,  135,  141,  318,  318,  318,  318,  117,  195,
  163,  145,  365,  366,  424,  364,  364,  208,  367,  378,
  147,  364,  379,  214,  215,  128,   85,  171,  327,  172,
  222,  223,  224,  225,  226,  207,  329,  194,  171,  239,
  172,  171,  216,  172,  118,  220,  221,  163,  395,  349,
  171,  350,  172,  171,  227,  172,   90,  176,  240,  241,
  242,  243,  244,  245,  246,  247,  248,  249,  250,  251,
  252,  253,  254,  217,  396,  119,  171,  384,  172,  266,
  357,  358,  359,  360,  282,  283,  284,  285,  286,  287,
  288,  289,  290,  291,  273,  274,  275,  276,  387,  292,
  293,  388,  120,  122,  297,  298,  299,  300,  301,  121,
  303,  304,  305,  306,  307,  308,  373,  164,  167,  296,
  181,  375,  380,  376,  389,  162,  187,  388,  269,  270,
  160,  158,  309,  159,  188,  161,  331,  332,  333,  334,
  335,  336,  337,  338,  339,  340,  397,  181,  209,  210,
  181,  181,  181,  181,  181,  181,  399,  181,  400,  392,
  408,  409,  410,  411,  219,  135,  342,  343,  211,  181,
  110,  111,  112,  113,  210,  201,  212,  210,  201,  345,
  346,  182,  163,  163,   78,   79,   80,   81,  420,  137,
  255,  271,  137,  169,  170,  328,    2,  351,   82,   83,
  171,  330,  172,  181,  181,  181,  181,  111,  182,  173,
  111,  182,  182,  182,  182,  182,  182,   97,  182,  344,
    3,    4,  150,  151,  152,  153,  154,  155,  156,  157,
  182,   16,  100,  181,  368,  181,  413,  128,  128,  128,
  128,  128,  128,  128,  128,  352,  353,  354,  157,  181,
  169,  170,  369,  381,  112,  370,  374,  112,   19,  382,
   20,  417,   21,  166,  182,  182,  385,   86,   87,   88,
   89,  115,   14,  116,  115,  157,  116,  218,  157,  157,
  157,  157,  157,  157,  390,  157,  391,  398,  280,  362,
  402,   40,   41,   42,  182,   44,  182,  157,  177,  178,
  179,  180,    0,  393,  401,    0,    0,  162,  404,  405,
  406,  416,  160,  158,    0,  159,   77,  161,  418,   61,
   55,   56,   54,  419,   61,   55,   56,   54,    0,  423,
  422,  157,  157,  129,  322,  323,  324,  129,  129,  129,
  129,  129,    0,  129,  123,  124,  125,  126,    0,    0,
   92,    0,    0,    0,  122,    0,    0,    0,  127,  128,
    0,  157,    0,  157,  163,    0,    0,  181,    0,  181,
    0,  181,    0,  181,    0,  181,    0,    0,    0,  181,
   90,  181,  181,  181,  181,  181,  181,  181,  181,  181,
  129,    0,  181,  181,  181,  181,  181,    0,    0,  181,
  181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
  181,  181,    0,    0,    0,    0,  181,  181,  181,  181,
  181,  181,  181,  181,    0,  181,  181,  181,  182,  130,
  182,    0,  182,    0,  182,    0,  182,    0,    0,    0,
  182,    0,  182,  182,  182,  182,  182,  182,  182,  182,
  182,    0,    0,  182,  182,  182,  182,  182,    0,   90,
  182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
  182,  182,  182,    0,    0,    0,  136,  182,  182,  182,
  182,  182,  182,  182,  182,    0,  182,  182,  182,    0,
  182,  183,  184,  185,    0,  157,    0,  157,    0,  157,
    0,  157,    0,  157,    0,    0,   90,  157,    0,  157,
  157,  157,  157,  157,  157,  157,  157,  157,    0,    0,
  157,  157,  157,  157,  157,    0,    0,  157,  157,  157,
  157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
  158,    0,    0,    0,  157,  157,  157,  157,  157,  157,
  157,  157,    0,  157,  157,  157,    0,   78,   79,   80,
   81,    0,    0,    0,    0,    0,    0,  158,    0,    0,
  158,  158,  158,  158,  158,  158,    0,  158,  152,  153,
  154,  155,  156,  157,    0,    0,    0,    0,    0,  158,
    0,   93,   94,   95,   96,  123,  124,  125,  126,    0,
    0,  128,  129,  129,  129,  129,  129,  129,  129,  129,
    0,    0,  197,  198,  199,  200,    0,    0,    0,    0,
    0,    0,    0,  158,  158,    0,    0,    0,  128,    0,
    0,  128,  128,  128,  128,  128,  128,  258,  128,    0,
    0,  259,    0,    0,    0,    0,    0,    0,    0,  260,
  128,   23,    0,  158,    0,  158,  228,  229,  230,  231,
  232,    0,  129,    0,    0,    0,    0,    0,    0,    0,
  131,  132,  133,  134,    0,    0,    0,  261,  262,  263,
   46,    0,    0,    0,  128,  128,    0,    0,    0,  129,
    0,    0,  129,  129,  129,  129,  129,  129,    0,  129,
    0,    0,  128,    0,    0,    0,  134,  128,  128,  134,
  128,  129,  128,    0,  128,    0,  128,  137,  138,  139,
  140,    0,    0,  127,    0,    0,    0,  214,  127,  127,
  214,  127,    0,  127,    0,    0,    0,    0,  203,  204,
  205,  206,    0,    0,    0,  129,  129,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,  128,
  127,    0,    0,    0,  218,  127,  127,  218,  127,    0,
  127,    0,    0,    0,    0,  129,    0,  129,    0,    0,
  127,  233,  234,  235,  236,  237,    0,  158,    0,  158,
    0,  158,    0,  158,    0,  158,    0,    0,    0,  158,
    0,  158,  158,  158,  158,  158,  158,  158,  158,  158,
    0,    0,  158,  158,  158,  158,  158,  127,    0,  158,
  158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
  158,  158,    0,    0,    0,    0,  158,  158,  158,  158,
  158,  158,  158,  158,    0,  158,  158,  158,  128,    0,
  128,    0,  128,    0,  128,    0,  128,    0,    0,    0,
  128,    0,  128,  128,  128,  128,  128,  128,  128,  128,
  128,    0,    0,  128,  128,  128,  128,  128,    0,    0,
  128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
  128,  128,  128,    0,    0,    0,    0,  128,  128,  128,
  128,  128,  128,  128,  128,    0,  128,  128,  128,  129,
    0,  129,    0,  129,    0,  129,    0,  129,    0,    0,
    0,  129,    0,  129,  129,  129,  129,  129,  129,  129,
  129,  129,    0,    0,  129,  129,  129,  129,  129,    0,
    0,  129,  129,  129,  129,  129,  129,  129,  129,  129,
  129,  129,  129,  129,  166,    0,    0,    0,  129,  129,
  129,  129,  129,  129,  129,  129,    0,  129,  129,  129,
    0,  128,  128,  128,  128,  128,  128,  128,  128,    0,
    0,  166,    0,    0,  166,  166,  166,  166,  166,  166,
    0,  166,  127,  127,  127,  127,  127,  127,  127,  127,
    0,    0,    0,  166,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,  177,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,  127,
  127,  127,  127,  127,  127,  127,  127,  166,    0,    0,
    0,    0,  177,    0,    0,  177,  177,  177,  177,  177,
  177,    0,  177,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,  177,    0,    0,  166,    0,  166,
    0,    0,    0,    0,    0,    0,  164,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,  177,    0,
    0,    0,    0,  164,    0,    0,  164,  164,  164,  164,
  164,  164,    0,  164,    0,    0,  162,    0,    0,    0,
  238,  160,  158,    0,  159,  164,  161,    0,  177,    0,
  177,    0,    0,    0,    0,    0,    0,  162,    0,    0,
    0,    0,  160,  158,    0,  159,    0,  161,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,  164,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,  163,  162,    0,    0,    0,  310,  160,
  158,    0,  159,    0,  161,    0,    0,    0,    0,  164,
    0,  164,    0,  302,  163,    0,    0,    0,    0,    0,
    0,  166,    0,  166,    0,  166,    0,  166,    0,  166,
    0,    0,    0,  166,    0,  166,  166,  166,  166,  166,
  166,  166,  166,  166,    0,    0,  166,  166,  166,  166,
  166,  163,    0,  166,  166,  166,  166,  166,  166,  166,
  166,  166,  166,  166,  166,  166,    0,    0,    0,    0,
  166,  166,  166,  166,  166,  166,  166,  166,    0,  166,
  166,  166,  177,    0,  177,    0,  177,    0,  177,    0,
  177,    0,    0,    0,  177,    0,  177,  177,  177,  177,
  177,  177,  177,  177,  177,    0,    0,  177,  177,  177,
  177,  177,    0,    0,  177,  177,  177,  177,  177,  177,
  177,  177,  177,  177,  177,  177,  177,    0,    0,    0,
    0,  177,  177,  177,  177,  177,  177,  177,  177,    0,
  177,  177,  177,  164,    0,  164,    0,  164,    0,  164,
    0,  164,    0,    0,    0,  164,    0,  164,  164,  164,
  164,  164,  164,  164,  164,  164,    0,    0,  164,  164,
  164,  164,  164,    0,    0,  164,  164,  164,  164,  164,
  164,  164,  164,  164,  164,  164,  164,  164,  162,    0,
    0,    0,  164,  164,  164,  164,  164,  164,  164,  164,
    0,  164,  164,  164,    0,  150,  151,  152,  153,  154,
  155,  156,  157,    0,    0,  162,    0,    0,  162,  162,
  162,  162,  162,  162,    0,  162,  150,  151,  152,  153,
  154,  155,  156,  157,    0,    0,    0,  162,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,  163,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,  150,  151,  152,  153,  154,  155,  156,
  157,  162,    0,    0,    0,    0,  163,    0,    0,  163,
  163,  163,  163,  163,  163,    0,  163,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,  163,    0,
    0,  162,    0,  162,    0,    0,    0,    0,    0,    0,
  165,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,  163,    0,    0,    0,    0,  165,    0,    0,
  165,  165,  165,  165,  165,  165,    0,  165,    0,    0,
  162,    0,    0,    0,  325,  160,  158,    0,  159,  165,
  161,    0,  163,    0,  163,    0,    0,    0,    0,    0,
    0,  162,    0,    0,    0,    0,  160,  158,  326,  159,
    0,  161,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,  165,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,  163,  162,    0,
    0,    0,  341,  160,  158,    0,  159,    0,  161,    0,
    0,    0,    0,  165,    0,  165,    0,    0,  163,    0,
    0,    0,    0,    0,    0,  162,    0,  162,    0,  162,
    0,  162,    0,  162,    0,    0,    0,  162,    0,  162,
  162,  162,  162,  162,  162,  162,  162,  162,    0,    0,
  162,  162,  162,  162,  162,  163,    0,  162,  162,  162,
  162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
    0,    0,    0,    0,  162,  162,  162,  162,  162,  162,
  162,  162,    0,  162,  162,  162,  163,    0,  163,    0,
  163,    0,  163,    0,  163,    0,    0,    0,  163,    0,
  163,  163,  163,  163,  163,  163,  163,  163,  163,    0,
    0,  163,  163,  163,  163,  163,    0,    0,  163,  163,
  163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
  163,    0,    0,    0,    0,  163,  163,  163,  163,  163,
  163,  163,  163,    0,  163,  163,  163,  165,    0,  165,
    0,  165,    0,  165,    0,  165,    0,    0,    0,  165,
    0,  165,  165,  165,  165,  165,  165,  165,  165,  165,
    0,    0,  165,  165,  165,  165,  165,    0,    0,  165,
  165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
  165,  165,   28,    0,    0,    0,  165,  165,  165,  165,
  165,  165,  165,  165,    0,  165,  165,  165,    0,  150,
  151,  152,  153,  154,  155,  156,  157,    0,    0,   28,
    0,    0,   28,   28,   28,    0,   28,    0,    0,   28,
  150,  151,  152,  153,  154,  155,  156,  157,    0,    0,
    0,   28,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   29,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,  150,  151,  152,
  153,  154,  155,  156,  157,   28,   28,    0,    0,    0,
   29,    0,    0,   29,   29,   29,    0,   29,    0,    0,
   29,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   29,    0,    0,   28,    0,   28,    0,    0,
    0,    0,    0,    0,  167,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   29,   29,    0,    0,
    0,  167,    0,    0,  167,  167,  167,    0,  167,    0,
    0,  167,    0,    0,  162,    0,    0,    0,    0,  160,
  158,    0,  159,  167,  161,    0,   29,    0,   29,    0,
    0,    0,    0,    0,    0,  162,  377,    0,    0,  394,
  160,  158,    0,  159,    0,  161,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,  167,  167,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  163,  162,    0,    0,    0,    0,  160,  158,    0,
  159,    0,  161,    0,    0,    0,    0,  167,    0,  167,
    0,    0,  163,    0,    0,    0,    0,    0,    0,   28,
    0,   28,    0,   28,    0,   28,    0,   28,    0,    0,
    0,   28,    0,   28,   28,   28,   28,   28,   28,   28,
   28,   28,    0,    0,   28,   28,   28,   28,   28,  163,
    0,   28,   28,   28,   28,   28,   28,   28,   28,   28,
   28,   28,   28,   28,    0,    0,    0,    0,   28,   28,
   28,   28,   28,   28,   28,   28,    0,   28,   28,   28,
   29,    0,   29,    0,   29,    0,   29,    0,   29,    0,
    0,    0,   29,    0,   29,   29,   29,   29,   29,   29,
   29,   29,   29,    0,    0,   29,   29,   29,   29,   29,
    0,    0,   29,   29,   29,   29,   29,   29,   29,   29,
   29,   29,   29,   29,   29,    0,    0,    0,    0,   29,
   29,   29,   29,   29,   29,   29,   29,    0,   29,   29,
   29,  167,    0,  167,    0,  167,    0,  167,    0,  167,
    0,    0,    0,  167,    0,  167,  167,  167,  167,  167,
  167,  167,  167,  167,    0,    0,  167,  167,  167,  167,
  167,    0,    0,  167,  167,  167,  167,  167,  167,  167,
  167,  167,  167,  167,  167,  167,  168,    0,    0,    0,
  167,  167,  167,  167,  167,  167,  167,  167,    0,  167,
  167,  167,    0,  150,  151,  152,  153,  154,  155,  156,
  157,    0,    0,  168,    0,    0,  168,  168,  168,    0,
  168,    0,    0,  168,  150,  151,  152,  153,  154,  155,
  156,  157,    0,    0,    0,  168,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,  219,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,  151,  152,  153,  154,  155,  156,  157,  168,
  168,    0,    0,    0,  130,    0,    0,  219,    0,  130,
  130,  219,  130,    0,  130,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,  219,    0,    0,  168,
    0,  168,    0,    0,    0,    0,    0,    0,  221,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  130,    0,    0,    0,  130,    0,    0,  221,    0,
  130,  130,  221,  130,    0,  130,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,  221,    0,    0,
  219,    0,  219,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,  130,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  221,   52,  221,    0,    0,    0,   48,    0,    0,
    0,    0,    0,  168,    0,  168,    0,  168,    0,  168,
    0,  168,    0,    0,    0,  168,    0,  168,  168,  168,
  168,  168,  168,  168,  168,  168,    0,    0,  168,  168,
  168,  168,  168,    0,    0,  168,  168,  168,  168,  168,
  168,  168,  168,  168,  168,  168,  168,  168,    0,    0,
    0,    0,  168,  168,  168,  168,  168,  168,  168,  168,
    0,  168,  168,  168,  219,    0,  219,    0,  219,    0,
  219,    0,  219,    0,    0,    0,  219,    0,  219,  219,
  219,  219,  219,  219,  219,  219,  219,    0,    0,  219,
  219,  219,  219,    0,    0,    0,  219,  219,  219,  219,
  219,  219,  219,  219,  219,  219,  219,  219,  219,    0,
    0,    0,    0,  130,  130,  130,  130,  130,  130,  130,
  130,    0,  219,  219,  219,  221,    0,  221,    0,  221,
    0,  221,    0,  221,    0,    0,    0,  221,    0,  221,
  221,  221,  221,  221,  221,  221,  221,  221,    0,    0,
  221,  221,  221,  221,    0,    0,    0,  221,  221,  221,
  221,  221,  221,  221,  221,  221,  221,  221,  221,  221,
   58,    0,    0,    0,  130,  130,  130,  130,  130,  130,
  130,  130,    0,  221,  221,  221,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,  131,    0,    0,
   58,    0,  131,  131,    0,   58,    0,  131,    0,   17,
    0,   18,    0,  311,    0,   20,    0,   21,  312,   58,
  313,  314,    0,  315,    0,    0,    0,    0,    0,    0,
    0,  160,    0,    0,   31,    0,   33,    0,    0,    0,
    0,   35,   36,   37,   38,   39,   40,   41,   42,   43,
   44,  100,  101,   47,  131,    0,    0,    0,    0,    0,
    0,  160,  160,    0,  160,  160,  160,   49,   50,   51,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  160,    0,    0,   58,    0,   58,    0,    0,    0,    0,
    0,    0,  161,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,  160,    0,    0,    0,    0,    0,
    0,    0,  161,  161,    0,  161,  161,  161,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  161,    0,    0,  160,    0,  160,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,  161,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,  161,    0,  161,    0,    0,
    0,    0,    0,    0,    0,    0,    0,   58,    0,   58,
    0,   58,    0,   58,    0,   58,    0,    0,    0,   58,
    0,   58,   58,   58,   58,   58,   58,   58,   58,   58,
    0,    0,   58,   58,   58,   58,    0,    0,    0,   58,
   58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
   58,   58,    0,    0,    0,    0,  131,  131,  131,  131,
  131,  131,  131,  131,    0,   58,   58,   58,  160,    0,
  160,    0,  160,    0,  160,    0,  160,    0,    0,    0,
  160,    0,  160,  160,  160,  160,  160,  160,  160,  160,
  160,    0,    0,  160,  160,  160,  160,  160,    0,    0,
  160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
  160,  160,  160,    0,    0,    0,    0,  160,  160,  160,
  160,  160,  160,  160,  160,   73,  160,  160,  160,  161,
   73,  161,    0,  161,    0,  161,    0,  161,    0,    0,
    0,  161,    0,  161,  161,  161,  161,  161,  161,  161,
  161,  161,    0,    0,  161,  161,  161,  161,  161,    0,
  169,  161,  161,  161,  161,  161,  161,  161,  161,  161,
  161,  161,  161,  161,    0,    0,    0,    0,  161,  161,
  161,  161,  161,  161,  161,  161,    0,  161,  161,  161,
  169,  169,    0,    0,  169,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   73,  169,
   73,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  170,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,  169,    0,    0,    0,    0,    0,    0,
    0,  170,  170,    0,    0,  170,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  170,    0,    0,  169,    0,  169,    0,    0,    0,    0,
    0,    0,  171,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,  170,    0,    0,    0,    0,    0,
    0,    0,  171,  171,    0,    0,  171,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  171,    0,    0,  170,    0,  170,    0,    0,    0,
    0,    0,   73,    0,   73,    0,   73,    0,   73,    0,
   73,    0,    0,    0,   73,    0,   73,   73,   73,   73,
    0,   73,   73,   73,   73,  171,    0,   73,   73,   73,
   73,    0,    0,    0,   73,   73,   73,   73,   73,   73,
   73,   73,   73,   73,   73,   73,   73,    0,    0,    0,
    0,    0,    0,    0,    0,  171,    0,  171,    0,    0,
   73,   73,   73,    0,    0,    0,    0,  169,    0,  169,
    0,  169,    0,  169,    0,  169,    0,    0,    0,  169,
    0,  169,  169,  169,  169,  169,  169,  169,  169,  169,
    0,    0,  169,  169,  169,  169,  169,    0,    0,  169,
  169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
  169,  169,    0,    0,    0,    0,  169,  169,  169,  169,
  169,  169,  169,  169,    0,  169,  169,  169,  170,    0,
  170,    0,  170,    0,  170,    0,  170,    0,    0,    0,
  170,    0,  170,  170,  170,  170,  170,  170,  170,  170,
  170,    0,    0,  170,  170,  170,  170,  170,    0,    0,
  170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
  170,  170,  170,    0,    0,    0,    0,  170,  170,  170,
  170,  170,  170,  170,  170,   52,  170,  170,  170,  171,
   48,  171,    0,  171,    0,  171,    0,  171,    0,    0,
    0,  171,    0,  171,  171,  171,  171,  171,  171,  171,
  171,  171,    0,    0,  171,  171,  171,  171,  171,    0,
  172,  171,  171,  171,  171,  171,  171,  171,  171,  171,
  171,  171,  171,  171,    0,    0,    0,    0,  171,  171,
  171,  171,  171,  171,  171,  171,    0,  171,  171,  171,
  172,  172,    0,    0,  172,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   53,  172,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  173,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,  172,    0,    0,    0,    0,    0,    0,
    0,  173,  173,    0,    0,  173,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  173,    0,    0,  172,    0,  172,    0,    0,    0,    0,
    0,    0,  174,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,  173,    0,    0,    0,    0,    0,
    0,    0,  174,  174,    0,    0,  174,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  174,    0,    0,  173,    0,  173,    0,    0,    0,
    0,    0,   17,    0,   18,    0,   19,    0,   20,    0,
   21,    0,    0,    0,   22,    0,   23,   24,   25,   26,
    0,   27,   28,   29,   30,  174,    0,   31,   32,   33,
   34,    0,    0,    0,   35,   36,   37,   38,   39,   40,
   41,   42,   43,   44,   45,   46,   47,    0,    0,    0,
    0,    0,    0,    0,    0,  174,    0,  174,    0,    0,
   49,   50,   51,    0,    0,    0,    0,  172,    0,  172,
    0,  172,    0,  172,    0,  172,    0,    0,    0,  172,
    0,  172,  172,  172,  172,  172,  172,  172,  172,  172,
    0,    0,  172,  172,  172,  172,  172,    0,    0,  172,
  172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
  172,  172,    0,    0,    0,    0,  172,  172,  172,  172,
  172,  172,  172,  172,    0,  172,  172,  172,  173,    0,
  173,    0,  173,    0,  173,    0,  173,    0,    0,    0,
  173,    0,  173,  173,  173,  173,  173,  173,  173,  173,
  173,    0,    0,  173,  173,  173,  173,  173,    0,    0,
  173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
  173,  173,  173,    0,    0,    0,    0,  173,  173,  173,
  173,  173,  173,  173,  173,    0,  173,  173,  173,  174,
    0,  174,    0,  174,    0,  174,    0,  174,    0,    0,
    0,  174,    0,  174,  174,  174,  174,  174,  174,  174,
  174,  174,    0,    0,  174,  174,  174,  174,  174,    0,
  175,  174,  174,  174,  174,  174,  174,  174,  174,  174,
  174,  174,  174,  174,    0,    0,    0,    0,  174,  174,
  174,  174,  174,  174,  174,  174,    0,  174,  174,  174,
  175,  175,    0,    0,  175,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,  175,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  220,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,  175,    0,    0,    0,    0,    0,    0,
    0,  220,    0,    0,  178,  220,  178,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  220,    0,    0,  175,    0,  175,    0,    0,    0,    0,
    0,    0,  176,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,  176,  176,    0,    0,  176,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  176,    0,    0,  220,    0,  220,    0,    0,    0,
    0,    0,    0,    0,    0,  222,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,  176,    0,    0,    0,    0,
    0,    0,    0,    0,    0,  222,    0,    0,  178,  222,
  178,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,  222,  176,    0,  176,    0,    0,
    0,    0,    0,    0,    0,    0,    0,  175,    0,  175,
    0,  175,    0,  175,    0,  175,    0,    0,    0,  175,
    0,  175,  175,  175,  175,  175,  175,  175,  175,  175,
    0,    0,  175,  175,  175,  175,  175,    0,    0,  175,
  175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
  175,  175,    0,    0,    0,    0,  175,  175,  222,    0,
  222,    0,    0,    0,    0,  175,  175,  175,  220,    0,
  220,    0,  220,    0,  220,    0,  220,    0,    0,    0,
  220,    0,  220,  220,  220,  220,  220,  220,  220,  220,
  220,    0,    0,  220,  220,  220,  220,    0,    0,    0,
  220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
  220,  220,  220,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,  178,  178,    0,  220,  220,  220,  176,
    0,  176,    0,  176,    0,  176,    0,  176,    0,    0,
    0,  176,    0,  176,  176,  176,  176,  176,  176,  176,
  176,  176,    0,    0,  176,  176,  176,  176,  176,    0,
    0,  176,  176,  176,  176,  176,  176,  176,  176,  176,
  176,  176,  176,  176,    0,    0,    0,    0,  176,    0,
    0,    0,    0,    0,    0,    0,    0,  176,  176,  176,
   52,    0,  222,    0,  222,   48,  222,    0,  222,    0,
  222,    0,    0,    0,  222,    0,  222,  222,  222,  222,
  222,  222,  222,  222,  222,    0,    0,  222,  222,  222,
  222,    0,    0,   57,  222,  222,  222,  222,  222,  222,
  222,  222,  222,  222,  222,  222,  222,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,  178,  178,    0,
  222,  222,  222,   57,    0,    0,  179,    0,   57,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   57,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    8,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    8,    8,    0,    0,    8,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    8,    0,    0,   57,    0,   57,    0,
    0,    0,    0,    0,    0,   12,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    8,    0,    0,
    0,    0,    0,    0,    0,   12,   12,    0,    0,   12,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   12,    0,    0,    8,    0,    8,
    0,    0,    0,    0,    0,    0,    0,   17,    0,   18,
    0,   19,    0,   20,    0,   21,    0,    0,    0,   98,
    0,   99,    0,    0,    0,    0,    0,    0,   12,    0,
    0,    0,   31,    0,   33,    0,    0,    0,    0,   35,
   36,   37,   38,   39,   40,   41,   42,   43,   44,  100,
  101,   47,    0,    0,    0,    0,    0,    0,   12,    0,
   12,    0,    0,    0,    0,   49,   50,   51,    0,    0,
   57,    0,   57,    0,   57,    0,   57,    0,   57,    0,
    0,    0,   57,    0,   57,   57,   57,   57,   57,   57,
   57,   57,   57,    0,    0,   57,   57,   57,   57,    0,
    0,    0,   57,   57,   57,   57,   57,   57,   57,   57,
   57,   57,   57,   57,   57,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,  179,  179,    0,   57,   57,
   57,    8,    0,    8,    0,    8,    0,    8,    0,    8,
    0,    0,    0,    8,    0,    8,    8,    8,    8,    8,
    8,    8,    8,    8,   11,    0,    8,    8,    8,    8,
    8,    0,    0,    8,    8,    8,    8,    8,    8,    8,
    8,    8,    8,    8,    8,    8,    0,    0,    0,    0,
    0,    0,    0,    0,   11,   11,    0,    0,   11,    8,
    8,    8,   12,    0,   12,    0,   12,    0,   12,    0,
   12,    0,    0,   11,   12,    0,   12,   12,   12,   12,
   12,   12,   12,   12,   12,    9,    0,   12,   12,   12,
   12,   12,    0,    0,   12,   12,   12,   12,   12,   12,
   12,   12,   12,   12,   12,   12,   12,   11,    0,    0,
    0,    0,    0,    0,    0,    9,    9,    0,    0,    9,
   12,   12,   12,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    9,    0,    0,   11,    0,   11,
    0,    0,    0,    0,    0,    0,   10,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    9,    0,
    0,    0,    0,    0,    0,    0,   10,   10,    0,    0,
   10,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   10,    0,    0,    9,    0,
    9,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,   13,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   10,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,   13,   13,    0,    0,   13,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   10,
   13,   10,    0,    0,    0,    0,    0,    0,    0,    0,
    0,   11,    0,   11,    0,   11,    0,   11,    0,   11,
    0,    0,    0,   11,    0,   11,   11,   11,   11,   11,
   11,   11,   11,   11,   13,    0,   11,   11,   11,   11,
   11,    0,    0,   11,   11,   11,   11,   11,   11,   11,
   11,   11,   11,   11,   11,   11,    0,    0,    0,    0,
    0,    0,    0,    0,   13,    0,   13,    0,    0,   11,
   11,   11,    9,    0,    9,    0,    9,    0,    9,    0,
    9,    0,    0,    0,    9,    0,    9,    9,    9,    9,
    9,    9,    9,    9,    9,    0,    0,    9,    9,    9,
    9,    9,    0,    0,    9,    9,    9,    9,    9,    9,
    9,    9,    9,    9,    9,    9,    9,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    9,    9,    9,   10,    0,   10,    0,   10,    0,   10,
    0,   10,    0,    0,    0,   10,    0,   10,   10,   10,
   10,   10,   10,   10,   10,   10,    0,    0,   10,   10,
   10,   10,   10,    0,    0,   10,   10,   10,   10,   10,
   10,   10,   10,   10,   10,   10,   10,   10,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,   10,   10,   10,    0,    0,    0,    0,   13,    0,
   13,    0,   13,    0,   13,    0,   13,    0,    0,    0,
   13,    0,   13,   13,   13,   13,   13,   13,   13,   13,
   13,   17,    0,   13,   13,   13,   13,   13,    0,    0,
   13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
   13,   13,   13,    0,    0,    0,    0,    0,    0,    0,
    0,   17,   17,    0,    0,   17,   13,   13,   13,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   17,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   16,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   17,    0,    0,    0,    0,    0,
    0,    0,   16,   16,    0,    0,   16,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,   16,    0,    0,   17,    0,   17,    0,    0,    0,
    0,    0,    0,   14,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   16,    0,    0,    0,    0,
    0,    0,    0,   14,   14,    0,    0,   14,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   14,    0,    0,   16,    0,   16,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   15,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   14,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   15,   15,
    0,    0,   15,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   14,   15,   14,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   17,    0,
   17,    0,   17,    0,   17,    0,   17,    0,    0,    0,
   17,    0,   17,   17,   17,   17,   17,   17,   17,   17,
   17,   15,    0,   17,   17,   17,   17,   17,    0,    0,
   17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
   17,   17,   17,    0,    0,    0,    0,    0,    0,    0,
    0,   15,    0,   15,    0,    0,   17,   17,   17,   16,
    0,   16,    0,   16,    0,   16,    0,   16,    0,    0,
    0,   16,    0,   16,   16,   16,   16,   16,   16,   16,
   16,   16,    0,    0,   16,   16,   16,   16,   16,    0,
    0,   16,   16,   16,   16,   16,   16,   16,   16,   16,
   16,   16,   16,   16,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,   16,   16,   16,
   14,    0,   14,    0,   14,    0,   14,    0,   14,    0,
    0,    0,   14,    0,   14,   14,   14,   14,   14,   14,
   14,   14,   14,    0,    0,   14,   14,   14,   14,   14,
    0,    0,   14,   14,   14,   14,   14,   14,   14,   14,
   14,   14,   14,   14,   14,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   14,   14,
   14,    0,    0,    0,    0,   15,    0,   15,    0,   15,
    0,   15,    0,   15,    0,    0,    0,   15,    0,   15,
   15,   15,   15,   15,   15,   15,   15,   15,   23,    0,
   15,   15,   15,   15,   15,    0,    0,   15,   15,   15,
   15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
    0,    0,    0,    0,    0,    0,    0,    0,   23,   23,
    0,    0,   23,   15,   15,   15,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,   23,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   27,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,   23,    0,    0,    0,    0,    0,    0,    0,   27,
   27,    0,    0,   27,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   27,    0,
    0,   23,    0,   23,    0,    0,    0,    0,    0,    0,
   26,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   27,    0,    0,    0,    0,    0,    0,    0,
   26,   26,    0,    0,   26,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   26,
    0,    0,   27,    0,   27,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   24,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   26,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   24,   24,    0,    0,   24,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   26,   24,   26,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   23,    0,   23,    0,   23,
    0,   23,    0,   23,    0,    0,    0,   23,    0,   23,
   23,   23,   23,   23,   23,   23,   23,   23,   24,    0,
   23,   23,   23,   23,   23,    0,    0,   23,   23,   23,
   23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
    0,    0,    0,    0,    0,    0,    0,    0,   24,    0,
   24,    0,    0,   23,   23,   23,   27,    0,   27,    0,
   27,    0,   27,    0,   27,    0,    0,    0,   27,    0,
   27,   27,   27,   27,   27,   27,   27,   27,   27,    0,
    0,   27,   27,   27,   27,   27,    0,    0,   27,   27,
   27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
   27,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   27,   27,   27,   26,    0,   26,
    0,   26,    0,   26,    0,   26,    0,    0,    0,   26,
    0,   26,   26,   26,   26,   26,   26,   26,   26,   26,
    0,    0,   26,   26,   26,   26,   26,    0,    0,   26,
   26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
   26,   26,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   26,   26,   26,    0,    0,
    0,    0,   24,    0,   24,    0,   24,    0,   24,    0,
   24,    0,    0,    0,   24,    0,   24,   24,   24,   24,
   24,   24,   24,   24,   24,   25,    0,   24,   24,   24,
   24,   24,    0,    0,   24,   24,   24,   24,   24,   24,
   24,   24,   24,   24,   24,   24,   24,    0,    0,    0,
    0,    0,    0,    0,    0,   25,   25,    0,    0,   25,
   24,   24,   24,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   25,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   18,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   25,    0,
    0,    0,    0,    0,    0,    0,   18,   18,    0,    0,
   18,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   18,    0,    0,   25,    0,
   25,    0,    0,    0,    0,    0,    0,   22,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   18,
    0,    0,    0,    0,    0,    0,    0,   22,   22,    0,
    0,   22,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   22,    0,    0,   18,
    0,   18,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   21,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   22,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   21,   21,    0,    0,   21,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   22,   21,   22,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   25,    0,   25,    0,   25,    0,   25,    0,
   25,    0,    0,    0,   25,    0,   25,   25,   25,   25,
   25,   25,   25,   25,   25,   21,    0,   25,   25,   25,
   25,   25,    0,    0,   25,   25,   25,   25,   25,   25,
   25,   25,   25,   25,   25,   25,   25,    0,    0,    0,
    0,    0,    0,    0,    0,   21,    0,   21,    0,    0,
   25,   25,   25,   18,    0,   18,    0,   18,    0,   18,
    0,   18,    0,    0,    0,   18,    0,   18,   18,   18,
   18,   18,   18,   18,   18,   18,    0,    0,   18,   18,
   18,   18,   18,    0,    0,   18,   18,   18,   18,   18,
   18,   18,   18,   18,   18,   18,   18,   18,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,   18,   18,   18,   22,    0,   22,    0,   22,    0,
   22,    0,   22,    0,    0,    0,   22,    0,   22,   22,
   22,   22,   22,   22,   22,   22,   22,   30,    0,   22,
   22,   22,   22,   22,    0,    0,   22,   22,   22,   22,
   22,   22,   22,   22,   22,   22,   22,   22,   22,    0,
    0,    0,    0,    0,    0,    0,    0,   30,   30,    0,
    0,   30,   22,   22,   22,    0,    0,    0,    0,   21,
    0,   21,    0,   21,    0,   21,   30,   21,    0,    0,
    0,   21,    0,   21,   21,   21,   21,   21,   21,   21,
   21,   21,   19,    0,   21,   21,   21,   21,   21,    0,
    0,   21,   21,   21,   21,   21,   21,   21,   21,   21,
   21,   21,   21,   21,    0,    0,    0,    0,    0,    0,
    0,    0,   19,   19,    0,    0,   19,   21,   21,   21,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   30,   19,   30,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   20,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   19,    0,    0,    0,    0,
    0,    0,    0,   20,   20,    0,    0,   20,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   20,    0,    0,   19,    0,   19,    0,    0,
    0,    0,    0,    0,   34,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   20,    0,    0,    0,
    0,    0,    0,    0,   34,   34,    0,    0,   34,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   34,    0,    0,   20,    0,   20,    0,
    0,    0,    0,    0,   30,    0,   30,    0,   30,    0,
   30,    0,   30,    0,    0,    0,   30,    0,   30,   30,
   30,   30,   30,   30,   30,   30,   30,    0,    0,   30,
   30,   30,   30,    0,    0,    0,   30,   30,   30,   30,
   30,   30,   30,   30,   30,   30,   30,   30,   30,    0,
    0,    0,    0,    0,    0,    0,    0,   34,    0,   34,
    0,    0,   30,   30,   30,    0,    0,    0,    0,   19,
    0,   19,    0,   19,    0,   19,    0,   19,    0,    0,
    0,   19,    0,   19,   19,   19,   19,   19,   19,   19,
   19,   19,    0,    0,   19,   19,   19,   19,   19,    0,
    0,   19,   19,   19,   19,   19,   19,   19,   19,   19,
   19,   19,   19,   19,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,   19,   19,   19,
   20,    0,   20,    0,   20,    0,   20,    0,   20,    0,
    0,    0,   20,    0,   20,   20,   20,   20,   20,   20,
   20,   20,   20,   33,    0,   20,   20,   20,   20,   20,
    0,    0,   20,   20,   20,   20,   20,   20,   20,   20,
   20,   20,   20,   20,   20,    0,    0,    0,    0,    0,
    0,    0,    0,   33,   33,    0,    0,   33,   20,   20,
   20,   34,    0,   34,    0,   34,    0,   34,    0,   34,
    0,    0,   33,   34,    0,   34,   34,   34,   34,   34,
   34,   34,   34,   34,   31,    0,   34,   34,   34,   34,
    0,    0,    0,   34,   34,   34,   34,   34,   34,   34,
   34,   34,   34,   34,   34,   34,    0,    0,    0,    0,
    0,    0,    0,    0,   31,   31,    0,    0,   31,   34,
   34,   34,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   31,    0,    0,   33,    0,   33,    0,
    0,    0,    0,    0,    0,   32,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   32,   32,    0,    0,   32,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   32,    0,    0,   31,    0,   31,
    0,    0,    0,    0,    0,    0,   40,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   40,   40,    0,    0,
   40,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   40,    0,    0,   32,    0,
   32,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   33,    0,   33,    0,   33,    0,   33,    0,   33,    0,
    0,    0,   33,    0,   33,   33,   33,   33,   33,   33,
   33,   33,   33,    0,    0,   33,   33,   33,   33,    0,
    0,    0,   33,   33,   33,   33,   33,   33,   33,   33,
   33,   33,   33,   33,   33,    0,    0,    0,    0,   40,
    0,   40,    0,    0,    0,    0,    0,    0,   33,   33,
   33,   31,    0,   31,    0,   31,    0,   31,    0,   31,
    0,    0,    0,   31,    0,   31,   31,   31,   31,   31,
   31,   31,   31,   31,    0,    0,   31,   31,   31,   31,
    0,    0,    0,   31,   31,   31,   31,   31,   31,   31,
   31,   31,   31,   31,   31,   31,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   31,
   31,   31,   32,    0,   32,    0,   32,    0,   32,    0,
   32,    0,    0,    0,   32,    0,   32,   32,   32,   32,
   32,   32,   32,   32,   32,   44,    0,   32,   32,   32,
   32,    0,    0,    0,   32,   32,   32,   32,   32,   32,
   32,   32,   32,   32,   32,   32,   32,    0,    0,    0,
    0,    0,    0,    0,    0,   44,   44,    0,    0,   44,
   32,   32,   32,   40,    0,   40,    0,   40,    0,   40,
    0,   40,    0,    0,   44,   40,    0,   40,   40,   40,
   40,   40,   40,   40,   40,   40,   43,    0,   40,   40,
   40,   40,    0,    0,    0,   40,   40,   40,   40,   40,
   40,   40,   40,   40,   40,   40,   40,   40,    0,    0,
    0,    0,    0,    0,    0,    0,   43,   43,    0,    0,
   43,   40,   40,   40,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   43,    0,    0,   44,    0,
   44,    0,    0,    0,    0,    0,    0,   41,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,   41,   41,    0,
    0,   41,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   41,    0,    0,   43,
    0,   43,    0,    0,    0,    0,    0,    0,   42,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   42,   42,
    0,    0,   42,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,   42,    0,    0,
   41,    0,   41,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   44,    0,   44,    0,   44,    0,   44,    0,
   44,    0,    0,    0,   44,    0,   44,   44,   44,   44,
   44,   44,   44,   44,   44,    0,    0,   44,   44,   44,
   44,    0,    0,    0,   44,   44,   44,   44,   44,   44,
   44,   44,   44,   44,   44,   44,   44,    0,    0,    0,
    0,   42,    0,   42,    0,    0,    0,    0,    0,    0,
   44,   44,   44,   43,    0,   43,    0,   43,    0,   43,
    0,   43,    0,    0,    0,   43,    0,   43,   43,   43,
   43,   43,   43,   43,   43,   43,    0,    0,   43,   43,
   43,   43,    0,    0,    0,   43,   43,   43,   43,   43,
   43,   43,   43,   43,   43,   43,   43,   43,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,   43,   43,   43,   41,    0,   41,    0,   41,    0,
   41,    0,   41,    0,    0,    0,   41,    0,   41,   41,
   41,   41,   41,   41,   41,   41,   41,   35,    0,   41,
   41,   41,   41,    0,    0,    0,   41,   41,   41,   41,
   41,   41,   41,   41,   41,   41,   41,   41,   41,    0,
    0,    0,    0,    0,    0,    0,    0,   35,   35,    0,
    0,   35,   41,   41,   41,   42,    0,   42,    0,   42,
    0,   42,    0,   42,    0,    0,   35,   42,    0,   42,
   42,   42,   42,   42,   42,   42,   42,   42,   39,    0,
   42,   42,   42,   42,    0,    0,    0,   42,   42,   42,
   42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
    0,    0,    0,    0,    0,    0,    0,    0,   39,   39,
    0,    0,   39,   42,   42,   42,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,   39,    0,    0,
   35,    0,   35,    0,    0,    0,    0,    0,    0,   38,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   38,
   38,    0,    0,   38,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   38,    0,
    0,   39,    0,   39,    0,    0,    0,    0,    0,    0,
   36,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   36,   36,    0,    0,   36,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   36,
    0,    0,   38,    0,   38,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   35,    0,   35,    0,   35,    0,
   35,    0,   35,    0,    0,    0,   35,    0,   35,   35,
   35,   35,   35,   35,   35,   35,   35,    0,    0,   35,
   35,   35,   35,    0,    0,    0,   35,   35,   35,   35,
   35,   35,   35,   35,   35,   35,   35,   35,   35,    0,
    0,    0,    0,   36,    0,   36,    0,    0,    0,    0,
    0,    0,   35,   35,   35,   39,    0,   39,    0,   39,
    0,   39,    0,   39,    0,    0,    0,   39,    0,   39,
   39,   39,   39,   39,   39,   39,   39,   39,    0,    0,
   39,   39,   39,   39,    0,    0,    0,   39,   39,   39,
   39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   39,   39,   39,   38,    0,   38,    0,
   38,    0,   38,    0,   38,    0,    0,    0,   38,    0,
   38,   38,   38,   38,   38,   38,   38,   38,   38,   37,
    0,   38,   38,   38,   38,    0,    0,    0,   38,   38,
   38,   38,   38,   38,   38,   38,   38,   38,   38,   38,
   38,    0,    0,    0,    0,    0,    0,    0,    0,   37,
   37,    0,    0,   37,   38,   38,   38,   36,    0,   36,
    0,   36,    0,   36,    0,   36,    0,    0,   37,   36,
    0,   36,   36,   36,   36,   36,   36,   36,   36,   36,
   45,    0,   36,   36,   36,   36,    0,    0,    0,   36,
   36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
   36,   36,    0,    0,    0,    0,    0,    0,    0,    0,
   45,   45,    0,    0,   45,   36,   36,   36,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,   45,
    0,    0,   37,    0,   37,    0,    0,    0,    0,    0,
    0,   49,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,   49,   49,    0,    0,   49,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   49,    0,    0,   45,    0,   45,    0,    0,    0,    0,
    0,    0,   48,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   48,   48,    0,    0,   48,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,   48,    0,    0,   49,    0,   49,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   37,    0,   37,    0,
   37,    0,   37,    0,   37,    0,    0,    0,   37,    0,
   37,   37,   37,   37,   37,   37,   37,   37,   37,    0,
    0,   37,   37,   37,   37,    0,    0,    0,   37,   37,
   37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
   37,    0,    0,    0,    0,   48,    0,   48,    0,    0,
    0,    0,    0,    0,   37,   37,   37,   45,    0,   45,
    0,   45,    0,   45,    0,   45,    0,    0,    0,   45,
    0,   45,   45,   45,   45,   45,   45,   45,   45,   45,
    0,    0,   45,   45,   45,   45,    0,    0,    0,   45,
   45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
   45,   45,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,   45,   45,   45,   49,    0,
   49,    0,   49,    0,   49,    0,   49,    0,    0,    0,
   49,    0,   49,   49,   49,   49,   49,   49,   49,   49,
   49,   46,    0,   49,   49,   49,   49,    0,    0,    0,
   49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
   49,   49,   49,    0,    0,    0,    0,    0,    0,    0,
    0,   46,   46,    0,    0,   46,   49,   49,   49,   48,
    0,   48,    0,   48,    0,   48,    0,   48,    0,    0,
   46,   48,    0,   48,   48,   48,   48,   48,   48,   48,
   48,   48,   47,    0,   48,   48,   48,   48,    0,    0,
    0,   48,   48,   48,   48,   48,   48,   48,   48,   48,
   48,   48,   48,   48,    0,    0,    0,    0,    0,    0,
    0,    0,   47,   47,    0,    0,   47,   48,   48,   48,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,   47,    0,    0,   46,    0,   46,    0,    0,    0,
    0,    0,    0,   89,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   89,    0,    0,    0,   89,   89,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   89,    0,    0,   47,    0,   47,    0,    0,
    0,    0,    0,    0,   94,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   94,    0,    0,    0,   94,   94,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   94,    0,    0,   89,    0,   89,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   46,    0,
   46,    0,   46,    0,   46,    0,   46,    0,    0,    0,
   46,    0,   46,   46,   46,   46,   46,   46,   46,   46,
   46,    0,    0,   46,   46,   46,   46,    0,    0,    0,
   46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
   46,   46,   46,    0,    0,    0,    0,   94,    0,   94,
    0,    0,    0,    0,    0,    0,   46,   46,   46,   47,
    0,   47,    0,   47,    0,   47,    0,   47,    0,    0,
    0,   47,    0,   47,   47,   47,   47,   47,   47,   47,
   47,   47,    0,    0,   47,   47,   47,   47,    0,    0,
    0,   47,   47,   47,   47,   47,   47,   47,   47,   47,
   47,   47,   47,   47,    0,    0,    0,    0,   52,    0,
    0,    0,    0,   48,    0,    0,    0,   47,   47,   47,
   89,    0,   89,    0,   89,    0,   89,    0,   89,    0,
    0,    0,   89,    0,   89,   89,   89,   89,    0,   89,
   89,   89,   89,    0,    0,   89,   89,   89,   89,   89,
    0,    0,   89,   89,   89,   89,   89,   89,   89,   89,
   89,   89,   89,   89,   89,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   89,   89,
   89,   94,    0,   94,    0,   94,    0,   94,    0,   94,
    0,    0,    0,   94,    0,   94,   94,   94,   94,   61,
   94,   94,   94,   94,    0,    0,   94,   94,   94,   94,
   94,    0,    0,   94,   94,   94,   94,   94,   94,   94,
   94,   94,   94,   94,   94,   94,    0,    0,    0,   61,
    0,    0,    0,    0,   61,    0,    0,    0,    0,   94,
   94,   94,    0,    0,    0,    0,    0,    0,   61,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  223,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  223,    0,    0,    0,  223,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,  223,
    0,    0,   61,    0,   61,    0,    0,    0,    0,    0,
    0,   62,    0,    0,    0,   17,    0,   18,    0,   19,
    0,   20,    0,   21,    0,    0,    0,   22,    0,   23,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   31,   62,   33,    0,    0,    0,   62,   35,   36,   37,
   38,   39,   40,   41,   42,   43,   44,   45,   46,   47,
   62,    0,    0,  223,    0,  223,    0,    0,    0,    0,
    0,    0,  224,   49,   50,   51,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,  224,    0,    0,    0,  224,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  224,    0,    0,   62,    0,   62,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   61,    0,   61,    0,
   61,    0,   61,    0,   61,    0,    0,    0,   61,    0,
   61,   61,   61,   61,   61,   61,   61,   61,   61,    0,
    0,   61,   61,   61,   61,    0,    0,    0,   61,   61,
   61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
   61,    0,    0,    0,    0,  224,    0,  224,    0,    0,
    0,    0,    0,    0,   61,   61,   61,  223,    0,  223,
    0,  223,    0,  223,    0,  223,    0,    0,    0,  223,
    0,  223,  223,  223,  223,  223,  223,  223,  223,  223,
    0,    0,  223,  223,  223,  223,    0,    0,    0,  223,
  223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
  223,  223,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,  223,  223,  223,   62,    0,
   62,    0,   62,    0,   62,    0,   62,    0,    0,    0,
   62,    0,   62,   62,   62,   62,   62,   62,   62,   62,
   62,  225,    0,   62,   62,   62,   62,    0,    0,    0,
   62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
   62,   62,   62,    0,    0,    0,    0,    0,    0,    0,
    0,  225,    0,    0,    0,  225,   62,   62,   62,  224,
    0,  224,    0,  224,    0,  224,    0,  224,    0,    0,
  225,  224,    0,  224,  224,  224,  224,  224,  224,  224,
  224,  224,  226,    0,  224,  224,  224,  224,    0,    0,
    0,  224,  224,  224,  224,  224,  224,  224,  224,  224,
  224,  224,  224,  224,    0,    0,    0,    0,    0,    0,
    0,    0,  226,    0,    0,    0,  226,  224,  224,  224,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  226,    0,    0,  225,    0,  225,    0,    0,    0,
    0,    0,    0,   88,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   88,    0,    0,    0,    0,   88,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   88,    0,    0,  226,    0,  226,    0,    0,
    0,    0,    0,    0,   91,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   91,    0,    0,    0,   91,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   91,    0,    0,   88,    0,   88,    0,
    0,    0,    0,    0,    0,    0,    0,    0,  225,    0,
  225,    0,  225,    0,  225,    0,  225,    0,    0,    0,
  225,    0,  225,  225,  225,  225,  225,  225,  225,  225,
  225,    0,    0,  225,  225,  225,  225,    0,    0,    0,
  225,  225,  225,  225,  225,  225,  225,  225,  225,  225,
  225,  225,  225,    0,    0,    0,    0,   91,    0,   91,
    0,    0,    0,    0,    0,   63,  225,  225,  225,  226,
    0,  226,    0,  226,    0,  226,    0,  226,    0,    0,
    0,  226,    0,  226,  226,  226,  226,  226,  226,  226,
  226,  226,    0,    0,  226,  226,  226,  226,    0,    0,
   63,  226,  226,  226,  226,  226,  226,  226,  226,  226,
  226,  226,  226,  226,   63,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,  226,  226,  226,
   88,    0,   88,    0,   88,    0,   88,    0,   88,    0,
    0,    0,   88,    0,   88,   88,   88,   88,    0,   88,
   88,   88,   88,   96,    0,   88,   88,   88,   88,   88,
    0,    0,   88,   88,   88,   88,   88,   88,   88,   88,
   88,   88,   88,   88,   88,    0,    0,    0,   63,    0,
   63,    0,    0,   96,    0,    0,    0,   96,   88,   88,
   88,   91,    0,   91,    0,   91,    0,   91,    0,   91,
    0,    0,   96,   91,    0,   91,   91,   91,   91,    0,
   91,   91,   91,   91,    0,    0,   91,   91,   91,   91,
   91,    0,    0,   91,   91,   91,   91,   91,   91,   91,
   91,   91,   91,   91,   91,   91,    0,    0,    0,    0,
    0,    0,    0,    0,   82,    0,    0,    0,    0,   91,
   91,   91,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   96,    0,   96,    0,
    0,    0,    0,    0,   82,    0,    0,    0,    0,   82,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   82,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,   63,    0,   63,    0,   63,    0,   63,    0,
   63,    0,    0,    0,   63,    0,   63,   63,   63,   63,
   63,   63,   63,   63,   63,    0,    0,   63,   63,   63,
   63,    0,    0,    0,   63,   63,   63,   63,   63,   63,
   63,   63,   63,   63,   63,   63,   63,   82,  124,   82,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   63,   63,   63,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,  124,    0,
    0,    0,    0,  124,    0,    0,    0,    0,    0,    0,
   96,    0,   96,    0,   96,    0,   96,    0,   96,    0,
    0,    0,   96,    0,   96,   96,   96,   96,    0,   96,
   96,   96,   96,    0,    0,   96,   96,   96,   96,   96,
    0,   70,   96,   96,   96,   96,   96,   96,   96,   96,
   96,   96,   96,   96,   96,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   96,   96,
   96,   70,    0,    0,    0,    0,   70,    0,    0,    0,
    0,  124,    0,  124,    0,    0,    0,    0,    0,    0,
   70,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,   82,    0,   82,    0,   82,    0,   82,    0,   82,
    0,    0,    0,   82,    0,   82,   82,   82,   82,    0,
   82,   82,   82,   82,    0,    0,   82,   82,   82,   82,
    0,    0,    0,   82,   82,   82,   82,   82,   82,   82,
   82,   82,   82,   82,   82,   82,    0,   81,    0,    0,
    0,    0,    0,    0,   70,    0,   70,    0,    0,   82,
   82,   82,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,   81,    0,    0,
    0,    0,   81,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,  124,    0,  124,    0,  124,
    0,  124,    0,  124,    0,    0,    0,  124,    0,  124,
  124,  124,  124,  124,  124,  124,  124,  124,    0,    0,
  124,  124,  124,  124,    0,    0,    0,  124,  124,  124,
  124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
   81,    0,   81,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,  124,  124,  124,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   70,    0,
   70,    0,   70,    0,   70,    0,   70,    0,    0,    0,
   70,    0,   70,   70,   70,   70,    0,   70,   70,   70,
   70,    0,    0,   70,   70,   70,   70,    0,    0,    0,
   70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
   70,   70,   70,    0,  148,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,   70,   70,   70,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  148,    0,    0,  148,  148,  148,  148,  148,  148,
    0,  148,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,  148,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,   81,    0,   81,    0,   81,    0,
   81,    0,   81,    0,    0,    0,   81,    0,   81,   81,
   81,   81,    0,   81,   81,   81,   81,  148,  148,   81,
   81,   81,   81,    0,    0,    0,   81,   81,   81,   81,
   81,   81,   81,   81,   81,   81,   81,   81,   81,  147,
    0,    0,    0,    0,    0,    0,    0,  148,    0,  148,
    0,    0,   81,   81,   81,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,  147,    0,    0,  147,
  147,  147,  147,  147,  147,    0,  147,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,  147,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,  147,  147,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,   75,    0,    0,    0,    0,   75,    0,
    0,    0,  147,    0,  147,    0,    0,    0,    0,    0,
    0,    0,   75,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,  148,    0,  148,    0,  148,    0,  148,    0,  148,
    0,    0,    0,  148,    0,  148,  148,  148,  148,  148,
  148,  148,  148,  148,    0,    0,  148,  148,  148,  148,
  148,    0,    0,  148,  148,  148,  148,  148,  148,  148,
  148,  148,  148,  148,  148,  148,   75,    0,   75,    0,
  148,  148,  148,  148,  148,  148,  148,  148,    0,  148,
    0,    0,    0,    0,    0,    0,    0,    0,  123,    0,
    0,    0,    0,  123,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,  147,    0,  147,    0,
  147,    0,  147,    0,  147,    0,    0,    0,  147,    0,
  147,  147,  147,  147,  147,  147,  147,  147,  147,    0,
    0,  147,  147,  147,  147,  147,    0,    0,  147,  147,
  147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
  147,  123,    0,    0,    0,  147,  147,  147,  147,  147,
  147,  147,  147,   75,  147,    0,    0,    0,   75,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   75,    0,   75,    0,   75,    0,   75,    0,   75,    0,
    0,    0,   75,    0,   75,   75,   75,   75,   75,   75,
   75,   75,   75,    0,    0,   75,   75,   75,   75,    0,
    0,    0,   75,   75,   75,   75,   75,   75,   75,   75,
   75,   75,   75,   75,   75,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   75,   75,
   75,    0,    0,    0,    0,    0,   75,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,  123,    0,  123,    0,  123,
    0,  123,    0,  123,    0,    0,    0,  123,    0,  123,
  123,  123,  123,    0,  123,  123,  123,  123,    0,    0,
  123,  123,  123,  123,    0,    0,    0,  123,  123,  123,
  123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,  123,  123,  123,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   75,    0,   75,    0,   75,    0,   75,    0,   75,    0,
    0,    0,   75,    0,   75,   75,   75,   75,    0,   75,
   75,   75,   75,    0,    0,   75,   75,   75,   75,    0,
    0,    0,   75,   75,   75,   75,   75,   75,   75,   75,
   75,   75,   75,   75,   75,    0,    0,    0,    0,    0,
    0,    0,    0,    0,    0,    0,    0,    0,   75,   75,
   75,
};
short Ft_mathyycheck[] = {                                       7,
    7,    7,    7,   61,   43,   23,   45,   16,   16,   16,
   16,   16,   24,   10,   41,  343,   43,   44,   45,  167,
  166,  257,   10,   61,  167,   10,  167,   45,   46,   24,
   10,  167,  167,   37,   10,   61,   48,   49,   42,   43,
   52,   45,   10,   47,   40,  286,  282,  283,   37,   40,
   40,  257,   41,   42,   43,   44,   45,   52,   47,   41,
  257,   43,   59,   45,   41,   77,   78,   79,   80,   81,
   37,   59,   91,   44,  402,   42,   41,   40,   90,   44,
   47,   99,  100,  101,  209,  210,  211,  212,   40,   84,
   94,  297,   41,   41,  422,   44,   44,  109,   41,   41,
  297,   44,   44,  115,  116,   94,   61,   43,   44,   45,
  122,  123,  124,  125,  126,   44,   41,   40,   43,   41,
   45,   43,  117,   45,   40,  120,  121,   94,   41,  272,
   43,  272,   45,   43,  129,   45,   91,   61,  150,  151,
  152,  153,  154,  155,  156,  157,  158,  159,  160,  161,
  162,  163,  164,  269,   41,   40,   43,  125,   45,  167,
  297,  298,  299,  300,  176,  177,  178,  179,  180,  181,
  182,  183,  184,  185,  169,  170,  171,  172,   41,  186,
  186,   44,   40,   61,  196,  197,  198,  199,  200,   40,
  202,  203,  204,  205,  206,  207,  344,   40,   40,  194,
   10,  344,  348,  344,   41,   37,   40,   44,  344,  344,
   42,   43,  207,   45,   40,   47,  228,  229,  230,  231,
  232,  233,  234,  235,  236,  237,  372,   37,   40,   40,
   40,   41,   42,   43,   44,   45,  379,   47,  379,  364,
  297,  298,  299,  300,   41,  263,  256,  257,   40,   59,
   31,   32,   33,   34,   41,   41,   40,   44,   44,  271,
  272,   10,   94,   94,  302,  303,  304,  305,  414,   41,
   10,   59,   44,  312,  313,   41,  256,  272,  316,  317,
   43,   44,   45,   93,   94,  312,  313,   41,   37,  286,
   44,   40,   41,   42,   43,   44,   45,  315,   47,   44,
  280,  281,  306,  307,  308,  309,  310,  311,  312,  313,
   59,   59,   59,  123,  326,  125,  275,  306,  307,  308,
  309,  310,  311,  312,  313,  297,  298,  299,   10,   61,
  312,  313,  327,   61,   41,  330,  344,   44,  261,   44,
  263,   61,  265,   65,   93,   94,  356,  302,  303,  304,
  305,   41,    4,   41,   44,   37,   44,  118,   40,   41,
   42,   43,   44,   45,  364,   47,  364,  379,  175,  295,
  380,  294,  295,  296,  123,  298,  125,   59,  302,  303,
  304,  305,   -1,  364,  379,   -1,   -1,   37,  297,  298,
  299,  403,   42,   43,   -1,   45,   61,   47,  407,  407,
  407,  407,  407,  412,  412,  412,  412,  412,   -1,  421,
  420,   93,   94,   37,  210,  211,  212,   41,   42,   43,
   44,   45,   -1,   47,  302,  303,  304,  305,   -1,   -1,
   61,   -1,   -1,   -1,   61,   -1,   -1,   -1,  316,  317,
   -1,  123,   -1,  125,   94,   -1,   -1,  257,   -1,  259,
   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
   91,  271,  272,  273,  274,  275,  276,  277,  278,  279,
   94,   -1,  282,  283,  284,  285,  286,   -1,   -1,  289,
  290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,  309,
  310,  311,  312,  313,   -1,  315,  316,  317,  257,   61,
  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,   91,
  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  299,  300,  301,   -1,   -1,   -1,   61,  306,  307,  308,
  309,  310,  311,  312,  313,   -1,  315,  316,  317,   -1,
  302,  303,  304,  305,   -1,  257,   -1,  259,   -1,  261,
   -1,  263,   -1,  265,   -1,   -1,   91,  269,   -1,  271,
  272,  273,  274,  275,  276,  277,  278,  279,   -1,   -1,
  282,  283,  284,  285,  286,   -1,   -1,  289,  290,  291,
  292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
   10,   -1,   -1,   -1,  306,  307,  308,  309,  310,  311,
  312,  313,   -1,  315,  316,  317,   -1,  302,  303,  304,
  305,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,
   40,   41,   42,   43,   44,   45,   -1,   47,  308,  309,
  310,  311,  312,  313,   -1,   -1,   -1,   -1,   -1,   59,
   -1,  302,  303,  304,  305,  302,  303,  304,  305,   -1,
   -1,   10,  306,  307,  308,  309,  310,  311,  312,  313,
   -1,   -1,   86,   87,   88,   89,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   37,   -1,
   -1,   40,   41,   42,   43,   44,   45,  257,   47,   -1,
   -1,  261,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  269,
   59,  271,   -1,  123,   -1,  125,  130,  131,  132,  133,
  134,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  302,  303,  304,  305,   -1,   -1,   -1,  297,  298,  299,
  300,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   37,
   -1,   -1,   40,   41,   42,   43,   44,   45,   -1,   47,
   -1,   -1,   37,   -1,   -1,   -1,   41,   42,   43,   44,
   45,   59,   47,   -1,  123,   -1,  125,  302,  303,  304,
  305,   -1,   -1,   37,   -1,   -1,   -1,   41,   42,   43,
   44,   45,   -1,   47,   -1,   -1,   -1,   -1,   93,   94,
   95,   96,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   94,
   37,   -1,   -1,   -1,   41,   42,   43,   44,   45,   -1,
   47,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,
   94,  136,  137,  138,  139,  140,   -1,  257,   -1,  259,
   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
   -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
   -1,   -1,  282,  283,  284,  285,  286,   94,   -1,  289,
  290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,  309,
  310,  311,  312,  313,   -1,  315,  316,  317,  257,   -1,
  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,
  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  299,  300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,
  309,  310,  311,  312,  313,   -1,  315,  316,  317,  257,
   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
   -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  278,  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,
   -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  298,  299,  300,  301,   10,   -1,   -1,   -1,  306,  307,
  308,  309,  310,  311,  312,  313,   -1,  315,  316,  317,
   -1,  306,  307,  308,  309,  310,  311,  312,  313,   -1,
   -1,   37,   -1,   -1,   40,   41,   42,   43,   44,   45,
   -1,   47,  306,  307,  308,  309,  310,  311,  312,  313,
   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  306,
  307,  308,  309,  310,  311,  312,  313,   93,   -1,   -1,
   -1,   -1,   37,   -1,   -1,   40,   41,   42,   43,   44,
   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,
   -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
   -1,   -1,   -1,   37,   -1,   -1,   40,   41,   42,   43,
   44,   45,   -1,   47,   -1,   -1,   37,   -1,   -1,   -1,
   41,   42,   43,   -1,   45,   59,   47,   -1,  123,   -1,
  125,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,
   -1,   -1,   42,   43,   -1,   45,   -1,   47,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   94,   37,   -1,   -1,   -1,   41,   42,
   43,   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,  123,
   -1,  125,   -1,   93,   94,   -1,   -1,   -1,   -1,   -1,
   -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,
  276,  277,  278,  279,   -1,   -1,  282,  283,  284,  285,
  286,   94,   -1,  289,  290,  291,  292,  293,  294,  295,
  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,
  306,  307,  308,  309,  310,  311,  312,  313,   -1,  315,
  316,  317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  275,  276,  277,  278,  279,   -1,   -1,  282,  283,  284,
  285,  286,   -1,   -1,  289,  290,  291,  292,  293,  294,
  295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
   -1,  306,  307,  308,  309,  310,  311,  312,  313,   -1,
  315,  316,  317,  257,   -1,  259,   -1,  261,   -1,  263,
   -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,
  274,  275,  276,  277,  278,  279,   -1,   -1,  282,  283,
  284,  285,  286,   -1,   -1,  289,  290,  291,  292,  293,
  294,  295,  296,  297,  298,  299,  300,  301,   10,   -1,
   -1,   -1,  306,  307,  308,  309,  310,  311,  312,  313,
   -1,  315,  316,  317,   -1,  306,  307,  308,  309,  310,
  311,  312,  313,   -1,   -1,   37,   -1,   -1,   40,   41,
   42,   43,   44,   45,   -1,   47,  306,  307,  308,  309,
  310,  311,  312,  313,   -1,   -1,   -1,   59,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   10,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  306,  307,  308,  309,  310,  311,  312,
  313,   93,   -1,   -1,   -1,   -1,   37,   -1,   -1,   40,
   41,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   93,   -1,   -1,   -1,   -1,   37,   -1,   -1,
   40,   41,   42,   43,   44,   45,   -1,   47,   -1,   -1,
   37,   -1,   -1,   -1,   41,   42,   43,   -1,   45,   59,
   47,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
   -1,   37,   -1,   -1,   -1,   -1,   42,   43,   44,   45,
   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   94,   37,   -1,
   -1,   -1,   41,   42,   43,   -1,   45,   -1,   47,   -1,
   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,   94,   -1,
   -1,   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,
   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,
  272,  273,  274,  275,  276,  277,  278,  279,   -1,   -1,
  282,  283,  284,  285,  286,   94,   -1,  289,  290,  291,
  292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
   -1,   -1,   -1,   -1,  306,  307,  308,  309,  310,  311,
  312,  313,   -1,  315,  316,  317,  257,   -1,  259,   -1,
  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,
  271,  272,  273,  274,  275,  276,  277,  278,  279,   -1,
   -1,  282,  283,  284,  285,  286,   -1,   -1,  289,  290,
  291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
  301,   -1,   -1,   -1,   -1,  306,  307,  308,  309,  310,
  311,  312,  313,   -1,  315,  316,  317,  257,   -1,  259,
   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
   -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
   -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,  289,
  290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  300,  301,   10,   -1,   -1,   -1,  306,  307,  308,  309,
  310,  311,  312,  313,   -1,  315,  316,  317,   -1,  306,
  307,  308,  309,  310,  311,  312,  313,   -1,   -1,   37,
   -1,   -1,   40,   41,   42,   -1,   44,   -1,   -1,   47,
  306,  307,  308,  309,  310,  311,  312,  313,   -1,   -1,
   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  306,  307,  308,
  309,  310,  311,  312,  313,   93,   94,   -1,   -1,   -1,
   37,   -1,   -1,   40,   41,   42,   -1,   44,   -1,   -1,
   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,
   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   93,   94,   -1,   -1,
   -1,   37,   -1,   -1,   40,   41,   42,   -1,   44,   -1,
   -1,   47,   -1,   -1,   37,   -1,   -1,   -1,   -1,   42,
   43,   -1,   45,   59,   47,   -1,  123,   -1,  125,   -1,
   -1,   -1,   -1,   -1,   -1,   37,   59,   -1,   -1,   41,
   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   94,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   94,   37,   -1,   -1,   -1,   -1,   42,   43,   -1,
   45,   -1,   47,   -1,   -1,   -1,   -1,  123,   -1,  125,
   -1,   -1,   94,   -1,   -1,   -1,   -1,   -1,   -1,  257,
   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
   -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  278,  279,   -1,   -1,  282,  283,  284,  285,  286,   94,
   -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  298,  299,  300,  301,   -1,   -1,   -1,   -1,  306,  307,
  308,  309,  310,  311,  312,  313,   -1,  315,  316,  317,
  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,  276,
  277,  278,  279,   -1,   -1,  282,  283,  284,  285,  286,
   -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,  306,
  307,  308,  309,  310,  311,  312,  313,   -1,  315,  316,
  317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,
  276,  277,  278,  279,   -1,   -1,  282,  283,  284,  285,
  286,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  296,  297,  298,  299,  300,  301,   10,   -1,   -1,   -1,
  306,  307,  308,  309,  310,  311,  312,  313,   -1,  315,
  316,  317,   -1,  306,  307,  308,  309,  310,  311,  312,
  313,   -1,   -1,   37,   -1,   -1,   40,   41,   42,   -1,
   44,   -1,   -1,   47,  306,  307,  308,  309,  310,  311,
  312,  313,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  307,  308,  309,  310,  311,  312,  313,   93,
   94,   -1,   -1,   -1,   37,   -1,   -1,   40,   -1,   42,
   43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,
   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   94,   -1,   -1,   -1,   37,   -1,   -1,   40,   -1,
   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   94,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,  123,   40,  125,   -1,   -1,   -1,   45,   -1,   -1,
   -1,   -1,   -1,  257,   -1,  259,   -1,  261,   -1,  263,
   -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,
  274,  275,  276,  277,  278,  279,   -1,   -1,  282,  283,
  284,  285,  286,   -1,   -1,  289,  290,  291,  292,  293,
  294,  295,  296,  297,  298,  299,  300,  301,   -1,   -1,
   -1,   -1,  306,  307,  308,  309,  310,  311,  312,  313,
   -1,  315,  316,  317,  257,   -1,  259,   -1,  261,   -1,
  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,
  273,  274,  275,  276,  277,  278,  279,   -1,   -1,  282,
  283,  284,  285,   -1,   -1,   -1,  289,  290,  291,  292,
  293,  294,  295,  296,  297,  298,  299,  300,  301,   -1,
   -1,   -1,   -1,  306,  307,  308,  309,  310,  311,  312,
  313,   -1,  315,  316,  317,  257,   -1,  259,   -1,  261,
   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,
  272,  273,  274,  275,  276,  277,  278,  279,   -1,   -1,
  282,  283,  284,  285,   -1,   -1,   -1,  289,  290,  291,
  292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
   10,   -1,   -1,   -1,  306,  307,  308,  309,  310,  311,
  312,  313,   -1,  315,  316,  317,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,
   40,   -1,   42,   43,   -1,   45,   -1,   47,   -1,  257,
   -1,  259,   -1,  261,   -1,  263,   -1,  265,  266,   59,
  268,  269,   -1,  271,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   10,   -1,   -1,  282,   -1,  284,   -1,   -1,   -1,
   -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  298,  299,  300,  301,   94,   -1,   -1,   -1,   -1,   -1,
   -1,   40,   41,   -1,   43,   44,   45,  315,  316,  317,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,
   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   40,   41,   -1,   43,   44,   45,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,  259,
   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
   -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
   -1,   -1,  282,  283,  284,  285,   -1,   -1,   -1,  289,
  290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,  309,
  310,  311,  312,  313,   -1,  315,  316,  317,  257,   -1,
  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,
  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  299,  300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,
  309,  310,  311,  312,  313,   40,  315,  316,  317,  257,
   45,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
   -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  278,  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,
   10,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  298,  299,  300,  301,   -1,   -1,   -1,   -1,  306,  307,
  308,  309,  310,  311,  312,  313,   -1,  315,  316,  317,
   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,   59,
  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,
   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
   -1,   -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
   -1,  276,  277,  278,  279,   93,   -1,  282,  283,  284,
  285,   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,
  295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,
  315,  316,  317,   -1,   -1,   -1,   -1,  257,   -1,  259,
   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
   -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
   -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,  289,
  290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,  309,
  310,  311,  312,  313,   -1,  315,  316,  317,  257,   -1,
  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,
  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  299,  300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,
  309,  310,  311,  312,  313,   40,  315,  316,  317,  257,
   45,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
   -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  278,  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,
   10,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  298,  299,  300,  301,   -1,   -1,   -1,   -1,  306,  307,
  308,  309,  310,  311,  312,  313,   -1,  315,  316,  317,
   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,   59,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,
   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
   -1,   -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
   -1,  276,  277,  278,  279,   93,   -1,  282,  283,  284,
  285,   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,
  295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,
  315,  316,  317,   -1,   -1,   -1,   -1,  257,   -1,  259,
   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
   -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
   -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,  289,
  290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,  309,
  310,  311,  312,  313,   -1,  315,  316,  317,  257,   -1,
  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,
  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  299,  300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,
  309,  310,  311,  312,  313,   -1,  315,  316,  317,  257,
   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
   -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  278,  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,
   10,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  298,  299,  300,  301,   -1,   -1,   -1,   -1,  306,  307,
  308,  309,  310,  311,  312,  313,   -1,  315,  316,  317,
   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   40,   -1,   -1,   43,   44,   45,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,
   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   44,
   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   59,  123,   -1,  125,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,  259,
   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
   -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
   -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,  289,
  290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  300,  301,   -1,   -1,   -1,   -1,  306,  307,  123,   -1,
  125,   -1,   -1,   -1,   -1,  315,  316,  317,  257,   -1,
  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  279,   -1,   -1,  282,  283,  284,  285,   -1,   -1,   -1,
  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  312,  313,   -1,  315,  316,  317,  257,
   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
   -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  278,  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,
   -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  298,  299,  300,  301,   -1,   -1,   -1,   -1,  306,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,  317,
   40,   -1,  257,   -1,  259,   45,  261,   -1,  263,   -1,
  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  275,  276,  277,  278,  279,   -1,   -1,  282,  283,  284,
  285,   -1,   -1,   10,  289,  290,  291,  292,  293,  294,
  295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  312,  313,   -1,
  315,  316,  317,   40,   -1,   -1,   43,   -1,   45,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,
   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,  259,
   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
   -1,  271,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
   -1,   -1,  282,   -1,  284,   -1,   -1,   -1,   -1,  289,
  290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,
  125,   -1,   -1,   -1,   -1,  315,  316,  317,   -1,   -1,
  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,  276,
  277,  278,  279,   -1,   -1,  282,  283,  284,  285,   -1,
   -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  312,  313,   -1,  315,  316,
  317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,
  276,  277,  278,  279,   10,   -1,  282,  283,  284,  285,
  286,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,  315,
  316,  317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  265,   -1,   -1,   59,  269,   -1,  271,  272,  273,  274,
  275,  276,  277,  278,  279,   10,   -1,  282,  283,  284,
  285,  286,   -1,   -1,  289,  290,  291,  292,  293,  294,
  295,  296,  297,  298,  299,  300,  301,   93,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,
  315,  316,  317,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,
   -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,
   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,
  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,
   59,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,
  276,  277,  278,  279,   93,   -1,  282,  283,  284,  285,
  286,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,  315,
  316,  317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  275,  276,  277,  278,  279,   -1,   -1,  282,  283,  284,
  285,  286,   -1,   -1,  289,  290,  291,  292,  293,  294,
  295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  315,  316,  317,  257,   -1,  259,   -1,  261,   -1,  263,
   -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,
  274,  275,  276,  277,  278,  279,   -1,   -1,  282,  283,
  284,  285,  286,   -1,   -1,  289,  290,  291,  292,  293,
  294,  295,  296,  297,  298,  299,  300,  301,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,  315,  316,  317,   -1,   -1,   -1,   -1,  257,   -1,
  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  279,   10,   -1,  282,  283,  284,  285,  286,   -1,   -1,
  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   40,   41,   -1,   -1,   44,  315,  316,  317,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,
   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  123,   59,  125,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,
  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  279,   93,   -1,  282,  283,  284,  285,  286,   -1,   -1,
  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,  123,   -1,  125,   -1,   -1,  315,  316,  317,  257,
   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
   -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  278,  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,
   -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,  317,
  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,  276,
  277,  278,  279,   -1,   -1,  282,  283,  284,  285,  286,
   -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,
  317,   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,
   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,
  272,  273,  274,  275,  276,  277,  278,  279,   10,   -1,
  282,  283,  284,  285,  286,   -1,   -1,  289,  290,  291,
  292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,
   -1,   -1,   44,  315,  316,  317,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   10,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,
   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  123,   59,  125,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,
   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,
  272,  273,  274,  275,  276,  277,  278,  279,   93,   -1,
  282,  283,  284,  285,  286,   -1,   -1,  289,  290,  291,
  292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,
  125,   -1,   -1,  315,  316,  317,  257,   -1,  259,   -1,
  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,
  271,  272,  273,  274,  275,  276,  277,  278,  279,   -1,
   -1,  282,  283,  284,  285,  286,   -1,   -1,  289,  290,
  291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  315,  316,  317,  257,   -1,  259,
   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
   -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
   -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,  289,
  290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  315,  316,  317,   -1,   -1,
   -1,   -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  275,  276,  277,  278,  279,   10,   -1,  282,  283,  284,
  285,  286,   -1,   -1,  289,  290,  291,  292,  293,  294,
  295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,
  315,  316,  317,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,
   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,
  125,   -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,
   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  123,   59,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  275,  276,  277,  278,  279,   93,   -1,  282,  283,  284,
  285,  286,   -1,   -1,  289,  290,  291,  292,  293,  294,
  295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,
  315,  316,  317,  257,   -1,  259,   -1,  261,   -1,  263,
   -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,
  274,  275,  276,  277,  278,  279,   -1,   -1,  282,  283,
  284,  285,  286,   -1,   -1,  289,  290,  291,  292,  293,
  294,  295,  296,  297,  298,  299,  300,  301,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,  315,  316,  317,  257,   -1,  259,   -1,  261,   -1,
  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,
  273,  274,  275,  276,  277,  278,  279,   10,   -1,  282,
  283,  284,  285,  286,   -1,   -1,  289,  290,  291,  292,
  293,  294,  295,  296,  297,  298,  299,  300,  301,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
   -1,   44,  315,  316,  317,   -1,   -1,   -1,   -1,  257,
   -1,  259,   -1,  261,   -1,  263,   59,  265,   -1,   -1,
   -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  278,  279,   10,   -1,  282,  283,  284,  285,  286,   -1,
   -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   40,   41,   -1,   -1,   44,  315,  316,  317,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  123,   59,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,
   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,
   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,   -1,
  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,
  273,  274,  275,  276,  277,  278,  279,   -1,   -1,  282,
  283,  284,  285,   -1,   -1,   -1,  289,  290,  291,  292,
  293,  294,  295,  296,  297,  298,  299,  300,  301,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,
   -1,   -1,  315,  316,  317,   -1,   -1,   -1,   -1,  257,
   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
   -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  278,  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,
   -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,  317,
  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,  276,
  277,  278,  279,   10,   -1,  282,  283,  284,  285,  286,
   -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   40,   41,   -1,   -1,   44,  315,  316,
  317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
   -1,   -1,   59,  269,   -1,  271,  272,  273,  274,  275,
  276,  277,  278,  279,   10,   -1,  282,  283,  284,  285,
   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,  315,
  316,  317,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,
   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,
   -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,
   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,
  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,  276,
  277,  278,  279,   -1,   -1,  282,  283,  284,  285,   -1,
   -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,  123,
   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,
  317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,
  276,  277,  278,  279,   -1,   -1,  282,  283,  284,  285,
   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,
  316,  317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  275,  276,  277,  278,  279,   10,   -1,  282,  283,  284,
  285,   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,
  295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,
  315,  316,  317,  257,   -1,  259,   -1,  261,   -1,  263,
   -1,  265,   -1,   -1,   59,  269,   -1,  271,  272,  273,
  274,  275,  276,  277,  278,  279,   10,   -1,  282,  283,
  284,  285,   -1,   -1,   -1,  289,  290,  291,  292,  293,
  294,  295,  296,  297,  298,  299,  300,  301,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,
   44,  315,  316,  317,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,
  125,   -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,
   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,
   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  275,  276,  277,  278,  279,   -1,   -1,  282,  283,  284,
  285,   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,
  295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
  315,  316,  317,  257,   -1,  259,   -1,  261,   -1,  263,
   -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,
  274,  275,  276,  277,  278,  279,   -1,   -1,  282,  283,
  284,  285,   -1,   -1,   -1,  289,  290,  291,  292,  293,
  294,  295,  296,  297,  298,  299,  300,  301,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,  315,  316,  317,  257,   -1,  259,   -1,  261,   -1,
  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,
  273,  274,  275,  276,  277,  278,  279,   10,   -1,  282,
  283,  284,  285,   -1,   -1,   -1,  289,  290,  291,  292,
  293,  294,  295,  296,  297,  298,  299,  300,  301,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
   -1,   44,  315,  316,  317,  257,   -1,  259,   -1,  261,
   -1,  263,   -1,  265,   -1,   -1,   59,  269,   -1,  271,
  272,  273,  274,  275,  276,  277,  278,  279,   10,   -1,
  282,  283,  284,  285,   -1,   -1,   -1,  289,  290,  291,
  292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,
   -1,   -1,   44,  315,  316,  317,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   10,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,
   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,   -1,
  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,
  273,  274,  275,  276,  277,  278,  279,   -1,   -1,  282,
  283,  284,  285,   -1,   -1,   -1,  289,  290,  291,  292,
  293,  294,  295,  296,  297,  298,  299,  300,  301,   -1,
   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,
   -1,   -1,  315,  316,  317,  257,   -1,  259,   -1,  261,
   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,
  272,  273,  274,  275,  276,  277,  278,  279,   -1,   -1,
  282,  283,  284,  285,   -1,   -1,   -1,  289,  290,  291,
  292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  315,  316,  317,  257,   -1,  259,   -1,
  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,
  271,  272,  273,  274,  275,  276,  277,  278,  279,   10,
   -1,  282,  283,  284,  285,   -1,   -1,   -1,  289,  290,
  291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,
   41,   -1,   -1,   44,  315,  316,  317,  257,   -1,  259,
   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   59,  269,
   -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
   10,   -1,  282,  283,  284,  285,   -1,   -1,   -1,  289,
  290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   40,   41,   -1,   -1,   44,  315,  316,  317,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,
   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,
  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,
  271,  272,  273,  274,  275,  276,  277,  278,  279,   -1,
   -1,  282,  283,  284,  285,   -1,   -1,   -1,  289,  290,
  291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
  301,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,
   -1,   -1,   -1,   -1,  315,  316,  317,  257,   -1,  259,
   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
   -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
   -1,   -1,  282,  283,  284,  285,   -1,   -1,   -1,  289,
  290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  315,  316,  317,  257,   -1,
  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  279,   10,   -1,  282,  283,  284,  285,   -1,   -1,   -1,
  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   40,   41,   -1,   -1,   44,  315,  316,  317,  257,
   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
   59,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  278,  279,   10,   -1,  282,  283,  284,  285,   -1,   -1,
   -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   40,   41,   -1,   -1,   44,  315,  316,  317,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   40,   -1,   -1,   -1,   44,   45,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,
   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,   44,   45,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,
  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  279,   -1,   -1,  282,  283,  284,  285,   -1,   -1,   -1,
  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  299,  300,  301,   -1,   -1,   -1,   -1,  123,   -1,  125,
   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,  317,  257,
   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
   -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  278,  279,   -1,   -1,  282,  283,  284,  285,   -1,   -1,
   -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  298,  299,  300,  301,   -1,   -1,   -1,   -1,   40,   -1,
   -1,   -1,   -1,   45,   -1,   -1,   -1,  315,  316,  317,
  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
   -1,   -1,  269,   -1,  271,  272,  273,  274,   -1,  276,
  277,  278,  279,   -1,   -1,  282,  283,  284,  285,  286,
   -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,
  317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,   10,
  276,  277,  278,  279,   -1,   -1,  282,  283,  284,  285,
  286,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,   40,
   -1,   -1,   -1,   -1,   45,   -1,   -1,   -1,   -1,  315,
  316,  317,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   40,   -1,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
   -1,   10,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,
   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  282,   40,  284,   -1,   -1,   -1,   45,  289,  290,  291,
  292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,
   -1,   -1,   10,  315,  316,  317,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   40,   -1,   -1,   -1,   44,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,
  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,
  271,  272,  273,  274,  275,  276,  277,  278,  279,   -1,
   -1,  282,  283,  284,  285,   -1,   -1,   -1,  289,  290,
  291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
  301,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,
   -1,   -1,   -1,   -1,  315,  316,  317,  257,   -1,  259,
   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
   -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
   -1,   -1,  282,  283,  284,  285,   -1,   -1,   -1,  289,
  290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  315,  316,  317,  257,   -1,
  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  279,   10,   -1,  282,  283,  284,  285,   -1,   -1,   -1,
  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   40,   -1,   -1,   -1,   44,  315,  316,  317,  257,
   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
   59,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  278,  279,   10,   -1,  282,  283,  284,  285,   -1,   -1,
   -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   40,   -1,   -1,   -1,   44,  315,  316,  317,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,   45,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,
   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,   44,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,
  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  279,   -1,   -1,  282,  283,  284,  285,   -1,   -1,   -1,
  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  299,  300,  301,   -1,   -1,   -1,   -1,  123,   -1,  125,
   -1,   -1,   -1,   -1,   -1,   10,  315,  316,  317,  257,
   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
   -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  278,  279,   -1,   -1,  282,  283,  284,  285,   -1,   -1,
   45,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  298,  299,  300,  301,   59,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,  317,
  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
   -1,   -1,  269,   -1,  271,  272,  273,  274,   -1,  276,
  277,  278,  279,   10,   -1,  282,  283,  284,  285,  286,
   -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  297,  298,  299,  300,  301,   -1,   -1,   -1,  123,   -1,
  125,   -1,   -1,   40,   -1,   -1,   -1,   44,  315,  316,
  317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
   -1,   -1,   59,  269,   -1,  271,  272,  273,  274,   -1,
  276,  277,  278,  279,   -1,   -1,  282,  283,  284,  285,
  286,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,  315,
  316,  317,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,
   -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,   45,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  275,  276,  277,  278,  279,   -1,   -1,  282,  283,  284,
  285,   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,
  295,  296,  297,  298,  299,  300,  301,  123,   10,  125,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  315,  316,  317,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
   -1,   -1,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
   -1,   -1,  269,   -1,  271,  272,  273,  274,   -1,  276,
  277,  278,  279,   -1,   -1,  282,  283,  284,  285,  286,
   -1,   10,  289,  290,  291,  292,  293,  294,  295,  296,
  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,
  317,   40,   -1,   -1,   -1,   -1,   45,   -1,   -1,   -1,
   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,   -1,
  276,  277,  278,  279,   -1,   -1,  282,  283,  284,  285,
   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  296,  297,  298,  299,  300,  301,   -1,   10,   -1,   -1,
   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,  315,
  316,  317,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,
   -1,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,
   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,
  272,  273,  274,  275,  276,  277,  278,  279,   -1,   -1,
  282,  283,  284,  285,   -1,   -1,   -1,  289,  290,  291,
  292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  315,  316,  317,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,
  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  269,   -1,  271,  272,  273,  274,   -1,  276,  277,  278,
  279,   -1,   -1,  282,  283,  284,  285,   -1,   -1,   -1,
  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  299,  300,  301,   -1,   10,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,  317,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   37,   -1,   -1,   40,   41,   42,   43,   44,   45,
   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,   -1,
  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,
  273,  274,   -1,  276,  277,  278,  279,   93,   94,  282,
  283,  284,  285,   -1,   -1,   -1,  289,  290,  291,  292,
  293,  294,  295,  296,  297,  298,  299,  300,  301,   10,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,
   -1,   -1,  315,  316,  317,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,   40,
   41,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,   45,   -1,
   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,
  276,  277,  278,  279,   -1,   -1,  282,  283,  284,  285,
  286,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  296,  297,  298,  299,  300,  301,  123,   -1,  125,   -1,
  306,  307,  308,  309,  310,  311,  312,  313,   -1,  315,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
   -1,   -1,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,
  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,
  271,  272,  273,  274,  275,  276,  277,  278,  279,   -1,
   -1,  282,  283,  284,  285,  286,   -1,   -1,  289,  290,
  291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
  301,  123,   -1,   -1,   -1,  306,  307,  308,  309,  310,
  311,  312,  313,   40,  315,   -1,   -1,   -1,   45,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,  276,
  277,  278,  279,   -1,   -1,  282,  283,  284,  285,   -1,
   -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,
  317,   -1,   -1,   -1,   -1,   -1,  123,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,
   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,
  272,  273,  274,   -1,  276,  277,  278,  279,   -1,   -1,
  282,  283,  284,  285,   -1,   -1,   -1,  289,  290,  291,
  292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,  315,  316,  317,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
   -1,   -1,  269,   -1,  271,  272,  273,  274,   -1,  276,
  277,  278,  279,   -1,   -1,  282,  283,  284,  285,   -1,
   -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,
  317,
};
#define YYFINAL 1
#ifndef YYDEBUG
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 317
#if YYDEBUG
char *Ft_mathyyname[] = {
"end-of-file",0,0,0,0,0,0,0,0,0,"'\\n'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,"'%'",0,0,"'('","')'","'*'","'+'","','","'-'",0,"'/'",0,0,0,0,0,0,0,
0,0,0,0,"';'",0,"'='",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
"'['",0,"']'","'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
"'{'",0,"'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"VAR","BLTINVAR","CONST","BLTINCONST",
"STRVAR","BLTINSTRVAR","STRCONST","BLTINSTRCONST","STRING","UNDEFVEC",
"UNDEFVAR","UNDEFSTRVAR","VEC","AUTOVEC","PARAM","PRINT","WHILE","IF","ELSE",
"CONTINUE","BREAK","FOR","RETURN","FUNC","PROC","FUNCSYM","PROCSYM","EFUNCSYM",
"EPROCSYM","AUTO","ARG","AUTOSTRVAR","BLTIN0","BLTIN1","BLTIN2","STRBLTIN2",
"BLTIN1VEC","BLTIN0STR","BLTIN1STR","BLTIN2STR","VARARG","STRVARARG","VECARG",
"PARARG","NUMBER","DIVASS","MULASS","ADDASS","SUBASS","OR","AND","GT","GE","LT",
"LE","EQ","NE","UNARYMINUS","NOT","INCR","DECR",
};
char *Ft_mathyyrule[] = {
"$accept : list",
"list :",
"list : list '\\n'",
"list : list defn '\\n'",
"list : list stmtline '\\n'",
"list : list error '\\n'",
"stmtline : begin stmt",
"stmtline : stmtline ';' stmt",
"asgn : VAR '=' expr",
"asgn : VAR ADDASS expr",
"asgn : VAR SUBASS expr",
"asgn : VAR MULASS expr",
"asgn : VAR DIVASS expr",
"asgn : VARARG '=' expr",
"asgn : VARARG ADDASS expr",
"asgn : VARARG SUBASS expr",
"asgn : VARARG MULASS expr",
"asgn : VARARG DIVASS expr",
"asgn : argelement '=' expr",
"asgn : argelement ADDASS expr",
"asgn : argelement SUBASS expr",
"asgn : argelement MULASS expr",
"asgn : argelement DIVASS expr",
"asgn : element '=' expr",
"asgn : element ADDASS expr",
"asgn : element SUBASS expr",
"asgn : element MULASS expr",
"asgn : element DIVASS expr",
"strasgn : STRVAR '=' string",
"strasgn : STRVARARG '=' string",
"vecasgn : VEC '=' vecloop expr",
"vecasgn : VEC ADDASS vecloop expr",
"vecasgn : VEC SUBASS vecloop expr",
"vecasgn : VEC MULASS vecloop expr",
"vecasgn : VEC DIVASS vecloop expr",
"vecasgn : VECARG '=' vecloop expr",
"vecasgn : VECARG ADDASS vecloop expr",
"vecasgn : VECARG SUBASS vecloop expr",
"vecasgn : VECARG MULASS vecloop expr",
"vecasgn : VECARG DIVASS vecloop expr",
"parasgn : PARAM '=' parloop expr",
"parasgn : PARAM ADDASS parloop expr",
"parasgn : PARAM SUBASS parloop expr",
"parasgn : PARAM MULASS parloop expr",
"parasgn : PARAM DIVASS parloop expr",
"parasgn : PARARG '=' parloop expr",
"parasgn : PARARG ADDASS parloop expr",
"parasgn : PARARG SUBASS parloop expr",
"parasgn : PARARG MULASS parloop expr",
"parasgn : PARARG DIVASS parloop expr",
"argelement : VECARG index",
"argelement : PARARG index",
"element : VEC index",
"element : PARAM index",
"index : '[' expr ']'",
"vecloop :",
"parloop :",
"stmt : strasgn",
"stmt : dontprint",
"stmt : vecasgn",
"stmt : parasgn",
"stmt : linprlist",
"stmt : PRINT prlist",
"stmt : RETURN",
"stmt : RETURN '(' expr ')'",
"stmt : CONTINUE",
"stmt : BREAK",
"stmt : EPROCSYM begin '(' arglist ')'",
"stmt : PROCSYM begin '(' arglist ')'",
"stmt : while cond newline stmtline end",
"stmt : if cond newline stmtline end newline",
"stmt : if cond newline stmtline end newline else newline stmtline end",
"stmt : for asgnlist forcond exprlist newline stmtline end",
"$$1 :",
"stmt : opbrace autolines $$1 stmtlist clbrace",
"newline :",
"newline : '\\n'",
"opbrace : '{'",
"clbrace : '}'",
"stmtlist :",
"stmtlist : stmtlist '\\n'",
"stmtlist : stmtlist stmtline",
"autolines :",
"autolines : autol",
"autolines : autolines ';'",
"autolines : autolines '\\n'",
"autolines : autolines autol",
"$$2 :",
"autol : AUTO $$2 autolist",
"autolist : VARARG",
"$$3 :",
"autolist : VARARG '=' $$3 expr",
"autolist : STRVARARG",
"autolist : VECARG",
"autolist : autolist ',' VARARG",
"$$4 :",
"autolist : autolist ',' VARARG '=' $$4 expr",
"autolist : autolist ',' VECARG",
"autolist : autolist ',' STRVARARG",
"cond : '(' expr ')'",
"asgnlist : '(' asgnl",
"asgnl : asgn",
"asgnl : strasgn",
"asgnl : vecasgn",
"asgnl : parasgn",
"asgnl : asgnl ',' asgn",
"asgnl : asgnl ',' strasgn",
"asgnl : asgnl ',' vecasgn",
"asgnl : asgnl ',' parasgn",
"forcond : ';' expr ';'",
"exprlist : exprl ')'",
"exprl : expr",
"exprl : string",
"exprl : vecasgn",
"exprl : parasgn",
"exprl : exprl ',' expr",
"exprl : exprl ',' string",
"exprl : exprl ',' vecasgn",
"exprl : exprl ',' parasgn",
"while : WHILE",
"if : IF",
"else : ELSE",
"for : FOR",
"begin :",
"end :",
"dontprint : varincr",
"dontprint : asgn",
"expr : argexpr",
"expr : VEC",
"expr : VECARG",
"argexpr : value",
"argexpr : dontprint",
"argstr : STRVAR",
"argstr : UNDEFSTRVAR",
"nicevec : VEC",
"argvec : nicevec",
"argvec : UNDEFVEC",
"argpar : PARAM",
"varincr : INCR VAR",
"varincr : VAR INCR",
"varincr : DECR VAR",
"varincr : VAR DECR",
"varincr : INCR VARARG",
"varincr : VARARG INCR",
"varincr : DECR VARARG",
"varincr : VARARG DECR",
"value : NUMBER",
"value : VARARG",
"value : VAR",
"value : CONST",
"value : EFUNCSYM begin '(' arglist ')'",
"value : FUNCSYM begin '(' arglist ')'",
"value : BLTIN0 '(' ')'",
"value : BLTIN1VEC '(' nicevec ')'",
"value : BLTIN1 '(' expr ')'",
"value : BLTIN2 '(' expr ',' expr ')'",
"value : STRBLTIN2 '(' string ',' string ')'",
"value : element",
"value : argelement",
"value : '(' expr ')'",
"value : expr '+' expr",
"value : expr '-' expr",
"value : expr '/' expr",
"value : expr '%' expr",
"value : expr '*' expr",
"value : expr '^' expr",
"value : '-' expr",
"value : string EQ string",
"value : string NE string",
"value : expr GT expr",
"value : expr GE expr",
"value : expr LT expr",
"value : expr LE expr",
"value : expr EQ expr",
"value : expr NE expr",
"value : expr AND expr",
"value : expr OR expr",
"value : NOT expr",
"string : strvalue",
"string : strasgn",
"strvalue : STRING",
"strvalue : STRVAR",
"strvalue : STRVARARG",
"strvalue : STRCONST",
"strvalue : BLTIN2STR '(' string ',' string ')'",
"strvalue : BLTIN1STR '(' string ')'",
"strvalue : BLTIN0STR '(' ')'",
"strvalue : string '-' string",
"strvalue : string '+' string",
"strvalue : '(' string ')'",
"$$5 :",
"$$6 :",
"$$7 :",
"defn : FUNC procname $$5 '(' $$6 protolist ')' $$7 stmt",
"$$8 :",
"$$9 :",
"$$10 :",
"defn : PROC procname $$8 '(' $$9 protolist ')' $$10 stmt",
"procname : VAR",
"procname : FUNCSYM",
"procname : PROCSYM",
"protolist :",
"protolist : VARARG",
"protolist : VECARG",
"protolist : PARARG",
"protolist : STRVARARG",
"protolist : protolist ',' VARARG",
"protolist : protolist ',' VECARG",
"protolist : protolist ',' PARARG",
"protolist : protolist ',' STRVARARG",
"arglist :",
"arglist : argpar",
"arglist : argvec",
"arglist : argstr",
"arglist : argexpr",
"arglist : arglist ',' argpar",
"arglist : arglist ',' argvec",
"arglist : arglist ',' argstr",
"arglist : arglist ',' argexpr",
"linprlist : value",
"linprlist : strvalue",
"linprlist : linprlist ',' value",
"linprlist : linprlist ',' strvalue",
"prlist : expr",
"prlist : string",
"prlist : prlist ',' expr",
"prlist : prlist ',' string",
};
#endif
#ifdef YYSTACKSIZE
#undef YYMAXDEPTH
#define YYMAXDEPTH YYSTACKSIZE
#else
#ifdef YYMAXDEPTH
#define YYSTACKSIZE YYMAXDEPTH
#else
#define YYSTACKSIZE 500
#define YYMAXDEPTH 500
#endif
#endif
int Ft_mathyydebug;
int Ft_mathyynerrs;
int Ft_mathyyerrflag;
int Ft_mathyychar;
short *Ft_mathyyssp;
YYSTYPE *Ft_mathyyvsp;
YYSTYPE Ft_mathyyval;
YYSTYPE Ft_mathyylval;
short Ft_mathyyss[YYSTACKSIZE];
YYSTYPE Ft_mathyyvs[YYSTACKSIZE];
#define Ft_mathyystacksize YYSTACKSIZE
#line 725 "parse.y"

#line 2779 "y.tab.c"
#define YYABORT goto Ft_mathyyabort
#define YYREJECT goto Ft_mathyyabort
#define YYACCEPT goto Ft_mathyyaccept
#define YYERROR goto Ft_mathyyerrlab
int
Ft_mathyyparse()
{
    register int Ft_mathyym, Ft_mathyyn, Ft_mathyystate;
#if YYDEBUG
    register char *Ft_mathyys;
    extern char *getenv();

    if (Ft_mathyys = getenv("YYDEBUG"))
    {
        Ft_mathyyn = *Ft_mathyys;
        if (Ft_mathyyn >= '0' && Ft_mathyyn <= '9')
            Ft_mathyydebug = Ft_mathyyn - '0';
    }
#endif

    Ft_mathyynerrs = 0;
    Ft_mathyyerrflag = 0;
    Ft_mathyychar = (-1);

    Ft_mathyyssp = Ft_mathyyss;
    Ft_mathyyvsp = Ft_mathyyvs;
    *Ft_mathyyssp = Ft_mathyystate = 0;

Ft_mathyyloop:
    if (Ft_mathyyn = Ft_mathyydefred[Ft_mathyystate]) goto Ft_mathyyreduce;
    if (Ft_mathyychar < 0)
    {
        if ((Ft_mathyychar = Ft_mathyylex()) < 0) Ft_mathyychar = 0;
#if YYDEBUG
        if (Ft_mathyydebug)
        {
            Ft_mathyys = 0;
            if (Ft_mathyychar <= YYMAXTOKEN) Ft_mathyys = Ft_mathyyname[Ft_mathyychar];
            if (!Ft_mathyys) Ft_mathyys = "illegal-symbol";
            printf("%sdebug: state %d, reading %d (%s)\n",
                    YYPREFIX, Ft_mathyystate, Ft_mathyychar, Ft_mathyys);
        }
#endif
    }
    if ((Ft_mathyyn = Ft_mathyysindex[Ft_mathyystate]) && (Ft_mathyyn += Ft_mathyychar) >= 0 &&
            Ft_mathyyn <= YYTABLESIZE && Ft_mathyycheck[Ft_mathyyn] == Ft_mathyychar)
    {
#if YYDEBUG
        if (Ft_mathyydebug)
            printf("%sdebug: state %d, shifting to state %d\n",
                    YYPREFIX, Ft_mathyystate, Ft_mathyytable[Ft_mathyyn]);
#endif
        if (Ft_mathyyssp >= Ft_mathyyss + Ft_mathyystacksize - 1)
        {
            goto Ft_mathyyoverflow;
        }
        *++Ft_mathyyssp = Ft_mathyystate = Ft_mathyytable[Ft_mathyyn];
        *++Ft_mathyyvsp = Ft_mathyylval;
        Ft_mathyychar = (-1);
        if (Ft_mathyyerrflag > 0)  --Ft_mathyyerrflag;
        goto Ft_mathyyloop;
    }
    if ((Ft_mathyyn = Ft_mathyyrindex[Ft_mathyystate]) && (Ft_mathyyn += Ft_mathyychar) >= 0 &&
            Ft_mathyyn <= YYTABLESIZE && Ft_mathyycheck[Ft_mathyyn] == Ft_mathyychar)
    {
        Ft_mathyyn = Ft_mathyytable[Ft_mathyyn];
        goto Ft_mathyyreduce;
    }
    if (Ft_mathyyerrflag) goto Ft_mathyyinrecovery;
#ifdef lint
    goto Ft_mathyynewerror;
#endif
Ft_mathyynewerror:
    Ft_mathyyerror("syntax error");
#ifdef lint
    goto Ft_mathyyerrlab;
#endif
Ft_mathyyerrlab:
    ++Ft_mathyynerrs;
Ft_mathyyinrecovery:
    if (Ft_mathyyerrflag < 3)
    {
        Ft_mathyyerrflag = 3;
        for (;;)
        {
            if ((Ft_mathyyn = Ft_mathyysindex[*Ft_mathyyssp]) && (Ft_mathyyn += YYERRCODE) >= 0 &&
                    Ft_mathyyn <= YYTABLESIZE && Ft_mathyycheck[Ft_mathyyn] == YYERRCODE)
            {
#if YYDEBUG
                if (Ft_mathyydebug)
                    printf("%sdebug: state %d, error recovery shifting\
 to state %d\n", YYPREFIX, *Ft_mathyyssp, Ft_mathyytable[Ft_mathyyn]);
#endif
                if (Ft_mathyyssp >= Ft_mathyyss + Ft_mathyystacksize - 1)
                {
                    goto Ft_mathyyoverflow;
                }
                *++Ft_mathyyssp = Ft_mathyystate = Ft_mathyytable[Ft_mathyyn];
                *++Ft_mathyyvsp = Ft_mathyylval;
                goto Ft_mathyyloop;
            }
            else
            {
#if YYDEBUG
                if (Ft_mathyydebug)
                    printf("%sdebug: error recovery discarding state %d\n",
                            YYPREFIX, *Ft_mathyyssp);
#endif
                if (Ft_mathyyssp <= Ft_mathyyss) goto Ft_mathyyabort;
                --Ft_mathyyssp;
                --Ft_mathyyvsp;
            }
        }
    }
    else
    {
        if (Ft_mathyychar == 0) goto Ft_mathyyabort;
#if YYDEBUG
        if (Ft_mathyydebug)
        {
            Ft_mathyys = 0;
            if (Ft_mathyychar <= YYMAXTOKEN) Ft_mathyys = Ft_mathyyname[Ft_mathyychar];
            if (!Ft_mathyys) Ft_mathyys = "illegal-symbol";
            printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
                    YYPREFIX, Ft_mathyystate, Ft_mathyychar, Ft_mathyys);
        }
#endif
        Ft_mathyychar = (-1);
        goto Ft_mathyyloop;
    }
Ft_mathyyreduce:
#if YYDEBUG
    if (Ft_mathyydebug)
        printf("%sdebug: state %d, reducing by rule %d (%s)\n",
                YYPREFIX, Ft_mathyystate, Ft_mathyyn, Ft_mathyyrule[Ft_mathyyn]);
#endif
    Ft_mathyym = Ft_mathyylen[Ft_mathyyn];
    Ft_mathyyval = Ft_mathyyvsp[1-Ft_mathyym];
    switch (Ft_mathyyn)
    {
case 4:
#line 78 "parse.y"
{
            CODE("STOP");
            code(STOP); Ft_execute(Ft_Progbase); return(1); }
break;
case 5:
#line 81 "parse.y"
{ Ft_mathyyerrok; }
break;
case 8:
#line 86 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "assign");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_assign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 9:
#line 89 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "addassign");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_addassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 10:
#line 92 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "subassign");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_subassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 11:
#line 95 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "mulassign");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_mulassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 12:
#line 98 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "divassign");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_divassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 13:
#line 101 "parse.y"
{
            CODE("argassign"); ARGNO(Ft_mathyyvsp[-2].narg);
            code2(Ft_argassign, (Inst)Ft_mathyyvsp[-2].narg); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 14:
#line 104 "parse.y"
{
            CODE("argaddassign"); ARGNO(Ft_mathyyvsp[-2].narg);
            code2(Ft_argaddassign, (Inst)Ft_mathyyvsp[-2].narg); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 15:
#line 107 "parse.y"
{
            CODE("argsubassign"); ARGNO(Ft_mathyyvsp[-2].narg);
            code2(Ft_argsubassign, (Inst)Ft_mathyyvsp[-2].narg); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 16:
#line 110 "parse.y"
{
            CODE("argmulassign"); ARGNO(Ft_mathyyvsp[-2].narg);
            code2(Ft_argmulassign, (Inst)Ft_mathyyvsp[-2].narg); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 17:
#line 113 "parse.y"
{
            CODE("argdivassign"); ARGNO(Ft_mathyyvsp[-2].narg);
            code2(Ft_argdivassign, (Inst)Ft_mathyyvsp[-2].narg); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 18:
#line 116 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-2].narg); CODE("eassign");
            code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-2].narg, Ft_eassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 19:
#line 119 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-2].narg); CODE("eaddassign");
            code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-2].narg, Ft_eaddassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 20:
#line 122 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-2].narg); CODE("esubassign");
            code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-2].narg, Ft_esubassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 21:
#line 125 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-2].narg); CODE("emulassign");
            code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-2].narg, Ft_emulassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 22:
#line 128 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-2].narg); CODE("edivassign");
            code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-2].narg, Ft_edivassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 23:
#line 131 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "eassign");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_eassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 24:
#line 134 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "eaddassign");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_eaddassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 25:
#line 137 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "esubassign");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_esubassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 26:
#line 140 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "emulassign");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_emulassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 27:
#line 143 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "edivassign");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_edivassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 28:
#line 147 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "strassign");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_strassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 29:
#line 150 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-2].narg); CODE("strassign");
            code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-2].narg, Ft_strassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
break;
case 30:
#line 154 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "assign");
            CODE2("nullpop", "STOP");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_assign);
            code2(Ft_nullpop, STOP); }
break;
case 31:
#line 159 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "addassign");
            CODE2("nullpop", "STOP");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_addassign);
            code2(Ft_nullpop, STOP); }
break;
case 32:
#line 164 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "subassign");
            CODE2("nullpop", "STOP");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_subassign);
            code2(Ft_nullpop, STOP); }
break;
case 33:
#line 169 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "mulassign");
            CODE2("nullpop", "STOP");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_mulassign);
            code2(Ft_nullpop, STOP); }
break;
case 34:
#line 174 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "divassign");
            CODE2("nullpop", "STOP");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_divassign);
            code2(Ft_nullpop, STOP); }
break;
case 35:
#line 179 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("assign");
            CODE2("nullpop", "STOP");
            code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_assign);
            code2(Ft_nullpop, STOP); }
break;
case 36:
#line 184 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("addassign");
            CODE2("nullpop", "STOP");
            code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_addassign);
            code2(Ft_nullpop, STOP); }
break;
case 37:
#line 189 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("subassign");
            CODE2("nullpop", "STOP");
            code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_subassign);
            code2(Ft_nullpop, STOP); }
break;
case 38:
#line 194 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("mulassign");
            CODE2("nullpop", "STOP");
            code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_mulassign);
            code2(Ft_nullpop, STOP); }
break;
case 39:
#line 199 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("divassign");
            CODE2("nullpop", "STOP");
            code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_divassign);
            code2(Ft_nullpop, STOP); }
break;
case 40:
#line 205 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "assign");
            CODE2("nullpop", "STOP");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_assign);
            code2(Ft_nullpop, STOP); }
break;
case 41:
#line 210 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "addassign");
            CODE2("nullpop", "STOP");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_addassign);
            code2(Ft_nullpop, STOP); }
break;
case 42:
#line 215 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "subassign");
            CODE2("nullpop", "STOP");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_subassign);
            code2(Ft_nullpop, STOP); }
break;
case 43:
#line 220 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "mulassign");
            CODE2("nullpop", "STOP");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_mulassign);
            code2(Ft_nullpop, STOP); }
break;
case 44:
#line 225 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "divassign");
            CODE2("nullpop", "STOP");
            code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_divassign);
            code2(Ft_nullpop, STOP); }
break;
case 45:
#line 230 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("assign");
            CODE2("nullpop", "STOP");
            code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_assign);
            code2(Ft_nullpop, STOP); }
break;
case 46:
#line 235 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("addassign");
            CODE2("nullpop", "STOP");
            code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_addassign);
            code2(Ft_nullpop, STOP); }
break;
case 47:
#line 240 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("subassign");
            CODE2("nullpop", "STOP");
            code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_subassign);
            code2(Ft_nullpop, STOP); }
break;
case 48:
#line 245 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("mulassign");
            CODE2("nullpop", "STOP");
            code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_mulassign);
            code2(Ft_nullpop, STOP); }
break;
case 49:
#line 250 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("divassign");
            CODE2("nullpop", "STOP");
            code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_divassign);
            code2(Ft_nullpop, STOP); }
break;
case 50:
#line 256 "parse.y"
{ Ft_mathyyval.narg=Ft_mathyyvsp[-1].narg; }
break;
case 51:
#line 257 "parse.y"
{ Ft_mathyyval.narg=Ft_mathyyvsp[-1].narg; }
break;
case 52:
#line 259 "parse.y"
{ Ft_mathyyval.sym=Ft_mathyyvsp[-1].sym; }
break;
case 53:
#line 260 "parse.y"
{ Ft_mathyyval.sym=Ft_mathyyvsp[-1].sym; }
break;
case 55:
#line 264 "parse.y"
{
            CODE("vecloop");
            Ft_mathyyval.inst = code(Ft_vecloop); }
break;
case 56:
#line 268 "parse.y"
{
            CODE("parloop");
            Ft_mathyyval.inst = code(Ft_parloop); }
break;
case 57:
#line 272 "parse.y"
{
            CODE("nullpop");
            code(Ft_nullpop); }
break;
case 58:
#line 275 "parse.y"
{
            CODE("nullpop");
            code(Ft_nullpop); }
break;
case 61:
#line 280 "parse.y"
{
            CODE("linprnl");
            code(Ft_linprnl); }
break;
case 62:
#line 283 "parse.y"
{ Ft_mathyyval.inst = Ft_mathyyvsp[0].inst;}
break;
case 63:
#line 284 "parse.y"
{
            CODE("procret");
            Ft_defnonly(PROC, "return"); Ft_mathyyval.inst = code(Ft_procret); }
break;
case 64:
#line 287 "parse.y"
{
            CODE("funcret");
            Ft_defnonly(FUNC, "return"); Ft_mathyyval.inst = Ft_mathyyvsp[-1].inst; code(Ft_funcret); }
break;
case 65:
#line 290 "parse.y"
{
            CODE("STOP");
            Ft_defnonly(WHILE, "continue"); Ft_mathyyval.inst = code(STOP); }
break;
case 66:
#line 293 "parse.y"
{
            CODE("breakit");
            Ft_defnonly(WHILE, "break"); Ft_mathyyval.inst = code(Ft_breakit); }
break;
case 67:
#line 296 "parse.y"
{
            CODE2("extcall", Ft_mathyyvsp[-4].sym->name); ARGNO(Ft_mathyyvsp[-1].narg);
            Ft_mathyyval.inst=Ft_mathyyvsp[-3].inst; code3(Ft_extcall, (Inst)Ft_mathyyvsp[-4].sym, (Inst)Ft_mathyyvsp[-1].narg); }
break;
case 68:
#line 299 "parse.y"
{
            CODE2("call", Ft_mathyyvsp[-4].sym->name); ARGNO(Ft_mathyyvsp[-1].narg);
            Ft_mathyyval.inst=Ft_mathyyvsp[-3].inst; code3(Ft_call, (Inst)Ft_mathyyvsp[-4].sym, (Inst)Ft_mathyyvsp[-1].narg); }
break;
case 69:
#line 302 "parse.y"
{
            CODE("Replace while[1]"); PNUM(Ft_mathyyvsp[-1].inst-prog);
              (Ft_mathyyvsp[-4].inst)[1] = (Inst) Ft_mathyyvsp[-1].inst;
            CODE("Replace while[2]"); PNUM(Ft_mathyyvsp[0].inst-prog);
              (Ft_mathyyvsp[-4].inst)[2] = (Inst) Ft_mathyyvsp[0].inst; }
break;
case 70:
#line 307 "parse.y"
{
            CODE("Replace if[1]"); PNUM(Ft_mathyyvsp[-2].inst-prog);
              (Ft_mathyyvsp[-5].inst)[1] = (Inst) Ft_mathyyvsp[-2].inst;
            CODE("Replace if[3]"); PNUM(Ft_mathyyvsp[-1].inst-prog);
              (Ft_mathyyvsp[-5].inst)[3] = (Inst) Ft_mathyyvsp[-1].inst; }
break;
case 71:
#line 312 "parse.y"
{
            CODE("Replace if[1]"); PNUM(Ft_mathyyvsp[-6].inst-prog);
              (Ft_mathyyvsp[-9].inst)[1] = (Inst) Ft_mathyyvsp[-6].inst;
            CODE("Replace if[2]"); PNUM(Ft_mathyyvsp[-1].inst-prog);
              (Ft_mathyyvsp[-9].inst)[2] = (Inst) Ft_mathyyvsp[-1].inst;
            CODE("Replace if[3]"); PNUM(Ft_mathyyvsp[0].inst-prog);
              (Ft_mathyyvsp[-9].inst)[3] = (Inst) Ft_mathyyvsp[0].inst; }
break;
case 72:
#line 319 "parse.y"
{
            CODE("Replace for[1]"); PNUM(Ft_mathyyvsp[-5].inst-prog);
              (Ft_mathyyvsp[-6].inst)[1] = (Inst) Ft_mathyyvsp[-5].inst;
            CODE("Replace for[2]"); PNUM(Ft_mathyyvsp[-4].inst-prog);
              (Ft_mathyyvsp[-6].inst)[2] = (Inst) Ft_mathyyvsp[-4].inst;
            CODE("Replace for[3]"); PNUM(Ft_mathyyvsp[-1].inst-prog);
              (Ft_mathyyvsp[-6].inst)[3] = (Inst) Ft_mathyyvsp[-1].inst;
            CODE("Replace for[4]"); PNUM(Ft_mathyyvsp[0].inst-prog);
              (Ft_mathyyvsp[-6].inst)[4] = (Inst) Ft_mathyyvsp[0].inst; }
break;
case 73:
#line 328 "parse.y"
{
			if (Ft_mathyyvsp[0].narg) {
				CODE("boost"); ARGNO(Ft_mathyyvsp[0].narg);
				code2(Ft_boost, (Inst)Ft_mathyyvsp[0].narg);
			};						}
break;
case 74:
#line 333 "parse.y"
{ ; }
break;
case 76:
#line 336 "parse.y"
{ if (!Ft_more_input(Ft_Inbrace, interprompt)) {
					Ft_matherror("Incomplete statement.", 0, 0);
				   };						}
break;
case 77:
#line 340 "parse.y"
{ Ft_Inbrace++; Ft_mathyyval.inst = Ft_Progp; }
break;
case 78:
#line 342 "parse.y"
{
				{ 	int num = Ft_autosymremove(Ft_Inbrace--);
					if (num) {
						CODE("restore"); ARGNO(num);
						code2(Ft_restore, (Inst)num);
					};
				}; 						}
break;
case 80:
#line 351 "parse.y"
{ if (!Ft_more_input(Ft_Inbrace, 0)) {
							Ft_matherror("Unmatched brace.", 0, 0);
				   		};						}
break;
case 82:
#line 356 "parse.y"
{ Ft_mathyyval.narg = 0; }
break;
case 83:
#line 357 "parse.y"
{ Ft_mathyyval.narg = Ft_mathyyvsp[0].narg; }
break;
case 84:
#line 358 "parse.y"
{ Ft_mathyyval.narg = Ft_mathyyvsp[-1].narg; }
break;
case 85:
#line 359 "parse.y"
{ Ft_mathyyval.narg = Ft_mathyyvsp[-1].narg; 
							if (!Ft_more_input(Ft_Inbrace, 0)) {
								Ft_matherror("Unmatched brace.", 0, 0);
				    		};						}
break;
case 86:
#line 363 "parse.y"
{ Ft_mathyyval.narg = Ft_mathyyvsp[-1].narg + Ft_mathyyvsp[0].narg; }
break;
case 87:
#line 365 "parse.y"
{ Ft_Inauto = 1; }
break;
case 88:
#line 366 "parse.y"
{ Ft_Inauto = 0; Ft_mathyyval.narg = Ft_mathyyvsp[0].narg; }
break;
case 89:
#line 368 "parse.y"
{
			CODE2("pushnull", "pushexprtype");
			code2(Ft_pushnull, Ft_pushexprtype); Ft_mathyyval.narg = 1; }
break;
case 90:
#line 371 "parse.y"
{ Ft_Inauto = 0; }
break;
case 91:
#line 372 "parse.y"
{
			CODE("pushexprtype");
			code(Ft_pushexprtype); Ft_mathyyval.narg = 1; Ft_Inauto = 1; }
break;
case 92:
#line 375 "parse.y"
{
			CODE2("strmake", "pushastrtype");
			code2(Ft_strmake, Ft_pushastrtype); Ft_mathyyval.narg = 1; }
break;
case 93:
#line 378 "parse.y"
{
			CODE2("vecmake", "pushavectype");
			code2(Ft_vecmake, Ft_pushavectype); Ft_mathyyval.narg = 1; }
break;
case 94:
#line 381 "parse.y"
{
			CODE2("pushnull", "pushexprtype");
			code2(Ft_pushnull, Ft_pushexprtype); Ft_mathyyval.narg = Ft_mathyyvsp[-2].narg + 1; }
break;
case 95:
#line 384 "parse.y"
{ Ft_Inauto = 0; }
break;
case 96:
#line 385 "parse.y"
{
			CODE("pushexprtype");
			code(Ft_pushexprtype); Ft_Inauto = 1; Ft_mathyyval.narg = Ft_mathyyvsp[-5].narg + 1; }
break;
case 97:
#line 388 "parse.y"
{
			CODE2("vecmake", "pushavectype");
			code2(Ft_vecmake, Ft_pushavectype); Ft_mathyyval.narg = Ft_mathyyvsp[-2].narg + 1; }
break;
case 98:
#line 391 "parse.y"
{
			CODE2("stramke", "pushastrtype");
			code2(Ft_strmake, Ft_pushastrtype); Ft_mathyyval.narg = Ft_mathyyvsp[-2].narg + 1; }
break;
case 99:
#line 395 "parse.y"
{
            CODE("STOP");
            code(STOP); Ft_mathyyval.inst=Ft_mathyyvsp[-1].inst; }
break;
case 100:
#line 399 "parse.y"
{
            CODE("STOP");
            code(STOP); Ft_mathyyval.inst=Ft_Progp; }
break;
case 101:
#line 403 "parse.y"
{
            CODE("nullpop");
            code(Ft_nullpop); }
break;
case 102:
#line 406 "parse.y"
{
            CODE("nullpop");
            code(Ft_nullpop); }
break;
case 105:
#line 411 "parse.y"
{
            CODE("nullpop");
            code(Ft_nullpop); }
break;
case 106:
#line 414 "parse.y"
{
            CODE("nullpop");
            code(Ft_nullpop); }
break;
case 109:
#line 420 "parse.y"
{
            CODE("STOP");
            code(STOP);  Ft_mathyyval.inst=Ft_Progp; }
break;
case 110:
#line 424 "parse.y"
{
            CODE("STOP");
            code(STOP); }
break;
case 111:
#line 428 "parse.y"
{
            CODE("nullpop");
            code(Ft_nullpop); }
break;
case 112:
#line 431 "parse.y"
{
            CODE("nullpop");
            code(Ft_nullpop); }
break;
case 115:
#line 436 "parse.y"
{
            CODE("nullpop");
            code(Ft_nullpop); }
break;
case 116:
#line 439 "parse.y"
{
            CODE("nullpop");
            code(Ft_nullpop); }
break;
case 119:
#line 445 "parse.y"
{
            CODE3("whilecode", "STOP", "STOP");
            Ft_mathyyval.inst = code3(Ft_whilecode, STOP, STOP); 
			interprompt = "while? "; }
break;
case 120:
#line 450 "parse.y"
{
            CODE("ifcode"); CODE3("STOP", "STOP", "STOP");
            Ft_mathyyval.inst = code(Ft_ifcode); code3(STOP, STOP, STOP);
			interprompt = "if? "; }
break;
case 121:
#line 455 "parse.y"
{
			interprompt = "else? "; }
break;
case 122:
#line 458 "parse.y"
{
            CODE("forcode"); CODE("STOP"); CODE3("STOP", "STOP", "STOP");
            Ft_mathyyval.inst = code(Ft_forcode); code(STOP); code3(STOP, STOP, STOP);
			interprompt = "for? "; }
break;
case 123:
#line 463 "parse.y"
{ Ft_mathyyval.inst = Ft_Progp; }
break;
case 124:
#line 465 "parse.y"
{
            CODE("STOP");
            code(STOP); Ft_mathyyval.inst = Ft_Progp; }
break;
case 128:
#line 473 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[0].sym->name, "eval");
            Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym, Ft_eval); }
break;
case 129:
#line 476 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[0].narg); CODE("eval");
            Ft_mathyyval.inst = code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[0].narg, Ft_eval); }
break;
case 132:
#line 483 "parse.y"
{
            CODE2("varpush", Ft_mathyyvsp[0].sym->name);
            Ft_mathyyval.inst = code2(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym); }
break;
case 133:
#line 486 "parse.y"
{
            CODE2("varpush", Ft_mathyyvsp[0].sym->name);
            Ft_mathyyval.inst = code2(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym); }
break;
case 134:
#line 490 "parse.y"
{
            CODE2("varpush", Ft_mathyyvsp[0].sym->name);
            Ft_mathyyval.inst = code2(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym); }
break;
case 136:
#line 495 "parse.y"
{
            CODE2("varpush", Ft_mathyyvsp[0].sym->name);
            Ft_mathyyval.inst = code2(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym); }
break;
case 137:
#line 499 "parse.y"
{
            CODE2("varpush", Ft_mathyyvsp[0].sym->name);
            Ft_mathyyval.inst = code2(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym); }
break;
case 138:
#line 503 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[0].sym->name, "preieval");
            Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym, Ft_preieval); }
break;
case 139:
#line 506 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-1].sym->name, "postieval");
            Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[-1].sym, Ft_postieval); }
break;
case 140:
#line 509 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[0].sym->name, "predeval");
            Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym, Ft_predeval); }
break;
case 141:
#line 512 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[-1].sym->name, "postdeval");
            Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[-1].sym, Ft_postdeval); }
break;
case 142:
#line 515 "parse.y"
{
            CODE("preiargpush"); ARGNO(Ft_mathyyvsp[0].narg);
            Ft_mathyyval.inst = code2(Ft_preiargpush, (Inst)Ft_mathyyvsp[0].narg); }
break;
case 143:
#line 518 "parse.y"
{
            CODE("postiargpush"); ARGNO(Ft_mathyyvsp[-1].narg);
            Ft_mathyyval.inst = code2(Ft_postiargpush, (Inst)Ft_mathyyvsp[-1].narg); }
break;
case 144:
#line 521 "parse.y"
{
            CODE("predargpush"); ARGNO(Ft_mathyyvsp[0].narg);
            Ft_mathyyval.inst = code2(Ft_predargpush, (Inst)Ft_mathyyvsp[0].narg); }
break;
case 145:
#line 524 "parse.y"
{
            CODE("postdargpush"); ARGNO(Ft_mathyyvsp[-1].narg);
            Ft_mathyyval.inst = code2(Ft_postdargpush, (Inst)Ft_mathyyvsp[-1].narg); }
break;
case 146:
#line 528 "parse.y"
{
            CODE2("constpush", "number");
            Ft_mathyyval.inst = code(Ft_constpush); Ft_dblcode(Ft_mathyyvsp[0].val); }
break;
case 147:
#line 531 "parse.y"
{
            CODE("argpush"); ARGNO(Ft_mathyyvsp[0].narg);
            Ft_mathyyval.inst = code2(Ft_argpush, (Inst)Ft_mathyyvsp[0].narg); }
break;
case 148:
#line 534 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[0].sym->name, "eval");
            Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym, Ft_eval); }
break;
case 149:
#line 537 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[0].sym->name, "eval");
            Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym, Ft_eval); }
break;
case 150:
#line 540 "parse.y"
{
            CODE2("extcall", Ft_mathyyvsp[-4].sym->name); ARGNO(Ft_mathyyvsp[-1].narg);
            Ft_mathyyval.inst = Ft_mathyyvsp[-3].inst; code3(Ft_extcall, (Inst)Ft_mathyyvsp[-4].sym, (Inst)Ft_mathyyvsp[-1].narg); }
break;
case 151:
#line 543 "parse.y"
{
            CODE2("call", Ft_mathyyvsp[-4].sym->name); ARGNO(Ft_mathyyvsp[-1].narg);
            Ft_mathyyval.inst = Ft_mathyyvsp[-3].inst; code3(Ft_call, (Inst)Ft_mathyyvsp[-4].sym, (Inst)Ft_mathyyvsp[-1].narg); }
break;
case 152:
#line 546 "parse.y"
{
            CODE2("builtin0", Ft_mathyyvsp[-2].sym->name);
            Ft_mathyyval.inst = code2(Ft_bltin0, (Inst)Ft_mathyyvsp[-2].sym->u.ptr); }
break;
case 153:
#line 549 "parse.y"
{
            CODE2("builtin1vec", Ft_mathyyvsp[-3].sym->name);
            Ft_mathyyval.inst = code2(Ft_bltin1vec, (Inst)Ft_mathyyvsp[-3].sym->u.ptr); }
break;
case 154:
#line 552 "parse.y"
{
            CODE2("builtin1", Ft_mathyyvsp[-3].sym->name);
            Ft_mathyyval.inst = code2(Ft_bltin1, (Inst)Ft_mathyyvsp[-3].sym->u.ptr); }
break;
case 155:
#line 555 "parse.y"
{
            CODE2("builtin2", Ft_mathyyvsp[-5].sym->name);
            Ft_mathyyval.inst = code2(Ft_bltin2, (Inst)Ft_mathyyvsp[-5].sym->u.ptr); }
break;
case 156:
#line 558 "parse.y"
{
            CODE2("strbltin2", Ft_mathyyvsp[-5].sym->u.str);
            Ft_mathyyval.inst = code2(Ft_strbltin2, (Inst)Ft_mathyyvsp[-5].sym->u.str); }
break;
case 157:
#line 561 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[0].sym->name, "eeval");
            Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym, Ft_eeval); }
break;
case 158:
#line 564 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[0].narg); CODE("eeval");
            Ft_mathyyval.inst = code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[0].narg, Ft_eeval); }
break;
case 159:
#line 567 "parse.y"
{ Ft_mathyyval.inst = Ft_mathyyvsp[-1].inst;    }
break;
case 160:
#line 568 "parse.y"
{
            CODE("add");
            code(Ft_add); }
break;
case 161:
#line 571 "parse.y"
{
            CODE("sub");
            code(Ft_sub); }
break;
case 162:
#line 574 "parse.y"
{
            CODE("div");
            code(Ft_div); }
break;
case 163:
#line 577 "parse.y"
{
            CODE("modulo");
            code(Ft_modulo); }
break;
case 164:
#line 580 "parse.y"
{
            CODE("mul");
            code(Ft_mul); }
break;
case 165:
#line 583 "parse.y"
{
            CODE("power");
            code(Ft_power); }
break;
case 166:
#line 586 "parse.y"
{
            CODE("negate");
            Ft_mathyyval.inst = Ft_mathyyvsp[0].inst; code(Ft_negate); }
break;
case 167:
#line 589 "parse.y"
{
            CODE("streq");
            code(Ft_streq);  }
break;
case 168:
#line 592 "parse.y"
{
            CODE("strne");
            code(Ft_strne);  }
break;
case 169:
#line 595 "parse.y"
{
            CODE("gt");
            code(Ft_gt); }
break;
case 170:
#line 598 "parse.y"
{
            CODE("ge");
            code(Ft_ge); }
break;
case 171:
#line 601 "parse.y"
{
            CODE("lt");
            code(Ft_lt);  }
break;
case 172:
#line 604 "parse.y"
{
            CODE("le");
            code(Ft_le);  }
break;
case 173:
#line 607 "parse.y"
{
            CODE("eq");
            code(Ft_eq);  }
break;
case 174:
#line 610 "parse.y"
{
            CODE("ne");
            code(Ft_ne);  }
break;
case 175:
#line 613 "parse.y"
{
            CODE("and");
            code(Ft_and); }
break;
case 176:
#line 616 "parse.y"
{
            CODE("or");
            code(Ft_or);  }
break;
case 177:
#line 619 "parse.y"
{
            CODE("not");
            Ft_mathyyval.inst = Ft_mathyyvsp[0].inst; code(Ft_not); }
break;
case 180:
#line 626 "parse.y"
{
            CODE2("strpush", "string");
            Ft_mathyyval.inst = code2(Ft_strpush, (Inst)Ft_mathyyvsp[0].sym); }
break;
case 181:
#line 629 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[0].sym->name, "streval");
            Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym, Ft_streval); }
break;
case 182:
#line 632 "parse.y"
{
            CODE("argvarpush"); ARGNO(Ft_mathyyvsp[0].narg); CODE("streval");
            Ft_mathyyval.inst = code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[0].narg, Ft_streval); }
break;
case 183:
#line 635 "parse.y"
{
            CODE3("varpush", Ft_mathyyvsp[0].sym->name, "streval");
            Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym, Ft_streval); }
break;
case 184:
#line 638 "parse.y"
{
            CODE2("builtin2str", Ft_mathyyvsp[-5].sym->name);
            code2(Ft_bltin2str, (Inst)Ft_mathyyvsp[-5].sym->u.ptr); }
break;
case 185:
#line 641 "parse.y"
{
            CODE2("builtin1str", Ft_mathyyvsp[-3].sym->name);
            code2(Ft_bltin1str, (Inst)Ft_mathyyvsp[-3].sym->u.ptr); }
break;
case 186:
#line 644 "parse.y"
{
            CODE2("builtin0str", Ft_mathyyvsp[-2].sym->name);
            code2(Ft_bltin0str, (Inst)Ft_mathyyvsp[-2].sym->u.ptr); }
break;
case 187:
#line 647 "parse.y"
{
        CODE("strsub");
        code(Ft_strsub); }
break;
case 188:
#line 650 "parse.y"
{
        CODE("stradd");
        code(Ft_stradd); }
break;
case 189:
#line 653 "parse.y"
{ Ft_mathyyval.inst = Ft_mathyyvsp[-1].inst; }
break;
case 190:
#line 655 "parse.y"
{ Ft_chkfunc(FUNCSYM, Ft_mathyyvsp[0].sym); Ft_Indef=1; }
break;
case 191:
#line 656 "parse.y"
{ Ft_Inproto = 1; Ft_autosymremove(0); }
break;
case 192:
#line 657 "parse.y"
{ Ft_Inproto = 0; CODE("STOP"); code(STOP); }
break;
case 193:
#line 658 "parse.y"
{
            CODE("procret");
            code(Ft_procret); Ft_define(Ft_mathyyvsp[-7].sym); Ft_Indef = 0;
		    Ft_autosymremove(0); }
break;
case 194:
#line 662 "parse.y"
{ Ft_chkfunc(PROCSYM, Ft_mathyyvsp[0].sym); Ft_Indef=1; }
break;
case 195:
#line 663 "parse.y"
{ Ft_Inproto = 1; Ft_autosymremove(0); }
break;
case 196:
#line 664 "parse.y"
{ Ft_Inproto = 0; CODE("STOP"); code(STOP); }
break;
case 197:
#line 665 "parse.y"
{
            CODE("procret");
            code(Ft_procret); Ft_define(Ft_mathyyvsp[-7].sym); Ft_Indef = 0;
            Ft_autosymremove(0); }
break;
case 202:
#line 675 "parse.y"
{ CODE("NUMBER"); code((Inst)NUMBER); }
break;
case 203:
#line 676 "parse.y"
{ CODE("VEC"); code((Inst)VEC); }
break;
case 204:
#line 677 "parse.y"
{ CODE("PARAM"); code((Inst)PARAM); }
break;
case 205:
#line 678 "parse.y"
{ CODE("STRVAR"); code((Inst)STRVAR); }
break;
case 206:
#line 679 "parse.y"
{ CODE("NUMBER"); code((Inst)NUMBER); }
break;
case 207:
#line 680 "parse.y"
{ CODE("VEC"); code((Inst)VEC); }
break;
case 208:
#line 681 "parse.y"
{ CODE("PARAM"); code((Inst)PARAM); }
break;
case 209:
#line 682 "parse.y"
{ CODE("STRVAR"); code((Inst)STRVAR); }
break;
case 210:
#line 684 "parse.y"
{ Ft_mathyyval.narg = 0; }
break;
case 211:
#line 685 "parse.y"
{ CODE("pushpartype"); code(Ft_pushpartype); Ft_mathyyval.narg = 1; }
break;
case 212:
#line 686 "parse.y"
{ CODE("pushvectype"); code(Ft_pushvectype); Ft_mathyyval.narg = 1; }
break;
case 213:
#line 687 "parse.y"
{ CODE("pushstrtype"); code(Ft_pushstrtype); Ft_mathyyval.narg = 1; }
break;
case 214:
#line 688 "parse.y"
{ CODE("pushexprtype"); code(Ft_pushexprtype); Ft_mathyyval.narg = 1; }
break;
case 215:
#line 689 "parse.y"
{ CODE("pushpartype"); code(Ft_pushpartype);
                            Ft_mathyyval.narg = Ft_mathyyvsp[-2].narg + 1; }
break;
case 216:
#line 691 "parse.y"
{ CODE("pushvectype"); code(Ft_pushvectype);
                            Ft_mathyyval.narg = Ft_mathyyvsp[-2].narg + 1; }
break;
case 217:
#line 693 "parse.y"
{ CODE("pushstrtype"); code(Ft_pushstrtype);
                            Ft_mathyyval.narg = Ft_mathyyvsp[-2].narg + 1; }
break;
case 218:
#line 695 "parse.y"
{ CODE("pushexprtype"); code(Ft_pushexprtype);
                            Ft_mathyyval.narg = Ft_mathyyvsp[-2].narg + 1; }
break;
case 219:
#line 698 "parse.y"
{
            CODE("linprexpr");
            code(Ft_linprexpr); }
break;
case 220:
#line 701 "parse.y"
{
            CODE("linprstr");
            code(Ft_linprstr);  }
break;
case 221:
#line 704 "parse.y"
{
            CODE("linprexpr");
            code(Ft_linprexpr); }
break;
case 222:
#line 707 "parse.y"
{
            CODE("linprstr");
            code(Ft_linprstr);  }
break;
case 223:
#line 711 "parse.y"
{
            CODE("prexpr");
            code(Ft_prexpr); }
break;
case 224:
#line 714 "parse.y"
{
            CODE("prstr");
            code(Ft_prstr);  }
break;
case 225:
#line 717 "parse.y"
{
            CODE("prexpr");
            code(Ft_prexpr); }
break;
case 226:
#line 720 "parse.y"
{
            CODE("prstr");
            code(Ft_prstr);  }
break;
#line 4075 "y.tab.c"
    }
    Ft_mathyyssp -= Ft_mathyym;
    Ft_mathyystate = *Ft_mathyyssp;
    Ft_mathyyvsp -= Ft_mathyym;
    Ft_mathyym = Ft_mathyylhs[Ft_mathyyn];
    if (Ft_mathyystate == 0 && Ft_mathyym == 0)
    {
#if YYDEBUG
        if (Ft_mathyydebug)
            printf("%sdebug: after reduction, shifting from state 0 to\
 state %d\n", YYPREFIX, YYFINAL);
#endif
        Ft_mathyystate = YYFINAL;
        *++Ft_mathyyssp = YYFINAL;
        *++Ft_mathyyvsp = Ft_mathyyval;
        if (Ft_mathyychar < 0)
        {
            if ((Ft_mathyychar = Ft_mathyylex()) < 0) Ft_mathyychar = 0;
#if YYDEBUG
            if (Ft_mathyydebug)
            {
                Ft_mathyys = 0;
                if (Ft_mathyychar <= YYMAXTOKEN) Ft_mathyys = Ft_mathyyname[Ft_mathyychar];
                if (!Ft_mathyys) Ft_mathyys = "illegal-symbol";
                printf("%sdebug: state %d, reading %d (%s)\n",
                        YYPREFIX, YYFINAL, Ft_mathyychar, Ft_mathyys);
            }
#endif
        }
        if (Ft_mathyychar == 0) goto Ft_mathyyaccept;
        goto Ft_mathyyloop;
    }
    if ((Ft_mathyyn = Ft_mathyygindex[Ft_mathyym]) && (Ft_mathyyn += Ft_mathyystate) >= 0 &&
            Ft_mathyyn <= YYTABLESIZE && Ft_mathyycheck[Ft_mathyyn] == Ft_mathyystate)
        Ft_mathyystate = Ft_mathyytable[Ft_mathyyn];
    else
        Ft_mathyystate = Ft_mathyydgoto[Ft_mathyym];
#if YYDEBUG
    if (Ft_mathyydebug)
        printf("%sdebug: after reduction, shifting from state %d \
to state %d\n", YYPREFIX, *Ft_mathyyssp, Ft_mathyystate);
#endif
    if (Ft_mathyyssp >= Ft_mathyyss + Ft_mathyystacksize - 1)
    {
        goto Ft_mathyyoverflow;
    }
    *++Ft_mathyyssp = Ft_mathyystate;
    *++Ft_mathyyvsp = Ft_mathyyval;
    goto Ft_mathyyloop;
Ft_mathyyoverflow:
    Ft_mathyyerror("yacc stack overflow");
Ft_mathyyabort:
    return (1);
Ft_mathyyaccept:
    return (0);
}
