/* Check cf5-opt.vim defs.
VIM: let g:lcppflags="-std=c++11 -O2 -pthread"
VIM: let g:wcppflags="/O2 /EHsc /DWIN32"
VIM: let g:cppflags=g:Iboost.g:Itbb
VIM: let g:ldflags=g:Lboost.g:Ltbb.g:tbbmalloc.g:tbbmproxy
VIM: let g:ldlibpath=g:Bboost.g:Btbb
VIM: let g:argv=""
VIM-: let g:cf5output=0
*/
#include <iostream>
#include <exception>

const int MAX_MAIN_STATE = 4;
const int MAX_RECORDS = 35;
const int MAX_NAME_STATE = 729;//3*3*3*3*3*3
const int MAX_STRICT_STATE = 64;//2*2*2*2*2*2

const int STATE_CELL = 0;
const int STATE_GEOM = 0;
const int STATE_NAME = 0;
const int STATE_END = 0;

/*!
	Entry
*/
typedef unsigned char const table_entry;

template <int B, int R, int N, int S>
struct sentry
{
	static const int value = 1;
};

/*!
*/
template <int N, int S>
struct state_transition_table
{
	static table_entry table[MAX_MAIN_STATE*MAX_RECORDS];
};

template <int N, int S>
table_entry state_transition_table<N,S>::table[MAX_MAIN_STATE*MAX_RECORDS] =
{
	sentry<0, 0,N,S>::value, sentry<1, 0,N,S>::value, sentry<2, 0,N,S>::value, sentry<3, 0,N,S>::value,
	sentry<0, 1,N,S>::value, sentry<1, 1,N,S>::value, sentry<2, 1,N,S>::value, sentry<3, 1,N,S>::value,
	sentry<0, 2,N,S>::value, sentry<1, 2,N,S>::value, sentry<2, 2,N,S>::value, sentry<3, 2,N,S>::value,
	sentry<0, 3,N,S>::value, sentry<1, 3,N,S>::value, sentry<2, 3,N,S>::value, sentry<3, 3,N,S>::value,
	sentry<0, 4,N,S>::value, sentry<1, 4,N,S>::value, sentry<2, 4,N,S>::value, sentry<3, 4,N,S>::value,
	sentry<0, 5,N,S>::value, sentry<1, 5,N,S>::value, sentry<2, 5,N,S>::value, sentry<3, 5,N,S>::value,
	sentry<0, 6,N,S>::value, sentry<1, 6,N,S>::value, sentry<2, 6,N,S>::value, sentry<3, 6,N,S>::value,
	sentry<0, 7,N,S>::value, sentry<1, 7,N,S>::value, sentry<2, 7,N,S>::value, sentry<3, 7,N,S>::value,
	sentry<0, 8,N,S>::value, sentry<1, 8,N,S>::value, sentry<2, 8,N,S>::value, sentry<3, 8,N,S>::value,
	sentry<0, 9,N,S>::value, sentry<1, 9,N,S>::value, sentry<2, 9,N,S>::value, sentry<3, 9,N,S>::value,
	sentry<0,10,N,S>::value, sentry<1,10,N,S>::value, sentry<2,10,N,S>::value, sentry<3,10,N,S>::value,
	sentry<0,11,N,S>::value, sentry<1,11,N,S>::value, sentry<2,11,N,S>::value, sentry<3,11,N,S>::value,
	sentry<0,12,N,S>::value, sentry<1,12,N,S>::value, sentry<2,12,N,S>::value, sentry<3,12,N,S>::value,
	sentry<0,13,N,S>::value, sentry<1,13,N,S>::value, sentry<2,13,N,S>::value, sentry<3,13,N,S>::value,
	sentry<0,14,N,S>::value, sentry<1,14,N,S>::value, sentry<2,14,N,S>::value, sentry<3,14,N,S>::value,
	sentry<0,15,N,S>::value, sentry<1,15,N,S>::value, sentry<2,15,N,S>::value, sentry<3,15,N,S>::value,
	sentry<0,16,N,S>::value, sentry<1,16,N,S>::value, sentry<2,16,N,S>::value, sentry<3,16,N,S>::value,
	sentry<0,17,N,S>::value, sentry<1,17,N,S>::value, sentry<2,17,N,S>::value, sentry<3,17,N,S>::value,
	sentry<0,18,N,S>::value, sentry<1,18,N,S>::value, sentry<2,18,N,S>::value, sentry<3,18,N,S>::value,
	sentry<0,19,N,S>::value, sentry<1,19,N,S>::value, sentry<2,19,N,S>::value, sentry<3,19,N,S>::value,
	sentry<0,20,N,S>::value, sentry<1,20,N,S>::value, sentry<2,20,N,S>::value, sentry<3,20,N,S>::value,
	sentry<0,21,N,S>::value, sentry<1,21,N,S>::value, sentry<2,21,N,S>::value, sentry<3,21,N,S>::value,
	sentry<0,22,N,S>::value, sentry<1,22,N,S>::value, sentry<2,22,N,S>::value, sentry<3,22,N,S>::value,
	sentry<0,23,N,S>::value, sentry<1,23,N,S>::value, sentry<2,23,N,S>::value, sentry<3,23,N,S>::value,
	sentry<0,24,N,S>::value, sentry<1,24,N,S>::value, sentry<2,24,N,S>::value, sentry<3,24,N,S>::value,
	sentry<0,25,N,S>::value, sentry<1,25,N,S>::value, sentry<2,25,N,S>::value, sentry<3,25,N,S>::value,
	sentry<0,26,N,S>::value, sentry<1,26,N,S>::value, sentry<2,26,N,S>::value, sentry<3,26,N,S>::value,
	sentry<0,27,N,S>::value, sentry<1,27,N,S>::value, sentry<2,27,N,S>::value, sentry<3,27,N,S>::value,
	sentry<0,28,N,S>::value, sentry<1,28,N,S>::value, sentry<2,28,N,S>::value, sentry<3,28,N,S>::value,
	sentry<0,29,N,S>::value, sentry<1,29,N,S>::value, sentry<2,29,N,S>::value, sentry<3,29,N,S>::value,
	sentry<0,30,N,S>::value, sentry<1,30,N,S>::value, sentry<2,30,N,S>::value, sentry<3,30,N,S>::value,
	sentry<0,31,N,S>::value, sentry<1,31,N,S>::value, sentry<2,31,N,S>::value, sentry<3,31,N,S>::value,
	sentry<0,32,N,S>::value, sentry<1,32,N,S>::value, sentry<2,32,N,S>::value, sentry<3,32,N,S>::value,
	sentry<0,33,N,S>::value, sentry<1,33,N,S>::value, sentry<2,33,N,S>::value, sentry<3,33,N,S>::value,
	sentry<0,34,N,S>::value, sentry<1,34,N,S>::value, sentry<2,34,N,S>::value, sentry<3,34,N,S>::value
};

/*!
*/
template <int S>
struct state_transition_table_name
{
	static table_entry * const table[MAX_NAME_STATE];
	
	//state_transition_table
};

template <int S>
table_entry * const state_transition_table_name<S>::table[MAX_NAME_STATE] =
{
	state_transition_table<  0,S>::table,
	state_transition_table<  1,S>::table,
	state_transition_table<  2,S>::table,
	state_transition_table<  3,S>::table,
	state_transition_table<  4,S>::table,
	state_transition_table<  5,S>::table,
	state_transition_table<  6,S>::table,
	state_transition_table<  7,S>::table,
	state_transition_table<  8,S>::table,
	state_transition_table<  9,S>::table,
	state_transition_table< 10,S>::table,
	state_transition_table< 11,S>::table,
	state_transition_table< 12,S>::table,
	state_transition_table< 13,S>::table,
	state_transition_table< 14,S>::table,
	state_transition_table< 15,S>::table,
	state_transition_table< 16,S>::table,
	state_transition_table< 17,S>::table,
	state_transition_table< 18,S>::table,
	state_transition_table< 19,S>::table,
	state_transition_table< 20,S>::table,
	state_transition_table< 21,S>::table,
	state_transition_table< 22,S>::table,
	state_transition_table< 23,S>::table,
	state_transition_table< 24,S>::table,
	state_transition_table< 25,S>::table,
	state_transition_table< 26,S>::table,
	state_transition_table< 27,S>::table,
	state_transition_table< 28,S>::table,
	state_transition_table< 29,S>::table,
	state_transition_table< 30,S>::table,
	state_transition_table< 31,S>::table,
	state_transition_table< 32,S>::table,
	state_transition_table< 33,S>::table,
	state_transition_table< 34,S>::table,
	state_transition_table< 35,S>::table,
	state_transition_table< 36,S>::table,
	state_transition_table< 37,S>::table,
	state_transition_table< 38,S>::table,
	state_transition_table< 39,S>::table,
	state_transition_table< 40,S>::table,
	state_transition_table< 41,S>::table,
	state_transition_table< 42,S>::table,
	state_transition_table< 43,S>::table,
	state_transition_table< 44,S>::table,
	state_transition_table< 45,S>::table,
	state_transition_table< 46,S>::table,
	state_transition_table< 47,S>::table,
	state_transition_table< 48,S>::table,
	state_transition_table< 49,S>::table,
	state_transition_table< 50,S>::table,
	state_transition_table< 51,S>::table,
	state_transition_table< 52,S>::table,
	state_transition_table< 53,S>::table,
	state_transition_table< 54,S>::table,
	state_transition_table< 55,S>::table,
	state_transition_table< 56,S>::table,
	state_transition_table< 57,S>::table,
	state_transition_table< 58,S>::table,
	state_transition_table< 59,S>::table,
	state_transition_table< 60,S>::table,
	state_transition_table< 61,S>::table,
	state_transition_table< 62,S>::table,
	state_transition_table< 63,S>::table,
	state_transition_table< 64,S>::table,
	state_transition_table< 65,S>::table,
	state_transition_table< 66,S>::table,
	state_transition_table< 67,S>::table,
	state_transition_table< 68,S>::table,
	state_transition_table< 69,S>::table,
	state_transition_table< 70,S>::table,
	state_transition_table< 71,S>::table,
	state_transition_table< 72,S>::table,
	state_transition_table< 73,S>::table,
	state_transition_table< 74,S>::table,
	state_transition_table< 75,S>::table,
	state_transition_table< 76,S>::table,
	state_transition_table< 77,S>::table,
	state_transition_table< 78,S>::table,
	state_transition_table< 79,S>::table,
	state_transition_table< 80,S>::table,
	state_transition_table< 81,S>::table,
	state_transition_table< 82,S>::table,
	state_transition_table< 83,S>::table,
	state_transition_table< 84,S>::table,
	state_transition_table< 85,S>::table,
	state_transition_table< 86,S>::table,
	state_transition_table< 87,S>::table,
	state_transition_table< 88,S>::table,
	state_transition_table< 89,S>::table,
	state_transition_table< 90,S>::table,
	state_transition_table< 91,S>::table,
	state_transition_table< 92,S>::table,
	state_transition_table< 93,S>::table,
	state_transition_table< 94,S>::table,
	state_transition_table< 95,S>::table,
	state_transition_table< 96,S>::table,
	state_transition_table< 97,S>::table,
	state_transition_table< 98,S>::table,
	state_transition_table< 99,S>::table,
//100
	state_transition_table<100,S>::table,
	state_transition_table<101,S>::table,
	state_transition_table<102,S>::table,
	state_transition_table<103,S>::table,
	state_transition_table<104,S>::table,
	state_transition_table<105,S>::table,
	state_transition_table<106,S>::table,
	state_transition_table<107,S>::table,
	state_transition_table<108,S>::table,
	state_transition_table<109,S>::table,
	state_transition_table<110,S>::table,
	state_transition_table<111,S>::table,
	state_transition_table<112,S>::table,
	state_transition_table<113,S>::table,
	state_transition_table<114,S>::table,
	state_transition_table<115,S>::table,
	state_transition_table<116,S>::table,
	state_transition_table<117,S>::table,
	state_transition_table<118,S>::table,
	state_transition_table<119,S>::table,
	state_transition_table<120,S>::table,
	state_transition_table<121,S>::table,
	state_transition_table<122,S>::table,
	state_transition_table<123,S>::table,
	state_transition_table<124,S>::table,
	state_transition_table<125,S>::table,
	state_transition_table<126,S>::table,
	state_transition_table<127,S>::table,
	state_transition_table<128,S>::table,
	state_transition_table<129,S>::table,
	state_transition_table<130,S>::table,
	state_transition_table<131,S>::table,
	state_transition_table<132,S>::table,
	state_transition_table<133,S>::table,
	state_transition_table<134,S>::table,
	state_transition_table<135,S>::table,
	state_transition_table<136,S>::table,
	state_transition_table<137,S>::table,
	state_transition_table<138,S>::table,
	state_transition_table<139,S>::table,
	state_transition_table<140,S>::table,
	state_transition_table<141,S>::table,
	state_transition_table<142,S>::table,
	state_transition_table<143,S>::table,
	state_transition_table<144,S>::table,
	state_transition_table<145,S>::table,
	state_transition_table<146,S>::table,
	state_transition_table<147,S>::table,
	state_transition_table<148,S>::table,
	state_transition_table<149,S>::table,
	state_transition_table<150,S>::table,
	state_transition_table<151,S>::table,
	state_transition_table<152,S>::table,
	state_transition_table<153,S>::table,
	state_transition_table<154,S>::table,
	state_transition_table<155,S>::table,
	state_transition_table<156,S>::table,
	state_transition_table<157,S>::table,
	state_transition_table<158,S>::table,
	state_transition_table<159,S>::table,
	state_transition_table<160,S>::table,
	state_transition_table<161,S>::table,
	state_transition_table<162,S>::table,
	state_transition_table<163,S>::table,
	state_transition_table<164,S>::table,
	state_transition_table<165,S>::table,
	state_transition_table<166,S>::table,
	state_transition_table<167,S>::table,
	state_transition_table<168,S>::table,
	state_transition_table<169,S>::table,
	state_transition_table<170,S>::table,
	state_transition_table<171,S>::table,
	state_transition_table<172,S>::table,
	state_transition_table<173,S>::table,
	state_transition_table<174,S>::table,
	state_transition_table<175,S>::table,
	state_transition_table<176,S>::table,
	state_transition_table<177,S>::table,
	state_transition_table<178,S>::table,
	state_transition_table<179,S>::table,
	state_transition_table<180,S>::table,
	state_transition_table<181,S>::table,
	state_transition_table<182,S>::table,
	state_transition_table<183,S>::table,
	state_transition_table<184,S>::table,
	state_transition_table<185,S>::table,
	state_transition_table<186,S>::table,
	state_transition_table<187,S>::table,
	state_transition_table<188,S>::table,
	state_transition_table<189,S>::table,
	state_transition_table<190,S>::table,
	state_transition_table<191,S>::table,
	state_transition_table<192,S>::table,
	state_transition_table<193,S>::table,
	state_transition_table<194,S>::table,
	state_transition_table<195,S>::table,
	state_transition_table<196,S>::table,
	state_transition_table<197,S>::table,
	state_transition_table<198,S>::table,
	state_transition_table<199,S>::table,
//200
	state_transition_table<200,S>::table,
	state_transition_table<201,S>::table,
	state_transition_table<202,S>::table,
	state_transition_table<203,S>::table,
	state_transition_table<204,S>::table,
	state_transition_table<205,S>::table,
	state_transition_table<206,S>::table,
	state_transition_table<207,S>::table,
	state_transition_table<208,S>::table,
	state_transition_table<209,S>::table,
	state_transition_table<210,S>::table,
	state_transition_table<211,S>::table,
	state_transition_table<212,S>::table,
	state_transition_table<213,S>::table,
	state_transition_table<214,S>::table,
	state_transition_table<215,S>::table,
	state_transition_table<216,S>::table,
	state_transition_table<217,S>::table,
	state_transition_table<218,S>::table,
	state_transition_table<219,S>::table,
	state_transition_table<220,S>::table,
	state_transition_table<221,S>::table,
	state_transition_table<222,S>::table,
	state_transition_table<223,S>::table,
	state_transition_table<224,S>::table,
	state_transition_table<225,S>::table,
	state_transition_table<226,S>::table,
	state_transition_table<227,S>::table,
	state_transition_table<228,S>::table,
	state_transition_table<229,S>::table,
	state_transition_table<230,S>::table,
	state_transition_table<231,S>::table,
	state_transition_table<232,S>::table,
	state_transition_table<233,S>::table,
	state_transition_table<234,S>::table,
	state_transition_table<235,S>::table,
	state_transition_table<236,S>::table,
	state_transition_table<237,S>::table,
	state_transition_table<238,S>::table,
	state_transition_table<239,S>::table,
	state_transition_table<240,S>::table,
	state_transition_table<241,S>::table,
	state_transition_table<242,S>::table,
	state_transition_table<243,S>::table,
	state_transition_table<244,S>::table,
	state_transition_table<245,S>::table,
	state_transition_table<246,S>::table,
	state_transition_table<247,S>::table,
	state_transition_table<248,S>::table,
	state_transition_table<249,S>::table,
	state_transition_table<250,S>::table,
	state_transition_table<251,S>::table,
	state_transition_table<252,S>::table,
	state_transition_table<253,S>::table,
	state_transition_table<254,S>::table,
	state_transition_table<255,S>::table,
	state_transition_table<256,S>::table,
	state_transition_table<257,S>::table,
	state_transition_table<258,S>::table,
	state_transition_table<259,S>::table,
	state_transition_table<260,S>::table,
	state_transition_table<261,S>::table,
	state_transition_table<262,S>::table,
	state_transition_table<263,S>::table,
	state_transition_table<264,S>::table,
	state_transition_table<265,S>::table,
	state_transition_table<266,S>::table,
	state_transition_table<267,S>::table,
	state_transition_table<268,S>::table,
	state_transition_table<269,S>::table,
	state_transition_table<270,S>::table,
	state_transition_table<271,S>::table,
	state_transition_table<272,S>::table,
	state_transition_table<273,S>::table,
	state_transition_table<274,S>::table,
	state_transition_table<275,S>::table,
	state_transition_table<276,S>::table,
	state_transition_table<277,S>::table,
	state_transition_table<278,S>::table,
	state_transition_table<279,S>::table,
	state_transition_table<280,S>::table,
	state_transition_table<281,S>::table,
	state_transition_table<282,S>::table,
	state_transition_table<283,S>::table,
	state_transition_table<284,S>::table,
	state_transition_table<285,S>::table,
	state_transition_table<286,S>::table,
	state_transition_table<287,S>::table,
	state_transition_table<288,S>::table,
	state_transition_table<289,S>::table,
	state_transition_table<290,S>::table,
	state_transition_table<291,S>::table,
	state_transition_table<292,S>::table,
	state_transition_table<293,S>::table,
	state_transition_table<294,S>::table,
	state_transition_table<295,S>::table,
	state_transition_table<296,S>::table,
	state_transition_table<297,S>::table,
	state_transition_table<298,S>::table,
	state_transition_table<299,S>::table,
//
	state_transition_table<300,S>::table,
	state_transition_table<301,S>::table,
	state_transition_table<302,S>::table,
	state_transition_table<303,S>::table,
	state_transition_table<304,S>::table,
	state_transition_table<305,S>::table,
	state_transition_table<306,S>::table,
	state_transition_table<307,S>::table,
	state_transition_table<308,S>::table,
	state_transition_table<309,S>::table,
	state_transition_table<310,S>::table,
	state_transition_table<311,S>::table,
	state_transition_table<312,S>::table,
	state_transition_table<313,S>::table,
	state_transition_table<314,S>::table,
	state_transition_table<315,S>::table,
	state_transition_table<316,S>::table,
	state_transition_table<317,S>::table,
	state_transition_table<318,S>::table,
	state_transition_table<319,S>::table,
	state_transition_table<320,S>::table,
	state_transition_table<321,S>::table,
	state_transition_table<322,S>::table,
	state_transition_table<323,S>::table,
	state_transition_table<324,S>::table,
	state_transition_table<325,S>::table,
	state_transition_table<326,S>::table,
	state_transition_table<327,S>::table,
	state_transition_table<328,S>::table,
	state_transition_table<329,S>::table,
	state_transition_table<330,S>::table,
	state_transition_table<331,S>::table,
	state_transition_table<332,S>::table,
	state_transition_table<333,S>::table,
	state_transition_table<334,S>::table,
	state_transition_table<335,S>::table,
	state_transition_table<336,S>::table,
	state_transition_table<337,S>::table,
	state_transition_table<338,S>::table,
	state_transition_table<339,S>::table,
	state_transition_table<340,S>::table,
	state_transition_table<341,S>::table,
	state_transition_table<342,S>::table,
	state_transition_table<343,S>::table,
	state_transition_table<344,S>::table,
	state_transition_table<345,S>::table,
	state_transition_table<346,S>::table,
	state_transition_table<347,S>::table,
	state_transition_table<348,S>::table,
	state_transition_table<349,S>::table,
	state_transition_table<350,S>::table,
	state_transition_table<351,S>::table,
	state_transition_table<352,S>::table,
	state_transition_table<353,S>::table,
	state_transition_table<354,S>::table,
	state_transition_table<355,S>::table,
	state_transition_table<356,S>::table,
	state_transition_table<357,S>::table,
	state_transition_table<358,S>::table,
	state_transition_table<359,S>::table,
	state_transition_table<360,S>::table,
	state_transition_table<361,S>::table,
	state_transition_table<362,S>::table,
	state_transition_table<363,S>::table,
	state_transition_table<364,S>::table,
	state_transition_table<365,S>::table,
	state_transition_table<366,S>::table,
	state_transition_table<367,S>::table,
	state_transition_table<368,S>::table,
	state_transition_table<369,S>::table,
	state_transition_table<370,S>::table,
	state_transition_table<371,S>::table,
	state_transition_table<372,S>::table,
	state_transition_table<373,S>::table,
	state_transition_table<374,S>::table,
	state_transition_table<375,S>::table,
	state_transition_table<376,S>::table,
	state_transition_table<377,S>::table,
	state_transition_table<378,S>::table,
	state_transition_table<379,S>::table,
	state_transition_table<380,S>::table,
	state_transition_table<381,S>::table,
	state_transition_table<382,S>::table,
	state_transition_table<383,S>::table,
	state_transition_table<384,S>::table,
	state_transition_table<385,S>::table,
	state_transition_table<386,S>::table,
	state_transition_table<387,S>::table,
	state_transition_table<388,S>::table,
	state_transition_table<389,S>::table,
	state_transition_table<390,S>::table,
	state_transition_table<391,S>::table,
	state_transition_table<392,S>::table,
	state_transition_table<393,S>::table,
	state_transition_table<394,S>::table,
	state_transition_table<395,S>::table,
	state_transition_table<396,S>::table,
	state_transition_table<397,S>::table,
	state_transition_table<398,S>::table,
	state_transition_table<399,S>::table,
//
	state_transition_table<400,S>::table,
	state_transition_table<401,S>::table,
	state_transition_table<402,S>::table,
	state_transition_table<403,S>::table,
	state_transition_table<404,S>::table,
	state_transition_table<405,S>::table,
	state_transition_table<406,S>::table,
	state_transition_table<407,S>::table,
	state_transition_table<408,S>::table,
	state_transition_table<409,S>::table,
	state_transition_table<410,S>::table,
	state_transition_table<411,S>::table,
	state_transition_table<412,S>::table,
	state_transition_table<413,S>::table,
	state_transition_table<414,S>::table,
	state_transition_table<415,S>::table,
	state_transition_table<416,S>::table,
	state_transition_table<417,S>::table,
	state_transition_table<418,S>::table,
	state_transition_table<419,S>::table,
	state_transition_table<420,S>::table,
	state_transition_table<421,S>::table,
	state_transition_table<422,S>::table,
	state_transition_table<423,S>::table,
	state_transition_table<424,S>::table,
	state_transition_table<425,S>::table,
	state_transition_table<426,S>::table,
	state_transition_table<427,S>::table,
	state_transition_table<428,S>::table,
	state_transition_table<429,S>::table,
	state_transition_table<430,S>::table,
	state_transition_table<431,S>::table,
	state_transition_table<432,S>::table,
	state_transition_table<433,S>::table,
	state_transition_table<434,S>::table,
	state_transition_table<435,S>::table,
	state_transition_table<436,S>::table,
	state_transition_table<437,S>::table,
	state_transition_table<438,S>::table,
	state_transition_table<439,S>::table,
	state_transition_table<440,S>::table,
	state_transition_table<441,S>::table,
	state_transition_table<442,S>::table,
	state_transition_table<443,S>::table,
	state_transition_table<444,S>::table,
	state_transition_table<445,S>::table,
	state_transition_table<446,S>::table,
	state_transition_table<447,S>::table,
	state_transition_table<448,S>::table,
	state_transition_table<449,S>::table,
	state_transition_table<450,S>::table,
	state_transition_table<451,S>::table,
	state_transition_table<452,S>::table,
	state_transition_table<453,S>::table,
	state_transition_table<454,S>::table,
	state_transition_table<455,S>::table,
	state_transition_table<456,S>::table,
	state_transition_table<457,S>::table,
	state_transition_table<458,S>::table,
	state_transition_table<459,S>::table,
	state_transition_table<460,S>::table,
	state_transition_table<461,S>::table,
	state_transition_table<462,S>::table,
	state_transition_table<463,S>::table,
	state_transition_table<464,S>::table,
	state_transition_table<465,S>::table,
	state_transition_table<466,S>::table,
	state_transition_table<467,S>::table,
	state_transition_table<468,S>::table,
	state_transition_table<469,S>::table,
	state_transition_table<470,S>::table,
	state_transition_table<471,S>::table,
	state_transition_table<472,S>::table,
	state_transition_table<473,S>::table,
	state_transition_table<474,S>::table,
	state_transition_table<475,S>::table,
	state_transition_table<476,S>::table,
	state_transition_table<477,S>::table,
	state_transition_table<478,S>::table,
	state_transition_table<479,S>::table,
	state_transition_table<480,S>::table,
	state_transition_table<481,S>::table,
	state_transition_table<482,S>::table,
	state_transition_table<483,S>::table,
	state_transition_table<484,S>::table,
	state_transition_table<485,S>::table,
	state_transition_table<486,S>::table,
	state_transition_table<487,S>::table,
	state_transition_table<488,S>::table,
	state_transition_table<489,S>::table,
	state_transition_table<490,S>::table,
	state_transition_table<491,S>::table,
	state_transition_table<492,S>::table,
	state_transition_table<493,S>::table,
	state_transition_table<494,S>::table,
	state_transition_table<495,S>::table,
	state_transition_table<496,S>::table,
	state_transition_table<497,S>::table,
	state_transition_table<498,S>::table,
	state_transition_table<499,S>::table,
//
	state_transition_table<500,S>::table,
	state_transition_table<501,S>::table,
	state_transition_table<502,S>::table,
	state_transition_table<503,S>::table,
	state_transition_table<504,S>::table,
	state_transition_table<505,S>::table,
	state_transition_table<506,S>::table,
	state_transition_table<507,S>::table,
	state_transition_table<508,S>::table,
	state_transition_table<509,S>::table,
	state_transition_table<510,S>::table,
	state_transition_table<511,S>::table,
	state_transition_table<512,S>::table,
	state_transition_table<513,S>::table,
	state_transition_table<514,S>::table,
	state_transition_table<515,S>::table,
	state_transition_table<516,S>::table,
	state_transition_table<517,S>::table,
	state_transition_table<518,S>::table,
	state_transition_table<519,S>::table,
	state_transition_table<520,S>::table,
	state_transition_table<521,S>::table,
	state_transition_table<522,S>::table,
	state_transition_table<523,S>::table,
	state_transition_table<524,S>::table,
	state_transition_table<525,S>::table,
	state_transition_table<526,S>::table,
	state_transition_table<527,S>::table,
	state_transition_table<528,S>::table,
	state_transition_table<529,S>::table,
	state_transition_table<530,S>::table,
	state_transition_table<531,S>::table,
	state_transition_table<532,S>::table,
	state_transition_table<533,S>::table,
	state_transition_table<534,S>::table,
	state_transition_table<535,S>::table,
	state_transition_table<536,S>::table,
	state_transition_table<537,S>::table,
	state_transition_table<538,S>::table,
	state_transition_table<539,S>::table,
	state_transition_table<540,S>::table,
	state_transition_table<541,S>::table,
	state_transition_table<542,S>::table,
	state_transition_table<543,S>::table,
	state_transition_table<544,S>::table,
	state_transition_table<545,S>::table,
	state_transition_table<546,S>::table,
	state_transition_table<547,S>::table,
	state_transition_table<548,S>::table,
	state_transition_table<549,S>::table,
	state_transition_table<550,S>::table,
	state_transition_table<551,S>::table,
	state_transition_table<552,S>::table,
	state_transition_table<553,S>::table,
	state_transition_table<554,S>::table,
	state_transition_table<555,S>::table,
	state_transition_table<556,S>::table,
	state_transition_table<557,S>::table,
	state_transition_table<558,S>::table,
	state_transition_table<559,S>::table,
	state_transition_table<560,S>::table,
	state_transition_table<561,S>::table,
	state_transition_table<562,S>::table,
	state_transition_table<563,S>::table,
	state_transition_table<564,S>::table,
	state_transition_table<565,S>::table,
	state_transition_table<566,S>::table,
	state_transition_table<567,S>::table,
	state_transition_table<568,S>::table,
	state_transition_table<569,S>::table,
	state_transition_table<570,S>::table,
	state_transition_table<571,S>::table,
	state_transition_table<572,S>::table,
	state_transition_table<573,S>::table,
	state_transition_table<574,S>::table,
	state_transition_table<575,S>::table,
	state_transition_table<576,S>::table,
	state_transition_table<577,S>::table,
	state_transition_table<578,S>::table,
	state_transition_table<579,S>::table,
	state_transition_table<580,S>::table,
	state_transition_table<581,S>::table,
	state_transition_table<582,S>::table,
	state_transition_table<583,S>::table,
	state_transition_table<584,S>::table,
	state_transition_table<585,S>::table,
	state_transition_table<586,S>::table,
	state_transition_table<587,S>::table,
	state_transition_table<588,S>::table,
	state_transition_table<589,S>::table,
	state_transition_table<590,S>::table,
	state_transition_table<591,S>::table,
	state_transition_table<592,S>::table,
	state_transition_table<593,S>::table,
	state_transition_table<594,S>::table,
	state_transition_table<595,S>::table,
	state_transition_table<596,S>::table,
	state_transition_table<597,S>::table,
	state_transition_table<598,S>::table,
	state_transition_table<599,S>::table,
//
	state_transition_table<600,S>::table,
	state_transition_table<601,S>::table,
	state_transition_table<602,S>::table,
	state_transition_table<603,S>::table,
	state_transition_table<604,S>::table,
	state_transition_table<605,S>::table,
	state_transition_table<606,S>::table,
	state_transition_table<607,S>::table,
	state_transition_table<608,S>::table,
	state_transition_table<609,S>::table,
	state_transition_table<610,S>::table,
	state_transition_table<611,S>::table,
	state_transition_table<612,S>::table,
	state_transition_table<613,S>::table,
	state_transition_table<614,S>::table,
	state_transition_table<615,S>::table,
	state_transition_table<616,S>::table,
	state_transition_table<617,S>::table,
	state_transition_table<618,S>::table,
	state_transition_table<619,S>::table,
	state_transition_table<620,S>::table,
	state_transition_table<621,S>::table,
	state_transition_table<622,S>::table,
	state_transition_table<623,S>::table,
	state_transition_table<624,S>::table,
	state_transition_table<625,S>::table,
	state_transition_table<626,S>::table,
	state_transition_table<627,S>::table,
	state_transition_table<628,S>::table,
	state_transition_table<629,S>::table,
	state_transition_table<630,S>::table,
	state_transition_table<631,S>::table,
	state_transition_table<632,S>::table,
	state_transition_table<633,S>::table,
	state_transition_table<634,S>::table,
	state_transition_table<635,S>::table,
	state_transition_table<636,S>::table,
	state_transition_table<637,S>::table,
	state_transition_table<638,S>::table,
	state_transition_table<639,S>::table,
	state_transition_table<640,S>::table,
	state_transition_table<641,S>::table,
	state_transition_table<642,S>::table,
	state_transition_table<643,S>::table,
	state_transition_table<644,S>::table,
	state_transition_table<645,S>::table,
	state_transition_table<646,S>::table,
	state_transition_table<647,S>::table,
	state_transition_table<648,S>::table,
	state_transition_table<649,S>::table,
	state_transition_table<650,S>::table,
	state_transition_table<651,S>::table,
	state_transition_table<652,S>::table,
	state_transition_table<653,S>::table,
	state_transition_table<654,S>::table,
	state_transition_table<655,S>::table,
	state_transition_table<656,S>::table,
	state_transition_table<657,S>::table,
	state_transition_table<658,S>::table,
	state_transition_table<659,S>::table,
	state_transition_table<660,S>::table,
	state_transition_table<661,S>::table,
	state_transition_table<662,S>::table,
	state_transition_table<663,S>::table,
	state_transition_table<664,S>::table,
	state_transition_table<665,S>::table,
	state_transition_table<666,S>::table,
	state_transition_table<667,S>::table,
	state_transition_table<668,S>::table,
	state_transition_table<669,S>::table,
	state_transition_table<670,S>::table,
	state_transition_table<671,S>::table,
	state_transition_table<672,S>::table,
	state_transition_table<673,S>::table,
	state_transition_table<674,S>::table,
	state_transition_table<675,S>::table,
	state_transition_table<676,S>::table,
	state_transition_table<677,S>::table,
	state_transition_table<678,S>::table,
	state_transition_table<679,S>::table,
	state_transition_table<680,S>::table,
	state_transition_table<681,S>::table,
	state_transition_table<682,S>::table,
	state_transition_table<683,S>::table,
	state_transition_table<684,S>::table,
	state_transition_table<685,S>::table,
	state_transition_table<686,S>::table,
	state_transition_table<687,S>::table,
	state_transition_table<688,S>::table,
	state_transition_table<689,S>::table,
	state_transition_table<690,S>::table,
	state_transition_table<691,S>::table,
	state_transition_table<692,S>::table,
	state_transition_table<693,S>::table,
	state_transition_table<694,S>::table,
	state_transition_table<695,S>::table,
	state_transition_table<696,S>::table,
	state_transition_table<697,S>::table,
	state_transition_table<698,S>::table,
	state_transition_table<699,S>::table,
//
	state_transition_table<700,S>::table,
	state_transition_table<701,S>::table,
	state_transition_table<702,S>::table,
	state_transition_table<703,S>::table,
	state_transition_table<704,S>::table,
	state_transition_table<705,S>::table,
	state_transition_table<706,S>::table,
	state_transition_table<707,S>::table,
	state_transition_table<708,S>::table,
	state_transition_table<709,S>::table,
	state_transition_table<710,S>::table,
	state_transition_table<711,S>::table,
	state_transition_table<712,S>::table,
	state_transition_table<713,S>::table,
	state_transition_table<714,S>::table,
	state_transition_table<715,S>::table,
	state_transition_table<716,S>::table,
	state_transition_table<717,S>::table,
	state_transition_table<718,S>::table,
	state_transition_table<719,S>::table,
	state_transition_table<720,S>::table,
	state_transition_table<721,S>::table,
	state_transition_table<722,S>::table,
	state_transition_table<723,S>::table,
	state_transition_table<724,S>::table,
	state_transition_table<725,S>::table,
	state_transition_table<726,S>::table,
	state_transition_table<727,S>::table,
	state_transition_table<728,S>::table
};

/*!
*/
struct state_transition_table_collection
{
	static table_entry * const * const table[MAX_STRICT_STATE];
};

table_entry * const * const state_transition_table_collection::table[MAX_STRICT_STATE] =
{
	state_transition_table_name< 0>::table,
	state_transition_table_name< 1>::table,
	state_transition_table_name< 2>::table,
	state_transition_table_name< 3>::table,
	state_transition_table_name< 4>::table,
	state_transition_table_name< 5>::table,
	state_transition_table_name< 6>::table,
	state_transition_table_name< 7>::table,
	state_transition_table_name< 8>::table,
	state_transition_table_name< 9>::table,
	state_transition_table_name<10>::table,
	state_transition_table_name<11>::table,
	state_transition_table_name<12>::table,
	state_transition_table_name<13>::table,
	state_transition_table_name<14>::table,
	state_transition_table_name<15>::table,
	state_transition_table_name<16>::table,
	state_transition_table_name<17>::table,
	state_transition_table_name<18>::table,
	state_transition_table_name<19>::table,
	state_transition_table_name<20>::table,
	state_transition_table_name<21>::table,
	state_transition_table_name<22>::table,
	state_transition_table_name<23>::table,
	state_transition_table_name<24>::table,
	state_transition_table_name<25>::table,
	state_transition_table_name<26>::table,
	state_transition_table_name<27>::table,
	state_transition_table_name<28>::table,
	state_transition_table_name<29>::table,
	state_transition_table_name<30>::table,
	state_transition_table_name<31>::table,
	state_transition_table_name<32>::table,
	state_transition_table_name<33>::table,
	state_transition_table_name<34>::table,
	state_transition_table_name<35>::table,
	state_transition_table_name<36>::table,
	state_transition_table_name<37>::table,
	state_transition_table_name<38>::table,
	state_transition_table_name<39>::table,
	state_transition_table_name<40>::table,
	state_transition_table_name<41>::table,
	state_transition_table_name<42>::table,
	state_transition_table_name<43>::table,
	state_transition_table_name<44>::table,
	state_transition_table_name<45>::table,
	state_transition_table_name<46>::table,
	state_transition_table_name<47>::table,
	state_transition_table_name<48>::table,
	state_transition_table_name<49>::table,
	state_transition_table_name<50>::table,
	state_transition_table_name<51>::table,
	state_transition_table_name<52>::table,
	state_transition_table_name<53>::table,
	state_transition_table_name<54>::table,
	state_transition_table_name<55>::table,
	state_transition_table_name<56>::table,
	state_transition_table_name<57>::table,
	state_transition_table_name<58>::table,
	state_transition_table_name<59>::table,
	state_transition_table_name<60>::table,
	state_transition_table_name<61>::table,
	state_transition_table_name<62>::table,
	state_transition_table_name<63>::table
};

int main ( void )
{try{
	return 0;
}
catch ( const std::exception& e )
{
	std::cerr << std::endl
			<< "std::exception(\"" << e.what() << "\")." << std::endl;
	return 2;
}
catch ( ... )
{
	std::cerr  << std::endl
			<< "unknown exception." << std::endl;
	return 1;
}}

