fortran-src-0.1.0.1: src/Language/Fortran/Lexer/FreeForm.hs
{-# LANGUAGE CPP #-}
{-# LINE 1 "FreeForm.x" #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE DeriveGeneric #-}
module Language.Fortran.Lexer.FreeForm where
import Data.Data
import Data.Typeable
import Data.Maybe (isJust, isNothing, fromJust, fromMaybe)
import Data.Char (toLower)
import Data.Word (Word8)
import Control.Monad (join)
import Control.Monad.State (get)
import GHC.Generics
import Language.Fortran.ParserMonad
import Language.Fortran.Util.Position
import Language.Fortran.Util.FirstParameter
import Debug.Trace
#if __GLASGOW_HASKELL__ >= 603
#include "ghcconfig.h"
#elif defined(__GLASGOW_HASKELL__)
#include "config.h"
#endif
#if __GLASGOW_HASKELL__ >= 503
import Data.Array
import Data.Char (ord)
import Data.Array.Base (unsafeAt)
#else
import Array
import Char (ord)
#endif
alex_base :: Array Int Int
alex_base = listArray (0,973) [-8,18,132,158,45,-106,-97,-91,-90,-93,-92,-89,-22,-88,-87,-100,-86,-85,-94,-83,-81,-80,153,-75,-84,-76,-2,-73,-71,-82,-66,-69,-68,-79,44,-78,-65,-64,361,389,357,-54,-52,-63,-61,-57,-58,-56,-59,-43,-47,-38,-41,-34,47,-17,-16,-19,-18,-27,37,-20,-15,-14,-29,38,48,124,125,35,49,34,53,41,61,58,62,69,60,76,59,73,72,75,77,64,117,67,68,93,99,121,108,115,129,311,581,582,306,307,314,325,308,312,313,315,318,316,317,320,583,327,321,323,332,334,347,584,586,333,335,340,336,585,339,0,552,342,344,341,776,778,345,507,506,513,508,510,512,0,620,831,857,934,960,1037,1063,1140,1166,1243,1269,1346,1372,1449,1475,1552,1578,1655,1681,1758,1784,1861,1887,1964,1990,2067,2093,2170,2196,2273,2301,589,2376,587,597,2402,607,609,2477,2487,2513,511,563,527,515,514,519,558,557,560,555,561,660,2636,2572,0,662,0,2818,661,0,870,628,0,0,0,0,0,618,0,616,0,0,2781,2809,3026,3054,3129,3157,3232,3260,3335,3363,3438,3466,3541,3569,3644,3672,3747,3775,3850,3878,3953,3981,4056,4084,4159,4187,4262,4290,4365,4393,4468,4496,4571,4599,4674,4702,4777,4805,4880,4908,4983,5011,5086,5114,5189,5217,5292,5320,5395,5423,5498,5526,5601,5629,5704,5732,5807,5835,5910,5938,6013,6041,6116,6144,6219,6247,6322,6350,6425,6453,6528,6556,6631,6659,6734,6762,6837,6865,6940,6968,7043,7071,7146,7174,7249,7277,7352,7380,7455,7483,7558,7586,7661,7689,7764,7792,7867,7895,7970,7998,8073,8101,8176,8204,8279,8307,8382,8410,8485,8513,8588,8616,8691,8719,8794,8822,8897,8925,9000,9028,9103,9131,9206,9234,9309,9337,9412,9440,9515,9543,9618,9646,9721,9749,9824,9852,9927,9955,10030,10058,10133,10161,10236,10264,10339,10367,10442,10470,10545,10573,10648,10676,10751,10779,10854,10882,10957,10985,11060,11088,11163,11191,11266,11294,11369,11397,11472,11500,11575,11603,11678,11706,11781,11809,11884,11912,11987,12015,12090,12118,12193,12221,12296,12324,12399,12427,12502,12530,12605,12633,12708,12736,12811,12839,12914,12942,13017,13045,13120,13148,13223,13251,13326,13354,13429,13457,13532,13560,13635,13663,13738,13766,13841,13869,13944,13972,14047,14075,14150,14178,14253,14281,14356,14384,14459,14487,14562,14590,14665,14693,14768,14796,14871,14899,14974,15002,15077,15105,15180,15208,15283,15311,15386,15414,15489,15517,15592,15620,15695,15723,15798,15826,15901,15929,16004,16032,16107,16135,16210,16238,16313,16341,16416,16444,16519,16547,16622,16650,16725,16753,16828,16856,16931,16959,17034,17062,17137,17165,17240,17268,17343,17371,17446,17474,17549,17577,17652,17680,17755,17783,17874,17902,17977,18005,18080,18108,18183,18211,18286,18314,18389,18417,18492,18520,18595,18623,18698,18726,18801,18829,18904,18932,19007,19035,19110,19138,19213,19241,19316,19344,19419,19447,19522,19550,19625,19653,19728,19756,19831,19859,19934,19962,20037,20065,20140,20168,20243,20271,20362,20390,20465,20493,20568,20596,20671,20699,20774,20802,20877,20905,20980,21008,21083,21111,21186,21214,21289,21317,21408,21436,21511,21539,21614,21642,21717,21745,21820,21848,21923,21951,22026,22054,22129,22157,22232,22260,22335,22363,22438,22466,22541,22569,22644,22672,22747,22775,22850,22878,22953,22981,23056,23084,23159,23187,23262,23290,23365,23393,23468,23496,23571,23599,23674,23702,23777,23805,23880,23908,23983,24011,24086,24114,24189,24217,24292,24320,24395,24423,24498,24526,24601,24629,24704,24732,24807,24835,24910,24938,25013,25041,25116,25144,25219,25247,25322,25350,25425,25453,25528,25556,25631,25659,25734,25762,25837,25865,25940,25968,26043,26071,26146,26174,26249,26277,26352,26380,26455,26483,26558,26586,26661,26689,26764,26792,26867,26895,26970,26998,27073,27101,27192,27220,27295,27323,27398,27426,27501,27529,27604,27632,27707,27735,27810,27838,27913,27941,28016,28044,28119,28147,28222,28250,28325,28353,28444,28472,28547,28575,28650,28678,28753,28781,28856,28884,28959,28987,29062,29090,29165,29193,29268,29296,29371,29399,29474,29502,29577,29605,29680,29708,29783,29811,29886,29914,29989,30017,30092,0,30120,0,30195,30223,0,0,0,0,30298,0,0,0,30326,0,0,0,0,0,0,0,0,30401,30429,30504,30532,30607,30635,30710,30738,30813,30841,30916,30944,31019,31047,0,31122,31150,31225,31253,0,31328,31356,0,0,0,0,31431,0,31459,0,31534,0,0,0,0,856,866,933,943,31562,1036,959,31639,631,969,17863,31649,1139,31724,1046,31734,0,588,31744,1062,0,0,0,639,840,0,0,0,0,0,0,0,0,0,0,0,0,0,0,621,0,626,0,31819,31847,31922,31950,32025,32053,32128,32156,32231,32259,32334,32362,32437,32465,32540,32568,32643,32671,32746,32774,32849,32877,32952,32980,33055,33083,33158,33186,33261,33289,33364,33392,33467,33495,33570,33598,33673,33701,33776,33804,33879,33907,33982,34010,34085,34113,34188,34216,34291,34319,34394,34422,34497,34525,34600,34628,34703,34731,34806,34834,34909,34937,35012,35040,35115,35143,35218,35246,35330,35358,35433,35461,35536,35564,35639,35667,35742,35770,35861,35889,35964,35992,36067,36095,36170,36198,36273,36301,36376,36404,36479,36507,36582,36610,36685,36713,36788,36816,36891,36919,36994,37022,37097,37125,37200,37228,37303,37331,37406,37434,37509,37537,37612,37640,37715,37743,37818,37846,37921,37949,38024,38052,38127,38155,38230,38258,38333,38361,38436,38464,38539,38567,38642,38670]
alex_table :: Array Int Int
alex_table = listArray (0,38925) [0,201,199,740,745,192,746,747,748,750,12,781,751,754,755,786,787,791,793,752,794,795,5,10,201,198,189,191,190,188,26,187,186,185,137,181,136,16,184,25,797,797,797,797,797,797,797,797,797,797,17,24,813,138,201,199,27,813,192,12,135,134,133,28,29,30,39,39,39,39,39,39,39,39,39,39,34,201,132,54,35,36,37,129,128,127,52,50,124,466,508,398,600,593,492,419,500,317,500,500,482,453,487,556,432,500,385,396,393,346,500,541,500,500,500,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,201,127,53,86,93,62,122,120,183,105,119,116,85,106,59,67,68,33,51,117,48,114,64,201,65,66,201,199,113,71,192,72,109,74,76,75,112,81,83,802,802,802,802,802,802,802,802,802,802,201,198,813,101,84,212,104,813,202,203,820,818,206,819,175,821,804,804,804,804,804,804,804,804,804,804,208,207,836,210,838,90,96,55,56,94,92,95,78,261,266,245,267,281,268,248,268,270,268,268,268,268,263,283,252,268,233,282,284,268,268,280,268,268,268,919,908,914,847,922,902,914,914,960,914,868,853,914,914,863,889,914,888,873,850,914,914,932,914,914,907,193,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,38,38,38,38,38,38,38,38,38,38,91,89,88,87,103,82,108,80,77,70,57,69,58,47,63,115,121,46,39,39,39,39,39,39,39,39,39,39,45,32,42,21,41,31,23,20,19,170,14,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,171,22,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,96,97,110,117,123,118,13,11,9,6,813,8,26,7,789,813,784,174,776,174,760,761,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,805,805,806,806,806,806,806,806,806,806,785,759,758,757,756,200,742,197,102,200,204,209,834,211,805,805,817,837,168,44,61,43,839,0,0,0,0,0,98,99,140,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,130,0,131,194,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,100,833,15,201,60,205,0,182,0,0,0,73,0,0,107,0,18,79,49,0,0,111,0,0,0,835,201,833,798,798,798,798,798,798,798,798,798,798,799,799,799,799,799,799,799,799,799,799,0,0,0,0,147,147,147,147,169,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,162,147,147,147,147,147,147,147,147,147,833,800,800,800,800,800,800,800,800,800,800,796,796,796,796,796,796,796,796,796,796,0,0,0,0,0,833,803,803,803,803,803,803,803,803,803,803,806,806,806,806,806,806,806,806,0,0,0,0,0,0,147,147,147,147,161,147,147,147,147,147,147,147,147,147,154,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,141,147,147,147,147,147,147,147,833,802,802,802,802,802,802,802,802,802,802,811,811,811,811,811,811,811,811,811,811,0,0,0,0,0,833,816,816,816,816,816,816,816,816,816,816,0,0,0,0,0,0,0,0,0,0,0,179,0,0,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,141,147,147,147,147,147,149,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,833,809,809,809,809,809,809,809,809,809,809,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,833,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,0,0,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,145,147,147,147,147,147,147,147,147,833,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,833,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,147,147,147,147,147,147,147,147,147,144,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,155,147,147,147,147,147,147,147,147,147,147,147,147,833,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,833,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,147,147,157,147,147,147,147,147,147,147,147,147,147,147,147,147,147,158,147,147,147,147,147,147,147,147,147,147,159,147,147,147,147,147,147,147,147,147,147,147,147,147,147,160,147,147,147,147,147,147,833,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,833,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,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,163,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,165,147,147,147,147,147,147,833,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,833,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,147,166,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,167,147,147,147,147,147,147,147,147,832,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,831,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,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,830,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,829,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,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,828,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,827,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,147,147,147,147,147,147,147,147,147,147,147,147,147,147,153,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,164,147,147,147,147,826,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,825,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,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,824,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,823,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,822,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,816,816,816,816,816,816,816,816,816,816,0,0,0,0,0,0,0,0,0,0,0,0,0,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,814,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,813,0,0,0,0,813,0,0,0,0,0,0,0,0,38,38,38,38,38,38,38,38,38,38,0,0,0,0,0,0,0,0,0,0,0,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,170,0,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,811,811,811,811,811,811,811,811,811,811,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,810,810,810,810,810,810,810,810,810,810,0,0,0,0,0,0,0,0,0,0,0,0,0,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,150,147,147,147,142,146,151,147,147,147,147,152,147,143,156,147,147,147,147,148,147,147,147,147,147,147,807,807,807,807,807,807,807,807,807,807,803,803,803,803,803,803,803,803,803,803,0,0,813,0,0,0,0,813,0,0,0,0,0,0,0,0,803,803,803,803,803,803,803,803,803,803,0,0,0,807,807,807,807,807,807,0,0,0,0,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,737,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,733,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,193,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,194,22,139,139,139,139,139,139,139,139,139,139,139,139,139,139,140,40,125,125,125,126,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,717,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,731,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,723,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,719,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,718,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,725,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,735,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,721,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,214,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,246,268,268,234,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,302,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,303,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,307,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,309,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,218,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,217,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,216,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,220,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,222,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,223,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,298,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,297,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,225,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,296,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,295,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,294,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,226,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,293,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,227,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,292,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,291,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,290,268,268,268,268,268,268,268,268,268,268,240,268,268,273,268,268,268,268,268,268,268,268,268,235,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,289,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,229,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,288,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,287,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,286,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,285,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,236,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,249,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,238,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,239,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,243,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,247,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,253,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,254,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,279,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,255,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,272,268,268,268,268,268,268,256,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,259,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,274,268,268,268,268,268,268,0,268,268,262,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,269,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,264,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,265,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,271,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,260,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,258,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,257,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,276,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,277,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,278,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,251,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,250,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,244,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,242,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,237,268,268,268,268,268,268,268,268,268,241,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,275,268,268,268,268,268,268,268,268,268,232,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,231,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,230,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,228,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,224,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,299,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,221,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,300,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,219,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,215,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,311,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,310,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,308,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,306,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,305,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,304,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,301,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,213,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,730,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,722,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,720,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,724,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,726,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,727,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,728,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,729,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,732,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,734,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,736,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,738,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,739,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,500,0,500,500,500,710,500,500,500,500,500,500,500,663,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,714,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,707,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,567,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,685,500,500,500,500,500,500,500,511,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,684,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,682,500,500,500,500,500,500,514,533,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,676,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,673,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,665,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,656,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,708,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,706,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,692,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,672,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,664,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,657,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,644,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,643,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,694,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,677,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,670,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,666,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,662,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,712,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,704,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,703,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,690,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,688,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,679,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,674,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,667,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,636,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,637,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,312,500,474,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,414,500,500,384,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,610,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,611,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,612,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,615,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,619,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,620,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,321,500,500,500,500,500,500,621,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,623,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,624,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,630,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,631,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,633,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,320,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,319,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,318,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,603,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,604,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,329,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,328,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,326,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,325,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,324,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,323,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,322,500,500,500,500,500,500,500,500,500,500,500,500,500,500,461,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,330,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,334,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,333,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,332,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,331,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,340,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,339,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,338,500,500,500,500,500,500,500,500,500,500,460,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,337,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,336,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,342,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,596,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,595,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,344,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,592,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,345,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,591,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,590,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,589,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,588,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,587,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,347,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,348,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,532,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,586,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,585,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,584,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,582,500,500,500,478,500,500,500,500,500,500,500,500,500,500,500,500,500,500,370,506,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,351,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,352,500,500,500,500,500,500,495,500,500,500,406,500,500,444,500,500,500,500,500,500,500,500,500,399,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,581,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,485,500,500,354,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,580,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,579,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,578,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,577,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,576,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,356,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,575,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,357,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,574,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,573,500,500,500,500,500,500,500,500,500,500,500,516,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,358,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,363,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,364,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,572,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,365,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,366,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,367,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,368,500,500,552,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,571,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,570,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,569,500,500,500,500,500,500,500,500,500,500,500,500,450,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,375,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,376,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,378,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,379,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,568,500,500,500,500,500,439,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,566,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,386,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,564,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,397,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,420,500,500,500,500,500,500,500,562,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,400,500,500,500,500,500,500,500,500,500,500,500,500,500,469,500,500,426,500,500,549,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,404,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,405,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,561,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,409,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,411,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,559,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,558,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,557,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,415,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,416,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,417,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,418,525,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,555,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,554,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,425,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,551,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,550,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,548,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,547,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,546,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,545,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,544,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,429,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,433,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,434,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,538,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,437,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,537,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,438,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,440,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,536,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,535,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,441,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,520,500,500,500,500,500,500,443,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,445,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,446,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,534,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,531,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,505,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,530,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,448,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,449,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,528,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,451,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,452,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,527,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,490,500,500,500,500,455,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,526,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,524,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,458,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,459,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,465,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,523,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,468,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,471,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,486,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,521,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,472,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,473,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,479,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,481,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,517,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,483,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,484,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,515,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,510,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,509,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,497,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,503,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,502,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,499,500,500,500,500,500,500,500,500,500,500,500,500,500,500,96,0,0,0,0,807,807,807,807,807,807,807,807,807,807,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,807,807,807,807,807,807,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,504,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,493,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,512,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,513,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,489,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,491,500,500,500,500,500,500,500,500,500,500,488,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,480,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,519,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,477,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,476,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,475,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,522,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,467,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,464,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,463,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,462,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,457,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,456,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,529,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,447,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,442,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,435,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,431,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,430,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,542,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,428,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,427,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,424,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,423,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,422,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,436,500,500,421,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,553,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,413,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,412,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,560,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,408,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,403,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,402,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,401,500,500,500,500,500,500,500,500,500,407,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,392,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,391,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,390,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,389,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,388,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,387,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,383,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,117,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,565,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,382,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,118,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,381,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,380,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,374,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,373,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,372,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,369,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,362,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,361,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,360,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,359,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,355,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,353,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,583,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,349,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,343,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,598,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,597,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,335,500,500,500,500,500,500,500,395,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,371,500,500,500,500,500,500,341,500,500,500,543,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,599,500,500,500,500,500,500,500,500,500,500,500,500,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,602,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,327,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,635,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,634,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,632,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,629,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,628,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,627,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,626,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,625,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,622,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,618,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,617,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,616,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,614,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,613,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,609,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,608,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,607,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,606,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,605,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,313,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,350,500,314,500,500,498,500,500,500,500,500,500,377,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,640,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,639,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,638,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,658,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,702,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,652,500,500,500,500,500,500,500,500,0,594,500,500,500,496,500,500,500,494,500,500,500,500,500,680,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,681,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,691,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,641,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,642,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,645,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,646,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,647,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,650,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,651,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,653,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,654,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,655,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,659,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,660,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,661,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,669,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,671,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,678,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,683,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,686,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,687,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,689,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,693,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,695,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,696,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,697,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,698,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,563,500,500,500,700,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,701,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,705,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,709,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,711,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,713,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,715,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,716,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,668,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,675,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,648,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,649,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,699,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,501,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,316,500,500,500,500,500,500,500,500,500,500,500,500,500,540,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,131,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,507,500,601,500,410,500,500,315,500,500,500,454,500,500,518,500,500,470,394,500,500,539,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,500,500,500,500,500,500,500,500,500,0,0,0,0,0,0,0,0,0,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,0,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,500,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,268,0,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,862,914,914,914,914,871,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,801,801,801,801,801,801,801,801,801,801,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,801,0,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,801,812,0,804,804,804,804,804,804,804,804,804,804,808,808,808,808,808,808,808,808,808,808,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,180,0,0,0,0,173,173,0,0,0,808,0,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,808,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,815,815,815,815,815,815,815,815,815,815,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,0,0,0,0,173,173,0,0,0,172,0,0,0,0,173,173,0,0,0,815,0,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,815,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,744,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,749,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,764,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,765,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,767,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,771,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,774,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,926,914,914,914,904,914,914,914,914,914,780,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,782,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,788,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,933,914,914,914,914,914,914,914,914,914,914,914,914,914,792,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,973,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,971,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,969,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,842,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,968,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,967,914,914,914,914,914,914,914,914,914,914,914,957,0,966,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,845,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,964,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,963,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,962,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,961,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,954,914,897,914,914,914,914,959,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,849,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,851,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,956,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,955,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,953,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,952,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,856,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,950,914,914,914,914,914,914,914,914,914,914,914,914,893,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,858,914,914,914,914,914,914,914,957,0,949,914,914,914,921,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,861,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,948,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,864,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,947,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,896,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,866,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,867,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,946,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,944,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,943,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,870,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,68,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,941,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,876,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,877,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,939,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,878,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,923,914,914,914,914,914,914,914,914,914,914,914,914,914,895,914,914,890,914,914,938,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,937,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,881,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,936,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,935,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,884,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,934,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,931,914,914,914,914,914,957,0,914,914,914,914,930,914,914,914,914,914,914,914,914,914,914,914,914,914,914,894,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,891,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,929,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,928,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,927,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,925,914,914,914,914,914,957,0,914,914,899,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,900,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,901,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,178,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,903,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,176,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,916,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,909,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,915,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,911,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,912,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,910,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,917,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,918,914,914,914,914,914,914,123,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,920,914,914,914,914,914,914,913,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,906,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,905,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,924,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,898,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,892,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,887,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,886,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,885,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,883,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,882,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,880,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,879,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,875,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,874,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,940,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,872,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,942,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,869,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,945,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,865,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,860,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,859,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,857,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,951,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,855,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,854,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,852,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,958,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,848,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,846,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,965,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,844,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,843,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,970,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,841,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,840,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,813,0,0,0,0,813,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,972,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,790,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,779,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,783,914,914,914,914,914,914,914,778,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,777,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,775,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,773,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,772,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,770,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,769,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,768,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,766,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,763,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,762,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,753,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,743,914,914,914,914,914,914,957,0,914,914,914,914,914,914,914,914,914,914,914,914,914,741,914,914,914,914,914,914,914,914,914,914,914,914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
alex_check :: Array Int Int
alex_check = listArray (0,38925) [-1,9,10,109,101,13,97,97,101,101,32,111,101,101,101,101,101,111,101,41,101,101,97,99,32,33,97,111,101,111,32,97,101,101,97,99,97,115,117,97,48,49,50,51,52,53,54,55,56,57,115,105,34,105,9,10,103,39,13,61,117,117,121,101,105,99,48,49,50,51,52,53,54,55,56,57,32,32,121,32,97,97,101,101,111,105,115,101,103,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,9,105,105,99,100,111,99,99,105,105,117,111,108,117,110,32,32,111,114,107,116,101,105,32,103,97,9,10,109,111,13,99,101,99,111,99,101,111,111,48,49,50,51,52,53,54,55,56,57,32,33,34,117,101,37,97,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,104,101,99,99,117,111,98,111,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,48,49,50,51,52,53,54,55,56,57,108,114,114,108,98,116,110,114,114,110,108,114,104,100,116,114,112,102,48,49,50,51,52,53,54,55,56,57,100,108,116,108,116,116,114,110,114,95,112,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,32,32,32,32,32,32,112,114,108,110,34,116,40,116,116,39,102,43,116,45,114,120,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,57,48,49,48,49,50,51,52,53,54,55,102,108,110,108,114,10,110,10,110,13,47,58,61,62,48,49,42,61,95,100,102,100,61,-1,-1,-1,-1,-1,112,112,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,32,-1,32,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,98,46,100,9,102,41,-1,105,-1,-1,-1,109,-1,-1,112,-1,116,115,116,-1,-1,119,-1,-1,-1,61,32,46,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,46,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,46,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,-1,-1,-1,-1,-1,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,46,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,46,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,46,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,57,-1,-1,34,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,97,98,99,100,101,102,-1,-1,-1,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,10,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,46,-1,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,-1,-1,-1,100,101,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,-1,-1,-1,100,101,-1,-1,-1,95,-1,-1,-1,-1,100,101,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,39,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,-1,-1,-1,-1,-1,-1,-1,40,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,34,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,49,50,51,52,53,54,55,56,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,95,-1,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]
alex_deflt :: Array Int Int
alex_deflt = listArray (0,973) [-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,139,139,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,195,195,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,198,198,198,-1,-1,198,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]
alex_accept = listArray (0::Int,973) [AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccNone,AlexAccSkip,AlexAccPred (alex_action_0) (alexRightContext 196)(AlexAccNone),AlexAcc (alex_action_1),AlexAcc (alex_action_1),AlexAccSkip,AlexAcc (alex_action_3),AlexAccPred (alex_action_4) ( ifConditionEndP )(AlexAcc (alex_action_5)),AlexAcc (alex_action_6),AlexAcc (alex_action_7),AlexAcc (alex_action_8),AlexAcc (alex_action_9),AlexAcc (alex_action_10),AlexAcc (alex_action_11),AlexAcc (alex_action_12),AlexAcc (alex_action_13),AlexAcc (alex_action_14),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccNone),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAccNone)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_17))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_18))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_19))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_21))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_23))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_25))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_26))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_27))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_28))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_29))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_30))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_31))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_32))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_34))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_35))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_39))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_40))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_41))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_42))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_43))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_44))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_45))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_46))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_47))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_48))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_49))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_50))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_53))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_55))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_57))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_59))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_61))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_63))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_65))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_67))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_69))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_71))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_73))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_75))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_80))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_82))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_84))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_87))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_88))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_89))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_90))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_92))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_93))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_95))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_96))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_97))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_98))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_100))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_101))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_102))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_103))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_104))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_105))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_106))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_107))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_108))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_109))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_110))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_111))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_112))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_113))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_114))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_116))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_117))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_118))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_119))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_120))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_121))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_122))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_123))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAccPred (alex_action_16) ( constructNameP )(AlexAcc (alex_action_124))),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_39)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_40)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_86)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_95)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_96)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_97)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_98)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_100)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_101)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_102)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_103)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_107)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_108)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_109)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_116)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_117)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_118)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_119)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_120)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_121)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_122)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_123)),AlexAccPred (alex_action_15) ( partOfExpOrPointerAssignmentP )(AlexAcc (alex_action_124)),AlexAcc (alex_action_18),AlexAccPred (alex_action_20) ( typeSpecP )(AlexAcc (alex_action_150)),AlexAcc (alex_action_21),AlexAccPred (alex_action_22) ( resultP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_24) ( typeSpecP )(AlexAcc (alex_action_150)),AlexAcc (alex_action_26),AlexAcc (alex_action_27),AlexAcc (alex_action_28),AlexAcc (alex_action_30),AlexAccPred (alex_action_33) ( useStP )(AlexAcc (alex_action_150)),AlexAcc (alex_action_35),AlexAcc (alex_action_36),AlexAccPred (alex_action_37) ( genericSpecP )(AlexAccNone),AlexAccPred (alex_action_38) ( genericSpecP )(AlexAcc (alex_action_150)),AlexAcc (alex_action_42),AlexAcc (alex_action_43),AlexAcc (alex_action_45),AlexAcc (alex_action_46),AlexAcc (alex_action_47),AlexAcc (alex_action_48),AlexAcc (alex_action_49),AlexAcc (alex_action_50),AlexAccPred (alex_action_51) ( selectorP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_52) ( selectorP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_54) ( attributeP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_56) ( attributeP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_58) ( attributeP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_60) ( attributeP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_62) ( attributeP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_64) ( attributeP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_66) ( attributeP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_68) ( attributeP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_70) ( attributeP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_72) ( attributeP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_74) ( attributeP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_76) ( attributeP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_77) ( followsIntentP )(AlexAccNone),AlexAccPred (alex_action_77) ( followsIntentP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_78) ( followsIntentP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_79) ( followsIntentP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_81) ( followsColonP )(AlexAcc (alex_action_150)),AlexAcc (alex_action_82),AlexAccPred (alex_action_83) ( followsDoP )(AlexAcc (alex_action_150)),AlexAccPred (alex_action_85) ( followsColonP )(AlexAcc (alex_action_150)),AlexAcc (alex_action_88),AlexAcc (alex_action_89),AlexAcc (alex_action_90),AlexAccPred (alex_action_91) ( followsColonP )(AlexAccNone),AlexAccPred (alex_action_91) ( followsColonP )(AlexAcc (alex_action_150)),AlexAcc (alex_action_93),AlexAccPred (alex_action_94) ( caseStP )(AlexAcc (alex_action_150)),AlexAcc (alex_action_97),AlexAccPred (alex_action_99) ( assignStP )(AlexAcc (alex_action_150)),AlexAcc (alex_action_105),AlexAcc (alex_action_115),AlexAcc (alex_action_124),AlexAcc (alex_action_125),AlexAcc (alex_action_125),AlexAcc (alex_action_125),AlexAcc (alex_action_125),AlexAcc (alex_action_125),AlexAcc (alex_action_126),AlexAcc (alex_action_126),AlexAcc (alex_action_126),AlexAcc (alex_action_126),AlexAcc (alex_action_127),AlexAcc (alex_action_127),AlexAcc (alex_action_127),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAcc (alex_action_128),AlexAccPred (alex_action_129) ( notPrecedingDotP )(AlexAccNone),AlexAcc (alex_action_130),AlexAcc (alex_action_131),AlexAcc (alex_action_131),AlexAcc (alex_action_131),AlexAccPred (alex_action_132) ( opP )(AlexAcc (alex_action_133)),AlexAccPred (alex_action_132) ( opP )(AlexAcc (alex_action_134)),AlexAccPred (alex_action_132) ( opP )(AlexAcc (alex_action_135)),AlexAccPred (alex_action_132) ( opP )(AlexAcc (alex_action_136)),AlexAccPred (alex_action_132) ( opP )(AlexAcc (alex_action_137)),AlexAccPred (alex_action_132) ( opP )(AlexAcc (alex_action_138)),AlexAccPred (alex_action_132) ( opP )(AlexAcc (alex_action_139)),AlexAccPred (alex_action_132) ( opP )(AlexAcc (alex_action_140)),AlexAccPred (alex_action_132) ( opP )(AlexAcc (alex_action_141)),AlexAccPred (alex_action_132) ( opP )(AlexAcc (alex_action_142)),AlexAccPred (alex_action_132) ( opP )(AlexAcc (alex_action_143)),AlexAccPred (alex_action_132) ( opP )(AlexAcc (alex_action_144)),AlexAccPred (alex_action_132) ( opP )(AlexAcc (alex_action_145)),AlexAccPred (alex_action_132) ( opP )(AlexAcc (alex_action_146)),AlexAccPred (alex_action_132) ( opP )(AlexAcc (alex_action_147)),AlexAccPred (alex_action_132) ( opP )(AlexAcc (alex_action_148)),AlexAccPred (alex_action_132) ( opP )(AlexAcc (alex_action_149)),AlexAcc (alex_action_143),AlexAcc (alex_action_144),AlexAcc (alex_action_145),AlexAcc (alex_action_146),AlexAcc (alex_action_147),AlexAcc (alex_action_148),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150),AlexAcc (alex_action_150)]
{-# LINE 262 "FreeForm.x" #-}
--------------------------------------------------------------------------------
-- Predicated lexer helpers
--------------------------------------------------------------------------------
followsDoP :: User -> AlexInput -> Int -> AlexInput -> Bool
followsDoP _ _ _ ai
| Just TDo {} <- aiPreviousToken ai = True
| otherwise = False
followsColonP :: User -> AlexInput -> Int -> AlexInput -> Bool
followsColonP _ _ _ ai
| Just TColon{} <- aiPreviousToken ai = True
| otherwise = False
selectorP :: User -> AlexInput -> Int -> AlexInput -> Bool
selectorP user _ _ ai =
followsType && nextTokenIsOpAssign && precedesDoubleColon ai
where
nextTokenIsOpAssign = nextTokenConstr user ai == (Just . fillConstr $ TOpAssign)
followsType =
case searchBeforePar (aiPreviousTokensInLine ai) of
Just x -> isTypeSpec x
Nothing -> False
searchBeforePar [] = Nothing
searchBeforePar (x:xs)
| TLeftPar{} <- x = if null xs then Nothing else (Just $ head xs)
| otherwise = searchBeforePar xs
ifConditionEndP :: User -> AlexInput -> Int -> AlexInput -> Bool
ifConditionEndP (User _ pc) _ _ ai
| (TIf{}:_) <- prevTokens = pc == ParanthesesCount 1 False
| (TId{}:TColon{}:TIf{}:_) <- prevTokens = pc == ParanthesesCount 1 False
| (TElsif{}:_) <- prevTokens = pc == ParanthesesCount 1 False
| otherwise = False
where
prevTokens = reverse . aiPreviousTokensInLine $ ai
opP :: User -> AlexInput -> Int ->AlexInput -> Bool
opP _ _ _ ai
| (TLeftPar{}:TOperator{}:_) <- aiPreviousTokensInLine ai = True
| otherwise = False
partOfExpOrPointerAssignmentP :: User -> AlexInput -> Int -> AlexInput -> Bool
partOfExpOrPointerAssignmentP (User fv pc) _ _ ai =
case unParse (lexer $ f False 0) ps of
ParseOk True _ -> True
_ -> False
where
ps = ParseState
{ psAlexInput = ai { aiStartCode = StartCode scN Return }
, psVersion = fv
, psFilename = "<unknown>"
, psParanthesesCount = pc
, psContext = [ ConStart ] }
f leftParSeen parCount token
| not leftParSeen =
case token of
TNewline{} -> return False
TEOF{} -> return False
TPercent{} -> return True
TArrow{} -> return True
TOpAssign{} -> return True
TLeftPar{} -> lexer $ f True 1
TLeftPar2{} -> lexer $ f True 1
_ -> return False
| parCount == 0 =
case token of
TOpAssign{} -> return True
TArrow{} -> return True
TPercent{} -> return True
_ -> return False
| parCount > 0 =
case token of
TNewline{} -> return False
TEOF{} -> return False
TLeftPar{} -> lexer $ f True (parCount + 1)
TLeftPar2{} -> lexer $ f True (parCount + 1)
TRightPar{} -> lexer $ f True (parCount - 1)
_ -> lexer $ f True parCount
| otherwise =
error "Error while executing part of expression assignment predicate."
precedesDoubleColon :: AlexInput -> Bool
precedesDoubleColon ai = not . flip seenConstr ai . fillConstr $ TDoubleColon
attributeP :: User -> AlexInput -> Int -> AlexInput -> Bool
attributeP _ _ _ ai = followsComma && precedesDoubleColon ai && startsWithTypeSpec
where
followsComma
| Just TComma{} <- aiPreviousToken ai = True
| otherwise = False
startsWithTypeSpec
| (token:_) <- prevTokens =
isTypeSpec token || fillConstr TType == toConstr token
| otherwise = False
prevTokens = reverse . aiPreviousTokensInLine $ ai
constructNameP :: User -> AlexInput -> Int -> AlexInput -> Bool
constructNameP user _ _ ai =
case nextTokenConstr user ai of
Just constr -> constr == fillConstr TColon
_ -> False
genericSpecP :: User -> AlexInput -> Int -> AlexInput -> Bool
genericSpecP _ _ _ ai = Just True == do
constr <- prevTokenConstr ai
if constr `elem` fmap fillConstr [ TInterface, TPublic, TPrivate ]
then return True
else if constr `elem` fmap fillConstr [ TComma, TDoubleColon ]
then return $ seenConstr (fillConstr TPublic) ai || seenConstr (fillConstr TPrivate) ai
else Nothing
typeSpecP :: User -> AlexInput -> Int -> AlexInput -> Bool
typeSpecP _ _ _ ai
| (prevToken:_) <- prevTokens
, isTypeSpec prevToken = True
| otherwise = isTypeSpecImmediatelyBefore $ reverse prevTokens
where
isTypeSpecImmediatelyBefore tokens@(x:xs)
| isTypeSpec tokens = True
| otherwise = isTypeSpecImmediatelyBefore xs
isTypeSpecImmediatelyBefore [] = False
prevTokens = aiPreviousTokensInLine ai
resultP :: User -> AlexInput -> Int -> AlexInput -> Bool
resultP _ _ _ ai =
(flip seenConstr ai . fillConstr $ TFunction) &&
prevTokenConstr ai == (Just $ fillConstr TRightPar)
notPrecedingDotP :: User -> AlexInput -> Int -> AlexInput -> Bool
notPrecedingDotP user _ _ ai = not $
nextTokenConstr user ai == (Just $ toConstr (TId undefined undefined))
followsIntentP :: User -> AlexInput -> Int -> AlexInput -> Bool
followsIntentP _ _ _ ai =
(map toConstr . take 2 . aiPreviousTokensInLine) ai ==
map fillConstr [ TLeftPar, TIntent ]
useStP :: User -> AlexInput -> Int -> AlexInput -> Bool
useStP _ _ _ ai = seenConstr (toConstr $ TUse undefined) ai
caseStP :: User -> AlexInput -> Int -> AlexInput -> Bool
caseStP _ _ _ ai = prevTokenConstr ai == (Just $ fillConstr TCase)
assignStP :: User -> AlexInput -> Int -> AlexInput -> Bool
assignStP _ _ _ ai = seenConstr (fillConstr TAssign) ai
prevTokenConstr :: AlexInput -> Maybe Constr
prevTokenConstr ai = toConstr <$> aiPreviousToken ai
nextTokenConstr :: User -> AlexInput -> Maybe Constr
nextTokenConstr (User fv pc) ai =
case unParse lexer' parseState of
ParseOk token _ -> Just $ toConstr token
_ -> Nothing
where
parseState = ParseState
{ psAlexInput = ai
, psParanthesesCount = pc
, psVersion = fv
, psFilename = "<unknown>"
, psContext = [ ConStart ] }
seenConstr :: Constr -> AlexInput -> Bool
seenConstr candidateConstr ai =
candidateConstr `elem` (toConstr <$> aiPreviousTokensInLine ai)
fillConstr = toConstr . ($ undefined)
--------------------------------------------------------------------------------
-- Lexer helpers
--------------------------------------------------------------------------------
leftPar :: LexAction (Maybe Token)
leftPar = do
incPar
context <- topContext
if context == ConImplicit
then do
parseState <- get
case unParse f parseState of
ParseOk tokenCons _ -> do
span <- getLexemeSpan
return $ Just $ tokenCons span
ParseFailed e -> fail "Left parantheses is not matched."
else addSpan TLeftPar
where
f :: LexAction (SrcSpan -> Token)
f = do
(ParanthesesCount pc _) <- getParanthesesCount
mPrevToken <- aiPreviousToken <$> getAlex
case mPrevToken of
Just TRightPar{} | pc == 0 -> do
span <- getLexemeSpan
curToken <- lexer'
case curToken of
TComma{} -> return TLeftPar2
TNewline{} -> return TLeftPar2
TEOF{} -> return TLeftPar2
_ -> return TLeftPar
_ -> lexer' >> f
comma :: LexAction (Maybe Token)
comma = do
context <- topContext
case context of
ConImplicit -> do
mToken <- aiPreviousToken <$> getAlex
case mToken of
Just TRightPar{} -> toSC scT >> addSpan TComma
_ -> addSpan TComma
ConNamelist -> secondCommaIfSlashFollows
ConCommon -> secondCommaIfSlashFollows
_ -> addSpan TComma
where
secondCommaIfSlashFollows = do
parseState <- get
case unParse lexer' parseState of
ParseOk TOpDivision{} _ -> addSpan TComma2
ParseFailed _ -> fail "Expecting variable name or slash."
_ -> addSpan TComma
slashOrDivision :: LexAction (Maybe Token)
slashOrDivision = do
context <- topContext
case context of
ConData -> addSpan TSlash
_ -> addSpan TOpDivision
addSpan :: (SrcSpan -> Token) -> LexAction (Maybe Token)
addSpan cons = do
s <- getLexemeSpan
return $ Just $ cons s
addSpanAndMatch :: (SrcSpan -> String -> Token) -> LexAction (Maybe Token)
addSpanAndMatch cons = do
s <- getLexemeSpan
m <- getMatch
return $ Just $ cons s m
getLexeme :: LexAction Lexeme
getLexeme = do
ai <- getAlex
return $ aiLexeme ai
putLexeme :: Lexeme -> LexAction ()
putLexeme lexeme = do
ai <- getAlex
putAlex $ ai { aiLexeme = lexeme }
resetLexeme :: LexAction ()
resetLexeme = putLexeme initLexeme
getMatch :: LexAction String
getMatch = do
lexeme <- getLexeme
return $ (reverse . lexemeMatch) lexeme
putMatch :: String -> LexAction ()
putMatch newMatch = do
lexeme <- getLexeme
putLexeme $ lexeme { lexemeMatch = reverse newMatch }
instance Spanned Lexeme where
getSpan lexeme =
let ms = lexemeStart lexeme
me = lexemeEnd lexeme in
case ms of
Just s -> SrcSpan s (fromJust me)
Nothing -> error $ "Span access on nonexistant lexeme."
++ lexemeMatch lexeme
setSpan _ = error "Lexeme span cannot be set."
updatePreviousToken :: Maybe Token -> LexAction ()
updatePreviousToken maybeToken = do
ai <- getAlex
putAlex $ ai { aiPreviousToken = maybeToken }
addToPreviousTokensInLine :: Token -> LexAction ()
addToPreviousTokensInLine token = do
ai <- getAlex
putAlex $
case token of
TNewline _ -> updatePrevTokens ai [ ]
t -> updatePrevTokens ai $ t : aiPreviousTokensInLine ai
where
updatePrevTokens ai tokens = ai { aiPreviousTokensInLine = tokens }
checkPreviousTokensInLine :: (Token -> Bool) -> AlexInput -> Bool
checkPreviousTokensInLine prop ai = any prop $ aiPreviousTokensInLine ai
getLexemeSpan :: LexAction SrcSpan
getLexemeSpan = do
lexeme <- getLexeme
return $ getSpan lexeme
-- Automata for character literal parsing is given below. Wherever it says '
-- you can replace ", whichever is used depends on what the first matched
-- character is and they are dual in their nature.
--
-- else
-- +-+
-- | v
-- +-+ Nothing +-+
-- +---> |0|---------->|3|
-- +-> +-+ +-+
-- | |
-- ' | | '
-- | v
-- | +-+ Nothing +-+
-- +---|1|---------->|2|
-- +-+ +-+
-- | ^
-- +-------------+
-- else
--
-- For more information please refer to Fortran 90 standard's section related
-- to character constants.
lexCharacter :: LexAction (Maybe Token)
lexCharacter = do
alex <- getAlex
putAlex $ alex { aiStartCode = StartCode scC Stable }
match <- getMatch
let boundaryMarker = last match
_lexChar 0 boundaryMarker
where
_lexChar 0 bm = do
alex <- getAlex
case alexGetByte alex of
Just (_, newAlex) -> do
putAlex newAlex
m <- getMatch
if last m == bm
then _lexChar 1 bm
else _lexChar 0 bm
Nothing -> fail "Unmatched character literal."
_lexChar 1 bm = do
alex <- getAlex
case alexGetByte alex of
Just (_, newAlex) -> do
let m = lexemeMatch . aiLexeme $ newAlex
if head m == bm
then do
putAlex newAlex
putMatch . reverse . tail $ m
_lexChar 0 bm
else _lexChar 2 bm
Nothing -> _lexChar 2 bm
_lexChar 2 _ = do
alex <- getAlex
putAlex $ alex { aiStartCode = StartCode scN Return }
match <- getMatch
putMatch . init . tail $ match
addSpanAndMatch TString
toSC :: Int -> LexAction ()
toSC startCode = do
alex <- getAlex
putAlex $ alex { aiStartCode = StartCode startCode Return }
stabiliseStartCode :: LexAction ()
stabiliseStartCode = do
alex <- getAlex
let sc = aiStartCode alex
putAlex $ alex { aiStartCode = sc { scStatus = Stable } }
normaliseStartCode :: LexAction ()
normaliseStartCode = do
alex <- getAlex
let startCode = aiStartCode alex
case scStatus startCode of
Return -> putAlex $ alex { aiStartCode = StartCode scN Stable }
Stable -> return ()
--------------------------------------------------------------------------------
-- AlexInput & related definitions
--------------------------------------------------------------------------------
data Lexeme = Lexeme
{ lexemeMatch :: String
, lexemeStart :: Maybe Position
, lexemeEnd :: Maybe Position
} deriving (Show)
initLexeme :: Lexeme
initLexeme = Lexeme
{ lexemeMatch = ""
, lexemeStart = Nothing
, lexemeEnd = Nothing }
data StartCodeStatus = Return | Stable deriving (Show)
data StartCode = StartCode
{ scActual :: Int
, scStatus :: StartCodeStatus }
deriving (Show)
data AlexInput = AlexInput
{ aiSourceInput :: String
, aiPosition :: Position
, aiPreviousChar :: Char
, aiLexeme :: Lexeme
, aiStartCode :: StartCode
, aiPreviousToken :: Maybe Token
, aiPreviousTokensInLine :: [ Token ]
} deriving (Show)
instance Loc AlexInput where
getPos = aiPosition
instance LastToken AlexInput Token where
getLastToken = aiPreviousToken
type LexAction a = Parse AlexInput Token a
vanillaAlexInput :: AlexInput
vanillaAlexInput = AlexInput
{ aiSourceInput = ""
, aiPosition = initPosition
, aiPreviousChar = '\n'
, aiLexeme = initLexeme
, aiStartCode = StartCode 0 Return
, aiPreviousToken = Nothing
, aiPreviousTokensInLine = [ ] }
updateLexeme :: Char -> Position -> AlexInput -> AlexInput
updateLexeme char p ai =
let lexeme = aiLexeme ai
match = lexemeMatch lexeme
newMatch = char : match
start = lexemeStart lexeme
newStart = if isNothing start then Just p else start
newEnd = Just p in
ai { aiLexeme = Lexeme newMatch newStart newEnd }
-- Fortran version and parantheses count to be used by alexScanUser
data User = User FortranVersion ParanthesesCount
--------------------------------------------------------------------------------
-- Definitions needed for alexScanUser
--------------------------------------------------------------------------------
data Move = Continuation | Char | Newline
alexGetByte :: AlexInput -> Maybe (Word8, AlexInput)
alexGetByte ai
-- When all characters are already read
| posAbsoluteOffset _position == (toInteger . length . aiSourceInput) ai = Nothing
-- Skip the continuation line altogether
| isContinuation ai = alexGetByte . skipContinuation $ ai
-- Read genuine character and advance. Also covers white sensitivity.
| otherwise =
Just ( fromIntegral . fromEnum $ _curChar
, updateLexeme _curChar _position
ai
{ aiPosition =
case _curChar of
'\n' -> advance Newline _position
_ -> advance Char _position
, aiPreviousChar = _curChar })
where
_curChar = currentChar ai
_position = aiPosition ai
alexInputPrevChar :: AlexInput -> Char
alexInputPrevChar ai = aiPreviousChar ai
takeNChars :: Integer -> AlexInput -> String
takeNChars n ai =
take (fromIntegral n) . drop (fromIntegral _dropN) $ aiSourceInput ai
where
_dropN = posAbsoluteOffset . aiPosition $ ai
currentChar :: AlexInput -> Char
currentChar ai
-- case sensitivity matters only in character literals
| (scActual . aiStartCode) ai == scC = _currentChar
| otherwise = toLower _currentChar
where
_currentChar = head . takeNChars 1 $ ai
advanceWithoutContinuation :: AlexInput -> Maybe AlexInput
advanceWithoutContinuation ai
-- When all characters are already read
| posAbsoluteOffset _position == (toInteger . length . aiSourceInput) ai =
Nothing
-- Read genuine character and advance. Also covers white sensitivity.
| otherwise =
Just $ ai { aiPosition =
case _curChar of
'\n' -> advance Newline _position
_ -> advance Char _position
, aiPreviousChar = _curChar }
where
_curChar = currentChar ai
_position = aiPosition ai
isContinuation :: AlexInput -> Bool
isContinuation ai =
-- No continuation while lexing a character literal.
(scActual . aiStartCode) ai /= scC
-- No continuation while lexing a comment.
&& (let lexeme = lexemeMatch . aiLexeme $ ai
in null lexeme || last lexeme /= '!')
&& _isContinuation ai 0
where
_isContinuation ai 0 =
if currentChar ai == '&'
then _advance ai
else False
_isContinuation ai 1 =
case currentChar ai of
' ' -> _advance ai
'\t' -> _advance ai
'\r' -> _advance ai
'!' -> True
'\n' -> True
_ -> False
_advance :: AlexInput -> Bool
_advance ai =
case advanceWithoutContinuation ai of
Just ai' -> _isContinuation ai' 1
Nothing -> False
-- Here's the skip continuation automaton:
--
-- white white,\n
-- +-+ +-+
-- | v | v +---+
-- +-+ & +-+ \n +-+ & |---|
-- +-->|0|------>|1|------->|3|------->||4||
-- +-+ +-+ +-+----+ |---|
-- | ^ | +---+
-- |! | |
-- v | |else
-- +->+-+ | v
-- else| |2|---------+ +---+
-- +--+-+ |---|
-- ||5||
-- |---|
-- +---+
--
-- For more information refer to Fortran 90 standard.
-- This version is more permissive than the specification
-- as it allows empty lines to be used between continuations.
skipContinuation :: AlexInput -> AlexInput
skipContinuation ai = _skipCont ai 0
where
_skipCont ai 0 =
if currentChar ai == '&'
then _advance ai 1
else error "This case is excluded by isContinuation."
_skipCont ai 1 =
let _curChar = currentChar ai in
if _curChar `elem` [' ', '\t', '\r']
then _advance ai 1
else if _curChar == '!'
then _advance ai 2
else if _curChar == '\n'
then _advance ai 3
else
error $
join [ "Did not expect non-blank/non-comment character after "
, "continuation symbol (&)." ]
_skipCont ai 2 =
if currentChar ai == '\n'
then _advance ai 3
else _advance ai 2
_skipCont ai 3 =
let _curChar = currentChar ai in
if _curChar `elem` [' ', '\t', '\r', '\n']
then _advance ai 3
else if _curChar == '!'
then _advance ai 2
else if _curChar == '&'
-- This state accepts as if there were no spaces between the broken
-- line and whatever comes after second &. This is implicitly state (4)
then fromMaybe (error "File has ended prematurely during a continuation.")
(advanceWithoutContinuation ai)
-- This state accepts but the broken line delimits the previous token.
-- This is implicitly state (5). To achieve this, it returns the
-- previous ai, which either has whitespace or newline, so it will
-- nicely delimit.
else ai
_advance ai state =
case advanceWithoutContinuation ai of
Just ai' -> _skipCont ai' state
Nothing -> error "File has ended prematurely during a continuation."
advance :: Move -> Position -> Position
advance move position =
case move of
Newline ->
position
{ posAbsoluteOffset = _absl + 1 , posColumn = 1 , posLine = _line + 1 }
Char ->
position { posAbsoluteOffset = _absl + 1 , posColumn = _col + 1 }
where
_col = posColumn position
_line = posLine position
_absl = posAbsoluteOffset position
--------------------------------------------------------------------------------
-- Lexer definition
--------------------------------------------------------------------------------
lexer :: (Token -> LexAction a) -> LexAction a
lexer cont = cont =<< lexer'
lexer' :: LexAction Token
lexer' = do
resetLexeme
alex <- getAlex
let startCode = scActual . aiStartCode $ alex
normaliseStartCode
newAlex <- getAlex
version <- getVersion
paranthesesCount <- getParanthesesCount
let user = User version paranthesesCount
case alexScanUser user newAlex startCode of
AlexEOF -> return $ TEOF $ SrcSpan (getPos alex) (getPos alex)
AlexError _ ->
fail $ "Lexing failed. "
#ifdef DEBUG
++ '\n' : show newAlex ++ "\n"
#endif
AlexSkip newAlex _ -> do
putAlex $ newAlex { aiStartCode = StartCode startCode Return }
lexer'
AlexToken newAlex _ action -> do
putAlex newAlex
maybeToken <- action
case maybeToken of
Just token -> do
updatePreviousToken maybeToken
addToPreviousTokensInLine token
return token
Nothing -> lexer'
alexScanUser :: User -> AlexInput -> Int -> AlexReturn (LexAction (Maybe Token))
--------------------------------------------------------------------------------
-- Tokens
--------------------------------------------------------------------------------
data Token =
TId SrcSpan String
| TComment SrcSpan String
| TString SrcSpan String
| TIntegerLiteral SrcSpan String
| TRealLiteral SrcSpan String
| TBozLiteral SrcSpan String
| TComma SrcSpan
| TComma2 SrcSpan
| TSemiColon SrcSpan
| TColon SrcSpan
| TDoubleColon SrcSpan
| TOpAssign SrcSpan
| TArrow SrcSpan
| TPercent SrcSpan
| TLeftPar SrcSpan
| TLeftPar2 SrcSpan
| TRightPar SrcSpan
| TLeftInitPar SrcSpan
| TRightInitPar SrcSpan
-- Mainly operators
| TOpCustom SrcSpan String
| TOpExp SrcSpan
| TOpPlus SrcSpan
| TOpMinus SrcSpan
| TStar SrcSpan
| TOpDivision SrcSpan
| TSlash SrcSpan
| TOpOr SrcSpan
| TOpAnd SrcSpan
| TOpNot SrcSpan
| TOpEquivalent SrcSpan
| TOpNotEquivalent SrcSpan
| TOpLT SrcSpan
| TOpLE SrcSpan
| TOpEQ SrcSpan
| TOpNE SrcSpan
| TOpGT SrcSpan
| TOpGE SrcSpan
| TLogicalLiteral SrcSpan String
-- Keywords
-- Program unit related
| TProgram SrcSpan
| TEndProgram SrcSpan
| TFunction SrcSpan
| TEndFunction SrcSpan
| TResult SrcSpan
| TRecursive SrcSpan
| TSubroutine SrcSpan
| TEndSubroutine SrcSpan
| TBlockData SrcSpan
| TEndBlockData SrcSpan
| TModule SrcSpan
| TEndModule SrcSpan
| TContains SrcSpan
| TUse SrcSpan
| TOnly SrcSpan
| TInterface SrcSpan
| TEndInterface SrcSpan
| TModuleProcedure SrcSpan
| TAssignment SrcSpan
| TOperator SrcSpan
| TCall SrcSpan
| TReturn SrcSpan
| TEntry SrcSpan
-- Attributes
| TPublic SrcSpan
| TPrivate SrcSpan
| TParameter SrcSpan
| TAllocatable SrcSpan
| TDimension SrcSpan
| TExternal SrcSpan
| TIntent SrcSpan
| TIntrinsic SrcSpan
| TOptional SrcSpan
| TPointer SrcSpan
| TSave SrcSpan
| TTarget SrcSpan
-- Attribute values
| TIn SrcSpan
| TOut SrcSpan
| TInOut SrcSpan
-- Beginning keyword
| TData SrcSpan
| TNamelist SrcSpan
| TImplicit SrcSpan
| TEquivalence SrcSpan
| TCommon SrcSpan
| TAllocate SrcSpan
| TDeallocate SrcSpan
| TNullify SrcSpan
-- Misc
| TNone SrcSpan
-- Control flow
| TGoto SrcSpan
| TAssign SrcSpan
| TTo SrcSpan
| TContinue SrcSpan
| TStop SrcSpan
| TPause SrcSpan
| TDo SrcSpan
| TEndDo SrcSpan
| TWhile SrcSpan
| TIf SrcSpan
| TThen SrcSpan
| TElse SrcSpan
| TElsif SrcSpan
| TEndIf SrcSpan
| TCase SrcSpan
| TSelectCase SrcSpan
| TEndSelect SrcSpan
| TDefault SrcSpan
| TCycle SrcSpan
| TExit SrcSpan
-- Where construct
| TWhere SrcSpan
| TElsewhere SrcSpan
| TEndWhere SrcSpan
-- Type related
| TType SrcSpan
| TEndType SrcSpan
| TSequence SrcSpan
-- Selector
| TKind SrcSpan
| TLen SrcSpan
-- Intrinsic types
| TInteger SrcSpan
| TReal SrcSpan
| TDoublePrecision SrcSpan
| TLogical SrcSpan
| TCharacter SrcSpan
| TComplex SrcSpan
-- I/O
| TOpen SrcSpan
| TClose SrcSpan
| TRead SrcSpan
| TWrite SrcSpan
| TPrint SrcSpan
| TBackspace SrcSpan
| TRewind SrcSpan
| TInquire SrcSpan
| TEndfile SrcSpan
-- Etc.
| TEnd SrcSpan
| TNewline SrcSpan
| TEOF SrcSpan
deriving (Eq, Show, Data, Typeable, Generic)
instance FirstParameter Token SrcSpan
instance FirstParameter Token SrcSpan => Spanned Token where
getSpan = getFirstParameter
setSpan = setFirstParameter
instance Tok Token where
eofToken TEOF{} = True
eofToken _ = False
class SpecifiesType a where
isTypeSpec :: a -> Bool
instance SpecifiesType Token where
isTypeSpec TInteger{} = True
isTypeSpec TReal{} = True
isTypeSpec TDoublePrecision{} = True
isTypeSpec TLogical{} = True
isTypeSpec TCharacter{} = True
isTypeSpec TComplex{} = True
isTypeSpec _ = False
instance SpecifiesType [ Token ] where
isTypeSpec tokens
| [ TType{}, TLeftPar{}, _, TRightPar{} ] <- tokens = True
-- This is an approximation but should hold for almost all legal programs.
| (typeToken:TLeftPar{}:rest) <- tokens =
isTypeSpec typeToken &&
case last rest of
TRightPar{} -> True
_ -> False
| (TCharacter{}:TStar{}:rest) <- tokens =
case rest of
[ TIntegerLiteral{} ] -> True
(TLeftPar{}:rest') | TRightPar{} <- last rest' -> True
_ -> False
| otherwise = False
--------------------------------------------------------------------------------
-- Functions to help testing & output
--------------------------------------------------------------------------------
initParseState :: String -> FortranVersion -> String -> ParseState AlexInput
initParseState srcInput fortranVersion filename =
_vanillaParseState { psAlexInput = vanillaAlexInput { aiSourceInput = srcInput } }
where
_vanillaParseState = ParseState
{ psAlexInput = undefined
, psVersion = fortranVersion
, psFilename = filename
, psParanthesesCount = ParanthesesCount 0 False
, psContext = [ ConStart ] }
collectFreeTokens :: FortranVersion -> String -> [Token]
collectFreeTokens version srcInput =
collectTokens lexer' $ initParseState srcInput version "<unknown>"
scC,scI,scN,scT :: Int
scC = 1
scI = 2
scN = 3
scT = 4
alex_action_0 = addSpanAndMatch TComment
alex_action_1 = resetPar >> toSC 0 >> addSpan TNewline
alex_action_3 = leftPar
alex_action_4 = decPar >> toSC scI >> addSpan TRightPar
alex_action_5 = decPar >> addSpan TRightPar
alex_action_6 = addSpan TLeftInitPar
alex_action_7 = addSpan TRightInitPar
alex_action_8 = comma
alex_action_9 = addSpan TSemiColon
alex_action_10 = addSpan TColon
alex_action_11 = addSpan TDoubleColon
alex_action_12 = addSpan TOpAssign
alex_action_13 = addSpan TArrow
alex_action_14 = addSpan TPercent
alex_action_15 = addSpanAndMatch TId
alex_action_16 = addSpanAndMatch TId
alex_action_17 = addSpan TProgram
alex_action_18 = addSpan TEndProgram
alex_action_19 = addSpan TFunction
alex_action_20 = addSpan TFunction
alex_action_21 = addSpan TEndFunction
alex_action_22 = addSpan TResult
alex_action_23 = toSC 0 >> addSpan TRecursive
alex_action_24 = toSC 0 >> addSpan TRecursive
alex_action_25 = addSpan TSubroutine
alex_action_26 = addSpan TEndSubroutine
alex_action_27 = addSpan TBlockData
alex_action_28 = addSpan TEndBlockData
alex_action_29 = addSpan TModule
alex_action_30 = addSpan TEndModule
alex_action_31 = addSpan TContains
alex_action_32 = addSpan TUse
alex_action_33 = addSpan TOnly
alex_action_34 = addSpan TInterface
alex_action_35 = addSpan TEndInterface
alex_action_36 = addSpan TModuleProcedure
alex_action_37 = addSpan TAssignment
alex_action_38 = addSpan TOperator
alex_action_39 = addSpan TCall
alex_action_40 = addSpan TReturn
alex_action_41 = addSpan TEntry
alex_action_42 = addSpan TType
alex_action_43 = addSpan TEndType
alex_action_44 = addSpan TSequence
alex_action_45 = addSpan TInteger
alex_action_46 = addSpan TReal
alex_action_47 = addSpan TDoublePrecision
alex_action_48 = addSpan TLogical
alex_action_49 = addSpan TCharacter
alex_action_50 = addSpan TComplex
alex_action_51 = addSpan TKind
alex_action_52 = addSpan TLen
alex_action_53 = addSpan TPublic
alex_action_54 = addSpan TPublic
alex_action_55 = addSpan TPrivate
alex_action_56 = addSpan TPrivate
alex_action_57 = addSpan TParameter
alex_action_58 = addSpan TParameter
alex_action_59 = addSpan TAllocatable
alex_action_60 = addSpan TAllocatable
alex_action_61 = addSpan TDimension
alex_action_62 = addSpan TDimension
alex_action_63 = addSpan TExternal
alex_action_64 = addSpan TExternal
alex_action_65 = addSpan TIntent
alex_action_66 = addSpan TIntent
alex_action_67 = addSpan TIntrinsic
alex_action_68 = addSpan TIntrinsic
alex_action_69 = addSpan TOptional
alex_action_70 = addSpan TOptional
alex_action_71 = addSpan TPointer
alex_action_72 = addSpan TPointer
alex_action_73 = addSpan TSave
alex_action_74 = addSpan TSave
alex_action_75 = addSpan TTarget
alex_action_76 = addSpan TTarget
alex_action_77 = addSpan TInOut
alex_action_78 = addSpan TIn
alex_action_79 = addSpan TOut
alex_action_80 = addSpan TDo
alex_action_81 = addSpan TDo
alex_action_82 = addSpan TEndDo
alex_action_83 = addSpan TWhile
alex_action_84 = addSpan TIf
alex_action_85 = addSpan TIf
alex_action_86 = addSpan TThen
alex_action_87 = addSpan TElse
alex_action_88 = addSpan TElsif
alex_action_89 = addSpan TEndIf
alex_action_90 = addSpan TSelectCase
alex_action_91 = addSpan TSelectCase
alex_action_92 = addSpan TCase
alex_action_93 = addSpan TEndSelect
alex_action_94 = addSpan TDefault
alex_action_95 = addSpan TCycle
alex_action_96 = addSpan TExit
alex_action_97 = addSpan TGoto
alex_action_98 = addSpan TAssign
alex_action_99 = addSpan TTo
alex_action_100 = addSpan TContinue
alex_action_101 = addSpan TStop
alex_action_102 = addSpan TPause
alex_action_103 = addSpan TWhere
alex_action_104 = addSpan TElsewhere
alex_action_105 = addSpan TEndWhere
alex_action_106 = addSpan TData
alex_action_107 = addSpan TAllocate
alex_action_108 = addSpan TDeallocate
alex_action_109 = addSpan TNullify
alex_action_110 = addSpan TNamelist
alex_action_111 = toSC scT >> addSpan TImplicit
alex_action_112 = addSpan TEquivalence
alex_action_113 = addSpan TCommon
alex_action_114 = addSpan TEnd
alex_action_115 = addSpan TNone
alex_action_116 = addSpan TOpen
alex_action_117 = addSpan TClose
alex_action_118 = addSpan TRead
alex_action_119 = addSpan TWrite
alex_action_120 = addSpan TPrint
alex_action_121 = addSpan TBackspace
alex_action_122 = addSpan TRewind
alex_action_123 = addSpan TInquire
alex_action_124 = addSpan TEndfile
alex_action_125 = toSC 0 >> addSpanAndMatch TIntegerLiteral
alex_action_126 = addSpanAndMatch TIntegerLiteral
alex_action_127 = addSpanAndMatch TBozLiteral
alex_action_128 = addSpanAndMatch TRealLiteral
alex_action_129 = addSpanAndMatch TRealLiteral
alex_action_130 = lexCharacter
alex_action_131 = addSpanAndMatch TLogicalLiteral
alex_action_132 = addSpanAndMatch TOpCustom
alex_action_133 = addSpan TOpExp
alex_action_134 = addSpan TOpPlus
alex_action_135 = addSpan TOpMinus
alex_action_136 = addSpan TStar
alex_action_137 = slashOrDivision
alex_action_138 = addSpan TOpOr
alex_action_139 = addSpan TOpAnd
alex_action_140 = addSpan TOpNot
alex_action_141 = addSpan TOpEquivalent
alex_action_142 = addSpan TOpNotEquivalent
alex_action_143 = addSpan TOpEQ
alex_action_144 = addSpan TOpNE
alex_action_145 = addSpan TOpLT
alex_action_146 = addSpan TOpLE
alex_action_147 = addSpan TOpGT
alex_action_148 = addSpan TOpGE
alex_action_149 = addSpanAndMatch TOpCustom
alex_action_150 = addSpanAndMatch TId
{-# LINE 1 "templates/GenericTemplate.hs" #-}
{-# LINE 1 "templates/GenericTemplate.hs" #-}
{-# LINE 1 "<built-in>" #-}
{-# LINE 16 "<built-in>" #-}
{-# LINE 1 "/usr/local/lib/ghc-7.10.2/include/ghcversion.h" #-}
{-# LINE 17 "<built-in>" #-}
{-# LINE 1 "templates/GenericTemplate.hs" #-}
-- -----------------------------------------------------------------------------
-- ALEX TEMPLATE
--
-- This code is in the PUBLIC DOMAIN; you may copy it freely and use
-- it for any purpose whatsoever.
-- -----------------------------------------------------------------------------
-- INTERNALS and main scanner engine
{-# LINE 21 "templates/GenericTemplate.hs" #-}
{-# LINE 51 "templates/GenericTemplate.hs" #-}
{-# LINE 72 "templates/GenericTemplate.hs" #-}
alexIndexInt16OffAddr arr off = arr ! off
{-# LINE 93 "templates/GenericTemplate.hs" #-}
alexIndexInt32OffAddr arr off = arr ! off
{-# LINE 105 "templates/GenericTemplate.hs" #-}
quickIndex arr i = arr ! i
-- -----------------------------------------------------------------------------
-- Main lexing routines
data AlexReturn a
= AlexEOF
| AlexError !AlexInput
| AlexSkip !AlexInput !Int
| AlexToken !AlexInput !Int a
-- alexScan :: AlexInput -> StartCode -> AlexReturn a
alexScan input (sc)
= alexScanUser undefined input (sc)
alexScanUser user input (sc)
= case alex_scan_tkn user input (0) input sc AlexNone of
(AlexNone, input') ->
case alexGetByte input of
Nothing ->
AlexEOF
Just _ ->
AlexError input'
(AlexLastSkip input'' len, _) ->
AlexSkip input'' len
(AlexLastAcc k input''' len, _) ->
AlexToken input''' len k
-- Push the input through the DFA, remembering the most recent accepting
-- state it encountered.
alex_scan_tkn user orig_input len input s last_acc =
input `seq` -- strict in the input
let
new_acc = (check_accs (alex_accept `quickIndex` (s)))
in
new_acc `seq`
case alexGetByte input of
Nothing -> (new_acc, input)
Just (c, new_input) ->
case fromIntegral c of { (ord_c) ->
let
base = alexIndexInt32OffAddr alex_base s
offset = (base + ord_c)
check = alexIndexInt16OffAddr alex_check offset
new_s = if (offset >= (0)) && (check == ord_c)
then alexIndexInt16OffAddr alex_table offset
else alexIndexInt16OffAddr alex_deflt s
in
case new_s of
(-1) -> (new_acc, input)
-- on an error, we want to keep the input *before* the
-- character that failed, not after.
_ -> alex_scan_tkn user orig_input (if c < 0x80 || c >= 0xC0 then (len + (1)) else len)
-- note that the length is increased ONLY if this is the 1st byte in a char encoding)
new_input new_s new_acc
}
where
check_accs (AlexAccNone) = last_acc
check_accs (AlexAcc a ) = AlexLastAcc a input (len)
check_accs (AlexAccSkip) = AlexLastSkip input (len)
check_accs (AlexAccPred a predx rest)
| predx user orig_input (len) input
= AlexLastAcc a input (len)
| otherwise
= check_accs rest
check_accs (AlexAccSkipPred predx rest)
| predx user orig_input (len) input
= AlexLastSkip input (len)
| otherwise
= check_accs rest
data AlexLastAcc a
= AlexNone
| AlexLastAcc a !AlexInput !Int
| AlexLastSkip !AlexInput !Int
instance Functor AlexLastAcc where
fmap f AlexNone = AlexNone
fmap f (AlexLastAcc x y z) = AlexLastAcc (f x) y z
fmap f (AlexLastSkip x y) = AlexLastSkip x y
data AlexAcc a user
= AlexAccNone
| AlexAcc a
| AlexAccSkip
| AlexAccPred a (AlexAccPred user) (AlexAcc a user)
| AlexAccSkipPred (AlexAccPred user) (AlexAcc a user)
type AlexAccPred user = user -> AlexInput -> Int -> AlexInput -> Bool
-- -----------------------------------------------------------------------------
-- Predicates on a rule
alexAndPred p1 p2 user in1 len in2
= p1 user in1 len in2 && p2 user in1 len in2
--alexPrevCharIsPred :: Char -> AlexAccPred _
alexPrevCharIs c _ input _ _ = c == alexInputPrevChar input
alexPrevCharMatches f _ input _ _ = f (alexInputPrevChar input)
--alexPrevCharIsOneOfPred :: Array Char Bool -> AlexAccPred _
alexPrevCharIsOneOf arr _ input _ _ = arr ! alexInputPrevChar input
--alexRightContext :: Int -> AlexAccPred _
alexRightContext (sc) user _ _ input =
case alex_scan_tkn user input (0) input sc AlexNone of
(AlexNone, _) -> False
_ -> True
-- TODO: there's no need to find the longest
-- match when checking the right context, just
-- the first match will do.
-- used by wrappers
iUnbox (i) = i