From 745cc4ed6d8e26e769cb22a37b661f704660a4ba Mon Sep 17 00:00:00 2001 From: alexmr09 Date: Tue, 23 Jul 2024 13:00:49 +0300 Subject: [PATCH] Adding new features --- .../cifar10_dws_cnn/optimized/Makefile | 15 + .../optimized/cifar10_dws_cnn.c | 298 + .../cifar10_dws_cnn/optimized/cnn_weights.h | 1128 ++ .../optimized/ibex_cnn_params.h | 84 + .../cifar10_dws_cnn/optimized/ibex_inputs.h | 3144 ++++ .../cifar10_dws_cnn/original/Makefile | 15 + .../original/cifar10_dws_cnn.c | 292 + .../cifar10_dws_cnn/original/cnn_weights.h | 11933 ++++++++++++++++ .../original/ibex_cnn_params.h | 46 + .../cifar10_dws_cnn/original/ibex_inputs.h | 3144 ++++ inference_codes/cmsis_cnn/optimized/Makefile | 15 + .../cmsis_cnn/optimized/cmsis_cnn.c | 153 + .../cmsis_cnn/optimized/cnn_weights.h | 1220 ++ .../cmsis_cnn/optimized/ibex_cnn_params.h | 30 + .../cmsis_cnn/optimized/ibex_inputs.h | 3144 ++++ inference_codes/cmsis_cnn/original/Makefile | 15 + .../cmsis_cnn/original/cmsis_cnn.c | 147 + .../cmsis_cnn/original/cnn_weights.h | 4779 +++++++ .../cmsis_cnn/original/ibex_cnn_params.h | 19 + .../cmsis_cnn/original/ibex_inputs.h | 3144 ++++ inference_codes/common/dws_conv.h | 70 + inference_codes/common/dws_conv_opt.h | 171 + mpq/cifar10_dws_cnn/cifar10_dws_cnn.py | 89 + mpq/cmsis_cnn/cmsis_cnn.py | 77 + mpq/common.py | 10 + mpq/configure_ibex.py | 229 +- mpq/mpq_quantize.py | 135 +- mpq/simulate_ibex.py | 192 +- 28 files changed, 33632 insertions(+), 106 deletions(-) create mode 100644 inference_codes/cifar10_dws_cnn/optimized/Makefile create mode 100644 inference_codes/cifar10_dws_cnn/optimized/cifar10_dws_cnn.c create mode 100644 inference_codes/cifar10_dws_cnn/optimized/cnn_weights.h create mode 100644 inference_codes/cifar10_dws_cnn/optimized/ibex_cnn_params.h create mode 100644 inference_codes/cifar10_dws_cnn/optimized/ibex_inputs.h create mode 100644 inference_codes/cifar10_dws_cnn/original/Makefile create mode 100644 inference_codes/cifar10_dws_cnn/original/cifar10_dws_cnn.c create mode 100644 inference_codes/cifar10_dws_cnn/original/cnn_weights.h create mode 100644 inference_codes/cifar10_dws_cnn/original/ibex_cnn_params.h create mode 100644 inference_codes/cifar10_dws_cnn/original/ibex_inputs.h create mode 100644 inference_codes/cmsis_cnn/optimized/Makefile create mode 100644 inference_codes/cmsis_cnn/optimized/cmsis_cnn.c create mode 100644 inference_codes/cmsis_cnn/optimized/cnn_weights.h create mode 100644 inference_codes/cmsis_cnn/optimized/ibex_cnn_params.h create mode 100644 inference_codes/cmsis_cnn/optimized/ibex_inputs.h create mode 100644 inference_codes/cmsis_cnn/original/Makefile create mode 100644 inference_codes/cmsis_cnn/original/cmsis_cnn.c create mode 100644 inference_codes/cmsis_cnn/original/cnn_weights.h create mode 100644 inference_codes/cmsis_cnn/original/ibex_cnn_params.h create mode 100644 inference_codes/cmsis_cnn/original/ibex_inputs.h create mode 100644 inference_codes/common/dws_conv.h create mode 100644 inference_codes/common/dws_conv_opt.h create mode 100644 mpq/cifar10_dws_cnn/cifar10_dws_cnn.py create mode 100644 mpq/cmsis_cnn/cmsis_cnn.py diff --git a/inference_codes/cifar10_dws_cnn/optimized/Makefile b/inference_codes/cifar10_dws_cnn/optimized/Makefile new file mode 100644 index 0000000..066dc1b --- /dev/null +++ b/inference_codes/cifar10_dws_cnn/optimized/Makefile @@ -0,0 +1,15 @@ +# Copyright lowRISC contributors. +# Licensed under the Apache License, Version 2.0, see LICENSE for details. +# SPDX-License-Identifier: Apache-2.0 +# +# Generate a baremetal application + +# Name of the program $(PROGRAM).c will be added as a source file + +PROGRAM = cifar10_dws_cnn +PROGRAM_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) +# Any extra source files to include in the build. Use the upper case .S +# extension for assembly files +EXTRA_SRCS := + +include ${PROGRAM_DIR}/../../common/common.mk diff --git a/inference_codes/cifar10_dws_cnn/optimized/cifar10_dws_cnn.c b/inference_codes/cifar10_dws_cnn/optimized/cifar10_dws_cnn.c new file mode 100644 index 0000000..bad560b --- /dev/null +++ b/inference_codes/cifar10_dws_cnn/optimized/cifar10_dws_cnn.c @@ -0,0 +1,298 @@ +#include "simple_system_common.h" +#include "cnn_weights.h" +#include "fully_connected_opt.h" +#include "ibex_cnn_params.h" +#include "ibex_inputs.h" +#include "conv2d_opt.h" +#include "dws_conv_opt.h" + +#define IMG_SZ 32 +#define NUM_FIL0 1 + +#define FILTER1 3 +#define FILTER2 1 +#define FILTER3 3 +#define FILTER4 1 +#define FILTER5 3 +#define FILTER6 1 +#define FILTER7 3 +#define FILTER8 1 +#define FILTER9 3 +#define FILTER10 1 +#define FILTER11 3 +#define FILTER12 1 + +#define NUM_FIL1 1 +#define NUM_FIL2 16 +#define NUM_FIL3 16 +#define NUM_FIL4 16 +#define NUM_FIL5 16 +#define NUM_FIL6 32 +#define NUM_FIL7 32 +#define NUM_FIL8 32 +#define NUM_FIL9 32 +#define NUM_FIL10 64 +#define NUM_FIL11 64 +#define NUM_FIL12 64 + +#define STRIDE1 1 +#define STRIDE2 1 +#define STRIDE3 1 +#define STRIDE4 1 +#define STRIDE5 1 +#define STRIDE6 1 +#define STRIDE7 1 +#define STRIDE8 1 +#define STRIDE9 1 +#define STRIDE10 1 +#define STRIDE11 1 +#define STRIDE12 1 + +#define PAD_TB1 1 +#define PAD_LR1 1 + +#define PAD_TB2 0 +#define PAD_LR2 0 + +#define PAD_TB3 1 +#define PAD_LR3 1 + +#define PAD_TB4 0 +#define PAD_LR4 0 + +#define PAD_TB5 1 +#define PAD_LR5 1 + +#define PAD_TB6 0 +#define PAD_LR6 0 + +#define PAD_TB7 1 +#define PAD_LR7 1 + +#define PAD_TB8 0 +#define PAD_LR8 0 + +#define PAD_TB9 1 +#define PAD_LR9 1 + +#define PAD_TB10 0 +#define PAD_LR10 0 + +#define PAD_TB11 1 +#define PAD_LR11 1 + +#define PAD_TB12 0 +#define PAD_LR12 0 + +#define POOL_STRIDE1 2 +#define POOL_SIZE1 2 + +#define POOL_STRIDE2 2 +#define POOL_SIZE2 2 + +#define POOL_STRIDE3 2 +#define POOL_SIZE3 2 + +#define OUT_DIM 3 + +#define SAMPLES 1 +int outs[SAMPLES][OUT_DIM]; + +void cifar10_dws_cnn() { + + int dout1 = NUM_FIL1; + int hout1 = ((IMG_SZ - FILTER1 + 2 * PAD_TB1)/STRIDE1) + 1; + int wout1 = ((IMG_SZ - FILTER1 + 2 * PAD_LR1)/STRIDE1) + 1; + + int dout2 = NUM_FIL2; + int hout2 = ((hout1 - FILTER2+ 2 * PAD_TB2)/STRIDE2)+1; + int wout2 = ((wout1 - FILTER2+ 2 * PAD_LR2)/STRIDE2)+1; + + int dout3 = NUM_FIL3; + int hout3 = ((hout2 - FILTER3+ 2 * PAD_TB3)/STRIDE3)+1; + int wout3 = ((wout2 - FILTER3+ 2 * PAD_LR3)/STRIDE3)+1; + + int dout4 = NUM_FIL4; + int hout4 = ((hout3 - FILTER4+ 2 * PAD_TB4)/STRIDE4)+1; + int wout4 = ((wout3 - FILTER4+ 2 * PAD_LR4)/STRIDE4)+1; + + int dout5 = dout4; + int hout5 = hout4/POOL_STRIDE1; + int wout5 = wout4/POOL_STRIDE1; + + int dout6 = NUM_FIL5; + int hout6 = ((hout5 - FILTER5+ 2 * PAD_TB5)/STRIDE5)+1; + int wout6 = ((wout5 - FILTER5+ 2 * PAD_LR5)/STRIDE5)+1; + + int dout7 = NUM_FIL6; + int hout7 = ((hout6 - FILTER6+ 2 * PAD_TB6)/STRIDE6)+1; + int wout7 = ((wout6 - FILTER6+ 2 * PAD_LR6)/STRIDE6)+1; + + int dout8 = NUM_FIL7; + int hout8 = ((hout7 - FILTER7+ 2 * PAD_TB7)/STRIDE7)+1; + int wout8 = ((wout7 - FILTER7+ 2 * PAD_LR7)/STRIDE7)+1; + + int dout9 = NUM_FIL8; + int hout9 = ((hout8 - FILTER8+ 2 * PAD_TB8)/STRIDE8)+1; + int wout9 = ((wout8 - FILTER8+ 2 * PAD_LR8)/STRIDE8)+1; + + int dout10 = dout9; + int hout10 = hout9/POOL_STRIDE2; + int wout10 = wout9/POOL_STRIDE2; + + int dout11 = NUM_FIL9; + int hout11 = ((hout10 - FILTER9+ 2 * PAD_TB9)/STRIDE9)+1; + int wout11 = ((wout10 - FILTER9+ 2 * PAD_LR9)/STRIDE9)+1; + + int dout12 = NUM_FIL10; + int hout12 = ((hout11 - FILTER10+ 2 * PAD_TB10)/STRIDE10)+1; + int wout12 = ((wout11 - FILTER10+ 2 * PAD_LR10)/STRIDE10)+1; + + int dout13 = NUM_FIL11; + int hout13 = ((hout12 - FILTER11+ 2 * PAD_TB11)/STRIDE11)+1; + int wout13 = ((wout12 - FILTER11+ 2 * PAD_LR11)/STRIDE11)+1; + + int dout14 = NUM_FIL12; + int hout14 = ((hout13 - FILTER12+ 2 * PAD_TB12)/STRIDE12)+1; + int wout14 = ((wout13 - FILTER12+ 2 * PAD_LR12)/STRIDE12)+1; + + int dout15 = dout14; + int hout15 = hout14/POOL_STRIDE3; + int wout15 = wout14/POOL_STRIDE3; + + int flatten_dim = dout15 * hout15 * wout15; + + int in[IMG_SZ][IMG_SZ][NUM_FIL0]; + int inp_dim[3] = {IMG_SZ, IMG_SZ, NUM_FIL0}; + + int out1[hout1][wout1][dout1]; + int pad_1[4] = {PAD_TB1, PAD_TB1, PAD_LR1, PAD_LR1}; + int outp_dim1[3] = {hout1, wout1, dout1}; + int f_dim1[4] = {NUM_FIL1, FILTER1, FILTER1, NUM_FIL0}; + + int out2[hout2][wout2][dout2]; + int pad_2[4] = {PAD_TB2, PAD_TB2, PAD_LR2, PAD_LR2}; + int outp_dim2[3] = {hout2, wout2, dout2}; + int f_dim2[4] = {NUM_FIL2, FILTER2, FILTER2, NUM_FIL1}; + + int out3[hout3][wout3][dout3]; + int pad_3[4] = {PAD_TB3, PAD_TB3, PAD_LR3, PAD_LR3}; + int outp_dim3[3] = {hout3, wout3, dout3}; + int f_dim3[4] = {NUM_FIL3, FILTER3, FILTER3, NUM_FIL2}; + + int out4[hout4][wout4][dout4]; + int pad_4[4] = {PAD_TB4, PAD_TB4, PAD_LR4, PAD_LR4}; + int outp_dim4[3] = {hout4, wout4, dout4}; + int f_dim4[4] = {NUM_FIL4, FILTER4, FILTER4, NUM_FIL3}; + + int out5[hout5][wout5][dout5]; + int outp_dim5[3] = {hout5, wout5, dout5}; + + int out6[hout6][wout6][dout6]; + int pad_6[4] = {PAD_TB5, PAD_TB5, PAD_LR5, PAD_LR5}; + int outp_dim6[3] = {hout6, wout6, dout6}; + int f_dim6[4] = {NUM_FIL5, FILTER5, FILTER5, NUM_FIL4}; + + int out7[hout7][wout7][dout7]; + int pad_7[4] = {PAD_TB6, PAD_TB6, PAD_LR6, PAD_LR6}; + int outp_dim7[3] = {hout7, wout7, dout7}; + int f_dim7[4] = {NUM_FIL6, FILTER6, FILTER6, NUM_FIL5}; + + int out8[hout8][wout8][dout8]; + int pad_8[4] = {PAD_TB7, PAD_TB7, PAD_LR7, PAD_LR7}; + int outp_dim8[3] = {hout8, wout8, dout8}; + int f_dim8[4] = {NUM_FIL7, FILTER7, FILTER7, NUM_FIL6}; + + int out9[hout9][wout9][dout9]; + int pad_9[4] = {PAD_TB8, PAD_TB8, PAD_LR8, PAD_LR8}; + int outp_dim9[3] = {hout9, wout9, dout9}; + int f_dim9[4] = {NUM_FIL8, FILTER8, FILTER8, NUM_FIL7}; + + int out10[hout10][wout10][dout10]; + int outp_dim10[3] = {hout10, wout10, dout10}; + + int out11[hout11][wout11][dout11]; + int pad_11[4] = {PAD_TB9, PAD_TB9, PAD_LR9, PAD_LR9}; + int outp_dim11[3] = {hout11, wout11, dout11}; + int f_dim11[4] = {NUM_FIL9, FILTER9, FILTER9, NUM_FIL8}; + + int out12[hout12][wout12][dout12]; + int pad_12[4] = {PAD_TB10, PAD_TB10, PAD_LR10, PAD_LR10}; + int outp_dim12[3] = {hout12, wout12, dout12}; + int f_dim12[4] = {NUM_FIL10, FILTER10, FILTER10, NUM_FIL9}; + + int out13[hout13][wout13][dout13]; + int pad_13[4] = {PAD_TB11, PAD_TB11, PAD_LR11, PAD_LR11}; + int outp_dim13[3] = {hout13, wout13, dout13}; + int f_dim13[4] = {NUM_FIL11, FILTER11, FILTER11, NUM_FIL10}; + + int out14[hout14][wout14][dout14]; + int pad_14[4] = {PAD_TB12, PAD_TB12, PAD_LR12, PAD_LR12}; + int outp_dim14[3] = {hout14, wout14, dout14}; + int f_dim14[4] = {NUM_FIL12, FILTER12, FILTER12, NUM_FIL11}; + + int out15[hout15][wout15][dout15]; + int outp_dim15[3] = {hout15, wout15, dout15}; + + int out16[flatten_dim]; + + int out[OUT_DIM]; + + for (int iter = 0; iter < SAMPLES; iter++){ + + for(int i = 0; i < IMG_SZ; i++){ + for(int j = 0; j < IMG_SZ; j++){ + for(int k = 0; k < NUM_FIL0; k++){ + in[i][j][k] = input[i][j][k][iter]; + } + } + } + + pcount_enable(1); + + dw_conv_opt_1ch(inp_dim, f_dim1, outp_dim1, in, F1, B1, out1, STRIDE1, pad_1, SB1, MV1, SV1); + pw_conv_2bits(outp_dim1, f_dim2, outp_dim2, out1, F2, B2, out2, STRIDE2, pad_2, SB2, MV2, SV2); + dw_conv_opt(outp_dim2, f_dim3, outp_dim3, out2, F3, B3, out3, STRIDE3, pad_3, SB3, MV3, SV3); + pw_conv_8bits(outp_dim3, f_dim4, outp_dim4, out3, F4, B4, out4, STRIDE4, pad_4, SB4, MV4, SV4); + maxpool2_compressed(outp_dim4, outp_dim5, out4, out5, POOL_SIZE1, POOL_STRIDE1); + + dw_conv_opt(outp_dim5, f_dim6, outp_dim6, out5, F5, B5, out6, STRIDE5, pad_6, SB5, MV5, SV5); + pw_conv_2bits(outp_dim6, f_dim7, outp_dim7, out6, F6, B6, out7, STRIDE6, pad_7, SB6, MV6, SV6); + dw_conv_opt(outp_dim7, f_dim8, outp_dim8, out7, F7, B7, out8, STRIDE7, pad_8, SB7, MV7, SV7); + pw_conv_8bits(outp_dim8, f_dim9, outp_dim9, out8, F8, B8, out9, STRIDE8, pad_9, SB8, MV8, SV8); + maxpool2_compressed(outp_dim9, outp_dim10, out9, out10, POOL_SIZE2, POOL_STRIDE2); + + dw_conv_opt(outp_dim10, f_dim11, outp_dim11, out10, F9, B9, out11, STRIDE9, pad_11, SB9, MV9, SV9); + pw_conv_8bits(outp_dim11, f_dim12, outp_dim12, out11, F10, B10, out12, STRIDE10, pad_12, SB10, MV10, SV10); + dw_conv_opt(outp_dim12, f_dim13, outp_dim13, out12, F11, B11, out13, STRIDE11, pad_13, SB11, MV11, SV11); + pw_conv_8bits(outp_dim13, f_dim14, outp_dim14, out13, F12, B12, out14, STRIDE12, pad_14, SB12, MV12, SV12); + maxpool2_compressed(outp_dim14, outp_dim15, out14, out15, POOL_SIZE3, POOL_STRIDE3); + + flatten(outp_dim15, out15, out16); + + mlp_layer_8bits(out16, out, flatten_dim, OUT_DIM, W1, B13, SB13, MV13, SV13); + + pcount_enable(0); + + puts("Output Layer Values:\n"); + for(int i = 0; i < OUT_DIM; i++) { + puthex((out[i] & 0xFF000000) >> 24); + puts(" "); + puthex((out[i] & 0xFF0000) >> 16); + puts(" "); + puthex((out[i] & 0xFF00) >> 8); + puts(" "); + puthex(out[i] & 0xFF); + puts("\n"); + } + } +} + +int main(void) { + + pcount_enable(0); + + cifar10_dws_cnn(); + + return 0; +} diff --git a/inference_codes/cifar10_dws_cnn/optimized/cnn_weights.h b/inference_codes/cifar10_dws_cnn/optimized/cnn_weights.h new file mode 100644 index 0000000..e33d777 --- /dev/null +++ b/inference_codes/cifar10_dws_cnn/optimized/cnn_weights.h @@ -0,0 +1,1128 @@ +#ifndef CNN_WEIGHTS_H +#define CNN_WEIGHTS_H + +static const int F1[1][3][3] = { + { + {2105634304, 4067361280, 1251886336}, + {1330009856, 657592320, 2497634304}, + {3636004096, 2635347968, 37452544} + } +}; + +static const int F2[16][1] = { + {4043508736}, + {1307901952}, + {222347520}, + {4231005952}, + {3541519360}, + {251663360}, + {470834176}, + {813636608}, + {53571840}, + {71568384}, + {17646592}, + {121884672}, + {878655232}, + {1293734144}, + {484229120}, + {71548928} +}; + +static const int F3[16][3][3] = { + { + {2753576268, 2987298061, 1448403220}, + {4212191823, 97276451, 168307455}, + {3371052456, 1545137149, 3338459428} + }, + { + {2634527682, 2940076396, 572673992}, + {3517361342, 2671338028, 3916427456}, + {1700603027, 1066219938, 3415803631} + }, + { + {166540495, 342893272, 489839704}, + {2664232754, 1801639654, 694098098}, + {1899197790, 3000187673, 3030589105} + }, + { + {3412714680, 3969318650, 3059404138}, + {2426324289, 3360075723, 1731998643}, + {330604906, 576525897, 2570001191} + }, + { + {3105529686, 3094179004, 719317177}, + {1114404417, 2785109694, 1478709234}, + {2523487525, 4215022705, 476663033} + }, + { + {3723809100, 1212901213, 918448836}, + {898495394, 2820941354, 3787725489}, + {1874792495, 3300977488, 1498609447} + }, + { + {2920476265, 3418769109, 3391922720}, + {3342470872, 929038945, 2711224565}, + {4276535448, 1215664567, 2009622782} + }, + { + {1918102430, 13951008, 1141679040}, + {1119167746, 3485268971, 779623601}, + {1674135390, 3688384012, 505494226} + }, + { + {185651252, 3948787062, 2569783421}, + {3626090458, 1252879158, 640060955}, + {2604095570, 1208029479, 1241238568} + }, + { + {3257270952, 3772376369, 944443123}, + {3462395040, 89825607, 3118600797}, + {3993518778, 3943025891, 821444014} + }, + { + {1968879292, 1297683517, 4247805950}, + {2018220573, 2878673159, 2754306043}, + {252097639, 655551587, 568017074} + }, + { + {3880205382, 1520566047, 3200067479}, + {3000554804, 315574560, 4129842019}, + {981452570, 315912644, 1432300579} + }, + { + {1542186499, 1496386388, 3930231336}, + {1241511792, 605293016, 1852842713}, + {3438257860, 4182187608, 4205673944} + }, + { + {3584554137, 3486965796, 1623336730}, + {2501307422, 1561383744, 3559260907}, + {3287847888, 1819963155, 552622991} + }, + { + {1508710881, 297917907, 4111465973}, + {1089247070, 4274992035, 293336870}, + {111622674, 96617306, 1128478408} + }, + { + {2396163797, 267174066, 316783939}, + {3467933370, 181723020, 2976588449}, + {672733723, 594456528, 3879557046} + } +}; + +static const int F4[16][64] = { + {339871263, 3823244449, 3358903013, 3661440724, 4130125502, 1374604584, 3387696207, 79734335, 3634640134, 3084318261, 3931225307, 1252132374, 3475646271, 2384684322, 3684844378, 836218170, 539180868, 4131198562, 197975519, 316071494, 497336032, 2763496363, 435758873, 1413899064, 4179207460, 3915036001, 1454814700, 2954905265, 3170612316, 422389507, 3827577130, 673300678, 4272284088, 3846443178, 610092270, 861627119, 1210001200, 390003190, 3159204416, 3052148678, 912346297, 1030013954, 3328196273, 39779948, 4130319835, 146975730, 3657878239, 1312500683, 3877424736, 861063267, 4125798590, 1176591087, 631191340, 526264896, 3074965249, 4127604791, 572739863, 3418283192, 3691765445, 508141405, 4277596946, 421344525, 2880130876, 463462473}, + {1123944530, 3261224167, 3524644543, 2679362213, 3652779855, 4187904304, 3520653225, 1413784423, 1472072458, 4289829065, 3321109472, 111252750, 135205814, 1639336437, 79242446, 4209959356, 204231373, 3013458862, 1464032289, 4289591381, 3706234023, 694314263, 4056839994, 1001113119, 1795575498, 336937471, 3384886773, 4255249674, 3166891309, 267587308, 1187831484, 3707936317, 867064543, 1654984543, 2665951811, 4266988774, 483828454, 114766085, 1088216412, 2831677083, 3065330853, 1191955440, 4181206070, 4143584818, 3574149277, 723915747, 1036755749, 773675447, 3408529247, 649675583, 3907669759, 3771148551, 2628701508, 1351751874, 262624760, 3251035552, 1197103904, 3908509610, 3576866873, 3311413596, 4060934865, 1465366554, 1009646934, 686252833}, + {1678352582, 1410375749, 4125624795, 3478598395, 1436219313, 3282568414, 621562372, 2932063691, 3523490106, 3494037847, 252976861, 362736704, 1002876771, 541231136, 3390064994, 3056288746, 472628834, 3149614567, 3764238409, 1390367524, 1427623070, 1272261686, 3870294192, 2706835421, 4030879812, 3473028559, 1578064209, 1154666041, 216489285, 1112740054, 3507755280, 509865893, 2891695369, 2688962760, 1258893515, 1086874123, 920121844, 56842268, 3827175719, 3349068083, 3418101701, 3274311478, 1564389392, 1792916413, 489297510, 3970486190, 3167851797, 3369645156, 4209788607, 3307793114, 3151973920, 2744866041, 1474020018, 1507150797, 3006071604, 1341775528, 870193686, 1304600144, 128469427, 3484082668, 424818857, 976960063, 1781084103, 603201890}, + {194914515, 246803998, 3424916218, 1041428840, 1506926601, 1095127323, 305804054, 3519550435, 3220101333, 4242755020, 1228159746, 2616275023, 3707182094, 3525005248, 197337776, 622263107, 231553081, 3117901039, 1193496008, 973054224, 456539945, 1161541103, 3721843375, 3467385306, 13643024, 4162341091, 1491812541, 1154741466, 3894463974, 3441911613, 3449821125, 1680402075, 3590658325, 1260180202, 1589244747, 4022271710, 911667807, 2852579101, 698483131, 1607772223, 3098214474, 1202717929, 3142937096, 1139829418, 3040286621, 2653168583, 3342403784, 233628771, 94624329, 2633149477, 3873975264, 3926206128, 1325912348, 3905248211, 4182353610, 1469829133, 3462420455, 457894927, 3725377350, 1058415564, 4228976573, 809046090, 372301319, 4229021671}, + {2992370377, 824039118, 873005090, 1692016652, 2698989282, 3132450104, 3823695018, 4059360072, 995365200, 3538029554, 3864524235, 4013630308, 3710322167, 3761655781, 1326606353, 1359948998, 3505960898, 1153965363, 667172269, 3593528147, 2957777729, 250560248, 706602405, 3050708059, 282004978, 2899644917, 94761496, 3571961379, 1155798328, 2417354934, 3941674584, 3898888122, 2875501042, 837923798, 3058261149, 3594051342, 407955380, 2821443661, 3659814350, 3142949971, 1313090088, 1414007798, 744165867, 3214541544, 3923841260, 2580099911, 71773183, 273028351, 3891638492, 4120651942, 663790490, 324975191, 3720171322, 4008329450, 3293439315, 4189194233, 822351607, 886358724, 3249119331, 138488585, 840293093, 1172703519, 1414998755, 514773715}, + {740812201, 1593571742, 574703598, 2615496375, 4086882497, 1311430498, 1425414846, 3663657814, 140045534, 3847865367, 290467501, 1105848384, 133056431, 856504824, 4272966131, 3805596208, 500824057, 1176397984, 3000830458, 1461907627, 968045007, 838057810, 1000815702, 3954050236, 3689170932, 3518638365, 1554994919, 659895254, 4061292030, 3224035379, 3237277643, 2822743597, 765643498, 3369332681, 3712501292, 1506047442, 1050941975, 3617529396, 2450390874, 856351528, 3765138538, 754183500, 3920503797, 3203800264, 640719779, 1506743229, 3152866581, 3270783900, 749426153, 72415498, 3076564190, 580716727, 136649288, 3936139502, 1672823328, 809054706, 3705737748, 3181300551, 3762988780, 876532220, 2753034030, 1463590422, 1479854178, 1280223163}, + {3307347544, 1543153710, 3137129379, 1212894220, 2795512320, 4038116437, 4262216719, 2748695253, 3136687934, 1307039482, 3996864509, 4089704750, 290431015, 551623130, 2715069432, 1139234368, 665763016, 570639153, 3325873197, 1063437508, 4225168897, 844449800, 4013170467, 3153667657, 1092260355, 454293696, 3055312085, 4155355225, 555982933, 3552118062, 196823095, 1537910252, 1471075897, 3120454324, 2868199732, 3442616876, 234400206, 3385905748, 339193944, 3876722497, 4294578316, 1305554145, 2883204194, 3310990915, 2974718648, 3489250817, 2670135009, 1194938394, 2686034509, 3992561204, 132640732, 3477348009, 4045910947, 2716588966, 895352038, 2594322721, 877205999, 1085645622, 2712673538, 456335076, 1192089041, 3772517103, 19945032, 3131256542}, + {3138408626, 614180015, 4005835582, 1085075126, 807283471, 3889230067, 3408901892, 213324046, 1155935910, 3912608714, 4126957005, 776208803, 2813174221, 3404271574, 1236061860, 2789330142, 3008696645, 4039090728, 235947961, 3960977097, 1647448296, 2997904285, 1174203646, 566092335, 919584052, 3221226764, 1409852327, 201530315, 2868437063, 3043013040, 4250745050, 858377813, 273982550, 1237683, 251903424, 102309337, 2733429017, 1340552103, 1559369117, 960874652, 1221282888, 783704532, 4207280134, 3373655292, 3082358110, 216071341, 3541238850, 2748734961, 3812355692, 3109967158, 1274924515, 2653628248, 3527324488, 2628757780, 3461430263, 3958152384, 3594144458, 2986539299, 587022651, 4189309420, 2678773523, 3986741731, 2712132153, 1272712500}, + {3583761359, 1514646867, 2970213800, 3892421126, 4091218913, 4081650729, 4164941298, 4107415262, 3031229119, 2563572917, 3759350238, 856011597, 423619857, 956303135, 720356689, 407499313, 1068286931, 1573298419, 3754579647, 3468884919, 183170868, 4076915914, 4104990252, 520530600, 2086993956, 3490379298, 3529443870, 1020420781, 120204255, 4139913698, 4079429403, 832294983, 3517728749, 776744918, 1305781275, 554291281, 774201241, 236732183, 218903593, 4132915787, 1201609362, 150409273, 246857327, 3336056060, 3584579408, 4288479461, 1321316562, 3689099979, 900547294, 179377683, 1326953307, 1110422698, 3735249211, 1508251619, 466001507, 1004794893, 1375744221, 3719217608, 27983156, 403430648, 4229246249, 4214945115, 755477200, 3730263459}, + {1343947814, 2958864394, 3926984694, 419952097, 1281320980, 2958165213, 1296956344, 2106314, 4004947396, 152724831, 3525662712, 810472972, 3315485624, 3727029724, 3238483656, 4280440505, 3353785395, 4242611942, 1298323436, 2807538998, 1312272293, 742765927, 1639503638, 3015771060, 3138036283, 1212181747, 1227202317, 635684360, 3319845415, 1285700886, 1270440160, 1591595498, 2890000736, 751290014, 564269806, 3894813622, 2773788859, 1228423711, 101929441, 3198886155, 605672487, 748861098, 3436206678, 1005046354, 1405208026, 4704374, 858842692, 4073315292, 2568140320, 3117415711, 4182026543, 3944435492, 246356238, 3175163513, 1122443475, 752856009, 665329572, 3620921016, 773051143, 1631992251, 3671896549, 3912829902, 3606055327, 4110920668}, + {19263041, 2887432495, 3785876990, 836635222, 3654710560, 653995315, 2930050390, 155986780, 4278863925, 214303953, 185977756, 3072212973, 3942698724, 4223270167, 2957435811, 3049914149, 844375090, 384453061, 2755435864, 3457077934, 766064119, 3689823251, 224339479, 1318521138, 3937615544, 3185666883, 1530224079, 825504056, 3326042886, 3911582912, 3258317131, 3456288467, 3841804627, 866582715, 2930129899, 2597544896, 1545131460, 2897998606, 4154791913, 2674197698, 3401996746, 424155585, 1410852039, 3052660441, 732180777, 3669929640, 3636156661, 929245899, 3613524797, 295755322, 3220634319, 156816705, 3172322074, 4254683331, 576823073, 2819786844, 1390990313, 3241787151, 708749122, 3026042958, 1411658592, 1304574964, 449409004, 2807229946}, + {3510780339, 3136070896, 3266029019, 2685326346, 1144826459, 4108962065, 1573576985, 3707638705, 2969752071, 4247061300, 55534335, 4028718143, 3591039500, 904967370, 749130820, 3417269160, 1257783262, 790439648, 87932473, 1064204, 2986826241, 313487637, 440456608, 3402438643, 309086211, 1481959690, 2668245598, 4246726655, 1425263784, 1194108165, 525356626, 290315331, 3777580473, 3266983215, 1486626720, 146205987, 841432401, 1478637897, 3023196669, 1664101854, 1392837587, 3608800064, 3734968522, 3941924031, 1093456461, 752334401, 3715126451, 4114995227, 270020386, 1322654945, 3442734049, 3483827466, 121698319, 3284597228, 1590178461, 3557203607, 3203719588, 4133015750, 99115790, 1325446045, 2622706205, 186189886, 3685985208, 3992516951}, + {1151789533, 592181577, 2690042952, 3815136283, 1746458371, 3893553191, 4293864866, 238810706, 804268701, 3942447347, 4116028609, 3610689453, 3238580904, 197080366, 615492607, 3459671195, 532524571, 3338876011, 1180041220, 446880464, 3001633002, 4259241378, 4123065265, 3494660835, 1562992345, 3907273209, 350108861, 1472534360, 1223364004, 3361095737, 4111084322, 2803036934, 3231469928, 1019357725, 487700055, 1640701128, 654320802, 2992780049, 3332482785, 68019789, 1571690736, 3275083505, 521979365, 808892436, 1493961726, 299628509, 1416117087, 284008027, 316915382, 1542595927, 1459014604, 4229711968, 96293643, 3928476187, 978250760, 2714944459, 236049991, 3082559206, 4239840808, 3596655952, 804190191, 824359727, 3167178485, 1689322584}, + {442743245, 621829976, 3057361185, 2837292302, 232568378, 4271701074, 3857156917, 833824188, 569613773, 1263816173, 3407549605, 1056879167, 397362928, 3185433617, 224367542, 203683151, 1404035872, 3915143712, 2815031778, 1375487241, 2848989486, 177977832, 4092386830, 1559604896, 3992768734, 2708536246, 4114987174, 809148671, 4273022183, 2751543995, 3789510649, 1113129724, 3955379523, 3962260406, 3099897548, 4278586785, 4124657998, 918009160, 889056752, 3118353608, 954653447, 2629193949, 1790357018, 309522443, 433397850, 1126889469, 1243864901, 3284666116, 70832118, 968711679, 1113078547, 64902475, 2855988540, 3744233171, 1548116672, 1211301532, 3075130099, 3963155253, 3015039034, 4124299338, 3636131519, 3455688784, 3014857208, 249278921}, + {571978752, 2719014142, 1170167734, 3573043416, 1261358889, 3764377259, 3120274384, 3003404296, 1504502326, 421221479, 3628904477, 2648692991, 164423241, 4062039307, 1008017117, 874492436, 1392035931, 1730619431, 84470067, 1220421684, 2750531647, 405098939, 4188593990, 4175291446, 3489488846, 3014717757, 783165155, 4106081328, 315317034, 581753628, 952312626, 94236664, 3356545805, 432814549, 3880855244, 1108693431, 3661285951, 3038684922, 3186102806, 149812013, 3097591556, 3420741134, 2897069298, 408543266, 4281052591, 3735760438, 1085914670, 3258855771, 3479324769, 1557583441, 2921472350, 1572051959, 615369793, 3887206835, 1374368266, 727469792, 652346971, 1560424728, 3004947142, 2973677361, 339357491, 3294498140, 3693003935, 976796435}, + {1658436337, 1614147282, 2940273416, 825688513, 1439706038, 530587867, 3871462637, 3277331436, 3117421917, 3427418057, 455794881, 3319093733, 3491878366, 3040191476, 1223539713, 2666142785, 4289829040, 3267732398, 2610706377, 1522396224, 3776037860, 138500345, 603512047, 1473945013, 2630473382, 1461729985, 80325535, 834269540, 2650813980, 2803842536, 1344732936, 2750749148, 4007026147, 1440544091, 3508603308, 1421461935, 3827544559, 2870289684, 3257321659, 861183941, 238102875, 233485979, 85859917, 1380926694, 744616727, 962460849, 3310926908, 2930423760, 484115249, 2654062002, 2477434721, 4028441852, 1088467614, 1345830421, 1600371448, 3657572043, 4196360692, 3911655645, 4261587280, 1138077271, 1422994955, 453926936, 4227065042, 1337722677} +}; + +static const int F5[16][3][3] = { + { + {128837351, 1419493967, 2075630528}, + {1888706054, 3686708414, 3907070454}, + {569762634, 4023242681, 3300893612} + }, + { + {2750286547, 1517020473, 3793113399}, + {2140846194, 1503488054, 2881552827}, + {1620648152, 805407173, 2719018389} + }, + { + {882326076, 3271367473, 901674608}, + {3094103236, 2882876211, 3281899404}, + {1292087871, 2286612443, 3924750804} + }, + { + {4112786575, 387774100, 1720338154}, + {2797681750, 1080485425, 787151309}, + {4010161549, 3638708979, 1041316528} + }, + { + {2406892857, 2582321278, 2946659000}, + {1806453716, 3573725475, 827743347}, + {3204362092, 2999477308, 2032916472} + }, + { + {1998307064, 3288455688, 2995325193}, + {2764103621, 875887524, 1799330133}, + {756225179, 3190262517, 1874871489} + }, + { + {823216785, 3874821218, 4264195397}, + {272111915, 2552008945, 3902539120}, + {3336303774, 2485858843, 4064848388} + }, + { + {1111006755, 2839997309, 3470282673}, + {2701891157, 2889192177, 666430691}, + {760529917, 3921493319, 1745402329} + }, + { + {915858996, 1863796369, 1590286688}, + {120662863, 1057078170, 1659961356}, + {2640162778, 1270653443, 1387211517} + }, + { + {4196986185, 3240709440, 1508171622}, + {4267604691, 510315371, 2693675890}, + {3165573011, 3929018843, 3974653896} + }, + { + {2736659883, 3881758135, 3443742005}, + {1505401139, 3120265914, 3402039588}, + {4188249804, 2354034140, 1143935158} + }, + { + {365517597, 3108760372, 3922834157}, + {2734264085, 4101589718, 1783141564}, + {1680936127, 2382917102, 2733136081} + }, + { + {3520863660, 1276952825, 722831248}, + {3774675218, 969471595, 3343536782}, + {1492780966, 1951739231, 965592786} + }, + { + {785021876, 3574599702, 123234215}, + {3153282362, 1987192642, 3044519867}, + {287046107, 3947215870, 265375709} + }, + { + {2830570406, 1364673777, 3126327993}, + {1672360777, 4167104088, 3513554248}, + {2629973952, 2718181601, 3836124770} + }, + { + {766770144, 67319767, 1034414137}, + {1898563337, 3143619627, 3285238744}, + {1810578773, 1998085298, 3822266402} + } +}; + +static const int F6[32][16] = { + {72578113, 5246771, 206308353, 6033603, 3489673235, 206766084, 1079201984, 319014668, 836801, 1145508608, 1191395584, 65537, 201605120, 285413488, 3233824847, 63127671}, + {335548417, 1968508931, 4039115788, 1598096337, 1609760887, 15927044, 288622017, 1171117504, 71635024, 1422721399, 3221227285, 4094705732, 192, 1142161664, 1543553027, 71631884}, + {1343233792, 16777427, 3494663988, 1090531804, 231542592, 809503809, 12587088, 1090715653, 2035765, 1073809159, 3553034544, 16798741, 268435509, 319821296, 268435520, 475070476}, + {4244835332, 208912, 201346304, 4258819, 272634880, 484379664, 268636225, 1325449485, 461827, 1141899276, 21450780, 3288396549, 4980976, 1931281200, 1077943296, 29622396}, + {1141102016, 13360, 3272619855, 1006846192, 1291862135, 521417484, 1287658544, 826544432, 3741516800, 806092812, 4209729, 72167747, 13566064, 1074528273, 1091844032, 2048000}, + {3295674444, 1144062035, 3541107776, 88096512, 67171100, 1426850563, 67125361, 3490709504, 819184708, 201410307, 1930644592, 226345295, 3490978816, 213996669, 221568771, 68805}, + {269222769, 873726068, 201376512, 801792, 7539968, 859243456, 805622028, 810599375, 79757324, 1343163632, 201609284, 3243249664, 3224384771, 1073759235, 3535823, 393478211}, + {1076940765, 1879261504, 1074249732, 1275088112, 3233808449, 4997312, 3422817648, 1078132740, 17035348, 810614833, 1006634240, 67915777, 1028063301, 1280126995, 13697904, 3289645056}, + {50331859, 1342963904, 1883508787, 13058305, 1879847175, 201328448, 255787779, 3274707200, 805323520, 268632140, 269238467, 3224465436, 1932530432, 876818757, 1409291008, 74667889}, + {284426252, 12632064, 12644608, 1060980, 268435719, 50334991, 3158220, 290664448, 1292644547, 251679216, 813449468, 1074843444, 233915328, 4106290176, 1009857344, 205271299}, + {67907648, 1074217024, 3225420028, 4264721, 72368947, 83952652, 1355612239, 88543024, 852240, 1006896448, 269533235, 85721859, 1022491843, 483131440, 1342390467, 84872268}, + {1325732880, 1275129940, 873661452, 29360448, 1880112132, 473957428, 1023410368, 855950195, 1124073747, 50577476, 230692800, 3439347469, 67113072, 3720347715, 15811008, 4026822656}, + {1078146240, 202382387, 3222287372, 1942818819, 3207216, 335546117, 1009991920, 1073837559, 3502513411, 1089483008, 5309488, 281219328, 1153482812, 201789471, 202849476, 1141755648}, + {1145046976, 96497756, 70274332, 1086701888, 880787504, 3547394253, 50383872, 3234070869, 1039188032, 3165196, 4084216112, 3221426368, 3253748736, 272826688, 1342196816, 805356559}, + {1851395, 202428469, 3509649616, 1007699028, 219201740, 873205505, 3224371975, 196608, 1090519808, 1296236544, 3288346624, 4100, 1136668913, 1380404, 4194563, 1140867136}, + {394005828, 3221226309, 4403648, 29425968, 1086390524, 1089537037, 3422609164, 67386609, 1057013760, 269300996, 1077955663, 3225235777, 72548672, 71397425, 872464849, 50960}, + {288410816, 67108881, 2131955715, 281145363, 64749825, 1148203059, 3318497347, 1065167, 1087721412, 3289382924, 219414579, 201589520, 87490560, 16, 1879049008, 3574546444}, + {1077312, 15780868, 818678848, 79760396, 213910320, 12582912, 1343602740, 4039913520, 66570188, 835013639, 822084912, 50331653, 208782149, 3435938241, 219201792, 29439284}, + {1073760048, 1423200572, 268813616, 1020265219, 290914321, 1020461123, 268633297, 268442643, 17838865, 68158276, 3228828723, 202114115, 3224372480, 3424452, 284165888, 21053447}, + {201404416, 4097851651, 83964160, 1137557696, 1019219713, 1342177284, 268710144, 3510044497, 470093828, 4456451, 4129744, 786480, 3237151745, 1057015744, 4250631, 12632067}, + {1077085248, 57672752, 3439349788, 1090519043, 32751616, 805358595, 3139, 205276176, 1295478983, 3221508913, 1406152784, 1006645527, 50352405, 52232400, 3225354499, 3271576580}, + {1103155212, 1077137408, 51314707, 201539635, 297816833, 1593864205, 66627, 63008787, 3408643, 4056096512, 524403456, 206373696, 334840055, 52233296, 1157628672, 806605063}, + {1158414673, 1395658800, 67308748, 51396608, 251665695, 810483761, 205570100, 74450176, 473712403, 281329712, 1074819904, 1293932291, 1459736771, 289407440, 3222016012, 1276116993}, + {822893568, 1074646788, 1279264079, 338691072, 1342177281, 1074840368, 806368272, 264507140, 3497214047, 1065110592, 68432896, 272629968, 1095516356, 204487884, 252707312, 251725060}, + {3250587392, 51495936, 3441167360, 482542428, 3288449840, 3284189955, 1010827507, 12649217, 16797696, 885063681, 202708032, 218103900, 268438784, 4026585360, 272368448, 822147068}, + {68439543, 54538244, 805568512, 3490722567, 1191969809, 1325663059, 83824700, 122683636, 1073754943, 3292270604, 3502260273, 3490717440, 262916, 3235119872, 3238264833, 835632}, + {3241345024, 3236957440, 68960525, 1103119171, 357318672, 3250945024, 67450625, 1851395, 201355340, 3272917009, 256640192, 72155412, 1879248896, 1128333315, 270287741, 67898372}, + {133629712, 318767920, 74564656, 4216631, 1164981568, 4098883588, 3422553292, 67372305, 268435712, 1073807373, 53498060, 873467148, 1129254925, 3492922368, 1425805636, 21024828}, + {808705, 82839324, 809496583, 3272622349, 809500679, 1052672, 1946436668, 1128525888, 202163264, 4246528, 808464708, 352518151, 3226209333, 289608049, 62914801, 3288334412}, + {3290219968, 1245184, 3511091527, 250947, 3243000000, 822083660, 470830132, 268500992, 3272605760, 3225670656, 1544359948, 252641328, 4217920, 50590723, 3233870835, 285212864}, + {4039138576, 3222302805, 1879950416, 222301264, 72351792, 1342443527, 1140920540, 1325404161, 1144020032, 834687028, 1007489092, 68173632, 1020265456, 218985484, 204493888, 84151344}, + {1900021004, 255852544, 4233363468, 1124352012, 1117952, 4144303893, 17089328, 83891463, 1342685232, 1153445936, 856424896, 3221242192, 272827665, 319560732, 1124326620, 473175028} +}; + +static const int F7[32][3][3] = { + { + {1464712599, 3152189792, 4000199347}, + {2482681797, 1917635391, 2019040944}, + {1327508548, 3312191519, 195150441} + }, + { + {3058649323, 1560474394, 3776832850}, + {2747797654, 581072047, 3285693707}, + {2720164783, 1816744241, 3074029153} + }, + { + {1888031390, 1328920341, 4190857416}, + {3677906214, 2507308348, 2629980065}, + {1038306676, 4210711082, 468128765} + }, + { + {607152865, 1334258894, 2560889131}, + {3283279254, 800634587, 813009457}, + {3069119276, 1004060475, 2459914991} + }, + { + {526337224, 1100586442, 3478082618}, + {1680327162, 673170185, 1207500435}, + {3857904572, 2636025359, 3072548833} + }, + { + {2445564564, 3543729955, 105069670}, + {2739599470, 3495291095, 832738806}, + {2530351152, 1749568970, 149185054} + }, + { + {3842107130, 1764841194, 3114367550}, + {1528847130, 1907391984, 10576945}, + {253191599, 3400096871, 4040882455} + }, + { + {2871833849, 3544205604, 1655946103}, + {1948346937, 1922540550, 923184975}, + {969599580, 485145072, 2651812245} + }, + { + {1634022305, 1428209755, 370301778}, + {1448926198, 3916034920, 1192661207}, + {1010923068, 2588458953, 3216526656} + }, + { + {3329659689, 542816656, 3054733575}, + {4231151581, 2492621460, 899882578}, + {1680683661, 1997148635, 2082611218} + }, + { + {373829134, 2941024701, 169862263}, + {3666669527, 4098423908, 1364967537}, + {1849046113, 3489167412, 2777890171} + }, + { + {3914406631, 2766946972, 4020351720}, + {572803046, 686500747, 2631284926}, + {2640776102, 700629821, 625756522} + }, + { + {937118896, 1508453534, 660590417}, + {3216392555, 2075312326, 2141054755}, + {1922038423, 3243247697, 1769561344} + }, + { + {11309493, 3489749604, 4106829421}, + {1680576631, 3096853803, 3343949024}, + {3705604657, 1524420909, 3471954837} + }, + { + {2900702374, 1172781018, 902932953}, + {1962403776, 1874300560, 907346074}, + {2632795618, 842520558, 3192722967} + }, + { + {3948979496, 4078671849, 728046882}, + {2756722205, 3014510623, 1879815027}, + {1361927855, 3508302120, 3960868088} + }, + { + {4249766501, 2646193813, 868886446}, + {751163843, 3621524421, 2771538957}, + {186585455, 3041656383, 863682650} + }, + { + {3584418650, 1726556555, 920709455}, + {3624212629, 1302186776, 668147123}, + {1126473708, 976999860, 326321847} + }, + { + {2437189577, 697313058, 688779733}, + {163778126, 2445750268, 3130396899}, + {261173217, 2513162363, 3155160432} + }, + { + {2460868277, 853856984, 3929334090}, + {2707777736, 3675979783, 932108217}, + {3392077076, 1024519433, 3231704251} + }, + { + {499122527, 2593577065, 433646534}, + {1561134226, 14788180, 2932024559}, + {691559845, 3325008887, 3905999943} + }, + { + {2389689601, 3907703789, 1040759854}, + {3938188373, 2633628247, 1773243684}, + {1620159758, 2650580226, 4074250715} + }, + { + {171851755, 4069834657, 3253574287}, + {3106256233, 404438611, 3647595625}, + {215935420, 117425030, 68071216} + }, + { + {3643820901, 529930195, 3003846913}, + {893424346, 2711937261, 2248159425}, + {3230989359, 773654703, 147894878} + }, + { + {1817181691, 224330387, 1268311468}, + {4128742383, 3911677871, 3568721899}, + {351302821, 725503035, 2754043027} + }, + { + {3296196086, 3300334496, 2796139538}, + {3520501460, 4282365497, 434028849}, + {3925591691, 4043422688, 3885893567} + }, + { + {2408544024, 3350683191, 3672640523}, + {1901341407, 4083486028, 338315538}, + {2991892243, 888670124, 1365904050} + }, + { + {3460479748, 90746708, 1249181693}, + {3757578441, 2008548628, 2951995977}, + {3404650791, 1985561189, 1386175502} + }, + { + {1805723660, 1707777978, 1700049366}, + {172117365, 836729057, 4013549779}, + {2484843619, 2488032225, 551166965} + }, + { + {4280932008, 374697943, 2392087769}, + {975751502, 575167960, 409720407}, + {705016154, 4206730688, 2567765134} + }, + { + {3572016307, 1931518708, 2758916569}, + {3780791181, 4070797849, 3371975951}, + {2799965107, 1379416993, 3910282159} + }, + { + {3676393395, 3572123991, 1452016527}, + {3013364252, 928805827, 929675370}, + {1878324120, 2469977086, 4036380621} + } +}; + +static const int F8[32][128] = { + {649872584, 4031958446, 3523728949, 4255726660, 2921399340, 1403674320, 1725381391, 3893699630, 3618223410, 3307752441, 2969189419, 3593388619, 403828688, 3285506522, 1428510376, 4273347302, 2931418795, 4010791337, 1186346164, 263178995, 2939239715, 1666924461, 4005377014, 2941433811, 1481772971, 3255815969, 3652110637, 608171987, 891999699, 145966033, 1121965996, 801303112, 1289073079, 1409170956, 3675328003, 1406144542, 972291054, 573910328, 3333495097, 3773055222, 168153916, 1163328296, 536039415, 4079662059, 4092441155, 3554594734, 3420535306, 1630008376, 3972402349, 2901949523, 1072126150, 704132937, 3559403594, 3987938809, 841602094, 138735418, 1387671632, 356893862, 1429823518, 1395536075, 267165943, 2990975044, 3457627825, 635295559, 668475146, 3987145946, 1611678192, 1017981884, 3200475333, 1258288830, 156934917, 4156998464, 842218930, 1261247492, 785389781, 3218888912, 1305333249, 1422460693, 739747631, 726974502, 117055673, 3942121953, 1638745108, 2655188444, 2900618709, 474678474, 3419540425, 30038553, 469311065, 4208866831, 4109160483, 2770871617, 820727353, 436164918, 3974802123, 3285584960, 3221990683, 860799470, 541261874, 4176880674, 62329864, 3746673377, 195646032, 3592482533, 2905148868, 3704312261, 733766179, 3904480744, 1370505928, 1496600518, 3727477497, 455927332, 3543026097, 2872727078, 4256954653, 3255825223, 3457069000, 648857277, 3483806178, 674315771, 1615463414, 1205597433, 3436785472, 889322749, 3343770415, 3408356538, 3375749679, 3827941978}, + {2973612503, 4022555986, 1061228297, 1457782572, 868333317, 279849905, 775897286, 237968883, 1578590710, 3929751862, 1458171572, 3318139622, 4105696588, 4240659444, 3729862397, 2848994786, 1510096309, 2941045766, 4087742006, 651607587, 3780429906, 3828232441, 694831183, 1371228225, 2886733872, 3893446914, 4097322166, 3326344961, 420269588, 3772046841, 1728433237, 641668330, 1392376076, 650525970, 3905053377, 1254766102, 337037604, 3276587740, 3963765332, 1438629696, 1168124982, 1128610515, 2483943244, 3210455224, 299153207, 3403732402, 4249730535, 414325529, 2683249439, 1790265668, 3074747101, 289470489, 181487437, 1672626425, 3493136168, 423168745, 405973848, 3090481742, 2679520011, 992496826, 1982054310, 636374768, 1471556046, 557338064, 2670911782, 458403807, 6803394, 1541951408, 469837515, 249579495, 817941232, 3886364239, 517342129, 3861126234, 1000886293, 3904238001, 3752549556, 4114994717, 4262880181, 756953365, 2498312493, 39649975, 1722149889, 1104423927, 3638620944, 388043965, 538438999, 3186307552, 995774734, 3405049771, 3284065987, 2835200535, 3637270226, 270392385, 1745400034, 4231344829, 1118882094, 3641893588, 3561667820, 3702009059, 1520917265, 231718692, 3126115842, 575089734, 202363870, 859699903, 710196698, 255331119, 4256227086, 3131825647, 1160660763, 3539000111, 3487902474, 4057418067, 1338695607, 873847504, 1795940380, 516697407, 4160805101, 4023055097, 1578159694, 4274543426, 1010676778, 2854683816, 553978570, 3671478817, 725473748, 315477211}, + {1507186921, 46612152, 1141781836, 4158001195, 3216691207, 157954282, 759820904, 823384690, 3814512090, 752042201, 1314253908, 3067302929, 782912278, 825860421, 2857439308, 3405441853, 3322940645, 3637690155, 136559151, 4043359762, 391647709, 100774473, 373368006, 4277054716, 3070547380, 2880845482, 821295824, 3993378996, 3067031494, 2863939611, 4098800358, 3303482442, 3368336205, 4160004385, 1026141468, 3806717642, 3407658845, 3070232580, 3675833314, 1009310254, 3471070451, 4246152749, 868225285, 2758479944, 3869789217, 885472623, 3193166548, 1513962965, 3490326371, 955589088, 117229671, 4230990158, 214765816, 15971877, 434304070, 4063310373, 252002149, 4073673269, 3031624391, 4061460289, 3509004493, 402383206, 3307424425, 4072418384, 1085875411, 424670802, 105192728, 3604492965, 4106157334, 3054116330, 3271336127, 3506553882, 3930736890, 3086103997, 3007454172, 3554591310, 2940390863, 4157650221, 666559167, 993792319, 1379283162, 1094662622, 62972450, 2764063288, 3286804396, 1406774011, 719119576, 4026018256, 4142855478, 1013067778, 3142954653, 4189437940, 1160365137, 3576418074, 2835621086, 631817000, 3856190784, 264522441, 4147641593, 3743809039, 583973964, 541915213, 4205945187, 289325568, 3677832187, 4261003617, 56563975, 3153590203, 785647610, 4105768987, 440712165, 489552984, 3791650011, 3780566521, 891568180, 548382467, 857264947, 303182340, 1427655521, 4011108946, 4140566304, 808889596, 3069816913, 229848833, 437132232, 3674722841, 3058227543, 101726134}, + {2865418415, 4229827307, 774523933, 1202906173, 3360752033, 1141593848, 3338140625, 3317172032, 2936915702, 349127254, 688516933, 4107854588, 3786338243, 4039769277, 3854901966, 1023458623, 589324090, 3720135335, 1413461000, 1144772633, 3710798769, 3713090855, 666053107, 3317891584, 824102907, 2812669118, 4008368887, 765804217, 47656883, 2835037960, 3048814013, 3773758738, 3218827731, 4174767889, 38476269, 306699335, 447618333, 86909962, 3123633217, 289464772, 853148944, 1019103251, 1039323646, 3274770163, 825637634, 4127972079, 1146503928, 534257413, 535511491, 1102824656, 3694993608, 169328339, 466503614, 3500667361, 1436922961, 1312269912, 2729915359, 4038970359, 1429088839, 1185738057, 283912010, 3407794604, 800706622, 457755471, 4006080250, 3853117962, 925287415, 415957696, 3659792109, 3420866836, 46782689, 2800435178, 2747091713, 3652518610, 340055635, 4077322816, 65091781, 1410282712, 238863409, 3337396203, 4157480271, 827409961, 1427911108, 3953585380, 891143677, 3790927307, 3943485786, 3854042632, 893310779, 1581055038, 220862196, 3559962606, 772544706, 456133434, 1223310352, 1253707480, 3406634049, 341323514, 4283697125, 373024230, 3970503360, 3726005078, 607019850, 3477533122, 1463128878, 549722903, 3167463938, 504818677, 3339199557, 802535662, 4054892779, 281347817, 3488883802, 3084658454, 331668689, 4072535007, 35123726, 3495507643, 3645559467, 4025869999, 874244266, 1006246494, 4073596903, 901246721, 3223138222, 1504291831, 281886475, 4027390732}, + {590662164, 788223730, 605440975, 189478364, 3391618842, 4027624925, 925878465, 101070276, 1139077390, 435409171, 4089853395, 3809330267, 1598618055, 4242280447, 1509159474, 17316608, 3520678680, 3203839546, 3321181143, 3540760305, 1110653492, 1707548126, 120472390, 3316689586, 51075134, 3844198397, 1526867452, 3069621274, 30731965, 504836827, 637476652, 1859372552, 908803658, 268979514, 4242155985, 4093138922, 3354793715, 3377142612, 3174765640, 139579093, 3710200078, 994297132, 3249145627, 3845836890, 967465124, 3031914808, 335550917, 2755710397, 4115533096, 4293901999, 4112402010, 902631459, 297727042, 157008572, 2690143300, 3728980670, 540131335, 850220877, 1397697824, 1386785788, 3422883581, 3991975715, 3840205481, 3141743135, 4179973573, 3652052290, 3712602944, 492037555, 704031777, 3021691857, 1245364990, 3266177807, 3472080550, 3622559526, 3554276098, 1202401017, 2917944110, 3120758095, 1223963821, 3459112894, 3511301136, 3216879302, 1256779965, 315761977, 3158631135, 238422601, 2784539454, 967767311, 3757295115, 4244687402, 3886353587, 1257233593, 2704607691, 3040215386, 4039428875, 3643083483, 1498176055, 49197275, 1626853370, 654577995, 3658492712, 1307457506, 265486583, 4043027122, 3218137513, 3928097369, 1665210899, 120794858, 1523958843, 4211624870, 855518937, 651484084, 4092738227, 1346047784, 3215717306, 3174686489, 551485956, 800657639, 230499383, 2566181843, 3860643545, 4030807518, 4256322822, 2772112112, 3876568587, 4055323990, 4164486668, 3376742110}, + {3963270858, 1272183848, 758399151, 3458471200, 810236940, 639065400, 3036275894, 1625170728, 3424990029, 538512464, 2869677068, 3236311635, 4131112177, 3575433551, 20565578, 3657228874, 355190621, 4049407533, 1125497531, 750629163, 3511631056, 509027568, 219559645, 1170214585, 1044360659, 131173955, 56367827, 131186468, 3944748123, 3216717128, 1054603074, 1683773273, 1613322280, 3493793851, 3172485050, 3017068501, 3675849150, 605490706, 4199737577, 4199391215, 3356944209, 3072301523, 3847119606, 570486335, 203808961, 4175703469, 3891734752, 3457035284, 1577921545, 2613651909, 1494269659, 4110815490, 3170484160, 4074561872, 971371195, 3739761381, 958815677, 3924625071, 2668367623, 3505171282, 3222677061, 502701546, 2955725773, 701286846, 937236788, 3277662948, 483409890, 3204573392, 745224027, 3201620390, 3202616494, 4027001903, 105493747, 773501870, 306395932, 705694520, 705283350, 1380246286, 1040430089, 113977333, 3349292255, 1302670921, 912068921, 3635794442, 901899815, 3545358926, 3976065456, 3524786196, 197719599, 1640489001, 3019509295, 1509811196, 397419796, 4192533249, 2870208953, 3520375522, 3024032001, 3041283627, 6375437, 4290707545, 707390764, 3153483208, 4276043088, 256856390, 2763518006, 3426199490, 3763335892, 1152520905, 3373605177, 3729512172, 197543987, 4294551832, 1379450556, 503637209, 4229634787, 2757485135, 744625903, 70962003, 3417695972, 704155395, 4193398579, 3828285176, 844188903, 3175989427, 2687628088, 3987795955, 3827304142, 736406695}, + {422779997, 870862050, 1542898647, 3823719407, 3589716661, 2756849403, 1223446307, 1345984811, 567209040, 1155876519, 52745972, 1278135762, 1546072606, 2969241928, 3791271986, 3286510631, 122994891, 1476052190, 3157113116, 96520931, 498804311, 186081788, 539312831, 3476180240, 4079472893, 3024693446, 2903380039, 21016073, 619270159, 1060838641, 3719802951, 969275975, 84570105, 3504232181, 1253972929, 3310947241, 1259034102, 122215501, 4213440758, 2902897868, 1005524181, 658487733, 2747405107, 4065092756, 78366898, 3636687369, 269432520, 3812075566, 3569467081, 418492, 3722517919, 4011305195, 660221399, 4191943918, 3156013788, 766721520, 1245310467, 2630743285, 3995642572, 200006650, 238660616, 1562623957, 2989437450, 1135724060, 522136504, 3135928899, 2904734926, 1616411230, 3878941737, 1345507046, 2972006079, 1086006110, 3736001841, 769636921, 959387115, 2952082225, 783109631, 3287821804, 4006009027, 1288889650, 1221199080, 1420362699, 3736660459, 70595621, 685427161, 2835023604, 950981157, 548987325, 2989544894, 2971787499, 1237110062, 3021069502, 3601445209, 3126586199, 3200453651, 3418771316, 3182948617, 4182332767, 156890457, 1462957844, 488003301, 3961736460, 4164604894, 942688779, 891088931, 3203142360, 3175529894, 3186748317, 3819313869, 938469348, 3762100762, 3713793520, 990967049, 688044791, 775965424, 961264941, 3182886482, 1482299620, 3909079972, 3470123869, 559031024, 3645899267, 3352632602, 1389013684, 3660861173, 22396392, 1539225303, 3209243222}, + {502923460, 122148140, 4107535539, 1018244126, 700788234, 1775161671, 4230238738, 638050884, 3018635483, 768873383, 856236773, 83015446, 692523472, 3190731068, 3857761101, 1328868846, 521909832, 3869837258, 1108958204, 2899632622, 3333504739, 1441920723, 182050757, 2918310825, 551147285, 3058165986, 4057950113, 4076417261, 550248960, 404426455, 1276200927, 1363091471, 267138263, 1454130900, 1244061945, 423537679, 3804611593, 934603500, 34584137, 2772021321, 815982070, 485435612, 637976743, 552847384, 1119375411, 960830688, 48089836, 725282878, 129129122, 4138263630, 269240052, 1497815464, 4272568886, 2981226563, 263937757, 233579514, 4106887699, 4173715944, 131290279, 1513694994, 3525119245, 906380737, 2813775341, 758331297, 4200221158, 583286188, 4077661732, 3635673904, 3887519918, 2980577538, 1523172108, 992535007, 3762861123, 3958486583, 339127064, 735369151, 220404920, 3092241421, 3558525265, 3256333288, 2739735373, 3494433717, 3491163065, 3528244023, 1493517347, 302655563, 1011345711, 3249021213, 734747562, 298455719, 3419094035, 3905568184, 3391348651, 423155364, 967261433, 396866584, 490413861, 3216816624, 3928309223, 3173338076, 37962803, 3476874043, 3148271426, 3421353547, 1462554420, 3343782225, 558261703, 3976001021, 3840428538, 4224778040, 3770399431, 926226955, 2829765039, 173729073, 3857914628, 384249427, 4175035456, 453245394, 4171897365, 1305028299, 3522045372, 3014311936, 3844461770, 3841128373, 3487511588, 3159352247, 3585169845, 4027578809}, + {3319485628, 3357285133, 3327603288, 213759178, 2838509583, 3672993292, 4087614444, 1426933049, 1103474992, 987606219, 3337386169, 279886849, 2947500883, 1425849847, 240145170, 3595981804, 4163392587, 3322663622, 1523996454, 4122602283, 3575167942, 1312483671, 1642123021, 1524094630, 799783722, 390985449, 4079742735, 4071245242, 3367705794, 4037608702, 432657970, 273896350, 3709221433, 1465366330, 910671627, 1393749503, 1356190890, 3606723667, 1707190839, 1354964715, 4226689064, 1727092206, 1576014062, 4206778366, 3356366856, 450416590, 3625209643, 3023230207, 3889033152, 1591796392, 4047758380, 1103042988, 3350267821, 1279191753, 3727485101, 567370795, 1462000675, 2667576917, 549379264, 718476338, 1051176705, 984141992, 4146911518, 1394724933, 1108623797, 3057984241, 2600024818, 743499048, 1244838368, 3873789934, 656787402, 1003421892, 162350653, 4059812628, 756932439, 670702286, 63591618, 4255907637, 1678199465, 3725960019, 3254068274, 1496312581, 2965303827, 953016397, 4146353368, 2922532794, 1345263074, 473963961, 4057009886, 3862226881, 919000909, 372624208, 819131419, 402498264, 3596071228, 349582131, 1431512662, 1263280935, 1292956654, 1026346285, 1009250849, 3521011976, 3644308481, 3542355367, 3591103943, 3587522800, 860092877, 252719566, 4223540745, 375110912, 3910022924, 1596248818, 1727480502, 3031748923, 676211777, 3626944224, 491127227, 1796290723, 1058978870, 331005909, 698808485, 4041288869, 2956775937, 341260279, 700820921, 869771496, 420498201, 1142084293}, + {319824899, 1361380379, 3762796997, 474480919, 1144181839, 236455127, 3675195194, 4131460329, 220008704, 3519195202, 3777233590, 272179258, 2803934983, 938198509, 3168750142, 3551866852, 620631256, 922993326, 3853784869, 539994113, 608092128, 576251186, 3790488907, 4291610072, 3827381234, 3780759530, 1095839775, 3184269383, 307670722, 1497190232, 4139592881, 4195605496, 1253429841, 1225456439, 1062736839, 3518035448, 4193801899, 2971266988, 3692472615, 4147643454, 1186381228, 448664018, 3893024961, 3855641095, 1051440459, 3071430983, 90617659, 573035236, 1757408866, 451201981, 3551598056, 3591844187, 3428054837, 1340205486, 96807219, 3947059955, 4147076083, 518963006, 3069178570, 3225874111, 3402354513, 869707059, 4069757724, 172874707, 3510908448, 4207504563, 534629971, 1216418010, 508689423, 303838192, 3451187138, 995544828, 1222749891, 978370251, 107478296, 793849684, 1270419445, 540096503, 1075239388, 3528596998, 3861136424, 4015110209, 2988197824, 3748352458, 1096695630, 318627593, 4142006101, 2732705522, 3384676920, 576210904, 72086006, 220781137, 3277178940, 3472291286, 1170542095, 398242241, 3641631261, 4109240921, 230964911, 3170349356, 4037690899, 334613495, 387844045, 83153198, 4292421634, 3068111356, 3980524627, 3459276320, 3960190293, 2865762114, 3693615664, 1323060769, 3426668607, 3689630715, 2916104000, 3138993908, 1207874212, 31718182, 3921817860, 2986247710, 325050419, 1410319296, 753023770, 1428628820, 3929590465, 4060101918, 3236018137, 1185427124}, + {3745844014, 3307229142, 1308346583, 837526015, 381038825, 3257158893, 4246816955, 994498578, 3637914195, 1105220394, 2932756126, 4173481276, 439301057, 31213390, 601812445, 1288809400, 1463439896, 1304384167, 4027651357, 601703223, 297480648, 3653424583, 3286367756, 1206516160, 566276813, 3920708676, 1238035797, 1498594547, 4232979691, 3475912223, 1259810893, 206194153, 3819419900, 138101567, 3226147528, 2947066, 458696142, 901378314, 521142986, 3081501167, 3217049040, 4038668553, 3673082632, 619568357, 3435454451, 1380011201, 350427710, 3910593192, 1258534354, 174116049, 4157089984, 116730635, 3036228873, 1088159780, 1136397867, 4201602310, 86464077, 3134074104, 503975371, 3877117914, 17302235, 874468361, 353500952, 235155516, 3235362594, 2797330198, 3965563649, 1541183830, 2930964482, 977250538, 3710190166, 3518743565, 3605721089, 4105840639, 3503408301, 572717901, 4194941126, 1101652275, 1559814676, 1175461429, 3122661900, 2824359674, 4015239697, 1052979506, 4026139590, 887616243, 538365893, 688150518, 3662139419, 920469794, 255346443, 81200961, 588126006, 2800568777, 3050155858, 167227122, 3941719981, 616736248, 3168714232, 3183338984, 1071453636, 1026145780, 1029813753, 3467131847, 4063165519, 1324734012, 2937146380, 599737441, 2736845552, 4133819075, 2758363084, 4194634073, 3283619510, 1276134637, 3238133200, 3988018421, 1197066323, 3837276484, 3827878114, 214159140, 163009193, 363571791, 47033614, 3105633606, 1157911246, 751238310, 604252332, 79800655}, + {3389390260, 217731501, 3975756556, 1707760121, 4283061329, 3098034858, 356273852, 196606993, 3200641588, 131025647, 2746683814, 3370901062, 106120275, 1431325463, 3907649268, 3686802767, 1288353872, 653678344, 2883077711, 3964752723, 1020931092, 3293111719, 3876515401, 3574033349, 1154741011, 648491597, 1494742824, 3251129331, 1755832029, 3560693595, 2953176538, 180626408, 484695274, 364957721, 3838096973, 1095181621, 1193304053, 3225408231, 1052204997, 3107777365, 289361411, 4222226746, 789569459, 381410587, 250659503, 804584220, 3542431768, 1475614188, 88228129, 3939920471, 1154366676, 3424522826, 1304715517, 4088224480, 218024443, 957069635, 950525990, 767084721, 769473301, 1276595263, 648623816, 1264280607, 3861629768, 4149261557, 635886508, 1107801378, 541153783, 33234950, 183583559, 4210346811, 3872313924, 1679816360, 3910558727, 451949597, 985934095, 4088859167, 1121525199, 3074361080, 3100593905, 251673774, 3006284363, 3393111251, 1707137079, 820648223, 752005189, 3207778861, 4241575231, 3058089920, 3191540195, 3086564863, 4143724006, 3543129111, 3283630285, 925608749, 451893444, 4143242541, 162012615, 487322085, 219600315, 3777366539, 1428703004, 1405555895, 300269236, 540483518, 823118557, 3910454712, 1595150797, 365620238, 3636801622, 1173418517, 2298275584, 851028804, 3453861044, 4272176212, 1471553790, 2654466253, 4029996766, 2985776427, 959689179, 250370358, 968547000, 3955211612, 2850770734, 490159136, 3337013180, 1070527183, 322100466, 4193245620}, + {4215390755, 4088978606, 1073030311, 582589942, 115025419, 19018270, 3351139842, 1543724361, 2997692858, 3408457971, 3523820827, 3491502532, 4010363449, 1339282167, 4247132692, 3169298619, 13573861, 465372727, 3846577465, 4263779648, 3572186628, 741853125, 1327909162, 1344421448, 636812211, 636925137, 3085824825, 3240363331, 1011272904, 3870738228, 3657566161, 3591177936, 96396979, 2831722229, 1353783251, 170653642, 940252149, 1194984117, 2870234425, 1125195475, 1177801881, 668773816, 229551094, 3058653743, 878320169, 3033193938, 356667721, 481740464, 3929141075, 3719283956, 3022329386, 1106973479, 556322521, 3185882405, 4149288417, 131725785, 3522036558, 3519597484, 1194703413, 4127414842, 473604026, 452727363, 699601134, 2901151717, 3455316528, 822682133, 346731602, 3317650434, 67654489, 2938439231, 490014156, 590589888, 3626642131, 4244418750, 1077621595, 3202491394, 777377811, 1321270961, 4179824087, 3424786138, 2818981043, 1391337941, 4173785588, 487085016, 84871456, 3738297034, 3754882327, 919997926, 3165103030, 2884125697, 574857638, 615458276, 3837211455, 497373752, 430302450, 1254205157, 3753188369, 2951326729, 3057957668, 98448678, 3109507310, 45734228, 773607736, 1109936920, 3726119402, 431029325, 18804988, 3491559465, 468209159, 146649766, 2817469236, 1457148489, 3073717483, 3629047735, 2856382166, 4025808056, 4142974221, 219745608, 3509251745, 4183176671, 3471651805, 4247435956, 602356261, 1476073543, 4106143567, 3973701691, 3795014680, 3243388078}, + {3541981712, 912926674, 551872430, 2952988703, 285026622, 4268605125, 1596661038, 3571248208, 960365863, 300619686, 843306419, 3055222983, 3059618247, 4039425323, 1138870847, 403109649, 974572623, 1745610031, 1609163583, 263254281, 1362635077, 853129419, 3322331, 801632672, 1028083625, 3149837761, 3856930155, 917766960, 3469295116, 253807374, 1493700422, 688174802, 4176994033, 3384083237, 1525101834, 4248988152, 693316166, 3208453199, 1425861908, 3252352083, 3140358973, 485573710, 1562266963, 4064015449, 1370884263, 3390363971, 313849828, 3678347710, 1690910290, 3927129401, 163980908, 358155237, 499274044, 958332449, 945480617, 3897894745, 3178019326, 3025616471, 1018218273, 3855686977, 3342744618, 522347063, 482924057, 1628311462, 3841928548, 3553817089, 3828407040, 398599653, 1559996678, 3618389579, 3623728421, 99203287, 357941918, 1379266633, 3272156406, 4096142084, 943076091, 3302090988, 3778611636, 993350464, 3702871725, 3238996553, 3746556350, 3724292655, 3518888699, 1105646163, 1497311179, 4189072342, 3098016508, 2973441142, 319099092, 3251447004, 825744656, 357381837, 1124290047, 1086127640, 3457365795, 4294777816, 3737458486, 3423286206, 4055899943, 30984641, 3168218642, 3018447867, 2900898262, 3267362244, 73872180, 2755732498, 1344599496, 1560920291, 3611115813, 799677760, 186168907, 3153472491, 4251301946, 1290291456, 604900316, 738990057, 659136549, 273272870, 267608987, 1288574228, 1398077269, 889803693, 4008627456, 634900648, 3468216051, 3525100992}, + {182174148, 553638605, 3068941321, 1055015455, 1139863380, 786259194, 3955057450, 3626096467, 3757365412, 3811370398, 1440609212, 3552041670, 3205863372, 682033340, 706336012, 4282609887, 3693733445, 3975613874, 4216046855, 1512484648, 4043581975, 870895096, 239683809, 380943334, 451235766, 1420056650, 1179402317, 1273739864, 3133065286, 1038300478, 251735018, 3377454553, 3120627173, 4065897451, 2954774684, 2824731100, 220060121, 908221422, 364324795, 4011639537, 3402997328, 266184766, 3819818302, 519058938, 1204018230, 1495667401, 1361793328, 3191404075, 3444266031, 450088489, 3057570762, 2806581537, 1089919059, 2799958264, 4264738799, 2967523615, 264366379, 450379039, 4212655886, 3721065913, 1446907439, 507620617, 3417310642, 878161364, 339470062, 3269344007, 1270087165, 3068551078, 190315342, 4279826641, 3425903411, 2904351503, 704168500, 4276468559, 794743366, 4189719739, 1069787070, 2857259933, 198636583, 17386054, 2819803588, 337119654, 1304565937, 3758575078, 4003791026, 3137148671, 3622174986, 3136095688, 3101968073, 4077055305, 893605542, 4274854442, 4239649234, 650063393, 4215474345, 3504604398, 1545279720, 2899912659, 4021753178, 1211629333, 758127690, 3955235094, 389787883, 1310531812, 3914874285, 869923824, 44490790, 1195684117, 3568875212, 81305597, 1160849402, 4077658902, 3292139717, 1413864262, 3393578991, 954750455, 20923729, 4066238990, 247870192, 760697109, 752794362, 3388984833, 3680575469, 1458886057, 3074500812, 316076201, 2783978698, 3420310585}, + {3755160637, 3671904701, 1790314238, 565321711, 608691255, 705575679, 1614148883, 13310152, 1247536981, 3567859431, 3120377040, 4142601148, 128444652, 1125637422, 17044754, 1092348247, 536550451, 181940184, 3772100891, 4198645200, 1109745137, 1579342888, 18416979, 4259840285, 3377681409, 4148373025, 3623205939, 3510368026, 1646127333, 3474208261, 4291111500, 581780048, 1609439973, 1153611205, 3591780814, 3964847159, 837934780, 485962203, 3323877551, 3944211720, 3562024535, 3159077710, 3473149646, 3390983387, 945248734, 1539702236, 467718667, 877021950, 3720350651, 3859487417, 1195860659, 3436375837, 4062583554, 4263762369, 380941499, 1933161248, 755634861, 4123809574, 3585220854, 3087578144, 802886476, 3319927554, 3260264928, 3864407385, 4004196551, 1414325728, 81260512, 1088940350, 3266838238, 833827237, 3541389133, 716962326, 3457524025, 2906510387, 1328426546, 1253115365, 3846972916, 860604462, 205198050, 88733877, 1108205495, 4006104397, 1443317048, 3877889102, 372021417, 239884307, 12757223, 2822966321, 4197045167, 1278565080, 870142940, 94814789, 2917441083, 3207906850, 1381175993, 1129817814, 4163742262, 590274984, 3696371440, 2989046498, 1093149938, 1345570378, 12165454, 1358312873, 149400070, 3352019717, 582286088, 1390725578, 1767059777, 1808022090, 1155910178, 1806650950, 1808445267, 3670744522, 953998512, 3730045371, 3201587774, 3963544332, 313917910, 4199409985, 637331953, 267304958, 3634979083, 1245821916, 69918179, 3976575929, 1436939691, 1155379726}, + {4059232001, 1257681511, 404216378, 4022873092, 3251847974, 3003309606, 84559039, 3694190901, 1457910311, 3392480260, 2781919741, 3022901983, 822467616, 1019155033, 4211482686, 4065373184, 3353127746, 4215339529, 1179408591, 519582736, 3433765400, 4148775221, 289593827, 2772156122, 1354020388, 1313449968, 735656712, 3326007273, 4043552471, 566892606, 3204590954, 3240876271, 2753757498, 869651892, 32523710, 1020971489, 3836070100, 4046563348, 1078743902, 1303225778, 490672906, 3123429590, 1442522286, 318715195, 313458130, 3761711125, 247806472, 3115241321, 1369987253, 559476391, 1276555259, 334225710, 4004836844, 3652987422, 3034399775, 3124709684, 2866306515, 3576490969, 154357336, 3989881536, 3720882394, 4077070344, 1394157010, 230666276, 3857376857, 2879919603, 3662074711, 371319992, 66374688, 1441644623, 2837205194, 3693208638, 3192369623, 4015185895, 539865843, 3004450087, 421963828, 4224167683, 582790417, 1174666770, 3325808089, 1003812882, 3135305284, 1071446870, 648528060, 2972322121, 1174193239, 3124214221, 3041661910, 1038474202, 1357099594, 3475683326, 232661071, 4173282887, 3690272344, 3438500394, 1542959535, 1276818176, 3085652298, 4258863275, 4265279012, 4121601787, 4194245082, 653198388, 4240559060, 1263019498, 36262882, 540284850, 3307658460, 1125975303, 1058060953, 2952588259, 3843883012, 3223431667, 1342778669, 3594924625, 1000877138, 4028157133, 844149672, 4126728031, 1339290939, 52478929, 3318988031, 549975497, 955263794, 37882545, 166679816, 1102520113}, + {3859885353, 4195439060, 56343798, 17783338, 1641241929, 3300726852, 3253214924, 3940693782, 61467982, 3503272480, 4222614976, 953477424, 799916835, 3058875117, 4179010855, 3487014163, 1112065813, 420938217, 1427437497, 550559684, 3956620721, 675457565, 4198581801, 1087625943, 95047729, 2779859709, 4283676450, 757484263, 3730035148, 3153147601, 3389219243, 3064581825, 131193923, 1175067641, 1474036258, 1673551557, 3141077178, 743307227, 4115029980, 1078924716, 960316971, 3806802089, 4160331981, 233617407, 4060165449, 3283339505, 1598342673, 3423384017, 717574070, 759751349, 3484699964, 632628544, 893264696, 1440169528, 68091122, 753872380, 551803131, 3198560705, 1258842034, 4006746190, 507039319, 532277033, 757586646, 332530449, 54856707, 1338769186, 4023381721, 2639162, 4273713958, 229303340, 1220818184, 740759114, 609932365, 4105191228, 2987247643, 2930328035, 213643010, 1479013586, 436620566, 3361294108, 957434185, 329967373, 2985249990, 1075854757, 1480386102, 2786610716, 1194483410, 498916024, 2916014848, 1207186628, 1397880339, 81151987, 3876018927, 4273745978, 1593633846, 3535215053, 3654538840, 1627477848, 3820345545, 2712008680, 3772469694, 567752130, 3033815309, 3371023141, 866916275, 3686160806, 3839276471, 566898396, 3386815048, 3409059822, 840168408, 3135976652, 3574871532, 263701520, 1239990714, 316158013, 3273281208, 3875787257, 4158519366, 3595242168, 3972415997, 1094672319, 3677291246, 718667312, 3639425590, 3511271859, 3341984304, 3030969255}, + {3529907654, 4194585157, 303415897, 3259505327, 1187657771, 1596787139, 921331247, 376421972, 3125010765, 4278206956, 3937233143, 3973234661, 2916989263, 4228993722, 3595087134, 650644004, 4244302345, 135004370, 3260278966, 81546430, 2620640481, 4042870850, 3861134803, 556407477, 531084203, 3225928206, 854536711, 1574250466, 442059760, 3938904131, 3738437713, 1742022714, 131688642, 3258668716, 56813773, 3913270277, 1295044551, 4263166012, 961617737, 3539387316, 3654009091, 1004887327, 1849026044, 1744028123, 3070625977, 3939049737, 3930254624, 3527990307, 1023041759, 2718771957, 248991728, 1408683721, 1069988597, 2669527826, 404702768, 1631178989, 3286313478, 63224642, 673578758, 487479988, 752209614, 2683915092, 3501517575, 3357085725, 3505728951, 3910644726, 3426568465, 908058538, 1463929921, 2883724793, 2666261024, 1566025820, 3427929174, 3875093773, 1623194087, 741557551, 375908845, 3176358989, 3979336766, 436013233, 1307126007, 3289402840, 123925329, 79227871, 3995460876, 401823268, 1110172194, 883636673, 3152672499, 4122140429, 2868459559, 3879850525, 1214253650, 3367748031, 721302307, 653545191, 1293537291, 988333578, 3907244539, 3119034719, 3973333796, 3456324804, 2721255505, 943661506, 2849441837, 223203767, 3803387158, 3406570406, 1549719338, 3541971274, 1413202186, 3624092991, 3490390558, 4093840817, 4014790489, 906229070, 4107204875, 247875392, 1981456144, 793697370, 2546327744, 568999976, 4292557275, 447267924, 722470480, 3837590778, 867970622, 4026082038}, + {2629301559, 4266788574, 3070236167, 515841542, 721236485, 3504646641, 939189455, 1163379249, 3779446466, 3724478774, 1558488902, 3573624090, 154142449, 255869618, 4096383681, 1277739345, 725338294, 4007731759, 3192577979, 4175123991, 503494076, 521788144, 3806188368, 4222529098, 381280789, 1293488288, 3974841338, 3305384439, 2615987512, 686139100, 446605807, 286700856, 903146250, 3738028269, 2661927251, 3675039824, 3712424974, 842078296, 450111206, 985189843, 3818446250, 523182004, 4023826774, 3261342949, 2548044465, 3175690473, 3292008804, 2610832137, 4139436017, 622014927, 458953949, 4294055493, 3433088713, 803349252, 1156261172, 1255561454, 3302401760, 3746092320, 301919488, 4056093880, 3878013892, 199031995, 3561705488, 723592622, 238685501, 3730098921, 3302029597, 1158740571, 138150442, 3969776475, 2900352747, 856735072, 3135113982, 45884387, 4147775963, 4215717387, 902570174, 3946648035, 533050343, 12774477, 653704742, 597488650, 165757422, 727846491, 3728033996, 3191815644, 232214505, 895606065, 71120907, 98550773, 2838767700, 1186783540, 4188910318, 3625961709, 820298012, 1109715497, 3909594846, 4272365547, 3846905110, 820948933, 364954186, 1537952799, 826293767, 4265400814, 46121730, 3644656928, 653537000, 3619632238, 4132848446, 3588149553, 3306230282, 972075261, 1008152153, 1459153425, 3351108379, 2819036675, 3808309557, 2897259768, 3405232965, 691652829, 3640129836, 149278819, 199710815, 827740345, 3712090331, 237177594, 3321419286, 482352091}, + {3176854308, 985776077, 828236861, 3705057712, 134358489, 3742319417, 3401176265, 4243001800, 4226806556, 438133742, 3234471392, 1834460184, 3758151453, 549338332, 3863948248, 756751931, 1093394740, 3423357687, 551729834, 3103660719, 3660532552, 3354393432, 2783573289, 1188477009, 3070877423, 516048688, 3285071363, 666771458, 1739312848, 788641031, 1241006637, 503462975, 34938572, 3493937070, 4227736299, 4124036615, 434578615, 3225218600, 3512815131, 3190110452, 218498274, 553255134, 4160213800, 3277449017, 973412429, 1691414350, 1697843172, 1414144553, 520601378, 1916207945, 306636504, 3306411092, 13819895, 3938957783, 1511309468, 273276425, 623769109, 4242915172, 783166513, 3585403397, 1789916613, 1692651467, 4154919207, 1061022514, 3804241122, 540432557, 4138155331, 263260384, 1107750324, 616229316, 1867386328, 3636220708, 299421758, 316258750, 3627932667, 1338093332, 1965815033, 305266494, 3947382322, 4206757642, 14557428, 3074298609, 1019656413, 220086041, 3067413485, 3357620806, 1918380862, 977291990, 250015445, 3657565949, 1140068020, 3760041018, 1224328362, 3944068810, 1408893276, 1615121132, 703807284, 3864843537, 3511968426, 2940526824, 302794721, 1320152250, 3068337955, 4021468185, 1391271371, 858391322, 3282581592, 4037104092, 825490615, 3724288063, 4250801702, 3831641606, 272487742, 415962041, 1531169091, 3489052618, 3239308345, 537532679, 3894894024, 1995524619, 350673473, 1742609093, 4139390389, 1394300343, 1241194441, 456793092, 3251899162, 3378527824}, + {825604849, 4024906810, 254087959, 254596435, 615763274, 1037645271, 3187724761, 2685687203, 1021564983, 131610157, 1095943949, 3571077424, 303328777, 151656034, 3408914518, 3887683645, 3223387125, 164889325, 62599707, 3451245311, 955247806, 323344276, 2832848655, 1419684197, 1026358436, 791408738, 3156075277, 49529022, 3236504628, 448771919, 1481574589, 1357980521, 1335614252, 1676717296, 1599229037, 852964163, 4095454014, 4089001412, 637815306, 3141256347, 3870932185, 739896814, 4279872309, 3711423783, 3407807827, 3975409374, 1338659918, 17380039, 765385636, 1608270802, 35342354, 3807363131, 811609034, 1342053121, 3468494158, 825696457, 3369608174, 3042299417, 3338132935, 449687000, 3979356785, 1061502571, 435859475, 737693445, 3172935504, 215227830, 4189251124, 651958563, 1611661564, 3455969870, 1091814349, 4115600114, 3923843266, 3384595498, 1186932415, 52678479, 1119236639, 1054009638, 3638210522, 1101815505, 3159878725, 1727003888, 3621526504, 2652729067, 3776600740, 3367959535, 1470973281, 1311036645, 3805591117, 3376765746, 3257671658, 3303160728, 739500631, 1527323727, 438579256, 1123869190, 2731360817, 586923835, 200477378, 4165159432, 156843504, 337033301, 380428617, 1111959642, 3014468366, 1002198331, 289951175, 942513693, 3415886396, 4026544955, 3594039974, 2561149003, 3828812239, 539580509, 1460802639, 4255791095, 3625162, 3788786639, 1160703545, 3039118712, 3960031782, 61328367, 1295312725, 666448043, 1511511362, 973486508, 583921087, 1354367285}, + {954809807, 3269574388, 203690262, 3191193625, 3085946071, 3629493500, 1187313674, 790745898, 1220721748, 3725020625, 876504026, 1105506626, 1155603956, 3524862535, 1242681343, 2887559126, 307745087, 223807916, 3877652565, 3087024823, 170658546, 755642451, 4089375910, 4144362444, 149804122, 4277875003, 83935280, 298976564, 1656426211, 904315163, 3991414438, 3208852686, 423447992, 3439721280, 873918746, 3166056986, 338700592, 3594328668, 280816890, 1363329006, 128892658, 3335840944, 137429305, 1305785611, 790040006, 3746187181, 959623124, 249808290, 1574050099, 190249531, 1457699663, 3505141724, 1380002135, 1144602049, 415037390, 1557908388, 10961335, 3855544652, 1371776302, 3073394436, 1055403291, 1345702399, 3685077690, 1624422386, 330674989, 4198487731, 1204358345, 638594024, 1339639988, 1118753475, 3692967409, 3053524719, 3438337618, 1476216096, 3070187328, 1599187953, 3152290128, 833758184, 1323586580, 3492071894, 84070617, 4249664741, 3569466318, 1411692267, 3756242620, 1588979489, 387931593, 374514869, 886756144, 3467060918, 2985806504, 3854582828, 3240676354, 3862295847, 1447694889, 1505831187, 4160144693, 3223957333, 366141723, 3829119577, 1197154808, 338302438, 3184142326, 3637299442, 1005184332, 841267217, 783571227, 1537985329, 3847497540, 2869088946, 921742764, 686890295, 3879275300, 824555327, 3284277955, 4172594378, 605815878, 1487417787, 3922073561, 975109811, 3266433597, 3711246925, 3451441337, 3796114493, 279948031, 651801383, 3595243531, 3371156787}, + {1509504421, 3860196142, 2738419203, 2746594547, 1473574931, 3236282104, 3502820880, 3436976604, 4040564247, 1056699352, 3740808265, 1424564205, 3909953789, 2783557847, 3643805681, 147972645, 4143769567, 4161937927, 3842491884, 198304556, 4156773844, 588186395, 1104459840, 3570206797, 3267939794, 3822201933, 2746299, 855785412, 5366245, 3006852790, 3825721657, 3756983589, 1491804153, 978931718, 1391786311, 1004196681, 184112428, 3451893702, 3141937844, 3989912043, 741538509, 4177919764, 404337182, 118258, 1126621968, 3368546640, 2769426664, 1124718819, 1209080771, 3539545638, 836755458, 922069174, 3854495292, 3721581224, 84952809, 3943096310, 3218354978, 4261365915, 3243454642, 3710263526, 2988310967, 230565715, 4007974433, 3155301047, 770770662, 3410946893, 956254397, 114179886, 641774357, 4082358523, 1378871569, 106182309, 3054783936, 1309676786, 3759544335, 1489132040, 1260731433, 1224664120, 86372842, 484026045, 369364976, 3993371188, 3358307602, 3340938217, 1362892553, 2901089741, 3870095169, 417935265, 3437024838, 4278468901, 1054541999, 705435457, 1043749040, 3505170418, 3100164530, 900862250, 775806193, 3794450640, 3474989822, 256502353, 2836136774, 973739886, 876032480, 419302650, 3157511145, 3703778475, 3719052616, 3502374119, 687170343, 4208012861, 3411276092, 3373089589, 3189326572, 419766008, 3022589277, 3321048112, 4115680428, 3275282703, 218302409, 3004903526, 799410491, 1223472675, 2873381102, 1491008350, 508054080, 3738216103, 3226338341, 3937227078}, + {970522019, 4149663540, 80101920, 3810975243, 4088509162, 3524726336, 482533412, 3338876401, 3392807449, 1071194057, 1145159583, 204380969, 2889484998, 82776066, 3803121206, 3685940004, 3642998557, 665411093, 121984999, 3166941498, 3478133221, 1692724523, 184366398, 1241320131, 589712079, 4166062161, 3830914598, 3039088986, 1192487255, 3744715481, 3293555894, 1017457355, 4274737412, 3689469161, 1242544981, 1026076945, 4143897920, 240388640, 3735404245, 316391460, 625934831, 859957588, 139354622, 1040906950, 223420198, 170568969, 3203221246, 1185409974, 1621518045, 288728593, 769536091, 2904735943, 925575098, 3271562699, 2847101259, 977723453, 3423030700, 3993596339, 3473417415, 240971557, 4179279575, 3571107850, 1410453009, 3669161411, 1310918490, 217974335, 334446083, 1595922658, 3217884130, 977392703, 1171791062, 674878199, 3049186986, 1510132517, 1021471928, 1177969356, 3494760118, 4281485502, 3453677063, 198442447, 3107193700, 838716850, 3718137065, 1174324023, 4013999122, 79090734, 3353886492, 2919583053, 3303682472, 4196611278, 3638140875, 1557386248, 3207805735, 719825630, 156236114, 298328611, 3629825059, 891088391, 3753138384, 3862512039, 3979538955, 3528847093, 3316269074, 973518273, 3015439686, 3826584762, 1190998525, 152326955, 49072295, 2554835225, 1398234859, 4027970142, 4173317945, 4245110734, 1239301869, 2867271594, 935151962, 134436079, 281071395, 2697245731, 551556391, 3627825704, 1537412585, 4157418570, 640682680, 1045574621, 4126659629, 470013132}, + {1639914231, 2984712270, 3158617930, 3037780005, 3208065096, 3956875868, 1633084445, 3219017275, 3491101158, 3058110112, 1355499054, 771234099, 2862787632, 2847153501, 2834933414, 31910709, 3036739156, 3510691124, 1579135947, 3087338535, 2917511675, 359842268, 3875722438, 372092860, 173156794, 3858235331, 1378477287, 588837650, 953291296, 1373238027, 249092082, 1154022726, 3357554216, 700649473, 685129409, 475062257, 550639142, 3150797343, 1079108071, 686709009, 2947367237, 3072649009, 1060634580, 3037216533, 172158750, 130691584, 3663024972, 1258961938, 575615398, 658881459, 3892626090, 3344479984, 1357529253, 1004870578, 3624121834, 148369154, 3476042498, 372813887, 891994874, 1279259219, 1464596060, 266008825, 4128656914, 3672329466, 3143352281, 3826786965, 4195132194, 3777353780, 307606831, 234149458, 2901145328, 624385104, 419418282, 1278473174, 1575833364, 2976054742, 4040554208, 1341600727, 1624618084, 138488235, 3033157086, 20402115, 1588936701, 4274908145, 98093570, 1392763435, 290605914, 467192835, 618332850, 3830716732, 3896639765, 3926857533, 3156233216, 3000294969, 3372871360, 3813848318, 2856929772, 1494961623, 4232898030, 2975328423, 490802225, 3152152327, 417930252, 3368137439, 532606488, 3082071352, 1007152291, 3307681627, 822154992, 4281791421, 1399000298, 396423930, 2941973549, 3807821386, 2771336466, 1205206294, 638201627, 1141551193, 1778099218, 386988099, 265160101, 841066273, 4022227893, 3489586940, 3618423781, 606670342, 4260887278, 3224317648}, + {2987512598, 1547976416, 783143757, 234364155, 844636969, 3731469134, 650470921, 3271758550, 131973978, 3534363156, 3912915776, 3442469622, 2653639008, 3356500213, 2836008914, 289611616, 4194702054, 4240831315, 1395404032, 4130910171, 3725774515, 4114147329, 129186147, 3658531510, 860370992, 3073695478, 967696441, 824311109, 4180481786, 3092587050, 1226834865, 4097701103, 337067712, 4248158453, 3658239671, 1018043914, 943052777, 20395245, 1018299398, 103601924, 3835913282, 1373035259, 3237686829, 202313258, 53819202, 1296757942, 1589175285, 1003500006, 1312286038, 1179540255, 3299537641, 850399932, 1272768070, 3538294435, 4232585015, 373023673, 951957962, 3267887716, 554452430, 3623966534, 3366170635, 4020676644, 3568881689, 498719436, 69619620, 253954596, 1542041047, 87739577, 196399907, 1479069158, 1139284488, 1387319550, 820641954, 3118640076, 4247835888, 651441325, 4075276216, 353033736, 1222690547, 166146567, 641077535, 1225843941, 1460751583, 975689582, 2869500351, 2802583735, 1339098891, 3695765222, 2802733398, 1645272618, 1222202591, 4193822723, 4279881504, 1448393163, 3992072027, 349262557, 65418185, 4266877715, 3390958689, 254494481, 601345569, 348936140, 759764757, 273084449, 716444112, 98975047, 296541248, 2863216733, 1009923925, 3838848769, 1362580458, 958513737, 3254529036, 3577820487, 2935362349, 917886190, 3757718481, 366799381, 520087053, 131550697, 194958027, 238079657, 1409176026, 3579445556, 1243956537, 3234317593, 339201974, 3337998028}, + {1422379449, 3425421305, 720942644, 271852085, 3038058197, 954450455, 3904418815, 4149214013, 3707812134, 106093565, 3980572335, 483326636, 2561151420, 438314179, 1441907942, 1162171607, 4239087924, 1213249535, 3926062299, 618798415, 707907237, 3048341781, 349779198, 3438937632, 498124594, 4113713941, 2931533221, 198192825, 1202198237, 3637160237, 2882097340, 1055973084, 1378723368, 3693031761, 3284537790, 1126498387, 4071609780, 2898186497, 3603949653, 1565310773, 3956933678, 4198476357, 609548889, 376119055, 823048383, 3893365474, 3724545883, 3243387729, 3931779611, 2722618603, 1072567318, 992034216, 3859404454, 1089193512, 574232000, 570577138, 3760986606, 3120280878, 551373642, 937168874, 3352050908, 465173559, 186650832, 3755077424, 3870566883, 3570475176, 1263131817, 3473533949, 365555381, 2955280901, 1213707286, 1397245386, 1255022147, 726639887, 3469915174, 2990284761, 1211717559, 1513901831, 1207552444, 3963758664, 1790292916, 674503608, 3886957905, 755087928, 3132487910, 3931581887, 85524491, 3033843641, 3031303097, 2554123807, 575996661, 3725720782, 3022136485, 3590333752, 3069777337, 1554386354, 857325102, 70144201, 364566250, 4163905275, 162944212, 27724239, 1023521363, 1103167398, 3980541954, 205973670, 483280139, 802154076, 1355892749, 523433993, 253031651, 3138672088, 2941651286, 4165252928, 3922530893, 1439514188, 1157096136, 3685039065, 3337230272, 957368781, 989122629, 4065437700, 1189419551, 3654749751, 3408708061, 186308576, 3980244164, 3504871092}, + {436880377, 3590112597, 1158217445, 508485163, 4125798901, 4258733802, 3905098834, 4021599957, 4024292347, 666503890, 2986619125, 3307995116, 449491172, 3692348896, 741595126, 1361189064, 4023046475, 1395763791, 726998991, 4292214051, 1361686029, 3249192733, 3425610803, 3575847741, 3017608698, 464851986, 145482520, 3405698034, 1221003012, 389436928, 2880246285, 687828003, 1129130544, 1373748180, 3940944042, 968886947, 4250554058, 675422142, 3304994076, 3769523403, 1229122773, 450228248, 4294767645, 3226652472, 967782560, 3360109284, 3458880430, 892122114, 3268096516, 707995425, 3887205432, 1145182898, 271467439, 3554502200, 3149219775, 4078188729, 3473682969, 1196859676, 4090122185, 1388262855, 3989847055, 3370182405, 222286901, 491629481, 4842051, 1242887705, 1388571584, 1076968087, 928039705, 1239882743, 1025655492, 499170079, 573186837, 3880205143, 656236205, 1307765315, 2952058549, 280190390, 16731924, 152420141, 3069985775, 301200443, 3659812817, 1437130469, 190264388, 3611149067, 2795847224, 3708882193, 4055898383, 33678600, 719271866, 3588299805, 2780379160, 3761318208, 3790056200, 3468951071, 924045782, 3762228680, 271101444, 1153451024, 702370886, 2830708198, 403120312, 1347080666, 1422260750, 3425350080, 3551085231, 229912573, 4009444509, 349594456, 922507969, 702931362, 2857056573, 147504464, 3201115103, 1280571173, 2957111981, 11715394, 454674516, 3202545720, 1254072872, 458234885, 4224035509, 842934740, 3081493992, 3948201022, 397430261, 336224573}, + {1523959621, 555200288, 3679538778, 4238821201, 2802502733, 3983713964, 3606906137, 1414987982, 952197897, 3439312405, 1246667567, 1387775485, 969795365, 1203681071, 3157110694, 2892645682, 1068171968, 1421922890, 520425535, 2796276141, 62138827, 3982038533, 3206608959, 3135424599, 3542994350, 553348647, 758964767, 3826376373, 3418160948, 1206242564, 405943858, 3478771110, 509487930, 354140201, 1328171481, 398007026, 373744310, 1253648361, 137961129, 1279785178, 4271135565, 4163721650, 1071692492, 1484040794, 597776170, 320469282, 1362557659, 355147054, 204869366, 700627929, 1239945707, 733216540, 940748586, 88428574, 1195043772, 3915925002, 1274747645, 3389797313, 3170983419, 3792095271, 3954784469, 3518699721, 1426710589, 3937594447, 253703209, 3284189714, 741601600, 472080808, 3183737254, 1176685746, 807556432, 487070411, 3589682720, 29218815, 3779938550, 3087270342, 4249429933, 2970176514, 3524345922, 3461932481, 3470575059, 3122924829, 625492041, 3042391368, 3020029235, 1271550923, 4239210759, 1507897844, 3670214439, 401660586, 3089625518, 870900501, 2917059870, 3249627582, 3090040348, 3309095624, 423963678, 3054842820, 755382254, 3256934159, 3729994957, 968164084, 3864510692, 3652792801, 807846573, 1539883805, 2937790512, 1190436415, 167252718, 3602263560, 2765495804, 1186933167, 3452122362, 3644869861, 2950170304, 3035973621, 4077864939, 1448673561, 1026826688, 1543007062, 3082697005, 701670866, 1255166271, 4032039740, 2784444706, 839385280, 3878102572, 28234454}, + {1273826547, 639172687, 3155215366, 1087294960, 2991528469, 721632000, 2958053449, 3090868443, 3294645245, 3326739751, 534438428, 4005300276, 3476619194, 4055373784, 568455861, 4230003671, 506982458, 4261413583, 742303238, 3252348971, 3359511607, 4246730986, 198436649, 2906475803, 2848770561, 655754295, 699467441, 3587259398, 4047456013, 873871126, 3894859580, 3307346470, 855860406, 3006354634, 401021641, 167980070, 4090811938, 889766484, 3144282152, 3911137215, 1182128687, 3159119868, 1051147958, 671275022, 1347682782, 3260898732, 129646922, 1306790380, 1578979650, 3020678715, 87573574, 850050077, 1044625385, 509474515, 4184229312, 44658872, 3623484596, 3997367324, 783757263, 1457641278, 3125226986, 538555396, 2842011698, 1246415968, 196689507, 3620170168, 1455874998, 1297624878, 1169421031, 3290479617, 122744798, 706171094, 3626692632, 1348272351, 66191128, 1543684013, 3653158396, 475552193, 938124979, 3383910726, 3477670121, 195886628, 2090990, 1463867742, 738915074, 1338527687, 3169606597, 4214946760, 3048859839, 31442150, 3647120941, 3710381142, 531899708, 953439498, 3994434735, 3021058632, 3047423286, 4214086706, 3763415518, 4014387979, 150335750, 319800653, 3238970937, 4213587424, 1562779418, 3256482844, 3573615579, 3958266290, 3355311311, 551030215, 531488338, 676159326, 1280448934, 3217206973, 3025682683, 1389697458, 610481208, 3270315014, 1024936898, 2801862642, 2924426069, 1449193431, 2975819986, 2948578753, 3525831905, 291496417, 4129615062, 373748434}, + {639232838, 156151878, 1120861734, 1796529982, 2941826844, 179248419, 1238414809, 869321, 4010452236, 1438836649, 601891135, 3827021140, 3442145107, 635433453, 356066771, 3436261316, 1612332966, 723069384, 786382416, 4163486248, 3422615841, 3150525173, 368912465, 335918153, 3638882524, 383566105, 3639291433, 3912562347, 601485392, 3881028866, 67491515, 1226091439, 3706783957, 1001706017, 3909299673, 447862777, 3240141133, 1045172314, 1799162625, 782618332, 705876142, 771296688, 3793086744, 487839151, 424411730, 673262349, 3305129500, 3290045689, 3859098865, 3915120410, 148323850, 3787149994, 3719868962, 3174688699, 1345193728, 4205923280, 3696952841, 3561816147, 839432532, 3852853183, 1208653539, 4290361842, 4075035623, 719441329, 1479864023, 3152874753, 2966641151, 856902989, 505663170, 1377999050, 937033043, 4161389368, 1202967336, 3877548226, 282580160, 1027165407, 604221691, 223669555, 4189245691, 3777485553, 3943449799, 4183421931, 4056229585, 4112244720, 1379648258, 1140479059, 273040664, 2771390447, 805104648, 649592906, 820645311, 1071313581, 1029184780, 3269666021, 4059680292, 390582816, 3775979494, 772990039, 555031040, 440729644, 440450643, 3624600376, 3252044857, 839763504, 572781794, 1005263163, 3133402684, 1018245059, 4158197164, 4026992358, 1235634231, 770003478, 4255950527, 1262176253, 1341732521, 3959882226, 3858087983, 536213298, 844230126, 354216123, 3924808952, 3167349264, 3892452799, 4179863221, 534330684, 2730232554, 968166157, 333848659} +}; + +static const int F9[32][3][3] = { + { + {180722140, 4213795093, 837574410}, + {1331996492, 3019007919, 3577744330}, + {1799220950, 36117778, 3132120262} + }, + { + {3886877183, 206935531, 786446186}, + {2770212123, 1865887307, 1289047975}, + {2776108540, 841424418, 2090611737} + }, + { + {2567562134, 1714484647, 1159881183}, + {1862821795, 1759358569, 3894962398}, + {2742634805, 839425041, 5314256} + }, + { + {625814612, 1573387267, 301965325}, + {4030817977, 1873075319, 3634829831}, + {3377713039, 3960190579, 492243986} + }, + { + {1475552264, 1146851566, 1877617646}, + {2934989980, 4021140137, 3164920851}, + {2008630331, 1271272971, 2447621521} + }, + { + {487617455, 3324648237, 3885318005}, + {1935356515, 809434595, 1408868563}, + {1152998455, 1137260381, 1013699237} + }, + { + {64186346, 1612012991, 3811517364}, + {585915948, 4033815252, 1040303230}, + {3734017321, 1745545918, 4179794630} + }, + { + {1725699899, 1221878943, 3738529166}, + {877171555, 728609745, 1750522636}, + {1592190233, 4067374371, 2741230948} + }, + { + {2631922464, 3788661197, 1530615359}, + {157623453, 515732308, 1646019774}, + {3204898846, 2293754805, 1094889061} + }, + { + {900038567, 3225958147, 197707288}, + {1190414347, 335631006, 523793831}, + {402066059, 1567006486, 1861691} + }, + { + {2323463360, 2631342748, 1840989118}, + {559636840, 2400635403, 1033123376}, + {2895746596, 3323112658, 3444642324} + }, + { + {1842475204, 3608796996, 3410709068}, + {3283753311, 3827239140, 3619167380}, + {3988835785, 1702218893, 1779068699} + }, + { + {1380359560, 3228099507, 741593526}, + {1111942848, 1483270995, 4206534319}, + {1976002387, 3891226472, 355644531} + }, + { + {4129434648, 3085152277, 969502796}, + {23081520, 339029167, 313001233}, + {1044721492, 1349191776, 2401246298} + }, + { + {2355198944, 3993728718, 456144384}, + {49030635, 1751685415, 3785742336}, + {547567273, 3679761151, 2744084210} + }, + { + {669150202, 2527208996, 1610839386}, + {500279729, 1193174561, 951893810}, + {691116000, 1571348, 930241476} + }, + { + {223936156, 1525413683, 3723217960}, + {1537865125, 3314723894, 2506641805}, + {2383031074, 642639919, 3255419102} + }, + { + {3600942315, 1251994802, 3832897013}, + {3149096137, 717214432, 1461065408}, + {1382821525, 772058035, 3798418995} + }, + { + {3171708267, 1130534098, 400287914}, + {1230576323, 558778281, 3063827480}, + {1928458262, 4080655903, 438352036} + }, + { + {1443667968, 1659719333, 1858785303}, + {3433604266, 3398322726, 2972767815}, + {3036699365, 403831211, 354260731} + }, + { + {1671632436, 1809690307, 2623017989}, + {1611147673, 1868849604, 4215934992}, + {4127174539, 1930298213, 1443964419} + }, + { + {358848811, 1627378686, 702812503}, + {543827001, 3419740497, 2867818783}, + {1737708558, 157598008, 3640437183} + }, + { + {3594171796, 3909481465, 4146649152}, + {2878164215, 1504199987, 994160470}, + {1776690660, 3052244134, 408396877} + }, + { + {3756080576, 1879597556, 660456425}, + {3674000118, 1721293428, 4160515302}, + {2448881488, 1502738467, 4058016452} + }, + { + {1541529647, 2028367257, 3525406175}, + {1374166758, 1258270677, 3691802172}, + {3173080979, 232980386, 2496858448} + }, + { + {863565456, 1449386442, 2732969642}, + {272158261, 247725593, 1982141387}, + {153246705, 1657966137, 3941052942} + }, + { + {1292066543, 3893257929, 3891083159}, + {3272058113, 1547634146, 2403477045}, + {4107616739, 740941454, 675686562} + }, + { + {473067984, 1526395213, 110401334}, + {2483403954, 1354291764, 2617377747}, + {151964854, 3334060712, 3743671288} + }, + { + {3869427958, 3321551583, 1959767086}, + {624497771, 3273001104, 4024296400}, + {506315847, 978614858, 1161875400} + }, + { + {2388742151, 3412179247, 203482808}, + {2319890321, 2482392575, 3731507171}, + {1773696052, 3876173054, 1937166226} + }, + { + {3293631896, 506078934, 856145197}, + {510740819, 1684689937, 2675339631}, + {3006676622, 2705070087, 2866364367} + }, + { + {3367737805, 1173539086, 1171955041}, + {324031297, 3023815244, 2869297039}, + {111305073, 1756698635, 634229588} + } +}; + +static const int F10[64][128] = { + {582495700, 971435805, 1028645905, 3536640430, 1129636084, 188135188, 4074561810, 992299546, 204128229, 1058847666, 296856116, 3030720047, 3625698775, 301792016, 3889754855, 65857823, 1239339939, 3707879652, 3255088678, 925255995, 3427072215, 1125891933, 4225258022, 277692, 1545063144, 3826534949, 1025391094, 3962490357, 1035549247, 1207112677, 4174784046, 167057383, 809494735, 3914134068, 567936584, 3052463649, 3592737980, 967061709, 271579097, 3542580, 718066641, 3341417666, 3358579939, 979166687, 2856629779, 1341380073, 1578830095, 2787983425, 1557841579, 22666227, 4193634105, 4038324720, 285805555, 120308791, 3771749597, 3557992926, 3537438988, 3340691968, 3894522696, 3325448130, 339027236, 94947581, 523884071, 3306818110, 4281818346, 4144056606, 549193639, 1211761917, 3827443029, 4175375050, 1280506304, 890382757, 418391216, 775568578, 3535587820, 633849782, 4197311271, 135075342, 3926720228, 237830661, 1358030759, 1542656034, 3390049810, 3486176515, 1146998352, 351147555, 3204186168, 3253595858, 3653839673, 4702395, 363537148, 423097587, 4611152, 3711420924, 3551667673, 1089199782, 405013838, 3847434441, 3243563460, 4094173020, 2915705785, 114739444, 2858218460, 823778634, 3272785707, 1580707580, 824137702, 2807100748, 2982067219, 869882288, 3159381455, 4196017995, 2932221667, 4205709839, 725806634, 1487729168, 571853357, 434106897, 4228104913, 3184542556, 4291840574, 3571922347, 618930501, 654515974, 364894023, 1152521164, 18196485, 30664110}, + {766056997, 388293898, 4263841037, 4291742715, 887231455, 4246719713, 481559201, 3864472322, 3785745704, 2821549032, 471522381, 2796886543, 1053146534, 3739886101, 1007274675, 3889191928, 3659473978, 1223834900, 3004759247, 3887615836, 3846558658, 1523470652, 3342932400, 841870546, 615302396, 4111287118, 4233647091, 487635195, 3267155726, 1039940098, 3760116286, 2885832953, 2621635796, 4255431876, 3805537560, 3575889583, 1471198181, 3763330550, 3905185766, 2853637294, 1423203616, 1404841707, 1345985768, 2866859276, 4175120972, 4793367, 1377521729, 3542301352, 3423801767, 3270491091, 1340497101, 2990617306, 3337364702, 3779855138, 4010522141, 4160613625, 1490348963, 968440606, 4031644902, 792238583, 3636905427, 3927711246, 241593881, 3663468486, 4025600253, 1337398212, 3057342666, 590466336, 606936781, 1251462976, 506483804, 1059865002, 1607548212, 1293949402, 542924999, 3050914390, 339107363, 86359022, 4150069544, 625198575, 770722260, 4156818145, 3489063765, 1209139936, 1389614766, 1355433300, 237962008, 938422355, 101703981, 3265641175, 88551912, 1447342649, 1339086167, 468048683, 26416857, 4173577418, 1474740029, 3022830523, 3489474725, 2905070543, 4259795890, 3544797883, 451804423, 3041573884, 1538138959, 722674883, 4232597738, 1588105477, 507992315, 707607203, 3376013142, 133757943, 608886273, 656465400, 275369265, 3284812298, 3202693458, 3467866, 1239483607, 851585862, 1293897686, 1273232071, 1359201188, 1025878692, 605803173, 685627379, 4188802822, 3928689894}, + {882057697, 3572871243, 2906319395, 201123419, 1327149237, 3507952936, 786182490, 1145917004, 12395484, 3103974909, 3873724403, 909313217, 3671587508, 79482831, 4161336413, 266623520, 1643881959, 3695585208, 4213382408, 148366142, 635558414, 3036861214, 3239819430, 3572313649, 944382398, 1088859348, 3704227921, 1013657426, 3844680652, 1045150524, 3976871440, 842532888, 3035351970, 4226655698, 1445784252, 2914502314, 3939759923, 389591235, 901508923, 372885514, 4256042784, 4141658318, 3425312215, 113161431, 3193182547, 3052727805, 1558191664, 3743233032, 2916676407, 1188707080, 11385691, 402672359, 2714649396, 703197006, 240519875, 4113232726, 2949381383, 3126533115, 4249243951, 4244064517, 3978219939, 3679058191, 1237366264, 3593466190, 33731033, 131025344, 2904380866, 2981822646, 1380440795, 3117301735, 3864197376, 4230855882, 140444847, 1058743312, 995478503, 417846009, 29643995, 1460333232, 3996929537, 3033055495, 3927555013, 3298634530, 3199464134, 379988504, 3542863834, 449820651, 3760929965, 4263385250, 871873798, 1192645944, 2851189488, 699548223, 918953224, 2769200937, 3138214063, 3674193661, 3470319157, 3407826116, 1591420893, 3300481260, 1461170694, 1248380685, 2821180617, 3864057781, 4073376565, 1239354048, 3047051793, 834926553, 3835319061, 382992069, 438634189, 1494926813, 3753512463, 2987703375, 3060906245, 2894576444, 3853166156, 105273393, 2949722279, 838083394, 535145977, 3353215561, 3043757059, 1426572002, 4131660827, 3501144598, 4291909600, 164635376}, + {2530805959, 1058140609, 284538963, 1576087535, 4294239431, 2913544152, 2923763768, 3088231925, 3585609728, 217237250, 3234920183, 3141102265, 3103077647, 1079569218, 884409124, 3254398933, 1607095769, 1425544891, 2821702394, 3619040931, 4113562788, 3721859365, 3457804744, 1138926317, 1490574842, 3803468238, 30255135, 3469293400, 180943680, 1363172361, 3067918628, 1241234636, 2587090880, 3148506871, 1293231532, 4257934284, 346470837, 1111311695, 782742023, 1158794451, 302180321, 3551079871, 2584217885, 302695926, 3485795532, 3409036541, 805881442, 566640714, 1189499858, 1160854525, 3703053297, 163790309, 3553289239, 218943145, 4181678637, 3925017916, 3751985317, 1356417021, 3763728178, 927933903, 1178880849, 1157831910, 1678794932, 1155189727, 1554627826, 2988894759, 3887160628, 452927947, 3876454192, 3069575084, 619832303, 1454942143, 3222453733, 3198897093, 3558756456, 3894935550, 2915912390, 733126401, 2957052977, 134210588, 3603849771, 119718425, 3654571190, 3958967107, 1122128973, 665388814, 503692770, 1611813209, 2929915315, 1142954684, 887631914, 877605697, 535100384, 951108280, 825014537, 617170105, 206947350, 3780835499, 1344871925, 3670688880, 450310454, 1308870326, 843994284, 1092423319, 2839599812, 4279496492, 364377071, 3459319369, 166269179, 603973857, 430182151, 3022065900, 357291281, 683951420, 3728888609, 3943256349, 591444566, 1187388969, 1255397400, 3299523019, 1119666679, 3323613497, 951243532, 984607564, 138688187, 132127750, 841418555, 505287213}, + {2353860264, 56085290, 71150605, 3559542279, 778881090, 4016452600, 288638450, 2889273065, 960813058, 3640800811, 4005502384, 4060009468, 3241329421, 1119676684, 1559817739, 3669514949, 4261015729, 4267111933, 1322043894, 3121928985, 3892583230, 1264890899, 1245302478, 481883223, 1214721454, 3735268853, 206262766, 3923912632, 2989883328, 1062401838, 1429341701, 3528586928, 3777312448, 420196122, 3803563529, 771498329, 4279580463, 3896255740, 1893576225, 341310775, 437527089, 3476420541, 2950881576, 3441313118, 1474151122, 3753365841, 301751024, 1494237236, 3007343289, 1044459832, 3378204766, 1425355540, 476002022, 1850081231, 824322813, 1549799510, 302255834, 625106119, 372118237, 4216289487, 3910426350, 4166670143, 1559481860, 4259445025, 337169889, 503530764, 2935344356, 2807364916, 1111230672, 1630682974, 102424748, 4109638456, 1708304568, 3756674797, 76962982, 4090899973, 4111996426, 1413699308, 953281329, 1427336277, 3652065100, 3512262628, 3756715805, 958524982, 672947128, 2782356738, 353460165, 699098123, 4022974392, 2887139592, 3703113781, 3387883099, 975943596, 684598466, 2600795169, 3527850459, 3947939931, 888030704, 1891414947, 1102000568, 3493112292, 3612197564, 3728777769, 1070060798, 2906269003, 3254515120, 3377708821, 2753633370, 622399000, 2824671046, 3461608915, 4059978026, 3527979710, 3762242468, 3654462552, 4097418070, 253020693, 736875965, 886062912, 298520107, 3842619463, 4126368789, 1370883126, 149074961, 3704646354, 3441940791, 3319226022, 1365072725}, + {1000924375, 2935053275, 285582805, 3744180753, 1409527815, 2725174970, 1528231891, 2880198900, 1262420017, 3713995704, 417007417, 3874823102, 3895638094, 280882649, 351782695, 4206244437, 652861436, 910170859, 229619008, 1392950756, 482272263, 3889871403, 3494889270, 1017311565, 1778513833, 4207525213, 1527523603, 1447571661, 3405200439, 3378043960, 1782234426, 593287592, 2786217946, 1151659792, 4255789574, 2815969755, 3789806341, 3961640213, 1444428218, 3878940980, 3193636141, 3865317664, 691326236, 1018186735, 887234297, 198632705, 453393603, 353481167, 617356712, 45111716, 3912701969, 2969939687, 1238814638, 4065845571, 198039370, 3964535035, 3658269004, 1544924453, 153165231, 117251274, 1219619307, 994260554, 355532556, 2804740437, 1556068520, 3762087103, 1403169829, 2922240465, 3367609109, 953094857, 3064804618, 522727506, 3995522268, 149180344, 3787204273, 282860349, 3570666752, 2989621669, 3521766440, 928860458, 4240290723, 3879800999, 1370875341, 582217766, 4175344217, 1090903204, 1124357415, 185059008, 1490944288, 3455665582, 4105817860, 600510764, 1544823504, 3904582309, 3190531021, 1021786877, 1405152012, 3106011327, 810950435, 164014080, 1269970138, 1110505261, 1061891000, 955211353, 858056522, 120449282, 1539489311, 3858454823, 2886064828, 786632134, 3954643464, 267513142, 1563694880, 2800491686, 1612770609, 654519480, 891900943, 539274979, 248269399, 136839632, 866951882, 926071831, 3418114492, 408222659, 1573213765, 4047484624, 924051978, 1509604527}, + {538972222, 2750741029, 1348081344, 1007826494, 3704404483, 263502061, 4208834515, 1507648174, 3271757571, 471150539, 263271963, 112505877, 572517102, 536068446, 3088985668, 4164347651, 1358544108, 3188413389, 1359559346, 1224548359, 4065446957, 1491213591, 3051180768, 3969785411, 758536237, 3153448923, 1338688800, 1039545141, 1509212640, 1095091228, 990659380, 3878035623, 3450617099, 1117791299, 3823053655, 333096263, 1593898427, 3200393548, 1112997321, 187581507, 1528433937, 46466653, 787730359, 1162353979, 4059503948, 1554399228, 438323784, 4027366476, 3763293341, 56600894, 2817990459, 254225924, 4293537541, 1078568010, 3353604876, 3808757323, 3124366061, 4129871687, 3791237075, 52168959, 1625294415, 1224758552, 959368938, 4213297915, 667223505, 4029493806, 952021034, 975318467, 331221047, 437145253, 3407109070, 450452780, 800263395, 783407106, 3981100986, 620624042, 3041588816, 917964747, 3539843300, 263445408, 3137994950, 3036098012, 3854739453, 2346510354, 1009797644, 2649549996, 4030801152, 878458090, 726843463, 702532622, 3089564221, 2989053186, 4206368544, 3909366279, 709112093, 787556771, 3759603690, 1311758842, 1039815745, 3826447019, 1605569068, 1927014407, 3763289300, 3157264980, 1494018255, 885671403, 3457421916, 3369647788, 114702582, 4110158255, 4079284683, 894195529, 3059401163, 3387956572, 2783883874, 1498793464, 3310301114, 3324762563, 3081983898, 3494268510, 3611217845, 4130613058, 1610069690, 1311172299, 4249242418, 919857144, 2630923816, 69077184}, + {1111184815, 2888551476, 1110315183, 3872438546, 1463442773, 4014037952, 4029987616, 2787119190, 1153237332, 3714101844, 4072821070, 488988218, 3760911436, 1541780972, 1208795949, 1490869493, 3849858092, 1236341333, 907343103, 3652594906, 569818951, 3217905576, 4062628693, 219218202, 1396066072, 3167632336, 809648945, 614971881, 1509573383, 1245531981, 1286138138, 2754340810, 3876787511, 1472270537, 119545912, 38161198, 4099324237, 3171418320, 3358252860, 4227474920, 4076260075, 757254879, 298503218, 530494657, 1522722760, 3225010693, 1290551739, 3252209196, 1510152875, 1085677784, 3543357489, 3784575899, 3814731473, 3153198109, 1341350357, 3092374307, 766047900, 1427706094, 3090374240, 558510033, 1108625690, 3570605521, 3386266065, 3253014836, 4113948484, 1576342266, 1027989510, 3440760062, 468190156, 338671062, 673722859, 4294952711, 611410845, 3356762924, 170582521, 1328803752, 490056376, 398672054, 3289048248, 2967515972, 3742745610, 1210391193, 1121372659, 3319116076, 4059622423, 2848459933, 923067844, 3102530507, 3679592475, 1130040105, 552590002, 4026162596, 4258768988, 2880198360, 815476698, 3775019041, 556721594, 1386788811, 1567228413, 3822800450, 4243785745, 735246430, 2738826334, 1278850832, 3518510872, 4251003624, 842671914, 2990654716, 1458440196, 4145663280, 3723477951, 4139006700, 1386605535, 537281008, 741032424, 722853464, 3509897801, 1581450717, 873711179, 921700570, 3879981377, 4159187095, 3944349495, 1321744673, 3807053522, 240073127, 2888391119, 3803575358}, + {3756900824, 4206361181, 97932636, 3418803113, 2637184828, 666911436, 518078023, 4048942247, 4099321373, 3753452638, 4173508084, 1726746056, 900868897, 3442134592, 1055780124, 406256956, 1554707211, 726197020, 1370956731, 1020679167, 1478663473, 3190998510, 742280950, 2863126575, 1010368836, 1564651057, 1512349634, 3505899129, 1257970250, 3236232227, 3121994519, 3924110142, 4272569057, 4160289258, 841755703, 4114985030, 363257150, 1193366039, 1488600044, 3325083920, 35000036, 3707833635, 3342191948, 4132031182, 1850666912, 521136905, 1294605283, 2935818296, 1186649792, 416195511, 3988578012, 3495045700, 2939606449, 3805617699, 1363654155, 4088279346, 2667982276, 435344853, 3117420552, 2831665875, 834533202, 1360541398, 302054063, 247810613, 4260027727, 3369615378, 2824517331, 1271243739, 852231503, 449236181, 2577327963, 97721363, 4089721648, 4256996175, 2769816370, 355861725, 2829334792, 3072396638, 523747060, 2951598005, 2933343436, 565291985, 3770410171, 348168416, 854009658, 2767364585, 3489179465, 1322562100, 803361904, 4294055851, 991091412, 484986849, 962325784, 875549731, 3154366490, 3621969882, 453241058, 873215028, 214364226, 4095795234, 1086679060, 3956683508, 233128721, 3634849300, 4097708050, 2856236482, 693628910, 463803902, 969617653, 3100520694, 1347857064, 3106194379, 3216950799, 448313890, 3323648198, 1589951223, 2917254392, 3828361677, 3114543587, 548344567, 853486939, 2495289954, 422244437, 1012682176, 4091673372, 3778850551, 1106111418, 1061855931}, + {312545848, 289881415, 3088389944, 3859852717, 3688428052, 82967079, 3561798717, 3551188239, 296756041, 1626983702, 331998391, 3836024382, 4049287465, 4043642031, 3877951943, 3672919087, 3726203081, 2880687366, 568766454, 2855992273, 943848772, 3185112656, 1521574466, 708451764, 3941414880, 1224582679, 3824115434, 734486584, 877488604, 3389060792, 3034146735, 3814573337, 3526677039, 3236896506, 121748162, 3560312900, 3217107213, 1575624363, 1303915694, 81325868, 1085466697, 3846899157, 4029076403, 1101790008, 431298008, 3595688418, 1289878286, 4047283721, 571467579, 3692216627, 1177822889, 3120693443, 2890011725, 441214648, 692841482, 1648582425, 3122214177, 351484965, 430455218, 3057682416, 2985373659, 314033170, 1191694553, 4038645726, 3106750458, 2670214951, 3184915268, 1078352122, 3771387560, 1598679473, 1011800231, 4196642007, 1118456145, 3622771178, 483531970, 1089457661, 3908246986, 1076172629, 156849659, 1256318653, 3507811358, 62782946, 3235920207, 222933797, 173263648, 153396259, 3037138135, 1676285275, 3411264231, 540171595, 3359132688, 182589000, 1432210138, 3593818861, 3115797823, 3692994808, 302204663, 2972187572, 480406546, 332609791, 788007348, 806476255, 1076888577, 1153746698, 1194975221, 190463834, 53196006, 3735100098, 231517021, 978655507, 1357530389, 1499276516, 993445551, 3789211825, 63234282, 4138661648, 4216782773, 1001087564, 3509311021, 39009098, 857712435, 3456056087, 1255601474, 3809273762, 252297709, 28623826, 956861933, 340114107}, + {3426756589, 3755531423, 280047828, 384505809, 1260455954, 115468198, 3837966836, 908087242, 894704942, 336349243, 1610019491, 4129802493, 3120907972, 2851000234, 3307932740, 3324583940, 688630500, 1256724000, 3937412387, 2900242606, 1409656329, 3492964619, 1221182278, 1504772913, 649846539, 1526649259, 3037669167, 1023625449, 416488244, 4279494699, 3623039018, 3603185097, 3957458033, 2687809512, 1673400549, 3836564000, 968752888, 3444788632, 3070572006, 498684138, 855265996, 3105407007, 1512848999, 534465084, 3299405293, 3907379448, 1514520900, 1549446635, 1571414821, 3856870170, 200411976, 270908691, 1247330139, 3556008419, 453520700, 3660065019, 3607575856, 3259540977, 3920869601, 3172578762, 601698239, 257466650, 3290293871, 3306991044, 1063043537, 3135968013, 3964800956, 3891012586, 380938381, 1648295240, 3134342364, 3477125149, 185205450, 1606688780, 3905811694, 1325026317, 4096785867, 935107894, 4139641854, 234789941, 439883074, 4112037979, 346177300, 791351880, 649513968, 1420339499, 66517029, 1631177309, 3872069892, 653913686, 1665485483, 3411494672, 3625054029, 4242360281, 2871654845, 3669703977, 1223376596, 3770218912, 295643218, 1120336405, 1125058810, 3803435200, 4247177257, 1337028910, 185848270, 1406208166, 833200095, 1782180609, 3375874815, 1007164671, 633073728, 2856997815, 3366708950, 626476209, 353037314, 1377621021, 1052034330, 1294586344, 3777616198, 4088965437, 3199157513, 4182130382, 389420057, 3776162231, 19602746, 464589395, 708027136, 821931692}, + {3308604909, 170058431, 960646386, 1090521578, 1880378424, 3216175055, 856822515, 584452165, 2748854599, 3838833091, 3628664646, 1174555968, 4014089813, 614597298, 1575931373, 4023711923, 1458553274, 3239056074, 977719590, 3911981884, 374910419, 499406789, 4292750008, 451329736, 788475327, 3503890162, 450513203, 1277487402, 916974009, 4021601864, 623269135, 3004239571, 3740395218, 2863616591, 1659622476, 4047051, 3289050189, 2919892982, 3290089705, 958742976, 3689477727, 2219231822, 3459996351, 356256616, 654524838, 1225785654, 1325977031, 3477452061, 1355176245, 3231997118, 4009223457, 590999366, 1238174728, 2990607353, 1174123758, 257546840, 439795699, 190386221, 748823801, 433187001, 3618780688, 785573054, 3368501745, 3810265902, 3408516354, 3639233775, 3075980805, 2989286727, 314428995, 3655808764, 1488646829, 3745715144, 3215635424, 1237038838, 4108200260, 4210553867, 3709862197, 3847696835, 4009630130, 1303659548, 112765760, 3539575592, 3610005978, 3101427776, 568011975, 789963933, 436225723, 405407419, 173821635, 3258328506, 3584308279, 1542460860, 3477736458, 1344623572, 18335042, 516144430, 1492076295, 1492471001, 4026324317, 4141788583, 800736555, 151279086, 4064028922, 433005047, 3140548817, 987184207, 3992147230, 4205226908, 3277273836, 1288171507, 1010889770, 4014165323, 1056635190, 3394755007, 3703854503, 1355726650, 1409612195, 3659265035, 603721808, 822036681, 273733597, 1699107321, 3642224922, 928764883, 3440384340, 1037485554, 149416499, 3828173047}, + {266219457, 4128325926, 705705482, 2997283274, 285002242, 235290059, 3993416158, 3276804580, 1042355507, 4009354821, 894653925, 2790767923, 1613035846, 799540251, 1834368300, 1252763106, 559432240, 1555671314, 133426379, 254556450, 1623067153, 3133513321, 3577015371, 1321276189, 1774401561, 3420039194, 535536108, 1432932807, 3996972012, 4038593714, 939086513, 786446576, 3472004385, 1296320291, 318128402, 182135129, 692374454, 466802990, 1374993676, 3355157796, 505080754, 83806977, 757713857, 1208367159, 4229362923, 1286623582, 1648212770, 2804264726, 1261548580, 381038899, 1389507794, 3383352309, 1591148083, 1625201370, 1281042635, 3173571061, 3472299035, 95535851, 3293794584, 3371914564, 4028385078, 816311498, 39440136, 1009523016, 223208619, 1604827706, 3735937210, 1875690051, 100183564, 1002112029, 3067796990, 2937407318, 804970073, 1612451871, 282605254, 11983284, 3972118112, 83238484, 1314055886, 1293865196, 336831430, 1643457047, 1370243542, 3722626332, 4111441461, 1465211084, 4223252525, 1528439075, 1506286356, 153226588, 605468996, 1389686217, 1027815006, 2783507658, 2745961192, 3561207014, 3252946106, 3015980516, 3345344935, 2992507404, 659007987, 2531903661, 4155550555, 4264493356, 281888071, 3207256282, 608499659, 788208866, 852316452, 741888425, 267923651, 3577204016, 3322783296, 751628199, 2583300802, 616422108, 404764624, 270154655, 1572059396, 4142475942, 1824673293, 589319224, 1860060430, 3103267921, 268721692, 4040810309, 1106379330, 111285471}, + {3911051240, 354287161, 290806693, 3157700552, 3752072746, 619589679, 3319779884, 3738513872, 3492736856, 1087183424, 3041286341, 2722179021, 2730165772, 547821127, 523631988, 3457341877, 330347186, 935050517, 520229302, 1361655770, 575581233, 298058742, 4089983069, 249212486, 200271405, 215435218, 3020948645, 4243117438, 2791038565, 1493194242, 524671802, 3301955016, 1096230145, 3166048166, 3309678804, 3399671552, 2917017874, 1396965867, 3491999208, 2913480004, 3440396625, 3931515530, 3803593250, 3306226672, 553256250, 900923945, 3624579158, 303694641, 4089569306, 2753701440, 4057551911, 3574280902, 3606071051, 2788294661, 3963663295, 448813795, 3660515949, 1063104238, 4199755850, 514397352, 415740664, 1023804154, 3504127873, 3572246252, 869655320, 750831304, 222560717, 3787982328, 16526558, 2749062462, 3940631255, 119486171, 1028441175, 718862282, 32176416, 2940357836, 1575986794, 3674252622, 4104713490, 539449886, 609855451, 2833063091, 3738156583, 1572093746, 3151807734, 170504745, 920401688, 4039396865, 4107519026, 3058557900, 3525628678, 3204113180, 4192477018, 3775906388, 1156115410, 2953424205, 632216438, 3142968055, 3105104591, 3662215824, 299508998, 128790351, 2807583810, 3977558230, 726577908, 1397149648, 4159955742, 3908550117, 1006648124, 1296319487, 659489220, 1448171722, 3156651025, 1448365320, 1297594158, 4074229490, 3996862640, 4157070065, 566080576, 1331310914, 219229260, 3031573271, 3087448942, 621192652, 4045856432, 3268296233, 1103695587, 2874021171}, + {3365796178, 483107799, 3407481357, 3972709173, 1120813871, 592124065, 824258985, 1125242906, 3806396948, 312465903, 3428258579, 886710848, 3588901686, 631984328, 184369972, 3202347754, 605214211, 3680363200, 4226160928, 3519627582, 3761642230, 3617665976, 1480251837, 3840538663, 61391573, 4290104308, 4213616701, 350086874, 1529338929, 743920880, 2855407794, 3981241376, 1392328030, 702298890, 103756248, 3176189508, 87512630, 80168912, 1453083463, 3377971475, 849885685, 3384125123, 3856985543, 2874002448, 3193831685, 3100354119, 3283666505, 3578212005, 4110166462, 2873045687, 1140054978, 3471580094, 868538907, 4044683469, 103272731, 3687786309, 1548019382, 1079231518, 163693609, 1329538832, 4048613665, 354634210, 3358914738, 878619087, 3337743855, 1271550209, 4006129358, 1089249505, 3873333064, 2989170648, 3369215076, 1523579141, 515332004, 353100243, 4043387587, 3405137609, 4209553087, 3249341184, 605026473, 2850603245, 3250075864, 205517029, 4179960651, 2856267576, 772906841, 4229088599, 4245106614, 4065384124, 2885999328, 1069549067, 3224172779, 1002763706, 1057222233, 3000254539, 2752436919, 164577055, 1006967243, 4272215301, 485405989, 3007310058, 3946856160, 3504433586, 298375723, 2830741775, 1338454002, 634312718, 281413176, 3307518794, 1045487071, 3222150465, 4172367695, 3756565057, 827406629, 4057393998, 3182220320, 3829541340, 4207164487, 1043022598, 281486273, 301670717, 3655570968, 656013846, 330566634, 357023164, 700068701, 4139252484, 839182673, 599405246}, + {643754730, 2572894695, 1389361665, 1072240880, 677884250, 683789405, 4189252145, 3812927467, 993412032, 3939560616, 65008986, 1420289960, 3941591077, 892521203, 2936021322, 436751682, 3645294938, 2841189716, 925297696, 450675779, 3618418738, 1571831311, 3438686390, 3392860437, 222812179, 2839588152, 3542237254, 3114646946, 3456479172, 4157014479, 3372133350, 1076231700, 3293895659, 1555109649, 786174723, 307830544, 4291554100, 976675094, 1412448823, 3354059989, 4071608521, 250650567, 3082198750, 1455666768, 3284389842, 850511661, 655672291, 542049247, 786944951, 423078902, 572850858, 404480281, 944293436, 524155648, 3317573122, 3556204480, 1236585148, 3529265959, 1452340918, 3774540252, 272844758, 1257304082, 800514114, 4280986803, 549652005, 3577151835, 1221546247, 3374324225, 3188985330, 2618545838, 3865037983, 3771027273, 1256042945, 3839224915, 1460667158, 3930830131, 4124068641, 383918001, 1296760494, 290855148, 896478913, 1340693480, 3153149698, 105435696, 4114681256, 481996257, 196883440, 457382614, 3571042059, 1323847964, 1396393150, 991041064, 1139096019, 3637752354, 1055002633, 3720162997, 3872536354, 3017582819, 1527524095, 2970770399, 212264622, 4182040642, 3016968935, 3285409762, 3624489932, 1449916867, 3301702393, 104118235, 217076420, 851487210, 2935364695, 917495785, 330378521, 1012589264, 3132650736, 324488114, 2950631614, 4060160749, 3779334600, 3840360157, 2870551130, 3042961185, 1175115791, 3066549447, 1322732305, 317793845, 4110083426, 156446480}, + {1230817792, 3887133962, 3370123429, 4098691664, 1588023086, 1407300344, 691721707, 1071897805, 1036781063, 1511462584, 3237220265, 403505739, 3584838608, 2754598974, 1011788568, 3369912483, 399459281, 498060116, 4124245793, 4159554596, 3492304685, 3493579187, 835923147, 30496589, 3473786533, 2980630347, 3051210280, 3454850614, 2694933, 3081808459, 3877912804, 682551053, 3116159456, 767821793, 1161576122, 2932606663, 1192696508, 3405257021, 3753588437, 4263703734, 807740167, 3346224347, 1189739570, 669040922, 4156444999, 4259384235, 4110928447, 3378470441, 934595673, 4275913652, 2948738742, 1589161424, 1372698393, 869457094, 4116622392, 606923529, 122671118, 1353909420, 119224043, 758515996, 1291246680, 3556489300, 3559517779, 3172656325, 564406565, 2906235403, 3691005374, 300238389, 3774917439, 4009113053, 1185346278, 4098795229, 44963241, 3693329664, 3406016759, 3232222503, 217116180, 351410690, 3132023598, 3897275390, 3859491881, 3354989403, 702733086, 801291731, 3468888570, 1252978012, 1256384551, 622984431, 906613937, 3993936653, 140502300, 451063475, 314553159, 3155741873, 1288566772, 3523416770, 3223317543, 434681348, 4278570242, 27127232, 835648347, 1391196696, 4172731896, 149414562, 820001729, 3175303857, 4106113982, 3522320411, 3846428457, 708847621, 1156903992, 3438886746, 1258285258, 1027684570, 571720520, 4122780622, 4143577576, 3227124503, 2772369480, 1178223620, 251636275, 89909276, 3673343404, 2930254889, 1638921952, 231099649, 1404329658, 1038610372}, + {413341272, 1088812605, 769342667, 1280111605, 4038126497, 3489018145, 348693727, 161632317, 860640006, 1376067861, 3225932320, 424521543, 4160158772, 3896853514, 1329856060, 1480707591, 3853840851, 3813559282, 3854779097, 468320056, 3924509118, 2752886873, 1224094700, 598293043, 338303797, 346477272, 785571381, 1515666379, 79831524, 434897233, 1245171886, 3207113812, 1423266608, 3449988170, 4258775296, 147386632, 284312629, 2785206969, 3265594451, 944678650, 3461524939, 313206745, 909852919, 183422354, 402704721, 3470789092, 1079818444, 86644678, 3937418966, 1244797096, 658776507, 2938745779, 4179077851, 836100860, 1275529919, 1345965236, 4063960335, 128766200, 1845111359, 424103937, 818068293, 3491907285, 3992246809, 215419711, 3471858089, 1072876750, 143185, 994881784, 3151350086, 3317617437, 3827814933, 3491299525, 650008487, 3912552472, 2756005382, 3489119480, 10834147, 3427529312, 3175418036, 4071823921, 723918763, 2407444, 387265060, 316667948, 4040077829, 164245703, 735111618, 1783161336, 3640318716, 1105268939, 130161329, 4078516176, 3501014106, 760434356, 565585959, 516433223, 4025407142, 3467695326, 3218777828, 3116478294, 147937023, 1187461390, 371392030, 1263489813, 312796875, 3143375142, 1222058788, 1405032473, 3299154221, 1355689775, 3059499854, 3587971293, 3856918583, 3690514146, 4292723535, 3561738465, 4267063529, 3624419114, 866712762, 3509440214, 3506622411, 215788778, 3421388887, 1204945873, 651444246, 4162916318, 698811620, 1177555179}, + {2687567644, 281587790, 4178160099, 3258458286, 3897797308, 3618813696, 3016373081, 3291489493, 3537785128, 346998187, 3555984632, 2884425413, 2889421781, 2816803100, 3972833114, 4114795179, 3069926082, 201469143, 1178118939, 599839194, 3705713332, 1237073717, 1343641100, 3625730743, 3629378515, 3929126585, 1310969792, 1580645889, 1740785661, 4289526797, 3386164387, 3830782021, 4260901804, 509400661, 3336759616, 3903337516, 3016246726, 3171691291, 4273871952, 507656726, 3703390478, 3534618957, 1693273063, 3003579638, 254857455, 282220459, 767089397, 3242740279, 287001871, 473164529, 4044663529, 523956737, 3688212461, 1694948, 3824537884, 1359390533, 1206326604, 1202172854, 1126811959, 791918014, 52159957, 3486445827, 1084607516, 1105137866, 524346107, 246305494, 3523887665, 907919091, 683978467, 4178706642, 960674064, 3366116941, 992035119, 1628685650, 1227675125, 872949969, 1465467046, 221307440, 190138129, 3791569176, 1036081141, 834319780, 2931290598, 3641243868, 123274726, 1145693882, 331142734, 3393804456, 3707455820, 651314709, 3690968106, 1089519613, 4058077238, 3274967007, 222373637, 1092246032, 1021173444, 1062095074, 1061556661, 3528438991, 1607945204, 3908905493, 4038075351, 83877462, 3740607778, 3471510329, 1246159619, 1315091782, 2684664081, 525510700, 2801933229, 1574504112, 3669371624, 3478378433, 3085295415, 955834398, 1230061733, 3955160809, 3737653694, 248039210, 508580554, 421059382, 3662219043, 1003237849, 1464399432, 3776686321, 1228409061, 555343346}, + {3351190466, 221107237, 207343913, 1162273517, 1406525732, 808266264, 403632202, 653737444, 138597884, 675568917, 3101564924, 843637962, 370912344, 787425330, 3893537373, 886989630, 3956590882, 1427433475, 3218067208, 550552793, 402636880, 3622187954, 3351463913, 3473388007, 4248809126, 4078897858, 3241884441, 2866602430, 3686919632, 3641984287, 2930096438, 1243735573, 3205569607, 1515237123, 503011924, 3588316759, 992263235, 3199197119, 2748168015, 149893312, 202680325, 1111782832, 958033992, 3576556223, 3841733579, 554888947, 2802451643, 1392822568, 451549242, 2849949160, 222538999, 2883599811, 3730200646, 733138363, 3909489068, 95041832, 936992998, 916991141, 469013441, 1035002084, 3939177902, 823701718, 888546563, 3618487515, 2908398340, 3940482391, 3175342263, 372417218, 634136123, 3259546695, 3104889690, 655801125, 319284569, 1456518155, 3205559839, 3544897973, 570845492, 37482687, 1058470156, 1574297401, 1028320699, 3134414661, 3788357283, 878636104, 3593820168, 2728665269, 3741390308, 4112114147, 3410088249, 1488692310, 3557052580, 875999494, 1497756425, 3259425366, 435882695, 3519741718, 2898650375, 3081219648, 3695167059, 4075832800, 905287707, 3158085111, 3603418912, 4081561641, 245949142, 3333533917, 4096752221, 3054068139, 740053725, 1136920406, 3570675899, 4266962771, 3591220209, 4206666803, 3779587306, 3436855217, 233325748, 616756669, 3509983491, 3019944175, 3628787014, 167009770, 3756152131, 1387661866, 437142280, 653894954, 4177818674, 836760822}, + {3116232354, 104001266, 633980139, 4041099559, 3485395758, 1456873429, 231465455, 4257871691, 721046810, 286318790, 1240289498, 1119821256, 29632255, 4113046460, 2839000146, 3339517765, 1187070731, 4281737950, 1327868353, 3578055949, 857144140, 3910399173, 247253981, 200731663, 447471543, 375312968, 586136234, 3661187633, 1194669056, 2903026480, 2797340104, 4090760156, 3907637326, 157035288, 3644770297, 548813475, 568649708, 3540962058, 1107600698, 2735875110, 3692957787, 118641183, 1022483690, 1549329236, 518971377, 4022871863, 213642521, 4190452259, 699723249, 106038809, 2964138960, 3804886332, 3473586371, 18498792, 940418527, 990140903, 942688961, 890362283, 775897282, 4043118557, 317443307, 1162207547, 3232487930, 1509572935, 3403764496, 3452024047, 1312675918, 3841194547, 1509181157, 135332694, 1242015976, 868163301, 3066092737, 1271783871, 38273560, 3343235359, 1045621833, 287686442, 3655193016, 134757603, 3488746519, 3139291063, 1070914210, 4227275437, 4264494141, 340810576, 474665766, 892081970, 1077403583, 533288960, 4064034597, 2899818217, 285724253, 735238747, 3489183003, 1087881244, 642534661, 3754245402, 4230548948, 4145878788, 3140474606, 3588905725, 1493326155, 118741778, 2963549366, 1002771477, 2746570405, 2768623012, 994725689, 216411474, 652038485, 4048998417, 4140890913, 877202488, 3864604733, 1324862272, 2735410456, 3184450340, 1547292918, 256584663, 2852600234, 3518349520, 3751915020, 987951323, 672537838, 671144632, 3033147077, 2882684393}, + {3551707663, 3015328576, 449431773, 719738291, 158312948, 1340780224, 406246883, 3759219429, 3131577905, 1363606030, 3612096936, 2958769720, 2774195414, 4288918575, 3419458814, 364889050, 4049749245, 3176186613, 3204657436, 3017739745, 757533012, 2989364214, 306722567, 3828491262, 862375777, 2821060802, 2813977301, 1553580191, 1614043733, 255413776, 3981489869, 1222129450, 153136971, 1546377240, 224211645, 3374202939, 3947602982, 3066555717, 3302009350, 1202267956, 4223988591, 891415281, 3831896050, 3661248723, 601349938, 4074678552, 1542540390, 3620004565, 4175866805, 2736436288, 3876670118, 1103809050, 957770438, 67954911, 3704683587, 3589939286, 2824554440, 471328939, 968157959, 890909700, 2804569100, 2969621962, 464978889, 3002796029, 3954783561, 1330203328, 4140645881, 2635998994, 3627541168, 3753619982, 1069608214, 1361638593, 516959997, 3153782968, 1067926854, 3335513594, 610193931, 2965481011, 759936476, 4097965063, 103500085, 1292451428, 112339246, 1430515180, 51984979, 1443341023, 266259041, 1578296544, 1263218175, 3065186242, 16254188, 4262812375, 870961753, 3199664608, 603048722, 702506795, 756679892, 163398676, 4026141099, 588247555, 770463959, 3156359386, 290270196, 3037095669, 3625182537, 1159255737, 3962244346, 876815145, 4144621128, 3562037811, 1458768570, 299869221, 994429487, 818747707, 3317747694, 3106719287, 3956990273, 3367806526, 489758049, 94549278, 3176055042, 923025941, 1172034767, 4004779572, 2941832368, 1489816311, 3034515404, 347535644}, + {3702742956, 4108603857, 3976940324, 113711586, 1213143297, 1186550017, 3483804881, 3376100606, 555934736, 3639462586, 3015850812, 586159946, 1749853956, 977972545, 1749458458, 450926848, 3746480342, 4044662496, 759366195, 3109232868, 1767299565, 271253716, 1012804626, 1322239710, 1482398675, 4149886767, 3536134186, 1236401463, 1566395601, 1389576412, 287254491, 3997020715, 3684827187, 2875021046, 50060547, 3176406854, 4243048764, 1226910763, 3807754476, 2991837976, 4231739368, 1207090090, 3157984461, 1471943169, 4264937237, 4075106243, 934150731, 1441478102, 3722579185, 3658685990, 383184832, 1559611687, 72606137, 651288053, 3625968107, 2988883629, 3912051751, 2948127206, 3858831446, 938669239, 624306146, 626980570, 36506103, 907162075, 957269517, 559635927, 551502415, 4276301753, 3518830650, 710066726, 3470926233, 3604010260, 3535228487, 1253958465, 467086031, 3641255486, 69343959, 1093385128, 1326061502, 337195261, 1627564081, 836824737, 987034641, 3843161767, 1693492470, 79491068, 1404457557, 503449239, 3125694395, 3756183850, 1243695271, 3960545077, 3289646416, 3460255703, 754306621, 1832823039, 248776126, 1422414007, 3268661066, 3450346218, 892315597, 1458175448, 1255599627, 581709044, 3954852611, 3495737255, 1679610036, 3779648589, 3761327791, 301208820, 3526166948, 818593051, 1459817702, 3973244720, 3704439709, 3727934526, 1481029451, 3895538457, 1487328526, 3288393244, 969210891, 3159731793, 2949852234, 1304815863, 3170631245, 507247576, 1882113443, 233909710}, + {4048940240, 3878621860, 3184351334, 3450132649, 87760451, 151239952, 3014346016, 642960459, 3240356890, 3822598962, 3070904794, 1256742390, 1005761837, 4037355178, 1218862677, 3737600981, 3979866291, 3953477358, 684246703, 3441231803, 44776908, 2788375575, 732882721, 659566548, 3770806105, 1422677196, 3082103052, 592498211, 451211275, 130331675, 1513178353, 3946530064, 138528821, 857346100, 2890011367, 2814371242, 3359715174, 32773454, 3602864571, 55532220, 373869851, 4189394113, 1457051991, 3540989007, 2738674869, 3422687228, 3285984272, 1285888507, 3360151834, 115464635, 920478203, 80918609, 3151875421, 4205633004, 870728481, 2832487872, 2964583965, 3569816107, 1387136480, 2887295044, 2855018469, 257350378, 1530637772, 487052265, 1529041843, 3893283806, 938880505, 186903265, 1255685163, 3903961027, 457288126, 3644176986, 3118257449, 4266703029, 2738208593, 4078975264, 1009670904, 1327676192, 534113300, 1525171637, 3098679875, 3792640764, 1002332992, 223784939, 3534510513, 1346426672, 3730489671, 4199232949, 3690990442, 3270765013, 3560050458, 4264101615, 4023071801, 218094880, 1372390738, 3853633866, 3584622655, 3812282589, 3107283310, 402669872, 1314607555, 857493261, 1592330227, 2765417299, 357418470, 3201128469, 2798070260, 3186365921, 4194367486, 3356312984, 3551666731, 593086433, 2951478812, 2921064952, 710712550, 2874824735, 1470578251, 56106295, 1587686063, 3360937229, 3577690851, 3193169123, 3855350859, 1510294874, 1071193354, 1011371962, 1037957623, 1121924689}, + {1069530325, 1092285178, 156653568, 3266235973, 626941603, 3555143938, 4159643729, 1088672481, 3034321438, 2763855792, 3428790363, 1075958250, 2721982788, 1422520096, 1044030686, 3485080589, 156825625, 3407397317, 1142632909, 1344148410, 1121928758, 1375026343, 600506412, 1073866313, 3385765924, 783492067, 1353914426, 3877591460, 3309683723, 2799876571, 655155958, 4181935014, 436127168, 37607753, 2923713976, 2872099349, 618816185, 3205025063, 608778917, 585434801, 2765431310, 455936172, 1304686095, 319672518, 3891095566, 1574523826, 4082963636, 2764758085, 2836601674, 3903928243, 608975523, 1238127556, 1136725470, 167957719, 2867944022, 900084942, 3436403420, 711010782, 273304558, 3674094580, 170523348, 65034274, 2983440983, 2957855201, 3998859834, 1088955874, 4014917149, 324795049, 3559831992, 4211725394, 4013407931, 1458384442, 817120503, 3444159446, 1523844014, 1378929196, 368117936, 3055418608, 3391165975, 575689692, 2805946854, 1203783898, 3268886770, 1565593318, 926931422, 4277483052, 3864048438, 1256844306, 508565043, 4160685776, 776810995, 1044369466, 304270170, 3473402969, 1495016533, 3557317115, 970992802, 4223411450, 3309836586, 450514352, 1270141170, 2795557088, 4227067373, 3458031139, 3655471920, 1330532300, 3244633591, 3285068718, 369448621, 3747407853, 4231785152, 936851235, 4124986348, 118482758, 774615045, 2849716047, 1142007115, 3387271223, 1506072876, 668679984, 3252559934, 3796775367, 1219124926, 3714639052, 617039114, 72826582, 1010066483, 382576603}, + {2990557642, 1110529844, 3962965581, 447408988, 1408159152, 3235839016, 3745564646, 3523950638, 1391375196, 859452083, 1292975566, 738370659, 1397351149, 2829518808, 240731153, 3525258174, 1381496235, 3857244333, 3622654759, 672872725, 348637774, 2533084001, 1310197332, 1308956851, 2868185342, 790116325, 3357485821, 2655503114, 181280004, 322567423, 1538522388, 4206961166, 824912354, 3959876933, 1678973193, 883675332, 1134747740, 372529891, 233960425, 2980520365, 3392199468, 1161645646, 1446893090, 4006482135, 4276440599, 3069950708, 1139615692, 459166736, 3355168084, 3169110556, 3807749877, 2867992290, 1548669211, 3956131809, 3605681089, 3437498160, 4177211342, 3142972467, 575549924, 1001250640, 1353402325, 282333163, 1943339222, 166671377, 1390469055, 647646520, 1162682306, 924918587, 3692049911, 338172950, 1632305201, 3525712431, 3554347786, 3890163996, 3271029081, 2846817947, 1240579597, 1305021778, 400993471, 1144838304, 3394432567, 807590189, 506551379, 775871282, 3383307084, 809484739, 1024454083, 314036044, 770962358, 121243061, 1326332241, 4093241085, 66448362, 1292693702, 137120053, 48189713, 3995138389, 940247742, 507638618, 17580319, 3088392021, 3794223628, 3157023269, 35847496, 178368021, 1388465493, 422823345, 3671967407, 2829323824, 2923905068, 710098973, 459016405, 1054287936, 1560757504, 2874833, 2934126674, 322507255, 606017077, 2757285318, 1544797156, 3780227251, 1177006371, 2750198805, 3545753804, 1156044484, 1573974501, 68344224, 35978676}, + {3619073811, 3427070154, 1261187031, 1355269118, 103932433, 3542002910, 2868821079, 318099665, 387043076, 1169374938, 4031432897, 3780600116, 666847323, 3859870694, 4191895223, 615497739, 145812406, 4079335861, 401690297, 810637527, 522326029, 4093580611, 399043608, 723337809, 4283624989, 4195028275, 3098427565, 182799807, 2891311780, 316865244, 1090476247, 3241361328, 3551897105, 1556215583, 138566706, 3354023726, 834859510, 3416467957, 3635880383, 3143084277, 382225074, 3894458910, 3342279758, 4013206749, 313203905, 3694329322, 407058960, 3608455226, 1511045604, 417443027, 4040021262, 2813459930, 3235573536, 632142897, 1457213941, 3256476389, 3830564679, 791172112, 1398615843, 3006253035, 3326019315, 2721204561, 822620892, 626391381, 485813055, 1153817636, 3701747197, 4199851679, 1012527363, 3940725842, 3924011008, 605563141, 2822582296, 1219435695, 2807418944, 2796159743, 3023420979, 1309259040, 3339653939, 952556543, 3619696044, 3503962135, 1144958690, 3538010075, 1227110117, 851527003, 1173868085, 3425511665, 861243, 1175719076, 740380598, 4294714160, 4207815094, 3257005041, 65790656, 3958845921, 943522360, 3893093886, 3587703750, 116837206, 3914080415, 338035457, 3082873294, 10635027, 3423365211, 4274105617, 3878567760, 2685128873, 397408823, 2921356311, 1125104632, 179367984, 3639266333, 583462182, 202465503, 234484675, 128177905, 1086387684, 1525428009, 334445905, 80873051, 1057856716, 3589602113, 13839306, 792404829, 3759993568, 4291144794, 221914653}, + {1946829070, 1145721556, 3488888096, 373628182, 468446012, 2907038507, 3125478610, 3038650391, 4225041719, 522697803, 2984496101, 1742191299, 1489956253, 534167220, 870773289, 920247850, 1314834244, 3000060951, 3490899955, 1548012057, 622012361, 875741183, 3821973972, 154470313, 3922252332, 906931392, 1153383999, 3143615054, 4173123311, 3435584445, 1177401031, 272579274, 200075986, 1607797769, 707784622, 4161060603, 1005594221, 3476032414, 182243611, 939258706, 3054625832, 319599710, 3269875201, 1044306669, 2567444481, 3740861771, 3654822957, 622778172, 726640448, 1527987897, 3282433568, 768521006, 1792342324, 634860734, 3586515228, 3745688364, 184223306, 131266362, 4233647182, 1746817817, 2947665965, 3837117716, 3205640788, 352917431, 473558747, 1102884573, 1504199765, 1578441039, 3646563758, 1513338148, 3090239910, 1187725825, 3092567068, 4278061227, 3621696279, 61678380, 436712247, 1776936727, 3352078062, 1509868885, 3125465869, 1629425948, 3225662037, 922079687, 3494707169, 1304966321, 4272441304, 833172934, 282510004, 720684561, 302463062, 4021441069, 4056435244, 4212017062, 953239316, 1253304840, 4014984520, 765798455, 2632922360, 3283424507, 3358638196, 4256104752, 1504110342, 571664812, 302316505, 1162692024, 3120747343, 396876022, 4213331912, 3168147761, 1445148877, 3223712756, 4233819441, 337845942, 2672170447, 356828637, 3889932233, 709836812, 2888958033, 4078317355, 868635345, 1791766963, 1020708889, 2971272458, 3627855636, 3487479548, 1079399700, 4026093648}, + {4265841484, 1328543461, 3736211554, 308096841, 4110205385, 51175221, 127804457, 498598142, 817442832, 3407074897, 3271034794, 3236290355, 2806826503, 500622383, 976491206, 3920964555, 3970224363, 766354865, 4160616465, 1120447314, 3383061976, 2920220934, 1172700625, 1563218780, 3709929677, 3193311749, 721931827, 3002088513, 569720354, 2771788508, 1291052528, 1462751656, 3486584149, 3604491098, 1362182188, 2972265216, 2728599859, 3684618828, 351387379, 85867239, 790472799, 1449401020, 4162966527, 3405178412, 1110972459, 1307564289, 1375422171, 1259994557, 883345844, 357759659, 4042595061, 116350408, 1029190103, 524087494, 983949379, 3421684523, 852518991, 2797079877, 3541970090, 164816184, 3238747330, 3299387406, 1557468511, 1103445982, 1441266699, 1359040567, 3635523151, 3167233004, 4030009884, 3473359534, 3426750375, 3103969491, 3893161143, 2798804772, 3239885471, 3227339996, 1036154594, 2891625205, 1457767476, 3741510680, 355944243, 2831892166, 3258109615, 4028685750, 2966421203, 3524326075, 3436329956, 4206505024, 715093295, 698529081, 3076083924, 3853723949, 3301113650, 1442903320, 723764748, 3373195012, 770683570, 1075916795, 2904930875, 3948046924, 3117337043, 973737037, 3406046001, 1195768114, 4112381351, 304482017, 1225109195, 1302310957, 1610208816, 2921447199, 4178039574, 3458482260, 1546341886, 170786901, 910437158, 79290606, 150211003, 1263715062, 1422805521, 4182634146, 767803064, 3719249406, 687562334, 3669679824, 1427589830, 4190107836, 1479749830, 4088089136}, + {3292403217, 3052952502, 4062985629, 71040259, 803875922, 2854873933, 448158509, 4123468823, 4261783016, 1310265093, 791653880, 3545568775, 3444107819, 551866348, 2739553308, 2880108537, 3944139349, 3019223221, 3820996046, 2990451661, 2889531649, 637752284, 908264694, 3187233241, 350408892, 4189803185, 250460250, 4105437011, 3894881734, 2164244, 3657968590, 3896648682, 1071890423, 1226646203, 400278248, 1441465386, 3896324835, 467320602, 686144354, 604099234, 3168090269, 3777970989, 4275244521, 1213146592, 3639426293, 4211611201, 3903084089, 3803836399, 3031282194, 4104779525, 3996508574, 1421356953, 416951039, 687595861, 283763772, 809189288, 2813838568, 3303296330, 1562130396, 105201921, 573195536, 3022996711, 2868427094, 907696435, 2799516973, 1113676526, 1137002730, 4260242440, 618381334, 654768889, 4123938781, 1515388673, 119946321, 1050100437, 1146569496, 1273118554, 785101292, 4288804857, 3407855288, 43626070, 4044367923, 3410287800, 252909044, 1525593062, 1458096834, 122100158, 367471634, 1254993243, 533658147, 3560117533, 2830683188, 3337551297, 4040147212, 4214207264, 4006365992, 102891589, 2849055015, 3553624808, 1173504485, 635721222, 197607774, 3068809499, 742459709, 3710698729, 4172560956, 1525879318, 4261421546, 4088541214, 199014325, 775951582, 1539628723, 1381549020, 3309552561, 3663401813, 3995061769, 455854306, 1245786359, 1058389326, 1590549927, 3252733191, 553194794, 98164193, 962257121, 659038279, 3810062058, 4013774502, 3928738043, 548016448}, + {3325319744, 1069800269, 806810300, 1244681305, 1017428521, 4189214974, 3183883094, 3098609604, 2868795159, 4095288069, 548293425, 900863320, 3726369211, 3704029898, 3725128706, 825245890, 750737656, 3275806769, 3491608327, 940462536, 1336134864, 1040254415, 3117267882, 171551236, 1163606489, 2999706971, 1094724284, 3456965639, 540472513, 3418928662, 2891379877, 3613044136, 756743220, 698788613, 904176345, 3502381308, 3485320607, 3155812138, 3651648275, 1028799483, 754759434, 4012486647, 282726668, 3336446273, 1070982582, 804011184, 4094569266, 4012619548, 1069028441, 3954619354, 1291175908, 1972291, 2716714466, 2952482999, 1497232081, 4284272708, 4240042294, 317398855, 3275018146, 3385070899, 2972466158, 957984711, 3813879333, 3873717079, 1072748854, 4261370407, 2953714763, 54060096, 3623673936, 3074477800, 4199271862, 4275652302, 770247953, 569394980, 2685425682, 1124936477, 434749099, 1308642351, 3771999494, 314230971, 742254514, 737933734, 3847109125, 98259742, 2992371376, 3272161292, 3862742353, 657436912, 2935665429, 449756599, 3458607025, 438971698, 1549061598, 1294853199, 574903532, 189996287, 3215545017, 758503925, 228962760, 1481172820, 3847071169, 3810393107, 4245100768, 3318865592, 665315247, 701901080, 78313682, 3975167272, 332314938, 2833509383, 3116803592, 3323447458, 2852318238, 3773504826, 4171829466, 633594571, 3742481457, 3803455559, 673776373, 4276079094, 103018232, 1297296338, 2865550326, 22397000, 3284155420, 346700532, 1138338609, 3995073094}, + {66509124, 3787327473, 81453388, 2785080025, 701555756, 1008215037, 4057417731, 3252224981, 871579393, 70985037, 48112585, 1345261064, 2853542475, 456579754, 4028371496, 161861062, 3640415727, 3611095749, 3944431536, 388746826, 657348815, 603058249, 4081607938, 639975992, 1291132347, 2731335887, 1302606647, 1327950999, 3479069491, 13297959, 3595126871, 784336198, 3661186769, 724902737, 2839016748, 1262368218, 3236350710, 1487601122, 1390092977, 153813578, 1188019680, 3655226152, 739749350, 1077414459, 2731095048, 3471037717, 1207877318, 3559404966, 3640052327, 433789956, 4280007148, 3978505510, 3770846369, 48781032, 2907121324, 3992940567, 1592972828, 3795314410, 2841058616, 3093167622, 3419054085, 3155814198, 2968469807, 1348133418, 3493326277, 1169495634, 2790829891, 3539643577, 3006385201, 3774130671, 2807111880, 3376326930, 4074836225, 1129125861, 1103716916, 3291737925, 11064163, 3521372226, 923885038, 3839175492, 502069096, 4024480499, 583391208, 4081515356, 1053289573, 168815103, 615233974, 2981413482, 3543705922, 3084507565, 3739140091, 785320782, 2768154631, 138455038, 2806132218, 279907779, 3047970592, 3994095164, 1092370971, 4211712957, 656168914, 2766794512, 3970761284, 3475378464, 3595259657, 3304566510, 2816816471, 2739268384, 4028703703, 3888822835, 1514806059, 3509512412, 1508445867, 3017262642, 1103404816, 925429453, 2906840600, 2916749392, 3623136502, 517009673, 4045806653, 1296449314, 1104879897, 3718527545, 4039824093, 3823771055, 3608614328, 995181058}, + {3156082427, 386966569, 666963605, 3755200598, 957934270, 3857099234, 962153285, 3652528116, 1022801217, 173601545, 3205409226, 3468508151, 70119256, 1271739853, 3544858324, 2891696664, 1242629034, 753849031, 2868042843, 3785691303, 2779821049, 921098149, 170454989, 1391145904, 3405237997, 652073394, 4157008446, 802314460, 384549662, 2918844233, 3069561886, 430292028, 474673305, 3196954, 588706616, 668576179, 3586714292, 4227347218, 758958635, 490026841, 3317974963, 1237967613, 384911952, 1873606084, 3134339276, 876719952, 3269350874, 549726398, 347911588, 2939238928, 3185699044, 304621616, 940465082, 374976922, 3367774459, 4099280390, 2931620567, 667736666, 1660296392, 1123876934, 2920339743, 509068984, 688267458, 4262013727, 3846914115, 3655583462, 3651407426, 2729700012, 2871744957, 3086469283, 3156028632, 640595701, 1354647557, 3508186668, 3051946408, 907809524, 451797572, 2806463566, 3542620618, 3947372224, 2701209862, 1245452726, 3611355908, 3529236783, 4195462830, 1055053125, 3151778761, 3318066712, 3769745405, 2954452244, 315468079, 2795970508, 2765270782, 256201475, 2549922148, 3788095822, 416343839, 818474940, 720432426, 3201940969, 3270726717, 3978485909, 286579886, 542585364, 1693383, 635631426, 2711929074, 3980321635, 3779857136, 4075768533, 1221050880, 1078281003, 967103994, 638432459, 3861457607, 366742160, 834791959, 1204950828, 369148455, 136429562, 1204476585, 3926117944, 1029157153, 701313206, 3427876437, 3811846159, 3610381121, 489285193}, + {2594513242, 454380479, 3994956312, 1264332455, 283712431, 3654229258, 3561816662, 22082788, 465379343, 868947501, 3183481081, 2907911159, 1562565605, 1054932317, 738677034, 3240495301, 1445901627, 4192666314, 148093098, 2935873523, 1918229804, 539160027, 147397846, 205921560, 1545865940, 3959408107, 1202903883, 3982643223, 112548608, 3242378044, 1129778372, 3039244722, 3006744247, 246133313, 3487174881, 3420648735, 1027736024, 626859571, 341585661, 3441686518, 537840842, 1225765813, 923222977, 1795666370, 568463943, 3307558709, 861910788, 2848531799, 3000164186, 906748934, 3675447218, 1489772059, 3493863469, 3333793724, 3964186624, 247678162, 3756468438, 97267212, 904307416, 626701307, 3301680826, 380287485, 803906816, 1045899786, 3998693668, 3454405093, 3745392425, 3103915007, 1806685743, 1554440005, 4061412518, 3837963299, 3325495309, 1766791135, 3894847975, 672977097, 725867512, 152648428, 874976211, 2981214517, 840510422, 1514493988, 97235391, 1707616302, 356079553, 402857457, 4146590777, 1598150200, 384613690, 375133271, 974401308, 3830076900, 559435346, 2970957479, 3521167549, 222341295, 3024491810, 3374767388, 3091464400, 3604741664, 214373323, 3114589460, 1227828667, 741941222, 502077217, 3226130690, 3420251915, 1353441874, 2767132197, 818805922, 83415474, 2832021679, 1565203480, 1392965412, 271385668, 760605685, 3267708454, 556544481, 4075312383, 3524271367, 1766776573, 4129627376, 3611292892, 1113500756, 3366210313, 523038423, 3709354916, 1359068507}, + {706785585, 3713282812, 488115743, 1038225747, 3082678301, 3517956332, 64817446, 741165046, 4089531383, 503706535, 3171883830, 1424216254, 1127679923, 49869478, 1696869386, 3611624683, 3742650581, 1252537692, 704185763, 2803835605, 1529722809, 869617352, 2823476427, 2818854311, 530784718, 4097588766, 3052198243, 508099099, 978932446, 3791700250, 3435134891, 3501762466, 3075333380, 3253144616, 1068160515, 301856509, 4143835993, 90219969, 857102689, 825831601, 2908083875, 4178250196, 3442994386, 3857586009, 1123745219, 3492587218, 3890038342, 4046924371, 935148610, 4144159017, 4292419180, 60489466, 1256111566, 3429227812, 4223542211, 1328476178, 3588547918, 371201982, 3507790594, 4174831195, 2999573052, 3709384791, 4181793750, 61874154, 3173456172, 4045820506, 3360403451, 4096132694, 4172195369, 3737728599, 3891897775, 1424416031, 502540720, 381833431, 4248758862, 843886375, 3910525165, 2862016798, 119522476, 432753432, 4094147668, 1205410221, 3812221212, 906380488, 386019283, 1478234849, 1492400889, 1076550067, 4091027432, 3259909674, 3590003154, 1494808414, 3846190159, 3573046043, 338876407, 3142464938, 640760371, 3156858813, 2938313397, 3316207179, 3709544397, 96213484, 2866599146, 255007167, 3135248687, 1429680217, 564568637, 4228985365, 1464533049, 2916952760, 857093069, 457909520, 548354327, 553382069, 1303178061, 3053203651, 1095099216, 3005457583, 33138490, 3814526377, 1391665475, 3979936285, 705630259, 2991328491, 3568310475, 111430406, 3308054022, 3738103624}, + {1052979466, 2684365, 3538943318, 3220129051, 1072640501, 3820368972, 4114737219, 3285316943, 652330764, 1119881672, 3527400489, 3524214504, 2933735071, 3223905846, 1572079946, 619357127, 1681042130, 2813995292, 4157425851, 3696110683, 3810843084, 985593305, 4179288015, 503994060, 3922376705, 128972345, 333292252, 1748967434, 872003, 3156588886, 3585518034, 520503779, 3369532377, 4061676570, 4081590514, 4205433413, 2838645439, 485564663, 3705257180, 1539451343, 2666852018, 586367520, 4108538846, 548522300, 3841523371, 819656446, 671299490, 2816299016, 3861646115, 3789378813, 64956441, 840215498, 3353748437, 2868713435, 1514757573, 2923608138, 1276316719, 916775211, 3842615121, 3063230735, 3467324950, 497885513, 723988654, 576256239, 686499579, 4008751842, 650577381, 466496430, 3118356752, 4272220348, 1427576534, 3434425102, 586760995, 1144145929, 3338779342, 824097759, 29671946, 3371497684, 3519217857, 1205793059, 3151095864, 2957049250, 648410100, 17248755, 673823448, 1275872315, 1260299935, 821931693, 877724504, 3239260444, 1304156728, 1405176127, 582347567, 1293801969, 100207569, 3341631464, 988144105, 51851578, 4112173608, 4257530401, 877208143, 910761409, 2882930716, 524874915, 102369749, 4224506133, 3069442500, 4006431221, 844024082, 1679897662, 701961434, 3308498511, 799294736, 727318523, 4278771521, 3759587788, 3382849575, 1431715104, 1273251108, 3208322986, 769904582, 3684808235, 3473002233, 431828490, 1472438957, 2957952213, 3989295358, 3812312256}, + {1095016134, 3652903774, 400380362, 1257050070, 3958961636, 503445232, 3404116324, 4230200895, 4043686667, 3293899991, 404163026, 3741199721, 673850840, 773054945, 1363977310, 283031131, 3924867781, 2870458911, 3639197653, 874204703, 2997763797, 3949546441, 3344583111, 3486710247, 1286142193, 1219048211, 2965916924, 727560776, 146229539, 3876796987, 649078965, 4294755355, 564487208, 3025144317, 303676898, 3285140305, 3856875286, 2889042996, 3427472101, 1245701561, 3015687914, 105667147, 643158108, 823009786, 3108450067, 1444996579, 1071796495, 2953324553, 3324320285, 1025984970, 3440577822, 851713873, 14481687, 1239547848, 3692473119, 233649172, 4189410347, 1581272879, 3154912342, 2813088587, 4290501667, 4155302678, 1204933623, 3102595115, 3327763971, 686602149, 3774218713, 2690567014, 48887061, 3433831993, 609930835, 3232580176, 1260198095, 2832514259, 3944826584, 1122053649, 3395222052, 1017471167, 1543692125, 3324333270, 4160003864, 229946698, 3844395876, 3393531455, 3940068844, 918016459, 1024059499, 370982075, 1190725796, 339950115, 4111708990, 3052847845, 1255027012, 4107000067, 1197321240, 1163063101, 3739248208, 365085697, 68815839, 1021224630, 3822643887, 421882311, 2906713941, 3166032161, 733427186, 3876594001, 4083014461, 3134127342, 290733147, 3577668644, 4257218991, 219503649, 2765243421, 3893419724, 1001397824, 940219348, 475931914, 506840105, 719184564, 708244916, 336327353, 336474404, 316104207, 1039936502, 380295493, 229923001, 2688720424, 2885413070}, + {2818067436, 3554890469, 1090601213, 72671787, 1381260836, 3404512964, 3238216979, 397618216, 3048424222, 2814198076, 858769751, 3524909074, 44631309, 185801922, 3622244129, 1060519096, 1388250935, 4105574657, 3894939615, 2814964566, 3169472935, 4042528518, 3722005213, 2953723835, 22884337, 272281402, 4011523242, 1531822092, 3923880441, 685249293, 1415436606, 3989236939, 815881270, 35515565, 1491491255, 825891798, 690605594, 27672539, 303905516, 1113040847, 4029887063, 1145958192, 1047313356, 262200250, 1550078501, 3829598229, 843898640, 1261046538, 4063576503, 4226464978, 1621504187, 3742056634, 606530470, 1381306112, 123450397, 4132455903, 1107637299, 3402698178, 116344513, 1062527555, 1262008768, 21308138, 2729451326, 3821613901, 4078085577, 1073171949, 2889026609, 1659107904, 1303579660, 615326247, 3407215841, 3823971883, 3788058038, 1312742195, 3568314316, 3119132138, 1638148943, 751487269, 217969655, 366890037, 3621172786, 1312755252, 3790653707, 3999547387, 431419948, 3875547639, 1076086317, 3058294588, 2821990667, 383101108, 824710636, 4249443571, 1490274591, 715506879, 1324590127, 4246025453, 3660232968, 3457501676, 3936212228, 2989866666, 213180631, 790453334, 557660149, 3895977011, 3305942696, 892194547, 3408070056, 236607303, 63633601, 4138453466, 96923405, 621146830, 387647764, 3990900137, 2914302158, 3952736171, 3249149507, 3226683216, 2906505473, 3760477746, 1413012749, 1548004514, 4024831311, 1405864107, 3589536433, 319634492, 1497414908, 2815174610}, + {3689296874, 1239869368, 4276408266, 3821582109, 2936289718, 941775530, 617824062, 4143107363, 699647217, 52945987, 754894774, 491397617, 3286427413, 956168712, 4240356150, 4088878661, 1240864348, 1186669322, 3854703581, 3188509664, 1106884949, 974069805, 3763541087, 70636752, 3903658839, 3721482325, 905131535, 735851072, 200620830, 3670675969, 4121910546, 3641042699, 1262992715, 3537981518, 3100518726, 94782135, 1194970082, 100784672, 3861530480, 2754676518, 4060006949, 1545459247, 3812809439, 1161844472, 53459703, 385526335, 3090407345, 3562948692, 45235621, 3108754251, 1541654527, 3319001331, 673312832, 3488828404, 3255089685, 2983256417, 1161829134, 3752597017, 866182397, 214807950, 3472556255, 3635750175, 455749210, 314717381, 73789, 1339432644, 300467788, 3981372739, 4226041869, 447502912, 3779803847, 3904422668, 270290675, 1348199751, 4029222596, 29503497, 1038687231, 3591810350, 3845261906, 3292659483, 320284622, 1515171758, 3434723106, 1079620143, 4042457841, 792580012, 1220227828, 3099181484, 782716412, 3006416362, 298460677, 1193194731, 2953513022, 885630500, 1294269163, 3074143422, 347776470, 1123297796, 2855095528, 2769693888, 4131455712, 2738797338, 933612885, 213762305, 4200134083, 4280375345, 3872795089, 3227235533, 3284094736, 941953227, 3570649919, 4264553041, 2958115878, 3805604582, 1371482411, 507321924, 537252908, 1509677346, 4011899639, 540583722, 1073567174, 1091817632, 2988716887, 3135902177, 3092127768, 3319935516, 571872169, 639719854}, + {2579748009, 3151648760, 3452644568, 3730063376, 1119243594, 2956653480, 3568784409, 3577561891, 2997173964, 163379658, 3704180674, 3829143631, 1791688904, 793793117, 4261861321, 3979628221, 973225223, 4154717937, 3878793927, 4108334768, 4015307578, 3956101966, 1343484992, 4279935750, 1072276783, 1110363986, 659007479, 3307801575, 1426860194, 3822188813, 3072087549, 264047402, 1272430162, 532207837, 3619271480, 601012909, 1186878391, 684238420, 4240818232, 4207434996, 390968277, 748836326, 592188869, 2750352340, 1322244643, 3200660193, 3102294553, 2972981597, 632283061, 4108318201, 1423661012, 2948602117, 3250993103, 3965379352, 3237402110, 1797385143, 4162402351, 1045241541, 3376102337, 371261262, 98307269, 1197058221, 793917906, 1073724973, 3019064587, 3492390662, 4200127043, 4224441178, 4266960089, 803644225, 4023309792, 3542877742, 1608444085, 3337811214, 3803428441, 3320853048, 4075685638, 3623029815, 1087102281, 324804082, 1708672285, 315565660, 164495701, 2505107763, 1035184407, 3191255258, 4146026807, 1777022982, 3768856571, 873517385, 105032117, 873215747, 184699687, 47982624, 3357660242, 1475161030, 673073983, 3806735539, 3708225185, 437430314, 1072506458, 257423646, 2832989978, 892526261, 3640901688, 3451765703, 3692172300, 220993831, 3914718925, 3987869992, 3132230347, 703576820, 2865767654, 1465661348, 2798149170, 3251396321, 340830667, 267956481, 1211615972, 3107190458, 316687091, 2768947413, 3202110461, 4160813912, 573944361, 303974941, 2956924141, 3282885214}, + {2941127116, 4166762170, 1404838742, 4274313785, 3831581711, 3126181800, 2820427867, 654690049, 1237702885, 991027245, 30098867, 818143159, 3954379714, 987508898, 1307004955, 3978298025, 1339095000, 935830318, 1403304388, 1127505184, 3101343050, 3785433369, 1370867369, 633667404, 3477428171, 1370171097, 4249544963, 210883894, 2970432553, 1072453146, 974788156, 249951665, 3487613669, 439139267, 1505862867, 4072070166, 684973593, 3034707021, 2889491544, 4030083363, 3975258807, 3521115151, 3903992745, 3472665149, 904538541, 65262006, 2975287037, 2755083105, 879021595, 3718928871, 617537842, 1525474088, 3353613059, 3703121181, 1442526779, 60336936, 400075444, 80174611, 3644215864, 3874443254, 4065252437, 184013265, 1175831022, 3091668402, 3476562614, 3639601856, 2747456302, 3753139392, 809445731, 694232571, 170250044, 1096075456, 167569110, 840309664, 3879334751, 3858949129, 3441701422, 4065221142, 1589190315, 3752533683, 4082457373, 694012923, 4293330668, 1072627700, 1210249965, 3930432750, 3058828993, 2771848634, 268916918, 132555750, 3806153664, 28113182, 105666815, 1453853269, 4247839898, 3472318152, 4176782139, 3435453606, 148508508, 534367269, 406128926, 4087934971, 755017193, 101571342, 1240456013, 3371914833, 3131367887, 953038548, 3310405919, 1547965250, 2830719197, 3704735787, 3008866014, 1409473069, 2740852265, 1341605306, 3473007273, 3205231689, 400479289, 3939642125, 1062933998, 3223929256, 2822313166, 602098126, 2936859486, 3337942047, 133084926, 3409574110}, + {3273342795, 4147632331, 4130091611, 1179060208, 1213641714, 184034645, 1206736051, 4225555445, 1345038871, 3123186703, 4139321268, 2531350730, 1663780299, 1531066093, 475575223, 1329597910, 3152953151, 4026983508, 3006222067, 648604663, 4113345448, 3048277281, 3569682961, 1090012075, 300528098, 3789838627, 3268820183, 3298610459, 4024316620, 909301564, 1557468936, 4257147120, 3661802927, 2867138905, 4046908365, 4046857392, 217668020, 548983896, 505756975, 36877639, 3273720906, 889729567, 1776612829, 157162226, 3151735516, 1230192105, 3553283749, 1000458042, 3353144996, 1085615105, 4215908869, 1345764145, 590174688, 3154589642, 1210459884, 3063603935, 3289906248, 903430406, 4154762754, 4040354738, 1631577368, 3318878641, 1379151571, 1062264138, 2931861234, 1571806378, 670809886, 3374779464, 3274039572, 1255856108, 1800265392, 1406776305, 2987992530, 821358397, 3202413394, 1089543617, 4079412971, 826200532, 3830455827, 1814745523, 534926530, 1391664318, 1504302593, 220660692, 217974867, 1008905974, 1221833191, 1612790565, 3590515516, 281795305, 807250266, 726060810, 3373224190, 3241392454, 3906676437, 1143324384, 1123397314, 353764261, 1242844401, 103823141, 3407551765, 2762606576, 1102566081, 3037414463, 1408111599, 3661081290, 1055449303, 4279313829, 3485022806, 1396250797, 3369085896, 3528914147, 4060804688, 14992098, 3601116971, 633336918, 3874490851, 3527081280, 4032309490, 3946727094, 968348096, 1929647120, 3590215416, 1759427807, 1337007836, 2838431063, 388943858, 1881213231}, + {4142675487, 1085751524, 871218704, 234352668, 3218887447, 2982416965, 190364499, 1327440299, 1288327489, 1314513434, 1320822201, 1538991865, 3931640275, 1189539132, 4197650259, 4279899339, 3979915720, 2906396865, 1431225630, 3655131353, 1369852431, 3592503764, 3119789837, 3567974686, 3437642183, 836093869, 1507599930, 2841104431, 4211665357, 3663025176, 2831216986, 520544347, 1505078759, 3309582132, 752885704, 199238857, 3528522298, 1291921882, 536862006, 3104949168, 1378870198, 4221583003, 876284176, 1547390120, 1483190037, 98627853, 3268036346, 1429988270, 3216654115, 687851042, 718359989, 3190881059, 1105135551, 690860983, 990004913, 319595621, 1493760599, 3687202900, 3384492758, 3707113628, 2731325, 2953853913, 166276955, 1369432910, 3468170463, 3368633295, 3536255009, 552925484, 1405933065, 199287765, 1321089319, 3472833193, 660258344, 2853650091, 162799023, 134367954, 3450205515, 3555506004, 3739172142, 2972133675, 1337995967, 203839706, 3357231447, 1398674701, 668153168, 1229271322, 3139481565, 1038291734, 3176518871, 3542421001, 3407959218, 503893551, 418581985, 3819484084, 3176537909, 875760050, 3171794464, 348057290, 1270177242, 3991468567, 1261818177, 2904165678, 547556862, 569977913, 4008891320, 3512393144, 889976558, 2883969044, 3493721888, 1275218997, 3921729859, 3037344941, 704318675, 3335664907, 3174434307, 1330109121, 3165365178, 1041906709, 1505560330, 3945929634, 990191790, 600518117, 972610323, 3820289976, 3521649652, 195904014, 725810108, 850722609}, + {3578305532, 391791265, 2656454224, 1588477694, 3977898569, 3134464542, 951844116, 3855681352, 1415256365, 453299970, 719664916, 704763644, 2684051754, 3526116339, 3836813112, 3844978362, 2757146202, 505682933, 3644526419, 1009116147, 2750626119, 945369401, 1156450816, 1914603, 4292363072, 589811262, 4172752064, 3002055189, 3708272651, 2932746987, 591785468, 472599501, 449957605, 1577868221, 635182807, 773201853, 1491226391, 3459905469, 1288100052, 306125538, 257506596, 875275782, 4072519752, 2947152875, 4178703534, 3383299304, 885044977, 4179777878, 3702894416, 620491541, 2966772481, 2922896907, 868810168, 840032556, 2891430908, 170023396, 14155355, 1020266030, 835836451, 4175973581, 1256783350, 1264389352, 3142596783, 3506888525, 574024665, 1455535700, 3924497908, 2890618677, 3551420398, 3074155742, 1315431589, 3607674956, 1153286437, 3821521486, 189662243, 383778555, 752737248, 3730857256, 2863533287, 50065204, 1566293305, 4142019248, 1442208967, 2622214157, 1053540098, 37306199, 1153159848, 1089946919, 1480906221, 3695296167, 3696889340, 3608008184, 3537762021, 726882852, 1293541429, 3136698330, 1255332547, 4113259485, 2669550535, 819382467, 1682843600, 3391140099, 2971190352, 3528550192, 1504527958, 3124346577, 3243725241, 366673390, 1523984388, 3790472235, 38596142, 3388100652, 3638496226, 3975274821, 3961648605, 3637586524, 4272504384, 1220898552, 307560198, 4099067933, 383138473, 4014590495, 2741071277, 387566653, 3021683919, 1210590682, 3929363889, 438199037}, + {668471284, 456708364, 32300581, 1574878400, 319666936, 1578160184, 3992083131, 1376404520, 3777030720, 1058092580, 808253169, 901511174, 1138116941, 3004870358, 268903849, 619254601, 98287529, 3191647510, 581682971, 2864644781, 4261985209, 2804826062, 301391677, 615638709, 569006384, 4007795016, 667169340, 1244515903, 3705415075, 2949381958, 3636381277, 3695848267, 3602658998, 4023575485, 699014614, 307882240, 3815974389, 1063499870, 3424443853, 3536317098, 405220073, 3135048906, 1108022736, 1237830223, 2820848627, 769381335, 266156778, 455367976, 4039580731, 3272584286, 3608159295, 3527416820, 940364062, 3725456891, 1681997287, 1028436401, 3938039801, 3050886477, 1282266136, 2902840321, 3107992280, 752996946, 1674910045, 474742602, 2769896522, 4273486506, 217063854, 535178845, 1832902446, 2824427574, 4009906888, 4230986281, 684654820, 97305053, 1058368552, 2767442216, 701688040, 4088916793, 570047520, 418763702, 3271501731, 2947219027, 1273747951, 598411065, 2869713394, 1257327361, 3959743979, 351775463, 2463676322, 787996126, 4129908207, 1274295781, 620152849, 3478174470, 983967304, 1560158264, 382068200, 653125139, 1248414226, 3344158023, 1373157081, 673328822, 4105384965, 1556560871, 1303723263, 3140705348, 642724400, 402075919, 1020248524, 924241997, 1408758225, 332658751, 297857723, 207362562, 3756202455, 655744984, 774291962, 1675172865, 2952599571, 3358854437, 3740668628, 1003619053, 571605972, 1638745883, 855892390, 299916528, 972690892, 3502580033}, + {1817884327, 573156276, 3903663625, 721801548, 3443345871, 2618761211, 62132803, 634135901, 3898422195, 299242350, 917087681, 1003615253, 85536972, 2721973308, 3475504203, 3911492430, 1002386975, 4243210449, 872094174, 2769037107, 910479441, 3589264644, 3908392970, 3283804910, 993635839, 3235583822, 1320161589, 1528510042, 836553171, 46181284, 2847786724, 3123834304, 4198048588, 281017763, 1596536168, 3737526995, 4210632243, 583612735, 509418549, 1277152059, 2987534520, 151460143, 29677326, 1591613420, 29040477, 232777781, 3535187224, 622919611, 2998591960, 3223110708, 1414677734, 1044301042, 3190050309, 1528569720, 1455364581, 739132748, 1054141499, 1123359939, 3906251227, 3622221532, 3340757534, 4161447998, 675554028, 133448022, 216023258, 280910126, 3738767415, 856882181, 637809397, 3155153120, 4278390334, 3708034542, 491177717, 1005655111, 3370728698, 673697592, 1145811503, 3284061986, 819469272, 390458387, 4192023736, 4013024493, 3871531327, 215569330, 169262323, 1102958843, 331002657, 435205293, 254678128, 149836739, 3752584271, 1358444252, 3702454073, 2723108059, 4129670726, 3840301016, 246275843, 940266469, 298184276, 3114601004, 533193677, 312795221, 12768284, 3138528851, 681489961, 1253425179, 3785224692, 625161444, 3537037734, 3808646196, 1039213088, 4091005423, 4162274483, 3624867109, 337174844, 1322063903, 3170031448, 735297856, 203532207, 826296901, 229963563, 3325891854, 695612240, 448312117, 13552391, 653345030, 3462083463, 4025625332}, + {1073599024, 1521604576, 64087071, 1105184049, 3320065065, 3049107141, 1489160143, 4131049750, 3689788744, 2990350771, 2866466347, 1124214582, 3971878569, 4157561312, 1155196750, 3151566601, 4072259350, 1303850530, 1126438135, 4259754737, 532669089, 3990595756, 11274427, 4224690233, 1020186292, 380424003, 335736012, 3930255941, 347061726, 1344322069, 4245332807, 1555349174, 1138474800, 766235824, 794096605, 3005219124, 3728138432, 4182574680, 519511369, 1380011457, 123128022, 901790241, 3787523350, 3203483046, 1161011633, 3948751601, 1309598690, 3411141553, 3375302671, 1494600476, 1278139647, 1560302353, 434310331, 36198897, 2965681187, 3186213443, 1544837303, 3745378363, 440225239, 300954683, 1180382730, 3825204993, 3910585381, 3359132613, 1055801667, 1063120350, 347340992, 355456316, 402895136, 450844121, 352122090, 3270514351, 334447176, 1205313865, 2477218893, 1472282837, 3167670717, 3602500648, 3438367032, 3587237370, 3339238314, 1126910768, 3639932324, 56501204, 3827683748, 164929343, 2916683955, 4206887919, 3235425497, 3644305580, 470002589, 4225690694, 3140017180, 3824895923, 3141679665, 3711154408, 692123178, 3628404472, 3719608373, 961734599, 272960687, 673569106, 469581570, 3772790958, 222674384, 616285105, 3610499281, 1575743764, 3238785356, 548053740, 3575098058, 4146773428, 3041256877, 71356673, 3830849288, 317259198, 3269518609, 2516460247, 4171566554, 268814355, 3978048223, 1644041294, 1285807938, 3579057121, 957538531, 1206667068, 4213555162, 3024308422}, + {910821981, 212932123, 1122574829, 2831401974, 4098240705, 4009505469, 389721580, 96515077, 1087902026, 2886685760, 3662994218, 994270405, 2932039184, 3540861751, 699642797, 673856745, 1460147676, 3523671807, 3221951742, 256946615, 1516090899, 352335021, 4089118504, 1347553857, 751023406, 567947204, 1404380114, 789554411, 857163043, 3052862967, 2922619701, 3174047321, 1479590068, 284249266, 100115759, 3207841269, 3992781918, 3371370437, 3619491323, 3489348809, 3300332028, 849140162, 2737119734, 3437085893, 858067756, 105035954, 3294880758, 702416734, 3556647377, 4026396984, 3508485945, 231256879, 3863784718, 4184097535, 4182700865, 673720810, 2818821860, 3434799155, 2992048098, 3207146716, 516178616, 2767640654, 774519350, 969025879, 330565041, 1565384656, 856870193, 4162725130, 3981070096, 391793911, 667684589, 977145329, 3445620953, 201764280, 2886549435, 2747080409, 3522645563, 187098332, 1314123290, 3846753722, 421616350, 1011483064, 4072480992, 1035980476, 1245578800, 4223203766, 1077818446, 1134869798, 268223820, 3526703954, 1510428223, 3793740806, 1156233928, 2917186770, 735421602, 723114195, 824457995, 1495932412, 3527858122, 28782660, 1057302775, 87089128, 1177171519, 468115383, 3176186397, 3034899438, 3022130525, 2786212183, 3343034819, 1256871445, 367998927, 303580131, 1044842164, 849935378, 2891639734, 3607780057, 904383260, 1346023974, 3608002293, 1526247658, 489117123, 589736921, 589809663, 434445112, 1410393534, 38077696, 4189009839, 441635014}, + {3854518815, 2824722381, 800797288, 1412288796, 608034628, 638133563, 3731077945, 4282691673, 3997844485, 3116122300, 1229182383, 778152926, 1224521182, 82319341, 3203048379, 2314209, 3880180535, 3466901733, 3744975381, 650057550, 1105792852, 3486697467, 3082578898, 3426267158, 2957029334, 3637232438, 3780451021, 285020447, 4076531227, 29143354, 1287890879, 237130833, 2737617917, 1224072256, 3151154756, 1068641996, 3681167916, 3651934734, 1314009021, 1341118545, 2784616187, 3400807737, 225258043, 2985663253, 3186896844, 1478275826, 705750948, 4231545576, 4031325742, 1039286068, 3282655307, 1000212, 3956772879, 292286257, 219504956, 2756606043, 1221927686, 507172056, 3278140987, 1086970699, 1441378480, 2754556952, 709040867, 3217339878, 1370557099, 3005702488, 650384140, 475943690, 805380089, 635894352, 1068435789, 375045949, 1504905823, 1108687282, 559889385, 1125691464, 1372208173, 550292022, 1090720225, 15452952, 3534659583, 3203329097, 4165586641, 2950243897, 1194769855, 3728062144, 1340301497, 2906501661, 85514543, 2941450219, 248893676, 708566500, 4294751980, 4212743621, 239903024, 3025126364, 3663739735, 3339714061, 3744954385, 4265478092, 690117406, 519104072, 877579858, 1478371116, 3385350373, 1256463686, 122875634, 252045351, 4072012564, 3577673742, 519873252, 3186341071, 535382069, 2835079967, 755181396, 2956301217, 3905836545, 106353747, 3271935724, 4288942276, 3486246737, 399683363, 726513483, 4147197934, 1012415304, 152263257, 2973369894, 4060161856}, + {3502261306, 439621665, 297905932, 551148828, 3534075407, 4130449849, 3776654039, 719345652, 1051005883, 3738704586, 3492668985, 1077129686, 349171915, 1077476642, 3772117189, 3859859942, 668155111, 922989295, 256888119, 870582440, 3368360720, 3209501274, 318689848, 217844819, 3888969167, 4062661720, 1453441543, 3299529669, 1627737288, 1254638318, 372614441, 89592397, 1576030009, 3559068188, 872083999, 263769927, 4182918232, 3754110154, 3487344167, 1059459371, 3087000008, 3537116705, 95807429, 441340774, 1069985357, 2752296026, 3604224090, 203859221, 1643759579, 1408756548, 3639161553, 1397283025, 928115710, 420092215, 3307390044, 3302441475, 3924206675, 3578855940, 30267667, 1649954321, 3500824562, 3989102038, 4196050765, 3004045069, 2902785457, 4276033019, 2917640878, 249901873, 3470394935, 3050921231, 3661814220, 1424311018, 4198635881, 3090144575, 3544899323, 2971928872, 288804930, 1441844520, 3073222342, 2938153690, 4161007262, 1622586304, 1023794418, 2934681013, 2849507881, 3040548113, 2863900200, 236386851, 2782925164, 3692498601, 3151825210, 843794461, 3842955611, 2948805581, 3859982597, 3957472520, 64739041, 319426297, 3913341765, 516220223, 148433875, 2846152709, 475020981, 1373980210, 3629321103, 3754278954, 2887662502, 768348863, 2938217720, 685906418, 3945601324, 2933544992, 3722061230, 3082864981, 1396302531, 3635550875, 4250461507, 826847197, 3139947712, 3022701790, 4282599967, 586014958, 1374754511, 4292756701, 3672251719, 1213062445, 430100688, 4008329807}, + {1172566533, 3436905532, 1313500684, 219106108, 483800400, 46217393, 1180524341, 3795982569, 4079610894, 4272748042, 3842908762, 4217054097, 4228044239, 941899981, 1039536882, 3424193786, 1041053467, 1565974531, 3103929293, 3643497657, 1007993164, 466952710, 2991973584, 4247765281, 3092378081, 1108677424, 941892315, 2571394917, 956082923, 1069305005, 1213055954, 3032741176, 4215013163, 282862778, 3233037405, 3186887683, 2834681359, 3739575086, 31672563, 3173360158, 413583116, 1878038031, 841175838, 1229662475, 436349755, 942596128, 3879006496, 3511617477, 3259590675, 3283281334, 2971737602, 2585961192, 2871519894, 582680762, 524338376, 525925153, 2768682577, 3568366902, 1732313934, 2956808197, 1210525532, 3863095086, 957204250, 433575650, 589574732, 4156702402, 3466991266, 289858509, 4007058392, 1070195652, 188819228, 1309867977, 2747523683, 400426215, 2914083061, 1470445259, 698956467, 3004968219, 4194626312, 4027081777, 523320355, 4056814663, 2765220113, 715312179, 2817122535, 3587394325, 4290835526, 1124800559, 3560395806, 4065060815, 1218926030, 3652730817, 718482661, 602356445, 4108186623, 2489136133, 991971622, 1226001220, 3036482626, 3777643584, 187445062, 3187583976, 2897803969, 353126220, 887506169, 2662195178, 516835009, 1363622876, 3988078662, 637083562, 3506905152, 962059538, 641129705, 1395045902, 2822501864, 1004354635, 871540259, 1330125922, 3445354529, 3569279394, 356130087, 690761914, 3478392649, 3887080385, 962286255, 187194558, 617530442, 1270961075}, + {787859150, 2870412622, 234338141, 3003590458, 4282200483, 2814588203, 1360810521, 3586970809, 3836469694, 3876395515, 3518612964, 303450337, 4074032913, 3476931522, 3772047593, 3640781343, 3249929204, 1363556636, 3433584461, 1041026559, 1323839411, 3191752479, 2765298230, 374729484, 4131721894, 1412870361, 1089150287, 3042136783, 3542167343, 537418274, 34057228, 1177467653, 3793747169, 1590802722, 420596294, 1541610443, 3663382282, 776418379, 2806385229, 771338824, 3875388331, 3771916533, 1076889693, 1087119322, 1395444900, 1445972269, 1021581367, 637200727, 3546164224, 22196302, 4154480072, 3667603160, 889188040, 1277678117, 2807506599, 164176466, 1327603216, 3352838730, 224578526, 3141855945, 3487827655, 3768627696, 1176040516, 773597365, 3792515539, 675299142, 658651599, 4117379019, 4209691156, 4206406153, 3619690799, 2956715866, 3101205185, 3965108649, 1292453042, 3997678832, 3762334186, 105369905, 3255386033, 1086919517, 1006509785, 3775121063, 2949686963, 574951921, 200271016, 1242882470, 657405880, 589944255, 1203569713, 758304693, 3643997868, 2953889799, 3153581344, 1489263587, 4176918612, 3108287738, 910761744, 3862011339, 4009606377, 1219509838, 4096774719, 623976793, 670436630, 1591781571, 3601054936, 684215106, 1476317092, 2933060403, 3947735765, 3747999696, 1508816980, 1354573130, 4180738988, 456202444, 3710928989, 3137484455, 3475647542, 184036145, 299083444, 464167495, 1277745116, 1021288507, 156085495, 3912090812, 2789813208, 1170457130, 748307012, 3961824786}, + {49675068, 312611266, 3104679612, 3411543239, 3019521520, 582637590, 1145113928, 2797186015, 3071737311, 1531424051, 3459895138, 1529815110, 1005475661, 1043156552, 246537274, 4207226307, 1051184284, 4281260224, 875290416, 1386602216, 404495914, 842336292, 1041284334, 3797351093, 786546937, 1359888551, 3060313408, 572197379, 325239824, 1413268514, 858649669, 833367570, 1186141987, 3678721805, 1061833131, 1255646293, 2715616827, 172751593, 3507043150, 469032177, 3224641859, 3739371501, 1432007094, 669304602, 2848337987, 515309902, 282326953, 3567305684, 330474510, 1223095533, 2752690439, 2937079304, 1144788507, 152454685, 954878209, 2718952524, 3638774563, 3023232786, 578177270, 1356197362, 3477999694, 3895572966, 3104832172, 3982218924, 3390814490, 3393991645, 508508949, 4173112774, 4128525553, 3973400596, 1598571319, 660351930, 4070589762, 2703996122, 962186763, 1129661167, 855240415, 4222662100, 788072017, 3742381744, 1039154184, 1342243070, 1496265684, 3470336613, 4198777110, 3288329546, 1142427215, 2953005027, 212552432, 3132566699, 4256416002, 1193470812, 1389929045, 3540521032, 346368929, 530793535, 524760805, 3652272333, 4283173295, 685389002, 1309281803, 1631782330, 3309577730, 4109739592, 1279505985, 777134271, 436594755, 1119542085, 3578208346, 269048847, 3770150980, 3696877856, 1574695857, 2982003197, 308136627, 1206196422, 3288981688, 1466718870, 2857545498, 100779289, 3238188284, 247594005, 363024678, 4010297606, 1626754727, 4121174321, 976180285, 3133674322}, + {1106548194, 1497509691, 3434607899, 3169169350, 1506072491, 1043738834, 65597230, 2785234359, 224185830, 3964432365, 1445772122, 1110558522, 3896827700, 104717255, 3780166413, 3886460653, 3291689638, 2934944544, 3459183042, 1277697298, 507323639, 2720863682, 786180941, 1230052127, 4155558679, 852246834, 550130972, 3037914793, 3166165185, 3857069103, 2906252557, 1476991166, 631660204, 3743371230, 147441629, 772287521, 3709618640, 1155099952, 885330348, 3132094502, 3132242162, 1714693673, 3201191995, 3780059655, 3873060530, 3605648971, 1405626569, 1427129279, 451676346, 4123268788, 2824476735, 3578938373, 3524381496, 3639473568, 3055295225, 2883413246, 1339509588, 3301962012, 203739923, 951506741, 1195243703, 2823246110, 3825532618, 3864799803, 1106788259, 3643802098, 988144689, 3140004431, 726475969, 3025391664, 3066631985, 1363715255, 598042544, 1614152216, 3058195392, 3105947895, 1806737959, 1326491326, 1089011020, 4062634038, 833479623, 3425822936, 1327365329, 340565933, 4029544209, 3796352519, 687657495, 3888043301, 838362291, 286007474, 1628648987, 3393568778, 4144771339, 480730129, 3604486475, 2966221561, 407073277, 1126094340, 1361724501, 3575967789, 3640927406, 635911388, 3282847397, 128669421, 3204572672, 3887257326, 3909095373, 3177044648, 1022417636, 1144646473, 3173860104, 102352802, 3677376786, 3274387007, 783706665, 1610327123, 4028829726, 98980399, 4294835400, 743457095, 100336418, 766042944, 1595434510, 4171604771, 3419249601, 3992301872, 3154690845, 891441589}, + {603694921, 3870270992, 937644516, 1185276167, 104870322, 1190202309, 570337835, 3562621993, 3236679432, 3452309711, 956946727, 4055179321, 3704403955, 1307847503, 218690740, 4214281558, 3074250927, 4010063110, 3625918198, 418332957, 50725055, 2648328359, 873079479, 314843212, 3136680015, 604710412, 1638272794, 3962982231, 957527390, 1312555790, 2835869509, 1090266540, 3855804361, 382838024, 1018115929, 584257325, 5102332, 232108057, 569779222, 1516105537, 3842373658, 156453628, 4107848699, 106608932, 1303307792, 1262337847, 290958313, 3906099382, 33608154, 4098502589, 105167091, 3736084447, 682030866, 622316462, 1412810161, 3388129573, 3120041261, 682187282, 1362241518, 3562009085, 250864828, 889184505, 3571459818, 3282221900, 1001321553, 3207345415, 1561611049, 1612630549, 4157795326, 1462051150, 3997583659, 691006297, 365548792, 772452851, 1252587191, 3819904271, 2940998690, 3721151471, 407681484, 3777768169, 188353780, 3626843870, 4189909721, 719992549, 1488431702, 3105405516, 4283325775, 756427571, 2824534101, 267185688, 118741975, 3358909696, 4130715392, 2766942138, 4216707383, 1336596947, 3276418809, 400107464, 2957524426, 204487764, 3149413372, 3722780463, 3165993541, 3720219412, 3713518243, 1260386230, 56360641, 1108827049, 3562810424, 4025608503, 967245986, 306967559, 3191265243, 3494698181, 3589252288, 232136934, 281938929, 3219782109, 641464871, 3743034536, 1711712423, 288167749, 488358165, 3744970958, 606592430, 4245293092, 504631506, 3825526953}, + {2722020595, 706656189, 501529026, 3336558537, 1326720584, 3055950278, 3267816481, 771998498, 3646809916, 62446022, 3339607264, 719080191, 3960861264, 466754391, 1279987228, 584575913, 3636482329, 3366179531, 514639030, 3774083593, 3706643750, 3097997873, 4229081313, 27411251, 3226522298, 80811004, 3975349494, 1185493170, 1059136054, 3696941533, 936588607, 288223832, 754630214, 3643465235, 2736207441, 3857243863, 3511895505, 4189241514, 474987179, 199362835, 2987279869, 1144407256, 861161131, 804068933, 3872976390, 2781304809, 471475437, 671924028, 1027483588, 3421887531, 2968786188, 604647243, 1428662790, 3877114922, 2799706567, 369942449, 1422784795, 1279993301, 3418940942, 3105015042, 2947166411, 1526811192, 3493723438, 279762629, 3427411159, 3942052955, 1001390009, 1054432235, 2821216168, 352142510, 4247084121, 3644051106, 1071504296, 3571437802, 3742156858, 2887060727, 2969099589, 1323385161, 3790423039, 3435446449, 4075346188, 2814040379, 62315462, 296507441, 1044846627, 1572849598, 4260296102, 1106260550, 911820054, 2863387850, 3192504747, 1154858473, 2783794698, 3108379601, 155376959, 1511400666, 1394474830, 923868245, 1104619516, 671411269, 769373943, 3165524551, 3544040355, 3544233253, 3000551356, 3071478459, 1185398778, 2768067768, 4133275738, 3109753025, 1024386394, 2752973530, 96149702, 542843714, 526176441, 2721178076, 3720800832, 2485503, 4257343580, 4065136636, 904974684, 669050086, 1038614963, 3176379221, 3473977804, 3370385641, 538120501, 985116246}, + {2754160639, 3450525276, 3978632391, 3956036773, 3744227056, 521365719, 3378451729, 3728483382, 2823425048, 3923439594, 3420717010, 3056224196, 3979854355, 1345664508, 2805405919, 3488695572, 1610344619, 3939244034, 3117951507, 1320332625, 135360163, 4271840340, 123431595, 3607189943, 3285922064, 1353509296, 185338403, 1681453083, 3711560495, 1262997850, 3856909307, 3066480103, 808846791, 3008964394, 573979556, 1319855823, 525623202, 1959801640, 162418689, 2752515512, 2667765762, 2956213524, 3703188445, 4196088353, 1781838513, 3287636027, 4213900256, 810932721, 2737253544, 1471532515, 3058250687, 435666688, 786619834, 1840451573, 3082874626, 1450503916, 1222298294, 836223917, 1999484184, 2453715132, 985989958, 605205808, 888811069, 551222245, 537599943, 3216319237, 958142527, 3238721548, 1480708698, 203624729, 61352727, 1254441390, 3896535744, 2745758885, 4213259757, 407053334, 3305897046, 1397086415, 3215678699, 486385692, 4257141965, 1541480720, 1086319423, 2600140456, 2934261816, 187808093, 2872797223, 3520222638, 3529110772, 3639649837, 232529872, 3754209314, 1128270129, 3824696352, 3401599547, 3684974793, 1310343853, 1343667032, 926629665, 3335339984, 3806538188, 4293059128, 4014999755, 3642671684, 3071632813, 540794652, 286066471, 3237563582, 3356751813, 1004000306, 4159744951, 3570931462, 2949177548, 4078740473, 1443431670, 902748870, 841033637, 721812795, 3825913083, 356774349, 2786706714, 1205348172, 582180701, 3510485051, 2755120394, 4025937469, 387592918, 168483031}, + {3443646104, 2804410383, 315305280, 3804417765, 4054893630, 1465007320, 3387238107, 2738690094, 760962583, 426172717, 1746995266, 872525396, 1356862679, 3441244896, 4042009606, 3503832081, 1154235710, 149683118, 816557654, 926267885, 4162260003, 2950559418, 1376596439, 2756197654, 1512916137, 3188784348, 1425011916, 2613632474, 534694672, 3086091299, 499378153, 4293611944, 4122265766, 269935061, 2669546208, 170320958, 1343758108, 3882154003, 3510034182, 432796217, 4294514462, 3375381486, 1076708765, 3468699051, 3092096986, 456981412, 2950549670, 72793368, 337988015, 2824229549, 3821227221, 1127994401, 3811304951, 375898599, 164680951, 3912349233, 322511114, 1372895397, 3712687435, 590551705, 1425654685, 3963298042, 154587948, 666355929, 692327761, 1453713445, 3359750678, 3924031765, 1238045259, 1405867689, 2897288968, 4005013425, 908707342, 532493306, 2671844314, 1531979999, 4094097730, 3612678969, 3367315489, 3576709110, 1504317489, 3859237021, 3923524306, 1194143267, 1663919432, 1210855150, 3420667410, 3692348206, 17195740, 4122410411, 1209710872, 1464615893, 4172932797, 44475689, 3120257319, 3924427231, 3508091406, 2999170738, 1253785377, 3602499069, 4141403821, 114899031, 3672551500, 931116794, 4115078682, 1027232239, 2999840198, 701576512, 849653937, 1672234533, 466593630, 669523757, 3813344723, 2816885478, 1463659820, 3529053477, 3628116297, 3077118020, 55399128, 368257463, 3344500716, 1029316570, 1230812665, 2884319282, 3558875380, 3273279821, 1557749553, 3996726500}, + {3963171576, 116912816, 2939746377, 3294184234, 3893810755, 3360278222, 782447311, 3025593265, 35433819, 3139740323, 1355276495, 3793967812, 2947996156, 2951617349, 1474543137, 3774852293, 3879525405, 4077270697, 3275313687, 3404334334, 3926639817, 2840504348, 365882592, 3606752848, 1414998083, 3678451149, 4022770386, 1346226250, 858594394, 3864071920, 3454747115, 390991197, 3601271810, 3586437860, 873150015, 736034530, 4147783393, 3342525148, 3724346560, 3067297772, 959981309, 111428612, 1410505553, 3089944351, 1123140172, 3956128220, 3811641548, 3960193039, 3607894861, 1090441713, 1303984479, 2839658962, 128132696, 1269151719, 514994248, 190463170, 144962018, 3607148737, 1548853413, 2923475644, 63172153, 56341527, 4172953039, 688395957, 307877809, 4129413310, 2779106211, 718295096, 3477920340, 3289099491, 754690051, 3796119064, 1591279702, 625780787, 3014838531, 1005734492, 1373908000, 1397888771, 4105255347, 3501192495, 4211860712, 1361370407, 838443707, 3822044733, 3215508409, 234864048, 3156278874, 3257643533, 3368959837, 3154315695, 169914933, 1070881742, 240400466, 3192202569, 3437303829, 474163375, 4038059199, 3963293999, 893206525, 3082939839, 603465716, 130618604, 652941123, 3979087053, 742187580, 286584255, 3645501508, 129323231, 1073148426, 3977713064, 4045066206, 1035132654, 288997639, 890719018, 4112269555, 3741729743, 1052194371, 69487039, 766793535, 3241286113, 4177272406, 4230236226, 1007631074, 4259263048, 2822571002, 2773791254, 4138722099, 1277240132}, + {1590696225, 3082409453, 1011477852, 64888799, 697377722, 1412609511, 1495685941, 354923452, 1492647133, 1058608723, 923228322, 3693996279, 638205219, 3239652835, 3970194616, 483915100, 3555465043, 925418789, 3105469900, 4114102253, 3991126239, 1187817208, 1087241048, 928905292, 2746224716, 1193693914, 4073669140, 870156985, 49544294, 431820201, 1001348446, 3655672772, 138410584, 1224493018, 3437252806, 3551058694, 1007683636, 1345964875, 3709583440, 3622808538, 2913134010, 467060525, 3316640254, 3220307617, 1270075982, 105638451, 153628227, 88347859, 3239071524, 2834124327, 3375702018, 196093897, 415975335, 3460284097, 777568067, 574491588, 1324493620, 535371597, 1072418915, 3905472421, 3958922685, 3669095662, 2799420946, 3052746311, 4011046996, 3635718830, 100474812, 868402630, 1461074763, 641457353, 3067664080, 1168523466, 1129536484, 3611043160, 1025482289, 3942759734, 1188184574, 1329009451, 263441104, 4121835493, 1157646541, 2953893818, 2991915802, 4140502284, 3084717345, 1355944464, 3137320906, 3309983504, 1141952166, 3925938656, 784183628, 3218724260, 3923770041, 521852600, 4214447164, 3288357164, 674943562, 171962426, 741823940, 4109888284, 1078002541, 3255958702, 2728997590, 402011949, 756678177, 520738600, 3855680618, 2981648605, 220520454, 3726565839, 658384335, 3953461809, 608742465, 3386713889, 3878218427, 1424729326, 2722557146, 340915653, 1117874214, 3629957703, 1002037723, 1088412081, 3115652620, 603718492, 940779593, 3171532852, 1464137659, 1405087581}, + {1482830242, 649677833, 1060177652, 3773702965, 3157102015, 3926503607, 4124095695, 3209444386, 1152014365, 3047186646, 3408257804, 3259587366, 803555345, 2967361531, 2986866469, 740285437, 4266211143, 2902283009, 3285829701, 39177144, 3025350909, 4139134914, 3986506296, 3940877826, 4158646249, 3327728826, 1404116310, 4056612375, 2772357884, 1512838224, 4291897858, 1106987825, 1470766133, 1369302488, 384958674, 1558650930, 1072890434, 2993166863, 3676222767, 1105788635, 168811055, 3489979900, 1522339361, 1221196348, 2834713014, 3763419309, 1153807138, 1496361530, 1560462255, 3786655941, 2837059331, 3703662278, 2837260713, 3961405693, 1092533255, 2969824352, 303233848, 766457361, 145743965, 862808067, 106681165, 1197297627, 3421779125, 3928753448, 1243000267, 2835309483, 4177969844, 4195670801, 4191741777, 4275548847, 3810412710, 3394261315, 759572577, 356525133, 702141336, 2990102451, 4215063238, 3792100125, 4246078195, 535829913, 4134535209, 201328290, 1533297729, 1542090985, 2801850114, 453230424, 1273836356, 3806747566, 625701282, 2786331961, 3226425431, 2932075505, 870793193, 715826671, 3915960250, 1376966955, 3718677748, 198449645, 283771611, 3049205034, 3444041018, 439660628, 3477846734, 283458602, 999109459, 3637837473, 4044216668, 409587880, 4144511549, 1089602811, 3938117580, 2737224933, 3205038509, 1356048839, 1068437012, 2938201628, 774458201, 3786350462, 1477990648, 3322806357, 2838680860, 3287569431, 3122511045, 2863682024, 4111744070, 269009497, 3020581511, 1475353528}, + {2650515876, 1645567545, 4193036747, 1428804794, 369036488, 4028346899, 4131785668, 1375721921, 157099322, 335293515, 2690340941, 4037761301, 35903981, 3358593704, 1094460365, 273950973, 3509827074, 3445435109, 354013634, 3473690155, 3136816149, 3149387597, 3266974256, 2949525703, 53587023, 3737312342, 1391991218, 3185092047, 68806592, 484192954, 391696548, 1319881129, 3743166288, 673163802, 4230474913, 3656915037, 1042139936, 3141974834, 520680530, 3813403469, 3101575696, 749600500, 1221805253, 969940915, 2921642323, 3407223214, 44755884, 4082052340, 501289262, 3910948666, 1101938738, 2813634471, 3489726431, 1678371376, 1843854914, 1664436649, 3151297036, 346744557, 1545447959, 164881408, 3606437205, 3025929447, 290856003, 3930069685, 133710123, 1240513868, 1423556874, 3912685023, 400865262, 3067101349, 3460042050, 1224145058, 1170193753, 1707526696, 526242139, 4261824993, 1458168792, 3300273189, 533278133, 1728380870, 3774537414, 3543251221, 3848128421, 699262440, 3142898961, 32510477, 4239200425, 3764001238, 3844729427, 3303529657, 398537209, 2974304522, 2868363318, 4148966579, 83450959, 531887038, 4172620196, 3521829828, 83931427, 741723403, 2773019394, 1529358581, 3425504802, 3610514921, 1571201613, 726137250, 3856270157, 2772505636, 665183254, 4040829700, 3471200585, 543083968, 584370163, 2801793077, 583580844, 3192511682, 944521009, 3552185606, 1306896882, 1347335394, 114476301, 733456707, 230448571, 586202457, 3592178405, 1039791291, 383319970, 2905533610}, + {1465893706, 1488324667, 3340877782, 422641751, 2719170581, 1315525630, 3069903842, 651306712, 526245947, 1091688994, 2889541889, 3457640465, 742419935, 3353162560, 1381245255, 3456291822, 3552829090, 252698411, 120113720, 1557785798, 578037207, 4124841474, 576577283, 416682294, 3611586306, 1481699060, 3797313544, 465063259, 1213018878, 296557373, 3069116640, 3797680408, 4014916799, 4125518107, 526388996, 726652085, 2800473179, 134423634, 3152991023, 757406769, 401076735, 4237715510, 2965598236, 185783108, 4208072465, 199556537, 3709601032, 371658046, 585248856, 3822185282, 403434167, 2838028542, 3658372876, 978864142, 1191123236, 1148632850, 654129974, 3998373380, 3874346984, 2888583621, 1410098112, 718198554, 521651226, 17245210, 3792719400, 152249255, 370262437, 3461169612, 623586366, 3277254208, 515124468, 978696185, 3394136120, 987041112, 3508410075, 739822408, 938259653, 1514734663, 3998419998, 1146173120, 2782863387, 4163107597, 651972321, 2883004422, 3268476590, 3354927321, 3071461464, 2804771079, 686874116, 2947396595, 2949369424, 82243587, 2788182438, 3187593993, 4027717962, 1580624143, 3863530808, 1361958721, 1105937145, 4197375711, 566766785, 3470660701, 4281254616, 229950913, 610026031, 4279164619, 794261708, 1118720000, 958800047, 301657647, 119028911, 3923296253, 1245497281, 3485451976, 4114993142, 282084187, 3232941905, 738275531, 891212807, 1348085572, 1357370405, 818946870, 304344614, 668287053, 453359348, 3959864641, 1305095621, 1472728789}, + {68070744, 2715464275, 3706182562, 775728935, 3108345654, 2728019926, 592964585, 2734644667, 4129077732, 3054253047, 3662798109, 1348237029, 166922192, 4226946315, 3332584477, 1505096742, 1057972804, 3085913644, 1102819933, 266068814, 2998332230, 3155968250, 724900909, 217237689, 4249073662, 3356704535, 3108041504, 3389918249, 3409008639, 3283016683, 1103951461, 1499082678, 2951817209, 900275200, 309278254, 2818769483, 328843728, 3272667874, 893546448, 1289592234, 537898149, 4147244080, 858049360, 1587623124, 3629998100, 3869529549, 826149140, 3150765872, 286308157, 4065903897, 858464428, 4770275, 421925082, 3181731314, 390780904, 691759179, 2998734037, 3742583905, 2740737463, 533711447, 1068189207, 1239432483, 254925120, 1422343772, 3103513609, 3658074172, 4241506539, 1549158315, 454898621, 3776190236, 269273519, 3727949281, 1338134863, 3108020223, 384824915, 927618401, 1362183703, 3831291856, 279958790, 3686546230, 172079688, 2921730359, 973731307, 4182837089, 3125017176, 1465508179, 1517290417, 2875199551, 167141844, 3810833378, 2786677329, 801446319, 1376631621, 3928957778, 498178843, 4240755810, 517368149, 1413751755, 178203682, 61473238, 1421679842, 1178429365, 907361260, 959921376, 13356486, 79517870, 826490672, 354978827, 718905385, 2718145824, 1202608584, 3057560276, 1561090655, 3351429564, 1076940721, 3006262330, 1244377110, 693790716, 3774194193, 3691395931, 3051600647, 3772617815, 1460224971, 1446315441, 51751661, 1191247906, 2949027577, 2755415792} +}; + +static const int F11[64][3][3] = { + { + {3788017945, 1572688879, 3504829348}, + {2590732658, 3902187805, 3023611807}, + {2733129188, 130749553, 198107851} + }, + { + {832149567, 185620701, 1052006926}, + {504778257, 918230492, 2489497171}, + {3198056537, 1521360817, 3669025204} + }, + { + {206814667, 541731847, 4258109999}, + {1220652657, 2739757734, 464940807}, + {2628583500, 575541785, 3713964060} + }, + { + {1744804090, 1421473247, 1930758251}, + {2678170745, 3795516494, 3953609003}, + {567600834, 3542518903, 487139780} + }, + { + {2863283950, 1358953535, 1699104503}, + {2464038909, 1006378263, 3474290898}, + {2564106318, 3691191304, 1945784333} + }, + { + {3291993013, 1674123287, 2405484312}, + {78358021, 1030412900, 1673932845}, + {533323630, 1722877207, 521228101} + }, + { + {1337382122, 2452518381, 128429867}, + {752495184, 3174986164, 4271634116}, + {307689674, 3259211568, 4184433195} + }, + { + {3759764516, 3721349058, 1172293292}, + {3277460915, 1757700937, 2655206951}, + {46249700, 872442527, 3208878374} + }, + { + {3713341585, 415599735, 2607763963}, + {4094042012, 2669977085, 1828452667}, + {934538597, 4203780338, 3271865421} + }, + { + {2503323713, 373911693, 3141136474}, + {947137905, 1246895544, 765754141}, + {1789614302, 943141123, 672158401} + }, + { + {2496748828, 421869675, 591242753}, + {3895435723, 3807303078, 1550058945}, + {1952031666, 1273269259, 3098404032} + }, + { + {306960392, 1775880525, 2405105048}, + {831349511, 1263255599, 2729755334}, + {350943154, 2818148886, 503843089} + }, + { + {2713574470, 2378384352, 3387281856}, + {2657958537, 1782830649, 1671888989}, + {1822160350, 3130767500, 3627064368} + }, + { + {1809082482, 782199301, 3242436254}, + {2348369053, 12757906, 1556696132}, + {3846027632, 3647519999, 1643654774} + }, + { + {3293161000, 3081673213, 954181614}, + {3532952497, 2653301073, 3695984803}, + {1547164517, 3773977409, 3288994902} + }, + { + {3329893792, 1371624562, 3610980719}, + {3991187970, 3295431879, 424744736}, + {1158164461, 201180661, 3875930300} + }, + { + {2790525473, 1519555769, 1253908017}, + {2529704888, 895579152, 3049932243}, + {4293744958, 2721268962, 991748872} + }, + { + {3798887635, 3433099636, 83021379}, + {2882617790, 610769208, 85654820}, + {771137642, 1289503149, 3595420986} + }, + { + {1846133510, 939263566, 2862772249}, + {904340029, 2660346707, 1387250257}, + {2526978414, 3090048215, 1675675289} + }, + { + {1122286544, 450333485, 174523561}, + {3072089575, 606005822, 996989476}, + {2511830263, 1570136571, 692734705} + }, + { + {816977639, 3114772739, 211492910}, + {994381514, 3373055374, 1339057629}, + {3922348697, 2911725102, 3857511396} + }, + { + {2519613849, 3755897592, 2432685878}, + {1310083663, 880460916, 4111768862}, + {1575031224, 3553579579, 2336420426} + }, + { + {1275061801, 3511293772, 4002824476}, + {10618474, 1196381583, 3990822349}, + {12881320, 262135558, 1122669819} + }, + { + {588422917, 3149591738, 2478143986}, + {2349074653, 3886480716, 4084512786}, + {1143830181, 64175131, 1478385458} + }, + { + {747229727, 3196675386, 116561117}, + {479023386, 2903771021, 447156925}, + {4123268611, 1909235346, 4105857086} + }, + { + {3952649582, 3885408729, 1402611467}, + {4256916426, 2715573054, 4247520782}, + {477171570, 1648266281, 2976442551} + }, + { + {1757350611, 529302246, 3685132692}, + {3193633127, 3852513527, 3504430933}, + {3050570594, 1242149326, 1462771548} + }, + { + {941041135, 617189491, 4069739156}, + {874303182, 832361309, 2980311994}, + {966746848, 228966827, 526335191} + }, + { + {3031326460, 3415545352, 2678405028}, + {450101731, 244695311, 601548107}, + {3350912497, 3408444967, 3304339137} + }, + { + {1204407656, 4255599697, 2736201952}, + {2590617931, 3700824344, 302766154}, + {3184127315, 3161064414, 2544449009} + }, + { + {3099715293, 3894976356, 953459001}, + {1470993364, 1716802631, 3881294755}, + {297059658, 3103711404, 3405758963} + }, + { + {2936600471, 3830310982, 3537660359}, + {3812961658, 2939877865, 3552288866}, + {1395271374, 3684347401, 4272685111} + }, + { + {2531718855, 265214768, 487929768}, + {3871455759, 2637617908, 3317513465}, + {4159431087, 1869955306, 2335121330} + }, + { + {4158612995, 1575737529, 2952568207}, + {1315447384, 1347693565, 2497254068}, + {4181225369, 395668961, 3579192515} + }, + { + {3107344366, 798242384, 3478168800}, + {479782542, 1709319645, 211213888}, + {2513446592, 3484947022, 1569824499} + }, + { + {3005230253, 1671222895, 2468531448}, + {2348998868, 2751801327, 1004724940}, + {2124040843, 4047624788, 654195907} + }, + { + {875019840, 1729388642, 3365033391}, + {3323079251, 372419012, 2782353050}, + {3637545524, 3568167721, 1462103100} + }, + { + {4283893522, 2774562087, 200447849}, + {50064783, 3908237784, 1455025471}, + {2394149209, 1639630178, 2828617755} + }, + { + {1080352724, 2498414336, 278588273}, + {4223452152, 3539204959, 905749965}, + {2716589163, 917510349, 2398531176} + }, + { + {2721176213, 378346578, 3365340343}, + {224096547, 1868729323, 3986794919}, + {3256352759, 606674711, 1553345436} + }, + { + {3474247890, 1797016986, 2674515961}, + {2935676399, 423020366, 902852955}, + {1315182125, 945094597, 4137543823} + }, + { + {694720787, 51618191, 907925132}, + {408564218, 2048271102, 82920985}, + {898641506, 2830410049, 1627571242} + }, + { + {552556042, 2371725851, 447369428}, + {3759511869, 4056161831, 435325441}, + {3594948941, 1138859104, 278969508} + }, + { + {557039301, 1338680166, 3198893019}, + {251023543, 641060136, 1094597417}, + {127012796, 1741713763, 596734821} + }, + { + {521639208, 288131557, 2799168673}, + {1494511168, 2734661735, 1832712713}, + {3907275890, 1268125687, 1053504421} + }, + { + {1160794468, 3518294051, 3186475892}, + {2801421149, 566202732, 1819690327}, + {1274344232, 298491221, 163006708} + }, + { + {368330404, 2710943644, 1168166915}, + {2589584095, 1271019947, 2812600682}, + {440258372, 2855706281, 3295526639} + }, + { + {3497365507, 3298315033, 3646165778}, + {3724308824, 99849392, 2888193939}, + {3557898333, 140591453, 896921804} + }, + { + {2562430746, 2814283444, 3217511778}, + {200209740, 858191041, 2982861227}, + {739269645, 2793076066, 3156439743} + }, + { + {4238806286, 658049126, 1423725035}, + {4074105860, 451326517, 3358400680}, + {3651341272, 3136227433, 3796018275} + }, + { + {3136501868, 772269402, 2653645502}, + {2688831120, 1586477806, 1085372854}, + {3645063441, 3922326637, 3242088989} + }, + { + {44655146, 2355698377, 3751110075}, + {1094046367, 1063563517, 3838443270}, + {1664411132, 3076198462, 1702064898} + }, + { + {1123041013, 323065815, 1621822688}, + {2647065149, 322372386, 3127966183}, + {607452839, 2743864093, 758185069} + }, + { + {689461796, 857372226, 3328681101}, + {2657886563, 3974170361, 4099468320}, + {195957267, 1290233963, 1837975076} + }, + { + {3113234710, 2370680586, 4105279647}, + {1636854044, 736032523, 3579120371}, + {3088578297, 3336873908, 3739287065} + }, + { + {3707695936, 4247206096, 3173279058}, + {90641151, 1093454351, 710142470}, + {2739063242, 3868064356, 3375378406} + }, + { + {2137106548, 3384537674, 1855301625}, + {866389465, 1957718473, 2685096527}, + {2908746938, 454223451, 169624834} + }, + { + {418401762, 102445108, 1034974404}, + {1147260420, 2419015074, 578344097}, + {2366259209, 2927150492, 348854997} + }, + { + {4271002820, 16565361, 3248373671}, + {923838119, 2396893342, 4250739935}, + {587463402, 1424942920, 3204424722} + }, + { + {3726576554, 766177746, 920054784}, + {1816286873, 2630835804, 3584627821}, + {2833401521, 252729422, 2863692564} + }, + { + {1041914558, 3384991402, 2492620353}, + {1951035441, 94115934, 15581796}, + {2987678469, 3910656443, 135759411} + }, + { + {3575179718, 2870800641, 2292521647}, + {2993029114, 1575970054, 173110549}, + {1273717158, 568686174, 1743888049} + }, + { + {3926759332, 2779513374, 1657056812}, + {948860698, 2336280989, 3090028361}, + {3643078905, 3560529163, 2857253951} + }, + { + {3625154023, 3636020571, 820793111}, + {393693926, 929302494, 3209765197}, + {1864323135, 3549045108, 2530293495} + } +}; + +static const int F12[64][256] = { + {3559246392, 1076885545, 4132429570, 105714773, 624759875, 1220812568, 4047234878, 498417418, 332680195, 3184182717, 3300733695, 3709652496, 3226270743, 3579052625, 3451853773, 113129544, 3070087393, 3709477371, 4197511623, 686630960, 1404545341, 1268624180, 588991772, 670256153, 3829591271, 600643392, 605536170, 1211650761, 3252375318, 683229668, 1178938052, 3384826536, 2942197249, 525722287, 3089260804, 1508652058, 519623440, 4108794421, 414843437, 524147278, 954719992, 973975735, 2823607569, 1575153466, 989405635, 1259277738, 62369612, 3325644715, 581489211, 3293955798, 4145959103, 3540068290, 2932219880, 737955048, 4007774912, 708581555, 1126632011, 1340157986, 955970268, 2937792768, 1393616310, 3439471189, 348633596, 1197414583, 1461999353, 4280112209, 229166142, 1372008666, 171377158, 4207538755, 624240828, 3895453262, 3343409593, 1429401300, 636143399, 1036900379, 1261066027, 2884905488, 3847692766, 569202177, 4212986906, 433455306, 502395590, 2884115504, 3378470369, 3294023191, 317765914, 367024884, 3024247726, 4274972913, 3779618473, 1559763793, 1136508650, 1473635903, 3186347791, 3105047848, 4214163672, 630760362, 465036355, 448574444, 1659527139, 1213607417, 1398214586, 539966743, 1430973156, 289135063, 1443223115, 972186877, 397851986, 859555412, 1377518417, 1237783223, 99623627, 1358819591, 4248036676, 4233240549, 599068391, 2698721337, 3887448503, 3575582977, 604685043, 3859083006, 3814073027, 455865431, 4195410761, 150229467, 3275825583, 1260661200, 3221218875, 1355601347, 805514777, 3209937625, 438738695, 2096243124, 676586673, 547925509, 3622026769, 2547835304, 3971486792, 184931304, 607992052, 520949445, 1489897717, 63490833, 1492782347, 3382317516, 149045481, 1169997483, 3610258769, 3828622394, 912470, 3695577292, 4040376351, 3303728933, 3675302684, 4057645753, 1481488609, 246854383, 4260752194, 504937187, 523041737, 1096823522, 3102918713, 3071986631, 3595774256, 3473848777, 3207930697, 1758665, 3529393087, 3978318260, 531186129, 793053485, 855969057, 114506497, 238401267, 3770872751, 3943426230, 1330511289, 4212707822, 953410541, 319751635, 3274110285, 854894617, 232561370, 952706740, 4165709536, 944315623, 518409234, 1303455713, 1025487550, 196430812, 3401655808, 1341638919, 1036181422, 3417084353, 3856937404, 939247411, 734876229, 990692582, 306559965, 3260112398, 886036458, 692712744, 3623507885, 112848588, 404028638, 4161717768, 4039451980, 3944167168, 3300070932, 3854578380, 17455331, 1241779938, 3894241251, 667481556, 4032625158, 1128444442, 3377676741, 4278769418, 1356729018, 1420284647, 535364582, 3888653071, 3333025980, 736217902, 3220505075, 1689170399, 2937725258, 488858379, 1037228059, 433139757, 3594393083, 3557929499, 3001926674, 651150060, 3552554418, 1044819938, 1037982442, 3881720752, 3661694669, 972869126, 909269696, 736758855, 1338372598, 3556380642, 150611788, 4233355848, 1240645915, 989678055, 1588721866, 4228727876, 4262541498, 46712807, 70206945, 1018941690, 3220120816}, + {3507620661, 3184142597, 2936033560, 4011935216, 1446558460, 2611687638, 928122055, 3154063119, 3778681575, 3098467324, 4176458203, 2931030441, 3189251336, 637423051, 2906585056, 3459667019, 1655791116, 4164751355, 154649405, 3057247045, 3504609592, 624503529, 3862737866, 4160809167, 1160916658, 407891528, 3149269294, 3779187229, 1239497975, 684214007, 1257824281, 4239996418, 1139520199, 3672062895, 3537284843, 1380624402, 370817978, 4247767290, 3408441415, 3772177353, 3828985863, 320203484, 1308820557, 2882458119, 3139445683, 420358444, 3741365730, 1203769076, 3510676519, 1172836021, 38546486, 1141109505, 716775737, 741650163, 323349277, 3594865352, 939543759, 3300653642, 179902136, 1056644280, 2836223154, 3456557142, 1257130073, 3139944012, 1224136373, 303411256, 3945740827, 1204442666, 483832312, 4063545787, 3477199903, 264500256, 2920299097, 189196209, 3657746378, 3610066456, 405859363, 3841713140, 1192553743, 919334424, 1263471828, 3019095468, 3779930806, 4081444152, 3991147726, 2931747561, 1490617053, 1027250201, 4114430153, 221242897, 850192982, 84409902, 782766108, 991363895, 4045561062, 2780211251, 4160539970, 4195539509, 4014789040, 3319809561, 4198969908, 1061802535, 420434426, 3696051264, 699725539, 4180812508, 1355327464, 3453548278, 3434235328, 734400525, 1123040966, 3580108555, 3559783640, 3557355544, 355733053, 2682837943, 3423006702, 4042171209, 4274129832, 557324306, 287054790, 187690006, 1441839391, 3393441012, 1126584611, 3992177845, 3392476196, 3762923825, 3099319567, 256396989, 954353683, 1038946250, 356003584, 3719769325, 4244096268, 806817111, 1036401642, 789991241, 922561540, 783729107, 3390294753, 2605241879, 3841113343, 989131244, 4212980716, 3897750331, 3863294277, 3662097957, 590024937, 205254662, 1477786945, 3909042742, 783304640, 2850632417, 769335855, 1547191801, 290143730, 3679985922, 608523970, 302464426, 1126183504, 418561006, 3678780696, 4044417462, 1336796073, 3744801210, 3319014398, 3355320001, 2864653116, 114608846, 1329641302, 3407095109, 3218361547, 4112588104, 3452158704, 4145526232, 4138332674, 4161517224, 1175196677, 4128434938, 3541621032, 102179826, 649206319, 3503434955, 3285846741, 3426475337, 841803233, 219814414, 3955684648, 4259790370, 3215792055, 3321346988, 1022962518, 934007830, 2732540670, 637056788, 1153027328, 4076518636, 4125690561, 153615880, 1358946902, 1211497913, 38066377, 3802917134, 3855766868, 893469938, 3787934908, 3220426179, 222974767, 1474669082, 752565719, 786434731, 4282639820, 3218992467, 1425757119, 4912840, 1222594763, 3560689195, 4128053771, 3217376687, 3728628013, 3436059125, 369142534, 249759733, 3252105258, 3184014603, 3392084973, 3051687112, 648558340, 3142511052, 3002469806, 607339493, 4031294290, 4145741876, 488824840, 521879102, 250087610, 340279801, 3889687991, 709512878, 937695302, 1294518712, 298862417, 952680405, 3350942725, 163259459, 3221879584, 3318234549, 400096083, 3455384608, 3995252965, 1125904583, 602454585, 4146732316, 1944932788, 923083298}, + {3337470454, 66048712, 4215814627, 3562458308, 1374218708, 4283896035, 218377933, 673535221, 617790673, 954978093, 722194516, 4289522772, 891581495, 3658671656, 3426174969, 3377417205, 3033459126, 2992717881, 467584279, 1260568810, 3579201773, 1325027085, 4273681095, 1245856776, 565747147, 704692045, 953668145, 4038541500, 873387182, 3310100151, 970009396, 3042393895, 3358770769, 3501374499, 775364147, 119620939, 1224235920, 623439896, 404899749, 4211471797, 35398674, 3255836950, 3938440941, 568084815, 3980973615, 665783239, 4141596354, 3554126259, 573136434, 4244746559, 3326084840, 675792974, 3458837420, 3618240990, 29962181, 3458939230, 4061770949, 4030209752, 149298710, 3403822941, 3771591169, 222544416, 3719150061, 2955606605, 4247079111, 2963986240, 1320731932, 500175329, 810358618, 1069764432, 391307970, 3174187988, 657143637, 2873631463, 743845852, 1295075825, 1375145958, 3324593445, 533069859, 4272411939, 571077370, 3738226137, 976945686, 339458848, 336341484, 3039300813, 2990469873, 3587449828, 4095230535, 924565066, 403850189, 1346448692, 232851674, 3663003438, 3882249524, 323596599, 869089996, 3020894106, 1003870189, 3256881640, 205982742, 1055609092, 3879610066, 104750634, 3578267150, 1193000360, 4043430743, 3007909729, 3487244290, 4283570994, 559087306, 4147232773, 1228404794, 4126533075, 3895456221, 3971303345, 1330030809, 370588209, 3155710948, 3051230732, 4047175859, 989840694, 3527536424, 2872157399, 2897591768, 199310832, 539358755, 4076272590, 3458899157, 505280445, 188825049, 1323152333, 3410968885, 3987072478, 3541234897, 179916992, 3844154401, 4032050013, 3274188476, 1464468233, 638692, 3628186861, 3769480893, 1157867202, 692061234, 787949402, 926218575, 3609721025, 834404436, 1229529315, 3854750219, 1055451586, 1243922603, 3653429948, 620614701, 1108156216, 3389086281, 2915420100, 909098252, 3591653899, 1490432850, 1124596568, 3518498642, 4062420460, 4175490889, 2820616783, 11870211, 1311968242, 1119138798, 3366638899, 449504731, 4278330680, 322072648, 3651513318, 3420243926, 2918186186, 751703627, 4146902564, 3841921212, 457357304, 3754479011, 339009450, 1087579565, 4037699222, 1240138783, 3586533967, 3878307133, 1187705673, 3320650002, 1457975037, 950949414, 2900815846, 642705157, 251801796, 3909377202, 4250842552, 1036166729, 4173063154, 4223454546, 3041526075, 3287073046, 1324103211, 1161840910, 1106369356, 4281538799, 4040700357, 1239960359, 3309061169, 4290388798, 1019290576, 586878526, 936445187, 436407073, 1042928634, 184252065, 286139949, 3948000947, 3502199789, 2853701583, 4189000197, 1062080722, 4004178494, 1025447197, 3260084678, 3919987709, 1280641290, 3922205707, 967856318, 1192186605, 288300308, 3361488534, 296883542, 4127250413, 1238645822, 1275017233, 156018864, 1353963764, 4092376850, 3053373369, 425283614, 447737004, 3842008658, 3828370115, 3858087379, 131331099, 3470085715, 237092349, 3451710175, 3863479273, 3479039990, 1155424172, 1036381702, 3726846533, 3551245658, 3471654659, 3477341526}, + {3135029713, 296472492, 1456810272, 867229624, 3303277537, 3774482454, 3907697978, 263187912, 3064280017, 120834394, 718385427, 1363552976, 102095623, 4081142583, 3272141587, 1129270309, 3772229212, 722405195, 1413075393, 536617012, 601014033, 2618010228, 3021666847, 1041649879, 1629494325, 952492598, 4233369648, 1629540569, 3607615000, 1192236797, 1375514326, 1763698406, 3393463787, 886105004, 3389701587, 1209127595, 423290820, 960488737, 675584818, 3534871994, 3168738353, 3787151030, 807989977, 676094293, 2805282566, 3825480025, 3338885332, 3663009047, 422103982, 3964751141, 406208210, 303896621, 3672049, 106489784, 3770800711, 1338854380, 1292513764, 330379737, 599872319, 833418534, 1021950930, 1564658509, 683984478, 675806229, 3223369046, 1295246539, 3921106695, 1107352608, 531429203, 3402292926, 606937617, 1490472615, 1370032174, 2872767054, 1341009173, 4290593064, 958520350, 4244253987, 3107776190, 1430981081, 1288901413, 587384254, 939724004, 3890805175, 774987824, 454549293, 466558752, 1476269365, 770033869, 305139498, 3389017910, 3961528100, 456575810, 3340376523, 1057202421, 3625652303, 569157548, 2344367134, 972751672, 3741776868, 4258317648, 439227889, 2932279297, 3592535071, 776854992, 1107370556, 1504777383, 1386693342, 4224525559, 139074629, 286210505, 3605396034, 2921790524, 618871594, 1632045534, 1141576900, 4208151274, 3424868768, 3118020610, 3303030797, 4249831080, 198963509, 2856650429, 3156944468, 113530201, 187152326, 4072233920, 469453581, 1024139829, 1473771799, 3721347346, 101109226, 272391660, 4246592074, 3620864285, 3487774936, 1561400312, 1665154826, 1244576041, 1143335365, 754845757, 3233950940, 622606325, 3752730195, 1154933459, 750649668, 1138888988, 297231308, 3418340552, 269569462, 4077969162, 3352053433, 615458306, 3016616788, 3276731393, 4143458878, 901783624, 475393829, 4209949396, 3035035886, 357104815, 893181941, 373753393, 4026021053, 666626748, 3568185881, 1022164313, 3070409517, 69206983, 1185664490, 2903641125, 554582036, 4207557598, 2968203692, 599675448, 601079779, 674573869, 3469869381, 4290653275, 3325037017, 4155295732, 171132592, 4138524915, 3887635037, 1176935257, 1211230138, 1062262868, 1338684744, 649206512, 3550827479, 3611437232, 113844745, 296924126, 3437752817, 115925282, 331864267, 4062311409, 1162674919, 339003442, 607578376, 1442714575, 187711789, 3841680872, 15548673, 4198221027, 954596920, 298649394, 4015199050, 3176346057, 487649063, 774854106, 3707196430, 1070884515, 130281148, 3493062380, 170865414, 736873661, 786698240, 4047433988, 4266801597, 131548139, 4161682741, 417606870, 2887274921, 739175437, 1878877692, 3561808116, 971192233, 4123351213, 3989228079, 2645235416, 212457448, 3905222419, 3491702733, 559370779, 970115138, 3853578169, 3710303445, 4174642422, 3975195694, 3437110851, 433512194, 941827801, 869478492, 636414901, 1127699631, 417520551, 81611788, 1292449561, 3676521508, 1103022268, 4080410147, 3310176975, 1490049754, 2183455229, 3773378521}, + {1477095450, 1286852865, 1145155036, 784814089, 3702271669, 322831285, 3678665435, 3357368039, 1169827653, 942950478, 3123791148, 2932083371, 752611348, 1173806663, 247072754, 150387128, 3169585867, 3355128826, 3862021030, 4257556774, 738610474, 1114696135, 1203044577, 3972583727, 3609141301, 3492293835, 4121952455, 2848146889, 3519274768, 3697420522, 356456802, 3171888193, 2734214125, 3317221032, 3286570279, 1424240625, 3703674902, 3904058417, 4146382444, 2987985103, 1092895266, 3636925717, 4028454408, 574442676, 302584053, 4071145408, 3137418430, 4057420752, 4289781029, 1377037224, 3134588466, 553074208, 1364599328, 2887923439, 4246067788, 3122186741, 1106505746, 1420501199, 2630147614, 872085247, 2738207265, 4277337861, 1525217491, 1258294605, 3804233951, 1069376041, 4199732031, 418860466, 720098314, 2873624306, 1426729445, 2898549244, 3895444995, 3441152754, 3539645701, 653514700, 636868422, 111739201, 1269575687, 801444121, 1205124918, 3327259696, 3101428544, 4281333511, 4105555985, 1254971438, 2850671583, 2903597782, 3115054758, 3206485482, 1310179307, 3675866940, 641744575, 988372995, 1030276937, 3269834226, 3760141804, 3224345034, 3475065412, 3441076193, 1303566801, 2841128482, 4061155407, 708230707, 4123602990, 4022413286, 624565290, 3568251125, 3859273257, 4188157481, 3891578595, 1173424854, 900727237, 217922222, 3879281363, 270580765, 2916598208, 337052328, 3846024123, 4080009152, 1192950345, 572315385, 4106946056, 4256508907, 1105793843, 4216801523, 3304916384, 79975208, 4138937054, 517951046, 338896889, 4279707700, 3909166342, 489349425, 910643159, 55706295, 984342772, 346090957, 3756145657, 623165892, 1128776134, 3518753452, 290405095, 3746222837, 4098426143, 1224465199, 3861917869, 3242310641, 3702586333, 800332291, 922698323, 3939815417, 3392860497, 2950096976, 355287381, 1006812883, 639493321, 624279543, 3199486267, 4026252089, 3625462489, 17761187, 1346695998, 4058058478, 824462280, 3068737213, 1123203390, 4196924951, 1239212862, 2797737265, 538824934, 591917380, 470139149, 4089077008, 3108616274, 235130601, 4112452288, 918363171, 901451467, 3896591166, 1275973477, 2767266293, 3625840866, 1919801358, 3914917395, 1108075449, 3357550253, 439467529, 3510823465, 297606746, 3926596929, 793575749, 4041480007, 4258603303, 2788361443, 752742702, 4193573326, 4231726659, 3055955161, 3845305176, 118626280, 3737579090, 917452207, 1102864193, 3507278649, 3235072435, 3453871617, 3787412682, 201248708, 1262950340, 3237743848, 4163440680, 823924755, 2838608677, 534753117, 567751722, 1230194864, 900849846, 3067657897, 4065709846, 3472179193, 2836707918, 869848651, 3858372664, 1691483582, 3907526457, 892477469, 524827840, 538770114, 4005343041, 4072386725, 147663109, 162329322, 3349693997, 2947996991, 4138599689, 4195155693, 634332964, 723509757, 130339396, 3235001868, 3639161867, 3340219909, 756229627, 548476130, 3484820269, 166984274, 967684897, 3422426796, 783144977, 3440495672, 3193520894, 3742184755, 794238032, 387921710, 2998951726}, + {3183981492, 3248950716, 3694116048, 3636394762, 3892363693, 3805398802, 1423575564, 3946848998, 3207997646, 850574802, 787233740, 2856505552, 703194032, 104094459, 3722576412, 3561555915, 849802517, 3704559170, 2618794672, 4131798015, 867450631, 3600832280, 991283625, 1011934687, 1174203946, 3669214229, 3326006021, 1074463562, 4038384150, 572672334, 316824318, 3222133238, 3994483248, 3116226489, 2870320178, 675725061, 1108735665, 2907171269, 1783263231, 591130419, 3627082248, 3810739458, 4156038072, 3806016273, 1060358897, 1119697641, 642647602, 3149603566, 306237905, 840968231, 3847440635, 1221636162, 3822389846, 3941472460, 691291171, 1093460494, 648696595, 923423655, 502256384, 4110599446, 1119282374, 3607935990, 4043358171, 4196644584, 2900087592, 3726767631, 3829403594, 3121421011, 1035801368, 2938774344, 3493969577, 103461844, 785639602, 129715979, 3864088264, 776793399, 3424542143, 1208156711, 139870015, 3452813589, 36748363, 3606844846, 4189503522, 4263721501, 2916104740, 336790598, 4222610363, 4045619439, 3705454318, 2913922738, 3720854957, 2939018752, 433053263, 3120167126, 3259233287, 960378662, 95218141, 936858851, 1424297897, 1286413102, 1577974218, 1375163886, 130160315, 3675588441, 2770597661, 3309195441, 2949063209, 3928556212, 786412555, 3394285135, 3087452711, 3469729806, 3956819219, 3853695961, 2948386064, 4240126902, 1329812286, 3270626231, 3759361276, 397364473, 3304926631, 706463022, 1345067746, 970915512, 599959864, 3149796425, 3843546177, 775284174, 4262464763, 1259355598, 3772859311, 3069629926, 1170262274, 136909255, 132951998, 841010184, 603568352, 2521017836, 1257194446, 2868642836, 4148714242, 3659479799, 455160570, 734723567, 551547988, 366725629, 4294162614, 1320799186, 4206691766, 960808781, 497768201, 868813124, 3979979034, 2874782015, 969549765, 633101766, 3222144705, 1091636693, 3677763824, 3558912453, 2790666788, 537194676, 4246478614, 3259389235, 3756904126, 3510678343, 1448359403, 4145630008, 516815636, 20072178, 490989741, 1056320198, 4289250383, 1269956778, 1308907474, 1481390550, 942084797, 857724711, 1202960355, 3141597877, 4026559049, 601025543, 2855525626, 1410090968, 3509332176, 3440162052, 4292731955, 2901203961, 484172479, 480299713, 3056881971, 1477121355, 3338125511, 3507227353, 3980075506, 3159343907, 4155463171, 518971708, 535427626, 3383578950, 1019470158, 298388211, 2932783291, 1213066955, 3612931330, 1126775843, 4261993469, 4182123051, 3225878835, 1321984820, 2953180936, 634006008, 643967949, 975435745, 738658027, 843456945, 518639593, 667147864, 2834316303, 2975323343, 4249933124, 3688887383, 146145251, 504942407, 3106826993, 116374862, 1035845573, 438241814, 518991595, 1386598604, 375107412, 2889851419, 3576516584, 3644001348, 4076916304, 3017016393, 568796379, 2689074453, 4149172695, 3538340818, 3350664653, 920075040, 1336978751, 570771431, 2939107043, 1480196837, 793523700, 64491216, 3586082889, 97180628, 4130687573, 3810990582, 1262868256, 3611639606, 1943859265, 3511502094}, + {87893514, 3134471994, 368920880, 3826719922, 3526045199, 995711784, 4079943755, 3185783269, 1179206912, 3558781987, 2919910413, 117784506, 365896771, 4076718069, 3929613339, 940111037, 3205253321, 773137596, 339630024, 3193167299, 1340739353, 1190472773, 3442731031, 2888549960, 1204962038, 850458636, 403103521, 470350099, 4090186578, 3317838509, 1157411898, 868228547, 140173511, 4224924154, 390920113, 1344011081, 2914441709, 1342418682, 3021871573, 3115562971, 1559293227, 1040527050, 3199811507, 3534432452, 1410776304, 2854155961, 1146440139, 3746162095, 3997060555, 3570885128, 433598953, 3857666008, 733724847, 574111159, 4260370125, 1078735942, 1191380302, 304360424, 3980657948, 3320849159, 3375653106, 4231747290, 450482416, 3797570272, 272550658, 1497563107, 2903856183, 3005545274, 4161984561, 3813134162, 136728529, 4162854465, 2818765084, 51838022, 623168589, 602581774, 3652272924, 1194245883, 787983442, 3853312324, 838670321, 861288227, 3702340833, 837073324, 1237864368, 1095697366, 423051262, 152399106, 2823212456, 639388634, 1394616297, 3687690499, 783533489, 268916204, 806672085, 689620947, 468192429, 339065357, 540994781, 668198451, 4042891548, 4259862032, 200550694, 3271239388, 615558201, 101994550, 246803158, 266067184, 4133045563, 1326915606, 4174643986, 3754151410, 356770615, 521588048, 658046926, 837082375, 3887612363, 3843055084, 3435647276, 1110850333, 221661730, 1243294971, 4249618978, 3474650683, 843365288, 1362493375, 4040283624, 4273932878, 3540928967, 851562495, 3788313293, 540400586, 738185144, 473276961, 3591022809, 3604149553, 2991739829, 3039517263, 572717871, 150536770, 53349451, 3268432974, 118046388, 316876247, 3136014568, 3132950774, 3690659498, 3876523042, 1206968313, 4229458677, 3826380522, 1018950122, 3307868608, 1270933179, 3570854638, 1297359061, 4049293515, 671236580, 404356565, 2902241620, 3870421459, 2780478988, 961002487, 350959147, 4062141265, 3142858444, 381492656, 3622779930, 836961459, 1392620464, 3015651573, 3958561022, 3567699727, 3275541799, 4111643168, 3410753529, 3690976803, 3541956384, 772550648, 807470126, 1151583705, 674878968, 3257734843, 823773217, 3536268370, 234300854, 3387826741, 3925933995, 3788389959, 3136109009, 4173145571, 1178930007, 3588574777, 1120504509, 3074728874, 3475842008, 473758207, 15212116, 3974246412, 3736382154, 3333172706, 1481556281, 484778434, 189668666, 3426664754, 4240115503, 720843262, 30679267, 3519076078, 4047158591, 131712983, 3543989471, 4192577500, 366881880, 888721069, 133416180, 757683421, 3256809168, 3473067865, 1109186767, 3072567981, 1142051671, 918567136, 3741009715, 955498247, 3858221746, 2873703718, 3772918259, 3467441222, 3050051819, 3773237283, 621604368, 167594416, 3962834743, 506265545, 3956603372, 5614657, 4198949079, 869680846, 438759900, 742864964, 715539370, 633407495, 4281842641, 888471741, 3293788443, 253309780, 785716775, 4106208340, 2948467936, 3895969455, 3959803883, 3993176398, 884458265, 445985786, 1253433376}, + {1144500231, 4009632531, 3706393533, 3489322320, 911419103, 3808282720, 1046532922, 3929078613, 1091242823, 1022627607, 1142345768, 3404677296, 4246085147, 3737704184, 3690174936, 288213422, 4208651186, 354908237, 3391732476, 3971096143, 3052955637, 754993586, 3570926038, 1158683866, 1338051764, 3658930865, 4081506047, 3695979188, 36322323, 3157992698, 649333670, 3560880696, 610032075, 115992130, 1057140254, 1294711344, 3048737285, 3133581370, 768457430, 3334935619, 4124961559, 2941573174, 706654961, 624026598, 3041675494, 824332203, 1243526841, 387656425, 1390614566, 2972700737, 3792053514, 3424894727, 582830615, 3643687251, 3793819840, 3915645995, 1459015466, 2854354923, 3243662050, 1472680914, 991706710, 3511697995, 1204269811, 3930643217, 3103851553, 1473533459, 740802007, 3796507342, 3962501862, 3942002446, 3910850870, 4141749011, 3477724685, 1239462342, 589305047, 3426100241, 3310211301, 2965756720, 81277265, 900140879, 3359834447, 152902216, 2849419698, 4023579868, 3173109337, 54804909, 959635698, 1482379043, 3016421957, 3120033016, 4178003736, 970239009, 3091544778, 136071911, 3383910331, 4248843828, 3944408386, 571259158, 1323545613, 3670101964, 741943816, 1322803447, 289270015, 3590990012, 3574811474, 3024533238, 3527398953, 3352103970, 3539210667, 3225014715, 3903906330, 315962794, 468909305, 67198209, 1142944301, 2988003035, 3886532076, 3537772376, 3019264773, 558873370, 4279696711, 47464103, 1487610893, 3905369591, 4020834233, 976536648, 384093501, 3843645858, 3268424909, 1208567490, 3072412214, 3282878180, 4276878818, 3069667854, 892682960, 1125456610, 46591927, 4294921820, 4098095372, 4005299757, 317177867, 600620752, 908598281, 3017653232, 234236216, 4205061859, 3353665608, 3479177451, 3476158173, 1478469298, 1338553034, 884261421, 3624720561, 1362448723, 3526052148, 3350643428, 3538955815, 1488710967, 1170809015, 472298948, 2933520575, 3528451837, 3857952459, 207077061, 371804919, 724649531, 1423697348, 1407925295, 3199657751, 3744026365, 586276654, 3138170081, 676091671, 807336264, 3824602095, 3639000648, 3256296265, 375371236, 1186472369, 3183803441, 3889522980, 945055952, 3695911442, 351887327, 4055476028, 754994867, 1196410916, 50246453, 3470905570, 4214468266, 3639206485, 196329954, 3595905045, 988415164, 993937388, 717308613, 1122230737, 3593716725, 3391560395, 3811095852, 3811724240, 306987229, 488057556, 3841190387, 1438769487, 2821064234, 1172315870, 548286538, 3282958532, 3724283199, 3018378698, 2833386183, 121243626, 2998269777, 3231597892, 3655017208, 3284277077, 4155555049, 307801523, 4195302926, 3255288880, 2951167736, 928244987, 1273688054, 1391133371, 1076895016, 554899786, 839504974, 4233046450, 1257785109, 1186207377, 3873562638, 1437385439, 3691433497, 804977638, 3185509129, 3830318797, 3288467143, 4192751698, 1026760181, 4081647381, 649149457, 844881587, 2987508305, 3001422120, 4110095833, 249622102, 4195013344, 3629374791, 1187529778, 3670555952, 877007275, 2886093339, 69181501, 297940947, 509230776}, + {756336863, 889671480, 3406880697, 4265891065, 4144055051, 233057816, 1073235509, 1054982873, 3406038842, 2950613997, 2832378086, 1497647090, 1476125762, 100401697, 4260345059, 927717926, 465970123, 3822785513, 533479882, 2873182799, 408808119, 845023097, 1168943141, 135922199, 1055518395, 3173980611, 231402677, 619991591, 3593062153, 437914962, 273232099, 4293536985, 301354681, 809641408, 2814334616, 485425172, 1321386028, 99417630, 1799897882, 533578466, 3687829288, 739814945, 70142536, 582668256, 290650391, 3092047296, 3024403773, 854474052, 317727808, 4122597339, 927002150, 1070974480, 449662913, 839914236, 4242932732, 3454161240, 1038626991, 3771584235, 121193406, 3691003701, 752172726, 3251705907, 1477427017, 3476829619, 3754942471, 4047547095, 3476112086, 1188056304, 3209358508, 3052449853, 1462419181, 989378065, 1246253303, 407712103, 810550770, 414532009, 2780449498, 4127437529, 3524912608, 1479615409, 3433978119, 3980077346, 826139436, 63488738, 2904799973, 2874661578, 743157950, 2806963680, 943762453, 838346036, 166402811, 623060791, 3862278154, 4106278583, 3830970179, 1255613433, 592522801, 4188482261, 381682008, 3769872701, 1062539196, 1343436046, 4029925951, 331537851, 234424884, 734380055, 2799579727, 771282771, 3151942116, 2931172552, 725434856, 3016312346, 844104725, 653182289, 516619864, 3870834488, 735777318, 3606204110, 1420768243, 3938254423, 716051789, 436160246, 752155306, 3960095143, 3016208174, 51327497, 3272149715, 2881206778, 3915164353, 273895925, 3108364516, 976362960, 249777593, 4165008388, 387005463, 3827022643, 189975823, 3692552967, 3035360978, 3822759211, 919906885, 684704965, 775689148, 1076175149, 720108271, 3841648428, 792598029, 872043432, 424818389, 2918772428, 1073988789, 1493814800, 1224945367, 860300575, 65422828, 3956457700, 1105864501, 4198542091, 1035856614, 1079372320, 2955746554, 3126177035, 3963988433, 850726128, 638713843, 704501494, 615532771, 640832174, 4224454994, 3202137556, 1440744704, 935595317, 1834751751, 537111857, 1288582358, 1372318167, 4096113893, 4231148513, 1461117247, 365145628, 1208703189, 1124774309, 416111080, 1724111051, 724498894, 1094309151, 3253156941, 788769248, 3570941527, 272587808, 1421819991, 34087868, 4031645149, 3476810704, 682103016, 4274628769, 759896500, 3402189340, 3711548214, 1210304318, 592728827, 1409608989, 254682869, 3032738631, 4159451380, 1204957669, 3051771052, 3500991411, 3746306378, 2918070245, 767812406, 1221608900, 4123112740, 652221459, 1103034979, 4156612581, 1371335510, 4145882636, 602729666, 1179785229, 69853780, 3283554111, 1242687768, 875634666, 1191564313, 20132544, 3677701852, 3441367044, 894349565, 1554703712, 55202564, 3289660947, 637795864, 1088442545, 738832567, 1211552252, 517376, 967522059, 3125950929, 2984170040, 1455039216, 78719709, 3424119001, 3055818193, 3555769082, 3122730506, 1125959357, 3778412484, 3658956252, 465103146, 3688489747, 129621307, 3068983232, 750405588, 742025070, 351017471}, + {1039586786, 2903726364, 1310191090, 3494850293, 2903650249, 3205228085, 3140553934, 2790836526, 1310857707, 3998028049, 4093160141, 3937273674, 3753905841, 146949669, 3589608801, 4259978823, 1390468838, 675016107, 3320460185, 4014592030, 1257455600, 962989133, 3142402115, 1330581510, 3503858968, 252688331, 1090111212, 1110882123, 721685255, 272030709, 388178695, 4122945582, 3769879347, 4199496429, 3350518505, 202304572, 3176323926, 3259424763, 1341070876, 4054849051, 1205909544, 347004661, 2766057234, 1037427521, 2763111425, 1139553095, 3368814515, 1177991675, 2876091876, 3811029523, 1275767561, 3579096789, 3303794407, 508315214, 994132536, 905766088, 2967674830, 4225500701, 354405291, 216225745, 3643671572, 3701672901, 1432529620, 3104847412, 4125174568, 1070843663, 113751285, 163826856, 3829786586, 1040179968, 943667440, 4013169983, 3878763192, 1675678279, 572399677, 30064344, 2805975067, 4294237266, 943188129, 62983343, 3351964139, 3216650302, 79936758, 15488543, 3304578349, 3653419705, 62962412, 3484560413, 2888842559, 1241308700, 4094999544, 256900116, 407185924, 2753281769, 943401549, 1108263358, 3656651800, 4185188358, 3159551907, 133436738, 1423588367, 3050833136, 943134151, 2915626008, 3877444575, 1286861073, 2655264083, 3954033099, 66126353, 3469790174, 3250983947, 1263125580, 751124972, 840579054, 4232438211, 3039640488, 4094347817, 3655812170, 302383543, 772979744, 2847607860, 297646582, 69904626, 3288644596, 3186031303, 2857620048, 3920768488, 1344751324, 3115322443, 333056005, 1328365337, 1448298967, 3217358083, 3150716438, 96332250, 448284197, 103991789, 853882172, 3528851163, 4031625478, 1397825527, 2613705962, 4163164350, 3408571422, 3758402349, 1555316275, 3357976876, 907061483, 146597696, 836688860, 415154393, 910369072, 3551990223, 3909465037, 14365964, 3304302408, 3948599856, 1155207901, 3035962619, 3003957550, 1191654680, 1185813188, 4011738036, 1174021125, 2701546223, 250477635, 1413875417, 4138667081, 550949625, 1040368356, 1127547604, 4239663681, 3878213080, 1409956792, 1052310250, 934419526, 3847505153, 3374370807, 3006728898, 633132529, 3150524099, 2849856003, 3621523693, 1375754561, 120633434, 1462310434, 3870901984, 900920268, 1373120691, 3338285563, 737389058, 3234508548, 3138106878, 3201693486, 3906336808, 518859066, 4244288961, 3350399457, 1238485805, 891108055, 708770034, 167840712, 3327510702, 248970311, 888999997, 557114695, 3324029454, 3301302965, 1158631972, 1421597350, 201852716, 568390579, 3072995232, 3988540595, 89703000, 4146610485, 655243592, 3517688796, 3087286037, 4027833406, 3299692829, 3083818526, 3820042686, 171105325, 374809631, 901261342, 2691576845, 3826076455, 2836020421, 4095169994, 289538023, 2980849993, 3739086280, 3811989584, 1242063, 1006978864, 1289362649, 3476149469, 751510489, 716651762, 1491604205, 1162151903, 3990425770, 500843845, 3786257918, 255871051, 1426705389, 722991070, 506870559, 2781420602, 374652920, 3771185091, 4156048701, 3471238852, 323225202, 267388435}, + {336385227, 1458550257, 3618585342, 4012690904, 314915155, 239450166, 773600000, 3103203052, 736835007, 1072105152, 83952395, 3116570916, 2512128581, 4107068724, 3071065171, 866980291, 439002815, 3428713472, 2968987663, 249878456, 3890104241, 3522023493, 3753651645, 2864329243, 871632892, 3158427680, 1413953219, 239410854, 3559831046, 30777936, 3788569427, 3892319061, 3963340004, 3907993860, 404996077, 1126954409, 1077909249, 250681093, 1596435730, 3777088769, 283518210, 1043905084, 923798823, 1791742660, 3859367722, 12057523, 3593346607, 555620166, 1124478275, 3621271888, 1462286522, 1068488364, 1404302023, 740406856, 20446131, 3854347810, 284117815, 503522555, 1390594020, 3569173585, 3473476411, 3592158289, 3602764507, 3066188204, 3662606543, 3424862982, 372126638, 741550138, 1347564593, 988624351, 3587838017, 2903324367, 2841161250, 88920263, 1158667576, 1172124467, 2874459714, 1090077713, 35579478, 3065038301, 4232830151, 1241799654, 85873374, 3137273562, 3742048333, 3729324064, 3677998408, 3904842994, 197382739, 171554605, 1090541872, 1162928609, 3335339776, 3310553895, 100782890, 3795175194, 531715919, 3511172170, 4293455316, 1010447315, 875413550, 971972375, 990383145, 4163899340, 1426848741, 251005112, 4080268067, 4245803861, 3944998363, 903176884, 3713552640, 540214224, 3292711360, 3385063629, 4271647565, 1174423233, 388245308, 2889621478, 497701300, 2822391776, 1270134504, 919545602, 239256571, 4095874821, 2924470520, 247782366, 255875880, 4230880799, 857495284, 3317617836, 3720949836, 1002297797, 3273791773, 1177829830, 3704107188, 2848390943, 1123930872, 370488559, 868432557, 4149107409, 385241129, 3979130920, 1001410583, 4247468253, 588796964, 3337421230, 498011404, 180294656, 491503115, 3855485956, 233569215, 3239975769, 3427407080, 758591311, 3972413268, 1388766440, 855654902, 4192189011, 2940594443, 13180209, 1479459620, 4059717121, 3384294841, 4015511638, 167797945, 858342622, 1289960480, 851501636, 3170306738, 843516126, 3150889999, 776260016, 766952193, 1019662880, 1008654620, 3775545284, 273415883, 3973039834, 3258369745, 821179350, 3209507307, 333251396, 3408646179, 3118799362, 490258378, 1192028411, 269177846, 4256302807, 3444457274, 119877558, 3975468084, 233064615, 3425254663, 289233583, 633618912, 2655344981, 4272497831, 3576495077, 989184444, 414230197, 1038730154, 1422148126, 4080676611, 3020223223, 2818776279, 98579378, 640815062, 884715255, 3888661984, 3055633731, 3892458193, 1290884639, 2635249579, 1175398611, 1105650131, 84600535, 3926263371, 4114623980, 3594515187, 790155704, 4245943730, 2834643161, 1490856224, 587534314, 621864481, 3938075343, 2985361584, 1055256653, 3238399058, 87483343, 2933907539, 789449517, 592720558, 1324290801, 3943821867, 504115625, 15004717, 2839430949, 4257132604, 860544587, 1437344301, 2784509365, 666450461, 1193359436, 3811463922, 3890408007, 3239581108, 380437197, 3772782931, 4098283048, 3810643476, 246766060, 3267689788, 3223924961, 354742267, 3235601317}, + {3031578548, 1053706570, 221189091, 3796910639, 531103152, 4175707827, 365825966, 1397428916, 1007268297, 1046203851, 2947340633, 417705900, 507829937, 153272824, 3627364885, 466749756, 1242412108, 272582168, 3141976560, 3189238765, 3318349359, 3251630909, 3267492349, 3259478054, 2941002550, 773567203, 424718875, 365360606, 4246976316, 3736743459, 1307962953, 3713004456, 635895878, 3491278635, 3173733543, 2953689844, 1058254667, 1278391220, 1117060142, 1487518961, 3790335911, 699800642, 744111636, 859846736, 3568753451, 3943434756, 3371284661, 3022526639, 153764790, 3037471214, 3928930619, 19145710, 365674818, 910671084, 1338624511, 358882767, 791223109, 2871188447, 3018452409, 3119068762, 2888381530, 1471355728, 119846313, 3609112373, 301587394, 470296924, 1289168835, 82834451, 491847759, 615573212, 2973386816, 4095850677, 884006141, 3316107835, 3293335523, 1112199609, 751378683, 3947418138, 936094134, 1308177953, 2817845752, 3746639292, 3927242543, 971651007, 1371232225, 3591294234, 2836074264, 1105969748, 1414966296, 3154361333, 3572978976, 221206500, 3291153148, 3657505564, 786037823, 570157251, 18009168, 4231774760, 3070642688, 3032096679, 452392523, 1088283106, 3690838349, 3923772691, 3778610182, 4233492420, 1197734642, 2854091451, 3387119827, 101576716, 2981572154, 3119447301, 246469855, 1204623378, 3862741000, 3273445645, 4023396305, 908541670, 401099053, 4012653300, 855121074, 3468874267, 788978929, 1009275649, 402931162, 1152893635, 63883483, 3389256508, 3777514495, 1086059017, 3792915427, 3037522752, 968097289, 959788638, 884427795, 3940352709, 3117426726, 115006369, 2988033708, 957078983, 4146285821, 4112668824, 297457219, 1226950320, 3792514069, 1186532866, 3931057923, 3321237847, 555139277, 652489226, 3115301167, 534644407, 267638780, 324085183, 3420543031, 184010582, 2848073786, 3845738544, 1090452792, 3688087780, 488318967, 1141757722, 1491669848, 1024593646, 3909532142, 3541153309, 51197884, 488656164, 555621160, 381932229, 3191686070, 11491795, 2988842810, 453854740, 844639243, 1221331370, 615257847, 682931260, 4158278493, 251712801, 140431949, 2974607793, 3471707217, 3945977917, 4041422809, 229784018, 2886729448, 1190130454, 588857543, 3843952468, 3157861054, 3423332939, 3506157274, 3721657617, 2934375145, 1480977706, 353833195, 1307362799, 659405736, 3725520851, 3837664561, 3323187699, 3596231, 3068984393, 3523624748, 3108045511, 869801007, 1152792852, 961169418, 1056884160, 3437415648, 3468956128, 1310187243, 1096742132, 741794161, 3905346541, 4256475346, 3669300304, 3646144344, 1034541800, 1462379282, 340200463, 601083668, 1156431164, 4123080284, 3839687088, 4145466431, 3066311082, 4083430491, 3837971794, 851295648, 1460548105, 3501578677, 690799634, 484791844, 3342472007, 756412339, 3288801797, 2940193461, 3140478043, 1243746013, 303083077, 3301224121, 220855806, 3442756445, 4094039306, 1125526542, 3874085384, 253081101, 3009668561, 3943551687, 3452350737, 600830172, 3324364339, 3669146818, 3961994465}, + {153401418, 638372071, 1387467284, 3674266028, 162396119, 4244184146, 266283180, 3978239460, 3455906834, 3326266040, 131451593, 2818701556, 3388520421, 197899769, 4127665707, 1296360949, 659620073, 1187273921, 3051108015, 449727299, 3628233155, 217657848, 3956928600, 3538533335, 4292916166, 3719385092, 4147959212, 3116704810, 155042059, 906232097, 3058160142, 3539939600, 542657503, 4260894767, 1291164206, 3841080061, 4211662271, 4004321966, 2934966558, 905888593, 1022847007, 3587977671, 3838292296, 2772907842, 114416573, 4010150894, 3585496806, 3671191052, 4011180919, 3854220535, 671078424, 196720984, 3265942191, 3561155818, 686018248, 590874118, 3759196391, 888934964, 265432911, 3335514078, 4162470662, 286765042, 685028696, 486348345, 3089251788, 3871430221, 3907367751, 3357145145, 2906794313, 1019527636, 3528267435, 557718782, 223333138, 3677542346, 1028414494, 1392857121, 884537262, 4196261643, 3804540410, 582488835, 1190771691, 197242676, 3237690832, 129371218, 1259144638, 3512183802, 991374374, 522441776, 3237479456, 3707768323, 1297620284, 3993054495, 573704138, 4026073070, 820043467, 197200438, 3015321843, 4059182762, 203315632, 179306255, 3224908600, 3034804247, 1472923647, 317088777, 549835207, 2880878063, 4095914682, 3401958588, 3645288016, 1087970499, 333510864, 1557708550, 290533113, 1157151147, 1238956079, 987910894, 3058321693, 2799175202, 237419739, 3887260104, 4177841109, 3753452360, 1177014725, 3945278251, 1310921671, 3887941908, 3524444176, 3789106209, 4199865933, 3326061907, 917153551, 1220495367, 1153700074, 3169440287, 3238963907, 4057835819, 3978235979, 3057074187, 1388688416, 2868168252, 3742834147, 874033730, 3635938770, 941021193, 985602636, 3994632168, 2884680635, 4246022390, 2873833514, 3258383412, 33015509, 707015352, 470203342, 3728821953, 3973320362, 2918826922, 1312471860, 4164921360, 39327936, 657565454, 3790217169, 4280532670, 1009767232, 438182635, 1476200488, 4081731782, 3841060599, 3486446393, 3743791902, 1394724159, 434027572, 3501899305, 3973701463, 265811468, 2852963806, 217332209, 3886816855, 3719187693, 4008127462, 1091064065, 3588843572, 4245679602, 3453793056, 1422018331, 318068540, 3821424355, 1054086633, 3973570539, 4095010018, 3386495966, 1463211216, 164482091, 318302685, 2953786845, 603145018, 2886233028, 2965380152, 619493885, 869063250, 785430765, 3811980220, 3176538165, 4074770246, 874956858, 1291904987, 3138344196, 3233202370, 903928575, 70585289, 1186085290, 3182672355, 72354308, 1680851515, 1036638518, 3562014467, 146165230, 4212111528, 251977782, 1219963430, 3729133542, 1393540104, 3310948624, 632990523, 4010361135, 405910207, 203816888, 816911916, 757875695, 854711817, 4076500228, 2905990173, 3560486059, 3492863268, 1297402161, 3000621897, 1327312078, 1289661627, 2916234229, 995734620, 3656239284, 1472597223, 3291129334, 3570655719, 2941249733, 435489736, 4216580024, 2865570492, 381359081, 4196194474, 3795200825, 1087111226, 2873601543, 1330924319, 101856552, 571950305, 1288126708}, + {1192770337, 3588286442, 4058264125, 974932692, 3164723928, 3407562011, 281149203, 386084423, 3903919375, 3360481030, 4275639116, 1380298054, 187683870, 1307447983, 1142008496, 969666268, 3208328705, 1528128493, 1491800788, 437732621, 3338808534, 2604803003, 151697361, 3020429617, 901465383, 3425508942, 3827239247, 4249803459, 3987714057, 757144832, 4031572546, 515892393, 3636448546, 3762939586, 751746514, 688979736, 2589723659, 3477611438, 368249565, 3628461224, 268727467, 338510920, 4273327565, 53489446, 3807303168, 1158409506, 3222532578, 3559869973, 254425524, 3608661540, 131974949, 3691497459, 3033347905, 170351047, 3921617865, 1008132687, 254532811, 3310178628, 907080901, 3454597702, 3270426863, 130301466, 3586914120, 1308681474, 3678131212, 4008358578, 3526219759, 3065858284, 3893371160, 1680953603, 3022268852, 3692478521, 3517303770, 3775990318, 3367833529, 549201740, 288488510, 3941381308, 3703692836, 2899713310, 4159984630, 3354989519, 2898800435, 675345637, 3593382140, 1714172215, 3880576586, 4173402670, 575716408, 969881683, 1059990205, 1412767953, 257472507, 1698409556, 3540793064, 884085463, 3421523219, 493083833, 122005696, 1259842869, 1085166788, 162116528, 1414803235, 1195555043, 3374836410, 3872116313, 582730242, 1493500408, 3775798092, 889389004, 1337655593, 2806790420, 3260476886, 3835707570, 3572314199, 735957784, 3943913745, 1156644008, 387890209, 4046843986, 4161654486, 1421807664, 1377951678, 3836428022, 383526203, 3577857748, 499725589, 874632420, 3627671048, 87226545, 1497059001, 609697813, 3806083825, 620047916, 3408271432, 3877236199, 3270184215, 4072543964, 129054954, 447397707, 4122625467, 1056615168, 2907311953, 388814300, 1405957067, 722071633, 754371577, 4244653309, 164747697, 3509245423, 3202217167, 1196818354, 3644079368, 686091759, 3237084163, 1275406154, 3737700014, 938535975, 675625278, 3577892131, 1532015836, 1642977109, 3904162615, 1028588720, 1524806596, 1561923595, 3930566370, 1121863441, 331222866, 535438388, 1121369793, 1020412624, 633672417, 3118616573, 960016876, 941758945, 3736463053, 1052656855, 3611631121, 1338306227, 2868339132, 2671857382, 3645059789, 116849848, 452203477, 1145371880, 4159421778, 33443540, 792520001, 1056723775, 454683106, 3117760429, 3777025757, 421786386, 251082774, 584342265, 3519008452, 4130806866, 4076092877, 723825669, 734083856, 490192436, 4005355175, 72543011, 668842204, 3509713903, 653599432, 3712398818, 671876642, 201717215, 1356419253, 1565217714, 3017035773, 172991153, 2750961634, 1219551776, 1219086881, 1345862665, 3873893110, 251088900, 1042473698, 163922870, 717830873, 341376438, 3871856194, 4149802288, 53965341, 3560115745, 1476581408, 3423652019, 3238349529, 3158315089, 820686923, 1357104699, 315880902, 600715786, 621825790, 1749460428, 3728877565, 834535397, 3870616109, 2616775879, 1789379350, 47186382, 1512098999, 4079951680, 537048401, 2915235273, 3869969853, 700785883, 3527365192, 4157475585, 88611006, 3856981201, 2853589188, 3877832010}, + {3259428847, 3711517766, 3588670538, 168237391, 3089443847, 3991331000, 3390509602, 1091820633, 4211136576, 4215077673, 925039809, 68531695, 513273336, 3592537036, 1191428679, 302403809, 248008170, 1053875507, 3947620174, 3409563438, 48812579, 3204766268, 724170768, 4206552237, 1561081365, 4009431464, 4138712348, 786551092, 3692449298, 3960714176, 3202790940, 3378249562, 1091710677, 3876703718, 307504156, 3981318058, 332715969, 3138340530, 1474122575, 3305781975, 1003075816, 855441975, 3221276226, 3421445683, 991560745, 4124824232, 3989497053, 2966957657, 877010765, 3780658627, 1281169170, 3458408016, 3803724318, 3643620940, 905094915, 3758772760, 722736150, 3310532038, 1696506557, 1137520193, 222811678, 1189194447, 1037558319, 3470404414, 1202769388, 4292675672, 3189557058, 385264606, 524896736, 3338812467, 3823963353, 381080378, 3469222834, 452389110, 556136506, 3538603822, 598913857, 3977107937, 1075130846, 1106697799, 3252960061, 626723872, 67898098, 1017710301, 1293668799, 3269022420, 4060921027, 700763362, 4197981516, 1364187384, 3944916408, 1214294501, 3972904964, 3239266845, 1976109228, 709040464, 2990057415, 1245864492, 4080915035, 3085114397, 2604873994, 977588753, 3254442782, 4077177394, 1429165749, 3877881811, 1157548625, 4131473200, 800794683, 3964215116, 559407543, 3142330429, 1296421368, 1180561359, 1113085160, 96911071, 499191760, 3606852619, 1245926941, 3391753753, 843641941, 956022312, 1260110268, 1174417622, 3135560686, 4230606609, 3260464624, 1262619356, 4049412915, 4261404984, 990104018, 2872428339, 404291538, 3082965066, 3956754497, 64702638, 1539631880, 199620643, 289668374, 1179123892, 1057474316, 3677883389, 3692944903, 96878931, 584065964, 2965885361, 3103994290, 3469863162, 4191342572, 3288609503, 4174690384, 537416668, 1374530766, 4165947566, 3469951225, 372641722, 1027399003, 36089805, 3169060525, 332201513, 3189898266, 436514575, 507162836, 1068711504, 1009239759, 4150152361, 266281493, 2817724111, 988802743, 1155868330, 384289454, 1472421603, 1406212877, 3016473338, 196589557, 3383490498, 1472855321, 1090922215, 805818342, 3136228166, 1020344049, 1843977762, 248792393, 3424283660, 289784551, 3034692058, 205072310, 499007981, 1439452427, 3123923511, 1427002589, 3703569719, 1459221208, 1205794770, 627371981, 1605639925, 3587916044, 3475959349, 3331805, 1655727134, 523393292, 615891198, 568704778, 3791369932, 699084360, 352042942, 769507773, 552205506, 3319873574, 4601112, 291049661, 3170702782, 504872653, 3908382431, 4273883186, 352917198, 3636417034, 4155254600, 1323042215, 3897944506, 504559847, 3627897173, 1169742573, 3621146968, 1362108707, 3455962581, 725936693, 3861033731, 692257453, 4279748380, 3594856241, 3740992455, 1380184839, 3907181618, 534637640, 2897935038, 2903047914, 1056095431, 3758093361, 198366411, 273421385, 3309097920, 584922824, 1278676983, 3441816313, 3763675353, 2855342293, 3727511365, 837494805, 985668840, 266128626, 152123701, 3450592205, 4090358822, 3218694437, 3106142644}, + {3022643149, 2815906379, 2987018824, 1473064761, 3645310645, 890154431, 926554827, 1079554481, 3875461350, 689823267, 1358496598, 3975886864, 792063469, 709222409, 4209304008, 4126365757, 3326215451, 1478775593, 3350871058, 2830172121, 3370838715, 1153905194, 3554022398, 760427038, 2781730280, 355748358, 3359528693, 3559832858, 988734752, 1430116686, 1178921003, 1202776909, 3304650780, 4138751158, 352915016, 3288059153, 3125032025, 265756109, 3695503377, 2938299924, 2881575346, 3436730599, 3842757925, 389691098, 457485812, 1242417935, 332970972, 3987209986, 135129315, 3406213707, 784782518, 320388108, 3334393413, 3906200900, 464115485, 3946651357, 705606431, 3001137438, 3773041930, 4265488948, 4172037356, 187110373, 437203544, 3571568955, 3995932128, 869470952, 818402798, 3753161488, 281042706, 4181410988, 1412950551, 1319579070, 4258582450, 3637112898, 3121695539, 842709772, 3696626623, 215661242, 71192267, 4166144269, 1140780552, 2880752686, 1108790218, 3153843514, 3823327931, 3610259444, 1008733921, 706331598, 230183741, 1453845274, 2899331926, 1002174406, 1088158897, 2914321838, 4247250109, 3904526305, 4291800521, 1429741555, 3557485743, 2823665607, 146219996, 683467533, 263998540, 3451519172, 709515261, 3693620996, 3813465799, 3590851836, 437797591, 4030184675, 3120626727, 3051146945, 1085128469, 2931181054, 557565946, 3005036338, 3635785699, 3343532246, 2989838793, 531956762, 591316512, 574477397, 1145460234, 3436230825, 825685042, 3970805577, 3406122410, 281286824, 1305850907, 682382150, 501412046, 3571007724, 3721653509, 735652070, 3660791278, 3725857822, 3803443799, 3006846380, 1161347060, 2937696302, 1203224551, 3552239787, 819018992, 4208089850, 433321209, 3688079942, 3475265528, 4148375789, 1344074046, 884278488, 2863090700, 2886536668, 3959608399, 2941058358, 3947898407, 3367394586, 4190200124, 2907749545, 690799351, 3158354253, 2772218934, 152770763, 581774918, 121176609, 2784414807, 4191607281, 970128945, 3373152477, 1224529109, 436689590, 68173741, 3225770964, 2913910569, 887310623, 1123154349, 951712795, 532662784, 1178449948, 1458326476, 3517829816, 1409403969, 3001285323, 3620533255, 3150249430, 3695191301, 1145565884, 4107931977, 2971991840, 3204654046, 3390588642, 4179080624, 3419917351, 1071822259, 3306427669, 3375432921, 391263511, 1228783561, 4027565851, 382674255, 103812605, 4238954514, 4224197372, 3206540576, 682930369, 790607364, 1025177550, 3856674341, 853623012, 3754342426, 1136404796, 239947763, 212648117, 3003719718, 2967974590, 1445942058, 455323392, 3908962494, 1291595993, 3102008101, 3359656203, 387993408, 3218131434, 347453489, 164504002, 299192664, 1023718450, 683296307, 567539693, 254399704, 337797371, 3708570304, 3592816558, 432202491, 3853650259, 484497212, 400038842, 3962257470, 852413379, 4172556526, 2856446750, 1119148833, 1474623565, 3687319762, 3135030032, 2882727387, 736490269, 549048407, 1011491087, 1006825783, 1359402694, 3842949334, 3876399043, 3980640842, 3344419301, 20669445, 179549627}, + {3224284978, 3891324487, 625150724, 3820431440, 603651301, 3707180956, 3222065124, 637811989, 3826758204, 4126224705, 1058989063, 793007664, 66741351, 687619316, 1273279451, 3813004557, 3894630402, 3737913078, 3322586572, 3108111326, 3911333577, 2956522208, 2865572412, 3913789474, 3861294245, 3937484604, 3805732780, 618471961, 1705238, 603578155, 3526751486, 3991921468, 1506211000, 402532823, 3576307191, 732546009, 1192747251, 3065787421, 2888651356, 44759334, 2716838967, 263126613, 1632038684, 2790205499, 2988357292, 759091742, 774965315, 1442856952, 3215542246, 102938826, 3356972002, 4213491961, 4246755125, 3116905190, 1442665533, 3251621062, 4039723772, 2883770625, 622575832, 3391753146, 3049916879, 2914497111, 269697708, 504108102, 447346350, 469148695, 4191268694, 432515305, 1292640960, 372324006, 451154381, 643050321, 785626646, 441464560, 3777751022, 1477442555, 3702648615, 3172159454, 3820432684, 3057497620, 3895458074, 423697395, 4045983912, 1497842768, 1073791217, 716364794, 3474794942, 4214868779, 3829672736, 4180945143, 1185612301, 4149425090, 3006415540, 2956316978, 508652240, 1273099466, 200036358, 4061728445, 3103508250, 1254833945, 4081818970, 335896656, 1313198621, 3756575442, 972813516, 3954444249, 3962824177, 3577876757, 3942889194, 4289126564, 4048614321, 306381987, 776161771, 1413415164, 1307881491, 281558830, 1239923783, 4089887294, 400761532, 1211031501, 219564309, 3808412650, 3627742203, 3501869033, 2856864340, 727207654, 1128395509, 1090962491, 1611454389, 3165563308, 3724932135, 1227566586, 3141967620, 4292658264, 3744249789, 3541908019, 1395866687, 4227542816, 3493277233, 179938093, 205904653, 1072507939, 774425665, 3242015020, 4071686856, 2908895254, 1306476615, 4164898731, 120210981, 3208462639, 3796819405, 3384659994, 3390258158, 2952704700, 3317295696, 55440466, 3828757033, 751678417, 559173064, 3209150635, 3220458313, 1042134961, 2966638775, 4045422386, 4042260044, 4257392298, 1498533585, 736437515, 2975094032, 3427747840, 957403990, 1376202510, 3728336474, 3729076672, 1028383308, 171504099, 370139456, 858636239, 1206597696, 3182488006, 3206629304, 3257071135, 1409218904, 4116065040, 491729894, 1010554092, 1045103844, 656606461, 2940650744, 3508324901, 3103184828, 4061457339, 4209495817, 4195139434, 3803993821, 3406694360, 3892072443, 3457400751, 1124533966, 3724807096, 3173504224, 290867663, 1378736868, 1314004230, 692576254, 374459694, 1511632059, 3879863359, 3034265297, 486488550, 352629236, 1060634190, 4146016692, 2882920751, 3870977305, 196532478, 516033479, 490155279, 536130043, 557703690, 2938851004, 246871329, 4243016260, 471057331, 3083411949, 3894947915, 892658893, 336323240, 1370090768, 448524226, 120731300, 1001836711, 951054282, 1437597520, 456611504, 3441755869, 3234673484, 3526350102, 771244625, 4110352674, 3137216238, 1305275615, 772815066, 1171135440, 38589909, 823996922, 3389833552, 169235018, 33218585, 705564495, 3445901351, 3574745416, 3507291719, 1354554144, 2517659927, 1074857512}, + {774705956, 1001793462, 2867510847, 356922942, 1223682759, 3862778633, 4144020910, 2820013039, 47588099, 1141372659, 3998971, 3088843000, 449712357, 860492347, 452901617, 1373971645, 2583203793, 268291398, 620916555, 3523279330, 4172981456, 2304435660, 4276869331, 3325805360, 391311167, 4265747368, 1378960100, 131809723, 3425940517, 3702210515, 3490342486, 305262819, 4232777906, 1023719184, 403387959, 2951888119, 707573415, 3652662461, 475154001, 1190177013, 3796573701, 269854802, 854665510, 2922337613, 3309743134, 2885765613, 4047437053, 3727482870, 934155056, 885573571, 1093915656, 3321766425, 3441839143, 3621118781, 3729186023, 532992222, 752033527, 4240138300, 2965763300, 3829600315, 4003613498, 370948861, 2689599807, 3416590772, 2789160193, 2886800591, 1320890304, 3087549883, 801884481, 1841430, 3050373607, 388583693, 767211598, 271812666, 3993224267, 1106583324, 3173472943, 3417780909, 1377810868, 2987470301, 4081139790, 3420458061, 115415067, 507565100, 693288722, 380977441, 952558096, 935911657, 1069364960, 3493379150, 641777607, 3743166293, 3292803663, 3168094026, 3655853278, 852943602, 1019757241, 357867456, 2970227525, 3300837903, 1278341146, 3922591200, 1280458763, 1023019209, 356502030, 3871559913, 4280413172, 3510293944, 1110180342, 3676632245, 1375451106, 3626221835, 3284021768, 938078921, 401671180, 632223146, 3141356848, 753218483, 1465449446, 1597879626, 1411992824, 3505705500, 4041559570, 739099839, 4042244164, 575297876, 95888967, 3036723968, 3036410890, 639706883, 565011927, 387367736, 1270148399, 182070708, 3804706333, 3474138851, 635050732, 1527715834, 758133002, 589104132, 30284847, 3805696519, 3193060119, 1359343652, 3567698894, 471911685, 1244117764, 3226427932, 3003241403, 1190464222, 166656720, 3149090233, 4113111047, 1291516969, 381481790, 3477542674, 4010524759, 582595087, 3696383983, 131545936, 1125783892, 3476234962, 620692449, 298266095, 635591856, 3569615424, 3004756158, 1396965586, 3691125679, 3926940443, 3103445726, 3554095885, 1046693044, 3989948140, 3266626547, 3407222866, 3522281717, 1481596490, 4065723465, 1244920522, 1447009582, 77854947, 807219893, 119399383, 3754634967, 3860048935, 3590081496, 202527573, 113201121, 4075946415, 3855403593, 1158237874, 1011555804, 3935891888, 3081252354, 3491033060, 3017734589, 2970311909, 2835400144, 3587051707, 120899022, 1325746381, 1271664679, 1341710067, 3426636859, 4014201318, 885207009, 66042953, 3978868002, 373216193, 1490301480, 4265547084, 4260021540, 63383487, 156371210, 2422006, 4158212011, 470031049, 483719708, 957370125, 39382736, 3873694272, 363591497, 3584963028, 1108668077, 303255350, 3810514695, 3073725369, 2972855768, 2838161404, 48825049, 3323278056, 4275188204, 3743537469, 1159284817, 1162731815, 3521794573, 1192050149, 296493874, 2684474669, 722856492, 1006492234, 4038209777, 1259933522, 371678174, 132795955, 3721148467, 67299570, 3958697800, 753725109, 666750014, 488107030, 3099274189, 3880935395, 2871828705, 1442179776}, + {3423520937, 3322357557, 172485903, 3438787928, 4006000836, 3929623764, 112393302, 1241138954, 3205805855, 4059257072, 3484267745, 1045691863, 1075835095, 1262832665, 2940675305, 1018491861, 3695852025, 81245129, 872503267, 852288345, 1087104562, 3021349085, 4129084958, 1508785863, 819869774, 3670583060, 4205495889, 555232224, 253495502, 3946726614, 3771263423, 2839263291, 3957762376, 120125428, 3755950422, 3342879928, 499265492, 4061052380, 3070218473, 3827578427, 3217099076, 585039122, 3813096160, 1094334812, 281688397, 2954642170, 801171451, 582405143, 1162227898, 4281487825, 128446477, 785184985, 19668222, 354237428, 4279321933, 4025883639, 724182963, 3081449778, 3977426210, 4173354741, 1455219440, 977586414, 3338409176, 3167685897, 1226828255, 571598164, 753339989, 3307097078, 450024393, 586489607, 976959172, 3656244028, 4280599126, 3426232389, 65280817, 4261544628, 3930041087, 3375371862, 368445756, 51755556, 3973835703, 3956223972, 592569295, 1178868546, 3720284942, 3572287517, 3131314731, 3058365952, 3475232440, 1225244348, 3542727133, 1155931873, 155431230, 448287683, 3892329528, 3306465220, 4229049284, 4238882788, 3070294976, 305251879, 4263910652, 775871431, 4078899968, 3805091312, 2838049609, 3054516925, 3908286505, 568846173, 1135428830, 3338195892, 4098476481, 3805696568, 3134436570, 436412698, 3091639562, 4231995456, 3141946794, 4266539307, 633414409, 3486180803, 2965628509, 4003927795, 3621906984, 3911320662, 1023524660, 319758273, 759446204, 667083801, 1319154432, 665721937, 2891048407, 3652604620, 1024655110, 3602631649, 3669620193, 80791341, 3307718983, 104201987, 987175244, 402478342, 447721554, 4039385324, 3025746415, 3907973344, 4239253997, 1212485903, 803064132, 3273121353, 4193374431, 3635405087, 3628160030, 4097381443, 3273253139, 1395543106, 906806569, 3962121529, 51381327, 3853988847, 1270886070, 1270042809, 844032987, 1340202029, 4107333975, 3690581272, 1188622142, 2990014474, 4105123110, 3119595056, 3602398766, 4258189030, 3474796602, 3658431703, 2820802994, 3019948737, 4131538954, 3725267379, 3284807175, 692384488, 3003694834, 435545694, 3001637049, 3726110301, 1194136117, 3073356223, 3521004825, 803611318, 3981646400, 3265644100, 3759394349, 3894523636, 2917083098, 514318849, 1340726226, 657712794, 3276164401, 369170892, 1442841118, 3274257384, 3021580631, 3645486839, 904615207, 1163059443, 1102361410, 3930314981, 702696280, 229845715, 2934230021, 514585825, 4273428029, 1094595574, 3612871623, 3354380110, 2975377720, 3066631602, 1169205571, 3183592979, 4079629002, 1112669712, 88205044, 3674865225, 892190409, 3653773801, 200359204, 656337199, 1394412374, 908178653, 3389388110, 917447728, 1327568668, 4294094366, 4164748624, 407299306, 3574725888, 407813345, 4105414923, 3712723658, 3404515529, 805316640, 1041511772, 910748635, 3828746039, 3852748496, 3610946498, 3456975072, 4245376510, 2889687215, 638304304, 3404731155, 942749126, 899925465, 181549510, 1122511797, 3629665301, 1361437460, 3221334972, 1122522847}, + {3321308443, 1254309717, 972212418, 736955837, 3236032654, 2478131758, 854853673, 481809457, 767639504, 1104367938, 1203616568, 1161180957, 1382141328, 532074514, 3568679505, 3439013197, 3527480024, 564802525, 3351714577, 3939038632, 3942917931, 2913715872, 237702356, 3367386455, 3073638835, 3936672541, 608362553, 213334866, 1409930700, 3456945846, 3130403, 3416214367, 151775556, 3895062234, 2786402558, 553496631, 3358417334, 38918354, 1374628383, 203552799, 216014839, 381091637, 1043509787, 787234084, 4193852619, 3779181742, 4114761784, 1042146857, 876159125, 655928126, 3458640916, 3722517501, 4207168841, 64405312, 2938952209, 483867213, 3997970390, 4222571811, 2795484714, 2768887481, 128236879, 4096936957, 3673290496, 625822288, 1412772670, 154808787, 1293069532, 2915113947, 307012526, 3540727570, 115018753, 701940213, 927718720, 62504886, 4164035850, 3092583422, 1124516801, 1209583823, 1161692089, 954794574, 3619625483, 4215535861, 4205793343, 3528662701, 1362042591, 901314757, 256368310, 102872533, 4138540294, 3525882914, 1038552533, 2734901068, 3274064429, 3525758001, 635970315, 3674611995, 3367236602, 1487821359, 909834009, 921705711, 3953927073, 121070155, 330624946, 4114229743, 920103976, 488704008, 1108204871, 655873562, 733609001, 674903216, 338949432, 1153038758, 1074184891, 1293829419, 3510850841, 417155108, 3041524666, 722743129, 2832545748, 4149404690, 232121948, 1286479553, 3232290633, 386271678, 824893711, 692915440, 3710044228, 2906130230, 2967483472, 1071100753, 3119969625, 3908361282, 3637053691, 4050331955, 632284199, 1273256150, 37883419, 2917187846, 771104525, 3387483227, 3996704088, 2949231693, 1375335151, 1020052236, 3794915585, 3242461141, 719922713, 1035353107, 3973773053, 1271015196, 3805856466, 3756779733, 3609745605, 3558256629, 3772700754, 617824181, 3895604968, 1226131206, 3889111061, 3350223354, 404954807, 3340552643, 1397671905, 3068198431, 1085152550, 4165789657, 419646491, 749750279, 875039563, 531825227, 438693402, 3795581890, 2905797082, 504771095, 1204336985, 171756029, 665345985, 4197962811, 842727103, 1375404061, 4249690588, 4107913874, 2990412563, 3306051620, 1025058252, 615399166, 3574804134, 318450499, 3939192604, 1675388606, 4089126193, 957073692, 65023657, 2721824694, 1124222409, 3971028999, 3307326946, 605534040, 4250200149, 2986091608, 448209326, 3092569649, 3825711317, 455211495, 1034421049, 2681653435, 3645091919, 3619699389, 3049134933, 3240305202, 1291730674, 3122638619, 4009998093, 4182367719, 1328540956, 21762312, 3912705037, 154320590, 3943745712, 559146806, 3092794425, 3040599387, 3792382123, 620840939, 971835079, 17898179, 423897818, 200363023, 3208728810, 1043133153, 939471396, 533408192, 306927015, 3132838436, 4214021633, 3371285717, 30785011, 550030805, 69054477, 1103362579, 150137637, 504751774, 45679953, 2846084076, 969159769, 4163909327, 548535358, 424931159, 3754628561, 4046643484, 3433751078, 3269809181, 3002608927, 503063479, 351079663, 263652033}, + {507380687, 265538267, 2821773581, 4246228487, 3921340369, 4160810487, 1154700537, 469253937, 2999719111, 2939533324, 3266184448, 3519495184, 3053259960, 3268017436, 3705883683, 3303797283, 4029812151, 660601350, 3046701758, 3002254024, 785568590, 3875982524, 356311225, 3990862167, 1176128760, 3889022905, 1478351886, 301589074, 783658746, 557246704, 423550391, 4087627232, 3757454930, 1111839538, 3306350651, 760094300, 1241295391, 1431419331, 291196843, 3557222214, 3341630927, 3754815793, 3773175551, 652421069, 13243645, 1060895488, 3675960026, 166318133, 468001467, 4262121047, 3036143435, 332728370, 1410219050, 1171452954, 3354059542, 199999693, 113516570, 299429039, 333835298, 121771453, 1261742357, 941503302, 4281063207, 4028496723, 391564859, 3390842679, 196999000, 3838909715, 3680155067, 887209534, 3797363202, 3141988313, 2814645848, 55988259, 670503689, 1202772239, 3090367560, 3001226230, 4073064694, 1035030870, 3472345268, 771729322, 468593171, 1242546638, 1245954137, 181006927, 3771416609, 548981573, 3391044813, 3994636830, 4157593839, 3923642449, 269767918, 4161886036, 234214328, 3074895837, 3373536588, 3736806109, 66395093, 787015938, 4072779233, 3051443678, 3569021236, 3460297711, 605350681, 539641664, 1228129233, 3088365820, 3730123259, 1371402232, 991489004, 3997351860, 251140621, 3474962371, 3473288102, 3453266899, 3141358015, 3836654091, 3769814863, 324025685, 2864796507, 684651709, 1027326906, 536461283, 4131796702, 844517968, 620114213, 3825125070, 127204391, 532288973, 615958006, 1504051119, 3460344499, 2819997216, 3339694902, 716394672, 2921654551, 4154282265, 3805021870, 1119359545, 3747038535, 3088624451, 3651797265, 3442351879, 31142319, 3203869932, 3226141526, 636211732, 3259303108, 1084544714, 217270596, 337833034, 4290917376, 984958699, 3489259082, 1079495661, 771053105, 657201986, 2850484673, 3503089385, 3084449219, 3924495311, 1170232257, 2836805173, 3386752061, 3625078591, 672219200, 858774339, 400629538, 354360817, 2890463788, 4224734968, 3502747896, 788320204, 570554931, 844539675, 3740120229, 205984491, 3154121178, 1303905303, 3771019725, 331679011, 505528377, 2820385814, 54663072, 474951117, 4144550391, 4249750537, 2889159438, 3066874535, 3889219904, 202198529, 147712546, 957401262, 3092142036, 4189926061, 3236998926, 3402810658, 475545410, 316217672, 3207936855, 101010391, 81987368, 1023097683, 3797270473, 315861719, 2855539982, 2950034881, 1393803571, 435293645, 4111814382, 312722986, 3198602069, 2985150194, 3893111346, 3135366672, 3938775489, 3426797084, 3504210641, 851510725, 437249259, 3016863310, 3640312297, 4178194892, 3394807890, 4013441846, 198113042, 607702092, 994051074, 925765531, 1426965744, 406721544, 635523090, 168754947, 1111618529, 2820803802, 2869314283, 2789090072, 3642891009, 3240450304, 136904781, 3964055100, 721605391, 1042485077, 870755263, 382542525, 2863907287, 4245490658, 369605624, 223259875, 1029680126, 154977853, 3911309117, 472501010, 1110969498, 656022539}, + {686335746, 4079417257, 1278982078, 3121370863, 3677623572, 3724666431, 1275581968, 466622450, 4057529417, 3292179755, 751578056, 3889998297, 1244446270, 3100753910, 707332552, 554227540, 3140821718, 322694342, 3702717210, 606684159, 1491158792, 609359890, 4166313244, 3084536300, 30797661, 189528316, 1203956716, 2953198862, 1069226665, 268019645, 841466449, 120907477, 725306332, 4260103885, 3275026998, 3827245100, 3759784118, 4228331332, 3876237610, 4041938427, 2829373644, 337661225, 1430083313, 301990981, 213255615, 3199539128, 1091946926, 3518415944, 503040455, 839117579, 4059817672, 4079702711, 4055910187, 551488074, 3635872593, 1091102805, 2923254696, 484179487, 280080084, 1412024847, 396889592, 756176329, 256359874, 3136308194, 3068135775, 3760958279, 718191388, 955830254, 976115030, 39045044, 3276981073, 406599146, 4224385884, 1444739093, 3385311492, 3941451477, 603503407, 3737431350, 2856434191, 3401930713, 4164738372, 603272776, 4127343149, 2949531428, 3419782724, 183128556, 3408997354, 83434199, 3170454343, 414772775, 2888288042, 4138217967, 649943104, 454689800, 4063054244, 648949324, 1275178510, 2935900043, 213243899, 3893802765, 1386888707, 304428035, 180996009, 340455626, 2952528995, 1405398361, 1189694147, 1144375771, 430646365, 4188253211, 4224004410, 169459730, 1458634432, 31244603, 3154635076, 2972206617, 3689003850, 2868395494, 3023558099, 21812306, 3925864928, 347065085, 1001856522, 317510976, 3283623144, 3854743554, 2863847266, 4280480724, 3406370846, 4211659348, 2986282441, 1192251830, 3089422931, 4294632482, 3880253929, 3108125687, 3502581974, 703840495, 944028168, 721594391, 757788403, 3906844509, 1394927073, 4275621070, 4256493627, 1142946235, 736614200, 3987026431, 756791302, 3023959781, 838843376, 3183298595, 1026107200, 3122198215, 752308754, 33019375, 3804566271, 2951540916, 3187102404, 625286584, 3940739918, 1379149774, 3439504346, 168083765, 3323597576, 390597638, 4264821502, 173423320, 52051197, 1252774079, 2872885074, 105051885, 4129103185, 3376789977, 4072263984, 910143778, 2830038710, 3186340936, 1019417666, 1459280926, 1281799626, 3634151207, 4057603927, 3268363962, 1088413406, 1141357291, 3460315213, 116848702, 3008815814, 3625568782, 3668488166, 272429782, 851891680, 989126444, 4230528747, 469755419, 3505322826, 3525437977, 875353597, 508093953, 4165073488, 4182965200, 3157837368, 385696462, 3269987867, 3861636343, 273078481, 4215875817, 735925563, 3154508537, 68177615, 687064834, 1362023527, 3004777541, 3174352658, 4060021728, 3437249482, 3349934090, 1405287665, 1126502597, 384756904, 4213699384, 3115046586, 554088671, 3960290308, 454618893, 865751477, 3654599642, 566777912, 3804558512, 318833662, 608901856, 4260881076, 3235237904, 822490103, 1340089654, 183828929, 3772274016, 3726487355, 3406254795, 3451561812, 3975269647, 540155468, 4142466087, 3690210234, 482686906, 1062399754, 1439562265, 1273779696, 3908908532, 4041421106, 3188333321, 1024447735, 3525887413, 3896433093, 1140921692}, + {252696117, 1158239828, 468383412, 4165189057, 2952150593, 1289953086, 28195254, 369971283, 849601843, 995233342, 1072707811, 725953776, 1348141043, 3608394804, 691135406, 2886083076, 3042159379, 632706865, 466476769, 823931982, 3445678664, 3042496829, 590955029, 3142641672, 61077947, 381941707, 3992003305, 254288700, 3269326620, 967783241, 34028072, 3186292190, 3519736256, 497880563, 1021973758, 369283916, 3227166641, 988232985, 3061385412, 31056720, 4241806001, 3571123517, 3223466423, 2852372683, 86186573, 169937132, 3743490392, 4210608164, 4197320425, 3521685691, 298767386, 3405758634, 4231609635, 504229976, 692459779, 4040893388, 900855269, 483700227, 3944828072, 1007492602, 3030823237, 740935928, 3218977238, 1308865298, 3897225293, 3861533428, 655221533, 3290036440, 3357487533, 3757589528, 993656403, 4211397942, 1237691407, 3973631145, 1261251310, 957613771, 3830041812, 1228597723, 2936801537, 3020165389, 1052312097, 3910189777, 2954760420, 3796560566, 833303058, 3828017321, 3661303593, 334474158, 3879748568, 833835240, 3404083508, 3743919293, 3366968236, 3183587549, 232076852, 3651863563, 2814688775, 4162519979, 3067726896, 1393539142, 364239176, 1378098163, 420611393, 3641160882, 3461331652, 1474516006, 2914048960, 4132299561, 804957260, 3305978802, 3235656732, 518368545, 3154054685, 3039696088, 2832685008, 615566667, 819775915, 3433249295, 3469292830, 18080211, 3123900204, 1291042520, 3202328909, 3118028770, 757287913, 1043159253, 3617804043, 4212513727, 735829010, 1227833574, 3572771575, 4249826368, 787789307, 3569614149, 2919027427, 231720986, 3369387011, 521974702, 87439040, 64432637, 3275302356, 3743723029, 3271774699, 183388466, 264181428, 3275289345, 402461475, 3485286405, 3745600520, 431620358, 221921034, 3403494137, 2982366551, 823783081, 1287201991, 103332388, 1173106749, 3946817469, 1253462073, 3002518095, 975624226, 290263234, 1244788191, 3539219699, 3323656173, 1447019564, 17287861, 2969825622, 911204673, 3995030201, 467291116, 533718794, 15971913, 720687859, 859254848, 3713329885, 424008451, 888011195, 657864376, 3925004518, 1509224475, 3151959778, 3525305065, 3324854215, 3602590719, 3712623164, 3813869243, 589428313, 448325448, 861801395, 540796431, 307497227, 1105217351, 1172237995, 366406107, 388382657, 1461521944, 2887787086, 3404616955, 373437207, 3728534453, 3903963821, 1292192221, 1425030327, 4209949462, 149809373, 3560714763, 283398616, 3090462505, 3972714676, 3016009686, 4158512415, 539797302, 3107122872, 3655267009, 3392009525, 1121036255, 1221335239, 1279580179, 1090467547, 550318273, 557776710, 3304126739, 2974808127, 3554096607, 756305390, 1004676342, 437511927, 3788373452, 1377680618, 268040477, 3383545627, 625153569, 3471579952, 785312268, 3205674497, 3729606409, 3841110953, 401978357, 1207745332, 4250131946, 1002159672, 3841501163, 3523757073, 1041345756, 3726295331, 195888655, 3571009014, 3070352360, 4075614502, 2956257588, 3991521830, 3201448971, 3271084032, 3210871781, 3605211575}, + {3771713488, 2867738554, 4282768955, 3223144202, 3075023549, 3894423081, 3930910721, 4063434754, 1225219379, 3844555560, 3679802546, 3772782930, 2486358807, 1093532866, 3880408020, 824834294, 68507377, 1306773575, 582350152, 3025581552, 189347812, 192858038, 623071976, 3052287188, 654595807, 413840462, 101041626, 3307343085, 4113625577, 3085284904, 1223322829, 2716471343, 1593331166, 4222245713, 3956747280, 68100544, 3705672782, 892006160, 1509205426, 3723437833, 990787287, 3305288172, 3961179655, 882957227, 2885555679, 3284806188, 179548757, 2988961006, 1241773761, 967964131, 481776335, 3620981689, 876080958, 1191314726, 1522653499, 3655267601, 573697739, 2968137139, 698003379, 3441815737, 3669612030, 387692588, 18111951, 4175439291, 202196766, 1209609549, 806933695, 2882876612, 1209329453, 213647937, 4045020238, 3082105533, 3104372009, 1039336260, 435740437, 3159634472, 3137929669, 267269298, 3876605658, 3238715162, 4293074446, 305311317, 3535618215, 1473643345, 1579463198, 3065891643, 1472789480, 3324077490, 4072232733, 1193682425, 4032353730, 3267973162, 154015821, 3138896439, 954963731, 4132059052, 455421228, 3547188237, 372171532, 3470531327, 1007480318, 4113167814, 3051882997, 1426654637, 3023438110, 3605091263, 1295395077, 3828657598, 3962376218, 833238584, 718951348, 2973847744, 3175565550, 170014185, 1137589927, 1313145871, 3064909778, 3728088818, 804843075, 3563190193, 890424558, 129684522, 2817649963, 3454223880, 1103997418, 968892138, 265968047, 3289791523, 1168134636, 808324950, 133672615, 2866918172, 3586174508, 3486312517, 1476400818, 2874191044, 751911611, 4122154678, 1213140948, 3472539415, 3411464416, 3606302948, 1188346591, 1189098222, 3291955949, 263007250, 533931568, 3459437742, 4027532991, 1404157612, 3202082542, 3635301195, 1354886396, 353305367, 973341251, 458829603, 455880995, 903351838, 223420980, 1088633675, 3948607320, 415579945, 4097130928, 994238192, 953949176, 3021534920, 4055643095, 3672884429, 732547829, 3074552013, 1177278686, 3439056603, 3814468383, 369709604, 132007946, 1017971437, 1309207776, 153149170, 1412509994, 760339724, 1593811666, 391067390, 1474508100, 1410026932, 2684817104, 38164962, 733399292, 752010229, 522206952, 4106034954, 952849742, 674245637, 3333357651, 4011918787, 3073217718, 304857799, 3308321024, 3220043353, 743752956, 314303547, 436623305, 147781838, 418129177, 804632579, 3073584377, 1070976965, 3483958552, 3654090804, 3803697608, 230569184, 1246842061, 3338608703, 3426922759, 788744387, 167261409, 2949118534, 340109258, 799820357, 3249918737, 3034448695, 3260209484, 988732161, 38483480, 3576934602, 272889937, 690311749, 1153822148, 3813555392, 3098094637, 1493178316, 3426412050, 757866070, 3408599508, 1178852438, 335725071, 4207493163, 69722382, 1560471814, 3056847289, 485557439, 1495549386, 3543334666, 3386042928, 3004296017, 842472792, 3149149409, 3139379485, 3843896567, 3737660585, 3961913372, 1362605272, 3368989943, 558965579, 3052073772, 656318019, 893833156}, + {1288094142, 3713052372, 1026430282, 1496507656, 1272137941, 3287561643, 3494430409, 339735727, 3224414428, 956894985, 3285075517, 4282188286, 648988141, 2838377242, 1157245953, 3148995666, 3994624099, 3623090473, 2883829565, 789311805, 673337040, 3994627139, 112005409, 702394679, 525938917, 4111050030, 2852147544, 2868758473, 3672328759, 1246224443, 3905698303, 3722906599, 1043747008, 4009557468, 122533857, 374949092, 3066306609, 1128400199, 951931751, 4194294328, 1180504133, 3219658801, 3738739885, 2991263299, 3182953688, 4260484094, 4158642927, 4011050746, 3568698568, 387365537, 1059601183, 668655962, 3737994256, 31644121, 1263842005, 4260252721, 3587435814, 3003045384, 3523993554, 4066308871, 784052976, 670123276, 1041035850, 3536076503, 3761002175, 357869642, 335021349, 3543155938, 1071763460, 3593607506, 1042135109, 4014450170, 1309654080, 3658775550, 3134212561, 976308420, 3963507762, 553568199, 3140726764, 3960276921, 1245309955, 3469929809, 48775652, 1071248570, 2806858972, 3795576483, 457116162, 4259113805, 507043649, 3338383594, 1086732527, 3408250637, 889203493, 4228266997, 1086923031, 3258970308, 1135202318, 954164224, 2908359213, 2955669527, 660125740, 3778169297, 706491873, 3636212157, 121169377, 1125585491, 1370860361, 922422218, 1225793231, 618132684, 2970212429, 3035805450, 118287675, 4049019870, 2807951152, 3469296716, 417327129, 56966076, 4126929646, 483974993, 2782114752, 304987666, 239400124, 3528265414, 1212203726, 3552575403, 590630127, 4191596720, 3797141690, 3896851441, 229696557, 401717335, 1280462261, 1308028111, 3589490361, 2934969141, 885850079, 3202267916, 65131802, 3338792523, 3243721963, 886682119, 4130083100, 3720292046, 3981977029, 639673598, 834921257, 3971524887, 986518547, 4274213363, 1438592529, 1107814186, 1425789436, 4188735179, 458485711, 4139594459, 1328564981, 3372627238, 1022023084, 3875952297, 1288878344, 3175393557, 365302338, 3630172173, 4275284980, 254989299, 1423790783, 2957182510, 2950567415, 2902077776, 4261759965, 3757582642, 541324838, 3501439169, 2822714348, 2838627766, 3041064378, 1045500329, 3290150660, 3325840313, 3138962203, 3938588859, 3336434109, 3841149735, 1024265977, 4240198929, 3523596745, 2732347325, 4061904844, 1223247126, 791988151, 4124692549, 3256563420, 4263451154, 3287414341, 1257638624, 676546732, 2924426064, 1046081317, 3811168080, 4141537794, 402453198, 771761207, 4162016481, 970374829, 3707905125, 550157124, 3602305334, 2850637343, 2940354119, 839632866, 3306741795, 1172962483, 3451704918, 1370953760, 599122248, 3609073993, 3605403051, 449451180, 3737528083, 517883869, 3407760914, 3392190288, 3438858230, 3285912580, 3520648169, 3420502572, 4124432429, 4061331222, 3410097239, 3803823916, 3327455656, 658289065, 2873089769, 3036608703, 3406511561, 4111667654, 3855475667, 3602273728, 356057880, 3352440766, 2755226919, 1162754116, 788282624, 1413631252, 321900858, 1007539374, 4038784740, 2951084826, 1231424676, 3822063151, 391584547, 332260623, 539974711, 96559132, 106234536}, + {3171935807, 499322955, 4056473859, 1075785398, 936655066, 3221283557, 987311673, 1237694914, 3625402024, 1347486679, 3417364985, 36034900, 1523329718, 636078094, 381030377, 2997635559, 3861926928, 3876128278, 2663486406, 3508517384, 2046568396, 1585239521, 3383366962, 1062750769, 234437570, 3492526028, 1288572428, 1387450282, 517214424, 3653618208, 3842312771, 3634425573, 706662187, 469318954, 2621553394, 1303793083, 3343205110, 3265844272, 4109578858, 886881810, 4165677069, 1007436109, 185445887, 3824875475, 316880862, 590626008, 121681157, 685683217, 347551526, 504436647, 457708374, 4180871188, 171710983, 480853688, 113989714, 3081588178, 868896964, 856991736, 295231811, 3038830670, 3894944447, 4105240290, 4231880125, 2923701974, 3291737015, 622964537, 3577941420, 219337942, 385934932, 3539593410, 586687006, 624012983, 2965289452, 1599499983, 3541370542, 3775801131, 3896166059, 1143057478, 131652904, 365030629, 181942609, 4229775449, 418706197, 2856866998, 3506438923, 893115405, 1397893335, 869878811, 419678767, 202578147, 3644912572, 3458393888, 398472937, 3116518440, 3274622565, 618383288, 3219177414, 3155577024, 906539293, 1207572728, 803402851, 432409417, 2887726786, 987279698, 3189815746, 3573393344, 2887372577, 491849773, 516421451, 4294029823, 3400189355, 3738686449, 4021795273, 61938503, 1529503205, 3419158017, 3282900980, 3860844345, 3762597894, 1347616337, 3259905249, 3336904263, 301075742, 1040892628, 4174690774, 3457356553, 1120978888, 653083679, 3554530521, 3121730108, 3841868784, 87148207, 1340145919, 1480335912, 1411003669, 3779742676, 4263909593, 1137296119, 3836810556, 3475461571, 985990470, 3085508633, 3360421589, 690599911, 3770624520, 3828209740, 1104737044, 3605047722, 3652530347, 351389996, 3668387532, 844673255, 3519348482, 501336259, 247546627, 754647904, 3873046525, 641337566, 537517278, 3476675778, 187847759, 3148238651, 1337904984, 1405537608, 3979990973, 2949563695, 3205315333, 843255804, 1188741945, 893701405, 148103432, 3693228352, 4048953175, 3789105502, 3437870579, 404489537, 3543206086, 556533936, 1209222626, 99736530, 509509, 2952845299, 3858108150, 1767715076, 1382292515, 3006155090, 1125965097, 1292315679, 3789340989, 3395768649, 3153275417, 885110091, 2866922267, 866793253, 4020589855, 321650771, 3020362762, 2973320128, 539249170, 1445094613, 247811597, 3538074816, 1056305667, 616082396, 1390480697, 854007384, 1464052013, 1342705130, 1138947843, 386617804, 204986887, 1025635245, 689783567, 220315103, 4039440361, 902906596, 283044411, 95423941, 3797079811, 3406513384, 3947675696, 3534737689, 3289374272, 3577879524, 3726524630, 3450995251, 3079980565, 491652630, 3870036020, 788334887, 418916530, 143695088, 3746911914, 2903306559, 1471954763, 1462627559, 3253588544, 3889634093, 3896201712, 3245944110, 423880108, 1643520698, 4058992949, 319111762, 185476069, 533647296, 3493861548, 3946641442, 3622620234, 2784869731, 924660322, 1395111766, 1413535792, 3283467749, 878442533, 858132556}, + {1425269328, 381334957, 3434134286, 3560385316, 4225831252, 2897565294, 273418455, 886090956, 188930499, 857622603, 332089854, 3338482481, 3411605420, 3225729502, 2578375141, 61544514, 3808024920, 4223725363, 1006888303, 1042271319, 1294817963, 1028998137, 3519799031, 3857709, 3424102429, 2814197488, 904331806, 1426336726, 4011643087, 3075020133, 3317101832, 3050968689, 4171615259, 3392029797, 2989928784, 3588674285, 854767248, 975119353, 1659691454, 4242926610, 861257460, 686875377, 3879605839, 2579451387, 3592958682, 961332912, 788119054, 990712393, 1114652366, 564717066, 835068468, 475224907, 940724502, 1003550288, 3300395851, 789984341, 3240230992, 3924054356, 484033811, 974081061, 3071730415, 2988907064, 2754026779, 3476241680, 3393169945, 891606573, 178978584, 641268196, 4291183842, 3694452722, 3575966976, 2919675075, 414308104, 3339965499, 1022180918, 436423163, 464375095, 726662061, 992033753, 4079769793, 3712339220, 1441795156, 1122898934, 3924242133, 4097962700, 195362823, 3253908302, 787406630, 3500877774, 4282264860, 637002965, 3101080043, 3588615671, 3569237262, 1181071627, 2714619834, 3000163582, 778419870, 3158918874, 438365954, 4004031462, 1877688080, 4130457354, 1562320600, 2800499264, 3426284713, 21499133, 539774395, 3350024529, 3552186077, 3186100418, 70379193, 4127267825, 4197136654, 454025703, 450577947, 1093985703, 2604128727, 3075097004, 673371612, 3741906168, 150070590, 3226291240, 4006417139, 710137095, 419611922, 288032028, 557170021, 2847910929, 667282878, 637006435, 3860662357, 571933605, 802859785, 825017866, 5374955, 3225100075, 2736212964, 1204416745, 3335058624, 3220564038, 288803134, 609739348, 3522752193, 1245001824, 4206958686, 288533746, 1261025312, 3754970868, 4144180496, 281497938, 2864238309, 235935282, 3173142342, 487503164, 1324262938, 390474293, 1329999401, 1327716530, 3441678525, 4006745683, 987769167, 3907197009, 3977645593, 3472024344, 100090911, 247150899, 46469077, 3182771418, 304859926, 1102178030, 3318668826, 1644030929, 1119281985, 556710493, 3727310071, 490290430, 3891735777, 231277668, 1028862183, 287687952, 3355919094, 3708356838, 4245214173, 498791926, 3540517925, 3522431196, 1376145950, 3646076940, 907605054, 3528524563, 3356965705, 3691489039, 3494296842, 3786393996, 4113414680, 3443343699, 2818035945, 206657107, 1509612079, 2983286319, 2998862069, 4257031686, 269086475, 701307568, 4164965653, 1085389110, 3754951881, 3602234838, 906753763, 3639264737, 3526573760, 3543407160, 3574409972, 3710800360, 202447439, 3332655548, 3829457923, 2872067084, 869528494, 3439124963, 3055671262, 4174576868, 1079134194, 908391965, 3368618438, 3694945339, 1002295571, 3358328506, 4097364953, 2949562179, 3403559638, 2951733424, 4233381153, 3217080811, 1245886374, 1222385856, 77615107, 1608962655, 1537522762, 648665077, 3021020860, 1422771181, 98061372, 1489154505, 1123042363, 3084451073, 3443397053, 3202418193, 4216606795, 3054847265, 3438235977, 3342381228, 30737129, 302526886, 452078401}, + {3828433918, 425129390, 3172463390, 3189720850, 1421948637, 1372583868, 674369737, 853583854, 150585103, 994948822, 569750459, 3460607832, 3579373227, 1119935549, 1188747517, 2966181693, 4246255804, 4010279893, 992722478, 888075502, 3360416254, 919645386, 883807949, 540391088, 415495411, 3033397685, 3669953089, 285091015, 28321864, 1447865932, 1126432976, 205017097, 1256775995, 3730236996, 636372525, 3055014427, 3370854456, 4207792105, 960612857, 239205705, 4195637050, 3386259707, 3351594500, 2819418342, 3092840988, 31412291, 2824222722, 3621911463, 775333668, 3372008228, 3165465557, 188675008, 249122997, 751155704, 2902599245, 497396539, 3624869376, 3687512365, 4078037236, 206248648, 4244718360, 1461722125, 1427394824, 3540703467, 4215663318, 384220595, 3554400432, 684466425, 3407992036, 3645157299, 3829068970, 106109667, 254292031, 1111246337, 732685247, 432722859, 3423359258, 704901856, 3737641408, 2932847356, 2933017857, 498119344, 3954374883, 938786995, 371600695, 1004093355, 183284802, 4141611750, 3352171558, 218641204, 3669147149, 3489352881, 634461247, 1375144881, 1220983264, 808235808, 3470786240, 4257821008, 928323062, 2847992548, 4040801559, 354822852, 450569714, 3007182845, 3779923240, 3920083265, 555815912, 1142618833, 167440832, 486914619, 1253880895, 1207895634, 3003201204, 72612338, 3003066594, 690945211, 1429390651, 869814098, 567067135, 2987199521, 3940157471, 84863797, 1122628323, 1396176202, 3086612905, 452922960, 3806850494, 1087629026, 2931179747, 62244634, 788588272, 2931840192, 3388549668, 3748324099, 537186514, 3057626169, 1124155370, 1310275010, 3729452106, 3023823308, 34647235, 3423358941, 3293329870, 3405042969, 4262441523, 3123516883, 3585271499, 4121418227, 4039883196, 3829805114, 2873049082, 233578717, 1068031032, 4230981942, 4015271128, 3073169710, 1139666635, 3541894341, 3890595822, 659812179, 3556252703, 3066492447, 4146333637, 3687580236, 3953283093, 726918686, 4121471566, 690890320, 223675898, 4046279617, 3428304432, 2888357816, 634328766, 2949335798, 2870019146, 1292313876, 707000617, 3266367034, 3058249668, 3084265258, 2842832864, 4149223735, 3323507463, 154420766, 3803258560, 3746571346, 2212336, 2973239882, 4161089762, 3421315572, 4161318480, 3250864954, 263724270, 3107184927, 2907024184, 1225971181, 2916864981, 2857391050, 3458811859, 3107854127, 3235914246, 702486803, 3561247917, 4177311936, 4211650343, 4059439378, 3266097428, 3891214522, 816310063, 3047992108, 1359990982, 4293023428, 390866615, 992929362, 3789081317, 2898804011, 1447869514, 1409567935, 3595285436, 2935878139, 516012207, 2889503023, 3293230151, 3358144697, 221039563, 836412841, 3094594839, 1104297727, 4074366487, 807652846, 3877436703, 286281202, 961152757, 3493771711, 323009754, 859895748, 3943948598, 500032733, 381928423, 3452850877, 4110673988, 3191872052, 3705518386, 2982885639, 2966601659, 2882608623, 3023848936, 3655742633, 3572875021, 610200324, 3608558607, 12662331, 68880203, 380287311, 3924966, 1261118181}, + {386393625, 2981778606, 3370066605, 1025429957, 331936248, 421412113, 3425291219, 3326092121, 3106365539, 422370493, 3593129986, 3133672932, 3510319060, 2933198543, 1106908355, 3858084608, 3828741045, 230447937, 3790745805, 3602520305, 4213045163, 3443761646, 3937479716, 1313608423, 1225994298, 506995704, 1297010214, 130404125, 63103208, 3308509225, 4164107554, 4011969382, 4105190337, 131022646, 12442588, 4196731334, 1412755647, 4181987604, 4114385876, 921556430, 355540213, 397421806, 868807202, 2900839924, 4040054260, 3556685877, 4240519496, 417124094, 1356943046, 1336894944, 2880595044, 4207348514, 101009693, 2940686674, 741857879, 1288747758, 3562491164, 3283878111, 4076099932, 535151070, 3056154389, 933300716, 1156511178, 119021620, 4209260576, 2969818893, 3853434332, 438880205, 3024886982, 4193790669, 2814060789, 750529512, 1189815038, 3861220762, 3710599106, 818661438, 3377645619, 3268594639, 771080518, 3066539539, 3086532543, 4197074018, 3256995254, 3813341711, 1196505374, 3333044035, 196261874, 3351336165, 985875753, 727115587, 1448015695, 1288181694, 1079308030, 352253139, 2801019394, 188728566, 367801048, 3271528669, 3595707476, 1272268296, 2807492943, 1145979626, 3327050065, 139087300, 413928246, 150160632, 3042002004, 2781097962, 3702923264, 3910454746, 3125480622, 381994534, 786446374, 2886510684, 1036271321, 687145162, 760035351, 3371947202, 1280630794, 3797559906, 3988381401, 3878948011, 365480695, 776423613, 975227921, 4290559677, 3184773332, 2999184727, 3409787966, 3267767519, 3168622043, 4008962463, 3730315511, 520950957, 923321897, 1414287058, 4232784335, 2897420611, 3370597323, 3355640260, 3232781886, 642184697, 370390857, 186730082, 587347185, 3567918845, 4031847266, 1102438754, 4088926191, 111589450, 3257579450, 1020810838, 3677344598, 927152119, 850865485, 422762251, 707410412, 3038385995, 3372952096, 3091082807, 2830242511, 3593129016, 391623422, 3219048508, 638520089, 119271898, 4158728108, 1279081410, 3605401596, 320810582, 3475681509, 3400488666, 3048907781, 3059609606, 471523107, 3758835964, 3452034289, 653011174, 385169466, 3637906472, 3220117231, 3594905562, 3908878514, 4179760545, 56213156, 3089940227, 4160672316, 3454223363, 616045270, 752608463, 2833104136, 3166784717, 3268992257, 2596045, 1109699404, 3551646111, 952256462, 3106477834, 4245214648, 3345547523, 4093114035, 568507653, 3612475453, 385753093, 3290494424, 3036793044, 1454693127, 140046408, 783803190, 3474066128, 3239924793, 3392661721, 4182831341, 3506442694, 576103499, 835587389, 768410920, 3638875099, 841340169, 4197392139, 313317805, 3014784356, 1205321144, 1176644396, 1441443761, 519060030, 272085262, 692328232, 3420612046, 555621961, 2965839592, 1436633305, 3626050079, 3585452036, 267127356, 3976213491, 431550802, 3383505227, 199425820, 3602234037, 1058086695, 201309936, 3057316300, 3688572971, 1212221215, 455010075, 3994608698, 4246800638, 1313428910, 371203901, 3572975590, 401091829, 2872202462, 1221204511, 3170364608, 318373963}, + {4244026151, 1423033343, 3325942705, 4090166305, 3691857690, 1444151, 1086863581, 607263450, 2982145015, 3874290861, 969692243, 3439740659, 120451784, 3204142403, 920841032, 4190322905, 689111984, 3630382830, 640399548, 2881825076, 687792704, 1356345555, 970330955, 134930606, 971058107, 475665140, 467462106, 3022331305, 3049412053, 1522927595, 3988402680, 3680743094, 3823839741, 1076433192, 585744863, 2871515718, 1793057840, 989113348, 4281883853, 3520508454, 4267166948, 3258446895, 2948287307, 229330398, 3679591727, 3025615327, 3722893867, 992298973, 668017604, 738726978, 1112552716, 1289342010, 3477734918, 586172635, 202297348, 3714362319, 3813005592, 3537521128, 2839816116, 3301648575, 3072052789, 3760279093, 1012097240, 1325877050, 3071217647, 760541989, 3995147179, 48952375, 3301112918, 733885504, 707087055, 3308996824, 3192135143, 1527268883, 1213418152, 3561747019, 1289101330, 1447471082, 453835242, 2982230336, 2939559651, 889372605, 602877916, 642665020, 206314838, 1396423960, 3122116776, 3005593613, 4076788407, 3352225856, 1370641117, 3455591391, 88786998, 3847801643, 1304895180, 2955031848, 800774104, 1168708528, 878362091, 1376731670, 3877633863, 1676147156, 539816469, 1325158889, 3076129538, 3204643638, 476259010, 4192871177, 3039625296, 3135819466, 3109563426, 369670651, 215797267, 3878430675, 990000718, 3340307659, 4264043268, 3562070031, 2991734046, 3695364434, 3082810186, 82452426, 3803132099, 3606793131, 4079300604, 4189410736, 3858033966, 691600696, 3343642693, 3728598475, 3810711983, 3725785057, 1319124458, 4160811180, 719111860, 1261426130, 3639132468, 2528371918, 1372039694, 3645372686, 321527849, 318831848, 407683260, 3469809148, 1374022474, 874068808, 553775527, 1427497921, 65459961, 338884649, 4026287597, 3942923474, 4158440230, 556328918, 480956493, 3035554250, 3875101449, 3676811572, 2917875653, 1371281146, 3730222771, 1293155267, 3726765065, 3092961218, 2667700959, 86068175, 3628581567, 3879268949, 618721035, 2839684849, 3694439101, 4256767665, 3427666941, 1244183887, 1026491105, 2738279720, 4233960382, 200064195, 4176474913, 3253200080, 267111697, 84531676, 3928078804, 1738193874, 44564934, 1394085411, 3990928216, 3544732413, 3777633102, 4248126776, 3199404560, 203574989, 859305975, 3671805383, 3237767372, 2902671932, 624428355, 3209683002, 2886479104, 1362806778, 842668846, 734717640, 4063216851, 1427236887, 1304165374, 1161018068, 3167019206, 366953510, 184340052, 3376148206, 3394763075, 439469303, 591965637, 523703891, 1258961331, 3897098825, 3055161352, 2904293176, 3829727478, 2916531474, 289408750, 4245962188, 4025731061, 1293006555, 1209085495, 3336896695, 4064132589, 586166759, 153167831, 3590016970, 3721852586, 4122743505, 869715705, 534326297, 3304516317, 800336558, 2891398364, 140363986, 3122084017, 555822258, 2904880473, 30480359, 3190052400, 3460627468, 668555521, 921942256, 163005909, 737455548, 1441400618, 4275829809, 569299668, 380230833, 3821267691, 1287014943, 713910734, 3512577875}, + {3422299972, 1373198506, 1005533704, 55635028, 3729981475, 3825416411, 199315206, 3452512304, 4238679787, 1092704814, 456545006, 2824345814, 216517616, 457368399, 4247322955, 2968466522, 200389410, 3450225235, 3452969499, 943325674, 586279649, 3879134633, 216521241, 3205060588, 1274682849, 3538279854, 520217526, 977537099, 3544559139, 771055552, 1037090494, 307357705, 217184282, 2820461282, 784705369, 4132573017, 117819810, 3773610496, 297593893, 941685795, 316627176, 3276948674, 1396828989, 2990788636, 3172519460, 1160835882, 3310829747, 1227106770, 315517388, 502921396, 3542081114, 3662879020, 3771062103, 1304117941, 4198512688, 1371418550, 188865622, 3121462730, 552941049, 3629324752, 303483914, 435432438, 1294192154, 3184792130, 4280402714, 4211011784, 3323089063, 1413529107, 4175483727, 3591381837, 3289449255, 268767926, 3182471680, 3067522299, 367528923, 3845003059, 172884744, 3542814430, 2837192231, 650367765, 3556923707, 3438997320, 491370247, 3670088211, 3032095011, 988791814, 3334151464, 758696371, 3975027804, 1337335477, 1210631153, 2866403072, 3420302645, 802995446, 3551184080, 448682941, 1195267242, 4197118781, 1009451585, 552774628, 3090169669, 559296064, 1177606383, 900123464, 1238559441, 819732434, 985583672, 706601042, 1219307610, 4198032686, 202111419, 3670281021, 1460602288, 3007163478, 603339344, 3304437742, 65972284, 3703353576, 3987819529, 667478877, 4064290351, 3719495666, 1144441419, 424297907, 3193306796, 3605644210, 1374764111, 918604997, 3136377927, 3686022875, 3601597387, 1343825893, 839532316, 3000184407, 3428391509, 3421751603, 4232754195, 490211650, 564867347, 1390431975, 3923030711, 3876709129, 3944657838, 1320293159, 4111262503, 173274031, 3876115186, 435703296, 3856794653, 166937596, 3669674983, 3506583793, 374324235, 317334827, 743124747, 18088432, 3556132849, 4273153345, 1152371425, 1227150372, 454151382, 3208489724, 4132196398, 1188238850, 2753347618, 1127662897, 1037418034, 1078440774, 650646597, 921091920, 4196617008, 99276586, 971956526, 3756481615, 3087924403, 902053583, 4032177985, 2986201100, 3468433858, 1337442126, 4207394330, 3712896141, 3606136547, 675889307, 792840195, 1403842475, 3738754117, 4125810919, 532883476, 1185661092, 1341827027, 3202027045, 1492854968, 3455600349, 122624916, 283497661, 44545824, 3237743565, 3455577901, 3821772357, 15451097, 4158513710, 1590641364, 4294254881, 582111196, 3755691078, 2885569750, 3560310989, 2916480433, 2982696206, 3629234862, 954126934, 1681005647, 96219666, 2883700941, 3973519116, 1341702174, 1321462578, 3586532365, 2871046457, 3854579510, 523379979, 3961956688, 171712579, 171518934, 3745841588, 1455574746, 84152136, 786609225, 2823209255, 4241315570, 1269762735, 3943446079, 3807519024, 4096017163, 3478471374, 3553027508, 3661546772, 1370625004, 834129049, 935802854, 3637888981, 4195867387, 3720655314, 1817392, 3268391378, 537965563, 703710776, 2851252297, 3015659686, 3937498166, 574549444, 683536846, 3460890679, 503446210, 1102925132}, + {304431178, 904663013, 216511217, 4025273171, 3154242063, 3875594196, 3769189691, 3402683409, 3943672576, 406652080, 3055296330, 3051033059, 3597585959, 147729980, 3805231050, 3115326685, 852673503, 399653890, 2637160350, 1235830192, 4075147570, 490615398, 3788252244, 448441926, 1340647073, 883953936, 250085291, 3236769287, 954003199, 3706239383, 2953231807, 3970414497, 3895140911, 786709756, 4180143646, 670976682, 1161509787, 2965946425, 1078669560, 2966107106, 4247196484, 438840145, 3837769470, 1374214049, 1272512951, 884593858, 990239401, 19616941, 370534954, 3137414327, 421678850, 3484012288, 454365660, 3422542260, 4079617522, 1472405549, 3505105351, 556518859, 2901717949, 1191103817, 63692304, 3436692533, 537941458, 1442587352, 1459011294, 1190409509, 3997739791, 838004004, 3123820759, 909450410, 121779423, 370144261, 4126541013, 1010687221, 3021348275, 1036321081, 1158588744, 3719166957, 3559606272, 3824872168, 2864853715, 736184741, 273460565, 1006055420, 1474366697, 469451277, 1001255934, 116437469, 605697612, 556073483, 3374589212, 2901030903, 3637641167, 4138516766, 1465438524, 3560678318, 3425161974, 416295361, 3762158146, 525349546, 3676657188, 3424802502, 742573069, 1337770053, 363188039, 860692661, 3124487840, 1445915614, 1120841964, 4107388690, 872172498, 4146809813, 4273819875, 853556499, 1355270961, 1171975717, 245871124, 2411013862, 3931586281, 281739224, 3309685811, 3645390275, 3828988716, 3628851010, 3326074905, 1191238636, 3989369822, 3470731988, 496115759, 2836583184, 1024573370, 4210964452, 1074976694, 569164332, 1009066956, 4089884940, 180817382, 3122547443, 3970648115, 172183004, 3157241167, 2425541316, 97072876, 1392690878, 3789040670, 2720183879, 707184642, 3187751594, 3402760723, 3645000883, 285913416, 3604397523, 1389824740, 1295444513, 3122777137, 1128344252, 3626720298, 3289444575, 3657509899, 2949005751, 452043788, 3654476824, 876403117, 3107734573, 4089428979, 3640594920, 3370391721, 299567926, 524487460, 3442980638, 4043184416, 4089177541, 4266410800, 1160037407, 3475847233, 3068598443, 1026835478, 3980071235, 3065857727, 334422258, 1427531943, 115004486, 1490615846, 268059705, 3225597649, 1258408141, 265162779, 4130754360, 656397534, 1126781265, 356848372, 404571304, 2902971850, 4293463812, 4005908673, 381357288, 424355642, 988022290, 3869841998, 3288415167, 3508784188, 808976067, 691911401, 3875231231, 1460591273, 67693148, 1410272509, 297681477, 4013034233, 3102089985, 3585259693, 698962444, 858183885, 3954528467, 524697629, 618607879, 3727378636, 1040077033, 3788824360, 1101804843, 137894824, 1179716947, 1041556930, 775538358, 3865007439, 835265712, 917065030, 340967938, 1304286553, 1739659019, 2964653205, 3031222458, 901436435, 20247120, 1447551518, 1328719868, 3555058429, 398964271, 1122617421, 220610110, 3014138703, 359322801, 3054847153, 1582387259, 606951611, 698885807, 558516307, 2987325635, 3907849726, 3015039958, 1021118757, 4021284877, 2823558568, 3405755580, 912673300, 49032488}, + {4142421311, 383472134, 2954493634, 68814544, 3302229290, 3921541147, 668682267, 704575555, 641120481, 3268523848, 4249966389, 137773101, 740349228, 2887505238, 380258109, 885410572, 3102987019, 3252866852, 2986205976, 1193463473, 591181637, 2882461979, 1496574480, 792252206, 3989879514, 104541250, 4246088619, 231451882, 902483288, 3730217416, 3891603750, 4230198200, 268167158, 35322567, 766985913, 1293657662, 3132643258, 3476465938, 466706141, 2992117989, 634197227, 4139450958, 673631024, 3659484937, 2787565557, 758032903, 168108470, 1143215850, 1506412539, 1085081123, 451295805, 1357786366, 607325236, 1138081515, 3490839476, 3661485845, 4229382691, 3637563835, 1374761045, 689161248, 1176888087, 3839961127, 4261623259, 184236618, 3870501797, 3071522248, 3102977083, 3277173776, 3929140136, 514405057, 285281357, 3810659371, 3805197028, 3539784684, 838912719, 2991838204, 351029000, 234435563, 3135700779, 3859553594, 3702859434, 3368427522, 4072086331, 574564912, 3593878547, 489309508, 717766578, 1206526247, 839626979, 4261727487, 538858472, 372723771, 890291256, 3778725035, 1227031100, 1405499574, 3887209686, 2748188197, 873788456, 3290315016, 3963954352, 943964378, 322833982, 816427088, 67707675, 4143824205, 1055836223, 1019282858, 4108568238, 156227014, 2833233166, 974710448, 3672317995, 3288609030, 1478676912, 82621960, 719047664, 3720665911, 1473792772, 2953371153, 855112638, 1221935091, 223096385, 1208342258, 1477662940, 819251468, 4105839098, 232575531, 3433834679, 617721122, 3352356817, 456936526, 3015949023, 3875624939, 492194108, 939835442, 482597377, 1406123999, 624474113, 971113420, 1373061837, 3309477855, 1110309650, 1145951965, 3242669865, 3738486274, 4088597037, 3537295552, 1213201083, 2848315893, 4256686126, 3960461995, 1192056132, 3991090371, 3461396440, 3787070633, 2986275837, 921094641, 2817649655, 234441383, 933895601, 4057394909, 3539457770, 1254935605, 3542087756, 3442076083, 422172600, 2866267094, 3758376157, 835000603, 3119771962, 621923661, 3662605084, 534007852, 1111224613, 36360911, 3810398521, 3424580019, 3187029314, 3307783632, 3360492735, 3619628478, 2838899227, 3340230866, 2984892495, 3871526973, 467214143, 1490214091, 4224300985, 4109779384, 4208197357, 3319403446, 2914660092, 132399564, 3193224919, 990926865, 3073426871, 601692142, 1259650364, 3813818634, 520351738, 1237690426, 1275379432, 3789616961, 234298450, 3409046097, 1374873842, 3342460891, 1211413218, 773006162, 4048638503, 615524393, 1354910145, 63844518, 3216393177, 3032411960, 683672327, 4293467091, 3070309908, 3567932739, 3927574452, 263329605, 1278978532, 196992991, 3267581110, 786551233, 1490822965, 4014516188, 52360663, 1442971365, 1162145840, 3088429009, 4077376426, 3725052939, 215919074, 139670491, 690434733, 200284757, 3090270926, 3373914047, 3827824620, 2939174196, 3108886037, 1491741630, 2934232135, 1380329512, 3157337375, 3308464078, 937289035, 3723814371, 1557314472, 3240566572, 451820016, 3300846761, 757860677, 774655970}, + {3805990455, 1330772738, 414249925, 217305627, 756547525, 462042629, 3508360634, 305799112, 3403095086, 1440404914, 3620345009, 3451204384, 4108781048, 924958007, 2939473090, 1138907198, 656318262, 1407578794, 649929135, 805046004, 1522695450, 173824749, 3823235020, 683463248, 651410207, 1127888429, 3839605931, 422724381, 195547620, 3376334407, 1493049590, 3000549616, 3016869554, 2966881794, 3352755388, 620116009, 3808955627, 821114939, 3536725537, 455295039, 1538151225, 4198804759, 3366849491, 1259586494, 381925843, 4232454956, 1074244847, 3990093547, 1327789805, 1109146536, 1411888647, 3997238956, 555291656, 1456328787, 1240397566, 321733692, 3970977238, 3827775778, 563542575, 1358434635, 3008240054, 1019295513, 3573503010, 617547570, 1095817524, 2948544513, 3319061253, 1345633624, 3103660985, 3576948699, 3472811595, 421314983, 3125464742, 1482631936, 918341363, 2887079640, 3878147498, 3377140404, 3509591268, 4162693869, 1223341312, 3857708201, 4240312024, 3103412536, 215265584, 777713194, 3921592883, 4113571086, 3257144068, 3689527032, 3350998583, 1305535659, 2833535203, 4082893880, 3167550200, 3057996271, 114162229, 281290148, 684703695, 94982652, 2846165591, 802966197, 404146874, 289067216, 536282293, 3427475543, 3754434623, 147396602, 3803917598, 1340817104, 1363892491, 47070963, 548862652, 215468974, 1408887486, 1405428777, 1255100241, 3201173457, 288010574, 2999117997, 651313744, 802553297, 4207428356, 1010947257, 3947023063, 4163488031, 823847934, 4265866929, 471712001, 3485849008, 890502116, 709810469, 4263389621, 352923097, 3640241937, 1108824297, 3049045800, 3387874036, 739489964, 217636298, 2853617089, 10887146, 1297529772, 3988961027, 855712204, 2869976314, 2855937837, 1142569467, 440139471, 2949632981, 4284010958, 777459881, 1188179430, 71179737, 4026403379, 1191630132, 655175669, 1187723947, 1036779506, 725700294, 3557075671, 3702735088, 735247549, 887019724, 1278142034, 1068753092, 1021575671, 3642704637, 3959499198, 1412149410, 3887747766, 3590259450, 3208342035, 3287067186, 2917943992, 298263837, 3652665587, 3126379783, 4180951040, 2891622441, 2936730295, 2989602538, 4046009268, 601166312, 306643422, 3672357906, 686244793, 4023519762, 4096607247, 1477594799, 666746056, 1123461881, 3103726780, 487797320, 1379662124, 3559461857, 2886526753, 1525593650, 250660356, 724505656, 851684093, 1043000559, 3292511229, 823333372, 844378586, 2864924635, 958191316, 3341139508, 248339928, 3905832013, 1363853568, 3243124928, 4198820293, 3707944018, 3208379373, 4242333618, 4279549896, 586753773, 634433784, 315756311, 1473620689, 943982376, 2986652504, 1035943852, 1493035769, 234989290, 4012251984, 4192652599, 3086413876, 3608363516, 4210809869, 329192640, 340573406, 786812181, 251186104, 4211542597, 2866665182, 1039800062, 1527636549, 925613814, 1488502461, 3895661384, 4004040783, 3132667611, 1010495184, 524827838, 1169362167, 3536329990, 1111995642, 3122928148, 3270578984, 3157962252, 3672364875, 3290711632, 712424244, 3643164123}, + {3944221612, 607647199, 609806383, 633992896, 3772778181, 1684023083, 1379398342, 1312239589, 855427264, 4130730277, 858671611, 3887005736, 304876990, 1476767539, 3930709071, 3324791307, 2036285405, 1662654753, 551692818, 149244746, 876287746, 885986775, 703675602, 574088254, 104746721, 821674969, 20128053, 3117223950, 413720291, 1102253104, 1361099018, 3640607002, 1422266110, 4124947517, 1361244121, 3627467486, 3776327145, 860837865, 1071569600, 1308171973, 3570530546, 4144247735, 1210118403, 3808693573, 1529418495, 4207760565, 772685647, 3505965913, 721537734, 3744323547, 1426530030, 1123200282, 3975338766, 391452166, 201510835, 70654006, 885213239, 1490222400, 4132524761, 334216004, 400992752, 701171997, 3706960833, 3591130669, 333628094, 4122397508, 990321368, 1169114586, 3484140878, 4108136728, 3669345097, 1379204618, 2889811788, 3455591390, 448474882, 4196483318, 1174844124, 483919117, 97559063, 650324434, 374925891, 669180941, 3962905923, 3322523942, 1209523382, 960218674, 889187003, 726256676, 4114560499, 220942152, 1077553453, 755323952, 3192278718, 438552250, 196138268, 3339958986, 318452980, 3389732168, 2937147468, 3874344006, 3573543717, 162839985, 397456931, 4079163355, 2923417405, 3695749893, 1576215597, 1409134595, 733852936, 3151618840, 3500822229, 3055096067, 3879949562, 3472415166, 857064509, 923338016, 874054223, 639579101, 4244169752, 3150390865, 3960023246, 88164639, 3997442817, 3711644865, 1423760605, 3622775769, 4061927514, 4233755717, 927596517, 1446190907, 3105298137, 726055767, 315208991, 3486888352, 3385305863, 3121473590, 2940749367, 249215718, 3167964613, 4129699811, 3861699805, 920182332, 3359712964, 3829976602, 635188245, 3119299778, 2883590353, 2951994837, 3344286215, 685839297, 901690803, 382804959, 1025167903, 185393236, 3439144406, 1406519251, 3238789067, 81932281, 667098931, 340544461, 3008078663, 3000565252, 1378694233, 3175492438, 1040638047, 4054442563, 568639145, 3791957460, 1001829147, 525135420, 3434096929, 3820440358, 2874100509, 333566524, 1072021498, 4215143714, 954996533, 3075787695, 1079880882, 1347558702, 4159496756, 4177916217, 363678961, 28964055, 548198604, 504420617, 3057444557, 3696602646, 900402088, 2923080389, 1340085793, 420299454, 3333859375, 101442870, 1104555728, 4063166774, 3803184363, 3996826676, 1302936648, 789295569, 1489811003, 675131585, 944249289, 3961146175, 1243867346, 1478292938, 216849177, 3502786128, 333512449, 247665501, 583717075, 485935859, 415358688, 3895724283, 538159297, 4145400377, 866927600, 298584774, 3774562125, 4099207982, 3923171342, 3206223401, 3425031090, 1034993623, 784984051, 364180474, 2804066249, 806496703, 976338891, 500085234, 3122599746, 190760203, 3389967088, 4143845412, 3741573300, 4266635297, 1277119761, 1229241306, 1045610455, 3337402604, 540151727, 216334372, 1420694305, 1321282016, 3450746902, 3687859978, 3468037652, 3383564093, 1309163042, 3406688033, 388249670, 48051539, 1455860467, 2770990369, 3422900919, 1579626727}, + {337967603, 51390654, 3976998141, 301079346, 4055643862, 614635729, 3595495744, 150478098, 1052726541, 3769745411, 3159491621, 3988854447, 889375551, 4043851776, 2882930721, 872266234, 977655804, 29737044, 3304428353, 4213576160, 489940790, 876705828, 3611950328, 3058425768, 3557374117, 2849383594, 163007750, 4080606894, 3837728944, 2745876163, 66200363, 666436348, 482729532, 961540325, 185329956, 4020258225, 1019401434, 3502834751, 270080560, 422197573, 3234805712, 4021703693, 1167203882, 3805352135, 3989968968, 4229971797, 38152263, 390327730, 224804038, 44234685, 71114156, 1144974400, 3906687400, 171553549, 4129234003, 1144144684, 619569487, 3359243740, 3775997934, 415046058, 3926396199, 3940079070, 3570669067, 591743159, 718007845, 759414748, 1245752111, 3052609778, 3511858115, 305710887, 585914710, 691740969, 3561861292, 286053072, 3477065942, 3656002489, 1125242292, 4241238033, 4124197951, 1195767801, 4074716182, 3672790735, 4025351884, 3418967836, 2754040338, 1190671422, 182642678, 775529783, 1413761103, 3207543359, 164277845, 29892306, 486582847, 435867852, 4059982410, 3521784255, 3168281632, 707480649, 756995828, 34474167, 1058027732, 3327004211, 1222500325, 3990834875, 516901157, 1144709065, 2913390084, 3150689993, 3074683705, 3124900070, 1262743720, 860793009, 4240227787, 1491671834, 3503148330, 1188150708, 3016214341, 2900240366, 4227798553, 2997420734, 235161805, 1157051912, 766001960, 2770594252, 4260280865, 724373838, 505654469, 1103233308, 732535616, 3979720975, 1142165672, 692571989, 3971945991, 643587374, 3905422541, 3507508248, 423108392, 432134856, 414188025, 790477902, 132456880, 2814515010, 1010385738, 3048075753, 333139194, 2917665992, 2968243195, 2999532001, 1069163574, 3017674683, 971033797, 154871777, 3232482526, 3323515977, 3393044421, 3058567444, 288036340, 1472157892, 3845171906, 4011911918, 2786324179, 667991024, 3522748409, 4172076011, 3402671950, 2922953816, 3501340592, 3721451490, 657585166, 3685041429, 3220038583, 3120178648, 3039686160, 99959588, 1162229714, 3995795229, 2956522703, 691395337, 3360946144, 17874979, 232716722, 3173636283, 3536202697, 976369467, 1310018261, 255328442, 3123847707, 3612084522, 4290852890, 1106763042, 4144362250, 466830131, 835013835, 4109823463, 431845069, 3945329706, 197179117, 1008150021, 3176321047, 3292327389, 956564019, 4027470091, 3242013730, 52317982, 202305455, 3512207167, 314033874, 2866473727, 354823897, 288872431, 324287989, 1237927716, 3755399164, 1185721623, 484774943, 3476212722, 2952900684, 1294486765, 4008188744, 3031826518, 908602636, 853294661, 552148948, 3553642413, 3252796128, 567201036, 959792417, 1222989601, 3743349088, 839053396, 1247741211, 673698851, 3524515150, 3425302521, 3236031436, 3602835179, 3861579052, 933613891, 769112079, 3420078613, 3706601966, 938420983, 170006613, 1111307809, 968540858, 63890159, 3091381039, 1427418380, 3812494138, 200426956, 677231103, 801507001, 466172698, 2989489895, 693511116, 288167240}, + {3793289780, 735071205, 3973786352, 1142033710, 4144309845, 688569101, 3016639487, 1174907412, 3254586021, 3803188308, 3692767177, 2991833849, 3239195715, 281952810, 548600638, 3357390823, 423024324, 1679373853, 156711345, 4012227271, 435869529, 3905088380, 2989501186, 85869620, 2974433734, 4125308745, 3963021845, 567918380, 691620574, 352465122, 4097694188, 1271133609, 3829998134, 246475820, 3554804733, 787025988, 4088066114, 3276092462, 1460930102, 383499186, 2497991645, 903202888, 3708969954, 3302108445, 3910228477, 3931745214, 3154374660, 32028835, 96013837, 195825172, 336244418, 1491195191, 1157317573, 2992228640, 3252032332, 950743809, 4175558215, 1012286741, 1029249196, 572787178, 3891089476, 387254033, 895039296, 3035899443, 366743060, 4289521409, 3789899287, 3976222679, 34321989, 4141688497, 1019461607, 35321853, 725366733, 11291246, 976142778, 972626365, 3456320796, 3071540817, 3059241426, 197995731, 884036663, 599332351, 3136809295, 4012122398, 3904943596, 388844094, 635497658, 468526016, 3092500700, 438025965, 636407599, 823322867, 985397284, 3323657233, 1895372790, 334346981, 3841787921, 665121633, 1122779448, 3349659665, 348136193, 1681191873, 1152653314, 3151762247, 441335236, 3940684033, 4176232688, 3037193424, 955209950, 3876186561, 3661838681, 442219685, 658311434, 3527297550, 1426305866, 3408249689, 2847262650, 876872873, 323820462, 1259924922, 451999183, 171695156, 547859623, 297776353, 1178587632, 2833894908, 3965050373, 3375974844, 3942437348, 3121361326, 3089059643, 905690679, 3741279494, 3735553322, 854791390, 706007770, 3807717969, 34349255, 3872085439, 1437868566, 928233497, 3289756131, 69273114, 3054575415, 705625406, 720630509, 827440861, 3862703791, 3040132636, 685105392, 163854024, 4126780869, 1355427646, 99151314, 3607101355, 684644634, 214176733, 2933800401, 1463855304, 4294380241, 1321650858, 3037610038, 21385520, 1076435462, 1325841139, 1307710954, 381882340, 3859673918, 972889063, 1356122094, 1354546397, 3237420796, 2873026332, 3862154439, 836221369, 3941554263, 3102924999, 1341061863, 2984763986, 169810158, 4244382007, 3254913281, 1296838352, 3511656804, 3440777005, 439462858, 416417966, 892023242, 902241703, 1629165583, 3643947014, 3604003159, 468631250, 2918237885, 720772847, 314028456, 3690525208, 1006126247, 985650505, 817310819, 753518852, 501695288, 559483591, 281396225, 405327119, 705424704, 1045348429, 452719617, 3880846393, 3995405738, 3661300468, 3016246751, 3133128401, 2980991466, 153157965, 88670117, 1078345730, 1138089238, 3790926888, 2880155679, 3591745711, 1143131942, 383324405, 1135745078, 139906316, 3591235335, 3323313468, 1204307511, 687680006, 620566880, 3687702593, 3557636881, 3238286312, 992430156, 4039687204, 1024654380, 3820180439, 911604997, 106104774, 1084575937, 1319907622, 893049425, 924128057, 3878277634, 799142058, 3056869395, 1381031168, 1152054206, 437798483, 3960000483, 165522935, 835193105, 200223523, 2834552060, 941892892, 2817580253}, + {1087295483, 3402412472, 19190864, 1107477319, 3219075090, 3721794264, 2984001077, 3352183786, 149877297, 3756573627, 153288886, 3223371506, 2953105604, 1119937054, 4173644804, 351013885, 3844719943, 3861320382, 3450858547, 2939992337, 3201847246, 1096165112, 825685567, 834525625, 3561998077, 1140978182, 3068800569, 3912030231, 3303291126, 907238673, 1473437964, 1189925585, 2987412483, 34987482, 658322583, 682372912, 1481500092, 4060546028, 1506819673, 298962202, 3887654097, 1443943129, 1070252271, 3678194712, 1037052867, 3452494510, 1278809296, 3592894272, 2991253561, 3152826050, 3622326854, 1140895055, 3070949395, 650065874, 1209722853, 1346514885, 1040787271, 4205647626, 3269970174, 2972195752, 3052980777, 33971489, 3560618977, 4112908867, 3404186283, 1105902579, 3642823512, 989547956, 725356117, 1124581359, 3678076968, 758976199, 3084512435, 3319643126, 1504127310, 1423199541, 4245546936, 786323229, 622675515, 3675121088, 3102089158, 331019006, 3132903379, 3326853344, 3654565433, 3290297839, 3771352809, 3920110099, 1462618383, 641092542, 955187775, 62728675, 222301249, 3256162479, 1089342999, 3805625330, 4107937011, 3553970150, 2981485795, 3225158070, 1487976745, 974795093, 303619098, 3487020789, 3605116150, 3124187361, 2917642786, 4111799567, 3610494212, 1353043660, 3333489239, 753846536, 3256681669, 33951961, 3155428450, 1254348487, 3216841639, 387773910, 2914584131, 3239651910, 617306121, 165861458, 3646243501, 3208849148, 1213786412, 1026939338, 552906472, 575817773, 3425706911, 4009483326, 103544284, 2862803288, 3679849245, 4025037857, 4162131766, 888526336, 1393276599, 4288097189, 365228983, 351523000, 691323578, 4039294620, 221005769, 733664755, 3207917776, 156245303, 1372607997, 3125606059, 482077639, 2831347013, 4071108381, 3907656701, 2922441664, 3215834863, 918862887, 3370122435, 4099403535, 1094591286, 2975255997, 3840147910, 2886185972, 2848899491, 749991653, 3903733179, 3857923801, 658765759, 3674424789, 3387928886, 992791774, 1360002838, 4076819660, 719839752, 3730307299, 3192072756, 3925538301, 3763604178, 291683616, 70303219, 17410583, 751520087, 1226132959, 66333892, 407761466, 2976296261, 3757095369, 3619760897, 116275365, 4030093268, 1411255040, 875774038, 388568563, 473676508, 2803350240, 3493540599, 1491090608, 4145608115, 166777682, 3290811395, 719073852, 1375814708, 3870604753, 786372105, 3578787663, 238827325, 1391191262, 1463879250, 1337805740, 1237391419, 250664878, 1425337418, 1413595832, 1302850626, 3148740552, 2991473167, 3353166649, 758576662, 3940497648, 909763062, 4094083631, 3577762794, 838320714, 2981816329, 3552137197, 1121597888, 1058096916, 669563106, 2879478431, 3038758725, 185863728, 3853974256, 4056145172, 4078681400, 288747051, 3677138210, 3770102219, 1256837839, 352530350, 970475737, 4158860822, 771371747, 1141820998, 382142421, 4126944824, 3645154629, 1311750613, 4064365532, 4059576555, 3854778054, 3575520808, 3853840366, 1034692443, 79171768, 3896755390, 3024630528, 2906200066, 3776528368}, + {3510237506, 659145930, 640737586, 370610239, 323865661, 3553501104, 3221233161, 1044114894, 3739863570, 631499254, 332545867, 153100778, 451920410, 3723694127, 2906382261, 112852407, 4249342518, 2932561935, 3872124478, 685558105, 498457858, 1010739935, 3037069240, 2924031945, 927152614, 3639387917, 3371432708, 286109498, 853294840, 551030040, 1140071162, 400638142, 2953913090, 4712982, 2972903165, 734467513, 3469082712, 1441321731, 976075700, 5508934, 1276661333, 3006010552, 129181353, 2850223429, 161463227, 3638293439, 658979804, 485824205, 14922462, 436710909, 482524215, 2939493093, 3810573576, 923326961, 54657879, 284113402, 587798859, 991895270, 3703657293, 3000193231, 1355748277, 299937087, 3774268176, 4113617193, 3471236835, 666878448, 1041493958, 3603812890, 3349524004, 4282304698, 3250183596, 4258218002, 3119636037, 3386171408, 3469233074, 3541499381, 971488039, 3964930841, 769472341, 1344074948, 199562237, 1058592223, 247405761, 617339673, 4210679074, 3830710708, 4013484459, 504708179, 1043591378, 4166259143, 298571315, 3841507392, 1442622759, 297910499, 3435248834, 1391674817, 1225310152, 2878860620, 3065097386, 4248750331, 4243070377, 654117923, 72487427, 3057330886, 3555059909, 3926982224, 858669579, 1211189301, 1162486486, 749341181, 4088001231, 2697115855, 1330269993, 3375372611, 4224046121, 1238121962, 182234343, 3241678383, 1372789946, 289264187, 35736077, 454673881, 3369675784, 1024409104, 3220307495, 1397078541, 951976439, 866788834, 2500475895, 2814641131, 1142797085, 4007672082, 3289513506, 38917159, 1494026483, 121180900, 989590762, 1221714771, 2864753576, 537665051, 96579524, 2665195597, 3896321842, 836022595, 3255219522, 4242273566, 1295365703, 3054187579, 1077941545, 145443378, 1293694751, 686957600, 145538345, 3660644312, 3723806021, 66714948, 1308535213, 4148098795, 2973962044, 3301653982, 436413006, 3226663098, 3005993502, 3555447284, 691606082, 3023432117, 1357637664, 3509980646, 1194412020, 1078525185, 3392660419, 3829673800, 3408722150, 1224519991, 3184129097, 173062872, 150867270, 301539778, 4211935774, 4081756984, 464581329, 3686995269, 3976186063, 473772981, 71646541, 151803077, 1211122894, 1245315160, 3458858287, 3233672700, 1028716249, 658620645, 1077927902, 2773811508, 2798726946, 2755540183, 3913751057, 2989417269, 635891127, 2915558329, 3820278036, 3299787729, 757728692, 3117991641, 4279061729, 221520379, 3219376409, 557773234, 3578746815, 3456097458, 3391500252, 2788550458, 1172549175, 892129460, 4129817796, 104653059, 4075566902, 740511022, 1329247469, 2850469343, 3520679108, 3844418369, 1425255848, 372985585, 1038343435, 2821998929, 1152851186, 619387390, 2901170495, 4227020264, 2782450088, 399530172, 666807587, 656401447, 799455277, 3276990244, 541844999, 3084255695, 418526895, 1212018626, 3084326201, 755622722, 788977651, 590223539, 4023914422, 4281227233, 173539882, 3679566803, 1007040335, 2882465200, 324539821, 574378759, 876462084, 988795917, 1029393194, 758459126}, + {4107359059, 3524056096, 4060271439, 219548357, 4158023923, 44583892, 1111030283, 3711514098, 4141750004, 3977142468, 3568086219, 2833536047, 659091486, 4180887361, 1353235896, 4197953568, 990254654, 3564523620, 135650065, 3091268161, 607017041, 1829711544, 31523331, 4248742898, 839905342, 51897373, 1495545816, 3762613064, 1497414647, 1109053668, 622133940, 1236011477, 3807986007, 3720142145, 3807655670, 817944916, 3898805987, 3282886353, 1213753864, 374338483, 2596724993, 3670426396, 4277141495, 178339011, 786443742, 4005831233, 807672648, 521929790, 3939577824, 533139153, 172902432, 4277711916, 3788131100, 531842774, 3910320145, 264051286, 976373568, 3490191684, 2697843277, 3491616960, 4122859475, 1078015037, 972484658, 639485667, 3084210465, 1140533497, 716915888, 4224260371, 3368553249, 3619276345, 150683606, 1026169327, 4163837184, 156553291, 3149648829, 3879533371, 44385480, 45236031, 3438432184, 2986283027, 3720082758, 137233916, 3998242515, 4106987688, 3136948932, 2898141185, 3302566229, 3041657060, 161814615, 3610100405, 4173263588, 3624395818, 959966648, 454889045, 3659191490, 3906619084, 231129356, 4113290442, 3444126003, 384443640, 3126667298, 1263391255, 349647900, 934208546, 3989882372, 907627785, 842056954, 2935669554, 21623871, 3422363594, 78662855, 1101746976, 1246174016, 860019216, 649451034, 3042495308, 1307451393, 2939668423, 3627012317, 883339196, 951774442, 649541883, 787539674, 12998407, 128602902, 3556944206, 3844350724, 1481165069, 299957999, 3593937596, 3929149617, 1627902997, 3846659158, 755840446, 4098347986, 3226845010, 558561988, 2651771219, 11422145, 507517487, 1527192245, 3718374429, 870505017, 3826246137, 2984426952, 164218604, 4205126190, 959926834, 4231772188, 1371466314, 2888318942, 2833270248, 3493398092, 1137921966, 856146205, 21967555, 3038240970, 3979297055, 4028890086, 1482017745, 1168522184, 2888369227, 844119506, 2969894742, 2907617866, 1491278607, 5120174, 3686534638, 4057260226, 3996268531, 3854288625, 3960720907, 1596639261, 870304175, 3520262583, 315764540, 3322336464, 3151954630, 1027075036, 3719108922, 791895582, 2656455732, 4026119382, 1279658813, 3976133604, 1438589187, 1475394547, 502742012, 3191819828, 3153315571, 1228343584, 165096373, 4129684144, 385302737, 3422549778, 2581547849, 1471876117, 170007620, 817375460, 620036543, 3014013653, 3108817744, 636534340, 3300076048, 1110587649, 1624380109, 3897813486, 659698181, 4289480379, 273341449, 3025403136, 902308021, 685123680, 884751383, 725351696, 517214525, 4013480952, 112966877, 4123639106, 3990762788, 2972112581, 4227515887, 877909443, 35629135, 4205386769, 3208392380, 179367688, 86133436, 603658334, 333957396, 3292183342, 4055716106, 1169663750, 369685964, 15968990, 751830720, 3928695530, 3252223704, 3292785117, 4248560471, 4042538229, 920174003, 509078260, 642637614, 4248198824, 556119313, 1162166251, 3644640842, 650828076, 3551485108, 3438361112, 620771325, 3484294913, 3679895233, 1406579188, 3575662256}, + {3519592777, 238219445, 3836955208, 3857098955, 3224386089, 3811827998, 1226367676, 1392909767, 1370031265, 3998694660, 920446659, 823547190, 232526295, 841941507, 1379348005, 2821589458, 1416564790, 3301891398, 3402091476, 252064240, 1509228092, 3194023904, 768795085, 3703128809, 3373585731, 1070706855, 4160427490, 3000322548, 907077353, 262810650, 3458003652, 3678879684, 2949370572, 3471446470, 3706460999, 3610439147, 605153873, 3607971620, 3313084856, 3107077036, 464316380, 2312900, 248386219, 3690547125, 4182696944, 744020818, 4110271816, 3085387192, 4091930106, 3602584353, 3830164400, 2949255415, 3105357233, 3540905511, 4180145201, 703813352, 3001416391, 3326157530, 3108223921, 3927372364, 688409781, 298378195, 3470068720, 3761679376, 995827523, 541786179, 3944691879, 3975065807, 402968011, 1056762186, 609702622, 3761746387, 4090497496, 706277159, 1019148242, 1126517548, 4025013298, 559491084, 3856611791, 3468277846, 759811630, 3660192266, 3099149228, 3526233903, 3050568391, 2953764387, 18398926, 4244885950, 3946649811, 285001718, 31785951, 617213418, 1057507842, 523318320, 702197580, 318251486, 3220508335, 4077308476, 3914453985, 45396526, 3024534447, 941235987, 1222901027, 38780877, 2932230654, 3830894001, 1073467940, 3288193846, 3670846218, 1116782089, 1104951059, 1339543216, 4199498813, 1193945620, 1290604813, 3392157448, 371767007, 2896842290, 2804305668, 937814304, 4159752703, 283974994, 398918325, 54679520, 3005617632, 3656784710, 3351713298, 4082041526, 719329032, 4091946663, 3439832644, 1379992632, 773069014, 1144636732, 3269728520, 1354825667, 905769736, 1026154168, 4111223621, 3627101692, 4161731649, 753422162, 4004982836, 122278945, 3690526936, 1302654937, 3645461214, 4028223415, 3822178112, 129582121, 155841982, 3053052211, 3557352703, 3946928136, 98557748, 3288456765, 568799518, 2980948258, 542380555, 4075600073, 169651486, 3517990382, 389689789, 2906866504, 1134825167, 350966954, 317443343, 132854522, 3152199724, 1143652880, 1051713823, 3104577805, 3610068034, 4005417931, 1169679061, 4176661163, 919141840, 639690438, 1171196742, 3169721285, 944294688, 30683691, 4176821253, 4079274057, 3589556129, 2839686718, 2904206555, 36959432, 3753391449, 1243078577, 2830433039, 1397426408, 180661550, 3608630276, 3790142175, 657507910, 955230516, 1441545971, 1143528170, 3105952033, 3971269660, 2815834914, 3528963630, 2900117210, 924304591, 3904034503, 4290982218, 1274082476, 105100043, 3613178311, 616890367, 3040490735, 313403213, 2901265439, 3091845929, 750339096, 1458898151, 589182251, 532654282, 3371509517, 810372432, 642959887, 1506389556, 769639748, 3426627835, 120499518, 3322134702, 251219759, 3053566236, 1292189738, 337706507, 3265721528, 4129674444, 877779002, 1042331601, 3472701908, 1123105565, 3217097142, 3471427319, 822221127, 3037207065, 4228660176, 1074468366, 3780041428, 2914102307, 304545614, 1290930360, 1376385242, 3572089658, 4292621526, 118216707, 3979470055, 4176216006, 587548126, 753868270, 3005693966}, + {3354117127, 571861758, 4198121760, 334369219, 706856894, 3434658028, 1089875390, 956569164, 3606787086, 285212183, 454043624, 1128517969, 3167404588, 2921181426, 4064290781, 767030996, 1640169903, 3221944239, 1012219868, 3190087190, 3272989905, 298461455, 4276104976, 3054522150, 4193532656, 960210891, 2884752905, 1456147123, 497864430, 720176460, 298506691, 14566446, 2980780749, 855031325, 4188608755, 2848330207, 112779189, 3284681505, 3105617603, 3610621619, 274015561, 3260175132, 1143730908, 405352505, 1287133351, 355011547, 233163578, 2917160671, 586078692, 3134450130, 2953312954, 1337647028, 349829396, 1187523105, 406010054, 3168385333, 805387861, 975914158, 3754362091, 859380426, 1491272455, 3267447218, 603176514, 3703356224, 3501798220, 3925409281, 66171083, 3853644083, 4012439882, 364632598, 3055291139, 3385915146, 3287023635, 1289869741, 367477763, 4095073759, 535165465, 4291292384, 3862496052, 3235890007, 1445649635, 3439513074, 2873249981, 3226345290, 504304435, 1304180262, 1235895038, 894180891, 4127379533, 137383343, 3896917996, 466359600, 3241296899, 986461893, 3705734343, 104778569, 465700145, 4259961329, 1224924850, 958729142, 182989607, 4274648395, 1489220591, 4210871209, 3988331689, 3539095500, 3444312245, 3840035543, 934259992, 134231631, 4095548352, 3282884355, 357358001, 3830861142, 3963282229, 3534345208, 2849456858, 4189638574, 3501072376, 4294575060, 2890663395, 439531294, 3713318965, 4233484023, 3274068531, 3108678652, 2901977931, 522913351, 787426806, 465046239, 582463035, 197112281, 721465859, 348049227, 417854007, 939149829, 170014942, 3033923596, 3746188285, 550760670, 151576617, 952698887, 740572451, 938002938, 1461780913, 1106301468, 3283433175, 688473622, 1373415171, 3071791160, 3050447059, 318447302, 82722762, 1360334613, 3754338789, 3946446132, 1142218705, 1447738305, 453389545, 649341889, 3855680281, 1370477832, 36851958, 249698245, 3239717682, 3392215024, 3054979075, 398309606, 3014908585, 468536814, 237981870, 774979585, 4091895768, 3941772489, 1260661526, 3456234530, 2824076248, 3422483961, 1341843911, 3659986347, 918884860, 3425718801, 68900155, 4189111511, 4055975359, 3551196355, 1289215242, 458498771, 400302835, 1465167124, 334976702, 3794669519, 3705266003, 807944765, 3605287097, 1129728465, 4246794989, 1456491012, 586822683, 452084946, 4224036897, 239776007, 1020076607, 926544718, 3109535819, 3436512030, 3217621763, 1430201608, 4162068702, 2798926883, 3041472283, 3511238171, 2950747902, 1294487322, 3997349866, 3602338245, 1068890328, 1104725212, 3975232944, 1175110059, 2837294899, 3903268064, 3309373676, 1077233442, 592853265, 4090105780, 3234398969, 1471282154, 256841952, 3067021639, 699909678, 989988544, 1320333068, 3418829817, 818075570, 1207811380, 3107333187, 1408639249, 2840066216, 4190294598, 3788964550, 967443513, 323023285, 3604041302, 3709851362, 235003064, 857729707, 3536672287, 3890920792, 3408189403, 3022061642, 2937180444, 3472276144, 301647431, 782783965, 79044410}, + {3609593131, 3338211586, 3006128060, 1122841070, 770762980, 1213784359, 3084447278, 3607426072, 3391372245, 650907416, 1491942732, 335659332, 4210120729, 336381934, 4284699193, 1113083860, 77335587, 263709015, 3450214166, 3493178648, 836057363, 3120448345, 1441511341, 817890860, 3792495289, 3735610306, 4125428436, 3762409991, 993115353, 2796015530, 3030780230, 3003368622, 450228279, 507692875, 173073117, 992541430, 3407063519, 3685994027, 3773378065, 1475225048, 437192467, 988426774, 3287495947, 3257455604, 3774763058, 958599731, 4211809745, 80404917, 4083227667, 1153052463, 942098881, 3020108352, 1003209699, 1307881465, 3793601047, 4131274667, 1310793945, 4030441416, 3371839740, 305445685, 48822330, 201908725, 1594092266, 520229330, 3872672815, 3924116675, 3555063233, 147704034, 4057221112, 3203158468, 3402937850, 106316986, 3538571521, 822097351, 920563119, 3099348158, 2815402796, 718275249, 1241245466, 3461795547, 770240433, 3705934582, 1143086108, 3483954774, 839651910, 3837212330, 2871700271, 128728839, 3963361456, 3775387621, 508878415, 3318003188, 315698672, 4088068859, 3503539264, 775034088, 2839821622, 367702235, 98417683, 652491232, 521731529, 3085037038, 910153669, 3877307327, 689094680, 3072530860, 1223310552, 3908287658, 3235297533, 408440580, 287660288, 2933785150, 3989825748, 794050804, 3585852138, 1263260193, 3944600050, 690923477, 3001404499, 633149662, 4004175926, 4077447621, 3928679417, 121770512, 4128049854, 4149720030, 3260614828, 959852351, 4273292272, 3927028009, 1329345986, 1119100143, 220719857, 651965497, 4266535112, 3555517223, 1144658224, 908829936, 2884151106, 3912911436, 180137662, 2779270176, 624077558, 257555169, 889302577, 786231291, 4190356683, 414308896, 1076574805, 3567690562, 4048081866, 3795263417, 1252524322, 2735584813, 3201959638, 3402181602, 943909421, 774811608, 4225968142, 1388106295, 3955076164, 657271834, 702353919, 4109184534, 3658219534, 485365714, 4194957039, 3958592566, 1361401027, 3340062210, 3355489716, 1146333728, 3025526852, 4192455220, 538376694, 1377766076, 1358351416, 3404923066, 587323337, 1258103627, 185932534, 4223839427, 1444197341, 3622973676, 1243560157, 785318152, 63131469, 1413101294, 3887551005, 810222050, 3920375508, 4229576113, 3022276010, 639764263, 315019787, 1709711424, 735837951, 251991597, 3458789958, 381367050, 117699270, 3286812394, 3002612001, 3188325618, 3270072762, 2821052983, 893127489, 1487803728, 2921003498, 1128216787, 3494095543, 792872411, 3411130384, 4026070804, 1109804201, 1346947049, 3226265891, 3310759621, 856479050, 181460177, 490991843, 331666989, 354737488, 1460461234, 3496234728, 3652833348, 759345599, 314638053, 2987728314, 1683464635, 637214739, 64894008, 1018771992, 453308346, 4207533631, 3771133929, 3593668822, 2820742572, 1238296004, 3368290579, 120317241, 137495839, 3925754116, 1095829189, 3753039409, 1176382527, 1094037428, 3276344007, 50254835, 3133421599, 3571078097, 2868706584, 3166161420, 3653365202, 4064602909, 2848914508}, + {315414256, 1169270956, 734543094, 4212605185, 671737828, 3268466737, 2955613978, 3594602177, 4212840623, 2769627, 3204075036, 1408769059, 3746234697, 3052016464, 4163752628, 4207530030, 3932568009, 2864324882, 1475189467, 4110299636, 918770923, 704587237, 1422934194, 1493118749, 1472503972, 1492781240, 304678732, 855852728, 805876022, 3004181809, 416546756, 269860945, 3008362062, 3086147563, 4040988896, 3154397204, 785721687, 951962181, 4280442376, 3242594828, 119086002, 1396510976, 3371999015, 1354897419, 2817341743, 970505426, 820043578, 3102734558, 535633171, 953602567, 13185111, 1397701436, 3903643127, 2887326494, 3956717345, 2916302928, 390339547, 936919577, 463840467, 3181952685, 4122269734, 2898275491, 290914835, 3404807883, 3590066420, 403363308, 1360675625, 3437486798, 1140834838, 4179556684, 2831345463, 1492171002, 3188141588, 3151810251, 131810096, 4226790915, 827448904, 1328624911, 2937300980, 3981298612, 1211687207, 3518542409, 1320884735, 3478600153, 3141939924, 1462611719, 3108438818, 3055951284, 1308144381, 1035748839, 3578198466, 3326601802, 833164250, 4139569647, 1340088161, 3609605372, 4265491715, 3478324044, 4224041270, 767502510, 1077848794, 470073354, 856302540, 3763527689, 147193033, 4107545532, 910096215, 223003312, 4207403805, 331431957, 4248446411, 38541117, 684066117, 4198317321, 404804681, 1125890395, 3092576199, 2854340060, 170788631, 1395633689, 906411222, 686552553, 940452799, 3695001068, 3105349314, 3392191788, 2989496550, 3270590417, 4169979111, 4062058277, 373831149, 1071862744, 373488093, 3644844321, 2890524915, 3309958950, 3265795071, 1121009174, 152305599, 653139932, 3955616734, 1443757048, 247252510, 416017927, 4039954366, 218974759, 1210308316, 1225071610, 332993454, 772976423, 793250229, 1456400135, 332259333, 3108097054, 1104668893, 3778874318, 1024292344, 2918397982, 3489058055, 1188369870, 619401022, 3500549636, 988989985, 4159645942, 3790142252, 3040798551, 408035012, 3737797302, 548385287, 506836433, 3593617592, 4114094870, 147455762, 4264250142, 3159479288, 902170832, 407461940, 3740802576, 4229347040, 3871286007, 2968398563, 284480224, 213244092, 3452123913, 858399763, 3747140648, 372594124, 3891541730, 3320458214, 3475889952, 821611205, 925434439, 4021551098, 29763631, 4021289678, 3862142232, 3189948650, 3117295546, 4125249840, 3815262791, 1169766117, 4090808018, 551216923, 290209199, 4276169127, 19350325, 200028725, 601705463, 3090354917, 959130655, 2847476001, 3106714183, 1005707513, 1509806421, 895642092, 821431535, 3324533067, 373937490, 767449541, 3023636789, 3620616167, 4210507750, 2983344047, 4247928055, 573814261, 1370758331, 48101791, 1405863721, 844287730, 1057224446, 3611905028, 463664118, 906945747, 3669024299, 4214801877, 413706223, 3858436790, 637717539, 758320592, 605511497, 3809492489, 611110164, 955430697, 2983852865, 3774167255, 843575035, 4112519495, 1202141400, 273305012, 120910342, 923984115, 83478592, 119207136, 1152533313, 4232081458, 3761059883}, + {3576037199, 719672368, 380377570, 4199204600, 3570484451, 502065584, 3004631614, 502049510, 3742354481, 202755652, 2923412446, 2856142116, 3757360328, 3038307087, 3092922818, 878769664, 3895607237, 621668140, 774549074, 938145012, 808056873, 1237007671, 2985039066, 389947382, 4032680443, 592714703, 363612080, 4032686267, 1337845994, 3561409528, 4247309052, 1226298437, 3403605060, 802601031, 701623795, 113766624, 1006119705, 303087814, 2848929346, 2848591686, 3760781338, 4009943994, 422508090, 3402974265, 474019548, 4030972584, 2897367562, 3176087488, 552734532, 3150599337, 3451773370, 1070483190, 150399736, 3206756174, 3660599312, 3138074590, 3738283826, 4080788036, 517991869, 1344001531, 886297805, 404164592, 3489647557, 655312143, 909500949, 1280840725, 223199972, 1269454035, 4016096844, 1308680195, 1404655931, 3402028749, 319826199, 18094076, 2890852621, 3920382701, 138294809, 4225871140, 3411081554, 1025114193, 3623800585, 30403052, 1375676658, 3606852643, 534723064, 3859791077, 3034105808, 1078743270, 3101379074, 1038532409, 3238532665, 2958824200, 239253466, 1371465023, 950724882, 499975436, 1120848321, 302041919, 3205221096, 3526932725, 3443544507, 581966836, 4257424709, 2800330507, 2802193128, 3539333436, 1421353037, 4042639338, 3780686840, 475600058, 1320169385, 3869725131, 3888125671, 975700247, 305275073, 3753385542, 2804503363, 1220748594, 4183044939, 3184005314, 533849358, 4160140268, 3893035268, 55755194, 169757151, 197590018, 1011948520, 2889430472, 3427548089, 993177930, 859483613, 1190601215, 3088986150, 769379900, 1471333658, 891743482, 47072171, 639173064, 718091586, 750509798, 4210868805, 910600739, 2880888836, 182660424, 1289289929, 772671046, 390542419, 3471718469, 572765477, 3340100884, 3202954827, 3541382637, 3452300349, 3880245678, 437038353, 968636119, 3508145641, 3945149923, 3470210784, 3426213061, 924979999, 4216569324, 3215536209, 384291550, 857350658, 3223325116, 1345968457, 4141893075, 211608999, 3239636943, 4107459600, 3203584788, 3774939099, 858340109, 3324504597, 114601470, 3796150080, 817610925, 3326504, 3592017127, 3186902259, 518318099, 3804479248, 3586709770, 2898640903, 472239310, 1176383918, 582336257, 3276931573, 314357504, 467447511, 1225078769, 66584638, 3459121349, 3672044060, 1007137006, 456004867, 53561277, 3324069869, 808329190, 3711323948, 3691058879, 3529697614, 2885083715, 790033349, 3419084266, 777570726, 4182001183, 255848782, 420588548, 2975006009, 169139506, 53010383, 693719047, 4173721299, 3249607177, 3122539597, 940127535, 4249005130, 1078246400, 397540416, 3709325004, 1263463367, 1340350287, 3994667821, 3772000055, 555290876, 1492799936, 3299997448, 497480392, 3592888355, 3206174691, 1109211376, 3389696574, 857550831, 220845111, 307484078, 3005289455, 382984915, 2852663816, 4142988497, 1338457420, 3595150909, 1019133747, 3593407721, 2847360943, 4048949971, 3254321999, 4174899422, 3654162248, 4243926974, 3418756149, 3543934681, 131602760, 335144427, 3423805910}, + {1438729228, 14473729, 3353613605, 490268985, 2916877597, 3862757205, 3070826813, 773666752, 3334544212, 3579444256, 498587113, 3739690020, 3811698623, 3019963335, 3776502305, 3576085457, 869808439, 3881836021, 3036391119, 3890277906, 3727023336, 110447038, 251771317, 1035084757, 692532975, 3240356843, 447288080, 2868707580, 3171671230, 3236299975, 351016197, 3959825756, 861254161, 3879655125, 3345202783, 3452515641, 1379291694, 1460780289, 3875736473, 2972727527, 2875791522, 3343125424, 1380710853, 927587025, 3336161611, 1459483672, 3089366017, 4225106513, 3286253004, 306700096, 1263773747, 4107082276, 129052083, 290277931, 36438352, 3778627780, 339026391, 35958476, 2851543571, 558681598, 2981348173, 216410130, 3420915754, 3034694882, 1271918906, 3858359821, 3033401365, 1190341908, 334611378, 3300215736, 4275102670, 3270435757, 1256774990, 3752679191, 4175800523, 1473069771, 984545113, 2966490168, 484240420, 1222725830, 2920985289, 3596033457, 1107368369, 3752739638, 3492408250, 1244270133, 940305464, 4041856834, 2957834792, 317120773, 4265868378, 3106952720, 1269241357, 2958093589, 848620859, 1107279112, 287520319, 1402645944, 3841408289, 1363225884, 3589675552, 3190700315, 1480605722, 4257300269, 774098944, 2836678826, 3257987166, 2804685330, 3071854942, 4259730929, 972935701, 842681080, 3931096327, 3575200955, 687423224, 1103634603, 136439993, 425798491, 525488673, 620361911, 887555394, 2947229887, 1220873280, 1261195217, 925115054, 1388040466, 2952272886, 450996511, 4045595689, 4059934744, 808640312, 3267566156, 1359723326, 4244198316, 3082358552, 690495973, 3778789598, 3372612440, 2820792584, 3000576775, 1035422537, 668522009, 2848796966, 4163575797, 3975541248, 1007923177, 114709032, 437922562, 3310021364, 2940408091, 793326898, 3038204380, 1145352450, 1028046915, 1360803406, 3802511281, 3996338087, 3182621713, 1396252912, 488198657, 2914137091, 3158690225, 891820026, 3042130133, 4046540873, 1493776606, 3117109822, 498128580, 3588552666, 824551168, 3402438675, 3256094672, 3959174063, 3718836033, 1354160950, 2816134639, 918948869, 4159691988, 3071350854, 441779900, 3084716207, 3672295052, 785696237, 3912748276, 4282831873, 3543942705, 314326775, 4096248257, 349587669, 953948369, 3888836401, 1320938526, 1160443613, 144525511, 3030374409, 1461916118, 537571770, 3156669930, 4193976253, 752339795, 4223082986, 833832907, 469218117, 3121751528, 3256072896, 3770885114, 35696449, 1408823240, 303310903, 1006642016, 3588879856, 3946948881, 1463069684, 1344813855, 4051230, 153341432, 4126811624, 3772327493, 1505742334, 3808607795, 1224061165, 4242398923, 3594694592, 2887263546, 3422492123, 3082224662, 1086078485, 3242143949, 1230769921, 3074610364, 749985194, 633728959, 665408304, 3570619853, 321631682, 3221168651, 507364903, 2919431229, 890095572, 3948594192, 4094361096, 800641066, 3854877790, 3486851562, 3132102189, 1307783207, 538269110, 421742006, 3671278396, 3202560295, 660489523, 203996204, 2951667774, 1494820074, 2814202060, 4088324427}, + {3257746208, 1000952823, 957343213, 990161599, 969679655, 666825493, 2886876938, 885999163, 968709614, 3897112232, 2884641557, 988073489, 952348929, 3424834078, 3240288272, 850470180, 3123895522, 719963660, 4025861922, 1310868658, 81790923, 39843864, 827072752, 773270710, 3807501263, 1142442180, 874404307, 1056628426, 539506713, 776581801, 3117410990, 145628339, 301576418, 3960941276, 3535093726, 4003982373, 3748204764, 2896768436, 3292340784, 1037848315, 1832914755, 432552718, 608554163, 1035464894, 3646270684, 14084356, 1111310317, 2849186476, 1329251339, 2863018807, 3754022721, 3746433573, 4293781496, 3484614163, 4258127335, 156120638, 1236576499, 670683210, 530121471, 354595539, 1221008166, 738736633, 3439346960, 3286894838, 1353518898, 3105924813, 1480190480, 4113901503, 348058951, 1242713531, 3404730613, 3292662441, 4147911848, 1240274491, 33903104, 1406151219, 649677496, 3082429095, 3375873202, 842683863, 3335862242, 3909760500, 18593460, 3191979478, 4228451511, 1076676374, 3104025317, 4154631508, 690947663, 1263846430, 2754687057, 181218623, 385540835, 2831856424, 956417564, 1102131156, 1376004528, 654317068, 364488698, 4175172524, 147319242, 448291285, 1156195658, 3690906454, 4173599189, 887104266, 2857551793, 397207235, 850266303, 2904769818, 3795473969, 3350978268, 4215754010, 3753263114, 3067297768, 3088172201, 2924916819, 3822727709, 1092536100, 1346169580, 4239120116, 132721978, 18605508, 2784175839, 3726196931, 698955311, 804277044, 3492600051, 1038108632, 3552510799, 774423537, 3976746666, 85797085, 131332882, 3209619231, 571320636, 1119020972, 4022777805, 3870610148, 3659418843, 902106048, 3573490633, 3070055125, 1120223057, 337070631, 3836258509, 3506359333, 971641319, 3606045498, 1157937625, 3660628301, 3736994246, 3558454303, 3889568228, 3410690083, 1463344817, 371983020, 685811987, 3910213715, 4160235556, 648661805, 1195646212, 841470242, 484054211, 300757549, 3778882596, 3534280535, 1325803235, 419448057, 1246056879, 4266118471, 588382038, 2853434176, 592317115, 3292876997, 589439798, 355808006, 302830118, 4194766338, 4009250263, 554252743, 1623514189, 615394550, 3773611812, 1377713178, 364182809, 3206152163, 2835035347, 3326540769, 6840772, 368185036, 1482223184, 204198860, 4121968950, 85602252, 4124723947, 20903903, 3771349005, 173620028, 4098048036, 3995134545, 105642569, 4139964101, 138419204, 3451828212, 266221908, 3804548910, 3443175606, 3759075562, 4024501027, 2948661500, 3310069313, 2854867425, 3034926034, 2857645741, 935475763, 3386686017, 1478164434, 4088450377, 4055492602, 723867735, 246264011, 4248254035, 1011014723, 53551559, 1406586793, 1446922762, 3338998451, 284046315, 1482878188, 767618368, 3687500503, 688904133, 3275702543, 1389756079, 3504398907, 3988700092, 1069400283, 2986652650, 3687759832, 3400903763, 3712799033, 939506942, 3847499336, 784680698, 3993883203, 3853726644, 1020085553, 817415415, 1369561013, 555610436, 3957527317, 505733893, 3340627901, 1214857760, 903852989}, + {1347993800, 2916365560, 3790405399, 2930567877, 1354881478, 2840070854, 3828284934, 3386636221, 3789559241, 3410678216, 1507058700, 733282290, 3908366511, 3877489152, 1187730165, 868133651, 1192355565, 1226060078, 637121036, 768596307, 3594842177, 3316579311, 3993944502, 1245118178, 4290767095, 302821186, 626439718, 720702005, 3980868796, 50414654, 3319184750, 1357377536, 3596097228, 3804626943, 3957596883, 2856800296, 503605532, 2964791825, 2865089460, 3922219062, 4012060742, 951079651, 1446384315, 993574834, 3796485421, 3559777047, 4289309687, 3268092504, 180288525, 162339764, 3541838035, 910685110, 3406422990, 535907887, 255572969, 531891443, 2817783317, 3403269116, 2922828243, 3913923552, 134785244, 465555725, 1008877338, 3756502861, 835142739, 538008324, 808079349, 538847955, 4216662438, 178978490, 3588099405, 2817444333, 4094947913, 68014819, 3903381520, 465827137, 307251922, 1106894652, 1261755173, 3859934962, 3474053645, 203763401, 670163288, 4190127159, 1345670875, 3944208434, 347609632, 17025850, 3551335459, 3792705191, 2987000492, 336921945, 115093441, 1220546742, 986786291, 3275508405, 31738939, 907990694, 870656831, 4160047049, 3556714449, 3912222731, 3250334792, 3149837112, 3273797641, 2816812067, 1039212807, 3368813122, 305613600, 130823736, 1007739416, 3691169871, 3069531579, 1272770475, 137507849, 3125721069, 676769789, 2873872101, 1180174844, 3038441300, 1275052772, 1355539538, 1154944026, 2848711087, 452257347, 3936931053, 3911261635, 2971914314, 3344409868, 1430202896, 220466384, 3539549409, 1120405174, 3185816352, 1206135479, 3806809301, 338536754, 201927662, 1390594736, 686673630, 667086407, 3241316403, 1024069330, 3258246059, 3608494132, 4107786801, 3862963487, 96840527, 3652237991, 288934382, 1346049011, 4140031980, 573310427, 101108191, 957936046, 3350257934, 4143956695, 1003473084, 1206995795, 3049841996, 659872307, 3720548431, 3893502146, 3521175360, 656002885, 3886697033, 3053407749, 751949110, 82457121, 1328262606, 1238873789, 3276748712, 719045709, 3205713124, 1360847547, 86288906, 1138906344, 3590405638, 2921789433, 4075755556, 4241048797, 3249015100, 390200577, 919497497, 2781665812, 707680436, 1491000133, 119130659, 3997233480, 3242902550, 1178408247, 787809011, 3056349926, 1084797763, 133716988, 4055278274, 3494007564, 303677678, 3305286106, 3171757299, 599276822, 374099999, 450887503, 4244760304, 3220881933, 989586916, 4145632510, 313205496, 2975325716, 471530033, 3793806293, 1410352943, 72561376, 2931998967, 4211041518, 945028527, 1262045407, 3427204907, 3857724691, 150395163, 4020970570, 1353384689, 3853718999, 3912247747, 1077147720, 3441152091, 248646652, 3644205144, 1104991738, 3838577928, 3049263625, 1223096322, 69941216, 636271832, 599851768, 2871054131, 22259987, 2955854920, 3880523289, 371284180, 334893280, 936571098, 636811800, 4240514071, 1104268104, 2981764949, 651890111, 3903435719, 3136418034, 3054684112, 3606530052, 619761102, 3342091539, 1392691437, 506939050, 3972547061}, + {4230217500, 272713817, 3267479036, 3727278891, 921168349, 4210081462, 551166500, 1373370890, 400823866, 638001616, 3696832594, 1040529095, 1187571996, 3352149244, 3354865660, 1271934770, 2753873174, 1088629245, 704722232, 1072351563, 235658439, 1324133601, 473901054, 498722004, 3335263551, 609305899, 590458387, 3136427280, 2922360058, 3575641392, 3770014656, 3517919229, 1043274224, 149504024, 1625106997, 63516852, 3440498142, 1306589449, 3861112009, 601991087, 323015706, 806900778, 1119097165, 975876665, 3041729058, 290782176, 4074763770, 3054769675, 21411826, 1521485857, 591792716, 835728185, 3255240958, 3623890614, 223721252, 3460385797, 3206297377, 705844786, 64549047, 890364717, 708989724, 4124060112, 689232208, 2966751254, 3970874132, 991284723, 3304868412, 4008836118, 3251701571, 1137232436, 1343340260, 1496003809, 303427601, 2768780618, 548945601, 1360245450, 1278226098, 2850599757, 3574651583, 2868643135, 3945379861, 183371244, 3359070235, 168341422, 235736407, 3654568617, 624051371, 3939972610, 3888232509, 869989120, 3727861061, 3253948598, 4055034965, 1223370161, 979717867, 3763546831, 3947304766, 392954926, 3250452142, 1343944655, 559488197, 4082899431, 3401660228, 31832832, 1157879053, 436722157, 3911997258, 1207820310, 3757484538, 1157355279, 834423743, 85307727, 3022654727, 1092152794, 238821931, 1505410482, 3586337982, 3700827952, 954509367, 3805562308, 203481511, 68801314, 3257618605, 548280614, 3992178967, 2937637112, 1610790158, 89502691, 1424033330, 3018705723, 3736446681, 438448934, 186012949, 3798057441, 3846318019, 769801902, 995428020, 4028231941, 1361499597, 1407208969, 134228671, 17419802, 1243327172, 623555543, 585551399, 1309686236, 1387377168, 114599157, 4265087686, 3502812194, 2948851688, 3274681272, 951785935, 810146299, 303056864, 3530022581, 240799674, 3822278413, 3317384934, 3069314263, 130669602, 904713002, 689650221, 3963091879, 228377047, 1169540306, 1180228007, 3573755984, 641480786, 521657165, 3573950640, 686313500, 72931281, 15471140, 3596600396, 3907234561, 928635838, 1445507044, 3662026514, 901822416, 904601042, 3763214007, 1326525128, 441821149, 88189147, 301056706, 538182066, 3978359885, 3157895632, 3020415819, 369104045, 581779375, 3713287172, 3709086461, 3619633938, 3785751775, 1192309168, 121124863, 2980860115, 3608100562, 3405969183, 702212314, 962045264, 84205746, 3887573939, 3446722359, 1186791480, 1504644381, 793110519, 1555386054, 554694445, 3796961563, 233309738, 1389831886, 3053605062, 236470987, 516624903, 3790719226, 318023748, 890435160, 33305544, 4061192497, 953162522, 1388838569, 3015584509, 1320481322, 2724267320, 3003362578, 4258333211, 3603555301, 133561562, 3289254182, 2973587139, 63035385, 699547560, 1481703953, 3872534751, 788837317, 887601457, 3167529449, 3778231545, 3233817533, 33476106, 3669736968, 3243946207, 37808213, 537858755, 3992178253, 3248950699, 508013905, 283692822, 3643103267, 4224789174, 3584601095, 121914913, 270337760}, + {3418617602, 239853337, 3520533163, 3024149235, 3274230870, 908730178, 3758805758, 3520911106, 402793708, 171884785, 1421922597, 1025576638, 3406292923, 4273550383, 3910356991, 1498147654, 969728741, 1214533629, 821428809, 298266545, 703265602, 3890884467, 3562096584, 3374697680, 3367778006, 1392385752, 1023035159, 1462326557, 1242774479, 3522373962, 3738501171, 673294615, 3905565628, 1262830532, 4022251030, 710356904, 820226083, 2974598069, 851645691, 3271578881, 4008455464, 752929080, 4076131916, 4021107677, 1169205255, 736615446, 2871372080, 3590444356, 4277471008, 319489571, 889337357, 3402244617, 3183211455, 1413694454, 1006386108, 3386554185, 4156955631, 957093591, 96801284, 1297350675, 132754958, 1499223591, 2836640252, 2904216270, 3120168977, 20267966, 3438744316, 1161341777, 3808431295, 3820814044, 4062641428, 2824081728, 3874706736, 733103577, 4125076722, 131607211, 3587462138, 268756426, 3084118851, 2969358869, 3742585537, 2958087391, 29209351, 722688038, 251397873, 4077398286, 4249893967, 1343236793, 1473130310, 234281906, 4026446646, 3702441640, 1489906399, 4040342322, 1006174659, 136036781, 3774103727, 2886330186, 1212341304, 2947800623, 1172512064, 3288018522, 3541309689, 3486778889, 3023978265, 908541608, 4072254179, 3879358476, 751493125, 3509521888, 1295378949, 296953650, 708235181, 3334404415, 307121093, 3423788606, 1437978563, 433331241, 970789106, 66195168, 422038447, 3260413739, 3172482805, 951382588, 3578740231, 1140453057, 78591992, 962719553, 252729847, 691199718, 686035460, 667485685, 3642039577, 433465309, 551308365, 263571276, 3001086538, 2735270882, 671481522, 600573376, 658292291, 489955101, 3308524357, 2830816287, 433179205, 777040391, 417652289, 131386832, 841593643, 3433029835, 876950617, 167304901, 3115055619, 710457866, 726617898, 709406779, 3478044176, 1481370319, 1414712896, 889958826, 3610717457, 1155069156, 173424430, 3810129902, 3208982741, 925038064, 332063172, 1129693136, 539745565, 1044962873, 4129612850, 1447222467, 4097044931, 3185363238, 1011958739, 700569031, 472340544, 1398583012, 4244812116, 3103791110, 1424992471, 1562160364, 788647251, 430191118, 3943088890, 2967251120, 1021765893, 2905206096, 621102288, 368312637, 1051839954, 2939105233, 49689304, 883759865, 33838248, 4282730173, 3612136921, 4116238255, 793786041, 2971128400, 2838251247, 4143197710, 198651991, 554041842, 622074034, 4294324532, 3913241622, 799845566, 218224435, 3672682280, 106367032, 2934719431, 3662613706, 1105376589, 3082537726, 404534186, 434907414, 3151540692, 3474776354, 1252964917, 807140658, 3537237177, 1019949905, 4206384391, 70774864, 961339057, 4141665730, 70835233, 3840814539, 3608329945, 771143509, 4208439037, 3437188318, 3721774379, 3374335422, 1074056960, 1213214451, 241365036, 3191747399, 589344559, 637096108, 1073480141, 3390251549, 3008165447, 4138903603, 1276167682, 3335536864, 760200000, 3442744627, 2948473894, 3837786388, 2940864213, 1041246445, 1142939607, 3842173740, 400941325}, + {3321747644, 3702708023, 3275181311, 85386061, 727121919, 187689915, 4079309491, 803998683, 3156920825, 11684386, 918608387, 4161206185, 468195293, 298654704, 1558976002, 3374385670, 3914221142, 3036352218, 36780795, 2951268180, 2907062264, 584114903, 954204140, 3745828320, 3021519535, 1423780867, 217757389, 3335895335, 3545482277, 1054882270, 2948288456, 3304320217, 3802613575, 3277313763, 2555447759, 2971538206, 570756177, 769275321, 987843620, 3772395312, 425305122, 3909003270, 4097885965, 3120900686, 2855249939, 47230013, 3873331648, 4228238071, 687942063, 2752926257, 1034678088, 1156437065, 3250512347, 1069211689, 3375496661, 1458645959, 3517820891, 3941723886, 19501513, 112405733, 3251180852, 4138341679, 3962881075, 199152109, 3417461057, 1361597350, 474434829, 3737187510, 1221720387, 1289401566, 4223931443, 3257515533, 1381426402, 1454242247, 286336831, 3720951029, 709683685, 3072784981, 2896962855, 184143112, 3687064569, 1414398498, 199840778, 145625115, 3507809599, 876353776, 3485065782, 586785501, 1279903155, 181123501, 3232452101, 3753983183, 165817365, 1507573788, 1514026735, 4162108366, 1246426563, 3857432906, 3537849666, 99108541, 2463087915, 371251230, 3410735055, 4228566529, 1052969983, 28774468, 3185000440, 4061575384, 4058712756, 2629080239, 1458895847, 790297011, 665890221, 4250012329, 1253043883, 1422465320, 1464209208, 348069148, 3075291128, 1557400083, 617483999, 135944265, 1236196292, 3762018835, 3638832160, 1408284735, 54502650, 4231966687, 236035764, 3839942570, 3340296503, 2269001, 162261183, 3269726429, 3772658186, 3115519488, 4093962469, 3438850119, 3492753980, 1138563606, 3174911193, 212659396, 44567043, 3975293527, 3626622976, 3938000910, 3788716793, 2907392800, 3921609169, 3901310041, 3300015695, 67618018, 1120295168, 587940313, 1145776932, 4164794074, 1558056482, 3191203159, 1346883246, 404229703, 1321675754, 3306935592, 3526629869, 2869220552, 721548600, 908780105, 4043243298, 4162143796, 3419275294, 3140278314, 3890459206, 883840284, 1130151858, 231665577, 3948217786, 3187651602, 3501859332, 4147785440, 19580697, 1495996401, 3119759022, 2431385902, 4192555815, 859197128, 436602390, 735178537, 4163707457, 3553035251, 3830249469, 3795200009, 4211925272, 3353105104, 147342599, 3136240963, 1522485473, 4221429213, 2931806003, 1108668228, 3524726996, 3107282760, 251000578, 1208415808, 1137334751, 850214314, 626533713, 4198964984, 4250323762, 1243431376, 273413063, 793447254, 2934896642, 788136000, 3937641678, 3156071948, 370394661, 1360900069, 399381925, 3467557872, 1476193972, 197673774, 837419188, 3694409783, 2951935264, 936634285, 3928514626, 2857370035, 3252571854, 3979558328, 1410519370, 4159114033, 4078976029, 2413865465, 3863424999, 1159540981, 105191717, 911806894, 827382269, 993832240, 4073432846, 3426268879, 2986815740, 809053099, 1391450694, 1424885769, 3199868753, 3959171084, 3198865616, 894841038, 2999647295, 384021729, 2703425848, 1308864958, 4081205204, 3588411638, 1424297465, 3842056477}, + {3695249854, 3256802332, 3420209896, 306127320, 1190677421, 350151913, 1092949981, 4058516445, 703600912, 145532879, 253777403, 3254581674, 15079113, 179377429, 2772519933, 305974716, 303641112, 516537076, 3528703480, 3241783535, 82260429, 1713721106, 992673865, 3436598012, 2755410173, 3571637284, 1179914743, 1236550415, 203818439, 1045157213, 3087937342, 452767254, 3337632584, 770427357, 2393390578, 155239210, 820059178, 540008385, 3746302801, 935482567, 821119979, 777278720, 994295717, 61607767, 1242875856, 302595287, 3370583744, 4087789233, 4061085178, 716440759, 195438376, 1269281253, 489638837, 3198871894, 3760868936, 683127122, 3008087234, 3452621336, 643359286, 3653573904, 3047546655, 976410677, 2904040658, 3958065108, 100514269, 4239322544, 1140474441, 738206970, 1105930503, 1361395220, 436076487, 4104956621, 3746120621, 1528577025, 3235716101, 448151331, 603838766, 3675076148, 3702436569, 3525917914, 221729009, 771600386, 840226889, 1244092151, 4233240394, 3813224128, 4042769730, 1346884060, 2936413110, 114940499, 3519392016, 117554506, 3171728567, 3107796722, 753025245, 3005723138, 163178557, 1923566062, 875081802, 3810396990, 3241350163, 117162329, 607237884, 973276204, 46855649, 753804290, 514396840, 3239654164, 758928434, 230937639, 44573990, 3071979563, 1424871719, 2704850185, 858410499, 4027764310, 4040104755, 255977417, 3238410928, 136453324, 910350830, 3487679470, 3913958337, 1310784308, 4209110223, 1275218985, 1137944850, 1225728720, 4140979624, 3223996696, 1011745093, 2805127449, 4011539973, 1463752427, 1475206113, 3069424968, 556973757, 2429622716, 85937737, 3118450432, 967987659, 3778888914, 2824261891, 1107836230, 557319740, 3286100217, 3875279605, 3089902622, 4105653197, 3068061486, 3712869873, 2849680860, 4128745502, 2865318837, 1272851261, 399265519, 926612421, 1294663089, 3997309671, 130932262, 3090196700, 3259557622, 1195381687, 918359474, 3250386366, 760030447, 693153731, 2915579622, 3008580655, 784394435, 1261197092, 3685012688, 583747359, 352123621, 490254871, 839239976, 842771811, 1211515639, 3250438439, 1395599941, 1325262719, 1278997214, 1102711763, 1303915582, 453109723, 3623635727, 3474276065, 4247499450, 3171989738, 786713314, 3745989833, 3226124583, 3517646138, 4181462073, 397978745, 4122790691, 4127371563, 49160787, 3687315207, 3138469477, 3505666468, 3922723501, 3090005322, 935707626, 1040135108, 1476330310, 3454871225, 389560076, 4261879023, 625235908, 705971270, 4209918436, 690415623, 3269216334, 1991436107, 3288910329, 739693886, 3702697047, 870980129, 4062774864, 354926636, 4098958116, 29244421, 4071540951, 299085339, 4260560624, 1974991909, 4065176087, 540791358, 549128823, 36560453, 3906748843, 3770467637, 532620612, 3105402584, 4161256938, 137242846, 4246001139, 507907365, 4073534710, 3335251271, 683361822, 1360200630, 3729245468, 256037411, 3946962421, 1430713324, 3838921186, 1246700302, 382146076, 1846686953, 3571374070, 162784720, 3037115642, 1560275145, 173361092}, + {1270852648, 910480708, 2981958931, 146747663, 1526128366, 1414529221, 3908645975, 866971737, 3555269608, 4075307024, 1196366154, 1136667337, 3972008163, 3474180416, 3022667471, 707440154, 1153486058, 1382552338, 4075612670, 2933066429, 3789297122, 4077868322, 386391102, 3390813958, 3336379726, 1429201492, 4009569054, 3235057152, 3338647879, 574873140, 1694891858, 372817147, 4274924351, 3874485167, 31173402, 1052504894, 3052391736, 3132240713, 2767660987, 792269144, 1159318753, 3421256441, 4130489029, 3444263457, 3367903809, 3518683863, 4225905347, 3270307668, 1242364892, 120476492, 3998569511, 4212833977, 517611586, 3117485364, 206558208, 1526792266, 51891880, 3176740853, 1592734476, 320099814, 619183866, 452442685, 37964599, 1360738737, 991314683, 3103803690, 993744679, 3959423984, 1090375088, 3419213874, 3258312955, 1207490338, 3031611696, 3088839847, 3172077083, 153995207, 4214665679, 3996797235, 845207886, 3525702638, 3875755568, 956745426, 4122539534, 3388098871, 3793476857, 3276791116, 3557818182, 1260255576, 1588704564, 1172453952, 1104917025, 784585714, 115649341, 3151580249, 3928578288, 200808727, 2831888886, 3103653276, 341181741, 3327784017, 509353425, 3307647165, 1055718081, 3568153389, 1208023130, 3931125023, 4030207784, 2907752368, 441561419, 588168736, 254660783, 3881296875, 1206435912, 1024647679, 3991129320, 2951811163, 991672838, 229641043, 1206116376, 216663838, 1188961225, 85540621, 4023637433, 121911614, 2906916439, 886945246, 2950900985, 1374086491, 1397011421, 165873744, 1271715169, 3961063595, 336078772, 3366974229, 2871278134, 871175872, 1236719591, 45789536, 1307955160, 553336583, 921509670, 1560338688, 448855323, 4174195388, 4076342603, 3709202986, 1157496560, 1441387022, 4013890607, 3527949515, 1121668819, 3120750378, 1340282598, 1010154926, 3819457507, 4156025043, 1095098552, 3141604381, 3860355331, 271256548, 3303613645, 3337084979, 1305455034, 3808571410, 1558502719, 30348529, 4048698625, 3402166861, 1261371485, 3789207239, 851433931, 3505205318, 739521545, 656017605, 3006000305, 490670267, 3255029550, 2935750095, 3805300277, 273942501, 583272203, 2914366957, 3923704874, 3438458389, 891860993, 3931574558, 986181387, 1354166965, 749940928, 2788822069, 4264276055, 3424272626, 4057587244, 2560228132, 3510893441, 4155818704, 650660907, 4242911921, 248623353, 130947804, 351931219, 3517837310, 3159436383, 4262120398, 3808169282, 240004161, 1027587107, 383005649, 1406342201, 977884693, 903133354, 911221595, 4177735981, 1495156528, 967646217, 382711572, 33233921, 400873740, 3266506211, 701082558, 473217880, 3088246216, 3339767603, 4090885351, 3327785517, 3260734799, 1059265836, 1257783268, 149892378, 1056054009, 1674728476, 1339732573, 2971192143, 1429752760, 1261820731, 940300488, 735784394, 1660158036, 3758676932, 1422008119, 465903807, 4208266821, 3174838300, 3738719475, 910618618, 1414907962, 2852932653, 4008575258, 3100191194, 1208487590, 824110335, 3239375693, 3963036975, 2807486800, 721214883, 672864734}, + {867248604, 2874595109, 2924869392, 235655477, 768855865, 669587121, 3286312450, 2938826576, 1410134550, 1472288940, 3055079346, 13325598, 3527624657, 1071330311, 3437674414, 1356256516, 1423250635, 1579991282, 3155253015, 3067652111, 3309515590, 1170150144, 670968071, 3171499278, 300604617, 3123571966, 2885805082, 3437430190, 3704419022, 1037549818, 1027855160, 3404912295, 3439916029, 391464151, 3789660996, 1220001472, 1397337396, 3880211712, 1188156444, 1004195085, 491984214, 3502242054, 3772326647, 840254415, 3302183499, 777534975, 720490537, 302628159, 1471269567, 3554289205, 819332689, 368048878, 319440350, 4075506153, 3960585923, 1456915520, 592712721, 466747687, 4099468803, 3675248897, 282124543, 3105934802, 3191015403, 3442361114, 2889214230, 3809167059, 1095385545, 976539476, 4039298782, 820818998, 772291342, 3551344359, 3519237288, 3409246918, 516834248, 651274928, 1180125475, 3735960249, 3489600299, 3637786108, 507425340, 1257961155, 3487303388, 3119895531, 937757111, 3090346552, 213103094, 316935227, 3693619254, 498579416, 3350510076, 253168073, 1037290710, 3225617238, 901833474, 3033279572, 465703150, 4189460175, 3153966670, 807383615, 1391323102, 4024696853, 4163585244, 1631784656, 189597640, 162058923, 4030216714, 1339673528, 113493033, 1145259194, 425063649, 908898803, 1144789278, 3854106179, 4209513303, 3727708066, 3151152982, 3141877398, 886439879, 503273799, 1405683646, 1307168722, 1044692399, 421445715, 3390038771, 3587944786, 911496409, 1510229754, 4243639759, 70769619, 584602709, 3351253512, 2883328500, 683534651, 3776911355, 955731004, 1095609296, 2755654381, 1294808015, 905305890, 1297141237, 757672445, 4178492362, 2918533969, 3249349393, 3176421547, 2970934189, 758524883, 114360549, 922690300, 1001717938, 251086921, 635051271, 4240770638, 3287202498, 179901174, 3232712763, 1039449605, 3100164119, 4057431, 3829411059, 537613991, 3612532015, 181211898, 250424478, 1095750947, 737813248, 3168160558, 1425356780, 148763852, 3962120493, 800658953, 3937789155, 1210914006, 3638623810, 951509707, 1055927748, 2866529590, 4277410775, 111862485, 984289804, 3460359586, 525793081, 4154921570, 969667149, 357881528, 2951264485, 162664712, 1410553176, 3557291277, 934553905, 1306528857, 516946119, 1932468663, 3438789089, 4226481639, 992755274, 3875847858, 3518911045, 3425029321, 2868433957, 3201628174, 4031439175, 3371158724, 3668838217, 3001756608, 4163879367, 817552895, 3756874541, 570145064, 3092900117, 1008156072, 918554179, 3913926446, 556513730, 1101802021, 1125560098, 753197300, 4041786574, 3403002449, 671334101, 1429128244, 239092694, 1258952962, 1410617093, 3234410214, 3922841922, 3008975134, 3225867477, 398315093, 269220868, 649244626, 1191571112, 255459000, 1391389502, 3870956524, 822202968, 587803804, 986203450, 1006816614, 233746432, 182506431, 3471879648, 1322453505, 869474302, 962056124, 565116113, 467059912, 773595582, 3839185677, 3862634479, 1172229543, 1051772882, 3343377933, 1507277133, 3167473726}, + {3478643634, 525003238, 35202286, 524942793, 3154378577, 3706373483, 3187012948, 2970999029, 1444948263, 3189041109, 1479418157, 939180031, 1278039048, 3089942993, 3375098834, 1440361944, 2847349244, 473299658, 3070740574, 788843460, 3625970176, 3769262524, 223413579, 323683602, 3772554776, 3320759364, 3189306129, 704658511, 3890619921, 296990655, 1313915904, 2968108024, 4206242804, 3040673311, 4060260044, 2864136736, 736162464, 4228071401, 919287463, 3036657094, 911791340, 659363400, 474454865, 4040691705, 4122659671, 3503430668, 3592872120, 621103852, 417836102, 3403497267, 3605399338, 4107327991, 55065649, 535233082, 3998493879, 2956584244, 3762822635, 401005357, 2898596045, 4098639868, 4107064304, 3032858046, 574704168, 3829471509, 2855262414, 3321767749, 987439533, 240534588, 3389870656, 3319776748, 2967277096, 3822923582, 3085302786, 3586317215, 29110194, 1269381041, 566290525, 181583140, 3387350362, 3780501554, 98043612, 925623042, 3517596403, 870988583, 69736393, 383952115, 3401256206, 616480366, 3489473383, 805115129, 3176344866, 4244902399, 838456334, 3450738382, 2898722879, 1446971474, 440547300, 1125182888, 565038546, 2906777901, 69346276, 1347316478, 2937321299, 523039572, 3291486767, 4090951648, 692967962, 383968752, 3711500612, 3324126412, 500259053, 106384117, 2915888140, 3836750546, 48823064, 4065445319, 71879122, 330160695, 977612209, 3542618691, 500909908, 3526380077, 497561361, 3595912744, 367078637, 655495672, 2822692546, 3762998881, 1256165237, 3308633335, 50600742, 3790973385, 3554139191, 3132676908, 3579266320, 3120936275, 3756190712, 3292175439, 1322079931, 3756447733, 3116415452, 4276397842, 3223985660, 3271760424, 3575730789, 1405757658, 3961432928, 3711972628, 3306438689, 3752446512, 3920114942, 3404077653, 3888173745, 252915521, 3557628930, 2871473929, 2957014287, 1208735799, 47731539, 954975462, 3140729630, 3606622934, 3052418747, 659491647, 223935344, 3384236097, 3456901582, 3017195840, 772742653, 320922409, 3694129672, 1376399617, 1387324342, 3441890753, 590822592, 280049647, 3644871445, 1003353084, 3769979703, 13304602, 3373220280, 3051871934, 3205241333, 78144469, 4029339044, 206588196, 2815574075, 2832324059, 3555610673, 686639149, 773833771, 3744785726, 710207829, 3452315429, 2956417181, 1271143136, 1040725700, 1455029291, 3470202148, 935666916, 1058482500, 3847599871, 756505378, 3458253043, 4030587866, 3182959588, 1136854607, 419776747, 903074731, 3873441731, 3746419885, 4141790172, 3456911412, 641389095, 3221644304, 893525434, 2924523768, 3115128788, 3769489154, 263176250, 3042193089, 4193459499, 1219901448, 491774277, 702789927, 522374719, 2957504930, 1109593780, 3974708530, 703536601, 1339462626, 223849534, 302138112, 1153961527, 3661881115, 1179562959, 3677369057, 3708853789, 917576004, 3242290918, 2968389602, 3629653600, 265899780, 63982600, 1393875030, 353641422, 4224835528, 466020553, 466410778, 2948318390, 843855083, 883733310, 1094434738, 717703106, 3997961399, 3239439832}, + {3368240098, 1463534907, 557192217, 636757299, 3542022142, 3701547826, 4141150021, 131547640, 2920420399, 786513997, 420587571, 741483767, 3753599158, 1220823257, 3761683411, 1378639624, 1513613244, 390908422, 1325855959, 939904341, 4091463980, 534202658, 586413265, 909979821, 3873570080, 936591898, 1169558024, 1270739675, 3701986530, 717701433, 1823874300, 4038861369, 3137973552, 4176792353, 2732379690, 485025261, 99658985, 3561155784, 242477604, 1061092276, 853754185, 266578220, 3101158700, 2938873532, 598354852, 3551442176, 3237063722, 4156033286, 186967305, 1268731596, 618855746, 138229415, 113625614, 4273531189, 3824695325, 37955124, 900463406, 434183083, 1052654802, 3083341826, 3154715436, 4105310124, 3286844348, 3041263904, 439313159, 3641772760, 397128247, 1034438840, 3793170717, 736232722, 3288535747, 893138446, 3775727839, 640869147, 3493539071, 4160424926, 370274831, 589501383, 3150037311, 306753772, 3976069295, 2816530147, 4076079666, 4073856475, 10612500, 4047828802, 1474890566, 553437635, 2922266705, 3270983088, 1355690068, 624177715, 3318342868, 4214275106, 4158063942, 4192129595, 4148543300, 434561110, 1057872348, 3723954774, 1238610390, 658398757, 3031804840, 485353545, 100614609, 1406004281, 3069520716, 3054128165, 1525723829, 1436986804, 3258967299, 2834897468, 534164271, 606976470, 3141851117, 52102862, 2922312440, 1386162732, 272221751, 1112148787, 3574183213, 859448523, 1271516607, 1339541053, 290345501, 522988602, 3376234176, 169858500, 3991873996, 3219923793, 743362061, 2764714068, 4131129377, 3458403567, 4023434262, 336738303, 3124747175, 2763664042, 550655539, 853166828, 738900391, 1572946222, 1478512868, 490881773, 1027806964, 4013685945, 1107946495, 2786671439, 4138745556, 2950805919, 708763720, 3001097043, 1387526667, 3104754345, 4023539886, 2868900933, 1579202339, 3209216680, 937348934, 3824821971, 2955396689, 3942776044, 54735627, 4011109870, 95138266, 1414154503, 3930984785, 1473777333, 3889892523, 3771578595, 87575079, 4278055208, 4007920060, 402141145, 705371105, 4159593249, 987420937, 1303229162, 3819526705, 115473896, 3964031017, 3348678049, 2987181520, 1584408368, 2505492666, 4077442086, 3004162575, 337757420, 135462455, 3051873491, 3912739044, 1429793798, 960570902, 3528667052, 4233823556, 3825770930, 222952728, 838788435, 257364559, 3083091277, 3995879689, 365043996, 789523199, 4131082068, 552936668, 4294755651, 3154637304, 3523998169, 1457896403, 851376446, 757154231, 3843281092, 928002133, 3704105770, 3857315772, 3776710826, 3272682778, 4196678090, 1075510232, 3436205642, 3862681148, 749462483, 4273319244, 4182389952, 908526842, 3510947156, 3975078218, 3644545251, 4195193557, 367996356, 617339897, 3921481532, 2840805554, 4198715109, 1137114142, 3439568663, 19083758, 3239618524, 3555964349, 3764838471, 3623811548, 1327429696, 1126115022, 3409445314, 120339, 348628790, 199838495, 3618764303, 1471300931, 4228042993, 1615573814, 3441760227, 66395972, 3964822457, 3255711710, 867558983}, + {83313654, 909229278, 381111620, 238807856, 951209909, 4162863107, 3291003343, 3116180922, 3942468309, 3861516621, 2874666966, 839568594, 499577660, 1139940575, 1270882019, 515392768, 2880445761, 2616505026, 81790135, 501609798, 1498743059, 1103034457, 3814281017, 3973917482, 370004171, 988562657, 2982238251, 304415923, 269032146, 626465476, 969491916, 3420723670, 3349916661, 1480714501, 975720731, 539954508, 1509669850, 3756319151, 3031432200, 3778276900, 3638799814, 1307560452, 4006085839, 1120812341, 3996570580, 927933920, 3808017411, 1409039864, 636813034, 1345604633, 625667255, 801253389, 817431548, 2936729611, 1379873793, 2963851220, 738517170, 977580294, 348310296, 1174274280, 105599942, 735596248, 2788684103, 390066604, 397785098, 3735807952, 3602531151, 237713635, 3524505145, 4062432823, 100710419, 701148757, 672840105, 3034140082, 738701135, 4207990090, 354964942, 1205341399, 2870081558, 1508688865, 2847758569, 934933700, 717930208, 165544231, 1393932009, 1101904926, 4038922448, 1423904803, 3743734461, 1290973885, 3803983540, 1253165640, 969285721, 887943098, 2886082268, 3520343377, 3584800600, 1058188748, 3707192758, 938887852, 2824128293, 1278551285, 3258919982, 3322674399, 3119770919, 2948249049, 3828394804, 3789490193, 877600687, 3100551435, 3705206246, 372524489, 922202967, 3759201020, 4277189958, 3678291645, 617149876, 1058921525, 4097503784, 1019917757, 3527877301, 44829885, 349419230, 2873081133, 3705398607, 1346244827, 857417460, 934423215, 671792817, 3830785327, 4213024811, 3644908577, 3269346270, 3442521432, 995300430, 894521774, 535237841, 31109199, 3343173427, 3519467595, 3590049967, 4089380142, 624158756, 708131408, 70107857, 2619680201, 4042056692, 3268957139, 4038535197, 3686585625, 716568771, 692652289, 121691571, 12197360, 1303888628, 3243039933, 400439498, 3641046468, 3186362947, 784290382, 550960472, 3478438214, 3965199868, 433967889, 3299850153, 673111257, 3622052585, 3053630508, 3806780677, 535865945, 1464397004, 858972205, 3947115559, 3889046275, 2998466009, 3860508905, 1209141715, 682765108, 3854391464, 3459110441, 4025885216, 100971540, 306570814, 3873907760, 1121537364, 516280829, 3727551203, 1297282073, 3996108121, 3142335950, 1068950586, 937556511, 195602181, 3739542354, 162655538, 3543653675, 432861733, 65857243, 348670721, 3576873404, 3510028060, 436390683, 582266805, 3556050641, 970331357, 787922223, 4249633977, 3608761065, 3341461934, 1322014240, 2854369103, 4040337375, 3391540465, 3002381131, 927059431, 3763022390, 2815693245, 4148437476, 901062314, 1423163107, 1326187097, 1427297240, 1481527039, 3493602611, 971754687, 773902301, 200079296, 1108656147, 3424931153, 3372426207, 836699224, 3408524360, 2900868559, 448454345, 656393482, 800119593, 1188705241, 3255318261, 3622091013, 3671844079, 385103077, 251014664, 657000136, 1509813447, 735257901, 3720816591, 2848921347, 3434924556, 1262959307, 4007121583, 1138562625, 3217802153, 2819402446, 877279967, 84478215, 1006953675}, + {1138440490, 4223984842, 1460330020, 3493796874, 2907559685, 944815783, 1428937553, 3199098598, 1230721775, 3190758845, 3981051187, 1153259759, 1429989957, 3153323305, 3220594783, 1492450485, 3566455651, 1328758066, 3243095509, 3171415047, 1601163570, 992218353, 1070342147, 3789750493, 3591842232, 1482349298, 3841873713, 4163127889, 1126047924, 3105048330, 273231518, 4004917787, 954817510, 1371847594, 3525428153, 3307858373, 586351940, 3675129565, 3658560031, 839324717, 3568706046, 133870816, 4057537979, 417865767, 2697791764, 3695066903, 3744388887, 456531409, 4129555267, 625863472, 435352873, 3085575241, 36942622, 3459037153, 3424203075, 3956719682, 4041742552, 666025025, 860705017, 22027012, 1038077144, 951830176, 824180024, 910349335, 3544661326, 87344124, 4266579938, 4027778992, 4274782758, 3487194907, 1307225589, 1123474158, 3124882095, 4035332403, 3945145566, 1370206936, 4030417219, 436123985, 954927532, 3987652156, 3808823613, 3154572321, 2917065968, 1488464449, 619638536, 3643682342, 3959434520, 910959525, 953592548, 1152436400, 4005650246, 3186478891, 3199665845, 1291237829, 3288875562, 1228282948, 633457956, 469856986, 3963494583, 418528769, 785794614, 1699364323, 736474896, 3148422633, 30734636, 3473423398, 3025388783, 267770119, 3511757911, 2999323600, 455950649, 321014238, 465240902, 535124728, 2389294377, 1061218090, 1186531910, 4293330980, 3525726505, 3578180567, 1378434039, 3392211797, 1459416901, 552719835, 3020501526, 417929953, 1339278579, 3960163928, 172486554, 791762135, 3187197442, 3286039118, 1089684561, 1628576581, 1295975698, 657735192, 3024356116, 1160774078, 654908654, 363708660, 2968933859, 1193860341, 859769131, 3761849936, 1307773195, 3654072832, 1105091292, 3038514662, 1375355688, 2854992911, 805839824, 1113008917, 66513596, 574204213, 1110439431, 574628658, 1324551282, 1309588515, 536875693, 334504941, 1187384645, 34134539, 3802646058, 1262079709, 3977312191, 1112102654, 3224052162, 1124343562, 3976976351, 4081631763, 3216427817, 1037055982, 2956768979, 1524061932, 3837208889, 860603155, 1042147630, 1547284484, 182380282, 3551772083, 1001654794, 2781549464, 3035807167, 185229428, 3757105215, 986911502, 572523451, 517780270, 1190207566, 4080125723, 4194435317, 3222907953, 1359352043, 4283306551, 2982410723, 3304395558, 769456948, 4144511266, 3629586189, 2849177656, 3169056580, 1380330217, 1647103697, 3335279936, 216529232, 1540538651, 366530386, 2939104224, 3979158581, 4148820957, 3792686339, 3858843834, 33749790, 1388571886, 2913214822, 767735789, 1192898780, 3439653815, 3757714438, 3173647090, 609683130, 100083779, 19976429, 4211526413, 935445748, 877266138, 1710659788, 4020757533, 2938374166, 435040822, 3505395009, 3405358631, 3945418160, 885078990, 1379750987, 3507216903, 3808156091, 402265323, 3792912149, 534917164, 565365555, 977204530, 2581388863, 2969839926, 3713403690, 458565129, 939259200, 11728894, 306230807, 4105876549, 1240143191, 4015069614, 1455942645, 470677821, 1424438319, 3109334574}, + {2900678980, 535361564, 406471381, 1377588983, 4176017584, 2737714480, 218481919, 363467561, 4064800047, 969207035, 640277160, 4173263821, 1122173490, 1371520170, 806614978, 3619481637, 1297031475, 792905151, 672064271, 2986755158, 339482285, 389524989, 786118695, 222147851, 1008990142, 3210144963, 1354102560, 3269389855, 3679103149, 766524881, 1421665625, 3603418554, 3502484043, 3926935034, 1139780082, 196407507, 3876322508, 2806061396, 3959903536, 3875066082, 3838782031, 923347675, 3691722258, 2986882796, 3050238519, 3989631833, 571358910, 3103762772, 354726995, 116539165, 3977757708, 872427247, 1256114101, 3102267818, 705282220, 3393404933, 4055558645, 130685911, 928037192, 4172554155, 3250192155, 264566725, 4199686860, 816464406, 3619036133, 297999116, 3300272107, 3872536128, 4277875956, 3687516116, 3511095031, 1179857319, 4065074899, 84795678, 501346047, 1464148016, 3607348173, 3005867854, 1358157302, 2883300287, 821711174, 867520438, 758468414, 3325250904, 888126675, 4282709511, 3986464, 4280017706, 587384004, 1457142084, 4039714055, 3534895667, 4222569224, 3677341956, 1741141577, 992675295, 3543655978, 4131797957, 792087069, 320939797, 36568573, 3601346764, 2803022077, 1411830723, 508086186, 3206436616, 332090194, 167634702, 2865100455, 3142068564, 80009475, 1077393414, 1314384210, 3807204621, 800574278, 3327530958, 1459241232, 324552154, 3117593804, 3653580231, 758374835, 3239819070, 675796301, 1189745854, 1274798770, 1258309548, 3874830657, 776470465, 902039854, 3722259953, 103811131, 198775010, 3775616468, 4022215088, 2855011523, 3169828935, 1209975370, 3269917736, 3385006099, 1362740647, 3560558621, 3285172464, 4225227188, 3303340073, 452009914, 2631593151, 1123727369, 2798046417, 2838473514, 2949364656, 4077450958, 2887566079, 3074766273, 4021757502, 1026488017, 1110302141, 3928097032, 4098471721, 818294962, 1311360741, 556124870, 856110072, 890619449, 4293609659, 2485109692, 4143433198, 1507123219, 818809851, 3840212963, 2880177587, 771402316, 4173466170, 961551528, 1220824917, 2798867417, 183814330, 542710614, 3369486402, 1389347899, 3183917115, 1505673691, 1709246684, 4277719832, 1325968682, 3603216432, 624484861, 4028172738, 838158246, 319753501, 2970281776, 853485567, 3359458524, 1237196005, 1286609940, 1161027669, 1725841110, 883738945, 3668890612, 4281620231, 1463824684, 2796963777, 940782530, 785903434, 2933398254, 4265034975, 3508584516, 2923569206, 804585796, 1071977794, 1170847670, 837077079, 1543027431, 925448536, 4223665404, 1141574683, 2871535527, 3342474967, 3960008132, 665541051, 671212113, 3223586349, 3578182153, 4207485425, 4244195850, 2720988420, 1590962475, 3218152127, 489864687, 2914960561, 691618602, 3326170376, 3018441026, 972618767, 1141421352, 267657386, 3839775972, 1370536416, 3070807233, 626257912, 591726816, 3105149468, 2933799497, 1075039469, 3490251302, 404139446, 3822568520, 557531216, 1458693885, 987744038, 1492705047, 4127274685, 18609200, 766768139, 4244678928, 851820792, 3139365338}, + {4244420073, 4093245379, 1310178489, 3274985459, 3376148825, 3523037176, 4193702729, 1193981095, 3861556498, 4057838352, 3360771762, 2948704762, 1478016757, 66863611, 2797012535, 2985512879, 3441354975, 4126940480, 1163911434, 441008059, 1590432506, 437319101, 168018642, 11286201, 2768718635, 493440426, 4214703116, 4250125778, 3925322420, 706953826, 1625561301, 3540073755, 507587554, 3234255549, 4215404694, 3773913767, 1134311630, 3254002874, 1084881433, 860428339, 97565630, 1431618501, 1143342617, 172683728, 1408959784, 324202000, 20688929, 889446162, 305616446, 3006799553, 3792127060, 3126191377, 892491471, 449424060, 3007780853, 251999049, 402915925, 624078634, 216706710, 1540737818, 4258487824, 1667510268, 824004072, 828698061, 2951099145, 1035669009, 4130531347, 3107453255, 4113454928, 3856420162, 2839722553, 56964568, 3153771552, 787688179, 139416048, 1043186392, 1055270714, 98897728, 538036512, 589228460, 2867343374, 3103215803, 1422175978, 3042063146, 868307490, 1221926185, 4277543218, 4196667570, 1465374990, 101047221, 958991904, 888536106, 550821908, 89917758, 3172798828, 3260668939, 4094692633, 3993369941, 774706229, 3343644610, 3191189436, 1170800418, 808697768, 3654232151, 303018685, 3190412466, 3438695452, 4149165633, 1280138413, 3960392458, 676914087, 1437478681, 4160139031, 332795986, 4293144657, 961864655, 653858359, 1228138244, 3252370682, 4214144059, 303449405, 121425962, 2824450352, 3643916516, 3590989845, 452981475, 187097872, 137351887, 3403226657, 253733132, 622507457, 3193308480, 3385771790, 835768385, 654561489, 3017467113, 171372739, 3239947185, 403578795, 3979344070, 1413035295, 303505466, 3560637716, 1275420479, 571325888, 1241729521, 3043348494, 618448668, 84807949, 3291036927, 113595207, 435606083, 2830309357, 1003097060, 281409296, 3585821963, 3132109630, 316946653, 3787409445, 652943171, 488384562, 4063290430, 3910336561, 2858136097, 4148930781, 768822741, 1206134227, 17899468, 3676696143, 1498168785, 2806954000, 2889086717, 3690795530, 186396493, 893245953, 520881834, 2974761194, 1240288486, 1228690257, 2939301817, 29167801, 1443049153, 483396893, 4274472139, 4174734873, 3990733344, 959524392, 1255856977, 1460617939, 1157874019, 2952020482, 3894015966, 1391540030, 414173112, 18092244, 433646023, 123404284, 3306019407, 535113146, 3669166000, 2907103052, 3265768009, 23399962, 968668165, 183718605, 2856073253, 3691897039, 322380573, 199241980, 468730896, 3585347050, 3504975566, 4020877116, 1156496674, 2997702452, 3121594047, 3302096386, 3836600007, 3170784290, 3476303351, 4265001304, 902913232, 1208229387, 4110811167, 909765892, 4093177133, 132311554, 851127275, 1089146155, 3139617725, 3640408829, 4240614916, 735597741, 3737847800, 2763702271, 3909760248, 903786804, 1429322276, 906182976, 1354251561, 1457437273, 163447832, 2915164191, 4123484121, 3945091368, 3593017589, 988884262, 4211758537, 472333075, 739829250, 3808939964, 1196757592, 3340821931, 1270813900, 447501935, 3200365009}, + {1007503434, 2983530733, 116058892, 3977310711, 3922484820, 2860921361, 1306074161, 3874756806, 1389824956, 3471845693, 4279764020, 3843105038, 3856796949, 1135985214, 380917802, 218819665, 268318275, 283253487, 1889466111, 686614458, 3971296060, 3647396926, 3024740561, 51452916, 4231791861, 940952392, 3275874557, 3660661241, 772194758, 20887615, 3753526590, 1241908994, 3842886101, 399248699, 3789305376, 3170430753, 1711885598, 4147297877, 543814250, 3306676932, 686343740, 4124881590, 2889636095, 46940999, 3651854837, 380558353, 702796731, 1442168998, 11204089, 3075142362, 255939651, 3860276974, 4011938515, 2934567216, 1354223427, 1034669267, 168775976, 4108784916, 786813382, 48035620, 3707898073, 35320008, 2721459245, 1128638638, 3623084482, 3369425879, 4072862686, 338946053, 522460640, 1509959360, 45809936, 3669769792, 944002786, 323426541, 1009008699, 3931367769, 3204531632, 3841463863, 2934306000, 1002023426, 2880763112, 1057625363, 3518765592, 133159861, 4111024954, 3086617345, 3017613326, 4191606573, 793429990, 3407042118, 186897378, 1001798882, 4278706471, 703935807, 172506623, 1090860600, 150412580, 930293499, 570040744, 2821040181, 320593864, 4191175490, 944093703, 1472923968, 3758169508, 204989973, 3338025643, 506454261, 3570859792, 1670268383, 321833296, 547247816, 1395475120, 833477580, 3743702039, 588115251, 1095191037, 3792977423, 3994289168, 419013630, 1040729775, 1209222160, 3570791103, 709819586, 737879997, 3155309120, 3611047764, 889645219, 3642162622, 3873724166, 770946740, 827783183, 756300721, 504694291, 398392073, 3092429786, 468566214, 3620559631, 3847770374, 3472430565, 71363581, 329632998, 3908518599, 4040935986, 850183764, 2984332458, 3055308829, 4105513251, 3506235955, 3808345805, 3957018184, 3653633299, 3232414919, 636201240, 4198751753, 3123592538, 961962826, 4041727320, 3472380215, 3220386025, 3048339167, 719326264, 1280258530, 3372668486, 1646812165, 1476065026, 3872609050, 1056755117, 3991002308, 687067150, 1296089064, 1407269188, 4141130600, 4138086482, 1421607896, 3266237759, 253606398, 3102817028, 3455374285, 78923486, 756266566, 3323272111, 1259383571, 607648293, 3721768962, 354471414, 4158479657, 4275155380, 3772067860, 3166685642, 3174023226, 4283642627, 951784711, 301538034, 4045782319, 871770662, 2967288041, 4196994631, 760681426, 895958718, 1256864821, 2091826, 3234454017, 4080600897, 1061312335, 4078350126, 3961068795, 3695593796, 3551150826, 3941848608, 4229299678, 1055011050, 3607448512, 1313686091, 1109475617, 792541213, 945293871, 3893044948, 3087263056, 3796036603, 3611106494, 3017394699, 1227422457, 52645371, 3611506136, 590665790, 774315156, 738720739, 4091433141, 958910746, 3787333899, 64102957, 1471744988, 768144169, 3391105751, 725470289, 165678849, 37807311, 4244499410, 4061658585, 1245172970, 844483580, 1155396380, 375469405, 402113523, 440925886, 1195631386, 3803236655, 3158527214, 1873924864, 3972543289, 4165058764, 3156853695, 3176903429, 3042497095, 3692447652}, + {3693591215, 760012886, 952282849, 582041595, 315174312, 2409429608, 1439436122, 889797866, 129694039, 3780124602, 3946008548, 335547107, 3953661408, 3086431699, 52052487, 187495862, 4150058050, 3809998022, 3772137735, 1088806641, 900806884, 3999252461, 483707067, 386348327, 15210783, 2870293228, 821347536, 2897355811, 1146506460, 3082358536, 420597306, 47159, 1236283658, 519650403, 3584947028, 391591757, 103011524, 1226069698, 3695852073, 3357009611, 1161030910, 4173781511, 1119957435, 179388140, 4044340651, 3719893798, 1125401401, 405929028, 722946302, 1205988156, 3332841948, 3737570278, 34130673, 631953148, 3308716777, 1328598583, 956351994, 1021921223, 2785547791, 1270471181, 4012110070, 1125380353, 735517137, 300027132, 2884022343, 1436931628, 3540706524, 402277298, 474368512, 1288682079, 1336594400, 1102096879, 3628787759, 708228594, 32986720, 3862080530, 1057948992, 161952695, 171303670, 1089986534, 3612334146, 2981477437, 827742238, 2972956134, 1235941067, 3374641476, 724714081, 521548386, 923262912, 3119183658, 3359584256, 3692941258, 2902251238, 22289166, 1290421173, 842073140, 705376301, 485289454, 3796895927, 3869984007, 304369425, 140252321, 3589543616, 4246072842, 3863171160, 486670550, 1279534053, 3584743653, 802216782, 3388163654, 3644308722, 502782508, 2902466751, 3987755246, 4178713281, 323420738, 3302216617, 2672547684, 3926763790, 4289255179, 139574197, 756886999, 314262360, 296604853, 1410671657, 3306632986, 773336286, 877900277, 381501521, 3102562604, 3760534546, 4225105485, 4176750359, 3789489134, 3673050086, 3219252260, 701750754, 3839809518, 4289508689, 273607947, 924586931, 3806721106, 333778219, 732818357, 3359766083, 883431757, 690428371, 298724927, 3957672401, 903201973, 1448605692, 3861515235, 1255819088, 399420839, 572305064, 3510774714, 4282654245, 4113813558, 4231599079, 3460804026, 841660682, 3578924212, 3502721507, 2751006951, 220715882, 2866286314, 968224943, 570668516, 3872605621, 3108043360, 3209628733, 3941445659, 418038782, 2968202170, 4284075038, 4079137729, 3813014576, 3920252339, 574744371, 1061274931, 2837389346, 4162128173, 3484090325, 1644385500, 4177019560, 3238704717, 1531388186, 215018331, 349106689, 281813438, 505823572, 1145254712, 2804461061, 3205622468, 2958080151, 507003621, 402966730, 855764289, 1041846531, 4265794834, 3477137941, 3343259864, 1002123284, 181785416, 1457504845, 4193734747, 1254949215, 4125438125, 1507707418, 3015823072, 323498583, 4056333897, 621222112, 3303819290, 1179181085, 911554245, 207275250, 199207510, 272623629, 3620582880, 4166054456, 3092627933, 1295828687, 3945935574, 4279877470, 465131975, 673537763, 3928284353, 272883935, 4191484183, 451013407, 465193528, 574887692, 3040355601, 3926983611, 188765011, 721011249, 3432985959, 116727900, 538584318, 369352216, 1357963713, 3965572791, 4082390469, 3237813039, 4022905174, 3184789755, 4198177621, 3493324085, 833607466, 3064262406, 3494258389, 3149743023, 3741078717, 786782148, 3821525236}, + {2865686819, 3367161078, 237324043, 3343317709, 3794885130, 3337300644, 735135245, 3034917405, 3775199494, 960485980, 3873699074, 978648919, 1037038531, 1091833946, 1093413404, 3282880693, 3787184363, 627700517, 570053357, 3543145798, 516060450, 660532947, 3310344699, 4259125052, 3118587987, 1330506010, 547872700, 1539117327, 218967466, 67308831, 1011137493, 2940136613, 146202556, 1011490354, 2954161109, 247742730, 1528579639, 3676128237, 641418676, 1371204877, 3422528807, 3153074389, 1024800446, 573721109, 3955819473, 480903483, 3221800382, 3976615420, 1758444314, 3943641533, 4058511950, 2934625584, 3305108739, 4131320618, 3729440068, 3730382333, 4007867843, 215618269, 3639650782, 3087657192, 784057015, 918796458, 3758874630, 3322284531, 252523729, 3208980210, 3786198250, 4225635881, 3383672353, 3673014547, 4293061645, 3120485196, 995416048, 1086560625, 3492826170, 3938863341, 1287712436, 170666569, 1289819608, 3591000014, 2924223289, 3219209536, 3259235751, 4155250742, 750855205, 3605460009, 3284027474, 1544156588, 290181437, 4108758312, 164564685, 385698530, 299908878, 3338814700, 1021042190, 3260631759, 2898941404, 136511161, 4105297405, 3862776090, 4122492097, 342350825, 958539572, 121900626, 1528108717, 3458200293, 289127603, 788199203, 1396391743, 3526748675, 2864590060, 4224274645, 690239429, 3405066698, 3202089401, 604495209, 3745107526, 4127276352, 149826730, 3926980425, 4060539685, 3119756760, 3198949056, 3325950150, 2857703900, 3558165560, 47594547, 3686668273, 3091128025, 1119770697, 340743363, 386775007, 968546795, 752789552, 3117657096, 3836946954, 3151038286, 3770220248, 49543211, 1037780269, 522131525, 1305103650, 3457504034, 149007535, 3370734000, 272125174, 3457307203, 335092021, 404085759, 3105730134, 1026157242, 1396117685, 942872030, 3037920825, 3914552748, 2969947205, 1103028793, 4030607915, 2887662338, 3474576105, 4078711748, 668791487, 622739921, 3421826373, 3909225899, 4023706046, 150689725, 1112078897, 1017595866, 3642207490, 1405036822, 3475981232, 348522824, 1565122852, 4274907189, 234428168, 584071601, 784538453, 22726430, 3199904744, 722331387, 200735706, 3942268417, 484854348, 3959623752, 206163029, 102745393, 1396628286, 555686328, 1423102688, 910889181, 4087917870, 1060976097, 1896194359, 354759810, 149956002, 1528241206, 3411082800, 171240646, 1020533325, 2821500193, 1393030932, 585680953, 48634846, 588829527, 1247499285, 3519137496, 1411060454, 81250518, 2870557233, 3165331883, 3107728886, 3238456244, 270016997, 3659835927, 164319958, 4061266434, 1153808400, 3469170447, 824461828, 774558524, 3879425359, 1357601067, 3706142440, 1494430246, 2714025796, 4281708321, 584644576, 3307932433, 3762872639, 2856239936, 1423106725, 487206704, 3470667020, 50805723, 3158027092, 690955457, 1174607055, 4037785345, 3880067601, 874125091, 3796623150, 3461233068, 37703219, 3795384086, 388809959, 2882797338, 347228480, 4181192752, 3536170794, 1085622115, 106164172, 3856544936, 3275532714, 1515600102, 1275860446}, + {84620116, 1126769613, 1229592768, 3337693186, 1110435867, 4145925877, 2949819078, 78458628, 531047171, 4028426302, 2872424125, 3159944396, 508497080, 1120421581, 873453765, 3892632386, 946063078, 1026220117, 3891605566, 403591945, 171994354, 1275796670, 79443915, 3797547754, 431692799, 216458304, 3770488877, 3643359531, 3258100213, 3921567237, 2865370641, 1202271834, 3668252920, 4097842156, 3726970679, 2982395909, 867111714, 1337016396, 3471839490, 2375686, 3003723197, 972627717, 1221205683, 4161860357, 4039256533, 1322627893, 1278858228, 3501074483, 3591769060, 975198686, 357742502, 1037618474, 1177701956, 641462750, 3137670568, 4047260914, 389415644, 4007937997, 3236709891, 3354315029, 3036485600, 240534997, 876425924, 3838910209, 1188179765, 991502882, 1173012186, 456316468, 417349331, 3589864784, 3035172628, 3487415306, 4233188106, 3219664339, 1010609699, 2837919040, 608554197, 3586576303, 1465006652, 2886158681, 1008468245, 3437877719, 717465378, 609870124, 1441518782, 287390951, 2914592293, 3751804894, 4144580270, 3858246345, 1495583262, 1393613772, 909128255, 3436705343, 3809934774, 891108410, 1160201718, 3605710504, 3755401922, 3067026857, 3283500715, 475279136, 3049838525, 3444489650, 919859216, 129751872, 3087741139, 472069710, 988087763, 3236318628, 2853229651, 140485377, 3071474765, 297219328, 4023783205, 950536756, 3662101484, 346216502, 3135166284, 3922728723, 851098056, 616028906, 3519554086, 434909616, 4062641214, 1329014837, 3658983658, 523114162, 154008286, 4276229328, 3989183486, 1074072560, 3721933575, 3790534318, 2985434413, 837682603, 1509574138, 67652419, 3754345161, 3120082245, 247906231, 3443608838, 1191000574, 3299734185, 3780499176, 693577204, 440190379, 3369605713, 533783250, 616087524, 1111040744, 1410663118, 2850821183, 3892037678, 1005456899, 3662531920, 3730163908, 1377877162, 1415135255, 2958557735, 716816163, 3282773028, 698925120, 1506609434, 3285301512, 676772362, 3685473817, 2918336237, 282509302, 1339905450, 1174480902, 3218295577, 3575308746, 919528663, 4098104140, 940177105, 467423283, 3803776317, 3758051658, 3588315623, 4293987573, 1707789552, 3233995739, 105982212, 1028958488, 3587764262, 2913884476, 566039719, 971434032, 1592018704, 975513417, 372291809, 2991527226, 3926345718, 3687316290, 4087954943, 1375033306, 4113498366, 3503289114, 3745624247, 3237498054, 840875311, 456656197, 1123664854, 1428941539, 3002601491, 1094839473, 2913971975, 1057685310, 221130532, 3001815595, 953879218, 1548155403, 416213490, 3417442064, 3861774086, 570040774, 1043156692, 659891938, 872983798, 1324417347, 4294888779, 282857679, 768927263, 1373646898, 1245392562, 1727281610, 3880241461, 4205033916, 4193205722, 3121597702, 1178446321, 3821087158, 3877435406, 555045633, 906838542, 4216795992, 3504536258, 122047758, 3172200435, 1222987692, 987512659, 1173732670, 3947646945, 841499402, 1289951725, 4138321969, 686231211, 704564030, 1463813569, 3722057158, 652794154, 1477586408, 3930050511, 1495407610, 3668973318} +}; + +static const int W1[3][4096] = { + {3691906799, 3945451969, 64218307, 169799927, 4229566221, 4027057885, 856230663, 888147192, 3926850611, 387578159, 301409599, 102754022, 734013190, 501488893, 750973235, 4294518553, 3018843128, 3643605566, 3573426220, 3255247853, 4110683703, 3336647176, 3288129801, 3172864257, 3021408998, 3807901166, 3321359891, 4192531233, 3559654896, 3841794545, 3156026915, 3220311817, 3290496044, 2635922735, 2449225276, 2681671187, 3928681748, 3456115980, 2985166650, 2984455942, 2783387439, 2869688331, 3692494377, 2637111005, 3274759902, 4175761117, 4029419240, 3356556574, 3709799157, 4174776811, 4045801172, 316925684, 690348580, 337635038, 4242346538, 554442758, 3907786536, 184166371, 702344663, 4143252470, 253958891, 137100509, 467404817, 640211942, 738722264, 383256069, 249244162, 4062192629, 672201451, 32170471, 287377402, 4044941542, 635320289, 216982018, 637403857, 669439490, 4007127053, 468314358, 81923047, 4057983008, 3844807393, 420227372, 4260370940, 3593075701, 4058259939, 132970455, 569125635, 651551005, 437644537, 4293262075, 4196981223, 585891821, 201006045, 3470845211, 14342903, 3575381776, 63254490, 519165149, 4191163916, 67295688, 835909630, 4009229537, 572649731, 3726448665, 4076929267, 4196661268, 4096270075, 250219790, 3759348980, 655099895, 4242738958, 219406344, 3773170150, 4158975191, 655562531, 3809535193, 100596252, 4192534047, 18210839, 250863393, 3808686855, 688655319, 253497057, 3575783433, 654647314, 419948055, 369564663, 3975999976, 64621801, 601886451, 4177798138, 4124973546, 570875872, 3990299939, 82964732, 4043515624, 3658550057, 215810058, 118757150, 3623161571, 3774423585, 3723158281, 554359814, 656208902, 3593198119, 3557948963, 518453728, 538636332, 3726178070, 452855294, 3272740069, 3403804720, 3654867478, 237433373, 3990224399, 3741119775, 250140191, 371193116, 333375961, 135004430, 1091964630, 1260903380, 1210320096, 152439292, 721223894, 4042916849, 134009322, 703060928, 873994514, 874125347, 285870318, 4247709956, 636221742, 4177074755, 618596882, 568734981, 84028669, 3811455506, 3504603459, 4060546347, 3742817252, 3167237160, 4158925586, 3305577224, 3772444149, 4180471815, 67961085, 3202815212, 3942319847, 3657307388, 4158653731, 433849342, 118086940, 3893178862, 3407546862, 3037529072, 4158991145, 3037060339, 3252292169, 2884252414, 3474915831, 4196606263, 3217824537, 4043516433, 4058120420, 3509455321, 3911641801, 3119503873, 601630166, 34662880, 137099771, 3707049189, 521612322, 3876315368, 603971320, 3742096411, 4028428076, 3806205432, 3945404709, 3889363168, 4276232688, 534191357, 115275750, 4108637959, 3592871437, 4045857779, 3705348077, 3925610792, 3457689867, 3959557117, 3470863916, 4279036161, 4208863246, 3588613916, 3957064722, 3726038562, 287040514, 4060928462, 221705993, 285943010, 63888119, 552142559, 1024320982, 4277803966, 150078486, 254919667, 88279225, 876667836, 184816149, 3910927630, 152099608, 4193125098, 483269100, 130165012, 199948319, 201795850, 165937903, 4294828545, 4092181460, 4277983936, 989970190, 907211480, 168816607, 954720777, 788462092, 306842348, 319476445, 322164698, 80932103, 3959217426, 3924295705, 332463117, 353043168, 3960668849, 991095249, 805706231, 120197340, 351134722, 150857968, 504429323, 403495987, 487645481, 16840505, 4212920556, 4294775055, 162930508, 650907698, 285347093, 3390505478, 3019248197, 2447118395, 3223134728, 3676890335, 4159248391, 4242085405, 4041532682, 3621851603, 3391956477, 3308507395, 4247527686, 202252545, 3438418159, 3943900950, 4061476095, 451403550, 4026655979, 771623124, 403431188, 620029651, 17702136, 451878942, 301458928, 521145850, 334237925, 3624271407, 218115863, 182850823, 4242218987, 4245609780, 553712695, 203030775, 656597997, 417397693, 1039453142, 1191378920, 217175489, 855706609, 687924738, 133230125, 889527545, 285344766, 1255878895, 670307906, 367391523, 1155148066, 50465035, 3876115939, 3693607471, 3827438575, 86895893, 3759924519, 3525713439, 4078893619, 3524655355, 4012178713, 70196725, 3757833965, 4193963533, 334564100, 4011073286, 102499284, 3743277838, 4263777487, 1059518653, 587648450, 4143367650, 4245016073, 539873990, 49214150, 367727296, 284882984, 904792848, 389275401, 402720802, 96603409, 515365426, 180673074, 804062458, 3994487820, 3759468800, 668921892, 3706660334, 4279437320, 4158788328, 4228915713, 4276167162, 4163312405, 4145804293, 3909757167, 685905121, 3826517501, 318169849, 4012105439, 467791375, 3710506967, 216728807, 4124310520, 4079146979, 148562469, 619049234, 198834695, 640283896, 3541757956, 3828412392, 401152014, 150801437, 85074160, 4195408400, 605675236, 3625724187, 134343944, 3755797267, 4245091602, 7704, 120251626, 3722388268, 301794283, 3793030901, 4010738701, 418190370, 3907000293, 3659721497, 3639608308, 3878749459, 3690789904, 3506708183, 3794337521, 3340178415, 4229295648, 148564462, 3705805583, 3943237671, 3240047595, 3352686861, 3859146770, 4043976418, 3890549741, 315759835, 68543003, 48570906, 4061468961, 3929331961, 137045782, 3592092162, 4278654711, 151315241, 400162329, 3926266377, 466944743, 4195217195, 486793218, 3609006577, 83434284, 352591596, 3607505932, 720634605, 166854440, 181985257, 4275446814, 153879051, 4264234973, 3828143391, 4129818613, 4229358865, 4040689629, 3671336456, 3994692380, 4177205536, 3789615586, 3995466000, 4009222927, 4059370006, 252583404, 234430217, 131462880, 3004771869, 2801986307, 3844469543, 4191890417, 3322940956, 3217561117, 2802980620, 4142924060, 3794531615, 3540513000, 2818443994, 85467415, 53878279, 3003058967, 3287013366, 4174108959, 4040683540, 369814526, 3724269266, 3705591549, 3677806044, 288297454, 3791642893, 702998541, 69335545, 656875483, 418188262, 3978486266, 4262591234, 3473219394, 4078697511, 4225964779, 4177398026, 4160685100, 927273, 4163759910, 30805213, 315948327, 202054647, 3739219946, 370864368, 168680706, 3524466149, 3487425001, 3859342828, 4028828921, 434695704, 299227367, 1075316730, 941946591, 417132048, 521740267, 824641548, 3941587971, 250143949, 1107157750, 955251502, 4113486143, 618990886, 336607744, 385361475, 3940155947, 4175424071, 3537691895, 3369266948, 3222076955, 502533643, 385263324, 4226286572, 4192265471, 3642741521, 3439386896, 236163091, 4096856346, 400748844, 3474001176, 66765077, 3540380683, 118023433, 3940030439, 535357424, 1642721, 3943626758, 3839632396, 4095933728, 454093549, 535501341, 3773692429, 4024308477, 521075240, 304616473, 3959956991, 3860332569, 567806491, 539434998, 4229683914, 1259327690, 687341736, 1292629931, 772274144, 1125316071, 1359018443, 1157415416, 452274165, 1340339203, 605997869, 204278284, 766912010, 470153983, 1137373714, 567871785, 3978092569, 4074040029, 990959833, 4145158368, 332720088, 875887812, 132316885, 572706279, 804198159, 387834924, 3827039272, 4177592096, 3873974004, 504225064, 755105849, 818936362, 181278150, 236514793, 302780610, 217567474, 4112712951, 4213892050, 4144624132, 1107219655, 4224988695, 722396693, 322311208, 1122705701, 4093260270, 32051256, 620949831, 599669569, 4143312400, 651897096, 269232073, 417143805, 3940616185, 3826646294, 4261866197, 3371364385, 723577613, 3878366481, 51060742, 3775461383, 488633052, 264969252, 604975911, 17034990, 316935667, 86118885, 888739062, 4006874852, 4091536891, 691335676, 623705841, 4163052531, 400106773, 3741179441, 439473148, 652487406, 502673944, 3873251828, 3907723574, 3874299921, 3806526754, 570288622, 752211143, 4209446643, 652162024, 3622313945, 691261734, 218176776, 3790216156, 702612221, 4178129643, 786508827, 3777356313, 366865698, 133890032, 182973159, 168043502, 3991526913, 3738505445, 216604896, 270335261, 3541573651, 636818644, 3777690146, 4178318876, 4258864412, 100210712, 3874940124, 4212199945, 3693149166, 167715617, 252243174, 3926335016, 4192281651, 4008769326, 284494834, 3659012644, 12289, 3840799029, 3290038513, 3492612564, 4095086051, 3372997635, 4127662307, 3958647545, 3371637467, 4011717357, 149155594, 485298462, 634791175, 368043253, 184160013, 4212123385, 334237729, 567811801, 3891470622, 470472159, 3875141610, 184619038, 3839896606, 453769769, 468839922, 200138975, 3693408293, 585623771, 4179091992, 169745362, 3540713987, 622786523, 268622841, 149684756, 4159964696, 468980722, 270589986, 3691457786, 838412547, 253568246, 3840277785, 170196224, 3723096032, 15726850, 3072403514, 2920619017, 4160816146, 3542101994, 4011586322, 3741837315, 3104772661, 17163776, 3255702767, 3256751104, 3034719764, 3454801376, 4277863451, 52430064, 3322080249, 3790661660, 538451474, 3841335256, 3755531266, 335599573, 4043188194, 503309025, 237433839, 537720579, 218372630, 4108379415, 286331929, 4244639775, 14406919, 518782172, 550961680, 571415484, 4261863404, 202697723, 771954401, 100732708, 3825721585, 353106389, 4249409546, 1074737945, 3909224225, 3856192786, 33893139, 485496328, 598925600, 4293207096, 822283835, 4024108023, 218813450, 132701734, 64339245, 3876580337, 3858218225, 4293787415, 187364035, 17693212, 4177648924, 738986715, 255193833, 553574668, 722533108, 4110952230, 3658156510, 184814826, 3656840733, 4094297374, 3690013711, 4112574175, 450633465, 369565972, 501536257, 3878350589, 354746141, 320858854, 572454419, 4264232413, 3909551326, 3856277518, 3843433967, 3891537132, 349107405, 3755342030, 4229099001, 3374905643, 368434678, 877645808, 4063561997, 3922919946, 4192806182, 724489521, 4179174193, 3558541573, 818291203, 4024969539, 116202255, 4163358217, 3845848369, 3491429646, 3676769760, 98380299, 3806515963, 3842108150, 3757966646, 470619618, 651308324, 4041945324, 3605018919, 3924557847, 756535603, 133306921, 3840941592, 3290755353, 3291023884, 3809804316, 638134225, 3036086310, 2683515691, 2446146367, 3608815639, 4060291362, 2765690165, 3524074037, 2900286226, 4230077487, 3523805184, 3155362802, 3706853065, 3440125946, 550700019, 504813571, 3722846437, 100717810, 321444345, 3709731320, 233374174, 3741851905, 3437887794, 3793999914, 3658537243, 4108708594, 569569751, 103020063, 453517808, 689959209, 4029029892, 4243117582, 187227133, 4145862111, 116198643, 4144419567, 4248031254, 4143915792, 3588105176, 417410296, 3654885633, 569117949, 3759209225, 4261094904, 4078311725, 3706522408, 740564754, 3807643350, 570691055, 47515673, 3961121754, 489293801, 3922978823, 202639583, 150591264, 421728228, 387389708, 689703395, 501148969, 3976717046, 3588561378, 973671148, 4124497410, 587998443, 450433288, 3405393385, 3674011727, 3878096942, 3368816450, 3807522018, 2784965441, 2983075362, 3085438756, 4010995219, 3654686702, 3974560997, 3992254418, 3554741744, 18947113, 3877188146, 2901140251, 401873126, 3321889328, 3556965416, 3525053207, 450434317, 216986381, 3774885149, 4011068401, 153683207, 4160948765, 3622963930, 3190039078, 1276187127, 216471791, 266540245, 1206578646, 4196726727, 1076429323, 4277977102, 103483647, 349496823, 1059658737, 4046125369, 4246856451, 369506875, 449912061, 770832656, 1141779514, 250404626, 554438639, 3873173757, 3974683092, 417010468, 753943020, 15014644, 3737512995, 3254397956, 201774, 3795045859, 152315932, 3622039805, 3738630393, 755756000, 401799188, 4179169291, 4075162893, 421003028, 3674727975, 170712071, 333837850, 68281626, 3623680212, 319679721, 587206630, 3860012054, 605032948, 703719709, 4111529987, 4094367215, 68886000, 3757370091, 82246678, 735973645, 220847614, 3590516446, 4059159289, 3693014233, 790493, 3675399433, 3605065239, 3740858599, 352914644, 4229235989, 503905285, 370798340, 3773625329, 888407041, 618913020, 388488442, 200999115, 4008634878, 166065108, 18667997, 773777417, 285737770, 3725656556, 3806973479, 283063850, 4107405076, 3791196734, 4144104227, 536481592, 637402111, 452852450, 3772511711, 3709524471, 4176673824, 535436809, 434564351, 4143913740, 18084309, 3656373742, 485818405, 603323363, 116513043, 4242471953, 16904220, 3705394677, 266987549, 4095341360, 3924365862, 167323646, 4229832708, 3758821083, 3523343344, 118036204, 3558801189, 4293333739, 3441098526, 3674211857, 3406689312, 3626835239, 3789159700, 251855826, 1104735744, 4042135297, 4191357453, 3539860727, 520545531, 4061587420, 4096193478, 3946636262, 905182448, 724624934, 3841923583, 3439853289, 3891278843, 247803919, 450888185, 119205913, 804332507, 522708424, 1006894015, 975768338, 1076101576, 893122284, 907672596, 941028588, 552079383, 404684568, 4244638501, 689177603, 65544761, 686821914, 570437130, 50012447, 3675989796, 4024686344, 3958100941, 31906076, 18079185, 4193839878, 520233193, 690812902, 572912874, 3892249364, 438182411, 14232541, 3558209837, 3707371552, 3457750840, 248913903, 3990738962, 3994875930, 319815664, 3372226084, 4059762976, 3725068776, 3893631269, 283828708, 3489128429, 421466572, 370808296, 199422221, 3641452057, 3392462820, 3492664590, 3340510197, 83954695, 536486943, 667950873, 99280124, 3574992385, 652486947, 753076244, 403706061, 669844504, 3590513121, 4094950414, 3606829845, 4208276228, 3906206003, 199294180, 4276761620, 3340230388, 3825070100, 4162978581, 3573544483, 3725865005, 2615862806, 3591374864, 3737987330, 3273592311, 3056465942, 3659986972, 2933121532, 3554937305, 2900765962, 3255967707, 4075812318, 4090883030, 4212585478, 333978087, 466950417, 217977383, 3738836192, 3878292231, 287843347, 4059754475, 3775342371, 334752534, 4012250127, 3857380622, 588715558, 4262007063, 434961655, 218048033, 4061848805, 3876329210, 538106639, 3674671872, 370224373, 3976472823, 3641108261, 4025477893, 386333734, 3626168338, 571410204, 4074838522, 736427747, 3559118625, 182248164, 385482020, 234038002, 232063243, 719123426, 3993500169, 740021742, 534439447, 488122331, 4043891193, 652617259, 3724664618, 3873236734, 118225147, 401025039, 724367107, 4277544424, 3705800438, 4294438696, 385684498, 4280164641, 3487963603, 552335347, 4025215717, 489477858, 231661062, 3710125612, 4045728730, 252256469, 3973914084, 3659012868, 4010086177, 4227332329, 4230279431, 3957599764, 4075165682, 266807327, 3524918289, 3720541197, 3422884667, 151588103, 4194168583, 4059105068, 166536710, 252700132, 48305638, 2497233, 3508007618, 4259383579, 637981956, 170334735, 4260433151, 236919773, 806090777, 3710585868, 371515114, 3727225077, 486280473, 621663745, 4008124648, 551294446, 521142045, 3810849534, 336133430, 3658941720, 150997712, 31853541, 3604349657, 4229624104, 687200545, 3859484448, 4264358641, 4293069338, 82896880, 32956941, 456726491, 3958042359, 3574454556, 3876990458, 4228913898, 303170268, 871307773, 854134744, 723514382, 131651314, 886905827, 252497378, 4177265115, 154471438, 522195259, 316149271, 219405104, 4044167714, 304096229, 404484597, 3891003182, 3405775665, 402849826, 3840736224, 2108421, 3805882600, 199088343, 4261541881, 68359702, 369504041, 3557613297, 3406097969, 468982288, 500173060, 550825502, 135994858, 149757699, 4163763221, 399893007, 639633877, 3978039284, 4127130653, 3642941696, 740884973, 4144951335, 3859226156, 483910892, 4279624733, 421009187, 486928607, 204264459, 4213437962, 619973081, 3907190027, 499260675, 433772040, 4125159613, 4245102785, 954735114, 87946955, 655086035, 937694679, 3793823247, 4262122503, 3795512296, 148839416, 131740427, 3771265840, 465171748, 4278137906, 4091670822, 472115698, 183892449, 3724815590, 3857384953, 17695257, 354552561, 167903975, 234870484, 218238715, 3591107884, 4213576977, 4178900224, 520349697, 638322927, 3755551237, 82324488, 4012380188, 3940149500, 3572822801, 268693725, 3876061661, 3957842479, 3504152048, 237759748, 3420984807, 487652852, 334502180, 3622170370, 3772914943, 3408601600, 3420196362, 3973585381, 133360348, 4229621525, 233513966, 3571312415, 483980832, 3790466522, 704120356, 3656391903, 4012170028, 4027323362, 3844135709, 3774218785, 350672396, 3677034752, 434043429, 83109834, 620159949, 453111247, 182002151, 319230985, 183235617, 4029019658, 283836145, 387062786, 588635359, 3842497819, 719196942, 3521585126, 3657703721, 418896914, 4039773688, 4142932991, 150789147, 16508700, 3844927987, 4275365087, 3926730270, 3827631363, 4213312765, 4060936226, 4128769053, 3858493159, 601822426, 349497355, 4227850481, 752284171, 4213903576, 3357222440, 3001551161, 3388283902, 3318952763, 3993967870, 3017010948, 2798969638, 3151879715, 4276883714, 3724540153, 3104243702, 3071270939, 355590914, 4242606331, 3908232700, 3660587726, 752359642, 555557903, 553330173, 688907545, 3676315643, 706159597, 4096448746, 3604680916, 316335075, 84732403, 451285233, 116786714, 3906741528, 671808249, 17685779, 586219559, 115660819, 990106621, 839130810, 1140182539, 923790286, 385797099, 855822356, 3991543527, 621468434, 470870504, 507448120, 253829673, 320791782, 753202254, 685238055, 465182484, 653527008, 3911183841, 4243186909, 4280427482, 284167405, 3826113009, 4279503350, 4007068963, 418575839, 588511255, 3676572913, 67298321, 4259904253, 486598127, 399170543, 721937377, 453186552, 3704889863, 686085402, 4227855880, 3808614159, 169411300, 586230817, 588849956, 3925729774, 82902248, 704318940, 454234639, 286329591, 4057525247, 3706185504, 3975146492, 3824282866, 3973971212, 371060472, 4228504835, 120459254, 3776051976, 36958718, 3761119506, 3653695471, 639043131, 754375451, 522264356, 3691851784, 3940163111, 265022274, 687804666, 181599963, 4159294662, 471139279, 438563278, 116132805, 1290729918, 906747607, 436985059, 1010689271, 1092679658, 69791248, 554499315, 83750925, 853597197, 4042923818, 4058976596, 3508600055, 367857390, 3188336916, 101385190, 3891388924, 48299823, 3571262502, 553258457, 50860017, 149227550, 186130908, 4141684213, 3690524197, 3725659950, 48424467, 316485615, 302375709, 3826973677, 3756720655, 219224345, 3722244607, 85909028, 249551915, 283913188, 3774557181, 3574854436, 3640004126, 3744206375, 3807245796, 234610681, 718936829, 539154451, 4091086057, 217851097, 32039915, 4010997027, 605235681, 3791378669, 334228984, 3724930016, 4158513922, 3927372578, 1762847, 4026999781, 3673823484, 235019535, 552670203, 3739298043, 3622908685, 69414433, 3960141360, 3993240555, 287431640, 3370721768, 4008572439, 3104242912, 4179287576, 3856857115, 4208921383, 3924368398, 3453888802, 3823949082, 3840613068, 3341364721, 588436411, 453120956, 1592971956, 83940073, 1561855982, 943913144, 320664815, 1191306690, 387715838, 4113877786, 48765495, 150211863, 885456201, 1253177359, 415833152, 347793720, 487447756, 1225722582, 220252924, 1223283134, 303555858, 4227007991, 352767700, 4160998408, 4108656410, 3894550282, 350297097, 502405365, 1239610174, 4142072870, 1035604305, 768280142, 4257748406, 836895435, 266523874, 4279362033, 639567550, 553776586, 3761758137, 707913200, 405210624, 3862812945, 302905625, 4110410007, 920981777, 4106937612, 366405676, 301276685, 555019988, 569708746, 165539074, 519227853, 284022459, 740674766, 539422676, 688836294, 905705956, 1010572818, 623047951, 926292954, 334247437, 415108687, 687410191, 1122634547, 1173546231, 4275704533, 1025169105, 134139853, 48884198, 1108343750, 4147563274, 1158669043, 737676818, 4076720880, 1043274760, 451672815, 517153287, 582619733, 1105261334, 665993528, 870766275, 36180458, 4160153278, 149669335, 3991531520, 457830148, 688127981, 538498830, 654969584, 3843085107, 668917014, 285356793, 3990236988, 97513491, 4107473232, 4190960159, 4160539120, 721677765, 3910462717, 3976270606, 1123676944, 3913745894, 4093497616, 3824868122, 4246009827, 302510882, 135271706, 4094961659, 432072956, 3637837341, 3790608668, 436274754, 652018709, 4112505116, 265345249, 604969252, 4025541604, 518643224, 4012957942, 4276490264, 3725656586, 573179433, 3690074888, 3659932645, 535953643, 267979492, 3844222746, 4059421939, 3657095665, 3911243830, 3588611323, 400680155, 334426401, 384506412, 303162138, 201055446, 3591885845, 237633264, 1437146, 605355543, 284162787, 82182659, 584117528, 3940234249, 48959218, 2615152724, 3506630210, 2533111365, 4294250212, 3457496147, 2645901908, 2982880303, 34088712, 2866141688, 3858631171, 2631929864, 102637547, 3722903050, 3156015884, 712163, 3571716063, 4179810835, 753933577, 4026459667, 3924752124, 3688490201, 553838333, 266787625, 437784837, 4060348146, 4040554724, 3556386283, 4178579182, 605292270, 4209838346, 233448439, 235533301, 417140684, 723832024, 701755623, 237698504, 725223404, 3958428178, 18341360, 603532060, 3689293808, 117370881, 133112282, 435363371, 553248771, 518577958, 787492149, 3857715477, 518650345, 52882981, 4113294580, 3659924267, 3624144859, 4277265708, 4177144023, 4142128416, 3823573025, 3706968578, 4024310310, 621992935, 3908103720, 164826635, 3824353310, 4196260824, 3691050536, 50522881, 97910040, 4194829100, 168288223, 31846389, 589885162, 4008176662, 518070288, 519765761, 634727447, 451282690, 517664298, 3739219959, 3773617698, 3926851841, 136635912, 738780927, 4109575976, 4158068742, 66583262, 605552664, 185196771, 85458154, 234818301, 3943564315, 3772313351, 419962330, 3944936694, 536405264, 555035112, 637860596, 4126396669, 166914031, 600907720, 3974163404, 622072079, 623124437, 3859748325, 4191225125, 252569892, 4196213036, 3978829804, 4240380976, 183902239, 4241160476, 3893493523, 3304648193, 3609471258, 4027516449, 4008782387, 3085428723, 3120887097, 3922074928, 3172197601, 3743227943, 4112846071, 2886789877, 267854295, 3624988701, 3269263070, 3923845099, 3777819677, 3744204808, 3605933605, 4225434611, 4126533169, 2920820281, 2665034763, 2431446360, 4277348358, 4162261756, 2736514045, 2852657925, 3877298696, 3053181969, 2584749516, 3459978485, 3339114762, 485024738, 4058055631, 4129027837, 4243786478, 4112588034, 440407809, 4260625871, 737088969, 79434750, 4241162775, 656087067, 150538715, 4205913883, 4023127815, 1036916789, 95499772, 3858753049, 3306090293, 3152678133, 3956860176, 437315852, 3707634485, 4076929536, 2884505125, 3861061344, 3102137823, 4111607848, 3120303903, 3759213337, 3604950548, 3810463944, 3558922729, 4144632583, 168611016, 522388947, 3878017750, 4242808019, 838660057, 653397005, 4226476762, 4059512561, 4161728061, 790949685, 4112114427, 468400867, 4109441343, 467469559, 602733283, 3822523126, 501486320, 403893722, 437791016, 3959029468, 770180860, 219813871, 4108840466, 4109116630, 570823654, 4144960470, 31249654, 4126992670, 85723637, 286586141, 65400047, 3574067754, 3857263642, 3725009638, 3860782797, 319810259, 371986628, 3941077759, 3806532576, 4147710170, 3930773744, 321459466, 1363995, 4077128222, 620291832, 3876841005, 3722055445, 3890620199, 100410352, 3825072674, 3756061223, 400941032, 3673092345, 621488677, 637143560, 3957845727, 4024503302, 98572806, 555672292, 4094883357, 4112440797, 3909815025, 572248319, 135052294, 4146529022, 4162564890, 3289632046, 183499554, 672445940, 4110860814, 3536185635, 287558414, 705430268, 3725332432, 4277986557, 3425231594, 3356035366, 4159837442, 150391247, 3471975197, 4127601119, 4041403634, 3386765347, 3744015071, 3704631272, 419176678, 183310082, 3638039521, 324373, 30860010, 1039592, 98370528, 249096192, 202773253, 3386240222, 501876197, 201194748, 858384638, 991626248, 537792964, 268300767, 637080843, 707857643, 4162315023, 657921300, 924125497, 4129950473, 755503940, 352789588, 1035737409, 316996928, 851839730, 4107601866, 4177727700, 417330703, 316471005, 674288084, 237029380, 721223909, 301726723, 188151774, 3893756941, 3856672778, 17045262, 3941602545, 3942059812, 249494564, 399386901, 3692960266, 3958439647, 153750804, 3810195156, 3642152915, 420864763, 861156, 4076076552, 3961776427, 723393588, 400555241, 35586580, 3874097645, 3742562855, 705824263, 3827629559, 3742363665, 3591565511, 668596764, 586749712, 4008901823, 3927496895, 4278307274, 370855435, 640483796, 4232184035, 636877832, 470604590, 386137651, 401212940, 801902105, 4177724706, 183559439, 282268192, 4212463858, 3873299697, 3487690798, 235724579, 368060651, 48769803, 3957058332, 354148332, 65008171, 3991789867, 215294719, 3675327497, 388706538, 119592408, 736701178, 100930276, 405531651, 3891779883, 50727183, 85320686, 169946366, 4093909763, 4229554162, 3655525589, 569574441, 587271675, 571087637, 705422307, 2350597, 4059557890, 232323596, 4109694496, 3792823249, 3827041319, 4041145805, 671801078, 719182871, 701621037, 270020085, 568980780, 4059245867, 284090352, 3760251115, 252830506, 702687987, 584635398, 70002662, 4146451929, 3709734626, 3911781358, 651884266, 3961002482, 68277250, 186375700, 84339244, 3743995935, 4208458985, 401678838, 585437674, 165734107, 567670245, 3574592545, 618265328, 371203799, 354548492, 4294634211, 584447495, 337709799, 3505979163, 3945534427, 4095474941, 4209389545, 484575522, 167712545, 4126021866, 3828158244, 3492147467, 4145745107, 618983172, 805956353, 1256262883, 4024712409, 4078239205, 436135888, 1222772685, 1038563869, 841881106, 621405732, 405459734, 618138923, 854450232, 383637832, 1120286996, 3963080463, 3505456128, 3960279801, 166387468, 520748057, 3659461855, 3725598703, 3994159861, 507958002, 4229155051, 3657956651, 4181581276, 385872422, 299768538, 151257308, 4061730577, 383376116, 604625936, 3558873588, 4061320939, 4194179873, 4146133535, 334811878, 3959561178, 636545300, 101128413, 4127991268, 116991776, 237775404, 436664802, 3655665673, 3823110377, 434317036, 4007132456, 3823905830, 3274450972, 36305408, 3053462534, 3807780359, 3525117464, 939201498, 4177729329, 4074300949, 3272147483, 103621660, 3892772383, 4263321819, 3845185014, 4029012266, 2988320541, 84280856, 383846962, 4142015474, 215551229, 3993051141, 3520529673, 4079942401, 268891152, 303617549, 220533972, 4125371106, 3843225820, 3894732493, 451810016, 638526169, 637281316, 320609758, 301127724, 3860868344, 165089490, 3726177762, 435153619, 3808091402, 3452834314, 689041404, 3860591597, 85263352, 4177074208, 80614633, 656217622, 500639527, 3308184119, 3576095030, 489351163, 153354759, 3271309830, 215234077, 4028836853, 3290889193, 3672448004, 3353151529, 98707971, 388038885, 3674070561, 3273202940, 3592158191, 3590254876, 100738563, 15070199, 687335160, 770239502, 4142456072, 3789806803, 103615484, 51054627, 621159205, 3725854514, 3705727726, 4246089215, 3892515876, 3738115078, 587068926, 885844760, 919465472, 3909808117, 4162706890, 3777554437, 837019101, 3690993377, 20312604, 3604813576, 471520237, 4194033377, 3823054548, 14084579, 267584804, 586752056, 638324268, 722670546, 618076676, 284946125, 4158319882, 989982167, 236838882, 4159104472, 4062640623, 739831268, 299233848, 3755726105, 47450584, 251455212, 785200402, 836167734, 839640829, 65151728, 386471432, 3760988145, 4246996490, 640158997, 3507949301, 3793100065, 234619864, 85461981, 4145878535, 50077723, 3688179448, 3710119199, 3588937256, 3961977316, 101242409, 705689106, 4027389161, 667885533, 703529166, 3874358277, 621081876, 706218467, 3727043075, 3841595152, 3072600883, 3840732444, 3624740079, 84470515, 4074898193, 3721332984, 4161992483, 3993503966, 3558935058, 3824030694, 3875670797, 3740017702, 4060281822, 385029110, 505358040, 570746851, 3891077353, 3979469531, 4092914387, 387316714, 3475691562, 3372750100, 17431805, 4011455200, 319744013, 4026796548, 4060079328, 418386937, 198386194, 4008520497, 4226027762, 4096204573, 3471842292, 251715362, 4062501635, 3625592019, 3724027154, 3441559793, 3025943, 471127317, 1225721361, 4247512064, 182768850, 837810709, 738002200, 674564845, 640606197, 4196082694, 401671720, 4247316759, 316666588, 4023203057, 1036650053, 820719684, 4224990215, 403890392, 4212271862, 200810746, 3723177215, 3573292064, 3910872069, 14081749, 182845485, 15804633, 4058175209, 4077777178, 202569445, 166391054, 556604458, 148704725, 433916708, 554491867, 168941038, 348700394, 3839298559, 251662080, 822084276, 774637505, 385734602, 254353368, 3792891387, 773846039, 876467216, 599056653, 821547551, 432798478, 1073610504, 3924169456, 32505600, 4046502144, 3945069602, 557842983, 3760842801, 3607568620, 752673005, 4109164577, 167710255, 4093579047, 1026423788, 3105153295, 3775917783, 119451934, 3610766559, 737397261, 3794004670, 351343370, 435481557, 183034302, 334692850, 150194399, 386538447, 707325437, 318952487, 120978485, 724701920, 4039248141, 3606634232, 281274401, 870919694, 485030116, 4011593684, 3989695500, 3957531615, 4045795294, 3707883476, 3559909589, 4211674614, 284949988, 154472716, 4199638, 3979089114, 4176873214, 3776456448, 4292795163, 3806586088, 469174567, 302522897, 4144368087, 4229094673, 637150178, 503973653, 484170461, 119738856, 3976535507, 3504333024, 640749805, 553588230, 3859606254, 3940822524, 3537440307, 3809539828, 3690210798, 3776716579, 4163565061, 252447739, 720317685, 656146940, 4062384919, 4245819683, 539232250, 539155466, 3758881751, 3657574950, 536016870, 4111672093, 4027325647, 3925746146, 4057935103, 4261147379, 3658350596, 4043301400, 635825675, 571607254, 488171764, 234026993, 18931996, 3642368551, 64751588, 4263515353, 15864872, 3743014624, 133229559, 3625773601, 3770929909, 919149541, 3738564874, 755952383, 3741052890, 4195548396, 121692606, 725404182, 718664945, 3844008159, 319361552, 3976340752, 246753790, 734199095, 631827762, 484453932, 4026405917, 166069199, 488307988, 3843684868, 723701778, 300950285, 372508430, 3675201067, 4130415147, 4277932326, 3995984671, 4027782947, 3909606428, 4096058866, 3625248014, 3721989169, 453116946, 3911452663, 320134391, 4011863066, 3841992714, 3156077629, 3257210440, 3288006688, 386591997, 4077525475, 3168607709, 3236885736, 151579396, 4230229262, 3757836531, 3660834030, 3909217045, 3658748178, 4213565734, 320788517, 3674925817, 4162129423, 551097128, 3654935319, 252187938, 487196665, 185533710, 299627738, 3423335904, 416812287, 367398622, 3658754818, 3840608017, 3911123415, 470809596, 635644144, 4145683469, 119544295, 519757803, 588898292, 404289755, 3605203980, 3793158651, 450563824, 3808089852, 3606580957, 4092993812, 34150921, 422108141, 1343934143, 970979016, 266060513, 792134626, 722455001, 4198486519, 891420385, 4045858051, 65138501, 135005437, 399378223, 1058012678, 717231136, 4241224225, 365905179, 452923677, 4012517667, 4175231226, 420734176, 68227366, 3588761644, 518712350, 118813922, 119737357, 4209896166, 4280551400, 350672640, 3638104545, 134672103, 286848745, 3908176909, 3592297952, 421256405, 3725792805, 3894223628, 3773620263, 3976524802, 3727428378, 4124901372, 3773695710, 4193385976, 4028291809, 4191554300, 4225433055, 4010660891, 4211805213, 4076070647, 4192342772, 3439583248, 3840990508, 3894877183, 705169190, 487390746, 3456957652, 3909414685, 751428585, 3841079305, 370146071, 387842537, 3642554597, 636420311, 133828577, 3724342047, 3839371744, 719643355, 3758611944, 552208360, 4028486659, 438962685, 4029025051, 85451485, 502209544, 4230742489, 250737659, 488372244, 3839749880, 136501745, 4075166182, 3859748829, 3858691553, 4126925605, 3688830752, 3640517868, 3792626678, 317396991, 3474447064, 3991795697, 3909425450, 3424130782, 1500701, 3707046099, 350233633, 383845666, 4029345321, 4179633935, 3976329769, 3827113765, 50076713, 86237699, 4057727779, 3978104289, 606013910, 4245816554, 3991016163, 4127906008, 621078019, 3757579993, 3655001087, 3672889343, 3640463103, 585166806, 186711532, 467214378, 4195884051, 3743018225, 133241096, 538914283, 220392701, 4260360714, 3571000818, 35914754, 4094425832, 202976297, 4212657694, 3690597141, 4158850800, 3839492061, 2886987017, 247587295, 4023313388, 585178648, 4144762636, 589243065, 1193660897, 31580378, 285554448, 401743888, 706944291, 3976992503, 153089755, 3975013422, 383054318, 4194107181, 4108975633, 4110277915, 3940278029, 4177778432, 601937932, 4161611750, 621929468, 418851865, 3894141190, 3924680436, 4213902106, 169746939, 48752407, 4276021218, 604178976, 218048490, 619971801, 4245688043, 3709213211, 3774414607, 3840662569, 4024244455, 3625980961, 754973704, 3592228394, 3872852766, 3608147688, 4028290517, 4062768642, 4128442895, 653531870, 534243029, 503654955, 640287776, 366742501, 53148937, 3558529754, 4045989852, 687669753, 134669829, 3857315852, 3775130889, 720434659, 3660180264, 15598108, 3675851036, 4126747687, 3707961593, 401269694, 887015617, 623047110, 838660604, 654496970, 736612832, 4129948173, 736881390, 921697506, 64745477, 1025315321, 199227689, 331826678, 786238480, 552331549, 117509139, 904912087, 136369893, 618392298, 4278699738, 372432110, 186695922, 574084352, 1192026069, 252962559, 15604020, 15724347, 4146650591, 1206317035, 548859695, 971105042, 906426123, 1039530769, 1023404510, 1124009188, 4009165311, 806485994, 218882279, 809565464, 3995653365, 4096847085, 4027001121, 4009419764, 755690256, 3589151032, 3774414372, 3823040273, 535684850, 638986993, 3793933566, 701952999, 554375389, 366729209, 132645379, 4180352488, 3755551521, 3709276923, 4112255722, 64814872, 249503527, 450562262, 50914821, 3991270118, 535880159, 4211534101, 3274172985, 3522433036, 51642613, 152891890, 3938595332, 3351178783, 3622699530, 3439985953, 4210496528, 355141607, 3440434160, 4262527508, 4045609480, 4096463905, 153871877, 417270256, 4096072445, 3654870278, 4143570435, 50918125, 300411678, 3673813972, 486218777, 400811533, 702146065, 553253859, 639630611, 4076467206, 234217430, 687484190, 316484085, 620176869, 253566184, 4244705747, 571676709, 4228191459, 85532665, 3706138390, 233702925, 3872714476, 4127137564, 503448038, 602999573, 452655091, 151516640, 3672580862, 168360238, 3672972588, 3773295105, 405330677, 3621327109, 4092723936, 4263438872, 740547604, 521543392, 454101248, 3940560093, 3707370234, 3574469337, 3688486408, 3757106974, 83297265, 706019865, 3289253651, 3389651762, 3422414096, 4125624803, 4227735564, 3339258926, 300613620, 4091015927, 4141276159, 3589009409, 3979138779, 4294764063, 3890272279, 3856390669, 137354014, 3688886275, 585362156, 3808953355, 152109801, 67439849, 235743780, 4095139879, 501864231, 3824691708, 3790413016, 3625704934, 287647468, 4043299626, 3773884668, 3573604830, 3660112386, 3740082402, 3455460836, 3974167018, 3893769489, 3640008714, 3705477642, 166987311, 219417400, 4124965936, 488956137, 522311925, 3504862734, 3676431327, 488316907, 3554814702, 4164296214, 4163104724, 4261473817, 84347140, 4107656686, 84608532, 82252801, 165683668, 4041276686, 4045936354, 3945720030, 3907850268, 4141538062, 434838233, 4191563254, 253484505, 518380528, 4247069935, 185338028, 555994802, 1342637246, 1139803877, 388756737, 670353096, 989791445, 337184449, 82976743, 484179972, 1075766556, 1210113543, 45807390, 1071510844, 989067290, 314388037, 402985496, 824519690, 652993296, 484831711, 252191228, 4279560152, 417204456, 201261858, 3570605015, 554561041, 133310975, 4093056280, 486943788, 452072476, 688711914, 706146777, 517742111, 486349862, 555819256, 3976452862, 3944151830, 3775012882, 4175438817, 3889881373, 622847778, 370472992, 66917635, 3774031627, 3643010559, 718788598, 3740200189, 3876519210, 3907516694, 165548544, 402068507, 265822933, 3774942200, 3894084338, 4227015125, 472706021, 655431190, 3705264147, 234420965, 3725530889, 417524262, 3659797797, 354753771, 152561662, 69924585, 284627991, 251584278, 170388215, 4107721755, 4294497776, 4160745428, 269413628, 3908039418, 4177078040, 402126881, 4029146339, 740876789, 502194423, 4176025843, 4145221606, 4209778654, 1120912891, 1176302825, 588910058, 399971303, 670495469, 253949936, 774115048, 1023614944, 3894733295, 86243807, 1006828253, 536754727, 4291374876, 818679373, 298920745, 3677086503, 185591055, 3270304756, 4011457075, 3627671074, 132186105, 4277149752, 31455712, 200801269, 3724610068, 3860320246, 3829472731, 3354787300, 3442878722, 3458276829, 318309114, 3673754366, 216274938, 3253606368, 4292803369, 3508800802, 421532666, 4160220398, 3995391217, 3723240703, 198959339, 3306223098, 3742036242, 518727170, 4079540521, 3538361837, 3724542739, 3827286511, 3994606278, 920836601, 3910979081, 876160777, 774697157, 390922709, 236906732, 164112429, 4277345535, 804842800, 199433457, 383334434, 499319613, 552868375, 4291558443, 3942129621, 603056092, 3890479142, 585831641, 3637842446, 4145670906, 3941918498, 300277237, 3941471752, 66581241, 4174770951, 4043954149, 34927610, 369749237, 539556357, 3726965742, 233187066, 83811059, 4079028735, 3960333842, 233581304, 4062045921, 270211365, 3592151002, 503325157, 3506364666, 4293990430, 3605138455, 3742818290, 518984719, 4224834562, 199743524, 101650125, 3691711216, 3908644352, 3472889117, 4212703522, 4180809723, 2973757666, 3878664431, 388291873, 3840092442, 3706382648, 539230183, 3677012766, 368121086, 3676638709, 3845256161, 83551789, 4276417762, 4061919782, 3458210788, 3710387998, 3924238591, 3957520660, 131017264, 3272940331, 3357681919, 135010819, 3589727763, 137693406, 3658744588, 186918375, 4242877166, 48304424, 3760133152, 3859938263, 3860603119, 602938922, 3823040768, 537924620, 651954185, 134860561, 3826570225, 3909556003, 4191473919, 215488794, 236977109, 48637660, 3588499669, 115351796, 3978419441, 184411624, 181801248, 51972051, 420867567, 4230098396, 3974885119, 3523479333, 236521745, 318319899, 3808302121, 553200890, 403627524, 4041206305, 3928023082, 4178313181, 803866037, 570355963, 1073014503, 285733607, 218956516, 135977719, 4243655880, 50587147, 470871029, 3843673358, 4077980413, 1119680512, 1036905466, 934678570, 316335112, 551606245, 4060479995, 4259131174, 3706527253, 386661102, 3909551889, 3959425012, 3858890999, 4210892271, 153609241, 3959368730, 503055087, 571869911, 303243283, 4159956474, 433516764, 116708879, 954666434, 621411567, 3876397582, 3992779005, 4059685655, 622513094, 4127987460, 4246287338, 619192893, 3624469289, 335285238, 667894268, 80738317, 687214131, 486215234, 3775785968, 36431872, 3456899847, 3926656214, 3505786105, 602543605, 3774998032, 452400906, 86242850, 3688095992, 3908509486, 181872623, 99166188, 3756916700, 4176817165, 3575504410, 235658972, 990367969, 418041552, 354883541, 85062125, 167113950, 301918218, 119201780, 253171500, 3643201067, 3806322727, 4078182446, 349646341, 755900714, 3988648002, 837673206, 119736086, 183116264, 3808812061, 152298980, 3858618375, 120249331, 80665646, 3889503468, 3858040328, 350218519, 3291417344, 3358460197, 470013451, 3990480411, 287774206, 468443370, 686747362, 720907486, 217974280, 64286740, 688712935, 3874744607, 451287030, 4029147163, 4006880033, 3727293206, 554819851, 4126023391, 99296014, 4230481162, 685043416, 637397240, 418437609, 621341660, 253496299, 100272598, 4096992516, 270727442, 70245585, 14879500, 3607687423, 370534463, 3675921670, 3991731762, 3940033289, 4195018284, 3607818796, 3570737725, 569312298, 3592231689, 3190217969, 3608749583, 3354528229, 4127856429, 3302946028, 34929171, 452532965, 3505265181, 4142068999, 3373669129, 3856855078, 3906929372, 355333103, 438036186, 185457900, 3637778674, 3823501876, 353904383, 3492206579, 218307325, 3976205617, 148318245, 3305307409, 4129877465, 437725462, 4062779884, 116010282, 435887887, 86242584, 269097241, 34868448, 488236071, 639045393, 115343400, 738794994, 4259319028, 4193388536, 654315811, 84737027, 705036819, 149680368, 4195220480, 3910473196, 82188541, 4091997731, 4226545157, 3974700060, 3154375225, 3471901215, 4177735174, 3257456934, 3958775023, 4025813011, 82256422, 3722774760, 3106218707, 4060939267, 3944160209, 3859600933, 3406954202, 4096726522, 4196268264, 3990080750, 101897933, 4281402085, 4044542922, 470227476, 890884851, 924514279, 453312208, 417930263, 992265265, 4058051582, 3996194344, 435307332, 820120376, 265163021, 986461518, 3840924164, 3742242280, 685369365, 588175839, 98104871, 739367427, 719269077, 4130075641, 3892306209, 454042867, 334222369, 304227359, 621147381, 4126876412, 3793280279, 3777157616, 3924027126, 4028703729, 3760519732, 3625788448, 4208451057, 535897322, 434048237, 3743141922, 3408516084, 4227857433, 99154463, 254667727, 136114643, 3909874922, 502868755, 4062708233, 18159093, 3842574556, 3810646474, 955056630, 48624317, 355258089, 3993101023, 3994081760, 4195472924, 3994946793, 602271004, 707535922, 886906922, 351935784, 904982516, 180097287, 4178699988, 3823493892, 3878222551, 131463956, 4057914895, 573050364, 65797617, 116000516, 3926850033, 201064183, 3760055811, 690804762, 620295442, 32046615, 3793232096, 116008669, 505803769, 619049453, 3895204908, 332801041, 418977269, 352655632, 4246270975, 300347862, 4158117355, 322586, 636228056, 3659144464, 384298016, 588059175, 3844335398, 4007799023, 218693816, 771938800, 135510752, 1309721327, 856878560, 1059520720, 1073672442, 287764452, 1124394236, 288680703, 974062859, 238230521, 1188426550, 902442765, 1105596480, 1422652933, 2767984370, 2467047166, 3626313032, 3455462661, 3540055069, 2497983544, 3053659442, 3655463229, 3911908060, 2988182747, 3540128013, 3071272230, 3927384356, 3422687479, 3808107745, 2767002390, 3891469805, 4128180985, 4228175135, 4292669190, 37680612, 637977639, 4110161889, 4030131984, 3758354221, 4177520395, 439602425, 640473328, 4180288809, 4024109348, 4196983546, 3439137848, 150786506, 3908234515, 737546950, 153542384, 4058765312, 4129747443, 251520781, 421990429, 4011519489, 652537315, 3844285435, 169861370, 3755679784, 333984246, 4023771179, 48229160, 265346792, 4059830742, 3754558214, 282195736, 468313291, 3538942166, 202712807, 3922071053, 3738113502, 3744921352, 3477141538, 3828489998, 4262538226, 3688568038, 4124509761, 668735754, 184686889, 286992608, 4261016075, 3555584243, 3841257998, 201990944, 3707050719, 4159053026, 3610180113, 3942385122, 689515291, 32834565, 521477136, 703265541, 3875396646, 168956921, 4292742662, 550505485, 4262921447, 434964259, 3878425862, 3822780700, 3576108070, 3492280577, 201317886, 3893818611, 3556771066, 219157282, 4260822299, 3705333221, 18221605, 4177199325, 165809933, 672472053, 486075673, 388890139, 4162782692, 3859998699, 4275427339, 654643725, 3995659225, 706338050, 3722845945, 4162130209, 232060163, 3974362074, 485159707, 3724475658, 4180139744, 572449262, 3811252227, 4159253516, 132261147, 3908447014, 3792176381, 4229428505, 252376555, 16048111, 218163416, 4026276880, 453369875, 4259255005, 484366578, 688530168, 3710381336, 3928229088, 437976306, 489215971, 586348816, 3638822136, 3755468806, 723516936, 270402064, 519776765, 3705411294, 351742205, 4178309354, 3740264685, 182577686, 3671392220, 3119703067, 3992453861, 3321300766, 3910657062, 3639607548, 302583298, 3842306251, 3841795540, 3542932211, 3270376, 339743749, 487072001, 636038125, 650982645, 836836622, 148436523, 3472822759, 265551876, 4125956110, 199292926, 4059423763, 3422219495, 3458015485, 3207190804, 3541233162, 3306411231, 4160955091, 53355995, 3608609811, 4196338187, 3772587730, 3490912753, 3922727663, 4126729943, 854383370, 97853910, 3975294216, 3857062858, 86171332, 148501985, 381354521, 736686112, 3859402804, 468593179, 850411549, 3870221885, 3907519823, 736899136, 64280765, 539682540, 1109464508, 854662622, 853471960, 372574734, 168879553, 4193325788, 268053529, 807404024, 203489037, 722136820, 652870446, 483471645, 352062788, 98435863, 603463145, 688461316, 669649636, 166976999, 707453153, 3959886857, 635773470, 169350421, 4293462499, 4060219174, 316867871, 3576489763, 3457025509, 216474893, 3437882663, 3556127469, 721486361, 3675462688, 4111597526, 3721852410, 3861113617, 572790260, 118101995, 4142342916, 352512743, 554695198, 3910402323, 468061226, 4228380961, 536019158, 14558207, 686172665, 133954852, 3926983907, 15861498, 4208449559, 336650788, 587733796, 3727102718, 620371934, 3591314965, 400622633, 4161938904, 352722209, 419820837, 4027394311, 4109626840, 3843359776, 3977969368, 32646128, 3911131403, 3890405843, 3723370796, 587389157, 4075563009, 3791780377, 51242231, 554305830, 3826118406, 199956998, 4142063652, 4208666397, 503380515, 4280356879, 3454456294, 3387022122, 337577517, 3875131871, 85049330, 366203903, 3791327015, 3724392407, 3912888801, 491109323, 505205518, 105314789, 301795541, 3880584697, 372643045, 3507156996, 3906469165, 2737381625, 3590207030, 3388867319, 3470260011, 3238209851, 2632254500, 3036999716, 3371760860, 3056023056, 3406493970, 3103729421, 3638766299, 50213116, 4161865218, 31336189, 4144111612, 4191685342, 1022625251, 4141551345, 183631895, 4277859597, 536542446, 3859817427, 584194098, 487853870, 4145020974, 588185357, 635499246, 4173209617, 196876605, 1020867091, 4241881090, 903280654, 438686180, 471989016, 167909609, 656742411, 4026333417, 151187725, 3591185630, 4246669557, 353307144, 892473335, 4159045908, 4156747280, 4056739609, 3942064889, 4177984985, 16780805, 518514162, 3956999113, 3407023908, 3090216199, 2986802503, 3471634401, 3269590271, 116268571, 4241227782, 215620349, 2833975771, 3742437894, 3862832915, 337698519, 921506548, 622662876, 1224657653, 939719346, 1059526120, 19971803, 974506248, 1209915372, 1158021348, 253108529, 421396981, 889459676, 1069017891, 1219963685, 700844045, 79500061, 522331140, 101985039, 418918138, 3810667017, 4010746601, 3922603816, 4125616878, 134537255, 3892242156, 533718272, 4263049775, 3877901532, 3640732449, 4045478102, 589565464, 3961986054, 185660656, 706795236, 4043446246, 3793811713, 501613521, 486724082, 653924564, 3774608897, 3823300116, 3826459443, 736881150, 454501420, 3894145294, 4140694013, 4110423558, 4040033310, 618594334, 3906607127, 3907461877, 534506451, 83043798, 3790405359, 4179619021, 3877240286, 234218253, 3994280974, 3874416352, 655888627, 3724943138, 3705329945, 3892844029, 3793760273, 988468716, 4146127349, 4164146646, 3910590440, 468381436, 4062515695, 4092271119, 153626853, 4162904825, 4277591276, 3838913262, 4094434287, 13707821, 116780283, 267905081, 468858868, 3605845498, 3992385257, 387191061, 3592234512, 67498986, 202973469, 688990706, 4227273224, 219221463, 318967072, 3640849173, 3691964413, 3541103145, 3587845100, 3521709823, 4045282068, 3473411356, 3890539512, 4192603666, 3405711630, 4059822315, 3907908663, 51308333, 101184798, 4009959388, 3508211684, 116380646, 119800810, 3576753941, 3793805796, 3409442757, 3861774106, 321194214, 4043822051, 186715102, 3792709585, 3772439076, 3908307149, 4077567992, 3895053290, 4108860650, 3742497583, 487377196, 3859745839, 454960865, 4191226149, 3739491396, 4142667553, 3436198679, 604565236, 30080753, 32775961, 4143790050, 383771427, 471260195, 500304599, 299308500, 4193322762, 68552980, 3825154305, 452864988, 413738778, 617353205, 1040455908, 585362153, 802827275, 520345094, 3625186593, 3891079145, 186444238, 523247838, 3810655717, 3474123024, 4041941512, 4026853118, 1308637, 3842446837, 635825143, 335220238, 3671731689, 3990023381, 4040548101, 117368856, 4259244556, 584709071, 252378861, 4029535415, 753932234, 487262460, 4025341991, 3793611547, 455277317, 14170370, 4176486143, 887554059, 365029183, 4143504870, 4124241697, 116259550, 553396712, 3807581708, 251383036, 3907120920, 3638161172, 4209050867, 116971544, 152446185, 587082982, 4258607377, 582154034, 619591184, 165945575, 367971599, 82710021, 4075406338, 136369150, 4164082411, 1025300209, 369349585, 100191228, 20770330, 776670734, 4181120774, 923152412, 300415753, 3957855533, 15997194, 922300733, 587332365, 4010531558, 404936993, 4141808630, 3386519518, 522388496, 3927370250, 81727276, 3710253055, 3504600051, 3525777940, 321138172, 400166164, 3555134727, 4208791793, 3943427333, 451010809, 3604809500, 4276233975, 487920610, 3891780845, 3657965348, 538646296, 351995633, 3590131472, 203221996, 4023769359, 3692693989, 4057338626, 149226220, 4091738336, 3723747033}, + {3335527411, 4008240936, 3759073582, 4208840232, 4123980753, 3641180928, 135718080, 634374683, 953824262, 420542953, 386847753, 4079354611, 639715313, 4199015443, 843573793, 937816858, 1140914474, 1140865049, 4009301000, 771026674, 889076517, 4265032711, 368523844, 370094821, 317862686, 4007926804, 3775596559, 3859226333, 3875794209, 835852332, 3927783693, 4094374877, 202110937, 38947105, 1427718886, 655043618, 1175328575, 504116554, 657799453, 722417711, 82319862, 183375862, 1069767955, 453714937, 3825217316, 365313792, 215957994, 537210879, 183442132, 3875669515, 469300731, 3926791894, 318373877, 452534568, 3856537331, 3722847728, 252958683, 504308771, 3739291920, 133297693, 4279634393, 386602257, 588578260, 3609788194, 3973839911, 553119523, 653709541, 4175438586, 486527719, 3978031395, 82315540, 4023644146, 252708626, 266345211, 4145750533, 3927704578, 4026200803, 4225964520, 3858816527, 4163101392, 3726449450, 4263650578, 534178559, 17762816, 3959627243, 4161338600, 3777504010, 3957979388, 319354358, 354543135, 3722584275, 4094625032, 3641779223, 686161929, 405542401, 434893783, 334483160, 4208647384, 4006138610, 4226032367, 3906933710, 3472423410, 385417973, 3573487850, 654910919, 50141684, 3577016289, 4163440622, 602994943, 284962306, 37874190, 418439457, 686499337, 51313674, 4075301615, 3792051716, 3756452615, 3976783604, 3909552610, 3743621857, 4192918053, 3772707075, 386987533, 4025493531, 3639801861, 355201758, 3606829023, 3941401371, 4209040106, 3775341820, 3790465016, 551806487, 4209321204, 367405043, 519164970, 3874610932, 4075551719, 4109504515, 81463532, 3977500938, 321653267, 4113162502, 16452100, 554440475, 702870249, 4260433185, 182588660, 185269238, 200547882, 4248168921, 336147176, 3911314934, 4225627163, 521084918, 51832867, 303369001, 702995999, 568402170, 4078051847, 704786648, 3752976348, 3020082142, 3052329699, 3303005677, 3335188243, 3068111118, 2984438784, 4125093899, 4245880094, 169133267, 3746345724, 3839886334, 939849510, 4081649879, 439283718, 655888636, 4194637865, 50081014, 976962056, 3995207902, 925438725, 1008861204, 419828775, 518270471, 469636086, 281810466, 4043710725, 4280228618, 689974029, 753341945, 3928354324, 419290921, 4143178731, 691279346, 3911796452, 1124608038, 490354440, 876027124, 4008581929, 238949166, 369749805, 889450548, 785466351, 3874626104, 4293002236, 4076943637, 333904108, 3842053103, 3623286027, 3491817967, 4027900668, 471201299, 15410979, 617933355, 4107609644, 4059238142, 3589270043, 216010737, 286912269, 501552388, 638254817, 270278156, 419113234, 3606517485, 637674521, 4230542354, 657731312, 1007167461, 319362073, 669067539, 4210819614, 70069491, 688666108, 535763946, 952953900, 453458404, 15273737, 4209127417, 4091485670, 4244888593, 66444036, 3353986568, 3252540463, 3721850128, 465295092, 3637359125, 3003242200, 197064420, 4230209238, 3508721627, 3811754457, 571674837, 4057856476, 4045279989, 3777428497, 116385003, 3214258177, 2865028139, 3740856131, 3151547143, 2964900839, 3993103098, 3271543562, 3082666490, 4156275167, 4059999171, 4227986107, 3222909648, 3526024188, 3845461472, 3578642130, 3475312868, 280806884, 3567839753, 3589134346, 4222866955, 3604210190, 3674729489, 4157994236, 4258661406, 739638276, 217897179, 3993437975, 3892445677, 4112842768, 724493315, 4179166750, 3742317346, 18428940, 202069256, 351798308, 1143554580, 319091962, 718605863, 132116295, 319876079, 788666114, 4241883920, 66524429, 790229976, 3892177645, 31985958, 506388769, 65999073, 3991461919, 350999292, 4059226405, 3639281161, 3943291638, 4078882333, 3555973628, 4262779943, 4045088472, 319626987, 318839816, 186576079, 151053355, 838991864, 104399906, 4163176719, 3601332962, 2983118075, 3938828762, 3958355485, 4124567490, 3134497524, 3019548376, 3977428222, 49417706, 3843949305, 4261258984, 4080594888, 4194507990, 4179956931, 3692294607, 705029610, 506005492, 238102550, 83363805, 4043965228, 3723034613, 65085690, 3660640808, 3962829580, 269082111, 4011261426, 3690995726, 3607623720, 471134726, 4259515897, 604300294, 4212453847, 4022257650, 3771198191, 3152524834, 3787966196, 112785664, 316459748, 4041060880, 3607151117, 4276681412, 3439459843, 4212573662, 3691449554, 33945550, 621866466, 3960725259, 793500188, 4161335570, 471923723, 3995533551, 66385948, 353963744, 3891648525, 3757778155, 251208227, 4062583020, 724301032, 488254455, 3640195546, 672075817, 117110557, 602003952, 4264356593, 585378290, 250143010, 501476338, 4044874033, 552916229, 353046290, 3726513404, 4279963920, 219146521, 102181153, 4230286117, 3874617884, 3809028828, 4160219178, 419369719, 203350800, 468189435, 153162221, 3876183072, 103668989, 3940421657, 422184204, 183180297, 269295588, 97980188, 603396586, 368782816, 820974600, 320144646, 773648423, 468447010, 405397470, 389085686, 3793623298, 406661634, 958872035, 284561388, 3860078899, 889335826, 972570105, 455864096, 471270651, 437592120, 771882982, 250411022, 4228701463, 3689494241, 4042861553, 3944344303, 4192333268, 3839958263, 651430150, 468905686, 4126995943, 606262765, 4024243432, 3944011477, 3928698108, 3558795244, 14874920, 654830300, 3757182493, 505798923, 417798956, 3860465920, 704645092, 4228317957, 450235633, 152885259, 101964257, 97512721, 453179925, 4074319332, 3588024553, 4246939122, 3705329957, 552544773, 4193786660, 50669021, 149483305, 4242872622, 855710237, 1225604338, 574224634, 387203351, 168309821, 404102452, 636308507, 3877562667, 3893906182, 450112068, 184171766, 3958571233, 4073663459, 420027410, 4092998946, 3770817314, 3673079298, 3586848020, 3233078247, 3456044534, 149736206, 4129807367, 4042329060, 3959827671, 3674540838, 4109228581, 85516276, 417542391, 322760153, 3997504484, 185286424, 435689971, 858202584, 3690529783, 3757831405, 4177660945, 149353965, 601370355, 234691546, 3910590211, 772270059, 387384073, 237184022, 802690281, 690091481, 855964644, 119407658, 4256029941, 3405238229, 3202468360, 4210344236, 4293000671, 4060134400, 4158389752, 283960591, 283044847, 301257461, 3893684432, 372687343, 269484818, 4009896482, 759430674, 4262206692, 404933402, 4078833165, 4161344538, 3909809171, 4161803774, 3102923541, 3238187266, 4040684303, 216262665, 3593397212, 3971807746, 4009614543, 3958962909, 4148497602, 368119797, 4058702075, 4130084901, 438905891, 786439918, 886829073, 435676632, 3672515823, 3722574341, 722010080, 3940624638, 3744069881, 707466969, 285945557, 4281130279, 4194233893, 3925146400, 3792170526, 3936025056, 3484282609, 3100614685, 2931406033, 279757576, 3591694357, 2769331138, 4124156880, 3620396002, 102805765, 3659656425, 3387078900, 116193026, 4063483136, 3323399893, 3473016852, 3957118976, 367594492, 4094023161, 416077611, 3473722073, 484706339, 4024362487, 3673354471, 3758619401, 372304576, 3504603121, 3873301962, 3827568417, 558293976, 405460947, 3790149093, 4156151359, 4244622901, 4006541833, 4190945551, 285862926, 3234771723, 269594858, 400870869, 4108967884, 4059042497, 3558469101, 3977436881, 754336499, 102563302, 524934106, 3460560, 3456636170, 521009644, 4011376651, 435880411, 3407148566, 3136021255, 3288528152, 504701932, 85195245, 4228844033, 3373323220, 65996043, 450573582, 3791259680, 434185445, 651362317, 3926862089, 605683178, 66967780, 83814110, 636167699, 82166288, 584908048, 50318568, 621481483, 401264592, 3792830154, 3841120992, 3974632455, 507253514, 536994842, 4146788063, 3994480379, 85787171, 3842891299, 4241298724, 4193851110, 556076794, 4008704757, 4128318153, 787801840, 352445189, 3726182180, 855967957, 417999851, 254795022, 954596587, 317008672, 170457377, 3908950778, 3625843977, 418652144, 552339711, 388637671, 4192264679, 4128441574, 3861451259, 3723353852, 3895139835, 605757717, 622144227, 669775833, 3761057553, 739829019, 4011918347, 271836707, 322182385, 3941207537, 333514769, 452399348, 4246534128, 3911653399, 3857263665, 3805929229, 218297588, 720834788, 202779432, 4079223322, 48504036, 838394905, 436789517, 3505057564, 451351572, 4091274743, 251651069, 724172507, 3975272693, 401732889, 4160483106, 3941866494, 4197248485, 4143382506, 3927449571, 3725847553, 3708561160, 183231459, 485690621, 198584827, 1957120, 635562221, 3891797524, 3756787477, 517734404, 3574985985, 4159232208, 4259910360, 3957338068, 198451993, 4129618916, 702289152, 66200833, 4259513126, 3892316385, 470556130, 4228193262, 721553673, 402338830, 4092202526, 587202856, 837819132, 937762067, 752291621, 922630920, 790963485, 756409335, 550246622, 720904179, 3876591071, 4128179729, 3674804695, 604449312, 537984539, 535296013, 3809408481, 4126348014, 518655705, 3710195473, 301866787, 4227734552, 269292830, 368302338, 434905363, 3990614294, 3589268222, 4205183738, 3802921992, 3520392404, 3334330100, 3305368829, 3255176455, 3172844285, 3353130472, 770717675, 522066683, 3697410811, 4280878339, 3741912591, 3930655728, 3792435941, 721227490, 3674984986, 4146317570, 3489011270, 4160618264, 3321357566, 2983182384, 4242276142, 150674250, 3256942323, 3911448078, 3234324726, 4140166383, 3942000929, 690547680, 524090073, 404032488, 437256439, 3875001345, 233233933, 606536662, 417532136, 3859681766, 3809531101, 3958309339, 217647892, 385798691, 4027590151, 165680881, 118759699, 704964884, 3956735705, 4209176857, 3874742247, 4124904210, 3676623156, 3469082131, 886246932, 3590771953, 3742624702, 3589209050, 807275561, 3777290483, 471781872, 404081652, 3807512091, 637548759, 17752611, 3943106307, 3623415818, 3359366703, 3493066475, 4177863166, 3710908131, 3721990149, 3725665509, 184084545, 3944617751, 202773543, 3206205989, 3673367803, 4111787487, 3627150102, 51764768, 3956280032, 100796948, 640674510, 4265015293, 4259448080, 370274022, 943339507, 1109022783, 437994246, 154073313, 773067802, 684532285, 571933444, 3959287818, 807224324, 4176879893, 570042110, 468057864, 4244444425, 471474458, 554430214, 370673139, 3689543710, 83491850, 3688290348, 385350392, 4245163272, 419945751, 3659984407, 367000336, 4276413428, 739188251, 18671332, 199813614, 3557433603, 235133988, 3688174370, 4261680668, 4060682484, 3927567831, 771030287, 4028159957, 669967607, 3978350369, 4029339609, 3843690750, 470542843, 3928617251, 165490981, 504567017, 302307092, 3910871258, 203945700, 3641905672, 588389634, 3906210593, 555678175, 437835565, 4230161681, 3659271183, 518523129, 3824809187, 286460178, 588314355, 4127522565, 3572360409, 4275629047, 4229024555, 452121318, 654243343, 56559099, 555885342, 454041636, 585692888, 1242103828, 315244582, 554641163, 4145021470, 623922930, 80493379, 383650084, 990507780, 404493361, 4143912222, 940973052, 690681091, 373042705, 875101419, 640880943, 4194512362, 4045142055, 116667919, 517947122, 757003515, 182388770, 282733275, 315955495, 4108829219, 4275163389, 50570534, 97827333, 3790195732, 3760516098, 3778130885, 4262384081, 704108518, 284415234, 390061507, 554236112, 722986251, 3644459295, 4130523892, 755438055, 3638954004, 3939827680, 81918766, 3507813888, 3669942536, 4160220154, 201653995, 151521235, 401869337, 85264402, 3840348161, 4078692038, 3738966771, 317523924, 3457485801, 469841378, 4042185452, 3928290788, 386789909, 585569054, 166203375, 2230270, 4146451701, 102035209, 4158381291, 215417091, 387831554, 603465763, 18476513, 266666222, 4192014376, 3811179263, 420292054, 4142803244, 4209308897, 737400080, 451943681, 4025479385, 622124244, 4210631436, 4146261501, 3924829915, 552081390, 3575448866, 4175369985, 3759407382, 4276097048, 3655605224, 4207994630, 31574009, 3440038690, 3720154144, 3838309844, 3954956008, 3892887262, 3854351308, 4056560092, 3842494200, 268437234, 688835589, 4009573625, 3826320880, 3726766323, 4261471765, 317316823, 4210217988, 266852623, 4227592186, 3776310266, 3758681367, 3909937664, 186716392, 4075625743, 115091717, 718744788, 399778817, 517870838, 587662320, 486674424, 4062963996, 4093828360, 4210815192, 4040690957, 534448906, 284238066, 353904638, 484651784, 3945406198, 4011536153, 371726847, 3788312572, 770108121, 103488780, 450241580, 14951683, 869803547, 251133695, 3372943913, 270063168, 4209052210, 565642466, 4211921665, 251656166, 419295974, 467865320, 470551273, 3576557554, 4145158888, 354692356, 3908755218, 587651368, 840171006, 3838901284, 3641442008, 3838624231, 4041401055, 83344348, 3118379519, 3252996879, 49144333, 3910206945, 4063812294, 3641296624, 3491346192, 518917618, 3943361220, 4280737036, 4077062165, 4056612632, 338229493, 3424185850, 3674013977, 3740323874, 4163964161, 3442605353, 3738572790, 3806075351, 135535123, 16589564, 3757581599, 791220753, 4059705317, 3993765669, 4227606233, 388176397, 3876924960, 3961532933, 787670296, 336266260, 371651849, 772476414, 337117229, 634383877, 520165630, 3603690238, 4212061681, 586734303, 4023976946, 3893899305, 3675778028, 4260430589, 30921502, 3894677483, 3843300084, 3641311960, 3840082149, 3875327525, 3960923887, 283380770, 4197569543, 185598186, 3789285404, 235079212, 520151556, 4277672199, 101855205, 604508131, 857687025, 1140659189, 104605422, 4047516403, 925187856, 722018892, 855918356, 3977328935, 840707884, 566706260, 1042484745, 237645820, 4294379529, 818160615, 785327405, 467473903, 522520313, 321252615, 151771374, 3945390340, 251259913, 3659785755, 219862825, 3604412906, 81537772, 285078554, 4262985221, 3909605631, 202123544, 4195349990, 3605780233, 3656980439, 3925873661, 572654803, 3909880341, 719129333, 4228977959, 521663196, 4209650393, 234032648, 319687951, 148235786, 387963863, 4176410150, 3639278881, 4192019709, 3707116049, 4044747550, 385800188, 3893090829, 470426915, 499900384, 3743810599, 388556791, 3688441310, 4179888905, 535431724, 3910600922, 4211535371, 4145424107, 3893953510, 570493473, 4008247787, 4093900307, 3957316906, 637396213, 3587582935, 4079295771, 4276738342, 4259312603, 3876248869, 3655075804, 588178201, 3788887826, 3674678492, 669197534, 148756999, 369424345, 3891329497, 4226157549, 3894476782, 1055858467, 4178053892, 755823906, 221257732, 1139820315, 906823469, 3925089279, 485637103, 4108264494, 3992385318, 3991670281, 586215953, 4140705493, 602009363, 685108750, 4261945829, 3876252390, 3754221532, 3625064979, 3472346349, 3878093078, 3642415863, 3758493934, 4095285469, 3893240083, 3895454947, 368179473, 4226546181, 557126112, 220132123, 533275923, 3839421418, 150283286, 200602644, 3724927243, 3807638803, 3557359117, 3927183070, 4247065846, 537067514, 3743215128, 405541120, 3925597172, 3777626893, 4279054063, 99685339, 565701628, 4261464063, 367788324, 268830164, 433905434, 3454924786, 3944078570, 17288220, 519108563, 3559137504, 4215989729, 422902561, 871036636, 4126407442, 455873304, 4213581054, 522068246, 4229361385, 807999515, 502782941, 905455628, 619519253, 3960466433, 806298888, 371597566, 886775591, 588456464, 621089821, 369881877, 82519008, 4209244918, 4108588504, 115533806, 3689619199, 4263390198, 351346678, 3643081199, 283581936, 4161481172, 705364983, 3744011038, 4144244986, 703395865, 671416863, 114758873, 3608484085, 3923250391, 421980940, 4204648970, 234345246, 3336951784, 3551261746, 3455976700, 4241879322, 150336556, 384161049, 3791848169, 3474447306, 3641309400, 3657762559, 3893306853, 219673295, 456450850, 704454162, 354349800, 4159036177, 4229298715, 418638838, 3724618784, 4179951651, 3840347688, 4228712221, 604047335, 4177583355, 4091737606, 168876757, 4294049760, 3790282794, 3908429352, 66580240, 234691561, 101378295, 65482264, 200289517, 4143253786, 16317441, 333372951, 68419117, 3906989319, 421725436, 785261839, 554368025, 135720411, 3873304303, 318036715, 739970538, 67364384, 3642684710, 3873512725, 503389665, 3638482451, 3822907890, 755568664, 3844220137, 3742167054, 605297365, 4246263029, 3575515925, 3805810177, 518975510, 370742499, 3742296595, 3620477676, 3821343984, 3421038571, 84469287, 4057722142, 506199784, 2290710, 3874551601, 3688688933, 3691380510, 234086637, 219544605, 4245623279, 4093831397, 722205981, 103803399, 657008615, 438492383, 250679546, 320265995, 3671914721, 3724350221, 4111916570, 619652346, 349955038, 569239323, 3992848888, 4260960555, 4226876661, 31580136, 4045609510, 450555358, 4058588135, 269040905, 4266008635, 4227725028, 532500, 640818226, 606600461, 4193261050, 774307609, 600714503, 4007135800, 672934144, 501217321, 333177826, 3892131833, 3890091560, 538911763, 253307121, 351133167, 4159961132, 484768232, 49479940, 3977176058, 719057141, 587406882, 720841762, 3675330007, 384181489, 116188946, 3894939638, 3872905444, 3940487417, 3652772339, 3254570978, 3972652067, 12566806, 230090797, 3555642150, 3038758184, 368042231, 554305017, 3610298884, 3824930014, 3706176972, 770699769, 3646353412, 4263893257, 3825983242, 4078034408, 4112506082, 3826906920, 4162198033, 3590251993, 3945261599, 153616883, 4093371406, 671687958, 4262391777, 3541428963, 3675661578, 4027918298, 4194499602, 4108455666, 251339307, 334235905, 638316028, 737601537, 689439983, 537333738, 3723816731, 4229159414, 84814587, 67176479, 438821659, 4074178308, 404551443, 3859930074, 403646717, 4109561362, 133963506, 3837394157, 3637380423, 3271809076, 3221883434, 451353352, 3894406872, 3573470979, 4241538778, 150090228, 3859087103, 3994272727, 4013288140, 555108867, 4245161976, 655434794, 455670566, 414972951, 3973642797, 3554916616, 4057069080, 82435836, 4061387520, 3050948831, 3873160411, 3791576086, 3504583915, 3505649326, 3593514984, 4281934588, 487521009, 3926917117, 35982604, 4057666265, 4141953057, 202118651, 592423, 4026410230, 204090413, 821228329, 35196677, 687280917, 602799358, 552991219, 135987706, 437662176, 4161927705, 3775980567, 201908723, 4213695714, 3872843290, 99097569, 534244641, 3841528360, 4028492525, 3826383343, 3860654056, 601172235, 3791913460, 304807723, 519894530, 84530652, 366671322, 3726693910, 3861042952, 4127065871, 3741000670, 635166171, 539236602, 753277469, 588057093, 3692228316, 3977640439, 753209873, 371659530, 3656704247, 3554148880, 283176154, 3743947018, 3674809830, 637594156, 771032328, 86122988, 117699113, 52177388, 436212765, 4245227799, 3940166893, 334824431, 757594903, 51258894, 4293399311, 703604254, 203741474, 82977049, 4178574608, 585638670, 11661788, 3284454181, 3619015685, 4025789932, 3471026709, 3994072565, 3072185865, 150919689, 149278678, 3021464039, 3976579011, 507441406, 120984798, 3390825185, 3491430660, 4042590928, 4175743721, 4123384556, 32492776, 3568878055, 3739682783, 4157650377, 3791056645, 48412174, 672137971, 3374241031, 3323854338, 138480629, 4293527521, 321459454, 4015769057, 351986928, 3756331028, 3686850313, 3719417426, 3923625209, 283441910, 3183664380, 3035159799, 3618835708, 4293574925, 4008952082, 3355689449, 4124761845, 737664725, 173073637, 3543863829, 3958644003, 3516644378, 3303801330, 3385241133, 4272611094, 3250506191, 4040812516, 3875121651, 3857433843, 3895004880, 3826052284, 3421745673, 3271813583, 854515198, 3961327117, 3563126781, 202507245, 3149839330, 3786784498, 3621176539, 199612701, 3654206702, 4057389033, 4127448078, 3251241478, 3943889948, 4013088511, 3606892988, 3890863608, 3894929936, 554683104, 424285652, 3907390926, 3839883839, 3385113868, 3334991082, 3002335506, 3940604447, 3692028413, 3828464379, 3757441254, 435220239, 3425494811, 369412094, 238211843, 117246481, 3712291556, 454945280, 622534896, 4207723541, 45272848, 2919740672, 3942174473, 3837855263, 3842369238, 3460214552, 3088780558, 538626032, 4094479335, 3859866381, 99818006, 404230871, 3675911192, 503849950, 3944610589, 3724741404, 49812261, 419229456, 234279929, 804981283, 4242875907, 570363103, 4229891549, 771356711, 3673100282, 35130341, 4111983851, 3941928665, 187828244, 840706824, 115479075, 3689948411, 505877517, 318305534, 4077970436, 467205633, 4176410368, 740887062, 3755080447, 3994289946, 453828389, 3573020671, 300932059, 4007070164, 3807700745, 657393694, 821366528, 723852519, 38030848, 642851320, 1363626546, 136111327, 541468152, 1413365051, 37767943, 940632841, 4245364510, 755584805, 670836233, 269888991, 101324025, 805779197, 637342692, 4227008012, 3660321312, 3860718839, 404564265, 4145672946, 718544646, 3659916513, 317321719, 636480757, 3706522916, 337183241, 4125422380, 3574331363, 519628055, 4124833787, 5386, 401525545, 3675049492, 3724540198, 3371955232, 3923841022, 3237283830, 3775853056, 302765612, 3743144719, 20831475, 137609932, 4280224001, 517676551, 3793090544, 3726181918, 4230680056, 3943815955, 265681925, 622466308, 417129692, 4292936679, 654576640, 3874092026, 3638288098, 719658794, 570628314, 117628686, 4241758941, 3940356390, 3943299311, 603718937, 4124376093, 3824099878, 3827897575, 3659133210, 49620004, 216323857, 3991142875, 3559321333, 282654182, 318758615, 655757027, 4129094420, 753398277, 417462777, 467871766, 3691435015, 3844603421, 453514962, 3574654204, 134551008, 400957463, 3574467810, 267583714, 3877044711, 4146583807, 236905966, 739572491, 353042709, 384507394, 3676760084, 3906542894, 216475407, 568982236, 3787189224, 3470312482, 4039558898, 4006404099, 415171048, 3558869694, 3941646792, 4107930578, 654769947, 3658354958, 3725186028, 3707497677, 469764638, 137902055, 3928351177, 3991285475, 535572737, 877337568, 472270377, 87302679, 4146276086, 974867952, 923616495, 959323159, 841686557, 869861384, 599870012, 4192331803, 4025690894, 170141181, 48955609, 970662384, 4076804576, 4065006, 622328860, 803748064, 923285745, 288705576, 1428636452, 655504174, 534853871, 420612140, 1039025952, 469251624, 4146329627, 452730399, 3908978744, 655692770, 165339375, 264169953, 284538353, 4256872425, 163368154, 3553215984, 86748104, 3201428946, 3890605300, 253550334, 3776689654, 3742300927, 787234523, 4245228546, 4014598619, 3590124567, 656736494, 4042338025, 971372050, 922022378, 133686309, 1040725005, 821439288, 3912058390, 355010269, 755896871, 635498991, 3974560750, 3824039185, 3843234270, 32981492, 266081795, 4207264781, 3892049632, 3590255834, 3389062104, 3840341980, 3490168027, 386716929, 4008765466, 4158907626, 16972528, 251970762, 103227881, 858061045, 267916569, 603399895, 4227013860, 518328609, 334360329, 436458795, 3977576704, 3791266275, 321388321, 3977174256, 3726255902, 421059541, 285996323, 49163222, 4076066537, 438375896, 100015382, 286924289, 706352607, 3960528697, 536607259, 484370209, 3553031465, 4194567999, 14347515, 3320039461, 417665803, 3725140953, 4111593205, 3675325471, 3840540415, 539365675, 3910721294, 4229159906, 4263578358, 3959350741, 4161540366, 3593210114, 69996301, 3638301222, 103098610, 505488377, 3772260876, 268834078, 569175330, 388751636, 654375190, 168683774, 4276017689, 3927503345, 3876590835, 2833304381, 3202993437, 3959355408, 3302103024, 3185035749, 2800672535, 2969173740, 200791819, 35190551, 2867522319, 4208063229, 3017741347, 3639092740, 4146126836, 4257474591, 3621901842, 133500917, 3995934169, 251793901, 199110900, 4259638810, 789647910, 719519528, 703473155, 585369622, 148714464, 4094826277, 4230411479, 4024826627, 451534594, 3973111338, 586296331, 3164521213, 3471159557, 3436769505, 11263764, 3685921285, 4023317962, 3405494030, 3406477519, 637930001, 4147106268, 4261205211, 4161264652, 3727624713, 3915054557, 270916048, 692515029, 3623212304, 3907632394, 3540894424, 3537501708, 3989373424, 4209041171, 18218493, 63035136, 327157, 255385105, 4162386394, 299827741, 904715999, 707714024, 4162115276, 252903199, 683746778, 370396702, 4196850926, 3742243616, 3670989789, 352195816, 4177323030, 134727924, 236445978, 102374688, 201524489, 3761106696, 925039109, 3996713204, 4212581370, 623775466, 3418940693, 4209445679, 4027979789, 115998459, 12377357, 3521430265, 3943156460, 4006930159, 668410110, 3438089210, 3339515654, 4061660114, 318844389, 3575836379, 256896264, 522059556, 4130015520, 3991200750, 3807063822, 4011788804, 453520661, 3929145347, 217059110, 687549209, 4226942438, 284096258, 101067225, 4193121576, 3924426969, 3773635067, 3994280423, 885993461, 3622571734, 4278119411, 119935991, 3674854402, 253094908, 4227596579, 672071388, 653255381, 3625710868, 3910338301, 707010551, 704179683, 3923839523, 4044625111, 4057736660, 102160648, 3872660714, 684916213, 3676637192, 3708150025, 3638420194, 438492385, 3974688545, 3676031189, 858205172, 82434810, 719900921, 187571685, 3822853644, 84273369, 319485910, 3895793412, 3638368289, 506138588, 3911723304, 4191615199, 4077783067, 3794346010, 49621290, 404688644, 86649560, 3758486023, 401117, 505212695, 604826398, 4129495816, 3588755965, 3824607199, 3622701797, 500365298, 4176075239, 602214170, 283702552, 4094889438, 318970910, 3504140012, 183949827, 4079220257, 537923573, 3706716123, 3690594518, 152369912, 3908754126, 187302359, 4071607343, 3809213149, 3519283218, 3402823914, 3706380526, 3792168449, 3793401059, 3437885681, 166654144, 165730032, 183104738, 282317993, 468399881, 3759328747, 558106850, 3913539823, 85005378, 4045599545, 3357600831, 3674017806, 152558095, 183499810, 3575436082, 3705271849, 286058007, 35448561, 4026730201, 3575898629, 520413706, 3523094529, 187180308, 51516884, 3503541484, 349438454, 3843492365, 3992771112, 3840015880, 51176689, 4007919650, 49734635, 3608877340, 335934728, 3907258582, 354352163, 115210731, 35592696, 355007958, 437316088, 654107667, 4145481984, 116712157, 3959487709, 17695260, 4196526350, 469556739, 1041765618, 285852191, 641850590, 420668971, 502088187, 484113373, 202652682, 903101159, 3939903471, 888333276, 3827568091, 4076224554, 254862551, 3940366319, 3774428143, 99691055, 3874960106, 4280086541, 269421024, 551696118, 3961072368, 114756895, 3755405026, 3824025301, 517731567, 4142340357, 3772252629, 3639999513, 302981611, 3875077399, 136573713, 3911045858, 435356168, 3961264653, 3910080035, 166986220, 4242727664, 3823166172, 3573864208, 602600674, 4260174605, 202437112, 134089245, 104206301, 926280469, 3861127184, 4294389515, 70454779, 166662670, 152692202, 3906083827, 4095224056, 385671389, 4027390212, 4093708797, 672017150, 687809766, 3740932331, 570497516, 3472236848, 4095284980, 3737847322, 4195358464, 3659261418, 4044493336, 4192998662, 136779795, 3639268107, 4061789691, 369482712, 320266011, 104456191, 618149097, 214310952, 3857769192, 537394191, 454025996, 183172883, 4245361884, 3822636760, 3657031677, 249620509, 33365494, 3943554527, 3689209352, 3962508062, 83548454, 4078701551, 3910199795, 3456559331, 4162179876, 3319774509, 3384221208, 333835750, 135972615, 3773099791, 3825523475, 167910684, 3944014533, 266858003, 888345042, 4059817979, 3661108725, 154868254, 921117653, 672008976, 3875408401, 252370434, 3856539123, 4008367863, 607516975, 422893022, 4078251486, 3876987696, 4061657895, 3657105160, 605751834, 486876933, 534444530, 672660206, 266218784, 589221907, 3657108473, 4023588826, 301864424, 35328251, 536807166, 65739501, 4206959315, 4061858322, 759100964, 2087670, 4043841770, 202713082, 3910793977, 4291968000, 703345703, 4259904000, 4077854495, 3607301414, 674048238, 3924877309, 404094514, 4125675830, 4193114651, 668917793, 4278322703, 149095207, 85658135, 254606812, 3926860549, 707128796, 436532499, 4007780117, 4146397899, 67494891, 870987803, 906172971, 3873512984, 68692779, 3740345048, 768992259, 251849747, 4294190600, 4178246665, 4259050753, 4126153757, 4057215500, 237497374, 4042716125, 386380825, 4075879207, 49463003, 336578261, 3673949434, 4011373549, 3670674388, 3760194068, 3492142056, 4162115523, 3672295154, 3962366486, 236644079, 3608543997, 771482840, 3676953367, 4061979106, 3642359511, 3923911945, 183109388, 4059959576, 3558734376, 301801512, 4024950484, 3593270772, 3608928274, 4144834825, 619841832, 3974296334, 3790082010, 3724666070, 3349415167, 3249593883, 4039693630, 3399609665, 161999117, 3924798741, 3854422010, 3891967019, 4261088196, 3007238374, 3206216434, 3571974923, 3675444518, 608099800, 3643149584, 523237914, 3320640844, 3035031825, 149423122, 4144553971, 269736728, 3756843577, 4127256848, 4012231959, 4027845604, 3370655508, 3894991625, 102828027, 3692162351, 4264227563, 69992193, 3692091121, 4039040769, 3690381843, 3201034764, 28103930, 3185899990, 4060022547, 3254243319, 4227331549, 84404197, 3694587350, 200789767, 169481985, 3959170791, 389229851, 472853240, 3792957212, 285141820, 3957189130, 3638684983, 248184300, 3857960992, 3976069172, 3757436651, 186576889, 703002327, 622404577, 3789744621, 4124366082, 3909223717, 652803816, 335683073, 53479405, 4009633017, 3860060643, 3959692845, 669653246, 4059637264, 3841326623, 3926916350, 771104558, 520559634, 433841927, 4026541329, 3756976905, 405724890, 3774740517, 4209314005, 170274074, 3944284385, 3588491732, 183758806, 603981058, 4195026942, 4111988498, 4044362720, 3725332964, 370682851, 270142717, 569645088, 3790467318, 753339860, 3945078513, 387056155, 402465248, 33887529, 488444633, 3960399592, 3621989090, 3861181720, 517213696, 85266945, 3910401771, 484384481, 187238698, 602345227, 621077795, 3810518559, 3708678945, 4096190681, 454030311, 44287762, 4191088650, 468571136, 398907900, 502125038, 419355373, 3955753677, 4142518532, 4091425237, 284025033, 3643802337, 385620225, 4063443950, 135331289, 3577795095, 4059246828, 515833831, 4073637125, 16110101, 3994151392, 4009817837, 3924492035, 3437948974, 4276024606, 84466176, 4178900770, 4063698723, 3859080934, 519830765, 4060154355, 121245996, 589429535, 4123452721, 4276232985, 551744048, 588579327, 153018372, 456124401, 825431810, 3892055352, 671946262, 305524229, 3860077067, 737686542, 723056388, 707597356, 3927124696, 4294312471, 638201329, 422577410, 3957062898, 3975222813, 4027583749, 517866738, 3907057661, 3958897434, 740876070, 4108450314, 669245216, 3909822988, 100213547, 3844665053, 3823435256, 853154328, 183628566, 3660250072, 436541401, 353885221, 4058913004, 3558022638, 4043769598, 4163642333, 669783816, 4292684052, 301925633, 3743996181, 101198324, 552607237, 4041867007, 3740928545, 3534280467, 3958023916, 3790717420, 3974031650, 3972725772, 3456157681, 3659852807, 3034109659, 3554406684, 3496004804, 3025000448, 3459770815, 32825345, 224001724, 4262790892, 69006857, 186983941, 36296409, 405140464, 3842119679, 3873253410, 3858506973, 369752348, 469954048, 183233806, 4178504421, 603775497, 3575188714, 688982771, 634654200, 83560226, 3641635542, 3790855713, 4228384028, 569764638, 3674867469, 3592558629, 436278551, 181408719, 3758940183, 4010667036, 3471118570, 3826573287, 4096187176, 64611606, 4024425508, 3571454952, 252244738, 4110684449, 4109966354, 789388582, 3906079026, 4260883708, 3860005087, 4213234489, 116117764, 3861062896, 167318034, 420148508, 504630806, 433972255, 519768086, 653451770, 721824027, 719381538, 3893305588, 4294713839, 283122988, 4144830741, 634662109, 285799904, 554629370, 703466786, 136044324, 371382558, 16701197, 284563943, 500568028, 3941396517, 3744130286, 671087324, 554168304, 4262265589, 587865071, 317653485, 4007862570, 3773634793, 4125294602, 4126091537, 4261937384, 4076674076, 148446690, 3726513634, 4228705582, 4213241562, 4179621869, 182191388, 4157925872, 4094552542, 3656054235, 4024375305, 4176679414, 4176280095, 469623838, 3811114230, 4158072546, 384500267, 2627076, 438162721, 3794278110, 485483009, 4025550064, 3772447762, 771235284, 351336954, 887744260, 150921496, 203625685, 336278743, 4111277089, 3944615666, 3807978465, 3942121253, 3890208757, 468319238, 4277931256, 3978102303, 823908611, 604256261, 284164652, 771699476, 839595241, 250817816, 231792377, 248970463, 802220240, 4009887705, 371261889, 3860843515, 4209318404, 3910804266, 168290528, 3860974620, 941878248, 589703655, 3721864939, 3995006996, 3605468653, 135190518, 335421182, 3571784746, 704635415, 4229499661, 3891138039, 4158464551, 604691488, 3743487975, 638332901, 568581343, 806411765, 735370518, 4196389906, 3622496739, 4010421223, 651691281, 640346072, 521788679, 4262717660, 4094568164, 336321022, 3928685025, 3723235030, 399823640, 2824161, 14097684, 706611674, 218508270, 740042024, 3844010511, 3961250054, 83364377, 4146853620, 3722314466, 3710638323, 4192393986, 319552245, 3777234443, 4177400612, 3740521967, 153678336, 4158923514, 538110960, 3969964273, 4121865706, 3336491473, 4172542979, 111457795, 3552948719, 4058167310, 3925526036, 337706994, 4075928572, 3391141586, 3776098542, 3808173809, 3691899150, 151574781, 3539852775, 3287603448, 3337072936, 3755723244, 4190360611, 3587498209, 3203777814, 3168127241, 3217600477, 3622888697, 3254046964, 152555513, 4108908021, 217782767, 4010201098, 3809151757, 4078555106, 4257944291, 3719545067, 4194697504, 3504983587, 700177663, 3405709549, 3807164182, 501484801, 872418085, 3627210261, 4229746687, 4096578061, 654309338, 4228377359, 790569213, 83572197, 3775137524, 4110145042, 4141886199, 706935044, 202709786, 3874879989, 3693282538, 3605790757, 656140009, 34474993, 3621651684, 18479380, 4294842091, 3555384845, 287175973, 488116460, 3810985211, 167968505, 1006632181, 822796324, 32714516, 623655948, 4074449691, 487984355, 707453665, 184482784, 268632091, 466804995, 3707250145, 3705868070, 738656542, 301851142, 3554663126, 4141819142, 3759796230, 584911576, 472645152, 187045659, 587005725, 500568551, 3606900196, 553836020, 4180158208, 435345634, 131787996, 102366734, 3639550241, 4110486282, 636946945, 116445909, 181854954, 3911131943, 354413096, 606460376, 3841134888, 203617007, 738663944, 386279670, 134488330, 824571916, 437715975, 4262603246, 849119, 3741189920, 301344030, 337046811, 418577421, 506209053, 3825262883, 4008634358, 187160306, 404818705, 3558218791, 4025219066, 471792599, 567806736, 4247391246, 98883559, 236989416, 168947999, 722614226, 119403226, 284178174, 4243267828, 184346127, 4142732003, 4092142636, 3809017837, 718668266, 754724385, 234551794, 537728797, 284433624, 3742969332, 4108327408, 838866469, 4243332870, 4059491845, 673703913, 169481507, 286721040, 3639935273, 3974762006, 3824822797, 4075229967, 3638167024, 421924353, 3609723433, 3910261465, 19593754, 704392200, 282658067, 740626984, 419166686, 621611227, 889451300, 204005342, 435564038, 890452203, 4008848945, 19139315, 4112968927, 869794580, 417201966, 791081700, 181796838, 385947673, 4141943577, 4108117487, 3960469809, 3672384034, 383653422, 68430886, 4060477462, 136776668, 33698029, 470428655, 383246326, 3825866463, 4227408173, 132716531, 589304069, 3792700126, 486738170, 3048263949, 3250501092, 4007447064, 4138053145, 3351899626, 2902381764, 2954469645, 3955545330, 298978010, 3205156367, 3440044979, 3305232367, 4110682128, 340777953, 319884766, 3423982040, 3892775964, 4141876687, 4209256232, 820044510, 353575946, 3687711511, 34285301, 488709663, 317203199, 4027914962, 3690717183, 405725151, 3909425173, 4158324470, 4158976235, 317584099, 586671581, 3573940436, 3621775599, 471992826, 738389760, 500557579, 3656375308, 571352301, 4144756762, 4077134871, 233315541, 383448319, 3939888425, 605941460, 4262404642, 282845401, 654040547, 3557293048, 3575571498, 370012384, 3911707632, 3690524450, 302514700, 602398447, 186389002, 4144297730, 3672384492, 200537109, 3792696827, 167966979, 4280753923, 3890666220, 3810527211, 706095867, 536151308, 4229224470, 635370498, 3592622351, 16129574, 4196147709, 4195871450, 3960723497, 3974692584, 3891274969, 4259055120, 353170921, 3758550814, 4226930179, 4121290771, 200077270, 246728157, 3537877456, 3673409041, 3557483511, 152091889, 3503609599, 638579440, 2748630, 3341419463, 216711856, 4294059522, 271717082, 3928876806, 3928879860, 3807519760, 3892516389, 686174515, 135197417, 4097109015, 4059107139, 4075548472, 3925870081, 3525833988, 402332136, 4157532960, 3992382722, 3810464285, 552088351, 114303968, 84406517, 4145148449, 388241906, 4109183776, 3757636854, 402188542, 320802019, 185206803, 321597439, 536747500, 468135687, 4007595789, 234360607, 3709608746, 840370705, 554428963, 723773162, 4206162974, 4193376057, 4279289595, 4038776845, 61336846, 4077106384, 3372473830, 4039896339, 3508004855, 186122168, 3875670260, 4060604936, 703541513, 3545100801, 572991721, 3895782863, 81057559, 3654822168, 135669222, 34934051, 3978548451, 4076199403, 3743421429, 285997078, 4158321375, 584061469, 3940215000, 590352597, 4247511062, 3606248968, 400829452, 570417632, 3689350134, 3604487903, 115731414, 203421223, 3791190571, 3927706617, 369877785, 3741835526, 133293067, 4210627349, 3575382787, 3792172263, 3608217340, 3962098906, 64616483, 4044623068, 216000308, 233178677, 4077320501, 168498460, 121103835, 2751449878, 3993099553, 3828476397, 4062058531, 3659470862, 84088043, 3506363664, 3760459789, 3774676751, 3906922249, 33426714, 3807637768, 906177578, 908270893, 3776115713, 119739932, 218241027, 792208946, 51456769, 537463048, 3872798699, 4245164017, 450824741, 3977977334, 268962519, 4260685785, 535102488, 51965144, 283056925, 4211212820, 769525798, 3909869044, 3825586983, 4076984594, 3474067945, 3842104797, 351282145, 3825932847, 218290646, 486992945, 3706649354, 3771930081, 3773946860, 416952566, 417540391, 3625388589, 4077400097, 651365415, 400160774, 522987244, 535294180, 4012832744, 534379988, 333769728, 4095279912, 3839551476, 4028164863, 249770513, 452716055, 63029516, 4138661847, 146191832, 29212923, 3620916948, 3150821604, 3471965214, 3320839148, 4041869786, 85982425, 3678713874, 3773352901, 3710128899, 222554842, 4280280055, 3858363619, 3726447381, 65533466, 722790191, 169277691, 201252902, 4192328711, 166210264, 368578829, 103211280, 488168690, 268547, 687794955, 3691454711, 3809480179, 3789547819, 4226276376, 3167409961, 4178364432, 317714209, 330758414, 99420964, 3892375314, 3890411743, 246999074, 49688314, 319016679, 4031238857, 4079997150, 4074776788, 3845529064, 3527543312, 135658485, 4078903303, 3759666393, 50795809, 4012368113, 133363701, 220401373, 3673354225, 355015416, 4194098949, 4226414864, 3773424381, 234418662, 651747069, 620305142, 3808950527, 471269859, 4091475220, 285529109, 3975739659, 3389112878, 3639597052, 3759998960, 3741243849, 3623686366, 534177549, 4262402837, 3642023167, 134865158, 923067881, 452109, 53153263, 4062641139, 3773827089, 4094750990, 117432577, 219953631, 352257559, 4144507396, 3707712289, 127974, 351217637, 3605724675, 734931500, 503265306, 288089868, 4278324697, 4145733123, 4196329714, 4292995593, 3975028759, 520674330, 4228779775, 69075926, 3974175455, 4161201895, 552398078, 383190534, 183641346, 3856462860, 4244443163, 185805026, 604184542, 3856671752, 3843286003, 166985260, 3893939225, 3839546374, 3955809583, 388172020, 3811826907, 4059025678, 3675587060, 468910327, 4194118431, 254999773, 655095289, 150600478, 3962844199, 641342424, 770831898, 806940170, 4158920714, 822011426, 4129691163, 770044202, 618983470, 3809421093, 4145281548, 3789040664, 3994872098, 168569860, 4044224788, 3975545854, 734919433, 3840938971, 100802818, 300080343, 4008322326, 690358514, 333852130, 3843043622, 353167659, 572454642, 791361331, 4077136158, 3873382962, 3961530893, 284229133, 605810970, 131405801, 672597538, 4280614903, 3590446338, 4196394771, 489034472, 164959532, 4146125819, 387571161, 3958706922, 3672572178, 3707296300, 3943292202, 3841584681, 3844728805, 3974556636, 3974501905, 385685729, 3724536334, 284886792, 4143857396, 3874897680, 871165737, 808194060, 233249028, 454571325, 3993304329, 3944626730, 452854534, 251724820, 790573797, 3940421630, 839378208, 265688537, 769537494, 3969780221, 3081945370, 3020804128, 3856006693, 3552568302, 3941710345, 4091802310, 3219715066, 3525103859, 3976131787, 3492858854, 3876510212, 890050786, 3590392087, 3813200077, 318451167, 454893553, 303167784, 4243253222, 4228508175, 521411090, 3688897276, 585759205, 4077840901, 3960596477, 453762012, 4144358625, 3675713317, 301532677, 3855934994, 488167165, 4179953937, 82571301, 619973368, 535963955, 17031395, 17051187, 351531312, 571215651, 3775140403, 3790407674, 417200863, 3591366943, 284745486, 3841206001, 3895465485, 217517593, 4262858454, 3568964352, 3521172027, 3857573115, 4255441675, 82901216, 4090684131, 3523129338, 150069488, 3573617400, 3625499897, 3174031563, 3756971742, 268296195, 353245136, 3895328268, 304012306, 3722583325, 316926972, 3556956452, 3994228196, 3944938721, 3638554877, 47572736, 3727433970, 349707743, 4226552855, 200728588, 3995662104, 285146396, 722459863, 4280408789, 83884783, 4230537205, 3672447470, 572006411, 187442396, 704043520, 786949853, 3608289048, 4111594761, 502071770, 467335656, 3659195865, 286193895, 655172083, 4192856870, 3825670686, 4211990529, 3702110445, 3724339500, 3788102887, 2915231263, 3148203497, 3053182928, 3456547551, 3170624240, 352906495, 4012750342, 4080787963, 585493979, 570230796, 3965252352, 3863806223, 168828154, 203376674, 238307046, 137836536, 68168681, 4262142497, 941711425, 790570038, 808728854, 83243274, 851847926, 4139733042, 132839194, 637528064, 437076708, 216605957, 736753442, 3858427711, 3306278391, 3437696520, 335215100, 4075356719, 3791458085, 3090276847, 3705738998, 418258923, 4231061556, 3657686297, 135212563, 519572971, 3237801776, 3844684817, 3220707594, 3486637079, 3841646105, 115406061, 3638222817, 4173272035, 3387678477, 220327170, 3809462781, 568666406, 3689997017, 4178320591, 3940411915, 4129367018, 405677524, 4096590113, 4246274049, 347795955, 248312857, 3988720648, 4022930687, 4192007438, 584314326, 452711182, 466739749, 367465219, 653055438, 4262070771, 666309354, 185734960, 908780060, 3960795665, 940896005, 4141677061, 3743357669, 153036840, 3990165495, 4261876730, 3978302975, 3776772321, 269361382, 167251745, 4197196811, 822544886, 4243069178, 787094237, 3844995371, 65739736, 4194833883, 3726515430, 3957645059, 152369693, 551083805, 321976852, 619183134, 3942375655, 670044385, 383852557, 804595947, 283434476, 32507865, 165936342, 4075165693, 452586532, 755103704, 3790660363, 3858179319, 316345056, 602803676, 387901968, 3706382562, 450811381, 320479710, 706489112, 4227405027, 4176672289, 686617819, 367126304, 4094618924, 3945524709, 3726777848, 3693866495, 268572694, 186326777, 4180155173, 4211660275, 4110619915, 554969626, 3893291796, 165871376, 3874682381, 637335063, 3673692927, 3710442498, 723984874, 636147179, 3906866439, 420541152, 522049313, 3705394196, 3894074852, 3792114149, 303097556, 3656522235, 3892837161, 3908162837, 754640367, 99558432, 404348919, 485303011, 3622250971, 674031358, 249484771, 652419862, 3874434843, 668407611, 4145351135, 404808723, 4225763314, 486471163, 887021587, 3674337760, 3620662003, 4111733489, 4178055164, 320221220, 505806599, 842391837, 3907316509, 536665897, 51258918, 4231197457, 653211170, 590025450, 4058584822, 166070011, 100352254, 4276164110, 3757243946, 702691618, 4209324849, 737154542, 185266411, 757203728, 4143850466, 603389171, 516624374, 3654406613, 3672970761, 82260180, 656595149, 3657763046, 131013835, 819209942, 3960862191, 3692349940, 752952029, 506010374, 672731923, 3892770529, 887432728, 4206866961, 16364553, 96922894, 3874744876, 3299786731, 3087326681, 3454449626, 486468335, 4195619025, 3511027950, 3811503334, 690159565, 623307814, 4230222844, 774696930, 4127581460, 432217314, 335141855, 3620599602, 4245742331, 3721648132, 572989978, 4160412691, 737671404, 3725789657, 787678199, 249685749, 858837746, 4278651887, 4246015260, 4094564351, 892475120, 153754654, 3824294675, 685626838, 150542113, 3974491400, 3707376920, 3760182792, 4244577751, 249691651, 14099431, 4112591895, 469563166, 66660075, 366617335, 32496157, 3842497791, 3995079701, 367256319, 4042973923, 114694385, 4027853818, 418968298, 369689889, 3928238619, 181930519, 153102358, 3990223576, 3708610038, 3890669576, 4209366572, 584591861, 3791070746, 3726380327, 4192018952, 3909013458, 3725399793, 669653005, 4196327911, 84933920, 4293727475, 3944610345, 3976400844, 3659409358, 3538421463, 3675183887, 4177338607, 3906469392, 438624518, 2938689827, 3375239983, 68227073, 4260175926, 4209508099, 3979333915, 2970751035, 120580389, 4145414116, 320072468, 15264797, 4246081563, 3503752169, 3488599314, 3171821313, 3809472784, 671023633, 4147462888, 757678595, 1224418064, 739196918, 167456327, 1458331676, 70081292, 3958047992, 499728700, 1221858627, 856442895, 103484119, 3974037757, 382546156, 68852, 62635810, 145747924, 3438725662, 3567831002, 97054488, 3889289725, 3606435591, 3822451960, 4013357572, 373034981, 4112638661, 820576999, 318505687, 4130466041, 3813205523, 4045016840, 3940878356, 4258854932, 4259956233, 4089771557, 3808110365, 348454890, 3304310807, 302365730, 3743096568, 3845780252, 4212186346, 3859411188, 886254086, 4198102821, 3928293140, 65994499, 501229312, 3656973275, 136244257, 400737827, 4211490021, 755711495, 370745361, 351982878, 756435203, 4047573032, 422317359, 3877962779, 517685013, 4042262269, 4107873784, 4143779311, 3739599086, 3954505431, 3972247813, 3337733849, 267775241, 3574708239, 148348666, 3084118027, 49151444, 3644450575, 3204102148, 203667660, 238089934, 3809988874, 3861841677, 524420856, 652808725, 4213108955, 653336552, 4158445293, 838278682, 722853364, 703006213, 52225053, 85004042, 3858691366, 586807075, 3777951264, 4074506235, 201261847, 4279513124, 319679731, 148968168, 3541623552, 4026660315, 4275248406, 3688679679, 167382782, 4161591560, 333236492, 50063585, 33158610, 288156907, 4161869602, 4259718674, 4264617222, 558046705, 959312351, 3557629672, 3622226931, 3691123494, 504621071, 350740011, 133616670, 101828902, 551944928, 268511713, 4160607193, 268759564, 468707865, 501687563, 288497628, 4227608564, 70725151, 285544154, 4110027491, 569437158, 3771523806, 4044347434, 3541891020, 199560929, 618796762, 185852685, 3658228703, 4144043217, 924068634, 3974494435, 4063500787, 253951532, 838012636, 466804470, 469818140, 3691112444, 4144764721, 4259185417, 703524398, 3674210776, 283974900, 3810070253, 3856601344, 4213764333, 4145544915, 317776875, 4111409159, 1176036, 672269346, 135205670, 70725116, 540667380, 4177270761, 586891300, 590490426, 19796253, 351681253, 535570732, 637990716, 266667544, 4026542084, 4260441613, 4160104741, 4091474695, 3709002500, 3688556588, 3940418084, 151314725, 584254183, 3690859757, 163634214, 3522221787, 4159628011, 3805679326, 4228105987, 3387748825, 3894791888, 3606455536, 17363416, 3861912588, 4011778783, 147986439, 4091551227, 3841839377, 34809326, 3507412239, 471587563, 4224906961, 856033750, 4143645434, 3823442425, 68165332, 420091576, 432744158, 604191254, 538513422, 300562397, 3759605776, 3706322202, 654904581, 300158952, 706092568, 4057793011, 468511741, 3759219471, 504042518, 4175301145, 15736043, 455283453, 3841076480, 3711296241, 3925878264, 905176342, 332522817, 517411098, 3320441635, 301008132, 4243978973, 199491097, 3754418647, 565376524, 3977502441, 3977898947, 636868351, 370660116, 553590302, 473232157, 305321212, 586286329, 3858298129, 451143421, 3990216683, 3872594216, 536227089, 4060403745, 4059692301, 1003091741, 316199897, 617618946, 722143186, 1090331410, 1090131678, 422121975, 169220898, 252060667, 3605197340, 4126667579, 3305101067, 4276615711, 3219709459, 17166396, 3352290332, 4055236385, 4059612409, 54507780, 3324306960, 3654292679, 16460520, 3645429487, 4097047518, 906234149, 15195944, 672863268, 4278594063, 4213510663, 4226884115, 350292775, 402517778, 790233842, 18623711, 4294766625, 434119929, 150333224, 469043483, 589378297, 4213386778, 117774106, 462070, 3742042891, 652091944, 655552296, 3705805534, 619959810, 535955992, 367602701, 722279126, 82443780, 401340948, 3592814571, 4010403827, 672671489, 3371486940, 740022239}, + {355270656, 3876388864, 587464704, 4078895104, 551223296, 48300032, 924909568, 53280768, 3287613440, 3641114624, 3854893056, 234946560, 3520135168, 2997944320, 3670147072, 4022730752, 4005429248, 2663972864, 3470917632, 4225826816, 3910336512, 3070885888, 3926327296, 4224974848, 3642097664, 4164354048, 3826909184, 468451328, 4128964608, 115671040, 404422656, 3492151296, 3218210816, 2447572992, 3534553088, 2745761792, 2850160640, 3149856768, 3269918720, 2568159232, 84803584, 3341418496, 2349662208, 4193976320, 3221815296, 4079353856, 370212864, 3875536896, 741081088, 81395712, 571932672, 3792240640, 756285440, 4074307584, 3839098880, 3841392640, 3656187904, 3572236288, 4226613248, 352780288, 338427904, 169672704, 4076011520, 131858432, 572981248, 556400640, 68091904, 4177461248, 1024524288, 4025810944, 135135232, 387645440, 4076273664, 282918912, 890830848, 1072627712, 517406720, 4290969600, 769916928, 451280896, 3841785856, 4263968768, 405798912, 351993856, 3725918208, 49217536, 4028891136, 3572957184, 215678976, 386596864, 3993239552, 3570991104, 3709337600, 3674406912, 199884800, 4075487232, 753008640, 4110417920, 989855744, 4264886272, 238026752, 671875072, 772145152, 4193910784, 767229952, 4077518848, 671547392, 3789684736, 65994752, 4093509632, 4241031168, 3807576064, 333971456, 4077322240, 570753024, 4091019264, 3806920704, 302579712, 3707109376, 4145283072, 4242276352, 4025090048, 3725721600, 3657826304, 3844079616, 452657152, 702676992, 3725459456, 383647744, 3672506368, 3756457984, 519438336, 455606272, 4192993280, 4177002496, 4175757312, 4229365760, 3709009920, 483917824, 4246470656, 3726966784, 102694912, 4076404736, 4261937152, 3656318976, 216858624, 435027968, 286392320, 420282368, 147783680, 3268542464, 3726311424, 3741646848, 148635648, 3556900864, 3693543424, 3941400576, 4196007936, 586022912, 3843358720, 273350656, 640942080, 641597440, 789381120, 1380384768, 387710976, 440795136, 1127350272, 416153600, 1104084992, 80150528, 4175298560, 3520135168, 3420192768, 3974234112, 3972202496, 3452370944, 3975479296, 4223467520, 3938451456, 3689283584, 2768764928, 3189768192, 3419865088, 3790929920, 3861905408, 251658240, 83099648, 18612224, 355074048, 672071680, 4177592320, 3842179072, 327680, 3417964544, 3484614656, 3874422784, 3921936384, 3906732032, 2730360832, 3306946560, 2818965504, 3638951936, 18219008, 4078764032, 3626237952, 3944218624, 355991552, 3659333632, 235732992, 4028497920, 250609664, 3856203776, 3672047616, 68812800, 3657891840, 3589996544, 638320640, 4244307968, 3555917824, 3993501696, 4144496640, 236191744, 3775463424, 3927048192, 3272212480, 3335454720, 383844352, 3169910784, 3201236992, 2881880064, 4193320960, 4127916032, 4012638208, 3405774848, 301727744, 4127129600, 521011200, 537853952, 4127981568, 133824512, 773193728, 322306048, 4199546880, 1156186112, 654704640, 486211584, 606601216, 114950144, 1071775744, 956104704, 3989110784, 4058120192, 3316252672, 63700992, 3101163520, 304611328, 456654848, 543293440, 88080384, 4266917888, 151060480, 336003072, 100335616, 1160118272, 153354240, 1003814912, 1054539776, 66125824, 700973056, 582877184, 350945280, 909574144, 1191706624, 994181120, 1144389632, 1008271360, 4161863680, 1076822016, 4010606592, 700645376, 670171136, 666238976, 566755328, 4010278912, 3505913856, 2918383616, 3705798656, 3874422784, 2262106112, 2311716864, 2950299648, 3072262144, 3642294272, 2937257984, 3711107072, 355008512, 754974720, 4228120576, 673120256, 384368640, 4144824320, 3471900672, 3454271488, 656211968, 3924688896, 452067328, 856752128, 619905024, 4145741824, 270204928, 349962240, 3637968896, 4124573696, 4027908096, 4059561984, 420216832, 3471704064, 199294976, 3926065152, 526057472, 889913344, 184745984, 454295552, 688062464, 1345191936, 1109458944, 754515968, 603717632, 737345536, 467468288, 4056154112, 4141350912, 3805675520, 447741952, 3387490304, 4176674816, 4176019456, 3893886976, 3708354560, 3692101632, 4178444288, 4062380032, 3503685632, 3811442688, 3760914432, 3790143488, 501678080, 537722880, 187236352, 4259905536, 573046784, 941883392, 104464384, 155516928, 1178992640, 4181196800, 4162715648, 150732800, 657719296, 821035008, 246546432, 484638720, 4106354688, 4039376896, 3873832960, 4204462080, 4174118912, 3907321856, 3789750272, 3676176384, 3877437440, 589824000, 3945005056, 737148928, 237305856, 601292800, 418643968, 236519424, 3558670336, 4129423360, 4194041856, 539557888, 468385792, 434962432, 3741515776, 3710910464, 3726704640, 4229496832, 4025090048, 266469376, 3741777920, 603717632, 3841654784, 3978362880, 4108517376, 282198016, 501350400, 3794010112, 3844341760, 102825984, 3436052480, 200146944, 585236480, 536346624, 3491364864, 3705339904, 3524329472, 83623936, 4044881920, 4280942592, 488112128, 148832256, 4293656576, 3524001792, 655360000, 82706432, 3520987136, 3687645184, 4108713984, 282198016, 3977904128, 4061331456, 3539206144, 3910795264, 3808821248, 3492020224, 3790929920, 3843162112, 4060741632, 4057858048, 137166848, 115146752, 3827171328, 703463424, 148176896, 705167360, 4129357824, 4246274048, 4247257088, 3842179072, 300810240, 570163200, 4062511104, 3794141184, 452001792, 4127916032, 3744202752, 4060872704, 521928704, 567869440, 4061462528, 654245888, 668336128, 17301504, 170131456, 3672440832, 739508224, 4292476928, 637861888, 100532224, 4276420608, 603193344, 99352576, 51576832, 2884632576, 3048603648, 3388407808, 2881552384, 2967339008, 2984509440, 3185508352, 99614720, 3072524288, 3086352384, 4227465216, 401670144, 252116992, 3959685120, 4024631296, 604897280, 370540544, 70516736, 4163043328, 16121856, 169738240, 4029284352, 3408592896, 116588544, 3791912960, 3591700480, 3185770496, 2984378368, 3927638016, 3235250176, 3034710016, 402915328, 66519040, 4077977600, 3521380352, 3974758400, 82575360, 201195520, 3755540480, 416481280, 3861118976, 3926982656, 335544320, 4277796864, 570163200, 4259119104, 166264832, 776470528, 4127588352, 642449408, 405602304, 872480768, 535494656, 4230873088, 1043202048, 315621376, 770834432, 568590336, 4245422080, 3703373824, 384565248, 197787648, 3169517568, 3762159616, 3035234304, 3808428032, 98828288, 3962372096, 3174105088, 3975282688, 118620160, 635895808, 4129554432, 3757178880, 120127488, 450363392, 573243392, 422051840, 551223296, 3738697728, 117964800, 199426048, 4042457088, 169803776, 233242624, 3827171328, 468058112, 4279173120, 3873177600, 32768000, 3660120064, 200146944, 385351680, 4242604032, 3488546816, 1276379136, 1432092672, 406716416, 34603008, 1157103616, 573767680, 1009123328, 1039204352, 851181568, 151322624, 265093120, 1124794368, 4041539584, 148242432, 4021878784, 3418619904, 622592000, 49348608, 3877568512, 687144960, 338362368, 570163200, 4013359104, 473563136, 4107337728, 4142727168, 4226809856, 3804889088, 4055302144, 4142923776, 351469568, 4009623552, 152764416, 323944448, 4211998720, 892403712, 958660608, 1245118464, 1345454080, 823001088, 64028672, 4258988032, 1003880448, 1020198912, 3469606912, 502333440, 80084992, 3655467008, 3371368448, 3503554560, 3610116096, 116129792, 3369205760, 404029440, 3757834240, 3842179072, 2849767424, 3050766336, 3859939328, 3855548416, 3623157760, 3455778816, 2935095296, 4090429440, 285736960, 904527872, 85983232, 168886272, 4261543936, 366477312, 838729728, 669777920, 367263744, 14090240, 152371200, 283377664, 3356295168, 3388211200, 4258725888, 4244373504, 334168064, 786694144, 367329280, 671154176, 101777408, 484507648, 1037303808, 633339904, 3573612544, 3806920704, 4026073088, 3770679296, 4043374592, 3673882624, 3672702976, 3655401472, 3722838016, 4111007744, 4060086272, 3558604800, 3604545536, 3492085760, 4247060480, 4208787456, 302448640, 421593088, 352452608, 3906469888, 3707043840, 284491776, 366149632, 4175298560, 100663296, 3323985920, 3688431616, 116457472, 3391619072, 3069968384, 3558408192, 502398976, 17694720, 3957981184, 3387555840, 3659857920, 3824156672, 300220416, 3489726464, 3925868544, 618397696, 588120064, 404029440, 4160487424, 588513280, 34930688, 3794206720, 4158259200, 4079681536, 421003264, 4226547712, 136773632, 3689676800, 350158848, 52101120, 316538880, 152633344, 4213374976, 4058120192, 471269376, 14483456, 268369920, 132317184, 4278779904, 4145283072, 486211584, 3454074880, 488112128, 3924623360, 520093696, 554106880, 4176805888, 488701952, 3570401280, 3772907520, 3437625344, 3671457792, 3251961856, 3353018368, 2898132992, 135856128, 3136290816, 3575054336, 3421634560, 3439788032, 3239051264, 135135232, 66125824, 3792437248, 3856793600, 619708416, 4128505856, 484835328, 287899648, 52232192, 3792175104, 220463104, 32505856, 317259776, 3912040448, 3807707136, 3979083776, 3672309760, 3856138240, 4096327680, 586809344, 790429696, 639565824, 855638016, 588447744, 584712192, 168427520, 3214802944, 4090167296, 3285516288, 151126016, 2634022912, 2678587392, 2649554944, 3639541760, 287965184, 3742957568, 3187081216, 4212129792, 4178903040, 3629252608, 3494903808, 557645824, 4126146560, 217710592, 82706432, 4293591040, 4075094016, 3034578944, 3134652416, 3491627008, 538116096, 187039744, 3793354752, 318308352, 4294115328, 3607101440, 4043374592, 3909877760, 3890937856, 488243200, 735313920, 570425344, 3959750656, 4144758784, 4059693056, 3723558912, 858783744, 4228775936, 4008509440, 4164026368, 16318464, 166461440, 4111663104, 83623936, 4161339392, 66584576, 3638624256, 4038590464, 3659857920, 3856072704, 2952265728, 2968322048, 3863085056, 3809607680, 3642490880, 136773632, 52428800, 4024172544, 3287089152, 3810328576, 84344832, 3826843648, 182255616, 521142272, 4095344640, 216137728, 669253632, 3890872320, 46727168, 4292149248, 3351969792, 4145676288, 3104309248, 3350462464, 3486842880, 2765684736, 0, 2852126720, 2501115904, 3656450048, 134742016, 4232118272, 3946512384, 3761307648, 3857973248, 471400448, 489947136, 454623232, 3758489600, 235077632, 169148416, 687931392, 386269184, 219283456, 3858628608, 3790405632, 451346432, 118358016, 4179951616, 3858563072, 254672896, 673513472, 321716224, 3605987328, 484442112, 790233088, 620363776, 452984832, 553648128, 3840409600, 436207616, 4194959360, 3538681856, 3856596992, 150077440, 17367040, 4260429824, 3739222016, 4143775744, 198901760, 302055424, 4113235968, 4043374592, 3894411264, 520683520, 200802304, 688128000, 83165184, 103088128, 685703168, 4074700800, 182845440, 268304384, 573964288, 234160128, 702611456, 4057530368, 3417899008, 3738370048, 3334340608, 3738566656, 3217752064, 2886926336, 3320446976, 3302162432, 3237150720, 2738028544, 83558400, 3721789440, 4191289344, 3086483456, 4041670656, 216137728, 3268608000, 3552575488, 4056875008, 3775660032, 3692953600, 4246798336, 134873088, 3592880128, 3811639296, 3589537792, 3404726272, 106102784, 1211236352, 218759168, 877264896, 957874176, 15335424, 1176109056, 266797056, 4004577280, 1018691584, 1001586688, 47382528, 4207476736, 4225040384, 3500408832, 3552706560, 3861774336, 103743488, 3760586752, 4262789120, 3523477504, 584777728, 3840344064, 3671982080, 3389718528, 181600256, 200409088, 3821731840, 2917400576, 3553165312, 3117416448, 3602644992, 82640896, 334233600, 285278208, 3558473728, 418250752, 102957056, 3626434560, 620101632, 387252224, 3926720512, 84869120, 3671719936, 3705602048, 3823108096, 606011392, 200671232, 19333120, 4112252928, 4260823040, 218497024, 217448448, 47972352, 4011655168, 3857514496, 3659923456, 752091136, 4058513408, 3924033536, 53084160, 131530752, 282591232, 270401536, 552337408, 472514560, 855900160, 68485120, 153026560, 504430592, 939393024, 771031040, 3924951040, 738066432, 282918912, 268566528, 3669426176, 3738304512, 3452043264, 3501522944, 3707633664, 702218240, 505217024, 4159897600, 3775660032, 736231424, 149356544, 317915136, 3741908992, 3872849920, 320339968, 4009754624, 337641472, 4025286656, 740491264, 4209442816, 401604608, 63766528, 4059037696, 3570401280, 3825270784, 248446976, 352976896, 3470393344, 183631872, 3475898368, 333578240, 3538354176, 198443008, 702873600, 3542745088, 3822977024, 972881920, 691666944, 907214848, 3504930816, 4211474432, 872087552, 68681728, 3958767616, 552075264, 601882624, 685506560, 49348608, 3337748480, 97779712, 3100180480, 4258332672, 437190656, 536608768, 1061552128, 922746880, 36896768, 102170624, 387907584, 1226964992, 382140416, 968687616, 1052508160, 317521920, 282329088, 3705798656, 249430016, 4224581632, 725483520, 3609526272, 301924352, 354091008, 3742957568, 3722772480, 436666368, 4177068032, 4012113920, 4124639232, 4262854656, 3991076864, 402653184, 4059299840, 100073472, 4026335232, 4246732800, 3928686592, 3606904832, 3958308864, 187957248, 3272146944, 3524984832, 3689938944, 4248502272, 3977379840, 103415808, 4143775744, 388169728, 418775040, 67043328, 586022912, 522190848, 286195712, 4129751040, 4245618688, 469368832, 47644672, 4158128128, 4046323712, 4107599872, 3689480192, 4126212096, 3941466112, 4176281600, 4279369728, 3925147648, 4259708928, 3721199616, 3033464832, 2951086080, 3168993280, 3317563392, 2969174016, 2716073984, 2343436288, 3627679744, 3443261440, 2552168448, 2448031744, 4144168960, 4147183616, 3859218432, 71106560, 3559325696, 320602112, 623247360, 488243200, 3809345536, 153092096, 4045864960, 4293984256, 4141416448, 467730432, 3607494656, 3907780608, 505675776, 3890937856, 318111744, 4040949760, 4280614912, 3607756800, 17432576, 3691249664, 638189568, 3587637248, 4095737856, 673251328, 587988992, 3924230144, 3520987136, 3574857728, 4160487424, 184025088, 3907059712, 219676672, 66060288, 33554432, 438632448, 18677760, 4010475520, 4196663296, 132841472, 4043898880, 332857344, 184156160, 333709312, 3573481472, 218234880, 3642621952, 735510528, 233439232, 370016256, 14876672, 3757572096, 4077191168, 4160094208, 571211776, 3927638016, 3943301120, 3808690176, 3558211584, 3590586368, 702939136, 587726848, 3995074560, 3976331264, 421396480, 467730432, 4027056128, 3738370048, 3351904256, 4023123968, 2852323328, 3889168384, 4024827904, 3941203968, 2870083584, 3004891136, 4062248960, 3605594112, 335282176, 272433152, 452460544, 671219712, 887291904, 284950528, 32309248, 303300608, 452788224, 81788928, 3673358336, 4028432384, 3758030848, 4275961856, 768868352, 4260954112, 3608346624, 4278517760, 4260954112, 4227399680, 4011393024, 132448256, 317063168, 3995074560, 3459252224, 4210884608, 218497024, 4160552960, 167116800, 688652288, 18087936, 4292870144, 4074373120, 1835008, 3993829376, 254607360, 1258487808, 471793664, 938344448, 535232512, 4209901568, 889257984, 52690944, 3707371520, 3892576256, 3486646272, 3486580736, 3004891136, 3419537408, 3120824320, 2900623360, 334757888, 148439040, 3990028288, 335609856, 416415744, 3520528384, 3671785472, 384827392, 4044619776, 4074242048, 3403284480, 3891462144, 3692232704, 3890413568, 3907977216, 3740532736, 4074110976, 101187584, 3758620672, 538902528, 3826778112, 521338880, 3941793792, 590020608, 370933760, 3942645760, 4042915840, 149487616, 3908042752, 4041801728, 4261150720, 589627392, 1077870592, 608043008, 722796544, 3893100544, 170852352, 737280000, 975241216, 841416704, 836960256, 4242866176, 552992768, 151584768, 3619291136, 4154458112, 245497856, 3317235712, 3960340480, 4280680448, 170655744, 4194893824, 52559872, 404684800, 4109565952, 3791257600, 3756457984, 3772841984, 552009728, 4245356544, 439091200, 685965312, 135069696, 17039360, 4245094400, 3302621184, 3707568128, 451149824, 300875776, 4211474432, 3369402368, 3978821632, 4079222784, 573112320, 3523870720, 484114432, 4130013184, 383516672, 4292214784, 3961389056, 3926196224, 485490688, 4141547520, 3643277312, 18939904, 450297856, 571473920, 567869440, 4142333952, 3757506560, 4277993472, 252444672, 3875078144, 388366336, 4293656576, 4263313408, 188809216, 455344128, 504233984, 4145676288, 186646528, 3976790016, 4194041856, 4077256704, 823721984, 4044619776, 4110614528, 806027264, 4210294784, 4022992896, 4223598592, 3975348224, 3772383232, 4176871424, 4076929024, 706215936, 170590208, 668598272, 102957056, 3625975808, 4278059008, 485425152, 166002688, 3723165696, 233308160, 702021632, 134479872, 33226752, 3352494080, 2562457600, 3050569728, 3774087168, 3336306688, 3656450048, 2987524096, 3118333952, 3827826688, 4008706048, 3690921984, 4264624128, 150667264, 368967680, 3958374400, 3441164288, 3727032320, 4027645952, 569049088, 606208000, 3655073792, 52428800, 4076535808, 321454080, 552271872, 336461824, 706150400, 4260233216, 252051456, 404619264, 50003968, 539754496, 541589504, 723976192, 187498496, 670957568, 452263936, 339214336, 923533312, 738000896, 47775744, 4056154112, 668336128, 247922688, 4091478016, 351862784, 3370582016, 217776128, 518389760, 3874291712, 4177723392, 917504, 165412864, 504954880, 3759472640, 635830272, 4230545408, 568983552, 3640983552, 49479680, 588775424, 266207232, 3823566848, 3961061376, 534183936, 19005440, 3742171136, 4076535808, 437583872, 4145283072, 97910784, 102367232, 723714048, 3793551360, 185729024, 690094080, 4062707712, 3789553664, 3605528576, 654311424, 4198629376, 3878158336, 3457679360, 474546176, 3791323136, 3958898688, 3806134272, 266272768, 3554869248, 3755409408, 3353149440, 4109631488, 3825729536, 2833645568, 3620339712, 3186491392, 1144455168, 256507904, 318701568, 106233856, 876150784, 407502848, 286785536, 4177723392, 550502400, 1137967104, 705626112, 537395200, 4055171072, 4191748096, 681574400, 28049408, 3542286336, 3656318976, 3354263552, 4110483456, 468910080, 4224974848, 3421962240, 4009754624, 3839492096, 3940417536, 196608, 3642163200, 3608936448, 3538026496, 417202176, 555614208, 283115520, 266272768, 3606511616, 4175036416, 706871296, 115212288, 2883584, 435945472, 437190656, 67043328, 234094592, 719978496, 4125294592, 3940548608, 286195712, 3910533120, 4192468992, 3758489600, 3774349312, 3856924672, 3893755904, 472449024, 4126212096, 3760390144, 486539264, 418119680, 537264128, 3876847616, 235929600, 182648832, 502726656, 623116288, 132841472, 3990880256, 3692232704, 118816768, 433389568, 3051159552, 3687514112, 3305046016, 539033600, 3860463616, 3440836608, 4277010432, 4278583296, 135462912, 3658350592, 3991404544, 440664064, 607649792, 1545404416, 572981248, 1429602304, 1274413056, 810024960, 452722688, 920256512, 906821632, 652738560, 705101824, 381616128, 3752853504, 4290379776, 4206362624, 105185280, 222691328, 1009778688, 135200768, 1409810432, 3866624, 1074200576, 419102720, 4191748096, 216596480, 4242997248, 280166400, 3752001536, 3318284288, 182845440, 3919380480, 4095148032, 4165533696, 4114481152, 201523200, 4197122048, 1041891328, 238092288, 657129472, 603848704, 970719232, 102301696, 436469760, 3468886016, 128122880, 3940483072, 130875392, 673972224, 724303872, 1141768192, 1146028032, 150470656, 53149696, 167641088, 1062010880, 919535616, 1189609472, 835584000, 1002307584, 331677696, 3789422592, 314179584, 4172152832, 1513816064, 710148096, 491716608, 486866944, 743178240, 305790976, 322240512, 469893120, 183697408, 565641216, 4191748096, 63897600, 4024434688, 3705143296, 4174381056, 3652255744, 336134144, 1008992256, 440336384, 3965255680, 939982848, 4024434688, 66060288, 335216640, 162463744, 3755474944, 4258791424, 4227989504, 3736141824, 4258529280, 2915172352, 3723362304, 843186176, 942866432, 958791680, 305397760, 4096262144, 4094885888, 201261056, 166789120, 3808231424, 313851904, 3607298048, 554041344, 3435069440, 3283353600, 3958374400, 2832269312, 3829792768, 3828154368, 506068992, 236584960, 3723952128, 537985024, 386334720, 3790274560, 386596864, 651231232, 403701760, 4041211904, 150667264, 181075968, 3503554560, 316932096, 3877306368, 3503620096, 3437821952, 354025472, 3656515584, 3957129216, 4060217344, 3590389760, 3523149824, 200605696, 437387264, 672006144, 82444288, 3875864576, 352845824, 4293197824, 4259774464, 2564227072, 2313289728, 3181117440, 3670540288, 2596077568, 2465726464, 3553099776, 18087936, 3103522816, 3627745280, 2972123136, 4024762368, 3691905024, 4264624128, 3759538176, 3622436864, 53018624, 571146240, 204210176, 753139712, 355139584, 3793551360, 538640384, 4227072000, 754843648, 48889856, 3592617984, 707330048, 252903424, 4179099648, 434831360, 710017024, 824049664, 21364736, 724762624, 488046592, 607649792, 637009920, 286261248, 722534400, 4193255424, 419823616, 4176805888, 3924885504, 3605331968, 3773825024, 197656576, 86573056, 4191813632, 114556928, 722796544, 200146944, 503447552, 3676438528, 520159232, 4040622080, 3723558912, 4259315712, 3825467392, 521666560, 286982144, 4241620992, 4095082496, 636026880, 168493056, 3693740032, 3722903552, 4074962944, 3605725184, 4209311744, 115015680, 3844341760, 283312128, 3908763648, 652279808, 337248256, 152043520, 553189376, 4093444096, 3744006144, 3760652288, 668532736, 185073664, 354615296, 3607494656, 704053248, 4161273856, 351338496, 267255808, 4144300032, 3995140096, 85393408, 99614720, 4058775552, 719060992, 4012179456, 4282187776, 104923136, 790691840, 821297152, 653393920, 988479488, 336199680, 3622699008, 3569680384, 99876864, 199426048, 3603300352, 2796879872, 4205838336, 4004315136, 163840000, 3903389696, 3702784000, 4009689088, 3990814720, 3221815296, 2850750464, 3522297856, 4159897600, 3057713152, 3205562368, 3354394624, 484900864, 150274048, 3574988800, 3475111936, 4227727360, 84082688, 47775744, 3892117504, 2666201088, 2600534016, 2365259776, 4112384000, 3457351680, 3474456576, 3658809344, 405929984, 3303669760, 101384192, 88080384, 3843031040, 237961216, 1143668736, 508100608, 1008009216, 101056512, 4164878336, 518586368, 586481664, 4123394048, 3819634688, 1070661632, 313131008, 2979725312, 3938713600, 3602579456, 3803054080, 216006656, 3541368832, 3050045440, 3371040768, 3371761664, 3067281408, 3069706240, 3404464128, 168886272, 3523149824, 3001614336, 3241082880, 151584768, 3325100032, 3371499520, 3693936640, 906821632, 1011351552, 1156775936, 804061184, 4231069696, 587202560, 568786944, 4024565760, 885522432, 4038721536, 4025548800, 4140236800, 3690594304, 3370582016, 4159045632, 3323068416, 4079616000, 200409088, 3574726656, 3757834240, 687472640, 370016256, 4293984256, 19070976, 4026007552, 3893100544, 4111138816, 3892248576, 3857186816, 4209508352, 739573760, 518914048, 4143316992, 385875968, 100532224, 759431168, 153026560, 4146331648, 285540352, 251330560, 368377856, 772276224, 3808559104, 120258560, 97583104, 4240703488, 4011065344, 4026990592, 102105088, 4264099840, 4243587072, 417464320, 4158390272, 3590914048, 720830464, 4178640896, 287637504, 3743678464, 551550976, 116719616, 4078698496, 618594304, 3841720320, 3894345728, 4280418304, 3090874368, 3997958144, 4063821824, 3941597184, 4293722112, 3674013696, 19857408, 3575119872, 552402944, 367460352, 4210491392, 4181327872, 3909943296, 3875864576, 3757899776, 3572105216, 3674865664, 181796864, 3491364864, 3525443584, 4179886080, 3235774464, 3591372800, 393216, 3438804992, 3642294272, 3961847808, 3620864000, 584581120, 3574923264, 520224768, 757989376, 623378432, 290652160, 1159659520, 806092800, 994181120, 909115392, 1296302080, 531955712, 4006805504, 821886976, 954597376, 3249668096, 367067136, 3365666816, 3718381568, 135790592, 1023541248, 102170624, 1093926912, 1124663296, 655687680, 807600128, 857604096, 621871104, 772210688, 4041211904, 603848704, 4292673536, 3621978112, 46465024, 317063168, 467992576, 152502272, 842530816, 419823616, 4041277440, 169082880, 150798336, 100532224, 399572992, 736690176, 4157800448, 4024107008, 3638689792, 535166976, 3791060992, 3404791808, 3712483328, 167903232, 3858694144, 4128374784, 3911909376, 3843489792, 4163108864, 102825984, 806486016, 421068800, 1006764032, 3855745024, 502661120, 418054144, 284950528, 3351642112, 3319005184, 3475898368, 488505344, 3792240640, 3709009920, 3624337408, 4279828480, 436862976, 3990421504, 4242735104, 333250560, 4276944896, 386203648, 554172416, 4142727168, 4094361600, 421724160, 4160290816, 621084672, 434044928, 3828023296, 300482560, 3722051584, 4280352768, 282460160, 4258529280, 151912448, 3941466112, 4246208512, 100728832, 3911712768, 4179689472, 3992453120, 104005632, 133234688, 235143168, 16973824, 4229365760, 4279894016, 587071488, 3706847232, 3776249856, 3972530176, 150208512, 32178176, 83230720, 3621715968, 3390308352, 3623878656, 4059758592, 300023808, 450363392, 3941269504, 183828480, 4127457280, 233897984, 3660251136, 4230545408, 3823435776, 3825860608, 4075814912, 215810048, 435748864, 4258529280, 4157865984, 402587648, 3992649728, 285212672, 3255566336, 3927113728, 3543007232, 3924361216, 265420800, 3759538176, 3555721216, 4127457280, 3656122368, 438370304, 3857842176, 451411968, 4146921472, 905969664, 253362176, 251199488, 1227227136, 205127680, 1246035968, 1395523584, 268107776, 886046720, 583139328, 669122560, 78184448, 753336320, 230752256, 164691968, 3221684224, 3407085568, 3510304768, 86507520, 304676864, 505085952, 4261281792, 4010672128, 218562560, 439615488, 3911057408, 4113563648, 3794731008, 3705995264, 67502080, 4196794368, 484573184, 3958702080, 183631872, 3608281088, 638058496, 200671232, 3773366272, 169803776, 3993763840, 405340160, 3924361216, 3860987904, 3908960256, 3909091328, 134217728, 253034496, 674955264, 3640131584, 4175101952, 3404595200, 917504, 3102343168, 3708813312, 3084582912, 536543232, 3151364096, 3122921472, 3522232320, 668663808, 3638755328, 2886664192, 2986541056, 3910795264, 3237216256, 3368615936, 3303079936, 18481152, 3744530432, 3356557312, 4261216256, 4060676096, 3941793792, 419233792, 4009885696, 3822714880, 706215936, 233439232, 3806855168, 3640524800, 635305984, 232390656, 3925016576, 522321920, 3807248384, 3789553664, 3739222016, 350879744, 284884992, 17694720, 3588292608, 4044226560, 3906666496, 148242432, 3521183744, 3640459264, 4274585600, 3955359744, 4006084608, 4175101952, 4025090048, 4173725696, 186122240, 3392471040, 3154051072, 3374907392, 220069888, 602275840, 489750528, 640548864, 3507879936, 282984448, 756154368, 3756720128, 4113825792, 4230807552, 148307968, 772014080, 4230479872, 536936448, 354353152, 85393408, 518127616, 4042194944, 4108124160, 3977576448, 3993894912, 3958243328, 654704640, 3895656448, 3826188288, 437125120, 85721088, 519307264, 921960448, 3859677184, 203161600, 737738752, 284098560, 3720216576, 3690004480, 3455385600, 4091150336, 976945152, 3879403520, 654049280, 4246863872, 755695616, 873660416, 1093795840, 488701952, 466681856, 957415424, 519438336, 770703360, 79822848, 3824680960, 4021682176, 3689021440, 3504537600, 3724476416, 3979083776, 266928128, 655687680, 13893632, 4095148032, 4109631488, 4178378752, 3772841984, 4212850688, 4041474048, 4024827904, 3945267200, 84344832, 3607560192, 234684416, 318373888, 836698112, 837877760, 3840933888, 773521408, 738983936, 352059392, 3486973952, 3756261376, 3554344960, 3621388288, 3591307264, 3453485056, 4059627520, 3405250560, 133431296, 4042588160, 3928489984, 266141696, 4209901568, 3806593024, 288358400, 3689742336, 738394112, 4145479680, 334626816, 3575513088, 3589865472, 4044554240, 4243980288, 114163712, 517734400, 269746176, 251002880, 3420389376, 150208512, 182583296, 300875776, 81461248, 4042719232, 3475439616, 4110614528, 3993632768, 517406720, 753664000, 488112128, 4046192640, 136052736, 754581504, 1212284928, 4229431296, 216399872, 403308544, 890109952, 640614400, 101318656, 751763456, 3840344064, 351862784, 4109238272, 4057399296, 3489136640, 163315712, 299761664, 4246536192, 4078239744, 719847424, 116916224, 506068992, 605487104, 3940417536, 285474816, 455933952, 369885184, 3878158336, 3911712768, 605290496, 3990552576, 4108648448, 739770368, 255721472, 1062666240, 135069696, 235667456, 3959554048, 626065408, 4177723392, 635830272, 165478400, 502202368, 81199104, 3754164224, 398262272, 4120182784, 3690004480, 402849792, 3943825408, 3575709696, 3625058304, 3302686720, 4193058816, 3067215872, 3725197312, 4130668544, 3287285760, 3871866880, 3940024320, 4011589632, 86310912, 4164681728, 150798336, 3947036672, 4094689280, 757989376, 470089728, 4162060288, 487981056, 976683008, 1006108672, 3807772672, 365035520, 181796864, 718012416, 3774545920, 3921739776, 3114795008, 3200909312, 487391232, 4278648832, 121569280, 287113216, 3979804672, 3506044928, 4012113920, 4278517760, 487391232, 757596160, 352649216, 555941888, 4093706240, 382599168, 268697600, 350093312, 3760979968, 4078698496, 199360512, 3978559488, 150798336, 3928817664, 98828288, 739770368, 4292542464, 251723776, 4044947456, 487194624, 283377664, 4242735104, 517734400, 3857186816, 3676176384, 3773300736, 99352576, 253952000, 3808821248, 770703360, 4260167680, 115933184, 4126277632, 451149824, 3555459072, 302317568, 4196139008, 184156160, 198770688, 485818368, 270925824, 4279631872, 270204928, 266731520, 3608084480, 503840768, 3609264128, 3605659648, 119537664, 3589341184, 48234496, 135790592, 722206720, 4094427136, 4281073664, 3977117696, 322109440, 49020928, 17104896, 218759168, 540278784, 100990976, 317521920, 993656832, 3789357056, 249167872, 4275503104, 4258070528, 2915106816, 3551526912, 3956342784, 3419406336, 975044608, 921436160, 4261347328, 3774742528, 535494656, 287047680, 3808034816, 3441360896, 3788505088, 588906496, 3454795776, 303955968, 4075094016, 98500608, 4061790208, 3353673728, 83820544, 4262330368, 3439132672, 4212785152, 3508142080, 3234988032, 3369926656, 4276355072, 3587637248, 4176019456, 3907780608, 3339911168, 3608018944, 4024696832, 4012113920, 4041474048, 3742695424, 148242432, 3590324224, 119013376, 4091478016, 3506634752, 3943563264, 503185408, 3506044928, 551157760, 573440000, 3454271488, 3889037312, 4142530560, 3621847040, 3791388672, 3806789632, 267780096, 202440704, 303824896, 218497024, 702218240, 321388544, 234160128, 721420288, 3674472448, 438239232, 4129882112, 4029153280, 4279566336, 4177133568, 4245225472, 1430519808, 1024131072, 388300800, 1311178752, 993263616, 4262395904, 1043857408, 1156120576, 1036582912, 347144192, 817037312, 66715648, 4004970496, 3951755264, 3050766336, 4157603840, 640155648, 103022592, 253886464, 601489408, 3828088832, 3689545728, 3790798848, 402915328, 67174400, 18284544, 522256384, 3760783360, 219348992, 316276736, 31457280, 4276813824, 204144640, 149094400, 983040, 202244096, 3923181568, 4229824512, 488570880, 4140826624, 484966400, 3604217856, 3857645568, 4076601344, 265945088, 3760521216, 752812032, 3607625728, 151191552, 30801920, 3083862016, 519176192, 904658944, 586285056, 3575382016, 3808559104, 50462720, 3589406720, 588382208, 3723100160, 369426432, 4178182144, 499843072, 3927506944, 636682240, 3990749184, 4177920000, 3878092800, 4061986816, 48431104, 417923072, 570753024, 15204352, 451280896, 3992453120, 187170816, 3639541760, 216268800, 3726049280, 3705602048, 4044357632, 354091008, 300744704, 603586560, 3454533632, 81002496, 3353608192, 3824680960, 182517760, 4011458560, 3423272960, 501809152, 455802880, 319029248, 3757637632, 636026880, 150339584, 673513472, 483721216, 3605200896, 3741974528, 3776577536, 4061069312, 488374272, 302776320, 420806656, 32112640, 184418304, 4041474048, 4195221504, 3925606400, 672661504, 3590979584, 4094951424, 386072576, 388235264, 237502464, 199229440, 350748672, 651427840, 169738240, 4211605504, 4263903232, 97648640, 150929408, 433586176, 3991470080, 3777101824, 2782068736, 3690659840, 3723952128, 4259446784, 4179296256, 134348800, 893648896, 284426240, 3539206144, 1376124928, 571736064, 14417920, 416481280, 3655663616, 3940155392, 148373504, 50003968, 3657957376, 620036096, 422379520, 3874750464, 619773952, 253952000, 219873280, 403308544, 185139200, 3743809536, 102694912, 3656122368, 4041998336, 556138496, 3942645760, 184614912, 3859611648, 3923574784, 3671785472, 167837696, 3789684736, 3672047616, 738656256, 3891789824, 220069888, 233570304, 3674931200, 4294049792, 102498304, 103546880, 65732608, 638976000, 3777232896, 3655860224, 3621912576, 4093968384, 707198976, 4095082496, 3907452928, 3688300544, 349503488, 605552640, 3890348032, 539295744, 738131968, 402259968, 186580992, 238354432, 151846912, 721223680, 1426259968, 1310457856, 1055916032, 942604288, 1174536192, 968753152, 380436480, 716701696, 531300352, 4007657472, 3772579840, 601358336, 79822848, 961609728, 1112473600, 1058537472, 424017920, 957743104, 1227882496, 184483840, 250806272, 4258332672, 4173004800, 4139909120, 4093378560, 3402563584, 3485073408, 279117824, 3754426368, 4094230528, 452984832, 4214947840, 620232704, 4009689088, 652345344, 4225892352, 501874688, 4089643008, 4125818880, 4105961472, 3318677504, 4263706624, 3221946368, 4275175424, 4212850688, 3825729536, 3671392256, 4027711488, 81854464, 201719808, 620691456, 3574267904, 401408000, 69533696, 405274624, 4007854080, 236650496, 268369920, 3591307264, 435617792, 4094754816, 317587456, 183894016, 3255828480, 3924885504, 3170041856, 4226809856, 3134586880, 350486528, 4228055040, 3204841472, 185139200, 3945857024, 4142202880, 552271872, 3590586368, 3756064768, 4177395712, 719519744, 419364864, 3743219712, 134938624, 4264034304, 4060217344, 183894016, 3907452928, 4108648448, 4260626432, 4260823040, 200081408, 3623682048, 587399168, 3842768896, 520224768, 33161216, 487784448, 3945070592, 4262723584, 3592224768, 501940224, 3641966592, 4144168960, 4227137536, 351731712, 3438149632, 3424649216, 3640655872, 249888768, 438304768, 539033600, 668598272, 3621978112, 4292411392, 739049472, 4278910976, 3991732224, 232652800, 3725590528, 752877568, 3626631168, 320208896, 3958046720, 3672178688, 3724673024, 3657957376, 3603693568, 3104374784, 3927179264, 4178051072, 3352625152, 3086352384, 3942776832, 567869440, 3374252032, 204734464, 3772710912, 3655794688, 3843096576, 3624927232, 3707961344, 417005568, 3792896000, 3991601152, 332595200, 705429504, 3708747776, 4209573888, 3625975808, 17891328, 722796544, 51838976, 3709861888, 522715136, 2490368, 131530752, 4125556736, 718733312, 365428736, 3454664704, 4007460864, 3960209408, 4161994752, 3855613952, 3170631680, 3859480576, 65273856, 3823632384, 4260560896, 320536576, 3840868352, 4124835840, 304480256, 538968064, 3877568512, 420347904, 4226220032, 404619264, 405143552, 524288, 49414144, 570097664, 119996416, 4094754816, 252051456, 4125556736, 572391424, 252051456, 3860201472, 3794534400, 873529344, 1311899648, 472252416, 523698176, 1091829760, 167247872, 1577189376, 1561526272, 1053294592, 417464320, 1186398208, 785317888, 179306496, 583073792, 262406144, 616562688, 3876519936, 785842176, 3707764736, 100401152, 3725852672, 3907911680, 334954496, 64421888, 4094754816, 536150016, 483131392, 164823040, 3525574656, 4143906816, 3553951744, 166789120, 149749760, 17760256, 421986304, 3624402944, 184352768, 3776970752, 638124032, 83820544, 3911778304, 3741057024, 3840802816, 655097856, 669908992, 504037376, 3641966592, 551288832, 3858366464, 166133760, 283574272, 4262395904, 4292149248, 133038080, 2097152, 702808064, 4095082496, 4109369344, 538312704, 484573184, 3641180160, 4241555456, 3957850112, 4178313216, 656736256, 3757178880, 471007232, 115933184, 4007591936, 3657302016, 451149824, 4029218816, 319750144, 149356544, 399835136, 706215936, 150339584, 337051648, 303759360, 554106880, 857276416, 691863552, 975175680, 1294860288, 4095606784, 505937920, 905445376, 571342848, 4076273664, 215613440, 990773248, 1036255232, 63635456, 4206493696, 3431792640, 230490112, 3891134464, 4124966912, 3504799744, 3955884032, 3454009344, 3088646144, 3758948352, 3084320768, 3963944960, 3187933184, 3811573760, 287834112, 3926458368, 3527278592, 3894738944, 3626369024, 3771400192, 3570401280, 3760586752, 3740991488, 3810328576, 3906732032, 319422464, 3977969664, 3490447360, 571670528, 116326400, 64421888, 3523870720, 3591503872, 3759407104, 3504930816, 506200064, 875102208, 155975680, 626655232, 284622848, 534511616, 66650112, 1037959168, 4192600064, 266600448, 702414848, 351404032, 3838836736, 4019912704, 3654025216, 3366715392, 723058688, 367788032, 4092067840, 118292480, 705232896, 4293525504, 1245184, 3621650432, 386531328, 3739484160, 31916032, 4075552768, 3755802624, 4260823040, 371195904, 553123840, 116981760, 4161404928, 3807182848, 3639083008, 354156544, 48562176, 3926523904, 336920576, 472317952, 588316672, 81723392, 4229890048, 3873439744, 3726049280, 535953408, 4227465216, 3759407104, 3609395200, 3204710400, 3273261056, 3655532544, 3508862976, 4075094016, 3742564352, 3488546816, 3254976512, 3504340992, 3154837504, 223084544, 3862757376, 3877568512, 4244504576, 4040818688, 3604348928, 3859546112, 3491364864, 3456892928, 3088187392, 2936209408, 3924623360, 3576627200, 4277338112, 3554934784, 3440443392, 3994877952, 119472128, 336986112, 4278517760, 317390848, 3473866752, 3927179264, 202047488, 4141875200, 4059561984, 3707174912, 4093116416, 4177330176, 519766016, 4125425664, 316801024, 454950912, 552075264, 454950912, 14942208, 3776905216, 4279959552, 269287424, 3624665088, 66584576, 3538550784, 270925824, 3791912960, 589824, 669908992, 302120960, 403046400, 149618688, 4294508544, 3723624448, 3743219712, 725811200, 990773248, 725811200, 860094464, 84213760, 253034496, 790691840, 471072768, 4257415168, 938541056, 485883904, 146800640, 82116608, 330629120, 12976128, 3417440256, 456261632, 3469934592, 4144955392, 3822780416, 3925213184, 251461632, 184090624, 84869120, 302120960, 3823894528, 3704684544, 218300416, 3675848704, 4044357632, 3974496256, 3538485248, 792526848, 857145344, 169213952, 520224768, 957087744, 3756195840, 4197056512, 4259381248, 3402825728, 13107200, 720175104, 418840576, 3434414080, 4003921920, 4003921920, 2949840896, 3772514304, 4094164992, 52428800, 519962624, 270204928, 216727552, 352649216, 535298048, 3406430208, 167116800, 150274048, 3573481472, 3573088256, 3958964224, 3638099968, 86310912, 909312000, 523567104, 4266065920, 4047241216, 1093795840, 774635520, 118226944, 385482752, 787087360, 4240441344, 398852096, 4242341888, 99221504, 3922001920, 3891265536, 3587440640, 166068224, 4260364288, 136445952, 3539664896, 3774087168, 3874357248, 3659988992, 4026859520, 3456368640, 4027449344, 2621440, 3963027456, 3957784576, 4125556736, 471597056, 487325696, 235077632, 4108845056, 3623747584, 3956736000, 3860725760, 706412544, 3642425344, 754450432, 3906600960, 636616704, 3608936448, 4245028864, 251133952, 706347008, 52822016, 3726835712, 674037760, 604635136, 3928817664, 219480064, 656343040, 4244570112, 4062117888, 484376576, 3571122176, 3301507072, 3704487936, 3555065856, 3421306880, 3539861504, 3775463424, 3084189696, 3773169664, 4092919808, 3671982080, 3992125440, 3556376576, 3269132288, 3441229824, 3708747776, 4012048384, 3674275840, 170131456, 3438018560, 3925803008, 171114496, 519438336, 3691970560, 3588685824, 3337617408, 327680, 3792371712, 3506307072, 3689807872, 3740532736, 2555904, 3671916544, 3861577728, 3841720320, 3946184704, 450494464, 3438084096, 4074766336, 500957184, 4211146752, 4142006272, 3823632384, 4194500608, 4060676096, 98697216, 14483456, 102432768, 538312704, 3775922176, 4012244992, 4029218816, 3910467584, 3994025984, 4025483264, 4007002112, 3469082624, 2900688896, 4110811136, 118030336, 2883977216, 3723362304, 3944873984, 3922788352, 186318848, 3489595392, 4244045824, 455606272, 3790077952, 3789488128, 3542941696, 4243718144, 959709184, 4163698688, 1191837696, 822214656, 775159808, 606273536, 808452096, 353566720, 4057858048, 888340480, 3920822272, 4156555264, 4090953728, 4174053376, 3387686912, 3484090368, 233504768, 4193255424, 4192534528, 517865472, 654770176, 351076352, 250609664, 3774349312, 3943038976, 4025942016, 4193189888, 3639083008, 585433088, 4127784960, 4179099648, 3673751552, 3723952128, 4180213760, 203882496, 3809214464, 4076404736, 3772907520, 3574071296, 422117376, 3894935552, 3891134464, 133103616, 3992584192, 522715136, 98828288, 184025088, 3724673024, 1126170624, 257163264, 724893696, 70516736, 956104704, 687276032, 49807360, 4230807552, 938606592, 1004994560, 181796864, 467795968, 3320446976, 3805020160, 4105764864, 3304325120, 49807360, 4158324736, 336396288, 3924688896, 3604742144, 671350784, 3708026880, 334364672, 690094080, 3655335936, 3810131968, 688128000, 4179361792, 3876192256, 3808231424, 521666560, 3908960256, 756678656, 15925248, 3623550976, 551157760, 670564352, 3876323328, 3707305984, 3659988992, 4294115328, 4078698496, 673972224, 3674865664, 337772544, 18350080, 3927638016, 926941184, 85852160, 336986112, 422969344, 1158414336, 857145344, 321126400, 288817152, 837484544, 4058644480, 617873408, 716898304, 3804561408, 531300352, 3437559808, 4005429248, 3084386304, 3115450368, 3235840000, 3069640704, 3723689984, 2179989504, 2496528384, 3927113728, 67567616, 2604728320, 2719285248, 3510042624, 3671654400, 3877699584, 319553536, 3439788032, 3710976000, 3270967296, 4197580800, 4178771968, 520421376, 253820928, 3723821056, 3607560192, 270073856, 3286499328, 4177985536, 4226940928, 3772973056, 2952855552, 3759996928, 51445760, 888930304, 3913613312, 35913728, 457048064, 856883200, 451346432, 4164026368, 556793856, 33095680, 266665984, 768409600, 320143360, 3355443200, 3472424960, 3621584896, 3688235008, 856752128, 219283456, 3608412160, 3390636032, 4162912256, 773652480, 217120768, 3808690176, 231014400, 3941400576, 369229824, 4177199104, 3504209920, 3368550400, 183369728, 3621453824, 32243712, 705363968, 3707043840, 235929600, 3689873408, 383778816, 203489280, 284950528, 3621715968, 537133056, 117899264, 404881408, 4060479488, 3822059520, 570097664, 4195287040, 3571843072, 252837888, 3927441408, 4027449344, 4208525312, 502988800, 3673358336, 3873832960, 320864256, 4278583296, 399900672, 3738763264, 4091609088, 3944873984, 383188992, 383844352, 151650304, 3708223488, 218890240, 165543936, 451674112, 3773497344, 4141416448, 467795968, 657063936, 401014784, 4260102144, 117243904, 3573219328, 170393600, 387383296, 3738763264, 64356352, 669122560, 4044816384, 570097664, 64487424, 3791126528, 4176609280, 388825088, 4244439040, 3789357056, 4161863680, 752877568, 119341056, 3772841984, 4007788544, 4279959552, 486211584, 151126016, 522321920, 690094080, 671875072, 3990683648, 233504768, 3908960256, 3606773760, 623247360, 219021312, 4078960640, 4113039360, 754122752, 384040960, 3976593408, 3190620160, 3591438336, 3706060800, 321126400, 3656843264, 688586752, 3760717824, 4278910976, 1076756480, 756219904, 773455872, 169803776, 3739222016, 268369920, 3888316416, 13893632, 3520790528, 3339649024, 3303342080, 3523936256, 4044881920, 3205955584, 3725983744, 3285188608, 3858956288, 3808886784, 3387555840, 116850688, 3693674496, 3375235072, 3522232320, 169607168, 638058496, 805961728, 216793088, 3893624832, 4210950144, 368574464, 252182528, 636354560, 4039114752, 27918336, 47251456, 280363008, 3753050112, 3168337920, 3083075584, 3133603840, 1326448640, 1211760640, 536936448, 675807232, 1530986496, 436076544, 1178271744, 771883008, 212860928, 937623552, 3904765952, 4056023040, 315097088, 4237754368, 3454271488, 233963520, 889716736, 792002560, 352976896, 268304384, 4230348800, 4230086656, 555155456, 4059037696, 269090816, 4275896320, 166526976, 3956604928, 4023779328, 3841196032, 3623550976, 269156352, 68419584, 3708682240, 4026073088, 433586176, 4192337920, 234291200, 435552256, 3960995840, 537198592, 3677093888, 3944284160, 3923378176, 3977576448, 4024107008, 420413440, 338034688, 4245946368, 4227923968, 685441024, 100204544, 3727425536, 4294901760, 18743296, 4109959168, 3909091328, 3608608768, 4211802112, 4192206848, 3925606400, 4043112448, 2162688, 3910795264, 3590520832, 4045144064, 805437440, 270401536, 286654464, 315752448, 4226744320, 3620601856, 68616192, 351141888, 517734400, 3790536704, 349765632, 553779200, 3559129088, 3792044032, 3140681728, 84606976, 4010737664, 3661430784, 339738624, 3874684928, 1179648, 3592617984, 4046979072, 3555459072, 3357999104, 3611164672, 404815872, 3959619584, 3760324608, 65994752, 3469213696, 3050504192, 3752984576, 3199991808, 3082944512, 3318415360, 2379808768, 3742564352, 3979018240, 2922774528, 3492347904, 3354132480, 3523739648, 4063035392, 456523776, 3940876288, 1025376256, 86638592, 1176305664, 4281139200, 1174798336, 4262461440, 4229365760, 4126605312, 899809280, 245760000, 3925082112, 3891920896, 3584622592, 4023844864, 2914779136, 3772055552, 3826843648, 607256576, 3997696, 520880128, 791609344, 204406784, 940769280, 150994944, 3856400384, 1071972352, 834142208, 351600640, 3020685312, 3569680384, 3473080320, 3353214976, 4027514880, 870907904, 355467264, 809304064, 3369598976, 181665792, 3234660352, 165478400, 2515402752, 2499149824, 2985885696, 3840409600, 3408134144, 2737766400, 3745710080, 3206021120, 974454784, 911933440, 1311899648, 1413742592, 755761152, 537329664, 1057619968, 792330240, 230686720, 1102577664, 1090781184, 4207738880, 3890020352, 4260102144, 4238540800, 4057661440, 3990487040, 3859742720, 621412352, 3739680768, 99483648, 14811136, 3840016384, 4110155776, 3574202368, 4191813632, 4278648832, 4243062784, 602800128, 471007232, 3959095296, 3657105408, 721682432, 271319040, 120586240, 3894673408, 4044095488, 3877568512, 788201472, 887160832, 752812032, 215482368, 367198208, 4178509824, 98172928, 264306688, 3990028288, 247332864, 15663104, 3963158528, 66453504, 523763712, 503775232, 3776380928, 908656640, 334757888, 4010409984, 148570112, 701104128, 387645440, 349765632, 3523805184, 3653632000, 182190080, 786890752, 4094164992, 370606080, 20578304, 702742528, 871563264, 434241536, 718209024, 3943301120, 63569920, 3740925952, 264503296, 3637248000, 3237412864, 4075028480, 3942907904, 3592683520, 3744858112, 182976512, 120979456, 317259776, 453115904, 336199680, 4162453504, 4225892352, 3657302016, 3607232512, 51511296, 4277927936, 50790400, 418054144, 4212260864, 3874684928, 4043505664, 3454730240, 2981167104, 3305439232, 2951741440, 2953576448, 4092329984, 3828285440, 3206414336, 3539861504, 4063166464, 4193189888, 3574595584, 3593011200, 201326592, 3861512192, 3912302592, 4164878336, 4026138624, 338624512, 4248698880, 1093468160, 337707008, 3971547136, 4241489920, 4078174208, 652214272, 4207411200, 4125556736, 3383820288, 3738435584, 687734784, 403243008, 298450944, 286392320, 517537792, 4257873920, 250806272, 3805806592, 133627904, 3823239168, 168558592, 3773366272, 3556311040, 3250323456, 3556245504, 3820814336, 518586368, 3726180352, 4111269888, 572588032, 3841720320, 3825729536, 3726704640, 368377856, 4241817600, 3793223680, 318570496, 3826450432, 334888960, 3687841792, 198377472, 14680064, 4045078528, 3960537088, 3727884288, 3593797632, 1058471936, 602865664, 839188480, 4112580608, 49414144, 4145545216, 1021640704, 1003225088, 385810432, 3606249472, 98041856, 265224192, 3794665472, 3841130496, 251920384, 234487808, 3957587968, 17104896, 215547904, 3773038592, 18022400, 4193386496, 185073664, 3855286272, 4022861824, 165019648, 3234529280, 266665984, 454361088, 22282240, 4063035392, 861601792, 289800192, 988938240, 87293952, 3842506752, 1004011520, 823328768, 4078305280, 4139515904, 3889758208, 3046965248, 3771727872, 3098411008, 321191936, 3390898176, 50987008, 519766016, 48496640, 3840540672, 4180213760, 3756392448, 4007526400, 30932992, 167051264, 318701568, 332464128, 31916032, 4279500800, 266141696, 3693281280, 4263313408, 1179648, 4007723008, 4293984256, 3860987904, 3756130304, 3571122176, 368181248, 201392128, 4079157248, 97910784, 3774218240, 535101440, 3893559296, 521011200} +}; + +static const int B1[1] = { + 1913809408 +}; + +static const int B2[16] = { + 0, 255, 16842753, 65791, 4278320896, 4278255871, 65280, 4294901761, 16777216, 65280, 4278190335, 16777471, 66047, 33488897, 0, 255 +}; + +static const int B3[16] = { + 3199838746, 532556907, 3462133659, 452246970, 4156209179, 1346782708, 1280515654, 3591944198, 1811944833, 399658225, 1383189835, 1819697, 3006968272, 3746800281, 889268619, 3181531105 +}; + +static const int B4[16] = { + 3908864022, 1974923701, 861956357, 1119031805, 458111322, 4272637857, 2295595820, 3352124996, 3644300646, 3212775938, 3419190385, 591443458, 339845171, 3938838975, 3051833580, 3285095988 +}; + +static const int B5[16] = { + 2140165054, 2774293528, 3215022193, 2370141073, 2890488664, 2891418711, 1906017353, 2591929716, 2609681504, 2235673217, 1841010670, 2068942676, 428892348, 788220228, 3214121990, 4069177778 +}; + +static const int B6[32] = { + 4261478394, 33294075, 33225475, 4194435324, 50135557, 16515844, 4210754820, 84016134, 16907782, 4245093125, 4278648061, 4244505594, 4194630661, 4261673216, 4244962558, 66714887, 50529536, 4261347328, 16645633, 4211343366, 394499, 83690496, 261124, 4278453510, 4278060796, 50660356, 4211081473, 50658555, 4294706170, 84018435, 50592259, 100729595 +}; + +static const int B7[32] = { + 1166895708, 3030300083, 1737788825, 1147306918, 1265268378, 1553177968, 3043993501, 2778028457, 1280467795, 1873037647, 710453407, 1666088550, 1320465328, 3024312134, 3181556125, 1952076119, 2962399832, 3093263790, 1083946594, 1850100649, 2359843262, 2695517583, 1252478375, 1497789018, 2506798444, 3063836066, 4065507231, 2137567009, 2089116503, 1437418580, 1200185726, 3094851436 +}; + +static const int B8[32] = { + 2625809020, 1915247551, 3215235749, 1533451685, 2282815140, 3027076765, 2913563004, 2897127945, 2336524631, 1162237857, 1465823306, 2978173038, 2662294293, 3007333260, 3015026829, 2254345045, 2896802146, 2926099833, 1534237516, 2292010682, 3165077940, 1536384691, 1705215090, 3092285565, 1940740970, 1599317149, 2203018589, 1494316402, 1371441316, 3057804450, 1481357121, 1581683764 +}; + +static const int B9[32] = { + 2823718300, 3178721456, 2992352684, 1336428352, 1654437522, 1436637088, 1167752310, 3064898239, 3216604760, 2878561679, 1614566325, 2273354407, 1717926239, 3080738378, 1319608400, 1689167276, 2642911825, 2656913308, 1568514231, 1617865801, 1432375375, 1164136057, 2829405372, 2290441796, 2371988888, 2914551891, 2608773711, 3026824357, 2629017750, 2593880743, 1503962227, 1420515944 +}; + +static const int B10[64] = { + 1854099819, 1330232436, 1787580329, 1095013793, 3131988290, 2403771295, 2375177039, 3074707040, 2876394086, 2896269495, 1636817278, 1380272739, 2025371739, 1267645268, 3149899083, 2090889405, 3214650176, 2458430083, 1873822685, 2327794249, 2763351738, 3007598467, 1153413796, 2341498190, 3210392722, 1380491148, 1316071064, 1246672717, 2105564063, 2355477321, 2487572917, 1569738312, 2001052818, 1551023527, 2341909622, 2521332356, 2941301100, 2192417360, 3013755322, 2058978746, 3041153668, 2052027063, 3074518853, 1819195218, 2168552069, 1867496087, 1312972384, 1180874824, 2427546241, 2014599844, 2344515410, 2421469045, 1127962952, 1485325156, 1685349954, 2461314121, 1414689608, 1955050153, 3011555721, 2389600841, 2898085786, 1683078472, 1229281669, 3209785672 +}; + +static const int B11[64] = { + 2243669168, 2186043763, 1683727496, 2890288983, 2895077283, 3142693555, 1079677272, 3144000882, 1581865051, 2443032219, 2795784308, 1269408064, 2943833968, 2409517634, 2354867576, 1851237985, 1346678941, 2135918417, 1145811333, 1353930147, 2571739276, 1330672048, 1437164135, 2336459342, 2839634594, 3095441763, 1438218080, 2102624591, 2986695066, 2722269027, 2075041380, 2964276593, 1555322948, 3683099041, 1632278365, 1333109831, 1419009344, 1569433487, 2626594128, 2726929297, 1297711431, 1749594247, 2287189824, 2256039614, 1885422429, 2938153871, 1183429985, 3080895899, 3031996092, 1482208580, 1438149209, 2673895583, 2856557695, 2522197067, 1218218423, 3075771809, 1700118145, 2407645011, 2878055336, 2823447742, 3094566999, 1720168078, 2506992030, 2353770304 +}; + +static const int B12[64] = { + 2842210907, 2421047726, 3059502917, 2763154593, 3110435402, 2404544396, 1655876769, 1131585904, 2856929347, 1615284053, 1668261284, 2909628239, 1723186269, 3064225703, 1585942439, 1773356362, 1856523412, 2289980077, 2525470837, 2607374701, 2494475331, 1350011555, 2489553076, 2643808191, 2544414806, 2608416085, 1136374419, 3158809498, 1551408251, 1673365350, 1973770051, 1702404705, 1447191190, 3077340051, 3145745988, 1515355734, 2810140569, 2607594638, 1347718567, 1280141658, 2894183246, 1757001306, 1637920665, 2562347881, 1585076317, 2991745648, 1217750202, 2560444605, 1162785202, 3145772112, 1903391872, 2875502151, 2120529557, 1601005906, 2443545118, 3127214263, 1855745357, 2556335006, 1755549610, 3194796938, 1168150935, 2123649432, 1145673643, 1449017526 +}; + +static const int B13[3] = { + 1218272344, 2135539055, 1756037120 +}; + + +#endif /* CNN_WEIGHTS_H */ diff --git a/inference_codes/cifar10_dws_cnn/optimized/ibex_cnn_params.h b/inference_codes/cifar10_dws_cnn/optimized/ibex_cnn_params.h new file mode 100644 index 0000000..ba61e6f --- /dev/null +++ b/inference_codes/cifar10_dws_cnn/optimized/ibex_cnn_params.h @@ -0,0 +1,84 @@ +#ifndef IBEX_CNN_PARAMS_H +#define IBEX_CNN_PARAMS_H + +#define MV1 1263225675 +#define MV2 1886417008 +#define MV3 1381126738 +#define MV4 1263225675 +#define MV5 1465341783 +#define MV6 1280068684 +#define MV7 1869573999 +#define MV8 1600085855 +#define MV9 1600085855 +#define MV10 1970632053 +#define MV11 1145324612 +#define MV12 1532713819 +#define MV13 1296911693 + +#define SV1 2029118401 +#define SV2 946921921 +#define SV3 2029118401 +#define SV4 1893843841 +#define SV5 1893843841 +#define SV6 1082196481 +#define SV7 2029118401 +#define SV8 2029118401 +#define SV9 2029118401 +#define SV10 2164392961 +#define SV11 2029118401 +#define SV12 2029118401 +#define SV13 2840765761 + +static const int SB1[1] = { + 1 +}; + +static const int SB2[16] = { + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 +}; + +static const int SB3[16] = { + 135266305, 1048577, 1, 8257, 8193, 135274497, 135266369, 8193, 1, 8193, 65, 1, 134217729, 1, 1, 134225921 +}; + +static const int SB4[16] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1048576, 0, 0, 0, 0 +}; + +static const int SB5[16] = { + 134234177, 136323073, 135282689, 136331393, 270549121, 136331329, 136331329, 136323201, 270540929, 270549121, 270540801, 270532737, 2105473, 8321, 2105345, 2113601 +}; + +static const int SB6[32] = { + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 +}; + +static const int SB7[32] = { + 402669825, 540041217, 537927937, 4194561, 272638209, 537952513, 540049665, 541098049, 404783361, 405831873, 2113793, 536879361, 403726593, 540049665, 271614209, 541089921, 272662721, 271614209, 406880513, 541081793, 272662785, 538992897, 272662785, 403726593, 540033281, 540049601, 1081537, 403726337, 269517057, 272646401, 3178625, 539001089 +}; + +static const int SB8[32] = { + 270565504, 536895744, 406880512, 541090048, 268435712, 406864128, 540049408, 541065216, 406872320, 541090048, 540049600, 405823552, 540041216, 4227264, 540049664, 271589632, 537952320, 4219008, 540033216, 540041408, 541090048, 540049600, 405823552, 405823680, 405823744, 541081856, 406880448, 402677888, 271606016, 138445056, 403726400, 405831680 +}; + +static const int SB9[32] = { + 677380417, 542146817, 806404417, 677421249, 677429569, 810598721, 677421185, 677429441, 408977665, 675332353, 536903937, 675283329, 675307905, 677429505, 811639105, 811639169, 809549953, 407945601, 676380929, 676380993, 810582273, 810598721, 677429569, 675299649, 541106433, 811630785, 675316097, 405848449, 811630913, 811630977, 806404225, 677421441 +}; + +static const int SB10[64] = { + 139501824, 676364608, 673227072, 810582336, 405840256, 408969536, 541114624, 810590528, 810557760, 675307776, 676331840, 811630848, 408994112, 676381056, 810598720, 537952576, 541114432, 674267392, 542162944, 677429568, 408985920, 677429504, 542155136, 676372864, 811639104, 407937344, 542146880, 811630976, 406896832, 675332416, 675316096, 674275712, 677421120, 810590528, 540066112, 408969536, 811647232, 407920960, 273727616, 677421312, 810582272, 676340096, 6332736, 671138176, 677421376, 677429568, 676372544, 540066176, 676372800, 536912192, 406872384, 676372800, 805347712, 810590464, 5284160, 274776448, 677413248, 541089984, 674283520, 541106560, 810598720, 137412992, 810598528, 811639168 +}; + +static const int SB11[64] = { + 810607041, 678486337, 945865089, 810607041, 673227201, 939565505, 946913729, 943767937, 946913729, 811647425, 944816449, 678478273, 811647361, 678478209, 812695937, 678453697, 943776065, 810598849, 944800129, 677437825, 678486401, 946913665, 946921793, 541114753, 945873345, 542163265, 544260417, 544244033, 939548801, 945865025, 678478145, 944824577, 812704129, 5300673, 946889089, 676389057, 941679041, 675340609, 809558465, 273735937, 678461889, 678478145, 812695873, 676381121, 678486465, 671138113, 810557825, 945856961, 944775489, 946921665, 946897345, 809533889, 812695937, 812687809, 812696001, 945865089, 676389249, 677413249, 945840449, 946913473, 943767937, 675332353, 676381121, 811647425 +}; + +static const int SB12[64] = { + 810598784, 811647296, 677404992, 809550144, 677429632, 811647296, 810582400, 675332480, 676381056, 810598720, 542163200, 543211840, 809533440, 673235328, 807444672, 675316096, 810582016, 541114560, 677396800, 810590528, 676381056, 138453376, 809550208, 810598784, 676372800, 810598784, 675332352, 542163328, 674242944, 677421440, 404799808, 542163328, 809542016, 809542016, 810598784, 139501952, 674283712, 541114752, 811622784, 676372672, 542155136, 543211904, 811639168, 811630912, 809542016, 676356480, 673218944, 811630976, 810598720, 810582208, 675307584, 810598784, 543203648, 542163264, 677404672, 811630784, 810590592, 810582400, 674275712, 810590528, 541098304, 675332416, 539001088, 811622784 +}; + +static const int SB13[3] = { + 273736128, 946913728, 675282944 +}; + +#endif /* IBEX_CNN_PARAMS_H */ diff --git a/inference_codes/cifar10_dws_cnn/optimized/ibex_inputs.h b/inference_codes/cifar10_dws_cnn/optimized/ibex_inputs.h new file mode 100644 index 0000000..2035b74 --- /dev/null +++ b/inference_codes/cifar10_dws_cnn/optimized/ibex_inputs.h @@ -0,0 +1,3144 @@ +#ifndef IBEX_INPUTS_H +#define IBEX_INPUTS_H + +static const int input[32][32][1][1] = { + { + { + {539039232} + }, + { + {741875200} + }, + { + {1044786176} + }, + { + {1634489344} + }, + { + {1045178880} + }, + { + {843063552} + }, + { + {977742336} + }, + { + {1078669312} + }, + { + {1028141056} + }, + { + {893529088} + }, + { + {977744896} + }, + { + {1179794944} + }, + { + {1230322432} + }, + { + {1162882816} + }, + { + {1028138240} + }, + { + {1196503552} + }, + { + {1499547392} + }, + { + {1297431808} + }, + { + {910173696} + }, + { + {1045114624} + }, + { + {1718639104} + }, + { + {1870292736} + }, + { + {1297761280} + }, + { + {1634622976} + }, + { + {1550276864} + }, + { + {893528576} + }, + { + {944122112} + }, + { + {876685568} + }, + { + {691348224} + }, + { + {640885760} + }, + { + {590291456} + }, + { + {623648512} + } + }, + { + { + {455349248} + }, + { + {876618752} + }, + { + {994453760} + }, + { + {1668043264} + }, + { + {1044915200} + }, + { + {758585088} + }, + { + {859643392} + }, + { + {994453248} + }, + { + {943990528} + }, + { + {893593856} + }, + { + {1011495424} + }, + { + {1112421888} + }, + { + {1011231232} + }, + { + {994255616} + }, + { + {1448885760} + }, + { + {2610923776} + }, + { + {3655060480} + }, + { + {3284382464} + }, + { + {1869896704} + }, + { + {1196438272} + }, + { + {1735284480} + }, + { + {1870095104} + }, + { + {1263877888} + }, + { + {1600673536} + }, + { + {1516327424} + }, + { + {926950656} + }, + { + {893329152} + }, + { + {876552448} + }, + { + {809378304} + }, + { + {624107264} + }, + { + {674571520} + }, + { + {707928320} + } + }, + { + { + {927213568} + }, + { + {1044718848} + }, + { + {994452992} + }, + { + {1668044544} + }, + { + {1044851712} + }, + { + {792272384} + }, + { + {792337152} + }, + { + {1028268032} + }, + { + {1095771136} + }, + { + {994779648} + }, + { + {944251392} + }, + { + {961160192} + }, + { + {910565120} + }, + { + {994518272} + }, + { + {1937334016} + }, + { + {2677836288} + }, + { + {2660205056} + }, + { + {2525526016} + }, + { + {2054774784} + }, + { + {1499481088} + }, + { + {1701665536} + }, + { + {1819567872} + }, + { + {1230192896} + }, + { + {1634426112} + }, + { + {1566988288} + }, + { + {893331456} + }, + { + {893396224} + }, + { + {927147264} + }, + { + {994715392} + }, + { + {640883968} + }, + { + {489167104} + }, + { + {741482240} + } + }, + { + { + {893591808} + }, + { + {1095379200} + }, + { + {1280520704} + }, + { + {1886739200} + }, + { + {1280585984} + }, + { + {1196565760} + }, + { + {1280911104} + }, + { + {1314727936} + }, + { + {1180115968} + }, + { + {1095902208} + }, + { + {1078863104} + }, + { + {1011426560} + }, + { + {943988992} + }, + { + {977412352} + }, + { + {1162225664} + }, + { + {1750219520} + }, + { + {2287617792} + }, + { + {1968258304} + }, + { + {1363881728} + }, + { + {1330918656} + }, + { + {1903584000} + }, + { + {2223537152} + }, + { + {1482508800} + }, + { + {1718376960} + }, + { + {1684692480} + }, + { + {893069824} + }, + { + {910106880} + }, + { + {1247161600} + }, + { + {1264135680} + }, + { + {842867200} + }, + { + {522590976} + }, + { + {707533568} + } + }, + { + { + {943923968} + }, + { + {1162818304} + }, + { + {1516522240} + }, + { + {1920558592} + }, + { + {1550205696} + }, + { + {1398748672} + }, + { + {1280718080} + }, + { + {1129262080} + }, + { + {977937152} + }, + { + {1011623424} + }, + { + {1095641856} + }, + { + {1078800384} + }, + { + {1129264128} + }, + { + {1297561856} + }, + { + {1516322816} + }, + { + {1717453056} + }, + { + {1733049088} + }, + { + {1328950528} + }, + { + {1111041792} + }, + { + {1532576000} + }, + { + {2223338752} + }, + { + {2425456128} + }, + { + {1734957056} + }, + { + {1920295424} + }, + { + {1819171584} + }, + { + {1381382656} + }, + { + {1533097728} + }, + { + {1668035840} + }, + { + {1550331648} + }, + { + {1381773568} + }, + { + {993995008} + }, + { + {1145318144} + } + }, + { + { + {1112812800} + }, + { + {1752649728} + }, + { + {2106352384} + }, + { + {2207410688} + }, + { + {1988449280} + }, + { + {1803110656} + }, + { + {1853379328} + }, + { + {1718635520} + }, + { + {1314730240} + }, + { + {1247357952} + }, + { + {1466186752} + }, + { + {1718898688} + }, + { + {1904303104} + }, + { + {1971608832} + }, + { + {1921079552} + }, + { + {1533364224} + }, + { + {993734656} + }, + { + {1026633216} + }, + { + {1278882560} + }, + { + {1498301952} + }, + { + {2105571584} + }, + { + {2122677248} + }, + { + {1583895808} + }, + { + {1752325632} + }, + { + {1735285504} + }, + { + {1516324864} + }, + { + {1718635264} + }, + { + {1617640448} + }, + { + {1482829568} + }, + { + {1617443840} + }, + { + {1735151616} + }, + { + {1785351680} + } + }, + { + { + {1331178752} + }, + { + {1869955584} + }, + { + {2459196160} + }, + { + {2594004992} + }, + { + {2492881152} + }, + { + {2459196416} + }, + { + {2425445120} + }, + { + {2391823872} + }, + { + {2341424896} + }, + { + {2307739136} + }, + { + {2307543552} + }, + { + {2341427200} + }, + { + {2459459584} + }, + { + {2509988608} + }, + { + {2240370688} + }, + { + {1431584512} + }, + { + {875639296} + }, + { + {875440896} + }, + { + {841424896} + }, + { + {1363820032} + }, + { + {2408544768} + }, + { + {2543746816} + }, + { + {2106153728} + }, + { + {2257608704} + }, + { + {2324849408} + }, + { + {2291097600} + }, + { + {2190104064} + }, + { + {1718631424} + }, + { + {1348284160} + }, + { + {1786137088} + }, + { + {2173462528} + }, + { + {2122604800} + } + }, + { + { + {2173263360} + }, + { + {2257675264} + }, + { + {2391303936} + }, + { + {2862579200} + }, + { + {2273401600} + }, + { + {2290640384} + }, + { + {2442489856} + }, + { + {2392222976} + }, + { + {2375445760} + }, + { + {2341891328} + }, + { + {2274584832} + }, + { + {2308205568} + }, + { + {2341892096} + }, + { + {2308336640} + }, + { + {1987466752} + }, + { + {1178481664} + }, + { + {589374208} + }, + { + {555490816} + }, + { + {790699264} + }, + { + {1649295872} + }, + { + {2576252160} + }, + { + {2459730688} + }, + { + {1954898176} + }, + { + {2022335744} + }, + { + {2157014784} + }, + { + {2140106240} + }, + { + {2106354432} + }, + { + {1971413504} + }, + { + {1853381888} + }, + { + {2022009344} + }, + { + {2123133952} + }, + { + {2139780096} + } + }, + { + { + {2408543488} + }, + { + {2476376064} + }, + { + {3065289984} + }, + { + {3586304768} + }, + { + {2642964480} + }, + { + {2339659776} + }, + { + {2929097472} + }, + { + {2963243008} + }, + { + {2627370752} + }, + { + {2358671616} + }, + { + {2190502912} + }, + { + {2257547264} + }, + { + {2358342656} + }, + { + {2307483392} + }, + { + {2120896768} + }, + { + {1278750720} + }, + { + {488447488} + }, + { + {370809088} + }, + { + {1110320128} + }, + { + {2590332160} + }, + { + {3046210560} + }, + { + {2392029184} + }, + { + {1853972480} + }, + { + {1870816000} + }, + { + {1971742720} + }, + { + {2022074624} + }, + { + {2139778560} + }, + { + {2257481984} + }, + { + {2341498880} + }, + { + {2223663616} + }, + { + {2156488960} + }, + { + {2173069568} + } + }, + { + { + {2391114752} + }, + { + {2526055680} + }, + { + {3586635264} + }, + { + {3619661056} + }, + { + {2710007296} + }, + { + {2423281664} + }, + { + {3096603392} + }, + { + {3399973888} + }, + { + {3434319360} + }, + { + {3098251264} + }, + { + {2559738112} + }, + { + {2408349696} + }, + { + {2525725184} + }, + { + {2389599488} + }, + { + {1631730176} + }, + { + {841294336} + }, + { + {690234368} + }, + { + {1043606784} + }, + { + {1850621184} + }, + { + {2506774016} + }, + { + {2390387968} + }, + { + {2257092096} + }, + { + {2172876800} + }, + { + {2155902464} + }, + { + {2223142400} + }, + { + {2290514432} + }, + { + {2307291904} + }, + { + {2307291648} + }, + { + {2324200192} + }, + { + {2307422464} + }, + { + {2307422208} + }, + { + {2324002048} + } + }, + { + { + {1566533888} + }, + { + {1684170496} + }, + { + {3097794048} + }, + { + {2962850560} + }, + { + {1935427840} + }, + { + {1918255360} + }, + { + {2961991168} + }, + { + {3567943936} + }, + { + {3702621440} + }, + { + {3534456320} + }, + { + {2962456064} + }, + { + {2205182464} + }, + { + {1717131776} + }, + { + {1497975296} + }, + { + {1228553472} + }, + { + {1127364608} + }, + { + {1396389376} + }, + { + {1951285248} + }, + { + {1984773376} + }, + { + {1514618112} + }, + { + {1616798720} + }, + { + {1701212416} + }, + { + {1819046400} + }, + { + {2004121856} + }, + { + {2054387968} + }, + { + {1886089472} + }, + { + {1818979840} + }, + { + {1852731392} + }, + { + {1987343872} + }, + { + {2071493120} + }, + { + {2189327616} + }, + { + {2340651264} + } + }, + { + { + {1515873024} + }, + { + {1818322176} + }, + { + {2844951552} + }, + { + {2743761408} + }, + { + {1884636160} + }, + { + {1985495040} + }, + { + {3062653696} + }, + { + {3567811584} + }, + { + {3753282304} + }, + { + {3854538496} + }, + { + {3517811456} + }, + { + {3012851968} + }, + { + {2491116800} + }, + { + {1935036160} + }, + { + {1581136896} + }, + { + {1968263936} + }, + { + {2439339776} + }, + { + {1917600512} + }, + { + {1026173440} + }, + { + {942749184} + }, + { + {1431394304} + }, + { + {1549427456} + }, + { + {1667459328} + }, + { + {1936617984} + }, + { + {1953461248} + }, + { + {1953659136} + }, + { + {2054782464} + }, + { + {2037938432} + }, + { + {2105178880} + }, + { + {2239791360} + }, + { + {2323940096} + }, + { + {2273147648} + } + }, + { + { + {1532320768} + }, + { + {1986488064} + }, + { + {2373543936} + }, + { + {1935626496} + }, + { + {1666403328} + }, + { + {1868188672} + }, + { + {2995282688} + }, + { + {3517216768} + }, + { + {3517546752} + }, + { + {3484190464} + }, + { + {3467611136} + }, + { + {3821444352} + }, + { + {3636238080} + }, + { + {2692571392} + }, + { + {1850622464} + }, + { + {1397051392} + }, + { + {1010454272} + }, + { + {824850944} + }, + { + {1160852992} + }, + { + {1631731456} + }, + { + {1530871552} + }, + { + {1026503168} + }, + { + {774713088} + }, + { + {1515673344} + }, + { + {2374402816} + }, + { + {2340782336} + }, + { + {2273607936} + }, + { + {2223210496} + }, + { + {2189327616} + }, + { + {2340848640} + }, + { + {2525989888} + }, + { + {2491974912} + } + }, + { + { + {1431393280} + }, + { + {1835163904} + }, + { + {1532118528} + }, + { + {1330004224} + }, + { + {1582980096} + }, + { + {1633245184} + }, + { + {2305578496} + }, + { + {2911133440} + }, + { + {3130026240} + }, + { + {3585116928} + }, + { + {4006521344} + }, + { + {4158041600} + }, + { + {3871447808} + }, + { + {2776457728} + }, + { + {1699366400} + }, + { + {1061048832} + }, + { + {640500736} + }, + { + {1009397504} + }, + { + {1984312576} + }, + { + {2438480128} + }, + { + {2085568512} + }, + { + {1278619904} + }, + { + {622994176} + }, + { + {1094466304} + }, + { + {2458089472} + }, + { + {3215958016} + }, + { + {2744683776} + }, + { + {2576650240} + }, + { + {2644022272} + }, + { + {2795477504} + }, + { + {2879560704} + }, + { + {2828834304} + } + }, + { + { + {2963838976} + }, + { + {2811988480} + }, + { + {2037472512} + }, + { + {2525789440} + }, + { + {2609807872} + }, + { + {2845544704} + }, + { + {3047262720} + }, + { + {2911528448} + }, + { + {3399382528} + }, + { + {3887895296} + }, + { + {4090405888} + }, + { + {4140934912} + }, + { + {3921844992} + }, + { + {2793563648} + }, + { + {1565214976} + }, + { + {875972864} + }, + { + {774518528} + }, + { + {1362177024} + }, + { + {1866609664} + }, + { + {1597846272} + }, + { + {1042949376} + }, + { + {656219136} + }, + { + {639507456} + }, + { + {1144006400} + }, + { + {2137214720} + }, + { + {3349844480} + }, + { + {3333463808} + }, + { + {2980486400} + }, + { + {2980617984} + }, + { + {3148982016} + }, + { + {3132139008} + }, + { + {3131875840} + } + }, + { + { + {2492557824} + }, + { + {2459134208} + }, + { + {2475846400} + }, + { + {2610458624} + }, + { + {2525981184} + }, + { + {2778494464} + }, + { + {2829087488} + }, + { + {2727042304} + }, + { + {3399447552} + }, + { + {3870854656} + }, + { + {4056588544} + }, + { + {3955662592} + }, + { + {3787100928} + }, + { + {2658885376} + }, + { + {1346518784} + }, + { + {791954432} + }, + { + {1060453376} + }, + { + {2051816192} + }, + { + {2825276160} + }, + { + {2640529920} + }, + { + {1799762432} + }, + { + {1261708032} + }, + { + {1867725312} + }, + { + {2591182336} + }, + { + {2843760128} + }, + { + {3146868992} + }, + { + {3332604672} + }, + { + {3333790208} + }, + { + {3266746624} + }, + { + {3418268416} + }, + { + {3536301312} + }, + { + {3536170240} + } + }, + { + { + {2442027264} + }, + { + {2526439168} + }, + { + {2526373888} + }, + { + {2543216896} + }, + { + {2509333504} + }, + { + {2340837632} + }, + { + {2442026496} + }, + { + {2575849984} + }, + { + {3197528832} + }, + { + {3736176128} + }, + { + {3887828992} + }, + { + {3652092672} + }, + { + {3449910528} + }, + { + {2658620416} + }, + { + {1497841152} + }, + { + {859128064} + }, + { + {1161510144} + }, + { + {2203730176} + }, + { + {2910014464} + }, + { + {2876525056} + }, + { + {2826324480} + }, + { + {2826390272} + }, + { + {2977911040} + }, + { + {3180026624} + }, + { + {3112785152} + }, + { + {3079099136} + }, + { + {2978503680} + }, + { + {2676974592} + }, + { + {2475844608} + }, + { + {2492687616} + }, + { + {2576706048} + }, + { + {2576443392} + } + }, + { + { + {2879223040} + }, + { + {3064627200} + }, + { + {3047916032} + }, + { + {3014098688} + }, + { + {2997123840} + }, + { + {2811851008} + }, + { + {2593089536} + }, + { + {2777836032} + }, + { + {3214569728} + }, + { + {3483596544} + }, + { + {3550836480} + }, + { + {3534058752} + }, + { + {3298190848} + }, + { + {2658487808} + }, + { + {1632387072} + }, + { + {892616448} + }, + { + {1380402432} + }, + { + {2658620672} + }, + { + {3280953088} + }, + { + {3146340352} + }, + { + {2977976320} + }, + { + {2742108928} + }, + { + {2792703744} + }, + { + {3180092416} + }, + { + {3281083392} + }, + { + {3095810048} + }, + { + {2725725952} + }, + { + {2508411904} + }, + { + {2593679104} + }, + { + {2677893888} + }, + { + {2745134080} + }, + { + {2660656640} + } + }, + { + { + {3333394432} + }, + { + {3400832000} + }, + { + {3451427072} + }, + { + {3518536192} + }, + { + {3535247360} + }, + { + {3484784640} + }, + { + {3282932224} + }, + { + {3232204800} + }, + { + {3180884992} + }, + { + {3146867968} + }, + { + {3281545216} + }, + { + {3348851456} + }, + { + {2961396736} + }, + { + {2254387456} + }, + { + {1430402816} + }, + { + {875707392} + }, + { + {1329675520} + }, + { + {2473214976} + }, + { + {2994424064} + }, + { + {2725068288} + }, + { + {2371760896} + }, + { + {2254255872} + }, + { + {2506900480} + }, + { + {2927645440} + }, + { + {3196935168} + }, + { + {3028504832} + }, + { + {2725792000} + }, + { + {2946002432} + }, + { + {3148579840} + }, + { + {3148645120} + }, + { + {3165684736} + }, + { + {3098312960} + } + }, + { + { + {3114568960} + }, + { + {3181941248} + }, + { + {3232601344} + }, + { + {3249312768} + }, + { + {3282998784} + }, + { + {3299776000} + }, + { + {3282999040} + }, + { + {3266024704} + }, + { + {3012917760} + }, + { + {2742900992} + }, + { + {3163513600} + }, + { + {3028768768} + }, + { + {2304718592} + }, + { + {1665279488} + }, + { + {1295725056} + }, + { + {942684160} + }, + { + {1177890560} + }, + { + {2035495424} + }, + { + {2405513472} + }, + { + {2355446784} + }, + { + {2625659648} + }, + { + {2946071296} + }, + { + {2491047168} + }, + { + {2069247232} + }, + { + {2658223872} + }, + { + {2893695232} + }, + { + {2708686080} + }, + { + {3097131264} + }, + { + {3417609728} + }, + { + {3468072704} + }, + { + {3468203776} + }, + { + {3367211776} + } + }, + { + { + {3215627776} + }, + { + {3333594880} + }, + { + {3333725696} + }, + { + {3316816640} + }, + { + {3316750848} + }, + { + {3283065088} + }, + { + {3283065088} + }, + { + {3282999552} + }, + { + {3248983552} + }, + { + {2860868096} + }, + { + {3096075520} + }, + { + {2910670592} + }, + { + {2052470784} + }, + { + {1463824128} + }, + { + {1346188544} + }, + { + {1194998016} + }, + { + {1599162624} + }, + { + {2457428480} + }, + { + {2878371328} + }, + { + {3164900864} + }, + { + {3299907840} + }, + { + {3283261952} + }, + { + {3030485248} + }, + { + {2255377920} + }, + { + {1850551552} + }, + { + {2557033472} + }, + { + {2759017984} + }, + { + {3046668800} + }, + { + {3384319744} + }, + { + {3417874432} + }, + { + {3434651136} + }, + { + {3367278336} + } + }, + { + { + {3198719488} + }, + { + {3232406016} + }, + { + {3198981888} + }, + { + {3182138880} + }, + { + {3182138880} + }, + { + {3198982144} + }, + { + {3215824896} + }, + { + {3182138880} + }, + { + {3232403968} + }, + { + {3248520448} + }, + { + {3298125312} + }, + { + {2978108416} + }, + { + {2743363840} + }, + { + {2373676032} + }, + { + {1851477504} + }, + { + {1801014528} + }, + { + {2592766976} + }, + { + {3283263488} + }, + { + {3317015040} + }, + { + {3333792256} + }, + { + {3333792000} + }, + { + {3333792000} + }, + { + {3316883200} + }, + { + {3097857536} + }, + { + {2693425664} + }, + { + {2979029760} + }, + { + {3028899584} + }, + { + {2945345024} + }, + { + {3400899072} + }, + { + {3384320768} + }, + { + {3367478016} + }, + { + {3299973632} + } + }, + { + { + {2929297408} + }, + { + {3063975936} + }, + { + {3097924352} + }, + { + {3131610368} + }, + { + {3165296384} + }, + { + {3199047936} + }, + { + {3182204928} + }, + { + {3165361920} + }, + { + {3249444864} + }, + { + {3366553088} + }, + { + {3365628672} + }, + { + {3163644928} + }, + { + {3198321664} + }, + { + {3198981632} + }, + { + {3097924096} + }, + { + {3114635520} + }, + { + {3165230336} + }, + { + {3215890944} + }, + { + {3300105728} + }, + { + {3333726208} + }, + { + {3350569216} + }, + { + {3350437888} + }, + { + {3333660416} + }, + { + {3384123136} + }, + { + {3603146752} + }, + { + {3653477376} + }, + { + {2810469376} + }, + { + {2692370944} + }, + { + {3518271744} + }, + { + {3367345664} + }, + { + {3266552064} + }, + { + {3232668672} + } + }, + { + { + {3064107520} + }, + { + {3165230336} + }, + { + {3148519424} + }, + { + {3182139648} + }, + { + {3198917120} + }, + { + {3232603136} + }, + { + {3266288896} + }, + { + {3249643008} + }, + { + {3249577472} + }, + { + {3332736512} + }, + { + {3315100160} + }, + { + {3113379584} + }, + { + {3164899328} + }, + { + {3283196928} + }, + { + {3283196928} + }, + { + {3283131136} + }, + { + {3266353920} + }, + { + {3266419712} + }, + { + {3300040448} + }, + { + {3316883456} + }, + { + {3333660160} + }, + { + {3316882944} + }, + { + {3300105728} + }, + { + {3401163264} + }, + { + {3737890816} + }, + { + {3552551680} + }, + { + {2474203392} + }, + { + {2558023424} + }, + { + {3332866816} + }, + { + {3300038912} + }, + { + {3249708032} + }, + { + {3215890944} + } + }, + { + { + {3047198976} + }, + { + {3131544320} + }, + { + {3131676160} + }, + { + {3148453888} + }, + { + {3182074112} + }, + { + {3198917120} + }, + { + {3215694080} + }, + { + {3198982656} + }, + { + {3198982400} + }, + { + {3096934144} + }, + { + {3011992576} + }, + { + {2928304640} + }, + { + {3064104960} + }, + { + {3199179776} + }, + { + {3182337024} + }, + { + {3064567808} + }, + { + {2963575808} + }, + { + {2929890048} + }, + { + {2963510528} + }, + { + {3081279488} + }, + { + {3148651008} + }, + { + {3115096576} + }, + { + {3115161600} + }, + { + {3401228032} + }, + { + {3670649344} + }, + { + {3081212416} + }, + { + {2272418816} + }, + { + {2271957504} + }, + { + {2928965376} + }, + { + {3165097216} + }, + { + {3249576960} + }, + { + {3215693312} + } + }, + { + { + {3047198976} + }, + { + {3131544064} + }, + { + {3081147392} + }, + { + {3081016064} + }, + { + {3097859072} + }, + { + {3097859072} + }, + { + {3131479040} + }, + { + {3131478784} + }, + { + {3114701056} + }, + { + {3012784640} + }, + { + {2911132672} + }, + { + {2945413120} + }, + { + {2946403328} + }, + { + {2727708672} + }, + { + {2273211648} + }, + { + {1785226752} + }, + { + {1482382848} + }, + { + {1398168320} + }, + { + {1415011584} + }, + { + {1616798720} + }, + { + {1835625728} + }, + { + {1919971328} + }, + { + {2256566016} + }, + { + {3148716288} + }, + { + {3216087040} + }, + { + {2239525888} + }, + { + {2121096448} + }, + { + {2423741952} + }, + { + {2541973248} + }, + { + {2659676160} + }, + { + {2441509632} + }, + { + {2794882816} + } + }, + { + { + {3030355968} + }, + { + {3081015040} + }, + { + {3064238336} + }, + { + {3081081600} + }, + { + {3131610624} + }, + { + {3148387840} + }, + { + {3131544832} + }, + { + {3131479040} + }, + { + {3165163776} + }, + { + {3181280256} + }, + { + {3197595648} + }, + { + {2962389248} + }, + { + {2592701440} + }, + { + {2357229568} + }, + { + {2138666496} + }, + { + {1633839104} + }, + { + {1196119296} + }, + { + {1094930176} + }, + { + {1078152960} + }, + { + {1044664320} + }, + { + {1027952640} + }, + { + {1213092096} + }, + { + {1970497792} + }, + { + {2828896512} + }, + { + {2441508096} + }, + { + {1666996224} + }, + { + {2104187136} + }, + { + {2524733952} + }, + { + {1902269952} + }, + { + {2575527680} + }, + { + {1599821312} + }, + { + {2239262720} + } + }, + { + { + {3114570496} + }, + { + {3165164032} + }, + { + {3165296128} + }, + { + {3165296128} + }, + { + {3165296128} + }, + { + {3148453120} + }, + { + {3114832896} + }, + { + {3114832384} + }, + { + {3215494400} + }, + { + {3198056960} + }, + { + {3180818176} + }, + { + {3130883072} + }, + { + {3013642496} + }, + { + {2677245184} + }, + { + {2020698880} + }, + { + {1397969408} + }, + { + {1347375360} + }, + { + {1667063040} + }, + { + {1734500352} + }, + { + {1465275648} + }, + { + {1397838336} + }, + { + {1869111808} + }, + { + {2491906048} + }, + { + {2778038272} + }, + { + {2609608960} + }, + { + {2542237696} + }, + { + {2727048192} + }, + { + {2188008192} + }, + { + {1599295488} + }, + { + {2693494272} + }, + { + {1885755904} + }, + { + {2693561856} + } + }, + { + { + {3080818944} + }, + { + {3165164032} + }, + { + {3182073344} + }, + { + {3182139136} + }, + { + {3148453120} + }, + { + {3131610112} + }, + { + {3131610112} + }, + { + {3131478272} + }, + { + {3198586368} + }, + { + {3130752512} + }, + { + {2861198080} + }, + { + {2626055424} + }, + { + {2373938432} + }, + { + {2087609088} + }, + { + {2037146880} + }, + { + {2239393536} + }, + { + {2542434816} + }, + { + {2794750720} + }, + { + {2727443968} + }, + { + {2525524992} + }, + { + {2643294720} + }, + { + {2912519168} + }, + { + {3013313280} + }, + { + {2895411968} + }, + { + {2575659264} + }, + { + {2373675776} + }, + { + {2575790336} + }, + { + {2255708416} + }, + { + {2306632448} + }, + { + {3114570496} + }, + { + {2205378560} + }, + { + {2861924608} + } + }, + { + { + {3080884480} + }, + { + {3148321024} + }, + { + {3114767104} + }, + { + {3097858560} + }, + { + {3064238080} + }, + { + {3064238080} + }, + { + {3047460864} + }, + { + {2879097088} + }, + { + {2474799360} + }, + { + {2407295488} + }, + { + {2323080704} + }, + { + {2306370560} + }, + { + {2474800640} + }, + { + {2761130240} + }, + { + {2979956736} + }, + { + {3064105216} + }, + { + {3114436864} + }, + { + {3131214080} + }, + { + {3148057088} + }, + { + {3164900096} + }, + { + {3181611776} + }, + { + {3198388736} + }, + { + {3198388224} + }, + { + {3164768256} + }, + { + {3097528832} + }, + { + {3030288896} + }, + { + {2979890432} + }, + { + {2929427456} + }, + { + {2946269696} + }, + { + {2676585728} + }, + { + {2693494784} + }, + { + {3030222336} + } + }, + { + { + {3080752896} + }, + { + {3114635264} + }, + { + {3080949504} + }, + { + {3097727232} + }, + { + {3114569984} + }, + { + {3114635776} + }, + { + {3165099008} + }, + { + {3215495936} + }, + { + {3097660672} + }, + { + {2895610624} + }, + { + {2845147648} + }, + { + {3064105984} + }, + { + {3232404480} + }, + { + {3266024704} + }, + { + {3265959168} + }, + { + {3265893120} + }, + { + {3249115648} + }, + { + {3232338688} + }, + { + {3215495936} + }, + { + {3232142080} + }, + { + {3248853760} + }, + { + {3248919040} + }, + { + {3232206848} + }, + { + {3232206848} + }, + { + {3232075520} + }, + { + {3232075264} + }, + { + {3249048576} + }, + { + {3249049344} + }, + { + {3249049344} + }, + { + {3249180672} + }, + { + {3249114368} + }, + { + {3164834816} + } + }, + { + { + {2877978624} + }, + { + {2895216128} + }, + { + {2911927296} + }, + { + {2928573696} + }, + { + {2928573696} + }, + { + {2945416704} + }, + { + {2962259712} + }, + { + {2979102464} + }, + { + {2962259712} + }, + { + {2962325248} + }, + { + {2962325248} + }, + { + {2945416448} + }, + { + {2928638976} + }, + { + {2962259456} + }, + { + {2995945472} + }, + { + {2995944960} + }, + { + {2996010240} + }, + { + {2996010496} + }, + { + {2996010240} + }, + { + {2996010496} + }, + { + {3012787968} + }, + { + {3012853248} + }, + { + {2979167488} + }, + { + {2962324480} + }, + { + {2962324224} + }, + { + {2979101440} + }, + { + {2979101440} + }, + { + {2995944448} + }, + { + {3012853248} + }, + { + {3012853248} + }, + { + {3029630464} + }, + { + {2995681792} + } + } +}; + + +#endif /* IBEX_INPUTS_H */ diff --git a/inference_codes/cifar10_dws_cnn/original/Makefile b/inference_codes/cifar10_dws_cnn/original/Makefile new file mode 100644 index 0000000..066dc1b --- /dev/null +++ b/inference_codes/cifar10_dws_cnn/original/Makefile @@ -0,0 +1,15 @@ +# Copyright lowRISC contributors. +# Licensed under the Apache License, Version 2.0, see LICENSE for details. +# SPDX-License-Identifier: Apache-2.0 +# +# Generate a baremetal application + +# Name of the program $(PROGRAM).c will be added as a source file + +PROGRAM = cifar10_dws_cnn +PROGRAM_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) +# Any extra source files to include in the build. Use the upper case .S +# extension for assembly files +EXTRA_SRCS := + +include ${PROGRAM_DIR}/../../common/common.mk diff --git a/inference_codes/cifar10_dws_cnn/original/cifar10_dws_cnn.c b/inference_codes/cifar10_dws_cnn/original/cifar10_dws_cnn.c new file mode 100644 index 0000000..c430bf8 --- /dev/null +++ b/inference_codes/cifar10_dws_cnn/original/cifar10_dws_cnn.c @@ -0,0 +1,292 @@ +#include "simple_system_common.h" +#include "cnn_weights.h" +#include "fully_connected.h" +#include "ibex_cnn_params.h" +#include "ibex_inputs.h" +#include "conv2d.h" +#include "dws_conv.h" + +#define IMG_SZ 32 +#define NUM_FIL0 3 + +#define FILTER1 3 +#define FILTER2 1 +#define FILTER3 3 +#define FILTER4 1 +#define FILTER5 3 +#define FILTER6 1 +#define FILTER7 3 +#define FILTER8 1 +#define FILTER9 3 +#define FILTER10 1 +#define FILTER11 3 +#define FILTER12 1 + +#define NUM_FIL1 3 +#define NUM_FIL2 64 +#define NUM_FIL3 64 +#define NUM_FIL4 64 +#define NUM_FIL5 64 +#define NUM_FIL6 128 +#define NUM_FIL7 128 +#define NUM_FIL8 128 +#define NUM_FIL9 128 +#define NUM_FIL10 256 +#define NUM_FIL11 256 +#define NUM_FIL12 256 + +#define STRIDE1 1 +#define STRIDE2 1 +#define STRIDE3 1 +#define STRIDE4 1 +#define STRIDE5 1 +#define STRIDE6 1 +#define STRIDE7 1 +#define STRIDE8 1 +#define STRIDE9 1 +#define STRIDE10 1 +#define STRIDE11 1 +#define STRIDE12 1 + +#define PAD_TB1 1 +#define PAD_LR1 1 + +#define PAD_TB2 0 +#define PAD_LR2 0 + +#define PAD_TB3 1 +#define PAD_LR3 1 + +#define PAD_TB4 0 +#define PAD_LR4 0 + +#define PAD_TB5 1 +#define PAD_LR5 1 + +#define PAD_TB6 0 +#define PAD_LR6 0 + +#define PAD_TB7 1 +#define PAD_LR7 1 + +#define PAD_TB8 0 +#define PAD_LR8 0 + +#define PAD_TB9 1 +#define PAD_LR9 1 + +#define PAD_TB10 0 +#define PAD_LR10 0 + +#define PAD_TB11 1 +#define PAD_LR11 1 + +#define PAD_TB12 0 +#define PAD_LR12 0 + +#define POOL_STRIDE1 2 +#define POOL_SIZE1 2 + +#define POOL_STRIDE2 2 +#define POOL_SIZE2 2 + +#define POOL_STRIDE3 2 +#define POOL_SIZE3 2 + +#define OUT_DIM 10 + +#define SAMPLES 1 +int outs[SAMPLES][OUT_DIM]; + +void cifar10_dws_cnn() { + + int dout1 = NUM_FIL1; + int hout1 = ((IMG_SZ - FILTER1 + 2 * PAD_TB1)/STRIDE1) + 1; + int wout1 = ((IMG_SZ - FILTER1 + 2 * PAD_LR1)/STRIDE1) + 1; + + int dout2 = NUM_FIL2; + int hout2 = ((hout1 - FILTER2+ 2 * PAD_TB2)/STRIDE2)+1; + int wout2 = ((wout1 - FILTER2+ 2 * PAD_LR2)/STRIDE2)+1; + + int dout3 = NUM_FIL3; + int hout3 = ((hout2 - FILTER3+ 2 * PAD_TB3)/STRIDE3)+1; + int wout3 = ((wout2 - FILTER3+ 2 * PAD_LR3)/STRIDE3)+1; + + int dout4 = NUM_FIL4; + int hout4 = ((hout3 - FILTER4+ 2 * PAD_TB4)/STRIDE4)+1; + int wout4 = ((wout3 - FILTER4+ 2 * PAD_LR4)/STRIDE4)+1; + + int dout5 = dout4; + int hout5 = hout4/POOL_STRIDE1; + int wout5 = wout4/POOL_STRIDE1; + + int dout6 = NUM_FIL5; + int hout6 = ((hout5 - FILTER5+ 2 * PAD_TB5)/STRIDE5)+1; + int wout6 = ((wout5 - FILTER5+ 2 * PAD_LR5)/STRIDE5)+1; + + int dout7 = NUM_FIL6; + int hout7 = ((hout6 - FILTER6+ 2 * PAD_TB6)/STRIDE6)+1; + int wout7 = ((wout6 - FILTER6+ 2 * PAD_LR6)/STRIDE6)+1; + + int dout8 = NUM_FIL7; + int hout8 = ((hout7 - FILTER7+ 2 * PAD_TB7)/STRIDE7)+1; + int wout8 = ((wout7 - FILTER7+ 2 * PAD_LR7)/STRIDE7)+1; + + int dout9 = NUM_FIL8; + int hout9 = ((hout8 - FILTER8+ 2 * PAD_TB8)/STRIDE8)+1; + int wout9 = ((wout8 - FILTER8+ 2 * PAD_LR8)/STRIDE8)+1; + + int dout10 = dout9; + int hout10 = hout9/POOL_STRIDE2; + int wout10 = wout9/POOL_STRIDE2; + + int dout11 = NUM_FIL9; + int hout11 = ((hout10 - FILTER9+ 2 * PAD_TB9)/STRIDE9)+1; + int wout11 = ((wout10 - FILTER9+ 2 * PAD_LR9)/STRIDE9)+1; + + int dout12 = NUM_FIL10; + int hout12 = ((hout11 - FILTER10+ 2 * PAD_TB10)/STRIDE10)+1; + int wout12 = ((wout11 - FILTER10+ 2 * PAD_LR10)/STRIDE10)+1; + + int dout13 = NUM_FIL11; + int hout13 = ((hout12 - FILTER11+ 2 * PAD_TB11)/STRIDE11)+1; + int wout13 = ((wout12 - FILTER11+ 2 * PAD_LR11)/STRIDE11)+1; + + int dout14 = NUM_FIL12; + int hout14 = ((hout13 - FILTER12+ 2 * PAD_TB12)/STRIDE12)+1; + int wout14 = ((wout13 - FILTER12+ 2 * PAD_LR12)/STRIDE12)+1; + + int dout15 = dout14; + int hout15 = hout14/POOL_STRIDE3; + int wout15 = wout14/POOL_STRIDE3; + + int flatten_dim = dout15 * hout15 * wout15; + + int in[IMG_SZ][IMG_SZ][NUM_FIL0]; + int inp_dim[3] = {IMG_SZ, IMG_SZ, NUM_FIL0}; + + int out1[hout1][wout1][dout1]; + int pad_1[4] = {PAD_TB1, PAD_TB1, PAD_LR1, PAD_LR1}; + int outp_dim1[3] = {hout1, wout1, dout1}; + int f_dim1[4] = {NUM_FIL1, FILTER1, FILTER1, NUM_FIL0}; + + int out2[hout2][wout2][dout2]; + int pad_2[4] = {PAD_TB2, PAD_TB2, PAD_LR2, PAD_LR2}; + int outp_dim2[3] = {hout2, wout2, dout2}; + int f_dim2[4] = {NUM_FIL2, FILTER2, FILTER2, NUM_FIL1}; + + int out3[hout3][wout3][dout3]; + int pad_3[4] = {PAD_TB3, PAD_TB3, PAD_LR3, PAD_LR3}; + int outp_dim3[3] = {hout3, wout3, dout3}; + int f_dim3[4] = {NUM_FIL3, FILTER3, FILTER3, NUM_FIL2}; + + int out4[hout4][wout4][dout4]; + int pad_4[4] = {PAD_TB4, PAD_TB4, PAD_LR4, PAD_LR4}; + int outp_dim4[3] = {hout4, wout4, dout4}; + int f_dim4[4] = {NUM_FIL4, FILTER4, FILTER4, NUM_FIL3}; + + int out5[hout5][wout5][dout5]; + int outp_dim5[3] = {hout5, wout5, dout5}; + + int out6[hout6][wout6][dout6]; + int pad_6[4] = {PAD_TB5, PAD_TB5, PAD_LR5, PAD_LR5}; + int outp_dim6[3] = {hout6, wout6, dout6}; + int f_dim6[4] = {NUM_FIL5, FILTER5, FILTER5, NUM_FIL4}; + + int out7[hout7][wout7][dout7]; + int pad_7[4] = {PAD_TB6, PAD_TB6, PAD_LR6, PAD_LR6}; + int outp_dim7[3] = {hout7, wout7, dout7}; + int f_dim7[4] = {NUM_FIL6, FILTER6, FILTER6, NUM_FIL5}; + + int out8[hout8][wout8][dout8]; + int pad_8[4] = {PAD_TB7, PAD_TB7, PAD_LR7, PAD_LR7}; + int outp_dim8[3] = {hout8, wout8, dout8}; + int f_dim8[4] = {NUM_FIL7, FILTER7, FILTER7, NUM_FIL6}; + + int out9[hout9][wout9][dout9]; + int pad_9[4] = {PAD_TB8, PAD_TB8, PAD_LR8, PAD_LR8}; + int outp_dim9[3] = {hout9, wout9, dout9}; + int f_dim9[4] = {NUM_FIL8, FILTER8, FILTER8, NUM_FIL7}; + + int out10[hout10][wout10][dout10]; + int outp_dim10[3] = {hout10, wout10, dout10}; + + int out11[hout11][wout11][dout11]; + int pad_11[4] = {PAD_TB9, PAD_TB9, PAD_LR9, PAD_LR9}; + int outp_dim11[3] = {hout11, wout11, dout11}; + int f_dim11[4] = {NUM_FIL9, FILTER9, FILTER9, NUM_FIL8}; + + int out12[hout12][wout12][dout12]; + int pad_12[4] = {PAD_TB10, PAD_TB10, PAD_LR10, PAD_LR10}; + int outp_dim12[3] = {hout12, wout12, dout12}; + int f_dim12[4] = {NUM_FIL10, FILTER10, FILTER10, NUM_FIL9}; + + int out13[hout13][wout13][dout13]; + int pad_13[4] = {PAD_TB11, PAD_TB11, PAD_LR11, PAD_LR11}; + int outp_dim13[3] = {hout13, wout13, dout13}; + int f_dim13[4] = {NUM_FIL11, FILTER11, FILTER11, NUM_FIL10}; + + int out14[hout14][wout14][dout14]; + int pad_14[4] = {PAD_TB12, PAD_TB12, PAD_LR12, PAD_LR12}; + int outp_dim14[3] = {hout14, wout14, dout14}; + int f_dim14[4] = {NUM_FIL12, FILTER12, FILTER12, NUM_FIL11}; + + int out15[hout15][wout15][dout15]; + int outp_dim15[3] = {hout15, wout15, dout15}; + + int out16[flatten_dim]; + + + int out[OUT_DIM]; + + for (int iter = 0; iter < SAMPLES; iter++){ + + for(int i = 0; i < IMG_SZ; i++){ + for(int j = 0; j < IMG_SZ; j++){ + for(int k = 0; k < NUM_FIL0; k++){ + in[i][j][k] = input[i][j][k][iter]; + } + } + } + + pcount_enable(1); + + dw_conv(inp_dim, f_dim1, outp_dim1, in, F1, B1, out1, STRIDE1, pad_1, SB1, MV1, SV1); + pw_conv(outp_dim1, f_dim2, outp_dim2, out1, F2, B2, out2, STRIDE2, pad_2, SB2, MV2, SV2); + dw_conv(outp_dim2, f_dim3, outp_dim3, out2, F3, B3, out3, STRIDE3, pad_3, SB3, MV3, SV3); + pw_conv(outp_dim3, f_dim4, outp_dim4, out3, F4, B4, out4, STRIDE4, pad_4, SB4, MV4, SV4); + maxpool2(outp_dim4, outp_dim5, out4, out5, POOL_SIZE1, POOL_STRIDE1); + + dw_conv(outp_dim5, f_dim6, outp_dim6, out5, F5, B5, out6, STRIDE5, pad_6, SB5, MV5, SV5); + pw_conv(outp_dim6, f_dim7, outp_dim7, out6, F6, B6, out7, STRIDE6, pad_7, SB6, MV6, SV6); + dw_conv(outp_dim7, f_dim8, outp_dim8, out7, F7, B7, out8, STRIDE7, pad_8, SB7, MV7, SV7); + pw_conv(outp_dim8, f_dim9, outp_dim9, out8, F8, B8, out9, STRIDE8, pad_9, SB8, MV8, SV8); + maxpool2(outp_dim9, outp_dim10, out9, out10, POOL_SIZE2, POOL_STRIDE2); + + dw_conv(outp_dim10, f_dim11, outp_dim11, out10, F9, B9, out11, STRIDE9, pad_11, SB9, MV9, SV9); + pw_conv(outp_dim11, f_dim12, outp_dim12, out11, F10, B10, out12, STRIDE10, pad_12, SB10, MV10, SV10); + dw_conv(outp_dim12, f_dim13, outp_dim13, out12, F11, B11, out13, STRIDE11, pad_13, SB11, MV11, SV11); + pw_conv(outp_dim13, f_dim14, outp_dim14, out13, F12, B12, out14, STRIDE12, pad_14, SB12, MV12, SV12); + maxpool2(outp_dim14, outp_dim15, out14, out15, POOL_SIZE3, POOL_STRIDE3); + + flatten(outp_dim15, out15, out16); + + mlp_layer(out16, out, flatten_dim, OUT_DIM, W1, B13, SB13, MV13, SV13); + pcount_enable(0); + + puts("Output Layer Values:\n"); + for(int i = 0; i < OUT_DIM; i++) { + puthex(out[i]); + puts("\n"); + } + } +} + +int main(void) { + + pcount_enable(0); + + cifar10_dws_cnn(); + + return 0; +} diff --git a/inference_codes/cifar10_dws_cnn/original/cnn_weights.h b/inference_codes/cifar10_dws_cnn/original/cnn_weights.h new file mode 100644 index 0000000..ecb8519 --- /dev/null +++ b/inference_codes/cifar10_dws_cnn/original/cnn_weights.h @@ -0,0 +1,11933 @@ +#ifndef CNN_WEIGHTS_H +#define CNN_WEIGHTS_H + +static const int F1[3][3][3][1] = { + { + { + {125}, + {-14}, + {74} + }, + { + {79}, + {39}, + {-108} + }, + { + {-40}, + {-99}, + {2} + } + }, + { + { + {-127}, + {111}, + {-98} + }, + { + {70}, + {50}, + {-34} + }, + { + {-71}, + {20}, + {59} + } + }, + { + { + {110}, + {2}, + {69} + }, + { + {87}, + {16}, + {-32} + }, + { + {5}, + {56}, + {123} + } + } +}; + +static const int F2[64][3] = { + {-1, 0, 0}, + {-1, 0, 0}, + {0, 0, -1}, + {1, -1, 0}, + {1, -1, 0}, + {0, -1, 0}, + {-1, 1, 0}, + {1, 1, 0}, + {0, 1, -1}, + {0, 0, 0}, + {-1, 0, 0}, + {1, 0, 1}, + {-1, 0, 0}, + {-1, -1, 0}, + {-1, 0, 1}, + {0, 0, -1}, + {-1, 0, 1}, + {1, 1, 0}, + {0, 1, -1}, + {-1, -1, 0}, + {0, 0, 0}, + {0, 0, 1}, + {-1, 0, 1}, + {-1, 0, 0}, + {0, 0, 1}, + {1, 1, 1}, + {-1, 0, -1}, + {0, 0, 0}, + {0, 1, 0}, + {-1, -1, 1}, + {0, -1, -1}, + {0, -1, 0}, + {0, 0, 1}, + {0, -1, -1}, + {0, 0, 0}, + {-1, 1, 1}, + {0, 1, 0}, + {0, 0, 0}, + {1, 1, -1}, + {0, 0, 0}, + {0, 0, 1}, + {0, 0, 0}, + {0, -1, 1}, + {1, 1, 0}, + {0, 1, -1}, + {0, 0, 1}, + {1, 0, 0}, + {-1, -1, 0}, + {0, 1, 0}, + {-1, 1, -1}, + {1, -1, 1}, + {0, -1, -1}, + {1, 0, -1}, + {0, 1, 1}, + {-1, -1, 0}, + {1, 0, 1}, + {0, -1, -1}, + {1, 1, 0}, + {-1, -1, 0}, + {0, 0, 0}, + {0, 1, -1}, + {0, 0, 0}, + {1, 0, 0}, + {0, -1, 0} +}; + +static const int F3[64][3][3][1] = { + { + { + {-92}, + {-78}, + {86} + }, + { + {-5}, + {5}, + {10} + }, + { + {-56}, + {92}, + {-58} + } + }, + { + { + {32}, + {14}, + {84} + }, + { + {16}, + {-52}, + {8} + }, + { + {-18}, + {24}, + {-4} + } + }, + { + { + {61}, + {-115}, + {-31} + }, + { + {-14}, + {82}, + {42} + }, + { + {45}, + {-21}, + {-39} + } + }, + { + { + {76}, + {13}, + {20} + }, + { + {79}, + {35}, + {-1} + }, + { + {-88}, + {-3}, + {36} + } + }, + { + { + {-99}, + {-81}, + {34} + }, + { + {-47}, + {-97}, + {-23} + }, + { + {101}, + {63}, + {-53} + } + }, + { + { + {7}, + {62}, + {34} + }, + { + {-90}, + {57}, + {111} + }, + { + {93}, + {-115}, + {-103} + } + }, + { + { + {-77}, + {1}, + {79} + }, + { + {-84}, + {98}, + {-16} + }, + { + {36}, + {57}, + {6} + } + }, + { + { + {-62}, + {108}, + {-56} + }, + { + {-66}, + {44}, + {-64} + }, + { + {-109}, + {-94}, + {-17} + } + }, + { + { + {9}, + {20}, + {29} + }, + { + {-98}, + {107}, + {41} + }, + { + {113}, + {-78}, + {-76} + } + }, + { + { + {-19}, + {112}, + {50} + }, + { + {-52}, + {98}, + {95} + }, + { + {51}, + {-45}, + {-93} + } + }, + { + { + {52}, + {34}, + {92} + }, + { + {-9}, + {-42}, + {24} + }, + { + {117}, + {59}, + {30} + } + }, + { + { + {-49}, + {-40}, + {88} + }, + { + {50}, + {-26}, + {-78} + }, + { + {94}, + {25}, + {-79} + } + }, + { + { + {-53}, + {-20}, + {-74} + }, + { + {-112}, + {-56}, + {103} + }, + { + {19}, + {34}, + {-103} + } + }, + { + { + {105}, + {-106}, + {90} + }, + { + {-98}, + {70}, + {60} + }, + { + {-76}, + {93}, + {47} + } + }, + { + { + {-28}, + {-2}, + {-51} + }, + { + {-59}, + {-81}, + {51} + }, + { + {-95}, + {22}, + {27} + } + }, + { + { + {-72}, + {-6}, + {106} + }, + { + {65}, + {-53}, + {-77} + }, + { + {106}, + {73}, + {39} + } + }, + { + { + {-71}, + {-72}, + {42} + }, + { + {66}, + {-90}, + {88} + }, + { + {-106}, + {-5}, + {28} + } + }, + { + { + {26}, + {109}, + {-33} + }, + { + {108}, + {1}, + {35} + }, + { + {105}, + {60}, + {105} + } + }, + { + { + {-97}, + {108}, + {-24} + }, + { + {118}, + {102}, + {79} + }, + { + {93}, + {36}, + {76} + } + }, + { + { + {86}, + {-68}, + {-71} + }, + { + {65}, + {-66}, + {-14} + }, + { + {37}, + {113}, + {-7} + } + }, + { + { + {-35}, + {72}, + {54} + }, + { + {53}, + {-88}, + {-31} + }, + { + {111}, + {-60}, + {89} + } + }, + { + { + {-12}, + {75}, + {-66} + }, + { + {-115}, + {36}, + {-60} + }, + { + {-65}, + {-64}, + {82} + } + }, + { + { + {-47}, + {103}, + {106} + }, + { + {-13}, + {38}, + {26} + }, + { + {16}, + {-21}, + {-9} + } + }, + { + { + {76}, + {93}, + {-60} + }, + { + {-94}, + {42}, + {-79} + }, + { + {47}, + {80}, + {39} + } + }, + { + { + {-82}, + {-53}, + {-54} + }, + { + {-57}, + {55}, + {-95} + }, + { + {-2}, + {72}, + {119} + } + }, + { + { + {18}, + {-58}, + {44} + }, + { + {58}, + {96}, + {-102} + }, + { + {-26}, + {117}, + {-56} + } + }, + { + { + {-18}, + {70}, + {-94} + }, + { + {14}, + {2}, + {0} + }, + { + {-64}, + {-111}, + {104} + } + }, + { + { + {105}, + {-43}, + {32} + }, + { + {-40}, + {97}, + {-11} + }, + { + {-104}, + {-73}, + {-2} + } + }, + { + { + {114}, + {0}, + {68} + }, + { + {66}, + {-49}, + {46} + }, + { + {99}, + {-37}, + {30} + } + }, + { + { + {83}, + {-44}, + {12} + }, + { + {-75}, + {-68}, + {120} + }, + { + {-55}, + {-40}, + {33} + } + }, + { + { + {-21}, + {-32}, + {-93} + }, + { + {37}, + {-5}, + {28} + }, + { + {71}, + {70}, + {58} + } + }, + { + { + {-98}, + {32}, + {-64} + }, + { + {2}, + {-21}, + {-79} + }, + { + {94}, + {12}, + {-46} + } + }, + { + { + {11}, + {-21}, + {-103} + }, + { + {-40}, + {74}, + {38} + }, + { + {-101}, + {72}, + {73} + } + }, + { + { + {16}, + {93}, + {43} + }, + { + {33}, + {-83}, + {38} + }, + { + {55}, + {1}, + {-5} + } + }, + { + { + {-48}, + {-75}, + {-56} + }, + { + {-65}, + {107}, + {-114} + }, + { + {88}, + {17}, + {-52} + } + }, + { + { + {52}, + {118}, + {125} + }, + { + {-38}, + {54}, + {27} + }, + { + {82}, + {39}, + {40} + } + }, + { + { + {-62}, + {-32}, + {56} + }, + { + {-50}, + {5}, + {-71} + }, + { + {-18}, + {-21}, + {48} + } + }, + { + { + {38}, + {-39}, + {75} + }, + { + {95}, + {90}, + {-30} + }, + { + {8}, + {5}, + {-10} + } + }, + { + { + {2}, + {-27}, + {14} + }, + { + {-12}, + {-95}, + {18} + }, + { + {66}, + {-52}, + {61} + } + }, + { + { + {-88}, + {49}, + {-13} + }, + { + {-96}, + {71}, + {93} + }, + { + {-70}, + {-29}, + {-82} + } + }, + { + { + {117}, + {77}, + {-3} + }, + { + {120}, + {-85}, + {-92} + }, + { + {15}, + {39}, + {33} + } + }, + { + { + {90}, + {89}, + {48} + }, + { + {75}, + {-107}, + {43} + }, + { + {6}, + {18}, + {-37} + } + }, + { + { + {-74}, + {20}, + {95} + }, + { + {-102}, + {17}, + {95} + }, + { + {-76}, + {-20}, + {64} + } + }, + { + { + {-68}, + {61}, + {-2} + }, + { + {29}, + {7}, + {-5} + }, + { + {103}, + {99}, + {-78} + } + }, + { + { + {-25}, + {90}, + {-66} + }, + { + {-78}, + {18}, + {-10} + }, + { + {58}, + {18}, + {85} + } + }, + { + { + {71}, + {-95}, + {-67} + }, + { + {-40}, + {-49}, + {40} + }, + { + {127}, + {-44}, + {95} + } + }, + { + { + {60}, + {-1}, + {39} + }, + { + {-43}, + {73}, + {99} + }, + { + {-57}, + {113}, + {44} + } + }, + { + { + {70}, + {31}, + {-105} + }, + { + {52}, + {32}, + {99} + }, + { + {26}, + {-60}, + {35} + } + }, + { + { + {91}, + {89}, + {-22} + }, + { + {73}, + {36}, + {110} + }, + { + {-52}, + {-7}, + {-6} + } + }, + { + { + {-21}, + {49}, + {66} + }, + { + {-1}, + {20}, + {112} + }, + { + {-17}, + {71}, + {-83} + } + }, + { + { + {-26}, + {11}, + {-110} + }, + { + {-9}, + {9}, + {34} + }, + { + {-90}, + {30}, + {125} + } + }, + { + { + {3}, + {84}, + {40} + }, + { + {112}, + {-40}, + {-39} + }, + { + {-60}, + {88}, + {-40} + } + }, + { + { + {-43}, + {-49}, + {96} + }, + { + {-107}, + {93}, + {-44} + }, + { + {-61}, + {108}, + {32} + } + }, + { + { + {-89}, + {-42}, + {-62} + }, + { + {22}, + {16}, + {38} + }, + { + {-8}, + {122}, + {-16} + } + }, + { + { + {-12}, + {-32}, + {39} + }, + { + {-20}, + {-45}, + {2} + }, + { + {-109}, + {111}, + {91} + } + }, + { + { + {-103}, + {36}, + {26} + }, + { + {30}, + {64}, + {-21} + }, + { + {-48}, + {19}, + {-113} + } + }, + { + { + {89}, + {17}, + {-11} + }, + { + {64}, + {-2}, + {17} + }, + { + {6}, + {5}, + {67} + } + }, + { + { + {-19}, + {-63}, + {15} + }, + { + {-20}, + {-49}, + {123} + }, + { + {-89}, + {-62}, + {67} + } + }, + { + { + {25}, + {-35}, + {-3} + }, + { + {-105}, + {51}, + {-9} + }, + { + {58}, + {67}, + {54} + } + }, + { + { + {-31}, + {-45}, + {-11} + }, + { + {94}, + {-93}, + {38} + }, + { + {18}, + {90}, + {-56} + } + }, + { + { + {-114}, + {15}, + {18} + }, + { + {-50}, + {10}, + {-79} + }, + { + {40}, + {35}, + {-25} + } + }, + { + { + {-46}, + {-20}, + {-31} + }, + { + {-76}, + {-44}, + {107} + }, + { + {25}, + {110}, + {61} + } + }, + { + { + {-114}, + {-64}, + {-67} + }, + { + {118}, + {-33}, + {34} + }, + { + {26}, + {-81}, + {87} + } + }, + { + { + {-43}, + {-78}, + {67} + }, + { + {-70}, + {-116}, + {-95} + }, + { + {27}, + {-48}, + {-74} + } + } +}; + +static const int F4[64][64] = { + {20, -29, -56, -38, -10, 81, -55, 4, -40, -73, -22, 74, -49, -114, -37, 49, 32, -10, 11, 18, 29, -92, 25, 84, -7, -23, 86, -80, -68, 25, -28, 40, -2, -27, 36, 51, 72, 23, -68, -75, 54, 61, -58, 2, -10, 8, -38, 78, -25, 51, -11, 70, 37, 31, -73, -10, 34, -53, -36, 30, -2, 25, -85, 27}, + {66, -30, 52, 61, 44, -18, -20, -64, -92, -42, 81, -94, 42, 35, -94, -41, 35, 61, -52, -42, -92, -73, -7, 70, 25, 90, -74, 32, -5, 45, 36, 33, -91, 68, 93, 91, 31, 62, 77, -20, 97, 100, 96, 94, 47, -62, 6, 59, 28, 82, -22, 33, -97, 94, 72, 6, 35, -66, 11, 73, -10, 29, -85, -97}, + {6, 20, -54, 38, -74, -51, 36, -90, 53, -10, -68, 6, 39, 101, 67, -83, 63, 22, -35, -34, -66, -101, 39, 99, -91, -75, -75, 70, -76, 39, 49, -64, -31, 16, 68, 98, 39, -7, -94, 23, 76, -60, 62, -2, -83, -85, -54, 43, -50, -56, -80, 90, 55, 42, 63, 64, 81, -36, -34, -97, -13, 53, 79, -32}, + {31, -95, -27, -44, -66, 40, 79, 63, 6, 53, -37, 22, 63, 34, 90, 58, 68, 98, -33, 70, -32, -85, 25, 56, 36, 97, -20, -79, 92, 3, 42, -58, -72, -86, -18, -17, 48, -10, 64, -58, -71, 2, -79, 108, -37, -14, -33, -53, 96, 99, -66, -17, 44, 64, 1, 55, 23, -72, -59, 93, 18, 13, 60, 73}, + {66, -62, -46, -97, -39, -7, -47, 84, 87, -1, -59, 6, 8, 97, 4, -6, 12, -77, 87, -1, -36, 41, -15, 59, 107, 20, -55, -3, -68, 15, 70, -35, 51, 98, -98, -2, 28, 6, 64, -88, -74, 71, -7, -10, -43, 43, 61, 46, -53, 38, -24, -32, -100, 80, 15, -63, 71, -24, -43, -59, -14, 87, 60, 40}, + {-2, 98, 21, -77, -72, -98, -40, 68, -66, -79, -12, -95, 15, -74, -71, -18, 44, -99, 67, -83, -24, 98, -50, -85, 6, 21, -63, -95, -62, -13, -52, 2, -82, -91, -25, 85, -42, -41, -36, -57, -75, 11, 56, -6, 9, 38, -53, 29, 42, -71, -22, -57, -82, -110, -89, -58, 90, -9, 50, 96, 12, 87, 45, -25}, + {8, 84, -50, -46, -1, 89, -25, -93, 11, -104, 27, -107, 19, 73, 36, -31, 82, -69, 92, -8, -92, 101, 119, -58, 78, 65, 69, -11, -19, 14, -34, -98, 90, 15, 50, 20, -94, 49, -35, -10, 60, -53, 36, 22, 48, 19, -93, 89, 7, 67, 78, 41, -51, 24, 85, -35, 91, 31, -88, 41, -14, -72, -3, 99}, + {82, -25, -65, -91, 79, 48, -87, 103, 10, -55, -32, 14, -74, -11, -50, -68, -51, -82, 33, 85, -89, 23, 58, 31, -54, -1, -11, 10, 45, -20, -68, 61, -33, 95, 67, -26, -26, 5, 92, -101, -91, -16, 54, 50, -99, -29, 37, -73, 95, 63, -1, 7, 68, -62, -8, -96, 32, -86, 57, 92, -47, 26, 86, 33}, + {100, 84, -11, -49, 85, -61, 37, -82, -46, -48, 15, 21, 59, 32, -54, -74, 28, -69, -32, 82, 85, 75, -26, -95, -16, -49, 94, 68, 12, 66, -47, 30, -84, -96, 75, 64, 54, 3, -28, -57, -53, -61, 93, 106, 29, -20, -68, -56, -6, -59, -69, -93, 87, 89, -77, 79, 51, 77, 7, -49, 25, 58, 106, 35}, + {9, 16, -24, 87, -102, -88, 12, -61, 4, 66, 20, -98, -58, 66, 16, 43, 43, -69, 93, -33, 23, -43, -80, 87, 66, 2, 15, -46, -25, 83, 20, 99, 91, 70, 9, -56, -41, 99, 30, -98, -68, 42, 62, -35, 42, -88, -47, -40, -20, 40, -33, -101, -37, -43, 45, -7, -34, -62, -88, -86, 82, 59, 41, -12}, + {-96, -96, 9, 50, -9, 4, 74, -67, 49, -55, 30, -20, -81, -120, 73, 67, -66, 77, -72, 83, -52, 44, 0, 7, 88, 53, 89, -50, 93, 16, 25, -17, -59, 80, 48, 98, -15, 88, 17, -71, 23, 7, -80, -69, 22, -49, -107, -76, 70, -22, 78, 84, -62, 75, 3, -34, 26, -98, 73, -31, 56, 58, 47, 33}, + {-58, 69, -37, -5, -79, -34, 4, -53, 58, 87, -35, 64, 99, 32, 98, -22, 98, -25, 73, 36, -98, 54, -80, -35, 68, -49, 81, 57, 69, -42, 16, -91, 9, -56, -53, 11, -12, 28, 39, 51, -59, 54, 16, -67, 102, -82, 21, 100, -65, -38, 32, -7, -78, -51, 52, -88, 22, 80, -77, -20, -87, 63, -57, 98}, + {11, 14, -52, 62, 89, 65, 18, -47, -65, -4, 73, -101, -36, -46, 11, 37, 13, -71, 71, 57, 27, 69, -35, -50, 0, -8, 88, 68, -24, -51, -51, 100, -42, 75, 94, -17, 54, -86, 41, 95, -72, 71, -69, 67, -75, -98, -57, 13, 5, -100, -26, -22, 79, -24, -7, 87, -50, 27, -34, 63, -4, 48, 22, -4}, + {-98, -75, 36, 18, -47, 70, 58, -56, -18, -29, 52, -15, -9, 27, -61, 22, -51, -41, 35, -1, 54, 59, -42, -84, -48, 24, -21, -45, 32, 39, -96, 40, 5, 28, -71, -66, 86, 6, -94, -44, -85, -80, 85, -16, 55, 36, 57, -20, -93, -14, -24, 5, 7, -59, 73, -101, 96, 74, 12, 22, 17, 57, 48, 17}, + {40, -18, 18, -15, -32, 81, 51, 19, -40, 77, 59, 48, 28, 79, 34, -5, 56, 100, 77, -95, 63, -75, -46, 25, 45, 72, 64, -12, -51, 103, 23, -26, 25, -46, -13, -2, -14, -25, 1, -88, 0, 4, 106, 106, 23, 35, 8, -28, -38, -84, 43, 38, -47, 91, -90, -48, 87, -20, -65, 35, 15, 16, -34, -65}, + {-45, 30, -6, 104, 9, 27, 22, -29, -43, -52, 2, 79, 14, -64, -80, 67, 57, -17, -56, 16, 41, -17, -81, -38, 16, -29, -67, -38, -26, 61, -59, -101, 21, -22, 75, -34, 95, 29, -69, 63, 74, -23, 8, -86, -99, -57, -56, 99, 73, 37, -32, -80, 28, -45, -54, 13, -25, 15, 70, -52, -67, 74, 7, -25}, + {-78, 49, 52, 100, -96, -70, -29, -15, 59, -46, -26, -17, -35, -32, 79, 81, -48, 68, 39, -42, -80, 14, 42, -75, 16, -84, 5, -44, 68, -112, -22, -24, -85, 49, -74, -42, 24, -88, -38, -69, 78, 84, 44, -65, -23, -103, 4, 16, -25, -11, 39, 19, -35, -18, -60, -7, 49, 52, -63, 8, 50, 69, 84, 30}, + {91, 29, 9, -38, -33, -75, -24, -12, 84, -30, 87, 59, 39, 54, 18, 15, -8, -56, -60, 48, 76, -17, 29, -42, -49, -43, -91, -25, -28, 21, -15, 100, 100, -15, 73, 56, 80, 43, 36, 85, 68, 72, 91, -102, -31, -55, 71, 70, -11, -100, -112, 94, -67, -22, 77, -78, 4, -44, -87, 65, 21, -26, 87, -82}, + {-14, -42, 0, 32, 78, 101, -12, -21, 17, 11, -11, 35, 5, 79, 104, 44, -73, 29, 61, -29, 27, 62, -27, 28, 13, 17, -14, -50, 21, -24, 46, 79, -87, -77, 92, -33, -25, -48, 85, -100, 42, 11, 17, 2, 16, 51, 43, 20, -80, 40, -93, -70, 79, 64, -27, 7, 22, -62, -96, 43, -38, 9, 42, -46}, + {-55, -50, 34, 12, -30, 56, -86, 72, 80, -14, -53, 100, -9, -27, 17, -58, -62, 51, -83, 83, 65, -8, -91, 91, -14, -11, 24, 35, 56, -74, 88, -70, -14, -42, -99, 14, -76, 77, -50, 83, 40, -10, -21, -24, -20, 71, -1, -1, -36, -90, -102, 87, 58, -22, 83, -7, -9, -60, 99, 9, -27, 31, -29, -45}, + {44, 94, 34, -101, -13, 78, 84, -38, 8, -27, 17, 65, 7, 51, -2, -30, 29, 70, -78, 87, 57, 49, 59, -21, -37, -47, 92, 39, -14, -64, -64, -88, 45, -56, -35, 89, 62, -41, -110, 51, -32, 44, -23, -66, 38, 89, -69, -62, 44, 4, -73, 34, 8, -22, 99, 48, -36, -67, -32, 52, -92, 87, 88, 76}, + {39, -5, 65, -27, -104, 42, -10, 94, 88, 89, 80, -23, -18, 13, -80, -44, -39, 30, -35, 34, -77, -13, -89, -82, -28, -70, -81, 85, 18, 42, -12, 63, -94, -45, 72, -60, -92, -97, 13, 10, 107, -13, -82, -10, 48, -49, -20, -12, -85, 80, 96, -99, 37, -100, -75, 57, -31, -98, 74, 62, 23, 60, 52, 78}, + {-27, -7, 71, 78, -32, -41, 26, -5, -20, -60, 46, -24, 71, 57, 73, -54, -9, 104, 9, -16, 49, -65, 60, 4, 71, 41, 86, 51, 101, -32, -17, -90, -54, -17, 70, 117, 26, 30, -1, -29, 116, -19, 35, 28, -101, 19, -19, 51, 85, -7, -92, 8, 26, -72, 66, 49, 18, -53, -90, -47, -9, -98, -56, -89}, + {-87, -98, -18, -73, -63, 98, -66, 86, -34, 23, -83, 64, -81, -8, -13, 48, -7, -96, -6, -85, -49, 82, 86, -68, -12, 29, -25, -42, -2, 51, -53, 45, -22, -55, 44, -46, 23, 52, 90, 40, 106, 76, -11, -56, -93, -67, 21, -100, -23, 10, -34, -73, 72, -18, 32, -14, 20, 71, -20, -4, 46, 22, 98, -69}, + {-59, 91, -70, 72, -90, -16, -2, -93, -70, 77, -18, -13, 17, 32, -95, 67, 39, 34, -58, 63, -5, 50, -17, -69, 65, 27, -74, -9, 33, -45, 11, 91, 87, -71, -86, -51, 13, -55, 20, -25, -1, 77, -85, -59, -79, -49, -97, 71, -96, -19, 7, -49, -15, -95, 53, -102, 52, 64, -95, 27, 71, -32, 1, -70}, + {34, -6, -4, 75, -96, -80, 12, -43, -10, -25, 59, -61, 79, -31, -44, -25, -82, 3, 60, 98, -42, 85, 52, -7, 26, 19, 28, -83, 35, -71, -69, -86, -82, -2, -11, 50, -8, -48, 55, 18, -6, -47, -38, 89, 78, -7, 39, 57, 25, -7, -25, 68, 39, -21, 93, -94, 73, -75, -80, 51, 13, -36, 48, -93}, + {30, -88, -53, 76, 34, -60, 68, -62, 15, -42, 79, -15, -96, 25, -85, 86, -68, 67, -52, -60, -10, 72, 31, 38, -110, -8, 92, -80, -96, 5, 72, -91, -42, 90, 65, 42, -87, -46, -80, 23, 16, 44, 52, -74, -102, -66, 6, 80, -94, -90, -17, 30, -77, -37, -4, 57, 25, -93, 29, 30, -43, 10, 86, 46}, + {88, 46, -93, 12, 0, 85, 15, -43, 62, -6, -3, 46, 39, -38, -8, 64, -56, 49, 45, -60, 1, 8, 35, 73, 3, -64, -43, 89, 85, 46, 55, -20, 57, -76, 52, 44, -50, 84, 88, 65, -116, -31, 98, 67, -72, 1, -31, 26, 77, 52, -36, -87, -93, -90, -26, 33, -17, 54, 2, -28, -47, -17, 72, -34}, + {-69, 36, -18, 64, 48, -25, -53, 12, 68, -23, -11, 46, -89, -54, 73, -90, -77, -16, 14, -20, 98, -78, 69, 33, 54, -64, 84, 12, -86, -75, -3, 51, 16, 0, 15, 6, -94, 79, 92, 57, 72, 46, -6, -55, -73, 12, -45, -93, -29, -71, 75, -98, -46, -100, -50, -21, -42, -78, 34, -7, -97, -19, -95, 75}, + {16, -101, -60, -84, 30, -48, 47, -73, -26, 53, -4, 68, -83, -23, -84, 65, 85, -65, 16, 23, 50, -80, -4, -67, -49, 0, 8, 3, -8, 96, 93, 41, 84, 18, 3, 25, -20, -25, -14, 69, -53, -74, -58, 21, -71, -32, 19, -42, 59, 94, -3, 43, 62, -81, 81, -20, 58, 2, -3, -77, -86, -96, -89, -36}, + {80, -92, 51, -18, 43, -16, -73, 17, 46, -85, 93, 1, -95, 15, -50, -52, 17, -94, 71, -74, 16, 99, -20, -30, -67, 5, -93, 27, -32, -79, 56, -50, -92, -30, -67, 29, -47, 51, 21, -56, 76, 97, 0, -28, 13, -4, 4, 93, -18, 85, -51, 39, -77, -87, 59, -100, 74, -7, 65, -55, -41, -39, -38, 13}, + {-78, -81, 62, -74, 15, -13, 4, 14, -90, -54, -51, -93, -51, -42, -92, -34, 69, 40, -71, -55, -24, -99, -2, 47, 52, 12, -89, -53, 71, -80, -38, 85, 86, -77, -64, -39, 25, -89, -99, -100, 72, -44, 6, -4, 94, -83, 66, -15, 108, 54, -29, 88, 72, 20, -9, -64, -54, 35, 59, -20, 19, -29, 57, 52}, + {-43, 90, -79, -24, -13, -13, -8, -12, -76, -104, -32, 51, 25, 57, 42, 24, 63, 93, -33, -50, 10, -13, -12, 31, 124, -48, -46, 60, 7, -10, -13, 49, -47, 46, 77, 33, 46, 14, 13, -10, 71, 8, 14, -58, -43, -1, 78, -37, 53, 10, 79, 66, -34, 89, 27, 59, 82, -35, 1, 24, -4, -5, 45, -34}, + {-101, 71, 9, 1, -37, 73, 63, -46, -84, -51, 19, 5, 63, 0, -17, 73, -84, -58, -54, -62, -22, 0, -83, 6, 101, 10, 95, -46, 42, -62, 39, -101, -84, 76, -44, 9, 37, 28, 12, 87, -97, -9, -74, -40, -88, -99, -63, -29, -83, -79, 23, 47, -93, -26, -58, -29, 0, -82, -86, 11, 21, 58, 7, 87}, + {-37, -83, -35, -94, 11, 12, -11, 46, -30, 4, 33, -77, -19, 7, -59, -14, -61, -96, 86, -5, -9, -52, 46, -86, 0, -10, 10, 98, 43, 17, 39, -48, 71, 47, -92, -48, 95, 63, 52, 74, 26, 16, -66, 44, 87, 0, -80, 50, 66, 22, -77, -76, 97, 23, -98, -12, 48, -63, -3, -36, 45, -11, -86, 77}, + {-49, 83, -88, 6, -31, 41, -14, -34, -65, -75, -34, 77, 17, 31, 81, 49, -45, -13, -65, -73, 52, -54, 44, -88, 36, 34, 30, -83, -33, -30, 27, 71, -19, -42, 27, 81, -103, 23, 41, 75, -110, 57, 111, -4, 80, -27, -46, -53, -34, 19, 91, -86, 59, -29, 99, 13, -35, -56, 52, -8, 41, 91, -48, -93}, + {80, -80, -22, 25, 76, -80, 77, 0, -18, 9, -46, 48, -59, -34, -63, -1, -57, -4, 77, -89, 78, 44, 97, -77, -69, 72, 73, 37, -59, 76, 75, 94, -84, 44, 33, -24, -91, 73, 6, -66, 36, 44, -52, 59, 83, 0, 51, -14, -103, -71, -7, -21, 14, -67, 66, 44, 39, -41, 46, 97, -38, -23, -42, -11}, + {27, 92, 17, 7, 95, 82, 77, 32, -74, 26, 37, 78, -98, 37, 7, 34, -26, -31, 98, 87, 55, 69, -72, -63, 10, 64, 37, -29, -32, -94, -71, -35, 65, -57, -94, 38, 84, 56, 19, -85, 25, -94, -48, -25, -63, 71, 48, -55, 18, -49, 68, 27, -81, 65, -25, -33, -88, -46, 19, 70, -36, 57, -16, 7}, + {4, -80, 7, -11, 104, 4, -5, 35, -91, 101, 87, -42, 75, -11, 86, 86, -76, 30, -41, -91, -81, -75, -41, 3, -94, 108, -97, -58, -46, 61, 96, -47, -23, -58, 18, 35, -88, 66, 81, 33, -44, -74, 90, -54, -59, -56, -26, -37, -74, -3, -87, 79, 25, 38, 32, -85, 31, -34, -45, 57, -79, 11, 9, -85}, + {38, 10, -10, -31, 20, -35, -72, -54, -60, 95, -8, 12, -72, -36, -56, -71, 51, -26, -20, 54, -91, 103, 22, -76, 59, -13, 13, 8, 39, 22, -32, -22, 96, -98, -18, -74, -69, 31, -31, 11, 39, -86, 86, 82, -38, 118, 68, -36, 32, 31, 47, 36, 14, 121, -45, -55, -92, -72, 7, -69, -27, -50, -97, -36}, + {1, -84, -31, 49, -39, 38, -82, 9, -1, 12, 11, -73, -21, -5, -80, -75, 50, 22, -92, -50, 45, -37, 13, 78, -22, -67, 91, 49, -58, -23, -62, -50, -28, 51, -82, -102, 92, -84, -9, -97, -54, 25, 84, -75, 43, -38, -40, 55, -41, 17, -65, 9, -67, -3, 34, -88, 82, -63, 42, -76, 84, 77, 26, -89}, + {37, 26, -89, -34, -42, -5, -91, 76, 10, -58, 21, 30, 0, -71, 70, -55, 84, -22, 60, 14, -87, -18, 95, -105, -77, -31, 53, 52, 63, 38, 53, 2, -3, -89, -90, -45, 24, -69, -91, 101, -58, 72, 23, -13, -92, -66, -69, 99, 98, -96, -10, 88, 21, -103, 97, 18, -24, 57, 62, 93, 36, -62, -55, 82}, + {-18, -71, -27, 10, 117, 45, 5, 43, 72, 4, -53, 63, -50, -3, -29, -1, 36, 73, -99, -46, 53, 60, 38, 9, 62, 107, 93, 49, 99, 4, -7, -58, 73, 0, 59, 99, -43, -13, 23, 4, 89, 25, -28, -26, 49, -82, 88, 42, 3, -34, -6, -43, -53, 80, -97, -120, -45, -65, -89, -64, 51, 59, 111, -19}, + {65, 47, -2, 86, 32, 51, 86, 92, 53, -47, -100, -19, -28, 23, -93, 37, 50, -59, 88, -82, -9, 19, 23, 50, -72, 67, -49, 56, 6, -64, 75, -45, 83, -69, -21, -64, -60, 14, -23, -62, -54, -63, -57, -39, 41, -88, -11, -53, 61, 58, -49, 65, 26, -61, 33, 92, -23, 15, 66, 78, 96, -12, -20, -6}, + {-47, -70, -62, -96, 68, -12, 93, -36, -79, -3, 3, -16, -42, 53, 44, -53, 74, 47, 5, 0, -78, 18, 26, -54, 18, 88, -97, -3, 84, 71, 31, 17, -31, -62, 88, 8, 50, 88, -76, 99, 83, -41, -34, -22, 65, 44, -35, -11, 16, 78, -51, -49, 7, -61, 94, -44, -66, -10, 5, 79, -100, 11, -37, -19}, + {66, -20, -85, 14, 60, -23, -54, -2, 2, 37, 79, 33, 10, -16, -90, -81, -8, 29, 61, 16, 7, -81, 64, -51, 108, 84, 10, 31, -13, 44, 80, 77, 41, -70, -100, -74, 39, 34, 50, 48, 5, 25, -97, -12, 44, -41, 112, 69, 24, -42, 51, -90, 64, -58, -56, 6, -12, 88, -24, 0, 83, 25, -77, -8}, + {65, -92, -91, -44, -86, -55, -31, 19, -46, 3, 98, 92, -22, -76, -44, 99, 63, 38, -66, 61, 90, 113, -43, 23, 72, -23, 50, -25, -52, -91, 78, -36, 77, 53, 31, -19, 61, 57, 81, 45, 3, -21, 24, -4, -46, -74, 84, -40, 47, 28, -13, -3, -8, -7, 50, -98, -31, -48, 99, -77, 82, 8, -85, -7}, + {-77, -16, -37, 10, 91, 17, 25, -79, 7, 52, -1, 63, 12, -54, 68, -88, -34, -32, 57, 12, 1, 21, -96, -13, 3, 10, 94, -1, -88, 5, 82, 67, -71, 47, -96, 35, 81, 73, -3, -34, -45, 64, -54, -65, 77, 65, -77, 27, 34, -31, -31, 10, 15, -20, -99, -105, -92, -58, 14, -99, 29, 62, -72, 87}, + {68, 35, -96, -29, 104, -24, -1, 14, 47, -22, -11, -41, -63, 11, 36, -50, 31, -57, 70, 26, -78, -3, -11, -48, 93, -24, 20, 87, 72, -56, -11, -89, -64, 60, 29, 97, 39, -78, -58, 4, 93, -61, 31, 48, 89, 17, 84, 16, 18, 91, 86, -4, 5, -22, 58, -95, 14, -73, -4, -42, 47, 49, -68, 100}, + {-90, 75, 86, 102, 24, 18, -17, 59, -16, -4, 85, 54, 8, -65, -81, 54, -67, 3, 86, -94, -23, -34, -64, 76, 41, -28, -34, -59, -21, 86, 10, 18, -100, -62, 17, -53, 0, 98, -95, 13, -82, 53, 28, 54, 12, -37, 104, -19, -29, -14, -10, 28, -67, 39, 78, -46, 17, -68, -74, 96, -18, 34, -57, -79}, + {-23, -7, -52, 92, -41, -24, 45, -10, 42, -8, -100, -65, -46, 53, -85, 100, -82, 52, 0, -38, 72, -35, -5, 74, 94, 65, 60, 23, 13, 64, 43, -13, 81, 42, -74, 28, 36, 51, -90, -26, 24, -50, -59, -72, 11, -9, 59, -98, -66, 37, -53, 72, 83, -54, -20, -61, -42, 30, -42, -99, -9, -69, 78, 4}, + {-35, 73, 72, 27, 3, 39, -94, 82, -99, -13, -63, -83, -88, 46, -1, -101, 27, 107, 4, -48, -22, -94, -79, -29, -39, -7, -67, 88, -92, 57, 34, 6, 104, 29, 87, -56, -94, 17, -31, 77, -16, -15, -27, 20, -2, -35, 95, 91, -74, 87, -52, 96, 11, 27, 8, -53, 71, -26, 40, 80, -17, 47, -11, 88}, + {26, 37, -74, -87, 13, -2, -27, 49, 33, 75, -53, 62, 23, -67, 13, 12, 83, -23, -89, 81, -87, 10, -13, 92, -19, -95, -11, 48, -2, -92, -31, 66, -21, -20, -72, -1, -11, 54, 52, -71, 56, -100, 106, 18, 25, 67, 74, -61, 4, 57, 66, 3, -86, -33, 92, 72, -73, -20, -77, -11, -40, -51, -77, 14}, + {99, 16, 59, 29, -36, -100, -25, -77, -13, 84, 27, -2, -81, -35, 95, 35, -81, 92, -55, -4, -48, -101, -20, -11, -4, 112, 69, 58, -79, 1, -33, 89, -62, 43, -60, 6, -39, -73, -3, -34, -26, -74, -74, 114, -43, 42, 35, -56, 56, -67, 88, -34, 58, 44, 70, 50, 74, 56, -75, -45, -70, -7, -77, -37}, + {-71, 95, -95, -91, -74, -4, -117, 37, -99, 77, 20, -78, 70, -36, -109, -11, -29, 90, -7, 69, 33, -71, -34, -82, -48, -5, -72, -96, 36, 58, 87, 2, 77, 75, -82, 13, 73, -75, -19, 76, -37, 80, -82, -16, 32, -9, -33, 7, -49, 93, 59, 85, -19, 118, 98, -2, -62, -13, -40, -48, -10, -96, 17, -79}, + {-51, 88, 33, 14, 58, 82, 53, -68, -51, -19, -91, 63, -16, 17, -74, 79, 32, 32, -30, 9, 46, -24, 14, -96, -34, -74, -90, -1, -25, -69, -7, -4, 67, -74, -52, -95, 78, 72, -16, -56, 7, -35, 26, 11, 90, -3, 69, 4, -10, -1, 19, 75, 60, -45, -64, -100, -13, 53, 58, 74, -65, 80, -8, -55}, + {34, -94, 69, -44, 75, -32, -71, -77, 89, 25, -40, -99, 9, -14, 60, 52, 82, 103, 5, 72, -93, 24, -7, -8, -49, -77, 46, -12, 18, 34, 56, 5, -56, 25, -25, 66, -38, -75, -67, 8, -72, -53, -84, 24, -1, -34, 64, -62, -49, 92, -82, 93, 36, -25, 81, 43, 38, 93, -77, -79, 20, -60, -36, 58}, + {23, 16, -65, -8, 46, 95, -5, 4, -84, 27, 76, -33, -52, 29, 21, 31, -8, 39, 8, -66, -15, 37, -88, -35, -3, -80, -82, -67, -53, -84, -61, -99, 16, -52, 81, 21, 58, 30, -24, -19, -95, -28, -83, 89, 43, -85, -71, 62, 98, -42, 34, -77, -83, -78, -21, 92, -30, 2, 27, 62, 58, 94, 30, 56}, + {-76, -36, 87, 80, -49, -42, -101, 80, -30, 84, -80, -40, -26, -51, 30, -78, -56, 40, -23, 40, -56, 81, -33, -28, 95, -15, 38, -44, 91, -37, 35, -17, -45, 57, 38, 81, -54, -90, 18, -13, 127, 94, -60, -32, -83, 46, -66, 49, 72, -42, 33, -101, -52, 17, 50, 78, 6, 49, -38, -73, 47, 13, -60, -69}, + {0, -2, -74, -40, 41, -85, -48, 8, 54, 103, 29, -1, 73, 11, -35, 20, 91, 39, 51, 52, 63, -69, 70, 54, -50, 61, -29, 48, 42, 28, 50, -8, 13, -43, -52, -73, 63, -6, 22, 45, 4, 14, -14, 34, -81, 54, 46, 91, 97, 81, 94, -9, 65, -77, 10, -32, 91, 24, -58, 49, 51, 92, -97, 19}, + {98, 96, -81, 49, 85, 31, -26, -61, -71, -52, 27, -59, -48, -75, 72, -98, -1, -62, -101, 90, -31, 8, 35, 87, -100, 87, 4, 49, -98, -89, 80, -93, -18, 85, -47, 84, -28, -85, -62, 51, 14, 13, 5, 82, 44, 57, -59, -82, 28, -98, -109, -16, 64, 80, 95, -38, -6, -23, -2, 67, 84, 27, -5, 79}, + {-39, 53, 65, 55, -48, -96, -63, 88, -48, 74, 42, -43, 33, 53, -19, -22, -79, -59, -100, -67, 17, 65, -8, -38, -55, 32, -55, -71, 0, 31, 38, -11, -42, -36, 33, -71, 35, 21, 38, 84, 49, -22, 30, 79, 97, 93, 88, -86, -37, 49, -86, 29, -32, 55, 99, 2, 31, 39, 2, -43, -47, 14, -13, -68}, + {-70, -18, 3, 1, 43, 32, -44, 27, 21, 63, -32, 89, -43, -93, -68, 28, -104, -93, 55, -20, -61, 88, -36, -99, -42, 58, -85, -15, 54, 61, -1, 25, 93, -11, 9, -55, -79, 37, -56, -97, 41, -74, 30, 68, -13, -4, -68, -73, 3, -59, -89, 36, -78, -66, -70, 30, 97, 32, -87, -82, 46, 96, -28, 7}, + {-15, -46, 8, -63, -74, -37, -19, -20, 93, -55, -63, -27, -34, -12, 1, 65, -80, -82, -55, 64, -28, -7, -17, -75, -90, -63, -97, 100, 28, -24, 8, -36, -29, 91, -84, -81, -17, 20, -69, -59, 91, -101, 77, -26, 23, -79, 60, -48, 49, -78, 97, -4, -98, 21, -8, -53, -12, -35, 80, 87, 11, 24, -46, 53} +}; + +static const int F5[64][3][3][1] = { + { + { + {7}, + {84}, + {123} + }, + { + {112}, + {-37}, + {-24} + }, + { + {33}, + {-17}, + {-60} + } + }, + { + { + {-83}, + {-101}, + {-73} + }, + { + {-109}, + {-66}, + {-31} + }, + { + {-11}, + {-51}, + {-65} + } + }, + { + { + {-26}, + {-62}, + {-101} + }, + { + {94}, + {-76}, + {41} + }, + { + {-29}, + {-49}, + {-93} + } + }, + { + { + {-25}, + {79}, + {-64} + }, + { + {6}, + {-66}, + {-10} + }, + { + {74}, + {-71}, + {-84} + } + }, + { + { + {-93}, + {90}, + {-30} + }, + { + {127}, + {89}, + {-85} + }, + { + {96}, + {48}, + {-94} + } + }, + { + { + {-18}, + {107}, + {22} + }, + { + {-102}, + {-99}, + {-63} + }, + { + {-103}, + {1}, + {16} + } + }, + { + { + {10}, + {-27}, + {81} + }, + { + {-72}, + {104}, + {1} + }, + { + {32}, + {-119}, + {-19} + } + }, + { + { + {-45}, + {57}, + {55} + }, + { + {114}, + {54}, + {-69} + }, + { + {-40}, + {-59}, + {-107} + } + }, + { + { + {52}, + {-62}, + {53} + }, + { + {-72}, + {-85}, + {-61} + }, + { + {77}, + {-120}, + {-23} + } + }, + { + { + {-105}, + {-3}, + {-66} + }, + { + {108}, + {-43}, + {-99} + }, + { + {3}, + {74}, + {-18} + } + }, + { + { + {58}, + {27}, + {118} + }, + { + {68}, + {51}, + {-49} + }, + { + {-78}, + {-17}, + {-15} + } + }, + { + { + {60}, + {49}, + {112} + }, + { + {-60}, + {51}, + {-116} + }, + { + {63}, + {-37}, + {-44} + } + }, + { + { + {-11}, + {23}, + {102} + }, + { + {-90}, + {64}, + {46} + }, + { + {-17}, + {-40}, + {62} + } + }, + { + { + {36}, + {28}, + {-118} + }, + { + {-63}, + {102}, + {-22} + }, + { + {6}, + {-30}, + {17} + } + }, + { + { + {36}, + {-10}, + {70} + }, + { + {60}, + {-26}, + {-7} + }, + { + {53}, + {74}, + {58} + } + }, + { + { + {-113}, + {-108}, + {-22} + }, + { + {86}, + {49}, + {-51} + }, + { + {-115}, + {-13}, + {-80} + } + }, + { + { + {-113}, + {-103}, + {-81} + }, + { + {107}, + {-43}, + {49} + }, + { + {-66}, + {-78}, + {121} + } + }, + { + { + {118}, + {-21}, + {-94} + }, + { + {-84}, + {2}, + {86} + }, + { + {-2}, + {-56}, + {43} + } + }, + { + { + {69}, + {24}, + {114} + }, + { + {75}, + {-71}, + {92} + }, + { + {-81}, + {100}, + {-41} + } + }, + { + { + {57}, + {126}, + {-72} + }, + { + {-44}, + {35}, + {115} + }, + { + {108}, + {60}, + {-8} + } + }, + { + { + {119}, + {-60}, + {-78} + }, + { + {-92}, + {52}, + {107} + }, + { + {45}, + {-66}, + {111} + } + }, + { + { + {27}, + {1}, + {-119} + }, + { + {-64}, + {52}, + {63} + }, + { + {19}, + {39}, + {-64} + } + }, + { + { + {-66}, + {-38}, + {9} + }, + { + {-33}, + {-5}, + {-103} + }, + { + {20}, + {-118}, + {68} + } + }, + { + { + {-8}, + {8}, + {9} + }, + { + {-59}, + {-92}, + {85} + }, + { + {-101}, + {-11}, + {-63} + } + }, + { + { + {49}, + {-26}, + {-2} + }, + { + {16}, + {-104}, + {-24} + }, + { + {-58}, + {-108}, + {-14} + } + }, + { + { + {17}, + {-11}, + {42} + }, + { + {56}, + {28}, + {-100} + }, + { + {-37}, + {43}, + {72} + } + }, + { + { + {74}, + {20}, + {117} + }, + { + {25}, + {-112}, + {5} + }, + { + {-12}, + {50}, + {-86} + } + }, + { + { + {-111}, + {98}, + {69} + }, + { + {43}, + {-15}, + {112} + }, + { + {-98}, + {27}, + {4} + } + }, + { + { + {66}, + {-87}, + {-50} + }, + { + {-95}, + {-84}, + {39} + }, + { + {45}, + {-23}, + {104} + } + }, + { + { + {56}, + {70}, + {-40} + }, + { + {11}, + {53}, + {-72} + }, + { + {84}, + {-67}, + {8} + } + }, + { + { + {-98}, + {-21}, + {79} + }, + { + {-106}, + {-110}, + {-20} + }, + { + {-61}, + {61}, + {-71} + } + }, + { + { + {35}, + {125}, + {-79} + }, + { + {85}, + {-15}, + {-29} + }, + { + {-3}, + {71}, + {-39} + } + }, + { + { + {54}, + {111}, + {94} + }, + { + {7}, + {63}, + {98} + }, + { + {-99}, + {75}, + {82} + } + }, + { + { + {-106}, + {23}, + {-55} + }, + { + {49}, + {1}, + {-15} + }, + { + {93}, + {-68}, + {-81} + } + }, + { + { + {-26}, + {70}, + {-39} + }, + { + {43}, + {-69}, + {0} + }, + { + {-81}, + {-94}, + {42} + } + }, + { + { + {52}, + {-111}, + {96} + }, + { + {79}, + {-102}, + {12} + }, + { + {-38}, + {3}, + {-3} + } + }, + { + { + {-6}, + {-63}, + {89} + }, + { + {-2}, + {30}, + {-96} + }, + { + {-68}, + {-22}, + {-20} + } + }, + { + { + {40}, + {41}, + {-28} + }, + { + {94}, + {106}, + {-114} + }, + { + {-82}, + {48}, + {-24} + } + }, + { + { + {-19}, + {77}, + {-33} + }, + { + {122}, + {-53}, + {59} + }, + { + {-49}, + {17}, + {103} + } + }, + { + { + {73}, + {64}, + {102} + }, + { + {-45}, + {107}, + {114} + }, + { + {-109}, + {-37}, + {-56} + } + }, + { + { + {-93}, + {-25}, + {-51} + }, + { + {89}, + {-71}, + {-54} + }, + { + {-7}, + {-116}, + {68} + } + }, + { + { + {30}, + {94}, + {67} + }, + { + {-70}, + {-5}, + {-57} + }, + { + {-93}, + {79}, + {47} + } + }, + { + { + {29}, + {-19}, + {85} + }, + { + {-103}, + {122}, + {1} + }, + { + {-98}, + {-75}, + {16} + } + }, + { + { + {-85}, + {-73}, + {53} + }, + { + {51}, + {-70}, + {36} + }, + { + {-52}, + {-36}, + {-74} + } + }, + { + { + {21}, + {-71}, + {-23} + }, + { + {-94}, + {-12}, + {106} + }, + { + {100}, + {-114}, + {-94} + } + }, + { + { + {-55}, + {75}, + {-47} + }, + { + {-7}, + {121}, + {72} + }, + { + {49}, + {8}, + {-24} + } + }, + { + { + {91}, + {-21}, + {-78} + }, + { + {-113}, + {74}, + {-108} + }, + { + {12}, + {109}, + {88} + } + }, + { + { + {29}, + {52}, + {-19} + }, + { + {21}, + {-42}, + {-68} + }, + { + {-65}, + {-18}, + {-47} + } + }, + { + { + {-47}, + {76}, + {43} + }, + { + {-32}, + {57}, + {-57} + }, + { + {88}, + {116}, + {57} + } + }, + { + { + {-36}, + {28}, + {21} + }, + { + {-4}, + {-56}, + {74} + }, + { + {-6}, + {85}, + {-115} + } + }, + { + { + {29}, + {-64}, + {-121} + }, + { + {-7}, + {-10}, + {82} + }, + { + {7}, + {45}, + {-58} + } + }, + { + { + {-84}, + {-7}, + {-112} + }, + { + {18}, + {107}, + {-114} + }, + { + {-90}, + {95}, + {-46} + } + }, + { + { + {46}, + {-43}, + {7} + }, + { + {-69}, + {118}, + {-75} + }, + { + {17}, + {-21}, + {15} + } + }, + { + { + {-54}, + {16}, + {88} + }, + { + {-13}, + {114}, + {119} + }, + { + {27}, + {69}, + {-47} + } + }, + { + { + {123}, + {16}, + {103} + }, + { + {69}, + {39}, + {-81} + }, + { + {-7}, + {-69}, + {79} + } + }, + { + { + {-76}, + {22}, + {-89} + }, + { + {58}, + {66}, + {-69} + }, + { + {-37}, + {-2}, + {-35} + } + }, + { + { + {-88}, + {81}, + {-70} + }, + { + {99}, + {-8}, + {-47} + }, + { + {-100}, + {-94}, + {-28} + } + }, + { + { + {-73}, + {87}, + {87} + }, + { + {-82}, + {96}, + {108} + }, + { + {-62}, + {4}, + {-90} + } + }, + { + { + {19}, + {68}, + {-6} + }, + { + {51}, + {-10}, + {-107} + }, + { + {55}, + {40}, + {-98} + } + }, + { + { + {-90}, + {-15}, + {-71} + }, + { + {73}, + {88}, + {72} + }, + { + {-64}, + {-31}, + {98} + } + }, + { + { + {45}, + {4}, + {61} + }, + { + {113}, + {-69}, + {-61} + }, + { + {107}, + {119}, + {-29} + } + }, + { + { + {-77}, + {3}, + {-89} + }, + { + {41}, + {95}, + {-48} + }, + { + {-21}, + {24}, + {-45} + } + }, + { + { + {-5}, + {55}, + {-24} + }, + { + {-57}, + {-44}, + {-61} + }, + { + {61}, + {92}, + {40} + } + }, + { + { + {-32}, + {-41}, + {57} + }, + { + {9}, + {43}, + {-40} + }, + { + {85}, + {-78}, + {34} + } + } +}; + +static const int F6[128][64] = { + {0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, -1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, -1, 0, 0, -1, 0, 0, 0, -1, -1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, -1, -1, 1, 1, 0, -1, 1, 1}, + {0, 1, -1, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, -1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, -1}, + {1, 0, 1, 0, 0, 0, -1, 0, -1, -1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, -1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1}, + {0, -1, 0, 1, 0, 0, -1, -1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, -1, 0, -1, 0, 0, 0, -1, 0, 0, -1, -1, -1, 0, 0, 0, 0, 1, 0, -1, -1, 0, -1, -1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, -1, -1, -1, 0, -1}, + {0, 0, 0, 0, 1, 1, 0, 0, -1, -1, 0, 0, 1, 1, 0, -1, 1, -1, 0, 1, 0, -1, 0, 0, 0, 0, 0, -1, 1, -1, -1, -1, 0, 1, 0, 1, 1, -1, 0, 1, -1, 0, 0, 0, -1, 0, 1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 1, 0, -1, 0, 0, 1, 0, 0}, + {1, 0, 1, 0, -1, 1, 1, 0, -1, 0, 0, 0, 1, 0, 0, 1, 1, -1, 0, -1, 0, -1, 0, 0, 1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, -1, 0, 0, 0, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, -1, -1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, -1, 1, 0, 1, 1, 0, 0, 1, -1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, -1, 0, 0, 0, 1, 1, 1, -1}, + {0, 0, 0, 1, 1, 1, 0, -1, 0, 0, 0, 0, -1, 1, -1, 1, -1, -1, 0, -1, 0, -1, -1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, -1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 1, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, -1, -1, 1, 1, 0, 1, 0, 0, -1, 0, -1, 0, 1, 0, 1, 0, 1, 0, -1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 1, 0, 0}, + {1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, -1, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, -1, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 1, 1, 1, 0, 0, -1, 1, 1, 1, -1, 1, 0, 0, 0, 1, 1, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 1, 1, 0, 0, 0, -1, -1, -1, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, -1}, + {0, 0, -1, 0, 1, 0, 0, -1, 0, 0, -1, 0, 1, 0, 1, 0, 1, 1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, -1, 0, 1, 0, -1, 0, 1, 0, 1, -1, -1, -1, -1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, -1, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 1, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, -1, 0, -1, 0, 0, 1, 0, -1, 1, 0, 0, 0, 1, 1, 0, 0, 0, -1, 0, 1}, + {-1, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, -1, 0, 0, 0, 0, -1, -1, 1, 0, -1, 0, 0, 1, 0, 0, 0, 0, -1}, + {-1, 0, -1, 1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, -1, 0, 0, 0, 1, 0, -1, -1, -1, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 1, -1, 0, 1, 0, 0, -1, 0, 1, 0, -1, 1, 0, 0, 1, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 1, 0, -1}, + {1, -1, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 1, -1, 0, 1, 1, 0, -1, 0, -1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {1, 0, -1, -1, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 1, -1, 1, 0, 1, 1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, -1, 0, 1, 1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 1, 0}, + {0, 0, 1, 0, 0, 0, -1, -1, 0, 1, -1, 0, -1, 0, 0, -1, 0, 0, 0, -1, 1, 1, -1, 0, 0, 0, 1, -1, -1, 0, 1, -1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 1, -1, 0, 0, 1, 0, 0}, + {1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, -1, -1, 0, 0, 0, -1, 0, 0, 1, -1, 1, 0, -1, -1, 0, -1, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, -1, 0, -1, 0, 0, -1, 0, 1, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 1, 1, 0, 0, -1, 0, 0}, + {0, -1, 1, 0, 0, 0, 0, 0, -1, 0, -1, -1, 0, -1, 0, 0, 1, 0, 0, -1, -1, 0, -1, 0, 0, 0, 0, 0, 1, 0, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, -1, 0, -1, 0, 0, 0, 0, 0, 1, 1, 0, -1, 0, 0, -1, 0, 0}, + {-1, 1, 0, 1, 1, 0, 0, 1, -1, 0, 0, 1, 0, 1, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 1, 1, -1, 0, 0, 0, 0, -1, -1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, -1, 1, -1, 0, 0, 0, 0, -1, 1, 1, 0, 0, -1, 0, 0, 0, 0, -1}, + {0, -1, 0, 0, 0, -1, 0, 1, 1, 1, 0, 0, 0, 0, -1, 0, 0, 0, -1, 1, 1, 0, 0, 0, 0, 0, 0, -1, 1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -1, 1, 0, -1, 0, -1, 0, 0, 1, 1, 1, 0, 0, 0, 1, -1, 0, -1, 1, 0, 0, 0, 0, 0}, + {1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 1, 0, 0, -1, 1, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, 0, 1, 0, 0, 0, -1, 0, -1, -1, 0, -1, 0, 1, -1, 0, -1, 0, 1, -1, -1, 1, -1, 0, 0, 0, -1, 1}, + {0, 0, 0, 0, 0, 1, 0, -1, -1, 1, 0, 0, 1, 0, -1, 0, 0, 0, -1, 0, 1, 0, -1, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, -1, -1, -1, -1, 0, 0, 1, 1, 1, -1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, -1, -1, 0, 1, 0, 1}, + {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 1, -1, -1, 0, -1, 0, 0, 1, 0, 0, -1, 0, 0, 1, 1, -1, 1, 0, 0, -1, 0, 0, 0, 1, 0, 1, 0, 0, 0, -1, -1, 0, 1, 0, 1}, + {1, 0, 0, -1, -1, 1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, -1, -1, 0, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 1, 1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 1, -1, 0, 0}, + {0, -1, 0, 0, 1, 1, 0, 1, -1, 0, 0, 0, 0, -1, -1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, 0, -1, 1, 0, 0, -1, 0, -1, -1, 0, -1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, -1, 1, 1, 0, 0}, + {0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 1, 0, -1, -1, -1, 0, 0, 0, 1, 0, 0, 0, -1, -1, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, -1, 0, 1, -1, -1, -1, 0, 0, -1}, + {1, 0, -1, -1, 1, 0, 1, 1, 1, 0, -1, 0, 1, 0, 1, -1, -1, -1, 0, 1, 0, 1, 1, -1, -1, 0, 0, 1, 1, 1, 0, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, -1, 0, 1, -1, 0, 0, 0}, + {0, -1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 1, -1, 1, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, -1, 1, 0, 1, 0, -1, 0, 1, 0, 0}, + {0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 1, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 1, 0, 1, -1, 0, 0, -1, 1, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}, + {0, 0, -1, 1, 0, -1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 1, -1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, -1, 0, 1, 0, 1, 0, -1, 0, 1, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 1, 0, 0, -1, 1, 1, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, -1, -1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1}, + {0, 0, 0, 1, 1, 0, 0, 0, -1, 0, 1, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 1, 0, -1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, -1, -1, 1, -1, -1, 1, 0, -1, 0, -1, 0, 1, 0, 1, 0, 0, -1, 1, -1}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 1, -1, 0, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0}, + {-1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 1, 1, 0, 0, 1, -1, 0, 0, -1, 0, -1, -1, -1, -1, -1, 0, 1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, -1, 0, -1, 0, 0, -1, 1, 1, 0, 0, -1, 0, 0, -1, -1, 1}, + {0, -1, 0, 0, 0, -1, -1, 0, 0, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, -1, 0, 0, 1, -1, 0, 1, 1, -1, 1, 0, -1, 0, 0, -1, 1, -1, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 1, 1, -1, 0, 0, 0, -1, 0, 0, 0, 1, -1, -1, -1, 0, -1, 0, 1, 0, -1, 0, -1, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 0, -1, -1, 0}, + {0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1, -1, 0, 0, 0, -1, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, -1, 1, -1, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0, 0, -1, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, 0, 1, -1, 0, 0, 0, 0, 1, -1, 0, 0, 1, 0, 0, -1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 1, -1, 0, 0, 1, 0, 0, 0, 1, -1, 0, 0, 0, 1, -1}, + {0, 0, 0, 1, 1, 0, 1, 1, -1, 1, 0, -1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, -1, 0, 0, 1, 0, 1, -1, 0, 0, 0, 1}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, 0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, -1, 0, 0, 0, 1, 1, 0, -1, 0, 1, 0, 0, -1, -1, -1, 0, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0}, + {1, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -1, 0, -1, 0, -1, 1, 1, -1, 0, 0, -1, 0, 0, -1, 1, 1, 0, 0, 0, 0, 0, 1, -1, 0, 0, -1, 0, -1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 1, -1, -1, -1}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, -1, 1, 0, 0, -1, -1, 1, 1, 0, 0, 0, 1, 0, -1, 1, -1, -1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, -1, 1, 0, -1, -1, 0, 1, 0, -1, 0, 0, 0, 0, 0, -1, 0, -1, 1, -1, 0, 0}, + {1, 0, 0, 0, 1, 0, -1, 1, 0, 0, 0, 0, 0, -1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, -1, 1, 1, 0, 0, 0, 0, 0, -1, 1, 0, -1, 0, -1, -1, 0, 1, 0, 0, 0, 0, 1, -1, -1, 0, 1, 0, -1, 1, -1, -1, 0, 1, 0}, + {0, 0, 1, 1, 0, 0, -1, 1, -1, 1, 0, 0, 0, 0, 0, 0, -1, 1, -1, 0, 1, 0, 0, -1, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, -1, 1, 0, 0, 0, 0, -1, 0, 0, -1, 0, -1, 0}, + {-1, 1, 1, 0, -1, 0, 0, 1, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0, -1, 1, -1, 0, 1, 1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, 0, -1, 0, 1, -1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {-1, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, -1, -1, -1, 0, 1, -1, -1, -1, 0, 0, 1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, -1, 0, 1, 1, 0, 0, 0, 0, 0}, + {1, 1, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, -1, 1, 0, 1, -1, -1, -1, 0, 0, 1, -1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, -1, 0}, + {0, 0, -1, 0, 0, 1, 1, -1, 0, 1, -1, 0, -1, 0, 1, 0, 0, -1, -1, -1, 1, 0, 0, 0, -1, -1, 0, -1, 0, 0, -1, -1, 1, 0, 1, 0, 0, -1, -1, 0, 0, 1, 0, -1, 1, 0, 1, 0, 0, 0, 0, -1, 0, 0, 1, 1, 0, 1, -1, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, -1, 0, -1, 0, 0, 0, 1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, -1, 0, 0, 0, 0, 0, 1, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, -1, -1, 1, 0, -1, -1, 1, -1, 1, 1, -1, -1, 0}, + {0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 1, 0, -1, 0, 0, 0, 1, 1, -1, 0, 0, 1, -1, 0, 0, 1, 0, 0, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, -1, 0, 0, 0, 1, -1, 0}, + {1, 1, 0, -1, 0, -1, 1, 1, 0, 0, 1, 0, 1, -1, -1, 1, 0, 1, -1, 0, -1, 1, -1, -1, 0, 0, -1, 0, -1, -1, 0, 1, 0, -1, -1, 1, 0, 0, 1, 0, -1, 1, 0, 0, -1, 0, 0, -1, -1, -1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, -1, 1, 0, -1, 0, 1, 0, 0, 0, 0, -1, -1, 0, -1, 1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, 0, 0, 0, -1, 0, 0, -1, -1, -1, -1, 0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, -1, 0, 0, 0}, + {1, 0, 1, 0, 1, 0, 0, -1, 1, 0, -1, -1, 0, 1, 0, 0, 1, -1, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 1, 0, 1, -1, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, -1}, + {0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, -1, 0, 0, -1, 0, 0, 1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 1, 0, 0, 0, -1, 0, -1, 0, 0, -1, 0, 0, 1, 1, 0, 0, -1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1}, + {0, 1, 0, 0, 0, 1, 1, -1, 1, -1, 0, 1, -1, 1, 0, 1, 0, 1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, -1, -1, 0, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, -1, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, -1, 0, 1, 1, -1, 0, 0, -1, 1, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, -1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 1, 0, 0, -1, -1, 0, -1, 0, 0, 1, 0, -1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0}, + {0, 1, 0, 1, -1, 0, 0, 1, 0, 1, 0, -1, 0, -1, 0, 0, 1, -1, 0, -1, 1, -1, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, -1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, -1, -1, 0, 0, -1, 0}, + {1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, -1, -1, -1, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 1, 0, 0, 0, 0, -1, -1, -1, 0, 0, 1, 0, 0, 0, 1}, + {1, -1, -1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, -1, -1, 0, -1, -1, 1, 1, -1, 0, -1, 0, 0, 0, 0, -1, 1, 1, 0, 0, -1, -1, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0}, + {-1, 0, 1, 0, 0, 0, -1, 1, 0, -1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, -1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, -1, 0, 1, 1, 1, 0, -1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, -1, 0}, + {0, 0, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0, 0, 1, 1, 0, 0, -1, -1, 1, 1, 0, 0, 1, -1, 1, -1, 1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 1, 0}, + {1, -1, 0, 0, 0, 0, 0, 1, -1, 1, 1, 0, 1, 0, -1, 1, 0, 1, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 1, -1, 0, 0, -1, 1, 0, 0, 0}, + {0, 0, -1, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, -1, 0, 1, -1, 1, 1, 0, 0, -1, -1, 1, 0, 0, -1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, -1}, + {1, 0, 0, 0, 0, 0, 0, 1, -1, -1, 0, -1, 0, 1, 0, -1, -1, 0, 1, 1, 0, 0, 0, -1, 1, 0, 0, -1, 0, 0, 0, -1, 0, 1, -1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, -1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, -1, 0, 0}, + {0, 0, 1, 1, 0, -1, -1, 0, 0, -1, 0, 1, 0, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 1, 0, -1, 0, -1, -1, 0, 0, 0, -1, -1, -1, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 1, -1, -1, 1, -1, 0, 0, -1, 0, 0, -1, 0, 0}, + {0, 1, -1, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 1, 0, -1, -1, 0, -1, -1, 0, -1, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, -1}, + {0, 0, 0, 0, 0, 0, -1, 1, 0, -1, -1, 0, 1, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 1, 1, -1, 0, 1, -1, 1, 0, 0, 1, 0, 0, 0, 0, 1, -1, 0, 0, 1, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 1, 1, 0, -1, 1, 0, 1, 0, -1, 0, 0, 1, 0, 1, -1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0}, + {1, 0, 1, 0, 1, -1, 1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 1, -1, 0, -1, 0, 0, 0, 1, 1, 0}, + {0, 0, 0, -1, 1, 1, 1, -1, 1, 0, 0, -1, -1, 1, 0, 0, 1, 1, 0, 1, -1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, -1, 1, 0, 1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 1, 1, 0, -1, 0, 1, 1, 0, -1, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, -1, -1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1}, + {0, 0, -1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, -1, -1, 1, -1, 0, 1, 0, -1, 0, -1, 0, -1, 0, 1, 0, 0, 0, -1, 1, 0, -1, 1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 1, 0, -1}, + {0, 0, 0, 0, -1, 1, 1, 0, 0, 0, 0, 0, 1, -1, -1, -1, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, -1, -1, 0, 1, -1, 0, 0, -1, -1, 0}, + {0, 0, -1, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0, 1, -1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, -1, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {-1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, -1, 1, 0, 1, 0, 1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -1, 0, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 1, -1, 1, 1, 1, 0, -1, 1, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, -1, -1, 1, 0, 1, 0, 0, 0, 0, 0, -1, 0, -1, -1, 0, 0, 0, 0, 0, 0, -1, 0, 1, -1, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, -1}, + {1, 0, 0, 1, 0, 1, 0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, -1, -1, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, -1, -1, 0, 1, 0, 1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, -1, 0, 0, 0, -1, 0, 1, 0}, + {0, -1, 0, 0, 0, -1, 0, -1, 0, 0, 1, 1, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, -1, -1, 0, 0, 0, 1, -1, 1, 1, -1, 1, -1, 0, -1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, -1, -1, 1, 0, -1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, -1, 1}, + {0, -1, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 1, -1, 0, -1, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 1, -1, -1, 0, 1, 1, -1, 1, 0, 0, 0, -1, 1, -1, -1, 0, 0, 0}, + {1, -1, -1, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, -1, 1, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 1, -1, 0, 0, 1, 0, 1, 0, -1, 1, -1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, -1, 1, 0, 1, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, -1, 0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, -1, 1, 1, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, -1, -1, 0, 0, 0, 1, 0, 1, 0, -1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1}, + {1, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, -1, 0, -1, 0, -1, 1, 0, -1, 1, -1, 0, 0, 1, 0, 1, 0, -1, -1, 1, 0, -1, 0, 0, -1, -1, 1, -1, -1, 0, -1, 1, -1, 0, 0, 1, -1, 0, -1, 1, 0, -1, -1, 1, 0, 0, 1, 0, -1, 0, 0, -1, 1, -1}, + {1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, -1, -1, 0, 1, 0, 1, 1, 1, 0, -1, 0, 1, 0, -1, -1, 0, 1, 0, -1, -1, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 1, 1, -1, 1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, -1, 0, 0, -1, 0, 0, 0, -1, 0, -1, 0, 0, 1, -1, 0, 1, 1, 0, 0, -1, 0, 1, -1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0}, + {1, -1, 0, 0, 0, 0, 0, 0, 1, 0, -1, -1, 0, 0, 0, 0, -1, 0, -1, -1, 0, -1, 0, 0, -1, 0, 0, 1, 1, 0, 1, 0, -1, -1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, -1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, -1, 0, 0, 0}, + {1, 0, 1, 1, -1, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, -1, 0, 1, -1, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, -1, 0, 1, -1, -1, -1, -1, 1, 0, -1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 1, 0, 1, 0, -1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, -1, 1, 1, 1, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0}, + {-1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1, -1, 1, -1, 1, 0, 0, 0, 0, 1, -1, 0, 1, -1, -1, 0, 0, 0, 1, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, 0, 0, 1, 0, -1, 0, 0, 0, 0}, + {0, -1, -1, 0, 0, -1, -1, 1, -1, 0, 1, -1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 1, -1, 1, 0, 0, 0, -1, -1, -1, -1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 1, -1, 0, -1, -1, -1, 0, 0, 0, -1, 0, 1, 1}, + {1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, -1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, -1, 1, 1, 0}, + {-1, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, 1, -1, 0, -1, 0, -1, -1, -1, 0, 0, 1, 0, -1, 0, -1, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 1, 0, 0, -1, -1}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, -1, 0, 1, 1, 1, -1, 0, 0, -1, 0, -1, -1}, + {0, 0, 1, 0, 0, 0, 1, 0, -1, -1, -1, 0, -1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 1, 1, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, -1}, + {1, 0, -1, 0, -1, 1, 0, 0, 1, 0, 0, 0, 0, -1, -1, 0, 0, 1, -1, 0, -1, 0, -1, -1, 0, 0, 0, -1, 0, 1, -1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 1, 0, -1, 0}, + {0, 0, 1, -1, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, -1, 0, 0, 0, 1, 0, -1, 1, 0, 0, 0, -1, 0, 0, 0, -1, -1, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0}, + {0, 1, 0, -1, 0, 0, -1, 0, -1, 0, 0, 0, 1, 1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 1, -1, 0, 1, 0, -1, 0, 0, -1, -1, 0, -1, 1, 0, 1, 0, 0, -1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {1, 1, -1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, -1, 1, 0, -1, 1, 0, 0, 1, -1, 0, -1, 1, 0, 0, 1, 0, 0, 0, -1, 1, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0}, + {0, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 1, -1, 0, -1, -1, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0}, + {-1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 1, 0, 1, -1, 1, 1, 0, 1, 1, 0, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, -1, 0, -1, 0, 0, 1, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, + {0, -1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, -1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 1, -1, 0, -1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 1, -1, 0, 1, 1, 1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 1, 0, 0, -1, -1, 1, 0, 1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 1, -1, -1, 1}, + {1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, -1, -1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, -1, 1, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 1, -1, 0, 0, 0, 0, 1, 1, 0, 0, -1, 0, 0, -1, 1, 0, -1, 0, 0, -1, 1, 0, 0, 0, 0}, + {0, -1, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 1, 1, 0, 1, 1, 0, 1, -1, 1, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, 1, 0, 0, -1, 0, -1, 0, 1, -1, 0, 1, 0, 1, -1, 0}, + {0, -1, 0, 1, 1, 0, 0, -1, 0, -1, 0, -1, 0, 0, 1, -1, 0, -1, -1, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, -1, 1, 0, 0, 0, 0, 1, 0, 1, -1, 0, 0, 1, -1, 1, 0, 0, 0, 1, -1}, + {1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, -1, 0, 1, -1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 1, 0, -1, -1, 0, -1, 0, -1, 0, 0, 1, 0, 1, -1, 0, 1, 0, 0, 0, -1}, + {-1, -1, -1, 0, -1, 0, -1, 0, 0, 1, 0, 0, 0, 0, -1, -1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, -1, 0, 0, 0, 0, 0, 1, 0, -1, -1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0}, + {0, 0, 1, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, -1, 1, 0, 0, -1, 1, 0, 1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 1, 0, 0, 0, 1, 0, 1, 0, -1, 0, -1, -1, 0, 0, 1}, + {0, 0, 1, 0, 0, -1, 0, 1, -1, -1, -1, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 1, 1, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 1, 0, 0, 0, 0, 0, 0, -1, 1, 0, 1, -1, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, -1, 1, 0, 1, 0, 1, -1, 0, -1, 0, 1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, -1, 0, 0, 0, 0, -1, -1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1}, + {0, 0, -1, 1, 0, 0, -1, 0, 0, -1, 0, -1, -1, 0, 1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, -1, 0, -1, 0, 0, 0, 1, 1, -1, 1, 1, -1, 0, 0, 1, 0, 0, 0, 0}, + {-1, 0, -1, -1, 0, 0, 0, 0, -1, 1, 0, 1, 0, 0, -1, 1, -1, 1, 1, -1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, -1, 1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, -1, 0, -1, -1, -1, -1, 0, 0, 0, -1}, + {0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 1, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, -1, -1, 1, 0, 0, 0}, + {1, -1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, -1, -1, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, -1, 0, -1, -1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, -1, 0, 0, 1, -1, 1, -1, 0, -1, 0, -1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, 0, -1, -1, 1, 0, 0, 0}, + {-1, -1, 1, 0, -1, 0, 1, 1, 1, 0, -1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1, 1, 0, 0, 0, 1, 0, 1, 1, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0, -1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0}, + {-1, 0, 1, 1, 0, 1, -1, 1, -1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, -1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, -1, 1, 0, -1, 0, 1, -1, -1, 0, 1, 0, 0, 1, -1, 0, -1, 1, 0, -1, 0, 0, -1, 0, 0, -1, 1, 0, 0, 0, 0, -1}, + {0, 0, -1, 0, 0, 0, 0, 1, 0, -1, 1, 0, -1, 0, -1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, -1, -1, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 1, -1, -1, 0, 1, 1, 0, -1, 0, -1, 0, 0, 0, -1, -1, 1, -1, -1, 0, 1, 0, 1, 1, -1, 0}, + {0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {1, 1, 0, 0, 0, 1, 0, 0, -1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, -1, 0, 1, -1, 0, 0, 0, 0, 0, -1, -1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, -1, -1, 0, 0, 0, -1}, + {-1, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, -1, 0, 0, 1, 0, 1, 0, 0, -1, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, -1, 1, -1}, + {0, 0, 1, -1, -1, 0, 0, 0, -1, 1, 0, -1, 0, 1, 0, -1, 0, 0, -1, 0, 1, 1, -1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, -1, -1, 0, 0, -1, -1, -1, 1, 0, 1}, + {1, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, -1, 0, -1, 1, -1, 1, 1, 0, -1, 0, 1, 0, 1, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0, 0, -1, 1, 1, -1, 0, 0, 0, -1, -1, 0, 0, 0, 0, -1, 0} +}; + +static const int F7[128][3][3][1] = { + { + { + {87}, + {-69}, + {-18} + }, + { + {-109}, + {114}, + {120} + }, + { + {79}, + {-59}, + {11} + } + }, + { + { + {77}, + {-30}, + {110} + }, + { + {-6}, + {76}, + {88} + }, + { + {32}, + {108}, + {-95} + } + }, + { + { + {-67}, + {-103}, + {50} + }, + { + {-73}, + {-53}, + {30} + }, + { + {44}, + {8}, + {-62} + } + }, + { + { + {-105}, + {96}, + {-77} + }, + { + {-59}, + {63}, + {-80} + }, + { + {68}, + {31}, + {105} + } + }, + { + { + {-74}, + {93}, + {-31} + }, + { + {-93}, + {34}, + {-61} + }, + { + {-94}, + {108}, + {-73} + } + }, + { + { + {79}, + {2}, + {29} + }, + { + {-56}, + {-94}, + {-41} + }, + { + {34}, + {73}, + {57} + } + }, + { + { + {72}, + {-13}, + {-27} + }, + { + {16}, + {116}, + {-75} + }, + { + {107}, + {81}, + {-10} + } + }, + { + { + {-21}, + {26}, + {82} + }, + { + {-106}, + {-81}, + {11} + }, + { + {-81}, + {49}, + {97} + } + }, + { + { + {112}, + {79}, + {-7} + }, + { + {-37}, + {-107}, + {-100} + }, + { + {61}, + {-6}, + {27} + } + }, + { + { + {-119}, + {53}, + {-53} + }, + { + {56}, + {114}, + {-62} + }, + { + {-29}, + {-6}, + {-25} + } + }, + { + { + {18}, + {-73}, + {104} + }, + { + {101}, + {125}, + {79} + }, + { + {77}, + {90}, + {19} + } + }, + { + { + {-98}, + {21}, + {-56} + }, + { + {38}, + {60}, + {-95} + }, + { + {116}, + {42}, + {-3} + } + }, + { + { + {36}, + {79}, + {-104} + }, + { + {-61}, + {47}, + {48} + }, + { + {-74}, + {59}, + {-110} + } + }, + { + { + {48}, + {-121}, + {-92} + }, + { + {-78}, + {-72}, + {117} + }, + { + {-17}, + {-40}, + {-97} + } + }, + { + { + {106}, + {44}, + {17} + }, + { + {-35}, + {-74}, + {-118} + }, + { + {11}, + {-65}, + {82} + } + }, + { + { + {-31}, + {-50}, + {43} + }, + { + {-106}, + {-37}, + {49} + }, + { + {44}, + {59}, + {-17} + } + }, + { + { + {31}, + {65}, + {-49} + }, + { + {100}, + {40}, + {71} + }, + { + {-27}, + {-99}, + {-73} + } + }, + { + { + {95}, + {-103}, + {79} + }, + { + {39}, + {31}, + {-8} + }, + { + {-14}, + {30}, + {35} + } + }, + { + { + {68}, + {-99}, + {84} + }, + { + {-63}, + {-61}, + {-2} + }, + { + {-13}, + {-114}, + {95} + } + }, + { + { + {-56}, + {-54}, + {58} + }, + { + {-6}, + {9}, + {-109} + }, + { + {-68}, + {15}, + {-31} + } + }, + { + { + {-111}, + {-45}, + {6} + }, + { + {-93}, + {-48}, + {49} + }, + { + {-106}, + {104}, + {8} + } + }, + { + { + {-60}, + {57}, + {67} + }, + { + {74}, + {85}, + {-94} + }, + { + {-46}, + {72}, + {-28} + } + }, + { + { + {90}, + {7}, + {60} + }, + { + {-8}, + {-24}, + {-107} + }, + { + {24}, + {77}, + {98} + } + }, + { + { + {-108}, + {35}, + {102} + }, + { + {110}, + {-41}, + {-10} + }, + { + {48}, + {-54}, + {30} + } + }, + { + { + {-27}, + {105}, + {-71} + }, + { + {91}, + {113}, + {0} + }, + { + {15}, + {-54}, + {-16} + } + }, + { + { + {1}, + {49}, + {-95} + }, + { + {32}, + {-80}, + {-95} + }, + { + {23}, + {-87}, + {-38} + } + }, + { + { + {-26}, + {86}, + {122} + }, + { + {91}, + {125}, + {100} + }, + { + {101}, + {92}, + {-7} + } + }, + { + { + {-6}, + {-22}, + {62} + }, + { + {26}, + {-16}, + {49} + }, + { + {-81}, + {103}, + {23} + } + }, + { + { + {-85}, + {-45}, + {98} + }, + { + {116}, + {114}, + {55} + }, + { + {57}, + {28}, + {-98} + } + }, + { + { + {44}, + {64}, + {-77} + }, + { + {33}, + {-105}, + {6} + }, + { + {-54}, + {-22}, + {15} + } + }, + { + { + {-76}, + {73}, + {-69} + }, + { + {106}, + {-92}, + {-81} + }, + { + {-22}, + {-71}, + {113} + } + }, + { + { + {-7}, + {36}, + {119} + }, + { + {57}, + {6}, + {79} + }, + { + {92}, + {-16}, + {-107} + } + }, + { + { + {97}, + {85}, + {22} + }, + { + {86}, + {-23}, + {71} + }, + { + {60}, + {-102}, + {-65} + } + }, + { + { + {101}, + {32}, + {18} + }, + { + {92}, + {105}, + {22} + }, + { + {65}, + {72}, + {-72} + } + }, + { + { + {51}, + {-64}, + {91} + }, + { + {-37}, + {-13}, + {-112} + }, + { + {118}, + {-65}, + {77} + } + }, + { + { + {-95}, + {91}, + {82} + }, + { + {-10}, + {104}, + {-41} + }, + { + {60}, + {-55}, + {64} + } + }, + { + { + {-58}, + {32}, + {-74} + }, + { + {-4}, + {-108}, + {53} + }, + { + {100}, + {119}, + {124} + } + }, + { + { + {118}, + {90}, + {19} + }, + { + {50}, + {-110}, + {-93} + }, + { + {45}, + {10}, + {34} + } + }, + { + { + {-109}, + {-71}, + {-119} + }, + { + {63}, + {98}, + {30} + }, + { + {50}, + {17}, + {32} + } + }, + { + { + {41}, + {-112}, + {7} + }, + { + {-35}, + {-108}, + {82} + }, + { + {-115}, + {-37}, + {18} + } + }, + { + { + {22}, + {-81}, + {10} + }, + { + {-38}, + {-12}, + {81} + }, + { + {110}, + {-49}, + {-91} + } + }, + { + { + {72}, + {76}, + {31} + }, + { + {-116}, + {72}, + {91} + }, + { + {54}, + {-8}, + {-109} + } + }, + { + { + {46}, + {121}, + {-28} + }, + { + {-17}, + {-4}, + {-64} + }, + { + {52}, + {120}, + {61} + } + }, + { + { + {14}, + {-67}, + {119} + }, + { + {-41}, + {100}, + {113} + }, + { + {97}, + {52}, + {123} + } + }, + { + { + {-23}, + {-92}, + {-17} + }, + { + {34}, + {40}, + {-100} + }, + { + {-99}, + {41}, + {37} + } + }, + { + { + {81}, + {-20}, + {-95} + }, + { + {36}, + {-21}, + {-42} + }, + { + {103}, + {-62}, + {76} + } + }, + { + { + {26}, + {66}, + {-78} + }, + { + {71}, + {43}, + {56} + }, + { + {11}, + {-61}, + {73} + } + }, + { + { + {-25}, + {-100}, + {-24} + }, + { + {-26}, + {-117}, + {-66} + }, + { + {-90}, + {61}, + {106} + } + }, + { + { + {55}, + {89}, + {39} + }, + { + {-65}, + {123}, + {127} + }, + { + {114}, + {-63}, + {105} + } + }, + { + { + {-37}, + {-23}, + {95} + }, + { + {-74}, + {-78}, + {-99} + }, + { + {-113}, + {80}, + {121} + } + }, + { + { + {76}, + {44}, + {-49} + }, + { + {65}, + {-64}, + {-25} + }, + { + {-6}, + {8}, + {93} + } + }, + { + { + {-80}, + {-98}, + {81} + }, + { + {107}, + {-58}, + {35} + }, + { + {-105}, + {81}, + {0} + } + }, + { + { + {0}, + {-48}, + {-12} + }, + { + {100}, + {-72}, + {-57} + }, + { + {-36}, + {90}, + {-50} + } + }, + { + { + {-84}, + {1}, + {-55} + }, + { + {43}, + {-106}, + {80} + }, + { + {-33}, + {-36}, + {-15} + } + }, + { + { + {-111}, + {90}, + {62} + }, + { + {-112}, + {61}, + {-100} + }, + { + {10}, + {-47}, + {-45} + } + }, + { + { + {-75}, + {100}, + {109} + }, + { + {119}, + {43}, + {-32} + }, + { + {49}, + {45}, + {-107} + } + }, + { + { + {-84}, + {69}, + {53} + }, + { + {116}, + {111}, + {54} + }, + { + {-100}, + {50}, + {-66} + } + }, + { + { + {-27}, + {-25}, + {-47} + }, + { + {-9}, + {-73}, + {21} + }, + { + {-19}, + {55}, + {77} + } + }, + { + { + {52}, + {55}, + {-87} + }, + { + {-25}, + {-114}, + {0} + }, + { + {69}, + {-41}, + {22} + } + }, + { + { + {-90}, + {-38}, + {-39} + }, + { + {-64}, + {-112}, + {-102} + }, + { + {-30}, + {-18}, + {23} + } + }, + { + { + {-21}, + {-13}, + {43} + }, + { + {-92}, + {-77}, + {112} + }, + { + {81}, + {-47}, + {-20} + } + }, + { + { + {96}, + {27}, + {101} + }, + { + {80}, + {-83}, + {11} + }, + { + {45}, + {28}, + {22} + } + }, + { + { + {-91}, + {-105}, + {29} + }, + { + {62}, + {-56}, + {-77} + }, + { + {94}, + {113}, + {12} + } + }, + { + { + {40}, + {-23}, + {34} + }, + { + {29}, + {31}, + {115} + }, + { + {-81}, + {40}, + {-8} + } + }, + { + { + {-3}, + {-99}, + {51} + }, + { + {44}, + {-41}, + {-91} + }, + { + {11}, + {-75}, + {51} + } + }, + { + { + {78}, + {-71}, + {-54} + }, + { + {-59}, + {-36}, + {50} + }, + { + {31}, + {75}, + {122} + } + }, + { + { + {74}, + {-74}, + {39} + }, + { + {-39}, + {19}, + {84} + }, + { + {17}, + {-2}, + {-64} + } + }, + { + { + {101}, + {-107}, + {-82} + }, + { + {-61}, + {-59}, + {13} + }, + { + {111}, + {63}, + {90} + } + }, + { + { + {-43}, + {102}, + {54} + }, + { + {-40}, + {77}, + {39} + }, + { + {67}, + {58}, + {19} + } + }, + { + { + {-91}, + {-23}, + {-32} + }, + { + {5}, + {-99}, + {-45} + }, + { + {36}, + {59}, + {115} + } + }, + { + { + {-29}, + {41}, + {-23} + }, + { + {24}, + {-53}, + {29} + }, + { + {-97}, + {-43}, + {70} + } + }, + { + { + {90}, + {-117}, + {79} + }, + { + {-107}, + {24}, + {-77} + }, + { + {-20}, + {-76}, + {-73} + } + }, + { + { + {-111}, + {41}, + {41} + }, + { + {9}, + {-111}, + {-70} + }, + { + {15}, + {-107}, + {-68} + } + }, + { + { + {68}, + {-112}, + {13} + }, + { + {-61}, + {-57}, + {-106} + }, + { + {-111}, + {-53}, + {15} + } + }, + { + { + {-113}, + {39}, + {-15} + }, + { + {14}, + {47}, + {16} + }, + { + {47}, + {-48}, + {-19} + } + }, + { + { + {-55}, + {34}, + {-43} + }, + { + {78}, + {-4}, + {-29} + }, + { + {-31}, + {123}, + {112} + } + }, + { + { + {-110}, + {50}, + {-22} + }, + { + {-95}, + {-37}, + {55} + }, + { + {-54}, + {61}, + {-64} + } + }, + { + { + {-83}, + {-28}, + {52} + }, + { + {101}, + {27}, + {-114} + }, + { + {46}, + {16}, + {-97} + } + }, + { + { + {-34}, + {-46}, + {-31} + }, + { + {104}, + {0}, + {-41} + }, + { + {-3}, + {-19}, + {-28} + } + }, + { + { + {-75}, + {-40}, + {74} + }, + { + {-56}, + {7}, + {-71} + }, + { + {20}, + {9}, + {-69} + } + }, + { + { + {29}, + {-102}, + {25} + }, + { + {93}, + {0}, + {-82} + }, + { + {41}, + {-58}, + {-24} + } + }, + { + { + {-64}, + {-106}, + {-40} + }, + { + {13}, + {-31}, + {-61} + }, + { + {56}, + {47}, + {-48} + } + }, + { + { + {1}, + {-40}, + {-21} + }, + { + {4}, + {-90}, + {36} + }, + { + {93}, + {-101}, + {-44} + } + }, + { + { + {95}, + {105}, + {-58} + }, + { + {-110}, + {84}, + {-17} + }, + { + {-91}, + {-9}, + {71} + } + }, + { + { + {-114}, + {-24}, + {62} + }, + { + {-22}, + {-100}, + {105} + }, + { + {96}, + {-99}, + {-14} + } + }, + { + { + {111}, + {-22}, + {8} + }, + { + {-69}, + {-7}, + {-79} + }, + { + {-111}, + {-4}, + {-40} + } + }, + { + { + {-59}, + {-45}, + {-68} + }, + { + {-4}, + {-6}, + {-115} + }, + { + {-83}, + {-91}, + {33} + } + }, + { + { + {1}, + {-19}, + {46} + }, + { + {85}, + {87}, + {36} + }, + { + {14}, + {2}, + {-37} + } + }, + { + { + {10}, + {-14}, + {-63} + }, + { + {-71}, + {24}, + {-39} + }, + { + {12}, + {6}, + {4} + } + }, + { + { + {62}, + {-108}, + {-19} + }, + { + {37}, + {27}, + {105} + }, + { + {-34}, + {-1}, + {14} + } + }, + { + { + {63}, + {-65}, + {-102} + }, + { + {-75}, + {62}, + {-28} + }, + { + {-23}, + {-61}, + {-81} + } + }, + { + { + {-21}, + {-95}, + {-113} + }, + { + {105}, + {83}, + {105} + }, + { + {-68}, + {-122}, + {48} + } + }, + { + { + {-39}, + {31}, + {-77} + }, + { + {53}, + {-95}, + {-122} + }, + { + {-64}, + {46}, + {8} + } + }, + { + { + {48}, + {-106}, + {11} + }, + { + {64}, + {-92}, + {0} + }, + { + {-108}, + {29}, + {-48} + } + }, + { + { + {75}, + {23}, + {17} + }, + { + {-110}, + {-32}, + {48} + }, + { + {-4}, + {8}, + {-78} + } + }, + { + { + {101}, + {-45}, + {1} + }, + { + {-38}, + {-19}, + {-63} + }, + { + {47}, + {-81}, + {94} + } + }, + { + { + {108}, + {13}, + {75} + }, + { + {-10}, + {-23}, + {-44} + }, + { + {20}, + {43}, + {-92} + } + }, + { + { + {79}, + {95}, + {-104} + }, + { + {23}, + {39}, + {-74} + }, + { + {-16}, + {62}, + {39} + } + }, + { + { + {-3}, + {2}, + {-27} + }, + { + {-101}, + {119}, + {95} + }, + { + {116}, + {76}, + {92} + } + }, + { + { + {-5}, + {-109}, + {-84} + }, + { + {-17}, + {-81}, + {-21} + }, + { + {-91}, + {59}, + {-109} + } + }, + { + { + {-60}, + {-60}, + {-90} + }, + { + {-47}, + {-1}, + {25} + }, + { + {-23}, + {-15}, + {-25} + } + }, + { + { + {119}, + {-73}, + {-87} + }, + { + {-42}, + {63}, + {-34} + }, + { + {-5}, + {1}, + {-98} + } + }, + { + { + {-11}, + {27}, + {-76} + }, + { + {-106}, + {-74}, + {-63} + }, + { + {-58}, + {-69}, + {7} + } + }, + { + { + {-10}, + {-96}, + {18} + }, + { + {-44}, + {57}, + {49} + }, + { + {-117}, + {-32}, + {-65} + } + }, + { + { + {-113}, + {-57}, + {-38} + }, + { + {113}, + {-13}, + {20} + }, + { + {-78}, + {52}, + {81} + } + }, + { + { + {-113}, + {-73}, + {-24} + }, + { + {84}, + {101}, + {42} + }, + { + {84}, + {-8}, + {106} + } + }, + { + { + {119}, + {94}, + {12} + }, + { + {42}, + {13}, + {73} + }, + { + {-89}, + {7}, + {10} + } + }, + { + { + {24}, + {55}, + {11} + }, + { + {-33}, + {76}, + {18} + }, + { + {19}, + {-84}, + {-78} + } + }, + { + { + {-50}, + {5}, + {74} + }, + { + {-33}, + {119}, + {-81} + }, + { + {-54}, + {118}, + {82} + } + }, + { + { + {66}, + {104}, + {116} + }, + { + {-8}, + {-72}, + {-13} + }, + { + {-18}, + {89}, + {-97} + } + }, + { + { + {-69}, + {-81}, + {-1} + }, + { + {24}, + {5}, + {-30} + }, + { + {-39}, + {66}, + {92} + } + }, + { + { + {4}, + {84}, + {-3} + }, + { + {-55}, + {20}, + {73} + }, + { + {39}, + {101}, + {14} + } + }, + { + { + {107}, + {101}, + {101} + }, + { + {10}, + {49}, + {-17} + }, + { + {-108}, + {-108}, + {32} + } + }, + { + { + {-95}, + {-54}, + {84} + }, + { + {66}, + {-33}, + {57} + }, + { + {27}, + {76}, + {-38} + } + }, + { + { + {40}, + {-97}, + {-79} + }, + { + {77}, + {120}, + {-24} + }, + { + {-76}, + {91}, + {35} + } + }, + { + { + {12}, + {-70}, + {-42} + }, + { + {117}, + {-31}, + {-45} + }, + { + {99}, + {-31}, + {-11} + } + }, + { + { + {-1}, + {22}, + {-114} + }, + { + {58}, + {34}, + {24} + }, + { + {42}, + {-6}, + {-103} + } + }, + { + { + {41}, + {85}, + {-108} + }, + { + {40}, + {72}, + {107} + }, + { + {5}, + {-67}, + {12} + } + }, + { + { + {-42}, + {111}, + {92} + }, + { + {-55}, + {93}, + {-42} + }, + { + {-79}, + {-99}, + {-4} + } + }, + { + { + {-88}, + {-41}, + {-39} + }, + { + {78}, + {-40}, + {87} + }, + { + {90}, + {-64}, + {-114} + } + }, + { + { + {-44}, + {115}, + {-92} + }, + { + {-31}, + {-14}, + {-56} + }, + { + {-90}, + {82}, + {-23} + } + }, + { + { + {-24}, + {32}, + {113} + }, + { + {90}, + {-93}, + {-4} + }, + { + {-28}, + {56}, + {18} + } + }, + { + { + {-92}, + {-94}, + {-71} + }, + { + {75}, + {114}, + {69} + }, + { + {19}, + {59}, + {43} + } + }, + { + { + {-77}, + {-12}, + {-39} + }, + { + {-115}, + {25}, + {15} + }, + { + {-77}, + {-95}, + {-81} + } + }, + { + { + {-37}, + {-44}, + {86} + }, + { + {-77}, + {55}, + {55} + }, + { + {111}, + {-109}, + {-16} + } + }, + { + { + {33}, + {-22}, + {-116} + }, + { + {-100}, + {92}, + {105} + }, + { + {-12}, + {56}, + {-106} + } + }, + { + { + {79}, + {73}, + {3} + }, + { + {74}, + {115}, + {-72} + }, + { + {-13}, + {-37}, + {71} + } + }, + { + { + {-77}, + {87}, + {-113} + }, + { + {28}, + {-61}, + {106} + }, + { + {-104}, + {-2}, + {-51} + } + } +}; + +static const int F8[128][128] = { + {38, -16, -46, -3, -82, 83, 102, -24, -41, -59, -80, -42, 24, -61, 85, -2, -82, -17, 70, 15, -81, 99, -18, -81, 88, -62, -39, 36, 53, 8, 66, 47, 76, 83, -37, 83, 57, 34, -58, -32, 10, 69, 31, -13, -13, -45, -53, 97, -20, -84, 63, 41, -44, -19, 50, 8, 82, 21, 85, 83, 15, -78, -50, 37, 39, -19, 96, 60, -66, 74, 9, -9, 50, 75, 46, -65, 77, 84, 44, 43, 6, -22, 97, -98, -84, 28, -53, 1, 27, -6, -12, -91, 48, 25, -20, -61, -64, 51, 32, -8, 3, -33, 11, -42, -83, -36, 43, -24, 81, 89, -34, 27, -45, -85, -3, -62, -50, 38, -49, 40, 96, 71, -52, 53, -57, -53, -55, -28}, + {-68, 82, 7, -87, 33, -86, -41, 21, -87, 40, -6, 46, 17, -44, 37, -74, -71, 15, -74, -81, 49, 91, -67, 82, 82, 15, -82, 63, 42, -77, -33, -62, -43, -2, 17, -48, -13, 53, -79, -28, 5, 86, -13, 42, -19, -34, -31, 39, -58, -8, -25, -8, 40, -77, 41, 68, -74, 69, 57, 46, -20, 70, 23, -35, -40, -89, 16, -83, -61, -1, 90, -58, 51, 45, -48, -36, -51, -55, 23, 84, -6, -8, -83, 66, -29, 75, -46, -54, -7, -34, -20, 40, -21, -1, -22, -42, 11, 78, 67, -10, -73, 81, -87, 32, 41, -53, -68, -71, -80, 52, 44, 44, 46, 58, -69, 15, 14, -84, -90, 49, 74, -37, -39, 1, 77, 39, 53, 41}, + {68, -51, -42, 60, 4, 94, 59, 36, -75, 75, 60, -62, -17, -39, 86, 26, -26, -47, 52, -54, 61, 63, 51, -73, 15, -49, -55, -9, -43, 67, -41, -22, -79, 62, 14, 16, -5, 45, 25, 64, -45, -5, 79, -77, -78, -49, 58, -12, 12, 60, 88, 55, 48, 29, -44, -17, 48, -60, 96, 48, -96, -88, 54, -41, 31, 4, 65, 43, 96, -10, -93, -61, 61, 28, 24, 88, -50, 7, -89, -64, 32, 1, 68, -11, -19, 4, 11, 90, 30, 54, -48, 37, 78, 89, -86, 12, -83, -63, 0, 36, 20, -78, 82, -18, 13, 81, 98, -91, 66, 79, -54, -26, 73, 86, -7, -13, -81, -58, -87, 61, 3, -12, 47, -4, -29, 100, -38, -62}, + {-56, -82, 53, 68, 44, -48, 15, 46, 50, -7, 43, 75, -48, -38, -88, -26, -85, -87, -76, -13, 35, -83, -10, -45, -85, 33, 45, -45, -45, -47, -84, 72, -73, 12, 3, 30, -18, 56, 57, -10, 60, 40, -9, -21, 67, -82, 10, 56, -83, 83, -58, 73, 74, -7, 46, 58, 80, -90, 30, -53, -9, 68, -79, 71, 10, -38, -16, -68, -59, -66, 5, 64, -78, 4, -43, -48, 1, 21, 47, 38, -71, -31, 20, -36, -43, -54, -55, 25, 89, 15, 35, 65, 57, 54, -53, 64, 27, -18, 50, 34, 8, -31, 80, -27, -60, -59, 35, -24, -56, -58, -7, 36, -79, 38, 29, 71, -56, -67, -30, -5, -10, -7, 64, -3, 47, -70, 47, 90}, + {-79, -17, 63, 86, 51, 16, 46, 14, 94, -22, 86, -59, -12, -4, -34, -87, 90, -81, -13, 38, -31, -28, 41, 81, -84, -24, -12, -58, 25, -32, 103, 38, 82, 38, -24, 74, 20, -61, -20, 85, 69, 67, -108, -65, 17, -54, -3, 24, -97, 106, -73, 17, 10, 99, -48, 25, 24, -72, -97, 59, 118, 37, 87, 33, -97, 27, 0, 91, 28, 14, 48, -25, 30, -26, 59, -24, -33, -11, -2, 45, -108, 2, 102, 65, -40, 23, 32, -67, 59, -54, -61, -88, -40, 16, 104, -4, 66, -39, -44, -36, 90, 13, -70, 34, 12, 51, 42, 15, -3, -70, 69, -46, -49, -15, 79, 52, 107, 30, -8, -17, 94, -2, 60, -86, 33, -38, 43, 18}, + {61, -61, 65, -29, -63, -82, 63, 47, 23, 59, -23, -58, -73, -61, 81, -48, 2, 76, -91, -42, 84, 46, 106, -69, 16, 17, 56, 67, 12, -44, 5, 63, -3, -58, -62, -54, 22, 76, 66, -65, -96, 69, 13, 91, -44, -32, 77, -78, -17, -75, 68, 64, -47, -78, 53, 57, 50, 53, -74, 40, 35, -18, -74, 56, 50, 82, 103, -24, 1, -32, -64, -91, -42, 36, -88, -75, -85, 69, 22, 30, -23, 93, -91, -44, -32, 33, 23, -21, 90, -12, -66, -3, -52, 29, 8, 53, -80, 18, 74, -88, -89, -49, 84, 71, 15, 61, 84, 56, -80, -85, 46, -16, -27, -41, -54, 21, 11, -52, 0, -54, 16, -56, 61, 39, 5, -42, 61, -51}, + {-71, 85, 15, -1, -73, 43, 64, 29, 97, 65, -18, -54, -11, 83, 46, 53, 61, -52, -2, -66, -56, 48, 72, 72, 16, 73, 44, -1, -50, -35, -52, 20, -7, 61, 98, 54, -55, -62, 66, -65, 44, 58, -9, -88, -73, -43, -67, 27, 35, 73, -22, -8, 71, 64, 7, 10, -85, 2, 59, 76, -65, 78, 41, 77, -31, -81, -49, 79, 38, 71, -54, 54, 3, 28, 80, -15, 92, -42, 99, 49, 57, 2, -20, 43, -13, 20, -19, 49, 81, -17, -34, -70, 86, -36, -80, 50, -55, -30, -68, 44, 91, -65, -66, 44, -45, -6, -67, 11, -33, -35, 71, -37, 43, 73, -33, -38, -32, 45, -40, -14, -50, 91, -76, 4, 10, 82, -39, -52}, + {-41, 82, 9, 44, 5, -79, -58, -13, -10, 54, -76, -26, 76, -12, -3, -30, -75, 6, 54, 35, 82, -7, 79, 65, 48, 2, -74, 1, 20, -7, 85, -22, 12, 18, -63, 22, 36, -36, 84, 64, 54, -45, 76, -72, 55, -78, -25, 25, 31, 68, -35, 25, 77, -7, 40, -23, 88, 78, 11, -70, -90, -16, -50, -48, 38, -33, -62, -80, -53, -25, -16, 79, -79, 90, 21, -79, -76, 29, -75, 21, 45, -73, 1, -9, 16, -67, 87, -32, 14, -85, -61, 23, -46, 65, -30, -67, 46, -44, -20, -29, 17, 36, 2, 70, -34, -65, -38, 47, 14, -17, 27, 47, 10, 83, -73, -48, 28, 63, -19, -7, 78, 66, 42, -88, -54, 33, -44, -37}, + {89, 2, 68, -9, -65, 9, 45, 49, -29, 44, 78, -74, 46, 49, -86, -54, -58, -40, 8, -15, 23, 6, 22, -2, -73, -85, 48, -18, -74, -86, -12, -60, -56, -9, 61, -30, -53, -73, -37, 60, -50, -3, 51, -92, -26, 52, -66, 90, -48, 56, 6, -4, 12, 0, 25, -14, 15, -14, -76, -14, -47, 23, -59, -14, 64, 25, 6, -42, -12, -74, -62, -47, -22, -73, -77, -45, -81, -9, 39, 59, 82, 65, 3, -92, -61, 83, 42, -17, -10, 60, -69, -7, 69, -43, -87, 37, -27, 15, -9, -33, 34, 32, -6, 17, -37, -3, 3, -69, 46, -12, 26, 29, -31, -31, 53, 32, 51, 18, 85, -17, -10, 48, -74, 13, 26, -37, -74, 6}, + {-43, -57, 14, -42, -70, 106, 73, 19, 92, -45, 85, -45, -86, 57, 81, -6, 16, -46, 35, 0, 88, 1, 65, -18, 4, -74, -13, 6, -49, -76, 78, -25, -60, -12, 41, -27, 28, 0, 24, 40, -28, 23, -64, 107, -88, -57, 83, 61, 10, -11, -4, 47, -51, -13, -30, 49, 5, -49, -78, 20, 39, -5, 35, -68, -71, 79, 69, -40, -66, 10, -4, 1, 74, -14, 66, -34, 66, -48, -70, 60, 54, 63, -64, -64, -24, -39, -36, -8, -18, 98, 85, -75, 41, 43, 4, -88, -40, -60, 55, 37, -50, 76, -79, 62, 55, -7, 95, -9, -44, -71, 68, 45, -1, 86, 36, -81, 24, 18, 24, 20, -52, 54, -7, -77, 14, 7, 72, 16}, + {-40, 62, 53, 16, -48, 48, -14, -38, -43, 64, -20, 84, 75, -95, 16, -21, 12, -65, -70, -58, 17, -78, 36, -84, -43, 54, -6, 32, 47, 64, -70, 36, -69, -95, -83, -26, -65, 8, -61, -38, 84, 38, 17, 16, 76, 61, -38, 61, 39, 33, -56, -55, 16, -74, -12, 50, 63, 82, -22, -9, 40, -31, 74, 44, 36, -10, 29, 50, -3, 29, -96, -60, 72, 53, 27, -62, -51, -75, -30, 17, 48, 57, -30, 66, -89, -86, -28, 41, -11, 48, -82, -65, -60, -49, 36, -61, -51, 74, -4, -2, -68, -8, -95, -62, 67, -63, 25, -9, 7, 16, -69, -4, -4, -35, 64, -89, -45, 50, 75, -86, 7, -84, -80, 55, 27, -46, -39, 55}, + {-23, -72, 76, 43, 7, -22, 104, 114, -38, -39, 84, 17, 22, 69, 76, 61, -27, 43, 47, 18, -35, 73, -58, -4, -76, -86, -48, -76, -58, 27, -26, 74, 77, 33, 28, -54, 93, 4, -30, 46, -13, 45, 5, 72, 33, 111, -44, -43, 99, -32, 103, 78, -8, 37, 70, 37, 101, 53, -57, 65, -51, 102, -87, 80, -45, 82, 24, -91, 22, -22, -65, 26, -6, -67, -36, 78, -49, 45, -65, 63, -38, -34, 34, 56, -84, -5, -40, -48, 54, 2, -99, -12, 81, 26, -34, 40, 64, -55, -7, 15, 76, 77, 99, 0, -5, 97, 7, -69, -6, 27, -27, 88, -37, -7, 52, 3, 51, 4, 97, 82, 32, -4, 81, 1, -56, 25, 87, -74}, + {-86, -4, 46, 71, -56, 68, -58, -59, -81, 20, 41, -12, -31, -16, -27, 61, 35, -35, 84, 68, -35, -35, 39, -59, 49, -89, -18, 45, 2, -88, -75, -32, -65, -8, 2, 18, 26, 5, -70, 17, 50, 60, 61, -61, 49, -10, 68, 31, 31, 65, -36, 10, 27, -48, 85, 78, -94, -16, 85, 70, 16, -53, 47, 27, -18, -27, 55, 24, -38, -53, 2, -90, -93, -39, 20, -13, 3, 84, 14, -58, -9, 49, 85, -21, 53, -31, -21, -27, 53, 94, 13, -44, 46, 27, 72, 74, -53, 20, -1, 22, -20, -34, 36, -49, 87, 32, -68, 30, -57, 47, -15, 16, -49, -73, 19, -14, 2, -48, -39, -17, 52, 59, -14, 53, -64, 89, 16, -16}, + {-54, 30, 42, -78, 81, 11, -9, -72, 13, -49, 9, -40, -82, -55, -59, 0, 32, -68, 63, 59, 46, 81, -77, -61, 30, -91, -22, -91, -41, -5, -71, -18, -37, -43, 75, 71, -82, 46, 46, 64, -38, -66, -14, 49, 54, 11, 86, -40, -21, -69, 61, 23, -50, -89, -91, 55, -73, -67, 46, -84, -20, 30, -71, 72, -57, -87, 38, -53, 35, -26, -55, -21, -67, -75, 68, 7, -31, 15, 60, -20, -50, 81, 28, -90, 29, -12, 12, -72, 62, 60, 42, 48, 12, 48, -22, -70, 13, 88, 84, 59, -87, 22, 46, 70, 53, -60, -53, 22, 8, -43, -80, -59, -12, -36, -60, -67, 23, 89, 74, -11, 27, -6, -50, -73, 29, -87, -51, 13}, + {-48, 10, 76, -28, 1, 86, -5, 7, -58, 66, -17, -30, -17, -4, 34, -67, 95, -62, -76, -40, 75, 69, 41, 2, -49, -20, -38, 62, 47, 63, 53, -3, 105, -25, 25, -36, 29, 36, -36, -31, 5, 72, -47, 6, 59, -38, 66, 31, 65, -60, 32, -66, 71, -15, -76, -90, 51, -53, 42, -19, 39, -47, -48, -53, -18, -22, -61, 2, -2, 73, -40, 63, 75, 2, -42, 2, 56, 52, -60, -97, 29, 70, 49, -20, -59, -11, -47, 6, -41, -4, 22, -73, 24, 11, 60, 14, 28, 46, 7, -27, 18, 83, 99, -15, -109, 27, -86, -21, 36, -72, -64, 6, 36, 39, -36, -13, -14, 54, -46, -26, -24, 26, 39, -17, 47, -85, 63, 27}, + {-81, -21, 29, 61, -95, -8, -47, 64, -10, 86, 69, -4, -61, -67, -50, 63, 58, -89, 8, 25, -79, 39, -13, 0, -5, -66, -9, -71, -77, 8, -67, 18, -45, 17, -19, 71, 29, 10, 65, -60, 16, 19, -2, -13, 2, -17, -8, 5, -61, -48, -56, -45, -66, -31, 81, 88, -33, -9, 71, 73, 74, -84, 62, 79, -6, 10, -9, -64, -19, 20, -31, -22, 1, -46, 83, 64, -59, -40, 49, -21, 79, 41, -60, -28, -3, -53, 90, 8, 59, 62, -12, -18, -62, 58, 16, -40, 65, -6, -27, -26, -64, 86, 74, -62, 46, 23, 2, -11, 69, -18, -21, -23, 90, 22, -47, -33, 14, -69, -85, -81, -86, 94, -25, 1, -82, -9, 11, 12}, + {35, 46, 36, 11, -54, -16, 55, 6, 67, 25, -13, -29, 95, -4, 89, 1, -47, -66, -59, -45, 66, 101, 7, -59, 3, -27, 91, -74, 1, 30, 37, 110, 54, 16, -4, -13, -57, -55, -67, 8, -35, 59, -63, -27, 57, -76, 20, -92, -11, -1, -11, 53, 17, 9, -96, -34, 32, 50, 83, 82, -52, -19, -28, -69, -7, -39, -35, 29, 41, -76, 74, -62, -50, -41, -45, 71, -83, -70, 72, -50, -47, -65, 74, 18, -68, 14, -91, 57, -33, -3, -25, 74, -95, -75, -16, -39, 89, 2, 96, 39, -38, 77, 15, -16, -65, -22, 99, 7, 90, -5, 50, 38, -13, 80, -65, -67, 32, 47, 13, -104, -26, -16, -3, -91, -25, -15, -8, -55}, + {52, -5, 22, 75, 39, 16, 47, 6, -28, -13, -58, 13, 72, -36, -13, 8, -39, -10, -11, 11, 51, -57, 46, -80, 11, 33, 2, -10, -44, 23, -1, -45, 43, 8, -38, -8, -10, 75, 59, 81, 37, 67, -86, 58, -86, -73, 0, 64, 78, -17, 30, -51, -66, 91, 88, 67, 49, -83, 79, -88, 5, -16, -28, 67, 37, -83, 73, 83, -10, 27, 58, -83, -13, -21, -39, -85, -20, 2, -12, 45, 74, -67, -24, -46, 68, 54, -8, -82, -13, 0, -91, -17, 53, 54, -60, 37, 76, -18, -9, 4, 16, -18, -45, -5, -48, 34, 65, 51, -43, 8, -2, -44, -14, 59, -85, 57, -33, -71, -67, -12, 28, 65, -78, 59, 15, -73, 57, 68}, + {-54, 86, 75, 53, -1, -83, -56, 53, -15, -47, 53, -60, -7, 15, -14, 59, 75, -74, 51, -74, 58, 29, 67, -86, 88, -49, 37, -76, -18, 50, 31, -58, 62, 77, 41, 87, 22, 27, 20, -50, 41, -59, 7, -48, 88, 89, 25, -51, 13, -66, 70, 16, -12, -62, 84, -70, -64, 87, 45, -85, 14, -73, -30, 50, 85, -27, -45, -27, -84, 91, -62, -21, -66, -33, -13, 46, 75, -3, 52, -33, 52, -82, -16, 37, -30, 10, -77, -11, -58, -54, 12, -36, 9, 1, -53, 10, 90, -80, -49, 17, 43, 55, 0, -78, -31, 2, 26, 46, -60, 75, 46, -37, 58, 15, -13, -33, 2, 16, 36, -45, -66, 61, 85, 18, -66, 85, 6, -2}, + {20, -14, -49, -36, 26, -35, -63, -60, 14, 19, -45, 91, -57, -1, 50, 0, 24, 58, -41, -15, 52, -34, 70, -78, 62, -3, -4, 26, -67, -37, 44, 8, 74, 58, -47, -22, -13, 84, 72, -43, 14, 44, 27, 90, -92, 56, -59, -67, 40, -81, 90, 35, 66, -68, 68, -66, 7, 77, 32, -4, -3, 35, -87, 31, -59, 66, 64, -77, 33, -47, -2, 15, -90, 38, 2, -7, 46, 79, -83, -66, 16, -58, -67, 57, -33, 73, 62, 15, 11, 42, -77, -71, -53, 90, 11, -37, 55, -37, -6, 75, 40, -30, -9, -78, -87, 89, 19, -22, 59, -90, -39, -76, -77, 40, -70, 25, 4, -25, 55, -45, -39, -34, 6, -16, 11, 86, 12, -34}, + {-20, 75, 45, -50, 48, 38, -76, 96, -52, 32, -85, -64, -10, -43, 1, -39, 21, -15, 67, 44, -47, 30, 13, 69, 62, 7, 3, 7, -21, -65, 62, 100, 96, -48, -67, -77, -37, 36, -6, -6, -56, -73, -27, 34, 12, -8, -25, -50, 94, -101, 89, -11, -68, -14, 57, -34, 57, -23, -97, -48, -64, 29, -80, 41, 55, -61, 28, -65, 44, -66, -66, -16, 6, 46, 18, 42, 42, 82, 62, 6, -57, 77, 54, -40, 53, -45, -20, -46, 11, 97, -77, 89, 23, -7, -85, -47, -76, -75, 0, -1, 42, -69, -2, 15, -92, -52, -32, 68, -55, -34, 11, -1, 82, 30, -4, -92, 44, 4, -53, 41, -7, -28, 50, -67, -96, -19, -28, 43}, + {58, -45, 52, 36, 75, 23, -7, -34, 37, 25, 11, -26, 59, 28, 57, -4, 43, 93, 21, -67, 79, 87, 22, -64, 63, -47, 92, -47, 32, -69, -37, 92, 41, 63, 24, -44, 25, 23, 82, 77, 22, 31, 78, 0, 37, -28, -9, 14, 13, -55, 16, 6, -7, -36, -27, -24, 38, -19, 12, -20, 22, -10, 44, -52, -35, 93, -48, 1, 107, -44, -28, 7, 73, 26, 67, 16, 9, 68, 3, -53, -94, -91, 93, -75, -63, 81, -3, 23, -56, -57, -6, -3, -80, -28, 19, -44, 63, 70, 97, -65, 41, -10, -33, 79, -73, 55, 79, -78, 21, 75, -58, -7, 56, 4, 27, 91, 98, 58, -75, -8, -14, 46, 81, 77, 49, -80, 32, -28}, + {-74, -4, 64, 21, 60, 93, -28, 35, 51, 12, -52, 50, -60, -55, -50, -30, -57, 14, -70, -79, 60, 36, 54, 14, -83, -114, 26, -65, 20, 53, -9, 87, 88, 16, 71, -49, 1, 14, -24, -97, -25, -103, 98, -18, -32, 45, 40, 44, 44, 41, -66, 17, -65, -31, -14, 58, 93, 6, 15, -85, 38, -99, -53, -55, 25, 42, 63, -24, 55, -39, 12, 44, -76, -77, 59, 11, -59, -29, -76, 39, 36, 46, 17, -46, -26, -30, -15, -8, -10, -32, 14, -29, 37, -5, -23, -86, 17, 78, 72, 0, -19, 85, 61, 81, -16, -89, -14, 18, 33, -42, 72, -87, -66, -28, 26, -30, 22, -53, -26, -113, 47, -2, 76, -64, -13, -17, 6, -84}, + {-54, 40, -81, 32, 12, 56, -74, 40, 77, 80, 12, 83, -15, 79, 74, 74, 93, 45, -69, 43, -48, -16, -35, -71, -45, 67, -45, 36, 91, 72, 66, 89, 40, 59, -70, -43, -66, 18, -23, -17, 81, -45, -10, 63, -63, -83, -32, 20, 9, -59, -37, 2, -64, 80, -69, -27, -67, -81, 7, 82, 69, -22, -51, -66, 52, -28, -30, -48, 91, -90, -82, 47, -13, -82, 28, 56, 22, 14, 9, -11, -33, 73, 57, 10, 39, 78, -80, 20, 47, 41, 47, -4, 20, 1, -71, -30, 1, 43, 13, 89, 44, -56, 80, 70, 54, -62, -44, -55, 57, -20, 51, 24, -68, -39, -29, 79, -17, 83, -28, 3, 51, -8, -25, -77, 56, -13, -50, -89}, + {25, 51, 91, -29, -43, -92, 72, 80, 33, 68, 3, 76, 92, -80, -31, -61, 7, 87, -68, 5, 29, 11, 32, -49, -13, -76, -83, 1, 36, 63, -35, 57, 5, -48, 74, -59, 75, 7, -5, -83, 59, 39, -93, -14, 4, -40, 16, -29, -44, 0, -35, -17, 39, -7, -68, 45, 74, -100, -18, 11, 14, 93, -78, 67, 31, -70, -83, 96, -25, 80, -79, 64, -34, 45, 57, -81, 46, -61, -18, 76, 72, 84, -34, 4, 40, -88, 56, 32, -78, -79, 73, -76, -42, -70, -66, -53, -67, -7, 9, 87, 29, -20, -8, 56, 53, -66, -67, -67, -29, 55, -32, -35, 59, 41, 46, 57, -67, 88, -24, -50, 33, -39, -57, 82, -38, 1, 91, -65}, + {51, -24, -10, -23, -10, 82, -20, 58, -50, -27, 36, 46, 39, -5, -6, -28, 84, -6, 45, -64, -69, 23, 37, 50, 39, 73, 14, 64, -23, 59, -73, -59, 10, -34, -66, 89, 11, 72, 36, 6, -17, 63, -62, 76, -85, -61, 15, 55, -63, 6, -31, 23, 90, -37, 28, -77, 57, -51, 40, -21, 57, 35, 47, -79, 31, -22, 34, 88, 51, 50, 37, -69, -82, -33, 47, -11, -83, -8, -58, -46, -54, -87, -72, 53, -38, -5, -82, -72, 48, 33, -68, 17, -87, 91, -61, -58, -73, 73, 89, 50, 22, 35, 58, 48, 28, -20, 70, -15, -90, -17, 61, 91, 16, 2, 64, 75, -74, 90, -1, -43, 82, 80, -43, -54, 52, 85, -66, 73}, + {28, 76, -61, 83, -70, 46, 79, 25, -20, 70, -42, -51, 50, 9, 56, 44, -64, -60, -71, -54, 38, 97, 66, 77, -48, 40, 16, -82, 80, 28, -80, -6, 111, 86, 27, 11, 85, -36, 0, -76, 20, -71, 19, 100, -56, 114, 54, -88, -66, 98, 29, -88, 45, -4, -14, 61, -18, -12, -86, -37, -84, -65, 50, -58, 43, 122, -68, 122, -12, -50, 54, 35, -35, -70, 21, 51, 77, 45, -40, -27, 4, 3, -23, 52, -55, 6, -46, -31, -43, -32, -51, -36, -79, -21, 12, 79, -15, 85, -11, -9, 86, 77, -45, 74, -16, 18, -67, -21, 26, -25, 26, -3, -11, -70, 74, -67, -2, 24, -45, -29, 34, 2, 29, -86, 78, -67, -74, 42}, + {93, -30, -41, -17, -75, -5, 35, 43, 80, -89, -12, -46, 30, 72, 50, 39, -53, -34, 28, -29, 87, -4, -65, 16, -3, -58, 71, 9, 15, -15, 71, 71, -7, -11, -63, -87, -10, 77, -10, -52, -43, -75, 51, -108, -78, 9, -56, 46, -55, -68, -97, -21, -41, -18, -36, -16, 3, -11, -52, -6, 8, -43, 10, 28, -72, 67, -50, 94, 41, -26, -65, 94, 49, 57, -21, 49, -1, -20, -61, 50, -24, -53, -21, 37, -39, -12, 37, -67, -66, -21, 46, -66, 89, 87, 19, 116, 9, 95, 89, 20, -27, 12, -34, 11, 35, -40, -90, -99, -51, -28, 26, -16, 9, -9, -16, 45, 82, -28, -92, 93, -16, 3, 26, -76, -11, -24, -41, 86}, + {29, 7, -12, 60, 41, 105, -4, 38, -77, 45, 51, 4, 41, -66, -27, 79, 31, -26, 66, -84, -58, 85, 10, -83, 32, -74, -15, -14, 32, 24, 76, 81, 15, 86, 74, 25, -30, 55, 2, -91, 48, 28, 38, 32, 66, 57, 2, 43, 7, -10, 16, 89, -2, -79, 15, 13, -12, -8, 7, 90, -46, 54, -89, 45, -6, 34, -13, -40, -25, -79, 90, 59, -32, -21, 20, 43, 13, -72, -44, -62, -93, -48, -48, -46, 89, 18, 60, -63, 43, 17, -53, -24, -54, 25, 57, 23, 29, -65, -22, -67, 2, -49, -69, -53, 87, -57, 33, -20, -28, -5, -32, 55, -88, 10, -27, 22, -8, 27, -8, 77, -47, -77, -27, -28, -49, -68, -43, -16}, + {-6, 71, -44, -79, -59, -50, 36, 7, -20, -44, 9, -14, 71, 46, -16, 52, 27, -87, 25, -44, -79, -15, -39, -15, -39, 71, -33, -7, -52, 27, 17, 63, -20, -84, 38, 62, -59, -76, 15, 57, -94, -17, 6, -13, -72, 69, -35, 58, -78, -88, 12, 70, -86, -79, -69, -20, -54, -59, -45, 57, 29, 6, -74, 51, 90, -60, 12, -77, -74, -88, -55, 40, 72, -15, 54, -44, 35, 79, 26, 23, 77, 72, 22, 76, 5, 10, 71, -88, -53, -54, -53, -54, 35, 56, -89, -89, 59, -68, 37, 37, 67, 60, -90, -19, 44, 78, 70, -4, -24, -48, -69, 53, -86, 90, -13, -25, -39, 3, -86, -55, -18, -86, 37, -14, -33, 79, -79, 15}, + {0, -43, 4, 44, 46, -47, 82, -30, -72, 19, 34, -73, 17, -79, -61, -19, -74, 7, 91, -31, 62, -10, -33, -29, -41, -24, 103, 48, 34, 14, 71, 32, 52, 70, -32, -84, -60, -22, -74, -80, -27, 40, -64, -56, 80, 28, -54, -16, 90, -28, 70, -39, 58, -24, 94, 35, 34, -39, 84, 39, 13, 69, -51, 55, 73, 61, 46, -5, -40, 1, -61, -31, -76, -74, -85, -41, 28, -36, -55, -77, 11, -45, -21, -69, 68, 40, -23, 33, 91, 18, 60, 61, -33, -42, 60, -76, 31, -71, 61, 75, 68, -29, -49, -74, -49, 17, 101, -11, 73, -1, -70, 26, -55, -27, 27, 46, -4, -7, 26, 38, 37, -64, -44, -9, 52, -29, 89, -7}, + {-60, 44, -77, 30, 10, 71, 18, 68, -37, -89, -27, 22, -48, 60, 77, -18, 72, -54, -4, -18, -29, -45, -59, -87, 21, -30, -95, -19, 0, -41, -33, 15, -41, -44, -7, 15, 9, -20, 73, 73, -10, -36, -89, 24, 51, -32, -20, 62, -94, 78, -12, -88, 54, 67, -35, -6, 19, -24, -89, 18, 13, -63, -19, -95, -26, -84, 36, 48, -82, 2, 12, -33, 67, 55, 24, -65, -72, 13, 81, -24, 77, -75, -71, 55, 35, 75, 47, 29, -86, -89, 19, -72, -85, -92, -7, 24, 37, -16, -25, -36, 51, 59, 66, 75, 52, 81, -57, -3, -6, 56, -57, 11, -81, 49, 4, 83, 64, -46, 21, -53, -68, 0, -54, -75, 36, -73, -75, -71}, + {-59, -56, -58, 12, -87, -38, -13, 85, 65, 58, -58, 16, -81, 84, 14, -42, -8, -58, 90, -11, -43, 78, 97, 90, 47, 23, -13, -14, -56, -16, 25, 16, -35, 87, 54, 83, 80, -42, 101, 80, -5, 102, 93, -6, -56, 26, -40, -76, -25, 94, -15, 65, -57, 76, -34, 33, 87, -98, 32, 42, 62, 58, -9, 83, 66, -74, -102, 44, 74, -26, 39, 59, 9, -15, 45, 39, 3, -3, 100, -34, -63, 89, -80, 56, -9, -82, 80, 28, -15, -26, 54, 22, 48, 23, -42, 20, 85, 75, 77, 61, 60, -47, -39, -45, -42, -43, 51, 15, -5, 22, -23, 95, 102, -76, 40, -40, 29, 107, 63, 19, 41, -16, -80, 20, 41, 51, 25, 68}, + {-37, 28, 87, -67, 48, -19, -92, 13, -59, -35, -20, -82, -81, -4, 80, 86, 40, 11, -42, -71, 24, 58, -32, -41, -85, 77, 43, -86, -69, -87, -55, 83, 22, 87, 71, 18, -43, -6, -63, -61, -18, -15, -16, -66, 14, -40, 20, 50, -51, -32, 67, -65, -79, 62, 44, -47, 36, -1, -66, -45, -89, -88, 44, 33, 20, 69, -7, 80, 50, -27, 37, -49, -83, -5, 29, -6, -54, -85, 7, 21, -11, 47, -66, -51, 36, 50, 47, 64, -47, 52, -58, 53, -46, -3, 87, -42, 83, 76, 16, 44, 39, -34, 55, 36, 11, -43, 67, 16, -66, 91, 14, 36, -9, -76, 78, 46, 70, 17, 30, -70, -90, -31, 60, 87, -59, -41, 16, 18}, + {84, 27, 50, -76, 56, 110, 11, 69, -79, -84, 120, -68, 75, -67, 83, 83, 84, -46, 87, -21, -69, -23, -49, -42, -69, -10, -17, 69, 28, 4, -42, 83, 58, -73, -65, -19, -44, 60, -86, 30, 40, 85, 16, 87, 24, -49, 79, -44, -17, -30, -28, 25, 7, -22, -24, 100, 92, -2, -36, 20, -81, -48, -39, -48, 65, 34, 58, -27, -71, 87, -57, 0, 70, -45, -33, 26, 84, -1, 74, -93, 36, -21, -14, -32, 84, 79, 21, 29, 14, -25, -41, -53, -12, -94, -79, 51, 38, 35, -13, -51, -14, 97, -68, 13, -27, 64, -7, 49, 30, -67, 55, -46, 66, -47, 44, -58, 1, 56, -68, -65, -8, 44, -46, 55, -83, -88, 75, -46}, + {-68, 13, 88, -54, 15, 12, -20, 57, 48, -53, -71, 1, 83, -9, 18, -20, 75, -58, 38, 43, -58, 87, 13, -90, 42, -23, 15, -70, -62, -2, 50, -98, 57, 58, 11, -1, -86, 83, 55, -21, 40, -18, -18, -2, 8, -50, 43, -1, -64, -88, 44, -84, -83, -55, -83, 43, 35, 85, -64, 50, 1, -88, 30, 69, -75, -15, -14, 40, -32, -18, -54, -60, 61, 20, 87, -50, -62, 53, -87, 83, 50, 5, 19, 77, -40, -70, -30, -71, -34, -63, 77, 80, 27, -40, 60, 51, 86, 39, -18, 45, 33, 8, 1, -89, -57, -16, -51, -50, 9, 0, 12, -14, -74, 59, 65, -32, -69, -93, 54, -43, -91, -91, 1, -9, -71, -24, 25, -59}, + {19, 81, -32, 28, 68, 14, -37, -10, 13, -47, -31, 16, -89, 55, -68, -45, 36, 55, -27, 32, 36, 34, -31, -1, -28, -31, 65, -67, 18, 89, -10, -6, 74, 73, 63, -47, -7, -79, -36, -9, 70, 26, -24, -27, 62, -73, 5, 34, 104, 26, -45, -42, -52, 79, 5, -21, -9, 30, -74, -64, -54, 51, -14, 10, -47, -6, 31, 72, 30, 18, -51, 59, 72, 58, 6, 47, 75, 32, 64, -46, -26, -17, -78, -33, 65, 18, -10, -94, -55, 34, 4, 13, -61, -50, 69, 23, -39, -12, 13, -68, -16, 19, 23, 4, -1, -74, -19, -50, -20, -86, -36, 78, -52, -37, -83, -69, 71, 1, -23, -79, 19, 84, 44, 85, -22, -14, -64, 70}, + {16, 37, 71, 72, 50, 24, 15, 65, 29, -62, 36, 57, 32, -21, -33, -75, -2, 3, -76, 47, 62, 88, -18, -52, 33, 89, 81, -52, 86, 61, -67, 19, -75, 10, 88, -80, -8, 25, 22, 56, -74, -66, 10, -48, -85, 18, 102, 39, -65, -28, -79, 23, 83, -31, -59, 67, 47, -18, -17, 70, -53, -42, -109, 77, 68, -55, -35, -127, 81, 28, -76, 86, -31, 80, 103, 81, -71, 49, 22, 82, 36, 81, 28, 107, 94, -3, -31, -31, -66, 88, 75, 40, 85, -10, -59, -68, 14, -18, -60, -9, -86, -15, 30, -12, -39, -33, 65, 48, 11, -48, 40, -36, 62, -21, -48, 25, -2, -29, -62, -2, 95, 15, -30, 39, 56, 0, -31, -88}, + {36, 4, -71, 1, -44, 4, 7, 20, 17, -88, 2, 32, -89, -59, 74, 47, 20, -62, 23, -88, -65, -27, 69, -59, 51, -49, 48, 24, -82, 79, 44, -37, -46, -5, 19, -11, 86, -17, -87, 4, -67, 17, -40, 106, -75, 81, -73, -46, -18, -53, 21, 49, -9, -23, 41, 90, 91, -65, -14, -18, -49, -83, -109, -37, 54, 108, -50, 16, -4, 51, -17, -50, -82, -66, -3, 47, 15, 55, -39, 30, 68, -72, 71, 81, 63, -33, -1, -58, 18, 71, -15, -38, -56, -11, 14, -79, -30, 10, 62, -79, 70, -53, 7, -47, 40, -87, -4, 94, -75, 15, 26, 78, -48, 75, 55, 62, -78, -5, 49, -122, -32, -61, 59, 37, -54, 61, -73, 46}, + {3, 27, -59, 23, 79, -41, 58, -23, 0, 66, -74, 58, 7, -19, 62, -28, -40, -82, 37, 1, -32, 50, 75, -40, -14, -22, 31, 71, -62, 88, -79, -8, 81, 55, -57, -8, -85, -84, 39, 62, -84, -46, -63, 7, 75, 71, 59, -28, 98, -67, -24, 91, 53, -82, 51, -13, -13, 62, -54, -65, 81, 51, 28, -45, 32, -77, 83, -38, 15, -16, -62, -4, -61, -53, 24, 84, -11, -9, -36, 6, 40, 65, -64, -54, 78, 9, 85, -14, 56, -40, -10, 81, 60, -42, 15, -63, 29, 89, -81, 44, 19, -9, -51, 46, 2, -4, 83, 32, 85, 66, 48, 33, 63, -5, 64, -12, -92, 38, 4, 30, 51, -64, 26, 84, -63, 30, -39, -76}, + {-33, -59, 77, 49, 22, -62, -3, 59, -40, 65, -82, -8, 26, 1, 35, 76, 87, 77, -16, 35, 17, -39, -61, 71, 33, -23, 73, 89, -4, -49, 75, 12, -29, 8, -64, 0, 27, 53, 31, -73, -65, -16, -38, 36, -52, 82, 20, -23, 75, 10, -9, 6, -76, 64, 67, -6, 5, -70, 30, -25, 1, 52, 21, 14, -64, -90, -20, 91, -82, 58, -35, -47, -42, -12, -48, 34, -6, 65, 92, 70, -70, -88, -17, 62, -17, 52, 32, 41, -38, 54, 15, 4, 35, -90, -75, 9, -22, 36, -68, -67, 63, 61, 61, -50, -14, 78, -81, 35, -93, -10, -92, -6, -61, 76, -63, -19, 71, -28, -28, 12, 9, 21, 2, -71, 69, 44, 36, 4}, + {69, 32, -5, -21, -74, 36, 33, 70, -42, -32, -50, -62, 47, -36, -34, -47, 58, -65, 17, -35, -69, -62, -31, -23, -64, -79, -54, 82, 78, 46, 23, 74, -89, 59, 75, 44, 87, -71, 16, -85, -64, -71, -18, -19, -60, 65, -29, 22, 3, 96, -56, -11, -7, -36, -68, 111, 39, -50, 10, 24, 8, 31, 17, 4, -41, -69, 93, -36, -78, 63, 37, -69, -22, -70, -47, 34, 9, -87, -8, 16, 32, 88, 83, -61, -6, -25, 22, 4, 71, -35, 56, -41, 14, -19, -51, -9, -15, -62, -34, -67, -35, 41, 97, -88, 46, -11, 17, -65, 32, 101, 105, 5, -72, 16, 1, -76, 89, -72, 40, -61, -73, -85, -51, 28, 4, -58, 4, -63}, + {11, 79, -56, -95, 48, 76, 72, -40, 42, 83, 78, 69, 51, 71, -19, -85, 82, 82, 21, 67, 49, -43, -2, -7, -78, 68, -19, -68, 36, 54, 48, 69, -72, 67, 26, -9, 37, -15, 2, -7, 69, 49, -53, -36, -33, 76, 26, -22, -75, -52, 40, 43, 45, 0, 14, 93, 86, 44, 13, 31, 2, 84, -1, 48, -73, -33, -77, -103, -8, -88, 2, -60, -16, 39, -60, -5, -72, -31, -30, 30, 10, 78, -78, 49, 3, -14, -49, 87, -48, 65, 71, 7, 23, 73, -81, -82, -33, -91, -67, -27, 21, -67, -75, 59, -4, -42, 76, 68, -14, 18, 71, 9, 14, 68, -3, 84, -56, 49, -56, -49, 82, -86, -83, 53, 82, -4, 40, -87}, + {46, -42, -41, -1, -23, -19, -69, 18, 83, 42, -98, 60, -63, 78, -35, -72, 24, -89, 29, 55, -56, -57, 12, -64, -51, 68, 85, -13, -21, 31, 77, -23, -4, 63, -56, -6, -50, 10, -54, -17, -48, 9, 8, -27, -13, -63, 62, -88, -46, -47, -64, 11, 9, 36, 43, 6, 77, -8, -53, -38, -37, 9, 24, 60, 34, 22, 1, 86, 2, -22, 86, 13, 1, -1, -83, 77, -58, 51, 20, 53, 12, -6, 17, 50, -58, -13, -59, -10, 27, 34, 11, 65, 54, -55, 82, -14, -83, -8, -8, -24, -60, -12, -7, -57, 79, 60, 12, 97, -16, -61, -52, 89, -74, -19, -48, -11, 83, 68, -30, 36, -87, 79, 14, 70, -50, -90, -84, 79}, + {-54, 12, -20, 101, -1, -72, 21, 11, -66, 7, -93, -56, 6, 85, -24, -37, 76, 38, -85, -20, 60, -60, -25, -43, 68, 38, 89, -63, 104, -44, -80, 10, 28, 21, -28, 65, 71, -64, 62, -71, 17, -5, 47, 22, 14, 47, -45, 87, 5, -22, 68, -52, 77, -13, 12, 57, 56, 45, 45, 76, 38, 75, -26, -9, 37, 66, 32, 1, 10, -6, -26, 100, -23, 26, 58, -13, 66, -73, -72, 15, -77, -54, 101, 48, 44, -65, -4, -74, -66, -73, -10, -45, -61, 55, 26, -10, 9, 29, 13, -31, 85, 83, 17, 32, 49, -23, 95, 21, -40, 69, -120, 50, -51, -2, 87, -98, -16, -79, 57, 14, 57, -21, -87, 29, -58, 63, 19, -7}, + {5, -6, -7, -54, 74, -88, 60, -73, -59, -49, -73, -21, 83, 80, -23, -64, -54, -10, -40, 81, -38, 72, 14, 7, -45, -89, 23, -56, -89, 59, 5, -60, -29, -64, -60, 71, 32, 63, -73, 60, 63, -86, 15, -69, -16, -12, 37, -12, 66, -42, -50, 30, -60, -83, -2, 11, -89, -72, -35, 23, -87, 91, 43, 80, -26, 7, 65, -5, -15, -12, -50, 31, 22, -16, -60, -73, -39, 63, -49, 0, 48, 62, -64, -22, -46, 50, -47, 70, 59, -7, -4, 47, -72, 43, -17, -12, -88, 11, 22, 38, 40, -57, -27, 55, 15, 20, 20, -54, -59, -16, -4, -71, -35, -92, -74, 55, 52, -9, 51, -20, -70, -65, -21, 55, -26, -50, 50, -17}, + {-3, 81, 59, 89, 84, 66, 78, -4, -22, 74, 17, -34, 68, 75, -2, 37, -72, 87, 70, 83, 44, -27, -18, 107, -13, 50, -9, 75, -34, -33, -27, 35, -36, -48, -74, 37, 95, -46, 95, -21, 78, 17, -33, -35, -62, -5, 56, 21, 65, 106, 60, 18, 96, 90, -55, -71, -32, -56, 59, 76, 54, 100, -53, -76, -37, -75, 89, 32, 67, -53, -46, -10, 100, 52, 41, 10, 29, 6, 78, 60, 66, -60, -40, 25, -80, -46, 77, -65, 9, 61, 53, -36, 56, -85, 88, -35, 29, -15, -43, 10, 71, 20, -66, 31, -54, -51, 17, -20, 48, -14, -25, -85, -68, 60, 32, -16, -34, 85, -79, 89, -38, -67, 79, 60, -57, -14, -36, -39}, + {-76, -83, 12, -7, 81, -86, -68, 17, 52, -17, -90, 70, 83, 23, -12, 79, 80, 8, 79, 83, 20, -89, 73, -59, 19, 77, 40, -13, -35, 91, -38, -24, -22, 25, 77, 53, -11, -25, -59, 85, 3, 58, -77, 27, -81, 28, 24, -20, 33, 87, -44, 74, -3, -32, -5, 67, 38, -79, 21, 63, -56, 31, 72, -11, -84, 34, -9, 6, 71, 59, 68, -88, 7, 29, 15, 31, -49, -8, -15, -82, 75, -45, 55, 31, 69, 45, 63, -64, -29, -1, -26, 23, -51, 45, -60, 45, -57, -27, -69, 11, 28, -73, -76, -66, -35, -72, -51, 14, 86, 21, 0, 68, -76, 84, -2, -51, -34, 43, -37, 54, -72, 92, 46, 32, -68, -49, -14, -76}, + {-5, -13, 63, 34, 6, 1, -57, 92, -78, -53, -46, -48, -17, 79, -3, -68, 0, 27, -27, -2, -44, 44, 79, 80, 37, 37, -73, -63, 60, -26, -38, -42, 5, -88, 80, 10, 56, 71, -85, 67, 70, 39, 13, -74, 52, -76, 21, 28, -22, -35, -76, 65, 33, -67, -9, 7, -47, -47, 71, -10, 28, 26, 41, -84, -51, 49, 20, -59, 4, -81, 29, 35, -40, -4, 64, -66, 46, 78, -7, -52, -88, 82, -8, 29, 5, -34, -33, 54, -68, -85, 34, 36, -28, 29, 25, 74, -33, -81, -74, 5, -71, 2, 46, 66, -34, 25, 1, -48, 27, 8, -89, 86, -73, -40, -86, -17, -10, 13, -47, -7, -50, -3, 35, 87, -12, -20, -30, -63}, + {65, -72, -11, -71, -37, 34, -66, 3, -83, 40, 9, 28, 9, -45, 38, -25, -49, -67, 70, 36, -21, 55, 38, 34, -12, -10, -19, 36, 70, -74, 2, 13, -66, -56, -79, 43, 11, 58, 20, 17, 51, -36, -82, 79, 90, -54, 66, -74, 49, -81, 37, -5, 40, -28, 81, -39, -18, -56, 53, 3, 58, -4, -77, -20, -13, 9, -86, -65, 8, 37, 53, 51, 42, -4, 59, -30, 85, -64, 35, 34, 6, -18, -58, 8, 15, -47, -50, -42, -89, -24, 67, -81, -73, -91, -91, -63, -75, -23, 68, -34, 87, -71, 28, 40, 24, -80, 30, 28, -24, -67, -17, -38, 53, 78, 64, -12, -16, 25, 42, 86, -19, 42, -25, -5, -66, -39, 51, 82}, + {-62, -36, 36, -99, 38, 50, 86, 93, 41, -16, 61, 25, 74, -46, 26, -88, 30, 6, 29, 29, 62, -57, 73, 62, -5, -76, -13, 5, -52, -57, 7, 6, -26, -90, 23, -9, 27, 2, 77, 30, -44, -83, -85, 90, 26, -35, 81, -58, -17, -60, 22, 19, -50, -75, 29, -7, 3, -53, -70, 90, -97, 18, 16, 15, -14, 34, -76, 84, 83, 6, 5, -81, 42, -80, 51, 36, -40, -2, 13, 22, 60, 33, -23, 83, 9, -30, -11, 13, -93, 68, -95, 37, 51, 82, -28, -90, 28, -84, -69, 53, 80, -39, 81, 75, 17, -4, -16, -8, 78, -78, 43, 82, 52, -33, -18, -12, -59, 13, -18, 53, 51, -70, 58, 24, -57, -32, 84, 44}, + {35, -82, -89, -10, 11, 30, 2, 73, -70, -13, 27, -60, 57, -9, 20, -69, -27, 55, 57, 64, 4, -59, 42, 72, -77, -47, 57, 67, -56, 52, -47, -48, -77, -11, -45, -54, -11, -75, 57, -45, -103, -72, -10, 47, 41, -46, 73, -80, 83, -12, 42, 39, -39, 37, -31, -39, 78, -84, 53, 58, -70, 67, -18, -27, 48, 21, 82, 2, 89, 63, -52, -64, -45, -66, 91, 2, 19, -79, -41, -38, -77, -43, -12, -40, 32, -54, 23, -26, -74, 1, -90, -28, 63, 56, -14, -27, 17, 9, 36, 38, -18, 84, 56, 24, -22, 77, -4, 41, 7, -90, 52, 73, -21, -73, -42, -72, 13, 72, -95, -33, -35, -76, 37, 71, 79, 59, 24, -82}, + {-45, 54, 32, -80, 16, -2, 95, -44, 57, 17, 50, -74, -74, -16, 67, 24, 58, 104, 95, 15, 81, 50, 0, 47, 61, -69, -27, 54, -50, 15, 89, 41, -8, -55, 90, -3, 41, -65, 84, -63, -69, 28, 93, -14, 81, -54, 18, -37, 100, -22, 9, 21, 29, 57, 56, -24, -67, -76, 60, -27, -57, 31, 28, 97, -28, -45, -28, 23, 92, -41, -41, 5, 21, 82, -61, -12, 56, -60, -31, 59, -36, -63, -33, -35, -47, 65, 89, -7, -72, -79, 19, -63, 49, 21, 67, 64, -50, -1, -34, -52, -15, 1, -68, -77, -84, -62, 4, -92, 80, 93, -41, 47, 11, -69, -3, 76, 36, 44, 39, 16, 15, 76, 83, 53, -18, 37, -50, -46}, + {30, 106, -28, 3, -3, 109, 43, -36, 62, -21, 67, 27, 94, -60, -31, 6, 22, 11, -23, -80, 56, -39, 50, -57, 71, -66, -28, -76, -55, 32, 8, 4, -9, -75, -25, 66, 83, 61, -4, -38, 46, -15, 30, 59, -74, 20, -76, 63, -55, 19, -58, 89, -62, 30, 90, 85, 108, 87, -80, -47, 62, 34, -56, 14, -1, -46, 48, -62, -5, -84, -3, -23, 85, 53, 9, 38, 54, -47, 57, 53, -75, 15, 79, -4, -67, -26, 63, -80, -89, 59, 5, -51, 55, 77, 3, -68, 19, -3, -59, 11, -64, -40, -41, -23, -24, -65, 103, 65, 36, 9, 61, -86, 24, -10, 101, -24, 14, 12, 73, 73, -13, -50, 84, 9, -18, -41, -72, 28}, + {90, 39, -25, 8, 41, -66, 29, -20, 5, 23, -43, 0, 17, -67, -54, -9, -52, -27, -29, -15, 41, -72, -79, -15, 79, -75, 21, 3, 62, -53, 15, -74, -34, 3, 53, 105, 42, 28, -19, -12, 19, 68, 77, -12, 8, -39, -9, 33, 62, 61, 38, 3, 81, -2, -29, 39, -71, 62, -57, 29, 60, 98, -42, 15, 45, -14, -37, 37, -87, 62, -75, -72, -62, -16, 36, 43, 50, -24, 9, 83, 86, 42, -23, 50, -6, -46, 39, 43, -6, 28, 16, 36, -35, 54, 77, -2, 55, 27, 23, 51, 31, -55, 46, -37, 49, -3, 51, 36, -11, -64, 65, 29, -74, 43, -72, 73, 11, 23, -96, -48, 99, 21, -9, 83, -51, -48, -58, -59}, + {16, -46, -82, 31, 62, -59, 46, 80, 39, -90, -77, -57, -57, 43, 63, 17, 79, 47, 63, 9, 69, -53, -37, -96, -87, -63, 107, 48, 12, 14, 70, -46, -15, 37, 10, -8, 70, 79, 20, 83, 61, 78, 83, 89, -89, 67, -28, -66, 82, 57, 108, -27, 60, 33, -87, 89, -2, 87, 33, 65, 42, 55, 25, -90, 100, 1, 0, -27, 6, 75, 37, -41, -98, 73, -10, 4, -5, -20, -76, 64, -83, 73, -66, 47, -5, 83, -53, -42, -4, 118, -44, -36, 16, -51, -1, 24, 35, -40, 54, -66, 39, -63, 18, -5, -42, -60, 52, 18, -56, -29, 37, 64, 75, -21, 58, 0, -36, -23, 37, 38, -101, 20, 85, -83, 0, -88, -13, -64}, + {10, 32, -74, 62, 67, 46, -21, -40, -33, -29, 85, -45, -65, 40, 42, -1, -36, -20, -5, 90, -15, 51, 14, 22, 26, 84, 70, 75, -70, 61, 15, -55, -70, -14, -80, -88, 13, 54, 21, -17, -54, 15, -29, 30, 71, 89, 81, -66, -51, 26, -74, -89, 64, -90, -2, -80, 15, 26, -5, -35, 86, 30, -53, 52, 20, -62, 75, -74, 11, -1, -52, -83, 41, -2, 47, -7, 63, -86, 11, 1, -88, 20, 77, -32, -18, -70, -41, -70, -72, -13, 53, -2, -4, 38, -5, -48, 92, -84, -17, 72, 45, -21, 23, 78, -23, 51, 2, 71, -44, 4, 69, -13, -60, 84, -54, 56, 1, -14, 14, 45, 44, -55, -37, 86, -73, 18, -91, -53}, + {-37, -1, -20, -30, -16, -35, -67, 33, -12, 44, -35, -73, 21, -89, 25, 67, 41, -9, 75, 38, 4, -24, 73, -76, -27, -92, 76, -21, -66, -29, 1, 79, 0, 88, 30, 93, 29, 34, -73, 28, -43, -35, -83, -16, -61, 38, 43, 56, 75, -45, 62, 73, -10, -29, 50, -32, -63, -40, 24, -54, 62, 65, -80, 87, 59, -34, -77, -26, 87, 24, 51, 28, -8, -27, 94, -70, -61, 78, -42, 9, 18, 24, -62, 7, -91, -3, -26, -19, -28, 2, 67, -51, -77, -65, 67, -28, 27, -39, -73, 55, 48, -64, 59, 29, 88, -39, -90, 68, -72, -40, 49, 12, 58, 69, 69, -24, 63, 93, -58, 87, -34, -1, 97, -12, 65, -42, -16, -35}, + {-63, -38, 84, 66, -17, 92, 99, -41, -40, -27, -13, -38, -105, 0, -43, 112, -26, 13, -59, -81, 42, -51, 72, -69, 79, 88, 64, -70, -56, 53, 43, -35, -3, -85, 72, -7, -39, 91, 39, -62, -98, -88, -51, 53, -36, 18, 81, -10, 84, -50, -45, 9, -40, -8, -65, -47, -23, 61, 7, -11, 14, -83, 5, -83, -26, 59, -3, 95, -5, -8, 35, -29, -62, -69, -46, 12, -89, 83, -12, 74, -55, 9, 24, 77, 0, 22, 1, 5, 70, -19, 86, 26, -23, 46, 8, 4, 24, 39, 21, -1, 28, 25, -80, 32, 61, -5, -32, -79, -74, -97, 39, 35, 16, -37, -25, 85, 69, -30, 50, 81, -70, -50, 31, -43, 40, -16, 36, -52}, + {-60, -51, 9, 31, 84, -6, 42, 83, -92, -98, -68, -58, -52, -68, 12, -33, 69, -78, 7, 40, 23, -8, -31, -26, -74, 74, 77, 88, 70, 62, -22, -39, -27, -21, -100, -36, -39, -18, -69, -15, 80, 62, 62, -6, 54, -55, 48, 43, 47, 41, -54, 33, 83, -8, -17, 31, 43, 31, 14, -71, 47, 9, -78, -44, -18, 7, -3, -90, 78, -47, 51, 15, 52, 79, 70, -69, -66, -99, 39, 70, -60, -90, -79, -26, -78, -1, 10, -56, -55, 73, -90, 42, -46, 33, -87, -18, -24, -45, 90, 21, 74, 22, -21, -28, -83, -16, 38, 21, -52, -3, -6, 22, -59, 70, -17, -9, 81, 14, -16, 21, -6, 1, -19, -87, -52, -87, -54, 57}, + {-33, -38, 106, 33, 36, 42, 96, 0, 74, -44, -71, -10, 7, 67, 1, 65, 31, 10, -32, -6, 66, 94, 1, -3, -55, -9, -41, -47, 98, -49, -1, 34, 95, 68, -42, -20, 49, 28, -58, -21, -44, -68, -49, -54, 56, 91, 27, 52, -35, -26, 71, -52, -14, -2, 22, 115, 45, -11, -43, -72, 47, -59, -62, -26, -18, 84, 4, 64, -62, 49, -45, 42, -50, -83, 79, 74, -27, 51, 12, 5, 66, -18, 86, -25, 22, 14, 0, -88, -6, 76, 51, 5, -83, -65, 82, 67, -8, 35, -36, -78, 65, 80, 0, 80, 8, -57, 34, 82, 105, 107, 68, 107, 107, -38, 56, -34, -66, -20, 18, -6, 37, 15, -40, 74, 4, -19, 85, 68}, + {-45, -36, -74, -78, 71, 14, 53, -53, 91, -87, -3, -21, -89, 23, 4, 27, -5, -40, -43, 66, 37, 34, 25, -24, 83, 67, -11, 59, 29, 20, -59, -83, -18, -62, 22, 82, -15, -9, 30, 23, 80, 75, 4, 30, 87, -59, -32, 70, -64, 11, 71, -46, 38, 35, -76, 57, 10, -52, -78, 8, -37, -30, 83, 86, -85, 76, -41, -25, -73, -77, 21, -69, 21, 61, 46, -79, 76, 75, 59, 73, 13, -56, 7, 35, 44, 76, -62, 67, 41, 53, -35, -90, -28, 52, 83, 87, 45, 46, 82, 41, 40, 51, -71, -10, -25, -53, -76, -28, 83, -60, -27, -81, -54, -53, -36, 83, -44, 62, -74, 77, -4, -18, -87, 65, 42, 5, -91, -35}, + {52, -47, 6, 31, -28, 58, -11, 24, -25, 54, 44, 19, -24, -35, 21, -23, 28, 47, -79, 61, 93, -36, 5, 1, 84, 38, -68, -9, -24, 54, 42, 66, 26, -75, 57, -60, -34, 49, 88, -27, 46, -77, 14, 76, 89, -3, -46, 74, 11, 26, 98, -17, 27, -39, -76, -77, 18, 87, 32, -76, 19, 19, -79, 45, 48, -27, -17, -23, -2, 49, 79, -6, -95, -44, 46, 5, 37, -56, 18, -8, -33, 77, 69, -28, -104, 88, -88, 12, -45, 90, 83, -62, -98, -58, 18, -90, -86, -31, 38, 58, 36, -58, -95, 53, -86, -61, -5, -55, 49, 58, -54, 78, -81, 29, -36, -7, 90, -29, 1, -23, -23, -65, 97, -69, -35, -69, -11, -78}, + {61, -67, -2, -17, 55, -1, 19, -56, 85, -25, -48, -68, -20, 46, 18, 87, 51, -40, 27, -48, -15, 40, 83, 29, 1, 33, 51, 26, -27, 5, 76, 80, -27, -59, -50, 55, -68, -37, -81, 8, 87, 78, -50, -37, -34, -36, 11, -2, -69, -71, -77, 29, 2, -63, -69, 32, -83, 38, -10, 32, 76, 2, -32, 89, -57, -32, -32, 62, -34, -91, 77, 22, 57, 51, 50, -27, -12, 46, -30, -75, -73, 77, 56, 78, -87, 19, -25, 49, -81, -40, -36, 69, 59, 34, -71, -42, 54, -88, -16, -30, -14, 74, 78, -87, 6, 5, 8, -54, 65, 74, 34, 70, 83, -54, -80, -69, 62, 12, -42, 65, -15, -2, 11, -36, -29, -71, -85, 14}, + {-15, 74, 24, -17, -63, -77, 5, -36, 86, -54, -91, -76, 49, 60, -5, -14, -57, -5, 70, 30, -52, -9, 17, -91, 80, 78, 43, -58, -15, 33, -65, -63, -92, 51, 1, 60, -28, -15, 64, 77, 29, -70, 85, 18, 18, -32, 14, -71, 81, 33, 76, 19, -18, -39, -76, -70, -86, -43, 9, -19, -35, -13, 83, 13, -27, -85, -38, 22, 3, 85, -87, -36, -66, -17, 32, -77, 25, -5, 34, 70, -58, 59, -70, 63, 38, -79, 69, -70, -75, 61, 80, -49, 13, -8, -37, -52, 91, 76, -73, -3, -2, -11, -7, 38, -4, 75, 2, 32, -59, 67, 63, -81, -27, -64, 80, -42, 59, -16, 50, -11, 79, 3, -59, 32, 56, 2, 9, 65}, + {-14, -10, 23, -56, -45, 2, 10, 48, -27, 53, -48, 45, 5, -65, 6, 80, -36, 64, 76, -8, -85, 73, 66, 59, -76, 73, -39, 62, 3, -54, 2, 43, 35, -43, -16, -38, -91, 49, 76, -83, 63, 43, -5, -1, -82, 55, -59, -82, -88, 88, 22, -21, -76, -68, -35, 63, -40, 44, 51, -48, -56, 3, 25, -65, -22, -88, 70, 33, -12, -19, 28, 33, 71, 82, 45, 20, 38, -57, -68, 3, 59, -44, -32, -36, -89, 42, -4, 55, 76, -27, -29, 42, -34, -65, -11, -13, -9, 26, -21, -39, 58, -86, -1, -17, -63, 72, 41, 52, 38, 29, 16, -4, 29, 33, 9, 70, -88, 24, 80, -8, -45, 32, -45, -57, -16, 66, -17, -73}, + {-9, -78, -38, 44, 67, -34, 68, -31, -14, 36, -71, -46, -36, 18, 32, -84, -85, -6, 88, 52, 26, 73, -39, -66, -74, -89, 59, -41, -74, 24, 45, -40, 1, -43, 69, -55, -56, -88, 83, -91, 19, -64, 36, 53, -3, 40, 58, -49, 88, -18, -81, -31, -11, 42, 68, 73, 93, -21, 78, -62, 40, 40, 37, -80, -26, 21, -45, -28, -52, -64, 80, -28, -79, -33, -78, 69, -88, -81, -83, -2, -51, -8, -10, -5, -64, 9, -60, -71, 19, -37, -78, -73, 32, 62, 22, 90, -79, -77, 81, 24, -2, -90, 25, 4, -53, 37, 83, 23, -36, 5, -70, -21, 0, -87, 45, 50, 44, -52, -77, -33, -11, -61, -68, -11, 43, 10, 85, 31}, + {1, 103, 58, 4, 38, 38, -65, 53, 39, 4, -3, -33, 32, 89, 62, 0, 66, 9, -49, 16, 24, 53, -29, -38, 36, -16, 8, -23, -41, 62, 106, -17, 58, -76, -66, -31, -44, 20, 94, -78, 10, -42, -82, 59, -46, 21, 8, 105, -75, -89, -5, 46, -20, 30, 31, 52, -45, -39, 88, -64, -38, 8, -46, 36, 89, -13, 87, -72, 32, 79, -54, 62, -41, -25, -13, 39, 52, 3, 17, 18, -39, 18, 68, 86, -68, 73, 87, -51, -42, -38, 74, -2, 79, 71, 88, 42, -81, 0, 74, -85, 36, -5, -38, 52, -44, -22, -30, -78, -36, 7, -103, -29, 4, -13, 45, 81, 82, -51, -88, 95, 59, -47, -1, -55, 50, -79, 8, 49}, + {-26, -6, 3, 1, 97, -60, -63, -22, 3, -48, -5, 56, 47, -74, -7, -49, 66, 25, 85, 32, -21, 40, -6, 64, 5, -91, -1, 45, -34, -69, -54, -74, 7, 70, 87, 99, -69, 44, -11, 64, 57, -30, -9, 13, -14, -61, 95, -52, 42, 45, -49, 37, 53, 85, 4, 44, 32, -66, 75, -18, 30, 31, 45, 19, 3, 79, -17, 0, -2, 13, 72, 44, 36, -12, -78, -82, 12, 88, 26, -56, 57, 19, -79, 64, 88, -90, 71, 29, -83, 71, 83, 4, -25, -2, 94, -46, -39, 97, -29, -95, -32, 33, -76, -56, 51, -37, -28, 33, -55, -53, 50, -70, -43, 15, 73, 18, -61, -25, -9, -42, -20, 65, -37, 42, -40, -47, -57, -76}, + {17, 17, 91, 15, -45, -67, -24, -30, -87, -49, -81, -44, -83, 82, 22, -41, 72, 23, 20, -48, -43, 66, 65, -45, -86, -79, 83, 38, 83, -15, 3, -87, -47, 10, -36, -64, 57, 77, 70, 79, 61, -25, -7, -20, 1, -77, 68, 12, -59, 72, -76, -75, 62, -41, 14, -17, -29, -90, 8, -46, 56, -71, 39, -46, 69, -53, -49, 40, -69, -86, -60, 39, 90, -80, 13, -87, -69, 39, 6, 89, 17, -86, -17, 32, 60, 24, 50, -68, -50, -12, 81, -42, 7, -68, -4, -73, -45, 1, -75, -91, -37, -41, -44, -19, -84, -74, -42, -54, -34, 50, 19, -21, 20, -73, -24, -40, 26, 3, -35, 75, -58, 63, 47, -43, -19, 73, 50, -88}, + {45, 81, -68, 90, 93, 24, 30, 55, -19, -78, -3, -23, -61, -70, -91, -99, -57, 1, -9, -33, 61, -86, 70, -38, 80, 74, -73, 74, -47, 54, 97, -50, -36, 27, 2, 94, 8, -9, 95, 21, 70, 48, -96, -73, 53, -56, -58, -79, 79, -30, 77, 37, 35, 62, -4, 45, -40, 41, 103, 24, -50, -25, -38, 3, 12, -1, -18, 69, -77, -28, 53, 22, -44, 63, -56, 65, -17, -12, 77, 71, 73, -25, 76, 61, -26, 78, 94, -38, -37, 52, -10, 71, 90, 48, -20, 25, -42, 87, -40, -9, 81, 53, 89, -69, 23, 89, -75, 46, -78, 31, -13, 52, 53, -60, -63, 48, 78, -47, -8, 10, 65, 95, 2, -2, 58, -63, -94, -21}, + {41, -44, -10, 42, 73, 68, -52, 22, 78, 32, -64, 48, 35, -19, 39, 19, 21, -23, -71, -60, -79, 29, 41, -41, 49, -3, 34, -25, -52, -47, -85, -63, 67, -7, 34, -59, -70, -37, -36, -84, 43, -87, -51, -1, 73, -15, 17, -47, -74, -75, 60, 64, 56, 56, -14, -4, -5, -63, -78, 78, 87, 41, -42, 17, 3, 34, -39, 58, 38, 44, 8, 74, 77, 60, 27, -29, 2, -46, 22, 28, 73, 13, -58, -91, 54, 28, -46, -72, 0, -60, 19, -13, -17, 58, 54, -51, 88, 88, -55, -24, -66, -62, 13, 37, -77, -90, -73, -36, 72, -18, -40, -52, -20, 16, -70, 61, -72, -7, 70, -72, -3, -65, -18, 48, 54, -77, 48, -89}, + {-46, -6, 18, -62, 70, 95, 54, 22, -70, -1, -22, -20, -83, -4, -42, 38, -4, 8, -62, 4, -100, -16, -26, 33, 31, -64, 50, 93, 26, -22, -34, 103, 7, -62, 3, -23, 77, -2, 57, -46, -39, 59, 110, 103, -73, -22, -22, -46, 60, -94, 14, 83, 63, -97, 24, 97, -61, 3, 40, 29, 44, -97, -48, -56, -48, -23, -52, 54, 87, -85, -98, 93, -52, -26, 96, 44, 22, -67, -19, 25, 77, -60, 7, 4, -18, 23, 66, 52, -69, -11, -86, -25, 72, -56, 42, 38, 77, 58, -24, -71, -20, -50, -94, 56, -87, 13, -30, -53, 92, -45, 84, -40, -48, -12, -17, 54, -12, 14, 118, 47, -105, 33, -1, 26, 43, -28, 51, -17}, + {102, 4, 21, 72, -54, 45, -22, 111, 67, 0, -83, -46, -35, 17, 72, -56, -6, 12, 83, -36, 51, -7, 36, 42, -89, 71, -17, -43, 89, -58, -44, -43, -39, 59, 98, 63, 48, 26, 81, -10, -53, -27, 53, -13, 6, -55, 66, 72, -6, 13, -41, -10, -58, 29, 31, 57, -31, -60, 37, 14, -43, -7, -76, 25, -11, 23, 61, 31, 65, -30, -21, 87, 82, -7, -65, 51, 103, 83, 47, -3, -23, 16, 98, -72, 37, -13, 43, -85, -23, -78, -7, 65, 96, -69, -2, -12, 25, -24, -29, -24, -44, 3, 51, 63, -41, 77, -77, 12, 94, 30, 59, 3, 11, 3, 76, 3, -50, -58, 26, 78, -59, -22, -37, -88, 16, -68, -68, -7}, + {29, 74, -62, 26, 56, 9, 102, -66, -31, 65, 104, -65, -71, 82, -83, 10, -22, 0, -24, 76, -52, 80, 61, 26, -77, -62, 50, 39, 75, -24, 8, 40, 104, 86, -24, -60, -49, -64, 31, -61, -63, 93, -27, -63, 8, 33, -19, -36, 96, 42, 79, -50, -70, -61, 70, -48, 42, -69, -1, 90, -50, 75, -21, 16, 45, -77, 73, -33, -52, 37, -22, -88, 12, 61, -7, 69, -23, 100, -36, 8, 40, 77, -13, -21, -27, 86, -30, 57, -10, -33, 56, -46, 10, -63, 51, 78, -48, -58, -47, -79, 67, 84, 16, 33, 8, -47, 21, 35, -41, 49, -63, 69, 34, 13, -41, -11, -7, 71, -97, -36, -32, 64, 57, -60, 6, -4, 46, 34}, + {-58, 69, 89, -81, 43, -61, 47, 84, 77, -20, -9, -27, 79, -70, 30, 36, 9, -46, -74, -66, -31, 66, -45, -75, -85, 14, 7, -30, -16, 67, 81, 58, -62, -84, -51, 5, -57, 60, 73, -76, 3, 31, -4, -37, -71, 9, 32, 35, -33, -11, -16, -55, -11, 18, 48, -19, 6, 66, 6, -76, -50, 84, 7, 29, -73, -10, 17, -86, 65, -7, 32, 92, 86, 13, -25, 47, -19, 77, 62, -79, -9, -40, 81, -33, 12, 36, 34, -63, -13, 13, 39, 29, 82, -65, 35, -25, 11, 10, -5, 95, 36, -60, 81, -62, 45, -73, 22, -90, 42, 74, 10, 63, 30, -79, 89, 78, 11, 64, 16, 90, -64, 40, -37, 84, 80, -6, 62, -10}, + {-100, -2, -73, 30, 42, -48, 55, 69, -31, -35, 92, -43, 9, 15, -12, 76, 43, -18, -66, -8, 30, 31, -30, -5, 22, 77, -20, -59, -101, 40, 26, 17, 53, -34, -98, -37, -35, 50, 26, 58, -29, 31, -17, -62, -105, -67, -60, -101, -10, 37, 27, -1, -52, 47, 68, 74, -60, -33, 17, -15, -25, 11, -44, 43, 14, -34, -60, 69, 8, -20, -84, 51, -70, 2, -9, -5, 53, -21, 31, 0, 38, 35, 9, 43, -34, -66, 13, 53, 4, 5, -87, 70, -7, -40, 48, 66, -23, -2, -27, 48, 21, 91, 49, -2, 2, -39, 38, -41, -10, -43, -59, 57, 60, 86, -57, -88, -30, -84, -54, 41, -40, 8, 11, 49, -35, 14, -59, 28}, + {-73, 82, 0, -65, -3, -28, -6, 87, 69, -1, -28, 1, 48, 64, 41, 40, 59, -31, 74, -37, 2, 25, -35, -82, -71, 25, -21, 4, -20, -27, -98, 22, -44, -51, -87, 12, 71, 49, -44, -72, -104, 47, -42, 100, -32, 73, 56, -98, -70, 19, 91, -14, -96, -30, -21, -42, -42, 72, -2, -61, 37, -36, 75, 33, 58, 84, -48, 16, 60, -99, -33, 16, -34, -68, 58, 70, -52, 61, -59, -62, -10, -100, -31, 98, 53, 63, -41, 97, 61, -33, 52, -68, -83, 31, -28, 36, 7, -89, 75, -18, -64, -85, 64, 60, -65, 61, -12, -65, 86, -34, 17, -16, 23, -8, -67, 7, -2, -80, -9, 57, -9, -27, -25, 86, 66, 35, -8, -64}, + {-11, 6, 22, 30, 50, -87, -28, -62, -58, 9, -89, 45, 6, 66, -38, -63, -56, 34, -33, 86, -75, -38, -45, -82, -30, 16, 67, 41, -51, -90, -87, -75, -21, -56, -55, -88, 28, 24, 38, -51, -35, 31, -71, 36, 18, 48, 17, 35, -57, 49, 20, 22, -58, 35, 37, 88, -90, -43, -19, 20, -53, -4, 80, 37, 13, -54, -7, -6, 2, -5, -34, -67, 10, 35, 9, -66, 32, 17, -77, -20, -66, -12, 65, 14, 72, 61, 79, -35, 56, -61, 40, -31, -78, -56, -63, -22, -82, 31, 29, -81, -62, 76, 62, -39, -61, 13, 46, 52, 67, -47, 18, -80, 46, -22, -37, 22, 49, -84, -69, -56, -7, -48, 88, 80, 0, 10, -42, 27}, + {55, -34, 7, 6, 5, -15, -49, 49, -62, 54, 70, 26, -15, -78, -63, 81, -74, 47, -69, 23, -68, -16, 80, 74, 21, -96, -6, -9, 56, -36, -17, 56, 10, -19, 83, 80, 14, 88, -26, -45, -86, -76, 86, -27, -79, -23, 100, 9, -15, -49, -35, 69, -55, 4, 52, -18, -32, 32, 0, -72, -60, -69, 16, -82, 61, -23, 29, 91, 42, 91, -21, 96, -2, -29, -37, 11, -66, -29, -25, 77, 38, 10, -18, 91, -52, -36, -23, 49, 11, -11, 84, 52, -18, -19, 28, 41, -34, -21, 22, -59, 74, 31, 7, -18, 2, 32, -24, 110, 62, 49, 10, -3, 89, 17, 27, 3, 53, -8, 69, -35, 44, 99, 95, -71, -37, -6, 22, -37}, + {-67, 58, 49, -36, 8, -33, -54, -4, -5, 26, -64, 109, -32, 32, -26, 45, 65, -52, 32, -72, -38, -57, -91, 70, -73, 30, -61, 39, 103, 47, 73, 30, 2, -48, -5, -11, 25, -64, -47, -66, 13, 32, -9, -61, 58, 100, 101, 84, 31, 114, 18, -59, 0, -22, 90, 16, 37, -4, 46, -43, 106, 100, -9, 63, -30, 32, -10, 15, 66, 36, 111, -40, 17, 18, -40, 79, 117, 18, -21, -6, 0, -73, 60, 13, -74, -56, 114, 58, 14, -38, 67, -32, 72, -21, 83, 96, 41, -26, -47, -81, 18, 78, -74, -17, 82, 51, -61, -16, 49, -35, -3, -28, 16, 24, 91, -49, -63, 32, -24, 118, 20, 103, -10, 83, 73, 27, -63, -55}, + {90, -63, 93, -42, 2, 15, -71, -25, -17, 29, -54, 87, 0, -66, 79, 27, 43, 12, -30, -2, 47, -17, -23, -42, 9, -62, -50, -66, -85, 1, -8, 2, 21, 65, -2, -49, -25, 60, 97, 37, 6, -6, -9, 89, 5, -48, 51, 74, 7, 55, 70, 19, -46, -57, 20, 73, 45, -27, -82, -76, -81, -29, -89, 61, -64, 54, -89, -79, 6, -70, 78, -68, -40, -39, 61, -63, 43, 49, 72, -66, -34, 62, -58, 30, -43, 33, 88, 64, -26, 2, -12, 29, -7, 21, -6, 68, -13, 92, 84, 68, 12, -81, -29, -78, -19, 42, -88, -95, 51, -4, 94, 98, 61, -53, 67, -10, 19, 10, 39, -15, -26, -34, -70, 27, -5, 58, -44, 96}, + {-13, -65, -28, -79, 37, 67, -44, 17, -13, 99, 29, -92, -41, 60, 43, 30, -31, 74, -70, 26, 75, -5, -11, -72, -34, 71, 54, 32, -50, -75, 66, 60, 30, 63, 34, -50, 36, -18, 78, 56, 4, 0, -45, -25, 24, -17, 7, 34, -65, 3, -26, -44, -33, -71, -64, -34, -10, -65, 44, -22, -11, -49, 9, -21, 28, 88, 61, 8, -19, -23, 13, 83, -48, -71, -37, -81, -12, -1, 70, 7, 32, 18, -72, 63, 3, 58, 43, 74, -18, 6, 14, -84, -60, -74, 1, -54, 63, -43, 98, -32, 71, -20, 31, -68, 29, 3, 56, 81, -4, 32, 22, 54, -43, 19, -55, -73, -20, 25, 93, 74, -38, 26, 21, 85, 31, 28, 11, 62}, + {36, -51, 61, -80, -39, 57, -55, -56, 28, -18, -32, 24, 29, -36, -40, 59, 52, -9, -86, -81, 72, 88, 41, 81, -17, 48, 3, 2, -48, 7, 45, 63, -52, -82, -21, 7, -73, 40, 27, -12, -30, -34, 40, 57, 77, 78, -28, 41, 34, 73, -40, 84, -9, -41, -100, 9, 21, 100, 49, 5, -59, -53, 39, 50, -30, -83, 67, -32, -76, -60, -40, 36, 62, -66, -5, 20, -7, 62, 50, 10, -12, -15, -35, 25, -19, 70, 62, -42, -43, -3, -76, 58, -86, -54, 92, -20, 52, 17, -86, -24, -31, -70, 35, 25, -53, 26, 88, -36, -73, 63, 38, 6, 62, -71, 67, -54, 57, 7, -56, 11, 65, -59, -75, -73, -55, 4, 26, 80}, + {49, -17, 15, 15, 36, 61, -66, -96, 60, 7, 65, -44, 18, 9, -53, -25, -64, 9, 3, -51, 56, 19, -88, 84, 61, 47, -68, 2, -64, 26, 88, 80, 79, 99, 95, 50, -12, -13, 38, -69, -26, 44, -1, -35, -53, -20, 79, 1, 45, 95, 2, -30, 48, 79, -50, 49, -56, -75, -58, 26, -19, 63, 25, 43, -67, 12, -7, 38, 96, -51, 65, -11, -23, -55, 70, 3, 66, 62, -40, 65, -68, 102, -41, -98, -31, -56, 87, 78, -30, -55, -62, -60, 44, 91, 26, 66, -94, 34, 11, -8, 9, 20, 22, 66, -77, 59, 17, 56, -53, -16, -42, -104, -28, 32, 87, -3, 0, -31, 69, -75, -20, 3, 77, 39, 90, 58, 34, 80}, + {53, -25, 37, 44, -77, -39, 0, 20, -29, -40, 82, -38, 20, 10, 47, -71, 32, -44, -69, -75, -17, 69, -39, -98, 44, 43, 29, -13, -23, -65, 79, -15, -101, -16, 82, -41, 27, -71, 4, 59, -71, 25, 25, 55, 31, -13, -54, 9, -98, -36, 27, -17, 96, -2, -67, 55, -40, 85, -9, -51, 48, 69, -6, -8, 31, -44, -78, -36, 16, -3, 19, 79, -31, -68, -65, 35, -74, -46, -38, -84, 87, -17, -36, 29, 26, -66, -83, 36, -44, 69, 44, -30, 19, 9, 36, -4, -51, -5, -13, 67, 89, 22, -84, 71, -83, -68, 72, 45, -102, 0, 56, -88, 55, 41, 18, -86, 55, -44, 46, 37, 9, -89, 52, -71, 23, 6, -51, -70}, + {-70, 52, 19, -43, -51, 53, -47, 85, -40, 54, -57, 81, 110, 22, -24, 88, -5, 2, 50, -46, -20, -41, -41, -87, -4, -16, -29, -64, 36, -73, 8, 35, -37, -84, 76, 51, -85, 53, 74, -60, -68, -19, -85, -43, 5, -18, 84, 50, -37, 67, 72, -64, 43, 27, 5, 32, 35, -50, -35, -83, 42, 62, -80, 79, 39, 29, -26, 25, 0, -22, -61, 18, 24, -44, 38, -49, 50, -23, -81, 94, -20, -4, 27, 110, 90, -5, 69, -44, -74, 91, 31, 59, -30, 28, 48, -30, 66, -65, 10, 74, 61, -72, -31, 40, 35, 85, 77, -98, 74, 51, -78, 8, 9, 88, 20, 55, 80, 75, -18, 69, 74, -53, -25, 48, -43, 57, -19, 1}, + {-15, 58, 23, 83, 74, -41, -39, -93, 55, 45, 13, 48, 9, 98, 86, 61, -11, -19, 27, -1, -66, -108, 15, 101, -92, 98, 13, -66, 52, 79, -67, 105, 44, -16, 109, 67, 62, -60, 10, -101, -39, -18, 53, 39, 83, -34, 78, -57, -92, -46, 18, 59, -54, 1, 78, -55, -18, 25, -57, -40, 113, 107, 19, 5, 80, -74, 52, 35, -4, 78, -51, -14, -62, 42, -65, 79, 31, 38, -38, -47, 69, -16, -24, -21, -92, -17, 97, -27, 77, 50, -22, -104, 87, 79, 56, 6, 49, 59, -62, 8, -16, 85, 73, 90, 14, 59, -57, 29, 60, 59, -90, 75, -49, 93, 79, -9, -54, -49, 57, 120, 38, -17, 85, -85, 66, -84, -65, 53}, + {56, -62, 12, -66, -73, -40, 70, 47, 72, -34, 52, 65, 68, -46, 74, -84, 18, 13, -25, -72, 10, 45, -13, -9, 8, -2, 5, 17, 98, 53, -19, -65, 25, -51, 52, -68, 20, -42, 16, 81, 7, -58, 8, 77, 47, -33, 57, 14, 93, 11, 86, -48, 82, 68, 24, 92, 0, -27, 81, -73, 62, 80, -37, 96, 19, -6, 71, 38, 79, 66, -36, -74, -52, 87, -74, 95, -69, 49, 78, -48, 5, -3, -44, 84, -33, 94, 23, 22, 52, -50, -79, -27, -63, -26, 86, 89, -9, -64, 21, -28, 71, 20, -67, -40, 59, 50, 46, 91, -27, -85, 54, 40, -25, 49, -61, -8, 36, 88, -23, 58, -62, -35, -51, -30, 16, 38, -42, -56}, + {-23, -31, 36, 53, -17, 85, -60, 33, -62, 7, 62, -28, -31, 25, 17, 28, 87, 87, 32, 0, 44, 10, -66, 5, -19, -5, 0, -46, -69, -26, -24, 67, 61, 5, 22, -74, 48, 61, -68, 66, -82, -44, 49, -44, 23, 74, 50, -29, -46, 86, -30, -20, 65, 57, -68, -37, -89, -50, -61, 48, -24, 53, -91, -46, -75, 63, -55, 16, -39, -82, 30, 1, -16, -3, -1, 81, -28, -78, -28, 36, 2, 76, -63, 36, -29, -75, 31, 82, -38, -89, -9, -64, 40, 53, 74, -63, -10, 41, -46, 59, 91, 42, -54, -52, -23, 36, -76, -85, 84, 2, -16, -15, 57, 37, -62, -76, 28, -88, -58, 30, -79, 53, -72, 68, -81, -39, 75, -17}, + {61, -66, 17, -64, -52, -84, -8, -45, -68, 77, 99, -79, 29, 34, -49, -89, -47, 9, 72, 66, 10, 48, -20, -13, -44, 49, -64, 5, 14, -63, 38, 52, 77, -5, -15, 50, 41, 26, -20, -65, -66, -28, 1, -75, 13, 71, -81, -59, 25, -6, -69, 55, 41, 61, -9, -53, 65, -15, -91, 71, 45, -55, -46, -73, -77, -42, 12, 43, 72, -46, 53, 22, -34, 69, 87, -85, 33, 35, 84, -55, -48, -68, -69, -74, -74, -25, 93, -92, -45, 38, -54, 68, -52, -11, 18, 41, -59, -81, -31, -70, 33, 21, 39, -56, -27, -72, 89, -53, 39, -46, -83, 29, 11, -73, 26, -68, 4, 49, 23, -2, -46, 34, -48, 28, -86, -77, 16, -59}, + {-49, -12, 22, 25, -41, -4, 10, 42, 84, -47, -38, 66, -12, 71, -1, -42, 63, -84, 85, -73, -14, 83, -90, -52, 90, 59, 48, 52, -29, 27, -90, -50, -72, 64, 26, 26, 48, 92, -6, -18, -14, -80, 57, 11, -58, -83, -44, -94, 51, 59, 79, -36, 87, -63, -50, -92, -73, 76, 46, 4, 27, -1, -70, -14, 45, -77, -55, -24, -76, -61, -15, -17, 82, 32, 64, -15, 80, -24, 20, -42, -39, -27, -50, -21, -68, 33, -55, -75, 48, -74, -88, 44, 2, 39, 41, 19, 53, 85, 27, 89, -8, -26, -10, -14, 76, 17, 27, 49, 68, -78, -84, 55, 36, 63, -61, -54, 70, -69, -39, -77, 61, 77, -71, 61, -1, 39, 11, 51}, + {89, -26, -93, -93, 87, -64, -48, -52, -16, 62, -34, 84, -23, -91, -39, 8, -10, -8, -27, 11, -9, 35, 65, -44, -62, -29, 0, 51, 0, -77, -28, -33, 88, 58, 82, 59, 10, -51, -69, -19, 44, -7, 24, 0, 67, -56, -91, 67, 72, -46, 49, 54, -27, -35, 5, -21, -65, -3, -63, -35, -78, 13, -18, -68, 45, -53, 56, 6, 38, -13, 82, 6, -74, 78, -32, 88, 75, 72, 5, 28, 22, -18, -56, -57, 81, -84, -26, 24, -52, -1, 62, 42, 62, -48, -72, 53, 46, -30, -49, 15, -87, 58, 52, 24, -68, -36, -35, -48, 40, -6, -53, -55, -66, 25, -76, -59, -11, -61, 13, -77, 47, 72, -85, 88, 30, -34, -64, -22}, + {-7, 21, 56, -75, -44, -27, -56, -36, -42, -5, -8, -23, 13, -23, 48, -47, -4, 18, 7, -47, -61, 15, -44, -51, -56, -46, 41, 2, 81, 56, 7, -17, -21, 89, -12, -38, -7, -65, 70, -47, 50, 5, 25, 1, 38, -57, 18, 9, 17, -7, -33, -11, -66, -46, 16, 6, -44, -1, 83, 38, 30, -66, -28, 18, -15, 78, -1, -50, 64, 83, 47, 84, 20, 16, 22, -62, 37, -2, 37, -39, 4, 6, 43, 34, 60, -21, -84, -23, -36, 4, -37, 12, 54, -20, -56, -78, 61, 42, 32, 73, 12, 10, 55, -2, 51, -61, -84, -63, -11, -47, 83, 13, 25, 5, 41, -13, 80, 56, 3, 27, -90, -20, 68, -34, 72, -48, 78, -83}, + {53, -21, -10, -76, -8, -66, -50, 25, 30, -13, 52, 31, 40, -72, 15, -30, -25, 34, -59, -29, 85, 3, -72, 8, -51, 44, -25, 63, -31, -18, -31, 5, 31, 80, -7, -45, 85, -73, 42, 57, -6, -1, -78, -51, -29, -15, 24, -40, 27, 46, -32, -88, -18, -46, 70, -33, 51, 72, 48, 32, 1, 39, -42, 18, 6, -21, 72, 63, -77, -40, -23, 54, 77, 20, 24, 90, 60, -28, -15, -90, 15, 2, -75, -85, 23, 29, -9, 47, -42, 65, 8, 23, 88, -89, -63, 17, -36, -72, 34, -22, 3, 23, 49, 12, -53, 44, 61, -4, 99, 46, -15, 67, 66, 30, 13, 44, 76, -39, 7, 48, 9, -74, 80, -5, 74, -90, 4, 81}, + {-91, 46, 3, -13, 19, -8, 16, -36, 23, -40, 73, -19, -3, -41, -15, 37, -33, 7, -20, 44, -44, 27, 64, 77, -46, 77, -69, -60, -27, -74, 57, 37, -7, 6, 71, 73, 44, -58, -76, -21, -51, 20, 30, -14, 16, 80, -24, -29, -61, 38, 2, -74, 60, -88, -23, -10, 34, -101, -78, -26, -73, 83, 33, -73, -26, 77, -67, 46, 21, -5, 17, -91, -64, -14, 15, 8, 41, 56, -22, -67, -16, 52, 18, -23, 9, -51, 65, -95, 70, 37, -81, 65, -80, -14, -78, 42, -15, -48, -2, 81, 70, 110, -32, -6, -23, -85, 72, -25, 39, 61, 60, 53, -20, -8, 93, 48, -84, 15, -55, 102, 59, 35, -18, 94, 64, -89, 37, 70}, + {57, -9, 4, -29, -13, -46, 28, -57, -54, 63, 68, 12, -84, 4, -30, -37, -39, 39, 7, -68, -49, 100, 10, 73, 35, -8, -28, -75, 71, -33, -60, 60, -2, -37, 74, 61, -10, 14, -34, 18, 37, 51, 8, 62, 13, 10, -66, 70, 96, 17, 45, -83, 55, -61, -87, 58, -52, -18, -49, 14, -7, -44, 84, -38, 78, 12, 19, 95, -65, 58, 69, 40, -75, 90, 60, 70, -48, -1, -51, 11, -71, 49, -35, 69, -17, 4, -57, -82, -60, -6, -40, 92, -65, 42, 9, 17, -40, 53, -33, -26, -19, -46, -59, 58, -77, -28, 70, 9, 2, -104, 83, -16, -8, -3, 73, -86, 55, 8, 16, -96, 32, -40, 91, -9, 38, 62, -11, 28}, + {-40, 86, -58, 38, -79, 23, -62, 3, 58, -39, 65, 46, 58, -17, -81, -78, 35, -87, 69, -61, 80, -28, -3, -3, 38, 81, 87, 36, 19, 51, 79, -91, -53, -24, 15, 40, -2, 84, -91, -37, 79, 65, 78, 10, 81, 42, -19, -89, -90, 53, -34, 34, 43, 0, -77, 70, 7, 9, 8, 92, 26, -38, 17, -78, 35, -2, -17, 31, -51, 65, -40, 57, -66, 2, -30, 54, 77, 50, -38, -45, 52, -3, -98, -2, 64, -74, -24, 5, -22, 35, -39, -45, 51, -25, 79, -56, 90, 28, -76, 57, 50, 85, -86, 6, -69, 21, -3, 20, -20, 71, 87, 21, -65, 7, -34, -25, -67, 3, -64, -60, -32, 60, -93, -51, 48, 82, -9, 3}, + {-3, -41, 66, -34, -78, 14, -32, 53, 34, 31, -65, -101, 10, 16, 6, -5, -65, 94, 87, -79, 25, -19, 53, 10, 74, 16, 30, -47, -23, -46, -84, 42, 81, -44, -69, -79, -35, 10, -66, -64, 1, -23, 97, -6, 31, -83, 70, -21, 102, -90, 48, -64, 39, 21, 81, -32, 77, 113, 36, -17, -66, -56, -50, -11, 7, 6, 62, -40, 3, -44, 28, -46, -26, -53, 108, 98, -50, 72, -18, -3, 3, -51, 68, -61, -60, -44, 63, 77, 49, 52, -97, -44, 59, -86, -7, 34, -68, -18, 88, 65, -14, -18, 64, -75, -11, 12, 49, 83, -56, -79, 94, -14, -57, 63, 62, 23, 73, 84, -49, -76, 21, 58, 13, 44, 10, 51, -44, -44}, + {-93, 52, 32, 11, -22, 64, 36, -15, 25, -55, -97, 41, -58, 2, 54, 36, 29, 21, -25, 58, -27, 43, 62, -61, -49, 81, 38, 90, 87, -39, -74, -53, 4, -23, 85, 17, 64, 32, -43, 36, -17, 84, -2, -58, 38, 9, -2, -74, -35, 17, 91, -57, -70, -53, 75, 61, -84, -77, -57, 37, -41, 10, 17, -61, 90, 63, 3, -30, -30, 63, -42, -9, -86, 37, -72, -52, -74, -66, 7, -49, 100, -78, -23, 55, 18, 46, 28, 77, -88, -50, -53, 8, 39, -34, 82, 35, 35, 7, -48, -89, 11, -11, 18, -63, 70, -70, -3, 43, -89, 25, -21, 94, 57, -50, -19, -86, 90, -17, 35, 35, 39, 40, -23, 74, -72, -35, 45, -52}, + {97, -79, -68, -75, -65, -21, 97, -65, -48, -74, 80, 45, -86, -87, -88, 1, -75, -47, 94, -72, -83, 21, -25, 22, 10, -27, 82, 35, 56, 81, 14, 68, -56, 41, 40, 28, 32, -69, 64, 40, -81, -73, 63, -75, 10, 7, -38, 75, 34, 39, -24, -57, 80, 59, -40, 8, -49, 22, 53, 76, 87, 15, -10, -38, -69, -28, -6, -31, 18, 13, -84, 37, 24, 76, 93, -79, -16, 79, 96, 8, -76, 1, 94, -2, 5, 83, 17, 27, 36, -28, -24, -22, -68, -78, -55, -29, -86, 89, -4, -79, 29, -69, 24, -56, 31, -73, 60, -59, 49, -1, 83, 23, -81, -30, -91, 71, 38, 68, 105, 23, 15, 50, -17, -49, -41, 36, -3, -64}, + {-65, -25, 68, 16, 55, -39, 86, -34, 21, 71, -53, -8, -94, -76, -7, -26, 0, 64, 31, 5, -27, 114, 2, 45, 82, -9, 41, 24, -46, -39, -40, -56, 32, -61, -42, 80, -46, -51, 81, -18, -83, 36, 55, 8, 66, -54, 85, 10, 79, 69, 4, 88, -22, -27, 3, -41, 48, 56, 42, 63, 75, -38, 22, -29, 91, 24, 12, 37, 85, -12, -21, 55, -1, 51, -19, 98, -43, -9, -43, 65, -54, 55, -75, -51, -40, 3, 82, -40, -37, 84, 66, 15, 32, -44, 9, 82, 73, 27, 76, 87, 65, -30, -23, -63, -66, -76, 7, 39, 1, 54, 99, -96, 90, -10, 47, -43, 10, 10, -5, 16, -50, 33, -66, -2, -84, 41, -9, 47}, + {26, 24, -81, -40, 48, 34, -28, 78, -7, 14, 70, 25, -84, 29, -90, -21, -10, -27, -77, 12, -79, -63, -44, -81, 41, -1, -28, -13, 18, -13, -41, -3, 54, 16, 62, -33, 22, 90, -31, 89, 65, -25, -1, 63, -17, 50, 83, 60, 49, -69, -62, -74, 64, 27, -75, -17, 51, -80, -62, -14, -10, -8, 78, 76, -65, 34, -93, -40, -75, -42, -10, 92, -48, -13, 79, -3, -10, 51, -76, 41, 77, 79, 63, -21, -54, -30, 75, -52, 2, 25, 1, 23, 76, -34, -18, -76, 73, 77, -27, -24, 12, 7, 28, -78, -18, -83, -20, 55, 22, -13, 12, -14, -12, -66, 61, -3, 47, -80, -92, -8, 5, -89, 83, -34, -61, 14, -6, 46}, + {-9, 78, 74, 37, 72, 92, 29, 59, -26, -96, 46, 51, 48, 93, -90, 53, 84, 52, -53, 39, -5, -36, -58, -68, -70, -61, -25, 18, 32, 11, -14, 70, 40, 1, -63, -15, 38, 31, -25, 17, 69, 49, -44, 21, 30, 0, 76, 18, -90, -77, -86, -16, -91, -78, -22, 2, 2, 63, -6, 83, 92, -7, 18, -6, -39, -107, 34, 52, 47, 82, -16, 80, -86, -42, 20, -42, -32, -41, 100, -85, -34, -61, -3, -15, 2, 43, 90, 3, -78, 60, 21, 61, 0, 57, -64, -2, -20, -41, -18, -89, 49, 7, 12, -33, 24, 56, -93, 91, -16, -67, -22, -6, 45, 74, 18, 22, 27, 89, 18, 67, -91, 33, -75, -4, -27, 6, -18, -48}, + {-78, 92, 46, 13, 50, -34, 38, -61, 7, -46, -23, -51, -98, -56, -87, 17, -6, -4, 83, -10, -34, -11, 7, -38, 51, -73, 57, 49, -7, -72, 73, -12, 20, -3, -38, 60, 56, 1, 60, 6, -28, 81, -64, 12, 3, 77, 94, 59, 78, 70, -60, 50, 75, -46, -4, 22, 56, -62, 33, -40, -56, -17, -44, 29, 4, 15, 91, 5, 11, 88, 67, 82, 48, -71, -3, 38, -14, 21, 72, 9, 38, 73, 87, 58, -85, -89, 79, -36, -89, 98, 72, -7, -1, 86, -19, 20, 3, -2, -54, 15, 35, 20, 45, 16, 42, 5, 17, -86, 60, -28, 81, 57, -63, -43, -82, 54, -33, 21, 30, 7, 11, 14, 83, -43, 74, -64, 20, -58}, + {17, 68, -83, -8, 88, 105, -59, 3, -35, -86, 58, 47, 43, 16, 10, 67, 6, -59, 44, 56, 18, 56, -77, 16, 72, 52, -83, 33, 45, 85, 32, 61, 23, 53, 12, -82, 53, 55, -78, 44, -93, -42, -5, 15, 53, 74, -72, -48, 55, 78, -86, -80, -36, -26, 72, 59, -67, -56, 12, 1, -93, -90, -72, -71, 38, 35, -23, 58, -76, 40, -24, -80, -22, -30, 48, -44, -25, 10, -32, -25, 54, 16, 17, 39, 9, 12, -47, 72, 14, 16, -39, -8, 25, 84, -14, -47, -26, 83, 29, 43, -41, -52, 73, 70, -76, -26, -84, -87, 50, -48, 55, 33, -4, 65, -10, -75, -6, -36, -1, -41, -98, 48, -2, 90, 37, -57, 55, -11}, + {-45, 62, -45, 28, 35, -77, 102, 18, -61, 26, 91, -22, 81, 32, 15, 31, 18, -13, 45, -81, -50, -24, 57, -62, 56, -34, -32, -3, 22, 34, 3, -12, 62, -64, 78, 30, -41, 52, 4, -41, 100, -38, 46, 14, 55, -12, -29, 49, -27, 91, -14, 18, -26, 22, 31, -29, -71, 2, 69, 87, -80, -88, -48, -38, 79, 10, -83, -52, -45, -51, 26, -48, 0, -85, -44, 52, -57, -34, -58, 50, 17, -28, 76, -41, 25, 8, 7, -26, 81, -34, 84, -88, -49, -71, 47, 82, 51, 99, -20, 71, -50, 87, 23, -16, 17, 61, -36, 56, 55, 47, 83, -62, 44, 53, 19, -44, 59, -22, -26, 77, -46, -50, 81, 1, 69, -59, -49, -50}, + {22, -32, 77, -5, 41, 78, 9, -42, 90, 20, 64, -10, 96, -11, -46, 96, -26, 83, 0, -37, -77, 1, 99, -74, 48, -10, 57, 69, -6, 42, -79, -17, -64, -11, -73, 10, -23, -19, 6, 4, 66, -5, 45, 42, 66, -74, -11, -26, 86, 31, -23, -68, 70, -93, 55, -71, -54, 100, -50, 70, 11, 36, 25, -52, -92, 36, -41, -71, 35, -26, 8, -2, -94, -52, -16, -83, -72, 8, -13, 7, 31, -27, -33, 110, -65, -73, 11, -26, 86, 42, -33, 3, 32, -53, 91, -35, -55, 19, 97, 17, 33, -52, 21, 33, -48, 71, 64, 93, 85, 1, -22, 73, 12, 71, 45, -18, -47, 21, 13, -23, -53, -87, -38, 52, 57, 25, -74, -52}, + {84, -52, 42, 16, -75, 56, -24, -9, -35, 6, -19, 28, -104, 26, 85, 69, -4, 72, -22, 36, 42, -75, 20, -52, 29, -11, -82, 11, 71, -40, -85, 62, 82, -36, -61, 67, -14, -84, -42, 93, -21, -6, 36, 22, 49, -24, -34, -63, -22, -94, 63, 59, -26, 64, 34, 34, -32, -71, 32, 55, -57, 27, 11, -33, -26, -44, 75, -49, 21, -80, 72, 83, 74, 43, -50, -78, 72, 90, 71, -20, 106, 40, -25, 45, -70, -22, 5, -76, -76, -104, 34, -34, -76, -42, -74, 92, 51, 4, 21, -8, 9, 1, 61, 65, -19, 12, 28, 47, 80, 31, 15, -69, -81, -8, -23, 85, 68, -37, -58, 57, 58, -14, 70, -39, -53, 11, -19, -48}, + {-57, 43, -8, 52, 21, -29, -72, 79, 0, 82, 66, -50, -88, 32, -15, 69, -85, 80, 2, -30, 49, -78, -39, -6, -80, 50, -69, -48, -88, -54, -55, -16, 45, 31, -58, 37, -81, -66, -49, 76, -38, 63, 84, 107, 14, 16, 0, 82, 90, 71, -18, 33, 9, -21, 58, 2, 44, -5, -35, -36, -52, -71, 32, -47, -76, -47, 73, 9, -55, 38, 87, 72, -50, 79, -46, 60, 57, 60, -7, 66, -75, 52, -82, 1, -75, 87, 25, -44, -82, 60, 85, 17, 34, 0, -7, -90, 25, 46, -70, 48, -74, -89, 1, -64, 66, 70, -50, -49, -47, 50, 20, 20, 86, 68, -51, -51, -9, -91, -22, 16, -12, 81, -27, -41, 44, 26, 61, -24}, + {-55, -57, -74, 34, 22, -62, -77, -5, -71, -37, -74, -6, 17, 36, -60, 84, 89, -73, -12, 29, -50, 1, 52, 6, -57, 75, -91, 46, 22, -87, 80, -34, -90, 49, 17, 0, -43, -47, -24, -65, 4, -86, -6, 31, -72, 10, 15, 43, 50, -36, 20, 61, -42, -58, 21, 80, 25, -75, 75, 15, 60, -4, 16, -17, 41, 32, -36, -21, -18, 2, -76, 69, 30, -91, -76, 31, 87, 79, -55, 40, -77, 27, 69, -70, -8, 45, 0, -57, 3, -42, 2, -4, 36, 37, 21, 13, -66, 80, -42, 38, 84, 9, -78, -1, 64, -24, 69, -26, 72, -8, -12, 85, 9, -73, 18, 62, -30, 59, 23, 73, -48, -88, 26, 14, -63, -41, -76, 22}, + {-71, -7, 52, 53, -43, 23, -1, 61, 38, -3, -81, -84, -68, -61, -26, -41, 52, -1, -37, 79, -91, 21, -2, 32, 50, 21, -91, -71, -35, 45, -68, -36, 40, 81, -66, 83, -76, 1, 85, 53, 46, 69, 89, 15, -65, -30, 91, 81, 27, -21, 22, -88, -90, 40, -64, -14, -18, 46, 74, -22, -36, 55, -48, 48, -29, -88, -87, -3, -75, 5, 22, -54, 67, 15, 38, -39, -73, 7, -68, 72, -76, -72, 81, 56, -26, -65, 11, -71, -71, 31, -11, -50, -91, 56, -71, -78, 46, -55, -22, -5, -44, -49, 83, -90, 2, -90, 11, 92, 13, 9, -29, -40, 86, 64, 77, 76, -56, -39, -64, -51, 69, 4, 31, 55, -35, -32, -60, -76}, + {26, -43, 69, 30, -11, -3, -24, -17, -17, 39, -78, -59, 26, -36, 44, 81, -17, 83, 43, -1, 81, -63, -52, -43, -77, 27, 8, -54, 72, 23, -85, 40, 67, 81, -22, 57, -3, 40, -60, -32, 73, 26, -1, -64, 57, -56, -50, 53, -62, 42, -25, 68, 16, -45, -69, -13, -49, 71, -13, 82, -19, -56, 13, 29, 0, 74, 82, 64, 55, 73, 61, 29, 34, -25, 39, 77, -81, 16, 0, 9, -74, 17, -38, 85, 11, -41, -90, -35, -15, 2, 42, -43, -91, -32, -31, -50, 55, -32, 16, 68, 41, -88, 24, 80, 84, -52, -45, 13, -18, 20, 54, 41, -86, 8, -66, 76, -80, 0, 27, -66, 74, 27, -5, 50, -73, -21, 23, 20}, + {10, -4, 8, 78, -22, -41, -61, -76, -35, -70, 4, 43, -54, 20, 51, 34, -54, 49, 85, -43, 41, -86, 46, 35, -35, -75, -85, -2, -57, 54, -83, -1, 77, -31, -26, -64, 90, 66, -2, -82, 66, -43, -4, 82, -81, 71, 42, 44, -53, 51, -78, 66, 46, -35, -75, 20, 12, 86, -54, -65, -48, -32, 63, 77, 73, 20, -61, 49, 80, -25, 34, -64, 42, 71, 29, -14, -12, -77, -1, 21, -4, -13, 36, -88, 87, 61, -91, 17, -64, 1, -33, -31, -71, 49, -25, -61, 19, 63, 40, -64, -35, -71, 7, 74, -59, 42, -87, -76, -5, -42, -4, -27, 75, -54, -51, 83, 65, -78, 25, -30, -65, 80, -59, 62, -85, 84, -80, 10}, + {67, -59, -2, -34, -79, 30, 20, -66, -45, 10, 48, -1, -80, -59, -41, 24, -47, -86, 31, -3, -82, -65, -84, 27, 13, 20, -29, -45, 7, 86, 18, 108, 42, -69, 8, 10, 78, 31, 53, 92, -20, -16, -12, -49, 48, 50, 83, -76, 50, 39, 12, 26, 67, 102, 71, 56, 50, -95, 79, 53, 60, -25, -44, -85, -30, -10, -21, 58, -61, 27, 66, -69, 35, 59, 94, -22, -42, 93, 79, -65, 67, -12, 79, -34, 52, -61, 62, 13, 25, -27, 55, 28, 56, 41, -85, -2, -47, 13, -82, 68, 84, 45, 32, -47, -6, -79, 66, 47, 68, 99, 90, -31, 57, -67, 35, -9, -14, -61, -56, -8, -94, 28, -86, 41, -35, -60, 77, 97}, + {-7, 85, -27, 43, -11, -22, 82, -43, -5, -46, -11, -20, -28, -32, -10, -56, 75, 79, -49, 35, 13, 29, 51, 61, -6, 18, 24, -14, 4, 0, 13, 35, 48, -44, -86, -93, -54, -66, 28, -53, -43, 24, 29, 56, -96, -28, -82, 2, 4, 33, 56, -78, -81, 56, -65, -71, 25, 28, -55, -57, 15, 5, 53, -87, 67, 25, -64, -105, 25, -9, -60, 31, 21, 87, -83, 67, -75, -74, 20, 45, -17, 59, -47, -27, 68, 11, 56, 17, 15, 8, -70, 29, 24, 64, 8, 31, -42, -56, 4, 16, 70, -26, -72, -38, 14, -64, -81, -3, -99, 88, -63, -94, 61, 80, -33, 37, -83, 66, 84, 56, 40, 5, -75, -44, -24, 62, -11, 61}, + {90, 33, -37, -4, -89, -19, -42, 84, 56, -52, 74, 82, 57, 71, -68, -84, 63, 84, 31, -90, 3, -19, -65, -70, -45, 32, 45, -28, -53, 71, 24, -49, 30, 21, 79, 23, 22, 74, 8, 76, -2, -8, 63, 88, 35, 19, 81, 21, 12, 41, 73, 43, 56, 5, 71, -23, 75, -54, -67, -30, -21, -47, 85, -22, 15, -61, 44, 28, -67, 70, 48, 29, -43, 1, -31, -72, -3, -79, -46, -50, -50, -70, 37, -75, -76, 75, -4, 89, -38, 23, -72, 51, -83, -63, -72, -59, 25, -74, 45, -62, -34, 57, -26, -39, 48, 91, -81, 70, 9, -42, -92, 70, -51, -39, -81, -76, -13, 86, 61, 91, -73, 41, 74, -16, -91, 50, -25, 1}, + {-43, 23, 81, -89, 10, 114, -3, 87, -63, -1, 78, -73, -51, -66, 45, 106, -85, -64, 5, -85, -76, 89, 32, -30, 45, -5, 60, 17, -68, -27, 50, 89, 94, 27, 42, -71, 70, -71, 57, 71, -108, 45, -32, 116, -95, 25, 54, 43, 54, -62, -24, -77, 18, 69, 58, 104, -5, 12, 1, 6, -71, -69, 9, -78, 31, -64, 51, 35, -61, 34, 34, 8, -10, -67, 77, 4, 73, 9, 17, 88, -36, 36, 72, 87, 1, -54, -83, -32, -61, -16, 39, -24, -34, -79, 46, 60, 69, 21, 6, 32, 83, -75, 87, -71, 38, -56, 27, -12, -8, -74, -42, -65, -61, 64, -40, -11, 15, 89, 52, -8, -66, -46, -48, 84, -9, 8, 39, -82}, + {-57, -81, 78, 71, -52, -90, 5, 0, 99, -66, -93, -59, -25, -73, -81, 69, 2, -46, 16, -55, 41, 22, -8, -56, -51, 110, -30, -34, -1, -51, 54, -43, 43, -64, 73, 26, -30, 39, 30, -8, 91, 89, -70, -86, 87, -7, -6, 29, 14, -69, 17, -1, -81, 80, -21, 70, 26, 51, 93, -56, 56, 24, -32, -20, 52, -62, -15, 97, -7, -52, 85, 26, 54, -41, 72, 1, 39, 76, 64, -27, -59, 13, 64, 53, -3, 83, 57, -79, 7, -38, -15, -29, -51, 97, 70, -54, 44, 51, 55, -33, 52, 2, -64, 49, -62, -61, 32, -98, 18, 46, 29, 41, 52, 76, 6, 71, 71, 1, 33, 107, 57, -91, 81, 11, 65, 0, 38, -46}, + {69, 32, 90, 81, 77, -84, 25, -50, 9, 21, 47, -3, 37, 47, -90, 50, -64, 74, 63, -83, -53, 5, 63, 87, -82, 39, 31, -75, 52, 4, 50, -90, 58, 41, -39, -14, -74, -23, -87, -38, 77, -78, -52, 90, 42, 34, -37, 46, -10, -39, -21, 28, 42, 30, -68, 10, -3, -63, -5, 39, -43, -55, 61, 79, 41, 18, 64, -88, -90, -78, 80, -53, 32, -1, -10, -58, -83, 2, 66, -63, -45, 29, 73, 72, 51, -53, 7, -12, 39, -86, -82, 21, 30, -66, 28, -56, 30, -60, -18, 15, -51, -12, -28, -31, -83, 29, 48, 63, -18, 8, -4, -81, -6, -27, -64, -11, -21, 25, -64, 86, 45, -46, 63, 60, 34, -64, 44, -42}, + {75, 38, -68, 64, -78, 43, -80, -72, -60, -58, 31, -18, -49, -15, 33, -4, 30, -2, 44, -63, -56, -3, 11, -83, -87, 39, 41, -43, -15, 52, -24, -59, 51, -77, 23, 10, -13, 53, -69, -23, 70, -68, 62, 40, 80, -62, 7, 77, 94, -76, 5, 50, 62, 30, -7, 2, -41, -18, 46, 86, -70, 32, -87, 74, 11, -41, 86, 77, 69, -60, 7, 42, -40, 80, 3, 92, -39, 28, 55, -55, -49, 11, 0, 87, 44, 79, -68, -5, -75, 1, -39, -35, 31, 56, -18, -76, -75, -5, -32, -17, 8, 19, -63, -5, 93, -62, -43, -21, -57, 32, 31, 40, 76, -65, -76, 82, 36, -62, 61, -89, -82, 86, -79, -81, -46, 17, -10, 22}, + {-19, 25, 16, -50, 79, 3, 80, 58, 96, 74, -38, -68, 56, -72, -31, 32, 55, 0, 62, -38, 62, 31, -45, 61, -52, 22, -79, -47, 63, 22, 38, 34, 3, 49, -25, 3, -44, 8, 105, 31, 117, 76, -89, 2, 84, 93, -70, -28, 29, 11, 56, -86, 67, 93, 102, -87, -7, 66, -73, -31, 71, 25, 101, 74, -71, -57, -58, 88, -77, 32, 80, 23, 42, 93, -15, 2, -66, 88, -22, -78, 73, -84, 31, 64, 10, -56, -20, 58, -71, -33, 98, 39, -76, -44, 22, 17, -93, 45, 81, 70, -11, 15, 14, 38, 38, 25, 1, -18, -3, -40, -83, 77, 82, -62, 88, -43, 99, -19, 23, 1, 79, 96, 95, -65, 39, 95, 36, 70}, + {12, 0, -60, -51, 26, 59, 80, -24, 75, 5, -30, 8, -1, 23, -14, -69, -16, 2, -90, -24, 20, -8, -25, 77, -54, 4, 6, 60, 71, 55, -41, 26, 100, 84, 26, 44, -42, -62, -16, 55, -38, 87, 62, -40, 1, 93, 65, 9, 81, -26, 68, -68, -73, -10, 69, 112, -4, -4, 47, -41, 45, -76, -88, -52, 62, 105, -29, 47, -14, -68, -17, 80, -16, 0, -1, -65, -59, 89, -90, 97, 8, -2, -25, -39, -13, 79, 91, -5, -24, -60, -90, -20, 37, 85, 60, -78, -3, -36, 41, -77, -15, -59, -58, 61, 31, -4, 11, 89, -4, 13, -34, 95, 25, -82, 64, 25, 52, 12, 75, 7, 51, -17, 104, -67, -20, -31, -20, -14}, + {-13, 79, 6, -16, 21, 0, 73, -37, -3, 39, 28, 52, -70, -40, -75, -41, 58, -49, 6, 43, 55, -22, 41, 27, 1, 55, -79, 6, 13, 22, 60, 38, -74, -54, -55, 38, 34, 84, 40, -65, 47, -4, -74, 14, -34, -84, 74, -20, 66, 59, 70, 29, -23, -45, -64, -72, -76, 28, -49, 62, -22, 4, 50, 96, 99, -72, -74, 46, -25, 1, -34, -42, 24, -33, 24, -83, -4, -63, -77, 70, -23, 36, -18, 94, 2, -57, -59, -56, -65, -26, 45, 86, 60, 10, -81, 72, 54, 50, -34, 11, 6, 77, 57, -32, 26, 28, -37, -78, -49, -57, 82, 94, -90, -67, -5, -78, 56, 6, -62, -14, 85, -41, -46, -63, -31, -31, -42, -46}, + {38, 9, 66, 107, -81, 10, 73, 0, -17, 85, 35, -28, -51, 37, 21, -52, 96, 43, 46, -8, -52, -69, 21, 20, -40, 22, -40, -23, 35, -25, 4, 73, -36, 59, -23, 26, -63, 62, 107, 46, 42, 45, -30, 29, 25, 40, -59, -60, -26, -23, 8, -31, -35, -67, 80, -6, -36, -44, 50, -27, 72, -1, -14, 42, 88, -69, -80, 51, 30, 82, 55, -8, 71, -25, 16, 61, 36, 13, -7, -31, -21, -7, -15, -11, 82, 67, 16, -91, 47, 38, 48, 63, 61, -62, -15, 23, -31, 46, 33, 26, 26, -40, -63, 50, 34, 59, -70, 60, -9, -16, 73, 45, -3, 75, 79, -20, -27, 31, 50, 21, -23, -68, -24, -7, 31, -94, 57, 19}, + {25, 78, -50, 20, 88, -81, -48, 13, 10, -62, -32, 27, 42, -33, 57, -47, 26, 25, -33, 41, 0, -55, -3, 5, -28, -36, -21, 52, -39, 83, 5, 20, -15, -76, 3, -79, 32, 76, 61, -91, 18, -7, 21, 19, 76, 33, 0, 26, 5, 91, -41, -69, -72, 57, 46, -79, 91, 77, 8, -91, 10, -71, -28, -31, 52, -19, -45, 19, 35, 34, -39, 9, -77, 30, -41, 57, 3, 84, -78, 39, 12, 89, -59, 27, 59, -6, 70, 48, -4, -72, -22, -38, 88, -29, -7, 71, 16, 18, 21, 69, 64, 11, -42, 13, 35, -21, -61, -79, -39, 7, -90, -27, -84, 59, -7, 7, -11, -11, 81, 28, -17, -55, 2, 35, -39, -68, -75, -26}, + {-21, -80, -2, -33, -73, 29, -75, 67, -91, -25, 33, -75, -9, -15, 37, 47, 63, 41, 62, -62, -7, 50, 40, -76, -16, -63, 46, -10, -16, -51, -42, -85, 8, -46, 45, -41, -95, 16, 11, -50, -48, 13, -23, -43, 2, 43, 70, 28, 44, -1, 62, 82, -78, -25, 7, 75, 6, 0, -71, -33, -106, -71, 27, -51, -18, 13, 89, 77, -50, -104, -3, -61, -45, -80, -44, 76, -80, -19, -48, -38, 68, -13, 38, -33, -61, 84, 69, 15, -20, 0, 13, -14, 29, 36, -50, -46, -33, -28, 26, 0, -66, 3, 68, -58, -12, 25, -18, 47, 13, 6, 72, 82, -90, 71, 54, 1, -64, -9, -19, -24, -44, -22, 29, -90, 61, 10, 11, 32}, + {70, 70, 38, 62, 28, 35, -39, -55, 12, -87, 63, 84, 83, -19, -45, -60, -90, -56, 80, 40, 33, -11, 81, 73, -36, 25, 41, -85, 80, 2, -69, -81, -43, 33, -39, -7, 77, 90, 1, -36, -82, -80, 24, -81, 82, 13, 28, -7, -15, 26, 10, -86, 34, -69, 0, -48, 9, 83, 84, -65, -29, -14, -25, -79, -41, 1, -1, 77, -62, -54, 83, 56, 40, -62, -64, -33, -5, 51, -5, -15, -57, -21, -47, -16, 2, 83, 24, -17, 8, 74, -65, -83, 12, -27, 36, 32, -26, 87, 0, 44, 83, 56, 57, 48, -30, 59, 60, -61, -84, -26, 55, 22, -65, -3, -87, -14, 47, 50, -18, -69, -8, 16, -65, -75, 60, -22, 13, 83} +}; + +static const int F9[128][3][3][1] = { + { + { + {10}, + {-5}, + {49} + }, + { + {79}, + {-77}, + {-43} + }, + { + {107}, + {2}, + {-70} + } + }, + { + { + {-59}, + {41}, + {-20} + }, + { + {100}, + {-14}, + {64} + }, + { + {61}, + {39}, + {-80} + } + }, + { + { + {-103}, + {105}, + {95} + }, + { + {-89}, + {103}, + {11} + }, + { + {-18}, + {29}, + {92} + } + }, + { + { + {-36}, + {21}, + {10} + }, + { + {76}, + {-81}, + {-54} + }, + { + {-42}, + {18}, + {-58} + } + }, + { + { + {-25}, + {12}, + {46} + }, + { + {-91}, + {111}, + {76} + }, + { + {-91}, + {50}, + {124} + } + }, + { + { + {-83}, + {85}, + {-32} + }, + { + {30}, + {55}, + {-43} + }, + { + {120}, + {39}, + {-100} + } + }, + { + { + {9}, + {-107}, + {55} + }, + { + {21}, + {46}, + {79} + }, + { + {13}, + {30}, + {52} + } + }, + { + { + {-1}, + {-21}, + {106} + }, + { + {27}, + {75}, + {-89} + }, + { + {-4}, + {34}, + {25} + } + }, + { + { + {-103}, + {102}, + {69} + }, + { + {111}, + {104}, + {-24} + }, + { + {-93}, + {50}, + {0} + } + }, + { + { + {9}, + {48}, + {34} + }, + { + {8}, + {-35}, + {40} + }, + { + {121}, + {8}, + {81} + } + }, + { + { + {-29}, + {-11}, + {97} + }, + { + {103}, + {-82}, + {104} + }, + { + {73}, + {-100}, + {22} + } + }, + { + { + {-106}, + {-89}, + {-33} + }, + { + {-93}, + {105}, + {-34} + }, + { + {53}, + {17}, + {-48} + } + }, + { + { + {37}, + {93}, + {17} + }, + { + {-16}, + {111}, + {-40} + }, + { + {-55}, + {-20}, + {29} + } + }, + { + { + {77}, + {-57}, + {-1} + }, + { + {65}, + {-92}, + {-89} + }, + { + {83}, + {11}, + {87} + } + }, + { + { + {44}, + {-4}, + {-96} + }, + { + {102}, + {-36}, + {26} + }, + { + {-49}, + {-74}, + {12} + } + }, + { + { + {84}, + {3}, + {13} + }, + { + {-71}, + {119}, + {7} + }, + { + {-113}, + {115}, + {18} + } + }, + { + { + {87}, + {68}, + {111} + }, + { + {-82}, + {-17}, + {-68} + }, + { + {119}, + {75}, + {-111} + } + }, + { + { + {-13}, + {91}, + {-22} + }, + { + {-16}, + {-83}, + {-92} + }, + { + {-71}, + {-58}, + {-29} + } + }, + { + { + {36}, + {-112}, + {43} + }, + { + {100}, + {-70}, + {-36} + }, + { + {68}, + {22}, + {-67} + } + }, + { + { + {8}, + {-18}, + {-18} + }, + { + {-100}, + {-87}, + {19} + }, + { + {59}, + {11}, + {-111} + } + }, + { + { + {29}, + {-58}, + {-25} + }, + { + {115}, + {48}, + {83} + }, + { + {68}, + {67}, + {60} + } + }, + { + { + {16}, + {42}, + {-107} + }, + { + {91}, + {62}, + {-7} + }, + { + {-71}, + {-55}, + {107} + } + }, + { + { + {115}, + {27}, + {63} + }, + { + {50}, + {-3}, + {-96} + }, + { + {92}, + {55}, + {-46} + } + }, + { + { + {-81}, + {45}, + {117} + }, + { + {99}, + {-29}, + {-45} + }, + { + {55}, + {93}, + {-91} + } + }, + { + { + {3}, + {96}, + {-29} + }, + { + {34}, + {-16}, + {62} + }, + { + {-34}, + {104}, + {-7} + } + }, + { + { + {-45}, + {21}, + {47} + }, + { + {-20}, + {111}, + {1} + }, + { + {-112}, + {10}, + {34} + } + }, + { + { + {103}, + {93}, + {35} + }, + { + {94}, + {34}, + {-60} + }, + { + {-107}, + {-22}, + {-102} + } + }, + { + { + {-22}, + {-65}, + {-76} + }, + { + {44}, + {-44}, + {126} + }, + { + {41}, + {-66}, + {-58} + } + }, + { + { + {102}, + {72}, + {-34} + }, + { + {52}, + {43}, + {104} + }, + { + {94}, + {-14}, + {-93} + } + }, + { + { + {-36}, + {-44}, + {-43} + }, + { + {72}, + {109}, + {86} + }, + { + {-26}, + {111}, + {99} + } + }, + { + { + {23}, + {100}, + {109} + }, + { + {-109}, + {-77}, + {-37} + }, + { + {-27}, + {53}, + {-35} + } + }, + { + { + {59}, + {-97}, + {-114} + }, + { + {99}, + {-47}, + {12} + }, + { + {25}, + {35}, + {100} + } + }, + { + { + {-100}, + {-31}, + {91} + }, + { + {9}, + {30}, + {98} + }, + { + {-65}, + {-120}, + {65} + } + }, + { + { + {-33}, + {-46}, + {59} + }, + { + {101}, + {-67}, + {28} + }, + { + {6}, + {-73}, + {66} + } + }, + { + { + {-13}, + {97}, + {86} + }, + { + {36}, + {115}, + {68} + }, + { + {-32}, + {-21}, + {-82} + } + }, + { + { + {32}, + {-51}, + {63} + }, + { + {-99}, + {84}, + {-66} + }, + { + {30}, + {-75}, + {101} + } + }, + { + { + {53}, + {-64}, + {11} + }, + { + {70}, + {20}, + {31} + }, + { + {23}, + {93}, + {0} + } + }, + { + { + {-91}, + {72}, + {-56} + }, + { + {-12}, + {1}, + {56} + }, + { + {-9}, + {102}, + {28} + } + }, + { + { + {127}, + {55}, + {-58} + }, + { + {72}, + {82}, + {117} + }, + { + {10}, + {-97}, + {104} + } + }, + { + { + {-89}, + {3}, + {24} + }, + { + {11}, + {-98}, + {-89} + }, + { + {-117}, + {22}, + {59} + } + }, + { + { + {-118}, + {-100}, + {109} + }, + { + {33}, + {-113}, + {61} + }, + { + {-84}, + {-58}, + {-51} + } + }, + { + { + {125}, + {-41}, + {-69} + }, + { + {91}, + {22}, + {-108} + }, + { + {-103}, + {18}, + {81} + } + }, + { + { + {60}, + {26}, + {67} + }, + { + {97}, + {-54}, + {54} + }, + { + {-106}, + {-84}, + {18} + } + }, + { + { + {-64}, + {-100}, + {-66} + }, + { + {104}, + {11}, + {48} + }, + { + {36}, + {-46}, + {20} + } + }, + { + { + {109}, + {-41}, + {-53} + }, + { + {-61}, + {-28}, + {-41} + }, + { + {-19}, + {101}, + {106} + } + }, + { + { + {-47}, + {25}, + {75} + }, + { + {-70}, + {31}, + {-72} + }, + { + {-64}, + {117}, + {10} + } + }, + { + { + {-16}, + {-33}, + {74} + }, + { + {25}, + {8}, + {28} + }, + { + {-51}, + {-52}, + {111} + } + }, + { + { + {-60}, + {68}, + {76} + }, + { + {95}, + {-28}, + {-108} + }, + { + {-55}, + {-115}, + {27} + } + }, + { + { + {82}, + {-64}, + {44} + }, + { + {66}, + {88}, + {-6} + }, + { + {117}, + {-25}, + {21} + } + }, + { + { + {70}, + {104}, + {51} + }, + { + {70}, + {104}, + {-70} + }, + { + {-57}, + {-17}, + {50} + } + }, + { + { + {-99}, + {-29}, + {-47} + }, + { + {-26}, + {-21}, + {-98} + }, + { + {103}, + {103}, + {-76} + } + }, + { + { + {-120}, + {-77}, + {-74} + }, + { + {-64}, + {83}, + {-81} + }, + { + {83}, + {104}, + {115} + } + }, + { + { + {-10}, + {-73}, + {57} + }, + { + {1}, + {20}, + {18} + }, + { + {62}, + {80}, + {-113} + } + }, + { + { + {34}, + {-29}, + {-55} + }, + { + {96}, + {53}, + {-88} + }, + { + {69}, + {107}, + {32} + } + }, + { + { + {44}, + {-80}, + {112} + }, + { + {50}, + {44}, + {5} + }, + { + {47}, + {8}, + {28} + } + }, + { + { + {24}, + {21}, + {76} + }, + { + {48}, + {-81}, + {17} + }, + { + {84}, + {96}, + {90} + } + }, + { + { + {-116}, + {-18}, + {27} + }, + { + {2}, + {104}, + {-31} + }, + { + {32}, + {-37}, + {-93} + } + }, + { + { + {97}, + {11}, + {48} + }, + { + {-20}, + {104}, + {-91} + }, + { + {-93}, + {84}, + {-113} + } + }, + { + { + {123}, + {118}, + {54} + }, + { + {37}, + {-103}, + {-40} + }, + { + {54}, + {-78}, + {102} + } + }, + { + { + {-32}, + {-50}, + {0} + }, + { + {-21}, + {39}, + {0} + }, + { + {-87}, + {-1}, + {-14} + } + }, + { + { + {39}, + {-106}, + {96} + }, + { + {29}, + {71}, + {56} + }, + { + {41}, + {0}, + {55} + } + }, + { + { + {-30}, + {-94}, + {3} + }, + { + {-47}, + {30}, + {-68} + }, + { + {49}, + {23}, + {114} + } + }, + { + { + {107}, + {38}, + {117} + }, + { + {-87}, + {102}, + {-65} + }, + { + {-105}, + {-6}, + {91} + } + }, + { + { + {-6}, + {36}, + {90} + }, + { + {-79}, + {33}, + {50} + }, + { + {-32}, + {20}, + {-60} + } + }, + { + { + {13}, + {90}, + {-35} + }, + { + {91}, + {-59}, + {-107} + }, + { + {-114}, + {38}, + {-62} + } + }, + { + { + {88}, + {-21}, + {-21} + }, + { + {-87}, + {-110}, + {104} + }, + { + {10}, + {77}, + {9} + } + }, + { + { + {-2}, + {-9}, + {-52} + }, + { + {-11}, + {-84}, + {81} + }, + { + {43}, + {-24}, + {-64} + } + }, + { + { + {-100}, + {51}, + {40} + }, + { + {-91}, + {54}, + {-115} + }, + { + {34}, + {47}, + {-34} + } + }, + { + { + {-42}, + {74}, + {-28} + }, + { + {-69}, + {42}, + {87} + }, + { + {82}, + {46}, + {-30} + } + }, + { + { + {-94}, + {-97}, + {117} + }, + { + {-77}, + {-65}, + {22} + }, + { + {108}, + {4}, + {103} + } + }, + { + { + {4}, + {-20}, + {93} + }, + { + {100}, + {-46}, + {22} + }, + { + {46}, + {-85}, + {70} + } + }, + { + { + {-21}, + {-78}, + {-11} + }, + { + {-55}, + {-32}, + {-64} + }, + { + {-107}, + {-77}, + {51} + } + }, + { + { + {-67}, + {67}, + {23} + }, + { + {73}, + {33}, + {-74} + }, + { + {114}, + {-13}, + {26} + } + }, + { + { + {12}, + {98}, + {-37} + }, + { + {89}, + {78}, + {-98} + }, + { + {-15}, + {57}, + {32} + } + }, + { + { + {109}, + {-108}, + {-24} + }, + { + {26}, + {71}, + {76} + }, + { + {-16}, + {-34}, + {-72} + } + }, + { + { + {107}, + {-46}, + {-86} + }, + { + {-61}, + {-87}, + {24} + }, + { + {22}, + {31}, + {-92} + } + }, + { + { + {86}, + {98}, + {110} + }, + { + {-52}, + {-54}, + {-79} + }, + { + {-75}, + {24}, + {21} + } + }, + { + { + {12}, + {-19}, + {-54} + }, + { + {-88}, + {-114}, + {48} + }, + { + {0}, + {17}, + {29} + } + }, + { + { + {-96}, + {78}, + {-48} + }, + { + {-92}, + {74}, + {-42} + }, + { + {90}, + {-7}, + {-106} + } + }, + { + { + {0}, + {-91}, + {23} + }, + { + {-86}, + {38}, + {71} + }, + { + {-27}, + {-85}, + {-5} + } + }, + { + { + {99}, + {107}, + {-100} + }, + { + {96}, + {111}, + {-5} + }, + { + {-11}, + {115}, + {86} + } + }, + { + { + {-93}, + {-35}, + {88} + }, + { + {8}, + {100}, + {74} + }, + { + {-1}, + {14}, + {17} + } + }, + { + { + {22}, + {-82}, + {20} + }, + { + {41}, + {97}, + {16} + }, + { + {-81}, + {3}, + {38} + } + }, + { + { + {52}, + {-61}, + {5} + }, + { + {-103}, + {-60}, + {16} + }, + { + {-117}, + {101}, + {3} + } + }, + { + { + {21}, + {96}, + {41} + }, + { + {32}, + {-53}, + {-86} + }, + { + {103}, + {9}, + {-40} + } + }, + { + { + {99}, + {-1}, + {-28} + }, + { + {106}, + {-43}, + {-17} + }, + { + {-109}, + {100}, + {-4} + } + }, + { + { + {-103}, + {-45}, + {17} + }, + { + {36}, + {25}, + {113} + }, + { + {84}, + {-63}, + {-87} + } + }, + { + { + {43}, + {-2}, + {87} + }, + { + {57}, + {81}, + {31} + }, + { + {14}, + {56}, + {-65} + } + }, + { + { + {-42}, + {-23}, + {-9} + }, + { + {-85}, + {89}, + {59} + }, + { + {105}, + {-75}, + {24} + } + }, + { + { + {58}, + {5}, + {40} + }, + { + {-115}, + {-88}, + {65} + }, + { + {-26}, + {-19}, + {87} + } + }, + { + { + {-75}, + {-13}, + {-40} + }, + { + {76}, + {69}, + {-81} + }, + { + {37}, + {-116}, + {-92} + } + }, + { + { + {-108}, + {-7}, + {64} + }, + { + {-9}, + {51}, + {86} + }, + { + {-28}, + {-90}, + {77} + } + }, + { + { + {-33}, + {112}, + {39} + }, + { + {-38}, + {102}, + {-9} + }, + { + {-111}, + {89}, + {-15} + } + }, + { + { + {-31}, + {8}, + {93} + }, + { + {-4}, + {-104}, + {-4} + }, + { + {-10}, + {-111}, + {-32} + } + }, + { + { + {61}, + {97}, + {-61} + }, + { + {-54}, + {-38}, + {108} + }, + { + {-9}, + {-8}, + {106} + } + }, + { + { + {-64}, + {-12}, + {-23} + }, + { + {-10}, + {116}, + {-26} + }, + { + {80}, + {35}, + {-60} + } + }, + { + { + {91}, + {120}, + {-46} + }, + { + {81}, + {74}, + {-36} + }, + { + {-67}, + {13}, + {-108} + } + }, + { + { + {-31}, + {-26}, + {33} + }, + { + {-24}, + {-1}, + {12} + }, + { + {33}, + {-30}, + {-45} + } + }, + { + { + {-32}, + {109}, + {109} + }, + { + {30}, + {-81}, + {110} + }, + { + {95}, + {-1}, + {9} + } + }, + { + { + {47}, + {-103}, + {-33} + }, + { + {-26}, + {-43}, + {60} + }, + { + {-109}, + {-94}, + {80} + } + }, + { + { + {51}, + {86}, + {-94} + }, + { + {16}, + {14}, + {118} + }, + { + {9}, + {98}, + {-22} + } + }, + { + { + {120}, + {99}, + {-27} + }, + { + {56}, + {-61}, + {37} + }, + { + {34}, + {-46}, + {-25} + } + }, + { + { + {-10}, + {-31}, + {-50} + }, + { + {-50}, + {-2}, + {19} + }, + { + {91}, + {-114}, + {-78} + } + }, + { + { + {-112}, + {-54}, + {-86} + }, + { + {53}, + {25}, + {-53} + }, + { + {-15}, + {57}, + {14} + } + }, + { + { + {77}, + {-24}, + {-25} + }, + { + {-61}, + {92}, + {-113} + }, + { + {-12}, + {44}, + {40} + } + }, + { + { + {3}, + {14}, + {-19} + }, + { + {7}, + {63}, + {66} + }, + { + {-43}, + {41}, + {70} + } + }, + { + { + {94}, + {102}, + {55} + }, + { + {-91}, + {5}, + {38} + }, + { + {65}, + {-34}, + {40} + } + }, + { + { + {-17}, + {-55}, + {-105} + }, + { + {1}, + {-30}, + {53} + }, + { + {-29}, + {-114}, + {-94} + } + }, + { + { + {28}, + {90}, + {6} + }, + { + {-108}, + {80}, + {-100} + }, + { + {9}, + {-58}, + {-33} + } + }, + { + { + {50}, + {-6}, + {-108} + }, + { + {5}, + {-72}, + {2} + }, + { + {14}, + {-71}, + {35} + } + }, + { + { + {113}, + {-15}, + {-105} + }, + { + {-68}, + {-38}, + {3} + }, + { + {-52}, + {-70}, + {-29} + } + }, + { + { + {-48}, + {77}, + {54} + }, + { + {-78}, + {52}, + {-45} + }, + { + {-74}, + {-88}, + {-8} + } + }, + { + { + {-26}, + {-59}, + {116} + }, + { + {37}, + {-61}, + {-17} + }, + { + {30}, + {58}, + {69} + } + }, + { + { + {-94}, + {-6}, + {-49} + }, + { + {57}, + {22}, + {-35} + }, + { + {45}, + {84}, + {64} + } + }, + { + { + {-56}, + {-38}, + {-84} + }, + { + {20}, + {8}, + {-29} + }, + { + {-60}, + {122}, + {-49} + } + }, + { + { + {-10}, + {-33}, + {46} + }, + { + {107}, + {-112}, + {-48} + }, + { + {71}, + {74}, + {-56} + } + }, + { + { + {-114}, + {-53}, + {12} + }, + { + {-118}, + {-109}, + {-34} + }, + { + {105}, + {-25}, + {115} + } + }, + { + { + {97}, + {97}, + {32} + }, + { + {70}, + {-10}, + {106} + }, + { + {-72}, + {9}, + {118} + } + }, + { + { + {80}, + {-71}, + {-26} + }, + { + {-73}, + {77}, + {71} + }, + { + {116}, + {-76}, + {-49} + } + }, + { + { + {7}, + {47}, + {-72} + }, + { + {-111}, + {-1}, + {-29} + }, + { + {52}, + {-2}, + {-110} + } + }, + { + { + {-60}, + {30}, + {51} + }, + { + {30}, + {100}, + {-97} + }, + { + {-77}, + {-95}, + {-86} + } + }, + { + { + {80}, + {42}, + {7} + }, + { + {113}, + {106}, + {118} + }, + { + {54}, + {60}, + {-39} + } + }, + { + { + {-43}, + {38}, + {-67} + }, + { + {73}, + {84}, + {113} + }, + { + {62}, + {24}, + {63} + } + }, + { + { + {-104}, + {-42}, + {45} + }, + { + {83}, + {17}, + {111} + }, + { + {-114}, + {7}, + {-49} + } + }, + { + { + {-56}, + {69}, + {69} + }, + { + {19}, + {-76}, + {-85} + }, + { + {6}, + {104}, + {37} + } + }, + { + { + {-69}, + {-14}, + {-38} + }, + { + {80}, + {59}, + {5} + }, + { + {-94}, + {-75}, + {-51} + } + }, + { + { + {-103}, + {-55}, + {-99} + }, + { + {83}, + {-62}, + {-1} + }, + { + {97}, + {24}, + {-109} + } + }, + { + { + {-51}, + {14}, + {97} + }, + { + {65}, + {76}, + {-113} + }, + { + {113}, + {11}, + {84} + } + } +}; + +static const int F10[256][128] = { + {34, 57, 61, -46, 67, 11, -14, 59, 12, 63, 17, -76, -40, 17, -25, 3, 73, -35, -62, 55, -52, 67, -5, 0, 92, -28, 61, -20, 61, 71, -8, 9, 48, -23, 33, -75, -42, 57, 16, 0, 42, -57, -56, 58, -86, 79, 94, -90, 92, 1, -7, -16, 17, 7, -32, -44, -46, -57, -24, -58, 20, 5, 31, -59, -1, -9, 32, 72, -28, -8, 76, 53, 24, 46, -46, 37, -6, 8, -22, 14, 80, 91, -54, -49, 68, 20, -66, -63, -39, 0, 21, 25, 0, -35, -45, 64, 24, -27, -63, -12, -83, 6, -86, 49, -61, 94, 49, -89, -79, 51, -68, -6, -82, -6, 43, 88, 34, 25, -4, -67, -1, -44, 36, 39, 21, 68, 1, 1}, + {-72, -26, 79, -52, 84, 54, -36, 37, 42, 28, -79, -91, 27, -4, -40, -20, -34, 1, 4, 38, 68, 27, -40, 4, 23, 20, 30, 46, -71, -13, -42, -11, 63, 76, -38, -16, 36, -92, 47, 54, -52, 41, 47, 92, 68, -13, 27, 45, -38, 89, -11, -77, 9, 43, -48, 18, -39, 30, 33, 54, 53, -88, 57, 26, 55, 1, -68, 58, 34, -33, 82, 18, -16, 58, -68, -57, 45, 13, 12, 45, -15, -13, 16, -54, 93, -18, -4, -19, -55, 71, -85, 55, 70, 55, -78, -21, 36, 83, 84, 8, -54, -42, 92, 25, 18, 55, 31, 80, -66, -39, 80, 26, -58, -82, 66, -84, 21, -33, 3, -48, -48, -25, -28, 3, -65, -78, 21, -45}, + {45, -17, -28, -39, -32, -73, -31, 74, -65, -69, -86, 30, -59, -5, -14, -23, -45, -64, -74, 73, -8, -65, 82, 60, -54, 74, 57, -51, 58, 19, 38, 23, -24, -14, 6, -26, -44, 48, -9, 14, -45, -4, -36, -27, -74, -43, 9, 64, -58, -37, -57, -15, 11, -60, 84, -87, 9, -22, -77, 79, 37, -56, -42, 10, 92, 73, 7, 4, 37, 42, -7, 41, 36, 60, -55, -57, -29, 22, -2, 2, -25, 16, 14, -43, -50, 22, 0, -18, 43, -64, 34, -12, 92, -55, 37, -34, 5, 48, -39, 31, 35, -56, -13, -35, -65, -82, 87, -11, -68, 89, 85, 39, 38, 10, -18, -14, -54, -14, -62, 67, 74, 53, 33, 31, -41, 19, -88, -27}, + {-44, 29, 17, -82, -12, 20, 18, 26, -27, -78, 52, 47, -41, 16, -25, 31, -93, -28, 38, 59, -41, 93, 38, -68, -24, 37, -10, -11, 63, -27, 46, -25, -49, 52, 72, 33, -68, -51, -39, 52, -47, -62, -29, -33, 19, -23, 15, 65, -85, -13, 57, -16, -13, 55, -35, -34, 12, 0, 72, -62, 36, -3, 39, 62, -22, 30, -89, -3, 85, -54, -64, -91, -80, -62, -20, -74, 39, 14, -28, 5, -89, 34, 18, 3, 80, 35, 56, -46, 57, -69, -4, -13, 80, -4, -39, -90, 78, -55, -60, 92, -71, -12, -36, 74, 43, -4, -26, 76, 19, -80, -49, 75, -29, 15, 42, 16, 45, 17, -47, 92, 62, -85, 69, 6, 71, -52, 5, -82}, + {45, 23, -2, -1, 52, -3, 28, -26, -31, -88, 28, -90, 62, -34, 60, -25, -38, 72, -77, -25, -27, 90, -57, 50, 36, -11, -4, 29, -62, 61, -32, -84, -100, -3, -30, -43, 87, -32, -24, -86, 84, 83, 80, -86, -8, 0, 82, -45, -52, -62, 79, -78, -58, -31, -17, -9, 88, 57, -16, 47, -40, -22, 14, -38, -17, 79, -74, 35, 36, 74, 30, 63, 95, 77, 32, -75, 20, 5, -9, 37, 45, -9, -49, 72, 82, 80, 14, 55, 6, -62, 5, 86, 79, 27, 1, -8, 87, -76, -49, -83, -3, -45, 26, -75, 91, 43, -4, 94, 30, 42, -55, 7, 36, 39, 16, -61, -66, 0, 73, 50, 77, 75, 81, 61, 36, 40, -7, -22}, + {-87, 36, 37, -50, -30, 31, -76, 87, -91, 45, 26, -75, -59, -22, 9, -48, 31, -14, 24, -72, 69, -50, 65, 45, -84, 13, 88, 16, -68, -4, 30, 2, 66, -92, -45, 35, -80, 79, -60, 23, -44, -68, 58, -32, -37, 73, 27, 35, 19, -17, -26, 65, -20, 76, 11, -3, -44, -71, 78, 56, -58, 28, 102, 92, -15, -73, 59, 49, 45, -105, 48, 44, -47, 32, 92, -39, 54, 37, 93, 67, -16, -60, -10, 18, -45, -54, 47, -17, 15, -91, 71, 68, -48, -27, -109, -61, -26, 44, -3, 39, -25, 73, -19, 74, -82, 19, 72, -88, 71, 45, 57, -8, 74, 32, 105, -54, -27, 52, -31, -62, 31, -29, 3, 37, 27, -35, -84, 43}, + {26, -27, 13, -53, 19, -52, 2, 43, -27, 107, -36, 26, -67, 34, -54, 91, 36, 61, -4, 79, -45, 81, 25, -20, -60, 67, 83, -72, -41, 58, -46, 80, -4, -68, -27, -66, -77, -35, 103, 12, 93, 46, 28, -51, 74, 36, 80, 58, 17, -69, 92, 50, 36, 3, -74, -20, -21, 59, 4, -103, -59, 30, 110, 23, -56, 19, 88, -51, 30, -49, 84, 65, 61, 25, 96, 66, 94, -69, 9, -59, 73, 2, -29, 2, -42, 69, 3, 48, -31, -70, 49, -78, -43, -37, 22, -68, -65, -69, 40, -37, 83, 82, -3, -69, 35, 36, 80, -111, 88, 58, -33, -5, -34, -35, -51, 66, 57, -22, 4, 43, 79, -6, -61, -86, -46, -41, 15, 12}, + {37, 10, 13, -5, -33, -31, -95, 2, 40, -24, 77, 15, -90, 21, -77, -8, 58, 20, -49, 92, -62, 60, -80, -46, -4, 78, -13, -5, 14, 2, 62, -7, -44, -60, 24, -81, -27, -10, -26, -82, 32, -21, -24, 12, 76, 23, 65, -88, -89, -45, -51, -38, -34, 34, 29, -7, -93, 30, -26, -9, -45, 14, 25, -58, -3, -60, -54, 32, -51, 64, 92, -86, 52, -38, -57, 86, 35, -18, 40, -17, -44, -31, 85, -32, -82, 84, 24, 83, 45, -41, -24, 57, 87, 43, -39, -54, 61, -69, -91, -49, -78, -69, 7, -4, 79, -61, -22, 5, -5, -93, 86, -9, 1, -8, 49, 10, 82, 90, -41, 70, -42, -57, -92, -92, -91, -13, 6, -26}, + {52, -44, -83, 11, 79, -47, 46, 68, 0, -71, -26, 54, -38, 4, -8, 15, 97, -36, -5, 8, 37, -75, -63, -44, 56, 64, -36, 60, -27, 62, -19, 50, -76, -5, 86, -83, -22, 23, 53, 22, -3, -10, -52, 6, -66, -75, 92, -33, -83, 70, 0, 24, -95, 41, 14, -11, -81, -70, -3, -4, -19, -37, 73, -42, 2, 7, -83, -79, 82, -71, -26, -4, 8, 63, 59, 24, 1, 87, -18, -76, -22, -60, -66, 22, -45, 26, -32, -2, 51, 71, -87, 41, 54, -91, -69, -38, -50, -53, 94, -60, 87, 74, -88, -26, -14, 73, -75, 49, -28, 22, 26, 89, -33, -78, -74, -84, -27, 6, -81, 49, 31, -57, -75, 85, -10, -48, -1, 9}, + {-109, -11, 58, -4, 26, 23, -36, 77, -67, 2, -28, 51, -41, -68, 8, -28, -5, 70, 35, -41, -31, 2, 27, -19, 74, -26, -54, 107, 41, 75, 10, 56, -21, -19, 44, -73, -45, 56, -69, 57, -82, -36, 42, -66, 84, -12, -32, 29, -40, -38, -83, 0, -50, -23, 86, 42, -53, 91, 70, -9, 30, 73, -64, 47, 2, -49, 29, -69, 71, -50, 82, 45, 95, 27, 85, -25, -60, 10, 60, -56, 25, -99, -77, -90, 43, -49, 43, 30, -9, 22, -15, -78, -58, 14, 13, -1, -40, 31, -37, -71, 23, 104, 39, 80, -54, -33, -98, -61, -102, -45, 37, 26, -70, 20, 113, -121, -86, 70, -47, -12, -27, -34, 108, 7, 68, -81, -47, -48}, + {33, -80, -22, -26, -80, 29, 49, 78, 35, -27, 87, 4, -6, -49, -12, 90, -91, 39, 29, -29, -38, -45, -72, 46, 33, -84, 8, 47, 43, -69, 62, 8, -53, -91, -22, -58, -9, -80, -17, -56, 15, -80, 29, -76, 25, -19, 30, 52, -13, 59, -69, 74, 67, -17, 10, -13, -3, 27, 81, 73, -47, -7, -75, -15, -79, 73, 85, 0, -38, 63, -7, -68, 4, 36, -53, -46, 84, -22, 78, -63, -69, 43, -14, 42, -49, -73, 60, 24, -67, 85, -78, 66, 29, -89, 88, -66, -34, 76, 39, 88, -78, -57, -52, -41, -53, 10, 82, -9, 83, -2, 6, -59, 14, -68, -71, -69, -90, 88, 48, 35, -83, 2, 12, -62, 36, 58, 87, 34}, + {-31, 75, 35, 91, -75, 40, 90, 76, -36, -3, -13, -63, -76, -49, 93, 32, -25, -72, 8, 62, 14, 30, -90, 49, -66, -44, 81, 82, -52, 60, 16, 24, -94, -46, -68, -86, 51, -61, 59, 10, 32, -50, -41, -41, 83, -3, 48, 8, 55, 8, 91, -25, 52, 78, -61, 86, 7, -5, 47, 5, -93, 15, -8, 78, -39, -64, -62, -74, -37, -25, 0, -54, -81, 16, -25, -7, -37, -80, 1, 7, -59, 34, -58, 24, -38, -21, -83, -94, 6, 56, -16, 63, 8, 41, -81, -3, 53, -60, -35, -20, 6, 13, -55, -75, 53, -64, 17, -39, 21, -59, -51, -35, 15, 79, 5, 60, 76, 49, -89, 66, -7, 73, 3, -30, 27, 22, -32, -16}, + {-106, 63, 16, 93, -1, -83, -82, -72, -43, 12, -64, -69, -72, 64, 52, -63, 95, 84, -88, -41, -11, -35, -50, 67, 88, -30, 1, -50, 10, 81, -74, 73, -102, -69, 77, -3, 20, 66, 46, 69, 18, -45, -102, 18, -49, -53, 48, 33, 70, 69, -36, 9, -45, 13, -7, -23, -33, 80, -32, 55, 70, 69, 100, 68, 92, -78, -25, 26, -25, -74, 36, 86, -64, -66, -44, -24, -83, 43, -80, 7, -42, 7, -39, -21, 66, 39, 30, 96, -82, 68, 52, 52, 31, 56, 49, 36, 12, -31, 80, -38, 26, 78, 50, 65, -87, -1, 21, -50, 9, 35, 25, -76, 21, 40, -34, -21, 35, 70, 74, -60, 66, -58, 56, 58, 8, 7, 50, 30}, + {-39, 17, -11, -15, -12, -87, 69, 18, -72, -14, -48, 57, -11, 88, -73, -6, -54, -8, 47, -74, 47, -41, 25, -30, -40, -76, -51, -55, -56, 64, -36, -5, 51, -86, 21, -54, -90, 61, -89, 17, 2, -87, 8, 10, -59, 49, 8, -58, -26, 49, -72, -61, -54, 12, 63, -13, -94, -39, 85, 79, 68, 3, 16, -38, -87, 38, -79, -1, 13, -11, -15, -72, 18, -85, 30, 39, -51, -78, 65, -1, -50, 34, -44, -7, -30, -87, 5, 18, -94, 32, -24, 79, -28, -80, 44, -55, 85, 90, 41, -54, -41, 3, 78, 29, 64, 19, -73, 49, -23, -1, -92, 33, 75, -60, 66, 9, 64, -58, -45, -86, -68, 26, -78, -81, 68, -32, 39, 30}, + {8, -15, -72, 47, -28, 39, 24, -83, 16, -57, -10, 106, 53, -21, 3, 47, 85, 22, -62, 46, -4, 17, -23, -94, 93, 81, -88, 55, -5, 92, -71, -68, -33, 102, 37, -21, -71, 69, -78, -52, -25, 45, 9, -59, 4, -60, -58, 64, 83, 59, 27, 61, -28, -50, 90, 5, -64, 71, -17, 37, 75, 28, 96, -53, -68, -22, 93, 33, -1, -1, -29, -89, -67, 75, 80, -1, 74, -97, 12, -28, 98, -62, 84, 11, 84, 7, -67, 81, -11, 26, 48, 51, -5, -62, -71, 68, -60, -8, 29, 68, 49, -58, 84, 14, -38, -17, -13, 6, 16, -24, 15, 16, -43, 69, 83, 81, -70, 30, -40, -71, -63, 81, -45, -21, 54, 28, 7, 18}, + {-57, -63, 83, -17, -57, -40, 56, -11, 0, 2, -9, -71, 15, 66, 36, -43, -39, -69, -6, -93, -92, 37, -56, -19, -6, -50, 31, 88, 64, 9, 36, -52, -64, -9, -84, -52, -75, 79, 7, -45, -31, -65, 29, -10, -52, -3, 98, 74, -46, -3, -15, -27, 23, -87, 45, 60, -91, -3, 50, -49, 81, -26, -76, -33, -14, 39, 52, -53, 48, -84, -17, -65, -27, -59, 104, -2, -58, 1, 49, 28, 43, 25, -74, 67, 77, 14, -30, 89, -77, -68, 42, 65, -32, -72, 9, -71, 22, -85, -11, 112, 54, -74, -84, -105, -60, 44, -17, 73, -5, -31, 7, -20, 17, 60, 33, 29, 86, 41, 24, -53, -9, 57, 12, 76, -69, 6, 59, 45}, + {-116, 3, 4, -44, 46, -17, 17, -84, 57, -39, -18, -15, -63, 66, 92, -38, -3, -2, 78, -70, -24, 75, 74, 28, 72, -34, 12, -23, -78, 63, 85, -46, -31, 25, -30, 45, -1, -24, 112, 20, 26, -49, -81, -51, 87, -33, 17, 89, -77, 62, -55, 84, 28, 110, 49, 92, 18, 37, 22, -5, -23, -8, 92, -3, 20, 30, -82, -89, 66, 97, 6, -12, 101, -33, 4, -13, -11, 84, 56, 85, -39, -47, -33, 57, 40, -91, 21, 41, -17, -84, -36, -55, 58, 40, -101, -46, -21, 52, 112, 65, -48, -41, -34, 63, -83, -63, -55, -92, 37, -88, -50, -15, -46, -32, -39, -12, 15, 43, 52, 17, -27, -11, 81, 8, -36, -51, -59, 81}, + {77, 87, 61, 42, 108, 102, 52, 54, 68, 2, -65, -2, 50, -68, -8, -72, -7, 86, -52, 20, 4, 100, 57, -72, 103, -93, 75, -30, 53, 82, 50, 81, 37, 11, -75, -4, 21, 60, -35, 87, 20, 53, -30, 30, -35, -73, -4, 16, 64, 65, 91, -11, 95, 69, 34, 96, 4, 66, 46, 79, 20, 90, -13, -31, 24, 3, -11, 84, 60, 50, 26, -12, -46, -22, -106, -42, 24, 67, -47, 19, -82, 88, -22, 33, 28, -41, 17, -85, -55, 22, -71, -18, 43, -50, 4, 70, 80, -18, -68, -81, 52, 77, 64, -57, 58, -5, 83, 33, 25, 93, 83, -2, 72, 63, -46, 57, 20, -21, -48, -53, 9, -13, -74, -30, -48, 39, -41, 93}, + {14, -53, -84, 78, -56, 51, 69, -50, -40, 54, 29, -45, -61, -23, -18, 90, -16, -11, -55, -37, 27, -76, -50, -12, 45, -83, 81, 39, -1, -9, 6, -10, 54, -81, -58, 33, 55, 36, -82, -3, 34, -9, -31, 69, -62, -47, 90, 64, 106, 49, 80, 51, 54, -1, 42, 16, 14, 92, 18, 120, 94, 87, -50, -7, -51, 69, -52, -3, 8, 63, -32, 27, -88, 78, 92, 46, 22, 86, -21, 108, 23, -33, -17, -18, 91, 101, 95, 100, -73, 65, 8, -2, -73, 36, -4, -71, -56, 69, -77, 49, -87, -62, -94, -44, 37, -11, -65, 28, 14, 15, -11, 89, -78, 67, -84, -93, -54, -43, 63, 14, -72, 100, 4, -76, 106, -39, 94, 91}, + {-88, 42, 13, 7, 66, -8, -14, -23, 2, 43, -80, -4, 13, 12, 11, -59, -79, -3, -10, 25, 62, 19, -50, 87, -82, -11, -18, -72, -64, 46, 5, -80, -64, 26, 9, 89, 47, -4, 33, 55, 49, -67, 40, 94, -46, 81, -16, 52, -71, 56, 94, 20, -26, -49, -3, 86, -38, -57, -35, -49, -18, 63, 4, 33, -31, 12, -28, 52, -48, 94, -84, 56, -72, -19, -90, 5, 10, -20, 49, 85, 76, -28, 29, 54, -72, 2, -59, 11, -72, 8, 53, 91, -84, -62, 33, -37, 91, -16, -93, -72, -28, -68, 41, -2, 75, -80, 21, 90, 24, 70, -45, 42, -66, -92, 88, 86, 21, -67, 64, 43, 71, 21, 54, 17, -46, 55, -90, 85}, + {59, -82, 17, -33, 84, -94, 91, -85, 75, -35, 24, -26, -24, 16, 20, -6, 38, 54, 13, 83, 28, -25, -48, 60, 106, -6, 91, 86, -54, -55, 106, 35, -90, 68, -3, -89, -31, -20, 86, -25, -66, -26, 41, 60, 52, 11, 27, 21, 36, 2, -23, -79, 73, -14, 11, -20, -38, 92, 9, 6, 72, 59, 21, -89, 92, -32, 83, -82, -56, 56, -74, 31, -18, 8, -31, 16, -44, -78, -47, 55, -4, -25, 81, 34, -8, 65, 67, 11, 88, -51, -12, 35, 92, -24, -66, 60, 83, -71, 48, 9, 75, 66, 63, 56, 51, 7, 91, -27, -84, 46, -21, 15, 93, -90, 96, 39, 53, 32, 14, 8, 51, 55, -53, 24, 93, -15, 55, 89}, + {-88, -15, 5, 43, 3, 110, 22, -84, 63, 95, -37, -11, 50, -67, -9, -74, -23, 64, -81, 6, -66, -38, 79, -94, 1, -55, 12, 72, -9, 88, 58, 92, 18, -92, -86, -40, -29, 33, 24, 51, 91, 100, 52, -80, -30, -42, 6, 17, -52, -80, 55, 5, -42, 87, -51, 78, 12, 21, 33, -3, -79, 67, 48, 44, -65, 60, -94, 45, -71, -49, -83, 40, 38, -28, -68, -36, -44, 50, -23, 93, -67, 65, -75, -77, -34, 5, 4, 7, -34, -7, -71, -53, 20, -69, 43, -25, -64, 33, 86, -58, -78, 48, 75, -17, 36, 45, -62, -5, 5, -29, -73, -15, 52, -20, 32, 3, 41, 36, -52, 40, -84, 50, -68, 84, -59, 63, 19, -6}, + {-28, 91, -91, -86, -80, -34, -9, 88, 0, 19, 7, 27, -72, -19, -57, 50, -33, 26, -75, -67, -28, -70, -57, -15, -9, -67, 41, 48, 60, -36, -67, -39, 79, -17, 50, 73, -37, -43, 57, -15, 5, 17, -51, 75, 30, -27, 60, -79, 29, 89, 24, -82, -49, -31, -41, 0, -63, -83, 29, 28, -23, 54, -1, -15, -72, -28, -84, -39, -93, 18, 53, 48, -44, 79, 38, 27, 13, 1, -28, 73, -77, 16, -27, -16, -78, -36, 85, -58, 1, 69, -49, 17, 34, 50, -93, 58, -21, -8, 31, -88, 52, -9, 43, 94, -25, -23, -66, 89, -38, 13, 18, -19, 23, 28, -19, 44, 84, -82, 74, 1, -94, -68, 73, -5, 86, -74, -22, -68}, + {-41, -37, -43, 17, 7, -70, -45, -12, 49, -72, 57, -66, 78, -39, 39, 85, -4, -21, 64, -28, 7, 43, 54, 77, -87, 93, 19, -51, 55, 56, 58, -88, -38, 16, 6, -37, 5, 21, -70, 52, 45, 32, 28, -17, -7, 1, -61, -49, -88, -92, 17, -25, -82, 67, 74, -5, 76, 37, -81, -54, -21, 74, 12, 85, -88, -65, 37, -47, 21, -55, 10, 82, -36, -72, -79, 61, 0, -91, 40, 42, -93, -89, -51, 38, 89, -92, 39, -64, 32, -82, 4, 44, -48, -91, -51, -3, 12, -65, 35, 0, -38, 45, -72, 89, 74, 2, 31, 39, -68, -58, 8, 54, 32, -90, 49, -72, 15, -29, 87, -48, -54, 23, -68, -61, 69, -48, 10, -81}, + {32, -93, 80, 60, -36, 15, -6, 89, -61, 28, 15, 6, 34, 31, -72, -8, 80, -66, 81, 72, -14, 88, -75, -20, 45, -69, 79, 61, 89, 65, 59, -25, -51, 66, -29, 19, 95, -66, 66, 11, 91, 2, 46, 69, -15, 92, 26, -16, -32, 3, -89, 15, -1, 64, -57, -29, -70, -10, -31, 3, 96, 73, 57, -5, 39, -16, 56, 58, 19, 26, -53, 26, 47, 46, -19, 36, -75, 54, -46, 15, -69, -76, -27, -117, 60, -99, -16, 52, 43, 41, -72, -78, -6, -23, 42, 46, -32, 78, 61, -28, 95, 114, -32, -68, 89, 52, -50, -56, 6, -12, -13, 53, -74, -55, -91, 89, -59, -58, -73, -48, -41, -10, 95, 78, -3, 54, -100, 4}, + {32, -12, 90, 18, -52, -76, -35, -36, 3, 21, -79, -76, 31, -13, 30, 54, -7, 11, 9, -3, 81, -30, -35, -98, 54, -11, -54, -10, -12, 69, 12, 38, -84, -96, -33, -38, 0, -62, 86, 46, 26, -59, -13, 72, -9, -90, 32, 12, 79, 95, -9, 39, -22, 73, -29, 5, 58, 40, -7, 28, -32, 0, 46, 33, -59, 45, -66, 34, -66, 14, 20, -39, -77, -79, 74, -3, 74, -73, -3, -77, 10, -9, -62, -36, 48, -20, 65, 92, 82, -33, 39, 41, -72, 4, 68, -15, 22, 47, -6, 18, -77, -37, 79, 48, 12, -54, 20, -40, -42, -4, 36, 76, 90, -16, -18, 85, 79, 43, -77, 70, 62, 52, -9, 38, 70, -45, -48, 30}, + {16, -6, 22, 54, -70, -72, -73, -30, 15, 47, 54, -76, -22, -63, 46, -25, -68, 83, 58, 32, -52, 29, 82, 30, 88, -49, -59, 51, -63, -60, 67, 32, 61, 36, 43, -91, -11, 33, -3, 68, 13, 6, -49, 29, 29, 63, 74, -68, 76, -87, 31, 46, 47, -92, -13, 6, 10, -41, -81, 8, 6, 85, -50, -46, 5, 50, -80, 45, 8, 78, 91, 93, 12, -40, -57, -8, -10, 7, -72, -37, 0, 45, -89, -24, 74, -20, 37, 52, -64, -52, 2, 85, 23, 50, 49, 41, -1, -39, 84, -14, 10, -24, 60, 10, -24, 69, 18, -66, 56, 9, -15, 87, -63, 29, -78, -59, 47, -39, 87, 78, -49, 39, -74, -26, 75, -25, -74, 8}, + {62, 37, -64, 62, 3, -19, -45, -82, 3, -53, 27, 21, -18, 94, 68, 3, -20, -51, -78, 7, 45, 23, -32, 67, 45, -37, 32, 53, -32, 28, 52, -89, 11, 67, 87, 71, -69, 76, -55, 67, 17, 93, -73, 59, 76, -4, 72, 76, -99, 62, 59, 4, 5, 74, 12, 75, -19, 71, -45, -1, 79, 24, -22, -5, -47, 46, 42, -61, 55, -91, -50, 44, -29, 2, -70, -86, 80, -53, -28, -96, -58, -36, -3, 18, 12, -84, 0, -22, 71, 14, 61, 2, 32, 7, 29, -93, -22, -6, 65, -85, 44, 7, -44, 84, -49, -21, 92, -84, -10, -81, -53, 73, -53, 92, 98, -8, -70, -61, -102, 94, -75, 66, -70, -53, 50, -8, 40, -64}, + {66, -84, 66, -26, 87, -17, -16, -90, 68, -35, -14, 29, -32, 91, 72, 88, -27, 73, 54, -39, 33, -65, -14, 13, 83, -68, 48, 36, 89, 74, 76, -92, -25, 87, 7, 2, -12, -67, -56, -5, -14, 45, 17, 31, 90, -64, 76, -63, 90, 64, -45, -31, -29, -69, 79, -72, 45, 85, -72, 33, 66, -44, -55, -63, -11, 93, 61, -51, 27, 20, 40, -1, 36, -56, 10, 79, 29, 23, -60, -80, -33, 72, 66, -59, -15, -87, 55, -72, -37, 67, 32, -17, -3, -85, 48, -31, 33, 82, 93, -29, -4, 43, -93, 76, -47, -3, 50, -78, 86, -9, -35, -10, 82, 32, 44, 43, -47, 94, 52, 54, -25, -9, -21, 78, -30, 14, -84, -30}, + {59, 43, 46, -48, 58, 65, 52, 32, -67, 96, -62, 37, 42, -27, 12, -36, 120, -79, 20, -74, -10, -51, 38, 17, 54, -50, 66, -89, -6, 61, -88, 43, 19, -63, 32, 70, 86, 8, 42, -6, -10, 34, -54, -98, -62, 57, -20, -40, 3, -74, 51, -108, 96, -15, -13, 81, -88, 25, 51, 74, 20, -45, -42, -27, 53, -11, 69, 21, -24, 47, 40, -1, 113, 20, 42, 51, 53, -61, 10, -32, 21, 37, -42, -43, -8, -56, 4, -20, 82, 91, -17, -6, -41, -84, -101, 2, 46, -88, 106, -37, -13, -46, 63, 57, -72, 97, 58, 65, -18, 25, -17, -76, -91, 6, 43, 21, 52, 67, 19, -16, 67, -24, 25, -56, -21, 79, 41, -75}, + {85, -52, 16, -71, 93, 91, -69, 16, 1, -78, 81, 94, -12, -75, -61, -36, 44, 18, -12, 44, -65, 87, -53, 1, 71, 59, 67, -71, 67, 79, -23, -25, 21, 16, 32, 75, -71, 0, -33, 37, -54, -54, -52, -76, -25, -62, 65, -58, 26, 32, 88, 11, 46, -4, 97, -29, -10, 16, 94, 47, 73, 29, 81, 17, -33, 18, -32, -44, 3, -75, 49, -57, 99, 35, -31, -17, -86, 64, -28, -77, -60, 26, -55, -79, -20, 12, -27, -37, 32, 11, -38, 93, -88, 86, 47, 56, -27, -73, 1, 78, 8, -8, 44, -73, 55, 42, 39, -60, 8, -51, -61, 58, -21, 65, 65, -34, -54, 5, -58, 8, -47, 40, -1, 57, 6, 57, 89, -12}, + {-81, 52, -81, 18, 85, -64, 32, 86, 84, 84, 78, 58, 76, -20, 45, -11, 44, 85, -1, -38, 71, -88, 85, 26, 24, -48, 49, -23, 7, 77, 26, -54, 55, -55, 56, 46, 77, -48, 60, -24, -21, -33, 50, -63, -56, 5, -69, 44, -85, -40, 49, -101, -47, 29, -43, 35, -100, -18, 96, -47, 26, -47, -47, 52, 68, -6, 6, -2, -52, -42, -21, 7, -99, 44, -7, -88, -72, -74, -72, 68, 10, -103, -13, 44, 23, -99, -60, -53, 27, 41, -78, -92, 92, -40, -38, 33, -70, -53, -3, 66, 17, 94, 94, 16, 24, -24, 42, -4, 4, 48, -65, -20, -33, -16, -24, 88, 73, -35, 75, -38, 65, -105, 55, 33, -46, -89, -49, 62}, + {-33, -6, 5, -53, -99, 39, 30, -15, -12, -33, -8, 102, 53, -51, 62, 24, 92, 43, 81, 60, 88, -66, 44, -86, 60, 93, 90, -48, 74, -64, -70, -23, -2, -9, 50, -11, 21, 71, 88, -58, 2, -35, -57, -10, 110, 31, 77, -82, 70, 24, -19, -48, -81, -30, 81, -13, -97, 25, -71, -88, 49, 81, 18, 14, -3, -56, -88, 75, 50, 26, -103, 5, -13, -3, -91, 21, -88, -73, 31, -81, -82, 33, -32, 20, 50, -92, -49, 78, 47, -1, 59, 28, 57, 52, -68, -41, 27, 52, 12, -12, 64, -21, 13, -40, -12, -86, 41, 27, 57, -72, 80, -71, -65, 26, -58, 94, -83, -28, -71, 32, 50, -108, 25, 60, -13, -31, 65, 63}, + {-19, -73, -42, -58, 48, -64, -31, 85, 86, -71, -62, -20, -78, 42, -19, 54, -86, 72, -73, -42, 34, 50, 62, -89, 57, 66, 36, -9, -5, -28, 21, -27, -86, -8, 44, 69, -90, 33, -70, 48, 22, 1, 53, 73, 78, 15, 42, -3, -70, -50, -68, 82, 54, -43, 71, -82, 6, -14, -48, -57, -67, 24, 0, -59, -22, -40, 90, -59, -52, -58, -98, -45, -60, -68, 24, 54, -92, 33, 55, -19, -41, -79, -69, -64, -25, -14, -8, -44, -30, -14, 18, -24, 91, 47, 3, -30, 3, 12, -58, 32, -59, -42, -27, -89, 62, 62, 87, -91, -53, -50, 86, 36, -66, -72, 26, -60, -31, 48, -92, -81, -33, -69, 42, 92, -31, 60, -19, 74}, + {-63, -6, 85, -53, 63, 66, 62, -12, -82, 36, -83, 13, 43, -50, -19, -3, -13, -29, 35, 83, -99, -59, 78, -40, 1, -82, -97, -58, 26, -4, -37, 43, 58, -7, 44, -80, -35, 82, 59, -63, 14, 13, -51, -54, -17, -21, 27, 8, -42, -93, -34, 42, -43, 30, -74, 49, 45, -43, 16, -54, -9, 54, -6, 74, -35, 64, -74, -93, 5, -52, -25, 28, 51, -101, 11, 4, 57, 13, -66, -49, 68, -85, -28, -96, 39, -95, -89, -78, 84, 23, -38, 79, -19, -44, -48, -33, -24, 52, -16, -32, 104, 50, 67, 102, 16, -75, -17, 21, 48, 48, -86, -61, -58, -70, -40, -70, -60, 41, 41, 18, 45, 26, -16, 77, -5, -82, -21, -94}, + {-40, 93, 92, -87, 60, -52, 71, -89, 29, 94, -12, -56, 33, 64, 28, 60, 11, 28, -69, -1, 49, -18, -10, 47, 68, 49, -62, 121, 74, 35, 23, 62, -31, -22, 55, 70, 62, 23, -20, 16, -28, 35, 76, -50, -96, 9, -29, 56, -64, -73, -36, 68, -79, 35, 11, 50, -60, -43, 8, -45, 82, -42, -81, 53, 79, 18, -45, -37, 79, -43, 91, 19, 48, 79, 50, -35, 8, 94, -12, -75, -52, -47, -69, -32, 58, -23, 73, 52, 112, -85, -44, -31, 24, 35, 26, -38, -30, 52, 66, 34, 20, -12, 17, 20, 18, -62, -18, -2, -11, -10, -88, -53, 15, 34, -58, -9, -8, -51, -29, -9, 91, 98, 85, -64, 28, -9, -70, -69}, + {18, 17, -72, -26, -37, 4, -44, -45, 17, 96, 19, -28, -15, -15, -25, -38, -34, -85, 33, -86, 56, -67, 90, 42, -22, 72, -29, 43, 52, -54, -76, -29, -46, -64, 7, -44, -65, 93, 77, 4, 64, -27, -16, 65, 25, -42, 76, -15, 34, -36, 70, -70, -84, 26, 41, 98, -70, 20, 25, -74, -79, 18, 71, -16, -71, -97, -67, 64, -32, 95, 60, -6, 66, -41, 28, 64, -24, 64, 9, 74, -47, 3, -64, 13, 10, 9, -75, 99, -53, 32, -56, 10, 85, -42, -71, -36, 18, -79, 28, 19, 46, 48, 64, 68, 71, 11, 3, -34, 13, 58, 80, 89, 59, -31, 3, -10, -5, 59, -47, 2, 51, -51, 74, -29, 15, 1, 57, 20}, + {-95, 71, 21, 16, -40, -15, 76, -86, -80, -7, -55, -91, 91, 5, 36, -20, 25, -77, -26, 58, 65, -40, -79, 58, -19, -3, -17, -57, 77, 0, -39, 93, 52, -17, 65, 54, -63, -22, -72, -40, -78, 75, 38, -85, -75, 81, -31, 60, 15, 18, 52, 2, 66, 76, 75, 67, 25, -13, -88, 64, -15, -73, 7, -72, 45, 40, -43, 70, -54, 73, 78, 35, -86, -17, -46, -17, -13, 37, 89, -31, 20, -67, -32, 73, 83, 36, 7, -22, 83, 50, 56, -30, 93, 53, -73, 30, 3, 39, -94, -45, -8, 17, 48, -60, 57, 90, 43, -95, -52, 85, -22, 93, 54, -38, -60, -82, 86, -85, 43, 83, 31, -1, -42, 12, 9, -76, 8, 69}, + {18, 61, 23, -83, -14, -6, -68, -43, 35, -51, -28, 22, 57, 20, -39, 76, 88, -51, -81, -5, -3, -10, 98, 29, 55, -90, 94, 96, 105, -10, 103, -59, -46, 30, -70, 16, 41, 30, 44, -17, -24, 5, -45, -5, 21, -39, -5, -90, -25, -63, 38, 0, 20, 102, -20, 95, 53, 60, 57, -121, 47, -60, -48, -41, 63, 63, -13, 88, -50, -23, -40, -84, 73, 25, 28, -51, 29, 23, 85, -26, -12, -3, 57, -77, -53, -92, 12, 21, -62, 93, 76, 22, -54, 82, 77, -96, 70, -5, 108, 56, 9, -39, 4, -57, -33, 63, -76, 26, -85, 25, 69, 36, -58, -56, -32, -9, -1, 98, -42, 59, -89, 59, -11, -25, -63, -61, -115, -70}, + {56, 71, 56, -83, 20, 39, 61, 15, 73, 22, -73, 62, 41, -81, -57, 47, -55, 6, -10, -47, 68, 80, 66, -76, -32, 23, -22, 56, -36, -72, -81, 25, 47, -6, -62, 68, 13, -85, -82, 44, 73, -43, -77, 56, -40, -30, 14, 9, 59, 51, -87, -61, 77, -72, 10, 25, 33, 37, -78, -16, -37, 18, -39, -34, -6, 39, 68, -6, -88, -79, -89, -41, 81, -22, -62, -3, -54, 85, -5, -67, 30, -30, 79, 37, 32, 35, -41, 91, -25, 75, 16, 72, -38, -19, 63, -8, -9, -76, 18, -1, -76, -33, 1, 10, -11, 90, -26, -62, 93, 19, 21, -28, -81, -79, -22, 16, -75, 76, 45, 74, 51, 23, 66, -94, -19, -46, -19, -69}, + {-52, -33, 16, 22, 75, 6, -28, 54, 53, 20, 95, -10, -70, -87, -59, -58, 41, 74, -22, -84, 84, -48, 72, 89, 38, 90, -75, 61, 24, -1, -41, -42, -21, -96, 99, -28, 57, -51, -73, 29, 50, -71, 90, 31, -60, -24, 90, 92, 93, -27, 11, 16, 74, -45, 27, -38, -41, -62, -23, -67, 35, 15, -60, -59, 63, -70, -20, -25, 22, 98, -70, -49, 11, 95, -24, 78, -12, 55, -10, 13, 26, -11, 20, 47, 38, 84, 3, 97, -26, 38, 99, -53, -40, -4, -85, -38, 72, -32, 17, 66, 67, -30, -3, 79, 11, 83, 49, 106, -55, 60, 37, -86, -56, 37, 21, 82, 62, 77, -31, -13, -66, -7, 23, -31, 1, 27, 42, 48}, + {64, -40, -79, -21, 33, -31, -62, 32, 84, 12, -10, 39, 5, -18, 43, 41, 11, -24, -80, -34, 5, 50, -55, -79, -69, -2, 15, 3, -45, 19, -13, -60, -30, 52, -66, -83, -67, 83, 5, -71, -6, 24, 44, -37, -88, -27, 69, 90, -87, -29, -14, 37, 88, -12, 8, 40, 7, 72, -77, 25, -35, 88, 29, 28, 92, -21, 82, -20, -76, 62, -46, 64, 10, -60, -51, -6, 47, -68, -67, -2, 56, 24, -94, 43, -74, -88, -10, 57, -53, -7, 69, 87, 17, -35, 41, -69, -21, -72, -97, -58, 15, -77, 38, -79, 19, -47, -87, 57, 55, 8, -69, 74, -85, 87, 10, 28, -76, 41, 41, -72, -81, 70, 54, 19, 43, -79, 51, -3}, + {39, -36, 48, 23, 8, -25, -71, 79, 29, 72, -14, -56, 70, -49, 12, 32, -86, 22, 37, 48, -90, 105, -61, 3, -33, -47, 39, 72, 27, -24, 48, 61, 4, -73, 16, 82, -2, 77, 53, 80, 82, -64, 62, 74, -19, -32, -63, -83, -29, 43, 11, -67, -65, 97, 45, 40, 61, -91, -72, -75, 47, -95, -26, -83, -63, 19, 15, 35, -88, -3, 68, -72, 2, 32, -12, 76, -3, -99, -21, -100, 21, -72, 63, 18, -53, -87, -8, -54, 25, -18, 74, 71, -17, 71, -7, 61, 62, -7, 40, -6, 8, -48, -56, 113, -47, 8, -97, -21, -62, 28, -16, 83, -26, 68, -20, -44, -59, -47, -39, -87, 69, 62, 20, -87, 29, 18, -93, -82}, + {-19, -97, -44, -47, 18, -90, -12, -54, 46, 59, -93, -3, -60, -86, 68, 4, -28, 32, 35, -82, 9, 11, 70, 49, 11, -85, 47, -23, 52, 43, 42, -55, 113, -24, -27, 32, -8, -104, -26, -22, -52, 31, 103, 60, -19, -8, 68, -21, 37, 26, 72, 19, 91, -29, 60, -5, 48, -15, -31, -54, -65, 26, 111, -60, -47, 13, -68, -22, -115, 72, -36, 29, -54, 12, -18, 13, -53, 54, -2, 53, 66, 91, 20, 72, -16, 43, 37, 93, 4, 86, -85, 16, 77, -39, -67, 41, -44, -96, 82, 21, -6, -64, 41, 46, -50, -90, -33, 1, -1, -1, 64, -73, -42, -79, 2, 29, 26, -24, 70, 61, 9, -50, 25, -73, 58, 83, 0, -84}, + {-59, 10, 57, 65, 112, -65, 51, 34, -93, -28, -40, 70, -17, 36, 93, -17, 86, -63, 58, -23, 22, 29, -1, 26, 46, -48, 26, 76, 54, -17, 37, -77, -34, -86, 98, 0, -60, -82, -60, 57, -37, -124, -50, 21, 39, 73, 79, -49, 80, -64, -18, 35, 73, -78, 69, 15, 26, 11, 44, 25, -41, 46, -56, -29, -53, -40, -73, -78, 18, -39, 88, -33, -65, 73, -12, -6, -35, -27, -18, 77, 6, -46, -41, -72, 33, 47, 26, 24, 10, -62, -43, 91, -49, 80, 1, 30, 88, 88, -17, -10, 47, 9, -14, 25, -69, 58, -19, -6, -61, 76, 60, -17, 62, -54, -36, 80, 84, -38, 35, 48, 16, 101, -39, 55, -51, 61, 8, -28}, + {53, 34, 66, 0, 20, -78, 18, -42, -40, -49, 73, 2, 66, -94, -18, -44, -17, 16, 70, 44, 88, -60, -34, -26, -1, -39, -38, 36, -89, -76, 38, 17, -15, -81, -21, 61, 10, 10, 26, 37, -24, 70, 59, 60, 3, 16, 8, 69, -58, -92, -9, 57, -51, 65, -5, 89, 54, 89, -94, -47, -78, -46, -57, 28, 41, -22, 87, 44, -67, -25, -70, 67, -86, -69, -34, -9, 32, 87, -2, -76, -72, -7, 44, -36, -37, 21, 0, 42, 92, 54, -92, -16, 74, 37, 23, -61, -17, -11, -4, -34, -70, 4, 60, -49, 48, -41, -13, -90, 87, -57, 64, 67, -6, 87, -60, -50, 4, 27, -4, -1, 80, 70, 23, 91, 16, -42, -25, 45}, + {77, -30, 76, 9, 76, -17, 18, 8, 49, -15, 7, 77, 38, 2, -51, -8, -63, 18, -47, 27, -83, 87, 42, -66, 45, 30, 73, -23, -23, -58, 85, 14, -26, 82, -44, -64, -20, 7, -56, 65, -10, -54, 90, 11, 65, 1, -51, -75, 89, 92, -27, -17, 12, 11, -76, -38, -65, 16, 36, -24, 54, -28, 65, 11, -43, 76, -66, -27, -50, 54, -14, 19, -77, -74, 41, -12, 1, 49, 25, 68, -85, -93, 81, 8, 44, -28, 70, 6, 78, 37, 52, 21, 12, 83, -59, -67, 71, 76, -43, -83, 69, 85, 40, 33, -8, 60, 85, -85, 58, -17, -12, 77, -7, -39, 85, -65, -7, -12, 16, 72, -41, 81, -15, -45, 25, -59, -22, 72}, + {-19, -65, -14, -22, 56, -49, -13, 69, 71, -61, 70, 64, 85, -78, -19, -77, -70, -54, 38, 60, -45, -59, -72, -56, -65, -14, 51, 42, -71, 72, 15, -45, -46, 79, 76, -53, 77, -10, -23, -64, 95, 78, -65, 104, -90, 54, -57, 29, 53, -66, 33, 70, 8, -7, -18, 88, -13, 45, -7, -71, 16, -66, -15, 46, 2, -17, 5, 71, 67, -4, -83, -56, -32, -10, 68, 11, 53, -61, -78, 28, 64, 40, -38, 64, -57, -99, -69, -69, -61, -70, 55, -68, 10, -44, 66, 46, 7, -39, 93, -89, 43, -18, -6, -9, -47, 79, 30, -100, -20, -13, 42, 75, 54, -65, -89, 58, -93, 11, 80, -55, -35, -7, 26, -45, 84, -14, 51, -9}, + {15, -10, 42, -78, 16, 14, -18, -61, 62, -18, 53, -90, 96, 47, 109, 74, 33, 92, 7, 15, 96, -70, -43, 78, 105, -53, 31, 85, -18, -16, 55, 46, -50, 77, 18, 10, 41, 27, 81, -57, 30, 4, 45, 72, -4, 76, 98, -89, 75, 22, 82, -55, 94, 96, 76, -67, -50, 5, -60, -56, -16, 48, 2, 60, 13, 95, -34, 111, 5, 59, -74, -81, 47, 96, 16, 0, -20, 4, 78, 77, 20, 97, 81, -35, -11, 87, -5, 91, 89, 9, 36, 82, 61, -91, -93, -44, -63, -77, -57, -78, 39, -106, -9, -2, 16, -65, 36, 46, 50, 44, 15, -43, -58, 44, -103, 36, 24, 16, 93, -10, 108, 35, 110, -72, 16, -16, 65, 6}, + {-34, 17, 16, -90, -4, 6, 6, 80, 33, -7, 83, 87, 36, -88, 86, -85, 88, -71, -13, 44, -66, -59, 52, -63, -61, -39, -21, 104, 60, -72, -7, -32, -14, 68, -10, -37, 68, -46, -12, -5, 26, -2, 41, 6, 22, -80, 61, 37, 49, -74, -46, -87, -42, -34, 91, 40, -9, -79, 83, -5, 28, -89, 89, 44, 77, -89, -83, -52, -8, -69, -38, 21, -6, 28, -40, -74, -63, -10, 82, 30, 19, -11, -84, -30, 15, 85, -71, 26, -56, 34, 22, -44, 67, -24, -84, 67, -28, -60, 101, 94, 71, -23, -80, 47, -51, 42, 68, -5, -51, 56, -8, 55, 13, -52, -6, -67, 32, 26, -77, -23, -62, 32, -34, -8, 4, -39, -14, -94}, + {47, 65, 54, -23, -54, 61, -79, 17, 21, -26, 85, -67, -7, 4, 61, -91, 66, -87, -20, 57, 10, -98, -20, 19, 56, -88, -95, -47, -13, 12, 82, 56, -107, 71, 65, 41, -53, -39, -67, -91, -21, -53, -53, 56, -12, 81, -69, -81, -76, 49, 52, -37, -2, -102, 40, -39, 20, -62, 81, 85, 71, -20, -49, 25, -28, -70, -32, -62, -82, 4, -35, 71, -34, 16, 54, -39, -74, 30, -26, -48, -93, 42, 65, -59, -98, 88, -72, 33, 27, 13, -71, -19, 54, -12, 10, -76, 4, 53, -23, 10, -87, -56, -85, 1, 69, -40, -9, 28, 81, 81, 48, -51, -90, -17, 10, -38, 55, 59, -71, 42, 78, 76, 69, 28, 94, -33, 2, 20}, + {-63, 38, 10, -54, 2, -53, -34, -28, 51, 69, -27, 51, 70, 27, 44, -30, 48, 18, -53, 34, 17, 105, 75, 29, 25, 26, -20, -57, -20, -78, -79, -16, 33, 35, 18, 89, -74, 46, 12, 36, -78, 1, -63, 55, -21, 94, 34, 22, 36, 51, -46, -11, 51, -38, -53, -11, 27, -21, 24, 68, 54, -54, 8, 72, -85, 58, -70, 67, 12, 29, -2, 86, 89, 31, -58, -76, 96, 84, -50, -20, -58, 23, -42, 28, 53, -52, 45, 35, 20, 92, 68, -55, 94, -54, -24, -26, -70, -28, -89, 12, -13, -83, 91, 44, 71, -38, -53, -30, 36, -87, -61, 48, 64, -89, -62, -36, -48, -97, 4, -90, 13, 56, 14, 81, 28, 69, 66, -33}, + {-23, 21, 17, -68, -33, 36, -59, -34, -48, 64, -75, -94, -94, 32, 31, -50, 19, 55, 31, 81, 34, 17, -13, 14, 11, 12, -76, -4, -90, 89, 31, -60, 65, -68, -59, -54, -83, 83, -48, -83, -51, -22, -30, -59, 32, 53, -40, 18, -13, -92, -15, -43, -42, -90, -20, 26, -38, 63, -6, 30, 24, 61, -48, -44, 51, 44, 13, -31, 0, -93, -22, 7, 61, 42, 1, -81, 93, -37, -12, 32, 36, -88, -34, 93, -69, 10, 54, -16, -12, -74, -46, -66, -7, -31, 68, -80, 37, -69, -71, -38, 17, 7, -89, -19, 43, 83, -9, -24, 60, 77, 39, 86, -68, 86, 77, -14, -18, -9, 33, 79, 13, -76, -72, 37, -15, -62, 65, -85}, + {29, 29, 85, 54, -92, -18, -33, -43, 46, -51, 70, 65, -69, -89, 53, 18, -80, -69, 2, 41, 78, -60, -56, -38, -17, -41, 16, -24, 91, 0, 69, -49, 87, -74, 69, -94, -34, 68, 35, -88, 16, 86, -74, 17, -6, -77, 10, 26, -63, 34, -39, 11, -16, 50, 64, -64, 47, 93, 83, -87, -57, 6, -36, -20, -43, -64, 68, -56, -4, -37, -31, 31, 76, -40, -22, 66, -17, 0, -88, 39, 89, -35, -49, -76, -36, 41, -36, -60, -45, 77, 36, -6, -28, 15, -24, 9, -82, 85, 20, 72, -38, -83, 88, 20, 78, 70, -13, -9, 0, 68, 79, 81, 38, 84, 87, -41, 59, -57, -67, 90, 17, -78, 6, 6, 38, -50, -55, 78}, + {-25, -2, 91, -81, 22, 48, -46, 49, -17, 26, 88, 39, 6, 22, -3, -39, -78, -67, 17, 55, -84, 3, 48, -82, -26, 71, 4, -43, -34, 86, -37, -43, 37, 15, -80, -33, 41, 1, -83, 45, 73, 42, 58, 3, 5, 2, -80, 3, -32, 38, 84, 50, 71, 0, -77, 90, 10, -82, 48, 20, -78, 2, -65, 38, -29, -58, 1, 5, 44, 93, 66, 54, -60, -9, -7, 76, -90, -91, -11, 90, -89, 28, -66, 63, -60, -78, 55, 78, -60, -29, -45, -29, 31, -62, -21, -83, -37, -30, 34, -6, 37, 47, 84, -72, -78, -49, -29, -67, 59, 67, 1, 88, -84, 77, -73, -50, 72, -38, -76, 49, 44, 35, -69, -91, -34, 62, 14, 21}, + {-24, 57, -91, -56, 42, 47, 44, -48, 88, 64, -59, -51, 12, 71, 116, -75, -78, 21, -74, -38, 49, -10, 93, 70, 45, -46, -91, 126, 101, 2, 58, -56, 1, -90, -44, 0, 18, -21, -24, 68, 81, -118, 34, -16, 58, 41, 86, 49, 26, 64, 39, -58, 11, 5, -65, -29, 109, -18, 74, -88, -8, -6, -127, -20, 24, -56, -51, -8, -34, 62, -41, -37, 87, -54, 32, -52, 106, 78, 18, 30, -37, -77, 39, 50, -10, 41, 24, 1, 50, -52, 6, 28, 90, 84, -46, 77, 118, -9, -49, -112, 6, 79, 66, -42, -12, -48, 30, -27, 60, -1, -60, -54, 17, 8, 46, -14, -80, -15, 64, 66, 76, 23, 110, -52, -80, 41, -29, 51}, + {-56, 28, -53, -20, 66, 35, 49, 67, -30, 18, -52, 52, -43, 37, 10, -66, 36, -37, -5, -47, -32, -41, 88, -28, 3, -1, -5, 20, 91, 44, -86, -19, 82, 41, 6, -67, 5, 4, 86, -55, 50, -55, -27, -85, -66, -72, -61, -43, -12, -85, 67, -50, 51, -15, 6, -37, 92, 64, 9, 79, -15, 21, -56, 52, -58, 75, -18, 64, -26, -78, -56, 90, 30, 21, -15, -54, -6, -63, 36, -87, -63, 12, -7, -86, 46, -4, -3, -14, -84, 63, -64, 59, 63, -78, -92, 9, 60, -2, 28, -77, -21, -48, 17, -88, 79, 37, 16, -59, 62, -64, -8, -33, 49, -15, -67, -28, -6, 62, 16, 17, -39, 39, 19, 21, 41, -10, 50, 35}, + {-99, -53, 26, -54, -50, 75, 33, 17, -31, -97, 87, -38, -22, -85, -3, -33, 18, 93, -26, -55, 54, -95, 58, -23, -88, -75, 38, -35, 39, 87, 50, 76, -3, -36, 47, 80, 55, -57, -100, 87, -88, -75, -28, 77, 94, -53, -72, 71, -4, 63, -13, -20, -60, 20, 39, -49, 68, 83, -63, 63, 80, 35, 52, 94, -15, -54, -56, -20, -34, 43, -46, -49, -73, 11, 1, -10, -24, -83, 15, -24, -72, 63, 37, 63, 17, 18, 7, 80, 4, -64, 44, -60, 3, -44, 14, -49, 5, -92, -18, 63, 64, -31, -56, -71, -57, -50, -58, 36, 80, 14, -79, -24, 81, -42, -84, 66, -60, 43, -57, -5, -29, 25, -76, 71, -70, -73, 4, -70}, + {-7, -93, 10, -69, 67, 24, 49, -40, 2, -39, 19, 34, 75, 80, 67, -14, -42, -30, 25, 65, 26, 51, -39, -8, -62, -53, -80, -26, -36, 84, 16, -20, 61, 59, 49, -50, 86, 71, 75, -63, 57, -90, -19, -52, 1, -90, -58, 46, 41, 50, -37, 27, -38, -8, -47, 39, -26, -60, -60, 39, -15, 73, -8, -87, -19, 81, -82, -96, 95, 31, 36, -7, 87, -31, 50, 70, -82, 3, -8, -64, 56, -16, 35, 47, -97, -59, 47, -42, -38, 6, -8, -11, -18, 64, -38, 63, 25, -43, -75, -24, 62, 105, -38, -79, 47, -40, 6, -69, -35, 29, 71, -94, 57, -21, -44, 41, 60, 67, 35, 33, -106, -6, 11, -67, 51, -5, -23, 50}, + {82, -41, 13, 53, 47, -95, -87, 26, 20, -17, 19, 64, 54, -56, 52, -22, 3, -64, 32, 62, -10, -72, -67, 39, -43, -12, 61, -38, 49, -16, -78, 32, 94, 10, -40, 68, 54, -48, 71, 19, -11, -61, -57, 16, 5, 71, 73, -91, -66, -73, -62, -66, 27, -51, 27, 69, -74, 30, 41, 16, 33, -30, -78, -49, -17, 1, -50, -31, 72, -40, 100, 5, -92, -45, -61, -55, -65, 0, -87, -19, -40, -27, 75, 56, 89, 87, -74, -68, -32, 11, -21, -70, 89, 75, -73, 31, -53, 5, 37, -22, -32, -78, 43, 15, -14, 14, 56, 74, -33, 65, 79, 65, 37, 78, 32, -36, 71, 6, -63, 61, 24, 22, -22, -68, 93, 4, 81, -66}, + {38, -103, 82, 63, 40, 40, -7, -29, 59, -22, 3, 84, -22, 53, -81, 26, -39, -87, 55, 26, -41, 93, -52, -54, 13, -87, -45, -71, -50, -9, -56, 64, -60, 92, 46, 18, -1, 58, 84, -57, -14, 14, -73, 86, -61, 50, 39, 32, 46, 25, 34, 24, 56, 31, -59, -45, 73, -46, 86, -32, 16, 74, 47, -1, 32, -43, 72, -55, -66, -100, -26, -32, 74, -28, 87, -22, -11, 22, 77, 17, 53, 79, -69, 6, -11, 28, 11, 27, -44, 78, 83, 59, 67, -40, 62, -35, -26, -77, 91, -79, 12, -7, -77, -61, -40, 86, -60, 6, 12, 50, -82, 54, 19, 60, -70, 19, -81, -14, -31, -28, -85, -75, 70, -74, 78, 18, -12, 9}, + {94, 91, -49, -23, 103, -63, -78, 68, 54, -48, -33, -89, -17, 50, 0, 8, 70, 89, 38, -36, -84, -80, -10, 58, 71, 64, 34, -91, 5, -57, -2, 37, 84, -79, -36, 89, -53, 54, 48, -22, -81, -16, -74, -61, -61, -79, 20, 79, -25, 55, 37, 27, 72, 61, -66, -9, -76, 92, -112, -6, 67, -16, -74, 42, -61, 55, -49, 32, 20, 19, 95, -59, -35, -43, 16, 75, -48, -30, 74, 86, 111, -23, -15, 72, 65, -70, -68, 67, -39, -24, 59, 18, -27, -45, -30, -67, -46, -36, 12, 18, -90, 68, -45, -45, 9, 107, -53, 52, -16, -64, -10, -81, -79, 90, -72, 87, -33, 1, 68, -25, 25, 95, 10, -57, -41, -15, -6, 83}, + {-22, 65, -6, 24, -79, -52, -22, -89, 67, -20, -11, -25, -24, -54, 33, 77, -55, 29, -20, -60, -80, 62, 48, -15, -40, -83, 64, -67, -81, 1, -85, -2, -37, 23, 19, 31, -21, -31, 66, -28, -48, -97, -98, -74, -49, -57, -61, 3, -45, -85, 2, -31, -58, -5, 38, 95, -54, 83, -10, -23, 71, -16, -32, -84, 6, 1, 81, 26, 13, -42, -52, 79, -79, -20, 3, -75, 75, 31, -2, 24, 46, 91, 63, -46, 13, -83, 51, 26, -57, 81, 68, 22, 57, -78, 16, 46, 55, -88, 42, 91, -26, -32, 74, 95, 83, -7, -6, -73, 82, -87, 28, -33, 45, -30, 116, 75, 16, 34, 17, 62, 34, -25, -40, -44, 75, 38, -27, 47}, + {-22, -25, 1, -16, 90, 93, 49, -21, -64, -88, 90, -88, 37, -13, 74, 66, 90, 84, 32, 67, 50, 15, -74, 21, 19, 56, 70, -94, -60, -49, -26, 20, -21, 17, 3, 16, 52, 22, 55, -43, -55, -57, -34, 80, -46, 45, -29, -33, -73, -10, -86, 25, 60, 0, 2, -64, -68, 39, -74, -36, -42, 18, 66, -77, 37, 91, 7, 1, -14, -82, -97, 73, -63, 83, 22, 51, 33, -79, -82, -20, -63, -24, 2, 48, -88, -31, -16, -42, 11, 28, -66, 40, -45, 34, 9, -75, 34, -29, -1, -33, -82, 66, -25, -30, -52, -61, -7, -37, -60, -22, 87, -23, 25, -48, -16, -78, -66, -19, -56, -35, 90, 33, 15, -57, 17, 53, 98, 16}, + {73, -25, -56, -12, 94, 83, 41, 63, 61, 90, -64, 24, -43, -92, 60, -56, 23, 29, -11, -9, -48, -48, 49, 1, -49, -79, -75, -51, 0, -73, -25, 40, -71, 45, 69, -82, 71, -54, -33, -2, 48, -57, 70, 39, -9, -3, -11, -55, 55, -2, -81, 94, 81, 51, -11, 36, 7, 80, 7, 45, 76, -45, -44, -67, 33, -83, -36, 17, -31, -18, 70, -12, 2, -36, -53, -64, 12, 20, -70, -24, -26, -57, 41, 47, -50, 74, 74, 37, 54, -18, 8, 26, 18, -68, 76, -46, -64, 25, -1, 1, 49, 82, -8, 8, 48, -67, -12, -47, -27, 42, 68, -52, 74, 61, 34, -11, -10, -64, -91, 70, 14, 5, -38, -82, 97, 13, 83, 61}, + {92, -80, -32, 77, -89, -31, 58, -29, -52, 23, -12, 13, -84, 47, 78, -36, -49, -81, -46, -19, 40, 59, -45, -47, 13, -88, -35, -20, 41, -80, 36, -82, -68, -60, 60, -52, 23, -8, -69, 34, 37, 115, -23, -32, -66, -31, 7, 95, -76, -35, -62, -72, -47, -46, 94, 44, 79, -77, 27, 54, -10, -5, 41, 26, -92, 57, 0, -27, 0, -10, -90, 78, -82, 35, 3, -89, -16, -14, -82, 75, 11, -7, -30, -62, -61, -82, -30, 33, 9, 14, 95, -30, -65, 24, -51, 3, 31, -24, 5, -99, -50, -21, -74, -25, -32, 67, -66, -14, 67, 64, -12, -7, -1, 65, 19, -68, -7, 90, 63, 58, -1, 91, -14, -88, -81, -58, -76, -25}, + {-54, -11, 0, 18, 79, -78, -43, -36, 6, 22, 15, 2, 75, -40, -85, -56, 67, -53, -1, -60, 87, -55, 44, 87, -58, -49, -58, -42, 31, -86, 64, -25, -47, 7, 62, 6, 26, 25, 54, -12, 35, 84, -4, -63, 81, 11, -54, 94, -52, 67, 46, -83, -73, -36, -84, -21, -48, 4, 54, 9, -36, -72, -18, -28, 41, -94, 69, 70, -85, 53, -14, -90, 21, -67, -80, -51, -18, 26, -29, -77, 44, 19, -37, -67, 9, -19, -24, -4, -44, -93, -27, -82, -77, -52, -9, 18, -20, -74, -51, -19, -5, -6, -43, -30, 59, 74, 83, 88, -41, 40, -12, 63, -24, 56, -61, -93, -7, 3, 0, 68, -86, -24, -59, 36, -10, 77, 94, -17}, + {0, 10, -91, 80, 46, -8, -21, -51, 7, -72, -87, 75, -48, 62, 24, -93, -47, 84, 33, 36, 45, -77, -53, 77, -91, 75, 40, 54, 21, 75, -28, 13, -32, -31, -70, -57, -68, 61, -43, -74, 7, -37, 50, 26, 71, -85, 63, 41, 89, -76, -74, -48, 25, -58, 56, 9, 14, -84, -21, 28, 88, 84, 83, -59, 37, 11, -66, 53, 63, -35, -26, -35, -87, 0, -9, 39, 20, 2, 46, -2, 41, 91, 30, -45, -6, 92, 39, -17, -79, 13, 28, -77, 71, -79, -12, -62, 39, 4, 2, -64, 91, 24, -8, -94, -63, -79, -66, 27, 41, 5, 56, 90, -54, -38, 72, -50, -24, 23, 72, 4, 51, 28, -84, 41, -32, 1, -70, -60}, + {24, 64, 45, 76, -16, -49, 20, 9, 51, 82, -64, 25, -9, -24, 79, 88, -27, -29, -27, 27, -23, -92, 72, 35, 20, 20, 46, 90, 4, 25, 74, -65, 84, -51, -3, 8, 16, -90, -62, 56, -50, 18, 54, 10, 24, -50, 64, 5, -22, 74, 39, -81, -7, 49, 76, 80, -14, 7, 109, 25, 48, -48, -19, 12, -50, 63, 0, 59, -69, -59, -28, -48, 38, -23, -92, -49, 0, -52, -67, -14, 43, 0, 23, 18, -16, 9, 43, 106, -40, 65, 7, -13, -48, 45, 33, 30, -17, -50, -65, -71, 8, 70, 22, 75, 18, -69, 72, 83, -60, 80, -74, -43, -27, -37, -1, -44, -2, -40, 51, -47, -47, 12, -53, 71, 38, -8, 41, 70}, + {-93, -27, -37, 76, -80, -10, -56, -94, 76, 5, 71, 77, -10, 69, 67, 65, -76, 78, -61, -23, -21, 21, -10, -87, 42, -90, -46, 87, -62, -20, 55, 40, -43, -94, -41, -56, -14, 2, -91, 78, 82, -85, 59, -18, 0, -32, 92, 42, -80, 50, 68, 41, 23, -43, 7, 57, 59, -84, -6, 71, -62, 34, -12, -41, -16, -14, 2, 76, -43, -66, 39, 25, -66, 52, 69, -9, -91, 75, 69, -77, 38, 36, 21, -33, -50, -54, -48, 72, -6, -31, -62, 25, -83, 83, -74, -56, -18, -80, -38, -63, -47, -57, 34, 79, -92, 92, -41, -65, -91, -50, 92, -36, -29, -8, -35, 75, 86, 8, -88, 45, 2, -36, -18, -46, -44, 33, -89, 48}, + {22, -10, 60, -13, -21, 49, -92, 80, 83, 33, -46, -81, -4, 68, -2, -50, -15, 75, 66, -1, 65, -72, 51, 58, 27, -46, -34, 59, 33, 1, -48, -84, 83, -92, -63, -15, 68, -30, 4, -90, -83, 39, 64, -51, -55, 9, -72, 23, 62, 24, 33, -77, -86, -30, 10, -52, 29, -48, 42, 80, -69, 70, -38, 11, 89, -52, 47, -80, -55, -45, -46, 0, 87, -48, 78, -68, 80, -14, 8, 26, 31, -68, 50, -8, -78, 48, -23, -31, -38, 16, 26, 55, 60, 78, 40, 37, -42, -44, -90, -81, 86, 57, -2, 83, -26, 25, 35, 24, 25, 47, 67, 24, -24, -58, -61, -48, 56, 63, -4, -50, -49, -84, 64, 3, 64, 15, 4, 16}, + {88, 61, -53, -11, -95, 33, -33, 61, 6, 21, 32, 71, 52, 10, 60, 7, -45, -14, -39, 56, -66, 89, -20, 51, 53, -40, 53, -53, -28, 81, -82, 84, 48, 74, 0, 8, 53, -71, 83, -6, -53, -39, -9, -110, 81, -28, -52, -58, -42, -88, -69, -77, -37, -4, -65, -76, 15, -8, 63, 1, 69, -43, 25, 63, -87, -50, 81, -8, 70, 29, 21, -59, -89, 24, 6, -8, -29, 96, -76, 49, -85, 20, 36, 44, 5, -57, -62, -8, -4, -53, -79, -48, 90, -76, 39, 71, -90, -34, -28, 86, -1, 14, 30, 21, -53, 38, 36, 25, 45, 47, 78, -35, 55, -30, 79, -31, -23, 42, -70, -42, -53, -22, 87, -47, 22, -34, -28, -21}, + {-96, 16, -7, -62, -24, -41, -77, -60, -46, 20, -45, -85, -84, -89, -20, -11, -74, 12, 70, 35, -36, 73, 80, -40, -40, -22, 78, 94, 103, -1, -55, -28, -3, 30, -58, -24, -77, -67, -2, 30, -36, -46, 100, -77, 15, 16, 45, -63, 17, 28, -15, 31, -37, 0, -29, 81, 71, 71, 67, 47, 3, -49, 64, 65, 31, 14, -46, 54, 40, -7, 57, -56, 59, 97, 73, 52, 87, 13, 11, -31, 61, 49, -82, -39, 7, 68, 19, -54, -36, 38, -37, 64, -15, -61, 13, 65, 60, 63, 63, -46, 95, -24, -16, 4, -34, -50, 74, 78, -96, 31, -89, 93, -38, -49, -73, 56, 73, -21, -34, 14, 30, 25, -38, 59, 87, -31, 73, 33}, + {49, -56, 9, 56, 83, -78, -54, 48, -34, -82, -12, -20, 57, -27, -52, 66, -5, 2, 56, -64, -32, -68, 22, 28, 83, 49, 35, 54, -62, -84, -44, 85, -8, 92, -30, -88, -56, 12, -66, 66, -67, -82, -19, 6, 48, -46, -72, 72, 27, 51, 20, 58, -43, 25, -11, 6, -25, -89, 41, 51, 27, -50, -91, -33, 64, -82, 10, 29, -60, 18, 66, -94, 33, 19, 44, 8, 89, 48, 85, -2, -63, -70, -73, 8, 89, 73, -68, 73, -5, -46, -1, -16, -31, 52, 65, 26, -35, 78, 70, 79, -41, -3, -80, -1, -11, -21, 70, 98, 4, 82, 2, -39, -74, 83, -27, -8, 81, -66, -56, -56, 80, 24, 73, -52, 72, 27, 56, 25}, + {7, -80, -87, 32, -86, -73, 51, 36, 81, -59, 4, -42, 19, 1, -97, -54, 90, 44, -85, -47, -78, 63, 86, 66, -21, -74, -49, -66, 71, -4, -60, 24, 51, -42, -23, 52, 69, 43, 28, 58, 65, 1, 75, -4, -48, 87, -38, 74, 77, -22, -86, -14, -89, -36, -47, -89, 21, -77, -55, -75, -27, -15, -52, 16, -30, 82, 66, -66, -82, 0, -71, -34, 65, -59, -43, 40, 64, -30, 71, -63, 87, -75, -15, -8, 5, -26, -42, 88, 73, 70, -76, -65, 88, 7, 39, 90, -34, 72, 17, -76, 75, 42, 35, -34, 37, 11, -29, -75, -71, -88, 27, 6, 42, -41, -33, -32, 64, -10, 17, -57, 82, -37, 7, 49, -10, -88, 8, -35}, + {28, 78, -29, -82, -68, 0, 89, -43, 40, -85, -8, -59, -43, 28, 90, -85, -62, -41, 27, -38, -76, 53, 12, -73, -45, -71, -64, 1, -3, 13, -93, 69, -84, 85, 64, 44, -58, 27, 80, 22, 14, 77, -25, -10, -17, -85, -11, 55, 15, -15, -23, 1, -19, -28, 28, 69, 76, -74, 55, -66, -43, 3, 28, -54, -5, -42, 49, -13, -29, -46, 16, 77, 47, 82, -11, -47, -90, 48, 17, 24, -11, -92, -26, -36, -26, -70, 78, -88, 76, 21, 42, -3, 54, -33, 5, 16, -60, -30, -75, -49, -12, 21, -41, 86, 34, 57, 3, 70, 17, 44, -83, -80, -24, -63, 55, 30, -91, -23, -66, 42, -54, 54, 35, -39, 72, -15, -27, -14}, + {-57, 13, 12, 69, 83, 48, 24, 38, 8, 40, -72, 50, 22, 46, -24, 52, -21, 85, -65, 32, 23, -41, -57, -49, -3, -13, -63, -86, -37, -39, -82, 74, -65, 90, 29, -43, 59, -66, -93, 8, 12, 66, 57, -43, -28, 33, -89, 83, 26, -87, 13, -85, -34, 43, -23, 5, 55, 54, 27, 61, -22, 49, 52, -41, -83, -22, -67, 22, 37, -62, -71, 39, 19, 86, -65, -45, 34, 2, 63, 93, 61, -70, -31, 52, -42, -94, -33, -11, -53, 88, -44, 52, 89, -62, 25, -47, -84, -73, -36, -14, 53, -68, -42, -13, 14, -58, -12, -74, 44, 67, -44, -2, -42, -6, -31, -52, 13, 36, -47, -76, -40, 9, -33, 82, 26, 38, -7, 49}, + {-65, 45, 91, 70, -43, 45, 14, -9, 66, 68, -34, 72, 27, -17, 18, -34, -44, 20, -49, -48, -1, -26, -61, 7, 63, 31, 59, -36, -63, 20, -91, 33, 17, 80, -5, -31, 36, -81, -51, -17, 20, 68, 26, 45, -4, 18, 10, 4, -22, -34, 67, -32, 86, -78, 6, -86, -39, -88, -12, -80, -53, 24, -10, -83, 90, -34, 67, 50, -52, 72, 16, 22, 7, -48, 16, 74, 6, 59, 22, -43, 74, -45, -51, 94, 53, -92, 1, 25, 65, -69, 4, 54, 69, 70, -5, -54, -59, -89, 63, -16, -11, 60, -57, 71, -88, -79, 47, 9, 28, -60, -44, 84, 13, -68, 71, -38, -24, -62, 54, 0, 74, -12, -30, -74, 14, -7, 4, -33}, + {27, -44, -47, -30, -31, 42, -16, 61, -43, 93, 31, -28, -84, 40, -86, 99, -55, -24, -49, -60, -64, 51, 71, -79, -82, 10, 59, -31, -19, 69, -71, -26, 28, -81, 90, 94, -68, -33, -73, 48, -88, 117, 112, -22, 51, -18, 4, -55, 24, -59, -84, 61, 88, -51, 17, 57, 96, 44, -109, -32, 21, -80, 37, -68, -93, -3, -32, -94, 38, -68, -37, -69, -27, -76, -10, -39, 105, -16, -7, -33, -19, 95, -66, -20, 88, 32, 21, -31, -47, -92, 80, -79, -13, -30, 10, -1, -27, -82, -58, 69, -104, -115, -49, -80, -30, -80, 122, 97, 82, 7, 48, -81, -85, -92, -20, 63, 68, -11, 25, -80, -27, 93, 85, 10, 67, -91, 116, -12}, + {-62, 37, 41, -19, 36, 24, 74, -28, -4, 21, -4, -54, 88, 50, 93, 62, 34, 3, 8, -39, 80, -78, -23, -25, -90, -62, 25, -66, -48, 31, 54, 21, 71, 3, 84, 87, 67, -65, 79, -64, 5, -80, 72, -65, -53, -13, -69, 40, 58, -24, -9, -61, 70, -69, -84, 40, -26, -91, -63, -28, -82, -42, 3, -37, 4, 87, -73, -62, 59, 71, 90, 37, 89, 11, 31, -75, 52, -65, 12, 57, -69, 69, -93, 72, 8, -75, -28, -29, 57, 86, -92, 6, 9, 86, -57, 22, 7, 64, 83, -32, 27, -9, 32, 41, -42, -35, 93, -85, -35, 86, -69, 83, -15, 51, -22, -79, -76, -67, 3, -17, 70, -22, 67, 42, 8, 42, 50, -10}, + {-71, 6, 37, -16, -49, 86, 13, -3, 42, 17, 73, 66, 1, -11, -87, -57, 70, -1, 79, -43, 51, -23, 14, 11, 26, 22, 34, -38, 71, -83, -90, -13, -24, 9, -39, 32, 33, -45, 66, -93, -36, 7, 60, 92, 30, -17, 12, -7, 41, 6, -80, -30, -49, 1, 56, 59, 56, 53, 46, -16, 18, 69, -64, 89, -54, -51, 78, -28, 89, 8, 74, 51, -74, 75, 2, -57, 62, 17, -39, 8, -49, -69, 63, -5, -2, 20, 28, 53, 64, 31, -14, -84, 17, 43, -49, 64, 38, -33, -4, -9, -69, -43, 89, 7, -80, 59, -93, -91, 59, 12, 38, -15, -10, 52, -26, 78, -93, -67, 92, 15, -86, -47, -33, 58, 40, 40, -76, -85}, + {-67, 50, -55, -34, -66, -42, -53, -55, -6, 16, -19, -65, -60, 40, 55, 12, -63, 54, 37, 68, 22, 19, -68, -10, -85, 94, -17, 57, 53, 8, -68, -44, -23, 92, 62, -74, -28, 14, 4, 18, 30, 18, -15, 88, -18, -56, -69, -59, -76, 82, -83, -55, 10, 26, 13, 4, 48, 17, 63, -3, -21, 69, -85, -6, -31, -63, 61, -13, -12, 17, 7, -65, -64, -51, 72, 69, 82, 37, -35, 8, -14, 29, -44, -9, 47, 80, 74, 44, 55, -55, 60, -41, 7, -46, -8, -41, 76, -59, 41, 29, 47, -22, 2, 19, -92, -59, -75, 5, 74, -26, -35, 86, -48, 73, 89, -9, 11, -50, 57, 75, 7, -75, -95, -30, 22, 0, -54, -46}, + {-18, -18, -60, 73, -21, 31, -31, -9, 77, -32, 80, 29, 38, 27, -76, -1, 67, 34, -87, -51, -5, -12, -53, -20, -33, -46, -70, 74, 52, -85, 5, 11, -48, 43, -57, 58, -25, -53, -91, 36, 16, 82, -36, -29, -33, 39, -19, 58, -19, 6, 43, -11, -72, 68, -91, 89, 74, -39, 64, 23, -52, -31, -39, 65, 83, -76, -40, -6, 70, 3, -88, 30, -36, -31, 2, -71, -20, -65, -47, 60, 12, -57, -38, 26, 4, 91, -45, 23, -33, 88, 63, -74, -50, -38, -75, -64, 77, 61, 13, 23, -42, 90, 89, -37, 44, 20, 86, -43, 79, 45, 81, -48, -5, 12, 48, -53, 13, -37, -48, 43, 57, -64, -82, -16, 28, -38, 38, 69}, + {-94, -14, -21, 39, 46, -43, -17, 75, 26, -58, -38, -56, -1, -68, 82, 69, 11, -34, -63, 13, 76, -59, -35, 15, -73, 72, -86, 49, 0, 48, -56, -36, 78, 24, -7, -93, -20, 10, 58, 38, 91, 31, -22, 84, -15, 55, 25, 35, -15, 25, -48, 60, -61, -24, -33, -25, -63, -85, -62, -35, -21, 59, -6, 71, 16, -17, 78, 51, -27, 86, -24, -27, -63, -65, 24, 31, 73, 42, -72, -29, 23, -73, -94, -83, 61, 80, 38, 50, -65, 0, 37, -23, 93, 91, 27, 28, 5, 26, -44, 4, -18, -3, 75, 18, -74, 21, -91, -92, 57, 82, 85, 17, 33, 56, 61, 64, 24, 36, -10, -41, -86, -48, 12, -37, -18, -72, -59, -23}, + {-45, -77, 26, 42, 9, 79, 24, -32, -70, 81, -41, -80, -91, -1, -53, 21, -15, -67, -65, -77, 45, -78, 18, -28, 51, -88, -89, 92, 96, 15, -19, 72, 9, 92, 13, -55, -21, -74, -60, 71, -5, 53, -28, -38, 35, -14, 91, -41, -8, -93, -25, 65, 57, 4, -36, -43, -88, 28, 57, 53, -89, -79, 27, -78, -21, 79, -10, -99, -40, -33, 63, 81, 30, -69, 63, -58, 36, -80, 45, -12, 6, 77, 6, 85, 3, 86, 15, 94, 75, -74, 0, -2, 51, -66, 35, 41, 45, 9, -17, 35, 45, -68, 17, -75, -40, 69, -20, 52, -9, -44, 86, 17, 59, 48, -59, -71, -21, -56, 29, 5, -67, 55, 69, -18, -81, 88, -76, 20}, + {-78, -70, -55, -26, 111, -22, 54, 17, -88, 70, 76, 91, 90, -93, -48, -65, 98, 80, 3, -33, 39, 46, 72, 50, 102, 37, -71, -103, 52, 57, 80, -40, 32, 43, 93, 30, 75, -57, -48, -87, -60, 33, 102, 58, -41, -34, -15, -60, -26, 26, 17, -54, 22, 12, -48, -6, 91, 23, -76, 26, 42, 0, -73, -5, -71, 73, -51, 30, 55, -69, -64, 40, -48, -6, -89, -49, 94, -63, 75, 65, 43, 9, -78, 67, 25, 7, -34, 18, 75, -77, -8, 21, -23, -73, -15, -33, 26, -67, -6, 15, -20, 34, 77, 6, 19, 24, 43, 67, 9, 80, -13, -33, 69, -51, -64, 44, -38, -68, 49, -94, 78, 4, -37, -76, 88, -52, -33, -74}, + {-62, 67, -56, 85, -87, -82, -43, 34, 22, -6, 57, 62, -36, -76, -52, -61, 68, -62, 49, 13, 9, 19, 55, 35, -49, -8, -30, -64, 90, 78, -74, 55, -81, -40, 50, 64, -92, -19, -86, 39, -13, -22, 23, 56, -33, -87, 76, -30, -85, -76, 74, -54, 106, -24, -4, 32, 71, -24, -21, 52, 84, -43, 3, 7, 53, 74, 61, 39, -30, -78, -19, -12, 46, -24, 69, -27, -46, -90, -75, -4, 73, 62, 41, -19, 58, -94, -54, -28, 45, 7, 4, 90, -46, 1, -53, 103, 4, 68, 9, -14, 88, 56, 43, 102, -27, -42, 12, 35, -26, 98, 10, -92, -54, 25, -49, -58, -31, -90, 29, -75, -63, 66, -44, 22, -52, -54, 7, -7}, + {15, 64, -35, -77, -12, -64, -29, -27, 49, 14, -88, 56, -42, 47, -2, -38, -3, -11, 28, -31, 84, -10, 7, -2, 97, -62, -43, -97, 85, 16, -51, 42, 75, 24, -67, 59, 38, 69, 6, 52, 111, -15, -14, -45, 50, 24, 102, -43, -75, 64, -90, 26, -58, -33, 67, 86, -56, -85, 7, 4, 12, -54, -55, -3, 73, -64, -7, 18, -80, 14, 22, -63, -3, -72, 70, -6, 11, 51, -36, 7, 53, 100, 46, -20, 83, -33, 97, -32, -1, -62, -20, -41, 89, -32, 18, 43, -44, 20, -85, 3, -41, -38, -12, -11, 73, -71, -6, 41, 72, 51, -70, 37, 47, 59, -18, 55, 65, 62, 97, 30, 2, 21, -49, 52, -80, -9, -52, 28}, + {-36, -12, -19, 6, 72, 70, -49, -55, 33, -40, -77, 34, 104, 58, 104, 26, -33, -15, 45, -71, 105, 16, 60, 78, 88, -9, -46, 73, 93, 82, 17, -18, -37, -85, 2, -67, -4, 73, -30, -78, -4, 71, -68, 87, -2, -14, 55, 85, -35, -38, 22, 92, 4, 38, -40, -78, -23, -81, -26, 55, 37, 37, 2, 54, 57, 33, 32, -2, -47, 42, -50, -42, -46, 74, 27, -39, 4, 65, 79, 20, 97, 49, 58, -27, 100, 4, 83, 30, -70, -33, 74, -20, -60, -50, 44, 109, 14, 84, -62, -51, 53, 86, 74, 34, -21, -48, 100, -31, -32, 17, -46, 48, 87, -20, -36, -34, 88, -24, 88, -60, 57, -68, -81, 77, -68, 30, 112, 13}, + {-77, -28, 11, -57, 79, -71, -90, 59, 34, -19, -62, -16, 76, 74, 70, -32, 78, 20, 67, 83, 86, 43, 94, -49, 91, 90, -59, -79, 93, -45, 31, 61, -94, 93, -5, 84, -25, 33, -11, 83, 59, -14, 59, -68, 53, -27, -82, -21, -30, 19, -42, -11, 83, -47, 31, 38, 45, -72, 1, -14, 54, 94, 45, 18, 14, 91, -33, -29, -67, 82, -30, -48, -73, -67, -41, 9, 34, 43, 10, 25, 2, -32, -44, 17, -16, -68, -74, 2, 78, -30, 33, 17, 20, 63, -11, 62, -44, -56, -45, -88, 47, -23, -42, -84, -70, 92, 28, 72, 49, -12, 45, -54, 3, -46, -51, 51, 70, 49, -90, 0, -60, 85, -45, -59, -5, 59, 46, -15}, + {95, 81, 75, 25, 25, 81, -92, 52, -28, -54, 59, 23, -89, -83, -98, -103, -64, -90, 2, 32, -39, 0, 44, -58, -101, 63, 32, -3, 76, 64, 39, -78, 0, 86, -35, 31, -55, 44, -72, -45, 55, -69, 4, 18, -57, 47, 2, 53, 12, 30, -17, -55, -31, -35, -31, -66, 44, -39, 24, -12, 39, -10, 9, 49, -58, 93, 66, 47, 24, -62, 33, -43, 78, -29, 42, 38, 26, -69, 23, 48, -88, -18, -12, -2, -92, -17, 82, 6, 79, -47, 72, 31, 5, 79, -50, -88, 5, 80, -49, 26, -89, -3, -18, 44, 67, -73, -48, -36, 78, 20, 9, -67, 12, -25, 67, -60, -73, 51, -43, -26, -4, -82, 44, -24, -2, -5, -59, 45}, + {-84, -47, 36, -30, 1, 1, -47, -2, 16, -70, 60, 74, 4, 65, 26, 0, -42, -32, 51, -28, -19, -44, 18, -34, -45, 47, 42, 55, -47, -36, -37, 43, 51, -10, 3, 70, 60, 43, -20, 24, -24, -86, -51, 1, 21, -61, 75, -42, -15, 38, -64, 39, -71, -11, -21, -83, 39, -26, 86, -73, -30, -38, -9, -37, 13, -41, 79, -71, 58, 38, -103, 20, 71, 65, -49, 62, -41, -88, -66, -3, 49, -95, 17, -89, -10, -4, 85, -105, -69, 42, -89, 53, 80, -41, 61, -1, -66, -73, 74, -22, -51, -40, 11, -12, 3, -89, -76, 77, -81, -12, -92, 27, -26, 48, -99, 62, 75, 25, 14, 28, 11, 81, 74, -9, 77, -40, -93, -50}, + {-15, -25, -67, -51, 5, 9, -77, 38, -63, -29, -73, 74, 59, -16, 72, -34, -19, -21, 40, -51, 2, -90, 43, 39, -32, 84, -73, 35, 26, 7, 90, -21, 8, 51, -84, -89, -56, 1, -42, 3, 22, -7, 86, -45, -93, -52, -61, 76, -56, 6, 54, 4, -69, -6, 51, -88, -80, -44, 82, -84, -86, 15, 91, 29, 91, -24, 55, 11, 74, -24, 27, -39, -71, -2, -93, -13, 60, 79, 31, 90, -72, -30, 59, 13, -46, 80, -34, -6, -36, -62, -44, -2, -17, 12, 81, -27, -43, -29, -71, 24, 78, 51, 94, -92, 21, -66, -90, -67, -6, -56, -45, 35, -81, -82, 42, -85, 87, 3, 94, -56, -43, -66, -27, 90, 63, 60, 61, 66}, + {85, 47, -51, -92, 59, 3, -85, 82, 35, -40, 10, -24, -14, -91, -90, -57, 55, -91, -56, 29, -85, 51, -82, 80, -63, -52, -75, 80, -28, -60, 49, 59, 65, 26, 66, -65, 65, -12, -65, 79, 72, -75, -40, 15, 60, 2, -36, -91, 71, -31, -35, -46, -35, -84, -26, -44, -77, -57, -82, 24, 44, 86, 59, 7, 35, 14, -10, 35, -40, -79, 65, 53, -36, 80, 53, 32, 46, 34, -43, -24, -78, 15, -66, 86, -84, 64, 90, 75, 0, -13, 50, 41, -53, -1, -51, -79, -87, 58, 53, 0, 91, 28, -23, -44, 77, -51, -57, -20, 0, 13, -78, 89, -21, 27, 92, 90, -89, 88, -94, 83, 63, 83, -53, 5, -39, 72, -35, -33}, + {-20, 18, 88, -40, 30, -67, 69, -52, -20, 59, 73, 93, -75, 38, 94, 67, -16, 70, -58, 7, 61, 60, -25, 47, -17, 84, 41, -50, -16, -76, 68, 69, -56, 16, 18, -27, 47, 21, 89, 90, -51, 20, -39, 52, -36, 15, 36, 25, -39, -39, 97, -72, -51, -35, 67, 85, -10, 18, 5, -96, 31, -38, -83, -45, 83, -53, 45, -22, 60, -73, -87, -70, -43, -72, -65, 57, 90, -69, -20, 69, 26, 26, 99, -81, 89, -41, -63, 53, 11, -23, 15, 6, 52, -35, 5, -55, 0, -48, 97, 65, 81, 79, 7, -21, -59, 88, 41, 21, -9, 69, 34, -57, -2, -23, -100, 88, 62, 29, 42, -43, 58, -28, -4, 69, 29, 79, -7, 54}, + {-48, -92, 102, -87, 67, 16, 32, 75, 26, 50, -38, -10, 45, -86, 85, -43, -77, -18, -81, -69, -52, 23, 33, -44, 89, -52, 12, 35, 11, 27, -15, 16, 53, 52, -25, -86, 102, 78, -69, -68, 27, -63, 87, 79, -75, -4, 16, -5, 26, -69, -5, 81, 93, -20, 33, -64, 29, 43, -32, 68, -27, -22, -52, -23, -77, -34, -7, -31, 43, -61, -66, 90, 41, -75, 81, 32, -8, 32, 20, -75, 67, -4, 64, -21, -79, 48, 71, -75, 106, -43, 26, -17, 57, 32, 82, 74, 63, -35, 110, 48, -61, 13, -13, 83, -26, 21, -12, -31, -2, -104, 43, -31, 28, -8, -26, 31, 75, 55, -81, 13, -29, -29, 75, 90, 10, -70, -9, 81}, + {63, 65, 9, -62, 37, -45, -9, 64, -76, -92, -52, 64, -94, 84, 62, -49, 9, -53, 68, 80, 66, 81, 35, 64, -55, 46, 80, -25, -59, -90, 39, -7, 25, 2, -82, -85, 36, -65, 36, 34, -92, 27, 77, 19, -25, 93, -13, -92, -87, -24, 36, 73, 67, 10, -86, 53, -52, 42, 16, -38, 10, 3, -79, -80, -18, 64, -17, 19, -44, -5, -17, 86, 48, -51, 90, 82, 21, -74, -54, 34, -89, 71, -62, 93, 55, -2, -26, 74, 30, -9, 46, 62, 18, -49, 89, -44, 57, -5, -59, 26, 75, -90, -5, -50, -39, 79, -63, -61, 22, -33, -4, 55, -11, 7, 46, -87, 68, -55, 89, 39, -63, -30, 72, -35, 36, 4, 60, 22}, + {-65, 26, 86, -82, 94, -25, -17, -29, -36, -67, 95, 33, 62, -55, 58, -70, 88, 24, 27, 30, -33, -11, -53, 1, -50, -77, -77, 31, 69, -30, 12, 67, -2, 61, 68, 48, -30, 8, 73, -27, -43, 45, -61, 13, -19, -39, 93, -54, 19, -79, 76, -52, -63, 2, -15, -90, -45, 97, 74, -2, 41, -32, -45, 77, 89, -24, 78, 91, 46, 9, 55, -19, -76, 73, -44, 48, -15, 29, 33, 80, 63, -64, -41, 81, 63, -11, 80, -23, 80, -1, 77, 63, 34, 7, 28, 8, -32, -68, 72, -38, -76, -96, -13, 29, -30, 78, 101, -50, 5, 92, 59, -41, -34, 15, 43, -37, 17, -27, -60, -37, -34, 78, -86, 104, -57, 87, 52, -51}, + {-68, -14, 88, -50, 94, 49, 32, -46, 18, 23, 48, -47, 41, -17, -92, 28, -8, -63, 49, 19, 70, 60, 0, -26, -80, 35, 24, 89, -60, -71, -30, 67, -59, -39, 85, -62, 98, -51, 58, 6, 34, 8, -18, -48, 104, 83, 20, -36, 27, 55, 58, 83, 13, -44, 90, 52, 90, 41, 75, 59, -6, 88, -78, 73, -62, 37, -58, -6, -71, -44, -66, 46, 68, -77, 3, -54, 8, -4, 22, 83, 89, 72, 64, 14, -39, 54, -77, -20, 22, 6, 49, -48, -53, -20, 36, 89, 44, 36, 25, 77, -48, -48, -19, 94, 19, 79, 45, 43, 86, -25, -22, 55, 75, -25, -80, 55, -91, -88, -39, 63, 32, 49, 94, -28, 69, 62, 100, -89}, + {-43, -6, 0, 69, -93, 2, 81, -31, 30, -80, 91, -22, 68, 32, -34, 13, 25, -59, -51, -70, 54, -89, 44, 73, 36, -29, 58, -92, 11, -37, -10, -90, -64, 73, -72, 21, -71, 39, -91, -79, 14, -84, 15, -58, 14, -78, -76, 69, 74, -77, -93, -60, -34, -41, 86, -50, -36, -34, -18, -12, -44, 34, 87, -31, 58, -30, 29, -87, -72, 82, -69, 58, -9, -42, -82, 44, -80, -16, 23, -36, -26, -38, -14, -26, -34, 44, 54, 18, 51, -48, -13, 58, 90, 89, 85, -5, -94, -6, 42, -80, -14, -32, -19, 35, 48, -52, -9, -82, -83, -19, -64, 35, -20, 70, 5, 79, 75, 55, 44, 48, 62, -57, -66, -52, 10, -42, 51, -37}, + {-78, 66, -20, 26, 83, -64, -33, -46, 82, 51, 77, 44, 83, -88, 14, -46, 82, -27, -41, 40, 20, -106, 78, 78, -86, 47, -56, -98, 10, 19, 91, -6, 49, -20, 100, 52, 67, 22, 13, -79, -54, 69, 86, -18, -2, -74, 67, 27, -57, -68, -30, -86, 92, -21, -42, -52, -8, -69, 34, 59, 80, 16, 115, 9, 82, 38, 69, 55, -36, 20, 97, -46, -45, -25, -62, -87, 73, 77, 23, 68, -54, 48, 30, 46, -55, 48, 61, 18, 45, 7, 79, -13, 3, 77, 8, 2, -18, 56, 30, 1, -72, -30, -68, 2, 10, 82, 25, -38, -88, -82, 42, 27, 62, 93, 0, -82, 19, 36, -92, 92, -31, 70, -93, -45, 68, 93, 4, 2}, + {64, 49, 54, -86, -18, -34, 64, 11, -18, 58, 17, 2, 73, -89, 89, 31, 87, -24, -19, 27, -57, -5, 24, 5, -11, 24, 31, 71, -50, 57, -77, -63, 43, 6, 19, -85, -94, 52, -15, -89, 48, 61, 61, -50, -27, -5, -19, 94, -5, -28, -11, -14, 78, -51, -22, -28, -5, 85, 78, -83, -85, -44, -43, -17, -32, -102, 77, 33, 16, 40, 75, 38, -37, -33, -9, -82, -15, -55, -26, 60, 82, 34, 49, 62, -87, 63, 15, -73, -13, 58, 14, -7, -11, 12, 44, -33, 32, 11, 65, 12, 21, 39, 44, 34, -95, -62, 51, -35, -92, 71, 83, 92, -41, 7, 43, -29, 57, 31, 88, 19, 81, 39, -20, 87, -25, -48, 18, 36}, + {73, 87, 14, -21, -51, -4, -57, 56, -77, 50, 61, -92, -30, 7, 68, 43, -11, -32, 83, 57, -54, -53, 6, 24, 8, 55, 42, -61, 29, -4, -3, 34, 41, -19, 25, -48, -32, 90, -13, 33, -37, 78, -42, 16, 78, -70, 39, 84, -51, -54, -90, 22, -47, -57, 83, 15, 47, -12, 49, -33, 71, 15, 0, 52, -33, 77, 31, 35, 53, 28, 0, 26, 11, 49, -15, -2, -66, 13, -84, -40, -18, -39, 92, -37, 43, -63, -19, -49, -13, 5, 57, -26, -21, -16, 73, 81, -7, 10, -13, 65, 31, 66, 90, -3, -82, 77, -59, -58, 14, 64, 64, 8, 40, 69, -35, 56, 17, 22, -43, -69, -80, -79, -76, -24, -42, -15, -39, -3}, + {-54, 52, 77, 92, -80, 40, -26, 46, 92, -77, -50, 99, -19, -40, 17, -66, -85, -83, 39, 21, 78, 97, 84, -77, -2, -27, -3, 10, 4, -1, 20, 14, -30, 69, 9, -60, 92, -29, -23, -83, 44, 78, 34, -41, 23, -12, -52, 16, 84, 28, -11, -30, 27, -31, -63, 48, -50, 51, -28, 80, -43, -21, -42, 17, -65, 56, -62, 59, -9, 22, 49, 47, 10, 28, 89, -101, 13, 82, -65, -96, 55, 45, 83, 50, 76, -61, -61, 76, -74, -75, 81, -3, -22, -58, 53, 17, 85, -66, 90, 31, 85, 12, 37, 72, 21, 85, -79, -81, 48, 44, 29, -43, 64, 0, -47, 82, -9, 53, -58, -28, -77, 35, 21, -52, -60, -27, -96, -76}, + {-41, -52, 75, 80, 6, -45, -86, 18, 23, 69, -16, -31, 39, -26, -7, 36, 8, -13, 23, 48, 31, -13, 23, 43, -1, -6, -72, 10, -84, 18, 64, -63, -45, 92, 8, -57, 49, -53, -40, -69, 22, -24, -57, -17, 18, -36, 24, -41, 90, 24, -16, -89, -64, 37, 86, -62, -28, 47, 83, -77, -58, -94, 49, 37, 28, 68, -36, -6, 60, -22, -23, 36, -88, 72, -89, -90, -76, 78, -57, 56, -41, -48, 68, -46, 73, 50, 69, -52, 0, 70, 44, -1, -6, -62, 3, -21, 56, -24, -43, 6, -23, 20, -73, 0, -52, -2, -25, -96, 23, -82, 67, 10, -40, 34, 12, 13, 7, 64, 90, 19, 4, 63, -43, 0, 47, -32, -1, 13}, + {-74, 68, 44, -57, 49, 30, -2, -11, 17, -77, 74, 87, -65, 16, -37, -81, -80, 37, -15, 81, 34, -1, -56, 29, 82, 11, -82, -27, 85, -30, -1, 51, -75, -63, 66, -22, -62, -93, -73, 87, -56, 32, 55, 52, -85, 50, 67, 20, 16, -31, -51, -79, -38, -83, -37, 25, 81, 40, 93, 47, 63, 50, 8, 85, -12, -59, -92, 84, 89, -30, -29, 24, 61, -81, 85, -86, 53, 9, 15, -58, -64, -38, 62, -31, 36, -63, -9, 45, 13, 20, 33, -4, -50, 33, -21, -9, 61, 11, -40, -10, 76, 38, -64, -94, 12, -63, 46, 11, -81, 32, 15, -80, -22, -58, 17, -7, -93, -64, -20, -17, -46, 13, -12, -45, 59, 28, -59, 58}, + {-81, -16, 47, -61, -30, -84, -68, -48, -49, 62, -56, 97, 72, -13, 62, -64, -21, -71, 78, 88, 16, 21, -20, 66, -18, 13, 64, 77, -22, -6, 88, 63, -90, -9, 92, 87, -15, 41, 33, -88, 74, -70, 36, -84, 28, -3, 58, -88, -71, -84, -43, -3, -17, -68, 81, -30, -57, 84, 47, -57, 6, 73, 50, -7, -21, -36, 45, -90, -15, -76, -88, 41, 48, 28, -48, 2, -66, -75, 19, -37, 45, 56, -82, -65, 54, 69, -50, 40, 36, 12, 79, 35, 41, -13, -30, 49, 2, -27, 3, -53, 32, 3, -23, 71, 104, -83, 63, -48, -6, 92, -69, -16, -52, -19, 96, -13, -42, -11, 47, 61, 6, -100, -5, 43, 35, -14, -84, 38}, + {19, -54, -41, -2, 17, -34, 87, -47, 4, -38, -63, 52, 91, -26, -73, 11, -74, -75, -71, -41, 13, 67, 24, 81, 29, 51, -83, -65, -92, -36, -41, -80, 17, 31, 50, 46, -10, -11, -65, -11, -78, 30, 78, -35, -63, -22, 16, 58, -28, -45, 14, -38, 32, 49, -11, -27, 71, 16, 35, -21, -13, 81, -36, 85, 63, 36, -3, -97, 3, 82, 0, 5, 24, -81, 64, -1, 51, 32, 51, -1, -84, 23, -30, -37, -27, 91, 53, -15, 59, -92, -74, 48, -74, -15, -64, -31, 56, -2, -58, 86, -97, 1, -50, 19, 91, 17, 80, -87, 55, 23, -8, 48, 29, 38, -33, -61, -15, -28, 41, 81, 91, -52, 65, -54, 93, -32, 90, 29}, + {116, 68, -49, 22, 27, -83, -70, -75, -5, 31, -79, 103, 88, 31, 51, 54, 78, -78, -48, 92, 37, 52, -29, 9, -23, 54, 68, -69, -8, -52, 70, 16, 11, 95, 42, -8, 59, -49, 10, 55, -74, 19, -62, 62, -103, -34, -39, 37, 43, 91, -61, 45, 106, 37, -43, -33, 10, 7, -4, 104, -81, -28, -65, 21, 28, 65, 89, 94, -39, 90, -72, 70, -72, -2, -41, 3, 26, 105, -57, 89, -70, 97, -64, 54, -48, 77, -2, 49, 16, 42, 18, -17, -15, -5, 56, 74, -17, 45, -100, -61, -56, -3, 89, 34, 18, 69, -70, 23, -5, -68, 86, -64, -4, 20, -97, 21, -25, 42, -84, -13, 51, 106, 60, -79, -40, -49, 64, -17}, + {10, 74, -12, 69, -21, 69, 75, 30, -43, 39, -29, -41, -50, -42, -26, -39, 94, -47, 18, 68, 19, 50, -50, 53, -56, 14, -65, 95, -68, -58, 45, 63, -20, -43, 47, 4, -16, 48, -36, -5, 17, 12, -26, 62, 8, -7, -40, 30, 79, 19, -91, -50, -44, -41, -59, 66, -5, -46, 88, 30, -79, -75, 18, 9, 57, -68, -88, 21, 90, 51, 49, -53, 84, -2, -34, -83, 7, -23, -52, -2, 74, 31, 67, -11, 76, -56, -88, -87, -42, -12, 7, -78, -56, 14, -47, -77, 79, -91, -17, -75, 48, -81, -90, 18, 4, 77, 2, -89, 34, -42, 35, 37, 90, 35, 70, 68, -37, 79, 50, 22, -58, -52, -42, 26, 60, -34, 86, -7}, + {65, 82, 53, 29, -21, -29, 4, 32, 5, -68, -53, -70, -19, -66, -14, -34, -57, 76, -25, -54, 39, -65, -79, 7, -46, -84, 62, -62, -50, -37, -74, 58, -22, 12, -17, -66, 38, 11, -47, -13, -28, -76, 86, -38, 24, 5, 44, -41, -89, 62, -10, -77, -7, 52, -31, -85, 6, -9, 84, 83, -48, -59, 50, 23, -18, -82, 68, 25, 37, -75, 81, 66, -44, 8, -77, 35, -77, -25, -90, -59, -45, 17, -78, -47, -1, 52, 71, 53, -62, -58, 56, 82, 74, 71, 71, -22, -51, 40, 52, 20, -64, 1, -25, -23, -5, 69, -45, -40, 87, 25, 56, -13, -11, 30, 21, -59, -89, 64, 0, 47, 82, 49, -56, 5, -81, -74, 85, 80}, + {14, -44, 32, 22, 60, 43, -46, 23, 55, 75, -27, -61, -99, -76, 41, 42, 68, 23, -13, 25, -55, -1, -44, -87, 44, -64, 63, 78, -17, -67, -57, -54, -46, 9, -82, -5, 109, -98, 27, 82, 40, 94, 1, -19, 1, 75, 45, 60, 64, -71, 32, 46, 52, -66, 28, 44, 74, 58, 78, 25, 45, 20, 84, -73, -37, -35, 85, 79, -82, 36, -90, 1, 28, -85, 23, 44, 55, 23, -18, 85, 13, 28, 85, -57, -31, -79, -40, -58, -76, 17, 86, 45, 44, -90, 20, 8, 72, 55, -8, -5, 116, 48, 6, -84, -39, -72, 79, -10, -56, 49, -51, -12, 49, -74, -49, -35, -55, 12, 81, 43, -47, -77, 25, 10, 20, -4, 20, 80}, + {-2, 79, -34, 18, -12, 3, 7, 29, 48, -53, -62, -64, -89, 29, 58, -23, -20, 45, -9, 66, -55, -82, 69, 93, -35, -66, 43, -78, 33, -91, 76, 87, -49, -42, 81, -79, -94, -37, 20, 5, 47, 86, -8, -54, 66, 77, 81, 75, 52, 21, -16, 6, 61, 31, 58, -53, 50, -90, -45, 9, -63, -60, 92, 65, 85, 81, -40, -68, -16, -49, -52, -71, -24, -90, -63, -64, 61, -84, 86, -33, 21, -88, -62, -16, -80, -46, -52, -6, 42, 41, -73, -27, -60, 86, 43, -55, 45, 64, -83, -21, -71, 58, -53, 71, -11, 18, 73, 77, 95, -82, -7, -50, 92, 10, 54, 4, 8, 75, 84, -7, 45, -35, 40, -38, 85, -7, 88, -13}, + {67, 47, -78, 93, -4, 12, -98, -72, -71, 19, -8, -27, 76, -42, 52, -75, -92, -83, -3, -56, -91, 15, -27, 44, 33, 86, 7, -16, -11, 54, -13, 47, -47, -40, 49, 41, -93, -98, -15, 30, 29, 100, 33, -10, 56, -17, -5, 25, -90, 82, -11, -17, 88, 60, -91, -14, -48, -72, 30, -46, 11, -88, -43, -59, -25, 1, -79, -56, 53, 7, 64, 2, 12, -46, 28, 93, -62, 90, -29, 2, 55, -53, 50, 32, -49, 16, -46, -70, -97, -94, 89, -77, -62, 0, 35, 14, -17, 33, 37, 82, -50, 10, 4, 69, 29, 38, 5, -97, -7, 33, 7, 36, 43, 46, 68, -71, -12, 82, -50, 77, -61, -81, -5, -70, 23, -65, 51, -85}, + {-109, -10, 16, 47, -63, -33, 36, 0, 48, -42, 7, -33, -58, -28, 18, 43, -48, -91, -8, -85, 109, 9, -3, -45, 8, 18, -50, 60, 62, 34, -27, -47, 13, 43, 64, 43, 33, -46, -66, 58, -88, 26, -45, -26, 24, -39, 70, -3, -55, -6, 26, 93, 49, -16, -32, -61, 104, 13, 44, -27, 92, -88, 21, 63, -4, 80, -82, 35, 18, 66, 15, -48, -20, 95, -70, 76, 118, -78, -60, -20, 71, 62, -50, -35, -2, -14, 59, 44, 117, -75, 80, 41, -1, -11, -58, -33, -78, 47, -70, 106, -55, 12, 35, -7, -11, 6, -82, -80, -42, -65, -45, 64, 77, 0, 43, -32, 9, -62, 74, -18, -66, 61, 94, -34, 74, -8, 48, 74}, + {76, -27, 98, 73, -55, 53, 41, -2, 16, 81, -86, 51, 7, 47, -58, -53, -21, -79, 17, 82, -40, 6, -47, 92, -51, 5, 51, 65, 34, -36, -16, -88, 85, 90, 44, 0, 51, 76, -13, -25, 95, -68, -1, 44, 43, 1, -37, -67, -76, -85, -11, -56, -41, -58, 67, 43, 79, 69, -86, 56, -62, 14, 95, -34, 11, 55, 79, -20, 28, -82, -89, -45, -73, 36, -97, -36, -30, -11, 52, 24, 51, -58, -81, -74, -45, -69, -28, 64, 47, 57, -44, 45, 50, 24, 12, 4, -78, -5, 59, 76, -45, 77, 49, 50, -89, -31, -53, 45, 48, 31, 22, 84, -2, 85, 38, -18, -69, -10, 17, -94, -72, -2, 94, -48, -58, -68, -58, 48}, + {-60, -75, -14, 4, 47, -86, 26, -11, -2, 78, 47, -45, -51, 32, -93, -85, -21, -77, -29, -78, -84, 38, 54, -67, 20, -7, 14, -12, -24, 0, -38, -24, 63, 73, 23, 85, -24, 27, 40, 36, -68, -31, -2, 72, -40, -5, -24, -30, -76, -12, -18, 84, 24, 40, 16, 48, -89, -60, 93, 6, 34, -76, -86, 54, -90, 66, 67, -3, 36, 39, -11, 90, 7, 62, 68, 75, 46, -1, -53, 2, -15, -53, 15, 90, 86, 7, 21, 74, 31, -44, -88, -58, -16, -5, -18, 6, -87, -45, 69, 37, 11, -74, 44, -35, -8, 90, -2, -13, 11, 46, 91, 82, -59, -38, -18, 27, 74, 63, 94, -63, 32, 5, 57, 39, -29, -17, -22, 32}, + {62, -8, 44, 59, -22, 41, -74, -57, 5, 25, 47, 85, 72, -28, 74, -86, 22, -11, -65, 62, 58, 3, 35, -7, -30, -69, -19, -77, 39, 33, 8, 66, -29, 29, -37, -21, 61, -38, -27, 1, -43, 47, -45, 79, -19, 8, -92, -71, -83, -87, 53, -72, -38, -5, -23, 59, -73, -28, 28, 69, 42, 47, -8, 26, -35, 97, -59, -18, -37, 6, -50, 82, 38, -105, 87, -30, -53, -95, 31, -103, 16, 68, 19, -18, -24, 71, -25, -51, -50, 51, -72, -18, -49, 47, -52, 34, -47, -48, -14, -28, -57, -22, 65, 44, -76, -13, 0, -78, -36, 64, -60, 88, 67, 91, 31, 43, 65, 21, -51, -32, -7, -39, 90, 72, 24, 61, 43, -86}, + {22, 91, 61, -3, 44, -21, 91, 36, -91, 15, -83, 22, -22, -49, 68, -9, -54, -80, -59, -85, -63, 83, 4, 81, -48, 82, -72, -1, 45, 6, 43, 35, -65, 34, -62, 4, 50, -65, -69, -46, 56, 67, 13, 37, 60, 22, 86, -17, -78, -9, -31, 47, 42, -31, -28, 63, -60, 77, 55, 65, 69, 68, -71, 89, 61, 90, 72, 36, -64, -6, 79, -1, 60, 66, 67, 63, -79, -9, -66, -82, 40, -36, 21, -77, -54, 25, 44, -83, -6, 21, -52, -3, -63, -77, 75, 0, 33, 2, 65, 86, 65, 81, 9, -60, 58, 18, 33, 48, -73, 20, -34, -61, -61, 19, -50, -56, 48, -67, -35, -59, 21, -35, -32, 32, -18, 86, -56, 17}, + {17, -74, -99, 3, 82, 77, 45, 23, -24, 5, -8, 7, 43, -20, 28, -7, 85, -75, -50, -51, 1, -36, -10, -39, -68, -79, 90, 83, -58, 20, -50, -22, -9, -69, -24, 42, -29, 26, 98, -94, -99, 45, -23, -32, -11, 65, 57, -17, 18, 5, -98, -103, -1, 85, 60, -88, -24, 74, -36, 1, 16, -25, 86, 51, 45, -18, -22, 8, 22, -7, -35, 1, 81, -43, 24, 90, -20, -7, -72, 86, 51, -72, -12, -26, -62, -66, 18, 91, 35, 29, 52, -63, 12, 32, 40, 69, 39, -24, -27, 6, 94, 27, 61, -23, 60, 22, -22, 30, -75, -34, -77, -36, -79, 85, 9, -30, -9, 78, -89, 7, 42, -31, -31, 71, -22, -90, -5, 64}, + {-58, 63, 48, 74, 60, -7, -67, -72, -86, -12, 32, 53, -34, -36, -34, 49, 44, -61, -48, 56, 79, 62, -71, 10, 69, -78, 65, -50, 32, -53, -84, -41, 45, 41, 53, -48, -49, -68, -39, 61, 44, -17, 16, -58, 63, 47, -12, -17, 63, -21, 76, 0, -95, -81, 89, -1, -4, 18, -61, -55, -79, 57, -29, -26, 63, -3, -80, 3, -41, -73, -6, -2, 45, 33, -96, 67, 25, 78, -32, 18, 44, 43, -27, 5, -78, -61, -26, 39, -82, 26, -50, 26, 92, 77, 34, 11, -65, 45, 13, 88, -27, -29, -3, -59, 39, 41, 4, -20, 19, -88, -71, -58, -86, -32, -8, 37, -33, -30, 40, -2, 6, 77, -86, 1, -61, 20, 67, -18}, + {52, -61, 22, 48, -92, -78, -58, -79, -2, 25, -82, -78, 27, -57, 8, 48, -65, 64, 29, 14, -93, 1, -51, 57, 91, -53, 64, 13, 54, -56, 86, 90, 26, -90, -28, -62, -67, 25, -89, 82, -4, 41, -38, -34, -43, -20, 14, 43, -72, -74, -11, 30, -19, -5, 61, 92, -71, -21, 52, -60, 44, 25, 83, -28, -16, -1, 14, 56, -4, 64, 75, -39, -23, -16, 16, 13, -23, 0, -44, -70, 61, -5, 78, -37, 91, 9, 60, 47, -6, -50, 38, 42, 84, 45, 68, 83, -87, 53, -91, 72, 77, 29, 7, -47, -89, -42, -86, -16, -50, -29, -58, 23, 2, -21, -87, -61, 17, -76, 41, -33, 35, 83, -52, 85, -64, -86, -39, 31}, + {90, -37, -14, 84, -70, 88, 51, 7, 87, 35, 75, 21, -31, 2, -12, 64, 88, -40, -73, 81, -52, 5, -69, -86, 57, -27, 42, 28, -12, -74, -12, -83, -4, -85, -94, 24, -59, -33, -69, 59, -73, -81, 17, 33, -27, 60, 43, -73, 20, -77, -57, 24, -59, 80, -14, -48, -23, 31, -49, 21, 59, -81, 46, 59, -39, 90, 28, -28, -32, -50, -51, 70, 13, 71, 88, 43, -66, 76, 37, -56, -25, -7, 58, 83, -10, 56, -59, -80, -77, -67, 39, 45, -51, -28, 84, 28, 82, -39, -79, -25, -91, -4, 24, -34, -25, 41, -8, 61, -71, -20, -90, -56, -20, 29, 16, -30, -68, 32, 2, -55, -18, 43, -45, -64, 60, 58, -85, -6}, + {64, 77, -68, 89, 41, -2, 86, -60, 23, 5, 49, 88, -69, -54, 2, -62, -8, 49, 7, -56, -48, -49, -86, 4, -39, 91, -68, 7, -63, 22, -91, -88, 52, 5, -39, -4, -97, 42, 19, -5, 10, -9, 12, 65, -74, -80, 50, 28, 89, -38, -28, 67, -30, -73, -47, 68, 54, 71, -94, 51, -18, -57, 37, 87, 54, 39, 75, 64, 80, -24, -74, -50, 17, 36, 18, 29, -85, 47, 6, -69, -78, -90, 5, 30, -80, 12, 81, -16, 21, -73, -79, 50, -34, 79, -20, -1, -71, -11, -56, 84, -63, 19, -32, -72, -81, 24, -46, 40, 58, 7, 8, -94, 30, 58, -38, -53, 49, 71, -11, -10, -8, -46, -10, 72, 28, -12, 49, 70}, + {3, -31, 4, -90, 41, 60, -15, -63, 51, 4, 2, 80, -86, 27, -16, 9, -40, -41, -21, 23, 39, 35, -13, 38, 76, -94, 77, 79, -49, 0, -42, 46, -38, 43, -87, 75, -64, 88, 82, 9, 70, -39, 44, 64, -94, -50, 71, -44, -40, 25, -1, -19, -32, 2, -83, -19, 94, -30, -87, -72, -53, -68, -80, 80, -48, 69, -90, -46, -77, -32, -89, -55, -14, 67, 65, -60, 0, -47, 55, -28, 29, -17, 34, -13, 62, 10, 36, -79, -45, -73, -34, 46, -92, 8, -89, 16, -75, -18, 65, -5, 39, -92, -20, -49, -42, -60, -89, -93, -16, -25, 90, -47, 89, -77, 65, 55, -83, -83, -41, 30, -15, 77, 65, -35, -16, -29, -41, 59}, + {-10, -66, -38, 0, -48, 24, -41, -39, -13, 59, -34, 47, 21, 54, 28, -91, -4, 60, 27, 43, 46, -15, 72, 37, -11, -52, -92, 38, 94, -54, 73, -64, 57, 53, 55, 62, -26, -86, -37, 43, -49, -34, 23, 56, -55, -29, -2, 40, -10, -37, 27, 35, -62, -24, 71, -1, -14, 55, 87, 93, -54, 25, -17, 90, 55, -75, 88, -6, 49, -12, 81, 62, -31, 77, -55, 51, -88, -29, 17, -43, -20, -32, -59, 70, -57, 15, -85, -76, 56, -39, -34, -49, -2, 64, 66, -81, -84, 17, 28, 9, 28, -23, -83, 38, 75, -9, -27, 69, 33, -54, 74, 46, -23, -41, -60, 40, 66, -38, -12, -48, 38, 70, -37, -92, -54, -22, 23, 81}, + {-39, 7, -31, -14, -28, 35, 72, 3, 63, 37, 35, 14, -102, -38, 18, -51, 85, -14, 63, -50, 88, -16, 101, 66, 29, -32, 51, -20, 99, -23, 72, 5, 70, 35, -11, 53, -54, -3, 34, 2, -67, 83, -83, 10, 52, -43, -66, 53, -54, 28, -71, 45, -116, 86, 38, 112, -42, -26, 29, -2, -96, -25, 65, -30, -19, 22, -81, -84, -52, -87, 32, -87, 17, 23, 98, -17, -45, -32, 93, 43, -9, -78, -41, -5, -20, -23, -71, -62, -87, -39, -65, 11, -80, -89, 45, 13, 87, 14, 66, -93, 87, -17, 2, 17, 79, -82, 53, -21, 35, -70, 27, -24, 14, -58, -97, -18, -34, 16, -84, -15, 28, 63, 33, 58, -46, 29, 21, 66}, + {68, -15, 76, -39, 44, -3, 3, -43, 1, 77, -55, 8, 75, -86, 40, -58, -17, -59, -80, 74, -49, 73, 2, 56, -69, -49, 55, -105, 51, 39, 87, 70, -47, 81, 44, -38, -10, -30, -79, 74, -32, 40, -26, 59, 8, 21, -58, -90, 103, 4, -20, 38, -95, -24, -84, 23, 28, -22, 56, 6, 5, 54, 47, 42, -59, 82, 67, -71, 49, -17, -56, 18, 1, -27, 52, 69, 99, 66, -18, 68, 104, -13, -24, 92, 101, -1, -74, 106, 66, -83, -5, 78, 7, -2, -6, -61, 32, 60, 27, -67, -46, 16, 68, 32, 9, -18, 87, 32, -41, 51, 43, -36, -85, 50, 16, -51, 24, 80, -10, 9, 61, 34, 25, 57, -35, -81, -72, 2}, + {-68, 23, 39, -33, 57, -27, 57, -39, 60, 10, -65, -50, 4, 75, -45, -84, 74, 44, -86, -31, -91, 54, 10, 82, -54, 38, -9, 47, 22, -83, -74, 25, 28, 0, 35, 39, -43, -5, 45, 29, -59, 73, 22, 111, -70, 52, -62, 32, 20, -81, -67, 18, 56, 22, -56, -12, -82, 39, 98, 66, -82, 30, 41, -2, -27, -39, -39, -94, -85, -73, -68, 38, 80, -47, -75, 54, 26, -89, -45, -21, -95, 74, -41, -46, -6, 62, -69, -59, -32, -80, 18, -90, -92, 15, -105, -31, 24, 48, 42, -66, -62, -19, 17, 32, 0, 37, -95, -19, -31, -14, 72, 64, 57, 38, -26, 21, 49, 71, 22, 8, 71, -22, 61, 41, -52, -29, -41, 29}, + {29, 16, -63, -45, 24, -26, 89, -75, -10, 88, 14, -67, 45, -51, 74, 91, 17, -18, -14, -91, -80, -26, 40, -21, -9, -35, -58, -46, -21, -6, -11, -91, 74, 48, 22, -39, -56, -8, 60, 53, -60, -55, -15, -84, -46, 65, -34, -60, -68, 49, -31, 40, 14, 89, -68, 86, -68, -52, -10, -3, 16, 87, 6, 9, 75, -29, -92, -77, 43, -9, 29, 46, -66, 26, -23, 28, -19, 71, 40, 72, 1, 60, 64, 91, 17, -30, -36, -59, -79, 25, -51, -89, -46, 69, -4, -55, -48, -56, -16, -39, -13, 34, 20, 87, 25, -30, -92, 62, 76, -17, -57, 69, -92, 13, 41, -36, -63, -46, 0, 33, -54, 3, 87, -51, 81, 52, 50, 41}, + {-2, -92, 14, -48, -22, -87, 75, 39, -75, -13, -87, 59, -17, 53, 62, -54, 3, -46, -36, 16, -77, -41, -17, 51, -50, -39, -22, 88, -61, 7, -52, -68, -16, -56, -13, -87, -22, 51, -54, 55, 71, -30, 74, -11, 56, -81, 85, 40, -75, 58, -24, 40, 91, -79, 40, 14, -6, -38, 28, 0, -39, -58, 32, 43, 64, -58, 14, -22, 89, -56, 44, -74, 72, -82, 1, 18, -30, 60, 25, 30, 49, 25, -21, -31, -82, -43, 83, -82, -65, 93, -87, 31, -82, 83, -71, -63, -25, -17, -19, -67, 84, -32, -36, 50, -42, -9, -64, -29, 10, 74, -62, 67, -43, -76, 42, 10, -22, 23, -62, -65, -38, -50, -79, 48, 62, 40, 11, -26}, + {-5, 41, -107, 86, -66, -30, 69, -12, 65, 9, -54, -9, 88, -51, -44, 24, -86, -57, 91, -89, -7, -91, -51, -80, -19, -78, 62, -36, 30, 73, 30, 60, -103, 26, 56, -77, -76, 18, 43, 89, -77, -3, 80, -60, -52, 80, -38, -66, -92, 16, -28, 48, -70, -102, -5, 6, -41, 90, -56, 70, 31, -72, -62, 31, 67, -26, 66, -84, -67, -93, -40, -11, 5, 44, -88, -12, 68, 78, -54, -64, 6, -74, 4, 47, -82, 69, -55, 24, -3, 20, 47, -52, -2, 3, 100, 78, 31, -68, 42, -23, 61, -107, -82, 20, -57, 66, -14, 99, -16, -43, 0, 43, -6, -53, -57, -112, 23, 44, 39, -6, -87, 56, 33, -74, 85, 15, 65, 73}, + {-102, 27, -18, 75, 16, -39, -44, 1, 27, 51, -67, -83, 93, 62, 44, -63, 86, -7, 8, -82, 114, 32, 8, 12, 92, -21, 71, -19, 6, -63, 67, -75, -77, 14, -49, -53, 61, 37, 20, -51, 32, 73, 55, 107, 33, -59, 51, -87, -78, 54, -37, 88, -48, -58, -20, 14, -33, 5, 53, 37, -60, 22, 47, 62, -18, -51, -33, -71, 107, 92, -14, -28, -58, 105, -24, 40, 43, 9, 52, -79, 50, 90, 5, 101, 21, 24, -9, 95, 22, 22, 58, -28, 33, -79, -47, 13, -76, -55, -72, -42, 12, -71, 73, 44, 29, -64, -53, 80, -92, 48, 4, -88, 93, 83, 16, 45, -62, 33, -14, -46, 105, -10, -41, 66, -56, 31, -35, 81}, + {-91, 21, 30, 92, -23, -49, 77, 80, -67, -53, -64, 83, 34, -32, 7, 38, 46, -25, -45, -3, 85, 34, -55, 70, 36, -1, -78, 98, -75, 66, 87, 39, 55, -85, -38, -30, 66, 93, 92, 35, 14, 15, 7, 7, -30, 37, 95, -55, -46, 11, 18, -52, 64, -75, 72, -61, -25, -52, -26, 90, -53, -86, -22, 87, 87, -26, 62, 1, -81, -90, 20, -62, 55, 79, 38, 28, 67, 25, 39, -79, 25, 69, -53, -56, 57, 3, 39, 65, -20, 92, 20, 74, 88, 21, -32, 64, 70, 38, 68, -37, -57, -92, 47, 57, -19, 74, -36, -85, -17, -51, -8, -51, 75, 6, 45, 85, -59, 44, -24, 16, 78, 37, 63, 94, -92, 44, 24, 1}, + {33, 75, 50, 46, 27, 29, 2, -12, 32, 22, 16, 51, -37, -3, 81, 8, -75, 2, -72, -33, -35, -19, 28, 29, 10, -59, -37, 80, 91, -61, 12, 49, 70, -78, 16, -11, 1, 30, 46, -9, -52, -77, 67, -79, 18, 87, -73, 37, -33, -28, -33, 30, 32, -89, -80, 68, 40, 46, -94, -77, -90, -71, -91, 42, 57, 9, 39, -5, -42, -33, 60, -84, 8, 23, -87, -48, -37, 58, 19, -71, 43, 88, -79, 40, 87, 29, -12, -42, -67, 20, 47, 85, 78, 54, -64, -88, 21, -35, 0, -2, 19, -35, 45, 31, 23, -39, -25, -30, 22, -4, -47, 56, 28, -9, 4, -21, 70, 49, 84, 29, -34, 28, -12, -84, 75, -18, 67, -67}, + {90, -65, 24, -89, -81, 10, 86, -28, 15, 45, -7, -9, -27, 93, 42, -59, 59, -54, -86, -13, 44, -37, -42, 24, -44, -21, 75, 23, 0, 60, -60, -78, -73, 65, -31, 31, -40, 51, -3, -10, -54, -75, -63, -62, 71, 53, 4, 87, 90, 6, -78, 27, 45, -68, 0, -46, -42, 12, -40, -5, -70, -3, 0, 10, 36, -27, 41, -1, 47, 69, -90, 35, 13, -33, -25, -55, -8, -20, -45, 53, -42, 36, -65, 46, -63, -15, 57, 56, 58, 87, 28, -28, 82, -89, -67, -81, 34, 28, -48, 32, -53, 20, -69, -26, 33, 2, 11, 82, 37, -94, -78, -81, 24, 36, 68, -11, 38, -31, -1, 7, -3, -16, -36, 84, 9, -41, -92, 91}, + {42, -35, 29, 61, -73, -47, 3, 44, -13, 30, -67, 84, 67, 2, 101, -41, -33, 74, 41, -89, 91, 51, -88, -88, 31, -12, -75, 30, 58, -30, -52, -48, -73, -63, 63, 17, -10, 5, 51, 49, -83, -7, -51, -27, 66, -48, -25, -15, 55, -9, -1, 3, 74, -52, -5, 79, -43, 22, -47, -8, -78, -35, -7, 3, -67, -15, -56, -12, -8, -34, -25, 84, 29, 22, -3, 50, -23, -86, 7, 25, -12, 71, -29, 54, 23, 88, 88, 64, -13, -62, -43, 89, -27, -44, 20, -69, 38, -68, -81, -59, -35, 5, -86, 15, -70, 85, 33, -4, 87, -83, 51, 27, 32, 32, 77, -75, 65, -77, 1, -29, 82, -19, 42, -78, -44, 6, -59, -34}, + {32, 84, 24, -30, -67, -81, -35, 45, -63, 5, 15, -29, 55, -8, 36, 69, 20, -88, -7, 31, 45, -43, 74, 4, -93, 60, -20, 72, 89, 0, -65, -72, 77, -25, -86, -3, -3, 96, 22, 57, 85, 11, 55, -18, -6, 44, -35, 55, -67, 2, -39, -102, -34, 101, -66, 46, -28, 32, 20, -42, -55, 24, 65, -80, 39, 38, 75, 38, -82, -55, -7, -26, -12, -62, 62, 76, 21, -106, 31, -53, 7, -39, 57, 6, 2, 28, -12, 42, -40, 78, -5, 24, 64, -8, 50, 78, 49, 41, 35, -87, 27, -68, -36, 51, -32, 55, -90, 17, 75, -35, 22, 75, -81, -5, -84, -4, 69, 35, -7, 93, -13, 57, 15, 76, -80, -92, 44, -50}, + {-79, 50, 14, 17, -16, -64, 9, 71, 75, -13, 27, -48, 7, -14, 44, 4, 80, 53, 5, 34, -73, 78, -44, 77, 33, 62, -39, -6, 82, -63, -1, -89, -35, 12, -42, -10, -21, -91, 89, 48, -42, 9, -20, 23, -3, -90, 70, 42, 60, -39, 30, -2, -67, -35, 35, -16, -27, 23, -93, -34, -38, -72, 27, 31, 25, 82, -81, 6, -90, 54, -91, -35, 41, 80, -22, -81, -32, -23, -60, 75, -68, 25, -31, 68, 47, 18, 58, -39, 31, 70, 25, -9, 52, 91, -41, 53, 58, -41, 26, 78, 39, 25, -44, 25, 25, 48, -94, 50, 0, 42, 51, 37, 57, -16, -21, 48, -29, -92, -89, 13, 33, 2, 16, 12, 24, 75, -26, -17}, + {49, -4, 31, 83, 29, -20, 38, -10, -9, -89, 54, -66, -77, -90, 10, -21, -43, 92, -93, -43, -71, -56, -53, -89, -50, 30, 99, 27, -34, 26, -85, -94, 4, 40, 3, -3, 89, -63, 97, -79, -93, -44, -46, 89, -61, -46, 70, 83, 66, 41, 108, -6, -50, 36, -61, 18, 78, -66, 2, 91, 60, 87, -42, -22, 44, 90, -5, 86, 41, 87, -81, 31, -80, -41, 78, 39, -19, 30, -84, 24, 84, -83, 28, -56, -45, -31, -7, -77, -24, 42, -46, 94, 79, 27, -9, -86, 51, -67, -75, 75, -51, -20, -22, -65, 47, 89, 61, 21, 57, -72, -51, 16, 23, -75, 77, -61, 80, -81, 58, -87, 67, 29, 51, -21, -53, 6, 6, 72}, + {62, 0, -46, -65, 63, -29, -11, -61, 38, 66, -46, -46, -82, -64, 93, 36, 100, -89, -9, -36, -29, 58, -7, 30, -23, 7, 19, 104, 0, -68, -43, 31, -56, -14, -13, -6, -87, 28, -36, 91, -98, 34, -12, 32, -28, 48, 40, -89, -26, -31, 3, 50, -57, -86, 90, -82, 76, 54, -27, -74, -50, 29, 43, 34, 40, -18, 38, 27, -71, -2, 85, -52, 34, 68, -57, 49, 1, -56, -47, 71, -69, -80, 38, 1, 40, 76, 75, 48, 52, -63, 77, 83, 34, 77, 5, -57, 58, 3, -11, -3, 52, 54, -85, 31, 6, -5, -74, -18, 50, 100, 41, -59, 47, 43, -1, -32, -55, 85, 75, -65, 45, -37, -49, 25, 87, -80, -19, -29}, + {-61, 40, -17, -17, -17, -74, 65, -47, -31, -64, 63, 15, -35, 40, -76, -22, 50, -70, -51, 78, 36, -66, 26, 10, -54, -81, -35, 63, 13, 37, -74, 6, -42, 24, 72, -87, 50, -15, -39, -62, -12, -13, -29, -79, -8, -38, 3, -35, 44, -35, -33, 20, -26, -3, 73, 66, 19, -92, 9, -107, -85, -83, 39, 88, -21, -16, -57, -50, -34, -92, 23, -75, -7, 50, 1, 30, -60, -12, -61, -34, -47, 64, -91, 7, 41, 12, 30, -3, 81, 19, -69, -63, -75, 29, -7, 45, -27, 23, 26, -60, 73, 73, -42, 72, 26, -52, -13, -51, 78, 33, -41, 51, -92, 89, 8, 22, -94, 86, -28, 59, -29, -95, 1, -67, -61, 78, -57, 59}, + {49, -11, -3, 69, 49, 52, -24, -11, -57, 9, -36, 62, 62, -26, 9, -93, -86, 41, 72, 44, -39, -11, -33, 86, -72, -10, -94, 32, 78, -71, -87, 65, -5, 68, 32, -46, 74, 32, -68, 41, -18, 66, 83, -55, -2, -10, 55, 80, 11, 84, 40, -85, 35, 23, 93, -72, 12, -31, -89, 49, 46, 33, 48, -8, 38, -78, 5, 43, 89, -24, 22, 43, 67, 72, -70, -69, -62, -8, 0, -15, -24, -3, -13, 49, -70, 68, -90, -82, 3, 49, -38, 73, -21, -39, 11, 63, -31, 49, -54, -62, 34, 29, 8, -12, 9, -39, -7, 73, -55, 52, 20, -82, 69, -1, -33, -63, 48, 61, 69, 31, -49, -74, -50, 46, -94, -60, -48, 68}, + {10, -51, 86, 27, -11, 76, 67, 79, 12, -56, 41, -24, -97, 54, 74, -57, -46, 28, -69, 91, -52, -39, -49, -52, 1, 57, -36, 10, 67, 86, -46, -29, -39, 26, -14, 69, -65, -9, -36, -49, -78, 32, -34, 60, -85, -2, -94, 8, 35, -3, 25, -54, -43, -37, -59, 74, 47, 43, 81, 15, 22, 73, -82, -17, -5, -30, -27, -82, 16, -68, -42, 14, 35, 9, -50, -33, 10, -44, -63, 35, 56, -94, -12, -13, -40, 59, -97, -83, 88, 28, 56, 63, 47, -15, -47, -24, -23, 58, 40, 33, 79, -63, 28, -93, -43, 21, -60, -11, 18, 62, -38, 79, 16, -5, 65, -52, 39, 32, 36, -86, -58, 43, -7, 10, -83, -43, -2, -64}, + {65, -39, 23, 74, -21, 30, -54, -4, -15, -60, 24, -34, 40, 46, 81, 16, -23, -85, -40, 52, -78, -21, -57, -49, 76, 72, -80, 43, 8, -25, 38, -1, 33, -76, 18, -61, -27, -84, -52, 74, -77, 6, 38, 49, -71, 86, 63, -80, -58, 61, -51, 50, 0, 73, -36, 13, -7, 94, -68, -89, -1, -9, 71, -72, -58, 40, -32, -96, 2, -52, 36, -64, 75, -88, -21, 66, -54, 60, 92, -58, -9, 13, -27, -54, -22, 54, 61, 22, 70, 20, -11, -75, 74, -12, 71, 69, -34, 21, 4, 60, -29, 25, -83, -68, 43, -25, -13, -70, 17, -43, -3, 13, -92, -24, 59, 56, 28, 30, 42, 42, 20, 20, 18, 61, 22, 13, -96, -85}, + {68, -70, -35, -19, -8, 1, -26, 35, 5, 84, 23, -2, 42, 19, 76, -34, -16, 23, -23, 27, -82, 105, 90, -46, -88, -87, -56, 93, -73, 19, -80, -4, -91, 80, 25, -49, -29, 51, 75, 63, -65, 76, 85, 14, 71, 32, -30, 8, 37, 39, 19, -60, -36, -31, 22, -19, -75, 64, 12, -84, -69, -84, -47, -19, 89, -20, -10, 94, -23, -84, 90, -83, 29, -44, 33, -31, 94, -91, 2, 37, -12, -76, 36, 69, -40, -73, 9, 28, -7, 67, 19, -10, -50, -53, 93, 82, -32, -62, 26, -34, -40, 37, 64, -75, -73, 16, 93, -50, 84, 62, -64, 21, -46, 16, -80, 10, 94, 53, -35, 54, 11, 14, -41, -4, -86, -76, 66, -5}, + {-98, -29, 81, 15, -11, -10, -79, -66, -61, -20, 9, 45, 37, -31, -92, -74, -70, -70, -65, 78, 62, 75, 73, -7, -8, 51, 76, -78, 73, 58, 40, -60, 100, 9, -67, 67, 63, 76, 18, -27, -66, 90, -48, 33, 47, -27, 81, 40, 26, 73, 13, 31, -7, -1, -85, 52, 84, 79, 36, 83, -36, -29, -45, -40, -90, -73, 1, -53, -11, 30, -50, 66, 24, -68, 70, 46, -6, 96, -33, 76, -97, -75, -45, 46, -83, -47, -24, -68, 8, 58, -77, -62, 49, -39, -84, -17, 102, -60, 11, -90, -22, 105, -17, -47, 53, 33, -37, -4, 60, -28, 1, 92, 68, -34, 30, -101, 37, -60, -30, -11, -14, 49, 94, 43, -39, 88, -98, -24}, + {-58, 94, -54, -42, -28, -16, 100, 63, 11, -41, -46, 105, -40, -31, 94, 91, -59, 31, -43, 31, -43, -55, -57, -25, -15, 19, -4, 72, 35, 59, -75, 27, 40, -3, -30, 81, 22, 52, -27, -71, -22, 75, 92, -6, 19, -29, 15, 9, 29, -54, 30, 81, 23, -56, 31, 20, 43, 47, 86, 75, 35, 22, -9, 43, 3, -91, -39, 102, 21, 57, 83, 80, -49, -45, -40, 17, 36, -65, 93, -42, 24, 74, 100, 63, -20, -53, 107, -69, -92, 35, 62, -27, 68, 3, 24, 61, 80, 1, -33, -74, -81, -57, 85, 33, -14, 81, 61, -18, 91, 36, -81, 33, 29, -52, 64, -44, 10, 41, -76, -76, -71, 36, 15, -10, 69, -71, 40, -50}, + {-89, -45, 65, 4, 82, -54, -63, 23, -75, -89, 51, -46, 2, 11, -41, 63, 82, -12, -24, -89, -68, -16, -35, -80, 1, 16, -17, 91, -23, 40, 84, -19, 48, 2, 88, 49, 41, 1, 18, 66, -16, 68, 62, 15, 92, -28, 50, 75, -14, -5, 96, -33, 36, 82, 7, -10, 66, -54, 6, 63, 75, 1, -94, -29, -13, 63, -84, 98, 77, 36, -53, -29, -31, 78, -44, -71, 97, 44, 12, 21, -41, 78, -31, -18, 25, -25, 64, -74, -88, 22, 49, -3, 88, 42, 78, -3, -38, -50, -22, -78, 12, 47, 33, -24, -59, 53, -53, 14, 3, -10, 5, 37, 23, -19, -83, -21, -63, -64, -83, -32, 84, 92, -17, 83, -43, 19, 89, -89}, + {-8, -29, 1, 84, 84, -20, 3, -77, -77, -67, 47, 25, -87, 19, -25, 54, -65, -74, 40, -56, -22, -12, -39, 14, 93, 58, 26, 77, -31, -40, 93, -58, -95, 29, -26, 58, 41, -90, 29, 87, 51, 77, 108, -96, 100, 67, 76, 42, 53, -22, -90, 11, 38, 85, 91, 80, 5, -47, -17, 84, 56, 69, -80, -55, 18, -9, 51, -29, -77, -83, 21, -19, -55, 62, -80, -22, -92, -54, -3, -34, -42, 63, -16, 100, -74, 0, 35, 73, 52, -43, 40, 73, -45, -91, -13, 21, 42, 21, -99, 53, -76, 29, 61, 55, 12, 45, 35, 26, -54, -85, -58, 5, 27, -32, -76, -103, -86, 83, 61, 36, 56, 68, -26, -53, -13, 13, 64, -52}, + {75, 82, 64, -30, 94, -66, 69, 44, 67, 65, -55, -40, 5, 28, 15, 60, 7, 25, 15, -13, 81, 23, 74, 63, 47, -81, -4, -64, -87, 19, -39, -20, 92, -20, 89, 27, -50, 63, 58, -89, 50, -17, -69, -37, 82, 8, -33, 11, 65, -68, 48, 64, -21, 15, -76, 69, 52, 13, 70, -30, -71, 34, 31, 51, -91, 77, 12, -6, 12, 34, -4, 46, 45, -37, 39, 45, 43, -55, -13, 76, -74, 14, -55, 63, -14, 41, -58, -33, 41, -88, 21, 92, -55, -60, -92, 52, -71, 73, -43, -66, -32, 92, 55, -28, -82, -50, 5, 87, -8, -55, -17, -14, 9, 77, -72, -9, 22, 71, -63, 86, -35, -84, 13, -56, -6, 60, -68, 39}, + {-20, -27, -3, 43, 36, -60, 19, 40, 30, 60, 87, 18, 13, -62, 33, -72, 55, 1, -33, 86, -89, 6, -35, -69, -15, 58, -86, 12, -7, 13, 62, -53, 54, -83, -73, -42, 26, -37, -20, -49, 87, 48, -52, -70, 37, 21, 16, 10, -73, -46, -69, -70, -90, 0, 29, -33, 51, -62, -63, 67, -64, -22, 62, 77, -55, -19, 49, 64, 12, 39, -31, 43, -74, 51, -52, -22, 79, 37, -9, 53, 50, 52, 11, -5, 44, -9, 45, 60, 11, -76, -20, -13, 31, -65, 47, -19, 8, -20, 4, -86, -41, 86, -11, 51, -88, -13, -88, 71, -63, -38, 13, -50, 20, -87, -50, -85, 67, 80, 1, 50, 13, -94, 79, -85, -79, 60, -4, -46}, + {-37, 73, -2, -29, -81, 56, 36, -10, 41, 3, 44, 29, -61, 56, -4, -13, 73, 70, -27, -66, 65, 58, -32, 4, -24, -35, 53, 43, 11, -38, -11, -39, 75, -46, -72, 5, 71, 6, -26, -92, -15, 92, -29, 69, 3, 22, -72, -44, 2, -71, 91, -59, 40, -49, -62, -79, 69, -33, 51, 12, -50, -40, 27, 18, 0, 79, 17, -19, -5, 26, -31, -24, 16, 80, -16, 1, 61, -42, -27, -60, 19, 90, -52, 64, -16, 47, 72, -72, 46, -77, 17, 71, -80, 52, 77, -73, 20, 66, -86, -91, -10, -93, 55, 12, -6, -1, -26, -64, -61, 56, -44, -2, -80, -30, 81, 30, 32, 89, -17, 32, 63, 65, -78, -70, -72, -59, 34, 38}, + {-26, -26, -28, -56, 4, 34, -45, -14, -77, 39, -2, 74, -30, -3, -66, -73, -10, -69, -62, 12, -7, 15, 83, 53, -83, -47, -13, -36, -11, -54, -81, 5, 71, -31, -50, -90, 57, 1, 42, 49, -2, 29, 66, 64, 47, -6, 51, 94, -78, 75, -29, -45, 33, -13, 4, -48, 64, -84, -96, -51, -5, -75, 42, -62, 1, -42, -24, 78, -28, -84, 75, -72, 28, 91, 41, -62, -23, 22, 50, 65, 23, 79, -71, 89, -13, 61, -69, -71, -89, 50, -54, 30, 11, -55, 36, 59, -70, -12, 45, 22, 65, 62, -91, -67, 88, 33, -42, 91, -65, 37, -45, 47, 81, -44, -65, 61, 5, -5, 32, 56, -3, 19, 36, -22, 78, -30, 22, 33}, + {51, -25, -49, -73, 57, 90, 63, -51, -60, -28, -57, 33, -25, -6, -77, 86, 22, 35, 27, -53, -71, 32, 20, -44, 27, 80, 54, 50, 59, 18, 93, -25, -67, 80, 41, 66, -53, -38, 71, 7, -54, -42, -38, 86, -70, -86, -33, 72, 61, -45, -57, -16, -16, 75, -70, -31, 27, 22, -28, -75, 0, 37, 46, 52, 32, 30, -58, -19, 72, 90, 58, -61, 78, -27, 14, 48, 27, -83, 10, -1, 39, -81, -73, -78, 2, -49, 50, -63, 77, 69, 38, -76, 8, -90, -6, -76, -91, 42, 76, 44, 2, -69, -51, -63, -11, 88, 41, -76, 79, 16, -53, -22, 68, -22, 41, 30, -44, -39, -70, -89, 85, -48, 51, 17, 32, 50, 19, 89}, + {-22, -72, -54, 29, -74, -86, 62, 35, -15, 67, -74, -15, 21, 8, 54, 69, 92, 10, -35, -32, 85, 45, 95, -48, 87, 85, 15, 64, 30, 1, 18, 11, 75, 78, 70, -73, -30, 32, 112, 38, 37, 47, -33, -8, -9, 63, -79, 84, -91, 75, -1, -13, 64, -12, 21, 97, 14, 25, -3, -114, -33, 31, 90, -59, 61, -60, 76, 67, 13, 64, -57, 12, -13, 71, -60, 9, -1, 46, 82, 27, -50, -82, 34, 47, -15, -84, -12, -84, -4, -22, 5, -21, 62, 36, -21, -66, -42, 4, -24, -64, -32, 26, 85, 1, -61, 49, -47, -51, 16, -53, 63, 81, 38, -26, 43, 68, 44, 34, -9, 42, -58, -96, 87, -31, 24, 28, -87, -82}, + {-103, -69, -51, -34, 66, -80, -44, -43, -78, 9, -36, -28, 106, 47, -2, -19, 58, -9, -25, -12, -17, -21, 80, -1, 63, 66, 39, -59, 85, -29, -73, 15, 75, 31, -41, 35, 70, 40, -4, -6, 23, 44, 35, -93, 78, -66, -72, -79, 37, -12, 84, -81, -63, -20, -64, 107, -8, 62, -55, 22, 5, 71, 47, 63, -77, -48, -6, -5, -2, 47, -17, -45, 95, -58, -30, -59, -14, -41, 64, 19, 101, 18, 9, -107, 61, -66, -9, 105, -32, 52, 6, 52, 11, 2, -56, 87, 40, -30, -35, 26, 63, 15, -88, 53, -39, -51, -36, 13, -23, -19, -70, 41, -86, 87, -90, -63, 20, 15, 72, -71, 18, -91, -66, -8, 34, 18, -80, -61}, + {-61, -38, -53, 84, -74, 58, -73, 61, -91, -68, -55, 60, -53, 80, 6, 52, 2, -93, 49, -32, 84, -51, 19, 26, -23, 46, 71, 41, 12, -47, 28, -67, -41, -72, -71, -46, -66, -56, -59, -56, 77, -94, 76, -17, -49, -58, -23, 52, -81, -33, -37, -64, -58, 90, -10, 33, 25, 77, 59, 32, -36, 89, 82, -1, -13, 41, 88, -53, 84, -26, -50, 44, -34, -14, -77, -16, -18, -13, -53, 92, -40, -49, -50, 80, -77, 54, 31, -21, -92, 16, 66, 12, 2, -36, 33, -19, 30, -26, 7, 18, -19, 87, -37, 50, 3, -67, 18, 44, 85, -78, -78, -17, -48, 92, -56, -52, 80, -8, 55, 51, -32, 10, -36, 0, 53, 30, 63, -84}, + {-44, 87, 44, 64, 77, -13, 84, 67, 62, -7, 79, 24, 0, 82, -41, 78, 61, -10, -78, 54, -69, 83, -12, -93, -91, -49, -89, 11, 40, -7, 85, 11, -66, -40, -77, -70, 83, -90, -64, 92, -77, 85, 21, 11, -38, 50, 66, 25, -33, -11, 87, 25, 55, -29, -43, -21, 56, 30, 59, -1, 12, -88, 57, -66, 69, -89, -38, -37, -92, -93, -43, 6, -24, -11, -74, 50, 7, 12, -35, 29, 69, 38, 1, -23, -87, -80, 89, 56, 47, -47, -87, 55, 75, 40, -44, 43, 75, 44, 6, -88, 38, -7, -1, -34, -64, -61, 20, 25, -34, 17, 10, -70, 36, 55, 94, 94, -87, -79, -54, -10, 66, -56, 83, -5, -78, 74, 20, -38}, + {-87, -8, -40, 16, 74, -88, 25, 35, -52, -54, -62, 79, -56, 93, -55, -67, 7, -15, -57, -80, 58, 78, 64, 6, 47, 82, -9, -25, -94, 13, -3, 42, 82, -35, 56, -83, -73, 84, 56, -12, -43, -26, -59, -44, 35, -31, 25, 93, -75, -7, -44, 5, -49, 24, -2, -73, 47, -59, -63, 78, -59, -83, -46, 45, 11, 6, 67, 90, -39, 65, -32, 46, -75, 14, 89, 56, 6, 55, 73, -14, 29, 92, 85, 51, 23, -38, 55, 6, -5, 73, -75, 3, 39, 32, 82, -58, 63, -77, -95, 42, 90, 30, 26, -75, 56, -57, 12, 39, -51, 40, -53, -12, -26, -92, 50, -31, -53, 1, -28, -70, -13, -43, -3, 88, 41, 29, -19, 94}, + {-81, -8, 83, -2, -28, -70, -88, 39, 73, 59, 1, 48, -21, 58, 77, -19, 79, 55, 83, 67, -72, -31, 81, 37, -49, 81, -3, 12, -79, 63, 58, 14, -49, 26, 89, -14, 40, -76, -84, -16, -20, -47, -24, -50, 53, 3, -79, -92, 52, -35, 36, 90, -57, -36, 85, 3, 23, 4, -39, -26, -14, 10, 70, -72, -49, -40, -93, -33, 48, 41, 10, 65, 9, 50, -25, -26, -51, -14, 94, -33, -13, 41, -1, 63, 72, -22, -74, -91, 16, 7, -30, 1, 6, 86, -3, -50, -8, -52, 8, 31, 24, -13, 45, 6, 73, -56, -70, 56, -59, 92, -88, -36, -77, 84, -93, 79, -49, -65, 23, -22, 63, -64, -88, 35, -81, -58, 7, -53}, + {78, 91, -68, -60, 97, 85, 28, 5, -59, 17, -53, -61, -77, -36, -25, 32, -48, -57, -92, 52, -38, -95, -75, -60, 69, -85, 74, -111, 13, -20, 26, -27, -32, 44, -63, -74, -45, -31, 58, 54, -15, -33, -78, -4, -22, -29, 87, 55, 100, -86, -50, -20, -28, -71, -5, -104, -40, -57, 54, -17, 78, -9, 21, 71, 56, -17, -62, -76, 63, 97, 37, 84, -4, 22, 57, 2, 36, 78, -71, -85, 85, 93, -25, -18, 34, 69, 82, 55, 7, -26, -35, -84, 76, -88, 48, -9, -12, -60, -38, -39, 53, -88, 0, 13, -17, -5, -92, -50, 80, 68, -71, -47, 87, 2, 94, -9, 1, 11, -34, -46, 91, 41, 57, -29, 12, -12, -18, 57}, + {9, -66, 35, -38, 76, -65, 80, -57, -40, -32, 69, -33, 11, 48, 80, 2, -9, -93, -71, 93, -67, 33, -58, -1, 87, 38, -23, -43, 52, 86, 22, -11, -62, -69, -92, -36, -34, -12, 36, 49, -94, -12, 51, -86, 41, -47, 70, 59, -50, 89, -31, -29, 19, 37, 54, -85, -86, 94, 82, 79, -44, -47, -63, 29, 34, -22, -37, 92, 41, 37, -49, -56, -26, 27, -13, -28, 50, 90, 30, 30, 91, -53, 6, -1, -14, -92, 6, 13, 88, -93, 75, -7, 88, 10, -28, 94, -93, -36, 15, -52, 9, -17, -91, -37, -37, 86, -31, 54, -55, 19, 88, -56, -90, -38, 22, 69, -30, -12, -44, 43, 21, 65, 20, 73, -21, -12, -74, -8}, + {-52, -70, 86, 57, 15, -88, 91, 1, -27, 45, -77, -73, -62, -94, 27, -87, -40, 46, -60, 32, 74, 25, -87, 76, -53, -39, 3, 54, 41, 26, 60, -79, -27, -61, -45, 22, 25, 77, 88, 35, -73, 15, -87, 61, -83, -74, -3, 97, 27, -25, 50, 40, 3, 29, 59, 40, -76, 19, 56, -10, 85, -47, -18, -78, -74, -64, 46, -64, 99, -5, 60, -64, -42, -96, 95, 9, 46, 22, -85, -77, 29, -5, -20, -12, -19, -18, -63, -70, -74, -26, -64, 30, -1, 85, -102, -56, 59, -90, 92, 37, 30, -5, -23, 14, 77, 81, -49, -44, 31, 66, -35, 43, -34, 45, 41, -70, -87, 73, 57, 13, -18, -88, -50, -50, 94, 31, -2, -34}, + {-61, -9, -10, 70, 72, 10, 71, -5, 80, -70, -10, -106, 99, 91, 28, 79, -69, -16, -77, 38, -11, -75, -44, 64, 17, -31, -62, -60, -17, 54, 92, -3, -38, -86, -15, -15, 12, 32, 30, 2, -61, 53, 105, 9, -69, 73, -45, 59, -57, 64, -5, 80, 35, -68, 72, -74, -60, 53, -9, -16, 97, -59, 82, 63, -82, 93, 39, -55, -61, 74, 107, 83, -78, 48, -66, 64, -13, 49, -28, 108, 31, 82, 89, 13, 12, 60, 72, 96, -42, 16, 48, 43, -55, -63, -24, 68, 66, 21, 74, 6, -53, -92, 65, -75, 83, -38, 62, -1, -49, 83, -56, -46, -14, 0, -42, 37, -26, -46, -16, -21, 57, 115, -43, 104, 79, -87, 23, 112}, + {27, 55, 44, 71, 86, -8, -19, -36, 43, 40, -71, -31, 43, 66, 88, 64, -18, 6, 47, -88, 44, -79, -59, -8, -23, -28, -42, -100, -34, 50, -43, -66, 66, -27, 54, 54, -7, -72, 37, 50, 33, 8, -28, 94, -37, 83, -54, -95, -36, -75, 73, 54, 45, 7, 38, -102, 23, -39, -92, -46, 63, -46, 52, 80, -64, -81, -5, 39, 37, -38, 77, -39, 25, -12, -32, -15, 38, 62, 80, 42, -30, -13, -87, 39, -2, 34, -45, 33, 2, -53, 29, 70, 15, 51, -37, 37, -11, 22, 20, 48, 27, -86, -73, 11, -18, 55, -24, 17, -71, 57, -48, 86, 10, -28, -92, -65, -16, 58, 88, 62, -73, 4, -2, -34, -79, 47, 46, 33}, + {63, -40, 50, 7, -77, 37, 84, -37, -86, 12, 7, 88, 69, 54, -77, 13, 63, -28, 78, -21, -85, 5, 10, 67, -79, 89, 60, -51, 50, -41, 23, -24, -83, 17, -21, 36, 89, -44, 61, -75, 4, 50, -11, 26, -86, 61, -50, -57, -18, 44, -86, -69, 89, 55, 38, -30, -4, 65, -90, -21, -27, 17, 46, -35, -90, -36, -65, 12, -31, -41, -34, -77, 37, -17, -13, 29, -26, -47, 30, -47, 84, 28, -42, 3, 8, -82, -79, 59, -21, -38, -87, -49, 80, -71, 38, -66, -82, 3, 76, 55, 29, 7, -46, 68, 19, -86, -32, 37, 58, 24, 43, -12, -10, -62, -81, -12, 9, -3, 40, 70, -47, 20, 86, -68, 30, 5, -49, 9}, + {75, -53, 91, -16, -14, 85, -77, -11, 23, 15, -76, -54, -53, -19, -73, -42, 63, 84, -13, -9, -88, 33, 17, -85, -30, 35, -41, 27, -52, 60, 8, -16, -81, 89, -51, -80, -76, 88, 47, 71, 74, 31, -35, -14, -36, -23, -91, 58, -92, 1, 5, 49, -32, -54, -20, -33, 72, 6, 2, -78, 24, -79, -45, 74, -14, -86, 30, 72, 20, -20, -80, -15, -46, 61, 82, -63, -21, -44, 19, -77, -62, -66, 1, -44, 83, -10, -25, 37, 60, -23, 90, 10, -2, 70, -43, -32, -62, -91, -15, 37, 21, -16, -63, 63, -17, -54, -41, -91, 86, -83, -56, -29, 80, -30, 43, 86, -29, 64, -14, -74, -64, 16, -8, -33, -36, 87, -14, 47}, + {-10, 64, 51, 13, -65, -79, 11, 79, 76, 78, 78, 91, -22, 70, -6, -1, -19, -83, 85, -39, 81, -42, -71, -44, -52, 49, 89, -87, -5, -38, -88, 31, 89, -59, 44, 11, -46, 77, 31, -71, 82, -5, 52, 92, 88, 5, -62, 85, -65, 40, 42, -66, 65, 41, 59, 19, 89, -37, -55, -36, 0, -80, 9, 81, -50, -56, -46, 32, 83, 11, 78, -50, 39, -86, 9, 8, -51, -45, -34, -79, 79, 12, -56, 83, 39, 73, -69, 61, -67, -45, -53, 30, 24, -29, -67, 52, -67, 20, 75, -19, 75, -83, 32, 33, -18, -47, 53, -85, -48, 76, -23, -75, 41, -58, -67, 79, -68, 62, 89, -21, 59, 35, 57, -29, -47, 11, 43, 50}, + {-20, -73, -19, -9, -36, -60, 88, 31, -54, 89, -70, -69, 88, -26, 51, 26, 56, 60, 78, -36, -90, 33, -12, -86, -26, -43, -36, 87, 8, 85, -64, 6, -75, 68, -32, -32, 80, 1, -1, 17, 47, -96, 59, 59, 103, -32, -54, 59, -70, -1, -47, 48, -33, 45, 2, 12, 8, -58, -69, -10, 41, 16, -23, -97, -72, -55, -58, -12, -52, -32, -66, -1, 90, 23, -76, 2, -91, -20, -33, 39, -64, 38, 27, 94, -45, 69, 32, -29, 85, 37, 33, 8, -13, -88, 86, 51, 13, -66, -75, -24, 53, 26, -93, -7, -14, 90, 11, -27, 61, 2, -64, 10, -5, -46, 54, 71, -85, 26, -67, 50, 5, -53, -8, -76, -24, -83, 66, -76}, + {54, 64, -66, -16, 83, 18, -69, 33, 81, -30, 37, 38, 17, -19, 15, 20, -79, 24, -59, -32, 74, 65, 55, -7, 65, -57, 38, -48, -23, 84, -15, -32, -83, 55, 31, 36, -6, 41, -35, -61, -29, 62, 9, 76, -81, -15, 70, -29, 63, -58, 77, -5, 7, -77, 70, -92, -6, 64, 66, 16, -83, 59, 47, -29, 20, 67, -8, -7, -42, -29, 57, 58, -66, 62, 29, 74, -11, -73, 61, 41, 50, 88, 73, 21, 53, 49, -81, 19, -44, 14, 84, -50, 13, -77, 31, 9, -66, -18, 93, -6, -47, 13, 13, 44, -45, -35, -10, -32, -9, 76, -39, 52, 12, 53, 6, -38, -93, 60, 7, 27, 32, 45, -37, -1, 27, 66, -5, -1}, + {31, -28, 16, 28, 23, 69, 83, -85, 65, 26, -71, -7, -45, 60, 83, -53, -56, -63, 30, -39, 15, -44, 13, 30, -57, -83, 58, 47, -51, 24, 90, 91, -25, 52, -56, -55, 58, -38, 54, -80, -74, -101, 16, -88, 21, 13, -6, -82, 35, 34, -75, 35, -65, -73, -79, 101, 87, 84, -42, -100, 61, -39, 91, 78, -33, -49, 33, 44, 9, -43, 39, -87, 40, -85, -81, -46, 75, 84, 46, 43, -65, -38, 87, 13, 80, 26, -35, 22, -41, 9, -78, 47, -31, -76, 53, -78, 32, -54, -38, 23, 65, 46, -2, 57, -72, -72, -18, 20, 32, 53, 67, -83, -45, 11, 3, -63, -70, 21, 10, -94, -82, -27, 19, -72, -12, 14, -68, 49}, + {-43, 23, -98, 94, -19, -70, 56, -27, 84, 27, 42, 42, -97, -46, -28, -27, -92, 30, -39, 60, -93, 56, 68, 0, -1, 35, -8, -78, -35, -82, 35, 28, 26, 94, 37, 46, 88, -50, 76, 18, 15, 52, -14, -81, -7, -55, 52, -7, -36, 36, -80, -82, 51, 50, -84, 10, 0, 60, 49, -8, 74, 75, -69, -47, 34, 86, -23, -84, -45, -73, 78, -41, 68, -29, 11, 22, 44, -34, -86, 2, 93, -10, 85, -100, 62, 2, 68, 64, 88, -36, -36, -41, -46, 43, 77, -70, 74, -11, -97, 48, 100, -54, -79, -46, 89, -70, -63, 21, 90, -31, 2, -55, -40, -20, -20, -40, -2, 72, 18, -12, 22, -17, -93, 23, -76, 72, -22, 26}, + {72, 90, 86, -82, 25, -44, -69, -47, 91, 4, -27, 1, -5, 44, -79, 45, 86, 36, 59, 37, -13, 89, -18, 29, -40, 39, -73, -17, 7, -50, 69, 43, -47, 12, -36, 22, -30, 57, -58, 63, 89, 43, -67, -87, 17, -87, -64, 34, -75, -5, -43, 55, -56, 17, 87, 34, -41, -48, -47, -24, -24, 93, 80, 6, 54, -63, -21, 75, -82, 59, 103, 8, -67, -57, 78, -33, -35, 96, -82, -5, 91, -30, -10, 75, -53, 57, -69, -9, 68, 65, 90, 13, -35, 83, 25, -10, -46, 43, 30, -42, 78, 32, 24, 81, -83, 57, 87, -38, -42, -18, 76, -14, -33, -15, 33, -47, -87, -59, 84, 82, -42, 73, 97, 25, 27, 40, 53, 30}, + {-101, 66, 70, 62, -22, 34, -3, 7, 25, -49, 55, -42, 97, 67, 31, -74, -74, 27, 15, -29, 57, 49, 10, 54, 67, -50, 36, -70, -64, 42, -19, 75, -50, 91, 30, 31, 79, -9, -40, 26, 61, -90, -72, -5, -12, 12, -74, 89, -81, -13, 91, -34, -3, -31, -69, 89, -2, 6, -38, 76, -3, 12, 56, -33, -21, -74, 21, 87, 95, -28, -28, -64, -63, -54, 4, -2, -37, 93, 12, -17, -67, 50, 92, -48, -65, 63, -46, 69, -43, -66, 13, -43, -10, 90, -32, 55, -38, 91, 27, -56, 39, -79, -60, 103, 70, -66, 81, -3, 40, 4, -18, 80, 11, -31, -11, 42, 62, 110, -1, -48, 58, -54, 109, -52, 60, 37, 85, 98}, + {-4, -95, 80, -2, 73, 30, 20, 72, 45, 2, 20, -4, 42, -13, 56, -70, 90, -11, 83, -13, 71, 57, 0, -21, 64, 62, -64, 21, 11, -21, -4, -51, -27, -67, -41, -67, 23, -67, -44, -30, 36, 6, 72, -21, -82, -24, -15, 86, 80, 21, 1, 11, -72, 44, -4, -28, 91, 46, 35, -51, -10, -24, -81, 77, -39, 84, -12, 53, -18, -34, -91, 76, 37, 78, 35, -5, -32, 40, -25, 52, 57, -80, -57, 13, 2, 87, -88, 39, -19, -89, -4, -8, -27, 36, 53, -38, -61, -35, -57, -61, -48, 3, 80, 48, 86, -47, -71, -18, 4, 43, 46, 44, -30, 69, -35, 92, 64, -8, 6, 29, -87, 31, -83, 61, -49, -38, -79, -3}, + {39, 27, 1, 93, 19, 94, -19, 82, -31, 63, 48, 53, 67, -77, 16, 36, 5, -66, 34, -86, -2, -89, 17, 36, 33, -18, 39, 74, -36, -81, -40, -36, -42, -17, 41, 18, -29, 63, -52, -46, 24, -70, 66, 73, -88, 45, 15, 27, -16, -61, -41, -46, 56, -34, 100, 61, -22, -75, 76, -83, -71, 44, 99, 28, -91, -2, 12, 31, 109, -88, -17, -4, 40, 5, 63, -92, 41, -13, 33, 24, -62, -81, 75, 35, -85, 74, -20, 20, -110, 46, -10, 75, 36, -49, 58, 92, 22, 38, 74, -57, 81, 40, -12, 92, 77, -69, 38, 23, 60, 55, 83, 19, 17, 12, -33, 39, 46, 99, -81, -56, -34, 59, 34, 97, 51, 17, 57, -48}, + {-40, 56, -20, -34, 13, 16, -14, 10, 32, 17, 44, -69, -42, 26, 7, -23, -37, 60, -85, -65, 8, 46, -10, -79, -22, -30, -60, 45, -36, -53, -66, 74, -68, -46, -86, 89, 115, 99, 28, -57, 39, -35, 11, -57, 34, -37, -35, 36, -57, 15, 16, 64, 12, 13, 65, 76, -71, -40, 109, 5, 64, -31, -43, 75, 25, -72, -16, -26, 63, 89, 2, 47, -49, -52, 21, -13, -46, -73, -6, -11, -1, -86, -21, -85, 12, -15, 4, -9, -40, -9, 41, -12, -10, 80, -90, -2, -59, -19, 105, 83, -40, 34, -77, -57, -75, 51, 79, -9, -49, 22, -9, -45, -64, 92, -29, 21, 38, -39, -3, 52, -10, -46, 18, -83, 3, -32, -6, -59}, + {15, -47, -34, -68, -70, -48, 90, 68, -22, 54, -10, -8, 73, -82, 37, 19, -65, -83, -57, 2, -69, 63, -33, -26, 89, 25, 50, -50, 37, -1, -58, 43, 54, -29, 29, -23, 37, -72, -35, -22, 42, 12, 21, -54, -69, -45, 58, 93, 28, -84, 36, 27, -47, -11, 61, -79, -73, -43, -44, -44, 50, -46, 25, -1, 68, 58, 33, 46, -33, 88, 82, -70, 0, -63, 108, -47, -24, -21, 60, -45, 39, -2, -39, 7, 89, 75, -27, -86, -73, -35, 101, 53, -56, -69, 38, 32, -27, -26, 74, -51, -74, 46, 52, 59, 60, 92, 50, 49, -63, -48, -15, -8, -14, 26, 25, -33, -63, 28, 24, 13, 18, 2, 3, 71, -31, 92, 21, 33}, + {-12, 12, 37, -64, -8, 56, -69, 40, 64, 36, -15, 6, 77, -42, -87, 73, -87, 22, 27, -83, -71, -50, 61, -75, 48, 72, 60, 63, -93, 70, 93, 75, -74, -67, -42, 0, -11, 94, -51, -86, -23, -54, -48, 79, -13, -41, -22, 40, 59, 94, 63, -12, 30, -5, -25, -79, -7, 77, 24, 1, -40, 82, 93, 74, 74, -86, -82, 93, 46, 54, -56, 41, -28, -35, 40, 40, -24, 57, 32, -74, -93, 83, -17, 57, -14, 1, -21, -25, -94, -34, -17, -27, 17, 6, 72, 56, -24, 19, 18, 71, -39, -74, 5, -25, -1, 68, 48, 15, -52, 77, -47, 63, -69, 2, -41, -40, -6, 1, 19, 37, -44, -19, -44, 27, -90, -16, -52, 65}, + {108, 34, -24, 43, -51, -100, 3, 37, -24, 17, 54, 59, 5, -94, -49, -23, 59, -4, 51, -91, 54, -43, -24, -61, 59, -64, 78, 91, 49, 2, -87, -70, -6, 16, 95, -34, -6, 34, 30, 76, -78, 9, 1, 94, 1, 13, -46, 37, -78, -64, 84, 62, -66, 91, 86, 44, 62, 66, -24, -41, -57, -8, 40, 7, 12, 16, -34, 51, 38, -68, -1, -35, 29, 59, -56, 40, 68, -61, 48, 23, -7, -17, -26, 12, 10, 65, 19, 25, 15, 8, -33, 80, -36, -94, -10, -28, 14, 56, 17, -71, 31, 18, 0, -69, 40, 74, -31, 37, -46, -29, 61, -13, -8, -40, 20, 78, -68, 43, 12, 49, 13, -58, 41, 26, 0, 38, -50, -17}, + {90, 41, -83, 5, 61, 23, -76, -52, 93, -42, -87, -47, 25, 62, 39, 36, -65, -22, -5, 12, 68, -17, -11, -70, 57, -37, -80, 27, -36, -64, -67, 49, 57, -65, 41, -58, -7, -55, 93, 31, 18, 7, -60, -34, -69, -33, -74, 32, -70, 28, 82, 62, 36, 28, -65, 14, -44, -11, -44, -26, 31, 10, 68, -12, -32, -66, -39, 18, 4, 15, 3, 4, 70, -15, -23, 39, 75, -66, -40, 69, -35, 49, -62, -39, 22, -67, -70, -16, 46, -18, -85, -8, -82, 79, 37, -26, -83, 11, -59, -91, -57, -92, -62, 18, -98, -75, -99, 67, -46, 3, -15, -41, 23, 15, 24, -51, -14, -45, 33, 64, -76, 61, 118, -72, -50, -15, 91, -14}, + {-74, -85, 46, -47, 73, 31, 18, 37, 51, 19, -91, -12, 48, 4, -4, -93, 54, 64, 25, 39, -48, -43, 88, -30, -83, 23, 17, 54, -55, -85, -58, -19, 35, -3, 53, 34, 38, 57, 28, -53, 40, 25, -41, 23, 31, -24, -83, -1, -31, -60, 68, -60, 78, 31, 25, 69, -20, 28, -87, -74, -22, -88, 34, 65, 64, 89, 16, -4, 50, -48, 14, 29, -58, 20, 60, -49, -78, -49, 27, -20, 52, -28, -31, 83, -68, -48, -77, -76, 20, 83, -28, 54, -9, 84, -58, 87, -33, 83, -18, 10, -29, -32, -44, 38, -74, -64, -15, 52, -23, 84, 34, -55, 68, 21, -31, 24, -41, -63, -89, 74, -9, 21, 51, -77, -53, 65, 51, 42}, + {-89, -76, 9, 76, -49, -5, 67, 93, -77, 110, -63, 21, -52, 60, 75, 78, 31, -47, -34, 51, 81, 4, 10, -18, -1, 78, 53, 90, -45, -92, -28, -64, 76, -93, 104, -45, 51, 63, 53, 59, -72, 47, 14, -20, 93, 53, 24, -69, -40, 52, -26, -14, 5, 120, -27, 76, 59, -61, -37, -36, 30, 62, -20, 86, -38, 46, 55, 5, -11, -32, 62, -18, -11, 71, -6, 56, 47, 34, -40, 19, -72, -19, 63, -78, -13, -5, 33, -83, 112, -61, 79, -36, 57, -37, 70, -40, 3, -27, 84, 44, -51, 85, 28, 83, 41, 27, -12, -28, -90, 52, 32, -17, -77, 37, 60, 31, 88, 64, -81, 69, 43, 14, 80, 53, 7, 6, -121, -12}, + {63, 90, 3, 65, -59, -75, 88, -10, -37, -78, -86, 67, -20, -9, 68, -69, -14, 77, 67, -3, 31, -19, 0, -5, 60, 22, 20, -22, 20, 80, -3, 92, 67, 45, 47, -77, -34, -7, 30, 82, 7, 53, -31, -66, 69, -21, 78, -53, -55, 89, 76, 93, 25, 2, -80, -67, 92, -33, 26, 17, 70, -29, -23, -56, 62, 63, 20, 21, 24, 26, 20, -62, 19, 71, -109, 87, -68, -42, -52, -43, -57, 67, -40, 3, -28, 9, -83, -6, -64, -39, 28, -5, -69, -29, -69, -35, 41, -40, -35, 57, 16, 40, 27, -32, 13, 36, -41, 93, -63, 32, -43, -9, -75, 4, -28, 18, -62, -107, -8, 16, -19, 97, 76, -43, 57, 71, -5, -76}, + {-3, -79, -47, -33, -28, -67, -62, 58, -19, 61, -38, 2, -66, -49, -38, -39, -71, -73, 36, -26, -65, -37, -84, -49, -50, -84, 2, 66, -81, 32, 10, -76, -37, -85, 84, 32, 54, 77, -9, 65, 86, -64, -63, -15, 51, 93, 14, 81, 47, 21, 46, 0, -29, 40, -60, -23, 20, 61, 61, -16, 91, -1, 22, 56, -18, 93, -76, 47, 3, -33, -4, -16, -17, -41, -89, -63, -50, -71, -15, -48, 8, 43, -12, 94, 37, -44, -39, -64, -40, 55, 3, -34, 40, -5, 66, 51, 64, 69, -76, 82, 69, 37, -3, -32, 69, -69, 51, -21, 11, -86, 23, 42, 69, 64, 86, -24, -32, -2, -91, 5, 28, -2, -93, 84, 18, -20, 37, 67}, + {-46, -41, -28, -59, 44, -82, -57, -47, -75, 33, -50, 39, 14, 89, -25, 23, -65, 46, 20, -78, -30, -88, 8, -88, -50, -49, -20, -14, -67, -70, -93, -66, -65, -44, -13, 1, -32, 6, 29, 77, -56, 58, 5, 69, -95, 42, -29, -29, 8, -53, -36, 83, 12, 89, -76, -62, 88, -16, 77, 52, 54, -1, -52, 75, 65, -19, 0, -43, -79, 85, -12, 22, 66, -95, 92, 64, -47, -52, 81, -27, -69, 75, -11, 35, -47, -97, 16, 3, -84, -80, -85, -20, -36, 71, 58, -72, -10, 14, -72, -25, 12, -39, 63, 56, -67, -61, -40, -15, -15, -94, -86, -67, -27, -47, 31, -3, -27, 34, 13, -56, 50, 20, -33, 19, -32, 71, -65, 72}, + {48, -32, 31, 49, 41, -59, -49, 22, 72, -77, 43, 54, -87, -32, 78, 9, 22, 34, -9, -15, -95, -84, -69, 57, -76, 67, -52, 69, -34, 21, 71, -74, 48, -80, -35, 52, -64, 88, 73, -63, -42, 33, 22, -90, -79, -15, -30, -79, 15, 28, -1, 17, -69, -15, 35, 67, -73, 59, -41, 59, 10, 1, 37, -59, 67, -34, -64, 60, 32, -39, -22, -81, 72, 73, 77, -43, -67, 40, 56, -6, -86, 48, -92, -44, -92, 63, -77, -17, -39, -84, -99, 70, 28, -77, 49, -24, 42, -8, 53, -57, -81, 82, 2, -82, -48, -79, -47, 20, 76, -20, -54, -76, -83, 1, 8, -66, 17, -41, -38, 19, -33, 78, 66, -31, -29, 60, -38, -58}, + {54, 12, 66, -88, -12, -18, 23, 5, 64, -84, -38, 59, -82, -45, 41, 40, 87, -46, -64, 15, 90, 21, -13, 80, 44, 33, 83, 47, 51, -75, -82, -67, 88, 16, 5, -65, -19, -56, -41, -49, -60, 50, -93, -52, 51, 6, -60, 41, -45, -17, -47, 13, -26, -7, -7, 40, -88, -52, -78, -65, 30, -92, 46, 57, 19, 93, 51, -8, -19, 23, 39, 58, -51, 12, -84, -93, -47, 11, 78, -27, 25, 60, -14, 61, 74, -5, 64, 67, 15, -46, 90, -30, 68, -83, 43, 43, 49, 89, -46, 1, 63, 5, 70, 27, -67, -76, -76, -90, -57, 74, 21, 18, 62, 50, -84, -41, 53, 80, -41, 90, 29, 35, 35, 25, 84, 2, -7, 26}, + {74, -79, -23, -61, 70, -4, 58, -64, -40, 15, 84, 67, -61, 13, -77, 42, 8, 6, 11, 80, 93, 0, -70, 82, -61, -38, -75, 15, 23, -10, 51, 48, 48, -15, -9, 51, -3, -13, -67, -5, -73, -100, 37, -35, 37, 66, 99, -34, -2, -3, 31, -56, 76, 100, 78, 40, 3, -70, 87, 41, -60, -10, 42, -62, -76, 77, 18, 30, 74, 90, -52, 62, 96, 6, 13, -67, -9, 38, 83, 72, 33, 74, -67, -65, 62, -72, 62, -92, -4, 53, 7, 31, -22, -32, -43, 25, 36, 42, 70, -73, 5, 48, 42, -26, 80, -28, 34, 18, 66, -22, -17, 24, 71, -88, 90, 10, -25, 58, 13, -8, 39, 38, 39, -27, 16, 69, -81, 82}, + {10, 22, 33, -61, 48, 50, -83, -76, 17, 84, -37, 92, 94, 67, -77, 60, 21, -10, 20, -79, -74, 52, -1, 10, -75, 47, 35, -92, 69, -3, -93, 30, -64, 76, -91, -59, 4, 7, 13, 60, 17, -39, 33, -60, 19, -72, -29, 7, 33, -15, 63, -77, -83, 66, -13, 41, -50, -32, 7, 44, 66, -40, 58, 41, 5, -33, -51, 37, 79, 76, 14, 13, 0, -83, 63, 30, 78, -28, -18, -51, 90, 1, 32, -50, 6, -7, 52, -67, -59, 59, 78, -28, -70, -68, -92, -40, 59, 29, -41, 48, 40, -33, 54, -33, -62, -29, 13, 57, -87, 86, 55, 67, 6, -4, -21, 90, -53, -78, -66, -80, 85, -85, -57, 27, -27, 5, 55, -48}, + {93, 27, -19, -10, -63, -67, -20, 5, 74, 64, 42, -59, 16, 55, -83, -23, -36, -1, -2, -73, 19, -83, 40, 65, 46, -60, -46, -21, 35, -9, 53, 89, -76, -78, 47, -11, 94, -59, -5, -55, -4, -62, -10, -59, 44, -78, -10, 94, -47, 56, 57, 47, 14, -1, 65, -22, -28, 51, -30, -36, -72, 78, 54, 87, -79, -48, 49, 10, 16, -9, -19, -15, -39, -72, -69, -39, 59, -36, 26, -70, -34, -72, -32, -68, 48, -74, 78, 38, 76, 82, 63, 6, -56, -46, -94, -45, 11, -4, -54, 68, -9, -24, 63, -73, 29, -18, 93, 87, -61, 21, -49, -29, -76, 18, -74, -39, 28, 38, -11, -22, -61, -39, -1, 56, -66, 0, -81, -58}, + {-27, -88, 47, 84, 36, 38, -34, -1, -18, -71, 73, 46, 72, 4, -66, 0, -25, -50, -33, 38, 65, -49, -73, -52, -80, -40, -31, 16, -14, 1, 76, 14, -93, 72, -69, 63, -37, -39, 78, 79, -91, -54, 13, -79, -67, 88, 42, -4, -16, 61, -61, 0, -21, 17, 13, -92, 72, 30, -61, 64, 85, -92, 42, -65, 81, -77, 38, 28, 48, 37, 63, 22, 89, 66, 33, 67, 81, 32, 65, 0, -46, -66, -8, -81, 71, -34, 79, -83, 5, -81, 14, 42, -1, -5, 14, -76, -38, -57, -33, -2, 41, 30, 52, 88, -55, 74, 7, 15, -14, -43, 30, -67, 31, -88, 45, -80, -24, 6, -61, -1, -49, 23, 43, -9, 60, 9, -79, -14}, + {-65, 93, -69, 45, 61, 9, 99, 68, 74, -68, 67, 97, -4, -24, -22, 35, 70, -92, 55, -65, -23, -46, -68, 56, 64, -53, 85, -3, -6, -68, -61, 34, 44, -11, -46, -78, 106, -84, 82, -17, -7, -76, 109, -11, -12, 28, 16, 56, 73, -14, -87, 15, -41, 107, 21, 78, -43, 58, 100, -55, -23, 47, 67, -60, -79, 39, -60, 94, 1, -26, -81, 90, -77, 21, 95, 24, -54, -52, 3, -21, -82, -18, 73, -39, 54, 53, -29, 61, 24, 82, -43, 59, -4, 25, 76, 79, 96, 15, 55, 62, 34, -16, 78, 30, -56, -28, 82, 5, -75, 62, -4, -21, -23, -5, 3, 53, -50, 86, 5, -92, -53, -46, 77, 49, 88, 19, 58, 1}, + {74, -41, 50, -47, -33, 37, -69, -80, 68, 64, -43, -85, -75, 23, -93, 79, -37, -72, -54, 23, 15, -57, 107, -80, -81, -61, 26, 17, -18, -79, -89, 84, -69, -36, -50, 46, 42, 26, 47, -40, -34, 53, 42, -101, 47, -78, -25, 66, 38, 63, 88, 67, -112, -17, 97, 120, 35, -44, 118, -37, -80, 52, 26, -75, 10, 97, 19, 83, 31, -6, 9, -65, 10, 57, 59, -80, 60, -54, 17, -53, -97, -20, -50, 38, -67, -74, 96, -78, -39, -9, -48, -35, -74, 93, -95, -61, 59, -2, 120, 7, 91, -26, -50, 39, 88, 29, -18, -24, -5, -8, -94, -76, 72, -29, 39, -109, 86, -44, -58, 16, -25, -81, -73, 55, 59, 90, 6, 39}, + {31, -51, 104, 28, 68, 59, 57, 89, 5, -68, -81, -34, -34, -19, -69, -31, 55, -27, 21, 78, 84, -5, -46, 22, -42, 54, -51, 31, 27, 58, -65, 81, -3, 64, 68, -52, 44, 14, -67, 81, -5, 57, 59, 21, -52, -14, -92, -24, 46, 52, 75, 20, 15, 49, 60, 91, 6, -40, 59, 75, -80, 24, -29, -26, -85, 88, 12, 10, -7, 80, 77, 61, 95, -78, -23, 72, 45, 54, -31, 24, -1, 73, -47, 57, -65, -64, -71, 29, 47, -21, -20, -28, -20, -59, 48, -36, 87, 13, 17, -52, 30, 72, 82, 44, -27, 70, -14, 39, 20, 14, -28, -49, 53, 31, 84, -95, 1, 83, -20, -60, 81, 35, 75, -18, 72, 89, 38, 64}, + {-48, 26, 17, 32, -46, -10, -31, 42, 62, -34, -48, 64, 20, 64, -32, -26, 39, 55, 15, 51, -56, -65, 18, 12, -25, -14, 86, -60, 97, 74, 22, 5, 93, -44, 51, 15, -7, -33, -49, 63, -73, -46, 5, 26, 63, -92, -42, 12, 97, 83, -40, 83, 55, 25, -59, -60, -23, -43, 1, 98, -48, -19, -6, -77, -83, -2, -83, 14, -50, -75, -38, 84, -6, -72, -45, -79, 17, 85, -73, -81, -8, 96, 61, -82, -87, -75, -86, 14, -91, -36, -69, 50, -27, -81, -26, -21, 3, 19, -23, 30, 8, -87, 28, 81, -40, -33, -84, 45, -81, 40, -21, -82, -35, -73, 83, -40, -3, 49, -69, -76, -1, 34, 81, -1, -38, 72, 25, -18}, + {-64, 52, -63, -39, -91, 49, 27, -32, -91, -40, 45, 51, -49, 56, -43, 16, -45, 3, 79, -28, -59, 77, -2, -4, -52, 39, -95, -86, 5, -56, 53, 87, -16, 35, -6, -72, 82, -61, -36, 38, -1, -44, -75, 78, -58, 12, -44, 38, -7, -9, -23, 72, 81, 10, 34, -41, -26, 81, -51, 88, -86, -60, 26, 14, 4, -33, -25, -27, -38, -39, 66, -27, 66, 47, 74, 36, 54, -16, 45, 32, 3, -74, 5, -21, -40, 59, -77, 22, -32, 23, -35, 75, 14, -61, 18, -30, -37, 10, 64, -60, -40, -92, 80, -27, 83, -59, 30, -52, 33, -30, 45, -38, -38, -64, 57, -78, 88, 72, 39, 42, 67, -19, -15, -34, -30, 77, -94, -22}, + {68, 24, -81, -35, -74, -87, 42, 87, 19, 26, -26, -79, -16, -3, -16, -55, 60, -78, -51, 8, 27, 26, -46, 12, -11, 76, -62, -45, 76, 66, -91, 18, 79, 18, -14, -49, 68, 44, -90, 17, -31, 30, -25, 83, -82, -76, 24, -91, -57, -21, 50, -40, -21, 25, -60, 66, -92, 2, -39, 78, 87, -35, -89, 23, -3, 21, -86, 51, 6, 93, -39, 66, 25, -35, -34, 9, -48, -51, -90, -86, -18, -77, -36, -83, 10, 21, -90, -6, 17, 14, 9, 72, -39, 51, -87, 61, -42, 14, -37, -27, -21, -40, 62, 70, 11, -64, 59, 18, -92, 25, 25, 88, 37, -55, -30, 26, -27, -81, -52, -60, 74, -32, 22, 68, 29, -35, -48, 66}, + {58, 33, 12, 28, 15, -71, -41, -12, -69, -54, 57, -42, -53, 34, -59, -26, -25, -17, 55, -88, 16, 90, 56, 83, -49, 88, 7, -59, -56, -18, 41, 77, 57, 28, 31, 71, 88, -54, 39, 43, -56, 33, -59, 102, 77, 90, 90, 21, -37, 68, -47, -47, -2, 55, 92, 3, 83, 4, 19, 17, -14, -42, 77, 13, -79, -5, -82, 49, 55, 15, -52, -22, 105, 63, -5, 40, 66, 40, -58, -38, -98, -64, -14, -75, 41, 17, 40, 35, 108, -87, 58, 29, 91, -51, 5, 8, -31, -7, 69, 63, -45, 5, -75, 50, -113, 42, -90, -65, -8, -14, 44, 32, -82, 85, -61, -101, 67, -35, -64, -34, 31, -18, -49, -35, 71, 45, -48, 79}, + {69, -52, 78, 13, 28, 2, 70, -30, -13, -2, -27, -5, -4, 56, 61, -52, 62, 93, -71, -39, 60, 27, -78, -3, -72, 66, 56, -103, 56, 63, 72, -76, -5, 16, -64, -67, -88, -34, 1, -67, 24, 111, 50, 73, 26, 56, -25, -47, -62, -61, -79, -102, -85, 34, 31, 31, -91, -44, 103, -80, 72, -26, 57, 25, 35, -9, -50, 17, -18, 63, 11, 78, -93, 23, -83, 87, 41, -77, -6, -16, 31, -15, -92, 42, -89, -43, -1, 67, -44, -14, 72, -39, 42, 35, -12, -108, 59, 73, -76, -31, 11, -67, -84, 21, 52, -98, 30, 81, -19, 37, -47, 57, 38, 83, -88, 59, 51, 79, -51, -44, 21, 41, -49, -25, 57, 11, 36, 75}, + {-29, -37, 74, 15, -42, -63, 93, 66, 41, -84, 14, 91, 2, 36, -10, 25, 13, 86, 2, 43, 20, -43, 85, 47, 81, 21, 36, 68, -4, -68, 77, -61, 59, -36, -76, -12, -11, -27, -29, 37, -90, -16, 35, 75, 2, 46, 52, 79, 73, -78, 33, 34, 39, -69, 64, 88, 6, -80, 65, 61, 39, 66, 13, -41, 36, -62, -90, 70, -42, -55, 65, 18, -61, -34, -79, -91, -87, 28, 4, 8, 49, -50, -47, -94, -23, -45, -64, 11, 55, 75, -89, -72, -45, -25, -35, 93, 32, 19, -3, 42, 44, -2, -72, 12, -26, -83, -50, 71, -75, -7, 7, 87, 54, 38, 59, -35, -14, 72, 91, -66, 58, 44, 84, -80, 91, 40, -50, -63}, + {-14, 4, 110, 75, 53, 56, 95, 24, -20, -10, 34, 35, -43, 64, 18, 12, 55, -32, 51, 92, -63, 34, -28, -63, -15, 19, 34, 95, -86, 76, -61, -11, -1, 36, 60, 12, -50, 99, 72, -94, -57, -106, 83, 41, 43, -32, -15, 7, 104, -27, 30, -94, -22, 0, -60, -5, -66, -11, 3, 80, 39, 39, -57, -42, 50, 62, 22, -29, -37, -29, 39, -1, -30, 4, 96, 54, 58, 45, -21, 100, 60, 20, -23, -52, -32, 75, -12, 24, 84, -25, 85, 63, 44, 58, -13, 52, 73, 75, 12, 68, 47, -85, -6, 71, 68, -33, 70, 59, 64, 31, 32, -35, -36, -74, -11, 60, -90, 28, -16, -31, 29, 48, 15, 35, 82, 92, -60, 83}, + {5, 60, 12, 60, 80, -79, 53, -23, 14, 10, 90, -111, -49, -51, -14, -6, 27, 3, -51, -71, 76, 6, -48, 33, -31, 48, -37, 101, -21, -83, -46, 56, 43, -70, 93, 3, 15, 46, -13, 30, 12, 15, 30, 11, 59, 32, 32, -59, 19, -74, 2, -24, -106, -70, -56, 33, 81, 54, 78, 5, 92, 46, 26, -30, 76, -62, -94, -51, -40, -60, 28, -55, 99, -25, -11, -53, -77, 27, 8, 49, 35, 71, 17, 51, -25, 21, 70, 47, 30, -49, -50, -63, -27, -35, -1, 5, 38, 68, 66, 64, 70, -24, -63, 76, -7, -22, -63, -36, 70, -86, 64, 18, -23, 14, -24, 75, 35, 98, 33, -94, 39, -70, 73, -63, -81, -66, 74, -77}, + {46, -85, 13, -77, -1, -89, 81, -43, -28, -25, -47, 18, -14, -49, -32, -39, -63, 81, -52, 62, 78, -66, -92, 22, -10, 84, 64, -75, -45, 32, 2, 70, -30, 94, 25, 91, -38, 46, -89, 45, -26, -32, 64, 64, 83, 86, 60, 37, -45, 1, -9, -38, 52, 76, -89, 9, 79, -57, 13, -69, -49, -32, 70, 46, -30, 40, 39, -11, -6, -6, -41, -80, -72, -20, 77, -18, -32, 6, -62, 64, 59, -31, -81, 34, 11, 74, 39, 35, 71, 45, -39, -80, -69, 88, -8, -71, 54, -26, -18, 72, -12, 37, 39, 94, -42, 40, 87, -82, -21, -33, 89, 80, -7, 27, -35, -69, -49, 10, 17, 27, 76, 60, 9, -23, -90, 69, 44, -20}, + {-11, 23, -9, 7, 61, -61, 28, -52, -85, 13, -71, 22, -44, 61, -44, 1, -75, 70, -88, 12, -24, 62, -45, 85, 69, 54, -21, 83, 33, 8, 7, 46, 31, -47, 17, -29, 90, 71, 70, -7, -3, -46, 48, -52, 44, 47, -28, -6, 94, 82, -96, -101, -1, 39, 87, -55, 33, -40, 98, 68, -28, -96, 24, 28, 13, 64, 66, 106, -22, -72, -64, 59, -40, 86, 9, 71, 64, 71, 9, -55, -2, 3, -48, 69, -17, 20, 47, 41, -67, 50, 50, 16, -9, -60, -10, 68, 73, 49, -3, -80, 47, 49, -10, -32, -93, -56, -2, -46, 77, 101, -18, -67, 49, 49, 48, 2, 42, -8, -45, -86, 40, -33, 77, 45, 73, -61, -102, 36}, + {-58, 5, -73, 39, 49, 53, 82, -44, -31, 25, -59, 72, -49, -61, -32, -22, -5, 57, 87, -51, 47, 71, 26, -21, 18, -80, 29, 82, 47, 90, -84, -69, -4, -71, -54, 27, -57, 52, 10, -78, -69, -32, 8, 31, -52, -55, 24, -23, 44, -80, 85, 46, -18, -46, 38, 34, -98, 66, -53, -22, 6, -79, -12, 40, 49, 63, 57, 55, -54, -86, 25, -25, -94, -63, 68, -68, -87, -47, 63, 19, 30, -58, -90, 17, -28, -31, 55, -43, 4, -49, -2, -56, -43, 91, -72, -76, 31, -99, -68, 62, -46, 33, 13, -88, -68, 75, -49, -13, -86, -17, -72, 37, 3, 24, 72, 54, 44, 43, -90, -94, -41, -96, -84, -60, 43, -62, 66, -90}, + {-50, 78, 93, 58, -93, 43, 25, -71, -66, -5, -28, -31, 17, -62, -23, 31, -12, 28, 77, -1, -77, 31, 54, 12, -90, -39, 79, -49, 47, 34, 12, 5, -31, 34, 70, -53, 10, 75, 77, 72, -85, -11, 93, -38, -92, 45, 55, 87, 0, 78, -56, -40, -56, 37, -89, 82, 16, 74, -34, -55, -57, -16, 68, -75, -45, 70, -49, -53, 20, 9, 47, 90, -63, -87, -78, -16, -22, 49, -79, 93, -39, -89, -77, -15, -88, -90, -72, -65, 49, -75, -84, 7, 32, -29, 84, -6, 16, -53, -23, 78, 63, 89, 22, -61, -40, 66, -92, 51, -43, -48, 84, 74, -84, -52, 93, -89, 54, 49, -76, 71, -36, 59, -9, -68, -40, 42, 68, 18}, + {2, 18, -71, -53, -77, 34, 68, -90, -73, 91, -50, 91, 59, 62, 14, -6, 62, -1, 52, 82, 24, 50, 62, -30, 46, 81, -74, 34, 19, 84, 51, 49, 70, -37, 63, 74, -95, 10, -47, 27, -64, -34, 85, 39, -87, 30, 16, -44, 19, 72, -92, -81, 68, 9, 56, -94, -40, -76, 34, 80, -49, -24, -71, -19, -54, -54, 30, -8, -10, -20, 95, 39, -14, -95, 57, 67, 50, -5, 46, -33, 61, 80, 89, -50, -6, -61, 68, -80, 12, -70, -3, 71, 82, -45, 20, 31, 31, -39, -1, 40, 78, 97, -59, -12, 76, 46, 26, 66, -43, 16, -32, -36, 93, -79, 18, 71, -60, 87, -86, 6, -63, 14, 21, -17, 96, -11, 58, -70}, + {-11, -94, 13, 88, -6, -70, 65, -71, 22, 71, 57, 47, -18, 45, -79, -59, -89, 46, 43, -91, 28, 53, 16, 86, -31, 14, 104, 27, 98, 60, 45, -84, -77, 68, 74, -41, -35, 75, 9, -12, 52, -30, 90, -28, -58, -73, -45, -96, -78, -26, 18, 16, 60, 22, -22, 15, -29, 50, 118, -43, 78, 49, 15, 91, 27, 76, 79, -68, 20, -43, 72, 92, -96, 43, 89, 85, -7, -80, -7, 16, -16, 1, 47, -39, 68, -1, 24, 3, -85, -73, -77, 34, -40, 8, -91, -93, 71, -79, 76, -38, 10, 67, 68, -11, 67, 82, 5, -70, 71, 9, -73, 89, -37, -67, 93, -27, 9, 108, 82, 1, 2, -63, -93, 8, -10, -92, 47, -56}, + {-5, 17, -90, 4, 61, 88, 13, -85, -3, -83, -49, 32, 87, 78, -36, 45, -52, -40, -33, -34, 30, 8, -68, -6, -64, 64, -83, 10, -60, -60, -12, 46, 23, -41, 73, -92, 6, -6, 59, -36, 33, 71, -79, -57, 48, 1, -9, -61, -92, -12, -71, 70, 22, 70, 73, -20, 75, -33, 72, -19, 16, -71, -6, -42, -71, 51, 59, -91, 76, 72, 67, 43, 69, -76, -50, 66, -18, -75, 6, 54, 60, 0, 51, 34, 65, -19, 14, 71, 74, 44, -63, -21, -94, 16, 43, 68, 54, 64, 9, 52, 14, 5, 38, -90, -74, 32, -24, -37, 32, 92, -16, -31, -13, -63, -54, 24, -32, 90, -81, -59, -44, -4, 81, 73, 78, 33, 84, 19}, + {60, -62, -68, -57, -16, 22, 72, -33, -33, 51, 98, 70, 77, 72, 58, -61, -100, -64, 48, -24, 42, 36, -18, -75, -7, -89, 64, 3, 16, 34, 69, 18, 35, 13, -85, 85, 59, -23, 78, -15, 67, -19, -74, 26, 67, 78, -87, -44, 14, -19, 7, 8, 27, 29, 1, 76, 35, 18, -10, -14, 78, -26, -84, -84, 26, -35, 21, -58, -15, 20, 55, -70, 66, -38, 11, -17, -33, -44, 81, -80, 8, -2, -44, 101, 22, 74, 79, -29, -16, -85, 2, 92, 85, 72, -95, 63, -27, -51, -81, -54, 11, -70, 2, 72, 65, -65, 67, 69, 90, 15, 68, 32, -79, -3, -77, -58, -72, -106, 26, 25, -4, 21, 38, 6, -89, 49, 61, 82}, + {65, 89, -52, -68, 89, 62, 3, -90, 13, -20, 86, 66, -24, 6, -31, -25, -60, -82, -50, 76, 30, -94, 46, 73, -9, 50, 32, -75, -68, -27, -83, 88, 37, -33, 8, 46, -35, 68, 52, -70, -70, 102, -66, -31, -26, -42, 83, 85, 26, -11, -88, -43, -46, -40, -74, -85, 79, -60, 12, 56, 71, -88, -28, -26, 65, -39, 58, -69, 43, -76, -74, 81, 35, 96, -74, -71, 107, 79, 64, -14, 49, -52, 79, 20, -16, -30, 40, -25, 49, 17, 97, -54, -9, 28, -42, -80, 24, 67, 81, -43, -39, 37, -61, 7, -65, -25, -23, -67, 60, 68, -67, 6, -37, -61, 46, 95, -16, 5, -1, 44, 5, 45, 95, -8, -53, -19, -68, 53}, + {-12, 66, -73, -27, -60, 54, -24, 3, 92, 76, 44, 49, 68, 61, 80, -90, 51, -17, 46, 40, 61, 45, -36, 81, -80, -52, -54, 18, -73, -26, 57, 9, -90, 31, -55, 8, 28, -39, -59, -81, -78, 52, -50, 79, -38, -23, -56, 16, -20, -60, 90, 82, 17, -19, 28, -35, -41, -49, 36, -74, 61, 71, 4, 92, -8, 48, -27, 40, 77, 83, -55, 72, -91, 54, 72, 33, -80, 16, -24, 38, -83, 49, 29, 76, 45, 71, -4, -66, -8, 12, 19, 69, 12, -89, -40, -52, 67, 30, 42, 36, 4, -25, -84, -85, 1, -78, 0, 93, -16, 57, 45, 25, 48, 43, -74, -5, 35, -26, -3, 80, -5, -88, 24, -91, -51, -11, 8, 34}, + {-107, 47, -11, -81, -41, 48, -17, 77, -51, 111, -69, -57, -33, -37, -61, -82, 50, -77, -15, 29, 36, 21, 43, 27, -53, 65, 85, -26, -40, 52, -27, 24, 94, 79, -57, 44, 73, 109, 17, -8, 56, 38, 80, 34, 54, -42, 40, 67, 8, 22, 24, 68, -53, -11, 26, 100, 75, -15, -45, -41, -8, 81, -2, 42, 63, 1, -28, -86, 36, -48, 23, -92, 103, 2, 91, 0, -94, -90, -3, -32, -29, -24, -4, -97, -9, -66, -46, -43, 100, 32, 54, -64, 49, 92, 25, -14, 113, -42, 68, -16, 36, 60, 70, 86, -26, -42, 15, -38, -38, -21, 67, -57, 81, 46, 106, -92, 16, 82, -4, 65, 3, -29, 102, -93, -101, -79, -61, 81}, + {-30, 59, 27, -58, -85, -46, 46, -73, -26, -19, 90, 58, 52, -57, 13, -19, -90, 32, -62, 18, -9, -62, 77, 31, 23, 50, 28, -87, -63, 47, 13, -66, -84, -34, -35, 33, -48, 48, -84, 38, -14, 41, 59, 7, -78, 75, -55, -65, -70, -76, 63, 5, 56, -96, -7, -2, 84, 28, 19, 53, -73, 30, -54, 59, -93, -14, 49, 79, -63, 48, 49, -73, -80, 24, -64, -9, 39, -66, 76, 54, -57, -40, -47, -83, 17, 7, 23, 37, -77, -78, 27, 10, 11, 17, 75, -7, -3, 4, 85, 45, -82, -36, -91, -19, 0, -18, -51, -88, -28, 73, 8, -94, 18, 63, 41, 83, 30, 47, -56, 71, 34, 64, 14, 35, -63, 48, 29, -75}, + {35, -26, 55, 70, 6, 70, 33, -44, -64, -51, 57, -15, -36, 77, 13, -5, -73, -17, -40, 24, 3, -99, 52, 18, -70, 36, 97, -20, 57, 78, -87, 64, -27, 22, 60, 34, 0, 13, 33, 90, -27, 9, -12, 6, 77, 75, 17, -24, 2, -12, 6, -34, 40, 37, 84, -55, -71, 40, 81, -44, 14, 52, -44, -61, 59, -65, 93, 96, -9, 87, -18, 41, 21, 46, 74, -29, -81, -35, 24, -31, 11, -40, -7, 42, 88, -71, -1, 45, -88, 15, 7, -56, -10, -92, -5, 79, -61, 23, -80, 12, -69, -35, -68, -35, -35, 75, 3, 66, -44, -17, 57, 18, -66, -48, -43, 13, 16, -65, 38, -33, 102, 17, 29, -33, 36, -3, 30, -28}, + {-5, -81, -29, -91, 64, -15, -2, 89, -21, -58, 9, -75, -52, -12, 8, 48, 61, 4, 31, -17, 6, -38, 10, -60, -11, 11, -90, 54, 18, 60, 7, -4, -46, -47, -81, -45, 77, -43, -10, 93, 5, 83, -40, 90, -82, 61, 87, -46, 0, 74, 68, -80, -90, 23, 53, -14, -8, -87, 50, 79, -13, -1, -32, -94, -82, 44, 20, 30, -46, 37, 70, 47, -55, 10, -88, -81, 76, -52, 76, 44, 58, 45, -68, -22, -73, 24, 78, 22, 90, -20, 19, 52, 53, -20, 85, -86, 74, -39, 72, 48, -72, -27, -75, -66, 87, 31, 91, 23, 92, -15, -89, 75, 54, 76, -17, -42, -50, -23, 59, 26, 6, 45, 27, 55, 39, 10, 20, 4}, + {-89, -90, 81, -31, 49, 11, -86, 76, -49, 16, -39, 32, -73, 43, -12, -43, 88, -75, 30, 65, 0, 72, 34, 32, -16, 38, 15, 79, -75, 3, -17, 37, -25, -91, 55, 15, -38, -80, 36, -17, -8, 74, -53, -71, -26, -65, -85, 88, -47, 47, -72, 31, -9, -53, -59, -63, 13, 90, 39, -15, -28, -32, 38, -69, -12, 53, 75, -54, -21, 33, 73, -21, -44, -79, -10, 29, 20, 67, -71, 42, 12, 62, -14, 54, -86, -70, 93, 43, -8, -18, -37, -27, -73, 47, -39, -39, 46, 39, 61, 60, 59, 31, 58, 11, -54, -9, -2, 91, 44, -23, 0, -12, -41, -36, -92, 32, 11, -7, -6, 44, -88, 23, -63, -72, -35, 8, 16, -24}, + {73, 16, -28, 7, -78, -59, 43, 41, 8, -49, 39, 57, -13, 79, -76, 86, -81, 6, -10, 29, -65, -89, -73, 76, 79, 12, 26, 87, 94, 14, 69, -84, -55, 8, 89, 45, -4, 25, 22, 65, 26, -4, -5, 36, 16, 55, -23, -74, -38, -67, -13, -33, 18, -82, -79, 37, 45, 18, -18, -3, -68, -7, -22, 76, 81, 7, 41, 21, -2, 78, 43, 89, -8, -13, -73, 15, 34, -17, -52, -23, -12, -34, -39, -27, 86, 76, 79, 51, 85, 24, -41, 0, 0, -70, 55, -45, -7, -56, -54, 84, -4, 47, 69, 20, -93, -74, -63, -87, 56, 55, -94, 7, -37, -59, -64, -26, -15, -35, 39, -88, -89, 69, 21, -50, -82, 36, -46, -87}, + {-94, 42, 29, -58, 79, -74, -62, 46, -39, 3, -57, 42, -20, 27, 76, 34, -40, -56, 30, -32, -36, -72, -4, 1, -64, 4, -20, 70, 63, -36, 55, 17, 44, -39, -93, -27, -47, -7, 28, 11, -78, 68, 51, 47, -26, -91, 28, 40, 61, -53, -80, 36, 85, -25, -90, 22, 84, 76, -53, -71, -81, 91, -48, 16, -52, -22, 59, 62, -88, 20, -3, -39, 63, -44, -33, -84, -80, 78, -31, -52, -14, -89, 3, 17, 62, 93, -3, 65, 54, -86, -66, 68, -91, -71, 9, 90, 83, 55, 65, 40, 45, -68, -45, -45, -78, -73, 70, -92, -10, -71, 61, -92, 5, 32, 31, -94, -35, 0, -3, -14, 53, 39, 61, -67, -49, -56, 32, 58}, + {62, 30, -28, -33, 20, 38, -58, 3, 93, -72, 14, -36, 21, -46, 75, -41, -64, -93, -84, -13, -18, -89, 18, -94, 80, -47, -13, -87, 33, 90, -45, 45, -6, 42, 23, -24, 83, -78, 79, -30, 14, 54, 84, -19, -40, -57, 26, 12, 62, -11, -12, 10, 39, 24, -32, 12, -51, 75, -56, 18, -86, 1, 61, -84, 74, -10, -81, -39, 40, -3, 37, 51, -35, -33, 12, 21, -8, -31, -19, -60, -24, -70, -74, -84, 71, -65, -18, -16, 89, -85, 73, -43, -19, 70, 66, 22, 29, 17, -41, 4, -37, -82, 61, 64, -40, 19, -89, -3, 92, 91, 14, 23, -69, 91, 92, 49, -58, 37, -63, 77, -16, -32, -24, 83, 16, -28, 19, -73}, + {-68, -73, -71, -41, 38, 25, -20, -61, -25, -39, 92, 74, -14, 27, 14, -21, 81, -46, -60, -14, -27, -78, -88, 67, -46, 19, 4, 48, 34, -39, 53, -14, -66, -34, 54, -34, 69, -64, -70, 9, 69, 68, 70, 30, -18, 87, 36, -65, 39, -36, 21, 47, -86, 20, 33, -33, -7, 37, -26, -59, 48, 74, -3, -42, 36, -12, -1, 91, 87, 68, 92, -50, -37, -48, -56, 12, -35, 65, 67, -64, -39, -39, -37, 88, 24, -57, -11, 50, 69, -44, -63, -67, 86, 27, -35, 36, -1, 28, 39, -20, -74, 18, -61, -75, -57, 10, -65, 92, -56, 16, -27, 10, 32, 35, -48, -31, -22, -20, -24, 15, -47, -28, 1, -77, -79, 0, 17, -82}, + {-13, -67, -62, -55, 72, -58, 33, 34, 60, -58, -32, -1, 80, 87, 28, -87, 25, -53, -74, 9, 38, 49, -31, 51, -70, -4, -10, -78, 54, -35, 63, 88, 70, 19, 81, -41, -47, -86, -85, 19, -3, -40, -85, 69, 6, -23, -19, 60, -60, 43, 12, 75, 6, 42, -57, -79, 27, -43, 14, 2, -53, 56, 46, -59, -41, 91, -71, -21, -88, -82, 89, -94, -88, -22, 58, -9, 69, 73, -1, -79, 12, 59, -58, 49, 35, -66, -90, 70, 22, -54, -85, -23, 10, -47, 63, -38, 78, 85, -4, 69, -9, 71, -93, 37, -68, -69, -6, -72, 90, -63, 90, -38, -58, 66, -71, -36, 64, -1, 92, -4, 92, -26, -77, 85, -52, -23, 53, 86}, + {-92, -51, -19, -21, -33, 31, -55, -34, -88, -23, -53, -74, -19, 80, -89, -49, 95, -22, -71, 78, 8, -2, 7, -41, -61, 80, 11, 100, -35, 75, -27, -74, 48, -77, 34, 78, 31, 116, 9, -92, -97, -80, -36, -6, 106, -61, -5, 48, -93, 87, -74, 25, 46, 109, -73, 86, 72, 49, 119, -110, 58, 36, 52, 32, 32, -65, 57, -63, 88, 12, 3, 74, -24, -93, -5, 24, -59, 83, -65, 28, -3, 91, 64, -102, -82, 11, -85, -47, -46, -40, 13, -33, 67, -29, -54, -37, 78, 80, 55, -58, -30, -1, -17, -39, -73, 32, 17, -64, -56, 59, -9, -44, -81, -13, 86, 53, 50, 43, -28, 21, -90, 71, 34, -47, -92, -17, 23, 10}, + {41, -86, 37, -52, 44, 19, 95, 60, 74, -38, -29, 42, 55, 53, 55, -15, -5, -52, -40, -78, 17, -97, 91, 1, -37, -84, 12, 56, 57, 71, -29, -58, 54, 89, 54, -85, 84, -48, -82, 16, 2, 52, -70, 27, 52, -11, 43, 85, 39, -75, 73, -9, -30, -77, -64, 116, -38, -41, 45, 64, -59, 18, -6, -38, 11, -75, 28, 10, 65, 35, -88, -59, 64, -88, 33, 67, 11, 69, -85, -3, -66, -31, -65, -6, -27, 49, 59, -46, 89, -16, -36, -60, 64, -8, -64, -92, 26, 22, 59, -51, -29, -30, 80, 30, 21, 59, 13, -7, 19, -41, -16, -40, -56, 28, 9, -50, 33, 5, 10, 67, 25, -40, -77, 61, 55, -10, 26, 10}, + {39, -42, 28, 84, 94, 104, 21, 36, 12, -17, -1, 71, -62, 53, 24, 69, -24, 24, 42, -83, 110, 28, 106, 89, 49, -23, 10, -16, -21, -47, -61, -59, 5, 39, 59, 102, 95, 51, 80, 13, -32, 61, 43, 58, -78, 88, 3, -39, 44, -51, 51, -65, -35, 15, -17, -18, -54, -61, -75, -72, 3, -75, 46, -5, 31, 35, 24, -8, -46, 17, 43, 65, 106, -12, 61, 36, -4, -40, 92, -88, -44, 33, -21, -2, 72, -71, 104, 85, -12, -90, 31, -80, 9, 60, 74, 64, 66, -69, 63, 63, 41, -30, 8, -62, 101, -33, 7, 76, -9, -44, -85, 23, -32, -93, 4, -38, 39, -3, -52, -15, -59, 39, 95, -64, -51, -18, 50, -40}, + {-1, 92, -57, -91, -16, -41, 17, 54, 24, -22, -46, -60, 19, -4, -33, 20, -85, 2, 19, 81, -93, 84, -85, -73, 16, -80, 35, 27, 47, 90, -5, -25, -57, 42, -92, -49, -94, 40, 1, -72, 2, 20, -35, 33, -79, 59, -32, -15, -88, -29, -65, 0, -70, -11, 2, -20, -74, -83, 24, -68, 70, 48, 61, -27, -57, 5, 63, 12, 90, 25, 23, -82, -64, -91, -19, 22, 86, -49, -21, 28, -51, 16, 63, -88, 56, 93, 39, -82, -12, 45, -48, 34, 49, 32, 59, -55, -83, 88, 33, -48, -52, 56, -53, 68, -83, 28, 39, -66, -59, 50, -73, 6, -52, -7, -10, -58, -91, 59, -5, -51, 26, 76, 93, 59, 10, 61, -42, -41}, + {-51, -89, 18, -30, -15, 87, -55, -93, 45, 25, 104, 52, 80, -51, -16, -48, 68, 8, 48, 55, -8, -81, 82, -92, 90, -66, 84, -101, 31, -73, 29, -1, -11, 16, -97, 10, 80, -25, -47, 25, -1, -55, 64, -50, -72, 27, -81, 4, 20, -88, -29, 67, -29, 22, 9, -23, 19, 81, -35, 35, 84, -20, 9, 39, 41, 86, -56, -23, 73, 83, -84, -18, 54, 31, -97, 91, -12, -41, -56, -43, 89, -26, -23, 71, 99, 72, -53, -36, 1, -11, 72, 87, -8, 2, -71, -23, -47, -78, 74, -42, -10, 6, -38, 55, -11, 61, -78, 41, 50, 99, 27, 39, -29, -89, 87, -46, -40, -73, 3, 21, -57, 61, 73, -85, -44, -61, 92, -18}, + {65, 39, -53, -62, -80, 82, -27, 61, 91, 102, 33, 1, -32, 29, -20, -40, -52, -21, -85, 53, 23, -35, 13, 72, 45, 16, -17, -56, -34, -14, -61, -21, -76, 22, 30, 38, 24, 100, 54, -53, -7, 48, 45, -64, 77, 60, -35, 86, 37, 86, -61, 59, 43, 103, -48, 49, 57, -44, 75, 51, -7, 59, 54, -73, 68, -91, 65, -29, -53, -53, -79, -73, 41, -67, 65, 80, 6, 85, -75, 48, -86, 7, -36, 45, 45, 44, -29, 20, 6, -74, 26, 76, -71, -90, -5, -22, 25, -61, -69, -71, -40, -39, -26, 127, 71, 58, -51, -47, -92, -84, -49, -24, 75, -26, 61, 89, 64, 105, 77, -13, 89, 90, 92, -21, 32, 26, -39, 57}, + {-34, -24, 45, -50, -60, 60, 38, 24, 94, -31, 8, -82, 20, 58, 44, 60, 61, -5, -82, -71, 12, -10, 49, 61, 68, -4, -12, -35, -53, 4, -25, 81, -56, -31, 10, -28, 31, -8, -33, -14, 23, 59, 69, 37, -89, -5, -48, -67, 73, 82, 76, -44, -27, -63, -44, -74, 33, -72, 29, 26, -61, 32, -45, -56, 21, -24, -70, -7, 18, -42, 31, -89, -58, 51, 27, 40, -7, 27, 40, 63, 16, 72, 58, 46, 101, 46, 62, -61, 98, -3, -71, 67, -26, -91, 89, 1, 58, -74, 63, -59, -50, 56, -80, -74, 30, 81, -19, 53, -80, 70, -89, 31, 5, 66, -83, 21, -87, 24, 82, 41, 7, 31, -75, 56, 32, 73, 95, 52}, + {-104, 15, 64, -27, 62, -40, -37, 46, 23, 45, 66, 84, -41, -32, 6, 17, 62, -82, 86, -19, 35, -70, -41, 22, -87, -36, -52, -38, 16, 35, -23, -88, -90, -43, -32, 62, 28, 19, 6, 57, 30, -18, -99, -85, -38, -92, -90, 24, -81, -83, -43, 33, -9, -25, -9, 49, 10, -91, 75, -103, -99, -6, 44, -39, 81, 37, 22, 21, 75, -87, 8, -79, 14, -6, -38, -33, 66, 57, 33, -10, 49, -99, -46, 35, 72, -18, 18, 46, -36, -85, 24, -43, -67, 41, 39, -33, 14, -78, 33, -3, -83, 87, 76, -6, 26, -17, -58, 64, -79, 37, 94, 45, -45, -26, 44, 37, 73, 68, -40, -73, -20, -38, -7, 50, -12, 77, 49, -28}, + {-20, 6, -81, -60, -24, -56, 46, -76, 2, -69, 80, -30, -81, -81, 87, -32, -25, -13, -61, -54, -22, -87, 21, -42, 84, -37, -17, 80, 51, -26, -51, 23, -42, -43, 52, 43, -9, -57, -35, -74, 57, 6, 84, -72, 66, -21, -29, -20, -41, 64, 77, -87, 7, 75, 30, 11, 8, -41, 92, -82, 3, 3, -8, 41, 18, -10, -91, 42, -49, -60, 44, -30, 94, 37, -77, 59, 81, 83, -12, -48, -5, 81, 49, -29, -65, 13, -68, -62, -56, -68, 10, 63, 14, -66, -52, 28, -16, -20, 53, -73, 35, 7, 38, -19, 44, 17, -39, 7, 63, -19, -15, 61, 17, 53, -11, -33, 62, 4, 45, -63, -8, -4, 60, -3, -88, -91, -10, 76}, + {57, -9, 56, 89, 22, 73, -93, 86, 28, 36, -57, 35, -74, -18, -29, -1, 60, 6, 57, -22, 11, 78, -50, -6, 87, 64, -58, 61, 45, 81, -21, 78, -89, -60, 11, -34, 58, 58, -3, -45, 56, -92, 18, 44, -15, -51, 49, 11, 12, -2, -71, 65, -93, -91, -78, 90, -93, 0, 81, 64, -61, 91, -70, 8, 89, 33, -91, -48, 76, 11, -5, 68, -39, 76, -78, -14, -28, 82, -79, -81, 11, 36, -7, -49, -88, -1, 32, 43, -50, 3, 32, -44, 84, 69, -31, 67, -81, 59, 61, -63, -8, -55, -21, 44, 60, 20, 73, -75, -10, 23, 26, -78, 57, 23, 28, 6, -73, 36, -76, 50, -4, 36, 15, -33, 61, 84, -81, 33}, + {50, -14, -8, 67, -42, -58, 50, -29, -83, -94, -32, 90, -39, 27, -66, -84, -36, 54, 82, 4, -60, -88, -20, -82, 40, -75, -102, -56, 28, 14, 65, 13, 12, -78, 54, -2, 38, -30, 4, 63, 38, 68, -101, -49, -62, -71, 8, -64, 27, -47, 57, -63, 38, -73, 48, 60, -15, -72, -96, -78, -18, -76, 53, 22, -41, -40, -53, 80, -38, -84, -88, 46, 0, -88, -55, 74, 44, 23, 57, -11, -28, -35, -94, -58, -61, -67, -2, -78, 63, 9, -78, 91, 56, 37, 24, 40, -28, 17, 63, -19, 39, 20, 23, 12, -30, -19, -16, 80, -14, 21, -49, -34, -63, 75, 64, 67, 54, 73, 87, 25, 30, 72, 58, 50, 3, -78, -29, 35}, + {-8, -80, 73, 42, 67, -50, -49, -79, 91, -93, -49, -60, -4, 69, 33, -59, 29, -87, 23, -2, -55, 28, -32, 80, 67, -51, -46, 74, 90, -16, -21, 93, 2, -28, 63, -30, -31, -36, -64, -20, -3, 4, 81, 31, 76, -36, -52, 15, 77, -15, 95, -46, 88, -25, 72, -62, -30, -63, -91, -68, 57, 23, -49, -75, -79, -66, -93, 56, 84, -29, 3, 24, 86, 51, 3, 92, 32, 3, -77, 47, -24, 39, -69, 61, -71, -80, 90, 13, 93, -81, 53, -50, 82, 73, 21, -81, -65, 47, -3, -65, -12, -20, 67, -51, 60, -65, 68, -33, 10, -88, -34, -18, 7, 42, -13, -49, 67, -65, 63, -31, 86, 66, -30, 72, -6, 22, 51, 68}, + {94, -73, 60, 3, 41, 84, 89, 21, 88, 63, 55, -36, 38, -63, -20, 28, -45, 55, -71, -11, -19, 70, 64, 55, -93, 71, -14, 51, 2, 25, 59, -39, 8, 72, -52, -45, 60, 80, -35, -41, -83, 27, -59, -65, 75, 6, 9, 5, -63, -88, -55, 11, 24, -50, 46, 34, 78, 31, 63, -24, -21, -38, -90, -75, -17, -40, 5, 51, 87, 38, -74, 69, 67, -41, 61, -21, 70, 79, 15, -11, 69, -80, -78, -10, -73, 80, -70, -59, 68, -22, 46, -65, -23, 31, -5, -60, 40, 10, 44, -12, 64, -62, -94, 23, 45, 31, -27, -79, 13, -34, 39, -21, 36, -55, -25, 84, -94, 20, 66, -40, 59, 64, -71, 35, 56, -67, 87, 83}, + {-48, -71, 73, -34, -111, 50, 38, 39, -9, 25, 7, 45, 10, 25, -92, -41, -20, 40, 25, 56, -29, -52, -51, 93, -80, 38, -49, -35, -13, -67, -81, -27, 63, -4, -32, -88, 16, 57, 27, -17, -94, -42, -81, -15, -77, 75, 40, 68, 16, -19, 53, -80, -53, 63, 88, 62, -14, -23, -21, -56, -8, -79, -37, -11, 19, -76, -3, -62, 22, 59, -40, -90, 83, 60, 31, 1, -46, 55, -77, -82, 0, 16, 85, -53, -35, -46, -1, 74, 16, 1, -67, -39, -33, 26, 51, 0, 58, 63, 55, -9, 65, 17, -87, -10, 25, 9, -47, -72, 36, 30, 62, -91, 72, -35, 40, -21, 70, 81, -95, 92, -71, -33, -75, -4, 19, 9, 68, -65}, + {25, -43, -19, 31, 35, -75, 91, -77, -4, 22, 88, -24, 61, 45, 92, -11, 23, -59, -75, 55, -64, -90, -5, -8, 16, 82, 66, -118, -4, 13, 93, 35, -6, 71, 80, -37, 8, -53, -64, -85, -27, -57, -23, -2, -46, -22, 46, 20, 79, 78, 32, 39, 71, -66, -65, 11, 43, 31, -48, -57, 93, -12, -58, 54, -72, -86, 31, -59, 59, -36, -42, 64, 91, 37, -98, -67, 65, 19, -54, 55, 72, -41, 3, 13, 13, 18, -73, 87, -50, 17, -79, -43, -6, -42, 92, 89, -46, -16, 85, -21, 3, -4, 50, 55, -2, -41, 4, 88, -32, -31, 37, 10, -84, 39, -22, -92, -20, -11, 104, -62, -31, -39, 22, 3, 40, -64, -9, -17}, + {33, -19, 92, -33, -70, -25, 53, -68, -35, 83, -94, -9, 35, -29, -72, 92, 83, 37, -52, -19, -33, -8, 88, 76, 76, -38, 20, -71, 102, -87, 94, -60, 88, -38, -58, 6, 52, 75, 80, -38, -70, 45, -2, -95, 78, 51, 67, -45, 36, 39, 2, -55, -89, -63, 67, -60, 52, 77, 99, -91, -67, -18, 18, 71, 84, -82, -68, -58, 75, -55, -48, -54, -28, 88, 49, 54, -2, 43, -48, -27, -51, -70, 26, 12, 33, 16, -54, 16, -90, -32, 76, -92, -71, -72, 60, 44, 74, 58, -60, 28, 109, -82, -42, 45, 33, 40, 106, -35, 6, -49, -49, 49, 65, 33, -69, -18, -38, -59, 38, 71, -37, -79, 12, 92, 73, 52, -69, 93}, + {88, 38, 63, -32, -68, -22, -11, -65, 68, -75, -53, -62, 47, -80, -78, 44, -2, -84, -61, 2, -76, -10, -19, -22, -9, -58, 83, -15, -91, 90, -1, 65, 87, 81, 22, 92, 63, -78, -37, 65, 10, -48, 90, 72, -88, -32, 68, 89, 93, -31, -87, -36, -87, -20, 65, -79, 18, 45, 8, 51, 6, 71, -53, -22, 74, -88, -7, -6, -7, -2, -29, -54, 45, 21, 41, -78, -5, -30, -3, 31, -10, 12, 91, 91, -89, 27, 75, -30, 37, -90, -64, -82, 51, 42, -23, 82, -35, 11, 16, -75, -51, 26, -49, 16, 59, -40, -15, 24, -9, 64, -22, -93, -65, 80, 63, -81, 46, -31, 88, -58, -87, -61, -70, -86, -11, 16, -76, 87}, + {98, -71, 49, -18, 45, 9, -48, 76, -86, -96, 37, 73, -27, -34, 7, 31, 73, -3, -39, 85, 83, -74, -99, -27, -33, 89, -79, -54, 62, 44, -47, -5, -86, -99, -14, -25, -13, 104, 30, -24, 15, 4, -67, -55, -10, 81, -59, 48, 2, -77, 26, -63, 29, 30, 30, 3, 18, -81, -81, 109, 91, 93, -12, 44, 22, -1, 6, 20, -40, -41, 30, 80, 70, 64, -39, 57, 60, 6, 22, -16, 112, 0, 100, -22, 0, 3, -19, -26, 75, 20, 79, -61, -25, -86, 104, 18, -90, -44, -22, -65, 71, 52, 75, -27, -115, -44, 13, 105, 8, -14, -70, 38, 9, -45, -81, 33, 41, -81, 24, 14, 50, -12, 29, -80, 20, 8, 10, -16}, + {49, 76, 6, 35, -115, -80, -76, 60, 88, 96, -29, 91, 72, 87, -9, -37, 55, 83, -56, -53, 48, 47, 66, 6, -25, 28, 29, -2, -46, 20, 42, 75, 28, -27, 0, 32, 2, 26, -75, -2, -38, -35, 14, -6, 73, 56, -77, -86, -61, -56, 23, 102, 41, 64, -68, -20, -5, 54, -32, 104, -45, 79, 52, 5, -83, 99, -62, -37, -25, -78, 72, 81, 40, 36, -45, 87, -62, -37, 2, 29, 0, 6, 68, 112, -41, -65, 51, 91, 113, 13, 88, -21, 63, -91, -49, -39, -124, 25, 2, 45, -27, -80, -70, 60, 51, -2, -39, -48, 58, 4, -25, -68, 1, -87, 14, 102, 75, 31, 88, 0, -43, 84, -68, 81, 60, -62, 106, 27}, + {-94, 9, -12, 53, -65, -73, -49, 34, 29, -42, 12, 38, 17, -5, 37, -3, 71, 1, 69, -72, -3, -62, 56, 2, -23, -70, 86, 23, -4, 80, 2, 49, 53, -40, -46, 50, 66, 15, 47, -37, 47, -4, 33, 60, -74, -83, 34, 58, -81, -59, 3, -58, -87, -3, 7, 96, 56, 17, 93, 3, 77, -37, -75, 40, -53, -85, -76, 17, 81, -81, -90, 67, 97, 77, -104, -77, -58, 29, -13, -103, 41, -94, 65, -23, 2, 88, 68, -82, -94, 57, 87, -15, -23, -17, -70, 43, -12, -19, -37, 42, 58, 84, -50, 42, 83, -95, 92, -88, 61, -5, -52, -27, -83, -57, 20, 28, 89, 126, -8, 85, 28, 23, -59, -24, 70, 89, -121, -72}, + {-99, 98, -7, 85, 21, -16, -10, 81, 9, 19, -96, -16, 2, -56, 65, 16, -47, -51, 21, -49, -70, -69, -62, -81, 3, -34, 82, -67, 4, 28, 23, 78, -33, 40, -4, -39, 62, -69, 31, -29, -72, 44, 72, 57, -82, -53, 2, -13, 29, -23, 65, -89, -48, 100, 109, 99, -69, 20, 92, 9, -42, -76, 17, -22, 7, 73, 84, -23, 23, -74, -50, 72, 69, 101, 31, -2, 86, -60, 31, 103, -32, -45, -27, 41, -69, 1, -4, -32, -27, -60, 23, -79, -86, -9, 4, 31, -8, -47, 5, 44, -91, 91, -52, -41, 93, 43, -27, -91, 39, -16, -50, 32, 34, -90, 34, -66, 56, -45, 77, 80, 6, 43, 13, 34, -42, 61, 22, -83}, + {-5, 21, -20, 41, -1, 27, 70, -1, 93, -4, 91, -85, 35, 48, 60, 84, 51, 93, 25, 12, -8, -73, -70, -50, 49, -62, -8, -40, 25, -36, 88, -85, 28, 31, 39, -8, 29, 70, 8, 75, -34, -83, -45, -48, 36, 22, -86, 79, -31, 28, -82, -76, 0, 9, -26, 53, -44, -86, 29, -45, -11, 92, 86, 64, -8, -16, -39, 54, -28, -48, 60, -10, -65, -58, 93, 6, -23, -74, -55, 4, -6, 49, 93, -83, 84, -16, -83, 90, 41, -25, -63, 72, -9, 76, -7, -77, -75, -22, 0, 53, 72, 40, 45, 52, -90, 71, -38, 65, -91, -38, -26, 94, -44, -1, -56, 73, 76, -70, -27, 78, -46, -73, -68, -16, 28, -7, -40, 46}, + {-87, 94, -87, -44, 12, -78, 11, -39, 37, 44, 88, 89, -39, 18, 35, 40, -74, 42, -47, 78, 4, -41, 18, 48, -84, -36, 25, -91, -25, 50, -48, -55, 47, -86, -20, 24, -53, -69, -12, -21, 74, -2, 68, 31, -71, 25, -21, 44, 17, 87, 64, -89, -1, -22, -2, 73, -6, -26, -86, -28, -35, 4, 28, 26, 65, -67, -63, -43, -73, 64, 13, -8, -67, -54, -47, 73, -29, 44, 45, -1, -34, -71, -57, -27, -43, 18, 16, 25, -22, -36, 49, 73, -64, 52, 92, -13, 33, -37, -79, -51, -21, 40, 14, 21, -94, -7, 3, 20, -28, 43, 81, -51, -57, -8, -68, -36, 63, 13, -87, -76, -59, -87, 93, -67, 74, -12, -1, -20}, + {-92, 57, -53, -70, -56, 19, -60, -63, 58, 75, 77, 21, -19, -88, -51, -3, 2, -27, -62, 43, 21, 77, 48, -57, 79, 86, -78, -49, -64, -70, -92, -87, 80, 26, -95, 93, 32, 50, 82, 77, 16, -12, -59, -77, 83, -82, -84, -12, 46, 58, 50, -89, -33, 48, 66, -87, 12, -19, 23, 0, 85, -25, 67, -75, 43, 76, 10, -33, -18, -91, 66, -94, 89, 40, 91, -31, -40, 37, -75, -58, -58, 21, -91, -24, 17, 13, -87, -42, 83, -71, -7, 10, 54, -77, 79, -66, -92, -60, 35, 11, 2, -11, 34, -23, 77, -94, 77, 36, 22, 4, 73, -64, -13, 53, -84, -62, 49, 6, -14, -30, 13, 67, -69, 89, -27, -69, -94, -86}, + {87, 88, -57, 25, -94, 78, -74, 38, 31, 65, -84, -50, 44, -57, 82, -50, -45, 15, 7, 92, 34, -11, 34, 24, -41, 88, -30, 27, 72, 17, -74, -30, -17, -11, 31, 43, -90, 8, -69, 45, 23, -4, -80, 11, -6, 11, -35, 22, 34, -29, 24, -87, -38, 58, 70, 68, 38, -18, -26, -84, 84, 42, 31, 1, -30, 9, 22, -50, 37, -61, 30, 58, -54, 58, -47, 44, 55, 90, -18, 68, -91, -8, 38, -85, -62, -57, -73, -89, 40, -81, -81, 4, -90, -67, -16, 94, -26, 81, 65, -6, 33, -50, -1, 13, 36, -1, 47, 66, 57, 17, 7, -23, 74, -49, -11, 16, -64, 44, 53, 80, 80, 48, 18, 39, 27, -20, 77, 87}, + {95, -74, 33, 49, 19, 105, -5, -46, 93, 17, 58, 23, 64, -35, 84, 2, -61, 15, 40, -39, 116, -36, 93, -42, 68, 80, 86, -72, 77, -83, -17, 92, 78, -26, 96, 79, -21, 3, -18, 37, -25, -106, -61, 18, -46, -28, 28, 39, -30, -47, 11, 40, 14, 88, -1, 118, -3, 82, -19, 44, 12, -50, 23, 7, 16, 19, 17, 77, 43, 86, -76, 85, 78, -43, 30, 24, -20, 73, 83, 81, -33, 35, -36, -41, -48, -8, 18, 45, -16, -83, -53, -26, 48, -2, 18, 54, 72, 45, -21, 46, -56, -34, 46, -76, 92, 14, 87, -82, 38, -6, 24, -40, 60, -65, 69, -48, -78, 1, 30, 90, -25, -48, 35, -43, 5, 6, -54, -56}, + {-61, 8, -65, 0, 64, 83, 3, 38, -32, -38, -23, 104, 109, 51, 33, -45, -34, -33, -54, -20, 37, 22, -33, 17, 111, -18, 104, 77, 50, 27, 0, 1, -60, 105, 15, -44, -44, 36, -45, 28, -15, 104, 112, -45, 23, -3, 5, 13, 48, -21, -22, -32, 87, 72, 25, -65, 59, 86, -41, 73, 99, -41, -60, 36, 78, 35, -63, 65, 44, -18, 44, -73, 104, 13, 22, -53, -76, 4, 12, 54, 32, -5, 78, 40, -2, 32, -56, 105, -34, -77, -50, -16, 73, -45, 25, 105, -51, -41, 66, -34, 44, 20, -62, -59, 66, -34, 120, 80, 32, -18, 60, -65, -57, -58, -49, 67, -57, 48, -44, 39, -44, 35, -18, 64, -74, -67, 45, 14}, + {74, 59, -42, 87, 21, -2, -30, -40, 59, 34, 1, 17, -33, 64, 71, -18, -94, 43, 56, -58, -41, 2, 3, 54, 2, -12, 8, 91, -2, 61, -32, 24, -65, 27, 4, -75, 91, 82, 47, 49, -1, 54, 28, 68, 17, -71, 8, 62, 88, 66, -73, -2, 12, 14, 36, 18, 54, 4, -24, -59, -64, 26, 26, 26, 40, -89, -91, -52, 62, 64, -12, -7, 56, 88, -37, 72, -59, 71, 30, -64, 27, 13, -31, 6, -82, -39, 88, 7, 4, -13, 80, 3, -90, 9, 74, 15, 56, 65, -7, -33, -63, 93, -40, -63, 47, -53, -52, 0, -81, 47, -81, -3, -63, -56, -10, 91, 81, -53, 7, 68, 37, 54, 38, 77, -12, 65, -59, -43}, + {4, -95, -36, 46, -71, -94, 35, -94, -10, -74, -38, 80, 9, -5, -58, 89, 63, -73, 65, 15, -78, -68, 43, 12, -3, -56, -71, -54, -53, -61, 65, 89, -81, 53, 18, -88, 19, -61, 53, 76, 32, -9, 51, 94, -40, -26, 49, -69, 17, -14, 51, 0, 25, -67, 23, 41, -78, -33, -93, 31, 63, 73, 15, 84, -72, -38, -4, 92, 27, -31, 16, -34, 79, -71, 22, 55, 81, -28, 16, -37, 10, -82, 58, -7, -70, 87, 90, -85, 9, -29, -90, 47, 82, -22, 29, -4, 30, 84, 10, 3, 84, 70, 54, 57, 0, 4, 49, 21, 42, -94, 71, -74, 93, -57, 64, -77, 74, 41, -32, -36, -75, -32, 87, 86, 3, 71, -81, -92}, + {14, -38, -25, 60, 69, -102, 87, -1, 28, 12, 81, 92, -13, -14, -93, -75, 15, -17, -69, -37, -74, 28, 53, -14, 67, 19, 64, 14, 49, -82, -52, 90, -15, -87, 111, 3, -103, 16, 66, -35, 15, 49, 36, -95, 93, -92, 62, -52, 16, 88, 43, 72, 38, -91, 74, 59, -67, 19, 92, -49, -85, -32, 49, -57, -5, 9, -48, 86, 29, 20, 12, 51, -62, 64, -17, 74, 49, 92, -81, -68, 65, 38, 9, 81, 67, 89, 112, 96, -10, 36, 25, -59, 13, 47, -79, -60, -42, 68, -97, -86, -67, 61, 21, 55, -53, -67, 67, 40, -39, 3, -82, 62, 12, -62, 48, 47, 43, 90, -11, 6, -29, -35, 9, 53, 21, 1, -58, 60}, + {-83, -78, -37, -81, -105, 71, -21, 93, -71, 51, -35, 118, 7, 21, 52, -12, 98, 78, -78, -29, -21, 64, 28, -56, -73, 63, -13, 12, 87, -37, -10, 47, 39, 28, 54, 2, -63, -14, 111, -99, -84, -20, -53, 52, 96, 85, 9, -33, -73, -59, 32, -55, 16, 93, -41, 104, 12, 76, 85, -54, 70, 61, -39, 62, -36, -56, 64, 71, 51, 23, -55, -3, 81, -97, -10, 85, 70, -33, -43, 59, -70, 17, -11, 7, -6, -31, 3, 16, 97, -77, 82, 25, -69, 35, -101, -52, 105, 35, 44, 1, 28, 103, 59, 60, -51, 88, 63, -116, -96, -99, 89, -86, 90, -63, -49, -20, -80, 103, -94, 59, -69, -108, 67, 5, -86, 0, -106, 78}, + {88, 83, -94, 39, 54, -42, -23, -69, -28, -9, 29, -27, -48, 11, 29, 38, 68, 44, 93, 78, 70, -6, 45, -71, -2, 23, 32, 41, -1, -21, 101, -74, -7, 0, 46, 75, -48, -30, -48, -86, -91, 48, 80, -44, 20, -51, 20, 48, 61, 25, -84, -29, -38, -14, -24, 75, -43, 97, -73, 87, 23, 35, 64, 92, 9, 60, -21, -85, -67, 28, -81, -31, 79, -1, 83, 97, 23, -48, 6, 54, 72, 55, -21, 97, 88, 83, -79, 63, -44, -30, 81, -81, 69, 82, 27, 98, 85, -53, 34, -42, -30, -75, -20, -32, -58, -82, 48, 11, 41, 32, -56, -44, 95, -68, -79, 58, 22, -4, 17, 91, 7, 87, -53, -79, -19, 34, -7, -16} +}; + +static const int F11[256][3][3][1] = { + { + { + {-31}, + {93}, + {-48} + }, + { + {-102}, + {-24}, + {-76} + }, + { + {-94}, + {7}, + {11} + } + }, + { + { + {-56}, + {-67}, + {-25} + }, + { + {107}, + {-106}, + {56} + }, + { + {-24}, + {-53}, + {-50} + } + }, + { + { + {-111}, + {83}, + {115} + }, + { + {113}, + {-87}, + {-89} + }, + { + {61}, + {20}, + {-30} + } + }, + { + { + {25}, + {-17}, + {-92} + }, + { + {114}, + {29}, + {-97} + }, + { + {-28}, + {113}, + {-53} + } + }, + { + { + {49}, + {11}, + {62} + }, + { + {30}, + {54}, + {-108} + }, + { + {-66}, + {90}, + {-38} + } + }, + { + { + {-103}, + {16}, + {-76} + }, + { + {22}, + {-69}, + {98} + }, + { + {-98}, + {-82}, + {-80} + } + }, + { + { + {-104}, + {88}, + {90} + }, + { + {78}, + {21}, + {-74} + }, + { + {120}, + {31}, + {-31} + } + }, + { + { + {63}, + {-35}, + {14} + }, + { + {17}, + {-36}, + {83} + }, + { + {89}, + {-79}, + {-76} + } + }, + { + { + {12}, + {32}, + {-3} + }, + { + {72}, + {-93}, + {27} + }, + { + {-100}, + {34}, + {-35} + } + }, + { + { + {83}, + {74}, + {-51} + }, + { + {-63}, + {77}, + {-74} + }, + { + {-83}, + {78}, + {94} + } + }, + { + { + {-67}, + {44}, + {-102} + }, + { + {-82}, + {98}, + {111} + }, + { + {0}, + {18}, + {-104} + } + }, + { + { + {-53}, + {7}, + {47} + }, + { + {113}, + {-90}, + {7} + }, + { + {76}, + {25}, + {28} + } + }, + { + { + {103}, + {84}, + {115} + }, + { + {-97}, + {-30}, + {-21} + }, + { + {33}, + {-45}, + {29} + } + }, + { + { + {-1}, + {-71}, + {21} + }, + { + {-95}, + {58}, + {-89} + }, + { + {-44}, + {38}, + {9} + } + }, + { + { + {-104}, + {-11}, + {8} + }, + { + {-92}, + {-4}, + {73} + }, + { + {-26}, + {-116}, + {41} + } + }, + { + { + {-6}, + {-33}, + {107} + }, + { + {121}, + {78}, + {43} + }, + { + {-62}, + {119}, + {-60} + } + }, + { + { + {-86}, + {80}, + {101} + }, + { + {-110}, + {59}, + {-49} + }, + { + {-104}, + {-36}, + {115} + } + }, + { + { + {-86}, + {-1}, + {70} + }, + { + {-34}, + {-4}, + {21} + }, + { + {-43}, + {3}, + {-6} + } + }, + { + { + {62}, + {-4}, + {70} + }, + { + {63}, + {29}, + {120} + }, + { + {40}, + {28}, + {80} + } + }, + { + { + {-18}, + {63}, + {-9} + }, + { + {-3}, + {23}, + {-46} + }, + { + {78}, + {8}, + {13} + } + }, + { + { + {-60}, + {99}, + {-113} + }, + { + {4}, + {61}, + {99} + }, + { + {31}, + {102}, + {31} + } + }, + { + { + {55}, + {-55}, + {96} + }, + { + {-85}, + {106}, + {-58} + }, + { + {-55}, + {-79}, + {17} + } + }, + { + { + {-45}, + {24}, + {-57} + }, + { + {-90}, + {-38}, + {48} + }, + { + {-33}, + {5}, + {79} + } + }, + { + { + {-75}, + {23}, + {24} + }, + { + {5}, + {100}, + {45} + }, + { + {110}, + {23}, + {69} + } + }, + { + { + {79}, + {-110}, + {7} + }, + { + {44}, + {-67}, + {-2} + }, + { + {18}, + {-62}, + {-7} + } + }, + { + { + {-74}, + {46}, + {-89} + }, + { + {-38}, + {62}, + {-101} + }, + { + {86}, + {67}, + {105} + } + }, + { + { + {-44}, + {117}, + {-81} + }, + { + {42}, + {113}, + {-10} + }, + { + {-8}, + {-97}, + {98} + } + }, + { + { + {-22}, + {-19}, + {43} + }, + { + {80}, + {-76}, + {-60} + }, + { + {-54}, + {48}, + {43} + } + }, + { + { + {-32}, + {-35}, + {69} + }, + { + {-61}, + {104}, + {-98} + }, + { + {2}, + {52}, + {-65} + } + }, + { + { + {25}, + {-49}, + {-33} + }, + { + {90}, + {-60}, + {67} + }, + { + {-63}, + {0}, + {67} + } + }, + { + { + {116}, + {71}, + {-58} + }, + { + {21}, + {99}, + {62} + }, + { + {-74}, + {106}, + {-103} + } + }, + { + { + {36}, + {-62}, + {-84} + }, + { + {-77}, + {73}, + {39} + }, + { + {-28}, + {-97}, + {38} + } + }, + { + { + {-35}, + {24}, + {-101} + }, + { + {-12}, + {-97}, + {108} + }, + { + {55}, + {-6}, + {-61} + } + }, + { + { + {85}, + {-59}, + {111} + }, + { + {6}, + {36}, + {-5} + }, + { + {-77}, + {-112}, + {4} + } + }, + { + { + {24}, + {-116}, + {81} + }, + { + {31}, + {-99}, + {-7} + }, + { + {-19}, + {-104}, + {-76} + } + }, + { + { + {-111}, + {119}, + {-5} + }, + { + {-100}, + {-3}, + {59} + }, + { + {101}, + {-14}, + {77} + } + }, + { + { + {-107}, + {22}, + {-69} + }, + { + {56}, + {74}, + {45} + }, + { + {106}, + {56}, + {40} + } + }, + { + { + {53}, + {73}, + {57} + }, + { + {116}, + {82}, + {-92} + }, + { + {-85}, + {55}, + {16} + } + }, + { + { + {-80}, + {112}, + {-16} + }, + { + {45}, + {29}, + {123} + }, + { + {88}, + {49}, + {82} + } + }, + { + { + {65}, + {-115}, + {90} + }, + { + {113}, + {-72}, + {29} + }, + { + {-34}, + {3}, + {-63} + } + }, + { + { + {-108}, + {25}, + {35} + }, + { + {-24}, + {-30}, + {92} + }, + { + {116}, + {75}, + {-72} + } + }, + { + { + {-47}, + {37}, + {61} + }, + { + {47}, + {-18}, + {100} + }, + { + {89}, + {-28}, + {-83} + } + }, + { + { + {93}, + {56}, + {-90} + }, + { + {-95}, + {-43}, + {5} + }, + { + {-93}, + {-116}, + {-28} + } + }, + { + { + {28}, + {107}, + {1} + }, + { + {-53}, + {-90}, + {-63} + }, + { + {-78}, + {11}, + {-64} + } + }, + { + { + {18}, + {105}, + {-113} + }, + { + {49}, + {75}, + {-94} + }, + { + {20}, + {-89}, + {30} + } + }, + { + { + {75}, + {-39}, + {90} + }, + { + {-115}, + {75}, + {-76} + }, + { + {-22}, + {-7}, + {8} + } + }, + { + { + {-40}, + {-55}, + {-3} + }, + { + {99}, + {-64}, + {-62} + }, + { + {-9}, + {-118}, + {9} + } + }, + { + { + {8}, + {77}, + {-104} + }, + { + {7}, + {47}, + {-58} + }, + { + {-78}, + {22}, + {17} + } + }, + { + { + {-95}, + {-115}, + {-55} + }, + { + {-98}, + {106}, + {99} + }, + { + {108}, + {-70}, + {-40} + } + }, + { + { + {-67}, + {-61}, + {-27} + }, + { + {109}, + {67}, + {-89} + }, + { + {-101}, + {-101}, + {48} + } + }, + { + { + {-36}, + {67}, + {-47} + }, + { + {58}, + {-42}, + {0} + }, + { + {-11}, + {-72}, + {-100} + } + }, + { + { + {70}, + {-32}, + {-64} + }, + { + {-119}, + {57}, + {93} + }, + { + {-34}, + {-116}, + {48} + } + }, + { + { + {107}, + {46}, + {-63} + }, + { + {-117}, + {0}, + {92} + }, + { + {-27}, + {-39}, + {97} + } + }, + { + { + {-44}, + {-97}, + {67} + }, + { + {-7}, + {-62}, + {-55} + }, + { + {61}, + {104}, + {-8} + } + }, + { + { + {104}, + {106}, + {-90} + }, + { + {68}, + {-85}, + {76} + }, + { + {-71}, + {-68}, + {46} + } + }, + { + { + {114}, + {5}, + {-98} + }, + { + {-99}, + {-110}, + {68} + }, + { + {112}, + {-1}, + {118} + } + }, + { + { + {-60}, + {-73}, + {56} + }, + { + {-46}, + {-98}, + {-36} + }, + { + {92}, + {-32}, + {-60} + } + }, + { + { + {73}, + {-82}, + {-33} + }, + { + {-108}, + {38}, + {76} + }, + { + {55}, + {-14}, + {10} + } + }, + { + { + {-90}, + {-103}, + {-89} + }, + { + {-109}, + {41}, + {64} + }, + { + {-37}, + {83}, + {20} + } + }, + { + { + {40}, + {-3}, + {-18} + }, + { + {-79}, + {81}, + {-93} + }, + { + {101}, + {65}, + {86} + } + }, + { + { + {-58}, + {81}, + {-41} + }, + { + {-19}, + {-60}, + {25} + }, + { + {69}, + {11}, + {-25} + } + }, + { + { + {122}, + {-63}, + {59} + }, + { + {-28}, + {108}, + {81} + }, + { + {8}, + {-3}, + {6} + } + }, + { + { + {37}, + {84}, + {49} + }, + { + {-78}, + {76}, + {23} + }, + { + {47}, + {-59}, + {0} + } + }, + { + { + {-96}, + {114}, + {111} + }, + { + {2}, + {-57}, + {32} + }, + { + {-19}, + {-11}, + {-68} + } + }, + { + { + {-90}, + {90}, + {74} + }, + { + {-106}, + {53}, + {-75} + }, + { + {-1}, + {-94}, + {59} + } + }, + { + { + {84}, + {-110}, + {-67} + }, + { + {-56}, + {97}, + {-54} + }, + { + {-19}, + {51}, + {28} + } + }, + { + { + {10}, + {-108}, + {30} + }, + { + {59}, + {116}, + {69} + }, + { + {89}, + {68}, + {-29} + } + }, + { + { + {33}, + {-71}, + {49} + }, + { + {-72}, + {16}, + {-45} + }, + { + {62}, + {-30}, + {8} + } + }, + { + { + {-30}, + {-52}, + {4} + }, + { + {-85}, + {36}, + {5} + }, + { + {45}, + {76}, + {-42} + } + }, + { + { + {110}, + {-96}, + {-14} + }, + { + {-47}, + {103}, + {26} + }, + { + {-10}, + {-36}, + {77} + } + }, + { + { + {108}, + {-15}, + {-50} + }, + { + {65}, + {-103}, + {-3} + }, + { + {-96}, + {65}, + {-59} + } + }, + { + { + {-45}, + {116}, + {67} + }, + { + {-66}, + {56}, + {36} + }, + { + {106}, + {-83}, + {58} + } + }, + { + { + {110}, + {55}, + {-86} + }, + { + {53}, + {-98}, + {82} + }, + { + {-106}, + {-72}, + {99} + } + }, + { + { + {9}, + {-4}, + {-94} + }, + { + {-25}, + {-111}, + {-81} + }, + { + {-98}, + {46}, + {-32} + } + }, + { + { + {-61}, + {6}, + {112} + }, + { + {34}, + {-85}, + {-62} + }, + { + {-95}, + {100}, + {-58} + } + }, + { + { + {6}, + {78}, + {25} + }, + { + {61}, + {83}, + {81} + }, + { + {110}, + {-41}, + {-103} + } + }, + { + { + {66}, + {26}, + {10} + }, + { + {-73}, + {36}, + {59} + }, + { + {-107}, + {93}, + {41} + } + }, + { + { + {-28}, + {-41}, + {103} + }, + { + {28}, + {30}, + {108} + }, + { + {-73}, + {-106}, + {74} + } + }, + { + { + {-69}, + {-117}, + {4} + }, + { + {93}, + {-22}, + {-38} + }, + { + {124}, + {97}, + {74} + } + }, + { + { + {-48}, + {45}, + {-87} + }, + { + {-25}, + {62}, + {36} + }, + { + {-9}, + {-5}, + {-15} + } + }, + { + { + {48}, + {-71}, + {12} + }, + { + {59}, + {-55}, + {79} + }, + { + {-23}, + {-83}, + {-27} + } + }, + { + { + {-78}, + {-89}, + {-101} + }, + { + {69}, + {12}, + {-48} + }, + { + {-54}, + {-115}, + {-20} + } + }, + { + { + {22}, + {-87}, + {32} + }, + { + {14}, + {-67}, + {101} + }, + { + {74}, + {102}, + {-13} + } + }, + { + { + {-25}, + {3}, + {46} + }, + { + {-54}, + {-114}, + {-35} + }, + { + {-103}, + {46}, + {-28} + } + }, + { + { + {-106}, + {-33}, + {-112} + }, + { + {78}, + {52}, + {-11} + }, + { + {93}, + {-45}, + {-117} + } + }, + { + { + {46}, + {-34}, + {-1} + }, + { + {22}, + {122}, + {20} + }, + { + {-31}, + {-49}, + {66} + } + }, + { + { + {65}, + {114}, + {-41} + }, + { + {74}, + {-60}, + {-99} + }, + { + {17}, + {82}, + {-14} + } + }, + { + { + {-103}, + {-8}, + {54} + }, + { + {79}, + {116}, + {30} + }, + { + {-72}, + {59}, + {74} + } + }, + { + { + {75}, + {-47}, + {-18} + }, + { + {0}, + {71}, + {-19} + }, + { + {0}, + {15}, + {66} + } + }, + { + { + {-1}, + {74}, + {-106} + }, + { + {-94}, + {79}, + {-33} + }, + { + {-60}, + {-97}, + {-22} + } + }, + { + { + {-26}, + {23}, + {65} + }, + { + {6}, + {85}, + {29} + }, + { + {-115}, + {-33}, + {-108} + } + }, + { + { + {41}, + {76}, + {28} + }, + { + {106}, + {-113}, + {-51} + }, + { + {-88}, + {6}, + {-5} + } + }, + { + { + {35}, + {-69}, + {-109} + }, + { + {-116}, + {-25}, + {-13} + }, + { + {68}, + {3}, + {88} + } + }, + { + { + {18}, + {-70}, + {-75} + }, + { + {4}, + {-90}, + {116} + }, + { + {45}, + {-45}, + {30} + } + }, + { + { + {-97}, + {-12}, + {121} + }, + { + {8}, + {-3}, + {-72} + }, + { + {118}, + {60}, + {95} + } + }, + { + { + {5}, + {-70}, + {-14} + }, + { + {-35}, + {76}, + {18} + }, + { + {-91}, + {27}, + {50} + } + }, + { + { + {44}, + {-66}, + {6} + }, + { + {28}, + {-83}, + {26} + }, + { + {-11}, + {113}, + {-12} + } + }, + { + { + {-119}, + {-119}, + {-14} + }, + { + {-115}, + {20}, + {-89} + }, + { + {-60}, + {-52}, + {-70} + } + }, + { + { + {-46}, + {101}, + {-108} + }, + { + {81}, + {7}, + {18} + }, + { + {22}, + {-98}, + {104} + } + }, + { + { + {31}, + {58}, + {-35} + }, + { + {26}, + {-115}, + {-67} + }, + { + {3}, + {-110}, + {62} + } + }, + { + { + {-21}, + {-25}, + {83} + }, + { + {-3}, + {-95}, + {-3} + }, + { + {28}, + {98}, + {-79} + } + }, + { + { + {-104}, + {-106}, + {-102} + }, + { + {-69}, + {-36}, + {44} + }, + { + {113}, + {62}, + {104} + } + }, + { + { + {-91}, + {-95}, + {39} + }, + { + {99}, + {91}, + {6} + }, + { + {15}, + {-116}, + {-24} + } + }, + { + { + {110}, + {-39}, + {11} + }, + { + {-54}, + {62}, + {14} + }, + { + {114}, + {41}, + {-73} + } + }, + { + { + {104}, + {31}, + {-37} + }, + { + {-66}, + {-27}, + {-48} + }, + { + {-75}, + {74}, + {87} + } + }, + { + { + {-65}, + {-116}, + {-90} + }, + { + {90}, + {-96}, + {-31} + }, + { + {-44}, + {9}, + {48} + } + }, + { + { + {10}, + {-126}, + {-87} + }, + { + {-7}, + {-80}, + {95} + }, + { + {3}, + {-79}, + {31} + } + }, + { + { + {-45}, + {-26}, + {-108} + }, + { + {103}, + {-9}, + {85} + }, + { + {98}, + {-50}, + {92} + } + }, + { + { + {56}, + {36}, + {-14} + }, + { + {52}, + {49}, + {-79} + }, + { + {57}, + {13}, + {31} + } + }, + { + { + {23}, + {-55}, + {-109} + }, + { + {28}, + {-100}, + {-93} + }, + { + {-97}, + {-91}, + {95} + } + }, + { + { + {37}, + {-112}, + {74} + }, + { + {-50}, + {-45}, + {-13} + }, + { + {98}, + {-63}, + {60} + } + }, + { + { + {-17}, + {115}, + {-108} + }, + { + {-50}, + {93}, + {-70} + }, + { + {-32}, + {-85}, + {-41} + } + }, + { + { + {-76}, + {-53}, + {-97} + }, + { + {26}, + {14}, + {35} + }, + { + {-57}, + {-53}, + {-60} + } + }, + { + { + {-82}, + {-107}, + {-91} + }, + { + {-44}, + {-107}, + {-38} + }, + { + {-70}, + {40}, + {-12} + } + }, + { + { + {94}, + {22}, + {55} + }, + { + {1}, + {-63}, + {-27} + }, + { + {-35}, + {-66}, + {54} + } + }, + { + { + {-4}, + {8}, + {-92} + }, + { + {-29}, + {15}, + {75} + }, + { + {-15}, + {39}, + {-63} + } + }, + { + { + {71}, + {-3}, + {-93} + }, + { + {-102}, + {-36}, + {18} + }, + { + {-67}, + {-68}, + {-105} + } + }, + { + { + {-55}, + {-89}, + {23} + }, + { + {105}, + {-106}, + {11} + }, + { + {-55}, + {106}, + {-87} + } + }, + { + { + {-51}, + {76}, + {32} + }, + { + {-79}, + {25}, + {-40} + }, + { + {-19}, + {3}, + {53} + } + }, + { + { + {104}, + {81}, + {-32} + }, + { + {75}, + {24}, + {74} + }, + { + {83}, + {-34}, + {-15} + } + }, + { + { + {-72}, + {-24}, + {56} + }, + { + {87}, + {102}, + {-25} + }, + { + {17}, + {-72}, + {-54} + } + }, + { + { + {-63}, + {40}, + {-44} + }, + { + {-83}, + {84}, + {87} + }, + { + {-76}, + {-2}, + {-1} + } + }, + { + { + {-26}, + {-97}, + {-95} + }, + { + {-109}, + {84}, + {-37} + }, + { + {-59}, + {-32}, + {-63} + } + }, + { + { + {-35}, + {100}, + {57} + }, + { + {-44}, + {71}, + {-93} + }, + { + {74}, + {-84}, + {-13} + } + }, + { + { + {-81}, + {-28}, + {-46} + }, + { + {-29}, + {-81}, + {-45} + }, + { + {83}, + {-37}, + {-2} + } + }, + { + { + {8}, + {77}, + {-36} + }, + { + {69}, + {58}, + {-69} + }, + { + {42}, + {-102}, + {-84} + } + }, + { + { + {-9}, + {-24}, + {105} + }, + { + {45}, + {-7}, + {-96} + }, + { + {38}, + {-82}, + {0} + } + }, + { + { + {-105}, + {70}, + {-57} + }, + { + {122}, + {-23}, + {98} + }, + { + {-50}, + {9}, + {55} + } + }, + { + { + {-106}, + {15}, + {29} + }, + { + {-26}, + {-99}, + {-59} + }, + { + {-9}, + {111}, + {-117} + } + }, + { + { + {-26}, + {-50}, + {21} + }, + { + {-63}, + {54}, + {-67} + }, + { + {-21}, + {117}, + {47} + } + }, + { + { + {-10}, + {-37}, + {55} + }, + { + {-70}, + {-38}, + {60} + }, + { + {-31}, + {64}, + {31} + } + }, + { + { + {-57}, + {48}, + {-88} + }, + { + {15}, + {-12}, + {-7} + }, + { + {-81}, + {-22}, + {-78} + } + }, + { + { + {-9}, + {93}, + {-81} + }, + { + {78}, + {80}, + {-108} + }, + { + {-7}, + {23}, + {-43} + } + }, + { + { + {-33}, + {-21}, + {-4} + }, + { + {104}, + {84}, + {-39} + }, + { + {56}, + {-107}, + {86} + } + }, + { + { + {102}, + {-40}, + {-99} + }, + { + {34}, + {43}, + {18} + }, + { + {111}, + {109}, + {36} + } + }, + { + { + {3}, + {-71}, + {-113} + }, + { + {88}, + {-3}, + {-76} + }, + { + {-103}, + {-31}, + {-61} + } + }, + { + { + {-71}, + {47}, + {-49} + }, + { + {28}, + {101}, + {12} + }, + { + {-107}, + {-49}, + {93} + } + }, + { + { + {54}, + {-108}, + {80} + }, + { + {-104}, + {-30}, + {-106} + }, + { + {-48}, + {-72}, + {-111} + } + }, + { + { + {79}, + {54}, + {-92} + }, + { + {-26}, + {37}, + {-34} + }, + { + {38}, + {18}, + {-98} + } + }, + { + { + {-18}, + {80}, + {-32} + }, + { + {-114}, + {-35}, + {64} + }, + { + {-64}, + {78}, + {-13} + } + }, + { + { + {-77}, + {99}, + {-109} + }, + { + {-116}, + {-92}, + {59} + }, + { + {126}, + {-15}, + {38} + } + }, + { + { + {32}, + {-100}, + {34} + }, + { + {2}, + {5}, + {-30} + }, + { + {-102}, + {65}, + {-2} + } + }, + { + { + {44}, + {-42}, + {-52} + }, + { + {-32}, + {39}, + {-30} + }, + { + {74}, + {-38}, + {60} + } + }, + { + { + {-83}, + {111}, + {-8} + }, + { + {-44}, + {-17}, + {-52} + }, + { + {-117}, + {84}, + {-61} + } + }, + { + { + {52}, + {103}, + {-56} + }, + { + {-58}, + {22}, + {-91} + }, + { + {-40}, + {-44}, + {87} + } + }, + { + { + {39}, + {20}, + {-110} + }, + { + {18}, + {50}, + {-41} + }, + { + {-48}, + {-83}, + {37} + } + }, + { + { + {-66}, + {96}, + {85} + }, + { + {42}, + {-87}, + {86} + }, + { + {-118}, + {-21}, + {-20} + } + }, + { + { + {64}, + {98}, + {-81} + }, + { + {83}, + {-60}, + {-102} + }, + { + {52}, + {41}, + {60} + } + }, + { + { + {-1}, + {-91}, + {11} + }, + { + {2}, + {-24}, + {86} + }, + { + {-114}, + {97}, + {-88} + } + }, + { + { + {87}, + {96}, + {-14} + }, + { + {-5}, + {-14}, + {-71} + }, + { + {-77}, + {-70}, + {-103} + } + }, + { + { + {7}, + {117}, + {-105} + }, + { + {-19}, + {-7}, + {-19} + }, + { + {-47}, + {-59}, + {72} + } + }, + { + { + {18}, + {39}, + {105} + }, + { + {-113}, + {-40}, + {63} + }, + { + {89}, + {98}, + {27} + } + }, + { + { + {64}, + {-108}, + {16} + }, + { + {-5}, + {-46}, + {53} + }, + { + {-95}, + {54}, + {-114} + } + }, + { + { + {100}, + {-22}, + {-102} + }, + { + {-68}, + {-13}, + {-4} + }, + { + {-21}, + {-80}, + {-10} + } + }, + { + { + {-33}, + {-57}, + {-21} + }, + { + {-61}, + {-5}, + {-91} + }, + { + {-36}, + {24}, + {-82} + } + }, + { + { + {-44}, + {0}, + {113} + }, + { + {-8}, + {95}, + {-51} + }, + { + {107}, + {-51}, + {104} + } + }, + { + { + {-94}, + {22}, + {-56} + }, + { + {13}, + {111}, + {-19} + }, + { + {-62}, + {36}, + {92} + } + }, + { + { + {49}, + {-115}, + {-105} + }, + { + {91}, + {98}, + {-95} + }, + { + {23}, + {41}, + {-106} + } + }, + { + { + {-38}, + {28}, + {4} + }, + { + {113}, + {-117}, + {-87} + }, + { + {-1}, + {31}, + {43} + } + }, + { + { + {-107}, + {82}, + {-73} + }, + { + {35}, + {-21}, + {-89} + }, + { + {-9}, + {23}, + {-100} + } + }, + { + { + {-49}, + {107}, + {-97} + }, + { + {-82}, + {25}, + {53} + }, + { + {78}, + {56}, + {-10} + } + }, + { + { + {20}, + {28}, + {105} + }, + { + {-6}, + {54}, + {-48} + }, + { + {100}, + {84}, + {-99} + } + }, + { + { + {-48}, + {77}, + {-33} + }, + { + {-35}, + {-57}, + {113} + }, + { + {22}, + {-1}, + {-24} + } + }, + { + { + {-46}, + {-102}, + {-7} + }, + { + {-17}, + {78}, + {91} + }, + { + {45}, + {-59}, + {-113} + } + }, + { + { + {41}, + {3}, + {54} + }, + { + {24}, + {122}, + {4} + }, + { + {53}, + {-88}, + {97} + } + }, + { + { + {104}, + {19}, + {29} + }, + { + {90}, + {22}, + {-15} + }, + { + {-112}, + {-76}, + {2} + } + }, + { + { + {-103}, + {-95}, + {-42} + }, + { + {49}, + {34}, + {70} + }, + { + {46}, + {-95}, + {-60} + } + }, + { + { + {19}, + {-113}, + {-116} + }, + { + {-6}, + {-2}, + {25} + }, + { + {98}, + {65}, + {42} + } + }, + { + { + {32}, + {-115}, + {26} + }, + { + {-32}, + {-15}, + {25} + }, + { + {-42}, + {67}, + {16} + } + }, + { + { + {-17}, + {93}, + {-86} + }, + { + {21}, + {-60}, + {-14} + }, + { + {70}, + {-31}, + {-96} + } + }, + { + { + {86}, + {-86}, + {80} + }, + { + {-103}, + {30}, + {-118} + }, + { + {-111}, + {-100}, + {-68} + } + }, + { + { + {10}, + {27}, + {-44} + }, + { + {61}, + {39}, + {1} + }, + { + {77}, + {96}, + {-92} + } + }, + { + { + {33}, + {79}, + {-66} + }, + { + {14}, + {38}, + {65} + }, + { + {7}, + {103}, + {35} + } + }, + { + { + {51}, + {-54}, + {-85} + }, + { + {-10}, + {53}, + {62} + }, + { + {-110}, + {-48}, + {-111} + } + }, + { + { + {-66}, + {-93}, + {59} + }, + { + {80}, + {-51}, + {59} + }, + { + {15}, + {113}, + {115} + } + }, + { + { + {-59}, + {102}, + {-37} + }, + { + {-73}, + {40}, + {41} + }, + { + {-68}, + {99}, + {101} + } + }, + { + { + {31}, + {17}, + {-90} + }, + { + {89}, + {-94}, + {109} + }, + { + {-24}, + {75}, + {62} + } + }, + { + { + {23}, + {44}, + {-41} + }, + { + {20}, + {-1}, + {60} + }, + { + {-28}, + {-106}, + {-53} + } + }, + { + { + {-107}, + {-119}, + {-20} + }, + { + {110}, + {-96}, + {-6} + }, + { + {76}, + {15}, + {51} + } + }, + { + { + {40}, + {-27}, + {-95} + }, + { + {64}, + {103}, + {9} + }, + { + {114}, + {-9}, + {-91} + } + }, + { + { + {69}, + {-47}, + {-67} + }, + { + {-90}, + {33}, + {108} + }, + { + {75}, + {17}, + {9} + } + }, + { + { + {48}, + {-76}, + {-19} + }, + { + {-6}, + {-65}, + {118} + }, + { + {-12}, + {-54}, + {-73} + } + }, + { + { + {81}, + {-24}, + {-61} + }, + { + {75}, + {-111}, + {69} + }, + { + {-13}, + {-99}, + {72} + } + }, + { + { + {100}, + {35}, + {116} + }, + { + {93}, + {108}, + {87} + }, + { + {40}, + {85}, + {-12} + } + }, + { + { + {21}, + {-95}, + {69} + }, + { + {-102}, + {75}, + {-89} + }, + { + {26}, + {-86}, + {-60} + } + }, + { + { + {-12}, + {-107}, + {-96} + }, + { + {89}, + {-62}, + {-92} + }, + { + {61}, + {54}, + {109} + } + }, + { + { + {70}, + {-73}, + {-48} + }, + { + {-22}, + {57}, + {-31} + }, + { + {-49}, + {-98}, + {-66} + } + }, + { + { + {-92}, + {-100}, + {3} + }, + { + {-33}, + {-85}, + {106} + }, + { + {68}, + {-87}, + {-17} + } + }, + { + { + {-48}, + {-60}, + {-39} + }, + { + {-35}, + {5}, + {-84} + }, + { + {-44}, + {8}, + {53} + } + }, + { + { + {117}, + {-104}, + {84} + }, + { + {-4}, + {-13}, + {38} + }, + { + {17}, + {97}, + {117} + } + }, + { + { + {-112}, + {75}, + {19} + }, + { + {113}, + {-108}, + {87} + }, + { + {56}, + {65}, + {-16} + } + }, + { + { + {3}, + {25}, + {18} + }, + { + {88}, + {-80}, + {-109} + }, + { + {93}, + {93}, + {-52} + } + }, + { + { + {-104}, + {-89}, + {-65} + }, + { + {11}, + {51}, + {-79} + }, + { + {44}, + {-90}, + {-68} + } + }, + { + { + {-69}, + {-66}, + {-57} + }, + { + {-18}, + {38}, + {-54} + }, + { + {16}, + {122}, + {35} + } + }, + { + { + {-105}, + {-114}, + {85} + }, + { + {-11}, + {-12}, + {-39} + }, + { + {92}, + {-11}, + {114} + } + }, + { + { + {26}, + {-76}, + {98} + }, + { + {76}, + {-63}, + {-85} + }, + { + {13}, + {98}, + {-65} + } + }, + { + { + {-4}, + {39}, + {84} + }, + { + {-14}, + {26}, + {-56} + }, + { + {-39}, + {-70}, + {-30} + } + }, + { + { + {-89}, + {57}, + {-36} + }, + { + {-43}, + {-26}, + {45} + }, + { + {-93}, + {-17}, + {66} + } + }, + { + { + {13}, + {8}, + {81} + }, + { + {-20}, + {-78}, + {32} + }, + { + {11}, + {8}, + {-92} + } + }, + { + { + {14}, + {102}, + {-21} + }, + { + {4}, + {53}, + {-88} + }, + { + {-40}, + {105}, + {99} + } + }, + { + { + {-70}, + {46}, + {-98} + }, + { + {-96}, + {94}, + {64} + }, + { + {-39}, + {-23}, + {-63} + } + }, + { + { + {-13}, + {7}, + {43} + }, + { + {68}, + {-113}, + {-79} + }, + { + {67}, + {-55}, + {62} + } + }, + { + { + {56}, + {-27}, + {106} + }, + { + {78}, + {-70}, + {121} + }, + { + {65}, + {-12}, + {90} + } + }, + { + { + {108}, + {90}, + {-66} + }, + { + {-112}, + {-18}, + {-74} + }, + { + {17}, + {109}, + {29} + } + }, + { + { + {2}, + {-116}, + {-33} + }, + { + {65}, + {63}, + {-28} + }, + { + {99}, + {-73}, + {101} + } + }, + { + { + {-87}, + {105}, + {-107} + }, + { + {53}, + {100}, + {-55} + }, + { + {52}, + {91}, + {115} + } + }, + { + { + {98}, + {26}, + {101} + }, + { + {-46}, + {-80}, + {-1} + }, + { + {-27}, + {16}, + {115} + } + }, + { + { + {42}, + {-55}, + {-69} + }, + { + {-97}, + {-3}, + {6} + }, + { + {-4}, + {62}, + {2} + } + }, + { + { + {66}, + {19}, + {96} + }, + { + {-99}, + {19}, + {-70} + }, + { + {36}, + {-93}, + {45} + } + }, + { + { + {-16}, + {65}, + {-85} + }, + { + {-57}, + {55}, + {112} + }, + { + {52}, + {-116}, + {48} + } + }, + { + { + {62}, + {-105}, + {12} + }, + { + {2}, + {3}, + {-7} + }, + { + {-2}, + {11}, + {-4} + } + }, + { + { + {-11}, + {-41}, + {-32} + }, + { + {61}, + {34}, + {-25} + }, + { + {-89}, + {29}, + {109} + } + }, + { + { + {41}, + {51}, + {-58} + }, + { + {-98}, + {-20}, + {-12} + }, + { + {11}, + {76}, + {109} + } + }, + { + { + {24}, + {26}, + {103} + }, + { + {108}, + {-31}, + {88} + }, + { + {-82}, + {-25}, + {-115} + } + }, + { + { + {90}, + {118}, + {-92} + }, + { + {33}, + {6}, + {-20} + }, + { + {18}, + {104}, + {70} + } + }, + { + { + {36}, + {66}, + {-115} + }, + { + {99}, + {-7}, + {32} + }, + { + {19}, + {107}, + {36} + } + }, + { + { + {-71}, + {-115}, + {-12} + }, + { + {97}, + {43}, + {-43} + }, + { + {-72}, + {-58}, + {-34} + } + }, + { + { + {-112}, + {77}, + {-79} + }, + { + {-112}, + {-34}, + {85} + }, + { + {23}, + {-28}, + {-32} + } + }, + { + { + {49}, + {-73}, + {-104} + }, + { + {105}, + {-9}, + {10} + }, + { + {-10}, + {-89}, + {-2} + } + }, + { + { + {22}, + {10}, + {-97} + }, + { + {28}, + {11}, + {-13} + }, + { + {-7}, + {-76}, + {25} + } + }, + { + { + {-36}, + {-3}, + {-67} + }, + { + {5}, + {65}, + {42} + }, + { + {-93}, + {-26}, + {-55} + } + }, + { + { + {-2}, + {39}, + {36} + }, + { + {103}, + {44}, + {83} + }, + { + {66}, + {-115}, + {48} + } + }, + { + { + {-13}, + {56}, + {101} + }, + { + {18}, + {-54}, + {-22} + }, + { + {-55}, + {-6}, + {47} + } + }, + { + { + {64}, + {-48}, + {82} + }, + { + {-1}, + {15}, + {6} + }, + { + {-54}, + {100}, + {-26} + } + }, + { + { + {127}, + {-55}, + {110} + }, + { + {51}, + {116}, + {-96} + }, + { + {-83}, + {27}, + {10} + } + }, + { + { + {97}, + {-69}, + {-107} + }, + { + {-92}, + {-80}, + {11} + }, + { + {95}, + {18}, + {28} + } + }, + { + { + {-88}, + {-14}, + {-89} + }, + { + {13}, + {105}, + {82} + }, + { + {-12}, + {-26}, + {69} + } + }, + { + { + {116}, + {74}, + {-7} + }, + { + {-39}, + {-55}, + {79} + }, + { + {-70}, + {91}, + {2} + } + }, + { + { + {24}, + {6}, + {61} + }, + { + {68}, + {-112}, + {34} + }, + { + {-115}, + {-82}, + {20} + } + }, + { + { + {-16}, + {27}, + {-80} + }, + { + {97}, + {47}, + {120} + }, + { + {10}, + {120}, + {-53} + } + }, + { + { + {77}, + {48}, + {116} + }, + { + {-50}, + {61}, + {-44} + }, + { + {64}, + {-59}, + {26} + } + }, + { + { + {-30}, + {52}, + {-60} + }, + { + {4}, + {-94}, + {-95} + }, + { + {9}, + {-100}, + {-43} + } + }, + { + { + {-2}, + {0}, + {-63} + }, + { + {55}, + {-114}, + {-3} + }, + { + {35}, + {84}, + {-66} + } + }, + { + { + {-110}, + {-4}, + {-98} + }, + { + {16}, + {-35}, + {93} + }, + { + {3}, + {-18}, + {-1} + } + }, + { + { + {84}, + {-60}, + {63} + }, + { + {-90}, + {-80}, + {36} + }, + { + {-6}, + {-25}, + {-92} + } + }, + { + { + {-60}, + {113}, + {-89} + }, + { + {-89}, + {-98}, + {-33} + }, + { + {-22}, + {72}, + {18} + } + }, + { + { + {-34}, + {45}, + {54} + }, + { + {108}, + {-100}, + {-43} + }, + { + {-88}, + {15}, + {-86} + } + }, + { + { + {31}, + {-86}, + {-42} + }, + { + {66}, + {-49}, + {-87} + }, + { + {-30}, + {16}, + {-80} + } + }, + { + { + {11}, + {-15}, + {-20} + }, + { + {86}, + {94}, + {20} + }, + { + {70}, + {88}, + {123} + } + }, + { + { + {-86}, + {-46}, + {0} + }, + { + {-103}, + {92}, + {109} + }, + { + {-79}, + {78}, + {20} + } + }, + { + { + {62}, + {-55}, + {-108} + }, + { + {116}, + {5}, + {0} + }, + { + {-78}, + {-23}, + {8} + } + }, + { + { + {26}, + {-62}, + {-110} + }, + { + {74}, + {-100}, + {-19} + }, + { + {20}, + {23}, + {23} + } + }, + { + { + {90}, + {-34}, + {94} + }, + { + {112}, + {24}, + {-62} + }, + { + {91}, + {-31}, + {-122} + } + }, + { + { + {-66}, + {-86}, + {65} + }, + { + {49}, + {94}, + {100} + }, + { + {5}, + {-69}, + {51} + } + }, + { + { + {-43}, + {-85}, + {-120} + }, + { + {-78}, + {93}, + {10} + }, + { + {75}, + {33}, + {103} + } + }, + { + { + {24}, + {28}, + {-91} + }, + { + {101}, + {-17}, + {81} + }, + { + {-21}, + {-27}, + {-15} + } + }, + { + { + {-23}, + {-15}, + {26} + }, + { + {-1}, + {101}, + {117} + }, + { + {97}, + {118}, + {-98} + } + }, + { + { + {-58}, + {1}, + {-81} + }, + { + {-6}, + {6}, + {21} + }, + { + {-90}, + {94}, + {-79} + } + }, + { + { + {-22}, + {-91}, + {98} + }, + { + {56}, + {-117}, + {-72} + }, + { + {-39}, + {-44}, + {-86} + } + }, + { + { + {13}, + {-84}, + {-60} + }, + { + {-114}, + {64}, + {46} + }, + { + {36}, + {57}, + {78} + } + }, + { + { + {-105}, + {2}, + {-82} + }, + { + {119}, + {-47}, + {23} + }, + { + {-8}, + {93}, + {60} + } + }, + { + { + {-92}, + {30}, + {44} + }, + { + {26}, + {-99}, + {73} + }, + { + {-7}, + {11}, + {63} + } + }, + { + { + {-40}, + {-40}, + {48} + }, + { + {23}, + {55}, + {-65} + }, + { + {111}, + {-45}, + {-106} + } + }, + { + { + {19}, + {-71}, + {-20} + }, + { + {119}, + {100}, + {81} + }, + { + {31}, + {-118}, + {-47} + } + }, + { + { + {117}, + {69}, + {79} + }, + { + {74}, + {7}, + {33} + }, + { + {80}, + {33}, + {54} + } + }, + { + { + {-25}, + {91}, + {23} + }, + { + {-26}, + {-34}, + {77} + }, + { + {63}, + {116}, + {-9} + } + } +}; + +static const int F12[256][256] = { + {-44, 64, -10, 6, 37, 72, -15, 29, 19, -67, -60, -35, -64, -43, -51, 6, -74, -35, -6, 40, 83, 75, 35, 39, -28, 35, 36, 72, -63, 40, 70, -55, -81, 31, -72, 89, 30, -12, 24, 31, 56, 58, -88, 93, 58, 75, 3, -58, 34, -60, -9, -45, -82, 43, -18, 42, 67, 79, 56, -81, 83, -51, 20, 71, 87, -1, 13, 81, 10, -6, 37, -24, -57, 85, 37, 61, 75, -85, -27, 33, -5, 25, 29, -85, -55, -60, 18, 21, -76, -2, -31, 92, 67, 87, -67, -71, -5, 37, 27, 26, 98, 72, 83, 32, 85, 17, 86, 57, 23, 51, 82, 73, 5, 80, -3, -4, 35, -96, -25, -43, 36, -26, -29, 27, -6, 8, -61, 75, -65, 80, 48, -65, 26, 124, 40, 32, -41, -105, -20, 11, 36, 31, 88, 3, 88, -55, 8, 69, -41, -28, 0, -36, -16, -60, -37, -15, 88, 14, -3, 30, 31, 65, -72, -73, -42, -49, -65, 0, -46, -19, 31, 47, 51, 6, 14, -32, -21, 79, -5, 56, 19, -61, 50, 13, 56, -8, 56, 30, 77, 61, 11, -54, 79, 61, -53, -27, 55, 43, 59, 18, -62, 52, 41, -41, 6, 24, -8, -16, -21, -60, -27, 1, 74, -24, 39, -16, 67, -55, -1, 80, 84, 31, -25, -58, 43, -65, 100, -81, 29, 61, 25, -42, -44, -78, 38, -45, 62, 61, -25, -38, 57, 54, 43, 79, -45, 8, -4, 73, 58, 94, -4, -2, 2, 4, 60, -65}, + {37, 47, 79, 77, 61, -60, 59, -75, -44, -54, -67, 28, 76, 84, -65, -66, -3, 26, 48, -19, -73, -99, 27, -13, 66, -51, 23, 56, -37, -71, 69, -64, 94, 85, 34, -20, -8, -25, -70, 61, -25, 13, 76, -30, -7, 15, -73, 57, -88, 85, 30, 1, -58, -4, -31, 60, 39, -31, -6, 27, 16, 2, -57, 95, 36, 29, -88, -57, 55, -55, 53, 47, 72, 50, -22, -51, 42, -12, 87, -19, 29, -42, -15, -24, 95, 86, -16, -32, 66, -50, 72, -8, -67, -43, -21, 19, 47, -104, -73, -68, -22, 86, 87, 47, 74, 59, 5, -14, -74, 59, 27, -57, -16, -3, 51, 82, -75, -37, -75, 31, 10, 4, 86, 43, 16, -12, 65, 36, -1, -52, 3, 83, 38, -14, 83, -88, -29, -36, -72, 5, 61, 13, -50, -56, -6, -102, -30, -68, 48, 52, 13, 70, -45, -22, 16, -38, 77, -74, -11, 24, 44, 96, -14, 26, 83, 14, 53, 26, 94, 32, -87, 69, 5, -45, 53, -62, 11, 77, 24, -45, 15, 38, -12, -36, -55, 75, 73, -26, -79, 31, -75, -63, -9, -62, -84, -28, -5, -51, 12, 69, 81, -49, 73, -6, -71, 20, 14, -59, 23, -77, -64, 10, 4, 29, -56, 92, 66, 83, 8, -34, -89, -23, -56, -87, -31, -11, -82, 26, 35, -46, -47, 62, 17, -19, -49, -65, 70, -34, 94, 65, -4, 50, -22, -59, -6, -6, 83, -14, -3, -79, 13, 17, -56, 47, -69, -17}, + {-54, -8, -33, 20, 20, 31, -25, 63, 76, -59, 50, -50, -4, 2, 27, 56, -48, 33, -15, 40, -87, -85, 77, 76, -20, 23, -65, 82, 79, 65, 42, 90, 94, -30, 97, 52, -45, 58, 2, -38, -34, -80, -43, -17, 33, 13, -81, 79, -46, -58, 80, 39, 31, 76, -54, 24, 10, 48, -14, 41, -27, 42, -71, 24, 86, 84, -52, 48, 2, -14, 40, -26, 97, -18, -57, -40, 87, 42, 33, 86, 20, 0, -14, 28, 93, -50, -71, 90, 91, -24, 102, 27, -66, -26, -49, 69, 8, -93, -28, -77, 95, 45, 15, 61, -22, -39, -42, 100, -67, -58, 67, 18, 34, -15, -27, 31, 14, 56, -63, 17, -62, -18, 34, -12, -29, 81, 33, 41, -26, -43, 46, -62, -97, 33, -28, -82, -66, -31, 20, -45, 56, 14, 8, -53, 13, 17, 64, -66, 45, 36, -20, 8, 64, -25, -85, -62, -72, -78, -21, -70, -5, 50, -56, -53, 41, -71, 35, -43, 67, 81, 65, 9, 13, 59, -74, -13, -24, -3, -47, -29, 5, -11, -88, -102, 38, -82, 28, 76, 39, -78, 75, 38, -55, -33, -111, 49, -57, 82, -60, -69, 94, -41, -11, 87, -18, -4, -58, 37, 55, 22, 50, 88, 14, 103, -11, -6, -78, 65, -41, 10, -46, 3, 35, -16, -53, 1, -79, 33, 99, -40, 48, 21, -78, -60, -62, -83, -81, 90, 91, 6, -50, 90, 12, -15, 15, 39, -30, -63, 73, -8, 68, 56, -57, 69, -48, 36}, + {56, 41, 2, 85, 67, 24, 62, 10, 3, -67, -1, 16, 23, 81, -51, 72, -31, -5, -57, 48, 61, 52, 28, 25, -25, 64, -86, -55, 22, -28, -60, -88, 1, -81, 4, 26, 16, 53, 45, 78, -8, -73, 17, 58, -61, -86, 76, -85, 59, -42, -65, -62, -24, -24, -64, -77, 75, 34, -36, 0, -74, 85, -4, -73, -7, 81, 62, -38, 6, 67, -68, 78, -71, -44, 39, 27, 43, 16, -34, 1, 26, -54, -58, 48, -31, 23, 26, -12, -82, -15, -87, 81, -22, 63, 15, 40, -40, -86, 67, -20, -29, -7, -70, 23, -28, -41, 75, -3, 82, 84, 81, -73, -53, 7, 68, -27, -25, 57, -73, 1, -13, -2, -61, 87, 73, -37, -81, -48, 59, -61, 25, -39, 7, -76, -79, 5, 17, -88, 72, -24, -12, -59, -11, 17, 11, -52, -23, -85, 81, 58, 86, -52, 31, 37, 28, -71, -31, -17, 66, -29, -55, -30, 57, -57, 48, -55, 73, -55, -65, -76, -47, 45, 33, 1, -13, -81, -74, -71, -18, -19, -45, 77, 25, -38, -76, -32, -25, 18, -31, -66, -36, 0, 7, -82, -63, -68, 51, 69, -26, -35, 14, -22, 40, -83, -52, -34, 8, 76, 0, 20, -52, -29, -30, -29, -44, 6, 26, -59, 10, -70, -25, -26, 15, -68, 46, -13, -33, 74, 11, 27, 45, -5, 27, 18, -20, -78, -30, -22, -80, -51, 6, -64, 71, -10, -30, 76, 72, 27, -25, -54, 68, -70, -25, -31, -6, -16}, + {-47, -67, -81, -17, 86, -101, 55, -69, -31, -72, -8, -82, -66, 37, -83, -50, 98, -8, 9, -74, -48, 37, -26, -8, 69, 24, -69, -31, 73, 40, 74, -4, 67, -38, -46, 82, 22, -3, -53, -32, -28, 19, 78, -85, -69, 25, -33, 71, -47, 69, 2, 68, 42, 44, 19, -42, 56, -60, 10, 62, -87, -50, 74, -69, 72, 18, -21, 71, 28, -14, -49, 15, -82, 11, -38, -41, 24, -28, 71, 54, 75, -77, -31, -13, -19, -82, 88, 61, -11, 13, 50, 5, 46, 59, -15, -91, -9, -6, -17, -59, -6, 63, 25, -36, 41, -7, 80, -51, -52, 43, 66, -43, -44, -44, 21, -97, -52, -16, -2, 33, 17, 11, 85, -54, 67, -19, -54, -32, -72, 15, 56, 61, 21, -35, -4, 48, 61, 47, 54, 46, -54, -101, -28, 58, -5, -24, -26, -38, 35, 12, 88, -24, 46, -87, 45, 92, 17, -37, 36, 18, 67, 24, -37, -15, 79, -33, -59, -57, -86, 6, 79, -53, -65, -11, -51, -9, -10, -8, 70, -10, -45, 6, 38, -48, -61, -52, 50, 13, -21, -3, -65, -59, 60, 55, -94, 37, 68, -14, -11, 9, 80, 72, 2, -30, -27, 53, -31, -65, 13, 87, 44, 46, -1, -65, 84, 0, 72, -44, -10, -65, -34, -52, 22, 14, -63, -67, -54, -75, 38, -69, -78, 36, -16, -9, 29, 31, 14, 20, -25, 42, 55, 77, 17, 56, -57, 9, -64, -59, 23, -51, -18, 67, 35, -9, 115, 55}, + {18, -54, 0, 33, 56, -85, 82, -1, 58, -82, -17, -77, 24, -2, 62, 54, -79, 61, 55, 57, -28, 57, 60, 0, 50, 79, -74, 65, -31, -56, -8, -71, -21, -33, -42, 74, 26, 47, 40, -42, 57, 21, 3, -50, 32, 14, 0, -64, 64, -24, 76, 3, -71, 52, 69, 69, 0, -69, -71, -5, 13, 6, -18, 39, -10, 21, 47, -54, -42, 52, 65, -61, 16, 70, 4, 45, 48, -5, 20, -53, 79, -13, 77, 69, -28, -66, -39, 58, 61, 47, -84, 7, -88, 23, 34, -74, -4, 18, 76, -32, 71, 73, 15, 77, -76, 50, -56, -40, -78, -58, -16, 100, 45, 8, 52, -24, 6, -18, -62, 56, 28, 47, -16, 67, 38, -13, 53, 73, -69, 72, -30, -19, 56, -73, -9, 23, -58, 22, -3, -74, 19, 72, -14, -12, 28, 82, 69, 71, 43, 59, 21, -1, -80, -23, -37, 56, 75, 88, 69, 7, 32, -14, 69, 16, -83, 53, -44, -2, -65, -44, 64, 20, -44, 33, -61, 23, -87, 11, 12, 18, 24, 23, -78, -46, -38, 59, 44, 26, -58, -25, -83, -9, -7, -85, -33, -8, -71, -6, -23, 39, -1, 53, 68, -85, -46, 65, -57, -13, 74, -27, -37, -32, 67, -35, -5, 74, -33, 59, 13, -59, 62, -50, 0, -29, -41, -56, 47, -27, -88, 78, -10, 51, 72, 27, 34, 27, -24, 72, -41, 74, -28, 40, -48, -56, -69, -69, 9, -56, -40, -12, 34, 27, -24, 42, -19, 5}, + {11, 41, 81, 69, -70, 48, 4, 47, 26, -37, -79, -7, 29, 77, -9, 84, 94, 15, -61, -29, 25, 42, -77, -24, 46, -18, 9, -46, 60, 70, -32, 54, -78, 59, -82, -88, 59, -56, -80, -37, -80, -22, 4, -46, 35, 41, -75, 14, -84, 14, 44, -13, 33, -82, -21, 74, 76, -6, 22, 28, 84, -32, 72, -66, -42, -80, 58, 86, -79, -55, -36, -12, 58, -25, -57, 62, -20, -29, -19, -18, 12, -67, 42, -27, 20, -22, 2, -104, 56, -26, -22, -2, 16, 3, 92, -88, -51, -38, -47, 70, 50, -46, 81, 68, -10, 34, -89, -10, 69, 16, 62, 31, -4, -16, 14, -37, -17, -93, 11, 24, 27, -20, -71, -52, 81, -52, 20, -87, -35, 78, 72, 15, 47, 44, -59, 13, 59, 79, 44, -63, -54, -42, -68, -15, -5, -13, 49, 46, 16, -16, 61, 66, 71, 50, 34, 69, 61, 33, 86, 61, 50, -69, -67, -23, -29, 33, 35, 30, 35, -54, -73, 37, 76, 29, -62, -75, -14, -74, 20, -22, -39, 35, 26, 44, 10, -35, -27, 26, -11, 62, 23, -69, 43, -44, 66, -73, -51, -68, 10, -2, -30, -3, -40, -23, 85, 68, 76, -51, 83, -86, 61, 10, -27, -19, 83, -10, 80, -50, 26, 69, 89, 25, -85, 7, 48, 53, 27, 12, 55, -23, 13, 67, -85, 0, -32, 62, 8, 65, -19, 78, 24, -55, 71, -65, 84, 36, -5, 61, -5, -4, -72, -16, -70, 29, 81, 34}, + {53, 5, 24, -16, -4, -42, -57, 15, -25, -4, -37, -87, 8, -53, -32, 75, 12, -5, 61, 69, 56, -23, -54, -49, -78, 72, 46, 29, -9, -9, 25, 2, -57, -81, -21, 18, -70, -6, 71, -55, 7, -36, 77, 7, -77, 44, -30, -12, 39, -75, 54, 1, 57, -13, 29, -56, -49, 74, -72, -72, -78, 86, 89, 76, -75, 56, 27, 42, -8, -69, 31, 32, 89, -79, -54, 24, 35, -12, 15, 24, -44, -84, -74, 56, -50, -23, -35, 25, -55, 17, 86, 46, 28, 55, -26, 51, 66, 53, -80, 25, 52, 39, -6, 64, -29, -36, -24, -10, -64, 13, -58, 11, -40, 24, 61, -73, -18, 73, -88, 18, -58, 22, 31, -12, 35, -75, 36, 49, 15, -67, 19, -54, 0, -19, 12, 87, -22, 73, 4, -45, -31, 23, -1, -20, -20, 59, 69, 37, -23, 6, 65, 54, -64, -31, 47, -7, -14, 2, -62, -86, 80, -18, 24, -74, -87, -70, -2, -63, 60, -50, 86, 69, -53, 72, -16, -40, 2, -88, 5, -6, 40, -14, 47, -53, -43, 73, -31, 14, 40, 34, -73, -84, 86, 22, -2, 20, 0, -20, -63, 8, 86, -71, -55, 14, 84, -14, -68, -61, 47, 26, -41, -85, -52, 83, -65, -56, -53, 43, 11, -81, 45, -11, 6, -11, 42, 11, -19, -56, 4, -52, -82, -27, 82, 52, 8, 62, -70, -7, -73, -82, 70, -72, 81, -43, 5, 67, 32, -75, 83, 32, -27, -57, 57, 28, -76, 34}, + {-58, 3, -5, -44, 81, -1, 13, 40, 36, 56, 43, -1, 53, -38, -52, -55, -76, -78, 27, 75, -43, 78, -2, 74, 33, 42, 56, -16, 52, -59, 57, -75, -56, -48, 46, 7, 72, 37, 24, -5, 2, -62, -22, 33, -19, 39, -10, -45, 34, -3, -58, 40, -50, -41, 1, -50, -14, -16, 8, -54, -32, 13, -35, -80, -3, -80, 78, 29, 48, 63, 23, -67, 39, -85, 44, 77, 81, -58, 31, -2, 34, -34, 58, 20, 20, -75, -78, -43, -12, 55, 24, 80, 13, -38, -25, 19, 51, -76, 59, -62, 12, 62, -25, 6, -43, 71, -15, -77, -49, -1, 33, -9, 73, -11, -24, -20, 79, 22, -68, -75, -15, 58, -46, -85, -84, 11, 32, -14, -50, 30, 11, 78, -53, -19, -45, 10, -27, -16, -61, 87, 0, -40, -32, 69, 41, 46, 55, -41, 49, 73, -27, 62, 74, -39, 36, 66, -54, -83, 54, -42, 88, 67, -47, -14, -8, -88, 0, 78, 66, -56, 26, -1, 19, -39, -53, -83, 44, -9, -28, 27, -33, 20, 64, -16, 73, -43, -25, 70, -59, 86, 56, -84, 38, 15, -23, -3, 61, -8, -5, -75, -61, 78, 69, 65, -1, -16, 73, -59, -1, 60, 34, 55, 26, 62, 10, 17, -21, -48, -86, -7, 63, -18, 61, -62, -23, 76, -23, 57, 71, 17, -56, 17, -10, 73, 75, 9, 80, -13, -75, 25, 26, -27, -28, -27, 7, -50, 14, -51, -26, -49, 68, 61, -34, -45, -50, -49}, + {-19, -17, 72, 86, -24, 87, 4, 37, -46, -21, 11, -84, 36, 18, 55, 79, -50, 97, -34, 34, 86, -6, -69, 66, -72, 0, -41, -73, 14, 76, -47, 87, 50, -78, 55, 33, -8, 40, 34, 5, 28, 16, -65, -36, 72, -81, -37, -41, 41, 1, 64, 71, 41, -87, -55, 43, 25, 56, -26, -30, -51, 67, -83, 42, 37, -86, -72, -48, 77, -61, 82, 50, 43, 72, 86, 49, -9, 41, -58, -89, 9, -48, 59, 59, 12, 40, 62, -44, 24, 27, 18, 65, -31, 84, 102, 73, -51, 15, -43, 32, 71, -21, 62, 62, 72, 27, 1, 73, -37, 82, 82, 49, 55, -11, 47, -75, 70, 22, 24, -34, 59, -1, 65, 49, -75, -31, 37, -10, 42, 29, 65, -35, 79, -91, 18, -71, 33, 84, 40, 74, 9, 65, -83, 3, 64, -9, 52, 39, -68, 73, -62, -24, 36, -62, -3, 13, 1, -59, 47, 20, -42, 7, -72, 35, -32, 31, -75, 51, -76, -86, -54, 2, 50, -91, -36, -17, -50, 44, -1, 66, -56, 52, -45, -86, -21, -58, 42, -54, -19, -26, -82, -26, 78, 2, 4, 94, -62, -69, -68, 74, -20, -20, 64, -15, 51, -40, -24, 60, -70, -63, -5, -47, 3, 41, -5, 14, 81, -65, 24, -81, 78, -86, 31, 80, -90, 85, -56, -80, 15, 47, 92, -78, 0, -44, -1, 76, -77, -20, -2, 89, -81, 0, 48, -11, -45, -43, 33, -68, 72, 93, -34, -59, 35, -85, -19, 68}, + {-63, -46, 57, -52, -23, 16, 46, 84, -68, -49, -48, -20, 116, -26, 71, 75, -23, 64, -59, -64, 72, 79, 50, 68, -99, -65, -46, 64, -44, 30, 43, 63, -58, -68, 30, 69, 91, -16, 71, -11, 36, 33, -42, 73, -42, 11, -66, -87, 94, -79, 6, -56, -85, -7, 47, 57, -76, 30, 30, 55, -22, -62, -71, -6, 72, -41, -59, 17, 23, 79, -30, 67, 55, 34, 47, 73, 15, 69, 0, -43, -14, -51, 2, -69, 41, 12, -14, 35, 66, -66, 67, 45, 8, -1, 109, -79, 66, 47, -41, 17, 12, 81, 38, 94, 6, -67, -37, 15, 32, 27, -2, -64, -8, -27, -15, 71, -88, -70, 83, 22, 0, -59, -17, -92, -67, 61, -10, -5, -100, -9, 61, -77, 65, -27, -12, 80, 36, 51, 38, 3, -66, -68, -74, -90, 4, 39, -7, -8, 0, 32, -46, -23, -64, -22, -44, 31, 90, -57, -67, 74, 51, -5, 7, -99, -17, 50, 32, 11, -77, -43, -27, 37, 112, -85, -57, -4, 22, -74, 16, -73, -51, -33, 37, 102, 4, 42, 69, -13, 25, -18, 86, -17, -25, 48, 92, -75, -90, -29, -51, 1, -63, 54, 73, -37, 24, 49, 75, 68, 35, 35, 14, 5, 11, -45, 118, 38, -74, 83, 7, 18, 16, -22, 21, -15, 67, 9, 28, 80, 82, 29, 62, 21, -41, 60, 56, -88, -40, -73, -57, 80, -20, 102, 74, -67, -12, 78, -67, -22, 3, -17, 95, -18, 42, -75, 63, 5}, + {-10, -56, -29, -60, -44, -29, -51, -11, -47, 45, 84, 84, 55, 40, -7, -11, -74, 57, 23, -22, -19, 13, -57, 8, -53, 77, 49, -68, -82, -73, 52, 39, 81, 35, 51, 75, -112, 24, -91, -75, 18, 22, -19, 79, 47, -57, -62, -77, 50, 63, -24, 78, -84, -34, -59, 94, -59, -40, 22, 93, 1, 32, -19, 77, -57, 64, 28, -31, 90, 80, -62, -44, 85, -25, -36, -15, -26, 37, 35, 35, -6, -39, 22, 32, -20, -51, -15, -28, 71, 74, -51, 52, -38, 46, 52, 55, -52, -102, -19, -24, 22, 4, -46, 42, 14, -88, 87, 97, 2, 50, -54, 5, 58, -45, -35, -79, -39, 49, -28, 12, -77, 54, 40, -41, -40, -16, 35, -50, -43, -67, -39, -51, 53, -34, -47, -64, 33, 93, -68, 9, -28, -19, -67, -62, 50, 90, 79, -63, 84, -29, 11, -62, -85, -68, 45, 56, 73, -60, 12, 11, 82, 88, 82, -20, 73, 79, 3, -14, -18, 51, -37, 56, 72, -26, -42, -54, 75, 36, -68, -8, -93, -86, -83, -106, 31, 79, 61, 73, 18, -3, 38, -26, 5, -60, -78, -72, 73, -14, 82, 59, 22, 43, 14, 76, -17, -59, 39, 49, 62, -48, 62, 3, 33, -6, -95, 45, -77, -19, -49, 5, -46, 62, 29, -58, -3, 10, 11, -66, -19, 20, -106, 86, -19, 62, 17, -80, -12, 18, -71, 30, -84, 82, -61, -45, 27, 83, -3, -33, -23, -10, -84, 6, 69, 90, 3, 86}, + {-70, 17, 86, 51, -60, -32, -24, 15, -74, 7, 42, 81, 6, -13, -61, 67, -32, 43, 84, 31, 35, -100, -76, 62, 97, 56, -4, 97, -41, 71, 81, 105, -54, 52, -54, 72, 25, 57, 40, -46, -68, -31, 48, 40, -89, -28, -57, -38, 25, -20, 24, 18, 0, 6, -32, 79, 77, 19, 35, 49, 60, 93, 40, 40, -64, 77, -23, 66, 31, -54, 36, 88, 81, -85, 79, -1, 57, -4, -71, 85, 76, 35, 56, -25, 46, 27, 27, 87, 45, 18, -54, -20, 27, -57, 63, -40, 33, -117, 57, -33, -3, 26, -82, -42, 46, 66, 89, 82, -5, 8, 17, -42, -82, 36, 97, 68, -6, -52, -71, -60, -3, 11, -86, -68, 6, 11, -14, 27, 61, 87, -35, 6, 16, -3, -41, -49, 93, 99, 74, 68, 44, -64, 37, -33, 68, 44, 67, 17, -53, 16, -13, -57, 36, -77, -61, -10, 53, 28, -6, -76, 21, 53, 22, -17, 39, -44, 60, -73, 4, 70, -83, 33, -6, -80, 35, 35, 40, -50, -1, -58, -9, 10, -10, -25, 70, 72, 63, 79, 38, -45, -41, 6, 17, -52, 6, 19, -14, 69, 20, 36, 85, 11, -28, 0, -6, 56, 17, -17, -67, 29, 46, -36, 63, 7, -48, 10, 43, 46, -15, -2, 7, -8, 24, -84, 44, 111, -44, 57, -11, -19, -99, 12, -24, -48, 33, 57, -27, -35, -8, -20, -52, 25, 56, 51, 37, 67, 24, 4, 77, -37, 65, -13, -59, 88, -126, -32}, + {-36, -85, -43, -80, -28, -6, -22, -81, -91, 51, -47, 70, 21, 65, 8, 79, -41, 15, 57, -4, -46, 11, 26, 22, 32, -59, 84, 32, 7, 16, -4, 31, 68, -48, 10, 17, 58, 63, 68, -79, -33, -69, 40, 76, 53, 4, 3, 85, 40, 81, 54, 29, 56, 88, -63, -51, 10, -79, -63, -84, -23, 66, -60, 71, 32, 51, -73, 0, -84, -54, 45, -42, -87, 58, -18, -67, 33, -6, 60, 75, -45, 2, 3, -24, 49, 23, -49, -2, -27, 48, 0, 32, 54, 26, 3, 27, -20, -68, -5, 6, -48, 46, -57, 33, 77, 1, -79, -89, -51, 74, 15, -27, 38, -29, 71, 11, -45, 35, -39, -32, 79, -37, 69, 43, -60, 39, -71, -5, 11, -41, -49, 6, 60, 29, -46, -29, 17, 64, 46, 37, -2, -62, 28, -82, -42, -66, -30, -73, -65, 17, 16, -52, -81, -51, 78, -8, -64, 85, -18, -26, 72, 60, 71, -8, -69, -82, -20, 2, 32, -85, 18, 14, -54, -21, -66, -45, 53, -46, -66, 48, -84, 51, -84, -72, 38, 49, 80, -54, -78, -91, 66, -55, -78, -25, -24, -57, 33, 77, 52, 54, -2, 48, -5, -19, 59, -27, -51, 83, 83, 16, 47, -9, -44, -61, 51, 47, -21, -28, 62, 82, -41, 14, -28, 24, 14, -3, 76, -29, -59, -58, -85, -87, -60, 31, 87, -46, -80, 38, -45, -16, -34, -42, 35, -45, -18, 55, -30, -35, 9, 35, -66, 54, 77, -48, 36, -23}, + {-63, -49, 41, -33, 3, 8, -67, -19, 51, -55, -79, 42, -37, 75, -21, 76, -90, 7, -47, 32, -65, -86, -6, 80, 28, -30, 24, -48, -42, 22, -82, -26, 37, -29, -67, -46, -25, -27, -101, -35, 28, 86, -14, 97, 55, 49, 88, 21, -53, 77, 62, 24, 7, -25, -38, 75, 49, 49, 83, -11, -69, -53, -58, -4, -75, -28, 87, -36, -9, -34, 34, -50, 8, -14, 45, 65, -36, 45, -26, 9, 19, -59, 12, -7, 96, -33, 31, 21, -56, 15, 79, 31, -53, 25, -96, 16, -89, 52, 3, -5, -59, 21, 8, -68, -35, 34, 20, 66, 36, 28, 57, -6, -4, 59, 9, 20, 74, 89, 56, 64, 70, -15, 6, 38, 85, -73, 91, 75, 34, -7, 65, -51, 93, -38, 1, 56, 19, 63, -71, -23, 8, 44, 55, 30, -30, 1, 17, 99, -68, 77, -33, 70, 38, -21, -12, 42, 32, -17, -70, -8, -4, -33, 6, 52, -22, 50, -3, -69, 3, -51, 12, 64, 59, 49, 82, -65, 46, 1, 44, 9, -57, 70, -32, -102, -101, -25, -40, -75, 26, 83, 40, 34, -77, -15, -31, -40, -13, 2, -56, -23, 19, 65, 101, 65, -60, -2, 7, 19, 49, -17, 85, 84, 102, -18, -26, 51, -52, 16, -15, 57, 67, 61, 44, 81, -20, 101, -32, 55, 88, -54, 22, -41, -9, 39, 82, -56, -17, -68, -4, -84, 38, -33, 38, 48, -21, 84, -37, 76, 55, 68, -56, 30, 74, 90, -31, 47}, + {-47, -84, 32, -72, -31, 22, 58, -56, -47, 90, 19, -48, 7, 55, 19, 37, 92, 75, -63, 52, 17, 116, 31, -41, 53, 54, 48, -39, 24, -3, -42, -26, -21, -84, -45, -85, -60, 33, 50, -70, 49, -74, -39, 85, 6, 89, -44, 23, -82, 37, -46, 45, -15, -72, 71, -20, -28, -39, 63, 38, -46, 77, 94, 21, 86, -53, 7, 32, 83, -66, 17, -89, 46, 78, 21, 40, 30, 35, -66, -39, 37, -66, -28, -73, 48, 45, 32, 53, -51, 42, 54, 36, 66, -53, -11, 79, -84, 30, 56, -28, 80, -15, 1, 31, -48, 60, -89, -34, -9, 69, -55, 66, 60, 42, -34, -60, -22, -96, 2, 13, -88, 53, -67, 84, 89, -58, -64, 13, 53, 23, 18, -22, -20, 74, 29, -40, -8, 10, 41, -59, 61, -36, -11, 83, -45, 68, 28, -52, -56, -74, 10, -71, 2, 84, 1, 62, 72, 37, -44, -18, -81, -11, 49, -67, -68, 25, 89, 45, -57, -22, 37, 20, -34, -84, 56, -29, 45, 69, 91, -39, -12, -80, -13, 93, 89, -70, 84, 72, -16, -41, -80, 9, -34, -15, 34, -53, -15, -25, 50, 8, -49, 45, -24, 1, -29, 56, 50, 74, -55, 39, -38, 14, -93, -68, -20, 6, -67, 0, 4, -67, -21, 53, -42, -87, 13, -4, -12, -87, -83, 47, -40, -24, 19, -51, 27, 66, -71, -43, -10, 46, 67, 2, -39, 92, -75, -81, -89, 12, 25, 36, -68, 35, -49, -38, -3, -39}, + {88, 76, 68, 46, -36, 19, -37, -56, 69, 56, -70, -82, 44, 69, 14, 8, -68, -57, -26, -3, 44, 66, 71, -20, -41, -48, -11, -87, -47, -36, 21, -67, -94, -59, -61, 84, -36, -24, -9, -78, 65, -40, -16, 34, 18, -14, -69, -15, -1, 82, -70, 32, 81, -84, -3, -70, 65, 84, -100, 51, -93, -2, 90, 75, -30, 63, -6, 24, 42, -85, 85, -84, -24, -51, -46, 38, 37, 6, 75, 47, 71, -58, -72, -1, -12, 74, -87, -83, -71, -65, 78, -37, 38, 58, 61, -62, -32, -64, -49, -51, 77, -87, -14, 42, -11, -17, 37, -44, -26, -7, -25, 69, 53, 12, -25, 16, -83, 20, -27, -13, 71, 34, -12, -3, 65, -5, -60, 4, -10, 30, 20, -1, -23, 29, 54, 3, 58, 20, -33, 37, 67, -47, 17, -33, -12, 72, -26, -63, -36, 47, 54, -22, -54, -81, 21, 60, 38, 37, -66, -17, -40, 1, 80, -15, 49, -74, 66, -6, 73, -90, 32, 35, 28, -13, -71, 14, -11, 54, 53, -24, 76, -92, -40, 114, -23, 66, -56, 26, -47, 17, -22, 47, -16, -3, -90, 44, -7, -4, -74, -27, 7, -34, 54, 65, -47, -64, -51, -31, 11, 75, -64, -8, 49, -87, 31, 33, 73, 53, -74, -14, -50, -87, 51, -27, 100, -24, 53, 31, 32, -18, -14, 8, 9, -57, -81, -10, -6, 37, 43, 7, -64, -40, -57, 45, 32, -49, 9, 57, -53, 46, -51, -66, -33, 47, 23, -78}, + {10, -77, 65, -57, -84, 62, 67, 29, -70, 52, 49, -60, -37, -10, -70, -10, -20, -5, 49, -59, 6, 112, -75, -56, 31, 40, -80, -61, -61, 98, 63, 15, -8, -72, -27, -28, -63, -77, 36, 25, 36, -57, 29, 61, 9, -88, 1, -41, -80, 19, -42, -9, 86, 34, 21, 24, -13, -85, -60, -6, 53, -14, -24, 0, -64, -67, 82, -9, -21, 72, 10, -60, 47, 27, -6, -13, -11, -87, -84, -59, -44, 81, -36, 47, -75, -51, -23, 17, -85, 31, 23, 25, 64, -23, 104, -27, 31, 47, 33, 26, -78, 88, 16, 54, -55, -63, 58, -81, 7, -94, -12, -15, -80, -3, 57, 32, -41, 23, 61, 47, 26, 28, -53, -75, -23, 87, -3, -60, -77, -33, 51, 23, 1, 42, 71, 82, -85, -96, -30, 36, 71, -69, 79, 74, 73, -5, 48, 65, -80, -76, -1, -44, 58, -42, 45, 2, 29, 53, -76, -5, 24, 15, 68, -31, 36, -23, -14, 39, -36, -62, 29, 71, 5, -70, 73, 3, 31, -67, -69, 65, 13, -15, 29, 109, 88, 11, 32, 49, 66, -67, 11, 77, -28, -43, 51, -35, -12, 59, 38, 50, 18, -58, -81, -68, 12, -45, -35, -65, -2, 71, -4, 41, 28, 49, -33, -41, 83, -79, -40, 85, -11, 20, -40, -6, -47, -24, 50, 72, 28, -68, -69, -51, -84, -88, -74, -82, 12, -49, 31, -60, -46, -23, 23, 19, -79, -74, -13, -83, -2, -83, 17, 89, 13, 87, 31, -64}, + {-80, -47, -83, 80, 46, 3, -6, 94, 39, 72, 69, 10, -16, -34, 7, -71, 10, 51, -61, 41, 77, -23, 0, -47, 32, 44, 0, 69, -33, 40, 25, 44, -53, -58, 21, 47, -104, 52, -58, 8, 66, 21, 86, 76, 16, -65, 52, 83, -35, -21, 6, 62, 34, 54, -38, -55, -16, 32, -34, -10, -70, -1, -8, 13, 0, 98, -45, 77, -44, 6, 41, 89, -58, -46, -75, -41, -41, 1, 48, 17, -65, -12, 11, -9, -48, 88, -53, 98, -10, 21, -65, 71, 62, 96, -57, -75, 53, -103, 74, -89, -39, 46, 80, -66, 48, 39, 28, 48, -42, 54, -58, 10, 1, 58, 34, -68, -63, 2, -85, -1, -6, -42, 6, 43, 19, 72, 5, 83, 42, 78, 39, 40, 37, -31, 79, 2, -32, -19, 59, -63, -63, -22, 58, -46, 5, -37, 48, -69, -5, 26, 66, -49, -15, -24, 65, -66, -28, -65, 73, -69, 42, 3, -13, 14, 75, 54, -71, -2, -29, 21, -48, -15, -63, 93, -72, -50, 10, 28, 14, 67, -49, 33, -16, -40, -26, -29, 38, -66, -22, 30, 29, 1, 23, 33, 4, -15, -39, 6, 44, -77, 23, -18, 53, 95, -45, 73, -26, 84, -49, 23, 12, 16, 24, -69, -81, 52, 72, -32, -66, -49, 63, -70, -42, 24, -3, 31, 32, 60, -6, -81, -80, 41, -14, 70, -35, 5, -2, 39, -31, -46, 54, 52, -74, 37, 20, 35, -6, -77, 22, -40, -52, 66, 53, 28, 55, 95}, + {26, 1, -36, 9, -75, -75, -37, -25, 69, 78, 44, -85, 20, 71, -14, -72, -53, -6, -90, 38, 42, -57, -31, 47, 53, -53, -57, -55, 16, -22, 98, 65, -19, -88, 39, -15, 22, 49, 108, -49, 34, 21, 8, -76, -11, -64, -66, -48, 37, -88, 50, 32, 32, -17, 76, -11, 18, -49, 30, -1, 33, 5, -45, 77, -33, 41, 63, -78, 10, -14, -27, -4, 3, -14, 5, -52, 70, 65, 7, 25, 54, 48, 64, 7, 17, 46, -33, -42, -90, -22, -21, 60, -65, 3, 73, -14, -20, -54, 68, -31, -47, 34, 79, 51, 46, -26, 42, -11, 41, 41, -29, -42, -59, -82, -45, 29, -64, -88, -69, -64, 73, -7, 8, -21, 51, -13, -96, 40, -34, 70, -7, 52, 6, 49, -41, -73, -12, -51, -7, -60, -58, -84, -25, -11, 31, 47, -83, -15, -35, 3, 83, -7, 81, 80, 85, -45, -55, -9, 59, 57, -39, -93, 62, -18, -56, -67, 62, 23, 62, 49, -26, 68, 13, 16, 82, -23, -64, 35, -53, 62, 101, -11, -30, 14, 19, -71, -83, 9, 41, 90, 65, 69, 71, 39, -29, 46, -50, 67, -39, 88, -24, 82, -81, 65, 57, -77, 1, -54, -60, -60, -24, 40, 19, 37, 93, 42, -80, -74, -87, 22, -7, 78, 75, 56, -66, 57, 29, -64, -62, 65, -91, 5, -22, 45, 63, 9, -19, 36, -3, 68, 12, 11, 5, -5, -30, 45, 82, 33, -84, 17, 56, -2, 51, 80, 46, 46}, + {-67, -63, -36, -40, -24, -30, 84, -21, -65, 50, 46, -86, 41, 6, -35, -44, 50, -36, -100, -10, 51, -42, 59, 60, 69, -38, -58, 64, -16, 34, 18, -64, -18, -71, -85, 40, 66, -83, 106, 35, -40, -29, -9, -30, 63, 66, 38, -69, 18, 50, -27, 72, -29, -22, 41, 65, 38, 55, 29, -11, 66, -41, -15, -6, -84, -34, -28, -70, 61, -81, -48, 6, 46, 7, -26, 46, -52, 72, 8, -51, 2, -42, -7, -2, -83, 20, -5, -15, -36, -83, -35, -81, 25, -71, -62, 57, 5, 55, 84, 76, 94, 81, 7, -37, -91, -59, -81, -22, 46, -54, -72, -50, -21, -27, -81, -4, 79, -62, -32, 23, -60, 42, 80, 57, 35, -69, -27, 46, -2, 75, -32, -74, 69, 8, 7, 50, 35, -106, 74, -86, -9, -38, 27, 43, 32, 21, -1, 78, -6, 57, 29, 51, -19, -85, 57, 37, -64, 65, -37, -44, -90, 32, -3, -62, -33, -47, 86, -9, 30, 1, 29, 62, -1, 75, 78, 88, 56, 51, 71, -69, -16, 35, -86, 84, -47, -51, -1, -84, 28, 28, -74, 88, -58, -47, -19, -68, -9, 30, 31, -55, 60, 17, -82, 72, -41, 67, -2, -7, -64, 78, -80, 37, 38, 58, 44, 50, 30, 39, -88, -79, -3, -37, 8, 30, -71, 6, 61, 26, 30, 82, 22, -84, -43, -39, -13, -77, 33, -96, -9, -46, -57, 54, 79, 34, -81, 88, 47, 3, -43, 5, -10, -29, 75, -41, 115, -47}, + {-57, -89, 47, -66, 0, -47, -38, 64, 54, -78, -20, 66, -23, 52, -30, 73, -90, -49, 23, 70, -76, -96, 21, 80, -4, -77, 62, 11, -76, 34, -30, 13, 22, -67, 21, 70, 21, 71, 74, 59, 48, 35, -72, -37, 51, -67, 78, -69, 64, 32, 83, -48, -43, -18, 52, 44, -86, 10, -17, 2, -74, 12, 0, 35, -37, 33, 64, 13, -67, 42, 65, 42, -45, -69, 81, 76, 30, 3, 86, -51, 48, -4, -74, 35, -48, 19, -81, 35, -36, -82, -57, 45, -49, -7, 67, 62, -84, -41, -27, -83, 13, -9, -62, 21, 35, 62, -57, 41, -33, 80, 6, -49, -40, -78, -68, -69, 67, -15, 19, -81, -3, 27, 44, -34, -62, -66, 23, 53, 16, 16, -31, -10, -64, 41, -20, 32, -7, 67, -17, -4, 72, 31, 33, -54, -33, -37, -13, -71, -67, 68, -85, -55, 57, 89, -54, -68, 14, 17, 54, 32, 86, 4, 28, 70, -19, 64, 84, 25, -51, 50, 67, -10, -88, -78, 4, 76, 39, 31, -77, 64, 0, -46, 51, 12, 44, 12, -35, -20, -37, -96, 52, 11, -9, 12, 59, 79, -81, -18, -23, -83, -61, -55, -50, 77, 88, 41, 8, 70, 71, -53, 5, -54, 98, 35, 7, 70, -23, -61, -16, 87, 80, -33, -75, 24, 46, -17, -67, 31, -17, -91, 91, 63, 45, 51, 0, -44, -25, 72, 79, -26, -73, -41, -80, 5, 47, 58, 76, -40, -65, -54, 53, 39, 69, 69, -36, 77}, + {-77, 13, -68, -5, -63, -57, 10, 34, 40, -67, 59, -48, -29, 90, 2, 7, -11, 22, -94, 59, 63, 87, -55, -27, -18, -60, -45, 3, -38, 73, 90, -39, -6, -41, -100, -65, -10, -23, 111, -17, -30, 69, 27, 51, -54, 58, 6, 34, -47, 40, 72, -80, 10, 24, 68, -30, 83, 83, -45, -59, -28, -69, -65, -74, -45, -10, 15, 26, 19, 35, -66, -77, -24, 79, 78, -19, 93, 2, 63, -63, -68, 21, -64, 58, 58, 4, -21, 64, -66, -18, -67, -34, -34, -8, -12, 55, -23, 84, 15, 27, -7, 85, 22, 7, -9, 80, 34, 2, -76, -82, -54, -32, 69, -69, -51, 51, 83, -53, 76, 76, 45, -59, 26, -2, -87, 20, -36, -27, 12, 61, 67, -43, -55, 17, -81, -52, -72, -83, 67, 4, 91, 58, 50, -3, -12, -55, -72, -53, 5, -57, 87, 9, -87, -79, 39, 93, 6, 13, 56, -79, 50, -16, 31, 85, -50, -77, 53, 75, -5, 70, -24, 42, -60, 0, 87, 57, 18, -41, -73, -6, 106, -20, -36, 71, 40, -75, -28, -37, -30, -54, 81, 21, -64, 10, 33, -61, 86, -31, -6, 81, -31, 10, -72, -18, -11, 60, -37, 34, 1, -29, -9, 41, 43, -9, 6, 33, -49, -34, 60, -44, -43, -12, -1, -49, 106, -67, -65, 10, 46, -48, -81, -94, 79, 12, -50, 4, 36, 5, 89, -53, 21, 59, -83, 71, 54, 2, 53, 14, 72, -37, 74, 25, -41, 63, -16, 69}, + {-76, -68, -48, 10, -83, 18, 12, -26, -50, -46, -52, -48, -80, -5, 28, -53, 21, 66, -80, -1, 7, 24, -87, -33, 42, 21, 5, 74, 22, 78, -2, -10, 48, -71, 50, 5, -79, -59, -1, 51, 8, 2, -72, 17, -15, -23, 50, -18, -47, 39, -5, 66, 86, -52, 35, 14, 19, -89, 0, 22, -58, -10, -37, -24, 40, 15, -54, -45, 24, 72, -87, -44, -78, 11, -56, 55, -65, 39, 63, 21, 75, -82, 34, 29, 36, 70, -69, -17, -18, -78, -83, 0, 79, -42, 7, 38, -35, -29, -87, 46, -54, -18, -69, 89, 29, -79, 41, -76, 11, 79, 39, 14, 19, -39, 16, -74, 62, -73, -4, -7, -89, 46, -30, -72, 56, 73, 65, -50, -5, -50, -81, -26, 2, -57, -66, 8, -32, -20, -50, 20, 2, -9, -6, -17, 84, -3, -74, -46, -74, 77, 9, 68, 26, 63, -59, -58, -63, -43, -16, -59, 36, -76, 22, 51, -66, 71, -21, 56, 20, -14, -83, -58, 79, -86, -46, -42, -67, 39, -29, -75, 73, 7, -6, -40, -48, 4, 51, -7, -65, -63, 51, 75, -57, -39, -14, 35, 3, 60, 42, 70, 78, -13, -69, -53, 2, 35, -3, 43, 51, 52, 8, -8, -51, -31, -21, -79, -23, 88, 15, -49, 68, 87, -29, 71, -15, 78, -59, 22, -21, -52, 84, 27, -24, 68, 80, 73, -37, 21, -41, -46, -51, 32, 63, -25, -29, -27, -12, -48, 73, -44, 85, -10, 32, 54, 65, 14}, + {5, -70, 21, -28, -46, 59, -13, -67, 70, -44, -82, 7, 21, -14, -22, 56, -65, 46, 20, -66, 79, 70, -51, -84, 71, 50, 24, 28, -13, -59, 68, 51, 8, -5, 23, 80, -83, 80, -76, -71, 92, 62, -66, -46, 84, -86, 68, -33, -18, -44, 25, -27, 43, 34, -3, 64, 71, 18, -19, -59, -55, -4, 26, -30, 16, 89, -83, -77, -8, -29, 8, -8, -88, 3, 37, 35, -39, 71, 46, -27, 49, 51, -36, 49, 73, 65, 25, 9, -88, 38, 83, -37, 46, 16, 48, 41, 27, 20, 32, 39, -16, -3, 11, -62, 36, 6, 14, 15, -10, 79, -8, -33, 21, 31, 39, 49, -25, -27, -52, 66, 13, 74, -3, -49, 50, 81, -16, -2, -45, 50, -31, 32, 43, 28, -42, -42, -78, -75, 34, 8, 3, -62, 7, 18, -70, -70, -37, -25, 71, -4, -28, 60, -59, 75, -44, 77, -15, 40, 24, -84, -26, -91, 57, 20, -14, -69, 22, -41, 49, 83, -77, -21, -44, -61, -11, -53, -37, -45, 46, 48, 68, 40, -62, 49, -46, 13, -55, -22, -31, -70, -8, 70, -43, 66, -73, -49, 28, 0, -20, -34, -58, 88, 28, 11, -52, -4, 42, 1, -47, -15, 7, -45, -7, 21, 52, 7, 45, -62, -49, 66, -73, 68, 54, -34, 56, -27, -85, -32, -50, -75, -32, 37, 9, -20, 30, -21, 0, -6, 51, 26, 44, 42, 37, -1, 52, -60, 15, 46, -12, -81, -24, -20, -18, 52, 26, 74}, + {61, -44, -3, 23, 43, 89, 47, -29, 73, 30, 10, 5, -49, -3, 57, 8, 12, 21, 62, 83, -22, -11, 51, 43, -46, -80, 6, 8, -53, -62, -4, -64, 90, -45, 76, 27, -74, 3, 30, -77, -16, 5, -71, -85, 22, 30, 85, 73, 62, -41, -40, -17, -69, 56, -16, 76, 3, 36, 68, -16, 52, 59, -39, 90, 62, 66, 21, 36, 18, 71, 38, 32, 2, 22, 36, -22, -79, 46, -9, -84, -3, 86, -83, -28, -56, 79, 55, 21, 70, 28, 32, -51, -77, 7, 20, 26, -24, 53, 62, -45, -7, -24, -12, -5, -80, 20, -75, -37, 89, 23, -44, -61, 67, 22, 56, -28, -72, 16, -57, 54, 54, 27, 76, 26, 68, 53, -47, -65, 14, -63, -51, 53, -1, 53, 10, -46, 82, 43, 34, -7, 46, -48, 9, -29, -21, -67, -6, 15, -16, 24, 17, -69, 42, -64, -42, 84, 91, 2, 25, -4, -79, -70, 71, -21, 31, 84, -67, -17, -29, 1, -65, -14, -90, 60, 18, 75, -1, 29, 12, 33, -93, 57, 45, 25, -57, -9, -18, 0, -50, -19, -67, 69, -27, -55, 68, 45, 60, -24, -30, -76, -84, 78, -27, 78, 62, -69, -9, -44, -64, 58, -39, 60, -27, -34, -8, -13, 41, 30, 2, 28, 35, 18, -64, -5, -13, -9, 73, -30, -84, -52, -25, 12, -3, 52, 44, -44, 85, 70, -42, 38, 71, -90, -63, 55, -11, 83, 25, -43, -65, -66, 55, 5, 3, -73, -107, -75}, + {38, 63, 73, 28, 46, 91, 0, 49, 69, -76, 76, 63, 36, -57, 36, -12, 72, 36, 87, -35, 15, 44, -24, -58, 66, -8, -33, -7, 75, 50, -76, 29, -32, 57, -9, -5, -39, -82, 25, -73, -19, 46, 63, 40, -68, -10, 73, -27, 77, 98, 49, 79, -64, 61, 22, 52, 5, 43, 5, 35, 96, 86, -48, 82, -53, -1, 84, -5, -40, -49, 79, 30, -15, -4, -52, -85, 67, -66, -84, -31, 23, 55, 60, -71, 79, 3, 63, 109, -51, 75, 39, -79, -59, 85, -42, -57, 12, -70, -20, -26, -95, 86, 41, 38, -84, 80, -22, -36, 69, 32, 3, -51, -29, -51, -1, -35, 65, 93, -47, 59, 74, 44, 10, -10, -69, -1, -43, 10, 73, -49, 18, -37, -49, -94, -88, -11, 83, 90, -5, 2, 12, 84, 62, 37, -56, 8, -2, 12, -33, 106, -18, -15, 17, -26, -22, 32, 80, 65, -3, -79, -15, -66, -69, 54, 91, 54, 29, 60, 4, -77, 48, -40, -57, -51, -78, -9, -42, -9, 47, 4, -59, -43, 22, -56, 44, 37, 34, -1, 62, 57, 37, 11, 78, -118, -93, 35, -7, 30, 48, -86, 45, -63, 33, 29, -63, 7, 49, 32, -42, -67, -57, -4, -89, 44, -50, -60, 84, -10, -49, -40, -86, 83, 56, 71, -65, -54, 61, 41, -12, 24, 8, -18, 73, 15, -1, -7, -84, -32, 70, -15, 56, 67, 8, -69, 0, 57, 51, 22, -60, 12, -58, -49, 9, -61, 51, -32}, + {10, 58, 48, -78, 15, 40, 75, -27, 0, 35, 13, -70, 67, -11, 27, -67, -55, -68, -56, -61, 25, 69, 23, 72, -10, 12, 33, 19, 82, -83, 58, -61, -57, -6, -79, 73, -19, -6, -43, -37, 43, -54, -77, -60, -16, -71, -53, -81, -53, 8, -23, -40, -81, -73, -51, 70, 78, -24, 28, 7, -14, -38, -16, -32, 2, -29, 55, 58, 49, 82, -47, 65, 28, 70, 77, 14, 28, -5, 82, 68, -15, 35, -31, -84, -80, -42, -2, 2, -88, -38, -23, 3, -79, -20, -43, -45, -83, 13, -35, 51, 28, 16, 38, -36, 57, 54, -42, -16, 59, 22, 18, -14, 55, 80, -50, 7, -53, -20, 44, 29, 34, -5, 34, 59, -88, -65, -24, 78, -57, -1, -51, -54, -72, 33, -39, 49, -75, 79, 47, 66, 75, 78, -76, -41, -24, -10, -86, 34, -7, -11, -22, -22, -64, -69, -18, -43, -53, -28, -43, 84, -45, 12, -9, 43, 81, -52, -80, 26, -77, -80, -11, -2, 15, 39, 32, -7, 35, 32, -8, 46, -39, -8, -69, 33, 82, -74, 53, -85, 71, -47, -29, 87, 57, -67, -86, -40, -1, 84, 12, -54, -30, 57, -62, 58, 50, 47, -2, -29, -18, 63, -41, -33, -36, 88, -83, -12, -35, -48, 89, -49, -83, 87, -32, 51, 7, -78, 38, -13, 70, -21, 35, 16, -80, 55, -55, -20, 65, -41, -50, -36, 68, -86, 7, -47, -67, 27, 84, 39, 84, -32, -81, -21, 78, 25, -6, 32}, + {68, -18, -36, -49, 54, -30, 62, -22, 65, 60, 68, -54, -3, -34, -37, 17, -6, 21, -54, -20, -75, 45, -44, 69, 79, -38, -13, -36, 2, -68, 38, -44, 36, 6, 63, 77, -75, -70, 45, -58, -11, -81, 42, 37, -75, 49, 74, 23, 82, -79, -30, -52, 34, -39, -30, -23, 86, -86, -63, 87, 59, -47, 71, -22, -71, 87, 44, -30, -20, -22, -23, -10, -49, 73, 35, -52, -59, -80, 4, 53, -56, 9, -87, -17, -67, 3, 57, 88, -77, -71, -7, 57, -72, 8, -55, -3, -21, 34, 78, -38, 44, 78, 17, -42, -43, -76, -46, -57, -46, -64, -24, 18, 27, 4, 68, -78, -25, -46, -77, 33, -1, 2, 88, -24, -17, 58, 22, -27, -62, 72, -73, -61, -2, -74, 53, 67, 2, -1, -12, -18, 18, 35, 54, -77, 13, -6, -57, -49, -49, 88, 79, 52, -40, 81, -46, -57, -46, 88, 69, 28, -82, -46, -27, 12, 22, 43, 84, 83, -66, -33, 34, -69, 40, 48, -29, -40, -62, 22, 70, -67, -25, 56, -36, 20, -15, 45, 71, 2, -50, -5, -40, 11, -42, 58, 59, 42, 66, -42, -54, -29, -29, 18, 29, -28, 85, -88, 69, 32, -61, -35, -77, -88, 7, -78, -64, -39, -61, -9, 18, -6, -62, -81, 55, 75, 82, 64, 33, 50, -4, 74, 70, -26, 85, -36, 47, -67, -28, -60, -7, 61, -13, 38, 50, -78, -78, -12, 14, -6, -40, 70, -38, 52, -84, 4, 17, 30}, + {55, -2, -21, -6, 83, -3, 96, 48, 11, -12, 22, -17, 22, -56, -13, 45, -38, 39, 41, -78, -8, 0, -40, 16, -63, 22, 70, 76, 42, 59, -76, 62, 92, -23, 2, 43, -72, -58, -51, -57, -35, 84, 30, 49, 76, 34, 30, 27, -29, 47, 6, 35, -67, 46, 33, 100, -10, 33, 86, -57, 28, 80, -57, 72, 1, -44, 39, 74, 46, -10, 26, -34, 73, -32, 32, 54, 77, -59, -40, -89, 67, 29, -42, -46, 33, 68, 50, 91, -54, -9, 7, -44, 69, 28, -78, 64, 26, 12, -29, -63, 57, -40, 61, 10, 19, 70, 63, -51, -12, 57, -80, -43, -14, 1, 31, 25, -89, -34, -10, 79, 22, -44, -85, -57, -87, 52, -28, 25, -48, 9, 33, -84, -21, -9, 53, 21, -58, -1, 67, -68, -25, -52, 40, -35, -10, -92, -28, 96, 49, 31, -56, -76, 12, 53, 43, -74, -16, -69, -55, 38, -39, 79, -13, 87, 41, 49, -37, -21, -74, 41, -15, 12, 76, 30, -10, -26, 23, 95, -72, -60, -43, 84, 75, -7, -71, 0, 79, -2, -31, 51, -23, -77, 85, -22, 62, -63, -29, 51, 39, 40, 50, 76, 23, -13, -63, 38, -32, -82, -83, -4, -24, -30, 58, -75, -98, -37, -62, -80, 88, 15, 7, -25, 83, -22, -21, 48, 19, 9, 79, -8, -76, -31, -84, 6, -6, -33, 78, 2, -24, 51, 72, -79, 91, 17, -26, -5, -32, 10, 83, -56, -56, 70, 6, 31, -62, 90}, + {-80, 35, 19, -43, 38, -56, -45, -5, 11, 15, -48, 64, 30, -42, -103, -55, -21, 120, -70, 30, 103, 73, 1, 28, 12, -38, -42, 42, 60, 36, 11, -70, 89, -26, -82, -70, 10, -88, -70, 20, -21, -40, -78, -29, 72, 79, -74, 42, 24, -48, 37, -65, 74, 65, 24, 4, -49, -1, 90, 83, 62, 66, -78, -37, 4, 86, -67, 26, -6, 47, -39, 19, -34, -79, 20, 36, -48, -37, 49, 15, 1, 26, -79, -12, -50, 65, -32, 79, -14, -20, 71, -84, 58, 74, 95, 54, -27, -71, -76, 79, 42, 96, -24, 40, 75, -74, -42, 12, 17, -47, -30, 53, -4, 93, -14, 78, -59, 31, 83, -69, -3, 62, 36, 53, 15, -60, -51, 97, 52, 70, 74, -66, -3, 106, 66, 26, -17, 78, -7, 6, -64, -66, 28, -69, 41, 38, -32, 8, -10, -90, -78, -62, -40, 81, 73, -62, 46, -19, 32, -75, -8, -26, -82, -66, 74, 70, -27, 60, -25, 78, -33, -84, 87, -7, -53, -66, 35, -75, 33, -4, 105, 104, 34, 95, -89, 78, -56, -77, -48, -82, -30, -63, 40, 4, 71, 66, -31, -61, 26, -75, 75, 64, 42, -23, -31, 6, 30, 48, -8, 13, -51, 10, 7, -9, 69, 34, 23, -68, -83, 62, -60, 62, -28, -17, 2, 29, 25, -44, 41, 71, 22, -32, -62, -50, -5, 3, 6, 6, 80, 29, -1, 60, -34, -62, 17, 21, -18, -46, -35, 68, 61, 17, 74, -96, 55, 62}, + {7, 19, -67, 80, -33, 96, 58, 85, 71, 23, 40, -80, 27, -8, -40, -82, -78, 77, -4, 79, -11, -78, -42, -38, -76, -79, -1, -76, 19, -6, -90, 56, -53, 66, 30, 48, 5, 58, -42, 67, 23, 54, -15, -26, -26, -85, -71, -23, 38, 65, 10, 7, 23, 83, -64, 43, 42, -21, -30, -46, 86, 75, -13, 17, 33, 19, -41, -50, -26, 14, 54, 19, 13, -58, -41, 17, -27, 48, 81, 79, 79, 72, -78, -36, 89, -83, -14, 35, 69, -8, 24, 33, -54, -25, -69, 52, 66, 22, 13, -52, 8, -9, -1, -68, 82, -10, 41, 34, -85, -69, 26, -86, -7, 1, 45, -37, -20, 88, 5, 26, 71, -89, 13, -9, -71, 72, 61, -94, -51, -62, 54, -28, -30, 14, -48, -30, -73, 92, 12, 45, 11, -48, 9, -16, 56, -29, 72, -21, -35, -78, -54, 45, -79, 83, 52, -28, 39, 55, -73, -60, -65, -3, -53, -59, -9, 59, -60, 47, 23, -3, 46, -31, 23, 72, -17, 72, 73, -28, -79, 49, 36, -48, 18, -33, 60, -77, 36, 53, -30, -86, 85, -30, 21, -68, -20, -59, -47, -11, -53, 44, -48, -35, -44, -13, 79, 42, -34, 74, -60, 63, -54, -57, -22, 81, 68, -8, 85, -23, -77, 14, 48, -8, -5, -10, -69, 40, 74, 78, -78, 21, -111, 14, -33, 25, -26, 9, -51, -57, 82, -11, 21, 17, -77, 81, 40, -39, 86, -32, 71, 50, 48, -85, 27, 61, -45, -72}, + {45, 53, -53, -2, -9, 13, 63, 62, -53, -81, -88, 89, 87, 5, -3, 55, 27, -29, 31, -85, 24, 50, 69, 8, 62, -67, 13, 36, -42, 26, 16, -1, 17, 48, -89, 28, 78, 5, 107, 31, -37, 44, 4, 34, 17, -72, -76, 50, 18, -11, 55, 63, 26, 50, -4, -51, 61, -32, 7, -36, 44, -63, 88, -49, -33, -15, -49, 70, -65, -75, 87, 58, 74, 24, 48, 24, -91, -10, -46, 88, -52, -19, 49, 3, -83, -85, 44, -89, 56, 49, 9, 37, -26, -12, -28, 74, 35, -7, 22, -32, 63, 80, -16, 19, 13, 43, -90, 45, -69, -82, 43, -77, 50, 38, 30, -26, 43, -42, 84, -22, 42, 25, 44, -20, -77, 3, -61, -85, -23, 16, -71, 58, 14, -8, 23, -28, 11, -36, -76, -29, 54, 40, 46, 64, 42, -28, 47, 51, 25, -83, 64, 89, 73, 51, 3, -21, 65, -6, 61, 64, -80, -70, -20, 50, 38, 41, 36, 38, -5, -66, 85, 55, 109, 32, 76, 81, -12, -4, 87, 21, 72, 67, 24, 102, 43, 65, -63, 47, -44, 16, 84, 2, -16, -49, 40, -2, 45, -54, -35, 72, 35, 84, 15, -76, -9, 71, -75, -48, -33, -83, 45, 72, -11, 38, 65, -9, 81, -9, 35, 70, 4, -61, 74, 52, 71, 1, -37, -51, 53, 92, 3, -60, 38, 64, 44, 72, 0, 57, -70, -79, 86, 4, -52, -74, -45, -70, 67, -31, -38, 27, -37, 7, -74, 44, 44, 20}, + {20, 7, 16, 68, 1, -28, -8, -31, 4, -34, -46, 68, -5, -4, -17, 75, -58, -37, -52, 65, 93, 94, -84, 26, -23, 47, -54, -12, 41, 26, 73, -22, -10, 66, -65, -17, -62, -20, 72, -51, -49, 24, 46, -70, 82, 76, 68, -18, -16, -71, 64, -43, -51, 16, -26, -30, -24, -51, 57, 0, -43, -47, 15, 60, -49, 64, 49, -48, 74, -16, 42, -8, 72, 77, 80, -75, -70, 3, 25, 49, -82, 59, 61, -56, 35, 87, 75, 78, 64, -8, -21, 35, 53, -64, 87, -41, 81, -89, -64, -77, 85, 19, 51, -62, -7, -59, -34, -8, -34, -74, 61, -55, 80, -18, -54, -72, -37, -14, -81, -68, -82, -1, -44, 10, -57, 15, 9, -69, 92, 83, 69, 50, -29, 64, 17, 27, 82, 23, -21, -38, -44, -49, 60, 37, -21, -6, 62, -6, 82, -8, 3, 9, 3, 71, -26, -46, -22, 64, -67, 85, 45, 85, 69, -75, 17, -3, -80, 50, -52, -36, -32, -60, 92, 3, -50, -53, 37, 50, 22, -61, 11, 10, -51, -61, 46, 57, -25, 3, -40, 63, -65, 8, 78, 59, -88, -55, 75, -55, 57, 35, 84, 4, 46, -61, -20, -46, -26, -84, 76, -18, -61, -48, -63, -32, -66, -64, -68, 29, -20, 82, 41, -73, 17, 49, 5, 51, 53, 31, 78, -86, 74, 20, 3, -32, 9, 54, 7, -85, 82, -34, -70, -79, 23, 36, -16, 33, 28, 53, 23, -72, -39, -71, -20, -70, 58, -20}, + {-56, 79, -33, 84, 67, 46, 70, -62, 7, -53, -88, 71, -28, 2, -76, -38, 35, 19, 65, 74, -22, 7, -88, 2, -18, 25, -20, 82, -57, 13, 48, 44, 78, 37, 86, 0, -64, -2, 67, -62, -49, -82, 74, -49, -7, -27, -67, 61, 36, -41, -18, -58, 79, 18, 3, 81, 48, -50, 67, 63, 62, 24, -65, 53, -32, -86, 66, 76, -20, -80, -66, -74, 80, 49, 5, 65, 74, -78, -27, 35, 89, 41, -29, -62, -70, -38, -80, -35, -84, 37, 26, 39, -80, -42, -9, 35, 46, 42, 1, -79, 15, 53, -54, -35, 10, -64, 50, -41, -47, 36, 65, 70, 4, -59, -2, 63, 18, 78, 51, -2, 21, 70, -6, 65, -81, 50, 10, -71, -86, 81, -32, 29, 77, -4, 60, -69, -51, -29, -18, -83, -86, -60, 19, 33, -6, -25, 22, 83, 54, -18, -60, -50, 46, 37, 69, -64, 39, -85, -22, -22, 28, -83, -87, 12, -1, -42, 72, 82, 17, -67, 5, 13, 23, -83, 52, -23, -68, 51, -31, -82, 88, -79, 89, -40, -7, -43, 60, -87, 62, 92, 64, 35, 5, -21, 16, -88, 25, 74, -69, -57, 82, -19, 38, -21, 48, 49, 84, -29, 25, 55, -29, 69, -75, 28, -6, -33, -21, 38, -20, 24, -30, 15, -23, 31, -44, 50, 70, 24, -80, -27, 83, 62, -2, 80, -80, -47, -27, 55, 57, -46, 34, 42, -24, 21, -70, 22, -58, -1, 61, -23, -29, -35, -9, 71, 103, 25}, + {-33, 56, -71, -7, 11, 24, 53, -39, 58, -19, -26, -14, 66, 33, -29, 38, -53, -23, -54, 79, -73, 121, 37, 23, -69, -61, -75, 39, 9, 82, -29, -39, -71, -64, -104, 20, 44, 30, 26, -30, 40, 33, 72, -32, 23, -64, 61, 68, 64, -37, 38, 16, -63, -4, -4, 88, -81, -21, -66, 53, -74, 51, 73, -77, 7, -41, -42, -16, -84, 61, -19, 17, -9, 103, -14, -87, -38, -39, -32, -79, 7, 34, 44, -30, -27, -54, -66, -32, 21, 52, -5, 55, 10, -73, 67, -7, 49, -43, 88, 61, -68, 14, 63, -69, 52, 23, 79, 83, -28, -56, -24, 26, 21, 81, 88, 56, 38, -50, -13, 87, 77, -10, -86, -89, 46, 9, -45, -6, -63, -11, -28, -48, -71, 4, 23, 51, 15, 7, -46, 43, 69, -59, -68, 45, -17, 44, 13, -88, -43, -52, -75, 16, -41, 31, -20, -28, 53, 11, -26, 32, -6, 11, -47, -16, -13, -10, -29, -82, 82, -44, 0, 53, 7, 49, -42, -41, -27, -31, 63, 28, -43, -91, -24, -53, -50, 31, 77, -32, 87, 32, 87, -68, -35, -48, -24, -95, -76, 28, 54, 62, -5, 29, -11, 71, -12, -27, -84, -77, 74, -27, 54, -60, 36, 19, 99, -27, 86, 12, -62, 13, 84, 63, 24, -22, 25, -64, -36, 4, -3, 96, 4, 19, 24, -79, -73, -4, 0, 11, -47, 56, -16, -35, -39, -47, -6, 10, -67, -60, -36, 42, 19, 59, -64, -44, 110, -1}, + {61, -83, 78, -48, -83, -65, -69, -90, 78, -18, -13, -22, -33, 8, -43, -3, 82, 40, -59, -17, 74, 57, -69, 79, -48, 15, 64, 66, 43, 16, 23, -11, -32, -6, -57, 12, -67, -62, 79, -15, 71, 20, -92, 61, -92, 67, -56, 70, -85, -29, 76, -43, -60, 30, 59, 53, -80, -5, 21, 12, -39, -36, 85, -71, -11, 63, 6, 9, -28, 61, 56, -17, -25, 99, 34, 1, -89, -1, 56, 3, -57, -65, 4, 0, -60, -39, 3, -49, -84, 73, -12, 15, 24, -92, 56, 66, -39, -7, -68, 7, 84, -75, 56, -83, -25, 76, -98, -21, 3, -50, -63, 75, 44, 50, -4, -75, -12, -39, 18, 46, -87, 17, 4, -60, -67, -86, -23, 80, -71, 19, 79, 86, -65, -69, 5, 26, 6, 50, -46, -16, 83, -101, -8, -53, -32, 92, -56, 54, 8, 49, 24, 54, -45, -23, 0, -60, -21, 68, -76, -77, 71, 70, -17, 69, -95, 14, 84, -10, 32, 62, 67, -4, -25, 84, 62, 55, -27, -55, -77, 37, -69, -87, -41, 82, 7, 87, -26, 53, 81, -58, 43, -64, -69, -66, -24, 30, -4, -57, 73, 53, 42, 10, -58, 14, 52, 33, -58, -60, 69, 84, 12, 33, -73, -19, 5, -9, 39, -47, -72, -16, -60, -73, -29, 10, 22, 53, -96, -28, -87, -12, 17, -79, -34, -29, 0, 60, 76, -49, 44, 42, 88, 69, -19, 29, -31, 15, 85, 43, 30, -91, 22, -32, -9, -50, 19, 15}, + {-10, 19, 23, 79, 18, 11, 49, 88, 34, 77, -8, -82, -64, -62, -11, -22, -32, 59, -22, 73, -13, 102, 77, 79, -40, 15, -7, 54, 4, 54, 35, -65, -77, 79, -76, 14, 82, 70, -17, -80, -32, -82, -34, -43, -79, -20, -52, 54, 109, 39, 10, 84, -21, 76, 65, -4, -29, -36, 31, -29, 46, -93, 98, 16, -31, -45, -57, -61, 69, -1, 63, 52, 49, -32, 30, -54, 63, -12, 55, -63, -54, -70, -61, -20, -9, -62, -64, -78, 48, -4, 20, 79, 69, 27, 59, 14, -12, 116, 82, -12, -38, -40, 55, -56, 29, -77, 68, -83, -15, -48, -58, 73, -59, 26, 69, 45, 10, -25, 6, 18, -69, -67, 42, 4, -26, 83, -78, 39, -80, -38, 45, 83, -60, -52, -67, -72, 50, -27, 85, 77, 81, -55, 36, 42, 4, -76, 38, 16, -68, -34, -66, 67, -73, 5, -37, -13, 90, -37, -11, 12, 7, -82, 30, -6, 6, -19, 70, -81, -42, 2, 53, -76, 40, 10, -72, -78, 84, 32, 55, -68, -55, -35, -36, 0, 48, 41, -71, -78, -40, -6, -13, -54, 11, -43, -43, -19, -6, -77, -47, 29, 62, 1, 85, -42, -3, 52, 32, -59, 15, -69, 8, -32, 42, -68, 88, 40, 14, -85, 4, 19, -83, -49, -79, 50, 87, -72, 110, 13, 10, 23, 65, -84, -35, 54, 18, 5, -38, 49, -53, -73, -24, 69, -39, -38, -83, 64, 9, 23, 54, -55, 84, -57, -72, -26, 68, -16}, + {-43, 89, -19, 46, 47, -26, 12, -55, 25, 17, -86, 7, 14, 70, 21, 30, -34, -19, 51, -48, 63, 12, 64, 16, -91, -73, -58, -73, 11, -37, 35, 40, -53, 58, -38, -20, -37, -33, 30, 22, -72, -34, -81, -29, -68, 51, 7, -71, -83, -78, -85, -82, -26, 70, 66, -28, 31, 6, -53, 87, 4, 11, -86, 54, 43, -57, -76, -52, -25, -29, 56, 29, 58, -46, 32, -66, -56, -36, -24, 12, -23, 48, -68, 86, -35, -62, -70, 44, 61, -34, -69, -4, 42, -66, 42, -63, 20, -24, -17, 21, 60, 4, 21, -20, 27, -15, 29, -63, 2, -53, 20, -60, 65, 55, -31, 59, -54, 68, 1, -68, 12, -71, -88, -69, -6, -46, 45, 70, 12, 8, 63, 73, -3, 30, -23, 70, -55, 53, -2, -71, 31, -4, -40, -84, -85, 62, -87, -88, -25, -37, -64, 33, 17, -77, 53, -89, -38, 18, 28, -63, 53, 18, 67, 36, 82, -4, 6, 12, -46, -62, 2, 34, -43, 59, -6, 28, 69, -49, 10, -43, 46, 90, 16, 89, -72, 22, 70, -13, 40, 49, -86, -81, -75, -9, -8, 41, -75, 9, -53, 58, -8, 11, -56, -4, 16, -27, -86, -30, 82, -38, 7, -13, 47, 76, -62, 65, 57, -85, 63, -36, 81, 86, 57, -36, 36, 40, 52, 75, 60, 85, -1, 41, -19, 88, -13, 71, 28, -44, 35, 60, 18, 7, 16, 69, -75, 72, -53, -9, 59, 28, -65, -73, 69, -26, 6, 6}, + {-30, 28, -14, -11, -55, 53, -50, 46, -21, 17, -51, 74, -79, 37, 97, 71, -26, -85, -103, 30, -16, 77, 67, 6, 24, -53, -20, 75, 7, -11, 7, 46, 51, -19, -23, 60, 86, -5, 28, 27, 40, -11, 18, 65, 1, 71, -77, -5, -28, 19, 9, -43, -25, 78, 56, -56, -50, 29, -85, -47, 20, -59, -44, 52, 40, 15, -11, -88, -38, 0, -16, 63, -72, 71, 61, -40, 27, 82, -95, -81, -21, 62, -10, 31, 45, -71, -20, 29, 63, 28, -8, 20, 4, -23, 77, -66, 24, 6, -93, 66, 15, -16, -57, 24, -33, 17, 83, -53, 17, -34, 11, 76, -20, -18, -61, -88, 41, 74, -73, 32, 52, -10, -14, -12, -57, 80, -24, -36, 75, 5, 25, -41, 3, 22, -38, 37, -19, 60, -37, 6, -9, -22, -66, 30, 45, 51, 44, -21, 64, -36, -39, 48, -49, -51, 12, 72, 48, -35, -5, 46, 24, -60, -76, 5, -17, 67, -39, 73, -7, -28, -44, 65, -40, -72, -22, 70, 1, -9, -62, -15, -61, 3, -19, 65, 90, 34, -32, -52, -77, -5, 2, 4, -2, 46, 40, 58, -63, -31, 45, -41, -14, -56, -82, 71, 61, 71, 14, -75, 36, -90, 44, -77, -96, -77, 88, 53, 72, -36, 21, 62, 29, 30, -66, 45, 31, 30, 13, 39, -59, -54, -25, 73, -56, 80, -49, 48, -39, -35, -39, -14, -19, -33, -86, 69, -2, 75, -19, -34, 31, 58, -8, -61, 61, -60, 114, 19}, + {20, 86, -41, -17, 18, 14, 46, -72, 43, 63, 5, -71, -107, -12, -73, 51, 26, -52, -80, 14, -25, -47, -33, -86, 51, -68, 84, 14, -44, 1, -31, -24, -20, -24, 24, 67, 64, 14, 95, -31, 16, 62, 55, 106, -26, 0, -42, 33, 67, -41, 87, 63, 83, 44, 1, -27, 16, 30, 82, -44, -49, -42, -42, -74, -38, -52, 22, 44, 80, 58, -43, -83, -87, 5, 69, 69, -85, 64, 2, -74, -4, 74, 5, -70, -33, -34, -37, -24, 11, 10, 65, 69, -58, -59, 6, -30, 31, -47, -1, 60, 52, 57, 59, -8, 85, 14, -13, -3, -21, 53, -35, 32, -60, -55, -2, 70, 23, -84, 29, -88, 75, 54, 14, -12, -82, 14, 15, -4, 51, -59, -35, 59, -61, 70, -36, -87, 66, 22, 51, -9, 22, -19, 59, -3, 35, -58, 29, 10, 29, -27, 13, -63, -52, 45, -20, 82, 51, -7, -81, 0, 88, -15, -55, -17, 10, 51, 76, 50, -68, 50, -69, 46, 45, 60, 60, -31, 16, -20, -62, 48, -65, 19, -53, -71, 29, 71, 16, -3, -51, 7, -20, 13, -52, 17, 37, -98, -2, -43, 58, 24, 61, 84, -13, -76, -88, 5, 38, 52, -25, -74, -24, 76, -99, 70, 65, 5, -22, -11, -42, 47, -3, -88, 88, 35, 37, -22, -79, 62, -63, 5, -82, 47, 35, 78, -21, 30, 0, -87, -3, 51, 85, -91, 39, 71, -29, -25, -63, 22, -32, -12, -29, 14, -62, -64, 21, -64}, + {12, -17, -81, 44, -59, 69, 28, -9, -21, -25, 1, -61, -68, -52, 12, -83, 42, 94, -9, -28, -34, -19, -68, -70, -12, 65, 71, 69, 46, -43, -48, 0, 59, -17, 35, 43, 63, -15, 39, 33, -26, 56, 16, -53, 9, -73, 46, 30, 6, -40, 40, -81, -77, 33, 55, -68, -17, 3, -30, -67, 9, 27, -67, -62, 78, 35, 46, 51, 82, -19, -38, 13, 88, 76, 15, -35, 84, -7, 30, -80, 75, 4, 30, -2, 11, 72, 57, -65, -61, 57, 0, 80, -51, 83, 1, 53, -79, 72, -24, 58, 45, -17, 8, 48, 11, -10, 51, 17, 35, -43, 88, 51, 66, -61, -100, 0, 36, 60, -86, 58, -76, -49, 66, 34, 79, -60, 64, 46, 28, -66, -55, -67, 34, 52, -56, -58, -3, 21, -61, 78, -10, 44, -80, 43, 24, -19, -81, -65, 75, -50, -21, 30, 74, 55, -58, -58, 0, -33, 69, -55, 46, -6, -72, 87, 0, 41, -29, -64, -9, 71, -50, 68, -74, -58, 30, 10, 75, -49, 54, -14, 77, -35, 43, -27, 56, 12, 11, -78, 78, 37, -12, -28, 41, 61, -60, 69, -87, 44, -11, -80, -23, -60, 58, 4, 3, -32, 50, -69, -56, 33, 2, -15, 18, 15, -26, 10, 6, 64, 63, 24, 19, -11, -36, 5, 16, -70, -15, -27, 6, 54, -33, 14, 84, -17, 17, 12, -28, 62, -66, 74, -84, -8, -71, 33, 46, -30, 24, -83, -32, 70, 33, -75, -60, 41, 36, -37}, + {-44, -75, 58, -51, 57, -72, 51, 30, 53, 6, 3, 25, 10, -27, -68, 17, -90, 4, 40, -41, 71, -48, 45, 50, 15, -56, 54, 30, -74, -94, -5, 19, -60, 65, -65, -11, -105, 23, -83, -51, 37, -70, 13, -46, 71, -5, 30, 23, 45, 57, -72, -42, -14, -74, -5, -82, 75, 36, -57, 68, 11, -4, -46, 81, -16, 67, 51, 40, 52, 53, 16, 54, -82, -48, -35, 51, -58, 68, -26, -59, -36, 91, 82, -2, 32, -8, -51, 44, -46, -73, 89, -31, 63, 11, -45, -57, 87, 60, -19, 51, -64, 31, 12, 15, -5, 8, -13, -45, -27, 98, 81, 3, -55, -8, 43, 70, 39, 31, 81, 71, -74, 39, -61, 23, -32, -37, 91, 30, 86, -44, 48, -39, 25, 65, 48, -1, -46, 52, 58, 90, 80, -72, 80, 56, 84, 1, 13, 20, -66, 12, -5, 27, 20, 47, 55, -28, 65, -70, -23, 29, -61, 94, 61, -40, 100, 68, 60, -30, 10, 8, -60, -55, -61, -46, -39, 63, -2, -58, -58, 51, 49, 3, -48, 26, -65, -24, 83, 6, 63, 47, -44, 72, 61, 90, 65, 89, 36, -5, -63, -90, -61, 66, 47, -14, 28, 51, 15, -82, 69, 69, 50, 86, -73, 40, -31, -26, 6, 45, -14, -47, -11, 56, -87, 15, -26, 66, 0, -16, 12, -29, -32, 11, 50, 18, -14, 49, -12, 71, -80, -34, 34, 61, 58, 56, 82, -22, 21, 2, 25, -42, -50, 89, -3, 48, -17, 91}, + {-53, -15, -2, -40, 83, 54, 0, -20, -65, -64, 11, 36, 69, 52, 83, -61, -65, 0, 15, -72, -79, 69, -67, 27, -4, 32, -61, -90, 6, 80, 83, 85, -28, 4, -19, -87, 1, 5, 18, 1, 2, 60, 39, -60, 42, -77, 47, 70, 67, 80, -70, -84, -57, 72, -77, 34, 55, -5, -28, 81, 59, 81, -37, -84, -49, 6, -82, 58, 49, -33, 65, -49, 34, -57, 56, 51, 66, 17, 86, -35, -57, -26, -34, -38, 77, 32, 72, -14, 83, 45, 48, -31, 0, 39, 42, 26, 79, 74, -44, -45, 46, 23, 41, -52, -27, -72, 35, 85, -37, -76, 0, -48, -64, -51, 77, -63, 60, -26, -76, -32, -24, 2, -5, 5, -8, -34, 40, 31, -12, -84, 76, -59, 29, -58, -76, 31, -8, -17, -83, -47, 41, 40, 23, -35, 36, -82, 12, 0, 11, 4, -65, 89, -24, 79, 84, -24, -10, 83, 11, 49, 36, 1, -71, 86, -71, -34, 32, 68, -78, -34, 15, -80, 1, 32, 28, -60, -53, -38, -47, -42, -21, 68, 35, 2, -54, -5, -10, -41, 58, -74, 52, -89, 7, -81, -32, 85, -89, -27, -68, -75, -86, 30, 3, -9, -41, -78, -42, -9, -32, 67, -47, 31, -85, -45, -45, -41, 75, -20, -13, -72, -78, -39, 32, -22, 33, -49, -80, 77, 82, -49, 83, 45, -82, -15, 43, -87, 45, 37, 60, 75, 45, -75, 29, 76, -14, 71, -76, -51, 83, 40, 20, -20, 60, -31, -5, -91}, + {-76, 62, 13, -30, 31, -8, 21, 83, 60, 62, -81, 24, 30, 9, -40, 27, 74, 16, -69, -66, -59, -63, -62, -62, -81, 46, 25, 21, -3, -34, 77, -35, 37, -48, -67, -80, 63, 76, 66, 88, -31, 41, 44, 51, -44, -21, -56, -76, 9, -75, -22, 1, 21, 54, 79, 21, 47, -85, -77, -71, -84, 87, 7, -41, 17, 28, 76, 4, 29, 36, -79, -12, 52, -59, -60, 66, 44, -21, 55, 77, -89, -33, -22, 57, 81, -42, -87, 65, 84, -68, -44, 13, -60, -38, 46, 33, 1, -4, -73, -76, 26, 64, -37, -23, -31, -4, 71, -86, -55, 6, -79, -71, 14, 71, -26, -61, -17, 54, 23, -17, 50, -50, 47, 60, 24, 68, 3, -54, -31, 64, -30, -75, 57, 57, 52, -22, -71, 6, -78, 57, -9, -11, 17, 73, -30, 70, -22, -59, 33, 38, -71, 31, 15, 19, -53, 10, -87, -27, 64, -37, 29, 68, 88, 61, -23, -45, 3, 29, 33, 22, -66, 0, -78, 27, 50, 72, 36, 40, -9, 15, 8, -79, -50, -21, -16, 13, -84, 70, 35, -27, -68, -52, -48, -35, -82, 88, 21, 77, 39, -34, -28, -58, 0, -74, -46, -71, 51, 68, 57, 62, -52, -50, 78, 65, 44, -24, -3, -38, -39, 61, 87, 20, 35, 68, -11, -28, -9, -74, -13, -28, 50, 87, -48, 41, 28, -57, 45, -60, -81, -69, 74, 18, -60, 13, -51, -12, 67, -26, 15, -77, -21, -51, 35, -58, -38, -20}, + {-78, -50, 47, 80, -89, -28, -50, 75, 9, 91, -84, -27, 68, 34, 53, -46, 13, 63, 70, 23, -55, -49, -63, 71, 76, 27, 80, -58, 35, -70, -11, 79, -25, 24, 43, 13, 19, 50, -108, -87, -21, -74, 90, 64, -74, 12, -15, 40, 42, 12, 46, 36, -53, 71, -55, 100, 41, 34, -23, -23, 41, -77, 36, 30, -7, 8, -41, -17, 81, -80, 58, 33, -80, -89, 76, 74, -55, 72, -53, -7, -12, 81, 20, -22, -69, 14, 11, -21, 86, 3, -9, 47, 43, 1, -39, -5, 18, 59, 6, -70, -10, -35, -3, -32, 57, 85, 99, 29, -29, 13, -73, -18, -80, -51, 60, 28, -48, 39, -24, 44, -8, -62, 6, 40, 4, -73, -50, 3, 40, -69, 19, 12, -77, 53, -73, -35, -48, -38, 25, 11, 35, 34, -70, 33, 13, -71, 79, -10, 22, -28, -81, -34, -13, 81, -31, -9, -62, 57, -2, -45, 27, 13, -23, 18, 6, 17, 13, 32, 30, -61, 61, -81, 38, 13, 88, -52, -84, -76, -38, 0, 94, 76, -18, 50, -29, -78, 15, -17, 25, 30, 57, 11, -5, -45, -25, 69, 23, -20, 77, 14, -66, 19, 54, -20, 6, 65, -40, -74, 74, -2, -30, -60, 23, 94, 54, -58, -76, -75, 83, -87, 42, 71, -45, -19, -63, -36, 22, -60, 100, -62, -67, 14, -75, 44, -27, 58, 21, 7, 63, 47, 34, 16, -60, 41, 52, 6, 22, -23, 21, 99, 13, -58, -49, 37, -78, 39}, + {55, 73, 19, 66, -3, 62, 15, 18, -79, -51, -39, -81, -34, -63, 50, 9, -76, 70, -63, -21, -2, -13, -7, -80, 35, -78, -78, -11, -73, 46, -18, -13, 0, -81, 84, -70, -81, -77, -4, -68, -17, 28, 62, 56, -37, 10, -72, 24, 67, 33, -71, 35, -63, -68, -55, 29, 27, -37, -19, 54, 52, 27, -75, -81, -37, 41, 39, -12, 0, -26, 72, -72, -36, -54, 79, -47, 32, -46, -87, 54, -23, 45, -9, 55, 87, -51, 15, -62, -84, -69, 85, 87, 2, 27, -4, -24, -52, -62, 74, 31, -10, -31, -71, 5, 4, -9, -6, -6, 88, -16, 46, -3, -44, 24, -64, -47, 39, 62, 73, 58, 28, -46, -36, 83, 61, -62, -56, -13, 75, -14, 75, -21, -2, 54, 76, 2, 40, -37, -58, -35, 76, 88, -42, -58, 44, 14, 47, 17, -64, 50, -71, 6, -41, 37, 88, -57, 40, 80, -3, -64, 39, -41, 19, 14, -71, -74, 55, 77, 27, -46, 67, 89, 31, 70, 44, 9, 22, -76, 75, -43, -46, -23, 12, -40, 55, 57, -2, -13, 64, 15, 34, -22, -74, -3, 2, -19, 16, -59, -69, -17, 29, -47, -33, -4, 63, 2, 28, 57, 72, -59, -52, 17, -34, -12, -31, -37, -88, 20, -65, -38, 35, 12, -49, -67, 54, -7, -52, 49, 52, -51, -67, 50, -39, -60, 86, 19, -17, 34, -54, -28, 14, -82, -82, -3, 75, 21, 44, -38, -74, -27, -46, -79, -16, -58, -68, 60}, + {-76, 74, -29, 47, -80, -77, -82, -76, -55, -53, 89, -84, -79, -8, 21, 60, 76, 24, -16, -19, 47, 61, -3, 38, 54, -29, 27, -34, 60, 35, 73, -88, 70, 43, -89, -12, 75, -76, 46, -15, -89, 66, 20, 80, 43, 4, -75, -81, -74, -18, 59, -18, 66, -20, -1, -49, 69, -33, -71, 90, 90, 80, -87, 53, -62, 92, -61, 19, 79, -36, 64, -75, -3, 59, -29, -71, -5, 26, -74, 33, -8, -68, 47, -65, -31, 26, 24, 84, 24, -11, 32, -28, -4, 28, 63, -61, 80, 40, 0, -89, 75, -30, 77, 19, 6, -60, -14, -69, -45, 12, 58, 5, -33, 18, 8, 13, -47, -26, 45, -12, -78, 27, -15, 1, -38, -61, -37, 60, -1, 9, -29, 64, 9, 94, 19, -59, 38, -95, -84, -57, -3, -104, 67, -80, 21, 2, 3, 87, -51, 10, 47, -73, -4, -65, 55, 86, 58, 48, 56, -28, -9, 26, 88, -18, -18, 29, -68, 36, 40, -59, -74, -45, 58, 20, 11, -86, -9, 60, 93, 33, 77, -79, 81, 61, -39, -46, -24, 22, -57, 84, -66, 75, -38, 17, -23, 42, -21, -17, -88, -45, 49, -13, -57, 73, 44, -57, 47, 20, 10, -64, -32, -32, -21, -12, 113, -19, -46, 80, 88, -24, 18, 15, 20, 60, 92, -80, 63, -86, 91, 82, -96, 9, -75, 18, 36, 71, -77, 5, -75, 91, -35, 69, -71, -2, 93, 10, 14, 8, 13, -47, -57, 17, -36, 51, -62, -31}, + {9, 38, 82, -37, 9, -4, 15, -19, -51, -58, 7, -88, -55, 11, -10, 77, 39, 70, -75, 26, -40, 12, -21, -46, -1, -35, -9, -71, 9, 54, -74, -46, 32, -3, 76, -28, -5, -18, -82, 53, 60, -43, -28, -91, 6, -17, -43, -38, -17, -27, 39, 11, -62, -44, 40, 35, -32, 52, 15, -58, -8, 17, 40, 28, -72, -26, -24, -56, -83, 60, -46, 33, 13, -37, 61, 83, 52, -6, -30, 34, 70, 11, -64, 7, 75, -47, 59, 31, -64, -35, 77, -18, 34, -17, 48, 11, -77, -15, 12, 10, -64, -76, 87, 18, 32, -85, -12, -54, -39, 64, 19, 92, 17, 68, 73, 58, -74, -90, 14, -25, -7, -33, 70, -21, 78, -25, -46, -31, -6, -58, 54, 72, 68, -68, -63, -15, -19, -74, 82, -86, -33, 52, -40, 56, 58, -18, -85, -3, -85, -62, 1, 42, 28, -34, -20, -83, 78, -8, 2, 39, -31, -1, 60, 26, 87, -13, -28, -49, -33, 83, 25, -48, -20, 15, -86, 12, -25, -35, -18, 65, -43, -3, -51, 84, 18, -29, 62, -20, -12, -55, 87, 9, 18, -80, 35, -84, -80, 36, 51, 46, -29, -67, -14, 52, 77, -69, -64, 53, 4, 70, -67, 4, 100, 61, -44, 8, -5, 15, 72, -34, 83, -59, 37, -17, 24, 12, 48, 45, 50, -14, -83, -44, -48, 77, -78, 79, 76, -83, 59, -39, 87, -60, -44, -81, 25, -5, -86, 22, -6, -30, 64, -85, 79, 6, 34, 76}, + {36, 12, -77, 0, -83, -7, -33, 31, -4, 66, -43, 1, -8, -53, 7, 68, 81, -60, -36, -50, 66, -7, -39, -23, -32, -79, 60, -59, 61, 4, 71, -1, 88, -8, -11, -14, 8, -83, -16, -2, -9, -36, -57, 71, -47, 6, -74, -47, 21, -70, -1, -71, -86, 66, -29, 56, 16, -4, -46, -49, 26, 23, -44, -3, 34, -63, -27, 25, 66, -60, 77, 62, 79, 50, 76, 5, -72, 29, -60, -72, -7, -63, -5, -74, 13, 87, 23, 35, -8, 0, 88, 1, 50, -8, -32, -63, -70, -14, 30, -81, 56, -29, -53, -26, -59, -74, 34, -59, 70, -39, -32, -40, 81, -8, -40, -30, 74, -40, 38, -78, 4, -71, 39, 40, 35, -67, 18, -39, 84, 63, -86, -65, -60, -23, 14, -35, 31, 55, -59, -12, 23, 24, -72, 22, -65, 25, -16, 21, 75, 54, -9, 36, 6, 65, -44, -7, 58, 63, 88, 49, -22, 35, 47, 30, -3, 74, -15, -50, 37, 33, -34, -70, -39, -41, 12, -12, -84, -82, -25, 8, -23, 15, -36, -62, -11, -58, -44, -41, 20, -39, 54, -51, -8, 15, -13, 8, -64, -20, -52, -48, 54, 86, -32, 38, 0, 15, -74, -32, 53, -78, -77, 80, 47, -55, 80, -74, 15, 4, -73, 70, 15, 89, -70, 9, 49, 37, -79, 44, -15, -6, 53, 56, 48, 84, -39, 29, -34, -46, 89, -19, -58, 42, -45, 79, -11, 83, -51, -69, 28, 54, -52, 71, 84, 18, 23, -57}, + {-72, -56, 18, -39, -9, 28, 40, 29, -12, -54, -54, -8, -73, -75, 46, -27, 0, 92, 54, 75, 113, 49, -16, -69, -77, 80, -43, 36, -63, 1, -46, 49, 75, 24, -102, 58, -35, 26, 9, -61, 104, 49, -79, 55, -37, 11, 86, -18, -61, -68, -40, -71, 82, -20, -50, 6, -56, 18, 47, -25, 67, -81, -75, 22, 61, 86, -77, -8, 41, -63, 22, 28, -53, -41, 92, 80, -9, -33, -83, 19, -69, -81, 61, 12, 5, -85, 44, -44, 4, 14, 29, 45, 7, -1, -34, 10, 40, 54, 89, -1, 51, 112, 7, 100, -47, -75, -78, -60, -82, 28, -8, -65, 46, -71, -8, 82, 73, 6, -68, -31, -53, 35, -47, 43, 19, 73, -64, 44, -34, -83, -89, 72, 16, -46, -86, -87, 16, 64, -76, -58, 29, -78, 5, -40, 26, 63, -69, 40, 56, -4, -58, 50, -69, 78, 14, -61, -69, -88, 24, -89, 31, -66, -45, 34, 8, 72, -18, -13, -69, -51, -68, -66, -33, -10, -59, 57, 30, 76, 43, 81, 104, -19, -77, 71, 87, 78, 21, -33, -28, -45, -44, -52, -23, 53, 67, 107, 28, -71, -38, -72, 51, 32, 15, -56, -25, 85, -64, -38, 11, 57, -71, 10, -62, -39, 7, 77, -72, -32, 42, 15, -68, 17, -85, 65, -78, -1, 22, 67, -34, 117, -28, -76, -35, -55, -37, 44, -84, 51, -76, -56, 12, -91, -31, -24, 11, -25, 34, 19, -40, 43, 0, -82, 75, 53, 68, 64}, + {74, -25, 20, -84, -41, 82, -84, -28, 18, -72, -55, -12, -27, -7, 43, -11, -23, -63, -81, 67, -61, -8, 88, -41, -58, 4, -84, 42, 11, 33, 14, 16, -33, 47, 46, -3, -65, -82, 30, 81, 31, -57, 72, 66, -67, -18, -26, 12, 119, -9, 24, 88, -81, -22, -56, 6, -25, 52, 79, -34, 6, -14, 88, 57, -52, 77, 71, 57, 73, -44, -85, -2, 18, -54, 30, 33, -82, 11, -6, 3, -21, 52, -48, 82, -66, -6, 38, 48, 32, 3, 60, 31, -54, -18, -53, 54, -13, -86, -80, 15, 56, 23, -1, 9, -57, -17, -70, -68, 80, -61, -48, 6, -7, -85, 47, -18, 29, 34, -37, -56, -43, 72, -59, 43, -57, 20, 16, 33, 77, 83, 15, 7, -22, 31, -61, 43, 75, 11, 32, 60, -29, 66, -46, 9, 76, -24, -69, -10, 42, 52, -43, -72, -50, -63, -86, -86, 52, 16, -64, 14, -47, -66, 64, -21, 40, -58, -9, 57, 30, 63, 52, 41, 87, 12, -34, -15, 87, -19, -26, 1, 52, -14, 32, 27, 60, -29, -23, -21, -30, -34, -48, 43, -35, -35, 58, -60, 56, -3, 82, -19, -68, 53, 70, 58, -37, 4, -62, -1, -55, -86, -29, 4, 59, 54, 3, -18, -88, 54, 38, -26, 8, 16, 59, 47, -65, -72, 44, -17, 9, 4, 29, -85, 36, 49, 73, -50, -69, -11, 92, -76, -25, -10, -25, -59, -56, -72, -68, -23, -86, 57, 58, 7, 31, 40, -31, -12}, + {71, -43, -15, 58, -68, -53, 16, 23, -24, -56, -2, 82, 11, 77, 68, 57, -65, 91, 88, 26, -57, -101, 9, -76, 53, -52, -28, -3, -19, 45, -16, 30, -40, -32, 44, 41, -102, -49, 21, -40, 16, 20, -2, 3, -30, 69, -64, -44, 15, -41, 7, -36, -76, 10, -23, 60, 15, -59, 54, -51, -62, 7, -43, 78, -37, -18, -46, -74, -24, 100, -76, -36, -47, -31, -56, 32, 17, -22, -36, -84, -9, -57, -84, 40, -42, 102, -25, -8, 34, 57, 63, 84, 15, 101, -45, 52, -53, 29, 7, 75, 64, 9, 84, 71, -55, -26, 34, 89, -31, 53, 79, -89, -62, -28, -44, 43, -21, 68, 23, -15, -8, 84, 82, -28, 22, -43, 29, 52, -40, 5, 89, 36, -30, 36, -53, -25, -62, -14, 7, 26, -11, 62, -83, 23, 83, 43, 44, -3, 9, -47, -66, 71, -39, 40, -64, 76, -34, 55, 40, -43, 91, 97, -24, 61, 90, 93, -22, 66, 19, 31, 66, 60, 37, -71, 57, 56, -34, 62, -41, 79, -86, -97, -39, 6, 26, 68, -9, 1, 47, 62, 27, -71, -31, 25, 14, 34, -47, -10, -14, 43, 43, 29, -18, 4, 39, -47, 38, -35, 40, 12, 80, 93, -77, 10, -93, 72, 72, 80, -26, 14, 62, 9, 42, 20, -26, -9, 3, -44, 88, -52, -63, -68, 48, 80, 18, 35, 37, 104, -34, 49, -26, -101, 106, 2, 90, -13, 32, -83, -26, 41, -46, -9, 5, -27, -86, -25}, + {24, -32, -28, 28, -95, 27, -63, 3, -79, 76, -39, 69, 47, -18, 17, -53, 59, 21, -21, 23, 2, 66, 10, 8, -69, 45, 31, 78, -81, 33, 76, -65, -65, 73, -50, 16, 92, 72, -13, 69, 4, 45, -75, 48, -18, 11, 19, 47, 42, 23, -35, 7, -51, 39, -65, 22, 43, 77, 16, -24, -18, -60, -53, 0, 59, -22, 45, -67, 16, 49, 36, 22, -91, 17, -67, -68, 49, -20, -63, -42, -12, -7, -56, 64, 46, 44, 76, -63, 80, -49, 46, 53, 88, 59, 12, -78, -16, 99, 69, 23, -82, -87, 84, 66, 39, -53, -69, 5, 14, 2, -69, 76, 86, -96, -19, -35, 19, -16, 30, 53, 13, -65, 33, -85, -36, 65, -55, 33, 57, 50, 59, 87, -36, -11, 38, 25, -21, -66, -79, -86, -70, -6, 74, 44, -51, 9, -10, 0, -47, 42, -35, 85, 52, -28, -15, 5, -56, -16, 69, 66, 80, -19, -76, 79, -30, 25, 71, -34, -66, -22, -42, -46, -59, -30, 56, 34, -75, -66, 69, -60, -9, 65, 67, -10, -12, 68, -21, -2, 60, -4, 25, -43, 32, 35, -9, -44, -65, 55, -12, 36, -63, 55, -68, 82, -35, 49, -11, 70, 12, 5, -39, 75, -44, 79, -8, -80, -87, 56, -26, -9, 34, -59, -55, 88, -57, 88, 55, 51, 2, 16, 5, 64, -22, -29, -45, -50, 16, 70, 66, -67, -76, -8, -89, -48, 32, 47, 2, -62, -85, -59, 63, -50, 72, -28, 22, 35}, + {59, -25, 50, 74, -38, 69, -1, 46, 21, -33, 19, -83, -44, 18, -86, -18, 54, 99, 18, 69, 44, 35, -73, 25, 69, 30, 9, -38, -80, 29, -22, -28, -51, -26, -67, -1, 12, 35, 10, -20, 116, 68, -51, 47, -42, -19, -15, 78, 57, -50, -57, -57, 55, 89, 35, -30, -36, 81, -12, -6, -64, 62, -9, -27, -44, -78, -41, 72, 33, 81, 41, -64, -53, 10, 15, 39, -4, -76, -34, 29, 83, 19, 47, -12, -88, 49, -26, 18, -68, 56, 42, 32, -73, -84, 54, 18, 77, -36, -88, -83, 84, -77, 47, -72, -22, -50, -62, 1, 27, -1, 1, 57, -19, 64, 48, -45, 89, -4, -68, -16, -50, 16, -33, 62, 37, -58, 53, -44, -34, -8, 78, 64, 58, 46, 24, -19, 13, 22, 56, -65, 69, -85, 15, -43, 51, -16, -53, 68, -39, -43, -12, -1, 61, -19, -4, 39, -58, -20, 57, 77, -76, -41, -53, 4, -77, 16, -82, 71, 15, 36, -66, 66, 18, 79, -79, 25, -26, 68, 30, -18, 97, 78, 50, -4, 19, -4, -67, 78, -27, 83, -23, 63, -42, -13, 56, 90, -50, 28, 61, -76, 59, -66, -34, -21, -72, -5, 34, -75, 6, -11, 80, 83, 79, -94, 87, -30, -54, 60, -22, 80, -30, 67, 58, -3, -42, -11, 114, 14, -40, -56, 74, 16, -80, -58, -11, 50, 78, -91, 39, -1, -22, -44, -61, 1, -52, 31, -75, -11, 13, 36, 82, 11, 24, -36, 80, 5}, + {33, -22, 61, -44, -40, 27, 19, 71, 15, 6, 76, 70, 30, -81, -80, -36, 1, -19, -44, 13, -42, -69, -47, 49, 39, 78, 79, -61, 9, 0, 66, -87, 34, -62, -46, 24, 11, -82, -35, -88, -85, 72, -51, 38, 0, 34, -30, 21, -76, 36, 37, -13, 65, -57, -55, 79, -53, 68, -59, 70, -17, 26, 72, 2, 12, -78, -17, -20, 24, 3, -76, 57, -38, 46, -71, 76, 62, -68, 36, 30, -10, -49, 51, -27, -4, 55, 74, 46, 56, 83, -67, -47, -5, 84, -24, -41, 19, -71, -64, 53, -60, -80, 35, -29, -70, 89, 2, -8, 76, -52, 41, 20, -42, -78, 87, 24, 17, -88, 33, 82, -42, 48, -66, -10, 59, -44, 21, -28, 8, -79, -71, 21, -15, 44, 72, -25, 23, -36, -22, 75, -69, 0, 81, -36, -53, 81, -7, -3, -79, -17, -49, -78, 8, -17, 3, 74, -82, 39, 62, 35, -36, 85, 55, -80, -60, 11, -30, 17, 82, 52, -63, -48, -31, -3, -20, -31, -51, -41, 17, -77, -68, -26, -51, -72, -43, -24, 82, -44, 65, 63, -30, -83, -35, 18, 22, -7, -60, 82, -51, 5, 16, 52, -89, 35, -36, -17, -56, -30, 34, -33, -75, -78, -3, -79, -30, 32, 33, 9, -10, 4, -30, -74, -39, -74, 66, 48, 29, 33, 32, -77, -39, 81, 75, 59, -58, 10, -2, -52, -3, -27, 45, -57, 22, -50, -73, 64, 81, -55, -67, -37, 72, 1, -66, -47, -60, 74}, + {-62, -35, -43, 10, -72, -19, -54, 65, -5, -5, 55, 4, 30, -42, 71, 18, 14, 62, -21, -53, 2, -65, 43, -6, 93, -18, -10, 46, -36, -20, -66, -55, 65, -25, 18, -19, 19, -69, 87, -59, 59, 50, -64, -53, 59, -11, -19, -80, 52, -31, 76, -50, -30, -39, 53, -32, 43, -59, 101, 67, 13, 70, 61, -50, 71, -1, -66, 22, 31, -57, -29, 22, -50, 26, 33, -46, 35, -19, 64, 65, -63, 37, 4, 60, 77, -62, -14, 41, -6, 81, -21, 72, -20, -63, 117, 42, -78, 74, -13, -73, -101, 58, -63, -13, 85, -25, 68, -10, 47, -20, 33, -69, 77, 70, 66, 5, 29, -42, 74, -54, 50, 56, 75, 70, -70, -4, -62, 75, -15, -3, 59, -85, 24, -73, -21, 3, 91, 11, 17, 70, 63, -37, -36, 5, 34, -80, -71, -50, -7, -60, -8, 32, 81, -8, -50, 22, 61, 2, -68, 19, -66, 26, 30, 63, 60, -9, 15, -89, 58, 68, 22, 87, 83, -77, 11, -55, 87, 65, 48, -70, 60, 109, 14, -52, 17, -76, 12, 29, 85, -70, 85, -36, 86, 71, 37, 95, -43, -49, 0, 98, 31, 36, 33, -31, 41, 20, 45, 32, -59, 0, 17, -68, 30, -24, -2, 21, -40, -9, 78, -24, 30, -40, 69, -41, 81, -51, 43, -26, 41, -1, -42, -34, 82, -24, 31, -84, -83, 62, -33, 11, 16, -59, 34, 76, -51, -32, -86, -34, 49, 58, 15, 9, -51, -13, -65, -71}, + {70, 57, -26, 7, 37, -26, 23, 19, 0, 60, 34, 21, -105, 33, 3, 6, -56, -48, 75, 57, -24, 4, 41, -70, 12, -5, -81, -31, 22, 19, -26, 91, 18, 17, 84, 78, -44, 15, -35, 10, -55, -3, 0, -17, 26, -37, -54, -40, 70, 88, 93, 35, -72, 45, -14, 10, 20, 82, 30, -51, 71, -31, -41, -38, -80, -35, 28, -10, 73, 2, -19, -74, -56, -10, 37, -22, -78, 13, 21, -10, -28, 91, 12, -87, 27, -39, 12, -60, 56, 79, 34, 96, -51, 19, -55, 67, 56, 66, 61, -29, 67, 68, -6, 4, 47, 35, -2, 65, -69, 73, 87, 76, 69, 93, 88, -58, -63, -4, 67, 42, 72, -5, 27, 0, -28, 41, 86, 66, 93, -1, 3, 53, 24, -62, -41, -37, -60, -27, 67, 72, 7, 56, 29, -58, -48, -57, 3, -47, -46, 4, -44, 8, -19, 79, -45, 54, 60, 38, -28, -52, 33, 4, 58, -77, 39, 94, -33, -13, -17, -27, -25, -61, -47, -53, -73, -85, -55, 6, 7, -17, -47, -24, -44, 26, 69, -31, 57, -66, -52, 51, 14, -65, -7, -34, 100, -76, -37, 46, 50, -80, 50, -75, -27, -5, -85, -5, -35, -23, -31, 70, 89, -3, 23, -11, -66, 9, -65, -84, -36, 85, 18, 61, -72, -42, 48, -3, 68, 34, 67, 23, 69, -5, 67, -30, -35, -70, 8, -14, -1, -46, 76, 60, -35, 55, 37, 85, 49, 45, -21, -64, -36, 17, -85, -51, -39, 35}, + {-17, 68, -60, 25, 44, -32, 18, -36, -40, -5, -4, -75, -19, -61, -62, 80, 77, -35, -25, -49, -46, -38, -8, -28, 54, 17, -67, -47, 78, -77, -74, -1, 46, -51, 36, 23, -41, 70, 83, 58, -72, 2, -58, 30, 4, -46, -28, 46, 31, 69, 23, 30, 58, 62, -89, 82, 20, -75, -94, 46, -42, -86, -30, 43, -51, 8, -57, -85, 73, 60, 12, -45, 35, -24, -8, -49, -77, -39, 49, -34, 59, 12, 10, 6, -47, 82, -68, -52, 29, -40, -91, -87, -72, 74, 8, 25, -89, 98, -46, 28, 57, -46, -37, -54, 86, -57, -54, 71, 40, 31, -31, 40, -47, -17, 84, -66, 15, 52, 86, 14, -12, -66, -63, 48, -37, -17, -67, 10, 35, -31, -55, -57, -1, 80, 72, 72, -21, -8, -3, 0, -57, 11, -34, 65, 35, -47, 49, -24, -49, 50, -72, 83, -84, 80, 64, 15, -35, -81, 6, -2, -4, -81, -80, 62, -58, 76, 34, 14, -18, 38, -54, 94, 27, -70, -73, -9, -3, 38, -49, 11, 54, -34, 69, 108, -62, -71, 39, 65, 77, 74, 84, -3, -14, -9, -17, 30, 65, -18, -42, 100, 89, -64, -65, -74, 46, -65, -63, -4, 64, 53, 16, 21, -66, 46, 72, 22, 82, 39, 5, -23, -8, 81, -38, 81, 33, -51, -22, -77, 2, -57, 39, 3, -13, -36, -20, -6, -2, -68, -12, -44, 20, -45, 54, 15, -14, 32, 16, 79, 40, 28, -52, 57, -37, -20, 97, -7}, + {-17, 70, 74, 79, 7, -72, 34, 89, 64, 41, -63, -17, -8, -52, 71, -31, -22, 51, 78, 46, 35, 60, 16, -83, 21, -88, 28, 52, 18, -64, 28, 90, -43, -26, 28, -86, -63, -78, 79, -41, -24, 55, 66, 51, 41, -88, -35, 89, 77, -61, 18, 80, 30, 76, 3, 24, 22, -58, -67, 65, 30, -49, 47, 62, -20, 88, 66, -34, -32, 51, -39, 58, -78, -10, 58, 46, 65, -31, -34, 71, 61, 32, -14, -35, -65, -44, -61, -30, 76, -8, -72, -27, 4, 29, -84, 80, -57, 44, 91, 29, 10, 17, 30, 50, -75, -45, 81, 48, 59, 76, -73, 61, -8, -49, -24, -33, -48, 11, 29, 25, 85, 40, -68, -42, -18, 17, -16, -36, 51, 56, -46, 51, -46, 74, 65, -82, 8, 35, 22, -76, 12, -3, 7, 83, -84, -79, -78, -6, -20, -33, 80, -36, -50, -82, -7, -70, 91, -51, -83, 41, 26, 15, -44, 80, -49, -87, 21, -49, -73, -86, -82, -29, 13, -6, -11, -62, 25, -25, -26, 70, -15, 34, 73, 12, -25, -38, -74, -19, 11, 55, -35, 55, -40, -46, -51, -11, 12, 53, -35, 30, 12, -2, 10, -52, 72, -66, -67, -62, 38, 24, -67, -66, -51, -33, 50, -50, 10, 72, -89, -70, -25, 85, -19, 88, 35, -43, 53, 3, -83, 28, 49, -57, 7, 50, 72, -66, -22, -57, 49, -53, 73, -64, -56, -9, -7, -39, -43, 69, 21, -24, -14, 53, -51, 38, 37, -76}, + {-76, -89, -78, 87, -39, 53, 55, 64, -26, 41, 80, -20, 47, 42, -6, -11, -58, 88, -57, -88, -56, 68, -45, 45, -91, 21, -56, -44, 58, 85, 70, 71, -60, -10, 21, -61, -70, 15, -36, -81, -85, -52, -27, 23, 27, 74, 19, -19, 8, -53, 46, 19, -58, -24, 27, -21, 42, -78, -32, -2, -8, 11, 26, -44, -18, 51, 48, -33, 16, -7, 84, 78, -3, -40, -70, 50, -36, 12, 4, -8, 67, -85, 66, -69, -29, -41, 60, 42, 13, 86, -84, 59, 64, -83, -3, -24, -1, 85, -44, -88, 8, 40, 15, -51, 42, -36, -29, -42, 26, -16, -70, -75, 64, -82, 33, -77, -40, -57, -78, 31, 35, 34, 68, -52, 49, -20, -53, 16, 77, 40, 29, -44, -35, 43, -38, -34, -30, -77, 69, -81, 71, -45, 48, -6, 25, -37, -49, -9, 80, 52, -86, -84, -20, -81, -21, -56, -7, -83, 41, -68, -91, 9, 34, 7, -91, -7, 57, -55, 72, 26, 4, -64, -83, 52, 66, 56, 31, 70, 86, -47, 84, -78, -41, -69, -36, 68, -12, -79, -65, -54, -7, -53, 63, -59, -55, 23, 73, -16, 22, 6, -4, -5, -65, 40, 47, 61, -27, 50, -33, 67, 14, 12, -77, -80, 86, 27, -24, 76, -72, -56, 23, -65, 20, 9, 17, 61, 40, 33, 15, 20, -35, -42, 25, -27, 28, 23, -20, 50, -8, -86, 66, 87, -37, -70, -85, 43, 32, 60, 60, 81, -27, -25, -19, -57, 1, 10}, + {41, -41, 10, -51, 71, 14, 58, 88, -2, 29, -7, -5, 53, 69, -28, -13, 66, 36, -70, -80, -22, -57, -42, 83, -51, 52, 62, 46, -18, 61, 68, -80, -8, -80, 9, -5, 68, -41, 68, 34, -63, -40, 11, 58, 68, 13, -40, -89, 13, 6, -58, 24, -66, -45, -87, 61, 14, -31, -28, 62, -84, 39, 15, -31, 45, -45, -57, -76, -64, 59, 55, -89, -44, -55, 17, 58, 86, -38, 62, 82, -2, -76, 22, -5, -29, 48, 32, 25, -72, -89, -48, -69, -37, -75, 39, -70, -49, 56, 10, 77, -73, -68, -68, -70, 74, 40, 76, 8, 24, 55, 0, -36, -83, -74, 59, 29, -75, 74, 53, -75, 62, 61, 70, -48, 54, -83, 5, -60, -43, -84, -30, -39, -45, -39, 51, 20, -77, 56, 56, 25, -73, -70, -47, -46, -45, -45, 36, 67, 28, -75, -89, 13, 2, 76, 80, -74, -63, 80, 44, 64, 60, 27, -83, 57, -10, -42, -46, 14, -4, 7, 16, 69, -82, -29, -15, -71, -65, 61, -20, -83, 1, -29, -52, -60, 64, 71, -38, 36, 3, 24, 23, -41, -30, 20, 49, 82, 61, 15, -49, 48, -87, -56, 31, -76, 31, 26, -32, -31, -58, -68, 77, -84, 9, -25, 47, 35, -2, -4, -28, 64, 32, -48, -75, -50, -43, 4, -70, -45, 41, 34, 12, 38, -62, -78, -32, -40, 43, -50, -76, 65, -76, -28, -56, -36, -46, -27, -71, 74, 2, 6, 14, 13, 67, 87, 59, -77}, + {-33, 82, 74, 47, 6, -83, 26, -79, -40, -34, 3, 56, -19, -32, -31, 88, 5, 83, 60, -1, -22, 50, 19, 50, -43, 74, 86, -67, -27, -39, -24, -21, -8, 84, 14, -51, 52, 29, -24, -26, 89, 88, -43, 54, -83, -53, -69, -1, -24, -78, -44, -68, -50, -27, -41, 30, -77, -71, 13, 50, 60, 19, 50, -47, 21, 18, -43, -77, 95, 68, -22, 45, -49, -16, 75, -69, 11, -70, 78, 81, -18, -52, -53, -43, 90, 47, 14, -61, 83, -21, 75, -9, -4, 5, -28, 87, -83, 31, -20, -73, 35, -29, 76, 0, 87, 47, -34, 12, 66, -68, -4, -50, -65, 69, -57, 55, -81, 64, 81, 4, -58, -44, 86, -72, -12, -81, 77, 24, -76, 83, -16, 64, -19, 40, 61, 20, -14, -43, -65, -80, -65, -32, 60, 90, -12, -94, 87, 48, -15, 4, 76, 13, -44, -3, 38, 93, 97, -68, -62, -87, -76, 24, 46, 2, -52, -39, -2, 56, -44, 90, 63, 91, -65, 73, -7, -4, -54, -72, 75, -46, -52, -6, -12, -3, 37, -14, 17, -1, 35, 70, -75, -52, -75, 21, 4, 53, -65, -57, 37, 13, 80, 34, -19, -80, -74, -9, 46, 64, -72, 41, 79, -64, 32, -78, 83, -81, 8, 48, -29, 73, 79, -55, -72, 33, 81, -76, 70, -9, -44, 96, 74, 7, -30, 9, -41, 27, 64, -53, 40, -21, -37, -8, 8, -61, -19, -13, -48, 33, -15, -42, -64, 39, -62, -55, 100, -75}, + {-51, 75, 72, 57, -75, -65, -53, -79, -26, 35, 86, 16, -19, 9, -56, 61, 27, 41, 18, -39, -69, 42, -2, 30, -24, 6, -11, 26, 32, 78, 43, 77, 28, -74, 72, 17, 89, -51, 17, 20, -78, -25, 37, -38, -12, 15, -36, 2, -29, 75, -74, 12, 69, 68, 29, -35, 31, 30, 10, 52, -20, -27, 88, 59, -32, -24, -18, 16, 18, -84, 23, -66, -78, 66, 51, 12, -65, -70, -53, 13, 8, 46, -54, 58, -69, -12, -31, -50, 61, 26, 86, -58, -79, -82, -67, -31, -55, -13, -81, -57, -36, 13, 76, -60, -3, 4, -57, -4, -41, -29, 39, -63, 21, -2, -6, 50, -29, -42, -55, 26, 32, 85, 10, -87, 50, 73, -86, -88, 27, 70, -50, -20, 5, -26, -18, 30, 87, -84, -12, 46, -25, -85, -16, -6, -7, 70, -8, -19, 62, -40, 12, -36, 79, 54, 39, 26, 60, -87, -9, 77, 54, -53, 70, 33, 87, -15, 49, -35, -43, -74, -83, -44, 41, 31, -83, 27, 0, 28, -52, -72, 65, -53, 7, -42, 5, -68, 73, 32, -34, -30, -80, 39, -77, 21, -39, 23, -55, 27, 79, -3, 18, -4, 32, -63, 4, -50, 37, -28, 26, 60, -13, -75, 38, -66, 42, 0, -66, -39, 37, 11, 64, -22, 49, -62, 88, 50, 51, -19, -40, -5, -64, -82, -5, 83, 60, -70, 62, -61, -18, 30, 33, 77, -46, 16, -37, 29, 87, 15, 55, -58, -42, -61, 74, -27, 5, -69}, + {-64, -25, 37, -29, 35, -36, -64, 38, -28, -11, 63, 47, 3, 40, 75, -29, -24, -34, -58, -71, -23, -80, -86, -23, -26, -22, -30, 36, 0, 35, -46, -19, 89, 23, -43, 43, 71, -74, -84, 2, -95, 15, 97, -90, -78, 45, 46, 86, -65, 6, -56, -5, -3, -71, 85, -63, -16, -85, 37, -54, -75, -83, 16, 30, 26, 27, -7, 25, 77, 22, 26, 38, 46, 26, -31, 88, -36, -67, -29, -74, -24, 25, -15, 89, 64, 42, -49, -5, -28, -7, 70, -9, -77, -80, 30, 75, 11, -14, -72, 74, -13, 20, 78, -33, 57, -21, -20, -43, -21, -1, -15, 18, 46, 84, 77, 16, 73, -13, 23, 72, 13, -30, -40, -48, -86, 43, 67, 65, 96, -68, -34, 73, -69, -1, -33, -45, 83, -5, -48, 10, 12, 63, 46, -63, -14, -83, 77, -8, 7, -65, -30, -55, -54, -81, -59, 3, -28, 44, 33, -65, -65, 62, -80, -15, -16, -3, 89, 43, -79, -52, 57, 82, -34, -34, 61, 10, 22, 51, 71, -67, -65, -62, 83, -11, 29, 60, 62, 39, -81, -47, -72, -14, -6, -6, -30, -53, -25, -50, 67, -34, -67, 17, 82, 78, 41, 22, 90, -25, -76, 28, 21, 63, -9, -85, -26, 11, 30, 29, 31, 33, -81, 14, -4, 28, -73, -24, 53, 20, 81, 26, 7, 59, 56, 85, 27, -51, -64, -46, 45, -12, -70, 77, 46, 69, 2, 49, -54, 10, 1, 42, -51, -43, -47, 80, -106, 64}, + {46, -16, 67, -73, -6, -9, 12, 4, 23, -15, 30, 68, -6, -4, -28, 69, 35, -52, 10, 66, 34, 56, -51, 71, 38, -79, -42, -35, 26, -7, 53, -17, -58, -2, 42, -87, 23, -68, 45, -86, -17, -82, 70, 79, 30, 62, 49, 0, -87, 34, 23, 36, 32, -56, -3, -49, -55, -30, 27, 42, -54, -73, 19, 12, -87, -10, -47, -57, 12, 49, -28, 84, -45, 80, 43, 15, -79, 19, -73, 61, 47, 65, 40, 71, 0, -78, 29, 57, 68, 52, -85, 83, 50, 53, 81, -31, -20, 25, -5, -53, 75, 5, 69, -24, -5, -76, 51, 66, 3, -90, 80, 67, 67, 63, -12, -56, -25, -58, -29, 46, 22, -1, 58, -70, 72, 88, 65, 6, 12, -82, 5, 43, 70, -36, 44, 29, 51, -5, 55, -71, 69, -19, 40, 61, -79, 98, -33, 63, 42, 61, 78, -67, 19, -2, -71, 77, 54, -51, 84, 71, -12, 29, -45, 32, -17, -62, 81, -27, 84, 79, 16, 7, 57, 69, 75, 56, 15, 45, -21, -80, 33, 34, -2, 86, 79, 59, 75, 35, 70, 28, -10, 20, -25, 12, -68, 14, -4, 19, 7, 4, 39, 86, 45, 82, 71, 81, 25, 66, -37, -1, 4, 55, 31, -43, -70, -74, -62, 55, -12, 61, 43, -74, -25, 19, -55, 40, 52, 11, -87, -69, 50, -74, -81, -81, 55, 37, -51, 47, -8, -1, -2, -52, 16, -50, 76, 29, 12, 22, -6, 14, 100, 18, 13, -68, 16, 17}, + {-81, -26, 11, 40, -4, 23, -49, 61, -78, 49, -28, 86, 100, 60, -77, -43, 88, 6, -91, 3, 54, -14, 42, -80, -84, 63, -33, 34, 5, -33, -12, -29, -12, 41, 29, -61, -32, 52, 82, -7, -84, -2, -17, 40, -74, -46, 8, 63, 71, -72, 83, -56, 87, 50, 84, -52, 74, -39, -64, 11, 9, -78, 66, 20, -10, -92, -81, -88, 34, 54, 17, 43, -74, 54, -25, -5, -17, 79, 45, -74, -7, 27, -48, 68, -64, -37, 41, -53, 43, 40, 2, 51, 66, -47, 106, -12, 80, 14, -57, 63, -99, 96, -46, -54, -12, 7, -27, 17, -74, -32, -13, 4, 73, 0, -80, 63, -68, -70, 34, -33, 73, -61, -13, 71, 74, 78, -14, -60, -41, -87, -12, 45, -97, -60, -73, 58, 60, 47, 46, -93, -37, 44, -52, 57, 2, 56, 64, 79, 70, 65, -35, -48, 59, -78, -22, -12, 50, -77, 77, -64, 75, -73, 80, 63, -2, -90, -50, 37, 85, 72, -45, 47, -26, 49, -30, -15, -31, -65, 56, -23, 71, -10, -7, 43, 51, -44, 4, 4, -60, -54, -41, -21, -49, -65, 86, 7, 79, -65, 6, 11, -44, 73, -38, 29, -33, -51, -84, 4, 54, 57, -79, -2, 49, -31, 109, -40, 11, 45, -79, -30, 78, -11, 74, -61, 33, 48, -28, -30, -19, -17, 54, -48, -17, -1, 86, 6, 51, -43, 66, 1, 30, -20, 56, 27, -43, 49, -63, 82, -32, 15, 72, 73, 6, -37, 113, 6}, + {50, 71, 4, 80, -27, -100, -28, 21, 60, 65, 7, 48, 103, -12, -37, 13, 2, -10, -52, -34, -55, -32, 60, 34, -91, 60, -84, 25, 22, 43, -2, 60, -72, -41, -9, -39, -13, 29, 92, 38, 55, 85, 28, 59, -84, 30, 67, -8, -26, -54, -30, -7, 53, -26, 61, -58, -4, 1, -40, -70, -49, 87, -84, 70, -82, 23, 86, -23, -64, -90, -51, 81, 22, -16, -18, -5, 39, -34, 44, 20, 26, -13, -88, 80, -15, -6, -66, 43, 32, -9, 13, -62, -76, 50, -48, -54, 6, -67, 26, 25, 90, 80, 29, -46, -52, -39, -15, 21, -22, -92, -79, -93, -21, -4, 19, 46, 71, 62, -68, -51, 21, -22, -5, -23, 84, -26, -11, 59, -75, -84, 39, -6, 4, 88, -67, 51, 63, 32, 49, 45, 13, 35, 65, 44, -56, 22, 71, -85, 37, 47, -51, 26, -18, -68, 80, 82, 41, -47, -56, -85, 73, -79, -73, 50, 76, -86, -47, 11, 16, 0, 86, 14, 90, -64, 76, -29, 64, -49, 64, -58, -72, 31, 88, 16, -26, -20, -28, -3, -8, 37, -68, -69, 9, 106, -35, -40, -5, -81, -50, -72, -32, -49, -28, 6, -2, 46, -69, 63, -47, -26, -12, 78, -76, 47, 25, -2, -57, 15, -5, 10, -68, 33, 68, -77, -19, 75, -51, -88, 16, -62, -92, -89, -54, 80, -80, -35, 76, 22, 81, 34, -18, -33, -38, -48, -43, -6, 80, 74, 25, 79, 39, 72, 71, 32, 23, 40}, + {46, 59, -86, 21, 72, -26, -9, -88, 2, 68, 0, -72, 26, 51, 26, 81, -103, 15, 37, -46, -8, -119, -2, -58, 23, -2, 82, 7, -52, -36, -48, 18, -4, 61, 24, -81, 42, -39, 28, 70, -30, 16, 50, -82, -59, -84, -15, -34, 55, 52, 65, -59, -51, -41, -34, 31, 44, -4, -80, -28, -18, 22, -96, -53, -90, -84, 78, -72, 47, 0, -75, 23, 45, 16, -18, 65, -67, -53, 82, -78, -13, -53, 6, 30, 41, 22, 56, 55, 63, -48, 38, -33, -60, -68, -39, 50, 60, 21, -79, -60, 76, -23, 76, 60, 21, -26, -1, -47, 66, -37, 81, -40, -61, 55, 23, 37, -69, 44, 87, 95, 84, -48, -16, 44, -16, 34, 5, -75, -76, 38, 33, 23, 75, 10, -30, -49, 37, 91, 45, 35, 1, -30, -66, 81, -44, 28, 74, -64, -77, 70, 9, -69, -11, 76, 22, -49, -17, 34, -36, 7, 67, -49, 36, 17, 37, -44, -77, 83, -36, -22, -72, -45, 62, -19, -62, -53, -47, 88, -14, 74, 86, 4, 48, 7, -33, -26, -43, 12, 6, -14, -27, 69, 60, -22, -73, -48, -77, -79, -87, -43, 7, 79, 75, 79, -52, -17, 52, 3, -19, 22, 88, -2, -3, 3, 9, 0, -9, 28, 28, 57, 2, -26, 21, -43, 66, 18, -29, -73, -79, -87, 2, -58, -2, -33, 69, 69, -47, 71, 17, -96, 43, 59, -16, 75, 22, 7, -35, 4, -21, 44, 39, 29, -72, -25, -85, 85}, + {45, -74, -22, 70, -17, 61, 0, 21, -42, 7, 61, 28, -50, 74, -2, -27, -8, -3, 2, 0, -70, 90, -21, 59, 82, 66, 49, -37, 51, -85, 10, 49, 75, 4, 11, -14, 44, -73, 82, -16, 75, 21, -15, 47, 70, 1, 62, 44, -82, -56, 51, -2, 38, -43, 70, -60, -45, -69, -59, 67, -94, 28, 80, -91, 63, 17, -69, 8, -53, 28, -47, 41, -70, 51, 3, -11, 39, -73, 31, 17, 65, -32, -31, 64, 82, -75, -58, -56, -67, 56, 64, 28, 68, -43, -25, -42, -56, 84, 10, -66, 49, -51, 82, -6, 63, -61, 33, 58, 44, 36, -5, 35, -66, -23, -15, -82, 61, -27, 88, 61, 41, -12, -27, 13, -17, 74, -73, 0, -5, 33, -83, 22, -76, -38, -57, 19, -38, 15, 48, 29, -50, -42, 82, 5, -90, 32, 39, 79, 1, -11, -18, -77, 41, -6, -68, 71, 11, -71, 82, -41, 26, 51, -1, -57, -30, -60, 24, 68, 2, 16, -6, -41, 99, -47, -76, 22, -15, 79, 86, 51, 63, -93, 29, 29, -53, 19, -4, 18, -65, -14, -52, 9, 75, -104, -88, 20, -34, 11, 0, -50, 52, 5, -52, -8, 62, 67, -61, -17, 40, 62, -44, 63, -22, -57, 82, 36, -39, 4, -44, 16, 88, -29, -85, -82, 20, 19, 31, 53, 50, 42, -23, 21, -46, 33, 25, 77, -22, 13, -84, 1, 21, -3, -78, 25, 39, -22, -52, 2, -12, -20, -67, 23, -69, 82, 44, -11}, + {19, 39, -66, 54, -22, 83, -67, -5, 35, -10, 4, 0, 16, 18, -70, 36, -113, -51, 111, -7, -92, -27, -40, -61, -17, 35, 66, 65, -76, 63, 102, -16, 16, -73, 54, 60, -74, 52, 70, -88, 30, -88, 41, 85, -84, 73, -4, -33, 19, -57, -44, 34, 76, -29, -36, -48, 30, 96, -12, 16, 75, 58, 9, 9, 53, 20, 47, 69, -55, 25, 1, 81, -72, -120, -60, 31, 90, 50, -71, 45, 64, 12, 24, -44, -65, 65, -30, -32, 54, -68, -65, 47, 50, 71, -28, -30, 66, -97, 19, -54, -16, -3, 64, 8, -54, 80, -21, -43, 1, -12, -73, -63, 50, -14, 4, -11, 77, 51, -5, -75, 76, -46, 78, -60, -64, 89, 38, -69, -12, 39, 101, -61, -19, 45, 54, 38, 26, 23, 49, 4, 28, 82, 59, -16, -61, -51, -69, 98, -45, 10, -6, 77, 24, -4, -13, 23, -64, -78, 87, 59, 25, 34, 3, 45, 92, 2, -16, 0, 27, 91, -46, 51, 68, -58, -61, 24, -64, 94, 4, -6, -99, -8, 50, -29, 46, -84, 75, 83, 79, 1, -54, 78, 29, -15, 46, -17, -7, 92, -59, 16, -59, 72, 16, -34, 84, -39, 47, -68, -75, -45, 50, 21, -59, 39, 9, -12, 71, 26, -6, 79, -18, -30, -9, 49, -18, 79, -41, 83, 45, -25, 2, 50, 49, -39, 72, -31, 82, 61, 35, -43, -22, -38, 48, 15, 91, 78, 56, -24, -17, -18, -52, -20, 43, 95, -96, -22}, + {36, -74, 63, 62, -57, 9, -82, -17, 3, -13, -5, -8, -27, 59, -15, -67, -47, 70, 75, -30, -48, -52, -45, 48, 63, -88, -28, -69, 37, -45, 86, -29, -78, 16, 55, -9, -89, -67, 81, -11, 5, 82, 38, 77, 30, -19, -3, -10, 48, -61, 8, 25, 39, 61, -25, -34, -9, 60, -28, 59, 58, -3, 63, -76, 1, -49, -64, -69, 65, 22, -25, 13, 78, 58, 75, 28, -81, -83, -76, -35, 78, 77, 27, 44, 18, 33, 16, -23, -32, 78, -57, 85, 79, 74, -34, -14, -71, -64, 69, 15, 26, -32, 11, -55, 14, -23, -12, -72, -10, -75, -30, 11, 8, -55, 12, -86, 48, -77, -26, 74, -8, 28, 18, -65, 68, 84, 71, 0, 10, 3, -41, 56, 47, -76, 29, -29, -20, -6, 10, 4, 47, 7, 23, 36, -50, 5, 4, 28, -69, -34, -48, -71, 7, 41, 62, 18, 87, 15, -17, 80, 84, -46, -31, -17, -80, 64, -66, -46, -81, 27, -34, 13, -76, -20, -13, 82, -11, 74, 73, -54, 46, -29, -75, -41, -41, 39, -40, 85, -31, -81, 73, -78, -36, -80, 2, -28, -67, -27, -48, -69, -50, -51, 39, -13, 59, -26, -31, 73, 34, -63, 40, 76, 36, -65, 10, -10, -85, -55, 28, 13, -48, 64, 73, -44, -83, 54, 7, -71, -40, -4, -39, -24, -20, 61, 81, 39, 13, -27, 50, 45, 44, 74, -15, 82, -34, 51, 51, -14, 72, -75, 62, 22, -51, -29, -31, -64}, + {-52, -58, 10, -52, -18, -22, 6, 73, -65, -15, -49, 62, 64, 75, -81, 60, -36, 4, 52, 50, 64, -76, -10, 89, 48, -38, -6, 33, 15, -21, -32, -87, -21, 7, -33, -57, 29, -14, -74, -28, -65, 34, -29, 65, 16, -80, 47, 34, 69, -1, 7, 46, 1, 21, -1, -17, 43, -73, -19, -8, 86, 58, -58, -68, 73, 34, 44, -59, 26, 34, 58, -39, -1, -52, 3, -2, -22, -55, 21, 3, -20, -21, 35, 70, -35, -44, -70, -74, -49, 73, -45, 68, 9, 26, -24, -59, -4, -4, -73, 18, -2, 46, -13, -30, -87, -74, -24, 33, 67, -58, -12, -30, -70, 26, -72, -4, -69, -2, 37, -49, -80, -18, -41, -23, 61, 19, 45, 39, 78, 39, -84, -39, 61, -42, -38, 4, -59, 6, 58, 23, 26, -16, -76, -24, -4, 72, 47, -61, -7, -40, -40, -12, -61, 83, 54, -20, 3, -27, 75, 75, 50, 79, -12, -37, 70, -78, -12, -71, -42, -3, -49, -38, -88, -76, -10, -34, -61, 41, -77, 25, -78, -34, 71, -73, -47, 47, -19, -62, -32, -24, -83, 30, 79, 39, -61, 22, 86, -61, -76, -39, 53, 69, 65, -22, 41, 13, -82, 30, -2, 65, -41, -57, -79, -74, 69, -67, -13, 66, 5, -37, 53, -39, 11, 39, 83, 54, -54, 54, 79, -1, -8, 24, -43, 24, -12, -35, -54, 48, 62, 54, -28, -27, -41, -50, -3, -84, 38, -54, 56, 53, 10, 66, -40, 81, -64, 66}, + {14, 7, 71, -9, -58, 57, -78, -6, 20, -13, -83, 83, 31, 69, 71, -76, 74, -41, 1, -52, -53, 22, 28, -18, -34, -56, -86, 24, 28, 62, -56, 59, -26, 40, -33, 64, -62, 14, -1, 36, -63, -34, 71, 58, -54, 28, -64, -74, 70, 50, -89, -52, 44, 29, 17, -10, 42, -85, 18, -64, -68, 68, -4, -49, 31, 17, -25, 30, -46, -11, 59, -19, 36, 56, -28, 2, 63, 48, -10, 21, -37, -49, 81, 68, -65, -20, -92, 74, 35, 7, 41, -26, 67, -72, 0, 20, 18, -88, 0, 49, 38, 62, 31, -51, 41, 16, -13, -25, -83, -8, 73, -42, -45, 3, 70, 63, 70, 78, -63, -54, -61, -89, -31, 34, 1, 15, 68, -62, -96, -82, 81, -74, 18, -69, -71, -48, 39, 53, -41, -3, -81, -60, 89, -18, -83, 69, -35, 23, -15, -81, 65, 57, 25, 46, 12, 41, 16, -73, -64, -77, 78, -31, -48, -7, -40, 56, -81, -15, -72, -50, 29, 15, 34, 0, 66, 11, -54, 68, 8, -11, -23, 23, 45, 47, -34, -26, 83, -91, 19, 33, -33, -89, -23, 51, 70, 1, 0, 41, 25, 73, -21, 82, -76, 67, -30, -77, -28, -85, -73, 62, 88, -17, 88, -55, -80, -63, 42, 81, 65, 9, 45, -56, -15, 30, 29, 33, 5, -81, 33, -14, 61, 70, 17, 78, -77, 75, -20, 0, 20, 72, 54, -92, 58, 13, 11, 61, 11, -16, 49, -93, -46, -24, 88, 37, 1, -24}, + {-56, 39, -19, -67, -72, 76, -4, 71, -73, 88, -76, -3, -16, 76, 36, -13, 57, -77, 87, -29, -26, 32, -42, 62, 56, -89, -58, 43, 8, 68, -23, -72, -87, -9, 65, 76, 47, -67, -48, 54, 9, -3, 58, 57, 57, 66, -25, -52, 48, 81, -16, -8, 28, 59, 69, 27, 39, 49, -75, 86, -30, -56, 20, 13, -23, -27, 14, 75, -45, 31, 54, -37, -62, 40, 27, 2, -86, 22, 9, -70, -21, 47, -29, 27, 11, -56, 18, -10, -42, -66, -71, 30, -79, 83, 60, -89, 43, 55, -5, -58, 28, -37, 19, 21, 51, 58, -72, -25, 68, -45, -55, 82, -76, 33, -83, 32, 77, 57, 35, -27, -26, 22, -22, 4, -65, 31, 58, -28, -77, 28, -27, 82, -1, -53, -11, -57, -55, -1, 25, 85, -80, 32, 57, -16, -31, 17, -55, -34, -48, -31, 84, 20, -31, 76, -59, 45, 4, 51, 46, 80, -21, -36, -15, -51, -17, 0, 53, 62, 62, -50, 48, 60, 9, -62, 72, 17, 46, -14, -66, -26, 88, -18, 18, -79, 69, 34, 26, -58, -50, -74, 39, -30, -37, -26, 77, 25, 2, 51, -87, -74, 85, -32, -77, -40, 75, 42, -52, -12, 86, 51, 11, -57, -87, 21, -87, -58, 50, -2, -26, -2, -66, 41, 61, -23, 11, -76, -11, 36, 23, -82, 5, -28, -3, -68, -87, -86, -56, 40, 53, -21, 7, 70, -85, 64, 77, 32, -64, 19, 53, -59, 57, 43, 76, -29, -85, 86}, + {-87, 53, 15, 88, -60, -44, 86, 10, 31, -16, -31, -41, -41, 25, -23, -43, -7, -55, -29, 89, 50, -35, 30, -57, 78, 20, 81, -32, -50, -42, -65, 59, 72, -12, 86, -72, -44, -36, -23, 59, 68, 18, -32, 92, 77, -6, -5, 23, -70, -47, 13, -39, -2, -12, 77, -9, -77, 50, 34, -11, -16, -18, -40, 9, -33, 84, 85, -10, -55, 7, -60, 60, 86, 69, 49, -76, -1, 86, 60, 36, -73, -28, -49, 66, 14, 29, 43, 0, -72, -68, -35, -31, 62, -61, 56, -60, -60, -28, -64, 39, -4, -57, 0, -16, 73, -67, 41, 93, -34, -76, -63, 56, -38, 26, 10, 64, -86, 43, 9, -61, 93, -13, 40, 86, 52, -63, -68, 25, 0, 81, -41, -52, 6, -31, -31, 45, 71, 3, 76, 6, 82, -20, -17, -32, -19, 15, 68, 73, -33, 31, 30, 67, 19, 66, 41, 57, 79, -17, -74, -71, -37, 45, 87, 24, 62, 10, 38, 48, 46, -26, 58, -41, -78, -63, 10, -77, 7, -24, -14, 94, -71, 93, 53, -65, 25, -74, 64, 68, 45, -12, -38, 1, -46, -102, 49, -52, 30, -24, 87, -9, 39, -13, 66, -27, 88, -45, 5, -31, 61, -10, -57, 78, 56, -78, 67, 19, -54, 16, -12, 73, -55, -23, 36, 47, 86, -35, 78, 48, 28, 30, 80, -22, 0, -31, 11, -54, -55, 32, 92, -37, 55, -48, -62, -32, -2, -81, 48, 19, -58, -39, -58, -75, 21, 20, -68, -33}, + {-59, 74, 57, 43, -64, -109, 50, 28, 45, 65, 71, 69, 82, 31, -44, -52, -46, 33, -57, -22, -21, -83, 14, -56, -73, -22, 36, 12, 84, -50, 0, -53, 9, -24, -90, 32, -56, 2, 81, 12, 12, 22, 62, 46, -7, -31, -11, 62, 52, 39, -50, -35, -6, 3, -81, 28, -18, -5, -90, -91, 7, -12, -38, 37, 84, 9, 77, -83, 18, -45, 6, 41, 55, 3, -8, -72, 67, 72, 69, 56, -41, -5, -6, -46, 81, 53, 15, 6, -10, -46, 61, -93, -61, -46, 37, -37, -56, 88, 54, 54, -21, 7, 19, -11, 54, 29, 66, 39, 43, 40, 20, 68, 64, 77, -47, 24, -75, 43, -88, -9, 13, 76, -64, 23, 49, 41, -35, -83, -80, 63, -71, -24, -40, -15, 37, 75, 2, -83, 45, -55, -18, -81, 81, 60, -30, -63, 42, 61, -20, 75, -30, -33, -41, -44, -32, 36, -24, 73, -25, -57, 24, -57, 83, -74, 64, -8, 25, 44, 52, 31, 26, -30, -83, 30, 71, 10, 39, -6, 50, 81, -3, -12, -78, -59, 61, 36, -43, 18, -22, 99, -13, 57, 3, -94, 67, -20, -59, 36, -3, -79, 26, -72, -28, 27, 61, -97, -39, -41, -75, -63, 76, -70, -17, -7, 79, 1, -23, 9, -21, 33, -72, -75, -30, 37, 57, 1, 25, 11, -65, 62, 55, 31, 18, -70, -5, -56, 1, 32, 4, 65, 8, 30, 2, -87, 57, -8, 32, 25, -33, -15, -52, -62, -78, 29, 20, 15}, + {-9, -61, -14, -19, -31, -75, -12, -73, -63, -45, -67, 54, 97, -74, -75, -5, 65, -86, -57, -56, 4, -85, 43, -74, 52, -92, 66, -73, 9, 12, 47, -97, 11, 41, 21, -3, 45, 81, -17, 33, -32, -74, 50, -20, -7, 65, 66, 29, 57, 24, 38, -31, -60, -42, 44, -41, 76, -81, -97, 9, -92, 50, -15, 77, 53, 58, 18, -63, 76, 11, -37, -42, 75, -71, 50, 85, 6, 24, 62, -23, -65, 67, -81, 83, 47, -72, 71, 33, -83, 40, -25, 3, 38, 38, -24, 6, -77, -82, 58, -16, -84, 55, -76, 58, -41, 33, 13, 23, -71, 58, 51, -71, 6, 30, 67, -35, 73, 20, -43, 82, -43, -82, -88, 6, 42, 77, 34, 56, -32, -41, -10, -12, -55, 107, -81, -28, 66, -32, -10, -24, 56, -55, -7, -52, 49, 68, -23, -74, -38, -62, -40, -21, 40, 22, -34, -45, 50, 21, -49, -80, 35, 28, 78, -32, -82, 76, 3, -80, 40, -77, 37, 59, 50, 22, -56, 60, -88, 55, 58, -5, 77, -39, 62, 14, 25, -82, 19, -5, -53, -36, -69, 11, -32, 59, 2, -79, 33, 23, 84, -4, -73, 84, 7, 33, -88, -42, 67, -64, -66, 35, -2, 31, 3, 73, 47, 76, 55, 50, 16, 83, 88, 59, 11, 1, -19, 17, 68, -15, 65, 44, -1, -53, 75, -69, 44, -15, -43, -56, 29, -61, -14, 21, -71, -93, -60, 48, -79, 83, -53, 50, -86, -27, -8, -4, -19, -73}, + {37, 63, -56, 13, -16, 74, 8, -44, 63, 81, -69, 55, -51, -48, -70, 45, 18, 51, 27, -11, 39, -58, 12, 61, 1, -37, -32, 59, -43, -50, -60, 75, -23, -18, 32, -80, 97, -40, 42, -8, 31, -1, -78, 61, 28, -68, 72, -26, 32, -85, -84, 27, 77, -65, -38, 58, 47, 85, -74, -34, -67, 75, -9, 74, 51, 49, -84, 27, -93, 55, 12, -63, -35, -65, 37, 19, -61, -56, 3, 2, 26, -8, 80, 30, 30, -8, -34, -75, 29, -76, 13, 71, 66, -52, 35, 33, -13, 90, -9, 28, 35, 98, -17, 41, -84, 8, -35, -42, -4, 52, -11, -7, -62, 69, 85, 72, -5, 47, 55, -28, -26, 30, -41, 9, -31, 12, -56, 7, 52, -77, -11, -36, 8, 41, -28, 88, 14, -63, 31, -28, -35, -76, -14, -61, -47, 7, 38, 60, -10, 39, -62, -24, 88, -81, -40, 63, 54, 71, 32, 89, 30, -55, -57, -2, 29, -25, 76, 72, 11, 2, -18, -5, -15, 50, -71, -55, 95, -44, -2, 0, 33, -54, 19, 88, 37, 62, 46, 43, 79, 102, 29, -55, 46, -65, 69, 24, -51, -73, -24, 36, 33, -34, -72, -7, 3, -56, -80, 58, 27, 34, 62, -81, -73, -35, -19, 17, 36, -66, -56, -25, 76, -35, 40, 71, 6, 26, 42, 76, 80, -14, 50, 41, 85, 82, -34, -68, -67, -51, -80, -6, -21, -26, 5, -53, 52, 54, -4, -17, 21, -31, -30, 84, 45, 35, 12, 2}, + {27, 85, -62, -67, -114, 46, 41, 49, -48, 66, 56, 29, -112, 18, 81, 77, -40, -35, 17, -88, 43, -96, -44, 87, -77, 29, 57, 82, -52, -74, 35, 95, 68, -38, -2, 55, -74, -46, 31, 31, -9, 53, 27, 36, -53, -82, 56, 41, -107, 62, 20, -3, 73, 64, 17, 77, -42, 35, 42, -71, 79, -3, 0, 80, 62, -45, -36, -37, -82, 18, 1, -11, 64, -74, 10, -2, -63, -49, -71, 78, 11, -11, 63, -83, -33, -59, -74, -43, 6, 34, -43, 76, 45, 49, 11, 27, -6, 47, 25, -17, -95, 75, -78, -17, 40, 8, 71, 26, 41, -80, 56, -90, -69, 43, 25, 36, -70, 89, -44, 18, 92, -63, 73, -66, 15, -16, 68, 54, 80, 81, 89, 66, -5, 51, 39, -42, 27, 6, 13, 91, 88, 77, -17, 12, 1, -43, 25, 19, -3, 28, -46, -43, -59, -11, 82, -75, -24, 6, 21, -6, -73, -61, -31, 31, 38, -39, 27, 7, 75, 75, 26, -62, -38, 23, 89, -3, -63, 59, -65, 29, -36, -110, 19, 36, -52, -2, -90, 67, 28, -66, 49, 28, -87, -74, -55, 7, -30, 88, 85, 88, -82, 49, -43, -25, 57, -69, 79, -67, 85, 50, -14, 27, 13, -25, 28, 8, 13, -50, -80, 54, 57, 91, -85, -21, -57, -61, -38, 15, -22, -31, 36, -64, -89, 36, 1, -43, -13, -43, 13, 19, 37, -98, 81, -20, 89, -49, 62, 87, -47, 28, 38, 29, 31, -73, -17, -63}, + {30, 15, -88, -3, -23, -8, 68, 27, -78, -81, -62, -47, -75, -62, -36, -60, -16, 39, -75, -78, 46, -25, 21, -19, 70, -25, 88, 17, 46, 33, 25, -13, -33, 66, -59, 45, 73, 85, 17, -44, -57, -33, -32, 38, 0, 63, -37, 9, 27, -2, -76, 19, 84, 69, -57, 11, 6, 17, 19, 7, 75, 56, -1, -16, 23, -54, 11, -28, -37, 52, -30, -69, -89, 3, 39, 71, -72, -78, -14, 61, -50, 45, 27, 74, 74, 10, -32, 32, -54, -18, -9, -23, 16, -8, 13, -73, -55, -34, 3, 46, -14, -75, -44, -50, 36, 32, 73, -72, -34, 81, 59, -18, 14, -49, -49, -51, -69, -28, -32, 19, -86, 40, 61, 31, -10, 50, 36, -29, 7, 31, 36, 89, -50, -88, -57, 42, -82, -9, -30, 66, -33, -72, -39, -51, 1, -66, -64, 37, -62, 64, 12, 20, -1, 58, -49, 64, 45, 39, -87, -48, -73, -23, 69, -87, -55, -40, 40, 51, 23, 21, -84, -5, -48, 46, 34, 50, -34, 12, -68, 77, -32, 19, 30, -88, 3, 28, -9, -3, -84, -74, -25, 12, 8, 57, -72, -7, -64, -54, 28, 18, -65, 6, 4, 60, -30, 18, -86, -81, 83, 25, -11, 18, -66, -79, -24, -70, -22, -52, -48, 50, 26, -77, -40, -7, -54, -17, 11, 36, 59, 55, 85, 24, 37, 10, 66, -88, -85, -90, -39, -63, 8, -20, 43, 62, 51, 22, -86, -3, 22, 13, 61, 9, -23, 28, 66, 39}, + {62, -45, 48, 24, -70, 0, -45, -8, -52, 53, -82, -57, -3, -55, -29, -21, 50, 95, -104, -14, -46, 6, 60, -33, 26, -51, 29, -7, -75, 54, 62, -92, -10, 69, 18, 78, -4, 81, 91, 6, 45, -51, -26, -29, -54, 59, 26, -23, -27, 10, -9, -43, 14, -46, -22, -21, -60, -40, -27, 66, 52, 30, 43, 29, 86, 28, -67, -47, 90, -31, 87, 70, -60, 86, -9, -80, 51, -29, -58, -79, -9, -1, -18, 15, 67, -55, -53, -72, 31, 25, -49, -34, 20, 17, -11, 71, 20, -69, -11, -24, -63, -31, -70, 63, 20, 42, 51, 20, 85, -67, 24, 66, -8, 31, 6, -44, 61, -82, -78, 80, -63, -50, 59, -7, 70, 86, -10, -2, -108, -70, -74, -91, 64, 21, 15, -77, 36, -99, -52, -72, 87, 24, -86, 46, -37, -9, 75, -21, 69, -92, -13, 34, -62, -75, -7, 87, -11, 44, -26, -52, -40, -21, -64, 22, -35, 18, 17, 47, -31, 31, 72, -48, -57, -4, 1, 86, -19, 71, 0, -72, -59, -59, 33, 27, 66, 79, 8, 78, 53, -52, -48, 13, -51, 16, 78, -67, -16, -46, 88, -39, 53, 5, -29, -5, 85, -45, 52, -43, 19, -14, 21, -93, -90, -19, 12, -31, -60, 64, -34, -63, 15, -47, -6, 10, 88, 56, -50, 56, 64, 46, 13, 62, -31, 14, 65, 34, 6, 62, 34, 37, 41, 70, 2, 35, -26, -51, -77, 13, 7, 78, 95, 60, 33, 41, 56, 26}, + {3, -54, -39, 78, -25, -19, 84, 63, 20, -72, 5, 60, 12, -3, 76, -14, 13, -6, -6, -62, -45, -52, -32, -71, 76, -57, -36, -30, -82, -24, -35, 61, 54, 83, -24, 30, -86, -71, 79, -25, 61, -15, 22, 39, 20, -5, -78, -48, 34, -50, -33, 8, 60, -12, -29, -64, 32, -20, -20, 21, -87, 51, -41, -5, -50, 39, -9, 29, -75, -66, 42, -17, 22, 80, 19, -39, 68, 19, 8, 81, -56, -89, 42, -63, -64, -14, 64, -53, 60, 82, -40, 8, 84, 87, -45, 47, 21, 34, 27, -23, -83, 85, -15, -13, -21, 71, -61, -72, 41, -17, -21, -65, 26, -73, 43, -85, 81, -78, -49, 61, 83, -12, -61, -65, 54, 82, 49, -58, -4, 21, -59, -1, -86, -66, -77, 80, -23, 81, 6, 18, 69, -85, 1, 31, 49, 44, 3, -46, 4, -42, 73, -20, 52, 70, -34, -53, 86, 27, -15, -26, -11, 11, 83, 54, -68, 79, 64, -37, 31, 29, -6, 86, -80, -49, -6, -89, -76, 18, 17, 4, 49, 5, -64, -84, 23, 45, -47, 12, 19, -54, -55, 78, -22, -56, 87, 50, -81, -59, 63, 25, 59, 75, 7, 59, -65, -86, 21, -11, -63, 13, 78, -58, -53, -58, 42, -26, -15, -58, 2, 5, -28, -82, -63, 49, -88, 67, -9, -52, 4, 15, -60, 20, 80, -1, -13, 12, 66, 35, 27, 89, 0, -82, -45, 15, -85, 34, -63, 11, -69, -84, -85, -58, -41, -53, 12, 28}, + {-49, -37, 13, 7, -47, -9, -7, 49, -57, 12, 0, 16, -72, 28, 35, 35, -73, 6, -66, -56, 78, -68, -71, 87, -8, -71, 14, 82, -6, -16, -73, -32, 82, 50, 59, 92, 31, -61, -85, 70, -49, 49, -1, -51, -3, 0, -38, 53, -69, 87, 75, 50, 42, 26, 22, -51, 26, -81, 34, -67, 21, 70, 39, 83, 59, 55, 88, 19, -69, 62, 2, -39, 88, 35, 9, 15, 72, -10, -10, 86, -76, -86, 19, -50, 89, 79, 33, 69, -51, 30, -17, 81, -18, 84, -72, -35, 76, -35, -43, 2, -31, -34, 52, -17, 25, 64, -47, -4, -5, -8, -20, -76, 13, -61, -90, -45, -65, 11, 79, 85, 91, -67, -70, -29, -34, 80, 37, -50, 39, -51, -10, -81, -77, 32, 54, -80, 23, 25, -82, 57, 71, 67, 17, 7, -81, -20, 86, 20, -60, -54, 68, 74, 0, -21, 74, -19, 49, 66, -63, -23, -61, -49, -63, 53, 61, 63, 64, 67, 34, -15, 44, -8, -8, -52, 51, 27, -91, -21, -38, 23, -51, 35, 57, 22, -96, -51, -9, 9, 14, -89, 64, 1, 34, -82, -44, -83, 14, 34, 66, 72, 87, -41, 40, 83, -55, -41, 14, -63, 51, -51, -18, 42, 85, -14, 50, 16, -63, 28, -47, -59, -21, 78, -23, -52, 82, 54, 18, 76, 2, -101, -16, 8, 18, 3, -31, -38, -21, 24, 1, 0, 77, 60, 15, 85, -65, -67, -41, -30, -8, -29, -2, 61, 61, 18, -102, 11}, + {40, -13, 76, -70, -37, -34, 76, 27, -15, -60, 44, -25, 74, -72, 42, 33, -69, 19, -36, 36, 88, 36, -8, -73, 1, 11, 71, -80, 63, 15, 50, 7, 43, -3, -61, -28, -32, -4, -25, -16, -88, 20, 85, 18, 12, -66, 65, -47, 29, 50, -15, -13, -15, 32, -40, 65, -82, 28, 16, 84, 23, 45, 15, -70, -74, -32, 42, 56, 58, 2, -61, 24, -5, 86, -55, -22, 35, -34, -86, -54, -8, 35, -10, -81, -53, 10, -53, 4, -68, 24, -84, -10, 38, 27, -14, 38, 76, -82, 12, -24, 82, 18, 10, 20, -81, 83, 70, 68, 25, -7, -5, 10, 86, 1, -68, -79, -37, -86, -76, 1, -23, 20, 59, 18, -61, -27, -86, -1, -53, -5, -79, 71, -72, -1, -25, -71, -48, 41, 56, 43, 45, -24, 83, -2, -3, 68, 43, -19, 45, -76, 49, -67, 61, -70, 44, 1, -30, -81, -67, 37, -22, 82, -51, 10, -58, 23, -2, 10, 3, 74, -85, 6, -10, -55, -14, 54, -88, -67, 60, 86, 76, -40, -15, -62, 64, 68, -50, 6, -77, -40, -38, 16, 50, 58, -4, 27, -48, -46, 52, 30, -8, -7, -68, 22, -62, -26, 16, -5, 43, -68, 4, 40, 81, -77, -67, -15, -52, -57, 83, 67, 22, -5, -71, 33, -20, 27, 51, -39, 33, -30, 19, 36, -3, -64, 49, 79, 10, -32, -34, -53, -51, -20, 32, -10, -37, 28, 63, 85, 75, -24, -16, -66, 61, -46, -24, 68}, + {-24, 38, 59, 12, 52, 1, 7, -48, -40, 58, -52, -36, 44, -47, 41, 8, 53, 59, -78, 41, -31, 82, 84, -38, -43, 75, -62, 6, -69, -7, 39, 52, 59, -20, 52, 31, 25, 7, 10, -21, -92, 32, 61, 0, -74, -75, 21, -74, -5, 3, -5, 43, -64, -33, -73, 8, 61, -37, -79, 41, -88, 18, 71, -16, -32, 43, -50, -8, 46, 83, 82, 60, -53, 28, -57, -19, -8, -60, 65, -59, 60, -11, 2, -50, -43, -22, 49, -7, -7, -72, 39, -88, -67, 26, 45, -82, 1, -2, -75, 22, -86, 37, -55, 74, -4, -60, -23, 53, -85, -93, -59, 25, -16, -36, 7, 40, -31, -8, 55, 76, -1, -81, -73, -20, -72, -62, -78, 34, 9, 8, -1, 16, 36, -6, 71, 66, -59, -13, 68, 2, 42, -35, 36, -40, -76, 31, -25, -91, 27, 61, -1, -67, 41, 24, -41, -9, -59, -20, -9, 69, -30, 52, 2, 4, 26, 72, 52, 86, 26, -85, 60, 66, 29, 69, -71, 63, -82, -21, -61, -6, 102, -100, -38, -49, -33, 7, 64, -10, 86, 25, -88, 60, -58, -12, 40, -1, -18, 33, 44, 72, 65, 82, 56, -3, -24, 43, 70, 73, -35, 5, 16, -13, 46, 25, 52, -1, -32, -85, -62, 37, -18, 39, -85, 6, 13, 24, -102, -44, -56, -60, 1, 75, -9, -43, 6, -32, -11, -40, 29, 7, -70, -15, 50, -23, -12, -59, 82, -51, -20, -3, -29, 10, 15, 40, 62, 1}, + {-89, -9, -73, 86, 21, -26, -42, 23, -4, -83, 43, -87, -66, -65, 9, -41, 34, -20, -5, 67, 71, 24, -27, 73, -17, -8, -21, 61, 26, -89, -62, -26, 75, 6, -14, 32, -64, 55, -79, 21, -48, 77, 86, 4, 5, 23, -55, -60, -55, -21, -26, 82, 71, 10, 3, -24, 83, -2, -82, -54, 13, 85, -67, 67, 9, -85, -69, -49, 85, -57, -61, 53, 3, -8, -63, -58, -69, -83, -70, 87, -35, 54, 66, 71, -66, 81, 43, 26, 75, -18, -57, 49, 88, 4, 73, 46, -82, 71, -41, -73, 62, 52, -57, -16, 4, -83, 74, -55, 36, -84, 49, -64, -2, -63, -23, 70, -69, 61, -43, -44, -15, -54, 30, -43, 28, -72, -41, -13, 24, -46, 13, 81, -38, -28, -7, 59, 40, -64, -70, -88, -18, -73, -27, -52, -16, -7, -41, 49, -72, -10, -69, 72, 39, -10, 82, -43, 18, -16, 82, 29, -21, 39, -85, -63, 19, 12, 2, 58, 60, -48, -65, -10, 29, -71, -47, -79, -10, -76, 20, -36, -75, -65, 31, 70, -34, -70, 56, -8, -30, -54, -81, -14, -43, -33, -66, -26, -5, -22, -43, -26, -6, -5, -58, 66, 14, -28, -40, 40, 85, -6, 78, -57, -44, 68, -57, 3, 67, -16, -4, 16, -20, -13, -42, -72, 60, -17, 81, -61, 88, -12, 3, 26, -30, -48, 51, 37, 1, 85, -81, 82, -89, -51, 30, 4, 35, 55, -17, -6, 85, 53, 49, 27, -44, -59, -39, 21}, + {2, -87, -66, -17, 20, 63, 16, -14, 73, 43, -56, -39, 62, -10, -56, 84, -42, -58, 26, -1, 8, 18, 28, -20, 93, -4, -20, 14, -87, -67, 81, -43, -36, -51, 54, 44, -74, 68, 42, -5, -52, 41, -15, 69, -65, -72, -82, 72, -57, 11, -56, -73, 43, 74, 81, 85, -88, 31, -44, 15, -8, -55, -62, -30, 95, 71, 28, -18, 86, -76, 81, -22, 92, 21, 4, -43, 47, 54, 15, -39, 68, 72, 45, 36, 68, -20, -22, -41, 71, 39, 42, -17, 64, 8, -92, 76, 14, -117, -5, 13, 3, 3, -87, -54, 99, 89, -61, -37, 93, 27, 58, 18, -64, 59, 68, 25, 74, -26, -45, 82, -32, -3, 10, 64, -24, 2, 98, -44, 30, 84, -55, -74, 83, 34, -23, -9, -42, -17, 8, 23, -13, 93, -31, -50, 59, -69, 56, -1, 6, -27, -16, 35, 64, -57, 18, -17, -1, -76, -60, -72, 78, -50, -38, 53, 8, 6, -2, -40, -3, -65, 82, -19, 81, -39, 48, 34, -74, 72, 66, 30, -54, 39, 87, -70, -34, -21, 77, 62, -58, 14, -26, -42, -32, 44, -21, 27, 74, 25, -3, 1, 80, -48, 56, -50, 27, -9, -47, -23, 59, -7, -49, 2, 103, 69, 18, -32, -54, 10, -15, -59, -88, 56, -70, -33, 4, 13, -75, -38, 56, -80, -2, -32, -76, 16, -9, 54, -63, 96, 59, -53, 84, 15, 76, 39, -70, -70, 10, 25, -16, -12, 50, 9, -9, -75, -59, 92}, + {15, 69, 27, -8, -81, 76, 1, 22, 50, 59, 63, 43, 80, -41, 41, -84, -75, 37, 27, 49, -51, -75, 35, -69, 3, 22, -19, 15, -62, 57, 2, -67, -47, 29, 60, 22, -64, 58, -74, 1, -4, -44, -64, -86, 5, 10, -33, -6, -6, -47, 17, -54, -4, 30, 41, -16, 53, 28, -21, 60, -76, 44, -65, 78, -24, -26, 39, -60, -56, -33, 59, -5, 73, -20, 75, 57, -28, 73, -81, -76, 62, -23, -80, -30, 49, -28, -38, 19, -25, 49, -54, -33, -56, -67, 13, -39, -89, -8, -74, 83, 21, 82, 25, -39, -50, 87, -83, -10, 47, -59, -64, 30, -69, -75, -88, 36, 48, -52, -50, 1, -70, 76, -66, -71, 45, 62, -41, -5, 43, 73, -44, -3, 46, -44, -83, 13, -56, 31, 5, 3, -61, -33, -61, 10, 15, -61, 23, -49, -33, 25, 13, -54, -79, 49, 76, 6, 69, -21, 74, -78, 58, 17, 74, -46, -58, 86, 1, -79, 54, -18, 27, 31, 0, 42, 51, -35, 25, 52, 39, -23, 89, -69, -46, -58, -42, -35, -29, 35, 26, 51, 32, 18, 65, 69, 21, 23, 87, -84, -54, 22, -34, -24, 77, 84, -6, 8, -44, 16, -72, -20, -77, -9, 32, -71, -39, -54, 66, 72, 76, 64, 32, 33, -60, -79, -45, 45, 59, 26, -31, 82, 15, -55, 37, -50, 46, -65, -34, -28, 23, 71, -3, 59, -28, -46, 62, -34, 11, -44, -73, -14, -80, -19, -66, -62, -65, -42}, + {15, 9, -22, 67, -10, -29, -82, 13, -93, 82, -16, 69, 90, 19, 49, 6, 83, -74, -51, 28, 96, 88, 57, 80, -93, -61, -15, 40, -35, -81, 7, -22, -54, -83, -22, 2, 90, -25, 121, -39, -44, -37, 34, 3, 35, 33, 33, -8, 46, -24, -50, -1, 57, 13, 70, -37, -79, -44, 33, 13, -90, 41, -35, 3, 74, 42, 13, 25, 31, -8, 57, 4, -59, -40, 45, 20, 73, 58, 12, 4, -71, 16, 30, 74, -85, 42, 59, -17, 64, -77, -26, 39, -81, -63, -43, -85, -60, 27, -39, 15, -75, 36, 18, 7, 79, -29, -80, 77, -6, 13, -36, -27, -1, 46, -41, -80, -36, -93, -55, 19, 50, -13, -33, -39, 35, 45, -93, 21, -37, 47, -12, 79, -12, -61, -4, -49, -44, 28, 54, -41, 57, 36, 3, -18, -65, 56, -3, -67, 65, -70, 58, -35, -61, 25, -71, 40, -20, 63, -74, -10, 38, 77, 49, -12, 26, 63, 7, 3, 79, 31, -38, -49, -13, -12, 55, 84, 69, -19, 54, -14, -12, -33, 31, 45, -69, 74, 83, 33, -72, 94, 59, 84, -32, -34, -42, 38, 29, 32, -18, 66, 60, -79, 5, -16, -18, -19, 60, -28, 52, -54, -60, -35, 44, 50, -34, 45, -47, -52, 68, -1, -51, 62, -16, 79, -41, 20, -30, 19, -51, 29, -7, -84, 67, -20, -50, 18, 77, -14, -11, -4, 83, -69, -8, 8, 17, 26, -83, -39, 1, -20, 52, -23, -46, -8, 98, -29}, + {-42, 86, -10, -67, 62, 31, 57, 80, -27, 14, 56, 44, -1, -68, -29, 34, -85, 87, -34, 52, -30, -47, 66, -24, -7, -9, 34, 35, -9, 51, 58, -11, -23, 13, 20, -45, -89, 61, 8, -29, -46, 5, 49, -64, 26, 8, 33, -56, 6, -88, -44, -64, 61, -16, 25, 35, -11, -82, 76, 29, -79, -56, -79, -77, -16, 82, -29, -8, 49, 68, -2, -43, -84, -52, 42, 6, -52, -23, 9, 17, 2, -62, 16, -22, 50, -24, 15, -85, 67, 80, 49, -84, -37, -80, 54, 4, -66, 3, -52, -72, -39, 27, 5, -76, -70, 84, -37, -29, -84, 59, 52, -83, 14, 20, 87, -51, -55, 58, 53, -31, -17, -66, -87, 87, 75, 88, 79, -37, -36, 64, 42, 52, -75, -3, -46, -56, -60, -77, 54, 41, 37, -82, 81, 73, 22, -13, 19, 64, 84, 1, 63, 50, 77, -18, 36, -70, 48, -89, 80, -54, -40, 16, -11, 52, -9, -60, -54, -15, -31, 82, 75, -25, -74, -46, 48, -22, -37, -7, 54, -48, -16, 22, -30, 63, 43, 34, 6, -10, -25, 11, -26, 9, 71, -18, -23, 63, 14, 34, 84, 51, -21, -62, 73, 60, -69, -24, 50, 81, -73, -48, -89, -35, -89, -18, -14, -11, -89, 24, -40, 54, 48, -1, -7, -8, 53, 77, 36, -26, -3, -68, -7, -49, 22, 27, -22, -74, 71, -77, -77, -69, -35, -66, -89, 68, -84, -63, 6, 69, -37, -15, -23, -54, 60, -56, 3, 41}, + {53, 84, -76, -63, 65, 62, -74, 83, 51, 62, -29, -16, -13, 52, -82, 4, 19, 49, -31, 78, 72, 61, 21, 8, -69, -53, -23, 60, 28, 73, 40, -34, -64, -13, -2, 76, -79, 25, -60, 80, -79, 61, -73, -53, 77, -20, 88, 36, -23, -69, 26, -86, 35, 88, 3, -52, -27, 3, -88, -6, 69, -8, -42, 18, 77, -12, 29, -40, -83, 24, 83, 54, 15, -87, -18, -53, -44, -37, 1, 13, 33, -47, -28, -74, 18, -87, 41, -82, -40, -24, 52, -67, -84, -35, 52, 11, 7, -85, 48, 70, 72, -13, 65, -78, -60, 38, -64, 41, 76, -78, 28, 33, 29, -40, -48, 75, -85, 15, 30, -45, 44, -40, 77, -30, -23, -43, 11, -65, 18, -26, -9, 64, -5, 69, -29, 26, 3, -82, -64, -3, -44, 21, -21, 50, -76, 1, 35, 5, 8, 6, 10, -7, 87, -87, -57, 36, 61, -67, 57, 79, 34, -62, -33, -13, -19, 44, -75, 86, 65, -71, -20, 10, 73, -13, 64, -35, 3, -69, -72, -26, 27, -30, -23, -57, -1, 60, -69, 89, 72, -77, 15, 11, 71, -85, -37, -63, 24, 78, -5, 23, -75, -83, -35, -73, 22, -35, 11, -40, 41, -76, -42, 31, 54, -72, -63, 53, -33, -57, 19, -37, -63, 70, 19, 63, -33, -18, -10, -9, -52, -22, 29, 27, 33, 48, 12, 1, 9, -87, -11, 52, -22, 56, -21, 17, -36, 35, 15, -10, -24, 38, 52, 38, 11, 0, -27, -73}, + {-32, -86, -1, -64, -73, -24, -22, -14, 73, -27, -37, -32, -108, 65, -25, 49, 4, 77, 34, -76, 11, 11, 37, -75, 39, 24, 6, -59, -11, -73, 72, -95, 94, -5, -21, 4, -36, 53, 89, -35, 59, -59, -20, 52, -85, -61, 10, -78, 74, 57, 28, -41, 52, 71, 90, -39, 34, -80, 41, -51, -38, 23, 1, -8, 12, 72, 48, -85, 72, 12, -15, -73, -71, 61, 25, -68, -69, 15, -25, -63, -1, 18, -46, 87, 94, -74, 87, -58, -14, 71, -16, -62, 9, -69, 56, -10, 27, -45, 22, -50, 60, -11, -75, 85, -76, -42, 77, -28, -20, 49, 42, -79, -67, 10, 67, 78, -74, -34, 47, -44, 53, 7, -89, -51, 65, 57, 15, -60, 69, 48, 7, -86, -43, -49, 88, -85, 44, -11, 72, -50, -53, -42, 70, 70, -60, 15, 31, -50, -16, 83, -66, -40, 80, 21, 58, 27, 27, 53, 13, 64, -21, 24, -12, 59, 56, -76, -15, -38, 43, -73, 70, -52, -29, 22, 7, 60, 78, 9, 84, 45, 94, 23, 87, 84, -96, 2, 43, 44, 31, -12, 56, 40, -58, -17, -73, 18, -59, -65, 44, 18, 26, 8, 24, 47, -73, 63, -49, -39, -30, 13, 74, -58, -52, 47, 9, -81, 20, 47, -63, -76, -62, 58, 2, -43, 16, 41, 68, -29, -72, 89, -52, 45, -53, 70, 20, -6, 4, 93, -74, 28, 89, -45, -55, -77, 50, -69, -69, -27, -34, -20, 81, -56, 33, -75, 39, 53}, + {-49, -18, 69, 29, 73, 32, 76, 51, 7, 39, 85, -32, 50, 45, 74, 41, 21, -29, -75, 86, 73, 126, 35, -18, 4, -86, 5, 34, 48, -27, -22, -22, -8, -86, -41, 15, -32, 42, -12, -17, 14, 2, 26, -96, -2, -54, -77, 39, 3, -79, -73, -45, 55, 2, -63, -34, 49, -22, -102, 37, -71, 27, 20, -32, 13, 25, 24, -43, 20, -68, 26, -75, 8, -13, -8, 84, 9, -18, 16, 10, -29, 50, -67, -42, 36, -67, -56, 33, -71, 38, 88, -55, 46, 23, -21, 74, 37, 109, 46, -36, 12, 41, -24, 9, 54, -31, 54, 52, 45, -86, -38, 65, 71, 34, -50, 69, -82, 54, -8, 97, 18, -70, -15, -29, -51, -64, -38, 22, -96, 46, -9, -31, -64, -52, 0, 80, -47, -77, 79, -6, 86, -13, -44, -32, 55, -83, -45, 50, 15, -79, -37, -82, -63, 15, 4, 89, 44, -40, 81, -29, 90, -59, 53, 66, -36, 24, -68, -21, -87, 65, 43, -5, 92, 9, -34, -83, 8, 32, 49, 81, -1, 79, -29, 11, 7, 70, -74, -46, 32, -67, -53, 48, -81, 33, 45, 43, 48, -19, 84, -69, 6, -50, -20, -11, 51, -43, -88, -51, -73, -66, 81, -1, 66, 3, -8, -57, 69, -84, -75, -34, 82, -18, 75, 51, 67, 37, -59, 78, -87, 0, 58, 44, 43, 67, 2, -55, 39, 2, 51, -15, 36, 50, -46, 17, 55, -76, 31, 29, -56, 38, 55, -50, 81, -22, 30, 70}, + {-57, 55, -34, 71, 34, 46, -16, 24, 93, 67, 84, 25, -45, -4, 83, -8, 86, -56, -11, -75, 55, -57, 82, 52, 86, -76, -59, 12, -15, -74, 108, 16, 77, 91, 44, 33, 20, -17, -91, 39, 54, -79, -50, -37, 21, 42, -78, -20, -10, -11, 82, -53, -17, 5, -39, -11, -18, 45, -81, -16, -43, -72, 93, 37, 71, 45, -44, 52, -25, 2, 28, 50, -11, 3, -33, 50, 1, 52, 78, -33, 30, -82, 64, 3, -78, -53, -5, 101, 87, 37, -43, 80, 24, -62, -105, 55, 45, -52, -29, 26, -19, -11, 9, 5, 1, 83, 41, -83, 16, 54, 83, 80, 72, 53, 62, 4, -49, 30, -18, -9, -52, -44, -19, 70, -87, 30, 89, 60, 81, 15, -82, -77, -82, -24, 22, -84, 66, 22, 15, -65, -48, -48, -70, 50, 66, 44, 38, -44, 70, -66, -26, 75, -20, 3, 2, 47, 49, 14, 34, 59, -9, 63, 65, -34, 27, -10, 51, -60, -54, -16, -40, -42, 43, 82, 72, 2, -20, -34, 49, -35, -94, 54, 53, 77, 14, 89, -56, -61, 62, 31, 85, 44, 0, 5, -108, -62, -7, -10, -60, -28, 87, -8, 37, -72, 44, -49, -3, 0, -47, 52, 76, 32, -79, 72, 52, -6, -89, 74, -45, 3, -39, -37, 54, -80, -8, 82, -19, 60, 44, 23, -26, 30, 25, -36, -62, 64, -31, -23, -55, 4, 69, -1, -22, -21, 29, 52, 33, 52, 44, 0, -76, -76, 35, -13, -98, -49}, + {-48, -70, 59, 10, -67, 41, 1, 2, 51, 40, -78, 82, 23, -62, -44, -10, -15, 71, 72, -16, -28, -74, -24, -44, -33, 78, -38, -19, -23, 40, -51, 47, -34, 81, 16, -64, 78, 16, -78, 9, -41, -20, 7, -85, -33, 44, 85, -18, -63, -29, -49, -71, 62, 38, 59, 17, -53, -77, -77, -71, -2, 44, -49, -69, 30, 77, -65, -60, 45, 65, 78, -67, 41, 68, 21, 40, -59, -78, -38, 26, 14, 85, -89, 81, 30, 59, -24, -78, 29, -7, -62, 42, 77, 55, 19, -84, 44, 13, 12, -1, -2, -58, -11, -83, 30, -65, 5, -66, 26, 56, -76, -64, -18, -23, -89, 15, -46, -14, 67, -79, -18, 42, 43, 8, -22, -22, -81, 35, -20, 86, -89, 28, 44, 69, -78, -60, -69, -74, -44, 23, -32, -28, -33, -18, -19, 18, 48, -82, -65, -84, -18, 75, -4, 23, 67, 35, 35, 30, 52, 75, 88, 41, -80, -16, -8, -56, -41, -51, -11, -51, -34, -37, 31, 36, 10, -19, -32, -14, 42, 12, -46, -2, 68, -76, -48, -30, -4, -11, -24, 10, 78, 5, 83, -61, -74, -57, 0, 89, -4, 59, -55, -50, 25, 3, -7, -59, 24, 52, -56, -32, -51, 63, 7, -61, -31, 70, -54, 69, 17, 55, 76, 1, 24, -54, 81, 69, -60, -64, 45, -52, 18, 86, -44, 86, 15, 43, 14, 6, -71, -65, -54, 10, 48, 81, 88, -31, 29, -9, -87, 28, -40, -9, 75, 44, 67, -60}, + {76, -35, 61, 89, 75, -61, -48, 20, -64, 57, -61, -1, 38, -87, 68, -69, -18, -41, -85, 47, 40, -18, 6, 41, 31, -11, -86, -86, -38, 74, -24, -35, 62, -18, 7, 22, -74, 67, 56, -7, 70, -65, -34, -78, -67, -3, -9, -17, -44, 23, 63, 39, -34, 1, 75, -3, -43, -78, -46, -14, 46, 39, 62, -46, -32, 21, 19, -45, 63, -42, 62, -17, 78, -38, -70, 58, -20, 32, -69, -20, 74, -50, 2, 63, -89, -30, 27, -3, 30, -58, 64, -53, 53, -4, 64, -62, 67, 56, -83, -80, 39, -31, 42, -40, 7, 67, 81, 54, 73, 36, -79, -76, 7, -15, -89, -50, 24, 3, -11, 28, -91, 18, 14, -46, 72, -45, 35, -7, -30, -24, 13, 23, 76, 77, -43, -82, 52, -66, 3, -57, -63, 52, -10, -35, -19, 38, 49, -20, 58, -2, 85, 66, 84, -7, 27, -10, 79, -55, 60, -25, 76, -67, 21, -40, -2, 15, 84, -80, -81, -84, -2, -33, 32, -48, -88, -87, -75, 62, -60, -58, -69, -22, -58, -28, 61, -4, -46, -94, -14, 72, 47, -11, -62, -2, -61, 74, 40, -82, 62, -29, -10, 23, 46, -8, 57, -35, 32, -42, -87, -81, 50, -59, 69, -51, 81, 35, -41, -42, 26, -34, 30, -53, -54, -52, -61, -47, -53, -11, -14, -53, -30, -58, 39, -85, -76, -53, -11, -27, -42, 21, -57, -92, 69, 46, 84, 19, 60, -16, -81, 73, -29, 23, 19, 32, 5, 6}, + {-58, 80, 46, 50, -45, -12, 72, 63, 48, 9, -50, 61, -82, 46, -6, -79, 25, -13, -29, 11, 34, 25, -83, -35, 89, 9, 0, -3, -29, 71, -52, -25, 54, -4, 77, 89, -60, 66, -67, -1, 93, -24, -40, 75, -72, -15, -33, 19, -74, 22, 40, -38, -51, -30, 84, -18, -45, -2, 11, 94, -69, -15, 12, -60, 44, 84, -8, 48, -31, 50, 29, 71, 15, 20, -48, 49, 62, -2, 51, 13, 57, -46, -24, -39, 77, 59, 63, -36, 56, -5, -58, 37, 0, 6, -55, 63, -87, -33, 90, 43, 88, 50, 28, -68, 56, 23, -75, -5, 16, -41, 9, -14, 12, 87, 93, -55, -33, 101, -5, -40, -45, 45, 68, 77, 64, -65, 52, -42, 83, 69, -80, -15, 82, -10, -13, -16, -52, -34, -31, 1, 87, -39, 44, -65, 88, 32, -61, -72, -51, -61, -65, 7, -5, -85, 83, -67, 48, 6, -22, 6, -46, 68, -58, 96, -45, 50, -35, 67, -34, -6, 5, -8, 67, -77, 63, 50, 66, 81, 27, 60, 24, -62, -35, -13, 13, -68, 5, -36, 27, -23, 52, -39, 27, 31, -15, -10, 83, 79, 89, 41, -38, -4, 0, 19, -42, 2, -54, -74, -23, 66, 11, 24, -23, -68, -73, -75, 30, -26, -54, -58, -34, 30, 48, -8, -37, -40, -32, -43, 18, 65, -71, 84, 60, 63, -2, 11, 19, -51, -74, 57, -46, 57, 78, -4, 66, 47, 13, -70, -27, 102, -48, 87, -51, 47, -63, 85}, + {-63, -82, 21, -27, 72, 53, -58, -12, -88, 15, 70, 1, -59, 51, 44, -36, 32, -7, -65, -15, 78, 44, 17, -79, 48, -91, 81, -57, 74, -32, 57, 11, 80, -3, -73, 68, 32, 5, 83, -38, 16, 24, -92, 14, 4, -45, -38, -58, 4, -70, 59, -31, 68, -39, -78, 76, -19, -42, -33, -13, -78, 69, -14, 62, 86, -88, 5, 68, -48, 25, -72, -91, -68, 123, 73, 72, 84, -57, -81, 7, -20, -19, 65, -12, 68, -26, 10, -21, -33, -80, 56, -57, 43, 59, 33, -16, -48, 100, 10, -16, -72, 73, 53, 49, -27, 18, -85, 11, 30, -12, -40, -73, -19, 35, -17, 68, -24, 59, -14, -33, -77, -66, -12, 14, -62, -1, 76, -80, -56, 59, -28, -72, 77, -20, 70, 19, -1, -69, -43, -18, 68, -78, 17, 38, 37, -92, -29, -87, 20, 81, 46, -25, -47, 6, -17, 50, 74, 53, -43, 86, -71, -87, 18, 8, -85, -45, 82, 6, 21, 49, 75, 41, -10, -72, 51, 5, -11, 17, -73, 75, -61, 24, -15, 75, 14, 77, -47, 79, -65, 69, -57, -48, 54, 26, -10, 10, 72, 51, -17, -49, -38, -14, 36, 84, -66, 36, -69, -47, 70, 62, -57, -32, -4, -42, 24, -31, 25, 21, 20, 39, 71, 78, -73, -49, 12, -45, -70, -40, -1, -12, -65, -15, -79, -34, -8, 61, 17, -29, 85, 3, 47, 109, 56, 61, 77, -47, -44, -10, -5, 12, 14, 27, -27, 92, 96, 2}, + {-66, -44, 74, 8, -43, -85, -55, -81, -36, 9, 61, -2, -19, 26, 1, 82, 99, 41, 61, 61, -48, 67, 33, 55, -27, 46, 88, -55, 55, 59, -1, -25, -64, -36, -31, -28, 49, 71, 103, 56, 69, 49, -83, 67, -40, -2, -17, -6, -56, -95, 31, 90, 16, -39, -43, 49, 38, 8, -46, 7, -16, 12, 74, -41, -65, 74, 37, -30, 4, 82, 69, -6, 64, -2, -47, -60, 50, -57, -20, -71, 3, 81, -28, -70, -36, -93, 2, 77, 65, -22, -17, 13, 37, -11, 23, -60, 14, 0, 45, 23, 44, -47, -31, -67, -31, 83, 73, -54, -49, -52, 77, 10, 59, -34, 48, 76, 25, -68, -18, 81, -64, 18, -68, -58, -50, -85, -17, -80, -70, -15, 45, 87, -75, -49, -71, 53, -33, 12, 26, 75, -21, 7, 28, -50, -59, -2, 41, 23, 19, -13, 17, 42, -4, -53, -49, -37, -11, 38, -84, -87, 8, 21, 66, 13, -12, -13, -65, 46, -9, 80, -35, 50, 38, -63, -20, -74, -70, -87, 4, -71, 27, -69, -67, 39, -7, 17, -55, -67, -52, 22, -73, 69, -36, 18, 69, -32, -84, 80, 37, 80, 2, -50, 55, -31, -83, 101, 68, 54, 31, 71, -30, 35, -77, 86, 32, 72, 73, -85, -84, 19, -35, 18, 80, -10, 4, -23, 44, 45, 22, 87, 44, -88, -87, -23, -65, -55, -58, -45, -64, 24, -66, 39, 68, 0, 20, 58, -82, -28, 26, -92, 47, 35, 15, 55, 28, -88}, + {-67, 29, -15, 64, 55, -64, 58, 73, -40, 80, -53, 2, 90, 37, 22, -78, -26, -25, -98, -47, 121, 94, -55, 63, 13, -48, 76, 82, 30, -39, -27, -40, 42, 27, -100, 77, -57, -62, -12, 52, -8, 60, 11, -29, 18, 35, 7, 40, 20, 30, 27, -7, 10, 28, 6, -73, 51, 51, 17, -75, -24, -12, -4, -82, -60, 37, -43, 13, 23, -46, 34, 37, -80, 95, -45, -31, -24, 68, 7, 21, 10, -4, 24, -86, -47, 53, 83, 51, 25, 12, -39, -50, 23, -71, -61, 36, -65, -68, 54, 71, 47, 25, -84, 58, -66, -44, -84, 29, 30, -1, -54, -34, -17, 3, 91, -53, -61, -26, -32, 80, -62, -58, 17, 62, -8, -50, 66, 38, -45, -70, -28, 5, 79, 88, 84, -31, -2, 67, -28, -49, 58, -73, -56, 41, -32, -28, 65, -42, -39, 20, -38, 50, -47, 29, 14, 44, -26, 38, 32, -49, 11, -69, 79, 83, -19, -81, -65, 50, 70, 53, 8, -36, -15, -31, -52, 24, -45, 33, 72, 5, 0, -80, -27, 105, 82, -77, 67, 77, -31, -54, -69, 52, -86, 51, -17, 19, -76, -79, 32, 86, 14, -46, 62, 36, 82, 50, 87, 80, 67, 23, 12, 61, 41, 13, -16, 53, 16, 5, -30, -53, -21, -46, -60, -43, -34, -51, -73, 29, -26, 46, 24, 8, -33, -83, 87, 87, -63, -25, -24, -63, 25, 97, -15, 19, 11, 31, -48, -21, -41, -91, 55, 83, 84, -61, 52, 51}, + {15, -61, -56, 31, -44, 0, -39, -59, 23, 81, -80, 37, -52, -23, -74, -84, 48, 9, -63, 31, -4, 124, -86, 88, -7, 43, -50, -78, -44, -59, 5, -96, 30, -7, 65, -74, 69, -88, -13, -36, 75, 12, 13, -6, -29, 52, 64, -34, -73, 17, 72, 51, 60, -87, -53, -83, -54, 20, -104, 32, 40, -80, 61, 68, 51, 33, 67, 18, 0, -7, -8, 49, -66, 86, 21, 14, 58, 33, -40, -63, -40, 29, -12, 72, 0, 59, 82, -39, 3, 19, 64, 34, -64, -62, 46, -37, -32, 22, 8, -6, -30, -58, 31, -40, 32, -3, 25, 81, -57, -15, -86, -41, -73, -79, 42, -52, -83, 31, 68, 82, 78, -27, -14, 10, -44, 19, -48, -19, -35, 17, -2, 49, -31, 60, 26, 74, 38, -55, -79, 39, -59, -23, 75, 41, -65, 45, -40, -32, -75, -15, -89, 88, -60, -31, -63, -5, -39, 58, 9, 57, 50, -90, -66, -58, 57, -50, 13, 67, -38, 68, -45, 34, 86, -39, -23, 28, 49, 44, 19, -15, 7, 0, -10, 93, 100, 46, 28, 7, -36, 103, -13, -63, -31, -86, -91, 44, 7, 57, 36, 34, -59, -30, -11, -72, -31, -25, 67, 8, -30, 11, 55, 33, 29, 33, -60, -47, -34, -80, 82, 11, 76, -81, 15, 66, 30, -78, -108, 78, -84, -3, -8, -112, 85, 12, -68, 45, -19, -41, 59, 121, 67, -10, -17, 5, 14, -50, 64, 60, -20, -3, 29, 39, 64, -75, 91, 38}, + {-26, 16, -31, 46, 56, -30, 46, -71, 62, 3, -39, -39, 42, -56, 15, 73, 84, 6, -109, -70, 39, -43, 21, 74, 59, -73, 14, -49, 16, -54, 10, -18, -49, 61, -70, 77, 66, -44, 50, -66, 48, 65, -83, -9, 55, 60, -75, -78, 55, 23, 19, 8, 26, 62, 88, 77, 80, -89, -31, -32, 34, -2, 93, 38, -21, -81, 13, -44, -26, -24, 34, -82, -71, 110, 6, 39, -58, -84, -35, -20, 57, 64, -13, 84, 3, -36, 40, 76, -54, 24, -13, -25, 54, 76, -58, -57, -65, 72, -79, 24, -12, 11, 54, -79, -71, -89, -49, 8, -9, -79, -59, -45, -71, 27, 93, 54, 23, -49, -80, -2, 52, 30, 13, -62, -71, 19, -57, 68, -44, -46, 67, -58, 0, 34, 53, 75, 24, -62, 21, 85, 5, 32, -10, -73, 42, -40, -13, -87, 48, -55, 38, -80, -1, -56, 67, 3, -1, 8, -36, -36, 84, 79, -49, -51, -41, -59, 59, 15, -61, -51, -31, 49, 31, 41, -67, 5, 8, 8, 69, -37, -58, -41, 14, 49, 28, 73, -35, 44, -63, 81, 42, -75, -61, 55, 85, 0, 20, 67, 74, 100, 78, -68, -14, -85, 13, 30, -87, 13, -9, 81, -38, -13, 67, -67, -9, 66, -22, 13, -41, 68, -64, -47, -34, 27, 64, 2, -58, 6, 16, 9, 40, -100, 86, -15, 63, -20, -46, 27, 81, 45, -27, 34, 81, 66, 35, -49, 24, -8, -52, -67, 50, -73, -40, -67, -8, 16}, + {63, 75, 3, -74, -38, -27, 57, -62, -88, -41, -7, 84, -74, 14, -23, -25, 16, 22, -58, 8, -52, -31, 50, 49, -62, -52, 12, -86, -40, 32, 67, -27, 43, 42, -14, -69, -10, 48, 106, 18, 13, 77, -1, -45, -34, -40, 5, 17, 38, -89, 86, 20, 7, -72, 82, -46, -60, -8, 67, 78, -65, -30, -67, -42, -73, 57, -84, -42, 84, -62, 30, -73, -20, -49, -82, 43, -85, 70, 40, -27, 81, 89, 21, -74, 11, 13, -41, 27, 47, -29, -68, 32, -23, 40, 101, -72, -58, -64, 29, -8, 99, 73, -62, 82, -62, -64, 33, 45, 75, -1, -85, -15, -55, 71, -27, 1, -12, 57, 6, 81, -31, 71, 30, -44, -42, 9, -56, 31, -39, 60, -16, -81, -1, 40, 21, -44, -39, -9, 60, -61, 70, 25, -43, -25, 8, 76, 20, -86, -85, 44, -52, -25, 2, -61, 3, 96, -3, -34, -34, -62, 79, 59, 88, 72, -67, 47, 5, -4, 57, 29, 8, 64, 87, 94, -13, 65, -58, -80, -30, -46, 69, -13, -10, 4, 35, 82, 41, 31, 61, 73, 25, 75, 27, 37, 31, 83, 10, -64, 18, -43, 13, -64, 3, -36, 57, 88, 45, -22, 3, -52, 7, -83, 15, -33, -23, -28, 59, -59, 3, -24, 48, 25, 64, -28, -42, 51, 21, 22, 52, 39, -78, -16, -86, 63, 75, -25, 64, 45, -16, 46, -84, -70, 53, 82, -27, -64, -84, 34, 74, 99, 98, 86, 48, -27, 37, 76}, + {84, 22, -52, -44, -5, -84, 16, 52, 11, 51, 19, -58, -53, -64, -103, 3, -30, -5, 60, 62, 77, 61, -47, 0, -52, -89, 53, 85, -17, -73, -59, -75, -8, -54, -78, -43, 50, 58, 98, -4, 51, 40, -25, -103, -42, 57, 46, 59, 66, 33, 49, 28, 56, 59, -60, 47, -63, -23, 28, 58, -73, -78, -92, -49, -54, 53, 10, 38, -1, -36, -43, -82, 24, -57, 60, 26, 27, 43, 59, -13, -35, 85, 66, -23, -12, 11, -63, 46, -48, -1, 37, -72, -43, -44, 70, -95, -78, 46, -68, 26, -18, 111, -10, 93, -90, -52, 1, 32, -57, -45, -67, 4, -10, -6, 27, 26, 65, -101, -73, 40, -33, 8, -64, -18, 42, 25, 17, 33, -87, 39, 37, -26, 34, 47, 49, 0, -64, -93, 71, -58, -65, 17, 36, -47, 74, -6, 17, 75, -33, -9, 16, -86, 14, -67, 29, 78, 23, 79, 79, -51, -18, 58, -24, -19, -50, 5, 14, 2, -67, 18, 65, -59, 97, 66, 33, -34, 29, -25, 13, 61, 17, -56, -35, -3, 29, -45, -47, 82, -39, 54, -46, -56, -36, -48, -31, -11, -51, -89, 12, 89, -79, -78, -3, 16, 41, -8, 64, -33, -42, 54, -40, -46, -45, -43, -35, 12, -58, -28, -85, 51, -52, -74, -8, 64, 54, -56, -36, 59, -56, -12, -81, -54, -81, -4, -65, 74, 72, 4, 95, 91, 38, -76, 84, 5, 88, 66, -73, -51, -66, -5, -74, -52, -57, 1, 18, 26}, + {-13, -70, -80, 55, -31, -75, 76, -48, 66, 30, -53, -3, 88, 68, -82, -85, -7, -64, 3, 31, 45, 85, -53, 58, 23, -67, -25, 4, 28, 73, -74, -38, -91, 46, 54, -26, -14, 31, -20, -27, 85, -16, 62, -65, 40, 76, -7, 13, 112, -88, -58, 83, 18, -48, -72, 22, 34, -28, -39, 15, 22, 39, 39, 51, 63, 36, -86, 56, -58, 52, 36, 6, -79, 19, -19, 3, -83, 79, 33, 44, 69, -16, -18, -25, 65, -91, -14, -18, -85, 62, -9, -42, -27, -66, 101, -51, -46, 101, 73, 32, -88, -21, 49, 31, -20, 56, 72, 44, -83, -70, -24, 49, 1, 43, 15, -37, 52, 55, 74, 34, 8, -15, 77, -51, 83, 2, 43, 53, -65, -59, -9, 29, 23, -38, 44, 82, 59, 23, -55, -56, -11, 54, 87, -8, 53, -63, 50, 41, -48, 3, -57, -72, 16, 34, 14, -18, 70, 70, 35, 35, -46, -32, -29, 22, -14, -9, -69, -59, -75, 43, -79, -50, -3, -74, 46, 42, 57, -9, -55, 83, 37, 7, 9, 8, -70, 8, -12, 6, 82, 24, 81, 23, 7, 70, -81, 45, 61, -9, 81, -6, -47, -65, -67, 9, -51, 64, -79, -48, -75, 11, -22, 51, 52, 13, 46, 17, -92, 64, 48, -45, -4, 33, -46, 82, 36, -55, 60, -67, 44, 56, -50, -34, -17, 84, -64, 66, -36, -96, -26, -92, -87, 17, -51, -40, -62, -16, -40, 62, -31, 84, 21, -17, 56, -43, 8, -14}, + {-30, -75, -69, 43, 17, 86, 8, -84, -39, 72, 73, 51, -9, -71, -31, 24, -39, -17, -27, -52, 90, 67, -34, -35, -88, 62, 2, 43, -48, 21, -11, 22, -52, 68, -79, -46, -74, 35, -31, -20, -66, -30, 22, 77, 50, -58, -66, 18, 62, -26, 34, 91, 81, -10, 11, 52, 0, 81, -59, 76, -30, 26, 29, 61, -86, -42, -1, -7, 68, -33, -19, -76, -41, -44, 62, 73, -51, -5, 59, 88, -51, 12, 19, 46, -14, 0, -77, -33, 39, 45, -28, -71, -19, 61, -71, -49, -36, -66, 70, -17, -85, 63, -57, 30, 58, -12, 12, 77, 81, 14, 8, -26, 27, 57, -31, 70, -27, -39, 65, -43, -12, -27, 76, 18, -43, -59, 5, -67, -84, -19, -14, 8, 3, -85, -58, 3, 31, 75, -16, -12, -24, -55, -30, -18, 56, 24, -84, -72, 78, 45, 81, -50, 22, 79, -75, -90, 42, 46, 88, -40, 22, 41, 24, 14, -29, 68, 57, 15, 60, -53, -26, -34, -21, -29, -70, 60, 60, 44, 4, 48, -59, 66, 8, -45, -11, 4, 8, 82, -72, -12, 3, 59, -89, -67, -55, -70, 65, -48, 86, -38, 86, 0, 38, -17, 26, 85, -71, 4, -67, -10, -59, 62, 26, 42, 81, 26, 73, -28, 68, -13, -31, -41, -4, 71, -10, 9, 100, -47, 6, -45, -65, 50, -32, 69, -63, -73, 32, 80, -46, -68, -41, 30, -61, 76, -79, 68, -3, 17, 6, 80, 69, 81, -80, 2, 49, 43}, + {80, -83, 14, 36, 84, 110, -41, -52, -61, 75, -2, 49, -84, -34, -27, 66, 88, 51, 111, 87, -85, -7, -9, 45, 29, -16, 30, -42, -49, 101, 8, 113, 27, 101, 80, -19, -112, -7, -66, 18, -12, -15, 79, -5, -38, -80, 14, 73, -50, 10, 52, 75, 22, 80, 75, 85, 80, 84, 19, 37, -17, 56, 27, 16, 25, 45, 24, -28, -30, -14, 0, -61, 8, 59, 54, -5, 55, -83, -39, -63, 20, 84, -10, -43, -52, 7, 78, 38, -50, 28, -43, -21, -9, 14, 11, -70, -2, -98, -38, 2, -26, 16, 10, -40, 64, -87, -3, -69, 81, -35, -62, -71, -15, 14, -25, 27, -89, -41, -84, -36, -8, 62, 40, -13, 7, 18, 28, 101, 17, -66, 99, 85, -91, 9, 10, -21, 43, -28, -23, -64, 70, 62, 84, -63, 96, 94, -14, 32, -12, 16, 82, -27, 50, 70, 60, 26, 53, 41, -78, -67, 83, 79, 81, 25, 24, 31, 51, -43, -38, 22, -18, 26, -47, 65, 93, -9, -2, -31, 100, -25, 16, -10, -26, -35, -10, 37, -36, 30, 12, 62, 19, 73, 15, 10, -116, 24, 83, -23, 83, 47, 47, -11, 6, 11, -80, 21, 54, -55, -42, -29, -31, -64, 56, -12, -24, 79, -68, 3, 12, -82, -29, -34, -28, -14, 29, -58, 59, 19, -70, -39, 67, -42, -80, 33, -21, -90, -64, 3, 95, 74, -11, -68, -19, 60, -55, 59, 1, -67, 17, 75, 33, 73, -84, -23, -90, 65}, + {-28, 25, -67, -66, 84, 81, 40, 50, 8, 59, 33, -50, -43, 66, 70, -80, -3, -17, 59, 52, -56, 54, 52, 32, 24, -76, -38, 16, 1, 86, 67, 12, 74, -34, 37, -74, -56, -6, 57, 14, -6, -55, -57, -88, -72, 1, -88, -41, 46, -56, -68, 11, 14, 44, -83, 29, -40, -37, -13, 12, -3, 87, 85, -45, -5, 22, -45, 40, -53, -39, -28, 6, 15, 66, 43, 25, -52, 42, -34, -82, -82, 29, -21, 55, 22, 59, 10, -10, -57, 13, -38, -49, 37, 81, 72, 48, -50, -3, 55, -87, -16, 21, 26, -77, -31, -23, 33, 68, 9, 29, 74, 71, -77, 4, -78, 41, 85, 51, 33, -78, -22, 5, 66, 83, -73, 26, -30, 64, -82, 3, 47, -82, -55, -33, 32, -74, 67, 78, -34, -76, 2, -52, -60, -54, -2, -70, -43, -11, -16, -28, -85, 13, 63, -4, -17, -73, 67, -45, -25, 39, -45, -74, -9, -37, -21, 43, -11, 41, 13, -15, -52, -84, 37, -81, -85, 77, 42, -62, -74, -73, -87, -9, -58, 9, -30, -33, 0, -79, -8, -53, -8, -63, 15, -71, -83, 73, -83, -86, -50, -71, -64, 41, -44, -8, -5, -15, -62, -25, 48, -75, 81, -1, 23, 59, -31, -84, 86, 84, -42, -82, 30, -84, -60, -56, 13, 49, -72, 65, -14, 48, -25, 17, 57, -48, 19, 51, -21, 29, 22, -51, -11, -66, -36, -79, -80, -85, -76, -39, -44, 36, -41, 0, 4, 22, 0, 75}, + {49, 86, 23, 31, -63, -49, 50, -32, -7, 77, -11, 68, 88, -64, -38, -52, 24, 8, 43, -18, 75, -48, -83, 53, -61, -51, -65, -2, -80, 76, 36, 56, -24, 86, -18, 23, -21, -51, 65, 65, 20, -42, -59, 12, 89, -33, 86, -31, 54, -4, -83, 62, -39, -59, 2, -91, 15, -54, 17, 75, 1, 32, 20, 10, 69, -26, -37, -52, 33, 68, 58, 83, 40, 60, -85, -54, 12, 3, -57, -49, -46, -80, -78, -12, 38, -39, -20, -37, -50, 8, -78, -5, -47, -9, -58, 44, -33, -55, 85, -64, -39, 38, -37, 61, 77, -89, 33, 26, -6, 5, -68, -1, 1, 83, -1, 46, 50, -40, -52, 13, -38, 14, -23, 55, -7, -1, -25, -45, -74, -75, 0, -64, -7, 106, 4, 63, 1, 25, 74, 59, 16, 12, 76, -12, 15, 45, -78, -89, -53, 70, 63, -20, -88, 47, 84, 44, -19, 29, -27, 83, -8, -58, 36, -52, -94, 83, -88, 46, 85, 45, 87, 40, -49, -53, 17, 7, 35, -80, 73, -42, 114, 80, 24, 52, -79, 80, 33, 56, 5, -19, 8, -60, -72, 51, 69, 18, -37, 80, 41, 62, -32, -33, 68, -4, 8, -10, -84, -17, -89, -84, 15, -30, 76, 46, -40, -56, 76, 4, 75, -3, -63, 58, 74, 41, 44, -38, 115, -46, -39, 35, 28, 16, 74, 62, 64, 64, 19, -51, -61, -50, 3, 64, -35, -53, -46, -47, 60, -26, -11, 94, 22, -63, 27, -86, 59, 43}, + {67, -11, -13, 71, 54, -9, 16, -89, -65, -74, -77, -81, -26, -36, -40, 87, -72, 3, -66, -12, -31, -84, -42, -74, -12, -7, 10, 36, 40, -82, 0, 80, -31, -26, 70, -46, 40, -49, -55, -3, 87, 56, 70, -24, 2, 80, 56, -5, -89, -61, 43, -13, 80, -71, 38, -85, 30, -7, -24, 26, 67, 28, 81, -40, -22, -67, -40, 32, -44, -81, -12, 26, 48, 70, -29, -45, 81, -14, -31, -78, 77, -78, -8, -64, 45, 63, -76, -6, 20, 51, -66, 76, 28, 11, -71, -77, -2, 49, 21, -22, -67, 42, 37, -9, 13, -71, 19, -6, -15, -70, -76, 6, 54, -7, 40, -4, -59, 79, -63, 12, 8, -21, -14, -11, -7, 14, -19, -26, 64, -57, -26, 84, 42, -29, -48, -84, 63, 53, -20, -31, -84, 79, 57, -43, -78, 21, -26, -39, -71, 48, 63, 32, -36, -87, 44, -39, -18, 4, -57, -17, 28, -10, 7, 2, 80, -26, -86, 38, 5, 83, -58, -41, 22, 74, 4, 37, -7, -50, 47, 39, 47, 33, -77, 70, 30, 36, -63, 10, 48, 33, -82, 67, 28, -31, -85, -43, -45, 83, 71, 23, 34, 25, 84, -72, -81, 33, -79, 56, -25, -85, -48, 86, 38, -26, -54, 61, -68, 76, -77, -15, -72, 81, -76, 56, -53, -91, -59, 62, -26, -51, -3, 77, 6, -71, -68, -9, -31, -28, -61, 82, -24, 26, -71, 57, -65, 29, 69, 52, -65, -21, 60, 54, 7, -71, -29, 34}, + {-2, -82, 30, 18, -35, -68, -55, -18, 15, -42, -69, 88, -85, 61, -3, 61, -68, -43, 46, -18, -2, -54, -51, -80, -13, -75, 65, -57, 72, 76, -48, 9, 59, 68, 45, 27, 56, -23, -7, 73, 58, -5, 4, -26, 28, 67, 2, -89, 36, 36, -43, -64, -75, -8, 77, 59, 0, 45, -12, -56, 24, 13, 8, -21, -42, -77, -80, -7, -28, -77, -86, -29, 63, 1, -65, -85, 26, -32, -64, -4, 1, -80, -29, -77, 55, -85, 66, -26, 38, 52, 13, -79, 63, -79, -32, 32, -64, 80, -10, -28, 23, -60, -14, -3, 40, 65, -24, -47, -64, 59, 63, 82, -76, -14, -30, -69, 59, 82, -1, 33, 31, 53, -29, 74, -87, 80, -66, -30, -29, 26, -16, -64, 36, 3, -46, 57, -22, -62, 74, -52, -61, -35, -50, 25, 51, -45, -53, -13, -68, 58, -6, -35, 56, 54, -40, 46, -53, -59, -18, 83, 31, 31, -59, 76, 21, 30, 78, 80, -6, -63, 48, -72, -66, -10, 74, 20, 41, 58, -60, 42, -32, 55, 7, 30, -64, 82, -16, 74, -30, -12, 80, 58, -18, 31, 56, -19, -43, -54, -45, 47, 6, 19, -83, -64, 39, 18, 20, -70, 47, 44, -58, -60, -73, 82, -27, 43, 74, -65, -68, -5, -81, 47, 71, -71, -53, -87, 23, -1, 23, -18, 31, -14, -11, -65, -38, -60, 54, -35, -25, -67, 68, 52, 50, 7, -69, -17, -24, -87, 13, 4, 15, 59, 75, 79, -26, -27}, + {23, -79, -56, 61, 19, 25, -52, -58, -71, 25, -42, -70, -47, -82, 65, -27, -28, 13, -31, -42, -5, -51, -22, 78, 73, 30, 77, 7, 3, -59, -8, -17, -12, 7, 0, -6, 84, -7, -11, 54, 21, 23, 51, -84, -16, -45, -4, 24, 80, 79, -85, -6, 6, -81, 44, 76, -44, -61, -14, 31, -74, 55, 68, 7, -6, -79, -27, 26, -76, -7, -89, 44, 70, -26, -35, 48, -55, -62, 45, -74, -73, -6, -62, -29, 71, -58, 11, -57, 58, 43, 86, 76, 64, 20, -90, 11, 21, -62, -42, 75, -89, 68, -58, 8, 24, 8, -75, -91, -36, -23, -70, 22, 46, -84, 61, 40, 45, -56, 76, -30, -19, -25, 21, 46, 58, -1, -67, -78, -53, -62, -68, -18, -34, 31, 55, 84, -4, -84, -56, -56, -64, 38, 22, 11, 35, -44, -16, 65, -13, 6, -62, 60, -37, 55, 50, 25, 42, -75, -55, -72, -88, -42, 23, -65, 38, 7, -9, 76, -42, 19, -49, -54, -75, -74, 28, -32, -51, 38, 22, -40, -65, -42, -24, -7, 3, -72, -9, -51, 36, 44, -88, -68, -62, 0, 66, -45, 56, -71, -3, -57, -13, 33, -41, 22, -60, -75, 86, 8, 46, -49, -63, -54, -7, -47, 34, 49, 45, -40, 50, -6, 18, -77, 71, 70, 85, 30, 16, 41, -53, 33, -80, 85, -40, -43, 15, -19, 25, -55, 11, -42, 63, 11, -74, -37, 72, 27, -18, -3, 78, 22, -44, 23, -85, 72, -68, 18}, + {7, -70, -33, 30, -56, 30, 41, 64, 39, 44, 42, -56, 59, -43, -6, -11, 53, -68, -14, -70, 29, 67, -79, 76, 19, 56, 78, -59, -62, 51, 51, 33, -80, -49, -67, 37, 52, 68, 60, -19, 49, -80, -56, -25, -50, -2, -63, -36, -31, -81, -78, -57, 5, 71, 55, -48, 87, -68, -12, -27, 41, -95, -18, 24, -28, 3, -82, 40, 76, -8, -69, -68, -21, 37, 43, -53, 82, -46, -11, -57, -8, 42, 33, 74, 81, -86, -78, -63, -61, 86, 78, -56, 84, -2, -12, 63, -20, -1, 82, -43, 86, 78, 78, 74, -84, -13, 81, -60, -74, 20, 75, -60, -32, 12, -60, -11, 77, -5, 84, 90, -71, 52, -56, 71, 32, -68, -45, -61, 61, -58, -35, -13, 88, 13, 8, 76, 75, -77, -25, 3, -80, 70, 19, 33, 2, -86, 81, -75, -72, -90, 42, -40, 47, 67, -73, 50, 42, 26, 11, 62, -78, 42, 87, -34, 15, 27, -31, 61, -26, 31, 42, -81, -70, 93, 26, 11, -63, -20, -11, -42, -17, 69, -4, 34, 89, 44, -2, -29, -72, -37, -35, -63, -40, 39, 36, -79, -62, 41, 8, 105, -9, -30, 82, -2, 32, 1, -76, 88, -73, 18, 29, 55, 80, 0, 86, -50, -51, -28, 37, 47, -84, -79, -41, 34, -22, -16, 55, 68, -30, 30, -57, -95, 33, -75, -20, 0, -72, -84, -30, -75, 17, -1, 58, -37, 65, 30, 24, 33, 73, 32, -9, -24, 50, -54, -9, -6}, + {-26, 84, 34, -47, -15, 61, -53, 35, 96, -36, -48, 13, 55, 14, 20, -77, -13, 91, 48, 24, -9, -95, 44, 18, 48, 35, -50, -49, -32, -40, 61, -53, 59, 63, -37, 9, -16, 17, -117, -43, 28, 44, -14, 77, 85, -72, 49, -50, 78, 101, 100, 11, 73, 81, -38, -70, 77, 0, 89, -63, 55, 9, -11, 32, 56, -41, -67, -57, 28, 42, 40, 43, 34, -115, 63, -56, -56, -53, -63, -82, -65, 68, -51, -6, 57, 55, -73, 84, 69, -25, -9, 23, -18, -12, 42, -60, 50, -112, 36, 70, -15, 66, -63, 77, 11, 68, 68, 47, 32, -51, 12, -58, 56, -88, 62, 0, 56, -44, -32, 42, -34, 12, -54, 72, -52, -66, -56, -19, 60, 44, 85, -23, 24, 20, -58, 78, 41, 33, 59, 1, 86, -11, -73, 70, 52, 30, 27, -31, 15, -72, -73, 86, -45, 55, 45, -41, 57, 23, 42, 46, 18, -52, -78, -56, 11, -15, 39, 59, 15, 46, -80, 86, -92, -16, -33, 72, -36, 40, 56, 12, 22, -25, -64, 21, -66, -65, -46, 68, 26, -28, -67, 76, -35, -100, -85, -47, 71, 23, -43, 1, -10, -67, 0, 32, -11, -56, -37, -16, -29, 10, 84, -24, -16, 17, -92, 13, 5, -45, -43, 31, -39, -11, -67, 43, -81, 58, -79, 23, 101, 30, 30, 72, 34, -88, 10, 51, -15, 49, -1, -70, 31, -66, -15, 40, 7, -25, -28, 8, 85, 31, 71, 44, 84, 26, -20, 0}, + {25, -82, -83, -59, -8, 17, -45, 89, 99, -67, 2, -28, -44, -49, -61, 0, -75, 65, -51, -15, -85, -18, 36, -25, 58, -8, 38, 29, -24, 41, 34, 102, -63, 54, -36, -58, -65, 20, -44, -50, -11, -18, 34, -12, -12, 53, 72, -2, -58, -32, 100, 34, 29, 82, 87, -18, 28, -33, 92, -34, 21, -20, -54, 52, 32, 13, -36, -51, -58, -51, -11, -24, -2, -102, -62, 62, 51, -49, 70, 19, -65, 98, -74, 15, 30, 67, -14, -27, 41, 67, 79, -66, -2, -45, 2, -10, -40, -35, 84, 8, 79, -22, 81, -60, 54, -8, 84, -22, 0, -38, -82, 38, 38, 92, -39, -54, 23, -62, 10, 98, -39, -85, -9, -67, 17, -67, -44, 87, 62, -33, -37, -97, -9, -83, 41, -46, -49, 67, -53, -60, 62, -7, 73, 98, -15, -3, 98, 98, -17, 74, -70, 86, 86, -9, 77, 11, -20, 75, 32, 55, -49, 56, -2, 60, 25, -38, -84, -62, -4, 86, -27, -38, 5, 6, 35, -4, -15, -26, 58, 40, -17, -38, -78, -95, -92, 3, 60, 3, -42, -49, 8, -51, 1, -51, 76, -97, -50, 10, -72, 3, -77, 5, 61, 5, -40, -44, 7, 72, 54, -48, 57, -39, -19, -58, 75, 61, 40, -37, 9, 11, -83, 100, -72, 44, -79, 62, 14, 40, -50, 73, -24, -39, 31, 4, 60, -13, 82, 75, 28, -75, 39, -16, -52, 43, 31, 27, 58, -2, -82, 61, -26, -11, -34, 31, -64, 75}, + {-4, 84, -58, -13, -36, 0, 64, 36, -79, -26, 57, -51, 7, -66, 54, -7, 41, -40, 38, -85, 40, 80, 57, 8, 57, 28, 27, -76, -75, 90, -19, -37, -29, 64, 34, -85, 106, 58, -1, -47, -2, -62, -81, 13, -37, -76, -35, 59, 39, 44, 66, 76, -49, 34, 12, -35, -29, -46, -87, -60, -73, -32, 60, 79, -73, 45, -18, 2, -60, 43, 42, -59, -66, 91, 72, -44, 76, 86, 27, -79, -81, 53, 35, 38, 12, 83, -70, -77, -14, -57, 81, -51, 5, -27, 77, -80, 47, 69, 52, 82, -25, 99, 32, 78, -73, -65, 28, -7, -75, -70, -71, 22, 12, -25, 59, -57, -2, -44, -78, -36, -73, 4, -30, -42, -13, -7, -27, 41, -57, -34, -29, -34, 78, -8, 42, 75, -40, -106, 81, -39, 19, 19, 24, -50, 81, 52, 33, 85, 3, 20, -17, -21, -9, 33, 28, -76, -26, -37, -83, 81, -34, 77, -34, -72, -97, 5, -40, -25, 36, -87, -36, -3, -52, 74, 61, -93, -4, 11, -8, -63, 15, 5, -22, 103, 2, 83, -19, -45, -31, -3, -66, 12, 51, -38, -64, -83, 37, -65, -84, 81, 50, 43, -14, 85, 77, 69, -68, 21, 10, -55, -54, 26, 35, 31, 75, -24, -74, -83, -28, -83, 17, -3, -17, 77, 72, -58, -14, 34, 9, -43, -35, -11, 51, 31, -60, 47, -84, 8, -70, 33, -83, 1, -66, -50, 39, 54, 9, 43, 85, -2, 33, 22, -29, 76, 42, -47}, + {-10, -47, 61, -54, 13, 22, -56, 50, -65, -20, -52, 6, 45, -5, -30, -61, 19, 99, 43, -59, -2, -40, -42, 10, -31, 90, -36, 37, -62, -58, -70, 99, -21, 41, -23, 39, -33, -12, 56, -42, 87, 55, -69, -85, 82, 87, -26, 37, -47, 8, 80, -39, 74, -16, 14, 100, 69, -38, 68, -53, 27, 33, 83, 7, 15, 84, 33, -22, -62, -66, 37, 59, 68, 8, 83, 75, -42, 70, 12, -63, 54, 2, -17, 78, 76, 59, 23, 37, -2, -50, -78, -8, 74, 88, -57, 34, -70, -87, 90, 15, 31, -25, 44, -4, 90, 2, 99, -22, 45, -24, 88, 8, -36, 44, 2, 25, 40, 80, 82, 66, -65, -22, -81, -5, 37, -75, -12, 56, 75, 61, 34, 18, -96, 0, -36, 47, -24, -77, -57, 71, 42, 0, 76, -47, -27, 25, 1, 21, -26, 50, -4, 4, -36, 40, -86, -18, -7, 39, -21, -68, 86, 19, 33, 90, 1, 33, 71, 56, -32, 66, 52, -71, 78, 40, 47, 54, 93, -20, -17, -25, -21, 9, 33, -102, -88, 24, -32, 72, 42, 53, -77, 34, 55, -37, -4, 3, 56, 79, 12, 58, 58, -54, 47, 17, -69, 51, -60, -33, -4, 59, 87, 49, 72, 55, 10, 73, 26, 27, 69, -42, 64, 20, -13, 17, 17, -27, 61, -16, 33, -5, -42, -68, -42, -39, -10, -76, 87, 93, 23, 33, 36, -47, 36, 68, -39, -13, -73, -12, -22, -37, -18, -87, -61, -74, -115, 93}, + {-77, -61, -37, -4, 71, 9, 56, 26, -21, -4, 84, 70, -14, 85, -21, 64, 3, 62, -72, 41, -30, 48, 19, -32, 43, 18, -25, 29, 85, 7, 49, -82, 41, 17, -63, -38, -28, -84, 92, -78, -52, -12, 75, 77, 29, 57, -38, 71, 35, 20, 53, -52, 6, 72, -48, -85, -39, 73, 39, 40, -50, 78, 96, 71, 15, -13, 27, -12, -4, 52, 74, 72, 29, 70, 74, -14, 32, -89, -7, 57, 30, -65, 47, 74, 29, -67, -72, -72, -38, -24, 82, 35, -56, -53, 30, 53, -41, 19, -67, 66, -1, -7, -14, 81, 3, -5, 34, 35, 0, -50, 44, -71, -50, 39, 54, 12, 35, -32, 61, -55, -13, 31, 48, 75, 47, 85, -19, -3, -16, -27, -39, -9, 61, -16, -58, -43, -63, -28, -86, -7, 32, -4, -64, 21, -21, 59, -15, -29, -42, -8, 69, 60, -61, -25, -48, -31, 91, -79, 63, 22, -82, -5, -20, -41, -30, 75, -62, -14, -17, 38, -86, 30, 11, -67, 2, -43, 27, -68, -13, -28, -51, -39, -71, -69, 1, 14, -69, 82, 27, 69, 10, 78, -9, 77, 104, 66, 5, -32, 45, -57, 27, -26, -60, -24, -5, -70, -32, 68, -50, -18, -7, -60, -83, 22, 57, 2, 16, -1, 0, -67, 6, 61, -57, -74, 46, 0, -67, 49, 39, 79, -10, 18, -50, 44, -22, 42, 60, -56, 56, 44, -11, 23, 86, -4, 89, -72, 69, -83, 7, -4, -46, -36, -22, 74, 105, -81}, + {39, -1, -79, 33, 26, 55, -35, -38, -9, -83, 83, -13, -56, 67, 72, -39, -80, -18, -68, 52, 64, -45, 75, -82, -69, -12, -38, -87, -43, -21, -8, -74, -3, 40, -33, 70, 48, 4, -51, 38, -28, 47, 75, -34, 47, -33, 43, -35, -60, 66, 12, 58, 6, -37, 4, -49, 24, -24, -76, -65, 53, 53, -40, 58, -17, 37, -85, 55, 86, 64, -49, -40, -25, 19, -88, 75, 18, -22, -22, 64, -29, -67, -36, 60, 86, 24, -88, 13, -73, 64, -35, -33, 54, 43, -52, 40, -40, -80, -21, 22, 71, -44, 21, -23, 2, 54, -62, 9, 80, -54, 34, -5, 19, -45, 78, -53, 4, 15, 30, 82, 74, -54, -61, -85, -4, -80, 46, 56, 69, -53, -81, -31, -22, -84, -76, -46, 52, -50, 14, 14, 41, -24, -68, -4, 74, 72, -89, -63, -7, 41, -19, -46, 38, -42, 77, -54, 9, 52, -59, -6, -77, -61, 9, -62, -33, -49, -65, 85, 11, -15, -67, -79, -3, 79, -31, 40, -66, -61, 33, -48, 17, -36, -44, -46, -58, 35, 88, -3, 78, 56, 16, -51, -9, -57, -52, 60, 67, 58, 0, -6, 46, -56, -45, 23, -2, -44, -58, 38, 84, -18, 67, -9, -59, 83, -77, 73, 8, 56, -10, 18, -18, -52, -11, -37, 55, -73, -19, -25, -41, -54, -86, -47, -7, 25, -35, -82, -36, -46, -79, -78, 89, -25, 48, 12, 1, -16, -43, -68, 42, 49, -44, -79, -21, 31, -50, 83}, + {-53, 81, 59, 3, -34, -28, 11, -51, -4, 65, 27, -88, 12, 27, -3, -80, 11, -51, -51, 56, 34, -25, 12, -65, 75, -46, 31, 58, -45, 45, 61, 18, 12, -88, 46, -10, 7, -32, 17, 56, 18, -61, 83, -78, -67, 69, -59, 73, 18, 29, -45, -38, -32, 77, -6, 81, 11, -70, 32, -40, 18, 25, 77, -67, -1, -6, -58, 84, -8, -42, -60, 16, -67, -74, 21, -27, 10, -45, -87, 38, -44, -52, 29, -38, -76, 58, -58, 45, -20, 79, 72, -86, -53, 47, -45, 26, 71, -6, 60, 32, -72, 33, 70, 53, 73, 48, 58, 42, 72, -6, 12, -38, 87, -77, 35, -60, 3, -36, -19, 39, -14, -35, 68, 25, -66, -42, 81, 54, -70, -37, -42, 80, 50, -78, -52, -53, -4, 29, 33, 82, -23, -25, -21, 78, -11, 10, -25, 25, -27, 9, -38, -47, 22, 18, 44, 1, -45, -2, 68, 73, 27, -65, -10, 70, -92, 67, 61, 64, 38, 54, -6, 5, 57, -33, -72, 53, -16, -79, -50, 79, -6, -35, -42, 40, 47, 83, -34, -11, 31, 70, 79, -66, 88, -51, 7, 16, 2, -64, -51, -29, 0, -9, 94, -1, 34, -33, -85, -44, -83, -79, -40, 56, 100, 5, -85, -20, 79, 78, -43, -85, -27, 31, -20, 10, 10, -33, 86, 5, 46, -88, -4, 75, -21, -30, -12, -49, -45, -38, 81, 49, 55, -40, -6, -35, 0, -62, 32, 41, -87, -77, -22, 34, 40, -50, 30, 65}, + {-4, -39, -17, 80, 83, 3, -31, -55, -91, 33, 54, 88, -25, 66, 41, -17, -15, -90, -48, 58, -15, 54, -25, 9, -6, -27, 1, 68, 69, -11, -48, 81, -15, 28, -59, 82, 5, -20, -68, 32, -33, 82, 65, 67, 24, 48, 87, 36, -50, -7, 31, 83, -59, -69, 64, -66, 65, 13, -11, 83, 22, -12, 35, -44, 33, -2, 18, 64, -32, 16, 17, 5, -80, -42, -24, 46, 78, 43, 28, -61, 2, -6, 73, -63, -70, -17, -69, 56, -18, -74, 40, -39, -35, -36, -86, -66, 62, 42, 43, -14, 48, 86, 48, -90, -46, -36, -66, 29, -83, 56, 11, -60, 15, 61, -10, -11, -18, -68, -79, -56, 64, -78, 54, 74, 85, -23, -15, -64, -15, -76, -84, 25, 10, -45, 89, -13, 74, 56, -85, -32, -44, 17, 30, -78, 12, 83, 8, -8, -30, -13, -70, 2, 79, -22, 75, 20, -10, -77, -81, 36, 17, 61, 76, -45, 28, 54, -43, 71, -56, -26, 35, -22, -18, -25, 13, -60, 86, -3, -68, -73, -57, 78, -15, 73, 65, -84, -40, -22, -61, -85, -6, -37, -5, -8, 79, -27, -89, -4, -9, -53, -21, -35, -49, -11, -78, -37, -2, 54, -43, -56, 81, -34, 50, -68, -31, -41, -8, -61, -58, 32, -64, 50, 38, 60, 57, 69, -62, 4, -30, 70, -51, -81, 12, -14, 36, 85, -58, 62, -78, -73, -57, -43, 23, -60, 27, -49, 16, -15, -14, -65, -79, 62, -67, 73, 1, -67}, + {39, 88, 58, -20, 0, 56, 79, 40, 30, 90, 82, 24, -53, -29, 1, 52, -77, 66, 34, 1, -22, -27, -38, 87, 29, -35, -29, 8, -82, 95, -66, -24, -8, -46, -89, 15, -55, -70, -20, -4, 88, 68, -21, -48, -50, -13, 64, 41, 105, -8, -34, 25, -41, 66, 56, 47, -36, -67, 53, 25, -52, 43, -50, 18, -61, -16, 80, -66, -45, 35, 3, 18, -86, -84, 11, 23, 3, 14, 30, -45, 89, -17, -73, 26, 25, -60, 29, -55, 28, 30, -61, -41, -83, -68, -60, 91, 84, -13, 2, -85, 63, 46, -40, -53, -22, 31, -48, -32, 40, -27, -7, 11, 5, -84, 58, -73, -88, -80, 76, -21, 38, -1, -54, 69, -2, -61, 60, -52, 84, 62, 3, 39, 63, 46, 26, -55, -76, 9, 49, 78, -78, -29, -77, 19, -29, -13, -46, 78, 4, 67, -53, 56, -68, 37, 47, 1, 71, 37, -54, -44, -52, -86, 80, 22, -64, -59, -66, -77, 20, -65, 75, -41, -31, 92, -4, 62, 39, -48, 25, -65, -66, 76, 70, 64, -56, -17, -36, -32, 40, -64, -89, 14, 40, 70, 27, -44, -73, 11, -17, -98, -61, -30, 66, 33, 79, 76, 76, 8, -11, 85, -70, -46, 28, 50, -56, 23, -64, -21, 36, -79, 55, 37, -87, 32, 43, 1, 78, 15, -76, -63, 86, 10, 54, 33, 67, 66, -27, -59, 19, -52, 55, -57, -38, -79, -69, -79, -77, -58, -88, 80, 116, -19, -15, 0, -6, 77}, + {68, -86, 8, 84, 35, -37, 6, 48, -21, 46, -18, -42, -16, 79, 75, 90, 34, 83, 27, -22, -31, -87, 25, -20, -31, -82, -74, 75, 35, -64, -66, 9, 26, -30, 89, 89, -94, 0, 37, 35, -24, -62, 61, 28, 36, 42, -77, -46, -52, -76, 90, 44, 87, -75, 48, -74, 86, -54, -7, -48, 10, -10, 26, 66, 26, -56, -89, 19, 79, 77, 39, -74, 0, -5, -37, 51, 8, -34, 39, 21, 59, 72, 7, 19, 35, 6, 40, -77, 92, -75, -15, 0, 53, -10, -48, -67, -86, 61, 65, -28, 69, 64, -17, 72, -47, -46, 56, 82, 90, 46, -69, 61, -80, 86, 80, -18, 60, -24, 9, 93, 47, -14, 75, -77, -84, -78, 79, -59, 71, -37, -53, -27, 28, 87, 85, 51, 19, 66, 19, -25, -73, 9, -82, 39, 39, -81, -14, 0, 29, -4, -25, -15, 11, 43, 11, -16, -15, 65, -31, 36, -42, -4, 46, 2, 34, 49, 50, 70, 69, 80, 48, 42, 46, 79, -77, -49, 65, 12, -62, 78, 26, -115, -29, -101, 3, -85, 69, -25, 20, -92, -45, 37, -72, -35, -108, -67, 32, -51, 45, 69, -39, 46, -44, 33, -36, 70, -42, -51, -79, 14, -82, 86, 79, 18, -51, 12, 30, 50, 13, 57, 54, 11, 80, 67, -42, -76, -38, 72, 73, 39, -14, -81, 63, 48, 11, -50, -76, 20, -20, -103, -26, -43, -5, -46, 48, -46, -5, 56, 73, -90, 54, -60, -50, 55, -62, 76}, + {18, 53, 12, -17, -68, -25, -32, -54, -21, 24, -74, -75, -42, 8, -30, -71, 50, 23, -99, 73, -14, 29, -31, 26, 79, 52, 14, -64, 56, -36, -80, -20, -24, 46, -7, 39, 69, -80, 64, -80, -3, 26, -28, 81, 75, 52, 59, 1, 22, -69, 25, -49, 27, -53, -13, 87, -48, 33, -84, 70, 3, -52, 32, 85, 86, 70, -18, 49, -70, 54, 7, 22, -11, 60, -76, 61, 69, -35, -44, -29, -86, 43, 16, 59, 87, 27, 59, 6, 36, 33, -55, -84, -40, -10, 87, -44, -52, 24, -32, 31, -37, -52, 44, 79, 21, 51, -70, 86, 66, -12, 51, -9, -2, 50, 80, 69, 14, -113, -22, 16, -59, -39, -28, -40, -58, 71, -19, -50, 29, -87, 61, -6, 64, 33, 60, -13, 10, -70, -20, 10, -68, -112, 5, 83, -31, -94, 42, -66, -54, -39, 17, -42, 82, 77, -70, 67, -40, -60, -38, -81, 26, -39, 52, -71, -13, -40, -56, 17, 31, -51, -16, -13, -2, 69, -49, -74, 61, -19, -74, 19, 85, 6, 88, 15, -64, 75, 15, -10, 39, 67, 21, 24, -83, -1, -18, 22, 25, 58, -26, -60, -47, 48, 41, -26, 87, 4, 84, 17, -17, -72, -43, 41, 51, -21, 31, 36, -34, 61, -31, 65, 8, 70, 62, 46, -26, 49, 54, 20, 77, 103, -80, -76, 53, 1, 86, 79, -45, 23, 66, 13, -77, 21, -74, 94, 36, 41, 33, -78, -24, -77, 60, -17, -88, -54, 54, 2}, + {37, -20, -25, -20, 1, 0, -87, -48, 15, 61, 28, -37, 110, -50, -49, -80, -46, -46, 47, -87, -27, 62, -52, -70, -24, -80, -25, -19, -36, -24, 6, -89, 43, -28, 39, -2, 59, -56, 75, -53, 39, 40, -65, -24, -39, -71, 5, 43, 21, 1, 34, -87, 21, -1, 42, -61, -21, 43, -12, -2, -53, -41, 16, -4, -10, -12, 72, -14, 49, 53, 66, 15, -10, 61, 22, -59, 14, -83, 43, -6, -62, -31, 76, -9, -31, -5, -83, -16, 26, 37, 36, -22, -47, -84, 88, 59, 39, -48, 61, 80, 37, 34, 66, -68, -91, 77, 59, 46, -50, -47, -4, 43, -67, -32, -57, -38, -89, -75, 87, -54, 69, 72, 57, 75, 63, 0, -56, -33, -110, 18, 17, -2, 18, -20, 37, -58, -57, 30, -85, 67, 47, -110, -55, 2, -40, 34, 38, 1, -46, 66, 10, -42, -41, 54, 33, 65, 43, 16, 1, -58, -15, -46, 60, 60, -65, -1, -28, -37, 67, 55, -2, -69, 76, 36, 45, -25, 52, 59, -67, -18, 22, -38, -40, -6, 66, 1, -50, 54, 31, 41, 69, 29, 7, -23, -59, -69, 75, -28, -87, 1, 35, 55, 61, -5, 14, 8, 15, -66, 50, -26, -78, -87, 38, -75, 70, -33, 43, -2, -44, -84, 56, 81, 20, 57, 95, -55, -87, 82, -67, -79, -75, -84, -70, 52, 71, 50, -27, -57, -23, 38, -88, 106, 21, 81, 45, -88, 74, 14, -19, -75, -35, -81, 76, -1, 102, -20}, + {64, 15, -78, -53, -22, -33, 69, -44, -85, 4, 31, 17, -50, 46, 55, 28, -61, 60, -33, 69, -47, 50, 36, -82, -90, 17, -1, 46, -18, -71, -67, -73, 34, 60, -18, 74, 59, -64, 48, 51, 19, 43, -74, -41, 1, -44, -38, 84, -22, 36, 79, -49, 17, -39, 5, 32, -87, -51, -77, -51, -34, -60, 85, 34, -66, 53, -85, -19, -72, 28, 52, -12, 4, -36, 29, 1, -87, -5, 72, -22, 50, 73, -83, 47, 12, 66, -13, -79, 54, 2, 37, 55, -1, -63, -47, -93, -46, 41, -6, 50, 86, 86, -60, -64, -49, 32, -26, -21, -80, -57, 75, 75, 80, 61, -53, -18, -78, 38, 62, -1, -52, 61, -69, -33, -32, -37, -13, 42, 32, -45, -65, 55, -41, -62, 35, -79, 13, 74, 72, 77, -83, -46, 54, -58, 44, -74, -56, 58, 2, 76, -79, -67, 10, -22, -52, 42, 92, -16, 44, 65, -92, -28, -39, 68, -69, 17, 24, 11, 11, -73, 25, -27, 67, -60, 56, 24, 68, 17, 70, -32, 104, -44, -2, 68, -74, -56, 16, 79, -44, 81, 18, 68, -43, 15, 80, 12, 39, 6, 26, 59, -52, -2, -70, 85, -38, -22, 12, 66, 10, 35, -72, 82, -40, 80, 64, 53, 72, 80, -33, 53, 27, 13, -27, -58, 85, 36, 77, -62, -43, 23, 4, -56, -44, -14, -30, -89, -30, -74, -56, 62, 27, -44, 68, 80, 88, 38, 72, -8, 13, -37, 9, -16, 21, -76, 74, 45}, + {74, -27, -15, 83, 15, -44, 59, 17, 0, -80, 74, -29, 39, 60, -54, -35, -33, 2, -98, -80, 50, 102, 84, 70, -95, 16, -85, 7, -1, -105, -65, -95, 47, -4, 30, -86, -101, 57, -8, -30, 68, 81, -2, -95, -73, -62, -87, -83, 42, -73, 2, 0, -36, -76, -14, 45, -57, -53, -67, 73, 16, 53, -46, -40, -34, 37, 15, 36, -41, -86, -33, 5, -43, -11, -77, 57, 72, -19, 0, -24, -45, -91, 85, -4, -23, 13, -2, -35, 76, 11, 28, -9, -49, 30, 60, -82, -10, -63, 66, -86, 36, -58, 13, 69, 71, -75, -96, -34, -20, 18, -46, -43, -29, 19, 49, 37, 20, -26, -23, -40, 51, -61, 44, 66, 25, -20, -34, -44, 47, 16, -70, -28, -74, 44, -52, 12, -26, -13, 51, -36, 79, -60, -20, -66, 30, 71, 2, -86, 19, -77, 72, -45, -28, 33, 49, -68, 42, -33, 11, -73, 12, 24, -83, 45, -13, -24, -87, 54, 36, 30, 32, -59, 48, 31, 65, -85, 22, 67, -65, -14, -89, 70, 38, 57, -47, -51, 27, 56, -34, 81, -12, -88, -54, 4, -63, -24, 58, 18, 78, -65, 60, -61, -23, -1, -87, 92, -3, 69, -7, 1, -83, 12, -51, -45, 29, 7, -52, -23, 40, 43, -88, 83, -62, -74, 79, -80, 70, 2, 89, 11, -107, -70, 19, 80, 30, -4, -3, 47, 77, 62, 79, -79, -79, 59, -69, -81, 83, -61, -2, -42, 37, 13, -88, -68, 20, 40}, + {-10, 22, -80, 4, -60, -23, 39, 41, 38, -62, -3, 8, 44, -84, 22, 52, -72, -63, -79, 71, 35, -85, 89, 47, -19, 6, -3, 13, 53, -34, -25, -4, 15, 2, 45, 77, -70, -49, 27, -78, 37, -10, 40, -38, -90, 45, 10, 68, 89, 64, 26, 80, 36, 67, -48, -38, -4, -40, 81, 41, 70, -28, -2, 10, -26, -73, -72, -61, -22, 30, 17, -29, -30, -46, 50, -78, 20, 13, -70, -26, -36, -56, -14, 34, -42, 29, 42, 71, 50, -2, 32, 22, 53, -31, 73, 83, -25, -93, 52, -60, -20, 56, 19, 48, 4, -10, 62, 60, -12, 9, -88, 58, -38, -60, 88, 4, 42, -35, 87, -80, 50, 72, 13, 72, 88, 48, -12, 13, -52, 36, -57, 27, -77, -25, 29, 56, 28, 83, 37, 57, 81, -59, 66, 68, -63, -34, -13, -46, 72, -87, -3, -20, 71, -19, -50, -31, -79, 54, -89, 13, 55, -15, -46, 74, -45, -51, 25, -86, -32, 49, -71, 37, -38, 31, 66, 2, -29, -52, -67, -59, -56, -41, -87, -57, -79, -26, 27, 88, -5, -12, -6, -59, -83, 7, -66, 59, -73, 35, 75, -29, 31, 73, 76, -31, 13, -53, 81, -57, 72, 46, -15, 36, 80, 3, -65, -76, 40, -1, -73, -44, -22, 15, 76, 11, -62, 46, 88, -17, 3, 86, 69, -72, -13, -34, 12, 8, 41, 11, -72, -55, -28, -81, -71, 88, -82, 82, -68, -59, 55, -35, 92, -63, 26, -60, 45, 46}, + {-24, -37, 25, 26, -44, -67, -37, -2, 54, -47, 81, 54, 32, 27, -86, -58, -13, -30, -3, 34, 60, -50, 51, 56, -48, 59, 22, -53, -54, 86, -11, 35, -5, 26, -73, 27, -72, 54, -47, 88, -51, -69, 38, 31, 38, 46, 5, 36, -54, -83, -26, -18, 51, -43, 17, 61, 23, -48, -15, 19, 37, -31, 3, -5, -77, 19, -13, 85, 49, -87, 1, 34, -50, -4, 0, 83, -20, -7, -26, 12, -75, -58, -73, 63, 54, 42, -56, -22, 11, 4, 30, 55, 16, 58, 35, -58, -78, -50, 20, 30, 69, 67, 62, -87, 9, -3, -18, -63, -29, 79, -33, 24, -29, 4, 34, -20, -37, -60, -40, 8, -9, -43, 76, 5, 19, -44, -70, -36, -84, -47, -48, 60, -61, 1, 86, 4, -61, -49, 56, -30, -41, 66, 45, 77, 71, -44, -77, -42, 79, -59, -73, 15, 13, -29, 80, -70, -2, -26, -15, -7, -86, -42, -9, -52, 31, 41, 41, -41, 4, -59, -13, 17, 78, -44, 59, 42, 30, 30, -10, 40, 77, -65, 54, 23, -23, -62, -39, -46, -55, -10, -45, -38, -70, -28, 84, 16, 48, -35, 20, 82, 3, -59, 4, -32, -9, 49, -14, 57, 52, 19, 81, -80, -62, -50, -74, -66, -64, -23, 1, -86, 26, -78, 59, -67, -61, -31, -36, 72, 30, 1, 68, 21, 7, 7, -34, 83, 39, -16, 49, 25, 39, 48, 77, -22, -28, 70, 49, 51, -35, -12, -46, 39, -18, -66, 44, 44}, + {85, 82, -2, 6, 5, -8, 72, -8, -72, -73, 87, 64, -43, -43, 71, 75, -45, -49, -29, -50, -73, -31, -22, -49, -70, 44, 43, -84, -51, -103, 41, -77, -25, -6, 70, -90, 87, -87, 94, 24, 20, 2, -53, 79, -33, -86, 33, 22, 7, 6, 58, 44, 12, -66, -5, -41, 66, -47, 48, -60, -29, 40, 53, 58, 43, -75, -84, -76, -21, 50, 12, 12, -78, -45, -54, -45, 71, 51, -1, 29, 38, 32, 27, 42, 60, 69, 63, 33, -80, -52, 83, 80, -60, -60, 2, 56, 28, 6, -12, 57, 36, -64, 14, -80, 35, -67, -56, 5, -58, -43, -75, -26, 32, 49, -47, -74, -53, -37, 75, -34, -5, 63, 46, -42, 88, -55, 33, -46, 40, -83, -25, 76, -70, 87, 73, -64, -38, -65, -72, 3, 66, -97, -5, -42, 55, -58, 10, -40, -6, -39, -32, -38, 85, 52, -73, 28, -13, -55, -21, 74, 29, -18, -42, -52, -8, -23, -41, -61, 68, 25, -15, -51, -21, 80, -15, -46, 17, -15, 53, -59, 12, 37, 42, -32, -40, -48, 31, -36, -73, 65, -2, 19, 46, 65, -66, 88, -59, 23, -67, 65, -17, -88, -66, -9, 28, -22, -24, -25, -78, 35, 82, 40, 73, 48, 67, -17, 3, 27, 54, 85, 7, 23, -87, -33, 84, -47, 39, -89, -11, -2, -16, -81, -45, -52, -87, 51, 50, 26, -54, -41, -9, 61, -42, 43, -44, 40, 37, 39, -27, -27, -69, 31, 57, -20, 9, 79}, + {63, 6, -62, -48, 42, 27, 27, 67, -31, 72, 53, 45, 44, 86, 61, 12, 11, 36, 24, -79, 69, 27, 16, 46, -38, 66, -85, -22, 88, -56, 38, -72, -10, -57, -71, 62, -70, 18, -35, -27, -21, 78, 48, 9, -11, 7, -74, -22, -5, 35, 61, -2, 52, -21, -76, 21, 35, -69, 85, 32, 23, 39, -37, 74, -91, -56, 59, 16, -88, -63, 77, 43, -28, -20, -49, -4, 8, -21, 43, 58, -86, 2, 59, 48, 19, 68, -78, 39, -29, -1, -24, 59, 56, -85, 60, -74, -42, 37, 40, 8, -80, -38, 62, 80, 27, 77, 63, -86, -82, -58, 14, -80, 43, 6, -80, 8, -16, 55, 4, 17, -66, -13, 65, -14, -36, 12, -6, 43, -73, 34, -47, 78, -33, -21, 60, 50, 1, -33, 1, -52, -51, -33, 18, -35, 41, 2, 45, -64, -69, -11, 46, -85, 68, -61, -40, -87, -3, -15, -9, -89, -79, -35, -22, 53, 76, -77, -72, -42, -35, 27, 58, 77, 28, 44, 37, -49, 57, -77, 66, -48, -65, -66, 27, -46, 79, 61, 63, -53, -71, -72, -19, -74, -4, -52, -41, 17, -73, -18, 60, 10, -6, 58, -24, 65, 82, 81, -14, -37, -30, 82, 39, 41, -63, -90, -39, 56, 7, -45, 20, 67, -76, 69, -28, -33, -74, -63, 53, -36, -41, -27, 48, -47, -86, 11, -30, -37, -83, 85, -50, -65, -20, 52, 21, -66, 71, 40, 31, -50, 75, -29, -88, 44, -16, -87, 69, -30}, + {-30, 79, 24, 12, 45, 27, -47, 18, -54, 85, -41, -51, -12, 55, -81, 67, 39, 83, 38, 47, 90, 10, -29, 40, 38, 67, -28, 25, 11, -55, 88, -78, -77, -80, -57, 36, -29, 48, -46, 27, 91, -6, -56, 75, 22, -4, 64, -19, 79, 66, 84, -18, 33, 86, 73, 19, -20, -28, 33, 80, -77, 60, -44, 36, 65, -81, -59, 80, -72, -43, -50, 25, -70, 88, 54, -84, -25, -55, -47, -8, 72, -27, -4, -72, 12, 46, -23, -11, -62, -37, -57, 77, -88, -13, -68, -74, 6, 16, 40, 5, -87, 47, 24, 17, 31, -52, -33, 8, -30, 79, 81, 2, 32, 12, 83, 83, 74, -66, 17, -78, 38, 47, -6, 60, -21, -8, 49, -2, 28, -49, 53, 42, -2, 21, -40, 66, -75, -55, 44, 12, -86, 0, 77, -19, 51, -85, -86, 68, 26, -81, -1, 46, 70, 4, -17, 71, 39, 70, 61, 43, -44, -36, 43, 52, 76, 63, 60, -39, -20, 84, -25, -43, -65, -61, -83, 17, -39, -70, -7, -84, -81, -78, -15, 35, 18, -38, 40, -17, -12, 88, 39, 66, -72, 29, 82, -44, -84, 90, 14, 43, 50, 62, -60, 49, 50, -86, 57, -57, 14, -24, 81, -63, -6, -35, -65, -4, -1, 34, 37, 18, 87, 56, -78, 61, 88, 14, -17, -7, -73, -41, -6, 19, 20, 46, 14, -5, -86, 61, 91, 55, 88, -24, -18, -70, 60, 31, 69, -46, 66, -70, -62, -68, -38, -60, 42, -39}, + {-38, 81, -80, -13, 23, -118, 29, 58, -41, -38, -54, -75, -25, 33, 52, -30, 30, -27, -67, -4, -62, 92, -31, -68, -45, 58, -37, 50, -89, 62, -2, -40, -47, -41, -42, -10, 8, -15, -50, 35, -82, 68, -82, 19, -61, 70, 7, -45, 36, 28, 39, 65, 25, -51, -18, 45, -80, 39, -106, -8, 78, -63, -1, -49, 80, -65, -44, 52, -2, 51, -2, 28, 74, 95, -68, 21, 39, 75, 48, 29, -22, -17, -66, -6, -44, 90, -66, 48, 36, -23, -68, -48, -28, 92, -52, 69, -51, -60, -49, -87, -91, -36, 22, 58, -9, 75, -56, -55, -69, -21, 75, -50, -74, -41, -7, -59, -49, -50, 42, -62, -46, -43, -56, 65, 66, 41, 26, 67, 29, -59, 19, 78, 30, 9, -7, 23, -68, -18, 19, -8, 22, -90, 86, -62, 1, 16, 58, 26, 59, -49, 88, 87, -46, 62, -2, 6, 13, -53, -53, 65, 4, -77, -46, -34, 46, -77, -28, 31, 1, 43, -70, -1, 59, -20, -20, -57, -73, 88, 52, 90, 10, 49, 41, -43, 71, -29, -25, -46, 45, 18, -67, -10, -1, 19, 59, 41, 12, -18, -16, 47, -61, 42, 63, 19, 84, -61, 28, 37, -51, -50, 74, 78, 68, 2, 59, -36, 20, -7, -48, -46, -43, 68, 4, -65, -3, 1, 38, -26, -10, 19, -5, -97, 76, -27, -8, 7, -35, -6, 13, 43, -72, 51, -88, -72, 58, 72, -77, -56, 71, 36, -15, 58, -29, 36, 118, 38}, + {-50, -5, -13, -46, -1, 54, 85, 31, 28, -43, 20, 51, 5, -67, -52, 88, -97, -14, 33, 6, 125, 90, -17, -46, -69, 54, -68, 67, -47, -58, 32, -64, -58, 6, -4, 56, 12, 56, 38, 64, 83, -83, 11, -61, -71, 35, -84, -2, 118, 59, -74, 6, 20, -48, -10, 68, 77, 57, -6, 17, 25, 55, 84, 7, -39, 56, -37, -67, 27, -25, -26, -63, -50, 43, -58, 86, -43, 18, 28, -86, -75, -12, 6, 81, -79, -10, -62, 29, 19, -74, 46, -28, 80, 4, -6, 81, -6, 37, -65, 81, 10, 74, -54, -48, 4, 32, 32, 23, 45, 62, 89, 62, -6, -53, -22, 36, 79, 7, -79, -24, 66, -3, 67, -44, -54, -55, -21, -10, -63, -43, -5, -39, 41, 45, -81, 80, -65, -38, -72, -35, -67, 31, -69, -73, 33, 92, 39, 57, -2, -45, -47, 24, 45, 29, 10, -43, 47, 58, -1, 78, -86, 64, -4, -40, -26, -32, 1, 66, 41, -80, 82, 2, 106, -86, 74, 37, 64, -59, 64, -88, -14, -74, 51, 17, 1, -68, 67, 10, 68, 78, -68, -86, 28, 50, -7, 19, -25, -74, -58, 20, -86, -20, -69, 17, 49, 71, -42, -66, 93, 68, -63, 40, -23, -68, -5, -33, -65, 38, -80, 15, -86, 7, -77, 63, -22, -90, 27, -51, -16, 65, -36, 20, -68, -51, -53, 10, -42, 22, -30, -66, -66, 19, -48, -74, -18, 60, 12, 29, -76, 26, 19, -82, -41, 70, -69, 69}, + {55, 2, -59, 27, -59, 5, -70, -56, 46, -78, -79, 32, -8, 55, -62, 62, 54, -86, -81, -12, 26, -19, -52, 80, 31, 45, -85, 29, -28, 71, -10, -16, -78, 2, -68, 41, -21, 59, 33, 63, 57, 23, -45, -66, -45, 44, -17, -21, -19, -88, 7, -84, 8, 83, -2, 60, -42, 34, 47, 75, -74, 25, 34, 50, 52, 1, 5, 88, -71, -37, 75, -89, -90, 0, -13, -40, -86, -76, -28, -19, 0, -87, -40, 56, 48, 42, 51, 14, 4, -8, 55, -85, -29, 56, -8, -17, 53, -92, -49, -4, 87, -75, -70, -48, -75, 87, 63, -6, 30, -48, 11, -13, -68, -82, -66, 41, 81, -47, 78, -83, 80, -47, 4, -71, -41, 31, -2, -79, 1, -80, -28, 37, -75, -39, 17, -23, 40, -12, -84, -54, -63, -22, -84, 3, -52, -6, 45, -5, -49, -43, -50, -87, -26, -39, 51, 52, -11, -85, -14, -58, -41, -16, -67, -52, 82, -60, -9, -3, -66, -94, -74, -6, 19, 50, -72, 29, -13, 7, 0, 41, -73, -22, -76, -24, -34, 18, -71, 18, 15, -81, -56, -7, -68, 72, 44, -31, 33, 50, 4, 56, -3, -17, -3, -4, -38, -37, -44, 52, -40, 77, 0, -64, -59, 82, -19, -78, -56, -19, -8, 23, -47, 40, 88, -84, -7, -22, 80, 55, 52, -4, 13, -64, -34, 21, -72, 69, -34, -2, 69, -10, -67, 72, 79, -37, -48, -66, -9, 6, -6, 20, 40, 12, 75, 80, 52, -37}, + {-21, 36, 36, 37, -32, 100, 82, 78, 50, -10, 51, -25, 18, 88, -22, -58, 121, 99, 32, 8, 52, 52, 41, 34, 6, 48, 1, -71, 24, 65, 81, -40, 84, -11, 81, -40, -31, 51, 63, 77, -44, -9, 72, -29, 91, -6, 46, -48, 43, -33, 85, 66, -20, 23, 12, 4, 52, 88, -10, 19, 23, 41, -36, -42, 19, -11, 59, 69, -49, -12, -38, 82, -84, -51, 26, -6, 70, 28, 5, 38, 22, 39, -20, -58, 72, 57, 52, 43, -11, 13, 64, 45, -66, 26, 11, -57, 18, -54, -81, -26, -44, 9, 23, -13, -82, -36, 93, 83, 43, -69, -48, -74, -25, -50, 51, 55, 52, 38, -4, -69, -20, 5, -18, -35, 84, -41, -14, -4, 55, 86, -71, 43, 18, -49, -55, -70, -81, 14, -68, -10, -26, 54, -56, -28, 37, -71, -85, -81, -57, 40, 53, 22, 61, 11, -52, 83, -63, 4, 39, 20, -77, -78, 82, -67, 62, -15, 33, -30, 59, 31, -52, -29, -85, 19, 63, -5, 56, -73, 64, 80, -9, -7, 21, 1, 32, 30, -74, -36, 53, -82, 79, 25, -58, 6, 65, -14, -30, -18, 77, 47, 88, 40, 56, -20, 74, 88, 12, -48, 19, 14, 34, 28, 24, -24, 32, -9, 51, 17, -32, -12, -23, -65, -52, 61, 46, 21, -89, 48, 58, 29, -70, 11, -54, -10, -33, -2, 76, 73, 62, -58, 32, 12, 84, 78, -51, -37, -50, -55, 78, -53, 23, 2, 86, -91, -52, 94}, + {24, 55, 88, -55, -32, 96, 55, 55, -4, 53, 46, -81, 44, 5, 73, 44, 95, 26, -30, -27, 59, -49, -15, 55, 62, -7, 51, -51, -88, -77, 32, -1, -58, -35, 34, 54, 22, 79, -34, -7, -47, 4, 32, 4, 41, -51, 14, -8, 1, 45, 7, -14, -14, 85, 2, 54, -61, -46, 81, -21, -26, -53, -13, 12, -30, -74, 7, -81, -85, -35, -75, 52, 63, -8, -69, 33, 6, -40, -48, -61, 88, -30, 53, 9, 23, 59, -1, 73, 63, 43, 58, 5, 70, 35, -80, 19, -5, 11, 17, -19, -1, -76, -80, 35, 63, 72, -13, -3, -67, -39, -86, 25, 67, -8, 21, 9, 25, 31, -8, -57, 9, 65, 68, 59, -36, -17, 28, 89, 73, 51, 23, 70, -55, -43, -57, 13, 72, -38, -45, 38, 44, -40, 65, 72, -36, -20, -32, -13, 85, -31, -66, -47, 26, 12, -3, -43, 11, -30, -61, 76, 75, -40, 45, 70, 6, -87, -28, 4, -74, 76, -80, -73, 79, -31, -27, 61, -20, 84, 93, 82, -20, 5, -83, -71, -84, 16, 60, 85, -85, 58, -32, 13, -74, 11, -42, 47, -81, 58, -87, 11, -52, 61, 72, 26, 35, 28, -20, -56, -32, -61, -54, -10, -63, 52, 19, 21, -84, -52, -5, 84, -42, 27, 37, -80, -55, -76, 34, 18, 49, -50, 31, 94, 14, -2, 3, 79, 31, 68, 82, -20, 50, -27, -82, -63, -82, -48, -74, -83, 8, 13, 36, -35, -58, 41, 5, 39}, + {11, -11, -24, -10, 6, 39, -14, 47, -56, -15, 73, 0, 13, -81, -36, 74, 63, 25, 42, 75, 23, 21, 60, -28, 78, -61, 33, 16, -34, 12, -71, 65, 14, -76, -17, -62, 45, 87, -38, 30, -8, 51, -15, 13, 18, 84, 63, -53, -54, -41, 30, -83, -37, 22, -49, 24, 72, -3, 82, -69, -87, 9, -69, 78, -62, -53, 26, 69, -59, 49, -61, -2, 7, 35, 47, 64, -78, 5, -94, 41, -22, -28, 37, -79, -36, -58, -22, -52, 53, 79, 41, 84, 78, -58, -43, -70, 52, 53, 80, -52, -13, -67, -74, 23, -49, -85, 36, -80, -75, -29, 78, 17, 84, -39, -60, 5, 2, 51, -28, 38, 40, 73, 35, 52, -36, 43, 24, -4, -1, 31, 22, -69, -75, -79, -85, -24, 70, -70, 77, 55, -36, -34, 38, -50, 52, -68, 24, -35, -62, 19, -75, 35, -46, -32, 45, -57, -1, 47, 31, 75, -93, -2, 52, 43, -32, -30, -66, -83, -77, -18, 41, 75, 75, -46, -65, -3, 23, -53, -84, 29, -30, -15, 76, -12, -40, -39, -26, -82, 11, -86, 22, 66, -88, -27, 46, 1, -4, -68, 60, -79, -74, -80, 25, 75, -24, -11, -37, 70, -1, 19, -48, -54, -34, 8, -88, -54, 67, 10, 63, -13, -40, 22, -45, -65, -25, -13, -89, 41, -65, -79, 23, -59, -54, 16, -32, -80, 77, -69, -65, -72, 15, 0, 19, 41, 56, 71, 14, 23, 62, -17, 56, 53, -86, -11, 82, 48}, + {-84, -33, 47, -64, -59, 43, -58, -27, -64, 37, -5, 40, -66, 51, 79, 11, -35, 33, 18, 74, 2, -41, -46, 62, -31, -39, 53, 14, -29, 48, 10, 26, -2, 61, -39, -34, -23, -23, -64, -59, -14, -73, 3, 69, -1, -75, 79, 89, -58, -37, -18, 26, 14, 6, -77, 54, 55, 64, -39, 68, -16, 29, -63, 45, -66, 68, -40, -38, 78, 24, 73, 10, 76, -34, 2, -10, -36, 13, 23, -46, 67, 13, 67, 38, -74, 50, -69, 36, -13, 72, 45, 48, -66, -70, 28, -54, -12, 72, 76, 70, 37, -79, 35, -37, 61, 5, 45, 3, 8, 24, -43, 3, -6, -66, 61, 32, 79, -35, 24, 81, -50, 31, 1, -63, -35, -39, 90, 69, -27, 59, -39, 87, 31, -96, 7, 54, 55, -26, -59, -29, -35, 60, -60, 26, 21, -62, -47, -43, 7, -63, -77, -33, 31, 84, -42, -45, -53, -7, 51, -51, 71, 4, 89, 86, 95, 67, -87, -44, 27, 60, 33, 38, 29, 60, -6, 34, 53, -81, -78, 46, 52, 57, -15, -41, -52, 9, -51, 22, -88, -59, 33, -66, 47, 54, -48, 54, -21, 52, 72, -47, 59, -63, -55, 63, -46, -54, 25, 80, 1, 93, -45, -13, -32, -5, -63, 57, -16, -58, 77, 46, 14, 41, -78, -41, -13, -6, -55, -65, -53, -14, 66, 11, -16, 36, -76, 33, 17, -38, -41, -20, -81, 36, 33, -32, 22, 10, 20, 61, 34, 33, 70, 83, -13, 33, -73, -25}, + {20, 3, -19, 17, -15, 36, -42, 8, 62, -32, -68, -19, 53, -15, -85, 51, 58, 1, -60, -5, 29, 52, -41, -74, -44, -87, 9, -13, -28, -93, 3, 39, 28, 57, 11, -17, 60, -48, 16, 25, -64, -17, 69, -30, -19, -4, 2, 23, 13, 2, 4, 68, -24, 10, -10, 68, 36, -56, -31, 24, -22, -22, -44, 35, 42, 45, 74, -75, -47, 18, 34, 41, -44, 17, -49, -39, 67, -4, -11, 71, -14, -38, -17, -53, -92, 70, 10, 46, 84, -65, 9, 1, 29, 25, -15, -47, -68, 42, 45, 2, 63, -58, 72, -19, 30, 68, -83, -69, -73, -70, 75, 51, -4, 88, -48, 70, -77, -84, -5, -78, 14, 68, 45, -91, -3, 43, 30, 65, 43, -19, 68, 41, -20, 38, -24, -47, 25, 25, 24, 47, 7, -89, 60, -75, 19, -83, -80, -78, 63, -77, 57, 9, -64, -58, -54, -74, 17, 87, -27, -17, -90, 39, -47, -8, -54, -82, -48, -35, 39, -37, -65, -71, -75, 5, 69, -18, -80, 41, -56, 1, 13, -67, -46, 58, 78, 15, -70, -41, -1, 65, -9, 27, 49, -12, 25, -21, 11, 60, -67, -60, 57, -16, -63, 3, 12, -47, 18, -86, 21, 17, 19, 73, -33, 70, 28, -49, -80, 77, -18, -76, 54, 50, 32, -45, -63, 33, 57, 72, -33, 50, 74, 40, -46, -52, -64, -42, -26, 55, 45, -53, -36, 55, 10, 66, 57, 3, -72, 85, -29, 11, 40, 47, 27, -78, 41, 17}, + {36, 16, 12, -14, -68, -94, 78, -8, -65, -79, 82, -63, 2, 8, -42, -3, 69, -59, -11, 38, 51, 65, 73, 75, 9, -42, -73, 57, -65, -86, -14, -71, -59, 79, 11, -96, -62, -55, 25, 42, -49, -74, -110, -47, -46, 32, 70, 67, 102, -94, 61, 62, -37, 57, 31, 50, -19, 57, 17, -67, 8, -40, -44, 69, -53, 67, 64, -13, 82, 56, -20, 59, 77, 12, 63, -22, 17, -52, -46, 69, -33, -22, -19, -55, 39, -8, -30, 57, 68, 47, -54, -56, 0, -6, -2, -22, -40, 43, 30, 14, 16, 78, -35, -33, -49, 58, -90, -53, 67, 66, 67, 78, -68, -23, -51, -47, -57, -34, -1, -87, 4, -9, -88, 35, -18, 45, 35, -62, -87, 53, 20, 71, -65, 92, -56, 16, 56, -63, -80, 29, -27, -62, 57, -83, -37, -24, -21, -55, -70, -34, -32, 59, -85, 24, 61, 78, 43, -65, 48, 32, 19, -48, -8, -84, -48, 56, -78, -48, 49, -91, -19, -6, 45, -11, 70, 42, 56, 53, 83, 16, -34, 41, -58, 50, 21, 56, 50, 76, -63, -9, 5, -45, -59, -10, -67, 40, -64, 23, 82, 60, 4, 14, 61, 30, 14, 88, -73, -38, 38, 55, 84, -55, -42, -84, -27, 50, 1, 40, -24, -74, 40, -36, -23, -48, -31, -50, 53, -27, 30, 2, 95, 39, 19, 41, -31, -66, 43, -91, -41, -38, -18, -17, 34, 61, -70, -50, 66, 20, 62, -14, 93, -58, -55, 47, 86, 45}, + {-7, 40, 44, 27, 54, -104, -23, 29, 85, -64, 4, 22, -53, 72, 8, -71, -41, -64, -109, 17, -25, 120, -4, -33, 56, 36, 77, 30, 24, -66, 35, 2, -34, -16, -23, 69, -44, 4, 26, 57, 55, 84, 30, 16, 24, 63, 40, -19, 60, -9, 29, -20, 81, -77, 28, 67, -31, -3, 39, 25, 13, -43, 22, 72, -18, -65, -85, 32, -77, -57, 89, 33, -80, -46, -48, 43, -43, 40, 68, -9, 60, 86, -2, 79, 82, 52, -25, -91, 72, 58, -82, 30, -86, -48, 106, 41, 36, 76, -42, 8, 56, 14, -33, 78, 73, -33, -50, -74, -13, 48, -16, -88, -67, 27, -51, -67, -57, 39, 22, 2, 72, 54, 67, -23, -70, 17, -84, 1, -101, -71, 16, -49, 22, 93, 4, 84, 31, -38, 1, -68, 33, 23, 67, -15, 76, 12, -53, 57, 36, 15, -52, 39, -60, -44, -65, 9, 21, 88, -86, -22, -18, -69, -33, -45, -89, -68, 55, -41, -12, 69, -29, 37, -18, 67, 55, -1, -12, -37, -9, -64, -7, -40, 43, 55, 74, 0, 34, 9, 56, -35, -13, 67, 76, -19, 110, -12, -74, 38, -48, -19, 2, 81, 52, 79, -17, 7, -58, -22, 46, -41, 61, 71, -41, -83, 20, -53, -80, 76, 27, 0, 45, 62, 31, 71, -70, -51, 69, 87, -7, -16, 5, -44, -43, -9, -21, -26, 5, -47, -72, 66, 65, 42, 24, 54, -62, -30, -69, -83, 11, 69, -71, 6, 59, -2, 35, 21}, + {-13, -66, -3, 50, -42, -47, 64, 18, 13, 3, 37, -81, 63, 0, 33, -6, -4, 84, 65, -32, 54, 36, -8, -88, -91, -86, 6, -82, -80, -61, 43, -4, 60, -27, 36, -79, -38, 63, 48, 69, -48, 13, 42, -57, 72, 85, 71, -78, -58, -67, -84, 64, -88, 13, 83, 44, 79, -36, -18, -86, 39, -34, 11, -73, 37, -36, 47, -14, -61, 39, 86, 41, -84, -48, -42, -71, -76, 17, 63, -7, 22, -49, -52, 28, 18, 62, -10, 55, 79, 63, 85, -46, 63, -52, 74, -65, 32, 73, -12, -73, -44, 51, -27, -69, 37, -55, 4, -55, 57, -26, -88, -79, -53, 26, 42, -76, 69, -18, 25, -66, -51, 8, 40, -52, 33, 78, -59, 28, 64, 15, -88, 85, 7, 46, -51, 24, 40, -56, -7, 78, -80, 66, 74, -23, -6, -56, -5, -31, 54, -69, -59, -31, -34, 73, -59, 20, -12, -60, -62, -18, -45, -16, -7, -21, 78, 88, -80, -30, 14, 21, -73, -40, 16, 36, -46, 29, -49, 9, -32, 35, -78, -69, -55, 59, -43, -70, 27, 42, 26, 34, 10, 51, -53, -25, -51, 42, -19, 5, 23, -35, 51, 11, 34, 30, -81, 63, -46, -1, -39, -17, -11, 36, -4, 23, 31, -14, 76, -19, 72, 86, 12, 69, -44, -83, -32, 12, 33, 33, 96, 84, 27, 35, 78, -7, -52, -21, 44, 67, 15, 21, -18, -9, 85, 33, -70, -17, 47, 12, 58, -52, -1, -71, 26, -25, -52, 72}, + {-30, 43, -20, 68, -9, 41, -77, 70, -63, -30, -36, -78, -63, 16, 32, -56, 25, 100, 9, -17, 25, -24, -78, 5, -79, -11, -20, 33, 41, 21, -12, 75, -28, 14, -45, 46, -13, -61, 87, 22, -108, 53, -35, -60, -23, -22, -68, 1, 5, 11, 20, 88, 68, -78, -63, 56, -8, 60, 61, 34, -25, 23, 53, -76, 21, -1, -31, -19, 2, -10, 60, 2, 43, 0, 58, 57, -50, -73, -74, 11, 52, 35, -70, -17, -24, 23, 37, 27, -72, 26, 37, 49, 58, -58, 112, 19, -28, 39, 66, -57, 20, 100, 68, -69, 26, -22, -8, -75, 56, -25, -38, 26, 39, -46, 85, -53, -87, 52, 19, 75, 26, 10, 32, 17, 70, -88, -20, -55, -22, -70, -72, 53, -34, -34, 50, 42, -30, 2, -26, 85, 55, -60, 4, -74, 42, 42, 49, -26, -75, 40, 9, -11, 80, 5, -42, 40, 12, -82, 87, -1, 78, -75, 1, 64, 79, 77, 22, -26, 57, 80, 80, -64, -85, -26, 49, -22, -72, 79, -79, 10, -4, -62, 77, -47, -51, 26, 24, 53, 53, 97, -39, -42, 27, -83, 42, 18, -37, 59, 58, 48, 44, 29, 33, 16, 24, 42, 62, 26, -25, -18, -38, -77, -70, -79, 9, 5, 64, 67, -31, -85, -42, 68, 22, 67, 8, -42, -58, 71, 40, 36, -37, -44, -63, 59, -16, 61, -29, 54, 6, 64, 78, 53, 55, -25, 47, -74, 82, 68, 26, -20, 9, 49, 11, -88, 56, -89}, + {25, -48, -37, 18, 5, 10, -50, 7, -3, -80, 27, 83, 18, -50, -78, 29, 54, 25, 87, 37, -6, -62, 48, 30, 74, -29, 54, -39, 57, 2, 61, -61, 73, -80, -30, -23, -86, 69, 20, -37, -28, -43, 18, -46, 17, 89, 3, -24, -71, -84, 10, -31, -5, 89, -42, -85, -31, 86, 89, 36, -19, 21, 89, -12, -36, -84, -27, 0, 11, -35, -61, 26, 60, -84, 46, -7, 3, 19, 88, -51, -79, -71, -9, 36, -64, 45, -32, -19, 83, 27, -18, 18, -69, 26, -7, -19, -3, -92, -20, -89, -64, 52, -76, -36, 78, -30, -20, 7, -17, 9, 67, 91, 61, 62, 3, 37, -75, 68, 77, 24, -16, 59, -89, -65, 63, -23, 85, 57, -4, 12, 31, -5, -1, -88, -13, 20, -11, 12, -53, -76, 83, 21, 33, 17, 14, -13, 81, 60, 52, -43, -60, -7, -54, -24, -1, -50, -60, -34, 64, -9, -58, 14, 70, 41, 6, -14, -61, 13, -3, -44, -68, -9, 62, 51, -41, -17, -14, -18, -25, 31, -4, 2, 76, 79, 22, 49, -46, 43, -57, 27, 50, -48, -18, -16, -10, -73, -8, -8, -65, -73, -23, -25, 89, -59, 40, 11, 78, -5, 81, 37, 59, -56, -65, -82, 33, 72, 70, -43, -12, -85, 21, 34, -39, -78, 86, 13, 21, -56, -3, -3, -51, 13, 4, 39, -56, 18, -77, 85, 83, -91, -84, 58, 21, 41, -95, 52, 80, -86, 24, 8, -35, -56, -17, -13, 36, -16}, + {2, 75, 42, 13, 38, -69, 67, -86, 10, 12, 39, -62, 52, 66, -5, -73, -42, 54, 57, -70, -41, -21, 43, 68, 65, 55, -22, -65, 74, 48, -39, -11, 34, -20, 3, 16, -16, 52, 6, -69, 83, -56, 99, 45, 89, -85, -16, -72, 14, 14, -82, -43, 67, -55, 19, 51, -10, 69, 24, 9, 80, 7, 55, 38, 14, -25, 70, 87, -74, 38, -65, -9, 55, 74, -63, 25, 69, -2, 81, 44, 84, 21, -23, 33, -75, 74, -20, 35, -48, -66, -49, -24, -8, -4, 23, -70, 8, -13, 65, -64, 35, -13, 24, 19, 61, 17, 64, -28, 88, -23, 57, -68, 9, 74, -77, -61, -57, 4, 27, -19, -11, -36, -84, -76, -47, -51, -34, 73, -47, 49, 79, -66, 101, 5, 20, -46, 42, 32, 85, 34, -72, -79, 6, 31, -3, -14, -66, 46, -66, -32, 54, -83, 47, -19, -1, -39, 19, 61, -88, 10, -54, 64, 81, 26, -70, 21, 15, -13, 27, -57, -68, 30, -25, -52, -71, 88, -32, -6, -30, 24, 33, 9, 46, -95, 23, -85, 8, 49, 29, 24, 56, -71, -66, -58, 30, -79, -14, 68, -43, 44, -55, 67, 10, -60, -51, -19, -64, -12, 4, 13, 2, 69, -66, 81, 1, -1, 64, -35, -12, -80, -80, -49, 16, 24, -51, -25, -67, 70, 42, 25, -32, 59, 83, 72, -68, -4, 83, -3, 7, 80, 49, -38, 19, -46, -16, 32, -35, -13, 70, -49, -83, 9, 43, -44, 37, -36}, + {52, -27, -16, 46, 85, 13, -1, 20, -91, 84, -55, -7, 67, 42, 62, -25, -60, 29, -79, -57, 89, 124, 2, 52, -58, 73, 21, 44, -34, -30, -20, -87, 54, 44, -3, 68, 66, 46, 54, -78, -35, 72, -30, 29, -3, -66, 4, -93, 13, 20, -62, 55, -59, 32, 76, 1, 71, 21, -84, -22, 68, 17, 64, 51, 20, 1, 23, -41, 69, -79, -25, -3, -51, 110, -70, -67, 28, 81, -46, -45, 55, -1, 79, 30, -20, 62, -70, -64, -36, -19, 47, -13, 36, 17, -10, -27, 17, 97, 56, 17, 1, -63, 2, 71, -60, 1, -16, -48, -34, -63, 89, -91, 10, 14, 74, 89, -70, -87, -82, -70, -49, 52, -89, -31, -16, -4, 5, -68, -28, -82, 59, 55, 6, 42, -34, -38, 81, -57, -65, 22, 25, -29, 26, 55, 62, -19, -35, -81, 28, -16, -56, -59, 62, -46, -85, 26, -35, -47, -56, -47, -86, 54, 48, 6, -13, -22, -28, 62, -25, -18, -35, -4, 28, -57, -71, 87, -57, -25, 82, -18, 55, 1, -48, 100, 45, -54, -82, -54, -89, 15, 6, 87, -46, -67, -17, -88, 24, -89, 73, 99, 4, 56, -57, 1, 15, 64, 77, 1, 57, -86, -12, -33, -47, -22, 77, -91, 2, 22, 40, 31, -81, 38, -11, 54, 12, 7, 60, 55, 6, 96, 65, 17, -24, 76, 36, 44, -41, 5, -58, -63, 38, 81, 57, 2, -86, 19, 0, -66, 83, -29, -9, 17, 35, -4, 28, -35}, + {64, -54, 1, 66, -65, -35, -79, -57, 8, -33, 9, -64, -80, 66, -8, 20, -27, -26, -51, -81, -66, 65, 49, 49, -44, 68, -74, -23, -60, 54, 87, 70, -78, 2, 39, 40, 88, -14, 89, 17, -25, 86, 63, -37, 61, -51, 76, -42, -78, -69, -41, 68, -73, 38, 72, 80, 62, -6, -62, -79, -75, 2, -44, -11, -54, 65, -39, 58, 43, 67, -37, 45, -73, -59, 89, 84, -3, 46, 37, -37, -72, 19, -70, -58, -39, -60, -32, -23, 87, 38, 56, 3, 13, -62, 64, -30, -12, -45, -79, -64, 88, 58, 18, -49, -42, -70, -83, -11, -41, 80, -58, 44, -62, 2, -68, 74, -65, 23, -83, -63, 36, 9, -39, -65, 72, 61, 32, 34, -52, -18, 6, -86, -37, -17, -8, 52, 83, -1, 21, 20, 41, -16, 13, 43, -65, 9, 81, -70, 28, -88, -14, -24, -82, -65, 54, -56, -12, 65, -79, -28, -84, -87, 44, -24, -27, 39, -37, -55, 59, 81, -14, 42, -34, -66, -23, -32, 17, 4, 1, 44, 73, 3, 24, -79, -33, -41, 6, -16, 84, 52, 23, 28, -89, -48, 88, -9, 9, -60, 42, 82, -26, 46, -43, 14, 82, 87, 79, 73, 14, 84, 84, 77, -69, -78, -57, 45, -22, 54, -12, -43, 49, -79, -45, 66, 63, 39, -85, -75, 11, -27, -15, -13, 17, -37, -32, 74, 21, 57, -9, 45, 68, 22, -11, -39, 78, -14, -15, -27, -43, -27, 61, 4, -24, -76, -83, -31}, + {-50, -52, 36, 2, -33, -42, -36, -50, -18, -24, 35, 32, 4, -64, -60, -20, 41, 39, -81, 60, -40, 86, 54, -67, 79, 1, -22, 44, -28, 19, -46, -20, 16, 21, 61, -84, 77, 7, -48, -47, -72, 16, -54, 60, -48, -56, 57, 39, 74, -20, -24, 0, 10, -65, 26, 66, 9, -83, -25, 40, -8, 6, 58, 38, -25, -22, 33, -5, 60, 7, 59, 61, -39, -35, -89, -44, 13, -34, 29, 13, -26, -70, -68, 75, -44, 29, -54, -88, 45, 54, -17, -67, 64, 21, -18, -43, -38, -43, -75, 60, -80, 26, 24, -41, -31, 55, -25, 21, 51, -91, -79, -18, 29, 6, 20, -61, -67, 28, -71, 25, -53, -30, 85, 67, 88, 53, -12, 82, 48, -5, 43, -94, 86, -23, 21, -11, 11, -105, -60, -13, 52, -62, 44, -70, 52, 80, -48, 76, -69, -62, -88, -22, 48, -83, -60, -33, 87, 62, 86, -28, 7, -50, -77, -82, -13, 67, 3, -17, 44, 15, -1, -25, 87, 67, -6, 84, 98, 48, 9, -53, 21, -12, 77, 102, -16, -63, -18, 54, 30, 51, 41, 59, 23, 59, -32, 24, -16, 37, -36, 1, -76, -33, 79, 60, -21, 65, -67, -63, -16, -12, 65, -89, -83, 78, -35, 54, -33, 57, 6, 64, -9, -70, -71, -38, 17, -24, -95, 31, 20, -74, -61, 27, 53, 44, -73, -23, 3, -40, -29, -6, 14, -57, -4, 68, 47, 65, -8, -61, 30, -76, -84, -72, 67, 72, 57, 25}, + {-49, -79, -44, -61, 48, 18, 62, 67, -14, -61, 0, -66, -48, -30, -60, 11, -59, 18, -20, -71, 79, 38, -10, -39, -58, -14, 46, -40, 56, 93, -31, -46, 76, -35, 52, 47, -27, 3, 62, -51, -28, -46, -64, -52, 43, -30, 20, 55, -24, 78, 82, -83, -8, 55, -25, 47, 39, 23, -56, 27, -54, 93, -69, 2, -62, -69, 19, 77, 14, -65, 0, 14, -20, -69, 41, 77, -25, 87, 70, -27, 31, -14, 79, -64, 62, -11, 70, 34, -55, 75, 2, 41, 12, 24, 14, 59, 36, 71, -36, 1, -71, 49, -36, -74, -76, 80, -78, 21, -59, -50, 2, -55, 4, 16, 4, -42, 27, -11, 6, 42, 88, -40, 66, 38, -23, -39, -82, 72, 35, -36, -11, -23, 11, 52, 23, -42, -74, 43, -13, -48, -62, -66, 71, -43, -16, 29, 85, -10, -21, -19, 47, 27, -21, -66, -68, -4, -17, 35, -51, 1, -77, -63, -10, 61, 62, -9, 69, -79, -52, -1, 84, -30, -8, 42, -11, 10, -67, -67, -86, 73, 77, 44, -14, -83, -71, 43, 56, 87, 11, 64, 21, -70, -70, 50, 60, -11, -45, -52, 50, 68, -67, 22, -9, 55, -28, 6, 75, 24, -41, -20, -62, -20, -9, 66, 67, -10, 56, -31, -62, 83, -62, -24, 79, 57, 71, -72, 90, -57, 14, -6, -35, -67, -18, -83, 49, -46, 47, 72, 46, 50, -50, 7, 46, -91, -71, 75, 56, 62, 30, -17, 39, 16, -60, 51, 24, 63}, + {-5, -72, 80, 71, 18, -40, 53, -22, 49, -69, -74, -14, -60, 30, 4, -3, 71, -66, 51, 17, -50, -8, 63, -71, -3, 6, 57, 23, -10, 17, 12, -47, 3, -38, -105, 48, -68, -20, 89, 26, -47, -39, -17, 24, -61, -82, -48, 64, 57, -62, 70, 79, 19, -46, -27, -59, 71, 10, -2, -88, 41, 33, -31, 67, -85, -13, 88, -76, 85, -17, 40, -57, -77, -10, 78, 53, -72, 29, 59, -64, -58, -2, -45, -32, 57, -17, -23, 19, 15, -66, 63, -29, 65, -81, 23, -14, -13, -26, -29, -74, 41, 85, 26, -11, -10, -31, 34, 15, 4, -52, 87, 8, -59, -39, 98, -57, -89, -42, 67, 70, 9, 82, -83, -4, 44, -54, -24, 45, -97, 62, -36, 88, 29, 33, 54, 0, -73, -91, -73, -72, -70, -100, -55, -13, -48, 55, -3, -85, -57, 69, 29, -3, -64, -17, 39, -61, 15, 54, -67, -58, -12, -93, -27, -69, -39, -65, -43, 54, -34, 22, -52, 8, -29, 52, -3, -46, 32, -13, 23, 87, -33, -60, 58, 69, -55, 1, -91, -44, 0, 86, -13, -36, -32, -9, -80, -77, 82, 3, 60, 52, -47, 9, 79, 61, -34, 82, -84, 59, -82, 74, -72, 66, -56, 15, 57, 22, -16, -10, 47, -22, 74, 9, -19, -64, 20, -30, -97, 69, 48, -16, 20, 56, 43, 34, -53, -49, -82, -39, 22, -29, 70, -43, 56, 69, -43, -36, -21, -58, 40, -18, 91, -72, -66, 0, 2, -16}, + {-47, 39, 38, 22, 19, -45, -64, 62, -34, 37, 19, 9, 26, -35, -83, 6, -3, -82, -26, 40, 29, 60, -75, -82, 55, -40, -56, 17, 50, 32, 67, 23, -80, 0, -79, 43, -50, 85, 58, 0, 76, -77, 7, -87, 9, -40, 39, 28, 0, 26, 28, -81, -29, 55, 3, 16, 35, 59, -36, -78, 80, 17, -32, -11, -50, 39, 62, -42, -57, -1, -63, -3, -71, -55, -50, -45, 57, -20, 45, 80, 11, 63, 14, 36, -6, -28, -17, 30, 62, -8, 17, -28, 85, 17, -52, 82, 73, -85, -74, -3, -4, 38, 4, -74, -45, -22, 51, 72, 69, 44, -13, -96, 79, -55, -5, 73, 10, -63, 81, 17, 2, 27, -56, 61, -65, 83, 56, 51, -107, -89, 68, -18, -60, 2, 89, 7, 58, 72, -86, 32, 5, -98, -24, 49, -62, -4, 77, -74, 64, 8, 77, 40, 8, -38, -35, 3, 77, -9, -79, -60, 26, -64, -77, -45, 41, -76, 80, -47, 71, 64, -54, -28, -53, 72, -67, 10, 8, 17, -5, -13, 27, -37, -20, 28, 4, 9, 72, 74, -50, -64, 61, 39, 64, -91, -90, -92, -23, -78, 37, -83, -29, -60, 45, -71, -1, 13, -65, 33, -43, -51, -54, -90, 69, 53, -10, 6, -14, 44, 79, -87, -47, -27, 84, 22, 61, -88, 68, 36, -84, -5, -91, 23, 39, 39, 47, -61, 32, -73, 24, 72, -73, 45, 47, 35, -17, -1, 10, -37, 60, -85, 19, 34, 52, 58, 61, 45}, + {57, 73, 48, 23, 77, -50, 0, 59, -23, -93, -46, 32, -17, -13, 59, -71, 71, -53, -53, -36, -75, 62, 5, 73, 67, -20, -13, 13, -36, -40, -12, -31, 17, 71, 50, -57, -58, -24, 45, 84, 24, 44, -77, -30, -97, -37, 71, -11, -29, 7, -62, 53, 32, 8, 66, -17, 9, 31, -63, -45, -49, -32, -10, 48, -26, -65, 19, -51, -91, 62, -71, -49, -15, -44, -56, 22, -25, 84, -35, 28, -27, 24, -65, -53, -7, 84, 56, 21, 51, 84, -53, -8, -4, -63, -63, -13, 8, -105, -79, 62, -24, -3, 82, 59, -27, 16, 46, 49, 74, -86, -87, -62, 74, 48, -59, -52, -36, 56, -45, 61, 33, 25, -39, 15, -15, 69, -66, -86, 10, -60, 29, -32, 17, 81, 13, 57, -5, -47, -64, 12, -63, -37, 61, -44, 6, -37, 53, 11, 64, -85, 28, -14, -84, 48, -12, -7, -2, 62, 67, -53, 3, 82, 43, -21, 57, 53, -21, 54, 49, 72, 55, 68, 44, -4, -55, 80, -2, -7, 13, 74, -80, -61, -1, 61, 69, 12, 48, 58, 41, -67, 80, 65, 63, 85, -47, 62, 71, 46, -26, -57, -76, -82, 42, -40, 13, 52, -29, 62, 79, -1, 38, 53, -29, 44, 40, 60, -20, 35, 58, -26, -39, 37, -13, 59, -29, 52, -73, -21, -20, -13, -40, -48, -66, 31, -90, 82, 75, -42, -14, 61, -41, 9, 6, 46, -40, 46, 88, 81, 6, -50, 88, 60, 61, -17, 91, 53}, + {-7, -60, -31, 16, -52, 31, 30, -19, -54, -23, 63, 33, -62, 16, -33, -3, -46, 88, -18, -55, -35, -86, -1, 47, 57, -89, -5, -81, 62, 13, 26, 64, 35, -22, -26, 21, 0, -45, -69, 15, 78, 20, 38, -11, -69, -13, 59, 22, -78, -83, -68, 26, -67, -39, 3, 57, 25, 30, 83, 80, 19, -83, -61, -47, -34, -63, -17, -46, -82, -56, -35, 64, -34, -32, 75, -3, -69, 11, 55, -12, 19, -43, 28, -37, -35, 1, -23, 60, -16, 17, -42, -64, -83, -64, -68, 69, -65, -19, -84, -56, 29, 12, 18, 42, -24, -2, 66, 72, 34, 9, -14, -72, 79, 25, -44, 61, -84, 22, 28, -46, 74, -59, 44, 62, -2, -70, 1, 37, 59, 3, -77, 57, -2, -44, 8, 18, -12, -29, -85, 30, -81, -88, 39, -79, -75, -11, -74, 52, 21, 74, 55, 36, -67, -1, -59, -3, -87, -10, 15, 61, 34, -8, -46, -47, 18, -23, -24, 13, 71, -3, -29, 47, -8, -79, -12, -70, 13, 33, 10, -85, -14, 21, -56, 51, 61, 84, 68, 0, -3, -19, -10, -64, -33, 1, 47, 52, 26, -29, -19, -29, -47, -61, 5, -58, 76, 33, -55, -15, 87, -36, 47, -25, -82, -48, 4, -31, 55, 77, -76, -75, 76, 43, -83, 78, -35, 73, 28, 25, 89, 53, -47, 88, -83, -28, -72, -25, -26, 1, 54, -17, 21, -29, -41, 24, 15, 87, 2, -69, 55, -19, 21, 83, -64, -44, 75, 42}, + {66, -54, 50, 63, 61, -80, 9, -50, 18, -10, 75, -22, 26, 47, -75, -73, 54, 15, 62, 89, 2, -33, -72, -55, -26, 13, 4, 58, -8, 24, -6, -66, 2, 22, -3, -71, 88, 3, -76, 70, 85, -72, -87, 69, -69, -65, -36, -51, -34, -3, 55, -27, 8, -15, 87, -6, 75, -26, 77, -49, -75, 63, 16, 41, -29, -16, -58, 26, 36, -70, -84, 18, 69, 16, -78, -11, 39, 25, 85, -60, -3, -33, -63, 25, 34, -76, -85, 83, -46, -57, 51, 64, 39, -29, -62, -63, -56, 76, -86, -5, -87, 35, 3, -58, -59, 80, 11, 53, -42, -3, -49, -49, 41, 67, 41, -22, -25, 47, -70, 59, 13, -39, 8, 16, 39, 13, -9, -30, -9, -21, 29, 18, 34, 39, -13, -28, -22, 83, -88, 27, -60, 77, 50, 67, 66, 30, 71, 59, 41, 50, 31, 32, 41, -40, 69, 68, -83, -21, 60, -34, 78, -70, 30, -12, 66, -75, 32, -26, -12, 1, -61, 72, -26, 55, 73, -40, 70, -62, 30, 56, -47, 69, -49, -75, 77, -59, -50, 88, 47, -4, -39, -27, -34, 52, 34, -41, 17, 53, -73, -71, 20, -47, -76, -39, -31, -5, 25, -78, -65, -78, -36, 58, 55, -76, -60, 3, 54, 46, -19, -33, -60, 65, -88, -15, 11, 81, -14, -2, 63, -24, -88, -68, 35, 39, 45, 36, 7, -49, -81, -62, 57, 66, -13, -77, -74, -31, 42, -45, 79, -80, -83, 7, 4, 13, 42, -10}, + {-12, -46, -14, 13, -9, 2, 66, -35, -10, -19, -44, -88, 39, -7, 80, -6, 59, -44, 8, -72, 36, 109, 1, -3, 50, 3, 89, -32, 89, 66, 37, 73, -30, -35, -30, 48, -24, -61, 72, 22, -102, -38, -2, 10, 46, -18, 48, 31, -22, 31, 10, -2, -31, 31, -23, 15, 58, -48, -96, -48, -11, 64, 57, 38, -73, 67, 42, -5, -56, -41, 8, 61, -8, 9, -69, -25, 2, 2, -52, -79, -35, 8, -18, -12, -70, -84, -60, -75, 9, -41, -8, -40, 57, 27, -38, -24, 13, -11, -51, 22, -70, 75, 20, 55, -19, 54, 50, -82, 1, -53, 4, 65, 74, 51, 38, -75, 77, -81, -40, 52, 56, 38, 46, 0, 7, -44, -27, 88, 17, -42, -22, 97, -27, 45, -12, -64, 33, -98, 0, 30, 91, -35, 51, -28, -79, 9, -6, 57, -4, 81, -84, -88, -48, 67, 51, 1, -75, -19, -16, 88, 69, -84, 50, -79, -83, 88, 0, -37, -15, -18, -27, -20, 95, 51, -47, 18, -58, -69, 61, -35, 47, -98, -17, 76, -20, 85, 87, 29, -66, -69, 73, 9, -10, 22, -53, -103, 87, 10, 48, 36, -77, -71, 37, -60, 66, 96, -24, 39, -1, 16, -76, 53, 40, 52, 43, 30, -17, 6, -11, -19, -79, -5, 52, 2, -6, -65, 10, 5, 35, 19, -60, -15, 69, 22, 0, 44, -22, -63, -60, -3, -16, 54, 30, 38, -3, 33, 69, -39, 38, -45, -52, 37, -49, -37, 83, -43}, + {-47, 12, 2, 22, -42, -88, 56, 57, -34, 14, -84, -28, 72, 51, -88, 55, 6, 118, 21, 65, 46, 15, -31, 62, 15, 23, 36, 68, 64, 26, 21, -84, -7, -68, -12, -64, 99, -84, 88, 79, -58, -58, -17, -95, -32, -60, 36, 28, -47, -57, 78, -8, -54, -77, 18, -67, 50, 8, -51, 29, -67, 65, -10, 29, -43, -5, -69, -55, -56, -71, -5, 42, 47, 84, -69, 60, -91, -78, -14, -1, -69, 46, 80, -53, -6, -66, -39, 76, -91, 45, -66, 7, 55, 29, 26, -38, -58, 43, 73, -22, 93, 77, -41, -82, -48, 25, 48, -6, 73, -3, -80, -85, 71, 66, -75, 88, -18, 55, 47, -90, -70, -73, -16, -58, -86, 2, 36, 72, -32, 55, 50, 7, 71, 13, 71, 85, 74, 14, -82, 64, 7, -95, -30, 15, -30, -55, -91, 55, 59, -66, 40, -32, 57, -45, 7, 79, 23, 47, 35, 85, -90, 41, 80, 4, 78, -29, 78, -68, -44, 50, -69, 19, 42, -33, -46, -46, 6, -33, 55, -83, 51, 86, -7, 70, -2, -65, -16, -9, 63, -13, 55, -41, 37, -9, -1, -33, -69, 34, -72, -11, -90, 76, -16, -77, 50, -46, 83, 82, -84, 74, 83, -56, -42, -68, 59, -44, 56, -69, -55, -34, 38, -6, 83, 31, -87, 60, -80, 34, -5, -25, 58, -67, -73, 8, -13, -48, 43, -40, 67, 59, -12, -40, 87, 77, 54, 37, 69, 60, -54, -81, -15, 0, -82, 86, -42, 32}, + {83, -44, -45, 10, 104, 75, -6, 53, 22, 96, -84, 84, -16, 71, -67, -80, 22, 80, -37, 2, 88, 46, 2, -85, -16, -28, 55, -21, -69, -48, 2, 9, 65, -35, 54, -39, 14, -34, 106, -13, -31, 67, -1, 60, 45, 34, 27, 4, 47, 14, 72, -76, 75, 70, -64, 26, 71, 25, -46, -40, -41, 52, -16, -58, 81, 40, 68, 25, 11, -58, 63, 25, 29, -48, -45, -5, 68, 63, 79, 16, -11, 5, 86, -88, 10, 32, 41, 0, 24, -62, -14, -28, -19, 14, -44, 70, -63, -44, 49, 36, 40, -46, 52, -28, -58, 77, -60, -61, -12, 31, 76, 83, 27, -38, -42, -53, 32, -57, -48, -81, -20, 56, -26, 87, 83, -87, 35, -55, -2, 34, 16, -44, 92, 53, -45, -65, -6, -47, 73, 26, 26, -28, -38, -31, -67, -58, 34, 82, -72, -22, 63, 69, 6, 79, -63, 50, -32, 65, -5, -53, 59, 4, 61, -1, -70, 27, 32, 13, -32, 55, -58, -50, -56, -55, -15, 47, -44, 2, -21, 25, 94, 76, -76, 11, -5, 33, -69, 59, 78, -58, 9, 43, -6, 64, -9, 75, 12, 28, 40, 1, 50, -53, -66, 42, 57, 18, -23, 50, 70, -36, -3, 32, 40, 60, -3, 17, -37, -68, -67, 53, -42, -59, -43, -88, 28, 46, -17, 74, 24, -55, -69, 81, -89, -11, -86, 6, 34, -2, -23, -29, 60, -67, -22, -33, 94, -75, 63, -50, -39, 92, 58, 55, 31, -66, -79, 70}, + {83, 32, 79, -59, -13, -44, 11, -14, -12, -60, -53, 47, 30, 65, -72, 32, 62, 100, 17, 65, 81, -72, 3, -14, 62, 29, -40, 72, -9, -28, -76, -43, 87, 65, -10, 84, -29, -47, 8, -77, 1, 28, -9, -61, -34, 65, 72, 62, -32, -47, 32, 44, 28, -42, 17, 86, 64, 68, 77, -64, -45, 61, 50, -29, 33, -7, -80, 19, 33, 57, -42, -17, 0, 75, -67, 59, -56, 63, -72, 19, 70, -4, -45, -88, -60, 1, 85, -28, 87, -75, -28, 42, -72, 85, -62, -52, 12, -54, 51, -8, 34, 23, 28, 34, 4, 9, -6, 50, 63, -54, -57, 32, 64, 16, 26, 76, 1, -57, -35, -68, -22, -5, -38, 7, 22, 78, 4, 13, -17, -68, -79, 21, 86, -66, -46, 82, -60, 83, -63, 47, -75, 29, 57, -7, -56, -20, 46, 50, 28, 74, -34, -24, 76, -82, 29, -61, -54, 31, -26, -47, -56, 75, -46, 86, 74, 15, -82, -18, -62, -13, -15, 11, 29, -81, -73, 60, -48, -58, -36, 58, 30, 52, -42, 61, -28, 3, -13, -4, 52, -13, 32, -75, -80, -47, 18, 73, 21, 68, -28, -65, -43, 80, 68, 16, 1, -51, -18, 5, -69, 9, 0, -75, 96, 23, 16, 61, -8, -35, 66, 36, -59, -17, -61, 79, 17, -68, 8, -68, 94, 20, 46, 10, 6, -52, -34, -64, -22, -40, -35, 87, -11, -77, -12, 46, -88, 17, -21, 74, 44, -76, 24, -3, 1, -63, -12, -80}, + {-47, 14, -28, -27, -64, -29, 73, 83, 81, -18, 54, 49, 13, 50, 82, -88, 84, -60, -54, 15, 89, -66, 45, -36, -55, 63, -9, -78, 54, 15, -50, -37, -81, -50, -36, -41, 36, -41, -59, -71, 27, 0, 14, -37, -7, 44, -12, -73, -13, -42, -28, -81, -71, -45, -7, 41, -78, -58, -71, -22, 41, 17, -50, -32, 59, 32, -21, -20, 24, 62, 36, -32, -13, 42, 60, 67, -17, 33, -27, -50, 45, -38, -72, -46, -75, -80, 1, -3, -21, 16, 1, 36, 63, 31, 41, 18, -65, -13, -23, 2, -76, 56, 72, 2, -82, -28, 63, -61, -38, 66, 65, 79, -6, 71, 76, -54, 22, -84, -89, 55, -9, 16, 23, 3, -77, -39, -57, -13, 42, -13, -51, 82, 46, 68, -62, 80, 53, 61, -11, -40, -8, 44, -18, 7, -37, 77, -39, -16, -29, 7, 9, -75, -44, -21, 5, -60, 33, -79, 32, -14, 10, -47, 23, -83, 67, 20, 18, 7, -69, 68, 62, -71, -41, -18, 69, -8, 54, 38, 69, -68, 56, 1, -8, -13, -43, -87, -83, 2, -33, 74, -88, 83, 10, -41, -31, 39, 56, 85, 68, -71, -20, -89, -46, -84, 55, -24, -1, 75, 6, -41, 36, -75, 18, -84, -72, 44, 86, 35, 31, -56, 48, 38, 89, 45, -52, 7, -58, 14, -74, 77, 20, -62, -10, 52, 62, -50, 66, -65, -50, 49, -75, -4, 64, -31, -83, 18, 76, 82, -44, -1, 7, -19, -8, 35, 44, -77}, + {-56, 50, -77, -26, 48, 51, 24, 6, -87, 87, -36, 22, -36, 47, 55, 46, 111, -50, -57, 6, -12, 96, -46, -71, 20, -47, -5, -43, 16, -86, 28, 71, -53, -22, -20, 50, 17, 13, 121, 50, -84, 35, -50, -7, 78, 88, -3, -25, -27, -69, 75, -54, 23, 13, 39, -13, -27, 65, 67, 22, 8, -56, -43, 54, 91, 75, 31, -18, 4, -4, 87, 55, -48, 24, -66, 37, -24, 89, -33, -71, 73, 42, -71, 46, -45, 14, 24, 3, 61, -4, -27, -55, 8, 49, -38, -8, -11, 6, 81, -76, 70, 26, -29, 79, -58, 86, -5, -3, -52, -112, -36, -41, 79, 42, -19, 48, 40, -86, 38, -27, -16, -19, -57, 66, 38, -10, -57, 79, -32, -26, 7, 65, 20, 57, -28, -64, -4, 41, 12, 49, 14, -24, -73, 73, -8, -92, 73, 25, -47, -71, 73, -7, 8, 65, -33, 1, -25, -83, 84, -20, 28, -80, 58, 67, -92, -21, -21, -21, -30, 42, -81, 12, 45, -67, -73, -14, -56, 32, -49, -18, 72, -44, -11, 36, -12, 66, 26, 51, -72, 23, -76, 75, -60, 23, -24, 48, -17, -20, 40, 33, -76, -42, 87, -36, 23, -78, -61, -16, 67, 92, -60, 58, -82, -19, 73, -71, -11, 30, -65, -11, 77, 82, -55, -33, 62, 46, 3, -7, 1, 5, 32, -90, 37, 81, 32, -3, -15, -63, -23, 2, 8, 12, 11, 78, -79, 38, -14, 9, -23, -36, 11, 49, -21, 5, -17, 39}, + {-71, -16, 74, -88, 58, -31, -30, 29, 4, 61, -26, 85, 17, 2, 46, 9, 16, -35, -53, 49, -2, -17, -31, 66, -43, -80, 21, 73, -26, 44, -14, 63, -46, 17, 27, -19, -22, 71, -87, 59, -25, 74, 18, 71, -29, -37, -59, 69, -27, 19, -85, 16, -3, -18, -12, 86, -6, 34, -69, -14, 76, -29, 11, -84, 31, 0, 56, -80, -51, -23, 82, -79, 9, -17, -9, 75, -44, 40, 57, -72, -50, 26, 67, 15, -6, -34, -66, -47, 24, -57, 3, -19, 74, 52, -81, 33, 14, -54, -45, -78, -69, 31, -3, -65, 73, -51, -46, -37, -85, -66, 55, -50, 68, 42, 17, 55, -74, 78, 79, -23, -55, 29, 2, 87, 21, 27, 22, 2, 23, 38, -82, 4, 24, -59, 25, -1, -13, -34, 75, 45, -4, 79, 48, -44, -8, -17, 82, -49, -49, 68, -11, -31, -28, 88, -33, -34, 49, -87, 18, -72, -83, 69, 49, 67, 14, 84, -51, 50, -64, -62, -31, 25, 68, -45, -30, -54, -3, -26, 11, 27, -53, 50, 60, -56, 71, 46, -84, -12, 53, -33, -5, 8, -83, 84, -6, -58, -87, 62, -38, 17, -60, 59, -74, 70, -60, -42, 49, -12, -77, -71, -1, 52, 39, -52, -45, 68, 4, 53, -88, 39, 77, -54, -82, -59, 48, -83, -64, 79, -71, 64, -2, -12, -44, -40, -73, 57, 59, 1, -58, 25, 26, 59, 22, -38, -84, -1, 8, -8, -61, 52, -40, -28, -1, 69, 29, 64}, + {73, -75, 72, -53, 41, 30, -68, -57, -95, 4, -61, 54, -41, 3, 37, -46, 54, 70, -44, -16, 60, -32, -51, -23, 67, -89, -30, -12, -23, 26, -60, -60, -52, -58, 71, -21, 81, 36, -72, -84, -36, -60, -85, -75, -16, 82, 72, -72, -6, 33, -80, -9, -79, 39, 49, -24, -57, -38, -79, 76, -75, -45, -16, 16, 67, 67, -89, -49, -53, 74, -34, -45, -40, 39, -46, 44, 50, 12, -49, 86, 46, 10, -84, 47, -57, 35, -50, -66, -45, -10, -33, -22, 2, 48, 76, -34, -81, 60, -31, 46, -81, 19, 35, -51, -2, -79, 36, 54, 10, 9, 19, -80, 61, 20, 13, 8, -33, 50, 4, 32, -1, 82, -75, -32, -32, 70, 18, -74, 8, -89, 68, 56, -42, 60, 8, -61, 8, -72, 69, -4, 65, 82, 52, 33, -40, -39, -34, -73, 64, 41, -66, 51, -1, 8, 52, 61, 30, 34, 11, -55, 30, -18, -67, 72, -49, -86, 15, -6, 44, 16, 31, 13, 66, -53, -43, -85, -48, -58, 70, -59, 32, 43, 5, 73, -95, 62, -37, -56, 89, -79, 15, -24, 46, 4, -33, 70, 52, -13, -22, 33, 28, 34, 46, -38, -49, -57, 74, -84, 11, -57, -1, -17, 77, 31, 41, 24, -25, 43, -54, 13, 80, 15, 52, 68, -5, 62, -82, 47, 28, 42, 11, -72, -52, 58, -47, -44, 29, -74, -9, 71, 25, -48, 14, -44, 35, 78, -72, -38, 58, -42, 3, -25, -58, -34, -18, 14}, + {-57, 34, -6, 19, 42, -52, 64, 57, -42, 16, 27, 67, -68, -82, -14, 45, 97, -64, 60, -66, -61, 17, -2, -74, -7, 57, -85, 86, 29, 42, 17, 0, -79, 50, -7, -87, 6, -61, -71, -41, 16, -62, 68, 24, 76, 21, 13, -83, 34, -70, -80, 79, 20, 70, 24, -68, 48, 58, -33, 51, 88, -62, 35, -36, -48, -23, 3, -27, -17, 21, -74, -55, -61, 76, 21, -12, 31, -1, -26, -64, 86, -51, -85, -64, 30, 77, 73, 53, -10, 8, -24, 27, -63, 58, -36, 6, 27, -3, 73, 57, 10, -2, 88, -6, -19, -46, -51, -28, 55, 8, -12, -61, 21, -28, -20, -46, -87, -7, -48, -1, -84, 26, -35, -4, -61, -71, -84, 31, 46, 27, 34, 11, 43, 20, 24, 55, 10, -76, -33, 32, 9, 56, 44, 55, 87, 65, -61, 41, 81, -73, -75, 18, 4, 81, -33, -21, 68, 86, 27, 38, -27, 81, 2, 14, -63, -54, -74, 23, -77, 27, 14, 46, -13, -22, 75, -50, -88, -53, 79, -38, 54, -52, 4, -7, -15, -45, 76, 27, 23, 87, 19, -30, -36, 48, -42, 67, -3, 86, 34, 26, -5, 14, 60, 55, -71, -52, -65, 85, -8, -90, -75, -47, -81, 77, -18, -42, 63, 65, -20, 70, -87, -24, -59, 64, 35, -13, -64, 87, 15, -74, 41, 59, 78, -53, 48, 71, -71, 83, -87, -7, -31, 57, 19, -42, -35, 14, 51, -46, -25, -53, -76, -81, -50, 17, 46, 4}, + {-21, 21, 58, -18, 33, -72, -10, 4, -5, -1, 16, 67, -54, 29, 64, -73, -61, 10, 85, 36, 21, -54, -32, 16, -12, 59, -15, -53, -84, -19, -54, -34, -85, -10, -87, -58, -72, -56, 27, 53, 85, 82, 43, 41, -72, 41, -27, -32, -18, -45, 7, -70, -39, -56, 51, -39, 1, 43, -57, 57, -29, -63, -13, -68, -71, -8, -15, -79, 40, -69, 28, -48, -20, -31, -25, 21, -27, -57, 57, -33, 42, 2, 66, 78, 15, -68, -86, 76, 2, 48, 70, -52, 50, -52, -31, 62, -62, -23, 2, 37, -24, -55, -61, -4, -71, -14, 76, -30, -81, 0, 29, -84, 76, 86, 58, -87, -41, -72, -82, -6, 76, 50, 84, 85, 38, 74, -8, 43, -17, -72, -73, -65, 0, -66, -25, -6, 34, -42, 74, -45, 8, -55, 36, -24, 33, -16, -75, 9, -36, 23, -46, -5, -18, 21, -58, 57, 20, 74, 6, -76, -47, -81, 50, -30, 26, 49, 23, -67, -77, -19, 47, 49, -27, -14, 36, 1, 83, -2, -6, 38, -59, 48, 27, -80, -63, -86, -41, 84, -36, 84, -9, 46, -39, 40, -28, 86, 32, -48, -6, -14, -59, 74, -51, 57, 87, -43, -55, 63, 20, -44, 73, 73, -32, 40, 66, -73, -75, -40, -15, 10, 29, -89, 65, 53, 86, -54, -55, -79, 79, -49, -73, 2, -78, -57, -62, -3, 54, -10, 71, -62, -41, -86, 64, -47, 31, 1, 31, -51, -22, 36, 33, 17, -10, -6, -88, -74}, + {-60, -22, 65, 17, -57, -72, 45, 22, 52, -2, 39, -47, -62, -80, 39, -10, 1, -9, 63, -34, -36, 41, 47, 79, 58, -89, -42, 10, -50, 5, -39, 68, 26, -66, 24, 17, -33, 67, -10, -74, 37, 83, -14, 48, 24, 11, -53, 86, -39, -23, -6, -33, -7, 42, 56, -71, 62, 68, 4, 26, 3, 73, -66, -69, 51, -2, -80, -15, -7, -38, 11, -9, 0, -39, 68, -35, -6, -20, 3, -61, -36, -51, 80, 31, 19, 54, 66, 30, -48, 77, 63, 21, 68, 54, 4, -53, 5, -39, -34, 11, 51, -11, -77, -53, 28, 79, 8, 74, -83, 54, 27, -41, -39, 77, -29, -45, 66, -49, 31, 3, 5, -73, -64, -42, 82, -85, -85, 6, 45, 10, -82, -79, -78, -49, -14, 74, 56, 0, 75, -16, -32, 8, 61, -55, 1, -46, 54, 70, -89, -48, 32, 30, 63, 15, -87, -3, -33, -69, 44, 43, 3, -43, 80, 23, 43, 23, 72, -72, -38, 77, 80, 64, 95, -84, 43, -12, -5, -11, -23, -11, 17, 82, 85, -60, 69, -12, -35, 34, 34, -83, 86, 15, -33, 66, 80, 73, -14, 74, 52, 68, -80, -79, 34, -13, -64, 3, 3, 37, 32, 60, 47, 62, -42, 79, -73, 81, -8, -60, 61, -63, -81, 36, 8, 71, 57, 15, 2, -5, 24, 9, -58, 6, -81, 51, -41, -67, 36, 33, -8, -46, 2, 4, -15, 78, -42, -36, -22, 86, -67, -41, 0, -47, -70, -58, 85, 31}, + {7, -2, 32, -61, -66, -20, -66, 76, 14, 23, -24, 81, 44, -14, -35, -44, -81, -81, -36, 22, -47, 15, 16, 38, -16, -53, 9, -77, -18, 76, -61, 46, -51, 29, -13, -33, -75, 33, -61, -77, 73, 28, -36, 57, -89, -37, 58, -33, -28, -46, -70, -76, 20, 33, -58, 53, 85, -82, -21, -54, 7, -78, 66, 64, 76, 1, -53, 51, 74, 22, 3, 10, 19, -83, 3, -33, 25, -32, 52, 87, -29, -14, -67, 74, 51, 38, -2, 27, 77, -81, -20, 48, 3, -59, -57, 73, 49, -15, -78, -74, 39, 75, -17, -87, -87, -52, -75, -41, 24, 79, -64, 3, -79, 86, 53, -8, -38, -82, -8, -44, -29, 30, 53, -9, 51, -4, 75, 71, -10, -33, 59, -39, 3, 75, 55, 5, -34, 12, -3, -34, 41, 7, 35, -6, -79, 28, -41, 22, 3, 56, -45, -58, -54, 21, -27, 52, -47, -63, -23, -63, 25, 8, -10, -59, 50, -16, 3, -26, -87, -18, -82, 1, -40, -55, 22, 34, -40, -7, -57, -85, -4, 17, 59, -41, -65, -61, 10, -45, -13, 20, -66, -49, 83, 61, -71, -47, -19, 4, 27, -46, 33, 7, 63, 78, 75, 30, 3, 8, -34, 35, 27, 27, -2, 26, -22, -59, -40, -36, -80, -85, 51, -32, -20, 34, 17, -76, -7, -22, -32, 71, 46, -64, 12, -7, -78, 52, 67, 17, -88, 70, -58, 57, -75, 86, -30, -72, -85, 31, 88, -37, 74, 28, -80, 71, -35, 58}, + {-41, -58, -77, 66, 45, 72, -73, -41, -54, 38, 88, 20, -6, 20, -1, 66, 4, 15, -51, -48, 49, -71, 85, 48, -30, -34, -11, -32, 59, -90, -76, -77, 26, 30, 10, 59, -53, -37, -32, 87, 26, 58, -61, -62, -32, 57, -5, 4, -13, 68, 56, -76, 59, 77, -30, -10, 78, -16, -56, 18, 2, 12, 95, 31, -26, -23, -45, 8, -15, -66, -54, 6, -46, 49, 54, -72, -89, 42, 73, -50, 45, -36, 68, -49, 50, -28, -85, 7, -20, -31, 30, -59, 18, -13, -48, 46, -87, 21, 5, 38, 31, -73, 54, -25, 41, -73, 72, -24, -64, 24, 17, -82, -19, 47, -43, 75, -21, 41, -78, 37, -18, -13, -22, 7, -10, -9, -62, 57, -2, -22, 79, 66, 13, 38, -2, -45, 68, 54, -85, -23, 10, -91, 37, 15, 53, 46, -7, 24, 64, -44, -15, -30, 74, -93, -66, -54, 56, 46, -5, 82, -21, 39, 41, -12, -38, 28, -6, -21, 81, -57, -56, 68, -76, -7, 32, 82, 80, -54, 35, 74, 11, -5, 86, -41, 74, 46, 3, 84, -25, 48, -23, -4, -76, 38, 18, 101, 43, 15, -50, 22, 7, -61, -78, -66, -62, -88, 53, 88, -82, 67, -48, 47, -53, -17, 66, 80, -64, -59, 51, 10, 29, 19, 21, 87, -48, -39, 45, 18, -78, 100, 37, 3, 60, 27, -6, -32, -42, -88, 73, -56, 7, 8, -23, 65, -33, 70, 65, -61, 2, -70, -44, -86, -68, -39, -14, -87}, + {38, -7, 45, -19, -16, 88, -40, 4, 36, -52, -19, 1, -15, 12, 99, 88, -100, -73, -90, 53, -43, -2, -21, -64, 12, -88, -27, 65, 49, -89, -90, 3, -43, 66, 80, 40, 19, -77, -23, -18, 15, -22, -13, 40, -2, 35, 11, -54, 97, -70, 39, 3, -53, -12, 29, 62, 33, 59, -6, 52, -24, 8, 3, 2, -44, -27, -27, -51, -44, -20, -44, 86, -22, 0, -34, -68, -49, -48, -5, 86, -24, -28, 34, -88, 12, -73, 42, -84, 60, 7, 84, -60, -47, -86, -45, 50, 68, -22, -35, -28, 24, -31, 63, 27, 18, 35, -22, -13, -42, 88, 37, -34, -49, 84, -69, 75, 29, 46, -27, -67, -86, 8, 42, 66, 13, 87, 89, 54, -75, 17, 60, -76, 39, -36, 78, -20, 58, 43, -24, 58, -68, -88, 50, 89, 1, -36, -61, -79, 43, -90, 72, 55, -88, 13, -38, -55, 66, 46, -29, -68, -67, 45, -35, -19, 12, -18, 9, -13, 37, 21, 0, 83, 85, -29, 22, 31, -10, -13, 1, -3, 21, -62, 20, -14, 31, -49, -61, 58, -73, 75, -84, 26, 36, 34, -58, -24, -37, 5, 40, -69, 3, -24, -8, 9, -23, 37, 60, -82, 26, 63, 67, 66, 81, -8, 38, 72, 76, 86, 12, -48, 67, -60, 36, 12, 100, -71, 66, -64, 21, 87, -5, -34, -71, 4, -55, -58, 51, 33, -50, -60, 43, 50, -2, 81, -78, 30, 53, 73, -2, -60, -38, -4, -73, -63, 68, -50}, + {5, 17, -33, 49, -24, -31, -18, -12, 59, 15, 61, -63, 88, -57, 82, 79, 12, -31, 23, -83, 57, 67, -73, 6, -30, -29, 10, -46, -68, -49, 9, -60, -16, -57, -30, -6, -87, -50, 46, 37, 7, 50, 53, -45, 80, 18, 29, -31, 28, 47, 73, 50, -61, -81, -62, 63, 32, -89, 48, -69, -8, -31, -22, 17, 76, 68, -11, -56, 71, 81, -75, 68, 81, 53, -83, 76, -93, 2, -25, -50, -17, 18, 28, -18, 18, 54, -85, 63, 24, -41, -34, -75, 45, -6, -60, 20, 61, -80, -68, 57, -3, -19, -41, 3, -64, 25, 60, -68, -72, 79, 89, 2, -24, 64, -62, -46, -47, -89, -52, 24, -32, -23, -29, 18, 10, -77, 8, 47, 67, -79, 53, 28, -22, 52, 40, -29, 25, -92, -89, 74, -82, 76, -86, -6, -82, -17, -60, -38, 58, -93, -45, 31, 1, -74, 6, 43, -22, -81, 40, -46, -84, 44, 17, 46, 0, 23, -10, 84, 84, 78, -75, -86, -32, -54, -7, 10, -52, 0, -41, 35, 26, -84, -77, 48, 56, 1, 79, 54, 82, 1, 46, 53, 69, 7, -46, 32, -2, 22, -14, 51, -14, -58, 57, -4, 89, -38, 11, 21, -7, 56, -86, 69, -72, -9, 68, -57, -23, 46, -43, -36, -16, -42, -35, -34, 78, -48, -79, -2, 29, -95, 32, 52, 58, -17, -34, -17, 8, 29, -27, 9, -27, 5, 65, 6, -42, 44, -81, 10, -45, 56, 83, -3, -54, -19, -21, -4}, + {43, 2, -68, -18, -28, 39, 46, 24, -43, 24, 76, 68, 25, -18, 57, -44, 35, 87, 22, 24, 19, 89, -83, 44, -71, -62, -44, 7, -39, -86, 70, -82, 55, 75, -35, -10, -33, 43, 17, -40, 19, 22, 11, -12, 50, 51, -47, -75, 19, 47, -63, 64, -29, -7, 23, -85, -39, -56, -4, 53, 58, -11, -22, -46, 47, -61, -63, -30, -8, -60, -6, -70, 1, -57, -81, -66, 44, -79, 26, -37, -79, -10, 28, 86, 70, -86, 47, 7, -80, -27, 79, -12, -16, -5, 64, -24, 54, -37, 19, -32, -55, -18, -59, -65, 24, -84, -40, -86, -3, 4, 0, 62, -44, -12, -22, 33, -14, -43, 83, -34, 54, -59, -7, 16, -66, -34, -84, 63, -16, 41, -62, -17, -15, 57, -56, 39, 48, -16, 66, 76, -66, 32, -10, -31, 49, -5, -53, 32, 85, 66, -54, -71, 34, 45, -42, -30, 45, -40, 14, 55, 68, 26, -1, 22, 14, -46, -17, 54, -61, 2, -76, 32, 68, 52, -10, -68, 56, -70, -55, 75, -10, -61, -35, -20, -35, 8, 77, -18, 29, -30, -44, -79, -86, 39, 11, 64, -1, 45, 70, 10, -58, -22, 33, -14, -70, 55, 65, 80, -22, -45, -73, -37, 16, 20, -87, -23, 35, -59, 74, -47, -29, 45, 80, -78, -24, 68, -65, -27, -70, -69, 19, 56, 24, -70, 63, -23, -42, -84, -60, 19, 57, 31, 4, -59, 49, 63, -76, -57, -13, 31, -47, 24, 12, -46, 29, 76}, + {18, 69, 43, -5, 40, -62, -80, -42, -5, 0, -66, 83, -33, -75, -8, -6, -22, -86, 87, -12, 54, 41, 84, 88, 87, 88, 18, 51, 48, -77, 24, 16, -77, -73, -16, -68, 46, 56, -1, -63, 7, 83, -56, 80, -89, 57, 48, -72, 31, 56, 0, 83, -24, -84, -21, -83, 23, 55, 27, -67, -11, -84, 17, -54, -43, 24, 81, -52, 67, -7, -88, 88, -66, -69, 7, -5, 49, 79, -81, -19, 72, -47, 78, -49, -69, 87, -71, -74, 77, 61, -43, -58, 49, -10, 79, -41, -2, -49, -5, 45, 64, 28, 51, -32, 8, -12, 54, 13, -6, 19, -3, 2, 40, -6, 24, 67, -72, -86, 10, 83, 54, 40, 56, -36, -71, -54, -78, -62, -8, -14, 22, 63, 22, -39, -84, -59, -62, 66, 9, 38, -21, 86, 14, 24, -16, 13, 72, 73, 19, 46, 47, 86, 19, -71, 65, -31, 61, -83, -49, 70, 36, -48, 58, -9, -31, -75, 24, -34, 32, 30, -42, -11, 8, -2, -68, 53, 24, -34, -4, -26, -80, 16, 12, -51, 51, -33, 22, -25, -59, -49, 48, 55, -17, 1, -17, -26, -66, -71, -11, -29, 69, -13, 32, 17, -2, 1, 11, 35, -72, 57, -87, -71, 59, 89, 53, 48, -58, 22, 45, -76, -41, -6, -79, -3, 34, 81, 2, 83, 50, 63, -41, 27, 54, -38, -5, 24, -27, 38, 45, 36, -29, 36, 56, -79, -32, 50, -11, 71, 16, 7, 55, 4, 7, 68, -4, -32}, + {-52, -79, -56, 23, 9, -48, 43, 65, 26, 42, -6, -8, 75, -22, 45, -55, 102, -70, -19, -2, -61, -1, -48, -1, -60, -6, 41, 3, 8, 16, -45, 21, 79, -14, -36, 4, -43, -67, 34, 70, 25, 61, -4, -62, -19, -40, -32, -17, -19, -42, -55, 79, -84, 25, -42, -45, 68, -40, -91, -88, -76, -64, 87, -15, -4, 10, 26, -29, -1, 30, -62, -16, 7, -36, -37, -17, 81, 49, 19, 77, 56, -72, -69, 87, 70, 45, 71, 38, -8, -68, 70, 71, -87, -68, -32, 38, 62, 83, -59, -65, 62, 4, 10, 82, -59, -44, 62, 74, -57, -63, 58, 76, -58, 61, 32, 27, 84, 33, 46, 47, 6, -21, 14, 61, 23, 48, 48, -15, -116, 30, 72, -29, 66, 63, 73, 73, -88, -47, 19, -18, -59, 13, -68, -53, -52, 13, 35, 5, -39, 18, 72, -50, -51, 65, -41, 61, 13, -13, -10, -43, -21, -90, -14, -17, -24, 62, 82, -54, -81, 53, 50, 56, -55, 43, 81, -58, 73, -8, 22, -65, -18, -12, -75, -61, 42, 88, 53, -12, -22, 45, -8, 41, -77, -58, -80, 51, 34, -50, -30, 104, -71, -44, -38, 76, -31, 39, -20, -35, 51, 43, -71, 44, -15, -3, 98, -10, 40, 73, -66, 57, -50, -9, -46, 50, 51, -76, -35, -53, 82, 3, 73, -94, 14, -80, 56, -88, -5, 2, 51, 23, 16, 108, -14, -39, -11, 71, 32, -89, 74, 52, 18, -7, 26, -78, 64, 45}, + {-42, -88, 60, 65, -25, -40, 23, 70, -40, 66, 78, 28, 1, 19, -46, -48, 57, 33, -102, 49, 84, 37, 64, 47, -96, 8, 7, 70, -79, 45, -1, -64, -10, -33, -104, 72, 41, -54, 94, 18, 27, 17, -97, 24, 57, -68, -33, -8, 29, -46, 48, 59, -35, 27, -73, 64, 27, 66, -92, -66, -40, 44, 2, 62, 16, -43, 67, -30, -62, -7, -25, -72, 46, -50, 67, -74, -34, 53, -89, -53, -31, -78, 25, 57, 50, -81, 3, 29, -78, 69, -7, -22, 19, -47, 31, 52, 61, 3, -63, 40, -86, -64, 35, -32, -4, 43, -9, -62, -29, 64, 37, 23, 5, 61, -44, -71, -9, -59, 7, -82, -68, -11, 43, 61, -34, -67, 24, 63, -44, 23, 53, 83, -7, -23, -24, -9, 19, 62, -1, 31, -21, -5, -58, -18, -49, 74, -42, 27, 19, -81, 9, -25, -32, -52, -24, 11, 117, 56, -51, 21, 79, 38, -54, 40, -5, -25, 30, 66, -78, -75, 64, 27, -1, 75, -45, 8, 96, 30, -74, 34, 42, -46, -40, 59, 36, -44, 85, 54, 43, -33, -54, 2, -1, 40, 2, -99, -64, 39, 81, 74, 54, -58, -25, 61, 41, 67, 50, 75, 18, 44, 9, -78, -32, -47, 105, 12, 89, -43, 89, 9, 55, 63, 55, 60, -75, 28, -7, -57, -50, -10, 76, -13, -28, -34, -59, -89, 18, -52, 13, 95, 62, -51, -73, -5, 56, -18, 17, 56, 77, -14, -32, -56, -12, 67, 112, 56}, + {-16, -84, -10, 1, -28, 49, 26, -63, -81, -37, 28, 35, 73, 80, -76, 46, -55, 18, -37, -12, -21, -27, -78, 29, -92, -72, 76, -72, 54, 49, -60, 81, 78, -21, -32, 20, 87, 69, 8, 12, -78, 0, 39, 11, 47, -46, 58, -34, 19, 7, 87, 60, -9, 30, 33, 80, -37, 25, -45, -83, 38, -93, 19, -53, -12, -20, 41, -50, 22, 76, 55, -6, 20, -53, 48, 3, 72, 15, -12, -76, 39, 73, -1, -39, -44, 7, 34, -76, -3, -25, -62, 74, -38, -17, 97, -4, 3, 76, 54, -82, -38, 10, -52, 9, -55, -68, 87, -80, 29, 21, -53, 61, 69, 9, 73, 91, -57, -36, 23, 25, -42, -23, -65, -20, -62, 44, -26, -47, -25, 37, -19, -40, -35, 33, -13, 38, -1, 22, -65, -36, -34, -8, 30, 7, -66, 39, -36, -6, -82, 39, -75, 7, 5, 30, -35, -50, -8, 30, 7, -50, 62, 4, 33, -10, 44, 87, -60, -74, 7, -47, -72, 22, 18, 30, -8, -48, 52, 16, -32, -9, -29, -32, -68, 9, 19, 40, -52, -30, -26, 32, -59, 71, -6, 47, -50, 24, -22, -70, 48, 71, -27, -46, 27, -81, -89, 53, 53, -9, -27, 31, 33, 71, -7, 85, -20, -17, 75, 82, -59, 53, -25, -26, -81, -9, -11, -69, -97, 41, -14, -2, 4, -10, -45, 43, -43, -17, -74, 35, -48, 73, 9, 20, 41, 65, -41, -5, 71, -40, -76, 6, -13, 64, -32, 65, 50, 43}, + {-43, 42, 22, -6, -44, 29, -77, 29, -33, 12, -82, -86, -33, -75, -72, 52, -24, 37, 46, 55, 48, 73, -79, 23, -16, 35, 21, -16, 79, -44, -3, 73, -54, 47, 41, 6, 59, 18, -87, -87, -32, -17, 25, -54, 28, -16, -84, -67, 32, -69, -51, 63, 8, -65, -38, -69, -34, -13, 30, 80, 52, 24, -49, 39, 54, 76, 13, 75, -17, 78, 83, -54, 19, 1, -84, -23, 8, -5, -53, 61, -41, 1, 81, -42, 31, -26, -76, 64, -72, 61, -63, -80, 14, 81, 56, 29, 66, 18, -65, -46, -51, 34, -3, -90, -89, -46, 84, -16, -31, 28, 78, -26, -25, 58, 18, -33, -89, 72, -7, -67, 31, -9, -24, 3, 10, 11, 60, -84, -52, 59, 51, 70, -72, 45, 87, 53, 2, 38, 42, 44, -6, 54, -85, 10, 76, 46, 23, -50, 34, -57, -66, -45, -51, -25, 26, 57, -47, -21, -50, -52, 55, -5, -65, 22, 51, -64, 80, -10, 12, -63, -12, -66, -31, 51, -58, 6, -30, 48, 0, -42, -67, 30, -30, -43, -84, 28, 70, 34, -61, 18, 27, 73, 3, -50, -38, 60, 27, 3, -58, 48, -35, -36, -46, -85, 47, -53, 46, -7, 15, 25, -79, 10, 3, 41, -8, -63, -70, 56, -3, 64, 23, -35, 75, 79, -18, -32, 33, 88, -60, 29, -42, -65, 66, -54, 51, 13, 18, -77, 22, -86, -10, 79, -42, 60, -42, -87, -15, -63, -8, -39, -4, -53, -45, 7, 19, -52}, + {37, -27, -84, 74, -47, -20, 23, -20, 15, 21, 63, 61, -12, 24, 90, 96, 50, 13, 42, -22, 41, -69, -20, 62, 93, 84, -84, 93, -67, 70, 40, 23, -34, -42, -47, -57, -8, 16, -49, -54, 40, 2, 46, -43, 64, 67, -78, 79, -14, -54, -67, -50, -10, 35, 48, 11, -47, 59, -33, 27, -45, 23, -1, 15, 53, 88, 77, -86, 96, 0, -71, -58, 16, 20, 78, -84, 62, -31, 80, 26, -2, -49, -1, -4, -33, 15, -40, 76, -37, -26, 8, 92, 66, -66, -86, -51, -50, 0, 11, 56, 64, -80, -61, -23, 6, -11, -72, -11, 88, 89, -80, -89, -64, 40, 50, -72, 41, -61, 84, -56, -47, -10, 11, 82, 30, -58, 81, 57, 76, 50, 58, -9, 30, -37, -78, 38, -50, 25, -51, -69, -4, 70, -74, -29, -39, 14, 71, -18, 35, 21, -23, 21, -59, 71, 12, -68, 26, 38, -41, 55, 34, 83, -87, -25, 26, 32, 57, -32, -100, 24, -46, -14, 0, 41, 39, -44, 68, -69, 50, 25, -12, -28, -61, -56, -59, 37, 30, -75, 82, -68, -36, 5, -8, 46, -34, 7, 46, 49, 33, 46, 54, 1, 98, -10, 22, -53, 88, 68, 63, 17, 82, 20, 40, 89, -59, -79, 30, 9, 66, 68, -79, 23, 78, -28, 25, -44, 25, -6, -79, -90, 39, 26, 29, 10, 29, 41, 83, 33, -45, 8, -16, -57, 73, -66, 47, -73, 86, -7, -41, -50, -11, -58, 60, -40, -7, 19}, + {-1, 84, 25, -58, 68, -23, 10, -86, -52, -50, -69, 69, -60, -29, 65, -10, 63, -25, -82, -12, -8, 61, 20, 31, -47, 27, 71, -24, -24, -53, -54, -44, -28, -72, -19, -16, 43, -64, 54, 15, -8, -29, -10, 68, -10, -62, 82, 63, 15, 84, -31, 70, -22, 55, 80, 55, -81, -30, -19, -43, -44, 15, -53, 69, -30, 20, -62, 84, -58, -32, 89, -42, 41, 23, -23, 74, 54, -83, -7, 0, -49, -23, 40, 52, 57, -68, -57, 80, 74, -65, 22, 19, -73, -27, -23, 5, -55, -53, -54, -72, 81, 27, 37, -89, 18, -15, 32, -57, -77, 20, 47, 81, 22, 1, 32, 30, 83, 37, 51, 16, -27, -77, 1, -63, 73, -4, 27, 53, 59, -79, -83, 33, 48, -50, -59, -20, 67, 1, 53, -34, -62, -86, -32, 45, 0, 6, 52, 56, -75, -27, 54, 53, -20, -39, -83, 54, 13, 53, 54, -36, 19, -67, 48, -46, 34, 9, -39, 69, -27, -17, -36, -45, -1, 59, -22, -83, -89, -64, -62, -44, 68, -24, -65, -39, -64, -52, 49, -65, 1, -73, -82, 55, 0, 0, -14, -80, 21, 71, 71, 31, 79, 22, -23, -30, -13, 21, -55, 70, -15, -84, -3, -35, -33, 80, -18, 18, 44, 53, -84, -68, -4, -50, -21, 31, -53, 39, 16, 81, -9, -14, 32, 87, 56, -86, 47, -44, -43, 19, -30, 50, -4, 61, -90, -65, 12, 71, 18, 3, -24, 23, 47, 20, 38, 25, -27, 33}, + {79, 48, -30, -8, -29, -80, 62, -26, 49, 68, -34, 36, -56, 15, -62, 0, -59, 44, 82, -12, 41, 55, -38, -10, -5, -49, -80, -69, -22, -8, -4, 69, 68, 71, -13, -32, 25, -58, 66, 70, 26, -70, 58, 57, -36, -88, 10, -64, 68, -87, -70, -10, -8, 78, 16, -34, 50, 68, -67, -5, -51, -16, -59, 15, 21, 21, -28, -45, 76, 3, 59, -51, 23, -4, 13, -19, 25, 36, 82, 81, 9, -20, -14, 35, -8, -27, -48, -26, 2, 57, 57, 8, -38, 63, 18, 12, -63, 63, -24, -11, -69, -12, 69, 11, -24, 60, 77, -22, -8, -70, -87, -53, -25, 23, -63, 70, 67, 50, 75, -62, 14, -20, 4, -70, -33, 2, -24, -56, -71, 74, -35, -1, 38, 60, 26, -6, -85, -56, 66, -26, 69, 35, 4, 72, -55, 70, 83, 69, 37, 20, 75, -19, 61, -82, 17, -41, -23, -29, -32, -59, 31, -20, 81, -34, 2, -68, 73, -45, -89, -49, 16, 20, -37, 13, 21, -2, 64, -83, 40, -25, -13, 19, 16, 10, 7, -50, -82, 1, -11, 0, -41, -15, 62, -59, 28, -18, 3, -67, -19, -26, 44, -65, 78, 67, -59, -22, -90, 31, 78, 4, 57, 50, -49, 7, -45, 9, 77, 47, 74, 0, 64, -52, -57, 79, 45, 55, -4, -64, 8, -56, 35, -29, -16, 62, -17, 55, -82, -17, -45, 8, -47, 76, 61, 51, -23, -81, -45, 79, -34, 72, -66, 53, -39, 72, -21, -42}, + {85, 0, -57, 29, -83, -26, -73, 46, -58, -43, 29, -34, -29, -76, -31, -43, 51, -25, -76, -25, -34, 6, 15, 61, 41, -63, 26, -86, -67, -64, 20, -20, 51, -25, -57, -51, 82, 87, -25, -79, -85, -57, 82, 55, -58, 86, -72, -5, -61, 18, 75, -12, 7, 17, 2, -31, 20, 2, -87, 33, -79, 12, -53, -76, 75, -27, -76, 70, 19, -60, -2, -62, 74, -33, -8, 87, 58, -80, 28, 72, -82, -42, 66, -33, -48, 74, 56, -16, -80, 18, -2, -71, 75, -80, 50, 65, 17, 83, -28, 81, -43, -66, 88, -3, 46, -87, -62, -89, -73, -3, 57, 50, -22, -43, 40, 65, 8, 25, 31, 36, 52, -81, 72, 75, 55, 82, -81, 26, -15, -15, 48, -62, 81, -4, -73, 41, -31, -55, -88, -78, 61, 39, -87, -8, -20, 60, 6, 26, -59, -81, 47, -75, 68, 61, 81, -30, -18, -67, 83, 29, -83, -68, 53, -75, -15, 89, -71, 29, -43, 49, -54, -62, -21, -35, 80, -89, 54, -9, -73, 26, -73, -38, 46, -23, -1, -45, 18, -12, 20, 56, -25, 78, 69, 8, -76, 87, 32, -68, -7, 44, -5, 49, 27, -70, -62, -32, 2, 83, 18, 60, -43, -21, 87, 80, 0, 9, -11, -32, 89, -29, 72, -4, -42, -84, -53, -73, 64, -63, 73, -73, 44, 37, 39, -44, 19, -65, 30, -82, 53, -21, -12, 47, -27, -49, -70, 77, 32, 25, -38, -66, 39, 12, -81, 89, -89, -13}, + {-63, -36, -28, 56, -36, 60, 9, 29, -63, 89, -73, -25, 49, 0, 24, 38, -40, 96, -5, -32, 37, -107, 1, -78, 71, 35, -87, -3, 11, -26, -20, 6, 85, 62, 99, -55, 54, 17, 3, 48, 105, 68, 75, 73, -39, -3, 35, -42, -32, 71, 83, -51, -79, 77, 44, 57, 53, 36, -9, 76, -77, -26, -25, -31, -49, -7, -50, -13, -15, -75, -48, -18, -24, -83, -27, -51, -82, -47, -36, -31, 26, 87, 1, -82, 41, 42, 11, -23, 76, -26, 67, 48, -89, 80, -108, -1, 35, -102, -9, 65, -10, 46, 64, -63, 35, 20, 48, 44, 24, -26, -3, 58, 79, 25, -7, -56, 33, 97, 82, -7, -25, -85, -59, 44, 36, -69, -8, -31, 34, -3, 50, -61, 11, -7, -71, 40, 59, 5, 33, -39, -73, -40, -51, 43, -11, 19, -42, 26, 74, 67, 73, 23, 68, 70, 28, -91, 51, -78, 57, 25, -78, 69, 40, 83, 49, 9, -53, -80, -28, 37, -51, 20, -4, -88, -74, -38, -58, -17, 17, 85, -35, -30, -44, 55, 70, 60, -68, 39, -42, -36, -54, -69, 42, -99, -97, 35, 10, 38, -6, -41, -73, -77, -9, 18, 19, -61, 32, -8, 20, 0, -23, 65, 52, 40, 61, 35, -6, -39, -65, 2, -11, -35, 66, 24, -1, -73, -68, 63, 92, 66, -77, -59, -87, -45, 43, -1, 61, 2, 13, 90, 10, -72, -60, -43, -80, -13, 21, 35, -45, -29, 94, 40, -18, 25, -67, -82}, + {68, -38, 21, -23, 5, -1, 25, 55, 27, -4, -43, 36, -25, -5, -38, -69, 57, 29, -90, -18, -36, 73, -71, 35, 54, -21, 19, 0, -36, 4, 21, 37, -78, -42, -66, 53, 82, -67, 11, 56, 24, 11, -7, -38, -55, -12, -4, 2, 61, -33, -88, 26, 45, 74, 1, 72, 33, -82, 26, -51, -61, 40, 8, -60, -15, -26, 8, 45, -61, 75, -29, -29, -35, 87, -88, 66, -9, 12, -20, 80, -78, 29, 25, 67, -21, 14, -20, -41, -6, -31, -4, 86, 22, -19, -19, -67, 54, -83, 61, 45, 26, 57, 64, 63, -48, 72, -16, 26, -55, 85, -46, 74, -59, 60, 62, 32, -24, 43, 82, -8, 5, 40, 12, 79, 34, -47, 27, -87, -28, -80, -33, 26, -69, 83, 15, 33, -64, -5, -31, 43, 75, -42, 49, 31, -14, -81, 82, 43, -22, 17, 53, 81, -79, -64, 54, -73, 71, -12, 32, 82, 52, -55, 23, 56, 80, 56, 82, -42, -9, -89, 24, 15, 51, -17, -37, -51, 12, -36, 24, 6, 8, -58, -59, -52, -44, 70, 62, -55, 72, 24, -17, -20, -10, 72, -40, 17, -79, -11, -1, -53, 33, 71, -77, 37, -70, 35, -81, -17, 40, 35, -11, -87, -85, 59, -47, -51, 37, 38, -51, -66, -80, -34, -81, 37, 21, 4, 62, 48, 15, -44, -35, -17, 83, 85, -75, 34, -58, -4, -57, -60, -2, -48, -60, 33, 22, 48, 85, 69, 67, 49, 69, -68, -32, 36, 80, -31}, + {12, 1, 37, 57, 29, 85, 61, -64, 84, 32, -23, 36, -65, -57, 33, -47, 55, -11, -49, 18, -24, -66, -75, -43, -17, -21, 16, -4, -66, -57, 5, 92, 17, -43, 95, 57, 46, 1, -103, -25, -94, -80, -59, -47, 75, 24, 1, 81, -52, 64, 51, 36, -77, 43, 80, -60, -41, -52, 19, -2, 77, 18, 42, -30, 58, 13, 21, 20, -78, -72, -50, -83, 78, 23, -53, -53, 89, 56, 36, -58, -55, -79, -79, 54, -70, 53, 56, 66, 40, 5, 90, 16, 13, 21, 59, 8, 63, -72, 33, 28, 32, 27, 26, 45, 0, -86, 94, 18, 94, -15, 21, -8, 7, -69, -8, -85, -71, 91, 33, -73, 66, -65, 64, -47, -82, 18, -10, 31, 41, 24, 56, 76, 62, -84, 24, -27, -34, 88, 8, 7, 73, 25, 38, -11, 0, -23, 40, 2, -12, 27, 50, -36, 2, 67, 78, -79, -89, 17, -16, 1, 3, -79, -6, -43, 73, -34, 62, -60, -38, 0, 19, -48, -81, 65, 54, -17, 5, -44, 70, -68, -81, -116, -19, -12, 1, 49, -9, -63, -43, -47, 49, 30, -35, -57, 9, -42, -70, -22, -67, 83, -22, -53, 69, -24, -64, -6, 65, -56, 55, 96, -16, 17, -12, 31, 30, -8, -24, 69, -2, 51, -19, -53, -64, 58, -37, 22, 21, -51, 1, -68, -86, -65, 48, -51, -62, 11, 39, 61, -44, 16, 8, 42, 94, -22, 45, 39, -74, -74, 60, 39, 51, 44, 62, -22, -52, 75}, + {-62, 59, 57, 59, 57, 39, -84, 52, 57, -24, -85, 58, 56, -52, -63, 50, -70, 42, -17, 78, 4, 2, 49, 46, -30, 68, 52, 62, 32, 46, -71, 8, 17, -20, -46, -18, -33, -84, -60, 61, 109, 25, 36, 61, -39, 0, 66, -87, 79, -86, -33, -33, -1, -49, -3, 9, 73, 39, 31, 21, 72, 44, -51, -61, 80, -71, 88, -11, 20, 74, -54, -60, -9, 73, 2, 83, 38, -73, -55, 50, -58, -23, 1, -66, -4, 64, -71, -9, 41, 75, -92, 10, 22, -88, 57, 65, 82, 39, 21, -8, 8, 26, 68, -37, -8, 52, -86, 23, 50, -83, -30, -57, -5, -33, -74, -72, -82, -29, 65, 80, -4, 7, 1, -91, -34, 41, 47, -48, 61, -45, 46, -19, 5, 7, -65, 34, 66, -17, -26, -38, 53, -44, -74, 66, 20, -28, -48, 57, -42, 69, -38, -34, -44, -25, -53, 87, 22, 40, -23, -9, 38, 71, 50, 28, 17, -31, -46, 79, 25, 74, -2, 35, -86, 35, -60, 35, 21, 18, -6, -18, 33, 96, 36, -32, 82, 21, -65, -88, -58, 0, 21, 88, 12, -11, 5, -11, 1, -32, 10, -12, -18, 6, -10, 8, -51, 15, -30, -51, -32, -17, -81, -59, -86, -76, -86, 55, -55, 88, -13, -15, 43, 14, -3, 60, 3, 83, 86, -57, 16, 88, 45, -37, 41, -61, 82, -48, -19, 63, -78, -37, -54, -35, 55, -27, 46, -18, -27, 60, 48, 81, 33, -21, 30, -57, 72, 53}, + {45, -87, 15, 4, -52, -66, 18, -49, -67, 73, -16, -28, -61, 34, 34, -79, 50, -23, -11, 34, -32, 95, 76, 23, -15, 24, 30, -6, 40, 73, -49, -82, -7, 23, -75, -89, 105, -87, 61, -36, 64, -56, 69, -73, 85, -42, 61, -45, 58, -90, -63, 78, -19, -78, -51, 78, -76, -7, -103, 34, -57, 8, 0, -22, -83, 32, 57, 53, -66, 18, -16, 66, 60, -19, 5, -48, -71, -70, 55, 58, -43, 10, 27, 65, 9, 44, 3, -94, 47, 84, 49, -51, -6, -54, 1, -79, 4, 0, -71, -36, -57, -72, -22, -2, -60, -32, 82, -84, -82, 35, 58, -69, 71, -74, -45, 17, 86, -38, 30, 60, -85, -23, 27, -13, 25, -87, -16, 44, -32, -65, 40, 8, 29, -45, 78, 13, -78, -58, -76, 30, -59, -1, -3, -59, 23, -88, -2, -22, -17, 4, 48, -66, 25, -42, 75, 56, 44, -32, 17, -8, -87, 68, 39, -38, -19, 61, -88, 6, 0, 69, 71, 17, 19, 78, 69, 34, 53, 12, 7, -8, 9, -60, -82, -20, 30, -76, 25, -5, 70, 104, -14, 88, 43, -80, 26, -38, 62, -54, 89, 67, 32, 75, -62, 64, -66, -34, -60, 58, 14, -31, -63, 75, 41, -27, 84, -62, -36, 26, -80, -71, 37, -83, 55, 66, 49, -42, 62, 5, -18, 98, -64, -54, 15, 63, -43, -32, -66, -67, 4, -50, -75, 76, -1, 84, -59, 13, -77, -51, -72, -95, 29, -29, 36, 29, 105, -33}, + {67, 83, -27, -86, 35, -13, 63, 70, 85, 54, 35, -50, -79, -46, -32, 37, -36, -58, -57, 68, 7, -8, 32, 44, -37, 72, 89, -34, 56, -78, -22, 28, -80, 42, 63, -20, 16, 45, 34, 78, 15, 59, -52, -16, -84, -23, 63, 34, -60, 51, -41, 10, -25, -2, -35, 54, -88, -48, 2, -78, 27, 57, 69, 8, 15, -90, -22, 39, -11, 77, 16, 10, 28, 22, 82, 42, 74, 34, -68, 85, 55, 53, -74, -67, 12, -57, -86, -91, 6, -60, 48, 45, -30, -77, -58, 47, 41, 22, -89, 19, -23, 97, 37, -61, 17, 35, -57, -26, 8, 69, 86, -34, 77, 64, 63, -60, -80, 50, -57, -22, -42, 45, -27, 38, 64, 54, 75, -40, 71, 3, -61, 86, 40, -5, -25, -87, -25, -73, -46, 76, 11, 35, 82, 63, 74, -88, -52, 17, -29, -71, -63, 1, -76, 25, 0, -34, 2, -87, 32, 40, -53, 29, -47, 20, 50, 44, -41, 38, 68, 81, -51, -1, -13, 10, 80, 35, 51, -46, 14, 77, 57, -36, 44, -65, 60, -3, -1, 52, -5, 97, 14, -18, -45, 65, 47, 74, -9, 56, 59, 64, -22, -6, -42, 28, -73, 57, -49, -80, -16, 3, 0, -90, -47, 75, 54, 58, -70, -1, -51, -25, 88, -80, 54, -36, 33, -49, 74, 18, 51, -20, -19, -54, -41, 65, -2, -30, -69, -64, -77, -65, -84, -47, -68, 46, 70, -46, 51, 69, -60, -41, -15, 19, -29, -17, 66, -77}, + {32, -9, -19, -65, 39, 21, 10, 59, -18, -88, 21, 17, 1, 30, 16, 36, -30, 12, 34, -78, -53, 24, -16, -74, -49, -60, -45, -54, 25, -87, -82, -77, -30, -36, -34, 37, -36, -76, 48, -5, 67, 14, -77, -66, -36, 4, -19, -84, 11, 55, 65, 37, -8, 19, -25, 62, -13, 74, -1, -45, 38, -7, 16, -10, 50, -51, 16, -65, 71, -69, -11, -87, -88, 59, 0, 51, -72, -89, -78, -41, -30, -12, -76, -42, -73, 22, -27, 84, 79, 30, 81, 63, -29, 40, 28, -44, -80, 12, -6, -84, -54, -43, 74, 86, -43, 10, -79, -61, -65, 26, 49, -36, 26, 10, -24, -87, 83, 29, 36, -20, -12, 58, -60, -33, -61, 47, 52, -13, -40, 79, -15, -86, -35, 18, 31, 60, -84, -51, -28, -37, -64, -55, -43, 81, 39, -51, 37, -25, 58, -39, 77, -58, 31, -28, 35, -79, -84, 19, 83, 36, 45, 4, 34, -61, 45, 36, 87, -29, -7, -81, 71, 86, 64, -69, -59, 54, 6, 38, 2, -41, -57, 77, -10, 36, 26, 25, -29, -45, -31, -60, -52, 80, -52, 54, -52, -21, -33, 13, 60, 36, 81, 73, -59, 4, -12, 84, 46, -74, -22, 35, -4, 65, -31, -46, -83, 51, 65, -46, 73, -6, 87, -53, 83, 67, -57, -87, 10, -77, -21, -20, 64, -41, -59, 15, -81, 59, -68, -37, -22, -40, 83, 57, -2, 72, -6, 67, -76, 49, -9, -75, 68, 21, 5, -67, 32, -67}, + {80, -83, -31, -82, 80, -87, -28, -55, -31, -53, 89, 43, -24, -25, 70, 51, 71, 73, 37, 45, -42, -59, -18, 74, -1, 18, 37, 42, -19, 3, -59, 80, -42, -30, -21, -86, 30, -80, -86, -23, -17, 56, 86, 59, -30, -44, -1, -62, 10, 9, -45, 54, -53, 31, 15, 31, -89, -54, -82, -23, 8, 27, 60, -33, 49, 32, 48, 32, -5, 10, -43, -89, -12, 4, -24, 27, 18, 65, 75, -26, -49, 12, 39, -7, 80, -21, 20, 1, -45, -30, -78, 20, 6, 72, 58, -61, 1, 54, 51, -9, -45, -23, -63, -69, -61, -89, 61, -56, 18, 7, 60, -36, -74, 75, 8, -70, 40, -85, 70, -75, 75, 80, 68, -87, 26, -22, -23, -79, -57, 85, 13, -46, 66, -67, 71, -30, 20, 12, 82, 40, 39, -63, 61, -62, -41, -12, -26, 5, -39, 17, 80, -10, 34, 6, 57, -57, -10, 59, 71, -75, 39, -35, -24, -47, 39, -25, -75, 44, 4, 79, 73, -61, 42, -65, 81, 5, 67, -42, -82, -14, -4, -63, 23, 54, -91, 42, 88, 7, -18, -63, 70, 46, -74, 64, 7, -15, -48, 18, -59, -67, 35, 22, 26, -3, -65, 58, -9, 18, -79, 28, -30, 84, 4, -82, -6, 56, 75, -52, -27, 8, -17, 80, -27, -23, 64, -51, 14, -39, 65, -28, -75, 72, 4, 37, 35, -85, 1, -80, -25, 22, 19, 55, 37, -4, 65, -79, 38, -24, -70, -74, -42, 36, -57, 83, 30, -20}, + {88, -44, -20, -84, -63, 72, 46, -37, -32, 74, -45, -76, -12, 29, -53, -66, 17, 20, -7, -49, 68, -82, 14, 54, -65, 12, 86, -11, 71, 1, -42, -25, 88, -59, -28, 71, 4, -73, -59, -56, 35, -80, 54, 56, 73, 45, -87, -53, -66, -83, 28, 71, 9, -15, 59, -76, -13, -39, 54, 73, 8, -65, 34, -25, -57, 17, 42, 30, 85, -86, -34, -18, 19, 13, -88, -61, 80, -7, 52, 17, 17, 37, -15, -64, 53, 23, -72, 3, -83, 16, 10, 21, -36, -64, -47, 60, -28, 30, -27, -11, -1, 47, -68, -66, 34, -27, -15, -52, 55, -52, 16, 2, -11, -36, 50, 78, 86, 75, 88, 26, -1, -53, -41, -53, -12, -88, 33, 35, 87, 63, 36, -7, -56, -29, -28, -25, 45, 9, -30, -19, -62, 50, 10, 52, 21, -41, 64, -59, -80, 56, 59, -61, 44, 6, 24, -80, -1, -49, -15, -56, 84, -61, 18, -32, 25, -86, -1, -47, -22, 43, -41, 79, -37, 19, 28, 36, -30, 1, 38, -17, -55, -88, 65, -50, -52, 46, -34, 25, 64, 74, 61, -11, 44, -88, -8, -74, 66, 25, 2, 13, -72, 76, -33, 1, -6, -5, 25, -85, 87, 26, 32, 16, 83, -62, -1, 83, 57, 70, -16, -10, -85, -85, -77, 48, 51, 27, -46, 54, -36, -52, -64, -26, 43, -20, -63, 32, 83, 46, 76, 33, -10, -46, -12, -63, -47, -70, -37, -87, -15, 18, -9, -16, 52, 2, 55, -56}, + {-64, 52, -1, -22, -39, 10, -2, -9, 21, -47, -28, -1, -16, -54, 82, -85, -26, 49, -78, -39, -16, -5, -63, -2, -24, -81, -74, 10, 60, 68, -67, -16, 22, -1, 34, 80, 105, 34, -53, 80, 48, 82, 18, -65, -59, -29, -85, 34, -4, 27, 40, -13, -29, 78, -69, 4, -10, -61, -47, -69, -88, -47, 63, -81, 68, 91, 79, 42, 41, -2, 13, -55, -14, -46, -32, -11, 74, -33, -37, -18, -38, 46, -31, 68, 78, -40, 26, -53, 20, 22, 2, 5, 47, 16, 41, 74, 76, -42, 43, 71, 39, -56, 44, -77, 48, 36, 33, 2, 75, 54, -30, -56, 85, -17, 52, -73, -81, -50, 9, -17, -62, -28, 12, -31, -26, -52, 29, -48, -91, 42, 12, 60, 6, -77, 42, 76, -87, 43, -54, -50, -18, -112, 14, -29, 64, -38, 37, -85, -70, -55, 19, -33, 5, -55, -15, -31, -62, -56, 75, -27, -38, 16, 32, -33, -49, 74, 78, -43, 50, -83, -74, 55, -60, 76, -30, -86, 84, 62, -9, 24, 68, 9, -3, 107, -38, 88, -37, -54, -15, -60, 21, 2, 50, -77, 91, -94, 83, -64, -87, 44, 61, 80, -1, -26, -62, -27, 84, 34, -34, -6, -29, 71, 50, -64, 100, -3, 72, -1, 53, -39, 36, 2, 21, 41, -8, -48, 11, 40, -43, 13, 18, -8, 55, -68, 2, -49, -87, -60, 22, 88, 16, -16, -6, 28, -53, 31, 13, -77, -16, -57, 72, -51, 69, -56, 70, 65}, + {-56, -8, 23, -59, -58, -58, 6, -67, -55, -56, 12, -14, -81, 0, -11, 19, -19, 46, 12, 83, 65, -17, -74, -30, -9, 66, 38, 53, -68, 62, 110, 0, -52, -1, -45, 40, 28, 17, -76, 54, 70, -29, -69, -78, 45, 23, -9, 88, 13, -76, -45, -74, -50, 47, -23, -13, 21, -4, -45, -32, -36, 13, 26, 77, 83, 4, -11, -45, -90, -70, 77, -19, 73, -29, 16, 65, -46, 60, 37, -14, 13, -55, 88, 55, -37, 50, 32, 58, 35, -89, -84, 89, -63, -74, -13, -75, 59, -90, 63, -55, -47, 11, 72, 56, 9, 35, 7, 66, 32, 56, 24, 79, -69, -85, 9, -19, -3, -27, -4, 84, -28, 82, 26, -81, 67, -19, -61, 74, 12, 16, -48, -31, -74, 32, -73, -43, 50, -18, -80, -34, 71, 51, -46, -85, 52, 49, 31, 79, -89, -18, -13, -20, -37, -33, -82, 14, -41, -68, 83, 76, 51, 79, -62, 64, 69, 73, 5, 54, 33, -50, -67, -88, 77, -28, -69, 10, -24, 6, -7, 36, -35, 60, 1, 25, 20, -76, 69, 35, 72, 22, 55, -13, -26, 67, -4, -62, 12, -18, -38, -13, 22, 31, 79, -16, 13, -28, -2, -8, 20, 49, -43, 47, -32, -9, -18, -81, -33, 43, 19, 27, 74, -15, -41, -61, 72, 91, -4, 88, -6, 8, 9, 2, -32, -40, -8, 51, 19, 72, 25, -44, -32, -38, 24, 23, 72, 85, -65, -57, -14, -48, 4, -50, 19, -19, -86, -11}, + {-4, 16, -62, -34, 54, -6, 32, 81, 23, 38, -36, 62, 70, -57, -57, 75, -92, 64, 42, 63, 14, 78, 28, 29, -58, 36, 35, -70, -82, -43, -32, -47, 62, 8, 96, 3, -51, 77, -26, 35, 19, 48, 66, 58, -75, 17, -14, -74, 1, 90, 35, 49, -62, -40, 13, -50, -65, 42, 3, 53, 42, -11, 41, -80, -20, 59, -60, -18, -63, 67, 80, 89, 18, -91, 32, 81, 76, -87, -43, -86, -21, 10, -56, 10, 14, -39, 37, -22, -25, 51, -34, -63, -15, 72, 58, -32, -21, 23, -63, 80, 33, -13, -54, 1, 69, 26, -23, 71, -33, 68, 49, 5, -76, 65, 14, 89, -43, -36, 56, -30, 12, 4, -62, 32, -19, -81, 96, 5, 84, -77, -34, 26, 11, -30, -27, 45, 59, -16, 81, 83, 8, 1, 74, 37, 34, 78, 82, 6, -2, -48, -81, -61, 56, 48, 18, -46, 14, -29, -59, -74, 7, 53, 41, -20, 13, 69, 70, -43, 38, 31, -43, 40, 4, 0, -42, -24, 55, 86, -38, 53, 53, -32, 79, 26, 5, 17, 32, -19, -68, -76, 22, 34, -35, -35, -41, -31, 71, 7, -79, -41, -53, 41, 57, 5, -25, -51, 70, 89, 47, 92, 33, -30, 13, 82, -74, 14, 30, -31, 18, 53, 1, -14, 56, 82, -77, 78, -94, -77, -3, -42, 7, -60, -79, 3, 41, 88, -26, 47, 52, -68, -31, -64, 1, -38, -63, 2, 32, -19, -63, 30, 16, -39, -5, -43, 7, 16}, + {35, 65, -63, 41, -25, -16, -38, -37, -28, 7, 89, 5, -56, -51, -9, -48, 36, -29, 1, -22, 11, -20, 63, -71, -52, 81, 49, -14, 47, 31, -75, -81, 47, -23, -35, -55, 17, -32, 35, -31, 64, 24, -76, 42, 77, 84, -33, 20, 70, -80, 70, -48, 7, 0, 85, 65, 28, 18, -40, 17, 66, -48, 20, -43, -82, 21, -4, -15, -47, -56, 17, 43, 21, 8, -72, 19, 48, -24, 16, -4, 41, -18, 55, 8, 13, -44, 50, -41, -63, -38, 50, -13, -78, -21, 101, 83, 71, 108, -67, 26, 89, 92, -63, -27, 3, 7, 44, -3, -10, -5, -68, 21, 42, 24, 60, -70, -61, -106, -28, -44, 32, 25, 43, -82, -13, 24, 2, 85, -31, -19, -75, 34, 22, 97, 66, -30, 85, 25, 38, -32, 0, 9, 27, 42, -26, 16, -79, -44, 56, -56, -61, 47, -69, 73, 16, 103, 90, -45, -69, -14, -55, -20, 27, 55, -100, -75, 88, 3, 60, 23, 6, -24, 88, -20, 95, -29, 89, 40, 70, -64, -21, 78, 17, 85, 65, -15, 20, 32, 57, 7, 0, -83, 84, 20, -65, -91, 17, 56, -84, 15, 2, -38, 87, 4, -73, 112, -67, -81, 69, -75, 15, 81, -24, -41, 2, 24, -53, -15, -12, 18, -4, 16, -48, -57, -66, -76, 97, 3, -47, -55, -11, 14, 61, -63, -78, 81, -46, 4, -25, -52, 51, -64, -2, -69, 90, 64, 15, -13, -89, 71, -24, 37, -47, -88, 68, 29}, + {-1, 72, -59, -61, -23, -66, 34, -6, 22, 33, 48, 54, -23, -68, 47, 47, -59, 41, 53, -55, -36, -84, 39, -28, 21, 69, -82, 21, -84, -11, -37, 47, 25, 64, 42, 48, -43, -7, -28, -89, -44, 84, 17, -78, 26, -5, -11, 22, -73, 8, 10, 51, 8, 46, -73, 76, 55, 86, -16, -29, 83, 41, -39, 8, -69, -51, 74, -4, 7, -54, -66, 52, -16, 61, 62, -78, 46, -77, -38, 5, -72, 5, 88, -81, 13, 74, 68, 54, -72, -5, -91, 80, -20, 37, 78, 42, 23, 4, -10, -9, 28, 25, 55, -69, -43, -39, 87, -32, -87, -41, 75, -79, 13, -19, 34, -67, 44, 39, -88, 69, -31, -45, 80, 25, -47, -56, -75, -77, 6, -53, -90, 51, 85, -63, 39, 62, 6, -15, -43, 78, 42, -50, -86, -77, -50, 57, -78, -92, 18, -84, -25, -85, 25, -39, 71, -34, 79, 87, 70, 4, -36, -45, 58, -5, -63, -60, -39, 48, 56, -37, 40, 80, -41, 18, -60, -85, -37, -81, 23, -73, 29, 22, 42, -89, -88, -62, 1, -12, -87, -29, 20, 63, 68, 42, 59, -4, 49, 55, 80, 62, -9, -24, -91, -32, -85, -49, 0, 13, -25, 78, -9, 9, 6, 38, 80, 66, 18, -56, -88, -10, 51, -31, 27, -2, 42, -14, 5, -83, 2, -29, -4, 9, 86, -41, 63, 2, 48, -77, -71, -87, 60, 35, -50, -66, -80, -24, 18, -50, 13, -83, -49, 88, 42, -84, 70, 6}, + {28, 89, -4, 43, -35, -74, 36, 10, 58, -48, 82, -57, 28, -4, -4, 50, 22, -3, 56, 75, -57, -31, -2, -44, 63, 43, 19, 16, -6, 48, -64, -3, -16, 24, 53, -76, -34, 9, -55, -81, 26, 42, 77, 57, 34, -32, -6, 11, -14, 33, 76, 57, -2, -74, 36, 5, 33, 50, -73, 45, 28, -48, 80, 22, 20, -13, 60, 22, 67, 52, -28, -31, 17, 74, -63, -54, -78, 77, -65, 63, 21, -20, 27, -82, 87, -87, -85, 2, 61, 0, 69, -74, 85, -79, -21, -49, 62, 46, -82, -49, -59, -25, 68, 0, 13, -19, 74, 22, -6, 15, -65, 79, 7, -38, 43, -78, -66, 48, 55, -60, -89, 34, -83, 38, 23, -8, 14, -29, 50, 59, -39, 38, 21, -31, -61, -82, -76, 5, -51, 9, -65, 26, -60, -41, 39, -36, 16, -11, -58, 34, -24, -72, -49, -5, -32, -75, -70, 13, -26, -41, 34, 42, 45, -89, -41, -46, -89, 80, 82, 77, -80, 28, -47, 36, 76, 1, -66, -28, 18, -48, -46, -73, -56, -35, -37, -62, -78, 77, -48, 75, -83, -81, 4, -3, 18, -33, -80, -1, -45, -46, 31, -38, 80, -78, -77, 55, 56, 29, -9, -58, 45, 27, 42, -50, -58, -53, 7, -6, 68, 88, -56, 49, 26, -87, -3, 42, 56, 18, 27, -27, -38, 38, -61, -7, -88, 17, -33, -59, 49, -23, -7, -67, 10, 8, -33, 85, -61, 77, -85, 81, 22, 35, -74, 7, 33, -32}, + {-53, 14, -47, -76, -61, 54, -32, -47, 24, 10, 84, 61, -53, -2, -23, 89, 57, 72, 48, 17, 41, -25, -44, -55, -56, 82, 60, 87, 74, -47, -34, 40, -24, 75, -17, 42, 48, -79, 50, -61, -18, 44, -14, -17, 69, 43, -85, -42, -2, 19, 53, -54, -67, 84, 59, -55, -9, 57, 5, 77, 7, 89, -87, -83, -71, 1, -52, 69, -29, -29, -14, -88, -26, 43, -11, 7, -43, 16, -73, -80, -33, -80, 1, 43, 14, -13, -3, 80, 87, 13, -17, -36, 88, -16, 59, 8, -32, -84, 72, -81, 69, -61, -45, -49, -76, 54, -14, -25, 44, -47, 77, 17, 42, -58, 18, -52, 85, 25, 57, 3, 25, -62, -67, 56, -43, 67, 4, 57, 15, 41, 40, 39, -39, 25, 32, 15, -78, -93, 40, 35, 39, 29, -59, -88, 25, 46, 24, 7, 50, -52, 52, 9, -71, 42, 43, 42, -49, 88, 84, 53, -41, 68, 10, -29, -65, 55, 19, 67, 32, 62, -10, 86, -12, -67, 60, 41, 28, 83, -3, -71, 84, 93, 47, 25, -21, -80, 60, -83, 37, 21, 62, -81, 2, 52, 2, -1, -41, -11, 47, -79, -87, -10, 11, 33, 37, -1, -23, 47, 13, -38, 6, -82, -38, 65, -73, 24, 25, -69, -49, 74, 48, -46, 60, -6, 4, 57, -10, 4, -28, -41, 45, -6, -52, -35, -55, 64, 72, 14, -66, 35, 37, 63, -54, -77, -10, 76, -58, 45, -51, -81, -28, -81, 62, 68, -27, 23}, + {-61, 75, -41, 64, 40, 42, 10, -36, 2, 62, -64, 33, 7, -71, 19, 75, -52, 100, -10, -57, -22, -22, 81, 37, -68, -2, -6, 41, 19, -13, -43, 33, -54, 69, -66, 87, -29, 76, -61, 0, -20, -32, -12, -83, -80, -25, 37, 1, -11, 11, 2, -54, -69, 67, -4, -38, -58, 12, -59, 84, -23, 92, 19, 26, -6, 53, -9, 56, 0, -68, 38, 84, -13, -78, -33, -40, -44, 4, -45, -4, 19, 80, -67, 19, -4, 8, 80, 16, -50, -10, -2, -82, -50, -46, -7, 27, -12, 9, 66, -77, -29, -5, 20, -44, 62, 39, -71, 58, -54, 47, 53, -77, 54, -66, 78, 18, -75, -44, -35, -14, 39, 85, 24, -76, 79, -7, -81, 97, 16, 50, -28, -55, 21, -42, -36, -75, -32, 8, 5, -52, 60, 52, 52, -70, -47, 80, -28, -44, 41, -97, 69, -8, -85, 88, 79, 72, 78, 75, 82, 11, 55, -40, 86, 25, 69, 34, -54, 85, 43, 72, 36, 66, 51, -36, 81, -63, 39, 92, 2, 0, -17, 28, 1, -92, 6, -36, -26, 41, 5, -12, -79, 47, -10, -83, 4, 69, 76, 88, 80, 23, 44, -12, -41, 6, 20, -10, 63, -84, 1, -24, 87, -20, 79, -30, -69, 28, -20, -40, 28, -82, 27, -43, -53, -72, 55, 76, -36, 56, -18, 18, -10, -41, -33, -43, 32, 4, 80, 98, 62, 32, -7, -4, 19, 76, -78, 16, -48, 79, 52, -66, -65, 74, 16, 31, 2, -27}, + {-9, -33, 18, -38, -52, 31, -46, -41, 36, -64, -47, 14, -25, 52, 79, -21, -30, 79, 2, 47, -5, 47, 71, -52, 54, 30, 71, 85, 59, 41, 0, -87, 51, 67, -82, 47, -88, -61, 20, 85, 45, -55, -42, 59, -88, -36, -87, -43, 7, 6, 54, 34, -13, 67, 59, -73, 27, 22, 18, 0, -82, 86, -79, -46, 0, 67, 18, -85, 12, -2, -3, 17, 85, 69, -84, 42, 83, -27, -21, -46, 82, -44, -77, 88, 6, 41, 60, 42, 47, -37, -77, -58, 42, -69, 1, -63, 64, -25, -36, -34, 29, 46, 24, 6, 63, 62, -86, 80, -32, 13, -22, 39, -49, -7, 75, -34, -49, 28, 16, 14, -53, -9, 62, -14, 62, -18, 55, -17, 89, -34, 18, 5, 29, 39, 76, -57, -14, -21, -2, 5, -66, 31, 19, -44, -54, -78, -34, -51, -77, -32, 52, -34, -6, -70, 79, -80, -66, -22, -50, -79, 45, -12, 63, -9, 48, -11, -31, -65, -35, -34, -28, -36, -15, -55, 67, -43, 88, -82, -79, 24, -88, -84, -51, 50, -62, -88, -23, -19, 68, 1, -51, 47, 50, 26, 84, 70, -43, -49, 54, -46, 70, 46, 48, 1, 24, 49, 84, -84, -41, -81, 8, 67, 12, -75, -54, -77, 41, -79, -31, -70, -3, -12, 51, 85, -16, -34, -51, -36, 45, -66, -73, -82, 84, -59, 69, -49, 46, -16, 51, -81, 80, 1, 34, -10, -88, -58, 64, -69, 29, 36, -7, 6, 40, -33, -21, -31}, + {2, 25, -85, -13, 86, 66, -2, 2, -20, -15, 37, -66, -69, 47, -1, 70, -27, -3, 73, -79, 66, 115, -56, -48, -42, -40, 23, 29, -49, 74, 51, 23, -68, -60, 22, -88, 35, -75, -5, 1, 40, 56, 76, -35, 7, 22, 48, 68, 32, 35, 13, 9, -65, -10, -68, 73, -17, -41, 4, 19, 14, 39, -4, -50, 17, -66, -4, 81, -65, -36, 20, 64, 48, -39, -14, -85, -6, -54, 67, 21, -63, -33, 7, 38, -15, 14, 79, -71, 70, -78, 54, -88, -33, 50, -61, -83, -81, 74, 56, 47, 64, 90, -7, 9, 25, -88, -29, 12, 5, -32, 5, 50, -83, 63, -59, 62, -61, 41, -14, -32, -81, 43, -11, 60, 7, -63, -8, 65, -9, -26, 4, -11, 25, -35, 77, 76, 74, -30, -78, -64, 67, 29, 69, 31, 69, 7, 65, -48, 43, -53, 89, -59, 3, 10, 42, 59, 16, -49, 64, -86, 17, -28, 46, -18, -43, -16, -60, -48, 29, 57, 50, -61, -61, 38, -45, -57, 64, -28, 84, 6, -41, -20, 83, 14, -6, -80, 5, 80, -48, 61, -46, -47, -40, -7, -88, -67, -39, -81, -71, 80, -17, 14, 87, -14, -78, 52, 22, -66, 51, 40, 56, -57, -54, 77, -2, -86, 22, -44, 34, 53, 50, -71, 81, 7, 80, -79, -62, 33, -53, -39, 85, -3, -34, 43, -66, 0, -13, 44, 71, 47, -84, -51, 29, 71, 51, 2, -32, 64, 51, 38, 20, -43, -19, -41, 44, 13}, + {-59, -36, -61, 5, 43, 11, -13, 47, -68, 0, 54, -8, 27, 17, 92, -55, -23, -76, 2, -81, -83, 34, 56, -33, -76, 84, 12, -58, -45, 62, -81, -60, -30, -61, -104, -79, 34, 45, 58, -32, 25, -24, -12, -70, -86, 2, -26, -4, 41, -92, 61, 68, -63, 63, -55, 86, -47, -22, 1, 6, -63, -10, -20, 11, -53, 81, 28, -34, 72, 76, -5, -62, 82, 86, 17, -35, 42, -73, -84, 10, -37, 84, 11, 8, -47, 52, -49, 34, 76, 10, -64, -33, 9, 89, 90, -8, 74, -27, -46, 5, -110, 22, -53, -4, 62, 1, -67, -14, -15, -100, 86, 47, 39, -3, 74, 84, 87, 20, -73, 92, 36, 8, 73, -32, -40, 83, 3, -4, 14, -28, -57, 0, 9, -62, -32, -71, -12, -52, -48, 67, -67, 12, 2, -20, -40, -22, -31, -83, -23, -24, -60, 4, 66, 35, 68, -8, 92, -66, 80, 24, 78, -59, -46, -85, 43, 54, -16, -8, -53, -69, -25, 52, 67, 13, -21, -67, -48, -9, 1, 89, -71, -112, -7, 51, 26, 43, -8, -45, -28, -30, -5, -57, 8, -70, 90, -5, -82, 66, -46, -71, 14, 72, 67, 50, 37, -6, -3, 74, 16, 47, -82, 46, -22, -68, 22, 81, 23, -50, 87, 11, 49, -36, -81, 55, -22, -86, -63, -19, 84, -9, -13, -113, -26, 69, 6, 54, 49, 59, -14, -52, -78, 48, 82, 84, -66, -21, -66, 53, -78, 22, -95, 78, -13, -43, 84, -27}, + {-3, -78, 55, 22, 86, 47, 37, -20, 42, -78, -64, 6, -24, -51, -20, 33, 78, -5, 49, -24, 70, -48, -33, 68, 24, -35, -6, -43, 83, -32, -69, -13, -89, 87, 81, 30, 5, -38, -31, -38, 89, -2, 64, 5, 47, -48, -34, 5, 1, 22, -85, -19, -66, -70, 49, -15, -83, -15, 41, -77, -55, -86, 52, -34, -78, 40, 71, -64, -47, -38, -60, 41, 86, -83, 17, -55, 76, 38, -84, -7, -60, 78, -23, -82, 20, 60, -71, -7, 73, -53, -85, -63, -30, -37, 62, 20, 74, -21, -33, -24, -49, 32, 75, 10, -61, -73, -41, 22, -21, -76, -12, 26, -80, 82, -81, -55, 70, -65, 77, -44, -50, 26, -82, 59, -28, -16, 63, 62, 17, -32, 24, 34, -85, -28, -34, -77, 4, -8, 47, -35, 61, -84, -88, -14, 41, -71, -45, 75, -65, -119, -78, 7, -58, 11, 75, 61, -34, 53, 71, 24, -57, 27, 52, 4, 1, 42, -2, 21, -50, 44, -29, -82, 92, -50, 85, -1, -70, 58, 42, 43, -13, -20, -27, 54, 6, -47, 45, -57, 76, 54, 12, -36, -56, -17, -65, -99, -65, 20, 23, 53, -11, 6, -54, -83, 88, 71, 86, 29, 75, 75, -18, -6, -77, 29, 19, 29, -50, -82, -4, -56, -22, 52, -14, -45, 40, 80, -34, 51, 18, -25, 32, -32, 71, 29, 69, 89, 80, 60, -53, 56, 7, 57, -17, -18, -70, -4, -86, 86, -54, -29, 35, 3, 66, -30, -27, 1}, + {-40, -41, 76, -29, -1, -21, 82, 11, -55, 74, -38, -9, 23, 27, 22, 10, 70, 14, 58, -57, 63, -30, -1, -51, -70, 44, -74, -71, -60, 57, 79, -20, 71, -42, 9, 19, 12, 53, 76, 47, -92, -88, -57, 42, -88, -84, 89, -54, 41, 82, -17, -44, -31, -32, -3, 43, -81, -18, -111, 44, 21, 21, -60, -47, 81, 83, 77, -12, -7, -76, 20, -66, -28, -7, 39, 52, -23, -6, 37, -51, 35, 2, 84, 16, -19, 24, -30, -94, -59, -71, 78, 60, 44, -64, 54, -69, -11, -63, 77, 70, -67, -40, -81, -50, 11, 16, 63, -72, 10, -108, -5, -7, -83, 10, -18, 25, 15, 29, 55, 10, 14, 88, -37, -38, 44, -72, -92, -81, -98, -33, -31, -97, -24, 16, 50, 14, -24, -80, 50, 26, 76, -20, 10, 42, -32, 32, 58, 75, 1, 68, 62, -60, 89, 65, 43, -74, 14, -27, -50, 14, 43, -43, 25, -44, -11, -30, -1, 70, 0, -40, -78, 85, -65, -17, 5, -76, 34, 46, -57, 23, -66, 1, 83, 78, 6, -17, 34, 3, -9, 40, -31, 82, 69, 61, 72, -27, -49, -17, 16, 95, -9, -10, 89, 61, 37, 30, -53, 65, -13, 11, -8, 0, -92, -42, -58, -81, 21, -69, -18, 67, 0, 56, -11, -25, 96, 1, 78, 61, -47, 11, 60, -87, 47, 48, 25, 17, -39, -83, -89, -74, 48, 43, -38, 8, 31, 40, -48, 48, -4, -76, 1, -79, 63, -48, 13, 33}, + {-68, 55, -1, 77, -1, -69, -77, -37, -7, 34, 3, -87, -35, -16, 2, 6, 86, -38, -5, 84, -8, -41, -20, -32, -81, 3, -51, 39, 37, -34, -56, -39, 71, -29, -49, 30, 81, -71, 36, 48, 34, 6, 13, 78, 19, 61, -64, -9, -81, 49, 72, 73, -37, 41, -43, -57, -37, -18, -55, -27, 52, 47, 51, -19, 65, -90, 13, -74, 67, -34, 51, 13, -30, -57, 63, -11, -27, 85, 39, 8, -7, 34, 10, 27, 63, -16, 54, -35, -77, -83, 5, -49, 21, 28, -17, -50, -61, 74, 66, -67, 43, 30, -49, 1, -1, 68, -8, -40, -76, -81, -25, -77, -83, -87, -85, 40, 56, 28, -8, 19, -33, 73, -60, 19, 32, 63, -6, -33, -76, -86, 55, 73, -65, -35, 10, 0, -27, 71, 60, 22, -39, -60, 3, 87, 0, 14, -7, 32, -47, 89, 79, -30, 0, -39, 36, -38, 34, 87, -82, 71, -22, 40, -19, -56, 56, 73, 34, 52, 30, 42, 70, 28, -78, -87, -70, 18, 4, -32, 25, -15, -82, 46, 39, -56, 22, 41, 65, -13, -3, 9, 24, -48, 7, 67, -31, -35, 51, 68, -44, 72, 2, 64, -33, -86, 81, -8, 50, -48, -57, 86, 2, 64, -50, 12, 37, -27, -91, -16, -76, 46, -76, 55, 32, -83, 66, -77, -50, -72, 74, 49, 29, -7, -25, -11, 37, -82, -3, 48, 14, -49, -4, -85, 70, 9, 81, 12, -48, -50, 63, -31, 56, -66, -44, -10, -7, 29}, + {-36, -62, -53, 18, 70, 20, 65, -15, 41, 8, 15, -63, 0, 10, -91, 18, 18, 30, -46, -63, 4, 102, 59, -52, -92, -44, 70, 73, 12, 62, -72, 26, -58, 45, -114, 9, 48, 32, -33, 55, 48, 46, 59, 3, 74, 18, -56, -13, -14, 42, 11, 75, 29, -66, -32, 40, -77, -51, 38, -39, -75, 58, -83, -21, 5, -4, 67, 44, 65, 81, 25, -12, -33, 91, -64, 26, 35, -37, -36, -46, 13, 45, 50, 74, -4, -29, -16, 80, -81, 6, -47, 7, -67, -71, 44, -77, 9, 114, 52, -29, -63, 6, 36, 58, 2, 44, 30, -63, 45, 13, 2, -73, 84, -95, 51, -16, -16, 15, -63, 8, 54, -49, -23, 78, -6, 76, 67, 73, -10, -64, 60, -89, -17, 87, 87, -74, 33, -112, 5, -71, 57, -31, -88, 66, 33, -61, -26, -72, -12, -74, -35, -87, -10, -86, 75, 23, 55, 77, -18, 7, -72, -62, 71, 54, -63, 45, 41, -83, -77, 46, 75, -37, 34, 20, 29, 50, 50, 72, -63, 83, 78, 76, 65, 77, 27, -41, -49, -3, -67, 46, -33, -64, -47, -7, 23, -11, -10, 2, -37, -69, -48, -23, -72, 55, 61, 87, -51, 23, -2, 37, 42, -6, 41, -62, 118, -60, 44, -36, 51, -14, 21, -12, 1, -14, 17, -3, 117, -14, 32, 32, 2, -24, -32, 31, -71, -8, 8, -3, 30, -14, -58, 40, 81, -34, 15, -21, 85, -28, 74, 22, 110, -44, 9, -75, 92, 10}, + {65, 30, -36, 63, -8, -34, 37, -24, -16, -84, 32, -4, -26, -79, 65, 60, 25, -55, 83, 57, -25, 37, 43, -42, 60, -30, 84, -76, 38, 75, 14, -4, -16, -21, -88, 64, -31, 47, 76, -62, -15, 84, 67, -84, 20, 9, -25, -90, 15, -76, -90, -89, 47, -86, 42, -73, 75, -54, 88, -59, -91, 50, 24, -21, -3, -82, -6, 0, -21, 37, -3, -84, 73, 28, -35, -74, -3, 13, -82, 41, 55, -3, 20, 39, 82, 73, -9, 71, 6, -39, -59, 1, 12, 61, -30, 39, -71, -89, 40, 30, 51, -5, 49, 3, -54, -18, -87, 25, 60, -61, -88, 26, -19, 56, 42, 18, -49, 65, 6, 34, 66, -31, 74, 32, -31, 2, -45, 15, -46, 42, 78, 50, 27, 63, -19, -13, 50, -47, 31, -33, -78, 61, 86, 8, 56, -35, -4, 44, -73, -34, 77, -38, 23, -55, -34, -52, 58, 42, 66, -51, 48, 72, 64, -67, -68, 77, 80, -56, 83, -64, 44, -92, -53, -4, 56, 5, 59, 54, -67, 47, -3, 59, -70, -72, 1, -4, 21, 43, 16, -28, 71, 74, -85, 60, -72, -68, 2, -18, -57, 17, -12, -48, 45, -59, -1, -1, -19, 56, 7, 68, 20, -18, 38, -36, -78, 8, 22, -78, -22, 41, 39, 81, -66, -82, -45, -14, -73, 77, 59, -69, 45, -36, -68, -65, 24, 7, 46, 20, 70, -51, -53, -69, 19, 71, 66, 65, 70, -47, 79, -57, 18, -34, -77, 6, -1, 85}, + {9, -36, 66, 33, 75, -28, 23, 11, 25, -89, 85, -7, 22, 21, 75, -51, 50, -70, -67, -80, 49, 79, 0, 82, 56, -36, 17, 67, 5, -43, 47, -82, 59, -55, 61, -61, 28, -33, 11, 84, 75, 85, -65, 15, -57, 60, 6, -74, 61, 4, 39, -79, 75, -23, 78, -79, -60, -46, -30, 29, -33, -40, 36, 71, -71, -19, 66, 36, 41, 62, -1, -86, 67, 60, 28, 63, -39, 54, -78, 60, 80, -80, -40, 86, 31, 46, -59, -47, 27, -38, -87, -67, -68, 54, 64, -78, -24, 73, -80, 11, 20, -63, -74, 4, -11, 36, 18, 51, 84, -44, 37, -80, -47, -67, 78, -50, 27, -25, 58, 28, -39, -61, 67, -5, -20, 76, -87, 34, 85, 73, 1, -39, 62, 22, -37, -75, -66, 25, 78, -57, 81, 68, -47, 61, 6, -24, 18, 44, 75, -25, -27, -83, -88, 75, 43, 78, -5, -3, 26, -34, -88, -26, 19, 13, -11, 36, -81, 54, 76, -24, 87, -44, 71, -6, -78, -55, -83, 66, -63, 42, -25, -14, 11, 44, -25, 75, 62, -78, -72, 74, 68, -63, 5, 12, -84, -53, -79, 34, -9, 62, 57, 2, -67, -61, 51, 3, 38, 55, 28, 87, 68, 65, -24, 72, -25, -55, -43, -84, 26, 6, -64, 35, 60, -56, -82, -2, -4, -86, -46, 10, -34, 65, -59, 37, -82, -67, 40, -43, 13, 52, -27, 70, 3, -59, -46, -35, -13, 73, 35, 22, 52, -41, -27, -76, -24, 71}, + {-66, 28, -24, -40, -83, -23, -35, -35, 16, -49, -5, -86, -55, 21, -3, -68, 24, -12, -8, -17, -51, 18, 73, -4, -3, 36, -9, 15, -57, 93, 62, 22, 72, -35, -14, 42, 42, -63, 81, -57, -21, 0, -91, 87, -48, -41, -64, -79, -6, -73, 40, -27, -75, 86, 72, 82, -62, 24, 54, 16, 31, 53, -46, -44, -35, -80, 73, -6, 7, 20, -57, -51, -83, 1, 5, 35, 46, 52, -39, -38, -15, 2, 73, -9, 74, -64, 66, -36, -74, 83, 16, 74, -73, -14, -35, 2, 61, -18, 74, 62, 19, 89, -4, 44, -31, 2, -88, 20, 50, 39, 38, 43, 39, 9, 3, 86, 51, -55, -80, -52, -18, -18, -63, 52, -49, 41, 18, -48, -88, 24, 69, 25, 5, -21, -31, 72, -67, -68, 73, 0, -53, -46, 3, 70, 60, -7, -11, 30, -51, 46, -15, -36, 30, -75, 61, -17, -59, -79, -25, 38, -36, -10, -73, -78, -66, -17, -61, -26, 47, -61, 36, -48, 31, -27, 23, 40, 99, -9, 39, 69, 127, -34, -45, 62, -37, 15, -31, -70, -22, -30, -55, 39, 58, 57, 121, 35, 43, 83, 7, 101, -92, -83, 74, -22, -60, 70, -71, 12, -17, -60, 70, -28, 7, 78, 75, -7, 62, 87, 33, 80, 44, 36, 5, -41, 27, -16, 37, 23, 62, 119, 69, -85, 53, 68, -40, -22, -34, -13, 37, -10, 71, 30, -74, 28, 35, -11, -20, -30, 14, 28, -23, -10, -48, -6, -55, -60}, + {75, 54, -79, 8, 90, 84, -24, 51, -45, -14, 71, 67, -20, -49, -76, 42, 68, 82, -14, -82, -31, -13, 23, -54, -58, 85, -18, -64, -58, 34, 101, 22, -2, -26, 1, 62, -75, -70, -92, 47, 69, -53, -10, -51, -56, -47, -5, -62, 74, 7, -18, -5, 30, -71, 12, 91, 3, -67, 94, 19, 36, 26, 2, 81, 59, -71, 59, -20, 64, -53, -62, 71, -76, -72, -67, 9, -5, -18, 50, -46, -25, 57, -11, -55, -30, -61, -44, 75, 94, 69, 65, 46, 6, -69, -22, 11, -88, -72, 20, -58, 30, -59, 62, -44, 72, -22, -16, -83, 26, 35, 15, -25, 71, 61, -19, -81, 59, 13, 71, 12, 70, 5, -17, 7, -83, 52, -81, 81, 83, 9, 75, -20, 20, -56, -85, 51, 73, 2, 77, 32, 54, 93, 26, -8, -14, -35, 68, 85, -17, -46, 66, -70, 79, 60, -29, -9, 65, -69, -26, 16, -60, -58, 77, -29, 92, 1, -15, -54, 75, -31, 50, -48, 44, 39, -77, 29, -62, -82, -30, 16, 34, -83, -23, -52, 53, -22, 58, 80, 44, -90, -2, -52, -15, -104, -47, -9, 38, -4, 14, 7, 20, -47, -68, -2, -30, 14, 61, 22, 83, 58, 53, 54, -7, 89, 57, 22, 1, 23, -62, 41, 28, -72, -57, -13, -58, -62, 63, 74, 8, 62, 99, 79, -79, 85, 75, 56, 43, 98, -32, 84, 27, -6, -67, -34, 54, 84, -86, -18, -72, 72, 49, -63, -20, -89, 42, 40}, + {-65, 68, -67, -65, -10, 80, -7, -84, -23, -24, 79, -64, -64, 19, 42, 42, -64, 104, -20, -45, -36, 15, 7, 27, -35, 47, -3, -45, -1, 67, 5, 56, -50, -17, -37, -69, -17, -78, -9, 57, 25, -20, 50, 75, -66, -70, -30, -20, 12, 46, 85, 26, -38, -47, 79, 1, 23, 89, -17, 20, -25, -9, 67, 27, 22, 0, 59, 0, -3, -51, 53, -8, -78, 27, 18, 45, 54, 58, 96, 37, 3, 6, -72, -14, 27, 79, 15, 29, -79, -30, -37, -61, -28, -39, 41, -8, -53, -3, 86, 89, 92, 38, -20, -83, 0, 80, 56, 80, 81, 14, 45, 87, -24, 18, -29, -15, 27, -80, -29, -22, -34, 25, -45, 68, 68, -35, -29, -26, 68, -29, -52, 25, 8, -81, 36, -19, -74, -70, -11, -5, -19, 0, -64, -51, -8, 21, -3, -23, 63, 72, -37, 2, -29, 53, -88, -73, 69, 65, 24, 43, -23, -25, -49, 2, -28, -49, 82, -56, 47, -38, -65, -19, 20, 26, 43, 63, 3, -5, -48, 84, -60, -75, -34, -14, 40, 87, -57, -74, -77, 58, 43, 26, -39, -103, 67, -76, -56, -27, -47, -50, -6, -83, 81, 10, -4, 78, 63, -44, -45, 73, -44, 80, 3, 30, -83, -49, -5, -28, -78, -55, 52, 18, 16, -43, 89, 90, 35, -8, -17, -14, -46, -38, 24, 56, 53, 11, -37, -12, 8, -62, -59, -43, 60, -40, 70, 85, 12, -18, -55, 8, 30, 20, 55, 86, -4, 27}, + {-84, -43, 21, 49, -34, 0, 52, -16, 27, 64, 25, 42, 8, -55, 62, -82, -52, 19, -23, 10, 21, 85, -36, -73, 29, -30, 43, 14, -71, -34, -1, -68, 43, -13, -85, -13, -51, 51, 39, 17, -52, 58, 66, 74, 34, -38, 50, -17, -5, 83, 84, -66, 32, 13, -44, 0, -50, 55, 51, 85, -2, -70, 75, 57, 66, 73, 87, 3, -51, 16, -24, -41, -71, -12, 14, -57, -79, 73, -39, -13, 86, -58, -10, 73, -36, -35, -1, -7, -75, 58, -78, -45, -85, 76, 88, 25, 49, -3, 5, -12, 29, -80, -6, -77, -8, 53, 23, -57, -79, -66, -48, -29, -64, -31, -52, 16, -70, 11, -32, 7, 27, 63, -43, 57, 6, -75, 44, -27, -77, 8, -43, 8, 39, -13, 58, 22, -41, -79, -49, 63, 31, -31, -3, 42, 13, -14, -2, -46, 28, 60, 78, -33, 22, -67, 75, -24, -32, 20, 89, 11, 36, -32, -87, 48, -35, 20, 61, -14, 0, -74, -39, 48, 52, 8, -20, 8, -49, -3, 70, 7, 7, -75, -4, -74, -72, 17, -17, -14, 48, 12, -80, 64, -34, -5, -5, -62, 76, -78, -80, 26, 11, -17, 44, -53, 13, 44, -68, 51, 20, 86, -72, 35, 49, 71, 28, -73, 28, -39, -19, -85, -69, -27, -49, -12, -6, -35, 29, 63, 45, 26, 84, -78, -53, 75, -37, -40, 45, 0, -37, 31, 32, 14, 48, 84, -17, -56, 76, 1, 41, 14, -20, -13, 37, -39, -35, 25}, + {40, 68, 19, 15, -18, -59, 87, 89, -24, 16, 74, -55, -29, 64, -49, 26, -22, 18, -2, -67, -30, 34, 62, 6, 78, 84, 30, 0, 71, 52, 82, -5, 63, -81, 26, 62, 56, 73, -69, 88, -31, -7, -59, 33, 65, -41, -61, 84, -36, 76, 39, -71, 66, 52, 0, 74, -88, -11, 12, -26, -6, 61, 55, -79, -5, 42, 39, -16, -80, 50, -5, 34, 48, -89, 27, -57, -49, 51, 78, -18, 48, -46, 14, 55, -7, 76, 70, 88, 52, 64, 33, -14, 61, 89, -16, 23, -10, -100, 45, 81, -47, -67, -63, 45, 90, 31, 40, -80, 75, 32, -81, -21, 72, -1, -24, 91, 6, 83, 24, 30, -55, 13, -71, 62, 87, -34, -7, 91, -35, 80, 97, -85, -76, 21, 54, -64, -25, 96, -40, 7, 38, 0, 27, -68, 75, 42, -16, 14, 47, -53, -45, 42, -26, -82, -29, -45, -72, 29, 3, -28, -51, 51, -70, 18, 63, -15, 1, 77, 93, -57, -53, 70, 9, -59, -79, -69, 46, -49, 53, -27, 11, -19, 42, 21, 1, 30, 11, -75, -64, 53, 87, -14, 44, 36, -127, -48, 43, -79, -7, -36, 83, -2, 95, -50, 66, 65, 35, -47, 57, 21, -86, 91, 45, 48, 9, 20, 1, 12, -29, -66, 88, -56, 51, -25, 45, 79, 44, -28, 26, -7, 28, 93, 79, -72, 59, -56, -54, 84, -60, 55, -65, 69, 28, -13, -6, 58, 45, 26, -38, -90, -1, 77, 47, 80, -93, -34}, + {51, -85, -82, 14, 45, 39, -61, -81, 84, 87, -74, 0, -46, 63, -52, 80, 84, 94, -68, -74, -59, 69, 39, -67, 17, -70, -84, -52, -36, 61, 61, -54, -51, 23, -31, 72, 83, -25, 70, 59, 29, -48, -32, 50, -60, 46, 42, 18, 87, -45, 48, 21, 19, -14, -20, 86, 35, 27, -12, -37, 16, -71, -66, -51, -84, -29, 65, 58, -16, 48, 46, -45, -47, -53, 30, 38, 70, -34, -49, -40, 30, 74, -49, -71, 55, -72, 12, 18, -36, 29, -57, 15, 61, -64, 53, -76, 27, -7, -69, 48, 82, -17, -8, 97, 11, 9, -16, 79, 6, 68, 25, 54, 68, -27, -6, -34, -69, -69, 52, 29, 83, 77, 62, 25, -54, -43, 54, 90, -4, 4, 34, -57, -85, 40, -31, 56, 65, -92, 77, 53, 77, 45, -7, -83, -63, -67, -79, 45, 6, 54, 59, 14, 37, -4, -61, 10, -64, 61, -72, 0, -28, 32, -41, 10, 14, 65, 43, -68, 84, 8, -20, 47, -22, 72, -40, 56, 62, -86, -2, 6, 58, -50, 31, -9, 57, 21, -81, 9, 84, -44, 55, 77, 30, 115, -52, -5, 59, -25, -47, -52, -86, -66, -16, -56, -38, -78, -8, 48, -33, 33, -72, 60, 54, -23, 33, 65, 67, 44, -16, -54, 40, 85, 14, 75, 84, -64, -23, -77, -64, 23, 16, 38, 71, 15, 82, -26, 49, 35, 58, 60, 13, 10, -50, 78, 51, 57, 33, 27, 46, -28, -26, 69, 62, -57, 89, -68}, + {-79, 86, 85, 11, -45, -23, -31, 42, 12, -63, 24, -53, 67, -37, -26, -42, -43, 44, 17, -40, 67, -65, -2, 9, -22, 45, 1, -29, -52, -41, 67, -14, 8, 85, -31, -73, 73, 71, -47, -38, 83, -65, -39, 21, -45, 88, -15, 9, -79, -38, -42, -17, 10, -21, 17, -42, 84, -46, 88, 15, -48, 32, 51, 46, 53, 11, 74, 52, -62, -20, 8, -83, -61, 52, -50, -47, 87, -82, -1, -44, 62, -6, -36, -11, -27, 50, -77, -28, 40, -73, -76, 23, -45, 67, -64, -52, -62, -74, -3, 31, -19, -28, 43, 67, 77, -88, 56, -39, -61, 67, 85, 44, 60, -72, -24, 48, -46, 69, -43, -1, -55, -23, 68, 30, 15, -37, 84, 4, -16, 55, -40, -64, -36, -67, 31, -9, 77, 63, 45, -11, 80, 41, 14, -11, -83, 84, 20, 54, -47, -1, -75, -9, -38, -59, -18, -71, -81, -12, -56, 61, 64, 11, 82, -51, -19, 79, -6, -42, -11, -35, 41, -71, -75, 45, -32, -74, -16, -37, -12, -86, -85, 64, 86, -89, -53, 84, -24, -78, 19, 7, -76, -32, -49, 47, -9, -22, 44, 4, -66, 37, -8, -44, 74, -17, -82, -21, 47, -70, -19, -5, 89, 23, -64, 73, 43, -84, 22, -28, -24, -43, 3, 46, 64, 10, 20, -55, -47, 89, 70, -67, 11, -78, 5, 57, -18, -70, 1, 9, -56, 2, -18, -32, -16, -45, -45, 87, -82, -42, 28, -43, 59, -34, -80, 71, -41, -53}, + {41, -41, -9, -47, -49, 22, 38, -17, -14, 88, -49, 85, 71, 52, -65, -43, 20, -64, 87, -88, 51, 19, 41, 61, -36, -20, -28, 5, -14, -64, -45, -42, -13, 68, -93, -66, -83, 85, -44, -51, 21, -7, 34, 67, 82, 61, -48, -67, -54, 38, 6, -6, 69, 73, -66, -60, 20, 1, -18, -39, -32, -51, 7, 67, -23, 70, 65, -49, -50, -76, 59, 54, 76, -6, 67, -86, 73, 58, 19, 53, -78, -10, 6, -45, 9, -14, -79, 12, 40, -73, -71, 9, -52, 3, -29, 44, 16, 22, -74, -78, -25, 0, 68, 14, 7, -46, 58, -53, -60, 68, -12, -79, 25, -2, 19, 79, -57, 62, -1, 89, 7, -49, -67, -64, -30, -79, 84, 70, -51, -37, 84, 18, 25, -23, 23, 76, -85, -14, 51, -33, -51, 41, -69, 75, 35, 88, -37, 43, 0, 34, 0, 72, 29, 6, -70, 18, 72, -66, -64, -23, 44, 86, -35, 18, 44, -43, 35, 75, 55, -12, 41, 22, -28, 20, -2, -30, 45, -59, 27, -30, 18, -27, -9, 18, -14, -42, -72, 17, 85, -11, 41, 12, -8, 33, -63, -3, 62, -66, 82, -52, -44, -8, -31, -52, 7, 43, -63, -35, 91, -71, -23, 61, 6, -57, -71, 42, -81, -32, -60, -78, -66, -60, 67, 25, 79, 46, -47, 81, -44, -50, -4, -81, -18, -2, -21, 27, -46, 44, 69, -51, -80, -45, -83, 10, 31, -49, -4, -60, 33, 83, 31, -51, -57, -26, 57, -48}, + {-36, 37, 16, 53, 57, -79, 2, 80, 22, -84, -78, 30, -47, 7, -82, 4, -53, -14, 23, 15, 70, 0, 7, 14, -55, -2, 26, -82, -50, -6, 56, -89, -3, -41, 68, -64, 52, 0, 28, 13, 86, 6, -9, -49, 75, -1, 41, 63, -65, 53, 81, -18, -34, -23, -61, 64, 17, 39, 3, 1, -1, -46, -21, 26, 22, -45, -55, 84, -34, 54, 14, -25, -88, -58, -56, -80, 35, -71, 43, -4, 60, -61, -36, -21, -73, 56, -10, 59, 54, -40, -4, -55, -42, 86, 2, 84, -18, -49, 78, 63, -34, 21, -36, -48, -56, -85, 10, -72, 41, -70, -31, -13, 30, 67, 87, -94, 86, -106, -57, 71, -66, -46, -81, 83, -13, 82, -39, -6, -49, -45, 85, 8, -12, 59, -5, 60, -48, -19, -49, 34, -11, -3, -54, 81, 17, -85, -83, -45, -27, -4, -78, 73, 7, 78, -62, -10, 59, 5, 23, 87, -13, -89, 47, -6, -98, 35, 0, 46, -20, -52, 45, 9, -29, -42, 66, -53, -60, 54, -41, -43, 12, -94, 57, 98, 77, -72, -27, 8, 88, 13, 49, 89, -57, -73, -31, -25, 74, -78, 69, -55, 37, 14, 71, -60, 73, -64, -57, -1, 45, 40, 21, -88, 67, 46, -62, 37, 34, -12, -50, 81, -43, 52, -42, 2, 5, -26, 66, 30, -43, 85, 4, -46, -88, -72, 62, -20, 88, -100, 58, 102, 0, -65, -32, 1, -2, -68, -47, -56, -66, 13, -17, -89, -46, 13, 77, 62}, + {-49, 31, 2, 31, -68, -36, -67, -79, 86, -66, 88, 55, 76, -72, -55, 85, -87, 28, -73, 47, -40, -32, 13, 19, -32, -59, -66, 42, -25, 17, 78, -80, -6, -75, -14, -86, 43, -4, 54, -76, 54, 39, 28, -16, -11, -48, -42, 37, 24, -54, -42, -12, 3, 31, -18, -80, -32, 23, -84, -12, -12, -76, 34, -28, -86, -59, 58, 14, -54, -59, -80, -29, -73, -43, 1, 75, 33, 10, -55, -31, 5, 55, -47, 51, 4, 22, -54, 36, -49, 47, -67, -3, 49, -51, -84, 86, 26, 67, 33, -83, 4, 80, -81, 31, -60, -13, 41, 22, -35, -58, 29, 6, -83, -28, 2, -14, 4, 19, 58, -45, 29, -46, 29, -42, 21, 39, -88, -32, 74, -59, 3, -31, -45, -70, -43, -70, -33, -60, 78, -33, -71, -2, -64, -61, -43, 83, -20, -35, -59, -33, -23, -54, -25, 15, -44, -85, -80, 72, 2, 56, -69, -42, -75, 39, 13, -55, -50, -77, 46, 19, -36, 82, 82, -51, 35, 16, -39, 59, -32, 0, -55, -75, -65, 4, -16, 12, -89, -88, -45, 40, 46, -33, 42, -51, -80, 75, 62, 86, -50, 55, 63, -27, 45, -50, -16, -67, 67, 25, 53, -26, -33, -10, -50, 38, -64, 53, -82, -71, -32, 15, -75, -7, 72, 29, 41, 31, -80, 66, -20, 41, 79, 13, 18, 68, -38, 70, -37, -35, 54, -63, -80, -40, 15, 3, 83, 21, -5, 27, 27, -81, 50, 52, 65, 42, -18, -63}, + {87, 74, 25, 73, 3, -22, -11, 21, 32, 20, 46, -6, 45, 44, 43, -38, -73, 53, 7, 4, 31, -86, 81, 75, -36, -18, 24, 0, -26, -77, 80, -23, -74, 60, 2, -73, -32, 3, -53, -1, 88, 77, 71, -40, -70, -46, 38, 5, -25, -35, -26, -48, 72, -25, 84, 57, 72, -26, -59, 76, -52, -59, 65, 65, 47, -2, -37, 86, 13, -33, -35, -35, -27, -62, -68, -87, -64, -46, -26, 85, -40, 43, -86, -22, 40, -30, -69, -66, -3, -3, 83, 4, -7, -82, -57, 63, 66, 16, -83, 65, 34, 78, 19, 44, 48, -42, 77, -30, 57, 34, -47, 87, -52, -80, -24, 81, 72, -83, 69, 40, -37, 48, -88, 85, -31, 18, 62, 74, -33, 53, 4, -11, -41, -72, 87, 5, -30, 58, -51, -26, -64, -28, 42, 3, 33, -54, 30, 64, 20, -87, -88, -26, -64, 19, 13, 39, 64, 11, -40, -21, 51, -8, -16, 79, 88, -73, 12, -42, 15, 32, 47, 10, -80, 39, 55, -79, 64, -51, -75, -53, 15, -25, 12, -88, 42, 80, -46, -47, -18, -19, 31, 52, 84, -58, 55, -60, 8, -71, -41, -59, 23, 85, 23, 32, 61, -72, -61, 5, -45, -32, 77, -34, 12, 58, 6, 66, 80, -83, -83, -81, 84, -13, -74, 79, -29, 34, 71, 35, -23, -17, -42, 87, 2, -56, 67, 78, 48, 16, -79, 65, -18, 88, -39, -48, 20, 20, -47, -58, -52, -69, 76, -84, 59, -57, 76, 21}, + {-29, -23, 36, -3, -1, -59, -11, -40, 41, -25, 33, -65, 84, -55, -21, 45, 25, -6, -56, -53, -22, 97, 5, 5, -98, -60, -13, 60, 38, -73, -60, -69, 43, -2, -90, 66, -14, 63, 54, -75, -44, 22, -101, 15, -53, 28, -32, 74, -84, 63, 7, -39, 60, 2, 44, -27, 29, -37, 16, 71, -45, -67, 74, 25, -40, 39, 33, 68, 82, -59, 14, 47, -4, -37, 47, 55, -24, -67, -35, -32, 6, -29, 66, 59, 23, -92, 13, -66, 35, 20, 45, 17, -44, 22, 0, 8, 55, -19, -51, -23, 35, 106, -9, -13, 26, -9, -38, -27, 1, 36, 88, 74, -20, 42, -5, -59, -55, -38, 45, 18, 71, 74, 47, 70, 44, 17, -34, -50, -113, -68, 27, -87, -36, -37, 69, -75, -21, -100, 86, -41, -71, -89, 29, 26, 82, 40, -85, 53, 64, -54, 52, 26, -46, 47, 28, 55, 117, -40, 83, -60, -69, -78, 54, 11, -5, 88, 33, -63, 29, -29, -14, 49, -29, 21, 60, 55, 83, -13, 83, 3, 65, -34, 25, 99, -43, 73, 64, -43, 80, 72, -60, -27, -23, 39, 88, 26, 54, -4, 21, 36, 41, -74, 91, -64, -29, 27, 6, 72, -45, 7, -44, -77, 72, -46, 100, 29, -80, 23, -41, -64, 46, 29, 56, -31, -71, -50, -15, 14, 61, 29, -109, -84, 67, 14, -33, -77, 50, -98, 25, 110, 7, 30, 79, 76, -40, 35, -33, -24, -35, -60, 52, -77, -65, 71, 12, -19}, + {-78, -26, -18, -55, 81, 107, 84, -11, 39, -43, 45, -1, 8, -47, -46, -40, -4, -54, 94, -60, 0, -68, 75, 18, 24, 68, 17, 79, 17, -65, 0, -8, -12, 31, -52, 32, -96, -23, -89, -58, -20, 72, 81, -7, 87, 12, -72, -20, 70, 51, 42, -9, 49, 58, -73, 52, -21, 45, -51, -4, -16, -66, 40, 21, -50, 69, -83, 60, 64, -20, 40, 62, 2, -97, -78, -79, 93, 36, 90, 50, -36, 2, -13, 39, -55, -13, 14, 110, 103, -7, 34, -1, 14, -50, 63, 82, -28, -88, -46, 45, -28, -2, 83, 84, 47, -32, 26, -16, 68, -52, -19, -11, 12, -46, 24, -57, -46, 55, -79, 67, 84, 45, 17, 40, -19, -8, -62, 97, 117, -9, 38, -55, 55, 44, 16, 83, -8, 79, -69, -11, -36, 18, -4, 40, 101, -38, 96, 20, 33, 48, -2, 85, -79, 65, 2, 9, 15, 55, 83, -26, 30, -42, -69, 63, 112, 65, -50, 64, -3, 41, 8, 1, -74, -63, -64, -17, 21, -4, 55, 26, -72, -66, -11, -43, -92, 36, 59, -37, 49, 45, 43, 62, 85, 37, -99, -32, -60, 43, 36, -28, 68, -1, 34, -13, -38, -28, 79, -21, -85, -61, -83, -36, 52, 39, 16, -70, -8, -44, 2, 58, -63, 43, 8, 69, 39, 63, -94, -76, 50, -39, -30, 62, 0, 55, 27, -49, -31, 29, 68, -26, -30, 96, 4, 8, 86, -50, -56, -55, 26, -74, -21, 62, -78, -62, -73, -40}, + {-56, 87, 33, 37, -45, -36, -10, 7, -82, 46, 25, 44, -33, 72, -32, 82, 90, 23, 79, 56, -13, 31, 34, 54, -26, 55, 69, 75, -36, 42, 108, -16, -69, -8, -94, 28, 5, -44, 14, 63, 50, 15, -72, -81, 35, -45, -64, -9, 11, 75, 36, 8, 6, -2, -29, 2, 53, 25, 62, -73, -68, -12, -61, -75, 26, -39, 23, 61, -30, 43, -60, 53, -31, 38, -48, -9, 22, 35, -69, 18, -20, -89, -14, -14, 0, -15, 87, 32, -82, -62, 80, 37, -59, -5, -9, -7, -9, 25, 63, -35, 73, 39, -76, 28, 5, 83, -74, -74, 90, 85, -62, -88, 31, 36, -69, 3, -82, 82, 16, 66, -43, 51, 75, 79, 17, 31, -55, 10, -19, -65, 44, -92, -10, -50, -17, 20, -70, -92, 32, 50, 44, 93, 88, 29, 61, -17, 66, -90, -10, -81, 42, -78, 82, -71, -17, -86, 94, -65, 55, -29, -80, -21, 3, -17, 5, 84, -22, 87, -25, -32, 5, -2, -18, 23, 42, -9, 58, 77, -29, 6, -20, -57, -78, 94, -107, -13, -77, 20, 8, -75, -23, 85, 57, -46, -4, -28, 13, 49, 15, -73, -18, 21, 47, -10, 32, -1, -68, -46, 86, 50, 45, -27, 55, -36, -27, -31, -61, -6, 64, -52, -26, 44, -2, -7, 54, -47, -20, -39, -6, 21, 36, -23, -87, -6, 67, -51, 1, -63, -45, -32, -41, 79, 67, -53, 0, 20, 11, -41, 87, -4, 96, -51, 3, -20, -62, 51}, + {-61, 59, 54, -12, 30, -95, -44, -41, 18, -31, 17, 50, -69, -60, 54, 44, 55, 76, 6, 5, -34, -41, -13, 61, -31, -45, -74, -67, -89, -57, -74, -68, 9, -12, -36, -24, -16, 66, 115, 62, -29, -29, -41, 43, -86, -82, -15, -72, 36, -97, -30, 61, -59, -72, -8, 67, -85, -31, -66, -56, 9, -78, -23, 70, 47, 17, -85, -88, 23, -30, 3, 60, 13, 50, 59, -5, 17, 35, -63, 72, -2, -32, -12, -46, -95, 68, -23, -4, 46, -9, -50, 52, -55, 48, -41, -34, 69, -26, 13, -9, -45, 62, -75, -19, -1, -51, -11, 10, -16, -90, 63, -7, -42, 45, 68, 27, 46, -97, 57, 74, 9, 58, -55, -41, 78, 44, 61, 31, -17, -20, 78, -54, 60, 35, -48, 18, 63, -70, -46, -38, 10, -63, 32, 66, 67, 59, 9, 25, -80, -31, 62, -31, -77, 14, -46, -1, 32, 72, -34, -6, 39, 1, 67, 20, -85, 74, 78, -40, -37, -51, 56, -3, -28, -8, 11, -18, -38, -83, -87, -31, 70, -104, 12, 112, 86, 8, 15, 33, 18, -25, 55, 56, 65, 83, 91, 8, 73, -2, 87, -60, 44, -62, 15, 59, -11, -4, 7, 11, -27, -66, 33, 19, 80, -56, -23, 28, 17, 36, 26, -48, 59, -85, -75, 74, 39, 68, -18, 59, 13, -17, -53, -67, 83, 67, -58, 3, 35, 24, -13, 102, -2, 30, 31, 56, 1, -57, -23, -79, -78, 2, 75, 37, -11, 82, 14, -75}, + {67, -59, 20, 37, -9, 35, -17, 65, 20, 64, -88, 36, 96, 72, -69, 95, -25, -54, -12, -51, -55, 73, -12, 48, -3, 66, 10, -14, -44, 65, 28, 34, -83, -53, -50, -27, -84, -20, -22, -5, 65, -87, -19, -90, 43, -75, -84, 9, -27, 78, -3, 54, -54, -23, 56, 38, -5, 27, 60, 16, 35, 15, 67, 1, 99, 10, -78, 72, 49, 5, 18, 54, 8, -29, 44, 11, -14, 19, -63, -80, 0, -42, 10, 29, -17, -9, 11, -55, 64, 61, 48, 50, -28, -68, 5, -46, -65, -32, -39, 10, -79, 94, -85, -24, 65, -20, 43, 76, -78, -83, -27, 26, -77, -71, -41, 6, -14, 42, -58, 11, -75, 36, -51, -58, 82, 44, 62, -43, 41, 35, -50, 48, 8, 12, -68, 55, -37, 42, 86, 74, -71, 65, 80, 66, 22, -4, -21, 59, 62, -71, -32, 27, -6, -54, 88, -12, -73, -62, -49, 38, -58, -4, 51, -83, -79, 73, 17, 14, 12, -72, 74, -15, 1, 47, 27, 91, -39, -78, 90, -3, 80, -59, -59, 39, -56, -44, -30, -60, -2, -28, -88, -20, 38, 47, 5, -95, -3, -27, 18, 61, 73, 33, 42, 79, 36, -59, -15, -15, -69, -7, 65, -48, 48, 43, -9, 8, 45, 57, -5, 86, -42, -29, -83, 52, 4, -51, -31, 88, -110, 45, -37, 15, 64, 78, -4, -89, 49, -89, -75, -32, -7, -8, 38, 1, -42, -89, 75, -10, 69, -48, -77, 23, 31, 99, 55, -26}, + {-30, 59, 25, 51, -2, 50, 69, -8, 47, 77, 51, -9, -74, -39, -45, 8, -68, 6, -41, 85, 44, 34, -47, -83, 32, 26, 8, -37, -30, 57, -4, 57, 48, 33, 42, -19, -23, -56, 36, -76, 73, 44, 44, -68, -92, 0, 42, 6, 9, -52, 66, -89, 14, 53, 29, 52, 46, -85, -46, 2, 44, -84, -68, 32, 7, -40, 55, -72, 29, 18, -61, 14, -33, 27, -1, -34, 15, -57, 63, -20, -81, -29, 50, -37, 20, 66, 70, -61, 81, -80, 84, 51, -44, 34, 70, 59, 68, 86, -36, 86, -42, 37, -88, 73, -47, 57, 76, 37, -75, -76, 3, 60, 47, -42, -19, -50, -8, 44, 55, 51, 45, -53, -65, 61, 29, 58, -64, -60, -52, 81, 13, 84, 33, -17, 22, -1, -89, -86, 51, -20, -89, 46, -28, -19, -12, -71, -1, 79, -44, -97, 72, 83, 11, -87, -82, 69, 35, -88, 70, -45, 81, -20, 11, -18, -38, 7, 81, -75, -85, -29, 39, 40, -68, -39, -31, 33, 9, -22, 49, -24, 41, -95, -48, 48, -70, 38, 15, -20, 55, -45, -28, 6, 22, -84, 68, -78, 24, 83, 79, 77, 9, 28, -1, 84, -36, 67, -8, -39, -45, 62, -73, -60, 85, 42, -68, -86, 26, -54, -40, 74, 60, -45, 76, -64, -6, 84, 74, -29, -43, -60, -7, 60, -78, -27, 30, 23, -18, -36, -67, 71, -36, 64, -50, -62, 19, 54, 31, 15, 67, -15, 54, -29, 68, -71, -34, 71}, + {4, 54, 22, 14, 56, -8, -60, -71, -22, -26, -85, 50, 29, 67, 75, 30, -85, -101, 4, 29, 89, 65, -29, -20, 22, 58, -79, 18, 16, 37, 57, -53, -57, 88, 58, 32, 89, -33, -76, -31, -40, 77, -18, 66, -18, 55, -30, 83, 37, 80, 37, 47, 48, -81, 82, -80, 44, 58, 20, 69, 6, 43, -90, 23, 23, -34, -42, 14, -46, -14, 6, 41, 40, -76, 44, -6, 21, 71, -85, 89, -87, 55, 42, 9, 83, 65, -16, 84, -33, 76, -30, 74, 57, 52, -84, -47, -43, 63, -36, 55, -88, 76, -62, -58, -71, -81, -28, -31, 52, -72, -36, 22, 54, -32, -2, -37, 36, 63, -12, 60, -46, 2, 20, -85, -36, 80, 51, 55, 40, -28, -5, -39, -62, -51, 59, 53, 31, 1, -57, -47, -43, -13, 37, 42, 4, -100, -16, -62, -16, -37, 42, 41, 7, 0, 77, -63, 23, -39, -67, 46, 32, -49, -20, 25, -60, 40, -41, -74, -30, 31, 87, 51, -21, -25, -78, -26, 72, 40, -27, -50, -17, 6, 18, -26, 66, 30, -34, 77, -18, -69, 63, 55, 11, -34, 9, -45, 25, 3, 20, -43, -47, 26, 34, -45, 57, 46, -3, -41, -57, 78, -86, -16, -54, -78, 55, -32, -89, -9, 53, 84, 79, 85, 88, -48, 57, 46, 11, 66, -52, -55, 49, -53, -84, 26, 39, 47, 70, -62, -41, -38, 22, 14, 39, 89, 43, -35, -87, -52, 75, -18, 67, -65, -88, 52, 5, 60}, + {-9, 49, -73, 59, -78, 32, 40, -67, -3, 42, 87, 10, -58, -14, -64, -72, -80, -12, -32, -27, 85, -66, 89, -35, 13, -20, -63, 37, 9, 87, -55, -28, -85, 65, 40, 47, -5, -28, -81, 51, -29, -17, -56, -50, 54, 79, -7, -4, -12, 52, 74, -62, -71, 10, 63, -88, 4, 68, -62, -2, 75, -40, 55, 63, -75, -85, -70, 43, 19, 35, 0, -54, 26, -39, 7, -48, 40, -40, 17, -20, -67, -71, -54, -34, 21, -83, -67, -33, 36, -14, -68, -79, -58, -20, 6, -44, -85, 18, -9, -10, 84, 53, 63, 11, -13, -70, 48, -33, 79, -50, -40, 52, -9, 16, -16, 62, -56, 29, 58, -54, 71, -84, -45, 63, -37, 62, 27, -78, 10, 85, 29, 64, -34, 48, 83, 81, -25, -38, 68, -58, -5, -66, 51, 53, 45, 37, -20, -40, -73, -68, -75, 73, 64, -70, -73, 76, -34, 5, -20, -65, -42, 84, 88, -35, -81, 30, -28, 2, -26, -16, 72, 50, 68, -50, -72, 26, 18, -78, -67, 45, -10, 4, 69, -25, -39, -59, 45, 82, 47, 76, -74, -31, -88, -28, -79, 55, -52, -20, -56, 50, 54, 2, -76, -11, -42, -10, 76, 25, 42, -52, 34, -46, 38, -12, 65, 75, -44, 68, -75, -45, 12, 18, 78, 60, -21, 32, -20, 20, 36, 3, -33, 41, -25, -70, 31, -80, -38, 8, -28, -37, -12, -10, 41, -3, -45, -57, -49, -68, 71, -41, -35, -53, 12, 74, 9, 4}, + {67, -68, 77, -21, 79, 64, -71, 37, 74, 17, -17, -52, -13, 28, 30, 69, 29, -78, 4, -11, 1, -8, 79, 43, -48, 68, 88, 4, 26, 26, 69, 25, -85, -23, 81, 13, -69, -31, -4, -18, -83, -54, 4, 61, -45, 37, -68, 61, -2, 76, -20, 40, 3, -16, 52, -57, -32, -79, -53, 0, 83, 78, -15, -15, -72, -25, 67, 56, -82, -50, -72, -82, -71, 77, -81, -43, 85, 12, -8, -61, 88, -12, -66, 1, -74, -68, 16, 16, -38, -78, 46, -54, 32, -17, 30, 45, -73, -83, 69, 74, -57, 36, 44, -4, -19, -75, -85, 8, 31, -87, -11, 69, -77, -38, -67, 70, -11, -36, -14, -75, 34, 12, -74, -67, -27, 16, 38, 42, -66, 37, -88, -28, 67, -75, 20, 81, 20, -80, -57, -48, -48, -3, -24, 58, -62, 37, -29, 83, 40, -43, -8, 9, -35, 29, -62, -36, 56, -11, 10, 82, -3, -63, 37, -45, -73, -36, 34, -76, -35, -86, -20, -32, 52, 35, -11, -80, 9, 43, 88, -42, 34, -76, -26, 36, 77, -47, -22, -12, -59, 61, -28, -6, -89, -29, -19, -35, -14, -26, 75, -63, -57, -53, -81, 6, 20, -67, 68, 82, -87, 86, 55, -89, -52, -77, -51, 42, 17, 33, 30, -66, 2, -45, 78, 37, -52, -49, -9, -64, 77, 35, 4, -12, -67, -34, -59, -37, 51, 54, -71, -28, 52, 46, 6, -20, 37, 39, 23, -54, 58, -46, 22, -61, -86, 58, 9, -28}, + {-10, -34, 68, 48, -75, 3, -49, -70, -43, 77, -42, -46, 60, -33, -29, 0, 65, -62, -73, 70, 19, 89, 57, 42, -53, -31, 43, -77, -46, -60, -52, -42, -11, 5, 27, 76, -38, -81, 8, 36, -58, 4, -49, 53, -44, -32, 3, -8, -22, 25, -73, 13, -4, 11, 1, -44, -78, 6, 24, -24, -58, -40, 71, -84, 10, -48, 79, -29, 57, 55, 19, 85, -87, -78, 79, 74, -50, -41, 22, -31, -23, -60, -32, 39, -23, 30, -48, 35, -67, -67, -76, 72, 89, -70, -36, 81, 88, -52, -74, -84, 37, -11, 46, -33, 39, -39, 52, 17, -81, 11, -26, -55, 87, -4, 70, -67, -76, 53, 40, -67, -75, -67, -34, 45, 79, -37, -12, -81, -79, 47, 43, 33, -34, 88, 78, -82, -47, 79, 51, 75, -81, 46, 36, 80, -47, -55, -12, -45, 29, 25, -61, 1, -77, -16, -12, -67, -54, -60, 67, 78, 88, 70, -4, 17, -87, -39, -23, 44, 5, 89, -52, 45, 39, 3, -39, -23, -45, 52, -88, 41, 32, 20, 62, 48, 84, -3, -29, 25, 89, -50, 58, 31, 5, 82, 50, 43, 37, -37, 1, -68, 28, 27, -75, -47, -35, 47, -71, -23, -82, 32, 79, -33, -15, 75, -25, 54, -67, -28, -86, -29, 89, -40, -1, 51, -65, -35, -64, 19, 81, -33, 88, 72, -49, -55, 10, 41, -39, -11, 5, -17, -27, 8, -56, -57, 45, -49, 3, 12, -53, -81, 65, -87, -50, -33, 7, -53}, + {67, -5, 87, -48, -83, 56, 85, -66, 73, -66, -19, 68, 85, -69, -65, 88, -44, 79, -63, -67, 95, 59, 63, -31, -42, 88, -28, -8, 67, -71, 16, -18, 56, 81, -46, -59, 34, -37, -38, 50, -44, 7, -15, 24, -96, -36, -33, 27, -10, 37, 25, -73, 2, -50, -52, -21, -16, 39, 51, 1, 61, 56, 49, 54, -45, 5, -2, -16, -2, -49, 77, 66, -70, -16, -21, 81, -16, 25, 56, -19, -29, -68, -83, 88, 36, -39, -20, 54, 56, 68, -18, -67, -66, 76, -60, 73, 37, 28, -20, 24, 46, 101, 43, -69, 1, -49, -76, 15, -47, -78, 27, 19, 27, 31, -114, 63, 70, -1, -46, -43, 82, -54, 86, 32, -76, 24, 79, -20, 10, 47, -67, -61, 64, 97, 77, 39, -76, 69, 39, 21, -80, 71, 51, -32, 77, -39, 65, -75, 81, -86, 48, 66, 3, 34, 66, 34, 78, 78, 32, 19, 70, 2, -30, 75, -19, 66, -64, 67, -19, -13, -65, 61, -80, 90, -28, 51, 62, 92, 10, -45, 59, -91, -76, 11, -33, 58, 34, 30, 70, -13, -6, -64, 81, -1, -79, -60, 45, -9, -40, -87, -68, 82, 98, -58, 12, 91, 21, -81, -19, -9, -30, -26, 2, 82, -83, 45, 71, -51, -33, -67, 36, 5, 1, -5, 55, 52, 101, -17, -81, 25, -48, -54, -21, 52, 82, -47, -30, 23, -30, 31, 33, 58, -103, -79, -35, 27, 55, 0, 18, -12, 73, -17, 86, 28, 84, -71}, + {-37, -60, 10, 63, 77, 80, 43, -82, 91, 47, 74, -67, 59, -13, -10, -12, -109, 51, 77, 7, 111, 36, -52, -29, 23, 90, -2, 36, 30, 19, 73, -74, -23, -60, 33, 41, -13, 14, 17, 7, -74, -6, -39, -24, -51, 62, 46, 54, 36, 77, -14, -22, 51, 44, 25, -42, -24, -78, 77, 80, -33, -69, 31, 66, 71, 52, 78, 19, -52, -38, -22, -10, 65, -122, 38, -85, 59, -2, -21, -82, 6, 6, -34, -72, -18, 46, 0, 76, -42, -80, -63, -19, -73, -10, 8, 54, -63, 1, 62, -14, -42, 74, -27, -87, -44, 8, 83, -11, 81, -58, 45, 34, -69, -27, 105, 64, -71, -25, 38, 70, 41, 49, -4, -15, 9, -23, -45, 11, 71, 49, -8, -36, -13, 18, 63, 52, 68, 48, 9, -83, -10, 40, 63, 57, -13, -52, -34, 28, -6, 43, 8, 87, -10, 57, 47, 64, -13, 14, 0, -16, -58, 8, -89, 57, 16, 73, 43, 4, 11, 72, -74, -48, 60, -41, -73, 75, 29, 57, -34, -77, -76, -53, -14, 10, -16, -45, 32, -36, -15, 49, 2, 25, 6, 78, -61, -11, -36, 8, 87, -45, -29, 70, 44, -52, -25, -46, -40, 47, 45, 73, 15, 1, 2, -61, -92, -62, 26, 4, -6, 42, 87, -9, 48, 6, -63, 74, -10, -89, 36, -18, -16, -7, 42, -63, 61, 11, -5, -6, 19, -30, -78, 62, -36, 4, 86, 85, -5, -78, 64, -70, -21, 81, -57, 13, -25, 84}, + {57, -28, -34, 28, -41, -66, -37, 94, 82, 29, 5, 88, -22, -27, 96, -4, -53, 61, -75, -12, -47, 12, 32, 0, 41, -38, 87, 74, 32, 71, 46, 50, 91, -69, -61, -23, 5, 6, 50, 20, 33, -76, 29, 32, 9, 63, -41, 29, 3, -21, -11, 36, -77, -73, 49, -64, 24, -68, 80, 27, -52, -58, -3, -44, 61, -61, -41, 7, 2, 95, -83, -38, -22, 73, 36, -78, 73, -71, 9, -66, 9, -12, -28, 42, -17, 46, 45, 35, -86, -56, 95, -49, 6, -71, 66, 28, -51, 114, 32, 62, 70, 61, -73, 29, -7, 60, -60, -39, 44, 11, 65, 73, 3, 90, -67, -25, 10, 8, 81, -77, 59, 11, -17, -43, 50, 26, -60, 78, -17, 84, -58, -6, 68, 27, 5, 62, 3, 1, 28, -64, 85, -36, 9, 70, 9, -70, 90, 13, 67, -68, 35, 43, -22, -87, -10, 35, 12, -68, 18, 35, 13, -38, -58, -50, -9, 86, 33, 31, -41, -62, -53, 55, -74, 86, 41, -61, -23, -80, -26, -67, 10, 19, -67, 96, -32, 19, 3, -77, 32, -57, 0, -84, 16, 18, -7, 19, -5, 57, 23, 0, -9, 42, -50, 85, -7, -63, -49, 43, 36, -5, -51, 72, -5, -20, 33, -73, 48, -13, 44, 2, 6, 40, -48, -53, -60, 4, -104, -28, 8, 50, 21, -90, 77, 59, 84, -30, -39, 20, 63, 48, -53, -11, -34, 41, 11, 38, -11, -9, -74, -76, 21, 25, -21, -7, 52, -82}, + {42, -54, 36, 10, 5, -89, 81, -26, -17, -67, 51, -17, 69, 41, 95, -75, 99, 50, -43, 7, 50, -15, 3, -35, -72, -14, 49, 81, -76, 10, -98, 27, -26, -86, -71, -59, 68, -35, 31, 45, -2, -32, -69, 39, 20, 23, 23, -47, 67, 48, 41, 73, 30, -31, 67, 66, -40, 65, -7, 4, -40, -96, 56, 23, 78, -4, -30, -80, 38, 27, -11, -18, -81, 51, -34, -40, 67, 81, -84, 60, 61, 33, -16, 65, 8, 38, 24, -91, -28, -80, 70, 43, -75, -59, 42, 68, 36, -38, -73, 1, 54, -29, 16, -23, 44, 38, -17, 7, 87, -48, 57, -34, 70, -8, 41, 42, 70, 36, 41, -41, -9, 85, 69, -37, 22, -31, -13, 88, -102, -41, 2, 78, 81, 69, 18, 24, 20, -66, -18, -12, -29, -11, 43, 80, 11, 0, -36, -26, 40, 15, -48, 21, -68, 53, 7, 50, 114, 35, -83, -19, 69, 11, 42, -35, -65, -2, -62, 10, -33, 19, 41, -18, -45, -20, 57, 19, 46, 4, -6, -77, 10, -104, -65, 116, 63, 14, -69, 46, 78, 27, -11, 49, -21, 55, -29, 38, 52, 34, 13, 56, 68, -23, -47, 64, 80, 27, 82, -32, 53, -35, 3, -70, 30, -18, 102, -19, -36, -73, 6, -14, -70, 67, -19, 13, -12, -38, -52, 29, 22, 54, 65, 39, -80, -50, 75, 7, -69, -21, 21, 44, 51, 50, 63, 54, 42, 9, 64, -2, 23, 69, 87, -82, -11, 61, 47, 46}, + {-84, 31, 24, 82, -8, -93, 13, 21, -14, 57, 38, -8, 66, 81, 48, -41, 77, 47, 40, -78, 20, 23, 46, 13, 60, -65, 80, -62, -37, 45, 84, -42, -48, -22, 67, 11, -25, -89, -20, -26, -28, 55, -36, -78, -75, -19, 34, -72, 21, 6, -19, 52, 74, -72, 42, -54, -15, 7, 55, -8, -63, 15, -6, 48, -41, 17, -60, -26, -2, -37, -47, 70, -14, 5, 29, 87, -41, -77, 80, -85, 48, 51, 45, -58, 52, -1, 0, -1, 35, 86, -16, -46, -5, -37, 103, 59, -45, -10, 47, 19, 2, -42, -89, 84, 30, -65, 19, 9, -86, -69, 4, 64, 78, -30, 47, -58, 86, 19, -71, -39, 45, -63, 40, 70, 75, 75, -26, 46, 53, -35, 6, 11, -31, -17, -86, -68, 72, -62, -55, 81, -44, -61, -5, -60, 26, -100, 66, -90, -87, -81, -13, -84, -73, -17, 61, 66, -22, -12, 48, 78, 33, 51, 53, -1, -108, -10, 89, 48, -28, -85, 45, -8, 57, 72, -90, 10, 32, -56, 82, -67, 89, 101, -2, 79, -42, 37, -16, 49, 19, -79, 50, -56, 73, 76, 69, 102, 52, -38, -1, 87, -90, 56, 46, -82, -2, -47, -82, 47, 63, 69, 49, 91, 55, -5, 68, -85, -57, -20, 39, 40, -64, -43, -6, -4, -94, 94, -65, 29, -83, 41, -58, -77, 57, 68, 15, -28, 81, -73, 37, 35, -71, -82, 64, -48, 24, -29, 33, 86, 58, 88, -10, 1, 45, -3, 50, -69}, + {-28, -24, 58, 28, -24, 46, 5, -86, 71, -60, 41, -66, -29, -65, 19, -68, 79, 66, 14, 6, 60, 55, -37, 61, 35, 86, -75, -34, 74, -80, -68, -57, -61, 16, -17, -76, 11, 65, 7, -8, -49, 9, 11, 8, -50, -52, 14, -1, 36, -14, 23, 0, -34, -24, 9, 67, -70, -54, 80, -76, -71, -60, 82, -86, -74, -61, -74, -46, -5, -53, 71, 83, 76, 13, -31, 69, 3, 41, -13, -37, -6, -75, 53, 51, -17, 68, 60, 27, 2, -38, -55, -78, -81, 47, -57, 43, 55, 70, 54, 33, 45, -88, 18, 38, 72, 30, -53, -3, -59, 72, -60, 55, 87, -19, -73, 86, -6, 88, -46, -59, 51, 27, 71, -22, -5, 0, -11, 71, -60, -35, 48, -39, 11, -66, 44, -17, 30, -26, -61, 57, 57, -49, -41, -28, -15, -38, -6, -58, 47, -53, 8, 28, 69, -73, 46, 45, 34, 73, -58, 41, 37, 7, 21, -21, 31, -9, -44, -50, -28, -84, -6, -62, 80, -60, -45, -12, 89, -42, -49, -58, -66, -31, -8, 8, -60, 56, 25, -11, 15, 10, -33, 61, -66, -80, 51, -34, -84, -82, 52, 64, -74, 19, -41, -40, 55, 32, 66, -11, -27, -55, -28, -8, 41, -64, 11, 40, 58, 8, -85, 1, 36, 70, -55, -7, 46, -44, -47, 50, -66, 57, 65, -23, -8, 8, -12, -34, -80, 8, 83, 69, 20, -34, 19, 9, 22, -41, 59, -15, -33, -8, 1, 27, -77, 0, -59, 30}, + {-39, -8, 66, 86, -8, 53, -60, 19, -19, -20, -38, -13, 2, -68, -9, -24, 33, -59, -29, 68, 22, -83, 56, -75, -9, -20, -9, -18, -88, 61, -27, -51, -86, 69, -87, -16, -4, 25, 85, -48, 42, 42, 54, 54, -14, -13, 62, -87, -76, 63, -60, 46, -57, -39, -64, 64, -23, 27, -71, 31, -1, -9, 34, 66, 27, 27, 39, 54, 52, 7, 14, 49, 30, -31, -18, 32, -61, -25, -43, -85, 81, 79, 79, 77, -68, -10, -44, -29, -60, 57, 37, 58, 75, -55, -74, 5, -26, 59, 74, 39, -3, 48, -72, -45, -57, 87, 75, -25, -10, 41, -39, -72, -23, 85, -53, 23, 65, 69, -76, 53, -31, -73, -43, 20, -30, 71, 57, -1, 9, 45, 8, 16, 85, 33, 4, -64, -62, -4, 24, -59, -48, -64, -39, -8, 31, -20, -72, -52, -85, -69, -10, -62, 53, 38, -10, -35, 1, -73, 48, -58, -54, 51, -58, 72, -61, -59, -32, 11, -1, 5, -86, 10, 28, 79, 83, -56, 27, 72, -60, -72, -63, 8, -45, -83, -72, -31, 9, 71, 13, -25, 39, 68, 28, 28, -32, 62, -55, -45, 87, 49, 71, 51, -17, 26, 68, -64, 32, 1, 21, -73, -56, -70, 57, 4, 12, 39, 30, -19, 89, -30, 6, -70, 33, 74, -3, 41, 26, -67, -60, 67, 85, -63, -4, -75, 32, 84, -71, -52, -17, 8, -46, 58, -52, 2, -83, -60, 64, -26, -57, -33, 54, -12, -12, -87, -64, -23}, + {68, 28, -43, -9, -80, 48, -1, 41, 47, -5, -88, -51, 50, -86, -62, 37, 51, -65, 15, 86, -83, -3, 39, 11, -66, -61, 32, 31, -83, -47, 89, -70, 75, -6, -14, -45, -52, 84, 48, -30, 79, -37, 18, -20, 55, 89, -66, 84, 83, 29, 12, -17, -75, -86, -84, 5, -11, -41, 72, -85, 27, -59, -52, 22, -27, 12, -21, 64, -12, -44, -9, -89, -45, 30, -1, 48, -51, 78, -10, -65, 70, -74, 62, 88, -45, 7, 32, 42, -60, 68, 7, 51, 8, 4, 73, -33, 42, -59, 29, 21, -3, -52, -3, -61, -86, 8, 82, 14, -89, 84, 3, 6, 82, 13, 70, -50, 16, -38, -52, -57, -77, 62, 77, -66, -78, -84, 65, -63, 46, -15, 59, -30, -44, -80, -61, 71, 74, 40, 19, -89, 29, -16, -76, 41, -70, -65, 9, -47, 42, -80, -50, -1, -63, 62, -47, -67, 8, 41, -78, -27, -58, -8, 57, -69, -68, -18, 19, -5, -29, -77, 76, 58, -88, 85, -39, -70, 86, 66, 59, 59, -37, -36, 24, 42, 48, -3, -62, -90, 29, 48, -1, -36, -27, 20, 85, -42, 65, -12, 7, 44, -63, -62, 74, -18, -33, 68, 54, 68, 66, -74, 87, -25, 88, -4, 27, -89, -41, -60, -69, 81, 45, 9, -15, 10, 4, 43, -65, -17, -79, 42, 8, 66, 15, 40, -86, -28, -32, -63, -8, -32, 28, 73, -19, 38, -74, 72, 80, -3, 38, 23, -67, 48, 11, 16, -8, -38}, + {-4, -13, 78, -61, -55, -47, -7, 71, -26, -15, -56, -81, 88, 3, -90, -79, -51, -11, 69, 26, 94, 26, 10, 0, -91, 29, -5, -3, -23, 42, 96, -45, 30, -64, -5, -32, 67, -63, 64, 51, 5, 85, 68, 10, 83, 19, 1, 53, 18, -77, -30, -70, 53, 26, -77, 15, 24, 37, 12, 91, -3, 99, 49, 49, -81, 61, -10, -71, -11, -27, -87, 3, -69, 46, 8, 62, 62, 5, 32, 35, -86, -72, 84, -75, 51, 72, -2, -6, 87, 6, 57, 52, 32, 5, -67, -62, -12, -18, 46, -57, -66, 69, 48, -39, 18, -66, -52, -9, 76, -20, 40, 85, -9, 19, -1, 57, 38, 73, -63, -5, 18, 7, -88, -39, -42, 26, 11, 8, -54, 15, 37, -66, -55, 49, 39, -77, 10, -63, 24, -19, 84, 18, -44, 76, 34, 74, -75, 36, 5, -60, 6, 25, -88, 59, 16, -43, -70, 18, -31, 38, 29, -14, -23, -86, -9, 45, 71, 1, -37, 89, -89, -84, -37, 11, 53, 31, -79, 73, 73, -81, 1, 86, 28, -2, -8, -19, 57, 74, 87, 69, -81, -24, 82, 24, 1, 25, 7, -59, 31, -38, -83, -62, 1, 57, 10, -86, -36, 19, 11, 27, -43, -48, -17, 68, -78, -70, -60, -28, -68, -49, -2, 53, 72, -11, 54, -13, 7, 50, 64, -69, -40, -4, 43, -34, -92, -23, 53, 85, 54, 80, 86, 9, -83, -11, -21, -42, 58, -5, 28, 44, -29, 71, -57, 75, 26, -66}, + {-4, -7, 23, 52, 59, -3, -10, 42, 42, -35, 81, -63, 24, -4, -73, -13, 30, -4, 95, 73, -52, 16, 3, -84, 7, 105, 55, 83, -9, 35, -28, 1, 65, -58, 65, -15, -100, -12, -87, 73, -48, 84, 38, 74, -5, 82, 59, 3, 55, 56, 7, 85, 50, -55, 71, 5, 4, 50, -22, -43, -45, 100, 29, 100, -26, -69, 50, 55, 46, -36, 66, 101, -6, -13, 79, 45, -26, -27, 17, 30, -24, -9, -60, 82, -63, -43, -10, 36, 87, 5, 41, -11, -44, 92, 29, 89, 16, 5, 45, 75, 53, -56, 51, -49, 15, 41, -10, 79, 77, 14, 88, -82, -10, -42, -28, 84, -7, 51, -37, 46, 22, 60, 89, 49, 10, -1, 38, 47, -39, 31, 26, 86, -50, -48, 3, -38, 54, 29, 14, 47, 57, 23, 59, 5, 13, 3, 101, -36, 14, 41, -59, -10, -77, -54, -59, -69, -80, -28, -65, -21, 28, 48, 19, 91, 75, -45, -28, 17, 37, 76, 78, 51, -3, 28, 61, 12, 79, -19, 60, 50, -67, 3, -48, -57, -43, -35, 49, -38, 15, 3, -12, 25, -15, -81, 20, -40, 90, 13, -27, -77, 70, -89, 101, -68, -13, 60, 13, 55, -32, -16, -76, -23, -87, -18, -83, 15, -47, -83, -2, 52, 54, -47, 4, 6, 57, -8, -30, -69, -21, 34, -4, -62, -40, -53, -70, 10, -34, 49, 3, -72, -34, -66, -63, -57, 37, 41, -15, 10, 39, 24, 7, 85, 32, -65, -84, -63}, + {-75, -9, -68, 79, -15, 71, -45, -76, -83, -77, 78, -87, -66, 65, 6, 79, -24, 29, -31, 63, 18, -11, -62, 54, 75, 77, 68, -59, -86, 66, 24, 61, 43, -46, -8, 90, 56, 36, -6, 24, -69, -61, 6, -15, 5, -18, -80, -33, 86, 30, 68, -27, 86, -86, 23, 51, 2, -81, -82, -53, 94, 47, 77, -19, 51, 14, -24, -7, 87, 77, -70, 53, -68, 42, 81, -62, 39, 15, -55, -23, 48, 80, -82, 51, 82, 29, 33, 16, -39, -37, 14, -4, -32, 9, 17, -36, 13, -3, 20, -9, -81, -1, -65, 40, -78, -44, 84, 62, 92, -53, -29, 47, -81, 16, 48, -29, 22, -25, 60, -68, 69, -48, -79, -64, 40, -14, -29, -46, 30, -87, -75, 5, -57, -48, -48, -28, -16, -85, 31, -8, 53, 32, 5, 95, -67, 73, -48, -57, 17, 60, 83, -46, 23, 11, -9, 77, 51, 56, 72, 31, 40, -28, 0, -78, -88, 77, 37, 31, -18, 61, -72, -10, 18, 47, -38, 6, 64, 76, 83, 47, 16, 46, 13, 68, 102, -62, 46, -37, 66, -63, 66, -9, 55, -57, 16, -23, -1, -38, 45, 7, -33, -86, 14, -76, 82, 56, -32, 35, 48, 68, 13, -82, -73, -67, 79, -66, -2, -34, 84, 45, -63, 92, 30, 0, -19, -19, -22, 43, 13, -61, 58, -90, 84, 7, -65, 52, -79, -70, 65, 61, -70, 4, -32, 95, 81, 24, 45, 85, 59, -26, -49, 18, -27, 20, 86, -79}, + {-23, -61, -71, -13, 89, -8, 73, -89, 18, 16, -78, -6, -11, -5, 55, -81, -33, 64, 10, -69, -6, -67, -46, -71, 43, -86, 12, -46, -76, 98, -43, 27, -30, -67, -106, -89, -50, -70, 25, 51, -66, -59, 25, -48, 40, 16, 33, 18, 62, -63, 84, 17, -49, -68, -11, 73, 85, 42, -106, 26, 16, -4, -24, -51, 9, 17, 19, 71, 80, 66, 57, -40, 32, -13, -16, -40, 58, 64, 32, -84, 14, -69, -22, 42, 34, 41, 50, -78, 14, -75, 32, 42, 20, 62, 108, 11, 25, 85, 53, -62, -68, 34, -88, 87, -67, -78, 28, 65, -83, 10, -89, 25, 23, 82, 81, -49, 55, 4, -6, 59, 61, 42, 48, -28, 21, -29, 16, -49, 33, 12, -63, 64, 14, 65, -47, -23, -61, -79, -85, -58, 31, 58, 20, 63, -64, -15, 14, 28, 13, -1, 71, 67, -19, -28, 16, 11, 62, -35, 37, 67, 50, 62, 49, 33, -35, -43, -45, -52, 79, -47, 16, -3, 10, 77, 1, -86, -22, -26, 81, -71, -71, -63, 29, -53, 25, 32, 40, 81, -45, 99, 2, -34, 62, -72, -44, -57, -4, 79, -70, -80, 76, 73, 26, 5, -51, 37, -49, 29, -4, 16, -22, -50, 60, 34, 52, -65, 2, -57, 34, -9, 88, -48, 11, 31, 4, 45, 2, -21, 43, -67, -3, 4, -83, -8, -1, -8, 52, 36, 64, 41, 89, 24, 31, -39, 40, -11, 38, -55, 19, 2, -68, 88, -85, -52, 111, -47}, + {60, -79, 6, -19, -23, -86, 77, -26, 82, -50, -1, -27, -27, 67, 22, 13, 15, 16, 112, 40, -20, -39, -76, 3, -4, 56, -61, -38, 46, 1, -33, 74, -27, 23, -31, -68, 102, -9, 32, -59, 40, -11, -84, 2, -39, 22, 41, 85, 0, -73, 15, -26, -17, -82, 80, 61, 10, -12, 46, 2, -35, 2, -94, 67, -41, -56, -14, 20, 31, 90, 2, -38, 56, 19, 60, -22, -65, -28, -82, 59, -85, 63, -47, 7, -11, -73, -77, -7, 47, -53, 11, 59, -1, 41, 10, 65, 8, 55, 33, -88, 19, -7, 56, 87, -32, 12, -58, 30, -44, 99, 19, 32, 83, 49, -33, 35, 65, -30, -18, 24, 62, 72, -44, 42, 43, -68, -41, 53, -39, -26, 45, 49, 45, 30, 23, -72, 27, -41, -27, -50, 4, 19, -24, -16, 50, -79, -74, -12, -48, -30, -21, -39, -64, 37, -6, -70, 57, -16, -50, -65, -75, 42, 76, -55, 98, 87, -26, 62, -19, 40, 77, 83, -10, -10, 84, -62, 15, -72, -51, 4, 45, -58, 75, 36, -35, 21, -9, -2, -32, -68, -67, -1, 56, 17, -15, 51, -80, -6, 45, 53, 74, 0, -64, -13, 63, -13, -20, -36, -45, -22, -4, 62, -41, 78, 66, 47, 56, -24, -72, -30, -41, -77, 73, 3, -41, 35, 46, 44, -13, 57, -31, 3, 87, 45, -54, 43, 9, 2, -4, -14, 74, 50, 68, 22, 23, 26, 71, -30, -68, 111, -20, -8, -68, -67, -75, -36}, + {13, -43, -22, 16, -52, -122, -39, -12, -41, -16, 24, 17, -30, -75, -76, 10, -2, -30, -98, -20, -75, 102, 73, 17, 60, 21, 65, 49, 6, 62, -70, 6, 13, -52, -36, -8, 9, 50, 105, 23, -24, -36, 60, -52, -86, -82, -29, -11, -86, 74, 65, 23, 33, -23, -73, -85, 15, -25, -27, -36, 2, 26, 54, 69, -13, -43, -62, 51, 36, 0, -69, -68, 68, 71, 36, 83, 1, -8, -27, -71, -76, 10, -68, -17, 9, -6, -35, -42, 74, 19, 35, -74, 7, -11, 72, 5, -9, 115, -6, 37, 27, -48, 69, -53, 1, 55, -10, 47, -42, -114, 46, -98, 45, -83, 36, 13, 71, 20, 20, -7, 8, 19, -43, 78, -5, 18, 60, 6, 22, -28, -13, 86, 20, 21, -66, 82, -19, -51, 88, -7, 64, -91, -9, -37, -84, -31, 28, -75, -4, -2, -37, -58, -86, -21, 67, 46, 86, -25, -8, -13, -79, -32, 79, 6, 40, -6, -45, -4, -31, -13, 64, -31, -44, -90, -68, -82, 29, -15, -12, -76, 19, 21, 16, 55, -43, 32, -35, -47, -43, -65, 47, 83, -69, -7, 37, -10, -35, 41, 87, 103, -22, 31, -55, 57, 66, 22, 25, 70, -86, -13, 21, -30, 5, 77, 33, 61, 88, 11, 3, 66, 61, -39, 40, 35, 67, 52, 39, 7, -34, 39, -66, -46, -71, -56, 32, 61, -32, 64, -3, 23, 55, 85, -35, 97, -9, 71, 67, -80, 67, -79, -56, 65, 41, 91, 88, 22}, + {72, 16, -21, -15, 94, 50, 28, 24, 11, 41, 4, 33, 13, -62, 88, -20, 54, 26, -10, -25, 43, -36, -32, 27, 4, -53, -32, 65, -63, -72, 69, 7, -55, 13, 54, -17, 77, -66, -14, -30, -58, -78, 88, 67, -31, -36, -45, -64, -11, -14, 84, 38, 82, -15, -49, -52, 81, 21, -47, -9, 8, -16, 44, -88, -31, 91, -13, -24, 29, 38, 1, 62, 86, 24, 64, -23, 69, 22, -12, -86, -12, 21, 26, -37, 67, 11, 32, -41, -57, 86, -45, 60, -31, 53, 61, 54, 29, 38, 33, -88, -33, 67, -70, 9, 29, -26, 58, -32, -1, 69, -55, 86, 66, -37, 92, -19, 73, 62, 4, -93, 70, 68, -14, -4, 39, 50, 55, -24, -3, 87, -74, -8, 59, 6, -5, -69, -64, 91, 81, 21, -21, -52, 66, -54, -58, 76, 80, 41, -22, -66, 78, 5, -68, -87, -34, 61, 99, -35, 81, 48, -10, 12, 49, -42, 92, -9, 83, -51, -36, -48, -65, 57, -93, 48, 3, -43, -71, 59, -45, 70, -74, 27, -85, -6, -80, -51, 93, -79, 48, -55, -64, 51, 21, 26, -67, 42, 56, 14, 19, 62, 60, -21, -38, 7, 87, -81, 28, 73, 66, -42, -3, 48, 75, 66, 65, 56, 10, 38, -27, -21, 28, -54, -6, 77, 53, -40, 28, -5, 80, -47, 33, 34, 11, -13, 42, -52, 15, -28, -21, -3, -44, -53, -13, 53, -61, -2, -29, -55, 76, -45, 51, -64, -61, -77, -46, 71}, + {74, -19, 12, -9, 84, 17, 49, -58, -68, 61, 52, 14, 21, 62, 42, 81, 67, -17, -1, -70, 60, 62, -47, -12, -11, 72, -3, -7, -58, 63, 62, 2, -43, 59, 32, 33, 30, 85, 106, -60, 60, -74, -1, 71, -11, 17, -69, -90, -7, -38, 67, -18, -45, 48, 67, -45, 40, 20, -58, 36, -39, -56, 45, -82, -62, -41, -34, 5, -32, -64, 16, 64, -30, -19, 59, 89, -80, 55, -48, 2, -24, 19, 24, -75, 58, 1, 14, 45, -26, 70, -30, -30, 39, 63, -1, 56, 36, -5, -88, 53, -56, 66, 7, 64, -92, 21, -85, -11, 16, -33, 80, -56, -80, -52, 23, 51, -3, 15, 16, -2, -81, 16, -65, -62, -67, 64, 84, -93, -66, 6, -76, 15, -79, 19, 9, -38, -58, 15, 6, -27, -3, -26, -57, 50, 84, -86, 29, 35, 51, -51, 72, 19, -57, 24, 9, 90, 74, 88, 55, -23, -33, 56, -30, 70, 5, 2, 26, -83, -60, 14, -24, 68, 104, 82, -40, 63, -2, 4, -51, -34, 70, -81, 19, 37, 2, -10, 41, -76, 20, -54, 58, 3, 7, -14, 47, 38, -23, 71, -46, -66, 53, 50, 1, 65, 79, 46, -5, 68, -22, 32, -34, -22, -64, 75, 33, 29, 47, -44, 80, -5, -66, 11, -7, -5, -40, 62, -108, -29, -75, 26, 11, 45, -36, 41, -41, 81, 1, -49, -46, -39, -22, -4, 28, 93, -13, -66, 26, 47, -18, 0, 57, -52, -65, 5, 71, -92}, + {-36, 45, 56, 34, 18, -113, 85, 53, 7, -31, -21, 20, -21, -73, 3, 11, -9, -29, -32, 64, 53, -18, 28, 23, 0, -85, 48, -84, 68, -73, 25, 0, 73, 30, -43, 23, 6, 73, -36, -56, 69, -8, 66, 10, -15, -35, 67, 24, 43, 71, -58, -34, 2, 37, -59, 79, 57, 60, -90, 75, -17, 67, 43, 17, -85, 85, -45, 23, 28, 76, 79, 65, -40, 42, 1, -26, 63, 9, 10, 64, -41, -79, 49, -79, 73, -55, 43, 31, 55, -71, -56, -36, -84, 1, 76, 50, 42, 28, -30, -26, 18, 8, -43, -3, -26, 29, 76, -43, 47, -55, -39, 29, -83, -19, -7, 19, -60, -97, -22, -1, 8, 45, 18, 17, 84, -59, 46, 52, 22, -72, -32, -5, -8, -31, -38, -65, 41, -28, -1, 16, 55, -30, 19, 43, -56, 52, 41, 17, -21, 53, 86, -26, 74, 23, 34, -47, -1, -11, -4, -50, 50, -43, -48, -93, 13, -86, 57, 34, -26, -71, -65, -22, 24, -80, -1, -13, -29, -23, 34, 63, -87, -8, -49, 98, -8, -63, 91, 12, 20, 16, 30, 68, -89, -65, -80, 30, 24, 51, 62, -2, -49, -57, 59, 10, 86, -7, 74, -11, 89, -77, 19, -15, 37, -60, 70, 54, 12, 11, 16, -41, -8, -72, 77, -21, -1, 27, 40, -22, 16, -7, 26, 27, 34, -75, -22, 11, 42, -52, 6, 32, 22, 80, -20, -13, -64, -17, -67, -6, -48, 49, -74, -48, -69, -34, 46, -29}, + {39, 76, -62, -79, -55, -100, -52, 9, -70, 80, 51, 0, -88, -9, 26, 44, 92, 23, -42, -27, -79, 95, -44, 7, -24, 21, -12, -78, 86, -71, 17, 0, -80, -7, -83, 87, 35, 20, 74, 23, 51, -58, -63, -79, 15, -71, 20, 49, 23, -31, -89, -58, 8, -86, 55, 48, 0, -23, 8, -71, 35, 19, -41, -30, -26, -91, 10, -6, 70, -49, -86, -80, 74, 54, -9, 50, 15, -89, 53, -9, 79, -75, 86, 51, -86, 36, 50, 22, 7, -22, 63, 29, -4, 84, -22, 49, 11, -20, 80, -85, 36, 92, -12, 21, 67, 2, 68, -86, -48, -13, 55, -9, 0, -80, 18, 71, -45, 75, 13, -88, 81, 29, -69, -83, 21, 23, 24, 83, -67, -19, 37, -43, -12, -33, -18, -31, -45, -34, -84, 78, 28, -27, -27, -83, 65, -88, 39, -50, -27, -43, 87, 42, -38, -50, 28, 66, 68, 51, 57, 71, 42, 82, -57, -7, 39, -40, -75, 3, -45, 64, 79, -19, -22, -21, 89, 34, 69, -86, 65, 65, 31, 21, -86, 3, -8, 10, 71, -48, -50, -52, 38, 67, 40, 17, 80, 56, 4, 1, 25, 66, 64, 70, -69, -43, -33, -9, -51, -27, -35, -63, 72, -58, 7, -20, 72, 85, 90, -33, 63, -51, 80, 85, 60, 50, 25, -71, 37, 36, 67, -44, -31, -70, 68, 56, 17, 64, -7, -97, -11, 26, 3, -16, 93, 84, -3, -56, -44, 59, 55, -81, -92, 70, -67, -4, -27, -57}, + {-70, -32, -82, 63, 45, -6, 13, 60, -7, 31, 79, 10, 21, 53, 66, -11, -36, -12, 65, -34, 56, -65, -56, 53, 25, 50, -60, 36, 76, 15, -50, -72, 49, 60, -13, 55, -44, 86, 58, -26, -20, -38, 49, 62, -67, 19, 67, -4, 72, -21, 33, -53, -54, -42, 2, -50, -59, 71, 22, -38, -16, -15, 25, 12, -80, -42, -28, 67, 74, -70, -49, -87, -24, -75, 86, -84, 5, 51, -30, -33, -40, -68, 88, -75, -10, -15, 66, 50, -33, -9, 48, -49, -42, 27, 67, 4, 48, -19, 8, 69, 79, 20, 22, -18, 80, 0, 35, -40, -37, 70, -68, -38, 32, 80, 26, 2, -45, -41, -87, -41, -69, 45, 67, -44, 36, 55, 44, -79, 64, 89, 52, -2, 39, 3, 75, -28, -35, -41, -75, -19, 19, -12, 13, -21, -10, 25, 25, 46, 73, -60, -9, 11, 71, -83, -82, 43, 30, -48, 19, -83, -71, 12, 73, 8, -37, 14, -16, -75, 69, -6, 12, -80, -61, 43, -52, -77, -4, 77, -25, -59, 32, 9, -1, 84, 66, -74, 33, -21, -14, 33, 65, 51, -82, -22, -72, 66, -56, -19, 81, -35, -22, 24, 48, -45, -62, 80, 1, 48, -54, -50, 50, -66, 24, 72, -32, 54, -60, -86, -24, -75, -14, -63, -58, 50, -65, 89, 94, -36, -32, -7, -21, 74, 23, 37, 3, 83, -62, 53, 32, 36, -34, -31, -42, 85, 27, -87, 8, 27, -27, -41, -17, 38, 67, 84, 87, -40}, + {-81, 86, -31, -5, -88, 104, 90, -22, 87, -70, -28, -29, -32, -45, 7, -74, 66, -58, 7, -15, -28, -19, -69, 39, 31, -20, -48, 35, -36, 8, 58, 55, 10, 99, 84, 77, -60, -62, 41, -53, -2, 7, -69, -20, -85, 38, 57, 68, -2, 60, -36, -26, -15, -4, -23, 55, -6, -57, 15, 13, -10, 1, -47, -4, 71, 44, -36, -78, 0, 95, -32, -17, 47, -14, 96, 18, 64, -73, -10, -26, 66, 61, 30, -26, -53, 68, 97, 98, -64, 42, 0, -54, -26, 14, -75, 52, 45, -18, -73, 7, 17, -95, -64, 10, 88, -42, -27, -27, 78, 70, -14, 44, -65, -18, -63, 66, -87, 100, 14, 11, -75, -41, 88, -75, 41, 26, -34, -11, 81, 44, 18, 77, 23, -18, -26, 36, -30, -18, 81, 11, -77, 82, 43, -75, 67, 77, -45, 63, -47, -75, -4, -29, 80, -89, -88, -70, 37, 54, -25, -70, 10, -76, -29, -25, 106, -22, -81, -28, -75, 96, 61, 27, -2, -70, 30, -63, 48, -77, 51, 51, 34, 45, -43, -36, -88, 77, 26, 91, 1, -66, 84, 56, 5, -60, -105, -27, -54, 65, 3, 18, 21, -40, 20, 72, 77, 91, 95, -83, 26, -32, 87, 73, -32, 26, 29, -59, -14, 86, 13, -32, 56, -35, -49, -42, 94, -57, -29, -63, -33, 23, 31, 56, 12, 17, -69, 83, 49, 103, 92, -2, 24, -63, -73, -59, 47, 86, -5, 85, 53, 42, 6, -43, -81, -67, -60, -12}, + {-86, -56, 14, -57, -30, -58, 43, -76, -31, 57, -26, 58, 61, 65, 65, -61, -31, 37, 33, -45, 30, 39, -59, -3, -71, 79, 32, 91, 13, 4, 60, -81, 8, 60, -80, 14, 91, -37, 38, 81, -53, -69, 61, 34, -21, 28, -64, -19, 104, -21, -15, -82, -60, -10, -34, -34, -18, 12, -40, -72, 46, 54, -32, -58, 15, -65, -31, -5, -55, -38, -1, -71, 59, 64, -48, -22, 76, 10, 76, -42, -82, -65, -62, -9, 44, -42, -61, 92, 17, -12, 9, 22, 17, -57, 60, -62, -84, 8, -12, -26, -11, 20, 57, 7, 91, -50, 17, 46, 83, -46, -86, -5, 41, -54, -66, 36, -33, -10, 8, -22, -14, -71, -66, -58, -86, -44, 2, -37, -72, 66, 20, 23, 57, 44, -71, -28, -69, -32, 2, 61, 31, 77, -50, 8, -56, 16, -50, 19, 24, -71, 61, 83, 56, -75, -23, -79, 65, -16, -84, -49, -13, 39, 37, -53, -23, -17, 8, 66, 60, -39, 83, -49, 20, 93, -2, 13, 34, 46, 1, -66, 43, 11, -22, 28, -20, 12, 6, 83, 33, 84, 54, -13, 63, 113, 21, 8, 91, -53, 10, 60, -88, 83, 34, 2, 35, 74, -47, 84, 4, -85, -68, -71, -63, 16, -38, 9, -14, 68, -50, 49, 46, -25, 80, -36, 89, -95, -1, 34, -59, -32, -86, 84, 29, -50, 3, -68, 41, 70, -16, -25, 52, -30, -50, 2, -30, 23, -85, 20, -7, -46, 64, 6, -27, -61, 90, 76}, + {-50, -78, 37, 70, 49, -21, -47, -27, 4, 63, -29, 84, -49, 20, 44, -84, -69, 105, -6, 48, -62, 94, 79, -35, -31, 77, -89, -67, 13, 3, 68, 62, -74, 74, 20, -60, 28, 29, 59, -70, -1, -16, 21, 50, -55, -86, 8, 6, -49, 15, -25, -22, -1, 62, 74, 89, -29, -38, -16, 9, -69, -61, 11, 6, 13, 69, -84, -34, -82, -19, -30, -2, 84, -61, 48, -58, -64, 44, -31, 10, 76, -31, 67, -84, -63, -26, -66, 9, 75, -26, -49, -3, -32, 2, -37, 89, -54, 34, -79, 61, -72, 103, 34, 68, 21, 31, 59, -6, 59, 53, -66, -55, 36, -11, -36, 7, 57, 1, -18, 16, 6, -13, -84, 61, 85, 21, -42, -66, 62, -66, 79, 13, -70, -34, -45, -77, -47, -72, -13, -37, 31, -54, 21, -31, -23, 56, 18, -7, 21, 29, 41, 55, 51, 18, 83, 5, -66, 62, 30, 25, 28, -36, 30, -12, 2, -44, -5, 72, -89, 23, -65, 47, -58, 73, -51, -7, -48, -61, 90, -70, 13, -10, -6, -26, 3, 73, 31, 62, 31, -46, 75, -88, 61, 5, 37, -16, 23, 80, 52, -44, 44, 7, -24, -26, 24, 91, -63, 27, -41, 25, -85, 60, 6, 24, 36, -53, 18, -59, -57, 36, 42, 59, -21, -25, 19, -60, 53, -40, 43, 72, 62, -46, 10, -34, 7, 59, 47, 3, -85, 69, 26, 75, 78, 63, 56, 44, -45, -78, 55, -59, -75, 83, -34, 60, 86, 12}, + {-23, -52, 71, -6, 90, 42, 70, 42, -7, -38, -11, -1, -13, 16, 42, -56, -40, -13, 82, 29, 117, -18, -39, 23, -32, -23, -33, 17, 45, 13, -69, -20, -33, 30, -21, 65, 70, 67, 69, -19, -91, 24, 54, 74, 3, 1, -59, 85, -69, 49, -6, -43, -11, -13, -67, 29, 53, 18, -87, -24, -62, -72, -32, 9, 52, 38, -52, 22, -66, -63, -20, -45, -41, -103, 76, 72, -18, 42, 21, 79, 27, 61, -3, 24, 36, -12, 72, -11, -47, -83, 14, 74, 63, 68, -34, 74, 85, -2, -35, 73, 60, -37, 39, 14, 22, -14, -68, -9, 63, -22, 44, 80, 55, 49, 1, -35, -50, 61, 44, -9, -21, -75, 22, -8, 25, 76, 60, 23, -34, 88, 84, -73, -39, -88, -84, 42, 7, -2, -8, 69, 24, 77, 83, -84, 81, 76, 82, 25, -37, -82, -22, 16, 21, -2, 85, -52, -30, 50, 59, -46, 51, -14, 65, -19, 13, -31, 87, -6, 71, -83, 41, 67, 9, -31, -24, 23, 57, 27, -57, -85, -26, -5, 62, 74, 16, -52, -59, -37, 25, -46, 16, -83, 53, -95, 52, 37, 28, -2, -20, 26, -83, -9, -56, 27, -45, 84, -58, 18, -56, 58, 33, 45, -21, 33, -86, 82, 2, -72, 87, 74, -45, 85, 89, 62, 50, -65, -81, -9, 11, -31, -61, -30, 47, 45, 59, -85, 36, 20, -73, 34, 23, -33, 57, 78, -9, -60, -1, 73, -16, -81, 71, -17, 52, -87, 56, 21}, + {35, -10, 11, -51, 10, -92, 13, 29, 6, 92, 2, 87, -61, 90, 28, -75, -21, 37, -19, 70, 34, -45, -5, 60, 83, 26, -68, 15, -86, 31, -43, -91, -68, 50, -43, 10, 55, -19, -76, 13, 39, -43, -66, 21, -47, 59, -66, -4, 26, -67, 78, 48, 3, 42, 68, -3, -61, -35, -34, -24, -73, -86, 6, -13, -47, -14, -22, 41, 33, 19, 13, 76, -16, 113, 58, -19, -76, 73, -40, -50, 57, 64, -89, 54, 37, 41, 82, -84, 61, 40, -51, -30, 14, -20, 14, -49, -36, -71, -3, 26, -63, -23, 52, 82, -83, -27, -77, 35, 63, 3, -20, -43, -59, -54, -71, 105, 70, 64, -86, 73, 37, -40, -64, -58, -36, 56, 51, -15, -39, 73, -61, -33, -21, 48, 8, 10, 78, -40, 43, 45, 69, 34, 34, -81, -80, -10, 67, 53, -1, 86, -70, -75, -34, 57, -84, 69, 57, 43, 2, -23, -60, -65, -47, 69, -85, -66, -67, 49, -38, 2, 22, -80, 72, 36, 53, 8, -79, 85, 30, -24, -5, -38, 1, 76, 72, 85, 49, 62, -72, -32, -35, 46, -31, 55, -126, -94, 54, 48, -58, 77, 33, 20, 57, -34, 87, 21, -40, -26, -42, 49, -85, -10, -76, -27, 23, -42, 2, 16, 15, 4, 60, 79, 43, -24, 38, 68, 33, -32, 17, 63, 64, -91, 48, 12, -37, 84, -63, -49, 1, 17, 35, 46, -84, 51, 22, -25, 26, 64, 48, 42, 99, -52, -88, -86, -26, -34}, + {5, 67, 73, -58, 66, -9, -81, 4, 31, -16, -85, -68, 30, 66, 52, -24, 56, 61, -25, 24, 10, 76, 4, -30, 25, 12, -32, -39, -62, -23, -86, 71, -38, -12, -34, -79, 51, 79, -50, 0, -77, 57, 72, -8, -16, 78, 76, -48, -42, 58, 21, 61, 70, 38, -69, -15, 23, -18, -64, -57, -76, 14, 52, -28, 70, 59, 69, 27, 24, -43, -76, -49, -4, -65, 60, -87, 36, -43, 87, -84, 60, -52, 42, 36, 85, 17, -83, -33, -9, -27, 89, 83, 54, -52, -29, 53, 69, -42, -33, -74, -61, 28, -75, -51, 54, 7, -72, 28, 58, -64, -86, 8, -73, 17, -17, 56, -38, 20, -70, -23, 50, 36, -47, 25, -14, 79, -38, 31, 9, -2, -19, 64, -35, -31, -79, 49, 89, 4, -33, -71, 14, -51, 70, -60, -31, 41, 26, -56, 31, 36, 66, 84, -87, -25, 59, -38, -34, 82, 84, -80, 42, -61, 41, 89, -61, 40, -37, -83, 16, 79, 70, -65, -43, 54, -12, 56, 27, -30, -33, -43, -1, 101, -64, 6, 61, -43, -83, 33, 57, 94, 58, 22, -78, -22, -37, -13, 81, -11, -48, -33, -64, 50, 27, 66, 85, -78, 65, -83, 63, 13, -78, 56, 92, 24, -53, -26, 33, 62, 39, 52, 78, -1, 16, 45, 81, 74, 102, -25, -6, -7, -70, 70, -29, -25, 33, 54, -5, -48, 7, -67, 72, 58, 69, -21, 50, 76, -10, 40, 41, 87, -35, 38, 88, -22, 89, -38}, + {11, 41, 74, -15, 47, 29, -46, -83, -89, 28, 53, 88, 79, -56, 15, 4, 99, 42, -11, 14, 64, 11, -68, 89, -69, -26, -67, 41, 50, -66, -54, -87, -91, 64, 37, -61, -81, -79, -16, 36, 9, -7, -54, 16, -62, -43, 57, -82, 22, 32, 82, -40, 50, 59, 5, 60, 54, -28, -20, -18, -3, 86, 61, -47, -46, 25, -22, 50, -32, -8, -23, -35, 81, -24, 60, 39, 69, -58, 82, 7, 28, -23, -61, 89, -21, 33, -71, -97, 9, -8, 36, 16, 48, -41, 22, 29, 39, -22, -42, -49, -74, 84, -56, 78, -45, -69, 11, 35, -27, -26, 16, 95, 18, -73, -42, -88, 71, -94, -34, -48, -70, -73, -56, -20, 38, 55, 23, 46, 45, -30, -58, 5, -40, -18, -14, -18, -6, 8, -58, -8, -58, 65, -3, -83, 85, 87, 60, -40, -48, -72, 57, 21, -20, -5, -18, 77, 85, 32, 89, 88, -71, -85, -88, -51, -47, 86, -85, -14, -42, -35, 1, -45, 26, -50, 68, 9, -36, -71, -1, -31, -15, -54, -62, 81, 84, -40, -82, -67, -26, -28, 37, 48, 79, 7, -57, -87, -11, 47, -49, 65, -8, 30, 56, -7, 43, -8, 65, -81, 10, 46, -20, -37, 70, -50, -78, 45, -6, 45, 85, 8, -15, -2, -36, -44, -32, 59, -12, 71, -93, -17, 15, 61, -63, 28, 21, 13, 87, -30, 70, 19, -27, -36, -11, 76, 40, -29, -87, -25, -2, 64, -38, -24, 18, 63, 34, -80}, + {51, 35, 24, 40, -24, -50, -86, 47, 35, -24, -74, -20, 12, 70, -40, -37, -58, -32, 48, 83, 108, 28, 55, -6, 27, -28, 24, 65, -87, 94, 22, 54, 24, 27, 15, -64, 19, 64, 17, 64, 45, 31, 30, -13, 41, -77, -45, 40, 11, 89, -73, -51, 78, -15, 13, 76, 2, 71, 70, -55, 23, 69, 50, 31, 47, 34, -66, -42, 62, -3, 15, -68, 83, 45, -82, 53, -52, -49, 58, 73, 1, -39, -89, -31, -44, 60, 38, -1, 70, 42, -54, -37, 50, -10, -3, 60, 69, -58, -30, 29, 62, 47, -41, -67, -16, -37, 48, 54, 5, 77, -44, -93, -4, 53, 15, 10, 59, -40, -41, 23, -71, -38, 34, 49, -4, 40, -88, 22, -6, 20, 27, 11, 51, -10, 29, 5, 69, 75, -62, -83, -65, 77, 57, -14, -42, 37, -59, 26, -30, -65, 34, 2, 20, -56, 14, -51, -56, -68, 64, 2, -65, 36, -64, 9, -71, -70, -34, 70, -65, 85, 40, 75, -31, -28, 27, -10, 80, 5, 81, 89, 12, -52, -37, 41, -87, -16, 89, 20, -24, 71, 39, -72, 21, 71, -5, 61, 87, 0, -13, -80, 76, -67, 5, -61, -22, 16, -20, -81, -1, 47, 18, 10, -6, -23, 7, -1, 33, 78, 38, -84, 1, -51, 16, -26, 48, 46, 57, -55, -71, 61, -51, -87, 41, -8, 83, 66, 51, -6, 77, -17, 79, 63, -67, 79, 67, 25, -56, 14, -53, 5, 21, -39, 45, -49, 27, 23}, + {84, -51, -64, 2, 27, -11, -58, 4, 3, 62, -67, -52, -72, -51, -59, 66, -26, 85, 62, 9, -14, -66, -53, -22, -1, 64, 45, 43, -11, 5, 17, 90, -8, -20, 55, 5, 34, 76, 2, 6, -67, 5, -77, 5, -43, 53, -12, 51, -28, -34, -90, 42, 68, -34, -88, -14, -36, -51, 3, 21, -32, -43, -60, 1, 53, 34, -38, 52, -45, 80, 20, 10, 10, -45, 35, 64, -43, -81, 60, 89, 21, -41, 34, 44, -66, -25, 37, -34, -82, -55, 30, -52, 63, 63, -74, 58, -10, -88, -62, -87, -85, 32, -67, -78, 16, 64, -45, 78, -45, -92, 83, 1, 77, 0, 37, 52, -20, 54, 76, 19, -56, -22, 38, -80, 62, 53, -22, -78, -34, -48, -2, -16, 7, -82, 45, -85, -6, 67, -55, 69, -73, 6, -2, -87, -24, -12, -85, 81, -46, -28, -24, -50, 63, 46, 3, 80, -60, -86, 23, 39, 35, 36, 64, 26, 8, 10, 25, -19, -10, -86, 6, 25, -54, -41, 76, -47, 51, 61, 74, -25, -11, -16, -37, 4, 24, 38, 60, -89, 48, 16, 73, -31, 58, -10, 66, -1, -38, -2, 26, -73, -58, 47, 69, -42, -29, 19, -79, 7, 62, 36, 43, -78, 11, -14, 16, 6, -58, -44, -30, -10, 67, 75, -49, 31, 50, -78, -54, 53, -68, -38, 6, -15, -74, 14, 1, 14, 88, -62, 14, -13, -84, 83, 62, -31, 10, -19, 49, -85, 62, -63, -58, 42, -24, -49, -6, 6} +}; + +static const int W1[10][4096] = { + {-36, -21, 3, 10, -4, -16, 51, 52, -22, 23, 17, 6, 43, 29, 44, -1, -77, -39, -44, -62, -11, -58, -61, -67, -76, -30, -59, -7, -44, -28, -68, -65, -60, -99, -111, -97, -22, -50, -79, -79, -91, -85, -36, -99, -61, -8, -16, -56, -35, -8, -15, 18, 41, 20, -4, 33, -24, 10, 41, -10, 15, 8, 27, 38, 44, 22, 14, -14, 40, 1, 17, -15, 37, 12, 37, 39, -18, 27, 4, -15, -27, 25, -3, -42, -15, 7, 33, 38, 26, -1, -6, 34, 11, -50, 0, -43, 3, 30, -7, 4, 49, -18, 34, -34, -13, -6, -12, 14, -32, 39, -4, 13, -32, -9, 39, -29, 5, -7, 1, 14, -29, 41, 15, -43, 39, 25, 22, -20, 3, 35, -7, -11, 34, -19, 4, -15, -38, 12, 7, -41, -32, -35, 33, 39, -42, -44, 30, 32, -34, 26, -61, -54, -39, 14, -19, -34, 14, 22, 19, 8, 65, 75, 72, 9, 42, -16, 7, 41, 52, 52, 17, -3, 37, -8, 36, 33, 5, -29, -48, -14, -33, -68, -9, -59, -32, -7, 4, -66, -22, -39, -9, 25, 7, -24, -53, -75, -9, -75, -63, -85, -49, -6, -65, -15, -15, -47, -23, -71, 35, 2, 8, -36, 31, -25, 35, -33, -16, -30, -21, -25, -2, 31, 6, -12, -42, -15, -36, -23, -50, -20, -50, -1, -6, -43, -21, -34, 17, -14, 13, 17, 3, 32, 61, -2, 8, 15, 5, 52, 11, -23, 9, -7, 28, 7, 11, 12, 9, -1, -13, -2, 59, 54, 10, 56, 46, 18, 19, 19, 4, -21, -23, 19, 21, -20, 59, 48, 7, 20, 8, 30, 24, 29, 1, -5, -1, 9, 38, 17, -54, -77, -111, -64, -37, -9, -4, -16, -41, -54, -59, -3, 12, -52, -21, -14, 26, -16, 45, 24, 36, 1, 26, 17, 31, 19, -40, 13, 10, -4, -3, 33, 12, 39, 24, 61, 71, 12, 51, 41, 7, 53, 17, 74, 39, 21, 68, 3, -25, -36, -28, 5, -32, -46, -13, -46, -17, 4, -33, -7, 19, -17, 6, -33, -2, 63, 35, -10, -3, 32, 2, 21, 16, 53, 23, 24, 5, 30, 10, 47, -18, -32, 39, -36, -1, -9, -4, -2, -8, -9, -23, 40, -28, 18, -17, 27, -35, 12, -11, -13, 8, 36, 11, 38, -45, -28, 23, 8, 5, -6, 36, -40, 8, -33, -3, 0, 7, -35, 17, -30, -17, 24, -24, -38, -40, -25, -37, -47, -30, -57, -4, 8, -36, -21, -63, -57, -26, -15, -25, 18, 4, 2, -14, -22, 8, -42, -1, 9, 23, -22, 27, -6, 29, -41, 4, 21, -41, 42, 9, 10, -2, 9, -2, -28, -10, -4, -16, -38, -18, -8, -31, -18, -18, -15, 15, 13, 7, -77, -89, -27, -7, -58, -65, -89, -10, -30, -45, -89, 5, 3, -78, -61, -8, -16, 22, -35, -36, -37, 17, -31, 41, 4, 39, 24, -19, -2, -49, -13, -5, -8, -9, 0, -8, 1, 18, 12, -34, 22, 10, -46, -49, -26, -16, 25, 17, 64, 56, 24, 31, 49, -22, 14, 65, 56, -11, 36, 20, 22, -22, -8, -46, -56, -64, 29, 22, -5, -7, -39, -51, 14, -12, 23, -49, 3, -45, 7, -22, 31, 0, -21, -28, -12, 27, 31, -32, -17, 31, 18, -20, -26, 33, 32, -4, 75, 40, 77, 46, 67, 81, 68, 26, 79, 36, 12, 45, 28, 67, 33, -19, -14, 59, -9, 19, 52, 7, 34, 47, 23, -28, -7, -26, 30, 45, 48, 10, 14, 18, 12, -11, -5, -9, 65, -5, 43, 19, 66, -13, 1, 37, 35, -10, 38, 16, 24, -22, -28, -2, -56, 43, -25, 3, -31, 29, 15, 36, 1, 18, 5, 52, -18, -13, 41, 37, -8, 23, -34, 26, 38, 29, -26, -24, -26, -30, 33, 44, -6, 38, -41, 41, 13, -31, 41, -7, 46, -31, 21, 7, 10, 10, -19, -34, 12, 16, -45, 37, -31, -7, -3, 5, -26, -5, -36, 9, 15, -22, -7, -18, 16, -38, 0, -28, -60, -48, -12, -55, -10, -21, -56, -17, 8, 28, 37, 21, 10, -5, 19, 33, -25, 28, -26, 11, -28, 27, 27, 11, -36, 34, -7, 10, -45, 37, 16, 8, -9, 27, 16, -36, 49, 15, -28, 10, -35, 0, -73, -82, -8, -45, -17, -33, -71, 1, -62, -62, -76, -51, -2, 3, -58, -31, 32, -28, -33, 20, -16, 29, 14, 32, 13, -12, 17, -3, 0, 30, 32, 34, -2, 12, 46, 6, -28, 21, -3, 64, -23, -27, 2, 28, 35, -1, 49, -17, 13, 7, 3, -25, -27, -1, 11, 1, -7, 44, 15, 32, 43, -11, -38, 11, -39, -12, -37, -11, 26, 22, 29, -25, 21, 19, 34, -2, -23, -27, -27, -25, 20, -33, -4, -55, 21, 52, -14, -23, -7, 43, -7, -44, 48, -17, 6, -8, -27, -48, -37, 5, -30, -27, -33, 28, 38, -16, -42, -23, 45, 7, -28, -60, -60, -29, 38, -76, -97, -111, -41, -14, -92, -46, -84, -4, -46, -68, -36, -51, 32, 30, -35, 6, 19, -35, 13, -33, -52, -30, -38, -12, 33, 6, 27, 41, -16, -4, 11, -9, 6, -9, -3, -10, -43, 24, -39, 33, -32, -3, -13, -36, 44, -30, 34, 2, -20, 29, -23, 12, 8, 25, 23, 41, 29, -19, -43, 58, -11, 35, 26, -54, -38, -25, -56, -30, -91, -79, -73, -17, -39, -20, -19, -45, 1, -25, -84, 23, -58, -44, -46, 26, 12, -31, -17, 9, -8, -41, -66, 76, 12, 15, 71, -6, 64, -2, 6, 20, 63, -15, -3, 22, 26, 45, 68, 14, 33, -26, -20, 24, 44, 0, -34, -63, 0, -30, 9, -41, -34, 45, 23, -7, -14, 25, -37, 10, 19, 4, -41, 19, 35, -26, 36, 41, -11, -12, 4, -33, 4, 43, 13, -42, -15, -36, 0, -37, -42, -34, 21, -4, 30, 22, -32, 52, 36, 23, 11, -18, 9, 1, 46, 17, -34, -30, 16, -12, -31, -9, 31, 37, 26, -32, -35, -8, 31, 25, -10, 1, -39, 28, 35, 6, -4, 1, -36, 15, -12, -23, 9, -4, -32, -46, 7, -44, -1, -51, -37, -53, -40, -31, 15, 65, -16, -7, -46, 31, -14, -12, -21, 53, 43, -28, -51, -25, 14, 26, 7, 47, 31, 60, 58, 64, 53, 54, 56, 32, 24, -3, 41, 3, 40, 34, 2, -37, -17, -21, 1, 1, -7, 31, 41, 34, -25, 26, 0, -44, -36, -50, 14, -19, -18, 19, -55, -15, -34, -24, 16, -49, 25, 22, 11, -39, -54, -48, -57, 5, 31, 39, 5, -43, 38, 44, 24, 39, -42, -12, -42, -6, -24, 11, -2, -57, -29, -8, -44, -34, -101, -42, -34, -61, -74, -38, -82, -45, -84, -62, -14, -13, -5, 19, 27, 12, -34, -25, 17, -15, -31, 19, -17, -27, 35, -2, 25, 12, -14, -25, 32, -37, 22, -19, -39, -17, 23, -40, 34, -14, 43, -44, 10, 22, 13, 13, 42, -18, 44, 31, 29, -15, 38, -34, -26, 7, 23, 43, -2, -36, -1, 22, -1, -49, 32, -17, 29, 13, -35, -15, 15, -20, -38, -17, -5, -4, -21, -14, 15, -46, -35, -52, 9, -7, -15, 9, 15, 2, 0, -47, -3, 38, 10, -3, 14, 48, -35, 22, -34, 28, 37, -18, 32, 31, -29, 20, -38, 9, 1, -42, -4, 40, -26, -2, -1, 4, 1, 27, -21, -43, -25, -4, 18, 51, 50, 43, 7, 52, 15, -8, 9, 31, 18, 13, -15, 18, 24, -25, -53, 24, -28, 0, -30, 11, -2, 4, 22, -44, -53, 27, 29, 32, 8, 8, -8, 23, 38, -19, -11, -39, 44, -9, -26, 28, -1, 25, 29, 12, -5, 36, -24, 29, 25, -11, -3, 56, 5, 39, 55, -30, -2, -30, 8, 7, -32, 27, -2, -13, 28, 10, -34, -27, 1, 21, 10, 13, 13, -42, -5, -7, 31, 38, -33, 4, -17, -22, -44, 16, -25, -21, -48, 14, -53, 29, 19, -41, -32, -53, -53, -20, 7, -4, 13, -44, 28, -31, 41, -39, -17, -16, -27, -32, 20, -37, 25, 4, 36, 27, 10, 19, 10, -16, 16, 23, 35, -27, 42, -47, -38, 24, -16, -10, 8, 0, -27, -2, -22, -28, -5, -14, -10, -27, 35, 20, -5, 44, -5, -56, -78, -55, -59, -18, -77, -90, -69, -2, -35, -71, -73, 21, -4, -24, -38, 44, 33, 32, 41, -37, 42, -12, -42, 18, 5, 26, 6, -24, 40, 1, 34, 6, 59, 50, 67, 55, 22, 51, -19, 37, 28, 30, 15, 19, 44, 40, 27, 38, -23, -4, -1, 16, -28, -1, -18, 24, 35, -37, 4, -3, 29, 23, 43, 27, -36, 40, -5, -29, 10, 34, 35, -23, 4, 41, 27, 17, -15, -36, -20, -29, -20, 22, -4, 7, -31, 2, -32, -39, 38, 44, 31, -36, -22, 15, 40, 10, -9, 28, 26, 6, 76, 54, 26, 60, 65, 4, 33, 4, 50, -16, -15, -47, 21, -66, 6, -25, 2, -44, 32, 3, 8, 11, -10, -37, -34, 2, 18, 18, -28, -33, 13, -35, 5, 14, 16, -32, -43, -40, -33, -30, 13, 42, 32, -13, 12, 1, -17, 36, -31, 19, -34, -9, -22, 0, -16, -38, 14, 32, -34, -41, 4, -20, -18, 17, -56, -18, -71, -7, -27, -6, -23, -51, -29, -28, -57, 35, 27, 94, 5, 93, 56, 19, 71, 23, -11, 2, 8, 52, 74, 24, 20, 29, 73, 13, 72, 18, -5, 21, -8, -12, -24, 20, 29, 73, -10, 61, 45, -3, 49, 15, -1, 38, 33, -32, 42, 24, -26, 18, -12, 54, -12, 21, 17, 33, 33, 9, 30, 16, 44, 32, 41, 53, 60, 37, 55, 19, 24, 40, 66, 69, -2, 61, 7, 2, 66, -9, 69, 43, -14, 62, 26, 30, 34, 65, 39, 51, 2, -9, 8, -19, 27, 41, 32, 39, -27, 39, 17, -19, 5, -12, -7, -9, 43, -23, -19, 66, -23, -13, -29, -3, 18, 8, -12, 25, -40, -31, 26, 38, -11, 15, 36, -17, 30, -17, -2, -34, 34, -37, -38, 31, 15, -27, -15, -39, -23, -43, 23, 19, 22, 18, 11, -42, 14, 0, 36, 16, 4, 34, -22, 2, -101, -47, -106, -1, -50, -99, -79, 2, -86, -27, -100, 6, -35, -68, 0, -44, -7, 44, -17, -23, -37, 33, 15, 26, -14, -16, -45, -7, 36, -6, 13, 14, 24, 43, 41, 14, 43, -21, 1, 35, -37, 6, 7, 25, 32, 30, 46, -27, 30, 3, -11, -38, -40, -2, -8, -10, -29, -36, -17, 37, -24, 9, -29, -6, -36, 3, 5, -6, 10, 1, 35, -18, 30, 30, 37, 26, 30, -34, -32, -22, 8, 44, -12, -9, 3, 36, 11, 5, 13, -21, -32, 25, -21, 31, 33, 38, -11, 9, 35, -20, 37, 37, -26, -7, 15, -6, -19, -4, 10, -4, -24, -60, -41, -16, -18, -73, -70, -23, -67, -33, -11, -84, 15, -40, -62, -23, -31, -33, -42, -5, -11, -82, -98, -112, -2, -8, -93, -86, -25, -75, -102, -50, -57, 28, -15, -10, -4, -11, 26, -3, 43, 4, -4, 39, 8, -6, -17, 61, 5, -27, -59, -69, -21, 26, -36, -13, -85, -26, -72, -11, -71, -32, -42, -29, -44, -9, 10, 31, -25, -4, 49, 38, -5, -15, -8, 47, -11, 27, -12, 27, 35, -29, 29, 24, 26, -21, 45, 13, -12, -12, 34, -9, 1, -11, 5, 17, 3, -43, -27, -34, -26, 19, 22, -22, -30, -9, -22, 19, 0, -13, 36, -25, -35, -25, 5, -29, -33, 23, -38, 37, 37, -21, -17, 5, 33, -12, -11, -23, 34, 8, -9, -8, -60, 10, 40, -11, -46, 17, 42, -34, -2, -52, -56, -9, 8, -50, -10, -16, -55, -33, -36, 24, 10, -40, 0, 1, 0, 5, 14, 12, -55, 29, 11, 51, 59, 32, 15, 37, 42, -8, 39, 55, -10, 45, 21, 61, 18, 50, -12, -7, 24, 18, 40, 14, 42, 17, 11, -24, -27, 1, -22, -22, 14, 23, -36, -21, 9, -29, -39, 25, 0, -14, -20, 43, 23, 2, -26, -33, 42, -28, -33, -42, 39, 34, -18, -22, -1, 22, 38, -4, 37, 28, 23, 23, 47, -7, 10, 16, -5, -26, -49, 14, 21, 2, -21, 21, 3, -19, 12, -37, 23, 7, 43, 6, 24, -25, 3, 5, 10, -12, -4, -39, 33, 35, 34, 42, 0, -15, 13, -12, -30, -28, -16, 40, 42, 41, 16, 33, -15, 16, -32, 15, 41, 34, 4, -9, -35, -23, 38, -20, 4, 11, 5, -33, -6, 23, 34, 9, 33, -43, 36, 22, 21, -1, 34, 20, -48, -21, -12, -6, 28, 9, -11, -28, -48, -9, 36, 48, 74, -17, -13, 25, 72, 61, 50, 37, 24, 36, 50, 22, 66, -20, -48, -20, 9, 31, -38, -34, -18, 30, -4, -38, -7, 22, 17, 9, -14, 22, 36, -44, -14, -7, -9, 19, -20, 37, 6, -10, 6, 14, 26, -39, -29, 25, -18, -29, -61, 2, -74, -30, -46, 55, -7, -14, -61, 6, -24, -2, -27, -16, -78, 5, 22, -10, 12, -18, -47, -13, 16, 18, 13, -11, -27, -24, 26, 38, 37, 19, 17, -26, 9, -34, 25, -30, -51, 41, -26, 5, -8, 4, 39, 29, -59, -43, 29, 9, -62, 12, -16, -60, -38, -57, 5, 23, -38, -61, -42, -43, 6, 0, 40, 45, -10, -31, 6, 3, 37, -34, -36, -3, -24, -34, 34, 52, 54, -23, -8, -31, 49, -36, 1, -42, 28, -7, -29, 0, 15, 34, 38, 43, 36, 16, -9, 59, 14, -9, -14, 44, 17, -33, 2, 14, 46, 49, 50, 3, 23, -32, -3, 38, -47, -30, 13, 5, -9, 2, -37, -35, -43, -20, 6, 42, -16, 39, 41, -26, 37, 42, -34, -28, -73, -28, -40, 5, -14, -35, -8, -18, -44, -29, -25, -34, -14, 22, 30, 34, -25, -19, -13, 23, -49, -55, 1, -17, 19, -16, -15, 24, 11, -18, -5, -12, -50, 15, -14, -40, -35, -51, 0, 28, 73, -3, 10, 49, 43, 40, 38, -6, 23, -3, 18, -17, 61, 48, -5, 24, -5, 11, -35, -44, -23, 0, 10, 0, -15, -13, 12, 9, 33, 8, 25, 33, 10, 20, -28, 15, 49, 46, 22, 15, -30, 46, 52, 35, 48, 25, 63, -23, 1, -15, -21, 33, -32, -41, 44, -12, 9, -13, 61, -71, -31, 7, -41, 43, -30, 20, 25, 10, 19, 8, 23, 42, 19, 7, 43, -16, -42, 16, 51, 28, -17, -19, -21, -15, -35, -44, -5, 16, 9, 0, -19, -8, -31, -1, -30, 27, 18, -9, -4, 37, 30, 28, 7, -19, -48, 38, 32, -26, -22, -46, -29, -37, -31, -8, 15, 42, 39, -14, -3, 32, 32, -32, -38, 31, -11, -16, -23, -15, -3, -38, -16, 37, 34, 29, 13, 1, -39, 3, -2, 0, -33, 7, -40, -32, 54, -34, 45, -34, -6, 7, 43, 42, -27, 19, -19, 14, 43, 37, 28, -17, 9, 29, -27, 43, 17, 22, -37, -10, -2, -18, -16, -23, -12, -40, -35, 27, -23, 19, -17, -27, -68, -62, -61, 23, -13, -68, -64, 9, -4, -33, -38, -23, -38, -5, 19, -37, -8, 32, -39, 15, 29, 11, 17, -52, 24, 21, -38, -28, -23, 28, 37, -9, 7, 30, 35, 24, -42, -30, 26, -30, -42, -13, 2, 25, 80, 57, 15, 47, 43, -6, 53, -15, 3, 8, 23, 63, 42, -4, 21, 26, -17, -8, 25, 4, -43, 30, 7, 7, -6, -1, 20, -40, 8, 17, -24, -42, 25, -34, -24, -32, -19, -34, -11, -32, -7, -16, -7, -5, -17, -5, -14, -7, -51, -28, -24, 42, 29, -50, -23, 44, -28, 22, 23, -39, 37, 7, -35, -28, 42, -32, 32, -16, 26, -16, 5, 29, -4, 14, 29, -28, 8, -14, -26, -27, -11, -37, -40, -30, 18, -49, -19, -23, -52, 0, -36, 20, 22, -16, -7, -19, -28, 2, 5, -15, -19, 36, -3, -19, -10, 37, -33, -39, -38, -40, 34, 11, 27, -6, -33, 7, 32, 13, -3, -44, 2, -12, 12, -5, -37, -9, -28, -84, 14, -17, 34, -9, 35, 71, 1, 17, 23, 42, -19, 9, -20, 22, -7, -12, -12, -22, -7, 35, -8, 37, 24, -24, -23, -5, 10, 2, -2, 36, 12, 36, -3, -35, -32, -28, -17, -40, 44, -42, -26, -41, -16, -14, -10, 38, 31, 30, 38, 21, 3, -44, -15, 40, 8, -27, -31, 42, -38, 0, -37, -11, -35, 23, 52, 37, 49, 39, 43, -10, 43, 54, 3, 61, 11, 19, 46, 32, 7, 53, 8, 36, -1, 22, 11, 34, 71, 15, 0, 0, -9, 71, 32, 57, 54, 61, 60, 66, -18, 48, 13, 48, -18, -12, -16, -18, 45, -43, -32, -29, 31, 38, -30, 41, 33, 21, 7, -7, -33, -35, -11, 3, 14, 26, 3, -19, 31, -5, -61, -47, 3, 9, -22, -57, -41, -51, -6, 21, -51, -2, -15, -12, 9, 24, -12, -39, -10, 3, 17, -38, 28, 23, 41, 32, 38, -14, 13, 40, 18, 36, 15, -3, 34, -4, 5, -36, 13, -26, -11, 30, 35, 26, 9, -38, 10, -38, -32, 24, -41, -13, -2, 44, 31, 27, -22, -36, -43, -37, -33, 4, 42, -60, -54, -53, -11, -5, -57, 17, -13, -10, -43, -19, -1, -25, -27, 8, -37, 34, -29, 9, 4, 14, -12, 29, -29, -31, -40, 17, -16, -32, -43, -38, -34, -51, -20, -24, -40, -36, 9, 13, -11, 29, 31, -48, -37, 29, -45, -8, -8, -2, 5, -12, 5, 4, 9, -16, -15, -21, -24, -10, 25, -7, 15, 30, -3, 11, 33, 80, 67, 23, 39, 58, 20, 4, 28, 64, 72, 2, 63, 58, 18, 24, 49, 38, 28, 15, -1, 24, 11, -44, 33, 7, -13, 29, 26, 41, 42, 30, 28, 33, -19, -21, -31, -8, -25, 37, 22, 3, -32, -39, 42, -34, -25, -24, 9, 23, 15, -31, -24, -5, 28, 39, -36, 13, -34, 24, -38, 21, 9, 4, 16, 14, 10, -12, -1, -9, 16, -24, -8, 23, -16, 44, 29, -8, -9, -6, 66, 70, 35, 23, 39, 15, 46, 61, -24, 5, 60, 31, -1, 48, 17, -37, 11, -62, -17, -40, 7, -2, 1, 11, -34, -26, -28, -57, -51, -50, 18, -38, 12, -63, -1, -47, 25, -9, -18, -35, 11, -59, -33, 30, -13, -46, -34, -28, -18, 54, -23, 52, 46, 23, 14, 9, -2, 47, 11, 22, 29, 32, -1, -22, 35, -25, 34, -40, -9, -22, 17, -22, 3, -8, -15, 2, 22, 32, -34, 13, 4, -13, -20, 13, -14, 16, -42, 30, -48, -1, -42, -33, 30, -5, 11, 6, -36, -24, -49, -5, -7, -79, -25, 23, -28, -36, 32, -37, 21, -37, -27, 4, -2, -14, -50, -35, -23, -21, 7, -61, -56, 8, -43, 8, -38, 11, -4, 2, -32, -26, -26, 35, -29, 32, 38, 8, -28, -23, -7, 12, 14, 2, -43, 6, -19, 10, 10, 3, 25, -4, -20, -46, 14, 18, -30, 32, 24, -16, -22, -7, 47, 33, 63, 17, 13, 8, -4, 3, 28, -27, -13, 66, 61, 55, 18, 32, -14, -3, -36, 23, -23, -20, -26, -6, 9, -21, 29, 34, 18, -9, 25, 6, 56, 37, -25, -19, -15, 37, -10, -3, 36, -40, 19, 39, 4, 40, 28, -31, 2, -50, -22, -48, 35, -31, 26, 5, -37, -24, 10, 5, -33, -8, -43, 14, 59, 24, 21, 5, 9, 17, 7, 15, -39, -30, -13, 20, 45, -19, 49, 7, 10, -29, 9, -27, 7, 4, -25, -27, 20, -60, -56, 28, -19, 17, 27, 40, 42, 12, 3, 41, -26, 26, -16, -18, -34, 33, -11, 5, -4, 40, 37, 24, 37, 15, 5, -12, 16, 4, 0, -41, 22, -37, -19, -22, -6, -41, -44, 33, -42, -66, -41, -57, -10, -60, 2, 26, -48, -10, -55, -27, -24, 21, 26, 11, -40, -29, 21, -48, 13, -19, 8, -59, -10, 26, -14, 6, 25, 5, 16, 2, 29, 38, 6, 44, -3, -7, 39, 5, 42, 8, -6, -23, 4, -13, -5, -20, -68, -50, -7, -62, -21, -17, 4, -35, -71, -14, -21, -26, -53, -12, -6, -19, 6, -1, -15, 28, 53, 55, 27, 24, 59, -15, -18, 25, 48, 15, 58, -28, -33, 40, 35, 5, 44, 42, -10, -25, 27, 19, 18, 37, -11, -30, -31, -23, -16, -32, -40, -6, 31, 25, -33, -53, -5, 5, 15, 8, -23, 29, -14, 1, -27, -29, 56, 2, 21, -18, -18, -6, -18, 35, 42, 52, 20, 53, 10, -7, -29, -25, 7, -15, 34, 3, 6, -22, 11, -32, 41, 36, 1, -30, 6, 30, 36, -24, 19, 24, 21, -3, 17, -9, 0, 37, -38, 22, 35, -27, -18, 13, 46, 8, 78, 51, 63, 63, 17, 67, 17, 58, 14, 70, 53, 65, 84, -92, -109, -40, -51, -45, -108, -74, -39, -23, -78, -45, -73, -22, -52, -30, -92, -25, -10, -4, -1, 2, 38, -12, -16, -32, -8, 26, 38, -7, -17, -6, -52, 8, -24, 43, 9, -15, -10, 14, 25, -17, 38, -27, 10, -33, 19, -17, 2, 15, -15, -33, 16, 27, -46, 12, -23, -34, -33, -49, -28, -2, -37, -11, 39, 11, 17, -3, -45, -28, 12, -36, -9, -41, -22, 41, 1, 31, 41, -26, 10, -1, 32, -2, 25, -25, -29, -43, -48, 11, -24, -44, 13, -3, -36, 1, -8, 9, 40, 28, 23, -8, -26, -2, 39, -18, 42, -35, -8, 13, -20, 28, -35, -7, 34, -29, -9, 7, -24, -30, -4, 15, 0, 13, -17, 27, -3, 28, 41, -35, -22, 26, 29, 34, -40, -33, 43, 16, 30, -36, 20, -7, -34, 10, -38, -71, -19, -59, -23, -40, 18, -27, -28, -45, 0, 20, 29, 37, 38, 49, 8, -50, 15, -11, 11, -15, -53, -50, -65, -45, -59, -8, 3, -41, -6, -32, -48, -23, -11, 50, 5, -20, -27, 5, 8, 22, 43, -26, 27, 50, -26, -24, 43, 3, 32, 66, 50, 50, 22, 10, -7, 15, 48, 12, 43, 38, 28, 20, 5, 35, 41, 39, 9, 42, -20, 37, 10, -1, -14, 18, -43, -50, 12, -52, -45, 43, -37, -11, -35, -26, 34, 7, -10, 21, 33, -23, 27, -4, 31, 0, 40, 7, -22, 0, -6, 20, 35, -34, 36, -42, 23, -8, 21, 25, -16, -12, -27, -19, 1, -23, -25, -35, 35, -14, -30, 3, 33, -28, 11, -10, -6, 30, -1, -51, -55, 20, -26, 5, 21, -31, -35, -23, 29, 30, 6, 17, -25, 22, -47, -24, -93, -43, -55, -50, -63, -100, -75, -56, -74, -53, -72, -40, 2, -8, 1, -9, -7, 60, -10, 10, -2, 31, -26, 34, 29, -9, 35, 37, -8, 11, 60, -4, 53, 26, 28, 10, 39, -17, 9, -42, -3, 21, 53, -9, -9, -15, -22, -7, 1, 30, -21, -53, -72, -78, -50, -62, 6, -4, 12, -88, -33, -26, 20, 54, 37, 72, 56, 63, 1, 58, 72, 69, 15, 25, 53, 63, 72, 41, 4, 31, 6, 24, -29, -17, -23, -11, 8, -25, 31, -2, -25, -39, -15, 35, -20, 11, 42, -15, -30, 29, 29, 38, -32, -29, -28, 43, 27, -24, -10, -11, -16, 36, -24, -24, 31, 4, -31, -7, -25, 13, -18, -26, 39, -34, -36, -24, -30, 58, -9, -8, -23, 27, -14, -13, 9, -8, -2, -28, -12, 0, 6, 15, 27, -42, -19, 23, -42, 4, 12, 41, -5, 13, 19, -39, -36, -45, -43, -47, -15, -49, -25, -7, -54, -15, -24, 3, 6, -17, -47, 6, 7, -43, -30, -53, -26, 19, -15, 11, -30, -32, -24, -13, -24, -12, -33, 29, -26, 27, -7, -34, -10, -52, 36, 1, 1, -10, 22, 28, 29, 17, -7, 4, -29, 26, 24, 36, 62, 34, 47, 31, -40, -25, 11, 31, -29, -49, -16, -16, 0, -27, 37, 19, -38, -19, -16, 6, -3, 34, 15, -16, 44, 29, -17, -30, 27, 0, -8, 52, 21, -10, -11, 6, 32, -30, 14, -24, -40, -6, 6, 9, 34, -3, 34, 36, 9, 21, 4, -14, 8, -8, 61, 22, 5, 1, 46, -7, 55, 17, -21, 0, 54, 35, -17, 24, -10, -55, 31, -22, 4, -35, -48, -46, 19, 23, -45, -6, -21, 26, -42, -2, 29, -25, -38, 32, 20, -43, 12, -17, -36, -15, 8, -13, -35}, + {14, 42, -45, 30, 26, 8, 9, -16, 14, 25, -9, 31, -64, -28, -62, -7, -17, 45, -2, 7, 4, -31, -4, 30, 23, -9, -9, -28, 44, -3, 29, -14, 32, 28, -4, -41, 42, 0, -18, -29, -25, 11, 22, 47, 48, -27, 44, 16, 31, -42, 38, -29, 37, 31, -35, 12, -20, -6, -36, -11, 35, 43, -36, 40, 8, -40, -37, 32, 16, -22, 33, 24, -34, -18, -2, -26, -41, -23, -30, -33, 43, 12, -16, 41, -28, -20, -20, -43, 21, -27, 40, -21, -5, -32, -38, 27, -59, -15, -48, 2, -46, -9, 33, 29, 1, 35, 40, -22, 19, 12, -29, 19, -26, -28, 19, 16, -2, -28, 21, -13, 3, 12, 28, 34, 5, 7, 7, -4, -38, -32, 4, -34, 6, -41, -15, 3, 17, -35, 20, -11, -7, -22, 10, 28, 43, 17, -26, 26, 24, -2, 18, -31, -40, 38, -43, -4, -24, 31, -34, 12, 22, 39, 36, 22, -3, -6, -4, -25, 24, 26, 10, 46, -21, -7, -33, -26, 2, 46, -28, 7, 22, -56, -28, 7, -38, 44, 13, -25, -5, -2, -32, -36, 9, 13, 27, 13, -27, 5, -38, -22, 31, 35, -52, 3, -30, 46, 38, -17, -36, 16, 43, -11, 23, 11, -1, 11, 28, -34, 42, -46, -30, -41, -34, -28, 38, 38, -37, -4, 24, 2, -31, 12, -34, -27, -36, 22, 27, 12, 54, 11, -50, -23, 13, -6, -14, 49, 67, 64, 4, 28, 16, -18, -50, -62, -22, 7, -28, -3, -23, -4, 1, 18, 15, -25, -2, 74, 10, 51, -46, -4, -24, -48, 11, 19, 18, 6, 42, -19, -3, 16, 12, 16, 0, 28, -3, -74, -52, 2, 23, -10, -36, 29, 40, -23, -39, -28, -31, 45, 51, 44, 14, -14, 19, 21, -25, 1, -2, 11, -12, 14, -17, -9, 16, -20, 5, 0, -26, -37, 14, 0, 26, 34, -32, -12, 2, -15, 1, 0, -16, 5, 2, -37, -12, -27, -38, 2, 8, 39, 34, 45, 27, 38, 30, 21, 36, 47, -5, -6, -15, 20, 28, 29, 36, 38, 6, -10, 5, 45, -18, -21, -6, -18, 51, 1, -62, -73, -60, -19, 23, 20, -34, -17, 19, -30, 16, -31, 39, 27, 10, -30, 20, -10, 35, -31, 41, -21, -45, 34, -38, -27, -39, 41, 26, 48, -23, -3, 18, 16, 25, 28, 1, -36, 6, 0, 42, -33, -3, 21, 15, -19, -32, 34, -16, 49, -4, 4, 40, 23, 21, -38, -30, 9, 31, -43, 5, 10, -27, -46, 21, -27, 21, 52, 43, 26, 7, 4, -39, 6, -43, 13, 3, 29, -7, 4, 6, -12, -15, -40, -42, 44, 43, 44, 40, 22, -40, -44, 26, -5, -32, 37, -9, -11, 14, -7, -43, 25, 2, 37, -37, 16, -56, 18, -16, 43, 7, -2, 24, 54, -1, -21, -53, -41, 10, -5, -34, 54, 47, -1, -26, 33, 39, -19, 34, 17, 5, 27, -29, -2, -1, 14, 45, -42, -44, 11, -33, 26, 13, 19, -35, 8, 35, -24, -43, 24, 36, -36, 25, 39, -17, -24, -3, -17, 46, -27, 16, -8, -38, -33, -36, -46, 12, -12, -10, -24, -32, 31, 0, 19, 49, -30, 17, -6, 5, 8, -40, -24, 25, 14, -36, 34, 16, -21, -19, -34, 14, 40, 8, 24, -40, 39, 27, 15, -8, 11, 7, 18, 0, -4, -11, -29, 30, 45, -74, 5, -54, -39, 28, -44, 16, 18, -44, 52, -30, 34, -17, 29, 27, 0, -24, 13, 2, -49, -50, 24, 12, -9, 35, 42, 9, -2, -44, 14, 54, -21, -6, -23, 2, -66, -11, -37, 12, -35, -31, 21, 6, -14, 32, 43, 11, 8, 31, -53, 15, 3, -28, 34, -7, -44, -33, 52, 44, 35, -39, -3, 49, -28, -10, -35, -21, -19, -30, -3, -43, -25, -33, -24, 51, 1, -22, -31, 9, -31, 37, -35, -6, -25, 4, -23, -43, -23, 28, 24, -11, 42, 12, -39, -7, -10, 17, 32, -1, 8, 7, -31, -16, -11, 24, 0, -19, 26, 45, 22, 11, 7, -12, -9, 29, -29, -19, -42, -17, -6, 15, -20, -40, -13, 10, -7, 1, -32, 11, -15, -19, 36, -25, 23, 30, 11, 30, 2, -20, -12, -12, 32, 7, -7, 29, -27, 36, -23, -17, 33, 21, 1, 32, 27, 7, 15, 5, 14, 30, -30, -20, -5, 32, 2, -16, 24, -10, -40, 0, -2, -1, 38, 12, 4, -32, 17, 0, -37, -21, -41, 15, 6, 20, 3, 1, 7, 11, 72, 15, 2, -40, 5, -16, -78, -27, 3, -37, 10, -24, -43, 15, -9, -19, 42, 13, 1, 12, 53, -2, 16, 8, 11, 4, -10, 10, -15, 32, -36, 7, -28, 42, 36, 31, 30, 43, 7, -38, 22, -12, -50, -43, 18, 40, -11, 79, 53, -45, -23, 46, 25, 27, -58, -24, -19, 39, 58, 26, 39, -35, -30, 1, -2, 13, -46, -21, -32, -20, 23, -14, -16, 36, 41, 21, 9, -9, -13, -51, 26, 3, -39, 13, -34, 33, 9, 19, -14, 12, -45, 22, -26, 0, 40, 30, -23, 8, -22, 35, 16, -27, -14, 35, 8, 31, 38, -24, 40, 28, -19, 6, 51, -1, -34, -31, -39, -20, 16, -5, 22, -19, 36, -12, 4, -43, 25, 42, -45, 20, -7, 35, 23, 28, -34, 7, -27, 9, -42, 12, -39, -6, -4, 39, -52, -14, -1, -50, -24, 18, -42, -26, -12, -31, 33, 25, -21, -12, 0, 2, 28, -39, -18, 0, 20, 41, 3, -14, 36, 17, -25, -29, -22, 36, 41, -4, 43, -44, 41, 42, 33, 6, -47, -15, 14, -20, 12, -37, -24, -37, -16, -27, -59, -6, 3, 51, 20, -29, -42, 11, -14, 25, -26, 23, 7, 44, -27, 17, -4, 13, 0, 19, 16, -15, 16, 11, 27, -12, -26, -34, 41, 2, -15, 30, 12, 18, -32, -8, 9, 21, 8, 25, -20, -12, -29, 39, -5, -18, -27, 28, 30, 8, 17, -23, -33, -46, -7, 2, -6, -3, -3, -37, 26, -14, -22, -26, -1, 19, -17, -11, -11, -15, -34, 1, -37, -23, 25, -23, -7, 30, 11, 1, 9, 30, -25, 26, 0, 13, 45, -39, 3, -40, -18, -45, -3, 6, 22, 38, 60, -13, 48, -1, 7, -16, -59, -32, 26, -15, 39, 3, 41, 36, 59, 25, 22, -24, 30, 0, 20, -24, -16, 0, -5, 27, -29, -21, -26, 19, -8, 2, 44, 37, -1, 30, -39, 21, -6, 25, -42, -35, 28, 15, 0, -5, 8, 20, -22, -9, 31, 26, -30, 12, 52, 45, 28, 1, -6, -48, -22, 22, -28, -29, 16, -19, 2, 19, -5, -43, -45, -32, -22, 23, -3, 34, -1, 20, -22, 16, -51, 31, 45, 38, -45, -28, -26, 18, -17, -43, 22, -24, -43, -2, -38, 42, 40, -6, 7, -13, 38, -22, 23, 9, -20, -1, 26, 12, 18, 7, 17, 4, 6, -17, 6, 34, 15, -31, -28, 35, -36, -7, -13, -43, -36, 7, 27, -38, 24, 8, -26, 1, -36, 11, -25, 44, -10, -30, -9, -3, 30, -26, -21, -21, 44, -50, 36, 36, 9, -35, 24, 5, -9, 36, -28, -26, -25, 25, -62, 5, 9, -3, -15, -19, 15, -31, 38, 23, -31, 6, 39, -15, 31, 11, 43, 36, 40, -4, 13, -25, -36, 15, 36, 8, 23, 0, -26, -42, 26, -11, 11, 44, -29, -16, -10, 57, -22, 13, 22, 16, 18, -17, -23, 31, -40, -35, 12, -4, 53, 32, -40, 19, 13, 32, 27, -21, 0, 3, -20, 32, -39, -35, 1, 19, 6, 12, 4, -12, -48, -44, 27, -19, 45, -43, 32, 28, -1, 34, 41, 14, 7, -41, 21, 24, 5, 44, 35, -12, -30, -62, -38, -32, 7, -24, 61, 11, -28, 33, 10, 58, -33, -38, -56, -71, -1, -31, 35, -11, 4, -21, 14, 34, 2, -1, 2, 11, 38, 20, 3, 12, -39, -24, 40, -39, -12, 3, 8, -25, -35, 43, -24, 16, -16, -27, -30, 43, -36, -40, -14, 26, -21, -35, -40, -19, -8, -16, 36, 12, 32, -10, -26, 43, -34, -12, -10, 1, -39, 7, -21, 37, -22, 18, 21, 7, -34, -25, 4, -9, -54, -16, -4, -5, 44, -44, 13, 37, 34, 12, 24, -5, -33, -44, -1, -42, 43, 27, -24, -11, -45, 15, -45, -44, -35, -20, -1, 6, 15, 49, -31, -14, 48, -40, 29, -5, 15, 32, 23, 42, -37, -38, 12, -26, -10, -36, 10, 13, -15, -28, 3, 4, -11, 15, -2, 2, -22, 10, 16, 63, 33, 30, -28, -41, -70, -12, 31, -23, 34, -16, 13, 20, -41, -14, 19, 36, 2, -24, 0, -54, 7, 3, -44, -28, -1, 2, 25, -15, 25, -3, -16, -5, 19, 17, -40, -25, -17, -15, -35, 29, 9, 46, 17, 51, 46, -58, 23, -10, 33, 13, -38, -53, -1, -46, -23, 21, 35, -20, -18, 11, 11, 61, 32, 40, 12, -3, -32, -6, -17, 32, -19, 10, 11, -15, -32, -35, -6, 8, -27, 24, -35, -8, 17, -30, -35, 5, 26, -21, 17, -36, 30, -33, -20, -5, 19, -10, 44, -19, -5, -38, 34, -39, -4, -24, 18, 19, -5, -21, 5, -35, 22, 26, 7, -6, 2, -15, -31, -15, 35, 10, 4, 33, -23, -19, 6, 26, -30, -33, -23, -34, -20, -21, 41, 18, 2, -14, 0, 24, 66, 28, 1, 28, 52, -24, -12, -58, -79, -55, -70, 13, 15, 32, -23, 23, -13, 6, 3, -27, 34, -31, -14, -30, -29, -70, -53, -56, -30, -30, 17, 31, 1, 55, 49, 39, 61, 13, -1, -27, -54, -42, -11, 20, -11, -35, -14, -19, 37, 38, 14, -5, 60, 34, 54, -20, -66, -7, -22, -14, -38, 26, -2, -23, 15, 54, 15, -8, -3, 47, -21, -45, -70, -32, -78, -26, 40, -10, -21, -23, 73, 3, 24, 10, 16, -34, 2, -42, -49, -45, -52, -4, 3, 20, 1, -7, 71, -3, -6, 20, 7, 16, 20, -64, -44, -16, 1, -35, 31, -48, 15, -16, -23, 48, -26, 17, 42, -14, 38, -14, -7, 34, -11, -6, 32, -27, -31, -18, -21, 17, -5, 23, 41, 21, 20, -17, -26, -48, -37, -21, -32, 2, -4, -11, 21, -75, -53, 8, -43, -2, -32, 30, -26, 28, 10, -28, 34, -16, -2, -18, -39, 2, -26, 24, 3, -43, -6, 16, 20, -19, -22, 9, -35, 36, -45, 42, 58, -16, 23, -7, -26, -2, -17, -13, -7, -24, -16, -16, -23, 38, 43, 38, 4, -15, -6, -29, -25, -13, -34, 18, -16, -45, -13, 29, 0, 2, -43, 8, 7, -27, 40, -25, -31, -6, -43, -26, -38, -33, -20, 15, 36, 8, -13, -41, -9, 24, 9, 23, -1, 14, -40, 8, 34, -8, 21, 4, -13, -14, -47, -32, 20, 36, 15, -47, 13, 29, 40, -65, -10, -54, 17, -8, 36, 15, -15, -25, 4, -58, 19, 29, 37, 16, -9, 16, -36, -31, 44, 44, -18, -37, -11, 24, -39, -20, -13, 23, 27, 8, 26, -5, 16, 59, 6, -24, -31, 27, -13, 33, 64, -13, -17, -68, -53, 27, -7, -79, -52, -50, -79, -1, 14, -22, -40, 16, -2, 1, -18, 35, -26, 18, -4, 17, -33, 31, 32, 10, 12, 35, 37, -28, -4, -14, -22, -9, 14, 36, 25, -21, -15, -35, -20, -41, -28, 18, 24, -7, -24, 26, -25, -20, 6, 15, -36, -4, 28, 20, -27, 7, -23, 7, 30, 15, 44, -24, -29, 57, 74, 41, 20, 4, -8, 19, -38, -26, -4, -3, -32, -27, -18, 11, -6, -25, -31, -32, 30, 18, 30, 11, 27, 12, 39, 27, 19, -17, 20, 6, -59, 35, 12, 12, -4, 40, 9, -14, -10, -14, 6, -30, -35, 41, -48, -4, -19, -40, 4, -42, 15, -35, -40, 22, -43, -22, -3, 41, 27, 14, -3, -7, 49, 23, 55, 21, 42, 8, 7, -68, -28, -58, -43, 3, -33, -36, 48, 32, -3, -5, 54, 22, -32, 4, -16, -9, -34, -50, 30, -16, 42, 26, 22, 21, 13, -13, 35, 30, -33, 31, -22, 18, 18, 36, 15, 18, -39, -7, -14, 24, 1, 26, 45, 66, -11, 12, 3, -22, -52, 3, -16, -45, 21, -35, -31, 12, -16, -24, -37, 27, -33, -19, -43, 17, 43, 32, -23, 4, 43, -9, 6, 21, 33, 4, 25, -30, -13, 1, 10, 11, 35, -9, -40, -12, 17, 28, -34, 10, -35, -47, 24, -23, -13, -18, 32, 17, -30, -40, 44, 37, 30, 41, -38, 24, 17, 27, 6, 40, -41, -15, -27, -32, -43, 15, -39, 32, 33, -6, -43, 33, -8, 44, 27, -26, -30, -1, -18, 45, 37, 27, -28, 9, -31, -28, 20, -2, -30, -25, 46, 9, 42, -40, -19, -35, -58, 55, -15, 13, -22, 9, 30, 16, 18, 70, 19, 7, 61, -1, -34, 4, 25, -39, 9, 32, 18, -2, 32, -12, 2, -16, 7, 12, -7, 44, 6, -27, -32, -29, -41, -20, 44, 41, 0, -10, 29, -5, 3, -40, 9, 45, 6, 29, 48, 37, 30, 6, -31, -30, -39, 1, -41, 46, 6, 24, 37, -28, 18, 36, -18, 15, -4, 28, -14, 32, -41, 24, -17, -6, -50, 17, 27, 21, -7, -50, 29, -41, 46, 38, 42, 36, -4, -44, 35, 38, -27, -35, -30, 33, -3, 25, 27, -2, 1, -27, -9, -24, -24, -29, 45, 11, 6, 20, -32, 22, 3, -49, -3, -52, -51, 10, 29, 40, -29, 0, 53, -35, 26, -5, -33, -42, -13, -7, 12, 19, -41, -5, -38, 1, 29, -26, 38, 24, -43, -37, -44, -4, -51, -42, 11, -30, 9, 44, 36, 40, 23, 22, -4, 24, 29, -4, -43, 35, -22, 38, 8, 15, 13, -49, -17, -18, 4, 24, 38, -6, 36, -20, 13, 8, -30, -49, 18, 8, 33, -18, 2, -20, 2, -13, 31, 4, -19, 49, -12, 21, 42, 8, 9, 25, 14, 4, -1, -16, -45, -19, -28, 39, -16, 0, 36, 26, -8, 34, 46, 20, 15, 43, -28, -17, -3, 53, 46, 27, -15, 40, -33, -51, -54, -21, -44, 18, 18, -8, -21, -4, 27, -42, -26, -15, -30, 13, 18, -22, 45, -35, -35, 12, 17, -56, -41, 0, 0, 44, -3, 41, 18, 31, 61, -76, -9, -53, -3, -26, -17, 48, 36, 64, 41, 7, -36, -20, -1, -1, 45, 20, 15, 30, 55, -13, 35, -15, -12, -24, -13, -13, 10, 40, 2, 53, 50, -62, -8, -61, -23, -24, 28, -51, -29, 37, 1, 47, 9, -5, 53, 64, 44, -10, 24, -34, -29, -9, 8, 6, 18, -6, 10, -37, 35, 5, -33, 49, -1, 12, -28, -39, 16, -12, 28, 42, 12, -17, 28, 35, 18, 36, 34, 11, 2, -14, 19, 12, -2, -33, -5, 14, -1, -27, 18, 24, -14, 32, 26, -36, 32, -14, 25, -16, 28, -61, -55, -43, 14, -5, 18, 64, 60, -43, 30, 9, 2, -75, -62, -88, -32, -2, -26, 26, 25, 34, -16, 52, 15, 49, -4, 45, 19, 7, 36, 20, -39, 2, 36, 20, 32, 0, 29, 37, -5, 10, 10, -35, -18, 8, 36, -4, 51, 1, 20, 37, 30, 10, 21, -39, -39, 8, 10, 15, -37, 11, -40, -26, 20, -21, 31, 15, -29, 26, 32, -6, 25, 24, -29, 23, -37, -6, -8, -10, 9, 40, 26, -33, -37, 55, 15, 63, 33, 38, -31, 12, -50, 15, -64, -53, -49, -1, 42, -36, 19, 17, -24, -22, 20, 35, -19, 36, -26, -39, 6, 24, -14, 30, 27, 19, 29, -20, 4, 44, -36, -18, -15, 26, -42, -38, 13, 11, -13, -30, 3, -16, 39, 8, 12, 12, 4, -55, -14, 15, 30, 28, -17, -6, -4, -40, -28, 7, -22, 29, 42, 38, 23, -17, 44, -15, 27, -35, 34, -26, 15, -2, -5, -33, -3, 14, -21, 23, -19, 5, 24, 22, -11, -32, -31, 42, 32, 1, 29, -4, 35, -36, 29, 31, 18, -30, 10, 4, -8, -38, -21, -3, -32, 32, -39, 24, 25, -15, 31, 34, -17, -39, 36, 11, 25, 24, -6, -29, -39, 19, -63, -50, -31, 12, 31, 37, -31, 5, -14, 35, 12, 31, -19, -44, -4, -23, -3, -37, 3, -32, 13, 17, -9, 27, -19, 43, 30, -25, -34, 3, -1, -12, 16, 22, -8, -21, -35, 32, -1, 29, -41, 15, 26, 40, 19, -12, -41, 5, 42, -36, 42, 26, 40, -3, 6, -23, 3, -16, 41, -18, 25, -7, 3, -22, -34, 34, -4, 2, -25, 42, -21, -17, -37, 29, -33, -57, -35, -21, 1, -17, 32, -37, 7, 50, 32, 55, 12, 19, -18, -17, 40, -26, -74, -31, 6, -11, -1, -1, -9, 17, 11, 64, 40, 48, 7, -6, 10, -18, -8, -34, -19, 22, 34, -42, 11, -37, -24, 43, -39, 23, 28, -36, -33, -37, 8, -27, -16, 6, 39, -12, 20, 28, -62, -66, -18, 10, -9, 43, 16, 17, 35, 43, 43, -33, 37, -40, -7, 8, -25, -7, -5, -29, -39, -7, 31, -7, -11, -6, -35, -9, 29, 1, 19, 5, 25, -25, -18, -44, -1, 2, -15, -6, 7, -25, 8, -19, -25, 40, -39, -14, 30, 35, 22, 17, -32, -7, 14, -39, -16, -9, 21, 14, 9, -3, -24, -2, 9, -22, -41, -42, -21, 44, -4, -32, -37, 47, -33, -29, 8, 17, 5, 13, 22, -23, -8, -19, 27, 37, -1, -16, 0, 40, -19, -10, -32, 22, -10, -35, -12, 20, -35, 36, 33, -25, 33, 27, -30, 54, 35, 0, 7, -43, 11, -25, -32, -32, 40, 46, -19, -38, -21, -42, 27, -27, 37, 12, 35, 7, -16, 43, -12, -1, 25, -14, -36, 30, 32, -70, -35, -13, -67, 5, 37, -21, -27, 8, 20, -34, -1, -45, 13, -14, -9, 6, -14, 12, 22, -36, -3, 33, 3, 22, 2, -32, -38, 31, 20, -3, -13, 35, -41, -18, 14, -25, -34, -9, -40, 1, 27, -13, 44, 17, -39, -8, 15, -30, 36, 37, 23, 42, -9, -2, 39, -42, -8, -1, 14, -17, -7, -9, 39, 40, -18, -23, 19, -20, -49, 28, 26, -41, -10, 34, 36, 3, 36, 35, 2, -2, -55, -52, -47, 43, 15, -20, 25, 57, -32, -16, -33, -9, 1, 23, 65, -11, 54, 33, -7, -7, -28, -18, -34, 36, 32, -9, 36, -20, -37, 16, 10, -21, 40, -25, 0, 31, 24, -30, 28, 57, 44, 77, 30, -56, -13, -8, -29, -39, -61, -12, -53, -8, -15, -28, -21, -43, 25, -12, -27, -18, -9, -43, 9, 20, 9, 40, 36, -26, -2, 33, 13, -20, 29, 27, 27, 0, -2, -15, -30, 22, -17, -47, -25, 15, 11, -7, 0, 24, 50, 63, 47, 36, -29, -22, 35, 42, -15, 37, 49, -6, -28, 27, 32, 40, -25, -30, -49, 21, 34, 12, -10, 53, 20, 36, -27, -31, 31, 17, 28, -16, -34, 16, -36, 9, 20, 7, -44, -40, 31, -26, -28, -32, 33, -3, -42, 25, 21, 34, -21, 4, 25, -7, -2, -7, 14, -33, 32, 11, -22, -2, -12, 7, 13, 26, -15, 3, 16, 25, 17, -68, -51, -74, -38, -32, 6, -35, -19, 11, 7, 0, 2, -3, 39, -1, -4, 22, 19, -13, -42, -12, -25, 9, 13, -4, -7, 26, 12, 25, -24, 9, -4, -49, -49, -10, -5, 13, 43, 12, 12, -10, -22, 1, -9, 35, -45, -9, -41, -23, -19, -11, 29, 11, 7, -22, 39, 17, -11, -2, 26, 23, 38, -33, 20, -41, 14, -67, -19, 35, -22, 5, 19, -3, 42, -50, -43, -11, -33, 47, 46, 3, -39, 39, -21, -18, -8, -2, -44, 12, -13, -26, 39, -44, 41, 17, -18, -21, 40, -44, -3, -16, 8, 28, -6, 51, 34, 47, -29, 8, 21, 26, -20, -40, 10, 10, -43, -17, 29, 38, 25, -14, 10, -34, 20, -7, -18, -30, 22, -30, -33, 45, 27, 13, -44, -26, 24, 38, 3, 0, -41, 2, 40, 23, 41, -22, -5, 35, 10, 20, 25, 23, -32, 9, -32, -14, 0, 12, 6, -21, 13, 21, -26, -26, -21, -23, 3, -15, 3, 40, -10, -11, -25, -27, 37, 13, 23, 12, 17, 47, 29, -45, 18, 49, 18, 7, 25, 26, 4, -23, 36, -32, 49, -14, -30, -50, -52, -17, 14, -39, 14, -40, 17, -33, 43, -1, 16, -21, 34, 5, -5, 24, 34, -29, 33, 36, 29, -41, -15, -33, 27, 41, -1, -24, 45, 28, 11, -7, 40, 21, 9, 33, -19, -27, 44, 1, 16, 17, 30, -27, 44, -35, -6, -16, -68, 17, -27, 40, -43, -34, 40, -21, -22, 14, -5, 29, 44, -8, -24, 24, -22, 37, -27, 44, -42, -7, 5, 24, -26, -41, 4, -20, 26, -25, 13, 35, -30, 9, 2, 19, 16, 18, 39, -2, 38, 4, 52, 15, 51, -43, -54, -26, -53, -4, 12, 37, -10, 0, -28, 3, -31, 42, 28, 2, 15, 23, 2, -5, -19, -13, 15, 4, -36, 62, 6, -4, 54, 3, -1, 51, 44, 42, -37, 40, -3, -4, -14, -10, 38, -21, 38, -3, 39, 26, -28, 35, 31, -37, -24, -43, -33, -48, -4, -54, -47, -23, -17, 21, -58, -49, 54, 64, 50, 17, -37, -41, -36, 2, 27, -7, -19, -12, 10, -11, -26, 46, -4, 25, -11, 21, -22, -3, 18, -34, -48, 23, -19, 44, -37, 39, 39, -1, 22, 0, 16, -10, -38, 22, -5, -30, 21, -8, 45, 31, 18, -43, 5, 40, 25, -26, 21, -44, -29, -22, -2, 39, 30, 43, -23, -30, -10, 8, 23, 10, -12, 0, -4, 5, -33, -34, 10, 39, 36, 26, 40, -14, -28, -41, 31, 30, -5, -36, -9, 11, -17, -31, -44, -14, -8, -9, 23, -16, 9, 4, -3, 44, 49, 64, 8, -23, -51, -31, -40, -1, -44, -19, -32, -11, -6, 29, 41, 18, 19, 3, 46, 23, 31, -35, 19, -48, -8, -20, -43, -14, -26, 34, -39, -69, -24, 9, -18, -80, -82, -24, -20, -44, 42, 33, -15, -34, 53, 16, -15, -6, 32, 32, 10, -22, -47, -4, -34, -8, 9, -22, -13, 42, 7, -27, 24, -23, 2, -29, 44, 14, -25, -23, -10, 1, 19, 17, -42, 35, 36, 10, -25, 2, 15, 20, -26, 7, -13, -34, -26, -5, 17, -14, -41, 16, 8, 39, -6, 15, -31, 18, 6, 5, 13, -13, 21, 26, -14, 31, -30, -18, 2, -20, 1, 13, 10, 13, -21, -30, -37, 0, 33, -26, -31, 31, -7, 17, -45, -5, -3, 57, 69, 28, 70, -3, 77, 54, 10, -41, 41, -2, -2, -41, 3, -27, 4, -8, 39, 10, -1, -29, -2, 17, -34, 2, -40, -12, -37, -14, -6, -6, 16, -46, 20, 16, 14, -32, -66, -68, -39, -43, -42, 37, 33, 2, 37, -4, 2, 13, 31, 15, 50, -26, -62, -52, -9, 6, 0, -25, -37, 19, 48, 6, -20, -31, -18, -52, -38, -21, 17, 62, 32, -19, 29, -2, 2, 39, 48, 21, 29, 6, 22, 30, 4, -73, -73, -58, -67, 34, 20, -8, 34, 15, -50, -25, 4, -2, -49, 24, 36, 1, 33, 36, 39, 16, 32, 2, 32, -26, 2, -6, -5, -30, 19, -21, 23, 27, -51, 0, -50, -33, -38, -25, -37, -13, -20, 31, 25, -11, 19, -18, 24, 6, -38, 8, 32, -22, 32, 51, 22, -22, 37, -21, 40, 32, -10, -47, 12, -47, -11, -9, -14, -20, -10, 20, 29, 5, 25, 17, -9, 17, 3, 2, 14, 16, -38, -23, 30, 8, -28, -26, -1, -5, -19, 14, 7, 3, 27, -17, 36, 48, 32, 55, 45, 37, 7, 33, 16, -38, -12, 10, 41, -24, 17, 12, 15, 30, -47, -28, -20, -48, 8, -54, -12, -3, -33, 22, -46, -41, -15, 22, -1, -2, -87, -52, 4, -29, -38, 3, 19, -19, 28, 48, 33, 18, -21, 4, 19, 7, -27, -5, -38, -46, -43, -2, -34, -39, 10, 45, -16, 11, -19, 29, 34, -40, -16, -25, -63, -8, -46, -19, -4, -13, -5, -31, -39, -31, -8, 22, -2, -43, -78, -18, -28, -18, -18, -23, 32, 50, 28, 3, -8, 60, 75, 54, 6, -25, -24, -12, -7, 1, 11, 34, -34, -38, 35, 22, -33, 37, -29, 39, 36, -38, -25, -35, 11, -31, -35, -30, 21, -9, 8, 27, -5, -3, 28, -43, 26, -42, -27, -30, -13}, + {6, -47, -28, -16, 15, 6, 11, 12, -4, -7, 37, -26, 39, 28, -15, 39, -29, 2, 40, 35, 14, 50, -31, 17, 10, -11, -18, -13, 5, 33, 38, 15, -4, -3, 54, 14, -19, 37, 7, 47, 31, -8, -2, 30, -34, 14, 14, -3, 10, 9, 6, -26, -30, -26, 18, 32, 23, 39, -19, 3, 26, -4, 8, -37, 1, 6, 42, 35, -6, -31, 7, -24, 55, -30, 2, -42, -24, -24, 11, -24, 26, 41, 25, -5, 33, -9, 43, -31, -20, -6, -39, -1, 27, -27, -38, -1, 47, -44, 22, -39, -9, -4, -15, 24, 0, -8, 30, 13, 28, 7, 15, -32, 1, -20, 23, -28, -6, -2, -32, -33, -13, 11, 14, 32, 32, -26, 27, -15, 12, 14, 35, 25, -33, 37, -16, 38, 11, 0, 23, 14, 34, -29, -36, -12, -38, -2, -7, -16, -9, 5, 12, -16, -38, -14, -2, -11, -42, -11, -23, 1, 14, -37, 4, 9, 0, 3, -47, -37, 25, 24, 8, -23, -7, 26, 10, 53, 44, 50, 1, 5, -37, 52, 43, 27, -19, -16, 0, 20, 6, 20, 5, 3, -35, 49, 9, 3, 43, -36, 10, 50, 1, 33, 27, 42, 0, 9, -22, -38, 37, -23, -7, 20, 44, -32, -34, -36, -17, 21, 25, -8, 33, 28, -9, -41, -34, -29, 31, 17, 41, 11, 46, -23, 40, -25, 4, -42, -28, -39, -9, 36, -38, 6, -27, 27, 4, -61, 8, -29, 18, 5, -37, 2, 25, 41, -8, 41, 2, -30, -69, -38, -65, -14, -17, -30, -6, 10, -46, -41, -19, -35, 0, -4, 2, 2, -23, 25, 16, -28, -24, -5, -36, -31, -9, 16, 17, 31, 16, 13, 2, 18, 16, 34, -28, 24, 22, -27, 17, 37, -47, 33, 33, 24, 39, 52, -33, -28, 8, -33, -26, 28, 32, -27, 13, 16, -2, 47, 21, 31, -35, -4, 0, -29, -5, -53, -1, -43, 11, -26, -18, 28, 3, 48, 22, -13, 41, 9, -43, -6, 19, -19, -27, 30, -6, -8, -3, 29, -2, -50, 11, 31, 3, -29, 20, -8, -51, -59, -50, -46, -14, 18, -8, 11, -33, 8, 13, -38, -38, 4, 12, -15, -16, 37, 8, 18, 34, 33, 27, -12, 40, 20, 5, -30, -34, -18, -41, 4, -5, -41, -30, -15, -6, -12, -16, -17, 24, 12, 32, -38, -34, 41, -19, -21, -11, 30, -28, 35, 3, 14, 4, 20, 23, -21, 3, 5, -4, 30, -2, 19, -18, -23, 27, 8, 51, -15, -24, 46, 19, 28, -30, 34, 25, -40, 39, -6, 22, -29, -2, 18, 2, -17, -32, 17, 27, 30, 44, 2, -1, -33, 36, 2, 15, -43, 7, -27, 7, 38, 43, 25, -15, -7, -29, 18, 29, 31, -10, 46, -21, -13, 43, 14, 22, 23, 1, -11, -16, 10, 33, 30, 11, -41, -39, -16, -21, -42, -42, -35, 17, -31, -24, -7, 31, 11, -31, -5, 31, -4, 26, 9, 4, 38, -17, 12, -3, 27, -9, -16, -35, 21, -31, -27, 12, -18, -40, 7, -10, -18, 31, 8, -36, -28, -30, -5, -47, 13, 58, 38, 2, -22, -28, -17, -2, 14, -90, 3, -28, -45, -31, -112, 17, -15, 13, -63, -20, -27, 23, -25, 16, -8, 36, -3, -22, 26, -6, 18, -6, 20, 37, 0, 10, 31, -38, -48, 0, -9, -9, -11, -7, -63, 39, -12, -53, 10, 38, -6, -14, 9, -32, -22, -40, 24, -25, -4, -2, -51, 23, -28, -4, -1, 38, -35, 0, -6, 21, -19, 16, -48, 4, -29, -14, -44, 54, -26, 20, 33, 49, 16, -15, 59, -18, 41, 39, 27, 7, -3, -22, -16, -21, 45, 32, -8, -14, 28, 51, -18, 13, 17, 20, 14, -27, -15, -2, 35, 37, -34, -45, 42, 50, 33, 33, 32, -3, -23, -44, 14, 51, 31, -47, 29, 27, 2, 50, 44, -30, -19, -1, -14, 35, -34, 16, 32, -3, 32, 20, -6, 22, 29, 24, -28, 18, -5, 35, -20, 30, 36, -9, 11, 26, 48, -15, 0, 9, 13, -36, 32, 42, 26, -14, -17, 17, 37, -28, 15, -26, 16, 30, 33, -43, -9, 16, 44, -6, -19, -32, -16, -24, -30, 27, 2, -9, -37, 2, 6, 19, -32, 44, 41, 36, -3, -3, -17, -7, 40, 28, 4, 47, -13, -24, 18, -26, 20, 20, 38, 21, 4, 4, -21, -24, 30, 31, -36, -41, 39, -30, -13, -9, 26, -27, 20, 16, -43, -4, 2, 27, -33, -21, 22, 15, -32, -7, -40, 51, 7, -43, 43, 22, -31, 36, 14, 3, -44, -34, -67, -21, -68, -1, -14, -6, -35, 10, -14, -31, -6, 39, 9, 12, -10, 5, 36, -26, 30, 33, -42, -18, -1, -22, -10, 5, 4, 32, 37, 36, -12, -8, -19, -7, -35, -49, 9, 2, 37, -43, 35, 9, 34, 41, 27, -50, -3, -3, 13, 42, -46, -22, 5, 21, 45, 48, 57, 0, -47, 26, 30, -15, 10, 0, 39, 0, 51, 59, 40, 33, 21, 26, -37, -36, 0, 3, 22, 39, 3, -40, 32, -44, -39, 1, 1, 33, 1, -40, -39, -22, -15, -10, 33, -15, 30, -42, -37, -43, 12, -46, -48, 35, 35, 44, 33, 12, -5, 37, 25, 11, 31, 6, 13, 8, -21, 7, -24, 8, -41, 15, 25, 9, -19, -30, 25, 10, -42, 36, 17, 45, -8, 16, 15, 44, 51, 30, 15, -18, 23, -4, -9, 13, 28, 50, -29, 24, 2, -4, 11, 21, -13, 45, 11, 5, 10, 10, 34, 17, 24, 20, -19, -9, 2, -64, 8, -27, 27, -7, -29, 58, 28, -7, 44, -33, 15, -16, -39, 19, 65, 26, -20, 44, 20, -51, 40, -16, -8, -21, -8, 16, 13, -1, -26, -36, -10, -27, -8, -20, 15, 28, 17, -23, -8, 21, 29, -22, -4, 17, -35, -18, -38, -20, 15, 37, -18, -8, 12, 5, -4, -17, -13, 4, -36, -36, 0, -23, -13, -39, -24, 3, 1, -50, 54, 7, 18, 3, 15, -5, -6, -11, -39, -4, 30, -20, 27, -15, -43, 0, -5, -39, -4, -16, -43, -24, -13, 18, 39, 32, 14, -13, 22, -1, 18, -1, 6, -12, 29, -3, 3, -18, 23, 10, -4, -28, -25, -13, -29, -4, -26, 25, -2, 51, 48, 1, -16, 35, -27, -5, 11, 1, -10, -4, -12, 16, -1, 11, 4, 34, 18, 46, 33, 39, -41, -45, -39, -35, -21, 32, -9, -12, 3, 34, 43, -7, 0, 23, 31, -40, -8, -1, 22, 17, 9, 25, -31, -33, 17, 21, -15, 38, -33, -43, 35, 12, 36, 31, -28, 14, 41, 8, 16, 4, -31, -4, -37, 51, -7, -4, 52, -34, -16, 3, -10, 48, -26, 8, 41, 13, -8, -8, -31, 9, 45, 31, -11, -21, -12, 25, 25, 18, 28, 11, 36, -17, 39, -21, 20, -11, 22, 17, -4, 38, -28, 22, -37, 11, 44, 40, -25, -21, -4, -16, 7, 25, -2, -41, -30, -3, 34, 1, -13, -6, -43, -26, 39, -31, 38, -33, -26, -8, 40, -9, 37, 6, -17, 20, 33, 25, -9, -22, -42, -34, 6, -21, 32, 29, 27, 15, -8, -15, 46, 23, 40, -4, -12, 19, 13, -17, 7, 38, -27, 21, 26, -14, 9, -43, 26, 12, 27, -8, 12, -34, -16, 13, -42, 32, 21, -1, -14, -3, 5, 10, 11, 2, -15, -39, 15, -14, 10, -25, -30, 23, -18, -39, 45, 26, 2, 25, 15, -12, -42, 27, -51, 1, 12, 17, 14, -37, 26, 35, -15, -1, 3, 0, -5, 44, 40, -40, -9, 22, 47, -34, -18, 26, 9, -18, 29, 31, -4, -30, 9, 15, 4, -31, 1, -16, 30, -28, -28, 23, -16, -44, -10, 9, -3, 29, -42, -16, 32, 26, -10, -47, 21, 38, -44, -21, 27, 51, -13, -11, 52, -15, -23, -7, 44, 5, 2, 10, 2, -42, 14, -11, 21, -11, -24, 8, 42, 44, 16, -24, -13, -16, 1, -30, 29, -19, 21, -3, 25, -17, 28, 34, 14, 25, -22, -25, 35, -25, -10, -19, 6, 28, -37, 19, -37, 2, -42, 25, -6, 39, -29, -19, 33, 20, -12, -10, -2, 28, -36, -35, 19, 31, 33, -36, 13, 35, -36, -25, -15, -28, 38, 5, 12, -8, 4, -18, 20, -24, -32, -14, 16, 38, 9, 27, 51, 28, -17, -29, -34, 17, -8, -1, -32, -29, 8, -27, 34, 24, 36, 37, -27, 31, 35, -40, 16, -29, -23, 16, 6, 37, -6, -35, 0, -40, -45, 30, -50, -21, -53, -48, 30, -37, -23, 11, 34, -28, -12, -25, 31, 7, -19, -28, 35, 12, -39, 9, 5, -11, -8, 12, -28, -6, -27, -37, -29, 19, 34, -43, -10, -41, 2, 44, 35, -31, -4, 13, 18, 10, -21, -25, -21, -20, -3, -18, -35, 15, -5, -15, 33, -9, 6, -37, 31, 48, 30, -21, 16, -2, -52, 3, -15, 11, -7, -34, -36, -28, -9, -18, -4, -16, -36, 31, 17, -4, 14, 41, 3, -31, -1, 36, 13, 15, 8, 33, 21, -18, 15, -26, 47, -29, -5, 2, 25, -15, -34, -36, 43, 43, -13, 14, 14, -11, -33, 26, -40, 4, 36, -29, -11, 41, -40, -19, -21, -29, -13, -26, 35, 24, 29, 19, 40, 51, 46, -10, 3, -37, 33, -10, -4, -34, -8, 11, 28, 41, -43, 26, 45, -45, 19, -46, -46, 7, -8, -12, -27, 18, -53, 26, 13, -3, -8, 28, -23, -36, 10, -54, -47, -27, 5, -50, -52, 31, 31, 28, 24, -13, 4, 17, 6, 21, 2, -44, -31, 6, -11, -33, -27, 6, -39, -7, -31, 17, -27, -24, 30, -18, 16, -19, -55, -42, -52, -17, -50, -7, 30, -11, 27, 54, 14, 12, 11, -28, 18, -42, -49, -23, -5, -53, -30, 14, -46, 28, -6, 34, 18, -13, 65, -42, 17, -26, -59, -16, -17, -1, -41, 10, -45, -35, 50, 47, -16, 17, -6, -55, -19, -20, 19, -13, 5, -47, -37, -9, -13, 21, 39, -24, -2, 25, 6, 4, -39, -40, 25, -29, -34, -32, 16, 2, 6, 19, 35, 0, 10, 47, -36, -39, -40, -36, -28, -15, 26, -29, -36, -44, -2, -19, -2, -6, 2, -19, 52, 14, 16, -18, 54, 14, 52, 66, 36, 39, -39, 10, 16, 31, -2, -5, -35, 15, -38, 29, -26, -10, -28, -26, -37, 17, -2, -8, 37, 14, 6, 9, 35, -13, 15, -52, -16, -3, 7, -46, -35, 43, 39, -16, 33, 30, -24, -33, 45, 17, -7, -18, -28, 3, 15, -27, 40, -35, 24, -38, 26, -37, -18, 14, 0, -37, -10, -21, -3, 3, -33, -17, -18, -20, 32, -1, 44, 7, -18, -9, -42, 1, -26, -26, 39, 24, -6, 0, -32, -4, 10, 4, -17, 29, -12, -27, 41, -6, -48, -25, 31, -21, 17, 31, 21, 5, -23, 33, 31, 20, 32, -7, -1, -18, 41, 6, 42, -25, -11, 29, -28, 32, 12, -22, 33, -16, -2, 31, -12, 8, 46, 3, -26, 46, 52, -19, 40, 18, -29, 27, -30, -36, 37, 20, -39, -29, 3, -10, 10, 29, 23, -3, 21, 19, 2, 24, 9, 39, 15, 24, 53, -26, -17, 12, -27, -23, 3, 2, 14, 30, -35, 40, 15, 11, 46, 16, -39, 19, -52, 5, -38, 28, -17, 12, -22, 62, -18, -17, -30, 58, 25, 4, -6, 18, 18, -19, 41, -2, 6, 23, -18, 36, 19, 19, -44, -23, 9, -11, -20, -14, 44, 34, -34, -22, 16, 18, 19, 8, -40, 21, -48, 10, -26, -26, 15, 39, 35, -6, -14, -33, -16, 42, 10, -18, 12, 26, -30, -10, -35, 10, -48, -68, 2, -77, -51, -5, -75, -62, -23, -53, 2, 15, -28, -30, 9, 21, -55, 35, 49, -20, -16, 34, 47, 32, 23, 19, -13, -30, -36, 3, -24, 19, -20, 5, -4, -24, 4, 17, -15, 21, 12, -29, 21, 9, 11, 19, 36, 25, -3, 10, 7, 16, -10, -10, -47, -56, 0, -4, -9, 4, 40, 23, 20, 15, -4, 41, 26, -2, 13, -10, -41, -30, 35, -2, -23, 28, -4, 2, 9, -6, 6, -3, -16, -16, -6, 23, -4, -40, -55, -50, 1, 0, -4, -37, -2, 6, 14, 5, -27, 18, 24, -36, -16, -33, 40, 43, -21, -33, -14, -31, 34, 12, 48, -43, 42, 18, -20, -39, 9, -29, 44, 27, -33, -28, 4, 13, 27, -29, -34, -16, -6, -10, -29, 4, -3, -34, -36, -29, 45, -11, 45, -33, -32, -29, 42, -44, 39, -43, 14, 11, -10, 25, -44, -34, -22, -40, -4, 33, 17, -26, -11, -12, -6, 30, -5, -22, -10, 10, -1, 19, -4, 47, 9, 23, 24, 15, -15, 12, -17, -21, 12, 60, -3, -25, 7, 58, 22, -26, -45, 13, -32, -39, 57, -49, 4, 18, -33, -4, -12, 31, 10, -46, -56, -3, -35, -14, 26, 0, 23, -38, -36, 25, -42, 27, -6, -46, 27, -23, 24, 37, 39, 42, -7, 8, 8, 38, -3, 44, 40, -6, 36, 30, 6, 19, 23, -26, 2, 36, -2, 32, -35, -39, 39, 6, 10, 35, 12, 32, 5, -5, -12, -42, 20, 42, -8, -26, 18, 34, 36, 29, -40, 44, 16, -11, -22, -35, 18, -17, -13, 3, 24, 20, 22, 39, -30, -31, -25, 2, 58, 54, 43, -5, 28, 8, 42, 0, -34, 28, -5, -15, 38, -13, -26, -20, -35, -36, 11, 8, 35, 7, -22, 45, 20, 28, -11, -21, -18, -17, -35, -24, -27, 22, -14, 23, -45, -34, 46, -23, 5, 32, 14, 19, 26, -18, -19, -19, -33, -27, -7, -19, -14, -43, 9, -26, 53, -24, -26, 34, 22, 31, 6, 13, 14, 29, 3, 11, 22, 32, 38, -19, -42, -7, -42, -10, 20, 31, 0, 4, -11, 9, 42, 23, 43, -19, 36, -22, 3, 8, -9, 8, 10, 19, 11, 36, -5, 19, 38, -25, 32, -30, -22, -5, -40, 21, -4, -14, -24, 10, -28, 19, 34, 43, 16, 31, 27, -33, -37, 36, 37, 8, 44, -43, 6, -28, -44, -6, 5, 10, -33, 36, 6, -23, -14, 52, 6, 48, 60, -32, 42, 32, 44, 28, 44, -34, 0, 40, -42, -15, -10, -19, 28, 13, 11, -33, -43, -66, 11, 15, 2, 7, -41, 31, -19, -12, -44, -31, -46, -5, -1, 18, -1, -71, -4, 2, -24, 32, -32, -32, 14, 15, -5, -31, -18, -79, -20, -54, -22, 19, -21, -31, 1, -56, 27, -19, -44, -4, 18, 9, -34, -24, 46, -8, 15, -20, 35, -17, -49, -24, 13, -3, 17, 20, 20, 6, 39, -37, -28, 9, 34, 9, -35, 35, 7, -38, 17, 29, -32, 16, 22, -22, 45, 14, -10, 37, 31, -10, 11, 44, 1, 19, 17, 7, -36, -5, 42, -9, 35, 28, 33, 44, -14, 0, -30, -18, 8, -24, -9, -31, 34, 7, 20, 20, -34, -21, -22, -46, 27, -7, -22, -17, -4, -31, -54, -12, -24, 18, 37, 41, -3, -19, 46, 20, 3, -3, -6, -48, 35, 7, 30, 34, 17, -29, 23, -36, -27, -27, 12, 4, 7, -36, 44, 40, -20, 22, 0, -20, 25, 29, -12, -21, 45, 8, -28, -21, 17, -23, -40, -22, 14, 19, -29, 21, 7, 5, -12, -11, 12, 14, 43, 7, 1, -5, 40, 28, 25, -33, -33, -8, 12, 1, 14, -42, 14, 33, 26, -37, -50, -10, -62, 3, -55, -47, -2, -27, -17, 4, 7, -2, 20, -14, 69, 17, 41, -8, -28, 17, 40, -20, -12, 12, -22, 7, -41, 17, -18, -10, 12, 29, -36, 22, 35, -32, -12, 11, -1, 6, -3, -38, 10, -3, -44, 12, -26, 18, -32, -35, 27, 7, -2, -4, -17, -29, 56, -5, 1, -8, 0, 15, -13, 41, -30, -35, 7, -44, 9, 11, -30, 28, 1, -13, -8, -18, -39, 25, 23, -11, -29, 23, -28, -29, 23, -38, -9, 25, 22, -26, 8, 36, 5, -18, 39, -6, 31, 28, -30, 3, 13, 9, 4, 18, -40, -26, 30, -29, -41, 14, -17, -3, 32, 28, -20, 25, 45, -20, -14, 37, 4, -6, 44, 14, 11, 6, -1, -19, -31, -29, 30, 15, 34, -47, -32, 55, 32, 29, 22, -10, -28, -15, -1, -2, -35, -33, -41, -40, 39, -29, 44, -31, -34, 11, 33, -25, -25, 10, 39, 4, 14, 26, -1, -36, 24, 20, -4, 14, 11, -10, -43, -18, 10, 26, -26, 42, 4, 11, -3, -38, -25, 1, -26, -8, -19, -11, -21, 2, 9, 44, 0, -29, -56, -15, -15, -44, -47, 2, -22, -4, -16, 17, -7, 69, 12, -23, 12, -36, -42, -22, -58, -36, -64, -43, -33, -26, 25, -17, -35, -17, -17, -29, -9, -5, -23, 4, 1, -1, -32, -3, -44, -20, 41, -29, -21, 25, -2, -9, -26, 42, -44, -13, 24, -41, 2, 29, 43, 18, 10, -1, 31, 8, -26, -14, -31, -23, -22, 16, 0, -15, 50, -18, 2, 5, 20, 7, -37, 2, 26, 20, -26, 9, 26, -27, -34, -14, -21, -13, 28, -26, -26, -5, -3, -12, -33, 45, 41, 37, 28, 17, 24, 20, 31, 47, 6, -18, 31, 1, 11, -9, -11, 34, -7, 29, -22, -38, 17, 2, -22, -36, 30, 9, 44, -6, 18, -42, -25, 3, 2, 7, -5, -27, 9, 32, 12, -1, -14, -37, -16, -42, -26, -40, -38, -37, -16, -22, 4, 2, 12, 42, -32, -41, 41, 28, -35, 38, -37, -24, -31, -30, 32, 37, -7, 53, 32, 26, 6, 11, -4, -32, -40, -10, -29, 31, 42, 30, -17, -18, 9, -35, 6, 20, 33, -3, 22, -24, 16, -37, 26, 45, -35, -37, 36, 8, -50, 4, 6, -11, -58, 4, 6, 31, 0, -27, -34, -9, -11, -8, 46, 18, 44, -29, -15, 33, -25, 8, 3, 27, -18, 41, 21, 44, 20, -24, -15, 30, 28, 32, -38, -5, 32, 35, -31, -25, -8, 21, 39, -19, -41, -20, -3, -7, 18, 20, 34, 11, 2, 33, -21, 22, -40, -6, 23, -22, 21, 28, -25, -10, 20, -33, -22, -36, -43, -17, -20, -14, 39, -8, -28, -31, -32, 24, 15, 31, -59, -12, 13, 19, -14, -9, 14, 31, -23, -7, -6, 58, 47, 14, 43, -29, -27, -29, -6, -34, -1, 32, -7, -5, 10, -49, 29, -3, 41, 29, 2, 10, 23, 23, -5, 13, 19, -20, -44, 36, -32, -11, -15, 38, -39, 29, 3, -63, -38, -39, -50, 39, -16, 1, -24, 40, 28, -19, 28, 56, 3, 26, -4, 31, -25, 0, 20, 18, -22, -25, -35, 22, -14, -13, -41, -13, -20, -6, -5, 38, -38, 9, -26, 42, -26, 25, -33, 33, -32, 24, 12, -33, 20, -36, -40, 14, 10, 46, 21, -63, 23, -16, -72, -35, 41, -23, -1, -61, 20, 13, -13, -26, -12, -6, 27, 7, 32, -7, 42, 27, 40, 26, -26, 8, 3, 37, 42, 17, 20, -5, 32, 30, -7, 20, 8, -49, -45, 23, -48, 25, -5, 38, 40, 32, -36, -27, 17, 7, -19, 45, -18, 7, 9, 45, 20, 44, -34, -22, -32, -1, 5, -16, -26, -14, 2, -38, 12, -26, -21, -51, 10, -8, -21, 16, -28, -41, 1, 47, 30, -6, 7, 7, 0, 29, -28, 44, 2, 10, 32, -27, -16, -42, 13, -4, 34, -8, -29, -53, 23, 51, 34, 3, 11, 65, -8, 14, 14, -21, -24, 27, 4, 12, 21, -26, 23, -10, -32, 31, 39, 39, -1, 44, -34, -34, -48, -50, 23, -15, -12, -24, -33, 23, -42, -32, 32, 46, 33, -16, -32, 7, 33, -36, -27, -40, -37, -36, 28, 6, -23, 11, 9, -42, -26, 21, -32, -18, 44, 6, -16, -20, -23, 23, -24, 35, -5, -31, 30, 35, 5, -18, -24, -39, -21, 11, 9, 37, -7, -36, 11, -16, -24, 29, -2, 35, -26, -14, 34, 4, 27, -36, 38, 9, 23, -12, -6, 26, 26, -11, 27, -16, 2, -13, -26, -36, 24, 2, 38, -41, 26, 21, 40, -3, -19, 41, 25, 45, 31, -11, 25, 12, -28, 15, 0, 29, 12, 7, 17, -4, 2, -16, -4, 21, 24, -18, -10, 28, -14, 2, 46, -39, 28, 8, 34, 8, 34, 4, 27, -42, -2, 21, -8, -52, -42, 2, -45, 26, -46, -9, -2, 28, -60, -13, 22, 67, 11, 17, 53, -38, 21, -24, -39, -10, -38, 44, -13, -31, 36, -44, 36, -12, 34, -35, -39, -26, 35, -6, 36, -35, 36, 12, -48, -45, -4, -6, -21, -15, -12, 43, 2, 21, 8, -39, 1, -14, -50, -30, -39, -42, 12, -19, 36, 32, 29, -17, 17, -26, -29, -6, -5, -34, 13, -3, 7, -7, -2, -26, -40, -11, -2, 32, 38, -13, -15, 28, 36, 21, 25, -13, -15, -43, -20, 17, 29, -20, 18, -25, 40, 0, -39, -70, -62, -19, 0, -16, -17, -28, -22, 5, 27, -13, 47, 16, -10, 22, 38, 37, 45, -12, 52, 37, -15, -6, 12, 17, -27, 33, 16, 28, 27, 29, 10, -43, -17, -11, -60, 23, -17, -17, -25, -52, -40, 37, 9, -30, 20, -47, -19, 18, -34, -40, -15, -25, 16, -18, -19, 35, -32, 32, 49, -32, -21, -34, 25, 3, -9, -28, -8, 38, 14, 21, -9, -8, 31, 43, 20, 6, 25, 25, 40, -14, -24, -14, 35, 26, 28, -6, 5, 43, 4, 28, -5, -36, 19, 14, 12, 4, 7, 21, 1, 20, -7, -35, -12, 4, 19, -3, -27, 10, 0, 15, 27, -19, -2, 5, -25, -40, 18, -21, -35, 30, 17, -11, -13, -13, -3, -34, -31, 24, 44, 37, 43, 4, -11, -11, -33, -24, 28, -32, 18, -40, 34, -19, 4, -4, -41, -7, 4, -24, -2, 2, 41, 22, 40, -16, -24, -22, -1, -28, 2, 7, -28, 0, 14, -16, 37, -38, -26, 20, 33, 43, 52, 29, -10, 17, 0, 24, -9, -28, -20, 32, -39, -18, -44, 34, 37, 4, 10, 30, 25, 18, -26, -37, 33, 45, 27, -34, -11, 2, -16, -48, 42, 64, -26, 5, 48, -40, -26, 21, 29, -14, 10, -27, 18, 44, 1, -1, -18, 3, 49, 13, 3, 29, 22, 10, -35, -32, 20, 34, 21, 9, 7, 5, -25, 5, 37, -19, 50, 2, 28, -1, -11, -21, 21, 23, 35, -22, -6, 1, 12, -7, 0, 35, 41, -3, 4, 6, -40, -30, 27, 18, 31, 30, 4, 37, 29, -11, 41, -19, 4, -2, 35, 33, -31, 33, -40, 40, -6, -28, 9, -17, 26, -32, 39, -6, 16, -47, -37, 6, -47, -65, -45, 15, -73, -15, -69, -45, -7, 8, 5, 20, -8, -3, 32, 54, 2, -9, 41, 4, -16, -4, 54, -7, 39, 42, 48, 6, 38, 31, 10, 5, 14, 0, -11, -4, 35, 24, 15, 0, -1, -14, 32, 25, 50, -8, -8, -47, -5, 24, 24, -8, -15, 36, 8, 10, 15, 1, -18, -17, 34, -3, 14, -27, 3, 15, -11, -3, -17, -4, 30, 0, 26, 9, 18, 39, -34, 18, 20, -54, -6, 21, -66, -55, -41, 0, 33, 1, 19, -21, 43, 8, 19, 36, 43, 46, 42, 34, 47, -22, -32, -26, -27, -6, 20, 43, 24, 14, 28, -12, -42, 23, -7, 3, -47, 24, -10, -18, 35, -23, 36, -15, -7, 22, 4, 0, 24, 34, -21, 37, -2, -20, -3, -29, -28, -26, 16, 31, -39, 21, 48, -43, -31, -43, -33, -18, 17, 26, 40, -30, -36, 42, 27, 42, -20, -24, 55, -43, -10, 17, 38, -13, 33, 41, 18, 13, 13, -13, -25, -14, 43, 6, 27, 13, -21, 14, 9, -8, -12, -25, -11, 31, 15, -45, 3, -17, -31, -9, -1, 8, -45, 11, 39, -38, 8, -65, -53, 60, -5, -55, 12, 38, 9, 28, 23, 59, -18, -2, 31, 55, -29, -36, 10, 21, 7, 9, 57, 43, 39, 15, 24, -22, 44, -42, -11, 39, -23, 32, -3, -23, 34, -26, -9, 21, -21, 14, 45, -20, -33, -24, -22, -13, -2, -44, 23, 8, -40, -21, -5, 57, 30, 0, -25, -35, -17, -6, 41, 22, -52, -17, -17, 4, -40, 36, 44, 49, -9, 54, 32, -51, 14, -60, -45, -38, -42, -45, -53, -18, 14, -41, 48, -5, 21, 25, 49, -5, -38, -39, -5, 47, 4, -22, 15, -9, -13, 26, 45, 13, 13, 16, -19, -32, 7, 38, 19, -36, 31, 23, 6, 15, -21, -39, 9, 19, 2, -8, -34}, + {-17, -63, -61, -9, 13, -35, 7, -8, 51, 47, 63, -26, 6, -3, 51, 25, -8, 62, 44, -19, 55, 8, 9, 1, -26, -18, 19, 33, -16, -15, 35, 9, 44, 47, 60, 19, 20, 12, 58, 6, 47, 11, 41, -35, -34, -35, -24, 30, -11, -21, -44, -12, 36, -34, 42, 6, 40, -29, -41, -10, -21, -35, 17, -26, -40, 5, 2, -11, -21, -25, -6, -26, -31, 2, -47, 2, 13, -10, -25, 32, -31, 44, -4, -11, -29, -41, 3, 29, -7, -5, -25, -19, -35, 27, -9, 16, -38, -35, 12, -56, -2, -31, 3, 25, -13, 20, -5, 14, -12, -9, 14, 8, -26, -41, 35, -39, 28, 31, 23, 33, 7, -41, -31, 9, 18, 23, -9, -24, -23, -13, -6, -22, -32, 35, -4, -24, 41, 10, 30, -29, 33, 9, 6, 6, 39, 35, -32, 44, 22, -2, -27, 48, 22, 29, 15, 31, 31, 28, -39, 14, -42, -44, -32, -4, -42, -15, -22, -64, 18, 35, -18, 4, 46, 67, 18, 5, -3, 18, 67, 43, -28, 40, 18, 8, -11, 7, -3, -20, -25, -4, 35, -2, 28, -18, -18, -16, 41, -13, 73, -2, -9, 55, 25, 17, -28, -39, -55, 1, -42, -32, -5, -27, 34, -24, -8, 27, 44, -8, 37, -32, -16, -3, -26, 7, 13, -13, -19, 40, 11, -3, 44, 1, 14, 28, 18, 34, 2, -50, 9, -30, -9, -33, -42, -66, 22, -13, -71, -68, 21, 14, 24, -22, -20, 20, 31, 10, -17, 1, -44, -64, 14, -40, -33, 9, 12, -20, -35, -38, 7, 18, 25, 13, -32, -79, -47, -9, -36, 2, -16, 11, 51, 41, 57, -20, 15, 76, 50, 21, 6, 69, 59, 8, -33, 7, 29, 10, -45, -3, 3, 6, 1, -17, 22, -1, 30, -21, -44, 20, -45, -8, 30, -16, -6, -27, 47, 23, 7, -21, 52, 55, -9, -19, -67, -42, -24, -63, -15, 2, 45, -7, -2, -17, 66, 35, 34, 11, -29, 47, -17, 21, 39, 31, 51, -5, 25, -11, -19, 13, 4, 6, -44, 14, -49, -67, -62, -30, 9, -58, -58, -64, 40, 16, 9, 34, 17, 50, 50, -6, 12, 0, 36, -18, 8, -24, 1, -6, 21, 5, -17, -31, -3, -7, -33, 15, -41, -25, -8, -29, 37, 18, 7, -8, 4, -24, 14, 29, -16, 16, -28, 27, 8, 19, 18, 24, -22, 44, -21, -11, 13, 34, -27, 25, -12, 19, 16, -41, -15, -17, 32, -18, 15, 39, -21, 13, 18, -30, -19, -37, 27, 26, 33, -7, 22, 2, -9, 41, 25, 9, -25, 43, 2, -15, 44, -20, 12, -19, 40, -23, 30, 11, -35, 31, -11, 17, -35, 8, 28, 32, -30, 16, 15, 22, -20, 9, -32, 29, 3, 39, -15, 28, 29, 12, 28, 31, -24, -38, 23, 7, 23, -10, 31, 20, -2, -46, -3, -36, -18, 13, 13, -7, -37, -26, -6, 2, 66, 39, -21, 10, 44, 41, 38, -35, 39, -9, -22, -16, 2, -27, -23, -20, -7, 24, -25, -6, -33, 16, -21, 12, 3, -51, -10, 46, 63, 38, 0, 67, 43, 71, -9, 4, 27, 11, -36, -20, -1, 17, 16, 19, 26, 44, 24, 21, 11, 9, -25, -16, -31, 6, 12, 32, -19, 29, 13, -3, 40, 25, -1, 25, 27, -10, -54, -54, -88, -85, -32, -25, -53, -8, -11, 3, 45, 12, 10, -1, 18, 41, 25, -35, -39, -32, -40, -60, -43, -25, 15, 44, 40, 32, -12, 40, 57, 42, -58, -23, -62, -14, -9, -46, 4, -57, 23, 21, 40, 37, -18, 56, 71, 65, 16, 8, -55, -3, -7, 22, -43, 33, 13, 17, 6, 7, -36, 36, 39, -18, -13, -27, -10, -28, -5, -4, -15, -13, 21, 49, -4, -18, 24, -12, 54, 17, 34, -18, -57, -13, -24, -39, 38, 8, -36, -3, -21, 27, 25, 34, -16, -25, -18, 1, -27, -32, 29, 19, -44, 34, 28, 28, 24, -36, 9, -18, 33, -26, 40, 51, 46, -14, 36, 1, 53, -15, -44, -29, 3, -29, -7, -37, -19, 10, 30, 7, -11, 13, -7, 33, -39, 30, -33, -22, 30, 30, 41, -14, -33, 37, -37, 24, -46, 3, -37, -7, 20, 24, -14, 34, -6, 3, -10, 25, 0, -32, 2, 58, 9, 18, -22, 18, 3, 53, 0, -17, 0, 20, -32, 27, -16, -7, 28, 18, -40, 2, -43, -30, -31, -17, 3, 22, 23, 25, 31, 7, -36, 16, -68, -20, -5, -31, 36, -15, -43, 10, 25, 33, 18, 19, 8, 32, 56, 59, -9, 10, 38, 45, -15, -15, 23, -61, 28, 28, -37, -23, 12, -12, 38, -34, -22, 29, 30, 15, -33, -7, 20, 1, -3, 29, -26, 19, -35, -34, 14, -17, -20, -51, -50, -7, 43, -10, -16, 13, 10, 38, 49, 49, 5, 3, 67, 15, 9, 49, 14, -32, 11, -5, -10, 54, -30, 36, -20, 39, 23, 51, 41, 24, 25, 12, 28, -47, 38, 43, 63, 23, 34, 53, 53, 18, 47, 0, -14, -55, -6, -13, 3, -27, -14, -7, -8, -34, 1, 50, 42, 27, -14, -41, 31, -16, 41, 4, 14, -3, -33, -13, -17, 22, 16, -40, -8, 1, -3, 9, -8, 45, 40, 18, -42, -17, 25, -38, -23, 7, -33, 32, -28, 12, -29, 41, -10, -30, -20, 2, -21, 8, -23, 79, 46, 66, -30, 65, 34, 36, 19, -18, -27, -46, -16, 41, 50, 27, -26, 48, 40, 23, 13, 13, 29, -15, 7, 29, -38, 38, -9, -17, -43, -42, -57, 11, 14, -1, -9, -15, 57, 3, 59, -3, 16, 58, 18, -17, -3, -44, 36, -20, -12, 35, 4, 46, -29, 28, -3, -7, -32, 20, 11, 13, 20, 39, 7, 26, 26, -44, -23, -26, 22, -12, 29, 3, -17, -16, -21, 22, 13, -2, -34, -7, -39, -35, 9, 23, -25, -44, 21, 5, 4, -15, 1, -4, -6, -53, -2, -44, -35, 9, 42, -20, 39, 42, 20, 62, 35, 56, -1, -30, -33, -9, 32, 9, -1, 12, -43, -18, 37, -29, 19, 17, 28, -11, 29, 48, 38, -2, 4, -37, -16, -20, 37, -21, 30, 17, 32, 39, 20, -46, 0, 1, 13, -9, -5, -36, -58, -26, -16, 38, -1, -23, -5, 15, -7, 25, -37, -56, -65, 18, -56, -20, 20, -20, 23, 24, 37, 3, 57, 26, 10, 31, 36, 8, -51, 28, -47, 6, -23, -26, -22, 20, 11, -35, 45, 32, 56, -17, 18, 26, -16, 36, 32, -24, 37, -28, -19, -52, -24, 13, 25, -28, 14, -11, 7, 31, 25, -4, 1, 35, 20, -51, 24, -31, 14, 21, 4, 51, -28, 20, -12, 20, 21, 35, 45, 22, 16, 2, -9, 22, 28, -4, -39, 10, -37, -34, -42, 6, -25, 17, 39, -32, 7, 19, -21, 35, 22, 15, 14, 38, 23, -9, 33, -27, -6, 15, 0, -11, -9, 37, 5, 38, 18, 28, -6, -29, 33, -28, 36, -14, 11, -30, 9, -18, 23, -37, -7, 43, 42, -2, -5, 15, 3, -24, -10, 40, 18, 33, -45, -13, -27, -30, 6, 44, -38, -43, -28, 4, 33, -23, 7, 20, -14, 31, 17, 13, 59, 7, 7, 44, 6, -28, -26, -47, -62, 27, 4, 15, -1, -35, 25, 12, -22, -11, 25, 1, -24, -18, 29, -2, 54, 24, -48, -27, -39, 40, 33, 32, -15, 26, -16, 13, -37, -9, 28, -6, -22, -36, -3, -40, 14, -14, -29, -30, -37, 14, 59, 23, 48, 34, -27, -11, 46, 49, 34, -32, 5, -24, -41, -7, 22, 41, -15, 49, 16, 4, 30, -22, 3, 21, 15, -43, -12, 29, 0, -19, 39, 44, -20, 29, 35, -33, 11, 10, -39, 11, 3, 8, -67, -63, 10, -53, -45, -41, 15, 7, -24, -8, 11, 48, 36, 50, 38, -14, -31, -26, -7, 25, -15, -25, -44, -5, 44, 17, 0, 1, -17, 5, 8, 28, -4, 17, -35, -35, 47, -16, 4, -25, -12, 36, 2, -1, 0, 10, -27, -36, 21, -18, 31, 32, -38, 36, -33, 44, -30, 29, 33, 12, 0, 37, -54, -51, -49, -25, 9, 33, 10, -15, 2, -33, 27, 14, -26, 41, 18, -8, -1, 27, 28, -13, -33, 30, 3, -3, 34, 29, -25, -38, 11, -15, 11, -40, 40, 57, -2, 59, -2, 4, 38, 35, 2, -7, -10, 27, 2, -5, -4, -50, -38, 15, -3, 25, -5, -19, -22, -44, -29, -13, -15, 26, 24, -7, 19, 39, 19, -3, -70, 11, -50, -21, 20, -25, 18, -24, 56, 41, -26, 78, 39, 20, -32, -31, -35, -38, -19, -15, -10, 35, -33, 23, -15, 17, -3, -17, -17, -31, -8, 7, 26, 8, 15, -28, 33, 36, -18, -24, -36, 15, -9, -1, 32, -4, -14, 12, -8, 3, -10, 8, -2, 18, -17, 59, 27, 36, 8, 39, 66, -6, -37, -58, -49, -50, -59, -66, -41, -29, -9, -22, 16, -13, 13, 13, 42, 84, -9, -18, 20, -26, -4, 47, 38, -39, -15, 30, -36, -11, 37, 46, 19, -17, 29, -19, 15, 25, -1, 36, 43, -28, -3, 36, 30, 39, -28, -7, -3, 19, -23, -39, -21, 35, -31, -19, -8, -32, 2, 34, 31, -27, -4, 15, -5, -5, 13, 33, 48, -21, -40, -24, 23, -32, 24, 27, 39, 14, 34, 26, -52, -15, -69, -68, -76, -23, -18, -72, -17, -62, -2, 26, 55, 23, 73, 15, 64, 56, -52, -42, -4, -66, 18, -9, -44, 8, 26, 10, 9, -11, 62, 38, 81, 78, -74, -53, -30, -15, -66, -54, -71, -16, 0, 17, 25, 23, 17, 12, 44, 13, -44, -54, 2, -51, -69, -50, -44, -58, -28, 18, 15, -38, 13, 79, 15, 51, -9, -43, -47, -51, -26, -58, 10, -13, 18, -16, 8, -17, 7, 85, 22, 56, -61, -22, -66, -41, 0, 4, -19, 14, -16, 51, 22, -7, 60, 19, 80, 31, -16, -59, -3, 14, 16, -26, 16, 26, -29, 34, 26, -5, -4, 29, 28, 66, 21, 28, -31, 36, -28, 24, -10, 24, 10, 41, 8, -27, -21, -28, 26, -13, -15, 54, -5, -37, 33, 44, 26, -42, 21, -16, -38, 23, -29, 3, 24, 9, -14, 84, 66, 69, -28, 83, 84, 47, 8, -8, 3, 8, -21, 10, 12, -29, -33, 19, 9, 19, -4, -39, -3, 41, 5, -14, -28, -21, -18, -18, 10, -9, -11, -52, -40, -25, -56, -20, 18, -16, 28, -16, 1, -38, 43, 3, 38, 53, 21, -23, 37, -12, 43, -37, 44, -41, 32, 33, 2, 38, -25, 40, 11, 30, -40, 40, 1, 24, 44, -33, -11, -22, 22, 16, 1, 23, 2, 42, -9, 34, 1, 8, -1, 40, 6, -34, 24, -29, -22, -3, 27, 7, -38, -10, 16, -24, -12, -3, -17, -56, -52, 15, -43, -27, 37, 36, 44, -20, 48, 31, 28, 19, 1, 26, 33, 51, -13, 57, 48, -31, 39, -9, -11, -41, 29, -34, -21, 29, 8, 37, -13, 49, 57, 11, 88, 6, -4, -3, 5, 8, 17, -52, -11, 10, -30, -49, -3, -18, 2, 1, -49, -55, -2, 23, 27, -37, 27, 7, 53, -4, 25, 53, -11, 16, 12, 53, 0, 37, -32, -33, 40, 31, 25, 20, -56, -23, 7, -56, -45, -42, -45, -39, 13, -38, -15, 61, 53, -5, -29, 63, -9, -29, -10, -16, -38, 40, -36, -4, -17, 18, -42, -26, -42, -10, 30, -11, 29, -17, 42, 26, -26, -51, -45, -60, -1, -32, -38, -16, 10, 27, 30, -8, 45, 21, 39, -16, 34, 39, -24, -7, 37, 8, -33, 6, 6, -28, 29, -35, -15, -1, 6, -2, 26, 46, 34, -12, 14, 35, 14, -4, -48, -3, -22, 38, 2, -49, 29, -33, -14, 35, -33, -24, -26, 2, -31, 21, -22, -24, -32, 0, 5, -34, -27, -4, -2, 8, -60, -33, 11, -21, 15, 20, 57, 9, 68, 84, 65, 64, -14, -54, -44, 15, -35, -44, 4, -27, 3, -34, 13, 10, 14, -15, 36, 36, 21, 10, -33, 20, -44, -45, -5, -28, 8, 43, 52, -23, 20, -19, 39, 7, -9, 17, -57, 28, 16, -65, -65, -54, 11, -44, -29, 8, 46, 51, 12, 25, 34, 15, 32, -14, -15, 46, 35, -21, 11, 28, -20, 43, 43, -1, 9, -22, -40, -6, -28, 3, 43, 15, -18, -2, 3, -14, -43, 41, -5, 21, -29, 5, 2, 12, 32, -47, 39, -51, -10, 23, 45, -11, 44, 43, -16, -21, 42, -13, 6, -26, -39, -30, -18, -22, -14, 2, 20, 44, 31, -23, -10, -22, -37, -27, 33, -16, -41, 12, -29, 7, -25, 27, -37, -3, -23, 34, 33, -22, 36, 11, -45, 4, 1, -29, -39, -27, -48, -51, 29, 18, 36, 22, 43, 56, 72, 20, 15, 0, -7, 12, 25, -33, -17, -11, -14, -21, 43, -36, 38, -38, -36, 17, -12, 16, -12, -21, 33, 31, -26, -38, 20, -35, -28, 32, 44, -30, 9, -23, -20, 40, 38, 28, 0, 6, 7, 24, -38, 49, 21, 27, 28, 31, -37, -10, 42, 29, 24, 50, -14, -3, 5, 9, 1, 16, 13, -44, -30, -36, -51, -32, -39, 36, -34, 44, -8, -46, -30, -45, 10, 10, -4, -19, -8, 32, -23, 22, 39, 55, 54, -5, 7, 6, 29, -11, -23, 4, 41, 3, -27, 33, -4, -17, 28, 3, -9, -8, 14, 8, -45, -4, 35, 37, 50, -18, -1, 36, 6, -2, 24, 0, -11, -54, 5, -35, -31, 28, 8, -19, -31, -44, -29, 36, 56, 44, -46, 4, -51, 10, -41, -30, -40, -17, -28, 56, 25, -40, -20, 18, 54, -3, -16, 8, -15, 10, 21, -11, 33, -40, -35, 7, 27, -8, 31, 40, -28, 41, 18, -23, -35, -50, 5, 20, -29, 3, 16, 51, 28, -17, -13, 17, -8, 35, -34, 18, -26, 13, 38, -34, -10, -40, -29, -23, -37, -45, -22, 42, 20, -3, -32, 13, 4, -32, -7, 18, 49, -14, 29, -12, 34, 3, -45, 18, -15, 23, 21, 17, 0, -46, 21, 24, -19, -11, 6, 40, 23, -36, -15, 69, 68, 7, -40, -10, -6, -1, 32, 5, -43, 45, -39, -23, 26, -27, 14, 42, -43, 36, -37, -18, -22, -1, 0, -76, -63, -54, -40, -5, 23, 16, 13, 31, 14, 8, -16, 0, 0, 34, 39, 49, -20, -19, 33, 47, 39, -20, 15, -41, 30, -33, 13, -66, 10, -43, -66, -14, -33, -49, -3, 39, 53, -32, 13, -8, 33, 14, -28, -44, 12, -33, -34, -44, -43, -10, -28, 12, -42, -38, -2, 0, 27, -24, 39, 17, -41, 17, -30, 21, -35, -24, -45, -32, -19, 6, -18, -4, 51, -12, -18, 35, 5, -5, -11, -4, 23, 35, -6, 10, -41, 38, -26, 29, -49, -30, -1, -13, 4, 24, 11, -42, -12, -15, 28, 39, -28, -39, 40, -32, -9, 33, -11, -27, 10, -1, -38, -20, -66, 22, -15, -33, 16, 16, -2, 55, 50, 44, 29, -49, 20, 4, 18, 13, 14, 43, 43, 38, 31, 35, 28, -14, 14, 49, 18, -9, -9, 26, 10, 61, 72, 32, -3, -29, -35, -24, 4, 14, -13, -18, 21, 18, 38, 37, -7, 15, 40, 23, 34, -7, 14, -38, -32, -1, -34, 2, 17, -41, -4, -16, 13, -25, -21, -12, -37, 12, -5, -16, -4, -35, 20, 9, -19, -65, -56, -31, -30, -39, -9, -31, 3, 69, -3, 47, 6, 32, 33, 27, 29, 35, -6, -32, 38, 44, 30, -30, 13, -26, -24, 0, -31, -25, -23, 13, -32, -43, 37, 12, 39, 2, 26, -4, -34, -8, -31, -4, -33, 27, 29, -9, -12, 16, 44, -1, 38, 26, -44, 29, -23, 9, 23, -23, -27, -41, -31, 31, -32, -37, -24, -24, 3, -3, 27, -35, 8, -39, -5, 20, -8, -15, -26, -35, -31, 37, 32, -20, -10, -1, -40, -15, 42, -34, 29, -45, 33, 34, 41, 15, 41, 37, 41, 3, 35, -31, -42, -22, -29, -40, 3, -39, -1, -1, -1, -42, -20, 42, 19, -15, 8, -21, -3, 10, -14, 2, -24, 41, 30, 21, -16, -35, 9, -33, -20, 24, 12, -71, -31, -38, 16, 16, 35, -9, -37, 46, -18, 45, 17, 27, 13, 0, 12, -26, -4, 25, 6, -12, 26, -5, 23, -30, 32, -22, -39, -21, 27, 15, 41, -25, 33, 8, 42, 30, -24, -43, 2, 15, -34, -43, 43, 32, -27, 9, -38, -36, -7, 5, 12, 9, -29, 40, 28, 28, 39, -7, -66, -63, -58, -4, -54, -32, 13, -18, -30, 5, -7, 41, -10, 16, 29, 19, -41, -27, -22, -38, -18, -14, 0, -43, -1, 52, 59, -33, -21, 47, 18, 11, 17, -34, -28, -1, -22, -25, 24, -11, -19, 33, -12, 16, 56, 36, 17, -14, -15, -2, -25, -35, -7, 3, -24, 33, -5, -22, 24, 39, -42, 5, -26, -33, 21, 57, 12, -11, -14, 4, 31, 10, 33, 16, -25, -16, 20, 8, 33, 5, -16, -3, 6, 3, -19, 30, -44, 25, 13, 17, -29, 19, 6, -42, 30, -11, -27, -24, -45, 37, -29, -7, 22, 13, -20, 28, -26, 21, -13, -32, -2, 46, 44, 1, -11, 5, -32, 24, 20, -32, 0, -35, -6, -39, 8, 30, -15, 25, 19, 50, 16, -29, 12, 46, -12, -9, -1, 1, -37, 31, 23, 13, 30, 3, -20, 11, -23, -23, 36, 39, 39, -4, -40, -26, -20, 42, -4, -34, 2, -30, -28, -22, 17, 10, 10, 47, 56, 48, -23, -11, 14, -33, -21, -18, 22, -44, 25, 4, -18, 20, 1, -44, 14, -30, -34, 28, 14, -39, -10, -39, -16, -17, -84, -78, -66, -27, 1, -56, -43, -63, -25, 4, 28, 7, 30, 60, 26, 69, 24, 10, 16, -33, -4, -40, -24, 34, -41, 17, -1, 24, 44, 28, -22, -39, 31, 38, -8, -2, 22, 18, -31, 29, 34, 32, 3, 11, -1, -10, -3, 42, 22, 0, 27, -43, -8, -14, -43, -27, 22, 19, -27, 9, 38, 37, -21, -2, -23, 23, 22, -9, 27, -16, -44, -4, -6, 24, 33, -29, -11, -9, -13, -26, -34, -5, -23, -22, -25, -19, -16, -24, -32, -17, -33, -35, 39, 28, 77, 41, 39, 15, -12, 51, 34, -7, 56, -32, -11, 20, -10, -37, -28, 2, -35, -6, -2, -6, -32, 41, 34, -6, -18, -15, -1, -21, -6, 18, 2, 41, -19, 19, -17, -58, -7, 9, 9, -59, -43, -20, 45, -1, 48, -15, 34, 61, 23, 43, -43, -36, 38, -39, 14, -6, 34, -11, 8, -7, 7, -27, -6, -11, 5, -18, -6, -13, -1, 18, -8, -31, 37, -38, -27, -6, 30, 23, -14, 15, 2, 36, -51, -16, 0, 29, 34, -5, -30, -17, 33, 26, 56, -25, 30, -2, -11, -31, 45, -30, 38, -28, 30, -1, 20, 48, 43, -1, 3, 19, -34, 12, -25, -18, 40, 32, -41, -17, 42, 0, 12, 9, 17, -15, 35, -1, 26, -43, -36, -43, -12, -15, -24, 32, -45, -17, -36, -1, 37, 17, 27, 41, -6, 4, 33, 42, -35, -75, -5, -25, -25, -28, -9, -56, 11, -11, 14, -3, 0, -6, 42, 8, -27, -5, 38, 21, -18, 17, -12, -9, -17, 25, 26, -17, -41, 19, -6, -36, 15, -62, -17, 14, -3, 23, -58, 4, -22, 61, 41, -10, -4, 13, 51, 66, -16, 0, 7, -42, -7, -11, 16, 10, 34, -8, 46, -17, -20, -36, 13, 26, -36, -31, -48, -43, -19, -34, 10, -12, 44, 43, 39, 46, 5, 42, 66, -10, 22, -24, 29, -28, 7, -13, 46, -20, 8, 23, 0, 37, 11, 27, -2, -22, -30, -34, 8, 20, -25, 31, -10, 27, 33, 22, 11, -33, 14, 10, -40, -8, -23, -36, -21, -42, 4, 18, -47, 12, -1, 63, 6, 50, 9, 44, 44, 61, 42, 9, -15, 15, -27, 45, -20, 19, -27, 29, 7, 9, 38, -36, -17, -38, -20, -14, 52, -1, -13, -3, 49, 37, 17, -39, 22, -20, 42, 15, 24, 25, -32, 39, 17, 40, -14, -12, -8, 35, 3, 19, -16, 0, -20, -3, 35, 5, 28, 57, 31, 6, 38, -17, 19, 38, -24, -45, 3, -47, 37, -38, -6, -24, -18, -51, -27, -54, 20, -13, -25, -48, 23, 49, -2, 40, 68, 56, 13, 78, 4, -24, 21, -33, 39, 3, -43, -7, 33, -13, 33, 31, -11, -4, 23, -16, -10, -15, 52, 32, -15, -22, -19, 34, -12, 25, 31, -49, -45, -22, 19, 9, -11, -36, -54, -10, -67, -23, -33, -32, 28, -23, 28, 50, 42, 40, -12, 7, -44, 4, -41, 20, 15, -4, -15, 4, -15, -9, 3, 26, 18, 23, -32, -35, -7, -19, 44, 17, -11, 16, -1, -42, -21, 26, -40, 16, 32, 39, 38, -17, -72, -16, -32, -17, -32, -48, -6, -28, -4, -1, 11, -7, 54, 13, 64, 5, -14, -2, 72, 5, 29, 56, 50, 61, -36, -37, 13, 38, 36, -9, -31, 22, -19, -7, 31, 6, -28, 39, -31, 16, 45, 11, -7, -16, 41, 36, -6, 56, -54, 19, -58, -16, 0, -13, 13, 29, 1, -29, -5, -6, 40, -10, 43, 40, -24, -42, 6, 24, -53, -42, -25, 13, -34, 8, 34, 14, -14, -26, 65, 10, 41, -32, 11, -13, 14, 32, -33, -30, 17, -30, 27, 5, 16, 5, 38, -7, 6, 13, -25, 35, 6, 28, 38, 1, -2, -13, -6, 34, 27, -27, 37, -35, 13, -11, 25, 27, -28, -21, 11, 13, -39, 2, -7, 33, 3, -38, 27, 10, -32, -18, 3, 12, 27, 38, -3, 25, -21, -17, -40, 16, 19, -35, -14, -8, 24, -32, -14, -29, 16, -8, 6, 8, 16, -3, -34, -3, -22, -19, 22, -36, 27, -27, 30, 38, -4, 2, -53, -44, -13, -24, 5, 1, -19, -11, 14, 43, -25, 4, 14, -2, 19, -25, -3, 20, 10, -33, -45, -37, 19, 11, -46, -15, -17, -41, 10, -42, 8, -54, -60, -31, 25, 32, 52, 27, 29, 61, 79, 64, -67, -20, -68, -34, -40, 14, -63, -36, 25, -8, 13, -12, 46, 29, 68, 23, -23, 4, -28, -25, -31, 9, 30, 21, -29, 38, 31, 35, -27, 13, 39, -19, 25, 32, -42, -6, 17, -12, -21, 4, -25, 30, 19, 42, 33, -42, -1, -7, 36, -29, -6, 23, 36, 36, -2, -34, 21, 41, -40, 33, 37, 7, -40, 32, -40, -16, 11, -45, 44, -27, 1, 25, -9, 38, 6, 6, 36, 29, 35, 15, -26, 42, 45, -33, -14, -1, 39, -41, -31, -53, 14, -27, -43, -7, -27, 4, 45, -7, 54, -9, 43, 59, 36, 36, -36, 16, 18, 13, -37, -4, 2, -3, -4, -34, -29, -15, 23, 13, -18, -45, 50, 46, 46, 13, -18, 17, 61, 19, 2, 14, -28, 24, -23, 11, -23, 13, -34, -11, 8, -9, 20, 16, 25, -7, -39, 5, -14, -55, 36, 7, 71, -31, -1, 27, 6, -3, -37, 6, 19, -41, -12, -36, -11, -78, -24, -37, 8, -20, -28, 49, -11, -36, 35, 37, 13, 29, 4, 15, -6, 9, -23, 40, -18, 39, -20, 0, 47, -36, 33, -42, 24, 6, -16, -28, -26, 1, -47, -14, -44, 1, 20, 51, -2, 44, 14, -3, 6, 30, 30, 23, -11, -45, -42, -17, -51, -34, 13, 14, -32, -13, 34, 25, -3, 17, -20, -11, -42, -24, -4, -17, 15, -27, -7, -20, -18, -17, 45, -5, 57, -12, -6, -23, 21, 16, -22, 29, -14, 8, -41, 32, 21, -3, 41, -20, -1, 20, 28, -8, 18, 14, -21, 55, 45, 30, -36, -28, -26, -22, 21, -28, -59, 26, -26, -29, -34, -47, 36, -51, -8, -22, -22, 47, 44, 47, -31, 37, 68, 33, 23, -12, -15, 25, -30, 35, 35, -41, -44, 10, 20, 1, -36, 26, -11, -28, -23, 11, 6, 33, -23, -50, -34, -27, 16, 8, -2, -35, -11, -9, 14, -23, -43, 5, 24, 12, -49, -19, -73, -54, -4, 39, 27, 5, 2, -1, 11, 63, -26, 33, -34, -24, 12, -4, 24, 20, -13, 24, -23, -26, 17, 50, 16, -25, 15, 5, 2, -2, -21, -15, -47, -4, 26, 14, 6, 28, 9, 45, 10, 61, 13, -26, 33, -10, -34, 16, 10, 44, -1, -13, 20, -4, 20, 7, -15, 5, -7, 28, -9, -30, -19, 36, 24, -15, 16, -20, 15, -27, 2, -20, -32, -39}, + {-58, -18, -32, -6, -11, -39, 8, 37, 56, 25, 23, -13, 38, -6, 50, 55, 68, 68, -18, 45, 52, -2, 21, 22, 18, -18, -31, -26, -25, 49, -22, -12, 12, 2, 85, 39, 70, 30, 39, 43, 4, 10, 63, 27, -28, 21, 12, 32, 10, -25, 27, -22, 18, 26, -27, -35, 15, 30, -34, 7, -1, 23, 35, -41, -20, 32, 38, -8, 28, -19, 4, -17, 15, 15, -9, -22, -17, -5, -26, -8, -34, -2, 31, 1, -20, -8, -31, -21, 19, 21, -35, -12, -39, 40, 24, 25, 19, -6, -18, -5, -24, -50, 22, -44, 39, 2, -43, -8, 35, 16, 2, 24, 40, 3, -14, -30, -33, -19, -23, -33, -7, -32, 23, -17, -40, 21, -42, -22, -6, -31, -31, 32, -6, 21, 30, -26, -14, -12, 4, -19, 19, -11, 0, 33, 41, -3, 10, 11, 11, -3, 20, -23, -5, 31, 3, 18, 41, 33, -13, 42, -33, -76, -75, -60, -58, -74, -79, -11, -3, 10, -33, -28, 56, -13, 26, 39, -6, 2, 58, -18, 55, 60, 25, 30, 27, 16, -15, -1, 41, 44, -22, 24, -10, 41, -23, 67, 29, 52, -18, 14, 22, 53, 46, -26, -1, -13, 19, -27, -41, -48, -16, 28, 0, 36, -12, -15, -43, 12, 17, 29, 38, 16, 24, -42, 38, -4, 39, 60, 19, 39, -6, 4, 41, 31, 56, 27, 0, -6, -13, -3, 3, -57, -63, -35, 27, -40, -77, 11, -4, -47, -29, 34, -15, -15, -31, 6, -65, -86, -34, -69, -80, -18, -62, -73, -9, -15, -4, -64, -46, -27, -43, -49, 16, -44, -43, -5, -42, -37, -9, -3, 44, 12, -18, -24, -11, 43, -7, -33, 1, 12, 20, 68, 19, 42, 7, 19, 47, -4, 3, 47, -25, 1, 30, 3, -19, 20, -15, -40, -21, -13, -45, -2, -15, 19, 19, 11, 9, 50, 6, -8, -42, -79, -22, -21, -11, -70, -77, -19, 2, -27, -3, -13, -6, -7, -36, 42, 30, 14, 4, -15, -35, 3, -38, -20, 16, -17, -36, -41, 28, -3, 36, -5, -17, -32, -69, -31, 6, 18, -16, -41, -2, -51, -5, -36, 2, 37, -20, 47, -8, 28, -18, 3, 21, -25, -33, 14, -14, 43, 29, -40, 40, 6, 35, -2, 34, 14, 29, -15, 32, 21, -34, -1, 13, 6, -4, -26, -29, -9, 24, 12, 27, 9, -25, 6, -22, 25, 10, 16, 5, 35, 21, 48, 19, 46, 27, 24, 23, -30, 24, 57, 16, -26, 53, 57, 27, 28, 26, 46, 14, -4, -37, -16, -21, -7, -28, 38, 27, -11, 36, -17, -21, -22, -44, 0, 39, -33, 30, 24, -26, 42, -4, 26, 9, 6, 5, 27, -14, -43, -3, -36, 32, -7, 3, 8, -4, 51, 73, 34, 23, 10, 24, 37, -25, -24, 26, 10, -21, -14, 25, -13, -32, -38, -43, -64, -51, 8, -10, -16, -20, -37, -12, 5, 24, 19, -18, 11, 25, 51, -37, -33, -7, 8, 35, 13, -23, 46, 23, 14, 47, 41, 51, 7, -3, -54, -66, -6, -1, -14, -9, 16, 16, 17, -24, 22, 16, -17, 45, -2, 24, -13, -8, -23, -8, -72, -63, -16, 12, -42, -20, -18, -21, -9, 21, -15, -10, 26, 46, 52, 25, -38, -35, 43, -22, -33, 42, 17, -1, -7, -23, -30, -22, -49, -72, -82, 16, -42, -91, -11, -41, 6, -38, -55, 6, -14, -58, -49, -21, 21, -12, 24, -49, 28, -17, -38, -32, 22, -48, -26, -28, 33, 24, -31, -9, -4, -18, -7, 17, -64, 16, 23, -12, -15, -44, -19, 44, 6, 31, 0, -50, 31, -17, 25, -53, -70, -60, 30, 5, -4, -55, 3, 26, -31, 25, 38, -22, 36, 3, 4, 37, 4, 34, 2, 37, 23, -30, -28, -20, 30, 32, -9, -18, 5, -27, -4, -7, 33, -18, -10, 46, 21, -34, 51, 24, 15, 56, 18, 10, -24, -40, 24, 32, 23, -7, -10, -26, -35, -24, 36, 37, 39, -32, 44, -17, 16, 19, -22, 19, 26, -3, -23, -27, -30, 13, 42, 12, -13, 2, 49, 26, -48, 26, -13, 14, 43, -20, 23, -9, -22, -6, -10, -22, -34, -35, 10, 28, 11, 0, 37, -25, -33, 30, -43, -9, -3, -21, 11, -10, 41, 3, -3, -24, 28, -4, 43, 23, -13, 35, 49, 55, 44, 54, 47, 45, 32, 42, -25, -10, -37, 36, 32, 31, -29, -11, 30, -35, 17, -5, 16, 21, 25, -19, -43, -6, -30, -47, -58, -59, -62, -67, -57, 45, 31, -36, -1, -33, -22, -30, 42, -37, -9, -49, -9, -59, -79, -4, 8, -62, -23, -64, -10, -22, 41, 31, 24, 26, -26, 13, 36, 24, -26, -29, -21, 12, 22, -16, 9, 7, 42, -21, -6, -26, -11, -37, -50, 52, -42, -33, -43, 48, -31, 28, 24, -30, 38, 1, -21, -41, -56, -48, -7, -35, -35, -34, 10, -21, 12, -65, -38, -11, -40, 3, -21, 6, 38, -2, -3, 22, 56, 66, 26, 9, 46, 40, 34, -21, 48, -8, 33, 27, -4, 28, 33, 22, -37, 4, -37, 22, -3, 25, -38, 21, -2, 44, 1, 11, -44, 14, -37, -2, -14, -22, 45, -16, 39, -19, -16, -27, 28, -22, 9, 30, 18, -23, 12, -39, 35, -24, 33, 26, -4, -38, 30, -29, 17, 35, -10, -44, -2, -4, 26, 38, 3, 33, 27, 34, 74, 18, 33, -9, 37, 4, 22, 59, 24, -10, 56, 41, 22, 52, 38, -6, -15, 6, 30, 45, 10, 16, 18, -12, -2, 3, 5, -31, -32, -31, -2, 41, 16, 23, 33, 43, -39, -10, 45, -40, -22, 4, -47, -38, -9, 12, 9, 23, 5, -28, -13, -34, 18, -50, 28, -16, -22, 23, 34, 9, 0, -9, 6, -9, 12, 23, 35, 1, 15, -7, -29, 25, -10, -6, 43, 26, -17, 37, -6, -9, -23, 32, -43, -8, -32, -2, -39, -6, 1, -51, -35, -28, -21, -24, -27, -15, -27, 16, 41, -18, -28, -34, -2, 18, -6, 15, -5, -31, -32, -23, 11, -14, 6, 42, 23, 30, 35, 29, -14, -12, -6, -16, 31, 16, 21, 28, -21, -17, 22, -31, 45, 6, 26, 0, 51, 14, -55, 16, -6, 33, -5, 14, 24, 27, 28, -43, -9, 21, -24, 35, 50, -28, -39, -28, -16, 4, -71, -63, 2, -23, -14, -39, -48, 30, -21, -1, -13, -15, 20, -52, -38, -34, -8, -51, -34, -30, 8, 0, -33, 47, -15, -18, -5, 23, -25, -20, 46, 20, 22, 46, 20, 37, 31, -42, -5, 34, -17, -24, -37, -3, 1, -24, -27, -39, -28, -26, -20, 16, -6, 11, -31, 14, 31, -2, 6, 36, 51, 67, 6, -15, 55, 43, 51, -19, 50, 33, 62, 14, -1, 48, 46, 27, 31, 19, 9, -21, 14, -38, 13, -42, 4, 16, -2, -23, 12, -6, -42, -39, -22, 34, -23, 42, -4, 31, -6, 13, 19, 8, 23, -8, -40, -7, -36, -15, 22, -24, 28, 29, -33, 23, -37, -7, 31, -23, -5, -9, -24, 34, -18, -12, -21, 37, -43, -13, -2, -3, -25, -39, 35, -31, -37, 39, 8, 22, -25, -5, -24, 62, -7, 45, 13, 67, 54, -23, 28, -12, -19, -19, 34, -10, 35, 40, -2, -25, -33, -40, -50, -25, -39, -32, -12, -24, -24, 21, -5, 33, 13, 31, -28, 8, 11, -34, -30, -44, -22, -3, 32, -33, 24, -23, -31, -1, 5, 33, -2, 21, 16, 25, -51, -21, 1, 30, -44, -5, 25, 51, -11, 27, -5, 31, -4, 48, 29, 53, 36, -20, 48, 22, 52, 35, 37, 22, 4, -6, -12, 6, -37, -2, 20, -39, 16, -8, 42, -33, -9, 41, 40, 6, -41, -23, 25, -6, 13, -58, -45, -51, -4, 8, 22, -30, -49, -39, -38, -24, 13, 27, 41, 21, -9, -4, 24, -34, -7, -28, -4, 36, -7, -13, 10, -1, -31, -24, 3, 13, 6, 3, 11, -10, 0, 19, 4, -24, 25, 46, 33, 8, -26, 18, 44, 4, -39, -26, 30, -40, -29, 45, -27, -33, 36, -3, -43, -30, 30, 22, -33, -41, -29, -53, 5, -15, 30, 0, -26, -37, -36, 13, 13, -3, -12, 43, 6, 39, 26, 14, 19, -38, -35, -11, 36, 20, 33, -19, -3, -5, 1, -15, 26, -15, 16, -2, -5, 0, 38, 36, -7, 46, 35, -18, 40, 29, 19, -25, -25, 32, 15, 20, -9, 28, 2, -19, 42, 35, 42, -37, 22, 6, -24, -26, -22, -39, -63, -20, 0, 13, -45, -75, 21, 33, -41, -29, -36, 45, -39, -2, -28, -13, -11, -28, -8, -43, -21, 9, -13, 40, -2, -45, -37, -16, -6, -12, 14, 19, 38, 43, 41, 32, -35, -4, 5, 4, 26, -14, 24, -26, 24, -12, 7, -28, -40, -61, -64, 26, -24, -44, -4, 8, -26, -18, -17, 33, -3, 39, 27, 24, -20, -45, -15, 4, -14, -75, -26, -31, -48, -48, -42, -1, 29, -22, 2, -15, -10, 12, 0, -17, 12, 48, 2, 40, 35, 32, 8, 26, -8, -31, 12, -5, -26, 5, 31, -28, -16, -28, -26, 35, -30, 18, 30, 5, 21, -34, -26, -11, -34, 37, 32, 44, 35, -36, -19, 44, 22, -39, -45, 16, -33, -37, 38, 45, 5, 7, 3, 26, -3, -22, 19, 45, 3, -1, 41, 12, 4, -7, 34, 0, -61, -41, -17, -50, -18, -73, 8, 8, -76, -19, 30, 7, -54, -48, -16, -8, -11, 1, -44, -34, -9, -31, 2, 40, -55, -58, 8, -1, 19, -17, 20, -33, -37, -35, -23, 16, -67, -76, -41, -1, -18, -56, -11, 43, 10, -45, -21, -47, -60, -55, -2, -63, -16, -26, -27, -24, -28, -53, -61, 50, -20, -44, 12, -69, -31, -41, 11, -39, -15, -10, -63, -21, -17, -42, -25, -24, 33, 25, -24, -28, -55, -58, -78, -22, -36, -28, -33, 25, -52, 22, 14, 6, -35, 27, 37, -6, 2, -82, -22, -28, -27, -50, -72, 32, -12, -26, 5, 24, -37, 30, -21, -34, 2, 24, 13, 47, -4, 33, -4, 45, -38, 2, -11, -22, 11, 50, 6, -37, 30, 18, -13, 27, -8, 44, -33, -18, 27, -44, 17, -18, -30, 39, 48, 43, 2, 38, 81, 8, 32, 84, 2, 56, -3, 45, 39, 16, 6, 48, 37, -5, -38, -26, 24, -9, 42, -38, 18, 37, -36, 20, -11, -43, 30, -11, 0, 23, -37, -35, -56, -23, -64, -31, 18, -33, 1, 8, -1, 30, -30, -34, -4, -21, 15, 37, 24, -1, 39, -26, -40, 42, 34, 7, -4, -22, -21, 35, -11, -29, -28, -38, 2, 12, -19, -44, 16, 18, 39, -10, 44, 24, 27, -36, -27, 27, -43, 8, 23, -43, 15, -25, -9, 14, 44, 21, 22, -37, -24, 12, 33, -31, -50, -16, -18, 24, -44, -22, -12, 39, -38, -34, -36, 28, 8, -22, -19, 31, 52, 28, 5, -9, 58, 55, 57, 50, 51, 35, -7, -17, 10, 2, 57, -14, 0, 37, 47, 55, 17, 85, 39, 31, 25, 61, 27, -9, 26, -24, 39, 9, 15, 16, -3, 9, -45, 5, -66, -25, 15, -31, -33, 46, -3, -17, -43, 39, -16, 57, 54, 7, 62, 48, -23, 21, 45, 37, -20, -29, -27, 1, 15, -6, -25, -43, -54, -28, -48, 23, -18, -9, 1, 15, 6, 51, 15, 35, -5, 30, 19, 26, -19, -31, 19, -19, -34, 25, 17, 2, -14, 26, 5, 17, 42, -20, 31, 28, -45, -6, 0, -59, 24, -34, -11, -37, -28, 32, -23, -4, -2, -21, -8, -42, 4, -40, 6, 30, -32, 16, 33, 23, 39, 10, -2, -22, -25, -88, -66, -21, -60, -67, -90, -80, 11, 2, -86, -6, -77, -40, -9, -3, -41, 7, -18, 15, 11, -3, 47, 42, 41, 34, 8, -12, -4, -17, 26, -20, 34, -68, -50, -52, 0, -37, -17, -54, -53, 38, -9, -3, -8, -34, -23, 16, 41, -41, -24, -45, -46, -19, -6, 1, 3, 0, 15, -8, 17, 53, 42, -8, 15, 40, 22, -6, -33, -38, 20, -8, 8, 14, 6, 12, -32, 55, -18, -5, 37, -53, -6, -16, 6, 0, -47, -21, -18, 39, -52, -57, -14, 19, -43, 15, 31, -10, -19, -30, -17, 27, -22, 12, 40, -5, 16, 6, -7, -23, -32, -18, 52, -41, -2, 7, -37, 15, -5, 40, 38, -40, -23, 42, 41, -23, -15, -15, 6, -26, 40, -37, -35, -40, 26, -20, -37, 51, 4, 42, 11, -29, 5, 19, -24, -40, 30, -23, -7, -13, -30, 2, 24, 5, -32, 0, 30, 36, -10, -43, -29, -41, 29, -8, 35, 16, -12, 19, -48, 10, -13, 32, -36, -37, 9, -24, 11, -14, -29, -47, -54, -36, -30, -30, -52, 9, 9, 10, 16, 27, -32, 33, -23, 5, -15, -56, -38, 9, 10, -43, -36, 17, 2, -16, -43, 31, -47, 11, 3, -48, 20, -27, -19, -28, 3, -18, 2, -41, 20, -24, 21, 6, 2, 21, 26, 38, -9, 6, -20, 1, -6, 27, 62, 17, 38, 25, 29, 28, 12, 53, -22, 52, -28, -14, 15, -22, -32, 5, -26, -1, 16, 32, -20, 6, -33, -29, 30, -10, -32, -40, 18, -26, 8, -23, 25, -20, -23, 9, -4, -29, -43, 35, -3, 12, 7, 6, 55, -26, -1, 4, 9, 9, -24, -12, 22, -16, -12, 40, 40, -34, 34, -50, -12, -34, -6, -38, -15, -7, 8, -40, -14, 22, 19, 6, 36, 12, -27, 32, 27, 10, -3, -29, -39, 14, 1, -21, -37, -20, 4, -13, -23, -50, -8, -59, -55, 19, 8, -32, -28, 10, -21, 15, 52, -15, -38, 9, 54, 40, -26, 15, -27, -18, 36, 25, -13, -25, -14, -39, 36, 29, 31, 40, 15, 35, -39, -17, 17, 2, 31, 3, -6, -14, 45, 0, -15, 12, -23, -1, 41, -3, -13, -41, 40, -23, 24, -11, -7, 39, -1, 8, 5, 15, -22, 42, 26, -18, -9, 4, 51, 54, -26, 4, -34, 45, 15, -1, -7, -3, -11, -15, 14, -16, 23, -14, 2, 20, -38, -17, -38, -32, -48, -8, -38, -20, 14, -41, 45, -37, -14, -39, -23, 10, -15, -44, 17, -17, -42, -41, -9, 36, -20, -31, -34, -57, -63, -16, -54, 9, -23, -27, -25, -3, -77, -65, -44, -37, 36, -39, 31, -59, -76, 8, -9, 16, -33, -10, -17, -16, -56, -24, 6, -36, -2, 4, -36, -16, -37, -66, 1, -67, -15, -63, -5, 5, -36, 11, 10, -21, 23, 28, -30, 16, -21, -40, 14, -27, -20, -33, 11, 41, 37, -31, -11, -23, 38, 20, 3, -18, -26, -20, 39, -15, -28, -22, 45, 31, 25, -16, -33, 24, -32, -6, 10, -21, -43, 10, 36, -6, -11, -15, -34, 22, 16, 33, -31, 44, -21, 23, 23, 2, 29, -20, -41, -26, 30, 5, -23, 28, 11, 35, 37, -29, -35, -12, 27, 2, -7, 27, 23, 29, 24, -21, -10, -13, 16, -39, 22, -14, 8, -43, -15, 30, -14, 0, -18, -17, -23, -52, -2, 5, -7, -14, -26, 30, -14, 7, 35, -11, -2, 32, 35, 9, 27, 49, -25, 40, 18, -26, 43, 43, 42, -22, -1, 38, 25, -21, -20, -16, 30, -24, -21, 44, -12, 39, -23, 5, -27, -29, 50, 10, -38, 26, 21, -15, -44, -15, -8, 39, -1, 17, -33, 6, 32, -16, -34, -46, -21, -31, -20, -20, -50, -38, -76, -45, -48, -76, -50, 1, 13, -2, 4, 11, 2, 24, -27, -26, -27, 22, 28, 10, -7, 35, -43, 41, 37, 4, -39, -31, -4, 33, -37, -42, 26, 10, -32, -17, -50, -28, -12, 3, -17, -44, 15, -11, -12, 47, -24, -3, -26, -5, 6, -26, 9, 25, 30, 25, 30, 38, 43, 42, -24, -1, 16, -9, 37, 17, 33, 41, 8, 22, 0, 16, 29, -22, -33, 39, 33, -2, 35, 18, -18, -32, -11, -11, -2, -14, 8, -34, -4, -5, -7, 10, -9, -12, -39, -17, -8, -8, 27, -29, -9, 22, 0, 26, -30, 28, -17, -32, 45, 20, 52, 8, 12, 20, -11, -21, -30, -22, -25, 27, -2, -19, 49, 36, 16, 45, 50, 14, 13, 14, 47, -17, 22, -26, -6, -23, 10, -26, 56, 35, -35, -18, -42, 8, 19, -44, 41, -4, -25, -9, 36, -33, 38, 33, 48, 43, -6, -41, -17, 38, 38, 31, -2, -12, 20, -22, -35, 23, 0, 0, 42, 13, 44, -27, -20, 4, -9, -35, -35, -7, 19, -31, -8, -34, 9, -9, 32, -20, -11, -58, -8, 6, -45, -15, -23, 20, -14, -54, -31, -30, -36, 9, -46, -61, -58, -33, -7, -43, -66, -68, -65, -41, -63, 9, -12, 12, -17, -29, -13, -3, -35, -6, -48, 41, -54, -30, 29, 52, -40, -4, -12, 38, -4, 47, 4, -31, -12, -10, 42, 12, -26, -36, -42, 39, 2, -41, 1, -1, -45, 17, 29, -29, 10, 59, 49, 1, 37, -14, 29, 42, 10, 16, 27, -36, -36, 44, 17, -45, -10, -32, 34, 28, 11, 34, 29, -42, 33, -7, 25, 7, 6, -40, -11, 37, 6, 10, -23, 21, 36, -28, 12, 44, 23, 8, 49, 26, -2, 0, -34, 17, 20, 24, 30, -28, -18, 11, 24, -44, -17, 28, 33, -3, 5, 14, 10, 43, 7, 16, -4, 10, -10, -13, -29, 42, 44, 13, 32, 16, -33, -12, 50, -4, -15, 40, 10, 17, -40, -20, -29, -14, -40, 25, -41, -23, 1, 41, 16, 44, 24, 37, 53, 12, 25, 53, -18, 1, -11, 51, 24, 47, 10, 23, -10, -12, -20, -38, 22, 4, -14, 8, 2, 28, 22, -28, -5, 7, 35, -30, 29, -75, -63, -18, -10, -57, -84, -80, -21, 17, -65, -51, -59, -11, 20, 19, -52, -24, -10, -6, 48, 21, -37, 2, 29, 18, -16, -37, 24, -23, -9, -9, 18, 34, -43, -41, 28, 44, 29, -39, 34, -9, -13, 13, 22, -22, 36, -2, 16, 38, -44, -43, 22, -23, -37, 18, 35, 11, -9, -38, 11, -30, 10, -1, -25, -29, 42, 31, -4, 37, -42, 0, -6, -6, -20, -20, -25, -3, 21, -32, -5, -11, 11, 14, -46, -38, -44, 9, -48, 38, 0, -57, 12, -1, 16, -22, -22, -30, -24, 40, 8, -12, -15, -14, -22, -46, 23, -9, -19, -29, 32, 6, 5, -9, 23, -12, -33, 23, 19, 11, 19, 31, 27, -18, 13, -35, 50, 33, 43, -6, -7, -1, -16, 3, -13, -55, -16, -47, 11, -25, -14, 41, -45, 34, -24, 4, -39, 8, 2, -19, -14, -33, 17, -9, 34, -22, 35, -3, -42, 23, 33, -37, -42, 6, 12, -31, -22, 22, -33, 7, -6, -43, -30, -41, -20, 3, -15, 12, 13, -13, 10, 7, -93, -18, -28, -14, -38, 5, -48, -32, -32, -24, 1, -30, 54, 54, -31, 7, 13, 47, 3, 32, -26, -3, 26, -19, 16, -3, 31, 3, 16, -5, 45, -23, -28, -13, -49, -27, 20, -28, 13, 29, -36, -32, -32, 24, 24, -40, -13, 38, 23, 31, 31, -17, 31, 19, -12, -28, -16, 14, 26, 3, -10, 8, 1, -41, -69, -50, -59, -16, 5, -37, -32, -35, 13, -1, -27, -34, 3, 43, 10, 11, -7, 9, 21, 6, 29, 0, 40, -36, -29, -31, -5, -68, -7, 18, 19, 5, -24, -25, 14, 2, 19, -16, -13, -14, -27, -46, 8, -13, -32, 3, -17, 7, 13, -38, 21, -7, -5, -32, 13, 38, 36, -29, 28, -13, 17, -20, -54, -40, -32, -34, -41, 31, -2, -39, 8, 55, 0, 3, -14, -32, -12, 6, 13, 20, -9, -36, 0, 20, -42, 43, 29, 17, -1, -9, -6, -1, -20, 31, -4, 4, -20, -8, 32, 22, 10, -27, -4, 11, 36, -27, -27, 9, -24, -28, -21, 23, -29, -15, -37, 27, -7, 15, 39, 8, -20, 38, 45, 48, -9, 48, -10, 45, 36, -29, -9, -31, -18, 10, -15, -20, 43, -28, 6, 17, -18, 41, 19, -27, 21, 34, 47, -13, -26, -20, 16, 36, 7, 40, -1, -42, -6, 29, 9, -9, 23, -21, -38, -36, -21, -28, -27, -20, -20, 22, -35, 16, -10, -26, 51, 48, 13, 27, -18, -21, 26, 15, 47, -22, 50, 15, 45, -20, -73, -76, -27, -45, -22, -13, -65, -46, -20, -48, -25, 53, -42, -29, 18, 27, 18, -4, -4, 31, -37, 34, -13, -20, 27, -9, -37, 17, -27, 29, -7, 4, 36, 31, 1, 1, 20, 34, -31, -31, 24, -42, 16, -28, -24, 12, -2, -44, -47, -27, -3, 4, -13, -47, 8, -43, -40, -67, -33, 15, 21, -24, 18, -35, 18, -44, -18, -21, -40, 2, -34, 20, -5, 11, -18, 16, 43, -1, 4, -4, -38, 34, 11, 41, 46, -41, -11, 29, 27, -38, 17, 39, -7, -28, -5, -36, -35, -31, -83, -69, -75, -50, -68, 21, -17, -13, 34, 33, -20, -26, 10, 12, 14, 8, 4, -2, 56, 47, 48, 4, 50, -10, 7, 37, 26, 12, 43, -27, -59, -52, 19, -14, -31, -72, -36, 24, -4, -38, 8, 30, -64, -27, -65, -49, -28, 6, -40, -8, -55, 13, -29, 33, -37, -7, -22, -10, 24, -12, -3, 20, 14, -19, -17, -7, 34, 26, 27, 21, 38, -2, 39, 11, 54, -20, 56, -10, -33, 9, -19, -2, -19, -31, 16, 9, -6, 49, -4, 46, -27, 3, -6, -34, -21, 9, 32, 19, 36, -22, 39, 22, 47, 16, 1, 9, -14, 26, 45, -31, -27, 18, 35, 23, -36, 26, 19, 42, -5, -8, 40, 21, -12, -21, -34, -36, 16, 11, -7, -5, -11, 33, -24, 9, -26, 37, -38, -35, 43, 37, -24, 25, 31, -36, -24, -30, 18, -39, -24, -24, 44, 5, 24, 28, -41, 40, 14, 38, -26, 39, -9, 24, -5, 28, 52, -37, -41, -11, -7, 19, 30, 50, -24, 31, 3, -4, 38, 35, -15, 9, 5, -2, -33, 41, -6, 43, 11, 45, -10, 35, 30, -39, -38, 4, 39, -38, 7, 48, -20, -36, 44, 30, 40, -24, 52, -6, 0, 5, -26, -60, -72, -51, 28, -6, -47, -29, 41, 37, -4, 46, -10, 25, 19, -41, -3, -35, 34, -9, 43, -34, 46, 14, 51, -1, -3, -12, 53, 9, -29, 40, 8, -20, -36, -32, -4, 14, 0, -11, 27, 3, 21, 1, -27, -18, 21, -16, 6, -16, 24, 22, -22, 10, 9, -19, -35, -25, -6, 34, -31, -34, -7, -24, -34, 39, -6, 5, -1, -21, -19, -38, -46, -37, -8, -24, 26, -81, -55, 4, -3, -6, -19, -79, 7, -9, 19, 0, -3, -48, -49, -67, -29, 39, -9, 45, 72, 44, 9, 86, 4, -21, 29, 72, 51, 6, -20, 22, 0, 3, 8, -52, -44, 5, -25, -42, -29, -17, 22, -11, 48, 18, -10, -29, -15, -22, -3, -3, -13, -30, 20, -60, 18, -33, -27, -5, -26, 52, -6, -22, 3, 29, -39, 8, 23, -5, 45, 22, 20, 45, -15, 25, -25, 30, -16, -12, -10, -34, -21, -20, -58, 15, -43, 8, -73, 2, -39, -66, 12, 14, -29, -26, 31, 38, -5, 38, -9, 49, 43, 41, 3, 5, -27, 34, -31, -14, 11, -1, 19, 8, -45, -16, -2, -37, 9, -8, 19, 2, 1, 17, -8, -3, -2, 33, 57, -44, -41, -36, 30, 20, 7, 6, 32, 16, -9, 16, 27, 29, 17, -5, 4, 17, -12, 33, -32, -15, -45, 11, 36, 11, -38, -9, 55, -20, -14, 15, 49, 27, 28, -36, -9, -3, 41, -37, 16, -29, -27, -5, -9, 18, -11, 0, 40, 8, 4, 32, -8, 34, 35, 1, 20, 31, 38, 15, -16, -3, -9, -13, -35, -37, -22, 9, 34, -37, 9, -47, -9, -30, -4, -55, -24, -42, 1, -26, -17, 8, -13, -28, 2, -47, 28, -5, 51, -10, -29, 4, 25, 25, 36, 32, 17, -32, -36, 39, 17, 42, -15, 27, -32, 30, -8, 0, 27, -28, -35, -22, 53, 19, 30, -59, 17, -4, 11, -33, 33, -19, -19, 37, 22, 32, 28, 18, 34, -27, 26, -19, -26, 31, -14, -15, 59, 18, 36, 43, 64, 64, 25, 10, 15, -42, -11, -60, -2, -65, 1, -57, -15, -15, 3, -58, -39, 0, -39, -12, 54, 0, 40, -1, -5, -5, 20, 23, 47, 1, -1, 25, 8, 27, 35, -5, 7, 0, -33, 38, 39, -36, 36, 31, 21, 43, 4, 23, -42, -17, 40, -56, 44}, + {-48, -24, 14, -35, -50, 8, 22, -49, -38, 16, 14, 38, 33, 71, 71, -27, 0, 0, -7, -12, -2, 55, -9, 15, -14, -28, 11, 7, 3, -46, 29, 11, 11, 82, 25, 11, 14, 12, 53, 15, -24, -18, -61, 11, 0, -58, -33, 5, -17, 2, -8, 14, -7, -7, -34, -26, 19, 15, -31, -15, 22, 11, 20, 40, -37, -9, -10, -32, -1, 27, -24, -45, 16, -32, 27, 28, -6, -29, 0, 35, 29, 34, -42, 15, 3, 8, 40, -23, 8, 33, -30, 15, 17, -26, 44, -21, -17, -38, -56, -28, -33, -8, -7, -1, 9, -3, 52, 41, -16, -4, 65, -16, -21, 14, -24, 6, -26, 8, 7, 35, -22, -34, 16, -16, -14, 43, -5, -19, -32, 7, -19, -29, -27, -26, -15, -15, -21, -14, -37, 19, 44, 41, -5, 12, -28, -15, -30, 10, -12, 53, 9, 33, -35, 15, 22, 21, -26, -31, 18, 2, -79, 2, -18, -33, -54, -33, -30, -33, 18, 20, 76, -32, 4, 73, 46, 24, 5, -4, 59, 34, 41, 34, 6, -28, -2, -52, 6, 31, 32, -25, 37, -3, -13, 52, 41, 8, 58, 55, -18, 62, 9, 3, -47, -14, -30, 1, -26, 1, -10, 32, 20, 21, -21, -44, -43, -13, -17, -32, 25, -27, 10, 28, -5, -9, 2, 40, 52, 8, 9, -31, -4, 45, 12, -17, -52, 7, -23, -30, -33, 3, -11, -23, -35, -42, -69, -51, 1, -66, 35, 34, 50, 19, -35, 30, 38, -17, -107, -60, -8, -40, -72, 1, -1, -67, -69, -2, 1, 25, 42, 53, 77, 37, -68, -88, -19, -77, -45, 7, -43, -42, 21, -4, 7, 2, 37, 46, 25, 15, 25, 11, -8, 41, 4, -43, -33, 16, 2, -42, -9, 25, -3, -24, 46, -17, -24, -21, -14, -21, 9, 30, -13, 20, 27, 13, 1, 30, 0, 1, 57, 37, -89, -50, -59, -17, -41, -44, -6, 18, -14, 30, -3, 56, 3, 37, 19, 5, 41, 49, -8, 10, -24, -31, 48, 51, 9, 22, 0, 7, 20, -29, 4, 20, -66, -57, -25, -57, -72, -36, -35, 0, -24, 1, 22, 7, 5, 16, 19, 75, 8, 32, 39, -12, 25, -11, -5, -7, 38, 43, 26, -8, 15, -6, -31, 44, -28, -24, -29, 23, -12, 11, 30, 27, 15, 23, 37, -15, 9, -9, -1, 30, -24, 33, 9, 45, -34, 42, -21, 13, -41, -9, -5, -17, 21, 28, -21, 41, 48, 30, 61, 39, -10, 20, 2, -8, 43, 23, 21, 1, -20, 12, -23, -7, 25, -31, -31, -44, -14, -4, 34, -35, 20, 43, 30, -30, 7, -14, 37, -25, 26, 0, 7, -42, 28, 19, -49, 2, -39, -36, 35, -38, -17, -8, 5, -24, -27, 1, 13, 57, 20, 8, 22, -19, 30, 24, -44, -6, -13, -49, 9, -10, -62, -18, -54, -76, -1, -20, 39, -15, 6, 5, -19, 24, -29, 60, 69, 11, -8, 39, -7, -5, 2, -26, -40, -3, 22, 7, 23, 35, -40, 33, 4, 30, -83, -9, -31, -12, -31, 0, -37, -20, -34, -12, 20, 54, 16, 2, 67, 12, 34, 30, 9, 10, 16, -14, 2, -41, -29, 46, -68, -3, -8, 69, -15, -22, 44, 41, -32, -37, -9, -26, -31, 8, -31, 41, 43, 11, 44, -2, -12, 7, -102, -83, -49, -71, -84, 20, 16, -47, -54, 32, 33, -30, -20, 51, 23, 2, -36, -23, 5, -52, 12, -28, -34, -14, 7, 48, -29, -35, 36, 70, 42, -23, -71, -1, -50, -52, 9, -50, 17, -28, -23, -16, 25, 18, -10, 28, 73, 52, 8, 13, 24, -5, 20, -21, 2, 21, 19, 15, 16, -17, -37, -6, -31, -45, 15, 25, -3, -2, -21, -27, -36, -1, 11, -22, 17, -14, -24, 60, 1, 42, 22, 29, 13, -51, -7, 37, -17, 17, -12, 1, 25, 5, -22, 47, -27, -27, 40, -3, 29, -12, -20, 42, -32, 19, 41, -19, 43, 27, 21, -21, 45, 24, 33, 51, 52, -22, -31, -9, 28, 39, -23, -39, 2, -9, 22, 36, -28, -8, 8, -22, -25, -37, -1, 41, -15, -15, -5, -12, 44, -10, 24, 19, 12, -21, -13, -42, 29, -31, -8, -20, -36, 21, -24, -23, -32, -44, 36, -36, -14, -29, 0, 12, 5, 2, -5, -22, 0, -16, -27, -41, -2, 37, 21, -52, -8, 16, 15, 9, 7, 16, -25, 14, -13, -22, 37, -2, -2, 13, -13, -20, -37, -17, -90, -85, -44, -67, 3, 6, 29, -36, -16, 30, 98, 41, 9, 73, 11, -3, 11, 35, -10, -3, -9, -49, -37, -5, 32, 35, -57, -59, -10, 40, 60, 21, 16, -9, -26, 39, -29, 14, 16, -17, -7, -2, 16, -32, 20, 4, -42, -30, -13, -35, 36, -59, -45, 6, 19, -18, 30, 36, 30, 21, -14, 0, 14, 7, -8, 59, 51, 5, 47, -39, 17, -8, 30, 22, 26, -13, 20, 49, 21, -48, 2, 47, 54, -30, 17, 58, 26, 27, 46, 20, -51, 23, -3, 29, -10, -6, -27, -3, 26, 11, 24, -23, -7, -42, -9, 8, 7, 38, -33, -28, 15, 28, -24, 10, 3, -43, 4, 9, 25, -12, 24, -18, 32, 42, 26, 11, 41, -35, 19, 4, 27, 39, 19, 18, -44, 30, 24, 35, 28, -24, -7, 19, 16, 4, -19, -40, 17, -14, -2, 95, 34, 16, -24, 9, -54, 15, 16, 48, -52, -34, 9, 28, -1, 22, 42, 60, 40, 51, 3, 27, -12, -33, 30, -33, -38, -43, -25, -47, 3, -44, -23, 36, 49, 14, -9, -13, 63, 8, 23, 58, 50, 7, -26, -44, -31, 20, -66, -9, 4, 8, -12, 21, -25, 27, -36, -19, 21, 1, -18, 36, 13, -25, -24, 34, 37, 20, -37, -41, 29, -8, 25, -27, -35, 41, 13, -18, -28, -13, -16, -17, 20, -7, 34, -16, -24, 29, -33, 20, -32, -28, -48, -31, 10, -67, -57, -69, 8, -68, -54, 7, 0, 14, -3, 17, 33, 0, -23, -14, -25, -5, 21, 8, 12, 33, -19, -36, -41, -44, -34, 7, 2, 43, 2, -5, -40, -37, -15, 24, -29, 42, 27, 40, -51, -26, 43, -42, -28, -40, -9, 11, 24, -31, -73, 12, -1, -3, -29, 12, 45, 18, 36, -6, 6, 19, -48, 11, -52, -30, -9, -34, -28, -19, 17, 56, 9, 25, -18, 10, 38, 3, -54, 40, 24, -3, -16, 49, 49, -42, -36, 20, -3, -8, 41, -6, 12, -4, 35, 21, 32, -14, 11, 38, 11, 24, -49, 1, -53, 14, -8, -39, 24, 23, -15, -41, 36, 20, 10, -29, -4, 22, -28, 49, 16, -37, 3, 0, -8, 18, 8, 31, -3, 60, 64, 37, 9, 4, 17, 28, -57, 35, 42, -9, -60, -49, -35, 37, 37, 11, 41, -7, 35, 26, -42, -36, -3, 23, 7, 12, 15, -21, -7, 0, 34, 12, -35, 17, 23, -22, -13, 14, -43, 31, -18, -22, -35, -10, 21, -2, 11, 10, -53, 38, 40, -39, 36, -22, 23, 6, 22, 25, 1, -23, 3, -33, -3, -42, 37, -23, -33, 10, -36, 14, -43, 7, -29, -35, 4, -16, -26, 32, -17, 8, 12, 48, -16, 13, -12, -14, -33, -10, -20, -16, -50, -31, -43, 8, 10, -60, 18, -9, 39, 26, 6, 25, 14, 47, -15, -21, 53, 30, -55, -40, -11, -12, 5, -13, 8, 20, 37, 2, 28, 44, -5, 42, 13, -15, -73, 0, -20, 6, -36, -19, 21, 7, -16, 36, 74, 52, -22, -13, 44, 38, 30, 22, 41, -9, -8, -19, 15, 15, 38, -37, 19, 5, 11, -21, -29, -28, -30, -21, 30, -15, 37, -25, 11, 11, 41, 4, -20, 5, -41, 21, -40, 38, -99, -9, -27, -85, -2, -43, -11, -27, 3, 23, 9, 5, 15, 23, 52, -3, 30, -27, 21, -13, 1, 37, -25, 13, 1, 0, -30, 16, -15, -21, -11, -9, -3, 10, -25, -16, -11, -8, -34, 19, -33, 35, -50, 10, 22, -35, -12, 27, 3, 30, -31, 1, -34, -36, 9, 34, 12, 20, 24, 30, -40, -18, 25, 14, -52, -59, -24, 8, -37, 43, 34, -16, -36, 5, -13, 21, 15, 2, 11, 47, 41, 34, -15, 22, -36, -3, 22, -17, -37, -19, -2, -7, -15, -31, 35, -38, -23, 9, 70, -3, 8, 50, 39, -16, 38, -50, -40, 28, -33, -37, -3, -34, 31, 25, -19, -13, -28, -13, 14, -37, 3, -9, 17, -26, -20, 40, -41, -33, -72, -4, -55, -65, -74, -18, 31, -17, 10, 48, -5, -25, -17, 86, 37, 11, 17, 31, 25, 22, -2, 39, 40, -5, 9, 14, 21, 22, 21, 2, -30, -5, -20, 11, -10, 24, 7, -12, 19, 14, 1, 39, -41, 28, 17, 15, -14, -4, -71, -50, 3, 10, -25, 31, -2, -48, -14, 4, 19, 53, 22, 8, 17, 40, -69, -40, -29, -47, -23, 19, -39, -37, -2, -29, -13, 48, 57, 14, 15, 37, -37, -31, 12, 9, -2, 42, -14, 25, -9, -19, -11, 27, 22, 17, 16, 8, 39, -42, -24, -41, -7, 29, 17, 28, -43, 4, 42, -4, 9, -38, 32, 34, -2, -5, -37, 36, -26, 13, 18, 21, -27, 39, -12, -40, -32, 40, 9, 0, -11, 34, 3, 28, 0, 9, -38, -11, 39, 14, -24, -16, 36, -14, 15, -24, -79, -60, -75, -12, -29, 16, 29, -2, -27, 23, 5, 62, 54, 27, 27, -11, -28, -59, -17, -72, -25, -48, -10, -30, 16, 30, 29, 65, -22, 41, 91, -6, -27, -64, -79, -35, -28, -62, -24, -77, -22, -13, 3, -38, -9, 80, 59, -12, -101, -20, -58, -86, -66, -39, -7, -21, 41, 12, -13, 3, -18, 29, 96, 18, -66, -75, -42, -27, -50, -42, 3, -54, 18, 50, -4, -23, 39, 15, 74, -26, -33, -60, -57, -12, -32, 15, 49, -10, -16, 44, 4, 50, -3, 69, 29, 27, -52, -78, 7, -8, -63, 5, 62, 27, 26, 12, 16, -13, 24, 25, 8, 29, 3, -8, -4, -10, -5, -27, -1, 31, -7, -17, 24, 23, -11, 50, 28, -30, -16, 39, -8, 16, -40, -18, 41, -47, 20, 12, -9, -17, -41, -12, 47, -11, 37, 68, 81, 71, 28, 70, 62, 64, 16, 11, 9, -4, 22, 10, 7, -3, -13, 44, 29, 29, 25, -44, 37, -23, -17, -19, 25, -28, 11, -8, -37, 0, -18, 12, -1, -5, -31, -11, 14, 11, 27, 61, 51, 31, -37, 21, 25, 43, 17, -43, 26, -36, -31, 4, -23, -37, -27, 3, 2, -44, -35, 9, -4, -44, -17, 41, 25, -11, -28, -28, 38, -40, -1, 22, 28, -25, -31, -29, 6, 39, 8, 16, 5, -26, 14, -13, 23, 39, 30, 20, 11, -21, 38, -39, -25, -23, -69, -40, -58, -52, -65, 32, -16, -38, 6, 14, 9, -5, 0, 56, 37, -26, -20, 75, 38, 52, 35, 27, 13, 46, 43, -39, -63, -31, -13, 36, -21, -37, -1, 62, 23, -24, 8, 53, 39, 18, -31, 18, -18, -8, 35, -4, -2, 21, -38, -66, -11, -70, -68, -55, 43, -47, -27, 28, 27, 14, -20, 9, 73, -4, 37, -15, -27, -12, -9, 8, -10, 45, 41, 14, -32, -26, -18, 19, -9, -36, -59, -5, -2, 0, -26, 7, 12, -16, -29, 2, 4, 39, 36, -8, -9, -13, -27, -19, 3, 21, -6, 39, 14, 26, 24, 11, -18, -13, 33, -10, 26, 26, 16, -5, -34, -58, 4, -38, -29, -27, 9, 17, 17, -23, 38, 24, 19, 33, -2, 12, 44, 44, -36, 37, 33, -40, 6, -20, 43, 0, 13, -34, 24, 16, -32, -23, -2, -46, -41, -18, -7, -9, 24, -22, -47, -33, -24, 32, -61, -31, -11, 45, 2, -34, -28, 17, -30, -18, -28, -35, 18, 38, -27, -23, -48, -14, -98, -27, -40, -85, -78, -50, -5, 10, 6, 47, -4, 7, 47, 90, 37, 70, -11, -23, 13, -39, -55, -32, 21, -63, 4, 56, 24, -33, -20, 46, 20, 18, -63, 19, 38, 14, -50, -2, -4, 7, 23, 26, 3, 45, 34, 57, 22, 46, -56, -25, 22, -23, -68, -28, 7, -44, -41, -19, 12, 24, 1, 34, 79, 29, 43, -28, -21, 31, 8, 50, -16, -5, -14, -18, 6, -19, -22, -19, 19, -49, -20, -2, 38, 9, 21, -4, 14, -17, 27, 19, 36, -8, -31, 20, -36, 22, -44, -46, 37, 5, -35, 34, -24, 27, 39, -23, -24, 46, -36, 5, 10, 53, -35, 43, 40, -42, 14, 41, -11, 31, 42, 5, 6, 28, 12, 35, -24, -10, -18, -46, -23, -27, -24, 19, 3, -36, -10, 35, 16, -17, -6, 20, -6, 42, -81, 11, -60, -46, -22, 7, 26, -23, -18, -32, -23, -45, -21, 18, 68, 67, 17, 34, 32, -3, 23, -17, 28, -39, 12, 28, 3, 35, 4, -2, 40, 18, -45, -44, 23, -4, -31, 12, -28, -10, 27, 5, -28, 30, -35, 31, 40, 16, -4, 23, -12, 0, 14, 33, -4, 24, 9, 65, 18, -19, -38, 20, -44, -42, -14, 36, -10, 48, -35, -7, -15, -9, 28, 15, -30, 25, -41, -42, -19, -37, -25, -40, -11, 15, -8, 35, 29, -13, 28, 15, -12, -30, -32, 4, -22, -19, 16, -2, 54, 53, 36, -9, 51, -17, 25, -46, 24, -4, 13, 1, 14, -1, -6, 1, -10, 25, -53, 16, 27, 18, -20, 39, -22, 25, 5, 22, 57, -40, -58, -16, 7, 15, -22, 11, -40, -7, -32, -3, 13, -28, 47, -6, 28, 16, 6, 21, -33, -73, -27, 26, -28, 4, 2, 20, -25, -13, -5, 56, 59, -25, 14, -2, 10, -34, -22, 53, 52, 21, 22, 23, -6, 27, 5, -38, 23, -34, 30, -5, -45, -2, 27, -1, -21, -63, 27, 62, 31, 8, 21, 25, -46, -20, -24, 15, 3, 45, -16, 21, -24, -19, -34, 2, -29, 27, 44, 15, 37, 4, -31, 37, 5, -22, 3, -31, 24, -15, -43, 2, -12, 10, -37, -16, -44, 39, -10, 7, -16, -14, 15, -4, 24, -54, 32, 37, 20, -30, 44, 26, 22, -5, 41, 28, 25, -30, -22, -2, 29, -3, -25, 44, 27, 13, -14, -30, -24, 1, -92, -80, -56, -95, -89, -17, -67, -6, -5, 62, 26, -24, 18, 62, 38, 47, -20, -26, -24, 8, 19, -20, 0, 37, 20, -24, 40, 33, 17, 42, 43, 16, -66, -10, -53, -84, -28, -1, -9, -9, 7, 54, -9, 26, -4, 51, 47, 19, -2, -35, -31, -54, -13, -2, -11, 30, -26, 25, -30, -44, 2, -24, 2, 48, -2, 19, 4, -22, -7, -11, 15, -10, 7, -37, 0, -18, 46, -3, -27, 38, 25, -28, -13, 0, 11, 23, 16, 12, 24, 26, -12, -19, -25, 37, 18, -3, 5, 29, 14, -29, 36, -44, 21, 19, -33, 41, -25, 4, 31, 13, 38, 15, -93, -50, -19, -58, -19, -2, -56, -23, -34, -19, 48, -4, 51, 16, 64, -13, -66, -50, -11, 17, 0, -22, -22, -34, 8, 20, 55, 4, -5, 1, 58, 33, -58, -30, -30, 21, 30, 47, 51, -4, 13, 53, 20, -8, 24, 45, 19, -10, 10, 48, -37, -15, 16, -34, -32, -9, 40, -31, -29, 11, -7, 40, -28, -38, -15, 42, 5, 23, -18, 19, 7, 44, -20, -35, -1, 40, 8, -16, -23, -6, -88, -22, -15, -34, -54, 0, 36, -40, -37, 96, 77, 55, -12, 89, 21, 28, 37, 41, 37, 2, -35, -4, 9, 2, -21, 14, -4, 25, 17, -44, -5, 14, -13, 8, -11, 10, 34, 1, -48, 12, 13, -27, 20, 38, -39, -33, -32, 8, 4, -7, 13, -46, -9, 19, 32, -21, 35, -7, 10, 20, -35, -5, -14, 6, -32, 15, -4, -32, 13, -44, 8, 14, -18, 27, 34, -2, -10, -42, -20, 42, -1, 7, 13, 10, -17, -29, -19, -29, -17, 8, -3, -39, 30, 12, 32, 31, -36, -44, 13, -22, -33, -13, -20, -3, 40, -41, -21, 40, 29, 40, -17, -15, -38, -8, -16, -23, -2, 35, 11, 13, 30, -7, -9, -33, -23, -4, 29, 27, 4, -16, -1, 11, -13, -48, -42, -48, 2, 33, 31, -27, 26, 7, 33, 35, 38, -41, 30, -25, 14, -2, -27, -1, 25, -18, -35, 10, 33, 12, -29, 16, -44, 31, -22, 10, -40, 42, 25, 19, 14, 11, 42, -20, -44, 43, -41, 30, 6, 28, 30, 27, -8, 43, -34, 43, -30, 11, 36, -2, -13, 40, -28, 18, -96, -82, -34, -77, -92, -59, -30, -6, 32, -15, 32, 18, -4, 13, 8, -3, -12, -25, -37, -61, -44, -11, -43, -56, -16, -12, 23, -24, -5, 6, 11, 25, -53, -77, 6, -23, -69, -1, -20, -28, 0, 50, 28, 44, -1, 7, 31, -5, 4, -5, -32, 34, 21, -11, 35, -20, 27, 14, -34, 25, -2, -22, 29, 24, 39, 2, -1, 10, -13, 44, -37, 22, 42, -2, 3, -46, -8, -29, 7, -3, -33, -33, 25, -35, 43, 38, -4, -42, -4, 2, 40, -14, -38, 25, -17, 1, -9, -16, -42, 31, 31, 37, -13, 34, 7, 6, 4, 37, 23, 18, 12, -2, -10, 22, -14, 44, 0, -18, 39, 33, 22, -21, 30, -40, 42, -28, 32, 17, 18, 29, -16, -21, -4, -19, -23, 8, -42, -4, -6, 13, -12, 25, -32, 0, -20, -10, 39, 26, 23, -11, -22, -6, -25, -38, 38, 40, 17, 42, -4, -39, 37, -5, 13, 3, 40, -10, 19, -14, 36, 38, -40, -35, 38, -43, 1, -31, -36, 15, -28, -34, 20, 5, 39, 2, 10, -41, 10, -7, -23, 32, 16, 3, -80, -66, -36, -91, -55, -2, 25, -60, -46, 10, 10, 1, 4, 79, 17, 21, 7, -32, -28, -32, 19, -50, 11, 33, -24, 21, -5, 46, 5, -38, -28, -19, -9, 6, -33, 34, 2, -43, -17, 14, 11, 4, -24, -38, -43, 29, 15, -37, -5, 7, 30, 13, 39, -8, 8, -25, 28, 4, -28, -13, 15, 2, 39, -26, 32, 22, -11, 20, -34, 35, -10, 28, 23, 19, -24, -16, -36, 12, 6, -15, -91, -20, -76, -33, -13, 10, 16, -44, 15, 41, 42, -22, -14, 50, 45, 45, -14, 3, -26, 14, 52, -15, -21, 0, 39, -5, -50, -10, 31, -24, -48, 7, 17, 36, -19, -8, -8, 31, 10, 43, -2, -25, -33, -8, 28, 23, 11, 35, -76, -15, 16, -70, -89, 3, 3, -53, 23, 23, 2, 7, -17, 77, 39, 52, -44, -40, 22, 21, 35, -11, 32, 11, -38, -48, -38, 48, 43, -14, -28, -1, -25, -40, -27, 31, -8, 28, 11, 7, -15, -7, 28, 7, 17, 40, -39, 20, -33, -26, 6, 11, 55, -1, 1, 49, 30, 31, 3, -2, 36, -4, -34, -2, -13, 3, 35, 18, 35, 2, 56, 17, 9, -42, 8, -33, 27, 8, -12, -27, 24, -33, 2, -34, 11, 5, 1, 18, 1, -16, 11, 2, 6, -18, -45, -15, -38, -29, 23, 8, -45, -39, 44, -25, 46, -39, -28, 25, -38, 24, -29, -5, -63, -82, -74, -67, -46, -51, -15, -17, -22, 31, 68, -24, 36, 67, 31, -7, 29, -25, 20, 22, -2, -31, -24, -8, 38, 24, 4, -2, 7, 16, -33, -25, -54, 12, -17, -74, -19, 0, -30, -72, -10, 3, 71, 47, -32, 54, 66, 21, 31, 23, 7, 39, -14, 35, -14, 41, -4, -23, -23, -8, -40, -7, 7, 23, -34, 4, -8, 1, -17, 29, -2, -3, -42, 15, 20, 9, 4, 6, 43, 38, -16, 16, -1, 28, -1, 8, -1, 1, -17, -22, -50, -1, 43, 2, 26, 30, -31, -18, 8, 14, 30, -31, 6, -20, -41, -14, -36, -3, 19, 3, -32, 19, -13, 24, -38, -56, 35, 51, -17, 21, -13, -3, 50, 11, -7, 52, 58, -15, 24, -28, -2, 38, -27, -28, 15, 19, -40, 28, 12, 13, -10, -51, -16, 2, -30, -22, 38, -26, 16, 12, 30, 43, 4, -33, 32, -16, 27, -43, 23, 36, 1, 31, 38, -43, 32, 25, -11, -25, -8, 9, -7, 41, -26, -26, -3, -1, -5, -2, -10, -20, 44, -25, 24, 4, 30, -2, 1, 31, -34, 7, -42, -34, -98, -78, 13, -43, -65, -15, -29, -24, 28, -2, 48, 14, 13, 1, 72, -5, 29, 17, -22, 9, 20, -32, -23, 14, 17, 11, 5, 22, -7, -44, 24, 37, -21, -12, -14, 3, 4, -13, 12, 4, -19, -35, 15, -8, -12, 48, -9, 22, -70, -32, -19, -92, -16, -46, -2, -15, 1, 24, 47, -18, -3, 14, 45, 30, -30, -29, 2, 19, 34, -33, -43, 44, -40, -20, -10, 40, -2, 15, 33, -1, 40, -27, 24, 44, -10, -25, 18, 17, -19, -38, 26, 14, 13, -23, 7, 13, -87, -4, -55, -62, -91, -5, 6, -5, 8, 45, 59, -27, -3, 88, 77, 16, 31, 52, 55, 16, 11, 33, 31, 52, -10, -58, -65, -22, -1, 13, -23, -23, -6, 17, -25, -6, -23, -3, 49, -31, -18, 48, 3, 15, -8, -4, 41, -8, -47, -6, -32, -38, -65, -21, 33, 15, -27, -16, 12, -35, 33, 46, 45, 25, -70, -52, -65, -55, -36, -45, -5, -47, -25, -20, 10, -73, 18, 42, 20, 20, -36, 31, 31, -43, 7, 32, 28, 14, -8, 44, 7, -24, -22, 45, -21, 8, 30, -28, 20, -40, 48, -25, -5, -16, -31, -11, -28, -16, -29, -26, -7, 1, -16, -9, -37, -18, 30, -22, -34, 26, 28, -7, -14, -20, -31, 14, 43, 34, 43, 2, 27, 40, 8, 3, 20, 14, -30, -14, -4, -8, 40, 39, -22, -34, 16, 29, -37, 26, 7, 16, -14, 7, -15, -6, -17, 25, -19, -25, 44, -34, -29, -17, -41, 21, 32, -32, -2, -34, 1, -50, 20, 8, 22, 37, 53, -28, -4, 14, 50, -17, 43, -23, -26, -5, -31, -14, -30, -27, -16, 10, 34, -2, -10, -53, -47, -19, -25, 34, 5, -49, -44, 21, 20, -31, 41, 25, 6, -27, -65, -7, -58, -13, -82, 4, -26, -2, 20, 70, 46, 34, 38, 36, 44, 5, -61, -7, -51, 16, -45, 39, -6, -9, 19, -13, -31, 48, 7, 21, 14, 50, 42, -14, -35, -7, -27, -6, 31, -1, -31, -41, 33, -4, -7, -38, -17, 7, 32, -29, -6, -42, 20, -8, 9, 36, -40, 32, -43, 12, -26, -27, -40, -9, 28, -35, -2, 13, -22, 30, 15, -19, 29, 3, 30, -24, 14, -3, -41, 36, 40, 46, 17, -19, -25, 47, 18, 47, 21, 19, -24, 22, -41, -17, 14, 15, -1, 53, 41, -5, 15, -5, -20, 45, -21, -55, -44, 12, 43, -33, -51, 1, -69, -81, -10, -88, -56, -47, -11, -43, 54, 60, 33, -23, -4, 49, 72, 26, -27, -40, -23, -60, -5, -60, -13, 5, 27, 57, 16, 9, -45, 57, 36, -18, -32, -8, 30, -30, 6, 11, 25, -6, 22, 65, 44, 37, -37, -16, -39, -3, -27, -76, -61, -15, -11, 17, -41, -45, -19, 57, -6, 35, 48, 23, 47, 66, -23, 30, -15, -36, -9, 21, -25, 28, 17, -2, -7, 46, -36, -1, 20, 13, -31, 24, 1, -45, -36, -6, 12, -36, -5, -7, 44, 17, -26, 48, 67, 45, 13, -26, 2, 19, -25, -10, 17, -26, 1, -3, 4, -17, -25, 50, -4, 55, 5, -6, -16, -52, 15, 28, -27, -30, 19, 12, 1, 20, -27, 52, 34, -13, -46, 0, 1, 12, -34, -18, 0, -19, 25, -33, 40, 23, -16, 15, 17, 18, 15, 55, 57, -4, -5, 50, 46, -10, -20, 6, -27, 0, -15, -10, -34, 18, -38, -34, 4, -45, -2, -64, -16, -18, -42, 3, -20, 37, -10, 8, 48, 30, -46, -32, -3, 19, 14, 27, -46, 6, -5, -27, 16, 10, -53, 3, 25, -22, 23, -23, 9, -28, 22, -35, -20, 17, 11, -34, -16, 35, -14, 53, 0, -13, -47, -41, -23, -15, -11, -29, -57, -78, 19, 25, -11, 23, -1, 52, 50, -14, -8, -29, -43, -45, -10, 4, -7, -55, -40, -48, 11, -3, -6, 41, 22, 6, -30, -9, -1, -25, -24, 5, -49, -75, -8, 63, 36, -48, -5, 72, 51, 4, -25, 27, 6, 37, -15, -31, -3, 26, 28, -4, -32, -11, -11, 33, 35, 5, 7, 11, -34, 18, -30, -13, -14, -23, 13, -23, -21, 37, 9, 24, -12, 27}, + {27, -25, -23, -50, -13, 3, -28, -54, 52, -7, -44, 2, 71, -28, -22, -13, -7, 56, 20, -18, 59, 60, 58, 50, 51, 28, 8, 30, -19, 24, 57, 51, -9, 73, 66, 44, 23, 53, 57, 56, 25, 23, 93, 35, 47, 63, 65, 47, 26, 6, -11, 22, -1, 33, 22, 37, -41, 36, 17, -10, 9, 21, -3, -1, -4, -17, -48, 34, -46, -15, 9, -17, 7, 26, 34, 4, -14, 25, -34, -30, 27, 37, -22, 10, 29, -4, 35, -8, -11, -26, 32, 5, 36, 0, 22, -13, -50, -36, -46, 34, 19, -7, 2, 24, 37, 25, -17, 15, -8, 46, -22, -31, 38, -4, 42, 30, -21, -26, 9, 34, -38, -15, -10, 40, -8, -14, -41, 3, -38, 36, -25, -26, 36, 39, -44, -34, -5, 16, 8, -39, 10, -31, 10, 23, -14, 13, 20, -5, 30, -23, 50, -19, -12, 31, -24, 11, -34, 32, 34, 48, -33, -53, -38, -35, -17, -87, -20, -16, -3, -60, -78, 3, -9, 8, -16, 16, 24, 44, 66, 8, 19, 0, 20, 46, 19, 22, 33, 27, 43, 21, -18, -33, -29, 21, 70, 40, 55, 28, 27, 19, -17, -16, 67, 26, 3, 57, -8, 19, -11, -23, -30, -10, 39, -22, 38, 14, -22, 15, -17, 21, -2, 30, 41, 22, 36, -12, 46, 39, 20, 41, 2, 44, 53, 27, -20, 57, 15, 47, 29, -36, -37, -58, -44, -19, -42, -78, -42, -10, -34, -41, -63, 16, -7, 18, -4, -28, -80, -36, -17, -53, -53, -22, -53, -63, -71, -85, -14, -78, -37, 21, -66, 16, -59, -22, -40, -42, -30, -20, -12, 4, -4, -40, 7, 1, 0, -28, 6, 59, 52, 85, 4, 66, -12, 14, -17, -21, 23, 3, 21, -13, -22, 17, -31, 16, -32, -46, -31, 6, -38, -50, -39, -36, 38, 30, 28, -20, -28, -1, 4, 9, -6, -60, -63, -74, -25, -94, -90, -68, 13, 2, -90, -17, 28, 20, -15, -27, 7, 40, 7, 3, -1, 32, -14, -5, -35, -3, 32, -8, -14, 13, -28, -15, -57, -22, -74, -58, -7, -54, -78, -62, -6, -2, -59, 12, -9, -19, -33, -38, -15, -4, 0, -8, 14, -40, 36, 34, 24, -12, 43, -7, 16, -9, -39, -22, 41, -31, -21, -31, -43, 15, 20, 17, -23, 41, 11, -6, 42, -24, 18, -29, 0, 17, -36, -36, 16, 5, 28, 31, 15, 25, 45, 20, 5, -16, -17, -33, -7, 25, 42, 57, 15, 33, 48, 61, -17, 4, 32, -1, -8, -35, 54, 43, -22, -19, 28, 9, -18, -11, -43, 20, -42, 44, -25, -7, -22, 14, -31, 27, 9, 7, 3, 12, -40, -39, -19, -6, 45, -24, 37, -39, 42, 27, 37, -17, 25, 26, 60, -8, 65, 52, 29, 76, -23, 75, 42, 60, 0, 43, 28, 53, 27, -66, -11, -37, 13, -53, -36, 11, 44, 11, -38, -33, 48, -19, 19, 63, 25, 33, 3, -12, 12, -11, 46, 27, -33, -25, 3, 36, 20, -11, -5, 4, -36, -49, -54, -63, -3, -68, -3, -27, -21, -46, -24, -63, 3, 42, -2, 28, -53, 14, 20, -12, 21, -37, -47, -13, -24, -29, -6, -36, -6, 12, 15, -32, 24, 44, 30, -16, -27, 36, -6, -1, 40, -8, 22, 46, -35, -18, -5, -18, -7, -18, -96, -76, -61, -24, -93, -93, -37, -79, -20, -72, -9, -43, 14, 8, -40, 11, -43, -41, -54, 8, -27, -16, -5, -22, -1, -27, 15, -29, -41, 21, -42, -50, -6, -63, -20, -77, -80, -51, -33, 18, -19, -34, 66, -3, -37, -51, 21, -7, -64, 1, -10, -29, -11, 35, -7, 10, -45, 5, 53, 8, 36, 0, 41, -3, -40, -26, 38, -62, -3, -52, 14, -49, -2, -38, 20, 19, -28, -10, -18, 2, -34, 21, 22, 14, -6, 34, -26, -29, 7, 8, 43, -35, -4, 43, -7, -38, -3, 31, 8, 35, -31, 4, 17, -34, 29, 33, 42, -9, 47, -27, 4, -26, 28, 13, 8, 16, -9, 24, 44, -33, -12, 16, 43, 2, 28, -28, -31, -17, 20, -27, -29, -2, -40, -11, -17, 27, -19, -1, 31, -20, 39, -29, 12, 41, -35, -24, 30, 7, 0, -11, -40, 18, 47, 35, -5, 21, 37, 3, 8, 29, 27, 9, 52, 14, 1, 26, 29, 15, 59, 37, -29, 24, 31, 21, 6, 17, 42, -2, -8, -11, 18, 14, 23, 31, 28, 21, -39, 33, -15, -30, 2, -4, -20, -42, -20, 13, -62, -75, 55, 26, 2, 5, 14, 11, -6, 14, -46, -55, 22, -1, -28, -64, -1, 27, -2, -10, -32, -20, 41, -21, -6, 11, 0, -44, -34, 3, 8, 17, -44, 1, 11, -46, 38, 22, 33, -23, -2, -15, -33, 11, -47, -2, 14, -44, -21, -5, 12, -32, -47, -53, 6, 56, -30, 7, -16, -34, -10, 33, -10, 16, 36, -24, 23, 20, -46, 36, -27, -21, -34, 10, 10, -22, -9, 5, -18, 55, 88, 67, -8, 20, 34, 3, -16, 68, 33, 38, -1, 21, 33, -17, 5, -8, -4, -40, -6, 13, -35, -18, -5, -29, 30, -26, -23, 33, -36, 19, 22, 24, -19, -3, -41, -28, -49, -41, 16, -23, -15, 49, 20, -41, 40, -10, 18, 29, 11, -7, -41, 37, 12, 8, -12, 9, -10, -1, -28, -21, -53, -46, -10, 5, 35, 32, -10, 0, 64, 39, 2, 78, 59, 9, -13, 20, 21, 27, -11, 46, -4, 17, 45, -8, 54, 62, -12, 8, 42, 25, -62, -48, -91, -70, -52, -20, -77, -47, -41, -43, -35, -8, -27, 9, -54, 17, 8, -1, -5, -2, -31, -21, -2, 7, 10, 8, 16, -26, 26, 7, 11, 53, -38, -11, -14, 19, 15, 7, -44, -17, -36, 1, -41, 40, -19, 0, 16, -6, 37, 41, -12, -43, 29, -16, -36, 35, -19, 38, 23, 5, 23, 1, 16, 27, -25, -57, -45, 12, -11, -42, -66, -69, 49, -50, 6, -52, 60, 5, -16, -26, -34, -44, -39, -17, -21, -19, -22, 16, 29, 41, 44, 36, 20, 3, 15, -23, -35, -16, 13, 11, 32, 39, 51, 30, 47, 25, 15, -22, 29, 36, 37, 38, -2, 10, -42, 10, 4, -45, -9, -14, 14, 10, -17, 26, 45, -33, -39, -3, -4, -2, -63, -30, -69, -79, -53, -30, 5, -38, -58, -73, 13, -22, -35, 8, -1, -8, -19, 1, -48, 13, -3, 23, 25, 26, 34, 37, 18, 47, 7, 38, 26, 46, 50, -27, 4, -11, 13, 0, -18, 24, -14, -11, -38, 3, 48, -21, 2, -45, 15, 26, 2, 0, -50, -26, 12, -44, 0, -24, 6, -30, 25, 47, 15, 67, 19, 38, 50, 63, 34, 71, 57, 47, 64, 14, 47, 8, 35, 37, 21, 6, -19, -40, -31, -20, -26, -41, -7, 42, -12, -2, -40, 41, -11, -41, 23, 19, 4, 10, 10, 21, -14, 42, 14, 13, -26, -37, -10, -3, 36, 26, -13, -41, -38, 37, -33, 4, -25, 37, 11, 10, 8, -18, 38, 3, 10, 1, -10, -35, -28, 43, 29, -39, -13, -35, 7, -29, -41, 36, 36, -38, -9, -7, 11, -1, 31, 11, -11, 32, 71, 7, 27, 59, 36, -9, 14, -14, 38, -17, -18, 33, -22, -33, 26, -52, 1, -38, 16, 24, 33, -20, -7, -6, 17, -13, 37, -21, 36, -12, -31, -11, -2, 14, 20, -1, -18, 17, -37, 3, 46, 19, -21, -57, 1, 5, -33, -9, -36, -52, -9, 32, -27, -5, -10, -5, 19, 36, 33, -18, 24, -37, 40, 29, -20, 37, 32, 31, 34, 20, -13, 35, -6, 21, -25, 30, 43, 31, 1, 29, 41, 3, 19, 40, -8, 2, 20, 24, 12, -21, -38, -45, -41, -12, 4, -15, -12, -43, 2, -37, -8, 6, 37, -14, -29, 30, -14, -37, -6, -21, 44, 0, 14, 7, 7, -36, -10, -38, -1, 32, -26, -17, 27, -24, 46, 44, 9, -4, -34, -2, -19, 4, 37, -4, -19, -18, -38, 13, -26, -11, 29, 29, -42, -15, 16, 36, -16, 26, -44, 11, 14, -16, 20, -22, 26, 20, -25, -26, -19, -2, -12, -9, -19, -1, -32, -4, 17, -24, -3, -22, 39, -36, 16, -33, -8, 19, -34, 36, -29, -25, 9, 25, 4, -33, 26, -19, 35, 61, 32, -10, 32, 28, -3, 21, -1, 45, 10, 41, -8, -29, 55, 22, 36, 40, -35, -8, -7, 1, -29, -16, 30, 44, 21, 36, -25, 15, -40, 16, -31, -49, -36, -63, -24, -53, -59, -32, 5, -54, -52, -59, -15, -16, -39, -33, -35, -36, -9, 26, -27, -22, 1, -28, 37, -17, -22, 37, 39, -4, 14, 34, 9, -19, -24, 4, 15, -17, -39, 42, 8, -29, 7, -9, -37, 40, -18, 30, -4, 5, -40, 10, 27, -18, -41, -66, 49, -2, -61, -22, 74, 7, 36, -5, -4, -6, -71, -10, -34, -37, -56, -68, -36, -76, -10, -81, 34, -6, -1, 13, 18, 48, 21, 10, 36, 44, -13, 15, 19, -4, -7, 1, 49, -6, -28, -31, -28, -26, 27, -19, 18, -22, -7, -25, 41, 1, -1, -10, -43, -11, -42, -41, 7, 35, -35, 24, 26, 10, -18, -7, 18, 19, -32, 2, -20, 25, 37, -22, 5, 33, -14, 41, 20, 9, 44, 3, -5, 38, 19, 38, -39, 33, -3, 35, -15, -53, -52, -83, -86, -75, -42, -38, -49, -31, -57, -16, 20, -30, 1, 10, -54, -38, -52, -63, 7, -75, -17, -74, 2, -43, -2, 11, 7, 20, -59, -28, 16, -33, -50, -60, -6, -36, -36, 12, -63, -63, -63, -34, -34, -28, 18, 29, -68, 1, -82, -33, -55, -25, -87, -60, 14, -20, -78, -23, -35, 14, -1, 3, -69, -66, -60, -39, -60, -41, -36, 2, -4, -34, -47, -35, -22, -54, 21, 13, -6, -67, -20, 1, -38, -31, -70, 0, -17, -25, -57, -45, 10, 18, -22, 32, -60, -49, -75, -49, 6, -26, -81, 13, -57, -53, -29, 26, 18, -12, 35, -5, 11, 19, -17, -45, 10, 38, 12, 5, -8, 15, 11, -28, 14, 8, 43, 18, 36, 20, -12, -28, -2, -9, 10, -6, 7, -33, -9, -37, 9, -25, 8, 15, 28, 78, 33, 74, -28, 37, 61, 75, -21, 31, 79, 38, 45, 20, 54, 19, 6, 18, -28, 41, -14, 31, -28, -15, -20, 13, 2, -13, -9, -27, -9, 21, -53, -50, -7, -12, 15, 7, -14, -42, -37, -36, -62, 9, 30, -9, 6, 13, -37, -4, 21, -28, 3, 12, -13, -34, 31, 24, -33, 26, 17, -8, 5, -4, 34, 20, -15, 36, -41, 1, -18, -11, -34, 14, -5, -14, -7, 40, -44, -2, 22, -28, 21, 32, 12, 0, 1, -40, -27, -5, 1, 30, -24, 29, 39, -6, -21, -60, -58, -32, 1, 10, -63, 11, -1, 17, -45, -20, 10, 55, -31, 46, 49, 27, 70, 34, 38, 77, 68, 28, 30, 8, 74, -24, 43, 37, 0, 33, 25, 6, -4, 56, 56, 76, 67, 51, 56, 8, 71, 54, -8, 30, 72, 19, -32, -23, -75, -73, -52, -59, -85, -19, -20, -34, -75, -6, 62, 12, -23, -12, 0, 46, -10, -15, -28, 52, 43, 70, 6, 18, -15, -5, 53, 25, 65, 22, -60, -10, -12, -5, -9, -68, -43, -24, -28, -6, -60, 33, -8, 21, 38, 28, 17, -17, -43, 1, 33, -1, -36, 39, -37, -11, 43, -42, 21, 29, 30, 21, -33, -6, -25, -11, 7, -20, -56, 19, 35, -18, 4, -2, 17, -33, -37, 10, -27, 17, 9, 15, 18, 40, 35, 34, 21, -19, -31, -7, -24, -38, -15, 20, -53, -51, -8, 23, -55, -33, -2, -41, -9, -21, -14, 20, 38, -33, -24, -42, 15, 29, 17, 48, -18, 18, -1, 38, 8, 51, 23, -12, -5, -33, -34, 44, -62, -79, -16, -33, -78, -11, -73, -72, 10, -47, -44, -36, 10, -3, -39, -16, -43, -67, -62, -2, 1, -33, -3, -41, -3, -34, -7, 2, -34, -37, -42, -1, 37, -50, -36, 27, -37, 20, -28, -56, -31, 29, 5, -17, -6, 0, -29, 14, -27, 11, 24, -2, -35, -62, -54, -26, 32, 19, -9, 3, 45, -18, -19, -1, 9, -29, 47, 10, 45, 0, 15, 43, 5, -9, 41, -11, 0, 25, -31, 47, 14, -21, 19, -44, -21, 1, -2, -30, -11, 6, 31, -19, 10, 20, 37, -39, 28, -3, 8, -31, -30, -36, -17, -56, 43, -38, -48, 29, 30, -24, -9, 23, 24, 15, 41, -8, 8, 32, 41, 15, 42, -14, 30, -17, -21, 27, 17, -33, 10, -9, -39, 15, -11, 13, 28, -18, -38, -10, 15, -1, 0, -6, -38, 1, -52, -6, 0, -8, -32, -26, -76, -8, -16, -42, -12, -44, 55, -51, 8, -32, 20, -13, -20, 16, -38, -4, -45, -10, -26, -26, 6, -30, -30, 40, 37, 21, -52, 1, 10, -38, -2, -28, 0, -29, 25, -11, 8, -4, -7, 25, -3, -23, -28, 9, -30, -4, 2, -23, -34, 20, -62, -36, -26, 65, -5, 60, 58, 39, -29, 13, 64, -28, 55, 51, 42, 50, -16, 9, 54, 42, 13, -18, -2, -12, 25, 1, -4, 33, -3, -13, -46, 2, 26, 22, 1, -30, -30, -41, -12, 27, -15, 10, 15, -21, 32, 47, 13, 18, -27, 27, 40, -32, 25, 9, 42, 36, 24, 25, 33, 22, 6, 23, -27, 18, 21, 24, -45, -3, -37, -33, -33, 52, 32, -30, -4, -29, -1, 20, -50, -33, -24, 29, -35, -34, 19, -39, 11, -23, -24, -45, -67, 30, -19, -57, -17, -37, 29, -30, -18, 17, -25, 21, 26, 35, 11, 10, -34, 29, -42, -7, -43, 45, 35, -5, -1, 10, 39, -7, -6, 45, -48, 11, 23, 21, 16, 6, 26, 26, 10, -10, -38, 32, 39, -6, 60, 52, -6, 31, 13, 40, -33, -2, -47, -38, -32, 6, 3, 10, -3, 35, -19, -11, -33, 2, -29, 56, 26, 30, 43, 34, -28, -20, 38, -4, -11, 28, 50, -20, -13, -76, -5, -66, -58, 4, -77, 11, 2, -37, -41, -58, -22, -26, 2, -28, -37, -31, -2, 37, 7, 17, -6, 32, -34, -11, -32, 41, 9, -13, 15, -28, 4, -34, -43, -19, -23, -83, -49, -76, 11, -48, -6, 3, -43, -35, 13, -6, -11, -23, 4, -33, -37, -30, -15, -51, 11, 31, -37, 7, -19, -14, -1, -42, -33, -62, -22, -44, -7, 7, -49, -11, -25, -19, -49, 23, 38, 45, 42, -17, -21, -22, -19, -3, -48, 0, -18, -17, -10, 35, -23, -43, 5, -2, 30, 7, 36, -39, 30, 24, 38, -2, -4, 31, 28, -25, 37, -21, -34, -8, 8, 45, 0, 9, -17, 5, 7, -9, 19, 17, 43, 12, 24, -16, 13, 30, 2, 33, 21, 18, -26, 42, -11, 14, 18, -2, 30, 9, 15, -27, -26, -13, -24, -13, -57, -16, -44, -39, -47, -38, 2, -47, 49, -32, 2, 25, 59, -3, -46, 48, -1, -59, -46, -23, -10, -1, -16, -11, -38, -9, 31, -26, -4, 9, 17, -5, -27, 35, -14, 1, -32, -25, 23, 13, 22, -18, 26, 52, -9, 20, 42, 2, 45, 5, -4, 22, 13, 4, -9, -5, -33, -6, -33, 42, 35, -18, -3, 26, -13, -5, 23, -36, 24, 29, 6, 35, 23, 41, 5, -39, 41, 30, -2, 10, -41, -90, -63, -23, -4, -57, -20, -42, -15, -52, -40, -23, -32, -2, 6, -10, 38, -42, -13, 23, 40, 36, -7, -18, -19, -22, -30, 12, 10, 13, 7, -14, -34, 5, -21, 7, 24, 21, 19, -32, -20, 16, -33, -37, -27, -36, 19, -13, 17, 28, 29, 9, -20, 0, -37, -47, 36, 18, -11, 14, -28, 8, -31, 41, -28, 32, 33, 29, 25, 44, -11, -8, 13, -33, -39, -41, 25, 15, -16, -28, -6, -17, 2, 27, 1, 33, 24, 0, 41, 0, 28, 29, 21, -19, -10, -9, 5, -23, -23, -11, 24, 17, -6, -28, -4, 38, 2, 22, -43, 22, -30, 4, -4, 29, -7, -25, -31, 20, 52, 28, 14, 35, -1, -33, -4, 12, 6, -39, 56, 2, 51, 52, 45, -34, -4, -24, 7, 1, -53, 26, 35, -24, -52, -21, 41, 38, -8, 21, -41, 30, 28, -30, 11, 13, 34, -36, 23, 47, -36, -35, -35, -44, -23, 43, 5, -25, -35, -24, 38, -39, -7, 14, -45, 23, 29, 9, 43, 37, -14, -31, 10, -10, 2, -40, -37, -6, 6, 19, -43, -14, 34, -21, -40, -83, -47, -12, -74, -79, -72, -58, -1, -69, -74, -80, 30, -23, -40, -35, -40, -79, -55, -44, -32, -59, -55, -81, -28, -48, -49, -11, 25, -48, 11, -49, 18, -64, 1, -50, -36, 0, -73, 13, 11, -42, -49, -46, -9, -21, 32, 53, 6, -42, 42, -7, 27, -7, 4, 0, -26, 11, 4, -7, 22, -34, -11, 16, 4, -2, -4, -32, 47, 60, 43, 12, -30, -5, 0, -31, 37, 15, 1, -30, -38, 37, -16, 10, -2, 23, -1, 17, -19, -35, 39, -40, -20, -2, 33, 11, 10, -46, -30, 35, -22, -39, 17, -14, 30, 40, 33, -8, 4, 41, -12, 7, 37, -19, -4, 35, -31, -25, -42, 11, 28, -9, -5, 11, 12, -41, 43, -15, 55, -14, 54, 32, -26, 18, 36, -1, 1, 46, -7, 23, 28, 45, 25, 22, 31, -18, -25, 21, 4, 1, 14, 42, 19, 5, 14, 2, -38, -6, 44, 5, 18, -7, 8, -13, -33, 46, 56, 46, 10, -20, 3, -1, -14, -1, 24, 11, -27, -7, 34, 22, 44, -8, 11, 48, 43, -33, 22, 33, 23, 17, 2, 8, -47, -75, -54, -82, -19, -44, -95, -44, 10, -50, -21, -41, 8, -37, 13, -47, 12, 5, 39, -30, 36, 3, 38, 30, 34, 26, -33, -33, 24, -2, -16, -14, -27, 0, -24, 9, -17, -25, -36, 36, -8, 36, 28, -12, -19, -18, 34, -32, -35, -5, -28, -16, -21, -17, 2, -34, 18, -9, 35, -12, -11, -7, 31, -38, 7, 42, 5, -40, -4, 17, 30, 33, -22, -40, -2, 36, 6, -11, -17, -42, -24, -17, -59, -71, -58, -29, -68, -42, -14, -16, 3, -62, 38, 18, -25, -14, 36, 22, 49, -14, -20, 15, -17, 6, -11, 25, -21, -19, 18, 51, 35, -16, -14, 25, 43, -4, -24, 12, 8, 47, 29, 47, 15, 15, 35, 10, -22, -26, -12, -41, -58, -40, -19, -76, -35, -19, -25, -1, 8, -22, 49, -14, 40, -19, -41, 41, 37, 13, -44, -35, 19, -8, -14, 18, -24, 16, -32, -2, 44, -31, 3, 30, -21, -10, -6, 11, -29, -31, -28, 19, 3, -12, 6, -44, -8, 12, -25, 6, -7, 21, -27, -53, -35, -23, 24, 24, 20, -35, 16, -1, -25, 13, -15, 44, 29, -12, 22, 24, 38, 43, 9, 55, 15, 10, 29, 10, -25, 4, -20, 27, 2, 8, -35, -45, -39, 17, -35, 35, 26, -39, -20, -5, 21, -37, 48, 41, 10, 48, 12, -8, 38, -16, -9, -3, -20, 3, -25, -22, 50, -26, -63, -9, -75, -64, -50, -72, -4, -5, 9, -4, -72, -53, 19, -22, -29, -12, 19, -10, -25, -8, -32, -36, 42, 17, -31, -36, 25, -21, 32, 13, -23, -36, -41, -56, -17, -7, 11, -17, -8, -24, 46, -50, -46, -48, 40, 29, 10, -5, 32, -12, 21, -32, -9, 14, -17, 26, -33, -7, -30, -15, -34, 26, -8, 1, -11, -44, -7, -62, -41, 7, -39, 16, -25, 27, -36, -31, -27, -26, 13, -5, 8, -15, -31, 57, 6, 42, 51, -13, 39, -2, 42, 56, -25, 13, -34, -24, -22, 32, -36, 14, 3, 26, -26, -20, 6, 37, -12, 16, 40, 31, 36, -29, -2, -52, -44, -35, 8, -36, -47, 1, 0, 43, -4, -11, -5, 52, 27, -10, -18, 24, -26, 22, -15, -16, 39, -6, 44, -23, 44, -7, 3, -5, 19, 33, -36, 37, 8, 45, 49, -23, -10, 55, 41, 34, 42, -2, -15, 23, 6, -1, -35, -25, 18, 21, -37, -35, 18, 1, -38, -35, -18, -25, -21, 22, 24, -22, 7, 62, 63, -17, 16, 25, 53, -3, 58, 3, 4, 50, 15, -27, 21, 53, 9, -63, -48, -2, -29, -70, -14, -13, -48, -12, -53, -38, 24, 9, -48, 45, 31, -7, -25, -22, 26, 26, -7, -22, -25, -37, -28, -17, 6, -26, -42, 9, -16, 10, 41, -32, 46, -15, 15, 18, 7, -6, -23, -33, 38, 22, 14, 14, 19, -46, -28, -29, -8, -30, -81, -32, 18, -68, -32, -42, -32, 23, -2, -36, 29, -21, -39, 21, -4, -16, -25, 32, 29, 20, -32, -9, -3, -36, -38, -6, -33, 25, 32, 36, -38, -26, 31, -11, 1, -7, -27, -8, 33, -21, 26, -32, -72, -23, -36, -26, -59, -33, -70, -30, -20, -74, -31, -19, 8, -13, 1, 28, 72, 70, 55, 43, 34, 96, 36, 57, 49, 42, 80, -9, -24, 66, 37, -9, -17, -51, 22, -7, 2, 15, -31, 22, 31, -32, -35, 46, 13, -17, 60, 25, -36, -34, -12, -33, 19, -33, -19, -55, 41, -30, 28, -22, 35, 37, 1, 0, -15, -12, 12, 12, -11, -19, -45, -30, 19, -43, 9, 18, 23, -30, -14, -17, -6, 26, 40, 23, 19, 21, -8, 32, 15, 36, 9, 24, 26, -7, 27, 21, 28, -33, -6, -33, -6, -4, -32, 16, 32, 40, -35, 7, -4, 23, -20, -9, -29, 36, 10, 13, -22, -24, -43, 33, 43, 20, -10, -12, -25, -19, -19, 29, -19, 24, 30, 27, -43, 21, 42, -21, -1, -10, -10, 26, -36, 33, -43, 13, -14, -41, -44, -35, 17, -26, 25, -5, -43, -27, 36, -33, 34, 41, -26, -43, 35, 47, 23, 9, -28, 7, -11, -32, -15, -22, 18, 15, 48, -1, -31, -21, -33, 38, -13, 54, 18, 22, 6, 64, 22, -2, 57, 51, 21, -16, 3, 35, -4, 15, -47, 22, 48, -40, 8, 28, 38, -11, -55, 34, 27, 19, -10, 38, -78, -76, -19, -22, -65, -35, -73, -22, 16, 8, -20, -1, -20, 19, -17, -27, 28, -37, -9, -30, -40, 34, -36, -8, 9, 3, -26, -46, 11, 13, 23, 22, 28, 27, -43, 23, -19, 21, -42, 29, -2, 35, 44, -9, 38, 34, -38, -36, 20, -30, -30, 24, 43, -14, 5, 42, 10, 40, -6, -27, -24, -42, 41, 38, 13, 34, -49, 22, 24, -31, -3, 20, -6, 15, 39, 6, -37, 32, -2, -31, -39, 19, 16, 32, -1, -47, 16, -23, -1, -21, -20, 16, 3, -51, 39, -15, 2, 66, 66, 35, 63, 46, 96, 91, 4, 65, 21, 72, 10, 0, 48, 12, -65, -17, -54, -57, -17, -39, -41, -4, -6, 15, -30, 2, 2, -24, -26, 15, 8, -8, -58, -10, 39, -1, -56, -68, 30, -13, -36, -16, 42, -9, -1, -1, 39, -5, -20, -58, 60, 62, 32, -43, 73, 16, 13, 4, 63, 6, 45, 13, -64, -10, -79, -58, -19, -72, -98, -24, -3, -25, -72, -72, -10, -47, 7, 6, 18, -16, 31, -42, 30, -35, 6, -28, 15, -11, -9, -10, 7, 3, 48, -20, 18, -29, -11, 29, -56, 14, -39, -55, -24, -11, -20, 23, 38, -27, 29, -15, 30, -53, 19, -24, -34, -44, -55, 2, 41, -45, -14, -22, 37, 31, 47, 46, 14, 10, -21, -30, -40, -9, 14, 22, -29, 35, 20, 43, -8, 25, -2, 14, -34, -37, -25, 23, 3, -18, 1, 28, 14, 17, -16, -2, -29, 32, -15, 4, 19, 45, -19, 23, 64, 43, 17, 58, 41, -9, 6, 40, 46, 41, -13, -29, -24, 2, -31, 2, 12, -36, -42, -30, 14, -57, -15, -50, 36, -15, 28, -30, 24, 29, -47, 37, -35, -38, -10, 9, 2, 25, 30, 22, 38, 58, 16, 55, 8, -3, 13, 15, 30, 1, -21, 35, 20, 10, 28, 18, 45, -30, 37, -27, -27, 17, -21, 5, -6, -2, -31, -10, -34, -21, -42, -45, 30, -13, -44, 4, -11, -26, -33, 25, 45, -40, -3, -9, -45, 30, 7, 35, 22, 17, 27, 35, -14, -13, -41, -6, -34, -16, -28, -1, -60, -71, -26, 20, 42, -42, -5, 9, -33, 20, 42, 18, 34, 11, -17, 2, 44, -16, 36, -25, 9, 50, 46, 23, 12, 11, 34, -17, 26, -42, 10, 44, 26, -2, -6, -1, -25, 39, -50, -41}, + {-13, 40, 46, 40, -47, 0, -64, 27, 6, -23, 9, -13, -15, 19, 33, 26, 42, 25, 8, -14, 37, 7, 68, -27, 30, 20, 15, -35, 33, 44, 13, -35, -39, 33, -26, 34, 63, 74, 29, 47, -10, -10, 19, -7, 36, 0, -22, -1, -44, 11, -5, -42, -11, 40, -13, -16, -37, 35, 16, 29, -39, 17, -44, 34, 39, 35, -27, -6, -25, 35, 20, -14, 18, -5, 5, 2, -29, -24, 15, -48, 42, 18, -1, 0, -21, -24, 10, -4, -10, 31, -45, 8, 23, 9, 1, -41, -40, -40, -14, -17, -50, -14, -11, -22, -57, -12, -31, -18, -1, 2, 14, 33, 9, 10, -17, 4, 7, -12, -30, -31, 37, 3, 13, 27, 5, -34, -33, 27, -22, -4, -8, 23, -12, -13, 42, -12, -25, 3, -20, 10, 19, 6, 4, 27, -23, 33, -12, -10, 42, -39, -24, -10, 27, -10, 35, 41, 31, -6, 7, -40, -36, -34, -29, -19, 19, 14, 0, 11, 30, -45, -4, -2, 38, -41, 6, -4, 41, -10, 8, -34, 5, 20, 39, 7, -10, 34, 5, 10, 13, -7, 20, 41, -21, -14, -28, 38, 8, -12, 41, 46, 45, 52, -17, 56, -4, 21, -20, -17, 11, -17, -4, 19, 35, 43, 44, -2, 27, -15, 13, 4, -31, 12, 18, -19, 25, 18, -16, -27, 25, 19, 30, -13, -4, -22, 44, -28, 9, -7, -26, 17, 4, 8, 47, 16, -12, 21, -40, -28, -42, -37, -39, -43, -36, -11, 17, -21, 1, 43, 67, 7, -25, -6, 10, -6, -33, -61, -69, -48, -4, -32, -46, -28, -28, 9, 10, 11, 14, 17, -4, 30, 4, -37, 23, -19, 16, 3, 30, 34, 12, 8, 36, 20, -6, 39, 71, -17, 2, 16, 13, -40, -19, 38, 33, -31, 31, -4, 37, 9, -10, 29, -4, 39, -40, -21, 8, -49, 43, -8, 34, 15, -30, -5, -38, 29, -62, -12, -40, -2, -22, -7, -24, -56, -42, -61, -49, -22, -12, 22, -35, 44, -11, -6, 40, 12, -1, -14, 14, 40, 6, -7, 6, -41, -14, -17, 34, -12, 0, -28, 16, 13, -60, 3, -34, -46, -50, -30, 11, 28, 18, 11, -17, 28, -32, 13, -21, 35, -20, -24, -9, -38, 41, 29, -16, -15, -14, 34, -14, 49, 5, 18, -4, 16, 25, 33, 37, 28, -36, 42, -9, 16, -5, -19, 32, -3, 25, 12, 9, -28, 28, -22, -32, 8, 6, 39, 34, -34, -10, 2, 2, -29, -20, 51, 18, -7, 32, -5, 56, -26, 14, 23, -31, -15, -17, -44, -9, 6, -42, -25, -19, -24, -43, -4, -20, 40, -36, 29, 11, 44, 0, -28, 5, -15, 11, -31, 17, 21, -28, -23, -14, 37, 5, 36, -35, 41, 46, 29, -14, -6, 23, 61, 52, 27, 43, 6, 68, -10, -31, -29, 18, 34, 34, 2, 20, -25, -10, 14, 7, -28, -41, 38, 37, -12, -9, -39, -28, 24, -13, -40, -9, -19, 17, -19, -13, -38, 3, -21, 9, 22, -23, -39, -28, 42, -11, -43, 8, 44, -33, 0, -8, 15, -17, -11, -48, -17, 18, 34, 18, -28, 26, 13, 26, 19, -2, 21, 2, 15, 9, -36, 2, -49, -35, -62, -11, -5, 37, 35, -18, 17, -40, -17, 5, -32, -2, -7, -39, -43, 39, 37, 32, 30, -32, -15, 29, -47, 8, 21, -62, -48, -30, 5, -23, -12, 2, 0, -43, 20, 0, -4, -7, 43, -39, 35, -9, -25, 9, -64, -15, -54, 33, -40, -45, -27, 63, 53, 9, 15, 14, 11, -22, -43, -52, -63, -19, -47, -13, -26, -38, -48, 10, -20, 11, -37, 22, 7, 24, -20, -19, 1, -44, 11, 14, 32, -27, 13, 9, -22, -28, -34, 19, 16, 16, -24, 11, -48, -54, -32, 7, 10, 26, -33, -5, 35, 35, 36, -26, -6, -11, -55, -16, 5, 36, -43, -21, 14, -21, 32, 33, -6, 9, -16, -1, -25, -25, -26, -5, -4, -5, 21, -29, -39, 17, 27, 11, 35, -15, -15, 17, -12, -16, 23, 49, 13, -12, -28, 40, 26, -28, 25, 13, 28, 20, -9, -3, -37, -11, 25, 34, -2, -27, -22, -29, 1, 8, -29, -3, -5, 0, -19, 20, 21, 4, 1, -48, -40, -44, 25, -28, 0, 1, 38, -31, -30, -18, 9, 14, 30, 40, -4, 19, 37, 8, 29, -9, -34, -13, -33, 17, -41, 32, 27, 13, -31, -18, -39, 17, 35, 24, 30, 2, 19, 22, -2, -6, 8, -44, -12, -3, 7, -3, -24, -21, -5, -5, 3, 15, -16, -27, -30, 26, 2, 70, 24, -2, 48, 46, 74, -13, 14, -10, -17, 33, -32, -39, -24, -9, 1, 13, -42, -24, -26, -35, -37, 20, 35, 7, -15, 19, 20, -39, 25, -25, 18, 52, 19, 20, -15, -66, -38, 41, -13, -16, -12, 27, -41, 35, 3, 10, 47, -21, -2, -29, 5, -27, 65, 23, 39, 37, -5, -33, 22, 32, -32, 20, -50, -3, 16, -26, -13, 63, 6, -31, 26, 61, 4, 10, 4, 21, -2, 8, 9, 26, 6, -13, 30, 10, 44, -8, 8, 23, 23, 16, -12, 27, -28, -18, 3, 36, 34, 28, -12, -41, 15, -43, -9, 33, -39, -2, -5, 35, 37, -23, 20, -38, -28, 8, 2, 33, -33, 45, 17, 15, -7, -29, 18, -13, 5, -39, -9, 43, -26, 15, -5, 30, 36, -40, 20, 38, 11, 30, -14, 67, 36, 4, 49, 30, -4, 3, 17, -21, 47, -22, 39, 15, -14, -5, 34, -37, 39, 35, -3, 38, 5, 20, 2, -59, -47, -26, 2, -61, -48, 11, 31, -12, -25, 20, -32, 46, 0, 8, -6, -21, -45, 25, 18, 1, -58, -13, -44, -23, -30, -20, -28, 21, 30, -17, -2, -11, 9, -21, 3, 2, 35, -31, -18, 40, -1, -42, 44, -31, 16, 1, -39, -44, 12, -3, -37, -18, 34, 1, 22, 24, -24, 6, -7, 34, 32, -44, -24, -34, -52, -36, -8, -14, 5, -7, -16, -13, 21, -41, 4, 15, -6, -6, 23, 0, -24, 15, 5, -44, 1, -10, -16, -8, 28, 8, -40, 13, 10, -14, -2, 8, -10, 25, -1, -4, -39, 12, 44, 3, 27, -1, 41, 64, 50, -30, 1, -26, -26, -24, -23, -14, -24, 4, 18, 40, -2, 36, -40, -25, -33, -36, -1, 15, 13, -31, -58, -16, 16, -14, -60, 12, 21, 24, -11, -6, 25, 34, 1, 41, -10, -41, 19, -4, 31, 17, -27, 37, -39, 13, 32, 5, 24, 20, 9, -2, 45, 5, -2, -2, -15, -33, -14, 41, -20, -3, 30, -21, -12, -40, -27, 37, -17, 34, 7, -22, 28, 44, 4, 7, -27, -29, -15, -11, -18, -13, 16, 76, 20, 39, 44, 84, 9, -4, 9, -25, 45, -17, -7, 7, -18, 4, 9, 27, 41, -22, -20, 26, 5, -1, 24, -26, 9, -41, -3, -45, 21, -11, 39, -36, -39, 8, 15, 10, -41, 38, 33, -3, 17, 30, -4, 13, 35, -32, 39, -9, -34, 9, 44, -38, 11, -21, -26, 33, -21, 19, 42, -11, -41, 27, 38, -37, 37, -36, 25, 18, -36, -34, 7, -39, -39, -19, -18, 35, 4, 34, 4, 27, 45, -1, -17, 46, 38, 9, 17, -43, 19, 14, -27, -26, -36, 19, -19, 22, -9, -18, -35, 19, -29, 17, 5, -32, 27, 19, -22, 22, 20, 11, 19, 13, -34, -10, -6, 24, 0, -12, 13, -17, -37, -4, -1, 36, -44, 26, -14, -22, 28, -45, -32, -31, 33, -36, 18, 24, -2, 22, -23, 27, -35, 12, 21, 1, 8, -2, 39, 16, 29, 21, -32, -10, -40, -18, -1, -10, -10, -17, -16, -44, -9, 30, -6, 25, 31, -39, -11, -41, 12, 10, 30, -24, 50, -4, 26, 44, 25, -23, -54, -40, -1, -27, -49, 34, 18, -24, 17, 27, -10, 32, 35, 40, 29, -25, -5, 6, -43, -32, 42, 40, 16, -23, -9, 24, -19, 26, 1, 23, 45, 7, -4, 15, 25, -37, -17, -21, -22, 32, 38, 21, -31, 19, -14, 24, -23, 14, -43, -11, 21, 1, 22, -29, 19, -20, -16, -21, 39, 30, -24, 22, 49, 37, 30, -19, 29, -17, -27, 29, 7, -25, -33, -6, 11, -31, 13, 26, -6, -34, 27, -8, 43, -11, -24, 38, -34, -25, 9, 59, -28, 20, 50, 13, -6, 25, 7, 56, 0, 41, -30, -7, 40, 19, -15, -17, 44, -24, 4, -6, -11, 34, 34, -41, -15, 18, -10, -28, -7, -13, -30, 35, 22, 45, 38, 40, -9, -7, 4, -34, -52, -7, 4, 9, 10, -24, -30, 40, 17, -39, 31, -13, 14, 22, -31, -29, 10, -38, 18, -14, 43, 1, -4, 1, -17, -22, 27, -10, -5, 31, 27, 4, 19, -38, -3, 18, -14, -19, 71, 52, 42, 8, -40, 3, -38, -12, -1, -41, -52, 3, -8, 42, 38, 23, 45, 8, 24, -4, 0, -33, -37, 22, -21, -82, -24, -4, -15, -3, 12, -39, 33, -5, 39, -10, 45, 41, 5, 21, -2, -13, -6, -32, 25, 23, -13, -30, 26, -31, 33, 40, -19, -17, -24, 11, -12, 43, 2, -36, -38, 22, 8, 15, -34, -37, -6, 29, 5, -36, -9, 17, 10, -9, 16, -38, 10, -26, 44, 8, -20, 41, -20, 29, 23, -19, -17, 23, 14, 15, 30, 34, 25, 16, 14, -36, 37, 5, -20, 21, -11, 9, 9, -42, -25, -61, -2, -34, -31, 4, -48, -23, -20, -24, -25, -33, -55, 5, 14, -13, 7, 2, -11, -31, -2, -31, -16, 20, 9, 82, -7, -10, -4, -9, -4, 13, 18, -23, -11, -43, -27, 21, 35, 26, -14, 45, 22, -49, -28, -13, -13, -48, -68, 9, -49, -2, 13, -3, -19, -30, -14, -37, 29, -18, -23, 14, 6, 28, -1, -68, -8, 16, -32, -44, -50, 63, 12, -22, 18, 31, -3, -5, -26, 15, 27, -2, 3, 17, -28, 0, -16, 21, 16, 0, 9, 31, -42, 24, 14, -16, -25, 13, 22, -41, 24, -34, 29, 28, 37, 16, -7, 35, 3, -33, -35, 39, -6, -27, -21, -39, 20, 8, 35, -5, 13, -2, 4, 1, 0, 22, -1, 26, 37, -1, -37, -44, 9, 30, 0, -25, 0, -8, 50, -33, -8, 59, 7, 9, 30, 37, 9, -33, -7, -3, -28, 12, 32, -9, 41, -14, 6, -31, -9, -11, 36, 9, 44, -29, 23, -5, 10, 41, 20, 38, 32, -2, -10, 0, 44, 15, -13, -52, 1, 7, -16, 30, -8, 19, 5, 4, -36, -25, 0, -6, -30, 42, -38, 14, -35, 38, -17, 25, 29, 38, -25, 26, 36, 17, -37, -11, -26, -41, -29, 20, 5, -7, 22, 7, 29, -46, -4, -32, 23, -30, -30, -25, -1, -18, 11, 21, 2, 20, 46, 15, -36, -24, 34, -14, 3, -24, -66, -56, -46, 27, 14, -20, -51, 30, -25, -55, -29, 1, -32, 41, 23, -10, -16, -17, 23, 29, 8, 60, 27, 14, -3, -39, -16, -32, -18, 28, -32, -15, 40, 36, 46, -17, 44, 32, 40, 27, 31, 56, -30, -17, -31, -15, -23, -38, -16, -56, -46, -12, -2, -10, -1, -37, 2, -37, 23, -18, -23, 18, -22, 37, 13, 56, 22, -35, 39, -17, -18, 17, -34, -12, 3, 13, -32, -38, -40, -36, -37, 1, 26, -22, -16, -54, -23, -11, 25, -41, -28, 33, 9, 43, 0, -29, 33, -16, 30, -43, 35, -42, -23, -40, 22, 1, -33, 57, 27, 33, 41, 63, -5, 37, 11, -39, -11, 31, -1, 43, 14, -30, -10, -43, 14, 2, 13, 38, -14, -7, 12, 30, 34, 20, 22, -2, 25, -15, -13, 61, 29, 16, -16, -27, 23, -20, 11, 23, 15, -3, 35, 4, -12, 31, 18, -11, -39, -19, -12, 26, 38, 40, 3, 22, -32, 37, -41, 3, 2, 42, 11, -3, 5, -31, 20, 5, -54, 14, -49, 17, -36, -37, 12, 9, -35, -48, -43, 16, 10, -40, 12, -16, 19, -3, 0, -11, 17, -38, 29, -33, -24, -52, 31, -38, 30, -18, 32, -35, -24, 22, -12, 26, 32, 9, 8, 5, -12, -6, -22, 21, 47, 13, -5, 13, -7, -20, -17, -2, -6, 6, -46, -27, -37, 8, 36, 32, -18, 14, 4, 21, 3, 38, 25, -26, 2, -39, 40, -39, -5, -25, -11, -42, -13, -9, 2, -4, 35, -36, -43, 20, -3, -9, -29, 35, -41, -44, 8, -22, -11, 8, 9, -30, -31, 33, -43, -12, -6, -7, -27, 12, -39, -42, 4, 33, -36, 40, -33, 27, 26, 42, 4, -40, 7, -35, 23, 30, 8, -3, -33, -27, -14, -25, 26, 24, -34, 30, -20, 3, 33, -11, -37, -42, -8, -50, -41, 47, -35, 18, -22, -18, 1, -29, -15, -64, -16, -30, -87, 9, -21, -30, -17, 66, 57, 63, 14, 15, 34, 50, 41, 23, -15, -39, 5, 10, 1, 20, -44, -20, -10, 13, 40, 8, -15, 34, -21, 28, 8, -42, 35, -21, -8, -42, -8, 19, 0, -35, -35, 28, 14, 3, -14, 31, -34, 43, -5, -35, 10, -25, -17, -36, -37, 42, -41, -17, -17, 47, -22, 13, -32, -10, -16, 31, -30, -43, -17, 5, -43, 25, -21, 23, 17, -30, 8, 13, 35, -20, -16, -36, 16, -30, 13, -8, 29, -35, 21, 16, 11, -5, 14, -22, -13, -8, -35, 4, -3, -2, -26, -21, -20, 48, -12, 26, 0, -22, 24, 6, 19, 11, -5, -40, 27, -1, -23, 40, -24, 15, 12, 19, -36, -40, -3, 29, -10, -33, 8, 30, 38, -17, -13, -29, 36, 45, 24, -26, 7, 15, 19, 28, -59, 19, -46, -5, -11, 30, -43, 16, 17, 2, -13, -9, 47, -34, -34, 48, 39, 8, 26, 5, -14, -18, 32, 19, -7, -38, -24, -5, -2, -19, -45, 18, 36, -10, -22, -6, -7, 0, 39, 0, 31, 38, -18, -3, 50, 54, 27, 33, 15, 39, 23, -36, 5, -36, 19, 21, -53, -21, 27, 43, 24, 43, -40, 3, 19, 8, 9, 1, 29, 12, 30, -35, 25, 39, -37, -43, -6, -19, -44, 20, -24, -61, -14, 22, -17, -3, -40, 23, -30, -41, 9, 12, 24, 40, 40, -44, -12, 18, 9, 40, 14, -38, -42, -1, 27, 62, 65, 13, 21, -6, 43, -60, -26, -14, 11, 38, -40, 16, 26, 76, 17, 18, -13, 24, 57, 16, 23, -28, 20, 9, -5, 47, -21, 1, -15, 1, 19, 12, -6, -42, 19, -9, -35, -27, -42, 7, 1, -25, 27, -8, 28, 60, 10, 55, -20, 32, 52, -21, -7, -41, -31, -19, 2, 37, -24, 1, -19, -7, -29, 45, -2, 16, 31, -2, 46, 18, 7, 17, 9, -38, 37, -43, 26, -31, -44, -42, 2, -2, 18, -32, -28, -29, -3, 32, -10, -44, -15, 27, -32, 41, -39, -24, -30, 24, 0, 1, -21, -31, 42, 11, 35, 31, 33, -39, -25, 18, 10, 0, -4, -18, -19, -51, 4, -43, -55, -31, 1, -18, -39, 23, -20, -25, 5, 21, -32, -19, 3, 46, 30, 0, 34, 35, -26, -19, -13, 44, 31, 49, 25, 48, -1, 4, -15, 2, 56, 22, 5, 11, 14, 4, 44, -40, 23, -15, 2, -14, 29, 5, -14, -3, 26, 38, 10, 32, 12, 43, -35, -8, 24, 22, -40, -39, 37, -20, -18, -2, -35, 8, 20, 1, 21, -12, 5, -1, 33, 19, -20, -20, 34, 12, -15, 7, -37, 28, -60, 0, -65, 1, -68, -20, 9, 5, -39, -16, -1, 34, -35, 28, 0, 14, -27, 9, -22, -13, -8, 34, -42, 33, 28, 30, 13, 37, 23, -49, 23, 28, -22, -25, 40, 22, 36, -24, 2, 33, 18, 38, 50, -4, -33, 57, 4, -16, 18, 28, 22, 31, 22, -6, 27, 34, -12, -17, 44, 21, -35, -32, -6, 34, 36, 30, 13, -25, -36, 37, -18, -36, -16, -11, -17, -19, 42, -23, 10, 17, -24, 28, -30, -30, 46, -38, -19, 28, -16, -34, -37, 9, -10, 31, 30, -10, -30, 43, 4, 33, -34, 1, -16, 18, -44, -6, 4, 24, -43, -41, 33, -14, -31, 37, -11, 6, -8, 31, 3, 5, 44, 20, -23, 24, -7, -33, -48, -39, -63, -5, 4, 42, -32, 28, -24, -25, -21, 20, -19, -10, -2, 42, 23, 13, -9, 39, 32, -25, -27, -33, -11, 22, 18, -29, -25, 17, -40, 7, -36, -28, -2, -31, -42, 24, -31, 20, -38, -18, 40, 15, 6, 25, -12, -30, -13, 2, -11, 11, 36, -17, 0, -6, -16, -15, -22, -47, 3, 3, -17, 14, 20, -14, -4, -46, -18, -15, 14, -3, -25, -8, 40, -20, 35, -31, 22, 9, -35, -7, -12, -7, -11, -17, 10, 13, -30, -29, -21, 32, 35, -1, -19, 22, 1, 37, 21, -1, 13, -38, 15, -3, -27, -12, 18, -9, 4, 26, -11, -22, 37, -23, -15, -28, 20, -21, 13, 37, -20, -5, -7, -11, 36, 20, 12, 27, -29, -31, -32, 27, 3, -31, 38, 30, 6, -42, 6, 6, -40, 32, 27, 29, -25, -28, -12, 0, -30, -36, 14, 33, 10, 1, -43, -22, 39, 40, -40, 40, -17, 8, -10, 10, 12, 7, -18, -33, 32, 30, 27, 13, 29, 35, -10, -14, 17, 39, -6, -41, 16, 14, -25, -24, 31, -46, -38, -2, -12, 15, -29, 44, -19, -22, 33, -14, 29, -40, -12, -16, 37, 6, 5, -23, 35, 16, 41, 22, 13, 15, -16, 1, 41, -39, 26, 8, 19, 40, -34, -37, 36, -34, 6, -21, 49, -13, -33, 20, 46, -28, -26, 25, 25, -17, 49, 34, 46, 38, 22, -36, -19, -17, -10, -33, 45, -13, 5, -34, -6, 13, -28, 24, 25, -22, -60, 13, -14, -38, 15, -77, -17, 16, -31, -34, -40, 28, -49, 40, -34, 10, 23, -11, 31, -1, -46, -1, -33, 21, -10, -21, -29, -35, -44, -17, -6, 0, 11, 12, -19, 26, 23, -43, -1, 41, -44, 34, -39, -29, -8, 42, -32, -16, 34, 12, -17, 10, 2, -20, 21, -5, 3, 3, -20, -21, -5, 12, 22, 2, 15, 38, -3, -38, 41, -24, -39, 16, -23, 30, 3, 19, -42, -35, -48, 17, -9, -15, -1, -16, -42, -57, -80, 2, -38, 6, -12, 16, 37, 51, -23, 23, 67, 56, 1, 4, -24, 32, 2, 29, 31, -32, -11, 33, -14, 32, -10, -2, -29, 19, -1, -20, 7, 13, 31, 42, 17, 35, -22, 30, 57, -5, 13, 14, -48, -26, 19, -9, -72, -12, 8, 9, 1, -23, -49, 23, 24, -26, 35, -29, -21, -11, 22, -33, 29, -40, -43, 22, 8, 12, -32, -10, -33, -42, 39, 43, -7, 25, 6, 11, 21, 3, -25, -4, -38, 35, -36, 52, 53, 53, 28, -37, 22, 33, -19, 35, 14, -21, 16, 13, 15, 9, 26, 8, 42, 45, 1, 28, 3, 50, 1, 8, -21, -15, 37, -10, -41, -39, 24, -40, 29, 20, 38, -12, 39, 18, -23, -35, -31, 47, -42, 49, 10, -31, -20, -10, 39, 45, 33, 39, 6, -20, -28, -24, -44, 0, 40, -12, -1, 17, 23, 12, -41, -40, -5, -44, -28, 30, -20, -38, -39, 18, -59, 3, -38, -9, -29, 21, 26, 47, -5, 38, 7, -40, 13, 16, -14, 3, 11, -9, -13, 43, 24, 41, 16, 33, 14, 36, 18, -33, 34, -6, -25, -55, -34, -44, -24, 16, -11, 7, -39, 33, -15, -11, -35, -15, -8, 5, 16, -3, -26, -3, -10, -1, -29, 20, 21, 11, 46, -4, -16, -55, -34, 13, 21, -1, 6, -23, 13, -17, -13, 17, 14, 1, -33, 23, 4, 33, -26, -27, 3, 44, 26, 12, -39, 3, -14, 9, 23, 26, -1, -42, -33, -25, -2, 6, 2, 12, 27, -30, -34, 8, -13, 44, 25, 6, 47, -12, -37, 14, -12, -9, 31, -35, -7, 30, 39, -40, 26, 10, 10, 34, 27, 42, 46, 37, 12, 24, 34, 4, 20, -2, 9, -37, 2, -41, 22, -14, -30, 38, 43, -14, 51, 30, 50, 13, 13, 26, -23, 34, -9, 2, 19, -24, 44, -5, -39, -22, 18, 44, 42, 41, -27, -36, 17, -31, 14, 8, -12, 16, 41, 12, 4, 61, 9, 42, 6, 20, -27, -2, 32, -39, -42, -3, 26, 32, 37, -18, 9, -58, -6, -13, -53, -26, 4, -30, 23, -51, -33, -15, 40, -26, 15, 18, -4, -27, 5, -3, -36, -31, 37, 5, 18, -3, 17, 37, -8, 51, -29, 51, 48, 35, 51, -6, -33, 31, 14, -15, 13, 25, -42, 0, 59, -5, 11, -32, -29, -6, -16, -8, -7, -53, -34, 3, -48, 12, 18, 29, -4, 36, -28, -31, -3, 0, -14, -33, 23, 12, 24, 28, -41, -43, -17, -11, -18, 11, -36, 0, -35, 24, 9, -38, -24, -39, -25, -13, 38, 30, 1, -19, 44, -25, 31, -23, -48, -33, -16, -1, 6, -5, -37, 12, 0, 15, -6, 34, -26, -8, -23, 33, 65, 54, 22, 10, -10, 50, 26, 0, -28, 5, 34, 63, -9, 8, -4, 47, 37, -17, -10, -21, 52, 25, 19, -21, 48, 17, 10, 23, 25, -19, -31, -29, 13, 2, -3, 38, -39, -49, 11, -22, -44, 33, 1, -13, 25, 8, -1, 14, -42, 14, 37, 3, -50, -13, -22, 48, 28, 17, 5, 5, -27, 40, -9, -6, -1, -31, -26, 33, 11, -10, -6, -35, 43, -40, -37, -26, 3, 29, 29, 20, 30, -25, -31, 13, -21, -20, -39, -42, -3, 36, -40, 11, -9, -32, -36, 16, -30, -11, -34, 24, -29, 33, -37, 32, 44, -27, -8, -1, 22, -7, 37, -13, 11, 26, 20, 16, 13, 23, -1, 2, -22, -21, 7, -32, 33, 20, -28, -27, -44, -5, 41, 21, -17, 32, -9, -29, -37, -2, -29, 22, 27, 59, -33, 19, -14, -5, 19, -32, -13, -15, -4, 36, 7, 29, 29, 41, 38, 17, 34, -22, -10, -5, -2, 14, 42, 34, 49, -18, -21, 16, -30, -13, -10, -43, 9, -44, -51, -26, -53, -42, -17, -12, -35, 6, 19, -31, 24, 17, 9, 14, 44, -21, -39, -38, -17, -47, -18, -26, -51, 38, -4, -30, 20, -30, -33, 50, -5, 4, 26, 19, -20, -39, -9, -11, -14, -17, 28, -1, -16, 30, 19, -42, 33, 8, 24, 8, -41, 3, -25, 23, 30, -21, -9, 29, -1, 21, -1, -29, -15, -6, -22, 33, 27, 23, 22, -40, -10, 8, 44, -11, 26, 39, 8, -46, -15, 13, -25, 32, -13, 41, -52, -50, -41, 15, -17, 16, 6, 35, 47, 1, 54, 3, 27, 59, 37, -28, 20, 29, 27, -23, 18, 1, 16, 17, -24, 3, 16, -10, 71, 28, 12, -8, 60, 67, 15, -41, -3, -20, -12, 34, -44, 30, -38, 24, -3, 7, -8, 4, -27, -59, -25, -41, -7, 19, 8, 20, 20, 9, 37, 29, -22, 23, 34, -8, 28, -22, -12, 6, 37, 20, 3, 0, -37, 33, 35, -27, 7, 17, 30, 3, 40, 47, 27, 21, -3, -8, -17, -18, -41, 5, -39, 9, 15, -6, 11, -44, 15, 4, -52, -50, 10, 13, -8, 21, -37, -24, -19, 26, -12, 5, 29, 10, 38, 35, 32, -5, 23, 36, -13, -24, 0, -37, 22, -1, -2, 8, 12, -31, -46, -21, 34, 18, 6, -15, -33, -24, -13, 38, 15, 43, 30, 38, -32, -31, -39, 12, 25, 11, -36, -12, 31, -38, -29, -26, -34, 42, -52, -31, -38, 13, -33, -47, 26, -29, -13, 44, -36, -10, 28, -4, 49, 9, 46, -40, -12, -19, 0, -19, -45, -21, 7, -28, 34, 38, -4, -12, -23, 36, 58, 29, -27, 44, 60, 24, 4, 13, 37, 7, 4, 44, 36, 37, -25, -19, 38, -37, -21, -34, 3, -39, -48, -16, -40, 12, -33, 7, -5, 17, -18, 15, -21, -47, -42, -6, -7, -44, -72, -34, 22, 14, -35, 16, 26, 5, -24, 24, -13, -3, 15, 22, 25, -21, -3, 0, -15, -8, 22, 65, 26, 35, 4, -35, 25, -41, 12, -23, -61, -1, 20, 30, 29, -4, -7, 17, -3, -21, 40, 17, 33, 13, 29, -39, 2, -46, 18, -34, -9, 34, -5, 28, 59, 11, 31, 19, 60, 28, 33, -7, 4, 16, -57, -24, -17, -34, 37, 40, 36, 15, 7, 19, 39, 18, -14, -33, 33, -7, 40, 27, -7, 26, 26, -10, 11, 40, 40, -34, 2, 24, 13, -42, 4, 20, -21, -13, 1, -36, -33}, + {21, -25, 35, -13, 32, 2, 55, 3, -61, -39, -27, 14, -47, -78, -38, -17, -18, -98, -50, -5, -23, -73, -22, -5, -39, -8, -28, 27, -10, 6, 24, -48, -65, -111, -46, -93, -87, -69, -62, -103, 5, -57, -116, -7, -64, -13, 22, -25, 44, 4, 34, -30, 45, -14, -28, -28, -39, -44, -5, 21, 20, 10, -14, 7, 34, 33, 4, -8, 61, -17, 8, 23, -14, 16, 53, 63, 30, -1, 45, 26, -28, -2, 24, 20, -34, 2, -16, -44, 12, 23, -18, -44, -35, -37, 11, -14, 44, -11, 59, -2, 14, 40, 46, -7, 45, -13, 40, -31, 3, -13, -4, -30, 19, -13, 34, -13, -30, 18, -36, -9, -4, -17, -34, -38, -27, 26, 41, -34, 22, -38, -33, 30, 27, -7, -8, -8, -4, -35, 28, -3, -34, 6, -14, -2, -39, 12, 25, 17, 25, 8, -62, -34, -33, 8, -44, -36, -22, -6, 34, -27, 16, 38, 38, 47, 82, 23, 26, 67, 24, 65, 4, -8, -47, -53, -20, -20, -51, -20, -5, -22, -37, -91, -66, -53, -31, -26, 15, 4, 1, 21, 40, -7, -27, 0, -53, -49, -26, -23, -24, -94, -59, -88, -40, 1, -13, -40, -21, 21, -38, 14, -16, 14, -27, -38, 4, -38, -43, 38, -4, -45, -18, -9, 14, -31, -22, -61, -58, 22, -68, -66, -85, -7, -10, -17, -53, 17, -11, 31, 32, -10, 7, 46, 19, -6, 68, 39, 28, 36, 6, 63, 56, -19, -15, -59, 3, -72, 18, 27, 32, 5, -2, 9, 20, 5, 69, 9, 59, 62, 3, 41, 34, 20, 54, 71, 59, 68, 60, -8, 64, -17, 41, 39, 39, 33, -17, -48, -83, -36, -26, -122, -119, -81, -73, -39, -81, -35, 21, 45, -4, 40, 22, -9, -50, -51, 39, -23, 26, 51, 36, -9, 16, 20, -40, -11, -16, -15, 25, -50, 11, -22, 31, 53, 11, 27, 41, 80, 66, 44, 35, 43, 27, -15, -10, -30, 26, -55, -8, -8, -24, -35, -36, -7, -14, -48, -29, -32, -31, 29, 32, 11, -3, 34, 56, 6, 9, 70, -7, -8, 8, 39, 48, 14, 28, -12, -16, -26, -6, -8, -24, -31, -37, -25, 35, -21, 43, 14, 35, 24, 14, -44, -10, -7, 32, 27, 25, -33, -35, -34, -4, -17, 15, -33, 35, -28, -19, -12, 16, 29, -30, -27, 6, -52, 11, 34, 31, -48, -36, -46, 4, -15, -1, 29, 8, -1, -46, 39, 4, -47, -37, -12, 16, -19, -14, -46, -23, -29, -48, -31, -27, -14, -15, 8, 6, -28, 41, 8, 42, -10, -3, -3, -27, 17, 33, -14, -30, 26, -10, -33, -14, 31, 33, -14, 38, 39, 1, 10, -38, 44, -1, 38, 5, -2, 35, 5, 3, -85, -75, -55, -85, -80, -79, -67, 5, -73, -73, -5, 23, 15, -20, -17, 36, 22, 4, -8, 0, 10, -16, -53, 6, -30, -42, -67, -79, -22, -64, -76, 24, 3, -13, -47, -20, 4, 11, -33, 24, -26, -22, 20, -2, 33, -3, 9, 46, -10, 38, 24, 52, 31, -4, 62, 18, 45, 33, -3, -36, 22, 11, -68, -32, -76, -29, 5, -20, -67, -20, 7, 37, -10, -33, 7, 26, 34, 25, 32, -34, 7, 11, -16, 10, 13, -28, 27, -1, -26, 1, -38, 11, 22, -4, -49, 76, 85, 24, 2, 68, 34, 60, 61, 50, 9, 15, 67, -16, 8, -17, -53, 37, 2, -25, 40, 20, 33, -17, 28, -12, -10, -5, -30, -15, -10, 20, -18, 9, 19, -5, 53, 57, 74, 80, 49, 3, -3, 59, 60, -50, 29, 4, -39, -56, -48, -41, 6, -56, 24, -33, -27, -87, -75, -26, -27, -41, -51, -82, -13, 17, 53, 5, 10, -2, 21, 49, 39, 21, 0, 9, 16, -56, -55, -3, -4, 19, 46, 21, 40, 6, 28, 61, 37, -43, -30, -17, -32, -15, -38, -38, -39, -35, -11, -14, -44, -42, -48, -3, -6, 18, 25, 21, -24, -36, 16, 21, -8, 6, -58, -37, 6, -54, -74, -44, 29, 1, -21, -55, -38, -29, 17, -48, -22, 36, 35, 24, -9, 35, 2, -30, -9, -13, 25, -5, 8, -37, 20, 3, 18, 9, -5, -15, 28, 0, 15, 7, -1, -9, 28, -51, 29, -23, 31, 33, -8, 29, -44, -32, -52, -38, -63, -57, -84, 8, -70, -43, -53, -51, -63, 8, 3, -30, -27, 36, -10, 28, 17, 3, -30, 13, 1, 18, -23, -30, -19, -38, -27, -12, 34, 47, 38, 51, 35, 34, 10, -65, -13, -61, 9, -99, -97, -99, -40, 17, -33, -67, -5, -7, -40, -48, 33, -11, 12, 4, -1, -14, -76, -70, -48, 32, 11, -30, 18, -1, -41, -15, -23, -25, 29, 43, 34, -20, -9, -15, -35, 51, -4, -18, -8, 0, 9, -11, 4, -8, 3, -40, -16, -38, -27, -81, -80, -26, -29, -39, 8, 3, -17, -61, -29, 5, -28, 10, 31, -12, 12, 39, -25, 2, -1, -57, -9, -71, -57, -49, -92, 0, -86, -107, -39, 8, -4, -21, -32, -27, 28, 29, 27, -32, 14, 10, 41, 23, 13, -27, -31, 26, 7, -7, -27, 15, 40, 19, -42, 28, 47, 36, 27, 33, -28, 26, -6, -46, -27, 8, 1, -3, -34, -10, 11, 18, -11, -15, -24, 31, 11, 41, 4, 6, 40, -14, 10, 15, 34, 13, 41, -15, -53, -34, -58, -34, -65, -84, -59, -60, -64, -93, 4, -35, -7, -73, -16, 12, -62, -45, -15, -31, -36, -3, 8, -42, -29, -43, -54, 6, 72, 13, 52, 57, 0, 70, 15, -18, 60, 59, 2, -6, -5, -48, -45, -26, 6, -32, -2, -46, 34, -28, -38, -54, 10, 11, -29, -83, -45, -71, -42, 4, 19, 17, -44, 24, 6, -40, 36, 23, -22, 5, -38, -36, -29, 36, 11, 1, -11, -3, 13, 12, 2, -17, -27, -38, 44, -15, -23, 3, 7, 16, 16, 32, 28, 51, 4, 9, 30, 55, 45, -23, 43, 16, 16, -38, -34, -51, -48, -36, 41, 30, -9, -31, 43, 8, 18, -33, -26, 19, -17, 20, -17, 44, -6, 23, 3, -15, -44, -28, 14, 21, -50, 10, -49, 19, -46, 11, 41, -45, -29, 57, 41, 54, -48, -5, 51, 4, -21, 32, 35, 40, 2, -58, 5, -72, -3, 26, 31, 63, 55, 2, 6, 23, 73, 22, 57, 62, 18, 16, -36, 14, -5, 43, -41, 17, 21, -33, -35, 26, -8, -17, -11, -2, -19, 24, -15, 5, -17, -3, -22, -42, -21, 11, -61, -46, -37, -3, -19, 6, -10, 23, 24, 3, 34, 31, 17, -10, -3, 27, 2, -9, -15, -12, -37, -11, -22, -8, -1, -23, -3, -35, -76, -81, -68, -59, -80, -95, -117, -40, -51, -104, -111, -9, -9, -26, 4, -44, 19, 37, 29, -29, 9, -15, -1, -10, 27, -41, -24, 30, -25, 18, -16, -1, -41, 1, -36, 38, -43, -12, 40, 35, -23, -47, -43, -9, 10, -24, 13, 3, 2, 26, 1, -17, -6, 7, -15, 19, 10, 19, -44, 13, -39, 43, 13, 22, 0, -33, -13, -9, 34, -22, -21, -29, -44, -42, 41, 35, -18, -19, 25, 27, -16, -34, -57, -17, -86, -25, -17, -22, -85, -77, -14, -42, 19, 16, 26, 40, 52, 16, 1, 18, 26, 4, -38, -16, -33, -2, 45, -3, -41, -1, -3, -5, -17, 7, 18, -18, -50, -6, 13, -9, 9, 41, 1, -1, -14, 0, -18, 15, 75, 28, 55, 31, -6, 53, 3, -36, -24, -49, -49, -77, -53, -70, -84, 19, 8, -19, 20, 24, -47, -38, 22, -15, -14, -54, -25, -36, -25, -24, -34, -14, 6, -32, 32, -28, 31, -22, 35, 22, -21, -16, 8, -24, -16, -3, 35, 64, 36, 43, -24, 10, 43, 58, 50, 49, -4, 32, 9, -41, -9, 14, -59, -20, -1, 10, -6, 3, 24, -12, -31, -33, -32, 32, -3, 26, 40, 8, 1, -3, -60, -36, 26, 17, -5, -56, -19, -13, 34, -46, 28, -10, 22, -1, -20, -22, 28, -10, -39, 1, 26, 34, 33, -10, -33, -2, 15, -26, 23, -1, -2, 11, 27, 30, -9, 11, -19, -7, -13, 49, -15, -11, 48, -6, -17, -5, -20, -32, -8, -13, 42, 10, 39, 6, -40, -2, 28, 9, -35, 13, 41, 8, 1, -57, -104, -75, -32, -58, -39, -78, -71, -28, -18, -37, -2, 8, 21, -21, -51, -34, -16, 33, 36, -39, 3, -14, 19, 32, 20, 42, -3, 15, 24, 2, 32, 32, 43, 11, 39, 26, 20, 55, 43, 2, -15, 39, 14, -13, 20, -56, 12, 30, -26, -7, 0, 9, 30, -32, 37, -4, 33, -39, 2, 35, 15, -29, -20, 31, 1, -33, -14, 26, -9, 5, 6, 43, -30, 11, 41, -14, -31, -42, 39, -6, -25, -50, 28, -31, -21, -30, 15, -45, -33, -57, -12, -28, -88, -41, -67, 68, 15, 18, 6, 52, 24, 17, -7, 32, 67, 42, 32, -15, -7, 40, 1, -45, -39, -57, -11, 27, -5, -53, -17, -28, -22, 0, -39, -41, -46, 24, 33, 16, 15, -42, -8, 42, 6, 0, 25, 26, 3, 13, 42, -11, -22, 17, -23, -7, -32, -32, -27, -24, 28, -11, -32, 29, 24, 32, -25, 14, 10, 29, 37, 7, -19, -36, 7, 25, -75, -37, -60, 32, -26, -51, -2, -1, 8, -38, -19, 26, 36, 92, 34, 85, 75, 48, 26, 54, 54, 38, 42, 22, -33, -1, -6, 6, 13, 60, 8, 84, 0, 64, 24, -7, 12, -4, 16, -33, -59, 10, -23, -12, -8, -11, 12, -6, 62, 14, 39, 35, 57, 6, 26, -50, 7, -22, 7, 40, 43, 68, 68, 8, 3, 9, 63, 54, 70, 49, 59, 19, -31, 18, -8, 90, 42, 29, 29, 44, 18, 19, 28, 10, 33, -7, 3, -17, -36, -8, -39, 20, 60, 26, -20, 56, -17, 3, 19, 9, -33, -3, -4, -34, -3, -83, -35, 50, 56, 57, 18, -12, -12, 11, 9, -30, 18, -41, 33, -52, -61, -21, -88, -28, -28, 30, 14, -35, 32, 23, -31, 23, 38, 24, -16, 8, 10, -48, 18, -25, -48, -52, 21, -39, -21, -14, -42, -47, 11, 26, 40, 4, -25, 21, -1, -3, -104, -119, -67, -38, -102, -110, -45, 1, -72, -40, -79, -17, -36, -2, -32, -41, 3, 34, 12, 44, 21, -30, 32, -5, 44, 2, -42, 42, 15, -7, 25, 42, 49, 1, 43, 29, 36, 37, 17, 43, -7, 25, -8, -23, -42, -32, 11, 5, -7, 6, 43, 11, 30, -37, 31, -16, -35, -3, -28, 31, 17, -4, -12, 37, 10, -36, -35, -14, -42, -6, 6, -27, 16, -24, 38, 20, 9, 32, -13, -33, -32, 39, 11, 21, -41, 41, -8, 20, 15, -9, -18, 5, 5, -15, 42, -17, -1, 6, 47, 48, 38, 58, 20, -41, -44, 5, 11, -42, -90, -6, -18, 9, -24, -36, -18, -19, -64, -87, -47, -9, -74, -65, -57, 28, 8, -43, -49, -5, 5, 2, -25, -98, -101, -116, -11, -50, -49, -38, 24, -60, 6, 5, -27, 14, 68, 30, 60, 6, -8, 30, 34, -11, -29, 63, 18, -79, -22, -42, -30, 12, -45, -75, -56, -56, -74, -74, -54, 10, -47, -78, -63, 9, -58, -56, -36, 54, 60, 68, 47, -4, 35, 33, -17, 52, -16, -17, -10, -37, -56, -9, -58, -13, 11, -43, -33, 40, 22, -1, 1, -17, -24, -11, -25, -27, -6, 44, 30, -10, 23, 5, 45, 9, -9, 17, 14, 21, 46, -29, 7, 5, -4, -17, -16, 6, -2, -4, 24, -9, -42, 42, -7, 17, -33, 32, 6, -13, 36, -28, -24, -1, -72, -18, -14, -22, -1, -38, 1, -43, 32, 21, -6, -7, -23, -25, -33, -44, -37, 10, -48, -46, -7, -64, -42, 0, -52, -39, -20, -41, 34, -43, 31, 45, 37, 17, 69, 48, 59, 54, 77, 31, -18, 48, 56, -63, 21, -56, -35, 8, 61, 6, 65, 67, 39, 48, 51, 37, 46, -16, 35, -1, -41, 2, 18, 27, 9, 50, 25, -16, 10, 8, 5, 23, 43, -9, -17, -40, 31, -31, -54, -35, 10, -27, -10, -23, -27, -8, 6, 48, 25, 60, -27, 29, 24, 16, -57, -59, -49, 29, -30, -35, -40, -1, 26, -19, -4, 19, -2, 23, 33, -10, -12, 25, -9, 37, 25, -28, 17, -35, -1, 16, -3, 9, -22, -3, 6, -23, -7, -19, 6, 7, 14, 1, -4, -1, 34, -36, -31, -20, 8, 1, 4, -41, -54, -40, -15, 17, 26, -22, 10, -10, 13, -38, -4, -29, -28, -14, 12, 25, -3, -9, 23, -19, 17, -62, -22, -45, -23, 15, -32, -45, -10, -39, 26, -27, 26, -9, 54, 15, 14, 73, 12, 74, 83, 15, 52, 34, 39, 4, 44, 13, 9, -64, -53, -47, 5, 18, 30, -3, -17, 13, 26, -23, -11, -30, -36, 4, -6, 28, -21, 10, -41, 38, 11, -32, 10, -18, 24, -23, -26, -24, -23, 8, 15, 40, -40, -8, -54, 0, -72, -35, -73, 31, -69, -70, -47, 39, -40, -84, -78, -23, -64, -56, -60, 1, -33, -56, -3, -14, -22, 24, -17, -29, 42, 13, -30, -40, 37, 13, -23, 31, -30, -31, -34, 20, 16, 1, -43, -15, -24, 8, -47, -40, -2, -21, -18, -8, -17, -8, 11, -54, -69, -55, 13, 35, 29, 38, -47, 16, 45, -33, -11, -4, 8, 46, -4, 32, 21, 5, 30, -16, -12, -19, -18, -21, 39, -24, -28, 26, 5, 30, 54, -26, 12, 43, 16, -35, -37, -51, -13, 58, -25, 38, -3, 45, 52, 65, 29, 27, 57, 30, 45, 4, -29, -17, -37, -48, -35, -19, 15, 39, 0, -12, -12, -7, -32, -5, -16, -17, -21, 5, -41, 13, 18, 49, 49, -28, 46, 44, 20, -49, -33, -45, -41, -42, -51, -15, -54, 7, -16, -22, 15, -6, -30, 17, -37, 44, -9, 19, -43, -43, -15, -4, 6, 30, 16, 14, -53, 8, 10, 17, 4, -16, -49, -11, -18, 30, 44, 29, -15, 8, 44, 72, -4, 12, 24, 53, 38, 6, 44, -28, 20, -12, -15, -49, 9, 17, -3, -13, 42, 6, 30, 36, -22, 17, 27, 22, -25, -23, 36, -19, -12, 44, 15, 63, 8, 14, -20, 37, -7, 37, 9, 29, 4, -33, 23, -11, -37, 24, -21, -43, -40, -60, -7, -74, -34, -10, -61, -26, -22, -17, 5, -8, 8, -21, -12, 45, 28, -8, 29, 58, 59, -30, 21, 10, 42, -32, -23, -71, -66, 29, -1, 7, 17, -19, -48, -17, -1, 29, 45, 21, 33, -12, 22, 16, 20, -32, -13, 11, -19, 8, -22, 5, 44, -1, 15, -15, 29, 16, -4, 30, -27, -37, -32, 5, 15, -29, 45, -3, 6, -11, 26, -45, 18, -6, 10, 11, 28, 16, -1, 16, 15, -41, 30, -41, -42, 7, -43, 2, 8, 43, -12, -1, -19, 19, 2, 1, 13, 32, 6, 18, 59, -31, 14, -2, -3, -83, -45, -21, -53, 58, 54, -3, -32, 31, 17, -30, -51, -31, 35, -51, 18, -14, 5, -14, -57, 4, -2, -52, -5, -47, -64, -56, -2, -43, -8, -24, -57, -41, -17, -17, -16, -33, 8, -42, 7, -13, -47, -21, 29, -48, 32, 34, -51, -25, -10, -41, -31, -30, 15, 12, 18, 13, 41, 19, 13, 43, -37, 26, -10, -16, -1, -8, -3, 85, 61, 23, 78, 59, -2, 62, 68, 61, 20, 48, 3, -18, -21, -75, -9, 38, 6, 15, 35, -28, -37, -31, 24, 4, 1, 31, -32, 13, 18, 1, -2, 12, 8, 0, 12, -23, -4, 29, -10, 28, -42, -27, -14, 15, -32, 44, -41, 9, 1, -73, 30, 53, 34, -43, -29, 3, -43, 35, -35, 22, -7, 29, -22, 37, -19, -7, -25, -14, 2, 24, 34, 0, 26, -19, 11, -40, 12, -34, -36, -15, 21, 17, 35, -51, 4, -57, -29, 10, -17, -52, 29, 27, 19, -33, 37, 8, 40, 28, -42, -33, -31, -14, 29, 18, 25, 1, 10, -16, -6, -23, 40, -42, -12, 23, 23, 14, 11, 20, 38, 10, -5, -2, 5, 8, 25, -19, -31, -91, -37, -35, -3, -7, 8, 53, 16, -46, 82, 34, 0, 24, -39, -22, 8, 2, -38, 36, 25, -26, 36, 15, 13, 24, 11, -33, 6, -39, -16, 33, -21, 11, -26, -23, -38, 10, -31, -38, 44, -25, 13, 13, -37, -1, 6, 6, 3, 38, -31, -39, -41, -12, 42, -12, -24, -37, 20, 36, -25, 32, 43, 23, 11, 14, 9, 42, 85, 78, 62, 56, 70, 57, 22, 42, 31, -18, -32, 35, 4, 57, 66, 63, 25, 57, 73, 10, 14, -3, -8, -10, -13, -54, -49, 16, -33, -12, 27, -5, 36, -18, 38, -5, 29, -13, -11, -12, -59, -2, -64, -2, -5, -28, -38, -16, 4, 12, 36, -43, 23, 4, 24, -18, 14, 15, -42, 25, -12, 18, 10, -62, -23, -68, -5, -70, 20, -4, -65, 11, -21, -10, 32, -42, -33, -8, 42, 24, -33, 8, -2, -14, 10, -24, -12, -3, -3, 11, -41, 35, -27, 31, 1, 29, -21, -2, -42, 29, -39, -9, -5, 20, -52, -52, -39, 14, 26, 32, 39, -41, -1, 44, -1, -19, 13, -34, 44, -40, 19, -21, -38, -34, -38, -42, -71, -22, -7, -57, -73, -21, 33, -55, 12, -32, -39, -27, -40, -35, 24, -30, -19, 19, 42, -35, -6, -40, 1, 43, 3, -35, 31, 0, 7, -11, 42, 21, -51, -18, -20, -8, -27, -68, -26, 3, -29, -3, 19, -28, -11, 18, 32, -25, 25, -5, 24, 24, 0, 2, 33, 7, -12, 15, -11, 34, 15, -26, -30, 52, 78, 28, 31, 65, 9, 94, 93, 62, 24, 70, 46, 10, 34, 15, 36, -25, 46, -35, 5, -34, -24, 19, 3, -12, 31, 28, 9, -46, -10, -45, 9, 8, 1, 25, -40, 10, -31, 38, 4, -23, -34, -28, 39, 39, 30, -39, 32, -27, 9, 16, -2, -1, 7, 0, 41, -12, -12, 32, 28, -39, -4, -21, -7, 39, -33, 28, 6, -18, -39, 26, -16, 19, 8, 23, 42, 8, 20, 18, 33, 51, 41, 58, 77, -12, 30, 53, 34, -14, 12, 59, 61, 3, -6, -52, 13, -25, -11, -48, -21, -51, -72, -32, -73, -20, -66, -29, 17, -22, -46, -24, -40, -32, -44, -32, -34, -29, -24, 19, -19, -48, 34, 6, 3, -46, -42, -32, -48, 30, 52, 9, 37, 16, 31, 3, 61, -7, 15, 41, 20, -28, -17, -39, -56, 43, 21, -13, 7, 42, -1, 0, -41, 23, -34, 1, -14, -33, -3, 22, 32, 6, -8, -30, -40, 21, 2, -22, 20, 28, 35, 4, -4, -26, -34, 31, -5, -32, -41, -65, -61, -39, -47, -14, -33, -49, -62, -48, -68, 13, -26, -25, -4, -16, -42, -26, -48, -50, -72, -81, -23, -43, -2, -45, -51, -18, 7, 20, -1, 18, -49, -22, 12, -10, -15, -36, -13, -8, 30, -11, 18, 27, 32, 27, 0, -31, -1, 16, -40, 3, -46, 16, -30, 0, 39, 18, 24, 8, -1, -35, -33, 43, 59, 43, 51, 5, 15, 47, 28, -3, 55, 28, 8, 4, 19, 0, -53, 27, -50, -9, -29, -23, 14, 10, 5, 18, -29, -36, 13, -37, -15, -20, -46, 47, 51, 10, 31, 57, -33, -6, -3, -54, 0, 42, 24, -52, -18, -18, -81, -32, -12, 3, 30, 16, 12, 21, 31, -53, 9, 8, -44, -44, -21, -40, 5, 54, 31, -2, -15, 65, 46, 7, 22, 46, -4, 23, -4, 5, -23, -25, -43, 9, -3, 8, -46, -32, -26, -38, -16, -50, -16, 0, -20, -21, -11, 28, 29, 14, -12, -41, -21, -26, 42, -39, 44, -24, 37, -41, -3, 14, 42, 3, -34, 40, 36, -22, 13, 39, -4, -14, 28, -44, -60, -36, -45, -53, -46, -31, -73, -32, -13, -38, -19, -45, -62, -51, -35, -17, -37, 10, -52, -23, 10, 30, -36, -43, -58, 0, -30, -48, -37, -34, 0, -38, -26, -28, -21, 26, -52, -14, 29, -5, -10, -29, -6, -14, 5, 0, 6, 32, -31, -17, -16, -23, -18, -17, -18, -50, -84, -11, 7, -85, -35, -21, -23, 11, -49, -4, 27, -31, -31, -45, -4, 57, -8, 71, 49, 46, 36, 48, 21, -15, 52, -23, -9, -13, -8, -55, -49, 13, -7, -7, 30, 39, 20, 14, -32, -21, -17, -7, -40, 34, -10, -7, -38, -35, -7, 12, -29, -14, -32, -43, 25, -24, -25, 7, -19, 31, 5, 10, -34, 67, 15, 43, 4, 56, 40, 2, -4, 55, 59, 10, 27, -59, -30, -12, -60, 2, -9, 20, -23, -42, 40, -35, 19, 41, -39, -29, 41, -7, -25, -30, 31, -24, 45, 0, -41, 32, 39, -25, -36, -38, -1, -13, 40, -37, 20, 1, -22, 55, 5, 20, 25, 69, 51, 19, 17, 49, -15, 36, 42, -30, 31, -52, -18, -73, -71, -64, -74, -35, -127, -108, -22, 4, -101, -94, -47, -38, -25, 19, -51, -35, -62, -6, -7, 31, 15, -35, -41, 16, -61, -7, -5, -32, -80, -32, 3, 52, -23, 2, 27, 51, 26, -8, 33, 1, 15, 45, 19, -56, -50, -41, -37, 51, 13, -41, -54, -8, 46, 12, -29, 13, -22, 22, -8, -48, -56, 10, -41, 1, 42, -36, 14, -37, 22, 12, 16, -41, 32, 7, 24, -14, -29, 33, -6, -44, 15, -22, -16, -6, 29, -38, -26, 19, -1, 23, -34, -13, -21, 22, 22, 9, -35, 13, 9, 26, -32, -10, 27, 39, 23, -3, 6, -44, 10, 23, -34, 3, 39, -15, 33, 3, -31, -8, 23, -4, -31, -8, 44, 7, -32, -18, -1, 28, 9, 31, 41, 40, -19, 13, -24, -42, 37, 13, -13, -11, 44, 22, -19, -66, -42, -36, 19, -39, 41, -32, -1, 64, 45, 46, 10, -34, 15, -25, 0, -47, -57, -60, -46, -15, -65, -34, -61, -26, -29, -55, 6, -36, -55, -47, 10, 38, 48, 12, -24, -6, 21, 15, 37, -16, 1, 2, 16, -33, -68, -73, -70, 79, 72, 32, 40, 91, 25, 70, 46, 12, 55, -24, -15, 18, -4, -51, 13, 53, 47, 21, 15, -4, -4, 33, -15, 16, -2, 9, -21, -17, -28, -41, 16, 4, -35, -17, 25, -7, 13, 25, -20, 32, -37, -21, -23, -19, -17, 25, 20, -3, -4, 40, 5, -34, -1, 1, -12, -23, -41, -5, -7, -23, -16, 0, -23, -42, -15, 48, 16, 17, 18, -5, -41, 4, 20, 30, -31, 20, 33, -44, -30, -69, 5, -17, -38, 20, -26, 0, -42, -15, -45, -56, -41, 24, -20, -32, 3, -50, -75, -33, -66, -73, -59, -115, -33, -19, -82, -48, -57, -46, -14, 27, -22, 61, 5, 70, -1, 70, -2, -4, -11, 53, 14, -23, -25, -43, -17, -83, -32, -28, 36, 0, 31, 47, 12, 56, 9, -27, 63, 49, 20, -76, -44, -49, -57, -16, 51, 21, 48, -56, 10, -64, 9, -107, -108, -79, -28, -53, -93, -33, -65, 58, 54, 78, 84, 45, 32, 63, 47, 13, 65, 65, -6, -25, -3, -4, -15, -19, -26, 37, -34, 5, 0, -28, -12, -43, -7, -1, -4, 35, 28, -21, -39, 43, 16, 7, -24, -15, -25, 46, 52, 44, 12, 21, -7, 5, 15, -19, 14, 0, -20, 3, 31, 30, -31, 54, 19, -17, 8, 41, 23, 20, -46, -39, 10, 46, -12, 22, 1, 41, 51, 25, 42, -21, 3, -34, 15, -40, -64, -14, -21, -42, -33, 10, 7, 18, 27, 20, -8, -5, -39, -41, 3, -2, 3, 24, -5, -26, -15, -51, -79, -59, -81, -80, -13, -28, -65, -46, -14, -7, -43, -42, 12, -26, -23, -8, -17, 20, -3, 65, 20, -20, -4, -13, 38, -6, -11, -55, -34, 40, 24, 17, 17, 30, -3, 14, -30, 7, -29, 10, -32, -45, -63, -45, -29, 30, -34, -11, 34, -28, -28, -34, 21, -4, -30, 18, -28, 19, -37, 11, 0, -15, -20, -34, -42, 63, 35, 50, -11, 2, -9, 60, 59, 22, -42, 5, 15, -30, -28, 15, 13, -21, 1, 12, -32, 1, -7, 11, -27, -17, 9, -64, 15, 27, 1, -14, 51, 17, 58, 5, -27, 59, 49, -13, -10, -25, -75, -32, -72, 19, -54, 3, 30, 2, -28, -7, -33, -18, 1, 9, 18, 19, 1, -1, 15, -36, -2, 0, -18, -1, -26, -33, -44, 21, 12, -13, 5, -32, 31, -24, 31}, + {45, 13, 4, 31, -37, -31, 33, 45, -11, 7, -59, 1, -47, -79, -62, -58, -66, -55, -30, -31, 19, 10, 7, -44, 22, 55, 26, -20, 27, -27, 27, 38, -46, -29, -83, -87, -30, -65, -25, 19, 14, 42, 13, -5, 9, 38, 17, 0, 44, -38, 23, 9, 20, -39, -44, -9, -19, -20, -19, 7, 44, 29, -13, -36, 39, 42, 15, -1, 17, -11, 14, 27, -9, -35, 25, -17, -41, -61, -28, -26, -3, 39, 48, -5, 21, -17, 36, -9, -37, 11, 4, -39, 24, 3, -22, -21, -30, 0, 0, 53, 48, 12, 6, -6, -69, 10, 7, -30, -17, -2, -55, -13, -24, 7, 5, -40, -23, 9, -10, 20, -36, -22, 18, 6, 32, -5, -30, 14, -34, -26, -25, -10, 40, -20, -8, -27, 23, 19, -40, 28, 37, 31, -7, 8, -17, -19, -18, 18, 13, -49, -46, 27, 5, -36, 2, 39, -19, 26, -18, 21, 75, 52, 62, 13, 71, 28, 70, 50, -50, -49, -57, -34, -47, -36, -30, -61, -57, -11, -67, -64, -26, 8, 32, -41, -11, 48, 0, -12, 28, 42, 15, 1, 3, 5, -70, -77, -17, -60, -36, -66, 28, 6, -26, 22, 29, 36, 24, 56, 29, 13, 30, -16, -39, -33, 26, 7, -5, 12, -5, -13, 8, 8, 20, 9, 18, 10, -49, -31, -15, -49, -58, -15, 11, 44, 0, -4, -1, 14, 15, 12, -6, 22, 54, 80, -22, 6, -5, 40, -38, -30, -3, -59, -30, -86, -52, -40, 40, 56, 98, 64, 84, 1, 7, -5, 38, 36, -43, -37, -15, -56, -66, -21, 55, 8, 66, 54, 25, 17, 47, 13, -61, -14, -74, -56, 8, -8, -13, -30, -17, -43, -54, -38, 31, 25, 19, 51, 41, 0, 4, 31, -23, 13, -15, -28, 29, -18, -14, 17, -13, 27, 27, -36, -41, -40, 21, -8, 12, -18, -31, 3, 91, 11, 3, 20, 3, 46, 33, -7, -4, -13, -35, -60, -40, -42, -80, -23, -13, -23, 24, 9, 17, 14, 35, -42, 46, 43, -23, -25, 13, 41, -23, 40, 36, 58, 69, 70, 56, 30, -4, 52, -16, -78, -29, -62, -60, -26, -101, -52, -27, -29, 30, 29, 40, 36, -16, 37, -41, -12, 25, 29, 34, -4, 41, -21, -19, 3, 48, 33, 25, -22, -30, 7, -4, -5, 33, -29, -46, -30, 36, 36, 33, -50, -18, -30, -8, 26, -37, 17, -4, 24, 42, 24, -33, -20, 12, 16, -18, -34, -51, -26, -46, 26, 19, -12, 26, 6, 36, -11, 18, 10, -34, 45, -35, 30, -18, -43, 8, 33, 25, 40, 3, -18, -4, 37, 38, -15, 11, 44, 12, 28, -39, 21, -1, -42, 8, 36, -27, 20, -38, 5, -2, -27, -12, -20, 19, -16, -74, -9, -63, -34, -28, -33, -16, 35, -10, -6, -15, 7, 4, -29, 14, 22, 52, 35, -10, 30, 42, 43, -13, 4, 21, -29, -30, 27, -42, -30, 4, -9, 17, -28, -22, -20, -2, -39, -45, 36, 17, 0, -6, -4, -35, -23, 72, 6, 75, 45, 1, -21, 46, 46, -48, -14, -28, 12, -67, -20, -54, -21, 62, -22, 0, -28, 45, 49, -14, 18, -25, 36, -14, 41, -40, 43, 40, -37, -40, 8, -29, -13, 31, -25, 30, -26, 15, -36, -12, 41, -18, -8, -31, -17, 20, 92, 62, 16, -8, 51, 38, -15, -68, 5, -51, 11, -27, -42, -71, -60, 28, -15, 31, -11, 43, -4, 55, 58, -47, -19, -16, -54, -73, -16, -13, -2, 27, 79, 14, 49, 36, 55, 50, 14, -47, -37, -42, -49, -50, -15, -58, -30, -13, -44, 46, -20, -46, 21, -4, 3, -36, -41, 18, -49, -11, -5, -14, -49, 8, -22, 32, 17, 2, -40, -2, -20, -28, -41, 21, -28, 13, -12, -41, -4, -21, -28, -27, 1, 17, -31, -44, -64, 1, -23, -7, -64, 1, -5, -23, -31, -26, 9, 0, 28, -39, 37, 37, -35, 7, 33, 2, -40, -11, -11, -45, -34, 0, 32, -39, -15, 40, -4, 25, -14, 14, -22, -22, 37, -16, -27, 1, 0, -36, 14, 21, -4, 20, 21, 39, -38, 43, 24, -20, 39, -20, -33, 27, -34, 25, 35, -30, 23, -35, -1, -29, 9, 20, -5, -31, 24, -19, 0, 7, -11, 33, -48, -30, -26, -42, -43, -37, -66, 25, -16, 23, -14, 7, 16, 14, -15, 12, -30, -16, 20, -26, 41, 29, 8, 36, -16, -23, 45, -11, 44, -29, -40, 41, -6, 29, 31, 0, 19, -38, 10, -98, -53, -43, 2, 0, -88, -19, -17, 42, 25, -9, 16, 21, 82, 80, 61, -16, -6, -18, -21, -27, -32, -41, 30, 19, 38, 26, -7, -13, 0, 1, 12, -21, 26, -44, 0, 5, 12, -6, -15, 48, 14, -19, 50, -7, -20, 19, -4, 9, -8, -31, -72, 37, -41, -8, -19, 66, 18, 28, 39, 32, -36, -19, 29, 7, 25, -35, 16, 26, -30, -28, -22, -55, -43, -53, 26, 8, -76, -43, -39, 0, 0, 20, -15, 8, 65, 59, 49, -12, 25, 52, 25, 6, 3, 21, 1, 6, 18, -2, -19, -25, 14, 37, -3, 46, 37, 45, -17, -32, 26, -6, 0, 0, -24, 0, 10, -20, -33, -14, 9, -15, -32, -3, -37, 1, 43, 1, 32, 9, -8, 4, -11, 37, -33, -33, -26, -2, 54, -11, -31, -39, -71, -45, -66, -42, -53, 19, -22, -45, -13, 51, -5, -42, -46, -8, -25, -30, -45, -64, -49, 12, 30, 33, 10, 39, 49, -12, -16, 83, 50, 10, 74, 24, -22, 26, -25, -79, -72, -77, -45, -55, -43, -92, -62, 46, 47, 38, 21, 4, -37, -25, -34, 11, -45, -14, -53, -28, -55, -48, -68, -19, -20, 1, 26, -18, 35, 39, -10, 21, 13, 15, -38, -33, -32, 31, -10, 39, 28, -9, 6, -10, -36, 29, -19, 38, -44, -24, -28, 42, -41, -40, 30, -20, 42, 4, 21, 31, 17, -2, -11, -14, -2, -35, 2, -73, -46, -62, -75, -2, -37, 29, -13, 12, -30, -25, -13, 9, -41, 24, 0, 32, -19, 35, -25, -16, -51, -16, -48, 1, -49, 10, -38, -14, 46, -30, -25, -44, -27, 42, -34, -3, 58, 19, -23, 6, -5, 24, -10, -24, -32, -36, -15, -14, -44, -55, -47, 15, -4, 70, 0, 51, 23, 31, 34, -57, -67, -68, -19, -44, -30, -34, -50, 62, 37, -1, 27, 25, -27, 7, -7, 36, -39, 22, -29, 0, -12, -9, -3, 32, 43, -3, -17, 52, 9, 27, -16, 59, 18, 42, -3, 35, -10, -1, -18, 32, 15, 39, 15, -6, -41, -40, 46, -43, -23, -15, -18, -19, 18, -11, -26, -51, -49, -26, -29, -66, -6, -28, -82, 58, 60, 31, -22, 3, 49, 7, 61, 39, 28, 38, 26, 14, 32, 39, -15, -39, -31, 6, -20, 36, -21, -10, -36, 37, 10, 10, 4, 10, -41, 32, 33, 12, -25, -34, 20, -4, -8, -31, 24, -16, 0, 37, 29, 11, 36, -21, 9, -41, -6, -28, -1, 2, 30, -41, -22, 14, -29, -8, 5, -10, 12, 27, 10, 4, 22, 4, -26, 8, 32, 2, 30, -31, 8, -45, -54, -52, 3, -48, -26, -22, 18, 27, 33, -23, -4, 61, -8, 2, -29, -4, -19, 20, -3, -32, -13, 29, -1, -34, -44, -7, 19, 5, -7, -7, 25, -27, -26, 32, 48, -3, 6, -3, -10, 12, 20, -32, -38, 28, 13, 45, 3, 31, -18, -25, -18, 1, 36, -6, 4, -46, -47, 27, -46, 4, -28, -12, -39, -45, 1, -46, -41, -37, -16, 20, -40, -38, -13, 19, -29, -17, -12, -42, 8, 8, 31, 24, 19, -13, 43, 28, 0, -6, -23, -16, -23, -4, 37, 63, 62, 21, 12, 47, -14, 33, 39, -29, -27, -10, 9, -70, -96, -94, -71, 14, 38, 44, 9, 34, 31, -13, -6, -25, -31, -25, 11, 44, -29, 13, 4, 7, -38, -3, -28, -17, 6, -43, 40, 36, 41, 10, -37, 43, -36, -42, 30, 5, -16, -37, 40, 33, -41, 16, -39, -25, -9, -3, 12, -7, 38, -20, 29, 65, 36, 14, 26, 32, 9, -4, 6, 25, 20, 3, 11, -12, -54, -65, -13, -38, -10, 1, 24, 43, -38, 35, 32, -2, -17, -27, -21, -24, -40, 4, -5, -45, -68, -44, -12, -36, -15, 18, -34, 40, -16, -1, 49, -5, -2, -16, 28, 38, 17, -21, 34, -36, 32, -5, 41, -21, 14, 23, -18, 6, 30, -5, 44, 72, 39, 45, -2, -11, 56, 12, -3, -39, -60, -42, -57, -33, -7, -25, -5, -26, -19, 3, 14, -36, 25, 21, -26, 41, -22, 5, -13, 24, -34, -25, 25, -41, 34, 13, -5, 21, 20, -42, 26, 35, 29, 18, 34, 40, -32, -24, 0, 66, 40, 24, 73, -5, -8, -35, -33, -29, -41, -35, -12, 8, -26, -54, -18, 55, 74, -1, 85, 57, 74, 24, 3, -48, -44, 15, 8, -75, -39, -96, -84, 35, -17, -18, 1, -13, -44, -9, 0, -38, -34, 3, 23, 28, -30, -34, 30, -32, -33, -9, -38, 34, -34, 44, -4, 15, -1, -12, -22, -29, -32, 15, 22, -28, 6, -8, -28, 22, 41, -15, 35, 0, -20, 6, 20, 16, -29, -9, 36, -21, -32, 19, 21, -43, -35, -53, -1, 33, 26, 23, -18, 6, 19, 14, -24, 68, 56, 29, 39, 54, -10, 72, -4, -38, 13, -24, 7, -65, -80, -70, -72, 69, 70, 48, 15, 8, 59, 7, -5, -39, -23, -25, -77, -93, -55, -26, -99, 23, 73, 62, 3, 43, 26, 49, 43, -2, -36, 25, 4, -61, -93, -33, -51, 44, 44, 14, 79, -8, 43, -2, 77, -49, -24, -50, -66, -59, -34, -70, -82, 59, 84, 79, 5, 76, 58, 53, 2, -13, -73, -39, -49, -32, -40, -48, -79, 9, 36, 63, 89, 7, -32, -16, -5, -81, -40, -40, 2, -79, -44, -62, -18, 66, 51, 38, 52, 40, 19, -1, -15, -3, -75, 3, 6, -65, -76, -16, -47, 70, 45, 42, 26, -9, 17, 7, -21, 11, -47, 16, -32, -5, -53, -44, -28, 27, -43, -23, 26, -14, -35, 2, 1, -1, -11, 18, 14, -22, 5, 8, -27, -25, -41, -30, -100, -56, -67, -8, -56, 20, -4, 59, 39, -27, 14, 49, 22, -22, 41, 11, 44, -28, 43, 29, 27, -12, -2, -22, 35, 41, 19, 24, -21, 82, 30, 70, 51, 23, 56, -8, 16, 17, -16, 6, -11, -15, -27, -16, -56, 41, -38, -44, 21, -18, 2, 34, 1, -41, -15, -32, 4, 24, 27, -46, 22, -23, 11, 42, -25, -29, -21, -27, -37, 36, -29, -5, -31, 26, 16, -7, -3, 41, 39, -39, 8, 35, 6, -9, 8, -15, -18, 5, 33, 23, -16, -20, -36, 37, 61, 65, 33, -12, -14, -21, 10, -18, -59, -12, -29, -58, -75, -80, -83, -60, -87, -76, -1, -33, 9, -21, -14, -13, 65, 17, -16, -25, -11, 22, 34, -2, 3, -39, -3, -21, 1, -5, 30, 19, 24, 21, 50, -22, 11, 64, 16, 47, 43, 73, 21, 6, 63, -23, -11, -58, -85, -47, -86, -101, -60, -69, -82, -32, 21, -52, -18, -7, -45, -8, -20, 17, -1, -23, 47, 9, 49, -11, 45, 13, 72, -13, -19, 49, 0, -25, -30, -56, -70, -15, -57, -6, -25, -26, 18, 42, -14, 18, -4, -6, 14, -15, 35, -8, 12, 11, -1, -24, -24, 21, -18, -10, 0, -2, 68, 31, 36, 5, -5, -11, 8, 2, 43, -47, -60, 20, 7, 22, 41, -16, -30, -36, 9, -9, 17, 37, 36, -32, -11, 28, -33, -4, 31, 34, 59, 76, 57, -16, -19, -3, 47, 24, -19, -25, -9, 58, 13, 5, -3, -22, 10, -42, 26, 34, 36, -34, 16, 6, -8, 25, 37, -46, -40, 21, 2, 46, 40, 83, 31, 12, 66, 48, 68, -75, -45, -3, -26, -78, -31, -100, -94, 24, 2, 23, 52, 9, 21, 35, 30, 17, 7, -32, -2, -35, -29, -59, -26, -27, 23, 56, 6, -31, 20, -3, -2, -47, -23, -45, -37, -30, -26, -9, -15, 72, 2, -1, 18, 43, 23, 36, 33, 18, 25, 2, -46, -10, -21, -4, -58, -44, 46, 30, 9, 19, 7, 25, 10, -39, -29, -35, -19, 5, 8, -19, 11, 35, -7, 5, -33, 43, -23, -38, 33, -42, -44, 14, -18, 24, 1, 40, 33, -8, 51, -15, 4, 3, 23, 26, -2, -14, 21, -56, -12, -21, -10, -33, 20, 0, -5, -30, -40, -21, -11, 4, -15, 43, 41, -27, 10, -16, -35, -7, -44, -44, -1, -5, 0, 12, 19, 46, -23, -46, 22, -16, 4, -20, 33, -14, -24, 45, 0, 26, -7, 38, 58, 69, 46, -5, -48, -62, -30, -87, -25, -63, -47, 7, 20, 59, 40, 41, 27, -2, 14, 7, 52, 30, 48, 47, -27, 6, 38, -30, -11, -14, 18, 8, -10, -23, 31, 12, 41, -23, 34, -2, 0, 0, 21, 59, -8, -37, -18, 14, -22, 16, -37, -5, -42, 36, -15, -37, -29, 15, 3, 26, -12, -55, -31, 26, 49, 17, -3, 9, -13, -3, 2, -38, 24, -22, -24, -2, -34, -38, -13, 34, -18, -32, -32, -22, -5, 14, -31, 14, -37, -42, -31, -3, -55, -62, -56, -37, -22, -58, 24, 53, -1, 41, 30, -26, 49, 46, 22, -34, 18, -21, 52, 45, -41, 4, 40, 1, 31, 23, -30, -17, -35, 21, 14, -18, 6, 51, 15, 14, 28, -12, -12, 14, 28, -7, -17, -66, -15, -11, -38, 59, 59, -4, 34, 11, 19, 50, 33, -47, 17, -10, -16, -62, -8, -74, -30, -29, -1, 44, -23, 21, -44, 23, -12, 13, -31, 27, -28, -26, 40, 7, 7, -3, -6, -33, -15, -16, 27, 12, -4, -41, -28, -37, -38, 15, -40, -7, -8, -12, -11, 40, -35, -18, -28, 48, -19, 3, 23, -14, 30, -7, 19, -10, -50, -36, 20, -10, -33, -12, -30, -17, -37, -9, 39, 3, 10, -41, -20, 24, 44, 28, -6, 66, 24, -26, 10, 14, 47, 10, -49, -25, -7, -18, -41, -8, -68, -34, 29, 21, -24, -8, 42, 23, -34, 4, 45, 12, 40, 40, 20, -37, -27, 24, 62, 87, 13, 12, 2, 81, 3, -26, -35, -17, -41, -60, -67, -107, -15, 3, 18, 33, 18, -37, -19, -46, 10, 53, -16, -56, -40, 28, 37, 60, -3, 67, 16, 46, 5, 20, 22, 55, -8, -10, -62, -42, -52, -5, -63, -88, -54, 13, 7, 63, 29, 55, -6, 36, 5, 13, 40, 5, 35, 1, -50, 4, -34, 44, 28, -30, 36, -3, 45, -28, 24, -37, 1, 25, 10, -28, -29, -36, -24, 30, -24, -20, 35, 6, -16, -19, -23, -14, -28, -20, 5, 28, -6, -39, -11, 38, 22, 27, -26, 15, 8, 33, -22, 32, -15, -32, 24, 12, 12, 44, 14, 51, -20, 5, 10, 52, 5, -19, 58, -35, -38, -41, -51, -63, -80, -47, -48, 30, -20, -1, -2, -21, 28, -6, 31, -48, 26, -20, 30, -27, -33, 26, -27, -1, 14, -3, 26, 26, -46, -35, -28, -41, -23, -20, 19, 14, -28, 36, -28, 21, -42, 0, 24, -33, 3, 14, -2, -6, -38, 46, -28, -50, -22, -31, -4, -25, -10, 17, 28, 6, -37, 40, -11, 0, 4, 31, 41, 40, 21, -6, 9, 68, 11, 37, 39, 52, 15, 56, -23, -55, -79, -77, -6, -73, -117, -41, -48, 40, 36, 34, -38, 44, -22, -13, 4, 1, 23, 33, 41, 19, -38, -32, -21, 43, -29, 15, 14, -41, 30, 31, -48, -24, -44, -17, -4, -38, 37, -33, 8, 3, -42, -48, -14, -20, -14, 28, 2, 2, -14, 18, -22, 5, 10, -53, 25, -13, -34, 6, 39, 29, -29, -23, 5, -24, -26, -8, 40, -17, -28, 23, -33, 16, 27, -19, -6, -24, -44, -28, -8, -31, 26, 11, -23, 43, 4, -7, -23, -10, 37, -43, -29, 10, 26, 15, 28, 12, 21, -22, -2, -28, 14, -4, 24, 10, 20, 3, 36, 40, -32, -24, -44, 30, 8, 38, -46, -1, -40, -23, 34, -45, -5, -9, -30, 27, 2, 68, -12, -12, 6, 20, -36, -45, -27, -38, -40, -5, 8, -11, 45, -12, -15, 35, 27, 10, 9, 38, 31, -20, -20, 38, 0, 1, 13, -35, -37, 1, -30, -33, 7, -8, 30, -20, 11, -14, 28, 44, -21, 22, 36, -24, -30, 5, 39, 22, -25, -41, -43, 24, -30, 37, -1, -6, 31, 53, 13, -3, 3, 28, -16, 47, 2, -66, -83, -72, -85, -32, -35, -40, -62, 81, 79, 24, 70, 22, 48, -1, -13, -47, -69, -62, -4, -49, -70, -93, -56, 9, 0, 59, -8, -1, -30, -30, -22, -61, -21, -68, -49, 35, 11, -46, 27, 8, -43, 18, -31, 6, -1, 11, -19, 37, 40, -29, 27, -1, 15, -9, 17, -18, -10, 16, -15, -13, -16, -42, -28, 3, 6, 9, 49, -27, -21, 4, -31, -2, -29, -1, 29, 11, 40, 2, -10, -25, -27, -12, -9, -19, -3, 3, 12, 2, -6, 19, 37, 20, 29, -21, 20, 3, -11, -9, -18, 32, 0, -27, 32, 33, -38, -29, -39, 13, 11, -19, -34, 16, -32, 42, 22, -21, -31, 2, 8, -52, 9, 20, 8, -43, -10, 2, -39, 31, 52, -33, -25, 17, 16, 3, -37, 19, -21, -45, 12, 15, -23, 32, 17, 21, 23, 32, 40, 38, -41, -25, -41, -56, -22, -35, 12, 19, -48, -4, 11, -28, -24, -13, 27, -17, -36, 38, 32, 31, 14, -25, 30, 38, 8, -14, -5, 39, 17, 6, -25, 30, 6, 22, 44, 17, 50, 38, 55, 20, -8, 2, 19, -56, -30, -73, -49, -80, -63, -92, -64, 15, -41, 0, -4, 20, -18, -9, -41, 17, -11, -52, -45, 36, -1, -43, -15, -19, 15, 39, 8, -3, 32, 9, -1, 41, -4, -18, 12, -18, 11, 20, -36, -6, -25, -25, 15, -43, -18, 32, -28, 22, -16, 22, -30, 8, -47, -24, 12, 37, -14, 19, -23, -33, -2, -28, 41, 15, -25, -43, 24, -10, 23, 27, 7, 25, 61, 32, 46, 30, 40, -8, 14, -9, -38, 14, -60, -53, -70, -115, -67, -18, -34, -25, -54, -32, 25, 13, -41, 69, 4, 48, 40, 9, 62, 37, 38, -53, -48, 38, -5, 29, -36, 10, 27, 12, 19, -17, -41, 10, 18, 20, -23, 44, 41, 76, 90, -9, -36, -7, -34, -26, -28, -34, -14, -48, -101, -52, -84, 25, -20, -24, 13, 9, -22, 19, -34, 10, -28, -25, -20, -35, -9, 32, -8, -7, 10, -19, -24, 28, -27, 10, 21, 39, 17, -33, 31, -32, 23, -14, -6, 20, 35, 4, 26, -29, 37, -27, 19, -17, 3, -32, 11, 76, 61, 31, -2, -38, -42, 12, 26, 12, 18, 3, -19, 47, -13, -28, 17, 29, 31, 22, 5, -21, 15, 20, 11, -32, -8, -9, -8, -3, -5, -27, -30, 30, -24, 30, -28, 31, 27, 13, 12, -8, -22, 38, 4, 9, -18, 2, 6, -21, -7, -14, 29, 67, 14, 67, 68, 5, 21, 33, 20, -61, -15, -10, -64, -27, -75, -58, -78, 50, -45, 15, -37, -10, -3, -7, 15, 2, -20, -47, 3, 25, 16, -26, -23, 61, 23, 22, 2, 12, -29, 42, -31, -45, -56, -19, -9, -75, -89, -89, -45, -36, 8, 32, -2, 27, -21, 5, -24, 10, -10, -11, -1, -7, -7, -39, 37, 51, 53, 71, 60, 50, 44, 12, -6, -22, -64, -58, -35, -22, -59, -16, -44, -26, -16, 34, -5, -12, -18, 39, 5, 4, 14, 40, 55, -25, -25, 28, 12, 3, -24, -2, -41, 30, 27, 27, -8, -38, -14, 28, 6, -8, 26, 38, 35, 45, 10, 45, 21, 31, -1, 31, -33, -37, -55, -50, -26, -19, -2, 9, -43, -26, -11, -34, -13, -6, -37, 29, 15, 35, 1, 36, -20, -1, 51, -10, 15, -25, -16, 5, 11, -2, -18, -12, 39, -35, 43, -4, 54, -38, -19, -32, -36, 1, -30, -24, 3, 9, -30, -35, 27, 22, 16, 38, 41, 21, 16, -16, -42, -58, -27, 6, 9, -26, -18, 34, -47, 27, -1, -9, 40, -24, -33, 45, -14, 52, 45, 10, 2, 52, 35, 48, 19, -34, -13, -77, -64, -41, -53, -20, -85, -21, -16, -27, -34, 7, -19, -16, -8, 6, -9, -17, -24, -27, 9, 24, -7, -9, 41, 39, 12, -7, -30, 8, 41, 40, -18, -17, -6, 40, -28, -8, 2, 32, 84, 53, 52, -3, -9, -8, 45, -14, -25, -42, -30, -22, -52, -71, -12, -8, -37, 13, -18, -36, 4, 4, -18, 34, -32, 26, 4, 28, 10, -3, 24, -2, 26, -13, -5, -38, -8, 12, -7, 39, -13, 28, 44, 10, 34, 24, 27, 64, 30, 22, 54, 12, 23, 36, 55, -21, -22, -44, -69, -59, -85, -27, -66, -40, -78, -33, -9, -13, -16, -50, 19, 7, 65, 21, 55, -39, 33, 12, 7, 49, -9, 50, 19, 5, 33, -11, 7, 25, -28, 7, -14, -29, 1, 29, 17, -4, 69, 36, 62, 19, -25, 50, 48, -7, -27, -51, 21, 0, -7, -35, -42, 17, 18, 20, 25, 33, 29, -15, 4, -59, -19, 2, -5, -34, -56, -18, -37, -20, 11, -11, 16, -17, -32, 33, -4, -33, 4, 7, 34, 6, -48, -5, 15, -26, 18, 24, 14, -39, -5, -13, -26, 32, 6, -42, -39, -31, 34, -41, -31, 10, 7, 12, -34, -20, -21, -39, -30, 42, -25, -20, -3, -5, 40, 23, -39, -42, -30, 23, -5, -40, -8, -14, 45, -3, -35, 17, -32, 29, -31, -30, 27, -5, 2, 34, 34, 12, -35, -21, -2, -5, 38, 14, 32, 40, -13, -28, 6, 45, 17, -26, 36, -9, 11, 40, 11, 46, 19, 26, 31, -32, -1, -61, -44, -37, 15, -27, 11, 24, 23, 22, -48, 3, 7, -22, -9, 41, 46, -15, 28, 8, 10, -20, 20, -2, -8, 8, -18, -64, -86, -47, -74, -77, -39, -60, -57, 16, 58, 1, 72, 65, -2, 59, 2, -80, -29, -66, -62, -56, -105, -28, -14, 8, 53, 10, -2, 38, 34, 23, -16, 10, -35, -19, -43, -42, -12, -5, 11, 20, 14, -7, -40, -30, -9, -10, 24, 5, 44, 25, -38, 21, -37, 15, 38, 20, 1, -37, -7, 44, -1, 30, -7, 0, 23, 11, -32, -4, -3, 33, 26, 3, 28, 2, 30, 22, -46, -17, -50, 23, -18, -36, -17, -39, 2, 36, 6, 51, 11, 15, 61, 64, -13, 18, 35, 56, -20, 39, 62, 33, 3, 34, -17, -56, -45, -78, -68, -62, -53, -39, 19, 43, 54, 41, -20, 8, 45, 54, -27, 30, 42, 29, 45, 6, 16, 23, -9, -94, -90, -12, -6, -87, -41, -68, -43, 25, 50, 61, 12, 47, 47, 19, 0, -36, -27, -72, -11, 12, -59, 3, -34, 15, -23, 48, 61, -40, -44, -51, -35, -18, -10, -7, -24, 36, 47, 67, 24, 21, 91, 50, 68, 12, 7, 10, 58, -64, -72, 4, -51, -35, -20, -93, -37, -38, 15, 10, -25, -18, -30, -30, -4, 10, -38, 7, -24, -18, 19, -5, -5, 4, 44, 48, 36, 12, 31, -5, -31, -33, -40, -29, 15, -38, -63, -45, -66, -17, 57, -10, 56, 7, 23, 41, -12, 10, -37, -54, 27, -39, 9, -58, -36, -25, 8, 23, 58, -29, -13, -30, -49, 10, -54, -6, -60, -52, -9, -28, 4, 36, 54, -24, 54, -23, 2, 10, 26, -30, -2, 2, 18, -4, 7, -21, 18, -13, 3, -21, -79, 5, -16, 12, -20, 47, 30, -2, 47, -17, 16, 41, 0, 42, 49, 63, -6, 47, 62, 45, 33, -71, -48, 20, -32, -56, -25, -79, -44, -2, 9, -54, 18, -39, -54, -13, -40, -9, -30, 12, -23, -7, -68, -8, -67, -23, 25, 13, 33, -4, 8, 33, -11, -43, 24, -3, 19, -10, -48, -45, -32, 27, 17, 51, 53, 23, -17, 5, 33, -14, 24, -27, -52, -1, -13, -40, -49, 46, -13, 4, -6, -28, 5, -39, -28, 19, -14, 8, -53, -56, -42, -53, -27, 21, 84, 45, 91, 70, -14, 52, 8, -40, 19, 22, -68, -39, -99, -48, -82, 37, 29, 10, -5, -28, -22, 41, -26, -34, -40, -11, -1, -47, -25, 20, -35, 35, 29, 18, -31, -15, 34, -30, -37, -14, 1, 35, -42, -10, -27, 19, 14} +}; + +static const int B1[3] = { + 114, 18, 106 +}; + +static const int B2[64] = { + 0, 0, 0, 0, 0, 0, 0, -1, 1, 1, 0, 1, 0, 1, 0, -1, -1, 1, -1, 0, -1, 1, 0, -1, 0, 0, -1, 0, -1, -1, 0, 1, 1, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, -1, 1, 0, 0, -1, 0, 1, 1, -1, 1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1 +}; + +static const int B3[64] = { + -132, -142, -86, 26, 31, -132, 44, 107, -50, 91, -9, -101, 26, -12, -134, -140, -9, -70, -144, 27, 160, 140, 138, -12, 152, 166, 30, 140, -42, 24, -144, 6, 108, 0, 21, -127, 23, -46, 152, -15, 82, 113, -51, 150, 0, 27, -60, 49, -154, 58, -79, -48, -33, 83, -94, -103, 53, 1, 41, -117, -134, -94, 158, -31 +}; + +static const int B4[64] = { + -24, -4, -120, 22, 117, -74, -15, -75, 51, 96, 105, 5, 66, -77, 17, -3, 27, 78, 57, 90, -2, -85, 71, -95, -120, -44, 3, 44, -57, -51, 94, 68, -39, 55, -99, 102, -65, 127, 18, 2, -53, -52, -76, 113, 35, 128, -74, 2, 20, 65, -96, 51, -22, -59, -23, -65, -75, -25, 72, -20, -61, -50, -106, 52 +}; + +static const int B5[64] = { + 254, -112, 332, -132, -182, 368, 184, 24, -130, -190, 352, 113, -230, 276, 492, -444, -336, 292, 364, 352, -168, 348, -464, 174, 226, -404, -496, 146, -204, 500, -150, 464, -404, -464, -216, 384, -492, 260, -344, -508, 436, -276, -210, -18, 492, 324, -113, 336, 25, -448, 192, -272, 46, -5, 146, 272, -65, -436, -200, 6, -14, -472, -284, -156 +}; + +static const int B6[128] = { + -2, 0, -1, -6, 1, -4, 6, -5, 1, -6, -5, 3, -6, 2, 0, -4, 2, -3, 2, 5, 0, -4, 3, 4, -6, -5, 5, 4, 5, 1, -4, 6, 1, 1, -2, 6, -3, 6, -5, 5, -1, 6, -4, -3, -4, -2, 3, -6, -6, 4, -4, 5, -2, 3, -7, 0, -3, 4, -4, -2, 3, -7, -3, 7, 3, 3, 5, 0, -3, -1, 0, 0, 0, -3, -2, 1, -5, 4, 0, 6, 0, 6, 5, 3, 4, -3, 4, 0, 0, 3, -4, 4, -1, 4, 5, 6, -2, -2, 6, -4, 3, 5, 4, 4, -5, 0, 1, 1, 3, 4, -4, -5, -1, -4, 3, -6, 5, 2, 5, 3, 3, 3, -6, 3, 6, 1, 2, -5 +}; + +static const int B7[128] = { + 552, -115, 424, 1472, -1216, -784, -600, -77, 1648, -216, -230, -1648, 68, 1568, -125, -1440, 300, 1696, 236, -1632, 1472, -218, -1584, 1792, -1200, 888, -1424, -1584, -1456, -1712, 1424, -174, 608, 328, 1584, 1328, 888, -736, 1168, 632, 42, 352, -352, -1552, 1584, 78, 252, 1632, 624, -152, -616, -1280, -1216, 536, 1392, 1120, -268, -752, -1264, -1584, 1856, 1440, 648, 348, -320, -1760, -1504, 704, -288, 760, 1872, -1312, 512, -1616, -1184, 1568, 1760, 1120, 300, -696, -464, -1408, 1424, -1056, -1536, -344, 680, -1808, 296, -1424, 1232, -1424, 712, 140, 912, 1440, -1712, 848, -300, 1728, -1184, -784, 1744, -752, -14, 164, -1168, -776, 1016, 208, -648, 33, 496, -246, 1584, 1392, 340, -1328, 272, 1344, 71, -952, 1552, 504, -1152, 476, -1296, 1728 +}; + +static const int B8[128] = { + -400, -504, -1376, 496, 1824, 40, 728, -1040, -520, -1472, -1632, -1456, 1456, 1632, -792, -1456, -480, 16, -2, -1472, -608, 1744, -488, -1584, -1328, -696, 1808, 124, -1344, -1312, -86, 9, -936, 1088, -952, 1392, 1104, 1120, 696, -1520, 1392, 752, -1280, 592, -632, -1000, 640, 220, -1568, -648, 792, 21, -77, 1024, 1072, -928, -1232, -600, -1408, -1840, -488, 752, -218, 1360, -1344, -174, -1264, 196, -82, 1664, -536, 484, 1456, 912, -404, 608, -1920, -792, 624, -560, -1088, -1424, 520, -1216, 1456, -872, 1504, -616, 808, -744, -992, 228, -576, 640, -960, 1000, 920, -664, 728, 1696, 1520, 1328, -368, -1584, -1000, 1264, 1616, 744, 712, 17, 936, 456, 324, -528, -960, -1472, -148, 1056, 1600, -1504, 704, 150, -584, 130, 752, 560, -1728, 52 +}; + +static const int B9[128] = { + -2816, 4992, -123, -3200, -1072, 3808, 1792, -1280, -4992, 182, -5312, -2688, 2528, -5632, 2272, 512, 3136, -6400, -4736, -3520, 5440, -3040, 5568, -3072, 2208, -6528, 3968, 472, -2368, -5248, -6016, -520, -520, -4544, 2016, 1408, -2720, -1744, 5952, -1808, 1536, 60, 1328, -1200, -3872, -2048, -94, -5696, 3264, 1616, 968, 6080, -2336, -6144, 5504, 1184, 4992, -5696, -3072, 2560, 6400, -5248, -2912, -5376, -6336, -1936, -6016, 324, -784, 2976, 4544, -6400, 2976, 4000, -6144, -1168, 3072, 3520, -5376, 2336, 5440, 3072, 1280, 1264, 4416, 3168, 4992, 3872, -2816, -5824, 4864, -2176, -3840, -1968, 376, 2176, -1840, 1552, -2656, -1664, -5312, -4608, -1920, 664, -3232, 2016, -1120, 5056, -608, 840, -5376, -5824, -6400, -4928, -1536, -3392, -6528, -6464, 1952, -5696, 5696, -184, -5888, 460, 2688, -5440, 2880, 6656 +}; + +static const int B10[256] = { + 220, -4000, 2592, 1712, 2528, 2336, -1088, 3712, 3392, -464, 2528, -2784, 4160, 2176, -1712, -3040, -560, -656, 2848, 4224, -904, 4480, -744, -3104, -1840, -1760, 5312, 1264, -4672, 2176, 2496, 3072, -5440, 3648, 148, 3264, -2688, -1520, -896, -1168, 3104, -3616, -39, 4032, 5248, 4416, 1184, 1584, 960, -4608, -4608, 2912, 2400, -3648, -4416, 5376, -4416, -2080, -5824, 2400, 1984, -192, 1792, -2144, -1040, -1616, -5440, 128, -3520, -960, -1376, -2000, 1776, -2560, 4288, -35, -3776, -4160, 5248, 2336, -736, -4800, 3264, -2240, -2464, 4352, 5056, -2000, 1088, -2080, -2496, -5888, -3744, -3584, 3488, 4992, -4160, 5760, -2432, -3520, 656, 2304, -3104, -3712, 1248, 3616, -1440, -3328, 4736, 4992, -1168, 4928, 1000, -2048, 5824, -776, -3712, 1616, -4416, 2336, -3456, 1104, 1424, -4800, 2976, -896, 2496, 4608, 3808, 4416, -2944, -220, 5888, 3648, -2144, -2848, -1872, -848, -4864, 3776, -848, 4608, 976, -3968, -5184, 5120, -5056, 1728, -1008, -2656, -752, 2560, -308, -3008, 4160, -280, 3904, -4544, -3936, -1120, -4800, 2176, 1312, -1984, 3904, 2528, 228, -4672, -73, 4160, 3552, 2208, 3456, 110, -4672, 5248, -4064, 4160, 3904, -3936, 3552, 5056, -4480, -3360, 2496, 2112, 3008, 192, 1120, 784, -4608, 4608, -3584, -2528, 3392, -4064, 1920, 20, 2880, -2944, -936, -1056, 952, 2624, -3584, 2688, -2592, 3744, 4288, 59, 2848, 4608, 5632, -3840, 2144, 1600, 100, 3712, 3264, 2112, -440, -4864, -5376, 4672, 2688, 5248, 1840, 4608, 1856, -1936, -624, -696, -2464, -1024, -5056, -119, -1824, 1760, 3392, 4672, -5376, -2144, 4544, -3264, 200, 648, -4288, 4608, 4672, 2208, 5696, -492, -4160, 5184, 3616, 4608 +}; + +static const int B11[256] = { + -7872, -2208, -10752, -10240, -4032, 9728, 12416, 3680, 12800, 5824, -5888, -7680, -5376, 2240, 10112, 11136, -2688, -452, 3040, -11904, -8832, 81, -2496, -9856, 8192, 11520, -7104, 11264, -8832, 1616, -5824, 7296, 12032, 9344, 5632, 11648, -7104, -6336, -4736, -12928, -11520, -2944, 4608, 3712, 2400, -11136, -6080, 8192, -5184, 7616, 5568, 7168, -3616, -12544, 5248, 4224, -7424, 11776, 6976, 7680, 3520, 11136, -720, 12416, 10240, 1088, -10240, -3168, 8128, 2528, -7744, 10368, 8704, 2400, -1264, -7872, 2560, -4928, 10880, -5952, -3296, 9344, -12288, -7424, 10112, 10240, 7232, -5120, 10880, -11136, 12544, 3296, -1872, 1072, -7552, 4992, -11136, 4160, 12544, -12032, -1152, -4096, -5056, 3168, 1360, -9088, 7616, 3072, 2000, 10624, -2032, 2528, -9984, 5, 712, -408, -12032, 4224, -7744, 3168, 3936, -10496, -6272, 3200, -10240, -2592, 8832, 1808, 5888, -9728, 11264, 4352, -37, -3872, -12160, -12160, 12416, 9472, -840, 5952, 2528, 3744, -11776, 568, 10752, -432, 11904, 8192, 2976, -1872, -11392, -3616, -6400, -1824, -11648, 10240, -376, -3808, -11904, -1776, 2464, 11392, -2032, 9088, 3328, 9216, -5120, -3872, -7680, 10624, -4160, 2048, -3904, 3840, 7040, -8448, 3584, 12416, 8576, 11904, -2592, 32, -5440, -3616, 4480, -3808, -150, 6208, -9344, -6016, -2144, -12928, -9728, -2304, -212, -2176, 11264, 11264, -9600, 544, 10880, -9216, 1696, 11392, -6208, 1536, 1664, -12416, -5504, 8576, -6400, 8128, -6784, 10880, -2688, 9600, 4608, -12800, -7616, -9344, -9344, 5376, -7360, -6080, 3232, 2720, -8448, -8128, -3616, -8128, -1040, 5312, -10880, -7488, -744, -2816, -11264, 9472, 6400, -528, -9216, 1840, 5632, 5568, 3264, -1936, -5248, -1824, -3424, 3488, -5568, -12544, -7424, 4800, -5184, 8192 +}; + +static const int B12[256] = { + -5568, 3328, -4992, 5824, -7168, 4992, 4160, -2624, -2368, 5888, 632, 2208, -5888, -1248, 6400, -3040, -2272, 6464, 7808, 4736, -7232, 5248, 7104, -3712, 6272, -2496, -1344, -6080, 2144, 1824, -6080, 7168, -2752, 2336, 4608, 4288, 6144, 2272, 4544, 2720, 1584, 3552, -5824, -1472, -1328, 6976, 6592, 2528, 6528, -1200, -1088, 93, -2368, -368, 6080, -5696, 6016, -484, -3616, -712, 3360, -1232, 1104, 4736, 7040, -2816, 1216, -108, -1920, 2016, 5248, -664, -3392, -7744, -384, 3744, -6464, 3360, 3104, 3488, -3456, -2624, -5376, 4288, 160, 1904, -3776, -5952, -6912, 1584, -7168, -4864, -6336, -3424, 5056, -4160, -3360, -2816, -2560, 2752, -6464, 3872, 4416, 5440, 2144, -1104, -4992, -1744, -1088, 2272, -6464, -6528, 2944, 960, -200, 7872, 3168, -4288, -3872, 6528, 936, -364, 5568, 2144, 1616, 3840, -6016, 6208, 5504, 1056, 3136, -6784, -4672, 1728, 3936, -6976, -4416, -4096, 4480, 4352, 180, 2624, 4032, 5504, -2848, 1016, 5568, -824, -1616, 1728, -4352, -7296, 5120, 5376, -920, -5696, 2432, 2464, 3360, 720, -1344, -4064, -2208, 4992, 1664, -4544, -4736, 5760, 6208, -6144, -2592, -6592, -6656, -4480, 1328, 3360, 6016, 1952, 2816, 5952, -2496, 2624, 848, 7168, 2304, -428, 1600, -4480, -6656, -6336, 1152, -4288, 4416, 2496, -5056, -2496, -4416, -4096, -1344, 640, 3616, 1840, 928, -256, -5440, 3200, -5248, 4544, 2016, 6400, -2368, -3424, 1520, 3488, 6720, 2624, -3552, -5824, -944, 30, -4480, 6464, -2048, -584, 7040, -3200, 3488, 4928, -6656, 3008, -1744, -6272, 3328, -744, -3616, -5504, -4224, 3456, -2208, -3776, 1104, -1536, -1776, -3360, 4032, -1728, 5184, -3328, 1088, 292, -1680, -1360, 5504, 6016, 512, -4736 +}; + +static const int B13[10] = { + 288, -3168, 11776, 11264, 16256, 9344, -4288, 14208, 3328, -1360 +}; + + +#endif /* CNN_WEIGHTS_H */ diff --git a/inference_codes/cifar10_dws_cnn/original/ibex_cnn_params.h b/inference_codes/cifar10_dws_cnn/original/ibex_cnn_params.h new file mode 100644 index 0000000..e51daf7 --- /dev/null +++ b/inference_codes/cifar10_dws_cnn/original/ibex_cnn_params.h @@ -0,0 +1,46 @@ +#ifndef IBEX_CNN_PARAMS_H +#define IBEX_CNN_PARAMS_H + +#define MV1 75 +#define MV2 112 +#define MV3 82 +#define MV4 75 +#define MV5 87 +#define MV6 76 +#define MV7 111 +#define MV8 95 +#define MV9 95 +#define MV10 117 +#define MV11 68 +#define MV12 91 +#define MV13 77 + +#define SV1 15 +#define SV2 7 +#define SV3 15 +#define SV4 14 +#define SV5 14 +#define SV6 8 +#define SV7 15 +#define SV8 15 +#define SV9 15 +#define SV10 16 +#define SV11 15 +#define SV12 15 +#define SV13 21 + +#define SB1 0 +#define SB2 0 +#define SB3 0 +#define SB4 0 +#define SB5 0 +#define SB6 0 +#define SB7 0 +#define SB8 0 +#define SB9 0 +#define SB10 0 +#define SB11 0 +#define SB12 0 +#define SB13 0 + +#endif /* IBEX_CNN_PARAMS_H */ diff --git a/inference_codes/cifar10_dws_cnn/original/ibex_inputs.h b/inference_codes/cifar10_dws_cnn/original/ibex_inputs.h new file mode 100644 index 0000000..d9b9da8 --- /dev/null +++ b/inference_codes/cifar10_dws_cnn/original/ibex_inputs.h @@ -0,0 +1,3144 @@ +#ifndef IBEX_INPUTS_H +#define IBEX_INPUTS_H + +static const int input[32][32][3][1] = { + { + { + {32}, {33}, {22} + }, + { + {44}, {56}, {30} + }, + { + {62}, {70}, {44} + }, + { + {97}, {108}, {84} + }, + { + {62}, {76}, {42} + }, + { + {50}, {64}, {33} + }, + { + {58}, {71}, {42} + }, + { + {64}, {75}, {48} + }, + { + {61}, {72}, {48} + }, + { + {53}, {66}, {44} + }, + { + {58}, {71}, {52} + }, + { + {70}, {82}, {62} + }, + { + {73}, {85}, {59} + }, + { + {69}, {80}, {47} + }, + { + {61}, {72}, {37} + }, + { + {71}, {81}, {50} + }, + { + {89}, {97}, {71} + }, + { + {77}, {85}, {61} + }, + { + {54}, {64}, {38} + }, + { + {62}, {75}, {47} + }, + { + {102}, {112}, {90} + }, + { + {111}, {122}, {103} + }, + { + {77}, {90}, {68} + }, + { + {97}, {110}, {94} + }, + { + {92}, {103}, {89} + }, + { + {53}, {66}, {42} + }, + { + {56}, {70}, {41} + }, + { + {52}, {65}, {41} + }, + { + {41}, {53}, {35} + }, + { + {38}, {51}, {36} + }, + { + {35}, {47}, {34} + }, + { + {37}, {44}, {31} + } + }, + { + { + {27}, {36}, {20} + }, + { + {52}, {64}, {36} + }, + { + {59}, {70}, {41} + }, + { + {99}, {108}, {82} + }, + { + {62}, {72}, {36} + }, + { + {45}, {55}, {23} + }, + { + {51}, {61}, {30} + }, + { + {59}, {70}, {39} + }, + { + {56}, {68}, {39} + }, + { + {53}, {67}, {41} + }, + { + {60}, {74}, {50} + }, + { + {66}, {78}, {54} + }, + { + {60}, {70}, {42} + }, + { + {59}, {67}, {35} + }, + { + {86}, {92}, {62} + }, + { + {155}, {159}, {137} + }, + { + {217}, {219}, {204} + }, + { + {195}, {195}, {179} + }, + { + {111}, {116}, {92} + }, + { + {71}, {80}, {51} + }, + { + {103}, {110}, {87} + }, + { + {111}, {119}, {99} + }, + { + {75}, {85}, {63} + }, + { + {95}, {104}, {87} + }, + { + {90}, {97}, {82} + }, + { + {55}, {64}, {37} + }, + { + {53}, {63}, {31} + }, + { + {52}, {63}, {33} + }, + { + {48}, {62}, {34} + }, + { + {37}, {51}, {31} + }, + { + {40}, {53}, {37} + }, + { + {42}, {50}, {33} + } + }, + { + { + {55}, {68}, {40} + }, + { + {62}, {69}, {37} + }, + { + {59}, {70}, {38} + }, + { + {99}, {108}, {87} + }, + { + {62}, {71}, {44} + }, + { + {47}, {57}, {30} + }, + { + {47}, {58}, {27} + }, + { + {61}, {74}, {32} + }, + { + {65}, {80}, {36} + }, + { + {59}, {75}, {34} + }, + { + {56}, {72}, {34} + }, + { + {57}, {74}, {36} + }, + { + {54}, {70}, {31} + }, + { + {59}, {71}, {37} + }, + { + {115}, {121}, {95} + }, + { + {159}, {156}, {138} + }, + { + {158}, {143}, {130} + }, + { + {150}, {136}, {120} + }, + { + {122}, {121}, {96} + }, + { + {89}, {96}, {68} + }, + { + {101}, {109}, {91} + }, + { + {108}, {116}, {103} + }, + { + {73}, {83}, {65} + }, + { + {97}, {107}, {93} + }, + { + {93}, {102}, {88} + }, + { + {53}, {63}, {40} + }, + { + {53}, {64}, {37} + }, + { + {55}, {67}, {37} + }, + { + {59}, {74}, {39} + }, + { + {38}, {51}, {29} + }, + { + {29}, {40}, {25} + }, + { + {44}, {50}, {31} + } + }, + { + { + {53}, {67}, {33} + }, + { + {65}, {74}, {41} + }, + { + {76}, {83}, {50} + }, + { + {112}, {117}, {91} + }, + { + {76}, {84}, {49} + }, + { + {71}, {82}, {37} + }, + { + {76}, {89}, {39} + }, + { + {78}, {93}, {40} + }, + { + {70}, {87}, {36} + }, + { + {65}, {82}, {36} + }, + { + {64}, {78}, {37} + }, + { + {60}, {73}, {37} + }, + { + {56}, {68}, {33} + }, + { + {58}, {66}, {33} + }, + { + {69}, {70}, {40} + }, + { + {104}, {82}, {59} + }, + { + {136}, {90}, {71} + }, + { + {117}, {81}, {61} + }, + { + {81}, {75}, {47} + }, + { + {79}, {84}, {53} + }, + { + {113}, {118}, {99} + }, + { + {132}, {136}, {124} + }, + { + {88}, {93}, {74} + }, + { + {102}, {108}, {90} + }, + { + {100}, {106}, {94} + }, + { + {53}, {59}, {42} + }, + { + {54}, {63}, {33} + }, + { + {74}, {86}, {45} + }, + { + {75}, {89}, {46} + }, + { + {50}, {61}, {34} + }, + { + {31}, {38}, {27} + }, + { + {42}, {44}, {27} + } + }, + { + { + {56}, {67}, {35} + }, + { + {69}, {79}, {51} + }, + { + {90}, {100}, {75} + }, + { + {114}, {121}, {102} + }, + { + {92}, {102}, {67} + }, + { + {83}, {95}, {54} + }, + { + {76}, {86}, {53} + }, + { + {67}, {79}, {44} + }, + { + {58}, {74}, {35} + }, + { + {60}, {76}, {38} + }, + { + {65}, {78}, {43} + }, + { + {64}, {77}, {48} + }, + { + {67}, {79}, {52} + }, + { + {77}, {87}, {57} + }, + { + {90}, {97}, {64} + }, + { + {102}, {94}, {65} + }, + { + {103}, {76}, {59} + }, + { + {79}, {54}, {45} + }, + { + {66}, {57}, {39} + }, + { + {91}, {89}, {65} + }, + { + {132}, {133}, {117} + }, + { + {144}, {145}, {134} + }, + { + {103}, {105}, {88} + }, + { + {114}, {117}, {98} + }, + { + {108}, {110}, {91} + }, + { + {82}, {86}, {58} + }, + { + {91}, {97}, {55} + }, + { + {99}, {108}, {53} + }, + { + {92}, {104}, {47} + }, + { + {82}, {92}, {49} + }, + { + {59}, {63}, {41} + }, + { + {68}, {68}, {43} + } + }, + { + { + {66}, {84}, {45} + }, + { + {104}, {119}, {80} + }, + { + {125}, {140}, {99} + }, + { + {131}, {146}, {106} + }, + { + {118}, {133}, {84} + }, + { + {107}, {121}, {73} + }, + { + {110}, {120}, {83} + }, + { + {102}, {112}, {76} + }, + { + {78}, {93}, {49} + }, + { + {74}, {89}, {44} + }, + { + {87}, {100}, {60} + }, + { + {102}, {116}, {80} + }, + { + {113}, {129}, {92} + }, + { + {117}, {132}, {93} + }, + { + {114}, {129}, {89} + }, + { + {91}, {101}, {72} + }, + { + {59}, {59}, {48} + }, + { + {61}, {49}, {46} + }, + { + {76}, {58}, {51} + }, + { + {89}, {78}, {70} + }, + { + {125}, {128}, {121} + }, + { + {126}, {133}, {124} + }, + { + {94}, {104}, {85} + }, + { + {104}, {114}, {94} + }, + { + {103}, {110}, {91} + }, + { + {90}, {97}, {72} + }, + { + {102}, {112}, {75} + }, + { + {96}, {107}, {60} + }, + { + {88}, {98}, {47} + }, + { + {96}, {104}, {60} + }, + { + {103}, {108}, {80} + }, + { + {106}, {106}, {78} + } + }, + { + { + {79}, {88}, {45} + }, + { + {111}, {117}, {66} + }, + { + {146}, {148}, {91} + }, + { + {154}, {157}, {96} + }, + { + {148}, {150}, {89} + }, + { + {146}, {148}, {92} + }, + { + {144}, {145}, {91} + }, + { + {142}, {144}, {86} + }, + { + {139}, {143}, {79} + }, + { + {137}, {141}, {78} + }, + { + {137}, {138}, {82} + }, + { + {139}, {143}, {88} + }, + { + {146}, {152}, {96} + }, + { + {149}, {155}, {99} + }, + { + {133}, {137}, {88} + }, + { + {85}, {84}, {63} + }, + { + {52}, {49}, {50} + }, + { + {52}, {46}, {43} + }, + { + {50}, {39}, {32} + }, + { + {81}, {74}, {62} + }, + { + {143}, {143}, {122} + }, + { + {151}, {158}, {127} + }, + { + {125}, {137}, {91} + }, + { + {134}, {144}, {96} + }, + { + {138}, {146}, {99} + }, + { + {136}, {143}, {96} + }, + { + {130}, {138}, {86} + }, + { + {102}, {112}, {60} + }, + { + {80}, {93}, {47} + }, + { + {106}, {118}, {74} + }, + { + {129}, {140}, {104} + }, + { + {126}, {132}, {97} + } + }, + { + { + {129}, {137}, {94} + }, + { + {134}, {145}, {100} + }, + { + {142}, {136}, {103} + }, + { + {170}, {159}, {126} + }, + { + {135}, {129}, {91} + }, + { + {136}, {136}, {102} + }, + { + {145}, {149}, {112} + }, + { + {142}, {150}, {109} + }, + { + {141}, {150}, {109} + }, + { + {139}, {150}, {109} + }, + { + {135}, {147}, {105} + }, + { + {137}, {148}, {108} + }, + { + {139}, {150}, {112} + }, + { + {137}, {150}, {108} + }, + { + {118}, {118}, {86} + }, + { + {70}, {62}, {52} + }, + { + {35}, {33}, {35} + }, + { + {33}, {28}, {30} + }, + { + {47}, {33}, {29} + }, + { + {98}, {78}, {66} + }, + { + {153}, {142}, {125} + }, + { + {146}, {156}, {131} + }, + { + {116}, {133}, {97} + }, + { + {120}, {138}, {101} + }, + { + {128}, {145}, {111} + }, + { + {127}, {143}, {110} + }, + { + {125}, {140}, {107} + }, + { + {117}, {129}, {98} + }, + { + {110}, {120}, {93} + }, + { + {120}, {133}, {106} + }, + { + {126}, {140}, {116} + }, + { + {127}, {138}, {116} + } + }, + { + { + {143}, {143}, {117} + }, + { + {147}, {154}, {128} + }, + { + {182}, {180}, {157} + }, + { + {213}, {194}, {171} + }, + { + {157}, {136}, {112} + }, + { + {139}, {116}, {96} + }, + { + {174}, {150}, {123} + }, + { + {176}, {159}, {128} + }, + { + {156}, {154}, {127} + }, + { + {140}, {150}, {121} + }, + { + {130}, {144}, {108} + }, + { + {134}, {143}, {112} + }, + { + {140}, {145}, {116} + }, + { + {137}, {137}, {103} + }, + { + {126}, {106}, {81} + }, + { + {76}, {56}, {48} + }, + { + {29}, {29}, {30} + }, + { + {22}, {26}, {25} + }, + { + {66}, {46}, {36} + }, + { + {154}, {101}, {85} + }, + { + {181}, {145}, {124} + }, + { + {142}, {147}, {120} + }, + { + {110}, {129}, {96} + }, + { + {111}, {130}, {99} + }, + { + {117}, {134}, {104} + }, + { + {120}, {134}, {105} + }, + { + {127}, {138}, {110} + }, + { + {134}, {142}, {113} + }, + { + {139}, {144}, {112} + }, + { + {132}, {138}, {106} + }, + { + {128}, {137}, {105} + }, + { + {129}, {134}, {105} + } + }, + { + { + {142}, {133}, {132} + }, + { + {150}, {144}, {141} + }, + { + {213}, {199}, {182} + }, + { + {215}, {191}, {165} + }, + { + {161}, {135}, {110} + }, + { + {144}, {112}, {88} + }, + { + {184}, {146}, {107} + }, + { + {202}, {167}, {124} + }, + { + {204}, {179}, {142} + }, + { + {184}, {171}, {144} + }, + { + {152}, {146}, {129} + }, + { + {143}, {140}, {128} + }, + { + {150}, {139}, {130} + }, + { + {142}, {110}, {101} + }, + { + {97}, {66}, {58} + }, + { + {50}, {37}, {34} + }, + { + {41}, {36}, {36} + }, + { + {62}, {52}, {45} + }, + { + {110}, {78}, {61} + }, + { + {149}, {106}, {86} + }, + { + {142}, {122}, {109} + }, + { + {134}, {136}, {126} + }, + { + {129}, {131}, {120} + }, + { + {128}, {128}, {118} + }, + { + {132}, {130}, {118} + }, + { + {136}, {134}, {122} + }, + { + {137}, {134}, {123} + }, + { + {137}, {134}, {122} + }, + { + {138}, {136}, {123} + }, + { + {137}, {136}, {121} + }, + { + {137}, {136}, {120} + }, + { + {138}, {133}, {117} + } + }, + { + { + {93}, {95}, {105} + }, + { + {100}, {98}, {103} + }, + { + {184}, {164}, {150} + }, + { + {176}, {153}, {131} + }, + { + {115}, {92}, {73} + }, + { + {114}, {86}, {65} + }, + { + {176}, {140}, {102} + }, + { + {212}, {170}, {129} + }, + { + {220}, {177}, {133} + }, + { + {210}, {171}, {134} + }, + { + {176}, {147}, {126} + }, + { + {131}, {112}, {106} + }, + { + {102}, {89}, {90} + }, + { + {89}, {73}, {74} + }, + { + {73}, {58}, {61} + }, + { + {67}, {50}, {56} + }, + { + {83}, {59}, {54} + }, + { + {116}, {78}, {64} + }, + { + {118}, {77}, {61} + }, + { + {90}, {71}, {61} + }, + { + {96}, {94}, {100} + }, + { + {101}, {102}, {113} + }, + { + {108}, {108}, {114} + }, + { + {119}, {116}, {121} + }, + { + {122}, {115}, {121} + }, + { + {112}, {107}, {113} + }, + { + {108}, {107}, {110} + }, + { + {110}, {110}, {112} + }, + { + {118}, {116}, {118} + }, + { + {123}, {120}, {122} + }, + { + {130}, {126}, {125} + }, + { + {139}, {131}, {129} + } + }, + { + { + {90}, {90}, {99} + }, + { + {108}, {97}, {101} + }, + { + {169}, {146}, {132} + }, + { + {163}, {138}, {122} + }, + { + {112}, {85}, {68} + }, + { + {118}, {88}, {64} + }, + { + {182}, {140}, {99} + }, + { + {212}, {168}, {124} + }, + { + {223}, {182}, {139} + }, + { + {229}, {191}, {151} + }, + { + {209}, {173}, {139} + }, + { + {179}, {148}, {121} + }, + { + {148}, {123}, {109} + }, + { + {115}, {86}, {79} + }, + { + {94}, {62}, {60} + }, + { + {117}, {81}, {83} + }, + { + {145}, {101}, {95} + }, + { + {114}, {76}, {67} + }, + { + {61}, {42}, {42} + }, + { + {56}, {49}, {54} + }, + { + {85}, {81}, {88} + }, + { + {92}, {90}, {99} + }, + { + {99}, {99}, {105} + }, + { + {115}, {110}, {114} + }, + { + {116}, {111}, {116} + }, + { + {116}, {114}, {121} + }, + { + {122}, {121}, {126} + }, + { + {121}, {120}, {121} + }, + { + {125}, {122}, {123} + }, + { + {133}, {128}, {129} + }, + { + {138}, {132}, {131} + }, + { + {135}, {125}, {123} + } + }, + { + { + {91}, {85}, {92} + }, + { + {118}, {103}, {103} + }, + { + {141}, {121}, {104} + }, + { + {115}, {95}, {81} + }, + { + {99}, {83}, {76} + }, + { + {111}, {90}, {76} + }, + { + {178}, {136}, {99} + }, + { + {209}, {164}, {120} + }, + { + {209}, {169}, {129} + }, + { + {207}, {172}, {135} + }, + { + {206}, {175}, {140} + }, + { + {227}, {198}, {157} + }, + { + {216}, {188}, {151} + }, + { + {160}, {125}, {97} + }, + { + {110}, {78}, {66} + }, + { + {83}, {69}, {80} + }, + { + {60}, {58}, {79} + }, + { + {49}, {42}, {58} + }, + { + {69}, {49}, {54} + }, + { + {97}, {66}, {63} + }, + { + {91}, {63}, {63} + }, + { + {61}, {47}, {50} + }, + { + {46}, {45}, {47} + }, + { + {90}, {87}, {87} + }, + { + {141}, {134}, {131} + }, + { + {139}, {133}, {129} + }, + { + {135}, {132}, {129} + }, + { + {132}, {131}, {128} + }, + { + {130}, {126}, {125} + }, + { + {139}, {134}, {132} + }, + { + {150}, {143}, {140} + }, + { + {148}, {136}, {133} + } + }, + { + { + {85}, {81}, {84} + }, + { + {109}, {98}, {97} + }, + { + {91}, {82}, {70} + }, + { + {79}, {70}, {65} + }, + { + {94}, {90}, {92} + }, + { + {97}, {89}, {88} + }, + { + {137}, {108}, {86} + }, + { + {173}, {132}, {95} + }, + { + {186}, {144}, {105} + }, + { + {213}, {176}, {139} + }, + { + {238}, {206}, {170} + }, + { + {247}, {214}, {174} + }, + { + {230}, {193}, {155} + }, + { + {165}, {125}, {98} + }, + { + {101}, {74}, {70} + }, + { + {63}, {62}, {82} + }, + { + {38}, {45}, {68} + }, + { + {60}, {42}, {47} + }, + { + {118}, {70}, {53} + }, + { + {145}, {88}, {65} + }, + { + {124}, {79}, {64} + }, + { + {76}, {54}, {49} + }, + { + {37}, {34}, {35} + }, + { + {65}, {60}, {59} + }, + { + {146}, {131}, {120} + }, + { + {191}, {175}, {160} + }, + { + {163}, {152}, {141} + }, + { + {153}, {148}, {144} + }, + { + {157}, {152}, {148} + }, + { + {166}, {159}, {154} + }, + { + {171}, {162}, {156} + }, + { + {168}, {156}, {150} + } + }, + { + { + {176}, {168}, {152} + }, + { + {167}, {155}, {138} + }, + { + {121}, {113}, {93} + }, + { + {150}, {140}, {125} + }, + { + {155}, {142}, {130} + }, + { + {169}, {155}, {145} + }, + { + {181}, {161}, {138} + }, + { + {173}, {138}, {102} + }, + { + {202}, {158}, {118} + }, + { + {231}, {188}, {147} + }, + { + {243}, {206}, {164} + }, + { + {246}, {209}, {167} + }, + { + {233}, {194}, {155} + }, + { + {166}, {130}, {102} + }, + { + {93}, {75}, {73} + }, + { + {52}, {54}, {73} + }, + { + {46}, {42}, {55} + }, + { + {81}, {49}, {44} + }, + { + {111}, {66}, {52} + }, + { + {95}, {61}, {51} + }, + { + {62}, {42}, {37} + }, + { + {39}, {29}, {28} + }, + { + {38}, {30}, {28} + }, + { + {68}, {48}, {39} + }, + { + {127}, {99}, {79} + }, + { + {199}, {170}, {146} + }, + { + {198}, {176}, {159} + }, + { + {177}, {166}, {157} + }, + { + {177}, {168}, {159} + }, + { + {187}, {177}, {167} + }, + { + {186}, {176}, {166} + }, + { + {186}, {172}, {162} + } + }, + { + { + {148}, {145}, {106} + }, + { + {146}, {147}, {105} + }, + { + {147}, {146}, {107} + }, + { + {155}, {152}, {112} + }, + { + {150}, {143}, {106} + }, + { + {165}, {156}, {118} + }, + { + {168}, {160}, {115} + }, + { + {162}, {139}, {93} + }, + { + {202}, {159}, {116} + }, + { + {230}, {184}, {142} + }, + { + {241}, {202}, {161} + }, + { + {235}, {198}, {159} + }, + { + {225}, {186}, {147} + }, + { + {158}, {123}, {95} + }, + { + {80}, {66}, {63} + }, + { + {47}, {52}, {68} + }, + { + {63}, {53}, {60} + }, + { + {122}, {76}, {59} + }, + { + {168}, {102}, {75} + }, + { + {157}, {99}, {74} + }, + { + {107}, {70}, {50} + }, + { + {75}, {52}, {35} + }, + { + {111}, {83}, {58} + }, + { + {154}, {114}, {78} + }, + { + {169}, {128}, {86} + }, + { + {187}, {145}, {105} + }, + { + {198}, {163}, {131} + }, + { + {198}, {181}, {154} + }, + { + {194}, {182}, {153} + }, + { + {203}, {190}, {163} + }, + { + {210}, {199}, {173} + }, + { + {210}, {197}, {173} + } + }, + { + { + {145}, {142}, {97} + }, + { + {150}, {150}, {103} + }, + { + {150}, {149}, {104} + }, + { + {151}, {150}, {105} + }, + { + {149}, {145}, {100} + }, + { + {139}, {134}, {89} + }, + { + {145}, {142}, {94} + }, + { + {153}, {136}, {90} + }, + { + {190}, {150}, {107} + }, + { + {222}, {177}, {134} + }, + { + {231}, {187}, {144} + }, + { + {217}, {174}, {131} + }, + { + {205}, {161}, {117} + }, + { + {158}, {119}, {84} + }, + { + {89}, {71}, {62} + }, + { + {51}, {53}, {65} + }, + { + {69}, {59}, {61} + }, + { + {131}, {90}, {65} + }, + { + {173}, {115}, {76} + }, + { + {171}, {116}, {74} + }, + { + {168}, {118}, {74} + }, + { + {168}, {119}, {75} + }, + { + {177}, {127}, {81} + }, + { + {189}, {139}, {91} + }, + { + {185}, {137}, {85} + }, + { + {183}, {135}, {83} + }, + { + {177}, {136}, {92} + }, + { + {159}, {143}, {100} + }, + { + {147}, {146}, {100} + }, + { + {148}, {147}, {101} + }, + { + {153}, {149}, {106} + }, + { + {153}, {145}, {104} + } + }, + { + { + {171}, {157}, {117} + }, + { + {182}, {170}, {128} + }, + { + {181}, {171}, {130} + }, + { + {179}, {167}, {127} + }, + { + {178}, {164}, {123} + }, + { + {167}, {153}, {113} + }, + { + {154}, {143}, {104} + }, + { + {165}, {146}, {106} + }, + { + {191}, {154}, {113} + }, + { + {207}, {163}, {119} + }, + { + {211}, {165}, {119} + }, + { + {210}, {165}, {117} + }, + { + {196}, {150}, {102} + }, + { + {158}, {117}, {78} + }, + { + {97}, {76}, {64} + }, + { + {53}, {52}, {63} + }, + { + {82}, {71}, {69} + }, + { + {158}, {119}, {85} + }, + { + {195}, {143}, {95} + }, + { + {187}, {137}, {88} + }, + { + {177}, {128}, {80} + }, + { + {163}, {113}, {67} + }, + { + {166}, {117}, {71} + }, + { + {189}, {140}, {92} + }, + { + {195}, {145}, {92} + }, + { + {184}, {134}, {80} + }, + { + {162}, {119}, {71} + }, + { + {149}, {131}, {84} + }, + { + {154}, {152}, {103} + }, + { + {159}, {157}, {107} + }, + { + {163}, {159}, {108} + }, + { + {158}, {150}, {102} + } + }, + { + { + {198}, {175}, {144} + }, + { + {202}, {180}, {148} + }, + { + {205}, {184}, {153} + }, + { + {209}, {184}, {154} + }, + { + {210}, {183}, {152} + }, + { + {207}, {181}, {152} + }, + { + {195}, {173}, {146} + }, + { + {192}, {167}, {136} + }, + { + {189}, {152}, {116} + }, + { + {187}, {145}, {101} + }, + { + {195}, {152}, {104} + }, + { + {199}, {155}, {107} + }, + { + {176}, {131}, {84} + }, + { + {134}, {95}, {57} + }, + { + {85}, {66}, {55} + }, + { + {52}, {50}, {60} + }, + { + {79}, {65}, {61} + }, + { + {147}, {106}, {68} + }, + { + {178}, {123}, {73} + }, + { + {162}, {109}, {62} + }, + { + {141}, {94}, {51} + }, + { + {134}, {93}, {55} + }, + { + {149}, {108}, {68} + }, + { + {174}, {128}, {83} + }, + { + {190}, {141}, {92} + }, + { + {180}, {131}, {81} + }, + { + {162}, {120}, {73} + }, + { + {175}, {152}, {110} + }, + { + {187}, {171}, {132} + }, + { + {187}, {172}, {131} + }, + { + {188}, {176}, {132} + }, + { + {184}, {172}, {129} + } + }, + { + { + {185}, {164}, {141} + }, + { + {189}, {168}, {146} + }, + { + {192}, {173}, {149} + }, + { + {193}, {172}, {148} + }, + { + {195}, {174}, {150} + }, + { + {196}, {174}, {150} + }, + { + {195}, {174}, {151} + }, + { + {194}, {171}, {149} + }, + { + {179}, {149}, {122} + }, + { + {163}, {125}, {89} + }, + { + {188}, {143}, {99} + }, + { + {180}, {135}, {88} + }, + { + {137}, {95}, {55} + }, + { + {99}, {66}, {38} + }, + { + {77}, {59}, {50} + }, + { + {56}, {48}, {56} + }, + { + {70}, {53}, {47} + }, + { + {121}, {83}, {50} + }, + { + {143}, {97}, {57} + }, + { + {140}, {101}, {68} + }, + { + {156}, {128}, {99} + }, + { + {175}, {153}, {123} + }, + { + {148}, {122}, {93} + }, + { + {123}, {86}, {53} + }, + { + {158}, {113}, {71} + }, + { + {172}, {122}, {73} + }, + { + {161}, {115}, {69} + }, + { + {184}, {154}, {121} + }, + { + {203}, {180}, {150} + }, + { + {206}, {182}, {151} + }, + { + {206}, {184}, {151} + }, + { + {200}, {179}, {147} + } + }, + { + { + {191}, {170}, {150} + }, + { + {198}, {178}, {159} + }, + { + {198}, {180}, {158} + }, + { + {197}, {178}, {155} + }, + { + {197}, {177}, {154} + }, + { + {195}, {175}, {153} + }, + { + {195}, {175}, {153} + }, + { + {195}, {174}, {153} + }, + { + {193}, {167}, {142} + }, + { + {170}, {133}, {98} + }, + { + {184}, {138}, {93} + }, + { + {173}, {125}, {79} + }, + { + {122}, {86}, {56} + }, + { + {87}, {64}, {47} + }, + { + {80}, {61}, {53} + }, + { + {71}, {58}, {57} + }, + { + {95}, {81}, {73} + }, + { + {146}, {121}, {98} + }, + { + {171}, {144}, {118} + }, + { + {188}, {164}, {142} + }, + { + {196}, {176}, {153} + }, + { + {195}, {178}, {154} + }, + { + {180}, {161}, {137} + }, + { + {134}, {110}, {86} + }, + { + {110}, {77}, {45} + }, + { + {152}, {105}, {60} + }, + { + {164}, {115}, {70} + }, + { + {181}, {152}, {122} + }, + { + {201}, {184}, {159} + }, + { + {203}, {184}, {160} + }, + { + {204}, {184}, {158} + }, + { + {200}, {180}, {151} + } + }, + { + { + {190}, {168}, {150} + }, + { + {192}, {170}, {154} + }, + { + {190}, {172}, {151} + }, + { + {189}, {171}, {150} + }, + { + {189}, {171}, {150} + }, + { + {190}, {172}, {152} + }, + { + {191}, {173}, {152} + }, + { + {189}, {171}, {150} + }, + { + {192}, {170}, {146} + }, + { + {193}, {160}, {125} + }, + { + {196}, {149}, {102} + }, + { + {177}, {130}, {84} + }, + { + {163}, {132}, {105} + }, + { + {141}, {123}, {108} + }, + { + {110}, {91}, {78} + }, + { + {107}, {89}, {77} + }, + { + {154}, {138}, {124} + }, + { + {195}, {178}, {160} + }, + { + {197}, {181}, {162} + }, + { + {198}, {181}, {162} + }, + { + {198}, {181}, {161} + }, + { + {198}, {181}, {161} + }, + { + {197}, {179}, {159} + }, + { + {184}, {165}, {142} + }, + { + {160}, {138}, {106} + }, + { + {177}, {144}, {99} + }, + { + {180}, {137}, {87} + }, + { + {175}, {142}, {102} + }, + { + {202}, {181}, {154} + }, + { + {201}, {184}, {163} + }, + { + {200}, {183}, {163} + }, + { + {196}, {177}, {154} + } + }, + { + { + {174}, {153}, {136} + }, + { + {182}, {160}, {144} + }, + { + {184}, {166}, {147} + }, + { + {186}, {168}, {149} + }, + { + {188}, {170}, {151} + }, + { + {190}, {173}, {153} + }, + { + {189}, {172}, {152} + }, + { + {188}, {171}, {151} + }, + { + {193}, {174}, {152} + }, + { + {200}, {169}, {134} + }, + { + {200}, {155}, {107} + }, + { + {188}, {145}, {100} + }, + { + {190}, {162}, {132} + }, + { + {190}, {172}, {150} + }, + { + {184}, {166}, {146} + }, + { + {185}, {165}, {145} + }, + { + {188}, {169}, {149} + }, + { + {191}, {174}, {154} + }, + { + {196}, {179}, {158} + }, + { + {198}, {180}, {160} + }, + { + {199}, {181}, {161} + }, + { + {199}, {179}, {160} + }, + { + {198}, {179}, {159} + }, + { + {201}, {181}, {159} + }, + { + {214}, {195}, {168} + }, + { + {217}, {195}, {164} + }, + { + {167}, {132}, {92} + }, + { + {160}, {122}, {82} + }, + { + {209}, {180}, {145} + }, + { + {200}, {181}, {158} + }, + { + {194}, {179}, {161} + }, + { + {192}, {174}, {156} + } + }, + { + { + {182}, {162}, {146} + }, + { + {188}, {169}, {149} + }, + { + {187}, {170}, {152} + }, + { + {189}, {171}, {153} + }, + { + {190}, {171}, {154} + }, + { + {192}, {173}, {156} + }, + { + {194}, {175}, {157} + }, + { + {193}, {177}, {158} + }, + { + {193}, {176}, {158} + }, + { + {198}, {165}, {134} + }, + { + {197}, {152}, {106} + }, + { + {185}, {146}, {103} + }, + { + {188}, {164}, {136} + }, + { + {195}, {177}, {156} + }, + { + {195}, {177}, {156} + }, + { + {195}, {176}, {155} + }, + { + {194}, {176}, {155} + }, + { + {194}, {177}, {156} + }, + { + {196}, {178}, {159} + }, + { + {197}, {179}, {160} + }, + { + {198}, {179}, {158} + }, + { + {197}, {179}, {158} + }, + { + {196}, {179}, {158} + }, + { + {202}, {185}, {162} + }, + { + {222}, {203}, {176} + }, + { + {211}, {191}, {163} + }, + { + {147}, {121}, {89} + }, + { + {152}, {120}, {87} + }, + { + {198}, {167}, {131} + }, + { + {196}, {178}, {153} + }, + { + {193}, {178}, {156} + }, + { + {191}, {174}, {154} + } + }, + { + { + {181}, {160}, {145} + }, + { + {186}, {167}, {147} + }, + { + {186}, {169}, {150} + }, + { + {187}, {169}, {152} + }, + { + {189}, {170}, {153} + }, + { + {190}, {171}, {154} + }, + { + {191}, {171}, {153} + }, + { + {190}, {172}, {154} + }, + { + {190}, {172}, {153} + }, + { + {184}, {151}, {119} + }, + { + {179}, {135}, {92} + }, + { + {174}, {138}, {98} + }, + { + {182}, {162}, {136} + }, + { + {190}, {175}, {156} + }, + { + {189}, {174}, {156} + }, + { + {182}, {169}, {152} + }, + { + {176}, {164}, {148} + }, + { + {174}, {162}, {147} + }, + { + {176}, {163}, {149} + }, + { + {183}, {168}, {152} + }, + { + {187}, {172}, {154} + }, + { + {185}, {172}, {154} + }, + { + {185}, {173}, {152} + }, + { + {202}, {186}, {159} + }, + { + {218}, {201}, {170} + }, + { + {183}, {167}, {146} + }, + { + {135}, {114}, {92} + }, + { + {135}, {107}, {82} + }, + { + {174}, {148}, {119} + }, + { + {188}, {167}, {141} + }, + { + {193}, {176}, {156} + }, + { + {191}, {171}, {150} + } + }, + { + { + {181}, {160}, {145} + }, + { + {186}, {167}, {146} + }, + { + {183}, {166}, {148} + }, + { + {183}, {164}, {147} + }, + { + {184}, {165}, {148} + }, + { + {184}, {165}, {148} + }, + { + {186}, {166}, {148} + }, + { + {186}, {166}, {147} + }, + { + {185}, {166}, {145} + }, + { + {179}, {147}, {114} + }, + { + {173}, {132}, {92} + }, + { + {175}, {143}, {112} + }, + { + {175}, {158}, {140} + }, + { + {162}, {149}, {136} + }, + { + {135}, {126}, {117} + }, + { + {106}, {104}, {102} + }, + { + {88}, {91}, {94} + }, + { + {83}, {86}, {91} + }, + { + {84}, {87}, {93} + }, + { + {96}, {94}, {100} + }, + { + {109}, {105}, {109} + }, + { + {114}, {112}, {112} + }, + { + {134}, {128}, {119} + }, + { + {187}, {173}, {153} + }, + { + {191}, {177}, {152} + }, + { + {133}, {124}, {116} + }, + { + {126}, {109}, {93} + }, + { + {144}, {119}, {94} + }, + { + {151}, {131}, {111} + }, + { + {158}, {135}, {112} + }, + { + {145}, {134}, {123} + }, + { + {166}, {150}, {135} + } + }, + { + { + {180}, {159}, {144} + }, + { + {183}, {164}, {143} + }, + { + {182}, {164}, {145} + }, + { + {183}, {165}, {147} + }, + { + {186}, {168}, {150} + }, + { + {187}, {168}, {150} + }, + { + {186}, {167}, {149} + }, + { + {186}, {166}, {148} + }, + { + {188}, {168}, {145} + }, + { + {189}, {158}, {124} + }, + { + {190}, {151}, {112} + }, + { + {176}, {146}, {121} + }, + { + {154}, {137}, {124} + }, + { + {140}, {128}, {120} + }, + { + {127}, {121}, {118} + }, + { + {97}, {98}, {104} + }, + { + {71}, {75}, {85} + }, + { + {65}, {67}, {79} + }, + { + {64}, {67}, {79} + }, + { + {62}, {68}, {80} + }, + { + {61}, {69}, {80} + }, + { + {72}, {78}, {81} + }, + { + {117}, {115}, {105} + }, + { + {168}, {157}, {137} + }, + { + {145}, {134}, {117} + }, + { + {99}, {92}, {88} + }, + { + {125}, {107}, {89} + }, + { + {150}, {124}, {98} + }, + { + {113}, {98}, {86} + }, + { + {153}, {131}, {111} + }, + { + {95}, {91}, {86} + }, + { + {133}, {120}, {112} + } + }, + { + { + {185}, {164}, {147} + }, + { + {188}, {168}, {146} + }, + { + {188}, {170}, {150} + }, + { + {188}, {170}, {150} + }, + { + {188}, {170}, {150} + }, + { + {187}, {169}, {149} + }, + { + {185}, {168}, {148} + }, + { + {185}, {168}, {146} + }, + { + {191}, {168}, {141} + }, + { + {190}, {158}, {122} + }, + { + {189}, {151}, {111} + }, + { + {186}, {157}, {124} + }, + { + {179}, {160}, {137} + }, + { + {159}, {147}, {133} + }, + { + {120}, {113}, {107} + }, + { + {83}, {83}, {82} + }, + { + {80}, {79}, {81} + }, + { + {99}, {93}, {93} + }, + { + {103}, {98}, {96} + }, + { + {87}, {86}, {85} + }, + { + {83}, {81}, {82} + }, + { + {111}, {104}, {98} + }, + { + {148}, {135}, {120} + }, + { + {165}, {149}, {128} + }, + { + {155}, {139}, {121} + }, + { + {151}, {135}, {120} + }, + { + {162}, {139}, {116} + }, + { + {130}, {106}, {91} + }, + { + {95}, {83}, {80} + }, + { + {160}, {139}, {118} + }, + { + {112}, {102}, {90} + }, + { + {160}, {140}, {126} + } + }, + { + { + {183}, {161}, {145} + }, + { + {188}, {168}, {146} + }, + { + {189}, {170}, {150} + }, + { + {189}, {171}, {151} + }, + { + {187}, {169}, {149} + }, + { + {186}, {168}, {148} + }, + { + {186}, {168}, {148} + }, + { + {186}, {166}, {145} + }, + { + {190}, {166}, {142} + }, + { + {186}, {155}, {126} + }, + { + {170}, {138}, {107} + }, + { + {156}, {134}, {109} + }, + { + {141}, {127}, {109} + }, + { + {124}, {110}, {99} + }, + { + {121}, {108}, {101} + }, + { + {133}, {122}, {111} + }, + { + {151}, {138}, {122} + }, + { + {166}, {148}, {131} + }, + { + {162}, {145}, {126} + }, + { + {150}, {136}, {116} + }, + { + {157}, {141}, {122} + }, + { + {173}, {153}, {132} + }, + { + {179}, {155}, {131} + }, + { + {172}, {148}, {123} + }, + { + {153}, {133}, {113} + }, + { + {141}, {123}, {107} + }, + { + {153}, {135}, {113} + }, + { + {134}, {115}, {97} + }, + { + {137}, {124}, {107} + }, + { + {185}, {164}, {147} + }, + { + {131}, {115}, {104} + }, + { + {170}, {149}, {129} + } + }, + { + { + {183}, {162}, {145} + }, + { + {187}, {167}, {145} + }, + { + {185}, {167}, {147} + }, + { + {184}, {165}, {146} + }, + { + {182}, {164}, {144} + }, + { + {182}, {164}, {144} + }, + { + {181}, {164}, {144} + }, + { + {171}, {155}, {137} + }, + { + {147}, {130}, {113} + }, + { + {143}, {124}, {106} + }, + { + {138}, {119}, {102} + }, + { + {137}, {120}, {108} + }, + { + {147}, {130}, {118} + }, + { + {164}, {147}, {129} + }, + { + {177}, {158}, {136} + }, + { + {182}, {162}, {137} + }, + { + {185}, {162}, {137} + }, + { + {186}, {162}, {137} + }, + { + {187}, {163}, {138} + }, + { + {188}, {164}, {139} + }, + { + {189}, {163}, {139} + }, + { + {190}, {163}, {138} + }, + { + {190}, {163}, {136} + }, + { + {188}, {162}, {136} + }, + { + {184}, {160}, {138} + }, + { + {180}, {158}, {138} + }, + { + {177}, {157}, {133} + }, + { + {174}, {155}, {132} + }, + { + {175}, {156}, {130} + }, + { + {159}, {137}, {117} + }, + { + {160}, {139}, {120} + }, + { + {180}, {157}, {134} + } + }, + { + { + {183}, {160}, {143} + }, + { + {185}, {165}, {144} + }, + { + {183}, {163}, {143} + }, + { + {184}, {163}, {145} + }, + { + {185}, {164}, {145} + }, + { + {185}, {165}, {146} + }, + { + {188}, {167}, {148} + }, + { + {191}, {168}, {147} + }, + { + {184}, {162}, {141} + }, + { + {172}, {151}, {131} + }, + { + {169}, {149}, {130} + }, + { + {182}, {162}, {140} + }, + { + {192}, {170}, {148} + }, + { + {194}, {171}, {149} + }, + { + {194}, {170}, {149} + }, + { + {194}, {169}, {147} + }, + { + {193}, {169}, {146} + }, + { + {192}, {169}, {147} + }, + { + {191}, {168}, {147} + }, + { + {192}, {166}, {147} + }, + { + {193}, {165}, {147} + }, + { + {193}, {166}, {146} + }, + { + {192}, {167}, {144} + }, + { + {192}, {167}, {144} + }, + { + {192}, {165}, {143} + }, + { + {192}, {165}, {142} + }, + { + {193}, {168}, {140} + }, + { + {193}, {168}, {143} + }, + { + {193}, {168}, {143} + }, + { + {193}, {170}, {144} + }, + { + {193}, {169}, {141} + }, + { + {188}, {163}, {140} + } + }, + { + { + {171}, {138}, {120} + }, + { + {172}, {145}, {126} + }, + { + {173}, {144}, {124} + }, + { + {174}, {142}, {125} + }, + { + {174}, {142}, {125} + }, + { + {175}, {143}, {126} + }, + { + {176}, {144}, {127} + }, + { + {177}, {145}, {127} + }, + { + {176}, {144}, {127} + }, + { + {176}, {145}, {127} + }, + { + {176}, {145}, {127} + }, + { + {175}, {143}, {125} + }, + { + {174}, {143}, {124} + }, + { + {176}, {144}, {126} + }, + { + {178}, {146}, {128} + }, + { + {178}, {146}, {126} + }, + { + {178}, {147}, {125} + }, + { + {178}, {147}, {126} + }, + { + {178}, {147}, {125} + }, + { + {178}, {147}, {126} + }, + { + {179}, {147}, {127} + }, + { + {179}, {148}, {126} + }, + { + {177}, {146}, {125} + }, + { + {176}, {145}, {124} + }, + { + {176}, {145}, {123} + }, + { + {177}, {145}, {123} + }, + { + {177}, {145}, {123} + }, + { + {178}, {146}, {124} + }, + { + {179}, {148}, {126} + }, + { + {179}, {148}, {126} + }, + { + {180}, {148}, {126} + }, + { + {178}, {142}, {122} + } + } +}; + + +#endif /* IBEX_INPUTS_H */ diff --git a/inference_codes/cmsis_cnn/optimized/Makefile b/inference_codes/cmsis_cnn/optimized/Makefile new file mode 100644 index 0000000..fd59fe9 --- /dev/null +++ b/inference_codes/cmsis_cnn/optimized/Makefile @@ -0,0 +1,15 @@ +# Copyright lowRISC contributors. +# Licensed under the Apache License, Version 2.0, see LICENSE for details. +# SPDX-License-Identifier: Apache-2.0 +# +# Generate a baremetal application + +# Name of the program $(PROGRAM).c will be added as a source file + +PROGRAM = cmsis_cnn +PROGRAM_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) +# Any extra source files to include in the build. Use the upper case .S +# extension for assembly files +EXTRA_SRCS := + +include ${PROGRAM_DIR}/../../common/common.mk diff --git a/inference_codes/cmsis_cnn/optimized/cmsis_cnn.c b/inference_codes/cmsis_cnn/optimized/cmsis_cnn.c new file mode 100644 index 0000000..68f0822 --- /dev/null +++ b/inference_codes/cmsis_cnn/optimized/cmsis_cnn.c @@ -0,0 +1,153 @@ +#include "simple_system_common.h" +#include "cnn_weights.h" +#include "fully_connected_opt.h" +#include "ibex_cnn_params.h" +#include "ibex_inputs.h" +#include "conv2d_opt.h" + +#define IMG_SZ 32 +#define NUM_FIL0 1 + +#define FILTER1 5 +#define FILTER2 5 +#define FILTER3 5 + +#define NUM_FIL1 8 +#define NUM_FIL2 8 +#define NUM_FIL3 16 + +#define STRIDE1 1 +#define STRIDE2 1 +#define STRIDE3 1 + +#define PAD_TB1 2 +#define PAD_LR1 2 + +#define PAD_TB2 2 +#define PAD_LR2 2 + +#define PAD_TB3 2 +#define PAD_LR3 2 + +#define POOL_STRIDE1 2 +#define POOL_SIZE1 2 + +#define POOL_STRIDE2 2 +#define POOL_SIZE2 2 + +#define POOL_STRIDE3 2 +#define POOL_SIZE3 2 + +#define OUT_DIM 3 + +#define SAMPLES 1 +int outs[SAMPLES][OUT_DIM]; + +void cmsis_cnn() { + + int dout1 = NUM_FIL1; + int hout1 = ((IMG_SZ - FILTER1 + 2 * PAD_TB1)/STRIDE1) + 1; + int wout1 = ((IMG_SZ - FILTER1 + 2 * PAD_LR1)/STRIDE1) + 1; + + int dout2 = dout1; + int hout2 = hout1/POOL_STRIDE1; + int wout2 = wout1/POOL_STRIDE1; + + int dout3 = NUM_FIL2; + int hout3 = ((hout2 - FILTER2+ 2 * PAD_TB2)/STRIDE2)+1; + int wout3 = ((wout2 - FILTER2+ 2 * PAD_LR2)/STRIDE2)+1; + + int dout4 = dout3; + int hout4 = hout3/POOL_STRIDE2; + int wout4 = wout3/POOL_STRIDE2; + + int dout5 = NUM_FIL3; + int hout5 = ((hout4 - FILTER3+ 2 * PAD_TB3)/STRIDE3)+1; + int wout5 = ((wout4 - FILTER3+ 2 * PAD_LR3)/STRIDE3)+1; + + int dout6 = dout5; + int hout6 = hout5/POOL_STRIDE3; + int wout6 = wout5/POOL_STRIDE3; + + int flatten_dim = dout6 * hout6 * wout6; + + int in[IMG_SZ][IMG_SZ][NUM_FIL0]; + int inp_dim[3] = {IMG_SZ, IMG_SZ, NUM_FIL0}; + + int out1[hout1][wout1][dout1]; + int pad_1[4] = {PAD_TB1, PAD_TB1, PAD_LR1, PAD_LR1}; + int outp_dim1[3] = {hout1, wout1, dout1}; + int f_dim1[4] = {NUM_FIL1, FILTER1, FILTER1, NUM_FIL0}; + + int out2[hout2][wout2][dout2]; + int outp_dim2[3] = {hout2, wout2, dout2}; + + int out3[hout3][wout3][dout3]; + int pad_3[4] = {PAD_TB2, PAD_TB2, PAD_LR2, PAD_LR2}; + int outp_dim3[3] = {hout3, wout3, dout3}; + int f_dim3[4] = {NUM_FIL2, FILTER2, FILTER2, NUM_FIL1}; + + int out4[hout4][wout4][dout4]; + int outp_dim4[3] = {hout4, wout4, dout4}; + + int out5[hout5][wout5][dout5]; + int pad_5[4] = {PAD_TB3, PAD_TB3, PAD_LR3, PAD_LR3}; + int outp_dim5[3] = {hout5, wout5, dout5}; + int f_dim5[4] = {NUM_FIL3, FILTER3, FILTER3, NUM_FIL2}; + + int out6[hout6][wout6][dout6]; + int outp_dim6[3] = {hout6, wout6, dout6}; + + int out7[flatten_dim]; + + int out[OUT_DIM]; + + for (int iter = 0; iter < SAMPLES; iter++){ + + for(int i = 0; i < IMG_SZ; i++){ + for(int j = 0; j < IMG_SZ; j++){ + for(int k = 0; k < NUM_FIL0; k++){ + in[i][j][k] = input[i][j][k][iter]; + } + } + } + + pcount_enable(1); + + conv2_8bits_1ch(inp_dim, f_dim1, outp_dim1, in, F1, B1, out1, STRIDE1, pad_1, SB1, MV1, SV1); + maxpool2_compressed(outp_dim1, outp_dim2, out1, out2, POOL_SIZE1, POOL_STRIDE1); + + conv2_8bits(outp_dim2, f_dim3, outp_dim3, out2, F2, B2, out3, STRIDE2, pad_3, SB2, MV2, SV2); + maxpool2_compressed(outp_dim3, outp_dim4, out3, out4, POOL_SIZE2, POOL_STRIDE2); + + conv2_2bits(outp_dim4, f_dim5, outp_dim5, out4, F3, B3, out5, STRIDE3, pad_5, SB3, MV3, SV3); + maxpool2_compressed(outp_dim5, outp_dim6, out5, out6, POOL_SIZE3, POOL_STRIDE3); + + flatten(outp_dim6, out6, out7); + + mlp_layer_2bits(out7, out, flatten_dim, OUT_DIM, W1, B4, SB4, MV4, SV4); + + pcount_enable(0); + + puts("Output Layer Values:\n"); + for(int i = 0; i < OUT_DIM; i++) { + puthex((out[i] & 0xFF000000) >> 24); + puts(" "); + puthex((out[i] & 0xFF0000) >> 16); + puts(" "); + puthex((out[i] & 0xFF00) >> 8); + puts(" "); + puthex(out[i] & 0xFF); + puts("\n"); + } + } +} + +int main(void) { + + pcount_enable(0); + + cmsis_cnn(); + + return 0; +} diff --git a/inference_codes/cmsis_cnn/optimized/cnn_weights.h b/inference_codes/cmsis_cnn/optimized/cnn_weights.h new file mode 100644 index 0000000..38204da --- /dev/null +++ b/inference_codes/cmsis_cnn/optimized/cnn_weights.h @@ -0,0 +1,1220 @@ +#ifndef CNN_WEIGHTS_H +#define CNN_WEIGHTS_H + +static const int F1[8][5][5][4] = { + { + { + {3229013770, 3928671459, 4123267916, 0}, + {172705851, 1110582215, 786713932, 0}, + {139325903, 3241991153, 1460939241, 0}, + {424525381, 457887680, 1525327321, 0}, + {3915813827, 3980382523, 959822367, 0} + }, + { + {1009075534, 3317358617, 3556324434, 0}, + {3892914234, 1328094458, 1186533725, 0}, + {3813741035, 3258512172, 640410665, 0}, + {3945374035, 3509054188, 1481184974, 0}, + {553295350, 3692304155, 322821969, 0} + }, + { + {1057815061, 1190847804, 3894488385, 0}, + {4078957619, 885732121, 1142085601, 0}, + {1022016473, 556387825, 320551153, 0}, + {3589464832, 10135026, 3608005596, 0}, + {3319205915, 819057202, 216974556, 0} + }, + { + {3956755509, 302660669, 4045615103, 0}, + {4092530738, 4172813068, 131814971, 0}, + {418832959, 4154856698, 81844240, 0}, + {3956526082, 3572967734, 111147824, 0}, + {3667916328, 261879072, 749000915, 0} + }, + { + {740764452, 737304281, 1323320891, 0}, + {1186987069, 3651748559, 1024737280, 0}, + {4160744412, 3519627589, 98222870, 0}, + {3284988694, 3771023945, 1445269004, 0}, + {4110091556, 4056624667, 557205066, 0} + } + }, + { + { + {3404143116, 640669462, 3822575578, 0}, + {3626111266, 4106168294, 4241436245, 0}, + {1337803748, 251529022, 1288770119, 0}, + {88034040, 1205715151, 735951063, 0}, + {840828650, 3652444852, 3908686814, 0} + }, + { + {418268429, 182113595, 2968892886, 0}, + {657126474, 3570460236, 4011642444, 0}, + {1307250492, 3268431592, 1243620839, 0}, + {1310834145, 3735678658, 1340411091, 0}, + {1169175018, 1201917628, 1275185899, 0} + }, + { + {625299240, 3569873889, 2939871035, 0}, + {1108795624, 3068056352, 3908712158, 0}, + {3518451936, 3588568661, 1203500587, 0}, + {668459989, 567534357, 903334156, 0}, + {3838358838, 687870679, 63350744, 0} + }, + { + {3976986436, 3316699119, 3303077380, 0}, + {3151775246, 774717977, 1077601259, 0}, + {4263002629, 852484917, 3642426964, 0}, + {890160129, 3368873183, 3621013326, 0}, + {537407211, 69614873, 29143583, 0} + }, + { + {3506315836, 3992122652, 3585988641, 0}, + {920655938, 888454691, 1088552958, 0}, + {82827502, 3939228391, 1328885190, 0}, + {431309101, 1307855924, 3543651842, 0}, + {3491172849, 4274539555, 334246151, 0} + } + }, + { + { + {1187964145, 1212083236, 3242605298, 0}, + {3200194881, 297454104, 952566755, 0}, + {15516159, 3355911361, 1303204585, 0}, + {3874100155, 960908758, 1095312042, 0}, + {3687440427, 3656320818, 805895654, 0} + }, + { + {3153609929, 4279193546, 98454227, 0}, + {1277373874, 3390225692, 456581890, 0}, + {1180349714, 1294551880, 3997452520, 0}, + {334884359, 52355041, 1122326024, 0}, + {488719916, 550641941, 300224254, 0} + }, + { + {2998524726, 4261791692, 97713348, 0}, + {4264113951, 608222912, 3855045621, 0}, + {1024443429, 3474312659, 3510309850, 0}, + {3444650214, 3539942417, 314713096, 0}, + {3963794643, 3193886011, 641810438, 0} + }, + { + {869811713, 3678929879, 3066645711, 0}, + {909841205, 3324118986, 818695214, 0}, + {568115695, 3318223046, 3286980791, 0}, + {1109469866, 2948724509, 402608116, 0}, + {301927490, 3841269441, 565307330, 0} + }, + { + {901333952, 238435341, 3053908145, 0}, + {505540828, 3519004455, 1021636402, 0}, + {385751056, 2855781201, 65660857, 0}, + {1174535421, 4127275456, 3485387732, 0}, + {3302562264, 704661182, 4076810259, 0} + } + }, + { + { + {3157438758, 3864466492, 1293398977, 0}, + {909554239, 3776775118, 34080422, 0}, + {3040456972, 1007674883, 1069265603, 0}, + {16379962, 1226098397, 4214426659, 0}, + {3521322306, 3188460283, 3853374722, 0} + }, + { + {806096346, 3492852685, 667370038, 0}, + {1374675958, 3729923862, 1123493346, 0}, + {4030447043, 4227145027, 3455434689, 0}, + {4213186032, 1344923665, 3405128443, 0}, + {3217273798, 84229318, 1509705286, 0} + }, + { + {895080525, 3185620768, 3779009744, 0}, + {1262280407, 3807715027, 64284075, 0}, + {1159575786, 335137715, 406960147, 0}, + {723891189, 1159528661, 1339491816, 0}, + {540918274, 4046435797, 1497117381, 0} + }, + { + {150016496, 3856593363, 3977102386, 0}, + {3909364195, 1002250517, 936110777, 0}, + {3605792483, 3805258525, 514585315, 0}, + {841751742, 3688830700, 1108331759, 0}, + {4058521379, 347459066, 783354408, 0} + }, + { + {3377248564, 1002947556, 3888185326, 0}, + {937603883, 234339596, 3903572498, 0}, + {1296350002, 1071057332, 1421357826, 0}, + {792436458, 971374386, 3708139694, 0}, + {3876389591, 3824349486, 470995147, 0} + } + }, + { + { + {3921742609, 2719802170, 3241991499, 0}, + {3272074480, 52776163, 556781114, 0}, + {3475833876, 751105616, 3424589883, 0}, + {2951744315, 725624084, 4043590594, 0}, + {776669740, 204272203, 4080000269, 0} + }, + { + {4192332017, 419620031, 49365978, 0}, + {3226933774, 806296075, 3455197958, 0}, + {1060551705, 3881498118, 4242284258, 0}, + {104206867, 1010567663, 1429147174, 0}, + {64286674, 3510559286, 22619118, 0} + }, + { + {3175800099, 3858105849, 3862173983, 0}, + {189131778, 918926804, 1496270287, 0}, + {1377089523, 3694465199, 1414904865, 0}, + {391132973, 1461437246, 1524300215, 0}, + {1093590508, 1226754813, 1499119844, 0} + }, + { + {3375892680, 3872698135, 3519996202, 0}, + {404988851, 251012044, 3369397301, 0}, + {300599852, 3527866620, 1170418205, 0}, + {3185157036, 3958454597, 3202152190, 0}, + {4080642819, 3084430600, 3410113035, 0} + }, + { + {3693159891, 4179372578, 3401593594, 0}, + {641190683, 99356847, 742532096, 0}, + {1088226727, 3354672617, 572064291, 0}, + {3609064123, 534431256, 239748892, 0}, + {3586052275, 1278298137, 654793236, 0} + } + }, + { + { + {2906588720, 941816264, 333074706, 0}, + {170862838, 4212200416, 986990568, 0}, + {1043536916, 650250809, 3165520421, 0}, + {3099845716, 3822271241, 3522153984, 0}, + {4193116889, 1271665371, 901592382, 0} + }, + { + {3318329111, 943248564, 721027298, 0}, + {4055802615, 365568680, 3289110199, 0}, + {316664306, 1313520397, 3287289648, 0}, + {218751686, 1136470472, 3676446419, 0}, + {3810851642, 1077856949, 2987460430, 0} + }, + { + {2865113894, 4013808609, 3074103597, 0}, + {3154566389, 3440197604, 842534725, 0}, + {573092315, 944194324, 4062519739, 0}, + {758229684, 4157281013, 1011553788, 0}, + {3875927280, 374654936, 4177260314, 0} + }, + { + {717676319, 106286252, 3509919508, 0}, + {609802770, 1106783907, 3169933496, 0}, + {1160625093, 1142176017, 3575432469, 0}, + {584058670, 324394684, 239290546, 0}, + {3085940700, 2916479657, 81736943, 0} + }, + { + {2931817761, 706341590, 4012305417, 0}, + {29101281, 818925263, 3770300222, 0}, + {67634915, 1271064242, 4114567998, 0}, + {3686775506, 668931560, 3659143158, 0}, + {4194761488, 3107734586, 809326638, 0} + } + }, + { + { + {776011445, 1188182856, 858900516, 0}, + {3454255588, 3895121428, 4293516374, 0}, + {538847940, 166713365, 372633061, 0}, + {318197239, 1257827024, 754912559, 0}, + {35853332, 3318489626, 180226344, 0} + }, + { + {1307834401, 3675462157, 671414479, 0}, + {3954978817, 4057529608, 3654732587, 0}, + {1329718519, 1204221628, 4213321946, 0}, + {420548833, 3568819013, 822674495, 0}, + {3674951957, 906569714, 653061838, 0} + }, + { + {4283675107, 321854704, 4061787906, 0}, + {1205088839, 374399146, 1413156828, 0}, + {3253803590, 870301647, 517531220, 0}, + {3692166341, 214520810, 1039931158, 0}, + {114839262, 3923786238, 3717526840, 0} + }, + { + {3747951185, 3847735751, 3710363644, 0}, + {223355168, 1294474284, 1531062354, 0}, + {1145646359, 4163161818, 350109956, 0}, + {212147439, 3519433482, 503692561, 0}, + {529996267, 4020357060, 850856765, 0} + }, + { + {604549376, 3136610803, 922557649, 0}, + {1359689184, 274552581, 1079304371, 0}, + {4030977854, 72618725, 3838366940, 0}, + {698690747, 3137800216, 3640538344, 0}, + {3684811300, 3783381303, 3726319897, 0} + } + }, + { + { + {3558096926, 737280056, 1207390697, 0}, + {588850966, 1324557362, 986795566, 0}, + {3301310792, 238089737, 3541561166, 0}, + {3770564560, 757992629, 1152594125, 0}, + {4065604143, 1358977104, 976803396, 0} + }, + { + {339206995, 235661255, 167701225, 0}, + {1053564098, 282847205, 68863767, 0}, + {263782890, 3389863893, 3257007328, 0}, + {549786603, 651016972, 447632110, 0}, + {1304412391, 2613065, 1189676984, 0} + }, + { + {384815402, 825555674, 3872323288, 0}, + {4144954173, 1190349787, 3989046718, 0}, + {1255084282, 3391231957, 37043644, 0}, + {1244516356, 3267254, 3353166815, 0}, + {357151548, 3176451290, 448054063, 0} + }, + { + {940788722, 490659843, 3199091505, 0}, + {170970030, 3661478871, 4238479831, 0}, + {347091156, 3340692408, 3240431061, 0}, + {759303978, 4006669600, 4126757827, 0}, + {3477342536, 101564143, 3676586278, 0} + }, + { + {263958484, 465627100, 398148383, 0}, + {3423590690, 902708737, 448157362, 0}, + {3760577589, 3841135276, 104807121, 0}, + {489688915, 3797671418, 4196549966, 0}, + {1143664156, 953601099, 1287535856, 0} + } + } +}; + +static const int F2[8][5][5][32] = { + { + { + {600839934, 3637316293, 3675189737, 249829374, 168237612, 3806793710, 3471778806, 4226278642, 672931865, 371784933, 617871645, 3993101818, 4060812810, 3876194554, 4291962120, 3740206075, 4276019726, 601680910, 16382698, 3990223845, 4243133729, 4073782490, 268441830, 4093837060, 652078095, 3222460690, 134478093, 585695744, 4025230085, 4294446077, 570433787, 164632100}, + {502998038, 3222089936, 3439920601, 384634356, 118559778, 4074514899, 4162575405, 32050983, 656285727, 4113422576, 768935931, 4060476431, 48178211, 184884262, 4246268943, 85270563, 3826642403, 68617258, 3607313593, 402197781, 353767973, 3942847176, 469380369, 269365200, 286786580, 3158491888, 67705879, 518001894, 404560168, 3926003249, 231939864, 115086883}, + {234492409, 3424722133, 3757643499, 434961971, 421206049, 3726306564, 3624863741, 605415658, 170000910, 4146910455, 50860848, 3709202974, 821552150, 3927562471, 3725328124, 101772049, 4091484942, 753857833, 4276100331, 534832907, 31521835, 149228502, 335493588, 234751173, 603252978, 3793161705, 3959612432, 3910738943, 316414192, 285531893, 48765679, 132971243}, + {4061600009, 3354994114, 3993248546, 4144175369, 234161141, 3926258671, 3607091741, 3807387685, 723450679, 3589136372, 3993173784, 4143979238, 4008829701, 152299285, 4262454735, 4128499957, 199488990, 4158840096, 117517028, 299640351, 536413950, 3741251855, 31793106, 3722320333, 4128629043, 4080206844, 182384133, 3960791831, 402778907, 4262268404, 835776806, 287179983}, + {4125287730, 3221356228, 182585873, 4075031080, 301849583, 3792572386, 186119436, 4160286734, 519706633, 3957390852, 4243323671, 3923961838, 185540368, 4058243848, 199693291, 319616778, 3756985863, 318374966, 3760325062, 4077458671, 873989393, 3757384915, 4075619293, 3758422271, 4177325367, 386921771, 402717214, 3876512019, 4007526917, 468779262, 3841796327, 4111998932} + }, + { + {4279175946, 69024959, 3458998739, 4043635716, 3773235236, 4090823655, 4246607909, 3910930153, 301339146, 169485566, 3910283510, 132440844, 669454574, 3890486543, 4023912170, 4058241772, 3995271964, 3860533790, 4109101795, 4124828692, 689114351, 4211484889, 470552300, 99813105, 402122245, 3054554867, 371259155, 369033217, 570696486, 721878811, 152237851, 4294701034}, + {235089906, 3993968330, 202973151, 502399508, 4225234926, 253223915, 789744, 3908892652, 720497904, 434824715, 216863741, 286579194, 334299631, 150669836, 519363570, 638195474, 4227870435, 4040363253, 4260758262, 518781182, 840818960, 3707648774, 637478097, 3692095214, 756544781, 4183744199, 320413482, 820252933, 51508517, 535234052, 266334989, 3927827746}, + {821571111, 3374195711, 3775402772, 605497850, 4263571765, 3856603661, 3707761139, 304472622, 4196263173, 3978106900, 870382574, 4012170520, 906832685, 3740983841, 237106699, 3859667422, 3839632915, 33892401, 3793166587, 168094243, 435876095, 3692504311, 4127593221, 4175693282, 4243920174, 69982164, 4208792597, 4111083545, 4045087778, 435488801, 502589674, 69275103}, + {4059173637, 3910208465, 4247725277, 568780342, 417726205, 4044232667, 419698964, 639164978, 86645801, 4262457098, 418188043, 4196927495, 251603738, 170983976, 334364373, 337044740, 3961332462, 68494594, 3789227237, 4243979271, 350024214, 3690216171, 101791444, 270197727, 400041275, 4215147777, 4044423967, 3860262666, 4127598088, 4262071529, 401085716, 119740415}, + {3993495808, 4214689748, 4044221450, 419699194, 4260877871, 3574265833, 419683363, 100796178, 637594933, 270602003, 669588478, 18406632, 805772083, 4246472719, 3659454746, 484970747, 3571524332, 735245823, 83034352, 115339537, 4245552671, 185547753, 4011398389, 3573476886, 399959354, 5305848, 4027966728, 4210371822, 250011697, 771087355, 302065151, 3672374029} + }, + { + {3856529149, 4029228514, 4126672847, 3558021894, 199950571, 286983682, 522511870, 4012116726, 690691066, 353955327, 4209318642, 519508742, 3841532675, 3928696041, 217504010, 454483205, 3723437086, 451160588, 3890684620, 99749102, 3974230265, 3892054260, 147797477, 349501193, 352457724, 3640972266, 4179815716, 736292073, 520302571, 553392653, 4028170200, 4259704291}, + {350549518, 3728097239, 4163893242, 488707617, 219018766, 4126415876, 4062449891, 402854659, 436218619, 3957848614, 453579805, 634970121, 101253385, 504365828, 168681966, 319617580, 267398434, 285872880, 4242941889, 48241943, 4112577294, 4079556057, 3990162403, 3757714942, 320010990, 3727025415, 133169180, 132975131, 220206633, 271441711, 419048153, 250211093}, + {251012070, 3843237587, 3675779788, 352711166, 520942347, 3891470053, 4228317985, 3742754029, 405484087, 3975024369, 4094238485, 149089575, 4078970163, 3741771768, 3791647762, 3961384435, 200151527, 4261737015, 236532462, 655291679, 604446989, 102235864, 250222330, 3624478476, 4093639928, 4776933, 267850000, 49805060, 3891864620, 819860007, 603720171, 4011781336}, + {233046004, 3509861376, 284621829, 437458965, 635249138, 3706707433, 4027051047, 4142863340, 221247985, 3995918855, 50078982, 51844580, 4227528756, 321514263, 300291851, 587847946, 3707308059, 218040108, 49417697, 4226624782, 552917016, 3844407515, 634528510, 4160692485, 4160431147, 523959555, 4277005814, 553454596, 4277669633, 806540284, 351150834, 4262005741}, + {586157857, 3339914204, 355926275, 4058911985, 3924427784, 3810586594, 468772073, 670039063, 337439783, 519239917, 4246474727, 115803627, 772472824, 4043966250, 384297986, 3790013726, 4126735125, 4293597181, 3673951436, 4227343125, 840497136, 4010026446, 353642254, 3626299127, 4192536838, 188941291, 738263056, 352118807, 319623412, 653125887, 3858233615, 3978370802} + }, + { + {133965078, 3676773350, 3874554319, 3878285061, 848661, 551486439, 3891727861, 151382036, 4112641073, 535110636, 34869796, 604902895, 3924755470, 4093114915, 4160818681, 537852654, 271712015, 252385579, 4259262152, 3942785319, 33481518, 3877054206, 14622690, 4162400278, 453642280, 3510428933, 187030528, 4025490432, 589821211, 589685513, 3974559740, 3774355750}, + {115863064, 3709878748, 137425863, 3910003232, 707986431, 4028495600, 353368053, 150998000, 4213909019, 685974502, 4245615647, 685114107, 435090215, 605677851, 4261012956, 333057293, 3808370144, 302048546, 4006229958, 333771513, 974641189, 3743751392, 4244574986, 4093444085, 756541735, 4249211124, 4279688986, 4175635727, 487390469, 48699926, 134294003, 350562800}, + {4024169245, 4110426324, 3727877624, 4245347331, 237762086, 4177723854, 3809158439, 120905494, 67239921, 4228576801, 655697127, 51388197, 320531472, 722077462, 3605270020, 3940608544, 4010604062, 621870075, 385223905, 807333155, 467133983, 49883897, 754584541, 3792318708, 368242977, 3258322967, 50661419, 3976468241, 402131186, 504371502, 252713504, 3726180380}, + {82846731, 4047915772, 252311004, 384555796, 484840207, 3807830744, 3877833207, 4127912950, 320808209, 4044811270, 653391588, 283840277, 434898721, 219538729, 183569427, 404490003, 4163170538, 136584442, 384449229, 32055036, 4160611342, 82443763, 3993775098, 4163317988, 638512173, 440982543, 4212394996, 199356447, 68551958, 251909934, 3823114716, 50206214}, + {3875269388, 152913428, 318956788, 166987003, 4078172186, 4078904099, 4041406953, 384626197, 504311570, 3890154023, 3926524156, 18679534, 67967525, 4095146550, 318765083, 250022162, 4075812085, 69200163, 3742316231, 118616564, 486152757, 436276969, 4111736062, 3858693893, 367855137, 103673364, 571278086, 4079486724, 18081555, 619969803, 202974173, 3458721763} + }, + { + {385486555, 203834338, 3336307200, 3857258978, 3962838530, 521078252, 4044367877, 116585479, 453577503, 4125691387, 453768450, 3975081485, 485232939, 3907267833, 266990591, 503783178, 4145743315, 3977713938, 3641384656, 755100450, 820962843, 15348407, 365705186, 352262126, 4062908413, 3573011193, 436397055, 301459727, 4192019186, 639109157, 3993167318, 4145280022}, + {351407867, 4046265304, 3304725714, 4162379268, 3874743563, 4227148043, 3790744052, 354025727, 2293520, 50339099, 234493929, 117108749, 4061339152, 688859944, 3925868769, 722139161, 3741969643, 3908362745, 14623434, 821958888, 468847876, 220524483, 134493448, 501871596, 19205908, 3794063093, 705949705, 453708536, 4094484998, 287382323, 336471058, 317719821}, + {14805751, 252181202, 3777759186, 99482363, 4247387667, 4007852007, 568911893, 35379198, 672602416, 687079965, 3793416161, 118093797, 99230494, 668985328, 351413475, 504896775, 3542946570, 371648004, 3843300077, 853470242, 518708010, 119416063, 703856879, 3979024888, 3960406553, 3360682223, 334628627, 31518221, 3994806569, 4292860169, 4128632609, 3824356870}, + {400497661, 3842637534, 289206257, 4061076005, 3894478346, 287377139, 570224176, 3961583094, 652535589, 517537312, 582894, 4027324404, 4226473766, 169932578, 4079420130, 3961775663, 51575531, 484635639, 4111535556, 301983967, 840229688, 202058981, 182126064, 3895276769, 4245223468, 3979216610, 4077127182, 4009237008, 539027225, 702554857, 301268452, 269813764}, + {3773700318, 3959165442, 3876779544, 235999254, 3993374426, 336978970, 4209960723, 4043571177, 354415155, 738330904, 669704687, 4110678558, 371260944, 336195049, 4195225109, 4145677845, 3541032139, 655087634, 217070572, 789241873, 868865574, 3809806025, 3993634005, 287570398, 519246069, 3981431073, 117496103, 536614394, 152434695, 316218110, 455009523, 4129363976} + } + }, + { + { + {4108132833, 219021063, 3592956982, 4042459931, 4276283913, 3856581604, 3809808916, 370088424, 167502611, 3408083734, 3977043448, 3859797999, 4209115100, 3774151693, 673109735, 4143253744, 3962241071, 3943311637, 787943961, 370349031, 4294515194, 253688638, 4260698881, 4024299506, 4041611549, 4230747341, 217904410, 639378156, 3960866055, 150418461, 383310815, 338433525}, + {840504581, 4144294705, 4246727989, 83102448, 152302329, 3924022285, 3809536806, 469426723, 503314942, 269496087, 117040661, 3756256223, 419431973, 4145687775, 4007396873, 4229489141, 4229431343, 299895526, 805048838, 485886987, 33359579, 504181545, 4176080646, 253679057, 4228977378, 3710519824, 4261412874, 3841784853, 3893358860, 321649421, 454621964, 4079416313}, + {735972382, 34673166, 19595786, 521086973, 521664493, 505215500, 3573151483, 519115820, 36240930, 3941339678, 4294641900, 132515848, 4228844560, 4079545353, 3725458925, 151184120, 3857646606, 3910534947, 282850819, 4279628289, 487077127, 16196883, 285011737, 702729963, 4210236899, 4245757442, 419365873, 4227591435, 4277724930, 285538021, 184287012, 238553613}, + {589304103, 4262003982, 3841389301, 66915083, 485684727, 3827878361, 4194696218, 452722472, 656540172, 4111012640, 752678420, 3841846224, 770512660, 4276356382, 3960796655, 286197500, 317922830, 115143706, 4125102603, 301062926, 3841798115, 252181573, 17287463, 370597638, 269873673, 190265057, 602413846, 4145935897, 4095349259, 3606389771, 636346897, 151457009}, + {166339050, 270140458, 133169677, 702877211, 3691907325, 301922003, 4212585472, 486025240, 539169049, 3925805572, 184817703, 67964650, 4011260425, 4029349629, 3857571285, 4212907995, 304818710, 4276544996, 4227465221, 4177005036, 568850184, 520617550, 4179229987, 353235203, 384827133, 3960083199, 100397838, 421530107, 718370, 82184968, 487061997, 289283334} + }, + { + {873985813, 4076748082, 3775196401, 4060604190, 3691182573, 3877174511, 4211929607, 3740658456, 3893109259, 3659808537, 236783889, 3760649433, 185141779, 119943418, 4126741209, 3727616975, 3891273784, 4124710947, 554637795, 803604470, 100284917, 320480305, 786362343, 3826323196, 4293269541, 3797433091, 4196465168, 4263056886, 4112328726, 3840748565, 838856178, 3860987126}, + {755373830, 3895135250, 3725926382, 417403392, 501544697, 3928355591, 3303879972, 15597081, 99152897, 3625659950, 1113579, 268229608, 501488942, 52110121, 169543639, 3893167112, 3777701892, 571145013, 85459475, 791026170, 132709628, 603593510, 316531972, 705225172, 4008384779, 3574470367, 4091749147, 4193391656, 3741388059, 4058838243, 501682467, 3559454212}, + {235805218, 551747408, 4129625833, 3756584240, 336603643, 503249877, 3709477664, 468514287, 672337428, 321795376, 840428339, 3976457938, 4094691613, 3639416859, 333509070, 3740863471, 102822943, 85713187, 4178185992, 18086936, 503647226, 501421402, 653588743, 115667412, 571353843, 3778616347, 136717843, 438706194, 434246175, 3675265314, 4058253809, 3959692556}, + {4146262254, 4130155574, 3927249382, 3772702222, 3776251166, 318174728, 3975941877, 116001070, 320350991, 3893313043, 4242473519, 3710705125, 4145345056, 3894674483, 434568929, 203823061, 555417878, 251141362, 889853211, 652868331, 4161876251, 4158389052, 1139074054, 453368602, 790961165, 3459448346, 169999636, 4045609462, 35335719, 3792304667, 803661311, 4177208051}, + {672001800, 4008969559, 3993049588, 4162003228, 168824842, 338155800, 4110689077, 3875152111, 3909155363, 3575202577, 4092653599, 3927646965, 452390654, 4162072870, 3909676784, 3910277093, 453257016, 3876920072, 4229365231, 285812507, 283060454, 3843360854, 435225115, 3845122785, 118744589, 4097834478, 3674928661, 539095586, 32645425, 237767184, 131718639, 3959425286} + }, + { + {704772647, 4127606586, 339089140, 3859475234, 334292275, 4211743225, 3370908147, 19337963, 4024767273, 3810082352, 4263309037, 486015458, 65855998, 4196340729, 4178769879, 4078903262, 52439560, 705304572, 755438120, 4060933392, 3978167544, 250283341, 14941698, 4193708058, 4109313779, 3108651262, 4177075215, 4124895734, 4227134482, 4059690208, 353765373, 151200774}, + {4242084071, 3774355739, 4127781588, 14485005, 116389919, 3708156946, 4096261415, 67101909, 101838603, 83378483, 502929441, 320998165, 3994165529, 4062061098, 287836917, 4193849876, 3743616795, 4260429804, 838593538, 167186695, 404169995, 4229229621, 768940513, 587862290, 484714746, 3978372609, 3607824649, 839002894, 302325506, 3874496527, 688065049, 3706458624}, + {3974556152, 555231023, 4177783034, 503577328, 369554217, 35390175, 4194169612, 3958703635, 418916632, 2437367, 753917706, 3589403906, 4076988907, 152513025, 588568560, 204088093, 16323883, 452526847, 840705018, 854985266, 218641625, 4128965193, 585553677, 400625448, 334960675, 3994093571, 4093568813, 4277012501, 554885914, 3608412392, 235535413, 3806982145}, + {31783186, 334448159, 3964005083, 4262466805, 385223454, 3858894595, 3845131061, 3609585396, 335481644, 4061336832, 81991672, 3807177214, 168884719, 3708098071, 168946163, 132458477, 67045371, 484766978, 806807577, 3926002449, 4043895787, 68752678, 284621546, 183891207, 756080389, 272577567, 3842631974, 99815449, 500821311, 3589536538, 4108647989, 3793880575}, + {201061096, 472921683, 371984665, 4276094972, 4059758885, 3727031553, 149890044, 4243322903, 519176946, 3776529154, 166650636, 4196671503, 3807369690, 220397874, 471787231, 4059440411, 3607044350, 618204709, 638904869, 302322177, 4176161779, 3941002280, 316347898, 4096132383, 3891853039, 3793946376, 4243718415, 217721859, 3691642929, 82262785, 686749748, 4147709754} + }, + { + {421192973, 4044428864, 3959882214, 518916042, 369164580, 4108197679, 3523145509, 68420103, 520754927, 169737731, 285019146, 383979283, 417848329, 32120085, 586476783, 269487627, 619378965, 336326668, 450100279, 536213791, 3776847596, 4180018452, 670029056, 51771916, 3890092306, 3641847305, 4041542413, 118553355, 4246074647, 237313282, 418719457, 33688597}, + {653919962, 3725600094, 3690784520, 52359412, 268367590, 183102740, 65867058, 4293334738, 635297816, 3507752745, 689499917, 3793158136, 351411696, 183116579, 4177519619, 3774285858, 506919984, 319036374, 201713450, 4044959980, 3991601882, 4161866753, 519367453, 4293462838, 4163379466, 2889244, 236130805, 404032045, 504760566, 4179624186, 368845288, 83685924}, + {4243069716, 3641715264, 522974177, 3642878155, 3573552919, 4180073962, 3909359644, 3928094979, 570565897, 286395917, 790295535, 3957204471, 4128315381, 436469813, 151117838, 4210553084, 4009100031, 3960332023, 31583291, 369238536, 4212786407, 4077526033, 4243839464, 169996021, 304410319, 3961074703, 3891518975, 486204971, 537713379, 3825019860, 4026988315, 387190336}, + {4095870187, 486541145, 3962186710, 3843821290, 3910664433, 368507909, 3895003191, 218880716, 4129363440, 3924695341, 417262296, 371191533, 436466377, 388429054, 3722782750, 551823604, 267001334, 335996125, 620370961, 236794127, 86116795, 3826055704, 118485792, 4210154549, 435087310, 223806994, 201521421, 619569441, 3843096834, 351671028, 470603028, 3927058970}, + {3978619375, 3827635813, 386664659, 3890995159, 3874037226, 283977962, 132058145, 233771762, 451674347, 3574413096, 551933708, 4210096870, 653656774, 65468217, 4146600217, 3877902111, 455869727, 199612927, 218232874, 370280453, 4178637810, 4092668666, 552670197, 31716340, 587854049, 37422385, 4263702509, 623378668, 4177005047, 34812932, 753327588, 3673358636} + }, + { + {31786244, 3842837806, 3642037792, 3708415232, 3693336822, 3675848215, 3691059483, 252900607, 501213187, 551349783, 4010019061, 4228454901, 4226217184, 253174551, 551494417, 182903566, 287898891, 403049461, 84615683, 721483790, 184623297, 3856995353, 619306274, 33428795, 4111534797, 4009902080, 3810599949, 487524865, 217915915, 136716017, 3927385879, 4125491504}, + {636558562, 3721461840, 3572446228, 3673945331, 455218943, 133893681, 3475053586, 103282409, 802878475, 3642617627, 4294499778, 3789094431, 554036949, 4026331951, 3843819004, 3908381168, 220406743, 4192787938, 4158842693, 518513680, 3974890944, 3655593466, 550377258, 3941339656, 402644707, 3841403135, 3908768227, 4109696527, 48960222, 134556941, 384441574, 4111135787}, + {4062374923, 285603417, 401093369, 50858220, 19787486, 3940885248, 3640989473, 4079345158, 4112188912, 385752084, 135133698, 538518827, 3976599995, 132711715, 148963564, 4028766449, 3623811563, 4078496759, 551949613, 403958783, 335357115, 4095476753, 65661487, 4108118581, 302638268, 3979015931, 4178371538, 4078628331, 135068916, 3692173582, 4210495963, 3488740388}, + {405340356, 3675580736, 337045275, 488237771, 3740016121, 537649706, 3925927423, 3760710152, 149878037, 3758822158, 4042788585, 4228848394, 4060473800, 3791911211, 150009115, 3826263567, 3891343338, 4075677188, 4175568131, 4158784763, 3908957396, 4076742443, 653782774, 3893615652, 65211587, 3729523704, 3890210318, 753722642, 3791523325, 4029018091, 3893488900, 16973864}, + {300737251, 369682476, 36708089, 69332186, 403700443, 33556721, 4075479558, 301002742, 4112247570, 336925470, 335995666, 3841389086, 3726317787, 521264431, 4193782759, 3692044799, 166589732, 4041926861, 4094285568, 721871873, 468455654, 4142930195, 14351653, 4025287726, 66184445, 3912951545, 3707640572, 4196398092, 4261412339, 199697152, 569958609, 3622637080} + } + }, + { + { + {4294638086, 3756715210, 101451797, 437442556, 200348903, 4259247617, 4026600435, 320861480, 419107295, 3876257816, 602018039, 3521057496, 218499620, 3807833352, 3387287269, 1044497, 4027185671, 350934784, 83553280, 471339474, 721886726, 3521640942, 4141013508, 3739550707, 386004763, 4182382138, 687738891, 31065832, 85981973, 101062959, 702999323, 3926532301}, + {4159498468, 3793424618, 4028755248, 4125300231, 4145611299, 3843747568, 3792242418, 454682395, 4161215237, 3573679388, 4195027166, 185864965, 134283532, 167905498, 233183724, 3592364274, 3508155361, 202633751, 365612514, 184421362, 555807527, 3754745293, 4040554965, 268435726, 153088549, 341314620, 3978886423, 152898551, 4261404432, 3471705850, 232853784, 4142921195}, + {4176406496, 3758746904, 586809388, 199953920, 86190362, 588848933, 386537503, 620304165, 688844514, 3823689441, 47313884, 3758095393, 4242221600, 4160682263, 468977145, 4144307176, 4243657681, 368706585, 469435392, 4177396972, 4194368794, 201911522, 99356137, 116184100, 585368838, 492515660, 3943035386, 437200117, 3910344426, 116726259, 33033992, 3806927122}, + {149429002, 3793357074, 401224429, 4277933560, 4176549381, 69078556, 3857189132, 85198560, 806747424, 3437487116, 4193126146, 637923077, 702414059, 120131572, 17951257, 824053785, 4061328623, 3876848373, 3604281800, 3840998155, 319033386, 3570520275, 3923573452, 4229950448, 253302769, 605899812, 218305514, 319359748, 166197760, 220589078, 567606504, 4061909736}, + {3874296819, 3789552868, 4161793509, 201663979, 3810846745, 4075757345, 537994718, 16772863, 619442979, 3576225292, 3707035374, 4113170667, 502259713, 186320385, 489419783, 437836842, 304081667, 216201719, 3624980473, 4178910746, 3707171321, 3373000705, 521080049, 4259846923, 4175962898, 16860449, 656213529, 3808758498, 66511603, 3810522131, 4158723823, 4145421355} + }, + { + {384365038, 4111930351, 4079298806, 757328405, 501936876, 4042787052, 569651188, 153422642, 19396598, 3791196941, 790556454, 4096061421, 771953923, 119674873, 135205105, 287056598, 688135186, 638322931, 3772777152, 235805460, 385743666, 4025342423, 99469828, 4044622291, 637335291, 390736688, 4263781680, 4279694564, 3978297380, 520235281, 318902525, 3641911505}, + {636419591, 4208455634, 957082627, 820510451, 149496345, 4026464517, 4028437273, 4281469996, 15333629, 3740591853, 349643028, 3607436556, 17892625, 3943359457, 3672052502, 3962241829, 3807898375, 3890356976, 4174376691, 33231624, 405936684, 3757827017, 3809331421, 202318327, 788395548, 858781722, 3962316015, 3924437994, 136260868, 3791990274, 4125676826, 3773636105}, + {738463986, 4246140677, 687076599, 3959561718, 3691064087, 4109830895, 554115569, 4245947169, 32580611, 3237998852, 4007193344, 405479666, 4211356398, 3962233860, 506332924, 4263974689, 3419929047, 84680732, 231603714, 4042910677, 4160431915, 4142598871, 586084858, 3942316514, 4260310285, 979065433, 387447800, 468187120, 4260294650, 3589611529, 100207315, 436214271}, + {4225958905, 3742045148, 4092345882, 4228710898, 4143580691, 739566087, 403248141, 539046410, 18546428, 3758295329, 552737003, 203555097, 3944940056, 4127514121, 3143463, 4011789330, 3825540111, 3941723350, 3724146391, 4042320916, 555100657, 3774286582, 215141128, 367729643, 4161141255, 170614341, 4142669330, 3856657379, 926461, 589296669, 4043968462, 806214174}, + {33616911, 3809084172, 3608622615, 3605663214, 220527394, 3960997381, 419816414, 4163039992, 670098432, 3488614627, 403053323, 3994622746, 318105586, 450957828, 3925672436, 4013033512, 184354547, 454875150, 4142928331, 199549160, 84747496, 3909095100, 3956397562, 789189387, 201319950, 556932136, 570811112, 386066413, 3607359966, 3794601989, 282065103, 4162856992} + }, + { + {904333850, 4110019060, 152960533, 368901149, 4109767690, 4260947460, 236200718, 755834158, 537864224, 3421507110, 1004147991, 417588948, 737996341, 3824026391, 148967389, 3504538126, 669644818, 170192675, 4075881908, 501342230, 152495128, 266472680, 637137879, 4109493256, 4262139154, 891823400, 218571307, 4192136991, 686488093, 4011667957, 4093569787, 385085910}, + {603317732, 3776892932, 254734137, 66064369, 505149410, 452856029, 385086987, 502262578, 4091812061, 3826256117, 367002076, 150861834, 837482261, 3941597176, 3909950985, 520750569, 3591639294, 752941827, 3956986873, 4009956317, 3925472509, 4244113923, 537777406, 4059625722, 887547927, 758065947, 271397159, 235481326, 285027332, 4109971707, 520422391, 4060622346}, + {568858340, 4226485506, 737608702, 3890358278, 99621366, 3976136426, 621554212, 688783410, 103288807, 4228640488, 269752551, 204275436, 3960418814, 168289562, 337506581, 322108715, 3709666053, 3877377254, 382988784, 3571261164, 4276878341, 316795594, 317136, 657379, 217652723, 608588089, 4260891893, 587992590, 3739348492, 3860665883, 4043240425, 3894678518}, + {3976535248, 3974030302, 588588795, 251802334, 3909101297, 36378406, 334831627, 654771431, 4227016728, 3977701125, 484375505, 636817660, 4242861824, 3844008707, 153416756, 639700276, 3960996111, 352190197, 4128165093, 233695714, 3927567849, 3557623750, 3604023245, 740622847, 421602516, 3872539, 502794725, 4145086715, 3773245167, 3944350966, 65409770, 506075397}, + {4211206124, 3725914362, 303304154, 3659406852, 3907981575, 170659064, 4192477728, 4228049656, 488960248, 251793668, 353034201, 538242610, 233629425, 3962105053, 4213500946, 640553004, 235468336, 182389766, 3486316759, 3923843353, 4026537224, 4242674900, 3974748419, 4277723117, 268893659, 1007297079, 3841585892, 4230094344, 4279887889, 3974960118, 4275243777, 757207854} + }, + { + {604376354, 3839678953, 85195521, 857219336, 219350309, 4162652114, 3891601940, 168956665, 620424684, 3995472159, 706339099, 4011847706, 236249646, 438958118, 3474464994, 4230485504, 4024566059, 149676534, 3519727036, 350674455, 454433342, 3907440848, 485296090, 115474378, 4261996054, 573571629, 120467498, 333188107, 286648596, 15069463, 166068482, 68104716}, + {251991046, 117694444, 4093173031, 367066140, 3944033831, 3827105259, 185396997, 672529199, 303171826, 350753017, 4110295016, 4093894430, 972757255, 4276807717, 371334623, 120266271, 3706534113, 4042914274, 3808212927, 3725061112, 4176352290, 4024949255, 49668089, 3840866060, 720495873, 323359242, 4212335850, 4026728962, 150469616, 101972755, 83096865, 3492220628}, + {4093568761, 4010207687, 301928959, 688191211, 3690474478, 403440361, 470425890, 4263453734, 4213249308, 237111068, 3993233124, 370537252, 83759889, 234873844, 3641173230, 4058574625, 3891271880, 270206421, 3688155597, 4144306176, 4026017792, 149286871, 517537994, 3991395839, 838861316, 4263516482, 33690654, 652408806, 352915986, 135199508, 483583257, 3773430258}, + {3960210195, 4041736134, 837495562, 333783287, 3793027563, 69921026, 319154655, 454048493, 451015932, 3556564472, 404545554, 4162198286, 3940686601, 469178858, 336133157, 688914927, 19725599, 131997908, 284157391, 3856731394, 535372006, 4211410367, 3688891368, 688513802, 368448273, 391137096, 254085863, 4144358149, 3642290427, 606072316, 319360972, 202240808}, + {3575454931, 267783139, 217253342, 4041998079, 2890524, 4012644344, 4009222175, 4093060083, 33031937, 3643730177, 4026260758, 4130411539, 4280026910, 4261027810, 4279184442, 251273721, 3558209054, 3909098257, 268431874, 284352513, 3995462650, 3756777452, 3506760689, 150801444, 3760071443, 757550330, 4210304279, 3675069147, 166995720, 654583334, 3691780053, 487385596} + }, + { + {807208453, 3404328945, 3891335438, 686367473, 318703139, 4293849295, 4227010281, 437710836, 250288639, 3943962355, 907279637, 3772772592, 485419765, 4213237738, 335211221, 4261421789, 4176162061, 52750602, 3805263845, 3705852658, 170978553, 3842432504, 3720999901, 385816289, 253960186, 4264244258, 3945462768, 4208980975, 249561893, 3926139912, 384619557, 4060882964}, + {98766871, 3404908220, 670160625, 4111134492, 151597554, 4175697917, 484704529, 754656017, 185603838, 4027511323, 4262462702, 3841652714, 707527405, 34534630, 34335231, 569778725, 3639882004, 705239059, 4242197465, 351272211, 318305593, 350021323, 198568143, 116455149, 536481067, 4079499039, 622926052, 4246073094, 252976914, 3811109093, 132700950, 3891395859}, + {369239828, 4258990572, 4094485755, 3994627821, 589568237, 271113986, 3893620229, 502536195, 4125624564, 3405455358, 703142646, 3995002649, 4059110683, 3859346712, 36305649, 602741223, 3504208109, 68743386, 3586710017, 4193849569, 3840798445, 3606312412, 200916227, 4076854047, 4143119836, 4095411759, 99346395, 4145549573, 15082460, 3676907264, 115936266, 3657501211}, + {3841135306, 3470317238, 4228260322, 3890421234, 486217216, 4261747184, 468577545, 3977574879, 4007987989, 4177202661, 4109361115, 4195611186, 4230613236, 419758819, 589554201, 4229752599, 3777231636, 4245227740, 97572549, 4196457430, 3994543648, 267324655, 4074696964, 4128691949, 3975412741, 4211035172, 455664643, 3638817036, 4176880148, 606340653, 4178374119, 3907912982}, + {3506569979, 117040100, 168700427, 319166732, 269164776, 153165313, 3990550771, 4045737976, 371522838, 4262204453, 3642492132, 220729898, 300615170, 451078375, 204477998, 672850218, 4129486346, 4076281298, 3859152627, 3641833971, 4195549441, 4091020747, 4076669442, 4228506383, 486144280, 3944286742, 502062590, 3924237286, 3893494269, 571604234, 219343603, 252125673} + } + }, + { + { + {673718265, 265548554, 217771551, 3958298882, 3792703198, 4011339036, 3188251162, 17888228, 3928491249, 4077195477, 304817433, 487253225, 84734477, 3876978689, 756950274, 4092393208, 3777303282, 3959031809, 756033815, 302386445, 254146017, 504238615, 471138815, 4263249155, 4077589277, 3390230243, 3926650346, 253096454, 4225685475, 3793484007, 604442890, 3723098070}, + {219150865, 3725386522, 3975012618, 86507513, 53286125, 855635705, 3237211101, 4091926758, 4243068427, 4093440029, 3961653291, 4011385066, 555492076, 3995005911, 973019648, 269558512, 4247390985, 4058716655, 872625983, 621289775, 4178436356, 4045931279, 34929409, 51714284, 420148213, 3506496727, 51838453, 4061137908, 4179499546, 3588624635, 100791343, 3943433490}, + {487389447, 4209699588, 3860984319, 421466347, 4045151471, 4276430838, 4109825501, 647185, 4011128296, 3441097968, 4263307297, 620171008, 302903048, 3388400355, 853471517, 268631774, 3842645503, 3840744458, 4108317759, 4112321512, 4094220826, 321003019, 83246133, 68298003, 3843485932, 3038959843, 552406768, 3708224809, 4212448253, 3521115399, 4195295522, 3423729111}, + {724314361, 3793145885, 3877112293, 3877445853, 4145026073, 253893384, 3355119325, 3909686229, 319815178, 3757964760, 488301086, 334817272, 4042264568, 3454010602, 739388137, 4142204916, 3492280810, 4096452603, 301152052, 185279488, 4061587192, 353168112, 4195620147, 485418803, 522330643, 3372212443, 3874355232, 4277140749, 4041343724, 4078311394, 4230345767, 269407210}, + {553657105, 3471245320, 252442382, 3655660507, 3793875939, 118551271, 3506565611, 116779244, 3790532115, 3470516484, 471799580, 3911509753, 404890881, 3775269391, 4196734953, 468380159, 3843889650, 3706323218, 115941126, 551413037, 4227599856, 3724866854, 4211938594, 199822325, 505484780, 3829331455, 51576571, 183439130, 471597561, 3941725678, 136177961, 3642874880} + }, + { + {437714914, 3873972475, 215944425, 134474523, 4245348575, 4058057741, 643536, 99811608, 4280477167, 167184672, 4244433689, 535818198, 34543880, 4141473804, 4244974587, 3725271770, 4196342012, 371193621, 4261819406, 4112197909, 623253211, 202448425, 317331263, 4159570927, 3976196133, 3458581246, 3659011054, 468917765, 401872108, 4244299546, 216207362, 3942125079}, + {4129168633, 232003854, 552005125, 486089454, 3791837178, 520683782, 3522024671, 468835571, 237116181, 3558135830, 4061462508, 235856088, 470952450, 3474839589, 4092001762, 4229826058, 4094823143, 4209500949, 619452456, 3961984287, 4113048805, 4143321637, 352397598, 284693516, 251661341, 3123764984, 387702512, 3792760369, 3690459916, 4027444771, 50921969, 3389708284}, + {574226184, 3488680456, 3626304035, 4075152929, 4194235884, 4057329431, 4210230529, 51246605, 3995017967, 18664970, 3941148431, 270072081, 133757192, 117629196, 98247206, 4143640812, 4146799647, 571077139, 99431745, 773648124, 118361066, 219817727, 350692118, 771877155, 251192614, 3355840238, 4060088850, 454624759, 3726442756, 3538548964, 36564007, 3642954226}, + {304550441, 3538427445, 4043373588, 83094529, 3592231142, 638378783, 3136870392, 3910533590, 335943980, 4128178464, 237039851, 4060605919, 3979076608, 3875920136, 904668449, 18281229, 3808437531, 3794077955, 789851188, 687146251, 237311764, 4260963568, 4195957551, 253364481, 3942381053, 4029013769, 435689962, 271509791, 3942455556, 352968719, 301798887, 3658347243}, + {336528367, 3558733609, 20248599, 3861120243, 3539199451, 4007984424, 3474648558, 2685193, 4247056133, 3370901541, 3875283998, 3860331801, 69006108, 199677715, 4078834968, 4244183303, 3773045216, 570036974, 452458042, 521859326, 4143129071, 4010612982, 974454287, 719913244, 134025720, 2937113552, 119869924, 487008766, 253828579, 4194890774, 152248837, 3806258416} + }, + { + {338301734, 370404624, 4179092448, 401547006, 50329366, 3890082531, 3707434488, 3760452108, 486996778, 3826849269, 502210280, 4010279412, 217916682, 3826711319, 605361448, 267262456, 3861712128, 151787024, 988491046, 519904505, 4194109413, 3691835959, 15089161, 589110051, 686104607, 2919104238, 454354657, 367459573, 267443442, 3962441211, 555808774, 3792376817}, + {3876266211, 3809272317, 4192922649, 3958049284, 84940530, 4279638000, 3673556254, 3706258452, 4012648981, 3355052803, 505359094, 3776829418, 169222143, 3608221434, 502001122, 3859148310, 4144304149, 271518183, 587276608, 3959036454, 519702036, 4278911019, 14618884, 554572305, 3895139312, 3224163790, 4143319833, 769991976, 3857455386, 3542737912, 1843440, 254202635}, + {639638756, 3673225778, 34864923, 134734558, 4029553182, 3892845830, 4276484573, 3643140100, 218704146, 3740462830, 553127703, 249238280, 87225843, 3925003293, 537266215, 250009376, 3458474745, 3994820133, 4193595140, 4176681197, 3842505708, 555950321, 519768367, 183704045, 268766973, 3342591476, 67099112, 86117883, 50851576, 236771830, 604247339, 3924690175}, + {3962834421, 3975090240, 3626966013, 3774351116, 4194885379, 654971396, 3588160752, 3891404805, 589829679, 3909942278, 671095594, 4242009339, 4160233971, 4160882969, 132258289, 3826504436, 150341605, 253223409, 268379916, 4194564626, 168618508, 199554034, 652878629, 351660282, 422636577, 3793885188, 3909882634, 652733231, 386997741, 3604872196, 85265664, 266722587}, + {977665, 3554144512, 3942838262, 420209891, 3558538991, 723782401, 4176804355, 4059226085, 571087124, 302323463, 4059823135, 3940417508, 4176880370, 3809994745, 133627623, 4277662475, 3606448654, 485425933, 385943611, 384377578, 637135117, 4161016605, 302197313, 4293797378, 623711714, 3274573332, 518586888, 254089998, 3890682101, 201460976, 671753714, 4278383860} + }, + { + {4145082359, 3788438059, 300099573, 4294375664, 3794804742, 703011851, 3978085921, 3976517640, 3875993123, 3607173360, 519444461, 4263453171, 368570083, 4040617992, 4211274736, 501684777, 335866878, 19209706, 368782126, 3944213772, 4160354567, 4090244139, 317467150, 4094487085, 3991081727, 3356225017, 3793551623, 350753302, 3958563054, 3841648876, 153219574, 4177323260}, + {653208064, 3807385164, 320799963, 3995534362, 4279495954, 4127394842, 3389641757, 3891399934, 133230575, 4263377945, 3858109200, 4229422068, 539879954, 3826194720, 603989550, 3908364017, 4112446200, 404484641, 584793640, 803802908, 488173277, 252916470, 735004, 4057406197, 4062649066, 3374640128, 67047652, 472130078, 117579015, 3691373042, 4092327463, 3959364078}, + {3826655261, 4075758349, 4094828306, 4011581669, 3761247967, 218303502, 3508915430, 3911062999, 636818692, 555081755, 99228925, 4057271807, 270599449, 351920623, 738006504, 3789357602, 166534655, 389023737, 587079717, 4226552369, 303366643, 51060482, 4192022322, 754721832, 301541604, 3088911309, 4144488690, 3875413239, 3824083199, 3757895133, 4130091301, 4158331397}, + {569843484, 3925538063, 34728672, 3995732708, 4209251550, 485037040, 3774809073, 3874615037, 4278716705, 4229628656, 640745234, 115869959, 4029095138, 436201969, 4225569584, 4293783575, 3943235868, 3926587170, 435106880, 4008848170, 149427995, 3692498426, 488120603, 601352699, 4042925846, 3793672388, 419303176, 4058526478, 4112971239, 452392728, 687682341, 3759730676}, + {706484701, 3856526139, 121308897, 4078569217, 350352398, 588062758, 4078490097, 3691910124, 4212921100, 487132139, 3991086816, 85054959, 3857180911, 283499559, 538710298, 136451565, 417131281, 31853560, 318060101, 4280418311, 4194569426, 135335427, 183571013, 4107991096, 537584414, 3541757384, 167253251, 451024116, 52298998, 384901139, 51195374, 3891204096} + }, + { + {4293535258, 586296581, 116783389, 551029996, 100728857, 752476683, 136319770, 4209047299, 4128111859, 570551521, 570427648, 485824027, 4145605393, 3875531551, 453507828, 452731395, 300616412, 436734433, 654841663, 568658163, 3945070854, 4143323442, 1003306810, 4027771704, 253693708, 4043431182, 3840137730, 3976798186, 522053671, 520093434, 622260216, 4228839655}, + {152836374, 516235804, 571614466, 18621165, 3891012845, 651552242, 4095474196, 401602801, 4028376858, 488758510, 249690878, 3909557780, 4042392067, 401009127, 404285933, 50520620, 337973257, 3875803107, 1020675661, 723197982, 4046068494, 553582087, 701831445, 468590903, 4045333467, 3840282371, 3944540660, 3923966453, 386328820, 3757305049, 401615357, 454813939}, + {586020609, 3905746974, 4027590914, 3843950624, 3658223841, 4258197490, 16248843, 3658936285, 16055294, 4025869804, 402459105, 453053153, 4279696097, 4143711981, 335878413, 4076729067, 4127455212, 405598445, 349714497, 4144309023, 184682506, 182130670, 688267318, 4111072516, 116974370, 4193917145, 85257434, 606145311, 386463466, 3993624561, 236989969, 3942573868}, + {4043046394, 33950984, 135207439, 3626497761, 3927958242, 350166285, 3973901031, 4028686337, 387387630, 4109704409, 18030832, 3858566657, 137036814, 269355039, 349772316, 570559534, 251138536, 270525163, 586563896, 603992109, 552329747, 3755672620, 450633225, 402254637, 3927449603, 3557943247, 319022354, 4262062602, 334895118, 4025872123, 552349986, 4128102406}, + {435486486, 131077696, 3794801647, 185261310, 4128770297, 4161408560, 219999477, 120069877, 3992722404, 1774599, 4196734235, 503253477, 3841323000, 48636407, 788850936, 452338167, 3808499932, 4245294072, 973224980, 740043276, 3825992408, 269950991, 468648976, 316344051, 3708417293, 4112380635, 85073949, 538900236, 32051686, 4026395106, 319695356, 299570167} + } + }, + { + { + {52228887, 181464047, 3895068983, 4145932777, 3958575357, 4246539254, 3506314506, 67045898, 569779953, 201192192, 217442028, 4278974686, 4126215673, 3575309816, 184884227, 722335507, 3639351288, 118682119, 1073873922, 4179305485, 286979106, 587274726, 99934178, 486141408, 3978173482, 3591841615, 4011200996, 200276727, 3827106075, 355402737, 504180731, 570157315}, + {3993434364, 269163315, 184885751, 3839430400, 403967516, 17303039, 3909748731, 4194306820, 216392751, 3811123687, 252780538, 3810598637, 587724562, 4160675863, 688064803, 436729073, 4158394658, 3843416805, 1087494154, 520361435, 4211347177, 333052389, 298980323, 806688257, 4075949590, 3726786146, 3574205684, 3891863313, 386395120, 4195623383, 201450523, 3993570805}, + {31063529, 620693040, 3924164075, 4245613785, 3940353033, 4277998363, 333768984, 3807311343, 4126999292, 4213637624, 4262392076, 3876198942, 336529143, 4094623783, 186646820, 237630210, 4060017886, 3957912292, 33033944, 521542902, 100280533, 302110996, 852429787, 4011008308, 4041735929, 3843186272, 4011789281, 235856367, 402322415, 270920421, 4126216430, 369234729}, + {518850267, 636880126, 3957123567, 4159699681, 286846495, 103023120, 3841852914, 66586631, 402061059, 3961072145, 268437516, 637805034, 253103858, 302586851, 4027454216, 619586848, 3927499269, 471656974, 785569015, 703062534, 3943556853, 401144557, 216924127, 655238924, 585633769, 3676511258, 503181605, 668472819, 3893944033, 319168757, 184944415, 4196074503}, + {199814904, 387316194, 653073898, 285668585, 218033414, 484250406, 286331941, 3894014719, 452593934, 3791645694, 483919076, 168695037, 437515003, 3759207696, 81800479, 572911118, 536938558, 317912825, 451612685, 603989781, 506459878, 737544206, 839971562, 652553458, 3709212660, 3572767285, 454499583, 4161800966, 4280227817, 3844215787, 3939820803, 3961207811} + }, + { + {65398816, 538825231, 807271468, 4226160145, 552920366, 4025673515, 3727033837, 354810169, 84090888, 3388599515, 537927703, 251928313, 703200547, 3523802330, 451209997, 4178439944, 3894675196, 3907773660, 350416115, 436993764, 3724227109, 854060281, 923331562, 101982738, 3841125171, 3308196954, 33559565, 4228457441, 4294711025, 3675906267, 131411216, 3691186152}, + {135796242, 403185198, 269303062, 4111993073, 4129288446, 3826322672, 4127127276, 3924554998, 367458576, 4264883445, 720963566, 403769082, 4145342967, 3623889139, 4092077334, 3775268116, 468262946, 586550285, 852419574, 4179824349, 34399995, 922415631, 805574402, 4244840226, 603991528, 4012781951, 554566878, 182709020, 487593473, 3945593565, 4059756270, 252703268}, + {434371849, 568255739, 672988163, 670899195, 201320443, 3974114102, 3724403960, 3958907356, 4162921503, 3608996633, 4242661878, 3977977595, 48961023, 3692102417, 3773170206, 101185825, 485486085, 4293859576, 114485006, 18604009, 4195941349, 907021786, 938732777, 85520189, 4294174950, 68296792, 489099269, 4041873399, 3640974041, 3593008912, 16309003, 3675850274}, + {4060151063, 169537823, 503517985, 3927170038, 3756121648, 201400867, 334891746, 249555490, 3826057493, 3424060703, 619312899, 3725932325, 753866268, 3542680822, 602550286, 67775973, 3894861575, 570548750, 367847158, 338238218, 487974922, 905102611, 33684735, 3927442684, 469044768, 153833812, 4179887368, 302785271, 3826323484, 3610124308, 4228506608, 3625922352}, + {4092583451, 232457451, 319221800, 4026005794, 3824150824, 538441710, 3640662014, 4278713589, 4163051495, 3539675363, 823061288, 4226550017, 83942153, 35842084, 3908178664, 4196610014, 585105989, 385875721, 48690715, 3842841059, 34607590, 201193755, 568650219, 501160689, 4194235930, 3710005829, 472654067, 438175029, 4227012097, 4211343360, 200737786, 3622187062} + }, + { + {637478140, 4211608584, 83701798, 4193125388, 336788265, 4078699028, 4060223724, 4126874119, 102504468, 4127579135, 804524063, 3806665173, 4109444375, 4293979358, 68018685, 4042266070, 905715188, 4159507708, 637984225, 586806999, 321726224, 571477739, 652795145, 620226293, 806230830, 3674804793, 3756455921, 4125489431, 354607877, 3861577491, 739048990, 3554859482}, + {4058587687, 653519901, 3960684107, 150072567, 639305192, 53155826, 3525310733, 268435202, 166255884, 4029733863, 923931664, 186259727, 870060268, 3471770909, 419560218, 335875615, 719456529, 403241491, 788594422, 4008053749, 573123297, 1007287256, 702020090, 4045013523, 487787780, 3439336558, 3808558563, 100663770, 3893763548, 4042661378, 300217632, 3792496659}, + {586032102, 551427082, 3958192932, 737865192, 4194885913, 252379175, 3810530013, 3823775984, 351276557, 402974407, 169533176, 4009300500, 303699466, 4007785245, 3590058489, 3605599020, 4145678850, 3924419338, 717937638, 4162717152, 3742899932, 1188678364, 1090440700, 3957914908, 234955744, 4144568633, 569181412, 437903355, 3807307484, 3689940193, 35065075, 3977453851}, + {806159611, 585238561, 754199798, 570886162, 606735660, 3842256150, 3489662982, 657128204, 304160524, 271454444, 500887316, 3725080079, 4060417830, 3807178260, 116078575, 320993256, 333716547, 67170584, 989074691, 283176222, 318303758, 1156436472, 888990194, 520621100, 388173336, 188500543, 470293240, 50731499, 3976920285, 3876777197, 301781024, 4142277671}, + {619841067, 4293000696, 706997026, 4075548402, 68681275, 3727225379, 4210628898, 371395323, 268827171, 4262592520, 4057787178, 3625919757, 65791788, 168026902, 3559927596, 3740803863, 151910218, 66902025, 852023305, 115876338, 3689872413, 399831267, 251383812, 3743555583, 603655912, 36833841, 250422277, 436216611, 3777551371, 3726647066, 604167666, 3506450170} + }, + { + {618461165, 450172131, 4163895339, 469629712, 670901528, 83746818, 3388082718, 50526223, 4293067810, 271112711, 119544845, 150004216, 668865804, 638783721, 4062310151, 3710709203, 467661874, 64746779, 149034717, 4027253483, 4163497451, 115728102, 182768859, 387504917, 4092209972, 3340116763, 170461682, 116059609, 353624317, 355273695, 132198926, 4226813182}, + {4292214022, 365365989, 3961272644, 335734278, 4125097489, 16195358, 3605995529, 99812608, 537923057, 454352329, 853019906, 3810006802, 853672427, 4162256393, 118294805, 284362523, 655552760, 2033650, 671019980, 939318229, 53276173, 567281401, 940497904, 33681644, 587792132, 3290052207, 3790669285, 118422259, 4042651910, 217189120, 151262499, 217514771}, + {283109894, 687996410, 3957526031, 619587039, 304535575, 301931270, 3457811203, 1898024, 4026998301, 573890295, 401138391, 3975548957, 286716392, 333322709, 304423213, 70000919, 736551710, 788793075, 3993832421, 452647421, 2955724, 755566855, 636608490, 333902346, 334437128, 3980281444, 437122312, 366872303, 34015726, 4092977681, 486350564, 3958631972}, + {48027878, 14482169, 218565915, 3806719515, 487659792, 3941016604, 3424908785, 369099552, 4176409640, 655828695, 722994721, 253891068, 266788099, 4129359373, 3692246550, 4044498698, 4142533157, 4279624485, 4192782301, 538769663, 4143508967, 887297276, 318231520, 4012322580, 653655073, 4077468442, 3673025760, 454303008, 4279952914, 4194440464, 4243849975, 50854134}, + {703335666, 986770443, 286523640, 403697393, 286456377, 4178719210, 3487886811, 400951063, 704702996, 3793885942, 604510971, 3626701555, 3910861580, 635632655, 4042388245, 4146273819, 3957398580, 3961512737, 284478150, 32569072, 471987928, 854855438, 1004081420, 216790812, 4058385133, 183905836, 4277992704, 217842161, 4142721279, 3909348867, 687994098, 3961977635} + }, + { + {4143393075, 252235271, 1700915, 4280429074, 83825200, 3655658481, 3640975373, 335419386, 384886290, 3974626793, 703731727, 284093924, 4227665154, 4179892749, 203549946, 152566042, 234555436, 686237948, 65134818, 117766415, 33751813, 3872398358, 873470716, 603381468, 4078249233, 3825600786, 570891495, 4159375062, 452925442, 3759804650, 100935440, 4075227656}, + {186052397, 15267852, 100277825, 200534517, 4045861636, 3841926919, 4227602207, 3621655844, 619831570, 15589317, 3909952505, 4126678273, 435098092, 4146271455, 4092335128, 3660190960, 300812330, 4060734490, 652608199, 4126084053, 385613286, 3858096598, 253155328, 551422990, 4075496198, 3274577992, 417532398, 15729877, 805827802, 18148308, 400092394, 436989429}, + {4058456310, 986771933, 282535189, 4077261079, 4012043294, 4160878067, 4260226014, 67572464, 202437386, 670165732, 184687852, 4142269667, 3876789473, 3910338773, 119863792, 4077184508, 4044757743, 132244197, 4157987572, 889051342, 3594053327, 3873378831, 604166913, 3991608566, 153478425, 4212592434, 3909753561, 554948566, 450953982, 3960998154, 452977934, 134351086}, + {353244687, 655744222, 3641117418, 518065669, 536345080, 3724227112, 3856992770, 184286964, 655821839, 368040147, 4028628954, 185596134, 220584449, 4293975319, 149680684, 472772121, 4196393979, 4010668779, 4176206331, 854382308, 216862416, 48232945, 738583261, 585508875, 303373789, 3222880266, 320270117, 820058616, 3877756375, 66708486, 4259440348, 283836150}, + {669252134, 1020575741, 286004725, 385997551, 84152075, 81782803, 201988338, 4159104809, 119661060, 3928424192, 4211662064, 19528991, 4225828393, 302188242, 204352284, 4259712260, 537666560, 370471986, 499702525, 369170145, 4096851737, 618724854, 718992143, 619975446, 3756593639, 3322017339, 218309896, 3991072232, 502267408, 455012086, 285015029, 572719408} + } + }, + { + { + {3908368876, 807011336, 149945834, 4144045320, 588968930, 18021613, 634193650, 519626715, 4077331976, 333976588, 14881549, 317778410, 3607107046, 501945381, 605941484, 472060380, 4177387794, 4075153924, 233824017, 3742687747, 3542416409, 3807237645, 3675062272, 636484879, 3758890010, 1106521308, 4008633887, 4028690419, 216719852, 3807115263, 419682258, 4192078852}, + {301912597, 719638078, 3873957320, 505469668, 320024335, 188015644, 197717750, 201070067, 451880741, 132640259, 3523534875, 688131594, 234559724, 756212257, 4163307490, 4075036138, 4277140524, 4008764690, 371510274, 4128106796, 3759206671, 385211946, 437831196, 436937232, 3742962459, 500967896, 4058384650, 588519662, 4125619198, 4127401481, 65472525, 701624837}, + {4043760089, 1105183034, 4209317626, 134144252, 538052364, 234155753, 4176414007, 3890417927, 4058718955, 4010804522, 3557430788, 1770771, 3541896228, 486870537, 370663437, 4259645932, 4058512651, 284228099, 3794191329, 452532004, 67571695, 536870934, 301855208, 1381865, 3760908568, 397534964, 219751971, 4230345769, 3808293906, 3690206241, 4226994903, 638836721}, + {301660895, 116966943, 4292531714, 4195166235, 486208016, 4265275170, 4244641338, 587989984, 518582256, 4225700648, 3760856297, 83554786, 4143971871, 922821433, 4026729434, 603463453, 84147971, 434762489, 4093046304, 604374803, 3672445415, 3691826747, 4060992022, 4112319230, 4293865232, 400943628, 569060128, 536087335, 3825534235, 438183191, 333569762, 789448460}, + {3944283380, 252511823, 320137675, 4280286483, 4174841313, 4178238183, 349177105, 98629663, 35331563, 619183114, 3672774379, 4061846559, 3909021185, 604506130, 368709387, 421521377, 267063578, 4129100843, 386452495, 4279510773, 3608672239, 15070780, 4113159166, 4009682694, 270867983, 31602706, 4044368151, 99867902, 3906478600, 17890087, 3374712854, 987756802} + }, + { + {269275104, 753726003, 404946941, 435614714, 585569530, 218624528, 4224182824, 856426247, 4059369749, 3603948048, 535364573, 669849369, 4110940620, 503969565, 4144894219, 452786722, 250726926, 3992520965, 150861092, 4243913753, 3839887864, 53342954, 4076457745, 573055530, 369299992, 720314361, 486087701, 385813250, 3808887566, 4125290976, 235474424, 936503068}, + {4075221726, 454802973, 975573968, 438504715, 250088426, 957874991, 602662146, 4262069479, 620426033, 517729576, 418051809, 535567104, 386264021, 65662718, 521608944, 3926139109, 4160362470, 437324813, 691003449, 587732471, 3639808204, 621793306, 269801736, 956234246, 535492358, 1136330495, 4176354783, 4059893791, 336719901, 4196212447, 420597239, 769003831}, + {3539404786, 920307505, 370999267, 3692561401, 3673356541, 670499333, 4040286488, 115930118, 85206542, 467600670, 254606106, 772729067, 167511261, 4191820813, 453710306, 787879692, 4175305460, 16577057, 4164340788, 185538299, 3487694296, 3790918173, 4227908651, 688002316, 3759733244, 431488511, 3906867721, 3823493419, 368570366, 4078307549, 3388146466, 49608958}, + {3321371100, 420870446, 3907713002, 4178575594, 521794330, 284426011, 3991140663, 4279834610, 82052611, 283714800, 4095996385, 286850842, 3793418770, 869341220, 100991720, 3877567781, 3944357607, 4093113634, 153863203, 620682787, 183378195, 3860973339, 3692492052, 387504143, 4227263206, 922161385, 51052257, 4294372115, 350033145, 68628495, 4278509842, 602665203}, + {267586293, 873061467, 351210450, 4129424377, 4110160910, 302642936, 3973312816, 3755349020, 3993962744, 419308809, 3574275101, 703784432, 321455874, 182056698, 168752367, 3825396727, 4010800925, 453377545, 3674258207, 670295339, 3303800055, 3808873236, 624947998, 473291499, 3559467485, 701697793, 15464682, 34138664, 3994233330, 4158453463, 3857188339, 739505176} + }, + { + {4211202534, 1308278347, 754180831, 4060218319, 873330197, 336340747, 114035503, 920705561, 4162521091, 3956798950, 757260787, 502859045, 772275196, 3842903039, 686028326, 253234448, 638058989, 4278383569, 83538461, 4142859506, 166334165, 888584966, 422643485, 167963683, 4127318281, 1438383899, 133490707, 3691566325, 438111513, 135928794, 4112512264, 65143082}, + {572119494, 923526166, 66587675, 100465359, 4011847180, 151589645, 332588797, 992025113, 117305842, 3738120427, 3727806441, 401807631, 84936925, 4141816805, 4061663768, 366548200, 436859907, 268504806, 809350917, 4058644474, 4128240909, 49594883, 152684036, 436144672, 237824493, 1190533408, 3707374040, 4130330404, 3672833778, 3827106555, 287438866, 402722292}, + {3891467250, 1306574387, 17629658, 4276941034, 48627459, 736107014, 419503855, 520689626, 3775849466, 4209372426, 287049719, 218294056, 4043248858, 4058980840, 673050104, 4294581290, 216472023, 589963485, 137934634, 185605643, 3172871896, 922729222, 537263859, 1041356807, 4229369852, 367529191, 4227335399, 371986964, 4145670177, 3640522714, 4145017343, 4211346977}, + {3859473402, 840036653, 67246339, 506063366, 3877517569, 954142507, 4157743853, 4161545706, 419177963, 4024904729, 268826616, 3872982306, 4196526811, 82122778, 654972171, 253289984, 571677418, 3958962929, 858182643, 706094846, 3490906087, 4230206735, 573108227, 4244958219, 3624545258, 399706914, 3689484769, 4110419192, 404286947, 3772853462, 3758812417, 4291820568}, + {3609530582, 586731813, 4093836806, 3806798853, 689632785, 4128771343, 3872193550, 535302374, 235284519, 202571523, 69607174, 3776053752, 538255843, 3892312099, 4278655766, 723061288, 519246615, 201927694, 202112821, 267124207, 3407485396, 4143516908, 438176260, 4128240655, 3875926283, 467602158, 4292937730, 568861950, 366873062, 3607433965, 4075816685, 151049967} + }, + { + {757206761, 1159125284, 118873619, 1105592347, 571074773, 887691054, 147001075, 402847469, 3958318628, 4094174435, 269734658, 115666694, 4212381980, 434897634, 4058723096, 3860268072, 385276440, 989850633, 137874467, 116908323, 4208991997, 65863176, 456509172, 402843145, 200730120, 251131172, 184034292, 451999524, 3860332526, 18545634, 4145152213, 652994071}, + {3890792676, 1025176386, 1242233087, 387633905, 554504203, 203429929, 4090037031, 148432633, 204143648, 4229829602, 204656396, 3974690551, 119728151, 3877042162, 671486483, 3891728404, 518780412, 689233924, 217766463, 221377810, 3974301937, 454023984, 4122389, 216539925, 367458057, 30799914, 150402037, 3659203554, 3942451438, 4277282553, 169873134, 3842239007}, + {250217696, 621859621, 618120433, 387517977, 618459123, 939265528, 165469157, 117699548, 3576439072, 16588545, 4112838370, 251929579, 134150933, 153167071, 82378996, 98899461, 4245486876, 535958254, 18731331, 3725397005, 3590124275, 453242864, 4030587654, 687343670, 152628497, 720771071, 3523481106, 3844998363, 4144033520, 3622966007, 220849139, 131344166}, + {3907912944, 334687809, 299831808, 235331310, 4091347939, 303430946, 3724408557, 200940505, 4129683236, 4259712498, 3741458395, 3840010021, 4160293385, 3356096038, 753604115, 634716386, 4210232310, 3794152674, 4128102428, 4029738468, 65945283, 1126747165, 171101233, 487972342, 4263457269, 1256397837, 3775532787, 83166177, 3991347233, 4161606110, 18621175, 433980710}, + {320744438, 1273808198, 252584698, 4276481554, 4108976413, 619896573, 101315866, 4277807887, 3908902635, 3691510775, 1696469, 400238058, 522465552, 3707703563, 521864747, 367601171, 601686269, 4009761305, 4111465985, 521469680, 32258526, 955450620, 353300270, 636293926, 4109773006, 771160346, 4077717275, 3740459775, 3727173085, 99035626, 149421020, 419890192} + }, + { + {671076355, 605419564, 705487110, 720104168, 839117327, 671280674, 3721386520, 167632385, 4130667548, 3790478072, 371986700, 3891457242, 741076486, 3658670571, 3740545572, 420553714, 4110288118, 300095996, 3861249033, 50977014, 4159831006, 150386488, 36959541, 4061723633, 170133740, 214311661, 4278589686, 3911056616, 4125353722, 3925472483, 218499306, 350940181}, + {3944937234, 859291694, 285596930, 436524581, 773779452, 455221229, 3690336509, 251981824, 3794539018, 3306872329, 587522819, 3910670562, 31912971, 4209122811, 3877566723, 4227276567, 51700513, 570758163, 4178368015, 4011854616, 3827240938, 270718210, 69916694, 35451636, 572316699, 4124840210, 4126220516, 3810590240, 3859666936, 4194898460, 18862861, 452526312}, + {3808561636, 4228839228, 152241698, 4141739000, 4009553649, 233566241, 4076073756, 34214695, 406252813, 3202610403, 753396772, 132579602, 4162593286, 3458212054, 404620013, 4060746989, 618668312, 50722281, 3912414978, 3624804376, 3994619405, 283502902, 100660521, 203692839, 4027051019, 4174446617, 3741591525, 3473610262, 3710129684, 3891527165, 536991440, 3709470183}, + {4060874731, 4111187010, 639308811, 234235918, 4093833963, 4025275386, 3839361071, 855962896, 3475836162, 3674997732, 4091868966, 270136035, 971842309, 3558273533, 18617351, 417260561, 119077146, 4111341542, 404878133, 53285142, 3470931661, 119523133, 270918964, 336255241, 219163919, 166666249, 3992790809, 285468908, 3890810592, 4044171539, 385735633, 4243001064}, + {169871843, 19328808, 232320816, 889586736, 203628010, 186718958, 3456826151, 251067177, 3489800727, 33951717, 3893105140, 4163100447, 184221207, 3556383493, 354674947, 3707970277, 904716807, 4213573121, 17754415, 4244049117, 4010745543, 890817565, 3961380627, 372036339, 3876399842, 3755025959, 552403941, 3507167734, 4143440872, 3604612847, 251405036, 4041543170} + } + }, + { + { + {3926329117, 4162051611, 3592363788, 588779489, 3655068663, 4178835968, 70198323, 4061195810, 4212594429, 4212453133, 201389076, 4158262526, 471078118, 4280615703, 4091418344, 3994290928, 4180141829, 671213568, 4043566087, 556199693, 1155730217, 4113944036, 671944905, 150995725, 4007716130, 3872662112, 4143965706, 4092401921, 3827430671, 234940698, 3858953206, 4091553801}, + {269348867, 17371943, 3791132696, 270404628, 132716831, 3606646788, 3725271578, 133295107, 4161140002, 722724894, 472120548, 4280228841, 605616657, 119742499, 301935358, 316603918, 235217658, 554439376, 3727350520, 3974360345, 301732093, 3893950467, 705369062, 234748435, 3826320903, 3620944941, 588445663, 721609955, 470148308, 538713126, 369686043, 3945143854}, + {4263438813, 420937224, 3640452366, 268308953, 4009037562, 3959366939, 4146463993, 3707626260, 3777618167, 1038675488, 15073740, 67052577, 18866440, 3907526948, 504309280, 453376562, 4141753321, 166255094, 33158649, 670494456, 605493758, 34069003, 267908848, 4159700776, 3789945881, 3087817543, 3975607307, 4196920348, 184996624, 418324495, 3691897544, 3994758958}, + {284433665, 3977711061, 184224539, 4045735910, 4042194688, 3591568142, 85780499, 3742435303, 251010813, 805051650, 3840733142, 656017136, 84535530, 4212453376, 3755669795, 3926796013, 4058243563, 119803885, 488113153, 435554845, 417921061, 220324359, 117770507, 3827037471, 488700141, 3557702949, 504104446, 453636342, 3859353343, 434438154, 234683651, 3961188110}, + {655037688, 21240022, 3608993263, 4243782644, 3827300866, 3589672182, 3774030061, 132387857, 4042926113, 437055510, 588246750, 203037469, 268235799, 488302074, 637151477, 167652894, 3640781356, 369754651, 186190037, 789848835, 1106713318, 102619653, 82767308, 3571381761, 437246747, 3421259041, 3993757415, 65673203, 753736435, 721297157, 85979390, 404100846} + }, + { + {4093181433, 624359204, 3320000795, 3857975069, 3642745607, 4244971516, 302834689, 3910217492, 368113174, 355138544, 437837318, 787681009, 4078433275, 588048109, 267646179, 4226031090, 4279497974, 3911185682, 3925669616, 891427558, 1141048084, 3677028634, 188017657, 200732640, 4211016980, 3993574240, 4110163984, 3857375450, 4179761147, 116586729, 170059293, 571866127}, + {254081026, 3944808193, 3657773077, 18211815, 4009173021, 349961253, 3909749034, 203622402, 740562203, 337445891, 251125484, 550771196, 3773494526, 267378946, 3957202424, 333848340, 4263709170, 150084343, 3828148749, 573108968, 48697077, 135333904, 3910328010, 3908365552, 538315540, 3322489431, 4277735179, 384360464, 3958841574, 806232855, 4159626236, 118093073}, + {1643735, 3996508938, 3856075801, 3925414415, 3791454205, 4144302065, 334957572, 3575254798, 1245408, 956567335, 3840348887, 4024699909, 237233644, 267514851, 484443643, 639037992, 3438999054, 3926910175, 4109111297, 302311653, 4211349975, 3879001871, 502987248, 4244567795, 623633138, 3120914482, 3941139941, 136173799, 269879282, 872146921, 169800682, 3758824241}, + {4108973056, 222700572, 925688, 337123823, 3574336761, 3907790365, 4113636873, 186263281, 201390873, 35263226, 622459621, 64813871, 2359835, 4196008980, 3826333966, 3973645337, 3758810360, 169927691, 554421754, 35526926, 535629075, 271247375, 338028758, 3990894618, 216661752, 3322169933, 85919732, 4060159460, 737736463, 421195281, 3724668934, 4125685518}, + {4093442795, 3558798339, 132379123, 3760845029, 3975284517, 4277941744, 3857767404, 3691701530, 4046119458, 723642612, 3858030313, 755893803, 4162455836, 3942323696, 201668362, 350235395, 4243061545, 403628019, 3927498978, 151590903, 872424234, 4162704099, 170127055, 4058390277, 4294763788, 3659869475, 1124090, 200084711, 320988399, 802748419, 65403866, 3558543909} + }, + { + {3473608694, 641724938, 3202099955, 3708225011, 3960677414, 4243456789, 585706008, 3639224846, 387308537, 235732497, 304013271, 871948259, 4128375273, 889202423, 822158095, 654566638, 3555979248, 573045781, 3876904151, 4180544530, 703143968, 220197910, 4194178251, 4113239796, 3692035830, 3135784228, 4142139894, 4009884192, 3859481121, 954930156, 82583793, 252049950}, + {418253333, 608825060, 182532416, 202319391, 3538749467, 536095527, 3759604495, 3690531097, 4211280121, 1144324567, 4159566867, 839384846, 233510679, 703724567, 521736710, 115671526, 4113430792, 118885386, 453971696, 674502623, 285739790, 3843546590, 455802865, 4009895439, 3807246113, 3622916689, 168619227, 52486380, 251855327, 803533609, 3924680203, 587659572}, + {3859151882, 87938039, 3573954616, 3857310237, 3589267980, 116011774, 3975485937, 4227133459, 506527243, 840566552, 3976326640, 152110363, 418440715, 4294320102, 553653482, 824059948, 3491555306, 385554955, 4030070224, 405271775, 1120870383, 4261609954, 52558333, 3692635888, 3844021015, 4192945435, 469761290, 3979077349, 117958649, 585444393, 3555918046, 4278464245}, + {3608474135, 4131577617, 3804567285, 270471911, 3590396927, 303699732, 3941007332, 3943178975, 221449981, 889386492, 270857949, 84605697, 4227207168, 605421274, 4075370010, 787614765, 3592032546, 250538506, 4263707609, 120848889, 520955157, 3913407987, 4194031870, 4159835368, 4096458254, 3706330146, 317848606, 4077578776, 100339731, 301018661, 3960996893, 3657831723}, + {3959357208, 3662935538, 98495243, 3976463108, 3725856268, 3775656461, 687147819, 4193261836, 504365059, 4179035938, 3691844618, 4091547105, 250551303, 369488659, 771952868, 773070099, 3739415555, 3793086197, 4146729724, 892476159, 855896848, 235734537, 4027322869, 3794608626, 3643336709, 3639423240, 622464298, 118823197, 320987898, 352784943, 216142846, 48823582} + }, + { + {3742696997, 475656710, 4228786408, 3524461857, 368255004, 219157477, 401352461, 3856800240, 134946804, 907280677, 148314858, 66812, 3856995605, 4294048225, 302842645, 136909329, 3923258134, 350690592, 168283870, 1126435094, 686419480, 4144750314, 824103179, 401671656, 4227995903, 134809412, 47513119, 133500948, 505937369, 467067902, 3571976976, 4079488548}, + {4074376429, 505266642, 4058254392, 3755871008, 3573815848, 4008510764, 183245052, 383595280, 755162606, 300220403, 300743392, 451608068, 3973707023, 654568683, 3928154891, 472253222, 385678072, 318119432, 489877188, 704705022, 567349746, 4210677534, 690740996, 4247251716, 4294705664, 4159513171, 4208665319, 368967684, 183435009, 671682538, 453373209, 520430569}, + {4145153794, 3911057626, 33816051, 3771795936, 4246404882, 4096257577, 703727582, 33826279, 837489679, 17174040, 3791116506, 569445157, 234088220, 787734785, 3894806041, 151199240, 101384704, 433920787, 773053935, 301853196, 618795792, 553053425, 909632729, 70842905, 4091417868, 3656007180, 4124635142, 85656799, 4246917640, 655043068, 119728091, 320145936}, + {4175101920, 3898014207, 84087325, 4177321738, 4276740847, 4041944031, 740631079, 3588617460, 133959931, 186444780, 282983677, 69604832, 3939836187, 4178245115, 3860997929, 283834876, 3441819893, 655104221, 68420068, 756275941, 1040984588, 217963503, 354675177, 571809524, 182448122, 3603825990, 367525399, 3993961464, 486676201, 282919706, 568578290, 3928486681}, + {282854894, 3845783522, 4292602866, 281803031, 3975277339, 570629895, 4008631533, 3738171423, 36166385, 1059188775, 4091866098, 4276614116, 132647453, 288420090, 250019043, 4011525157, 3408275771, 3755351590, 640807626, 703338266, 1190666774, 352572908, 655425507, 82776803, 4193512202, 3540649268, 3859735794, 32250860, 4093776109, 4210298088, 4125552122, 3693737962} + }, + { + {64363494, 18860501, 4162330383, 4246013456, 3908573444, 4178842348, 4012178425, 136835087, 486085626, 235673096, 4010994440, 117045022, 3894353687, 670236661, 421979943, 351526647, 3688769302, 4009161494, 738066158, 639892192, 718024723, 188810262, 839242446, 588714487, 3874417403, 3574925118, 136119280, 66191860, 65805817, 921704727, 199756780, 354349051}, + {3739165930, 824429802, 3642100492, 3656851998, 3823572005, 183034867, 4127777536, 133884422, 517795345, 773459740, 3774080002, 201465346, 4178519586, 3974684420, 3978226965, 370280426, 3624400931, 3839892498, 471845373, 923724298, 872813554, 3708023025, 892325599, 4029939420, 4241365278, 4212930620, 4161151473, 3859284736, 4294434582, 4144375579, 4162055140, 4210946828}, + {3456633831, 255511247, 3626105323, 4111533057, 63514611, 3809016105, 3991926745, 3809736677, 4179878390, 853533161, 98690301, 150465566, 4161863178, 32237062, 421603557, 618861570, 4195287829, 101703687, 4278577098, 385479158, 319024386, 439815429, 840425178, 83037670, 517344494, 3608948531, 3805483268, 4260549630, 49946877, 571735286, 4023580137, 3925797642}, + {3738231042, 123008192, 3391682341, 3910005533, 16449519, 471407358, 117963273, 4110546971, 201392145, 354029824, 3587700247, 789380345, 4193186570, 739507170, 687539696, 4192728053, 3571455534, 3925872650, 285588976, 270455310, 63580912, 3810524117, 4215064048, 4146793437, 4010089971, 3438947319, 252638702, 421128730, 3990609439, 4280160240, 80994561, 3744002323}, + {4042723299, 591002085, 3405310485, 349700840, 4194434834, 636878815, 4125807382, 4261414683, 4195815404, 186053135, 3558473752, 100266219, 3621521180, 4059758825, 606799650, 19135721, 14615867, 3724861705, 254985978, 504888804, 701834758, 3742158051, 673563851, 4079806992, 3807378439, 3505583649, 3756336422, 4176803864, 4075818477, 467334168, 251258082, 3845065226} + } + }, + { + { + {250220835, 236339468, 3959545100, 4045528315, 354420769, 485156880, 553719040, 403376148, 3992838883, 857222122, 3942508809, 4028823301, 402780416, 907945752, 19728891, 3759201245, 100465923, 4044099316, 202247421, 285605907, 3622427122, 688668946, 33292000, 3894796272, 371450130, 924393762, 3890874366, 3892911078, 684909021, 3942120687, 3693537035, 151202345}, + {455353380, 1526289135, 3842249498, 3976469003, 4146665250, 620958468, 149875484, 70383596, 4246268146, 588723702, 3825473561, 3961379041, 3777294315, 871367167, 251980516, 3691240176, 70265388, 471866608, 3826714894, 169927148, 3671384331, 606092259, 137227755, 284492836, 4211541508, 959250992, 772278559, 354430749, 436343039, 3890221811, 4164098852, 4060540444}, + {17036835, 1173834759, 186051605, 570811885, 3944745451, 4011919644, 84147495, 4060618507, 569187878, 4274978570, 4127661042, 3977309446, 136839925, 402402795, 1104653, 4145681644, 4145030654, 3942581759, 385823256, 706734062, 3771795220, 1027097845, 4195542290, 236592664, 133757950, 722870302, 554952431, 421601296, 3892373008, 518193143, 451998487, 4092534549}, + {588588051, 1275015430, 4264747045, 3928094706, 737276654, 621205766, 182070565, 235281175, 299968746, 818415865, 4195747554, 3993444124, 34535957, 836239870, 4261156108, 4078956581, 53165553, 3859751955, 4294119936, 670302429, 3553431544, 335480302, 4194234089, 319165981, 150076128, 3995148290, 283899659, 451673632, 401154051, 552858102, 3841722897, 353368323}, + {3957920013, 1290547221, 19398386, 4225299170, 370615805, 83164134, 383063564, 3809086679, 386982635, 835455951, 3655531788, 3991666935, 49404638, 332997158, 4230339332, 4061663016, 368512538, 433325548, 855386902, 186253786, 3588873170, 217718014, 51969836, 788001522, 4245493760, 4231736886, 3956737506, 703860772, 671818737, 4008696846, 569501417, 149165579} + }, + { + {4129352748, 738867190, 3861374992, 4211543056, 168553232, 149621759, 68951834, 4197195793, 4197460491, 588918269, 237634800, 3911911439, 3810266665, 738783748, 353827319, 3944030198, 893072695, 250871542, 454567659, 3960144903, 150857991, 1226190338, 3840944103, 672733991, 489353965, 1026315063, 620106781, 183371001, 4226028506, 3840018975, 539632406, 720573676}, + {455994607, 1647468063, 369365042, 4129230312, 556999212, 4162913534, 4176683292, 3995604502, 404100133, 604369138, 604901899, 333837017, 4264498181, 4192672025, 3725260309, 4212793631, 4266000370, 32240611, 195101, 15475219, 167379468, 705167905, 3928946218, 4192995868, 3995666958, 303047713, 501738215, 757270041, 4045466907, 216329735, 490531090, 774389530}, + {4197188103, 587864838, 4094035728, 485612520, 267787290, 4109770247, 571341573, 36889866, 168616449, 231677955, 4231012607, 621798362, 437260276, 837224939, 3926256363, 451280365, 655627761, 519755519, 202963245, 455734492, 50262545, 1057102063, 504165874, 402059541, 4126995447, 118707747, 4211416603, 655895851, 4092983785, 4176156140, 640757531, 904871466}, + {368635161, 537543956, 3863284779, 570811158, 4011387150, 670182386, 320536836, 489479145, 703980588, 32383214, 153017596, 604102893, 3530242, 570623524, 14736102, 571548413, 237449478, 4059229675, 252836101, 35328494, 3405111550, 404356912, 555815688, 334040066, 3808958756, 4111280924, 253891593, 489221093, 3874029057, 3877381098, 338497307, 402137331}, + {4109832495, 938820854, 221518092, 3993229835, 3860391145, 4210285841, 402928869, 3844794891, 50529831, 3771926526, 3945728781, 4143119103, 4178175746, 16187142, 335419400, 115270938, 150874916, 4293195030, 4164418041, 150737896, 3439006413, 488437547, 4110030128, 335357175, 4026003462, 168432407, 3824492501, 604975617, 652157417, 3740002558, 488904730, 786833142} + }, + { + {588517164, 1159731217, 653281012, 333896477, 520947453, 438574831, 399971832, 4110148633, 4279693815, 4043892998, 4076463860, 386276601, 35320335, 66643200, 199754754, 555478505, 421788427, 305064178, 723985666, 790034674, 4193781771, 603787275, 871425249, 825426920, 136122407, 100814624, 4076210724, 588705300, 725281, 3974233314, 4213966084, 234700544}, + {539961594, 1412384028, 50798079, 3808547615, 570102835, 421802469, 837422073, 4012957952, 221372972, 17368550, 4027184898, 235201000, 4130526192, 383908096, 3958050068, 250478365, 221509695, 3995128841, 637151017, 102697438, 3388072940, 66318397, 300934899, 636167662, 4163760140, 1042827806, 504298756, 151450889, 470611473, 350416386, 708320284, 354885870}, + {3996524061, 1092425489, 371796286, 3724281615, 606728428, 335162880, 4108196397, 590146308, 4111143928, 3692620559, 4198238771, 485886982, 87879953, 454831596, 4260107740, 4141213416, 4281663495, 185992440, 4226218748, 65601270, 50789902, 419958557, 736946471, 386200852, 3656970758, 149768526, 3757505767, 419819295, 199626010, 3906800879, 84666108, 4263390699}, + {3826515740, 504449278, 4245366284, 3961842446, 757013746, 152170481, 4077594147, 3895259671, 68751369, 99816184, 4231787294, 4226160616, 4045411347, 48424212, 4093500940, 396580, 455554796, 287695140, 1021901079, 4294439935, 3822257652, 637351167, 369290002, 3993499696, 4195620397, 905466168, 51060770, 669917434, 19011287, 4010278400, 4095212015, 756947757}, + {3960139790, 872160522, 4079163433, 4230215432, 136899292, 418519065, 318644743, 423032560, 487269383, 619508207, 4113952526, 3906199310, 4146202594, 602928408, 115929842, 216594177, 522458368, 3910337536, 1072958719, 200864745, 14153743, 272776716, 789375244, 686492445, 3893302507, 4147056909, 4245807854, 4042261008, 301917969, 4041665234, 503317033, 82642713} + }, + { + {16589598, 720653326, 1026632998, 656275211, 555870731, 4093574150, 4076204059, 151394080, 168157487, 336012015, 386196259, 3642026716, 132575256, 485292528, 468837380, 66511850, 772748316, 3859541739, 199437860, 385878005, 3555453158, 370624536, 4176412910, 505412640, 4027189510, 773602621, 4212848618, 569308926, 253753865, 16981260, 4193261338, 3927634470}, + {4214366256, 1510945803, 623655225, 17502203, 4277988146, 3857255654, 538378988, 4079681272, 4261142517, 3958708695, 3777814271, 4078496490, 704177145, 620756731, 266796503, 3773571074, 302263086, 469754138, 4093246248, 4193048803, 114615257, 941888522, 4026916847, 3943755049, 3993887764, 654056209, 119405304, 3894225161, 3942777881, 3942579429, 3859673105, 724770832}, + {4231136303, 1139550969, 756293930, 335546127, 4279893271, 187166731, 101527278, 369825318, 219159306, 31332064, 3792378115, 3860333311, 572401449, 636294370, 501543650, 3859278624, 4263395625, 523561265, 81915667, 18022875, 4193440983, 238028035, 4057932782, 203827949, 4060603639, 687942428, 134095376, 457265, 4080198698, 3642289904, 4264222478, 3908319743}, + {4079822859, 436684032, 4281747781, 3758879491, 3841140717, 3873639180, 401549847, 4246870826, 436862467, 4140884963, 4043182076, 3977706218, 3980007723, 3758093556, 4227192574, 3973978613, 586154741, 3861062692, 232988699, 3794133016, 203095259, 1344685352, 252634596, 200673294, 3944485357, 722619711, 387445226, 320793129, 489687819, 471732452, 319429664, 4293990446}, + {3925680934, 1054887178, 253051693, 3826909203, 351807727, 3840142870, 4011789089, 4281200896, 589558017, 234821083, 4147911684, 504106238, 3894550800, 3977907429, 4125810948, 3759538912, 4246999293, 33482976, 417081089, 369895129, 3743008464, 874062881, 183230499, 268381446, 3976720365, 334828852, 3758355481, 3858964518, 153693168, 165404889, 3928758522, 4111679230} + }, + { + {437662467, 622400508, 187380247, 4158255651, 137305916, 418245137, 100795688, 455097582, 3707372539, 4229159688, 167976720, 32110047, 250676513, 4094761207, 132442909, 3976273941, 521027331, 773528085, 3992529667, 4141678341, 4074433560, 704189724, 250224411, 137098500, 4044102410, 705903394, 3941993227, 48307997, 102170603, 4212451860, 756805142, 69335810}, + {3993642997, 804604646, 1155868448, 99745053, 503127859, 4042338334, 790828576, 169412871, 4143779568, 3823496968, 3908438260, 4194504695, 753345293, 539432483, 3843417061, 3673098986, 4160238853, 187430706, 704453407, 369490971, 3691712793, 1090595331, 4209432807, 3975619301, 4242804752, 217857100, 283912437, 435890201, 200615667, 3825601796, 3842060048, 353439012}, + {3793298729, 1426397197, 235609862, 32244515, 53543422, 3759149854, 235348515, 438766631, 3844543232, 286328078, 4246402353, 4044478433, 588052251, 3708416529, 3792297993, 18086152, 117247761, 303765494, 317654263, 318963932, 3639139037, 537275661, 353434899, 536669987, 3975485171, 253371911, 3876596204, 388099094, 3861127199, 3573028372, 17038650, 638841593}, + {3692112425, 618610475, 973612342, 32637490, 4278727940, 33745175, 4146074607, 907082265, 32312362, 3907449296, 721821741, 3856663326, 271522027, 3859866376, 4041792761, 217709834, 774650675, 103017488, 787415845, 301531425, 3740722397, 991368703, 266861045, 621017848, 4045206289, 34609983, 4011004163, 522255883, 219211791, 3825722111, 488567609, 4194709258}, + {4227076392, 854139615, 1039467816, 906830059, 789262095, 522069484, 703739417, 772681269, 3674399503, 3923237597, 202440717, 4209573662, 4028436231, 82649331, 4244108557, 4094496748, 235936043, 53214499, 4277664010, 704901372, 233373403, 940134891, 316935138, 670886659, 4028505886, 68699465, 4126204426, 672724773, 336860161, 4010019307, 101312519, 250474795} + } + } +}; + +static const int F3[16][5][5][8] = { + { + { + {3197952, 0, 0, 268632896, 0, 196608, 1342177280, 49408}, + {0, 0, 0, 3, 0, 201347072, 0, 192}, + {64, 0, 12, 117440512, 3072, 201326592, 268435468, 0}, + {64, 7, 786444, 268435460, 16, 201342992, 12582912, 48}, + {65536, 0, 0, 16, 3145984, 0, 50596864, 0} + }, + { + {0, 12651520, 77825, 0, 3265, 16778240, 51183617, 817889472}, + {0, 0, 67174400, 201326604, 48, 16793856, 1073754417, 16789504}, + {1024, 262144, 256, 0, 1073792005, 4, 0, 48}, + {65536, 64, 67108864, 201326592, 0, 67108864, 268697600, 13312}, + {0, 808465412, 808464640, 0, 1024, 67174400, 67108865, 805306368} + }, + { + {65540, 0, 3145728, 1073758208, 3194893, 809500684, 50331648, 0}, + {0, 1073741888, 0, 4194304, 192, 0, 50380992, 262144}, + {262144, 0, 0, 3072, 4, 20971520, 49157, 1090520064}, + {262144, 214171648, 16777216, 16384, 268436677, 67108864, 50331652, 67108880}, + {17039360, 201326592, 3238002688, 16384, 1, 17563648, 256, 0} + }, + { + {1048576, 786435, 0, 64, 835596, 0, 4197376, 1075642368}, + {0, 802880, 202113280, 768, 1073741825, 201326656, 4197633, 1073758208}, + {0, 12582915, 192, 16463, 256, 16777472, 3072, 0}, + {268435472, 0, 0, 65536, 0, 1048896, 1073741824, 1048576}, + {268435456, 52240, 15728640, 256, 285224960, 68206592, 201326784, 67108864} + }, + { + {786432, 16, 0, 3, 269487104, 12582912, 1141047308, 1342177280}, + {0, 3221225552, 201326593, 4096, 50334720, 268435523, 50334732, 1342374656}, + {196800, 3288350736, 3221225473, 0, 0, 3395, 205520896, 1409488640}, + {16, 212992, 12582912, 16, 0, 16, 49164, 51380224}, + {5120, 3840, 12, 67109888, 192, 67374080, 1073741824, 17152} + } + }, + { + { + {0, 1048768, 4096, 1049600, 4194320, 268435456, 65728, 262144}, + {1073741840, 12582912, 3, 16384, 0, 20480, 1342177280, 17039360}, + {262144, 0, 0, 16385, 65536, 71319552, 1090519040, 1060864}, + {0, 67108864, 335544320, 268436224, 66864, 1, 0, 50176}, + {3, 53477571, 0, 0, 3221226496, 212993, 268435456, 3233821888} + }, + { + {196, 1024, 0, 262144, 0, 285217536, 16777216, 12292}, + {67108864, 0, 67109911, 49, 68157444, 1077940289, 20971520, 12336}, + {16384, 0, 67109635, 1342196800, 1073741824, 5242892, 272629760, 12288}, + {1409286144, 4096, 0, 285212672, 4, 13, 16777268, 805306368}, + {67113024, 0, 13315, 16973824, 52, 16, 1048576, 12288} + }, + { + {448, 0, 1027, 60, 768, 805307184, 3145728, 805307139}, + {12544, 872677425, 67371024, 16384, 3, 53248, 4195075, 805318656}, + {4, 0, 67108867, 3088, 0, 1885147184, 24182788, 12288}, + {4, 48, 4, 28, 269496323, 17153, 4210688, 12288}, + {0, 3145728, 0, 268435457, 768, 1024, 0, 324352} + }, + { + {281018368, 12, 50385940, 1073741825, 245763, 50332684, 269221888, 0}, + {16789504, 49152, 4, 3072, 17825792, 1011613696, 268435459, 0}, + {16777216, 0, 1048576, 1073741825, 1048576, 768, 268506112, 3328}, + {4, 0, 268632080, 16, 0, 0, 335609856, 3328}, + {16777216, 49152, 3, 3089, 1073741872, 201330700, 0, 201329667} + }, + { + {268451840, 50177, 12583107, 1342177345, 201326592, 202113036, 786432, 201329676}, + {16384, 201376001, 16777412, 1073742080, 201326592, 3225420848, 1264, 201338892}, + {0, 257, 3, 802817, 268697648, 12, 67158016, 49}, + {67108864, 268435725, 3, 268435456, 201592832, 1072, 1073741824, 221264896}, + {3072, 0, 195, 0, 49152, 3221225472, 0, 201329664} + } + }, + { + { + {0, 0, 0, 0, 0, 805306371, 351469568, 67121212}, + {3407872, 48, 16, 0, 48, 50331648, 262144, 1073758268}, + {3158032, 0, 4194304, 0, 64, 0, 0, 28672}, + {192, 4194352, 16, 0, 4160, 0, 262144, 16432}, + {0, 48, 262144, 4032, 262144, 3221241856, 0, 196675} + }, + { + {262144, 0, 0, 3221274627, 12336, 3288334336, 268894211, 805318704}, + {12352, 48, 16777216, 0, 0, 875560960, 0, 809529408}, + {0, 0, 205602816, 3221225472, 0, 4, 268451840, 808452160}, + {0, 0, 1073758208, 0, 82944, 1073741824, 0, 16640}, + {16384, 805306432, 16, 268435456, 1073742080, 68, 0, 12288} + }, + { + {336592896, 0, 0, 192, 61489, 3072, 0, 0}, + {4194560, 4194332, 12556, 77824, 48, 16384, 65536, 16448}, + {0, 16, 805306380, 0, 786432, 805306368, 0, 65536}, + {4195328, 16, 1051660, 196608, 1073741824, 262144, 0, 7356417}, + {16384, 0, 1879048268, 212992, 64, 67111936, 268500992, 1073741824} + }, + { + {268439616, 20496, 67895296, 49152, 67898369, 3250585793, 348392704, 16777216}, + {50331648, 20496, 12, 1216, 4980736, 3221228544, 281346060, 3221229584}, + {3, 50331652, 3088, 67108864, 3288337408, 278528, 12, 0}, + {5123, 1028, 789568, 50332672, 118489152, 16805889, 281280512, 268438528}, + {1027, 1124077568, 1074528272, 16384, 4194304, 3072, 262208, 0} + }, + { + {0, 4096, 822083584, 49360, 67895296, 16, 265472, 281071812}, + {114692, 3221295120, 256, 3221226240, 3221225485, 3221241857, 385876316, 4352}, + {0, 16, 201329724, 772, 0, 3233811664, 385875968, 3288334349}, + {1024, 50348035, 0, 0, 49, 0, 68419660, 16778252}, + {196608, 16384, 76, 50343936, 3221422080, 4, 67371008, 16777216} + } + }, + { + { + {12288, 1048576, 67896092, 48, 0, 0, 3211264, 805325891}, + {256, 67944688, 268451868, 83886080, 65552, 3211460, 4108, 805306368}, + {16777217, 0, 16777216, 48, 0, 12582912, 12582912, 768}, + {1, 201326592, 65536, 3221225664, 0, 0, 3072, 768}, + {49152, 0, 4096, 3422552064, 65792, 0, 49152, 0} + }, + { + {196608, 819, 269484032, 64, 3136, 201330688, 65548, 0}, + {16777216, 768, 268435468, 16777265, 786432, 0, 4112, 1073741824}, + {1073741824, 4100, 1073741843, 12288, 1073741824, 72705, 3224371216, 1073758976}, + {1048576, 202375171, 1077936144, 786432, 17846272, 202113024, 221249792, 806732}, + {3222274048, 0, 1051664, 49164, 4194561, 12582976, 80, 807696} + }, + { + {67305479, 268435456, 335561728, 1065216, 196608, 201326592, 790592, 17216}, + {0, 1074806784, 67125264, 64, 1073741824, 64, 3145744, 1145061440}, + {0, 1073938435, 1073762304, 16780288, 1048576, 1073741824, 4, 16384}, + {1100992, 16435, 0, 3377, 201326592, 1073741836, 256, 0}, + {192, 4194304, 1311744, 3072, 3423600640, 1086390320, 1073745920, 17360} + }, + { + {192, 4391936, 4195072, 1, 64, 0, 268435459, 1073758275}, + {262144, 4194304, 0, 805322752, 805569283, 1882259520, 0, 67108928}, + {12288, 822083588, 64, 201326592, 0, 805371908, 0, 855639856}, + {3072, 1007681728, 1073741824, 0, 805306432, 3146752, 3148800, 17152}, + {65536, 0, 1049616, 3238051840, 805306368, 0, 0, 251670528} + }, + { + {1041, 12582916, 67108864, 16777216, 0, 0, 3224636416, 67109632}, + {0, 49156, 0, 256, 64, 3145984, 3407872, 50331648}, + {16777409, 805306368, 16777216, 0, 805306368, 3076, 70254592, 808452096}, + {12288, 4096, 201379856, 12, 16777216, 817889280, 3238002688, 3221228544}, + {16777217, 12582912, 1, 15360, 805306560, 3221225728, 29360128, 4026531840} + } + }, + { + { + {805306624, 1, 0, 16385, 12582912, 20971537, 65536, 16777216}, + {256, 3149841, 3145732, 0, 201326592, 16777244, 16777456, 0}, + {3264, 3145728, 49920, 12, 213921840, 22020097, 66560, 1073741836}, + {0, 12846096, 49920, 13, 15740932, 786496, 17575936, 269487116}, + {0, 1073741824, 12291, 29, 15777840, 12289, 4259840, 17563648} + }, + { + {262592, 12587008, 1087423424, 822083584, 1028, 0, 53248, 268435456}, + {12583104, 49168, 192, 822083584, 1028, 268436480, 786628, 268435456}, + {0, 12584144, 62915331, 0, 192, 0, 1048576, 4096}, + {0, 0, 197632, 285229056, 1074003968, 1025, 853187, 17825792}, + {256, 1073741840, 507904, 16777216, 0, 832, 48, 1314819} + }, + { + {1073742080, 1103101952, 1073939200, 16384, 49920, 4194496, 4259843, 0}, + {265216, 12582912, 3, 1, 196608, 13, 4195520, 4}, + {1068032, 262928, 245952, 1090535424, 29361920, 16, 1796, 272629840}, + {269312, 12582924, 5124, 1073741824, 262148, 50204, 836352, 268484608}, + {16391, 262160, 1024, 13, 12632064, 768, 772, 268435456} + }, + { + {0, 1073741888, 1024, 809517056, 4, 805306368, 805355520, 1077936132}, + {1073745920, 1086324800, 67108887, 0, 12583936, 65537, 3, 4160}, + {1048576, 768, 4, 201539584, 4, 0, 5242880, 3}, + {0, 1048592, 0, 1, 262160, 268436480, 786432, 17825792}, + {282688, 0, 3409091, 1073741824, 1076887552, 1036, 1114112, 4194304} + }, + { + {262400, 0, 50331648, 1073754113, 0, 0, 4255747, 3145776}, + {12288, 1, 1073741824, 71303168, 805306372, 49, 3, 4197376}, + {0, 3276, 68, 0, 1216, 3145728, 805306372, 4096}, + {0, 12, 0, 805306380, 16, 1040, 0, 16781312}, + {3148800, 1, 0, 0, 201326593, 3221237777, 0, 218103808} + } + }, + { + { + {4043358209, 195, 3145796, 3221241024, 29747, 67108864, 12595200, 82849792}, + {3198976, 195, 201327872, 49164, 3225419780, 16384, 13632820, 49}, + {768, 16, 4194305, 0, 262144, 16576, 12582912, 0}, + {768, 458771, 805568561, 0, 0, 805322755, 3222483008, 64}, + {196660, 0, 64, 0, 262211, 1073741836, 212992, 201528064} + }, + { + {16826416, 0, 16777216, 12585984, 3225436160, 16579, 1048576, 3435925504}, + {3904, 4194496, 4, 49168, 17412, 281018624, 0, 319557632}, + {49200, 810549263, 263236, 49155, 50593792, 12792000, 1343226944, 3690987520}, + {1, 54788096, 17216, 0, 16388, 0, 1049600, 318767104}, + {0, 16, 4473920, 4198160, 201327424, 1073938691, 16793664, 271598336} + }, + { + {17825797, 3221225487, 0, 3075, 201327360, 213910796, 1141637188, 318771200}, + {0, 809500700, 4194560, 4026544896, 50397184, 281034764, 12599360, 50335744}, + {0, 28, 68, 4194307, 50331652, 3158288, 196624, 469765120}, + {17039360, 251662784, 64, 192, 16387, 16, 12583936, 4096}, + {66304, 262192, 1024, 960, 202376192, 192, 16400, 0} + }, + { + {67108868, 50331648, 67109120, 52416, 3221225472, 202129856, 786436, 469762048}, + {1048640, 16400, 268435456, 4194496, 65536, 3221225500, 1048577, 268435456}, + {65536, 805306368, 0, 805318656, 50331648, 3221226508, 67108928, 1048576}, + {4198720, 12, 4199425, 192, 68, 48, 1060864, 0}, + {65536, 201326592, 1074004016, 1052720, 201338944, 48, 0, 65536} + }, + { + {16777217, 262144, 67108864, 0, 0, 201342988, 64, 201326592}, + {0, 0, 4194305, 0, 0, 3224387600, 1879048196, 0}, + {805306368, 805306368, 4259840, 13056, 0, 16974848, 13369600, 4172}, + {112, 16384, 48, 3072, 278528, 12, 0, 201326592}, + {256, 201326848, 4, 7168, 469762048, 256, 65536, 12288} + } + }, + { + { + {0, 268435456, 7, 0, 285212672, 16, 805322752, 268435456}, + {114688, 3221225488, 67108912, 0, 16777216, 16384, 327680, 269484032}, + {786432, 1, 74448896, 50331648, 3221225476, 0, 1153433600, 3489711296}, + {256, 0, 12288, 0, 48, 3233808384, 1086390272, 65536}, + {0, 3221225665, 3, 3264, 0, 0, 67109632, 311296} + }, + { + {260, 268435456, 7, 201326592, 16384, 268435456, 16448, 49155}, + {4352, 4097, 50348032, 7168, 64, 1, 16384, 285216768}, + {112, 0, 0, 1, 0, 1, 65536, 268439552}, + {65536, 16576, 3145728, 3089, 3264, 786433, 786432, 3222323468}, + {3328, 460, 0, 3264, 268697792, 218105600, 1073754112, 3221225728} + }, + { + {0, 1836032, 205523968, 0, 16, 197393, 0, 269484032}, + {266240, 0, 0, 4, 3, 16581, 1140850688, 335597772}, + {50331651, 201326612, 0, 0, 262400, 0, 1048588, 268488704}, + {0, 16, 0, 4, 0, 0, 0, 15}, + {4099, 201326596, 50397236, 787200, 262336, 67108865, 0, 3238838275} + }, + { + {0, 805306560, 262144, 208, 0, 12599296, 1140850688, 13418512}, + {48, 806355152, 4194304, 0, 805306368, 268451843, 885260288, 67108864}, + {4194304, 1048576, 0, 3, 262144, 268435459, 1024, 0}, + {1048688, 1006632976, 205586432, 805318656, 262156, 3161104, 1040, 12}, + {0, 0, 311296, 12598272, 201327824, 0, 1140851712, 49152} + }, + { + {0, 3264, 3148, 12292, 3222011904, 196803, 818151424, 335597568}, + {48, 4194560, 0, 1024, 50331648, 281603, 0, 1052672}, + {822083585, 0, 0, 3, 4195072, 274695, 805503040, 318767107}, + {805306368, 1048579, 1051724, 12582976, 67108867, 1073741824, 1073741824, 4096}, + {809500672, 259, 805306380, 65600, 805306396, 67321923, 1073741824, 67109632} + } + }, + { + { + {16, 12544, 4096, 0, 0, 4096, 3072, 16}, + {3, 65536, 1073741840, 1, 0, 0, 3084, 16}, + {806092800, 48, 0, 1077149760, 12648448, 16777216, 0, 0}, + {0, 1140850700, 50331648, 256, 67112972, 3221487616, 0, 0}, + {3145792, 14131, 274480, 257, 16777216, 0, 0, 201326592} + }, + { + {1073758224, 12352, 0, 0, 12288, 4096, 3145728, 0}, + {81920, 65536, 786432, 1074806784, 0, 0, 805306368, 16777472}, + {16384, 67111936, 786432, 67108868, 790800, 262144, 4096, 65536}, + {256, 1086337024, 192, 1024, 16, 3221487616, 1157677248, 0}, + {112, 0, 3076, 3145728, 16777235, 3, 67108864, 268435456} + }, + { + {268435456, 0, 3145728, 3, 3221225520, 60, 4194304, 1019215889}, + {0, 65537, 16, 68, 4096, 805306368, 1073741824, 3088}, + {786432, 0, 16, 67108864, 256, 0, 805306368, 12583168}, + {68157440, 0, 67108864, 67109120, 83951616, 20484, 67174416, 0}, + {805306368, 12, 0, 67108865, 0, 0, 1073741824, 285212672} + }, + { + {3288334336, 3221225472, 0, 67108880, 0, 62980144, 0, 49344}, + {1048576, 67174400, 17563664, 328720, 855068, 262144, 872464396, 330752}, + {1048576, 65548, 16, 50332416, 3088, 49152, 0, 469762256}, + {3221225472, 1117440, 336396305, 1049600, 68608, 3342400, 69660, 268435456}, + {3271557123, 3271560256, 50331648, 50331648, 1, 199745, 65600, 4352} + }, + { + {0, 3221225472, 0, 192, 0, 201326592, 3120, 0}, + {805306368, 0, 17, 50331892, 67108864, 201523248, 12, 0}, + {1024, 0, 71303169, 50332416, 71306240, 196608, 855837696, 1}, + {3221225664, 0, 67895309, 12582916, 12, 1543700480, 50331665, 201329936}, + {3, 768, 0, 50332672, 789504, 1073741824, 1064960, 12582912} + } + }, + { + { + {0, 262148, 0, 1048576, 67305472, 65600, 262144, 1792}, + {16384, 268435460, 786432, 1, 0, 16842753, 1343225856, 49152}, + {1040, 16, 0, 4, 0, 67174400, 268435456, 1048580}, + {12, 0, 12, 257, 0, 822083584, 0, 0}, + {64, 4, 0, 1048576, 29696, 4, 16793600, 67108864} + }, + { + {256, 1216, 0, 1024, 0, 67108868, 17055744, 1024}, + {16, 192, 12582912, 1024, 1048576, 262144, 268435459, 67376128}, + {0, 4096, 0, 1073741824, 0, 3145729, 16826368, 67109056}, + {268435728, 12587024, 12583680, 0, 0, 4457217, 268500992, 0}, + {0, 4097, 0, 262144, 192, 16, 286523392, 71566340} + }, + { + {268435456, 262192, 1073741824, 4, 16777984, 65536, 4194496, 3145728}, + {1073741888, 3072, 0, 16778304, 1246144, 4308992, 268484608, 20234241}, + {16384, 12582912, 805355520, 1024, 16777216, 265280, 4243456, 1024}, + {1073742156, 196608, 16777228, 19923009, 1048768, 3221225472, 4259888, 3194928}, + {0, 16781312, 805306368, 1024, 0, 0, 262912, 3564175424} + }, + { + {12544, 268632064, 195, 64, 0, 49152, 3840, 1090531328}, + {16384, 16777217, 0, 1094713409, 49920, 4197388, 1077936128, 0}, + {0, 67305472, 786435, 1089, 3840, 4194304, 1090519088, 3194928}, + {1024, 16, 884998336, 16777216, 0, 3225422865, 4456448, 49152}, + {822083584, 1073741904, 196611, 1073741824, 0, 4259920, 272894976, 50331648} + }, + { + {1074003980, 262145, 12583104, 16385, 218104576, 4194305, 20971523, 1090519040}, + {256, 4096, 201326784, 1, 16777219, 65536, 4260608, 19924019}, + {0, 0, 0, 3145729, 0, 201326593, 66307, 3145968}, + {48, 256, 12583683, 256, 805306380, 0, 1073807360, 1216}, + {48, 196661, 50393088, 12289, 0, 65540, 22134784, 786624} + } + }, + { + { + {12595200, 201326595, 49155, 3238002688, 4099, 0, 0, 67108864}, + {0, 0, 51380240, 3072, 16384, 0, 4096, 16384}, + {318767104, 64, 4096, 201326787, 19, 76, 1024, 1024}, + {0, 67108912, 268436480, 1048576, 3225419779, 213909504, 0, 17616}, + {16, 262144, 4096, 960, 3, 12, 0, 16} + }, + { + {0, 65, 262147, 0, 0, 0, 805307155, 805306368}, + {0, 64, 4198400, 0, 196624, 1050444, 66308, 1879048192}, + {12288, 12288, 1024, 16973824, 262224, 780, 67125248, 16777216}, + {1048580, 48, 16384, 1048768, 16, 16397, 0, 208}, + {4, 0, 50380800, 16576, 0, 3221422081, 0, 50176} + }, + { + {16387, 3146820, 3288334340, 12582913, 3145920, 49156, 805371908, 805502976}, + {3091, 268435824, 50331648, 201342976, 4, 64, 16843779, 0}, + {50331652, 64, 4864, 262145, 256, 1857, 0, 0}, + {68611, 48, 3489660948, 0, 262144, 16777293, 1073742848, 1051904}, + {0, 0, 50331667, 1275068428, 268439552, 0, 65536, 12582912} + }, + { + {4108, 64, 3489727488, 0, 12481, 835585, 3146756, 822097152}, + {3221225472, 469763072, 192, 12, 1278214144, 50176, 4, 16640}, + {335547600, 268435456, 192, 265229, 1, 1, 786432, 1077967872}, + {268439552, 268435468, 263363, 5245953, 201375744, 1036, 0, 20988160}, + {0, 1, 262336, 268435456, 0, 65548, 0, 0} + }, + { + {268451852, 64, 192, 268439552, 1024, 16777281, 260, 805306368}, + {3, 268435523, 0, 0, 0, 1856, 16640, 2080377856}, + {3088, 0, 0, 201326592, 1342177280, 1879048193, 0, 1074540544}, + {64, 0, 192, 7168, 1275069184, 201326592, 67108864, 12}, + {16, 196684, 212, 469762316, 768, 787212, 0, 786432} + } + }, + { + { + {0, 3221422272, 784, 805306560, 1069056, 3, 12587011, 262144}, + {49920, 1048768, 5, 50577408, 4194304, 16396, 16384, 196612}, + {4096, 192, 16388, 0, 48, 12583936, 1024, 0}, + {3072, 12288, 262144, 192, 3162112, 16384, 52, 768}, + {1140850693, 1073754115, 3145728, 268697600, 1073741827, 50331904, 13369408, 855651072} + }, + { + {65600, 1048816, 64, 16826368, 805306368, 16432, 0, 771}, + {67121216, 3221225472, 16, 805306368, 0, 16777216, 15728912, 817889280}, + {1052688, 16384, 67108868, 83886272, 3271622720, 17584140, 16777217, 12582912}, + {1055744, 0, 50331664, 16777228, 768, 16588, 17564672, 265232}, + {1073745920, 268435456, 87031872, 352321536, 3489660995, 201326595, 799540, 201327376} + }, + { + {1074529024, 0, 68157440, 67108924, 0, 3150028, 1140850704, 805306368}, + {71420992, 1048588, 67108944, 3221225472, 50348033, 15732940, 1076887808, 29560832}, + {65540, 3221225484, 50335808, 806354957, 3225419776, 201326784, 20544, 53248}, + {49156, 268636364, 1048576, 1048588, 20972380, 787456, 1141653568, 12}, + {0, 16778176, 7, 4096, 3342339, 62915599, 67896128, 201327360} + }, + { + {268435456, 76, 81940, 48, 5393, 4108, 1191182336, 1006632960}, + {65536, 16384, 68222997, 61488, 4215813, 16781313, 1, 805309696}, + {49155, 5242880, 5259264, 304, 3221226560, 16793600, 79695888, 16826396}, + {256, 204, 4115, 262593, 805568528, 16794625, 17629184, 53248}, + {67420420, 196864, 67110656, 262144, 20971587, 1216, 66324, 3072} + }, + { + {67108864, 4210688, 0, 48, 0, 0, 3145792, 3840}, + {0, 48, 1073741825, 805306416, 0, 48, 1089470532, 52224}, + {49424, 1048816, 0, 65536, 4026539021, 16384, 12582929, 1006632960}, + {50331648, 768, 16384, 3225420032, 786432, 279553, 67108864, 114688}, + {67108864, 48, 4096, 1, 3072, 32510012, 12648448, 1048576} + } + }, + { + { + {4, 16, 312320, 3, 12288, 197648, 1048576, 0}, + {16780288, 279552, 3407936, 64, 201326593, 1073754396, 1140867328, 1073741824}, + {3088, 3407903, 3238002752, 0, 3145728, 256, 1073741824, 16}, + {17, 0, 1, 208, 268435456, 192, 0, 114880}, + {0, 83886288, 49, 0, 3221225473, 1060864, 805503024, 12632832} + }, + { + {71303169, 0, 0, 0, 0, 1097871360, 0, 0}, + {67108928, 1090519043, 805306368, 218103820, 256, 868368, 0, 201326595}, + {65, 0, 52, 201329664, 0, 271, 983812, 201378816}, + {3072, 208, 49152, 805306368, 0, 12288, 0, 3271560192}, + {67108865, 192, 3145729, 0, 192, 3221225472, 79691776, 3271560960} + }, + { + {805306368, 12632067, 817890304, 12288, 0, 1040, 0, 268435456}, + {0, 805306371, 822083584, 1090781184, 201392384, 49152, 4096, 469815296}, + {0, 1073742592, 49152, 805318924, 201326592, 1073741824, 806293504, 50339584}, + {1048576, 29360140, 48, 16777216, 3422552256, 256, 16974848, 50331648}, + {805306432, 1048579, 17039365, 3072, 1, 3222028544, 0, 50335744} + }, + { + {1073741824, 12, 5120, 218103808, 214171648, 67108864, 67895300, 4243456}, + {1073741824, 202424528, 0, 822083648, 262144, 787456, 0, 268436224}, + {0, 0, 1074004016, 1090781184, 64, 13312, 16777216, 268436224}, + {0, 16, 16777220, 201326593, 0, 51118080, 83886084, 50331648}, + {262144, 266271, 69632, 805306368, 0, 786700, 984064, 3221225472} + }, + { + {1048576, 12586204, 805307136, 12288, 4, 0, 1024, 4194304}, + {4194308, 208, 1075052612, 1090715904, 1073742848, 4194316, 4, 4194304}, + {71303168, 1246208, 0, 16384, 201326656, 256, 0, 4199168}, + {4194304, 805306368, 1, 0, 201343040, 318767104, 16793668, 4864}, + {0, 268, 1, 201326652, 65536, 0, 0, 318767104} + } + }, + { + { + {4456448, 5, 0, 0, 1048588, 1073744912, 68608, 1024}, + {0, 4100, 48, 4194304, 67108928, 0, 262144, 1073741827}, + {1, 17235968, 3147008, 1073741824, 16128, 49152, 1048576, 0}, + {0, 285212676, 0, 1073741824, 0, 4206595, 67305664, 0}, + {305, 16777236, 12582912, 81920, 67158064, 4259840, 4194304, 12611585} + }, + { + {1245184, 67108868, 0, 805306368, 50331648, 7, 1073741824, 335548416}, + {806354944, 196612, 16384, 0, 196611, 16404, 67109696, 272634624}, + {278528, 772, 3345468, 1064960, 3145728, 855690240, 13056, 269570816}, + {3221242112, 17428, 1275117568, 0, 1073742592, 0, 71577603, 1073742848}, + {3239071936, 68, 0, 0, 16777216, 49216, 1048576, 1073742592} + }, + { + {12291, 192, 3221229568, 201326593, 0, 1, 12582912, 3288383492}, + {1077248, 1074003968, 268435456, 0, 50331648, 3284, 3, 3222017104}, + {16777228, 1073741824, 0, 1073742080, 0, 49153, 0, 268440592}, + {257, 0, 218103872, 201326656, 3, 67895296, 18104320, 1073742912}, + {192, 3221225744, 1, 3221225548, 4276224, 1073741888, 16793600, 1073741840} + }, + { + {0, 979, 64, 1, 4194560, 16576, 1036009472, 200704}, + {196608, 1073741824, 0, 16976896, 4194496, 4206784, 805306560, 1295376}, + {0, 0, 16, 212992, 0, 0, 1006633155, 196608}, + {201342976, 262144, 50331648, 1879244800, 12582912, 268435456, 0, 268681216}, + {0, 805306384, 786432, 0, 0, 12288, 0, 1342640900} + }, + { + {0, 0, 65612, 0, 0, 16777216, 12582912, 1048592}, + {4096, 12291, 268439616, 4195072, 4194304, 0, 213909568, 1310736}, + {50332416, 4, 12, 0, 50331648, 0, 1275150592, 263172}, + {768, 1124073472, 1, 12, 82176, 0, 805306368, 16777216}, + {805306375, 50331652, 0, 3145728, 50331664, 285212672, 0, 0} + } + }, + { + { + {3221225472, 16794368, 790540, 786433, 0, 65536, 4456464, 768}, + {16, 16973824, 848, 3221225476, 0, 262144, 0, 771}, + {0, 0, 67108880, 0, 4112, 16384, 0, 201330435}, + {262144, 972, 0, 67108864, 4194304, 192, 0, 0}, + {201375760, 60, 4167, 48, 772, 0, 0, 3222274048} + }, + { + {4194496, 17152, 266240, 48, 0, 48, 3162112, 805306368}, + {0, 3120, 272629760, 4195328, 4194304, 4, 16384, 805307136}, + {1048576, 196608, 0, 4027580464, 806354944, 16432, 15732736, 16384}, + {0, 805306368, 67125248, 67121152, 789504, 3221229568, 12582912, 324}, + {65536, 1, 0, 1024, 0, 4198400, 12582912, 0} + }, + { + {1342189584, 0, 16, 192, 0, 48, 1073741888, 256}, + {0, 1, 0, 805306369, 0, 262384, 69632, 12288}, + {12288, 67125248, 786432, 1072, 1052672, 0, 67116032, 805318656}, + {65536, 67108865, 0, 768, 805310464, 3346480, 1073741824, 201326592}, + {1024, 305, 335806468, 809500672, 4194560, 20971520, 1073745920, 3242198272} + }, + { + {19, 19456, 0, 809762816, 1048576, 285278400, 3211264, 822084612}, + {1073741824, 51380224, 335544320, 49152, 4194304, 1, 0, 3288383488}, + {1073741824, 16384, 4210700, 50332608, 1064960, 3221504001, 65548, 3221274880}, + {65536, 51118080, 16400, 67110080, 67112976, 20672, 1, 16777472}, + {65, 256, 259, 50331648, 16777216, 16640, 50593792, 65536} + }, + { + {12632068, 786624, 0, 196608, 0, 3489660928, 1086324736, 3238002880}, + {262144, 240, 50331648, 67108864, 810549264, 16793600, 0, 3238002688}, + {50381824, 805306368, 64, 0, 3225422848, 3145732, 0, 196608}, + {64, 805306368, 256, 0, 64, 0, 262400, 786432}, + {16777217, 1090519040, 16973824, 53477376, 16, 335544320, 0, 0} + } + }, + { + { + {0, 268451841, 50348044, 49152, 12, 12582912, 3072, 3}, + {262144, 16385, 50331664, 196608, 67113728, 0, 0, 4}, + {12583168, 4096, 212, 0, 0, 201330688, 4096, 4096}, + {64, 16, 0, 192, 0, 50338816, 1048576, 1073746176}, + {5046272, 3556786240, 786432, 3221225476, 64, 0, 64, 786432} + }, + { + {4096, 269221888, 50331648, 4097, 0, 1105, 4259840, 0}, + {1048576, 1048832, 62914560, 268436736, 67112963, 50331712, 16777216, 262148}, + {48, 65537, 922747072, 0, 65539, 0, 0, 4}, + {3, 12288, 12582916, 3145728, 0, 1048577, 16826368, 1073741824}, + {4194304, 64, 12288, 268435456, 272642316, 0, 16777216, 0} + }, + { + {0, 268513536, 192, 268439568, 268438531, 16, 48, 262144}, + {64, 1073741836, 62914560, 322174992, 67108864, 262912, 6078464, 67306496}, + {12582915, 0, 79691972, 0, 114692, 4194316, 201392128, 67108867}, + {3, 0, 12910784, 268435456, 65536, 4194304, 16777217, 208896}, + {201326592, 4194369, 50397184, 16, 0, 0, 4206592, 0} + }, + { + {802816, 1073856512, 12, 4096, 50380800, 285487168, 256, 212992}, + {872431616, 320, 1024, 262912, 67174416, 201327360, 20971712, 469762064}, + {805306416, 12288, 67174592, 262144, 1073741824, 768, 0, 268451844}, + {4868, 0, 12845312, 50335744, 0, 3238002688, 16777472, 196608}, + {50332416, 65856, 65536, 50397184, 65536, 986112, 65584, 1073741824} + }, + { + {0, 71303232, 192, 67112960, 0, 12288, 1095499776, 262147}, + {786432, 51118924, 268435456, 1024, 1342177308, 201326592, 196608, 469762052}, + {3120, 5255228, 1216, 268701708, 3221225488, 12352, 786432, 268713984}, + {3075, 201326607, 260, 4867, 201326784, 1073741824, 3221423104, 1073758208}, + {201523200, 1006633792, 262144, 3221225472, 201326852, 786432, 196608, 268438540} + } + }, + { + { + {12582912, 65536, 48, 64, 12582912, 12336, 1879834624, 1048576}, + {0, 50331648, 4, 67111987, 0, 1072, 872415488, 0}, + {67895296, 3932160, 12632320, 67121155, 192, 196672, 0, 0}, + {196, 49212, 256, 3211264, 12288, 50432, 0, 1073761280}, + {12582913, 49152, 4026580992, 67108864, 3264, 4227858444, 0, 1006633152} + }, + { + {0, 68, 0, 0, 49408, 16777216, 5242880, 12}, + {0, 64, 0, 12582912, 17, 0, 1879834624, 16}, + {1048768, 16777231, 0, 0, 0, 3489661952, 12288, 16384}, + {0, 1140851456, 83887104, 262144, 12, 3221226508, 1124859904, 16448}, + {48, 64, 16777216, 0, 0, 0, 0, 0} + }, + { + {1048576, 16, 4116, 805306368, 0, 201326592, 784, 4928}, + {192, 5243728, 1053440, 0, 1, 12, 5242880, 20556}, + {335544320, 0, 0, 16793600, 64, 1052, 4194304, 282688}, + {67371008, 832, 3221225472, 0, 16, 0, 5029888, 16384}, + {0, 1048576, 0, 256, 1073745936, 1024, 201326592, 201330688} + }, + { + {3264, 201343040, 16777216, 1, 266240, 1342177280, 3221225472, 201326592}, + {3072, 17152, 268435520, 3221225472, 20544, 268435485, 67108928, 1342181376}, + {71303172, 4194304, 196608, 4026532864, 16793616, 268435456, 3271557184, 1074073664}, + {16388, 16777296, 1024, 805307392, 1073741824, 201326592, 4096, 1342455808}, + {52, 1048576, 0, 16432, 16777216, 268436480, 809500688, 1342462977} + }, + { + {268, 12301, 0, 3221225472, 1, 49152, 4026531840, 17826048}, + {3072, 49152, 262144, 67109120, 16777232, 0, 805322752, 17563916}, + {3221225472, 12288, 0, 3221225520, 68157504, 1024, 12582976, 1073762560}, + {67109056, 192, 0, 16777220, 64, 50176, 3221241868, 82176}, + {1, 0, 0, 192, 67108864, 1073741824, 3221225536, 16385} + } + } +}; + +static const int W1[3][256] = { + {0, 469779200, 0, 78848, 0, 205521664, 0, 1, 486588608, 0, 3345664, 282067060, 12644352, 817889540, 786432, 3233808384, 768, 262144, 809500672, 805634048, 809500672, 50606080, 117441584, 1882207284, 3159284, 3224449216, 4194419, 0, 832, 1275269136, 4864, 872677376, 12544, 448, 1073938435, 3221225472, 49152, 4195139, 67108864, 875836464, 768, 55579392, 0, 4194304, 201326797, 0, 12582912, 0, 49152, 0, 3072, 0, 114944, 817901568, 3158016, 12583984, 49152, 76, 256, 3145728, 858796096, 64, 805306372, 67108928, 0, 458756, 1073938436, 809517120, 49356, 50331648, 469958656, 270270464, 4026531840, 3221225520, 12648448, 12582912, 875560963, 4096, 335545344, 0, 3221225665, 0, 12544, 50224, 12649676, 16, 12, 1052684, 3221225520, 192, 3233820672, 1024, 327680, 7353092, 3407920, 67372035, 1074003968, 130023616, 3146752, 67110080, 1023462400, 202113036, 202375196, 50335744, 4112, 3221229568, 201326592, 29488, 204472524, 12, 50529036, 268435456, 805309440, 3120, 983040, 278576, 271630336, 201338880, 192, 3221238209, 4194352, 64, 809501696, 872415296, 12582912, 251710464, 268435468, 1024, 50331651, 1048576, 786432, 1879048256, 16789504, 50334720, 1325400064, 50528256, 48, 1075006464, 1073758208, 0, 805307139, 51381056, 16384, 805306368, 0, 201327376, 486555676, 805306384, 48, 192, 812658944, 257, 29361152, 1028, 51118080, 0, 0, 0, 4112, 16826372, 114884, 77824, 3145728, 3207168, 1, 3158256, 268435456, 1072, 1076887556, 825242624, 77824, 825492224, 48, 50541568, 13516, 3238117377, 805306368, 4456704, 3221226496, 64, 29360128, 202132480, 55574528, 51168016, 12304, 12292, 48, 71578419, 805306372, 805306368, 805318660, 1076970816, 3221225520, 281018416, 1191444532, 269221888, 16842752, 3084, 269484032, 13369344, 14486528, 12, 201327376, 1052687, 3145728, 835776, 786432, 16384, 3233869824, 114688, 1088, 0, 67175680, 3145920, 61696, 262144, 4194304, 4390912, 67121152, 3473408, 786688, 7340032, 3072, 281067776, 786496, 4096, 786432, 0, 17216, 3221291008, 268436480, 1, 82837504, 805321728, 271843392, 268500992, 0, 3224371200, 200723, 0, 1, 4194304, 268440320, 268435456, 3233812480, 271581184, 1838092, 12582912, 0, 3145984, 805318663, 809512960, 17216, 1073741824, 0, 786480}, + {786624, 12288, 3, 832, 49152, 202113072, 3, 1024, 203232000, 4026531840, 117637120, 3148803, 0, 1907728, 16384, 0, 12300, 809501500, 117440515, 50528256, 1282618371, 4391936, 16401, 54742065, 120600320, 4352, 5062925, 1024, 1879048192, 3932979, 199728, 67317760, 5891, 1048576, 16842753, 67108864, 12582912, 4206643, 3344135, 202113856, 3145740, 3932224, 786432, 79890419, 7168, 3221241856, 245764, 805306384, 67111936, 3288390656, 49152, 67375104, 4390912, 201589760, 69888, 17408, 67355392, 4032, 48, 3075, 1077939200, 1074529027, 1074727984, 768, 3161280, 1886400560, 7537408, 3342448, 1052672, 3423338688, 0, 3422748672, 335544320, 0, 268435456, 67371008, 851968, 786432, 201523983, 3145779, 1049600, 16781376, 17892356, 1073741873, 1048577, 0, 3146496, 53477568, 17152, 4195328, 65536, 3145793, 13636352, 860029715, 120587024, 1081081868, 50331652, 855851008, 67108928, 94208, 67223820, 49164, 855837708, 12583104, 1950367744, 1073987584, 12582915, 4206848, 475136, 0, 3993904, 12583116, 3489673216, 0, 3084, 786432, 13418496, 16777216, 192, 50331648, 1009778691, 0, 197376, 50331648, 3221487616, 20971521, 805309444, 48, 60, 1275069244, 0, 1073741827, 1128268596, 201601024, 805568512, 368, 3137, 65536, 12585984, 62927616, 808464432, 51130416, 12288, 1124073472, 3120, 3072, 3221471280, 268451840, 48, 838656, 786432, 0, 50593792, 262401, 16777216, 16640, 0, 3222011904, 50344707, 12632832, 1073745920, 17408, 268502084, 262208, 3222275088, 790532, 822084608, 51380225, 50540544, 0, 1, 1094795264, 1835009, 4, 3288531760, 50528455, 3072, 1145044992, 117899264, 51, 1048576, 118004, 0, 0, 67108864, 1074008144, 278528, 4194304, 805307136, 196611, 1073745920, 285233156, 16432, 65792, 0, 855837696, 49180, 806358028, 805310464, 15990832, 17629185, 192, 805306368, 808452288, 872432640, 0, 201326592, 2031620, 1027, 339738624, 4194305, 1090535472, 1392513792, 4, 285212672, 67108864, 789504, 3072, 204472320, 1246976, 3489710128, 201523504, 196659, 199692, 3120, 12582960, 201326592, 0, 1073810432, 0, 196608, 195, 4096, 67165184, 805310656, 805503744, 3158832, 16777280, 13504, 3159040, 835585, 65536, 0, 49920, 16777408, 4112, 67108864, 117637136, 1118211, 50331652, 0, 54525952, 16780288, 12585996, 215203840, 3288334336}, + {1342177280, 268435456, 0, 4194304, 268435456, 4194304, 0, 0, 0, 12582912, 7356416, 268435648, 12583104, 15728640, 0, 0, 0, 1342177280, 1073741824, 0, 0, 0, 808464432, 805318704, 192, 0, 805318704, 0, 0, 1073741824, 0, 1077936128, 0, 3233808384, 12595200, 0, 0, 809500672, 16384, 12288, 4194384, 0, 4210736, 805306368, 0, 12288, 269488144, 0, 268484800, 15777792, 1048576, 4096, 805355712, 12595200, 48, 3221274624, 817889280, 269484096, 64, 48, 1073741824, 1073741824, 3145728, 48, 5242896, 805318656, 3221225472, 4042321920, 4112, 1073741824, 0, 0, 3221274624, 0, 192, 3233820864, 0, 1073745920, 0, 16448, 3224383488, 12582912, 3145728, 3233857728, 12582912, 268447808, 64, 4112, 3145792, 821084160, 12632112, 268484608, 817889472, 0, 3145776, 3233870064, 1882193920, 821084352, 0, 808452096, 4096, 12582912, 268435472, 0, 3158016, 1077936128, 272629824, 3207232, 812658688, 0, 3145728, 1073758272, 0, 4194304, 0, 805306432, 3221225472, 192, 0, 12336, 0, 0, 805318704, 3145968, 3233808384, 3145920, 1052672, 0, 64, 1073741888, 4194368, 808452208, 0, 4096, 1073758208, 1077936192, 1052672, 1097728, 0, 0, 1073741824, 268435456, 64, 3145728, 0, 0, 4176, 3145728, 0, 1073741824, 808464384, 192, 3221225488, 192, 12632256, 0, 12582912, 0, 0, 4096, 805368000, 15728688, 12632064, 3224371392, 268439744, 0, 3233820864, 240, 0, 4194304, 808464576, 4026593280, 3224371248, 0, 5242880, 12288, 4194304, 48, 49152, 3221225536, 0, 80, 0, 4096, 12632064, 805306368, 3221225472, 49152, 112, 0, 3158016, 808464384, 0, 3221225472, 48, 0, 3233808384, 16, 1073741824, 1048576, 0, 0, 0, 4210752, 271593584, 1342177280, 0, 812646464, 805306368, 0, 48, 4026581184, 808452288, 3221225472, 3221225472, 12632064, 268435520, 0, 12336, 805306368, 49152, 4194304, 4194304, 192, 268451840, 0, 0, 805322800, 0, 3221225472, 1052672, 12288, 0, 805306560, 240, 0, 3158080, 16, 269484032, 0, 12636352, 0, 269484048, 0, 12583104, 0, 3221225536, 3222274048, 16, 4194304, 809500720, 49152, 1048576, 4194304, 0, 805318656} +}; + +static const int B1[8] = { + 3047200417, 2427291307, 1382105157, 1867352135, 2891231579, 1520203642, 1773551958, 1313056152 +}; + +static const int B2[8] = { + 1078612407, 1922908814, 1347784523, 1700628315, 1403226196, 1115251880, 1584356015, 2324609438 +}; + +static const int B3[16] = { + 4274386212, 258955279, 2976373167, 2567853607, 3299889991, 4176222242, 311297359, 245633991, 1175206169, 3354654980, 806115514, 1846628465, 3690503548, 1546990243, 3259348300, 3604507860 +}; + +static const int B4[3] = { + 3759661788, 804912856, 3859218432 +}; + + +#endif /* CNN_WEIGHTS_H */ diff --git a/inference_codes/cmsis_cnn/optimized/ibex_cnn_params.h b/inference_codes/cmsis_cnn/optimized/ibex_cnn_params.h new file mode 100644 index 0000000..e633cb6 --- /dev/null +++ b/inference_codes/cmsis_cnn/optimized/ibex_cnn_params.h @@ -0,0 +1,30 @@ +#ifndef IBEX_CNN_PARAMS_H +#define IBEX_CNN_PARAMS_H + +#define MV1 1953789044 +#define MV2 1229539657 +#define MV3 1212696648 +#define MV4 1330597711 + +#define SV1 2164392961 +#define SV2 2299667521 +#define SV3 1488020161 +#define SV4 1623294721 + +static const int SB1[8] = { + 812696004, 946880900, 1079034308, 946913796, 945865156, 1081139524, 946930052, 545309060 +}; + +static const int SB2[8] = { + 945873216, 945832320, 945865152, 944816576, 674283904, 543211776, 945873280, 944824704 +}; + +static const int SB3[16] = { + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 +}; + +static const int SB4[3] = { + 3, 3, 3 +}; + +#endif /* IBEX_CNN_PARAMS_H */ diff --git a/inference_codes/cmsis_cnn/optimized/ibex_inputs.h b/inference_codes/cmsis_cnn/optimized/ibex_inputs.h new file mode 100644 index 0000000..02c4711 --- /dev/null +++ b/inference_codes/cmsis_cnn/optimized/ibex_inputs.h @@ -0,0 +1,3144 @@ +#ifndef IBEX_INPUTS_H +#define IBEX_INPUTS_H + +static const int input[32][32][1][1] = { + { + { + {2694944512} + }, + { + {2897780480} + }, + { + {3200691200} + }, + { + {3790394368} + }, + { + {3201083904} + }, + { + {2998968576} + }, + { + {3133647360} + }, + { + {3234574336} + }, + { + {3184046080} + }, + { + {3049434112} + }, + { + {3133649920} + }, + { + {3335699968} + }, + { + {3386227456} + }, + { + {3318787840} + }, + { + {3184043264} + }, + { + {3352408576} + }, + { + {3655452416} + }, + { + {3453336832} + }, + { + {3066078720} + }, + { + {3201019648} + }, + { + {3874544128} + }, + { + {4026197760} + }, + { + {3453666304} + }, + { + {3790528000} + }, + { + {3706181888} + }, + { + {3049433600} + }, + { + {3100027136} + }, + { + {3032590592} + }, + { + {2847253248} + }, + { + {2796790784} + }, + { + {2746196480} + }, + { + {2779553536} + } + }, + { + { + {2628031744} + }, + { + {3032523776} + }, + { + {3150358784} + }, + { + {3823948288} + }, + { + {3200820224} + }, + { + {2914490368} + }, + { + {3015548672} + }, + { + {3150358272} + }, + { + {3099895552} + }, + { + {3049498880} + }, + { + {3167400448} + }, + { + {3268326912} + }, + { + {3167136256} + }, + { + {3150160640} + }, + { + {3604790784} + }, + { + {455018752} + }, + { + {1499155456} + }, + { + {1128477440} + }, + { + {4025801728} + }, + { + {3352343296} + }, + { + {3891189504} + }, + { + {4026000128} + }, + { + {3419782912} + }, + { + {3756578560} + }, + { + {3672232448} + }, + { + {3082855680} + }, + { + {3049234176} + }, + { + {3032457472} + }, + { + {2965283328} + }, + { + {2780012288} + }, + { + {2830476544} + }, + { + {2863833344} + } + }, + { + { + {3083118592} + }, + { + {3200623872} + }, + { + {3150358016} + }, + { + {3823949568} + }, + { + {3200756736} + }, + { + {2948177664} + }, + { + {2948242432} + }, + { + {3184173056} + }, + { + {3251676160} + }, + { + {3150684672} + }, + { + {3100156416} + }, + { + {3117065216} + }, + { + {3066470144} + }, + { + {3150423296} + }, + { + {4093239040} + }, + { + {521931264} + }, + { + {504300032} + }, + { + {369686528} + }, + { + {4210679808} + }, + { + {3655386112} + }, + { + {3857570560} + }, + { + {3975472896} + }, + { + {3386097920} + }, + { + {3790331136} + }, + { + {3722893312} + }, + { + {3049236480} + }, + { + {3049301248} + }, + { + {3083052288} + }, + { + {3150620416} + }, + { + {2796789248} + }, + { + {2661849600} + }, + { + {2897387264} + } + }, + { + { + {3049496832} + }, + { + {3251284224} + }, + { + {3436425728} + }, + { + {4042644224} + }, + { + {3436491008} + }, + { + {3352470784} + }, + { + {3436816128} + }, + { + {3470632960} + }, + { + {3336020992} + }, + { + {3251807232} + }, + { + {3234768128} + }, + { + {3167331584} + }, + { + {3099894016} + }, + { + {3133317376} + }, + { + {3318130688} + }, + { + {3906124544} + }, + { + {148555520} + }, + { + {4124163328} + }, + { + {3519786752} + }, + { + {3486823680} + }, + { + {4059489024} + }, + { + {67697664} + }, + { + {3638413824} + }, + { + {3874281984} + }, + { + {3840597504} + }, + { + {3048974848} + }, + { + {3066011904} + }, + { + {3403066624} + }, + { + {3420040704} + }, + { + {2998772224} + }, + { + {2678496256} + }, + { + {2863438848} + } + }, + { + { + {3099828992} + }, + { + {3318723328} + }, + { + {3672427264} + }, + { + {4076463616} + }, + { + {3706110720} + }, + { + {3554653696} + }, + { + {3436623104} + }, + { + {3285167104} + }, + { + {3133842176} + }, + { + {3167528448} + }, + { + {3251546880} + }, + { + {3234705408} + }, + { + {3285169152} + }, + { + {3453466880} + }, + { + {3672227840} + }, + { + {3873358080} + }, + { + {3888954112} + }, + { + {3484855552} + }, + { + {3266946816} + }, + { + {3688481024} + }, + { + {67499264} + }, + { + {269551104} + }, + { + {3890862080} + }, + { + {4076200448} + }, + { + {3975076608} + }, + { + {3537287680} + }, + { + {3689002752} + }, + { + {3823940864} + }, + { + {3706236672} + }, + { + {3537678592} + }, + { + {3149900032} + }, + { + {3301223168} + } + }, + { + { + {3268717824} + }, + { + {3908554752} + }, + { + {4245480192} + }, + { + {51571200} + }, + { + {4127577088} + }, + { + {3959015680} + }, + { + {4009284352} + }, + { + {3874540544} + }, + { + {3470635264} + }, + { + {3403262976} + }, + { + {3622091776} + }, + { + {3874803712} + }, + { + {4043430912} + }, + { + {4110736640} + }, + { + {4060207360} + }, + { + {3689269248} + }, + { + {3149639680} + }, + { + {3182538240} + }, + { + {3434787584} + }, + { + {3654206976} + }, + { + {4244699392} + }, + { + {4261805056} + }, + { + {3739800832} + }, + { + {3908230656} + }, + { + {3891190528} + }, + { + {3672229888} + }, + { + {3874540288} + }, + { + {3773545472} + }, + { + {3638734592} + }, + { + {3773348864} + }, + { + {3891056640} + }, + { + {3941256704} + } + }, + { + { + {3487083776} + }, + { + {4025860608} + }, + { + {303356672} + }, + { + {438165504} + }, + { + {337041664} + }, + { + {303356928} + }, + { + {269605632} + }, + { + {235984384} + }, + { + {185585408} + }, + { + {151899648} + }, + { + {151704064} + }, + { + {185587712} + }, + { + {303620096} + }, + { + {354149120} + }, + { + {84531200} + }, + { + {3587489536} + }, + { + {3031544320} + }, + { + {3031345920} + }, + { + {2997329920} + }, + { + {3519725056} + }, + { + {252705280} + }, + { + {387907328} + }, + { + {4245281536} + }, + { + {101769216} + }, + { + {169009920} + }, + { + {135258112} + }, + { + {34264576} + }, + { + {3874536448} + }, + { + {3504189184} + }, + { + {3942042112} + }, + { + {17623040} + }, + { + {4261732608} + } + }, + { + { + {17423872} + }, + { + {101835776} + }, + { + {235464448} + }, + { + {706739712} + }, + { + {117562112} + }, + { + {134800896} + }, + { + {286650368} + }, + { + {236383488} + }, + { + {219606272} + }, + { + {186051840} + }, + { + {118745344} + }, + { + {152366080} + }, + { + {186052608} + }, + { + {152497152} + }, + { + {4143371776} + }, + { + {3334386688} + }, + { + {2745279232} + }, + { + {2711461632} + }, + { + {2946604544} + }, + { + {3805200896} + }, + { + {420412672} + }, + { + {303825664} + }, + { + {4094025984} + }, + { + {4161463552} + }, + { + {1175296} + }, + { + {4279234048} + }, + { + {4245482240} + }, + { + {4110541312} + }, + { + {4009286912} + }, + { + {4161137152} + }, + { + {4262261760} + }, + { + {4278907904} + } + }, + { + { + {252704000} + }, + { + {320471040} + }, + { + {909384960} + }, + { + {1430399744} + }, + { + {487124992} + }, + { + {200597504} + }, + { + {773257984} + }, + { + {807337984} + }, + { + {471531264} + }, + { + {202832128} + }, + { + {34663424} + }, + { + {101707776} + }, + { + {202503168} + }, + { + {151643904} + }, + { + {4276801792} + }, + { + {3434655744} + }, + { + {2661195520} + }, + { + {2543557120} + }, + { + {3266225152} + }, + { + {451269888} + }, + { + {890371072} + }, + { + {236189696} + }, + { + {3993100288} + }, + { + {4009943808} + }, + { + {4110870528} + }, + { + {4161202432} + }, + { + {4278906368} + }, + { + {101642496} + }, + { + {185659392} + }, + { + {67824128} + }, + { + {649472} + }, + { + {17230080} + } + }, + { + { + {235209728} + }, + { + {370150656} + }, + { + {1430730240} + }, + { + {1463756032} + }, + { + {554167808} + }, + { + {284219392} + }, + { + {940763904} + }, + { + {1244134400} + }, + { + {1278414336} + }, + { + {942346240} + }, + { + {403833088} + }, + { + {252444672} + }, + { + {369820160} + }, + { + {250537216} + }, + { + {3787635200} + }, + { + {2997199360} + }, + { + {2846139392} + }, + { + {3199511808} + }, + { + {4006526208} + }, + { + {367711744} + }, + { + {251325696} + }, + { + {101252608} + }, + { + {17037312} + }, + { + {62976} + }, + { + {67302912} + }, + { + {134674944} + }, + { + {151452416} + }, + { + {151452160} + }, + { + {168360704} + }, + { + {151582976} + }, + { + {151582720} + }, + { + {168162560} + } + }, + { + { + {3722438912} + }, + { + {3840075520} + }, + { + {941889024} + }, + { + {806945536} + }, + { + {4091332864} + }, + { + {4074160384} + }, + { + {806151680} + }, + { + {1412038912} + }, + { + {1546716416} + }, + { + {1378551296} + }, + { + {806616576} + }, + { + {66120192} + }, + { + {3873036800} + }, + { + {3653880320} + }, + { + {3384458496} + }, + { + {3283269632} + }, + { + {3552294400} + }, + { + {4107190272} + }, + { + {4140678400} + }, + { + {3670523136} + }, + { + {3772703744} + }, + { + {3857117440} + }, + { + {3974951424} + }, + { + {4160026880} + }, + { + {4210292992} + }, + { + {4041994496} + }, + { + {3974884864} + }, + { + {4008636416} + }, + { + {4143248896} + }, + { + {4227398144} + }, + { + {50265344} + }, + { + {184746240} + } + }, + { + { + {3671778048} + }, + { + {3974227200} + }, + { + {689046528} + }, + { + {587921920} + }, + { + {4040541184} + }, + { + {4141400064} + }, + { + {906814208} + }, + { + {1411972096} + }, + { + {1597377280} + }, + { + {1681856256} + }, + { + {1361906432} + }, + { + {857012480} + }, + { + {352054528} + }, + { + {4090941184} + }, + { + {3737041920} + }, + { + {4124168960} + }, + { + {300277504} + }, + { + {4073505536} + }, + { + {3182078464} + }, + { + {3098654208} + }, + { + {3587299328} + }, + { + {3705332480} + }, + { + {3823364352} + }, + { + {4092523008} + }, + { + {4109366272} + }, + { + {4109564160} + }, + { + {4210687488} + }, + { + {4193843456} + }, + { + {4261083904} + }, + { + {83886336} + }, + { + {168035072} + }, + { + {134085376} + } + }, + { + { + {3688225792} + }, + { + {4142393088} + }, + { + {234481664} + }, + { + {4091531520} + }, + { + {3822308352} + }, + { + {4024093696} + }, + { + {839443200} + }, + { + {1361377280} + }, + { + {1361641728} + }, + { + {1328285440} + }, + { + {1311706112} + }, + { + {1648762112} + }, + { + {1480333056} + }, + { + {553509120} + }, + { + {4006527488} + }, + { + {3552956416} + }, + { + {3166359296} + }, + { + {2980755968} + }, + { + {3316758016} + }, + { + {3787636480} + }, + { + {3686776576} + }, + { + {3182408192} + }, + { + {2930618112} + }, + { + {3671578368} + }, + { + {218497792} + }, + { + {184877312} + }, + { + {117702912} + }, + { + {67305472} + }, + { + {50265344} + }, + { + {184943616} + }, + { + {370084864} + }, + { + {336069888} + } + }, + { + { + {3587298304} + }, + { + {3991068928} + }, + { + {3688023552} + }, + { + {3485909248} + }, + { + {3738885120} + }, + { + {3789150208} + }, + { + {166516224} + }, + { + {755293952} + }, + { + {974186752} + }, + { + {1429211904} + }, + { + {1833839104} + }, + { + {1985359360} + }, + { + {1698765568} + }, + { + {637395456} + }, + { + {3855271424} + }, + { + {3216953856} + }, + { + {2796405760} + }, + { + {3165302528} + }, + { + {4140217600} + }, + { + {299417856} + }, + { + {4241473536} + }, + { + {3434524928} + }, + { + {2778899200} + }, + { + {3250371328} + }, + { + {302249984} + }, + { + {1060052992} + }, + { + {588778752} + }, + { + {420745216} + }, + { + {488117248} + }, + { + {639572480} + }, + { + {723655680} + }, + { + {672929280} + } + }, + { + { + {807933952} + }, + { + {656083456} + }, + { + {4193377536} + }, + { + {369949952} + }, + { + {453902848} + }, + { + {689639680} + }, + { + {891357696} + }, + { + {755688960} + }, + { + {1243543040} + }, + { + {1715213056} + }, + { + {1917723648} + }, + { + {1968252672} + }, + { + {1749162752} + }, + { + {637724160} + }, + { + {3721120000} + }, + { + {3031877888} + }, + { + {2930423552} + }, + { + {3518082048} + }, + { + {4022514688} + }, + { + {3753751296} + }, + { + {3198854400} + }, + { + {2812189952} + }, + { + {2795478272} + }, + { + {3299911424} + }, + { + {4293119744} + }, + { + {1193939456} + }, + { + {1177558784} + }, + { + {824581376} + }, + { + {824712960} + }, + { + {993076992} + }, + { + {976233984} + }, + { + {975970816} + } + }, + { + { + {336718336} + }, + { + {303294720} + }, + { + {320006912} + }, + { + {454619136} + }, + { + {370141696} + }, + { + {622654976} + }, + { + {673248000} + }, + { + {571202816} + }, + { + {1243608064} + }, + { + {1698172416} + }, + { + {1883906304} + }, + { + {1782980352} + }, + { + {1631195904} + }, + { + {519823104} + }, + { + {3502423808} + }, + { + {2947859456} + }, + { + {3216358400} + }, + { + {4207721216} + }, + { + {686213888} + }, + { + {501467648} + }, + { + {3955667456} + }, + { + {3417613056} + }, + { + {4023630336} + }, + { + {452120064} + }, + { + {687920640} + }, + { + {991029504} + }, + { + {1176699648} + }, + { + {1177885184} + }, + { + {1110841600} + }, + { + {1262363392} + }, + { + {1380396288} + }, + { + {1380265216} + } + }, + { + { + {286187776} + }, + { + {370599680} + }, + { + {370534400} + }, + { + {387377408} + }, + { + {353494016} + }, + { + {184998144} + }, + { + {286187008} + }, + { + {420010496} + }, + { + {1041689344} + }, + { + {1580271104} + }, + { + {1715146752} + }, + { + {1496187648} + }, + { + {1294071040} + }, + { + {519558144} + }, + { + {3653746176} + }, + { + {3015033088} + }, + { + {3317415168} + }, + { + {64667904} + }, + { + {770952192} + }, + { + {737462784} + }, + { + {687262208} + }, + { + {687328000} + }, + { + {838848768} + }, + { + {1024187136} + }, + { + {956945664} + }, + { + {923259648} + }, + { + {822664192} + }, + { + {521135104} + }, + { + {320005120} + }, + { + {336848128} + }, + { + {420866560} + }, + { + {420603904} + } + }, + { + { + {723383552} + }, + { + {908722176} + }, + { + {892011008} + }, + { + {858259200} + }, + { + {841284352} + }, + { + {656011520} + }, + { + {437250048} + }, + { + {621996544} + }, + { + {1058730240} + }, + { + {1327757056} + }, + { + {1394996992} + }, + { + {1378219264} + }, + { + {1142351360} + }, + { + {519425536} + }, + { + {3788292096} + }, + { + {3048521472} + }, + { + {3536307456} + }, + { + {519558400} + }, + { + {1125113600} + }, + { + {990500864} + }, + { + {822136832} + }, + { + {603046656} + }, + { + {653641472} + }, + { + {1024252928} + }, + { + {1125243904} + }, + { + {939970560} + }, + { + {586663680} + }, + { + {352572416} + }, + { + {437839616} + }, + { + {522054400} + }, + { + {589294592} + }, + { + {504817152} + } + }, + { + { + {1177489408} + }, + { + {1244926976} + }, + { + {1295522048} + }, + { + {1362631168} + }, + { + {1379342336} + }, + { + {1328879616} + }, + { + {1127027200} + }, + { + {1076299776} + }, + { + {1025045504} + }, + { + {991028480} + }, + { + {1125705728} + }, + { + {1193011968} + }, + { + {805557248} + }, + { + {115325184} + }, + { + {3586307840} + }, + { + {3031612416} + }, + { + {3485580544} + }, + { + {334152704} + }, + { + {855361792} + }, + { + {586006016} + }, + { + {232698624} + }, + { + {115193600} + }, + { + {367838208} + }, + { + {771805952} + }, + { + {1041095680} + }, + { + {872665344} + }, + { + {586729728} + }, + { + {790162944} + }, + { + {992674816} + }, + { + {992740096} + }, + { + {1009779712} + }, + { + {942407936} + } + }, + { + { + {958663936} + }, + { + {1026036224} + }, + { + {1076696320} + }, + { + {1093407744} + }, + { + {1127093760} + }, + { + {1143870976} + }, + { + {1127094016} + }, + { + {1110119680} + }, + { + {857078272} + }, + { + {603838720} + }, + { + {1007674112} + }, + { + {872929280} + }, + { + {165656320} + }, + { + {3821184512} + }, + { + {3451630080} + }, + { + {3098589184} + }, + { + {3333795584} + }, + { + {4191400448} + }, + { + {266451200} + }, + { + {216384512} + }, + { + {469820160} + }, + { + {790231808} + }, + { + {351984896} + }, + { + {4225152256} + }, + { + {519161600} + }, + { + {754632960} + }, + { + {569623808} + }, + { + {941291776} + }, + { + {1261704704} + }, + { + {1312167680} + }, + { + {1312298752} + }, + { + {1211306752} + } + }, + { + { + {1059722752} + }, + { + {1177689856} + }, + { + {1177820672} + }, + { + {1160911616} + }, + { + {1160845824} + }, + { + {1127160064} + }, + { + {1127160064} + }, + { + {1127094528} + }, + { + {1093078528} + }, + { + {705028608} + }, + { + {940236032} + }, + { + {771608320} + }, + { + {4208375808} + }, + { + {3619729152} + }, + { + {3502093568} + }, + { + {3350903040} + }, + { + {3755067648} + }, + { + {318366208} + }, + { + {722531840} + }, + { + {1008995840} + }, + { + {1144002816} + }, + { + {1127356928} + }, + { + {874580224} + }, + { + {116315648} + }, + { + {4006456576} + }, + { + {417971200} + }, + { + {619955712} + }, + { + {890829312} + }, + { + {1228414720} + }, + { + {1261969408} + }, + { + {1278746112} + }, + { + {1211373312} + } + }, + { + { + {1042814464} + }, + { + {1076500992} + }, + { + {1043076864} + }, + { + {1026233856} + }, + { + {1026233856} + }, + { + {1043077120} + }, + { + {1059919872} + }, + { + {1026233856} + }, + { + {1076498944} + }, + { + {1092680960} + }, + { + {1142285824} + }, + { + {822268928} + }, + { + {587524352} + }, + { + {234613760} + }, + { + {4007382528} + }, + { + {3956919552} + }, + { + {436927488} + }, + { + {1127358464} + }, + { + {1161110016} + }, + { + {1177887232} + }, + { + {1177886976} + }, + { + {1177886976} + }, + { + {1160978176} + }, + { + {941952512} + }, + { + {537586176} + }, + { + {823190272} + }, + { + {873060096} + }, + { + {789505536} + }, + { + {1244994048} + }, + { + {1228415744} + }, + { + {1211572992} + }, + { + {1144068608} + } + }, + { + { + {773392384} + }, + { + {908070912} + }, + { + {942019328} + }, + { + {975705344} + }, + { + {1009391360} + }, + { + {1043142912} + }, + { + {1026299904} + }, + { + {1009456896} + }, + { + {1093539840} + }, + { + {1210648064} + }, + { + {1209789184} + }, + { + {1007805440} + }, + { + {1042416640} + }, + { + {1043076608} + }, + { + {942019072} + }, + { + {958730496} + }, + { + {1009325312} + }, + { + {1059985920} + }, + { + {1144200704} + }, + { + {1177821184} + }, + { + {1194664192} + }, + { + {1194532864} + }, + { + {1177755392} + }, + { + {1228218112} + }, + { + {1447241728} + }, + { + {1497572352} + }, + { + {654629888} + }, + { + {553308672} + }, + { + {1362366720} + }, + { + {1211440640} + }, + { + {1110647040} + }, + { + {1076763648} + } + }, + { + { + {908202496} + }, + { + {1009325312} + }, + { + {992614400} + }, + { + {1026234624} + }, + { + {1043012096} + }, + { + {1076698112} + }, + { + {1110383872} + }, + { + {1093737984} + }, + { + {1093672448} + }, + { + {1176831488} + }, + { + {1159260672} + }, + { + {957540096} + }, + { + {1008994304} + }, + { + {1127291904} + }, + { + {1127291904} + }, + { + {1127226112} + }, + { + {1110448896} + }, + { + {1110514688} + }, + { + {1144135424} + }, + { + {1160978432} + }, + { + {1177755136} + }, + { + {1160977920} + }, + { + {1144200704} + }, + { + {1245258240} + }, + { + {1581985792} + }, + { + {1396646656} + }, + { + {335141120} + }, + { + {418961152} + }, + { + {1176961792} + }, + { + {1144133888} + }, + { + {1093803008} + }, + { + {1059985920} + } + }, + { + { + {891293952} + }, + { + {975639296} + }, + { + {975771136} + }, + { + {992548864} + }, + { + {1026169088} + }, + { + {1043012096} + }, + { + {1059789056} + }, + { + {1043077632} + }, + { + {1043077376} + }, + { + {941094656} + }, + { + {856153088} + }, + { + {772465152} + }, + { + {908199936} + }, + { + {1043274752} + }, + { + {1026432000} + }, + { + {908662784} + }, + { + {807670784} + }, + { + {773985024} + }, + { + {807605504} + }, + { + {925374464} + }, + { + {992745984} + }, + { + {959191552} + }, + { + {959256576} + }, + { + {1245323008} + }, + { + {1514744320} + }, + { + {925307392} + }, + { + {133356544} + }, + { + {132895232} + }, + { + {773125888} + }, + { + {1009192192} + }, + { + {1093671936} + }, + { + {1059788288} + } + }, + { + { + {891293952} + }, + { + {975639040} + }, + { + {925242368} + }, + { + {925111040} + }, + { + {941954048} + }, + { + {941954048} + }, + { + {975574016} + }, + { + {975573760} + }, + { + {958796032} + }, + { + {856945152} + }, + { + {755293184} + }, + { + {789573632} + }, + { + {790498304} + }, + { + {571803648} + }, + { + {134149376} + }, + { + {3941131776} + }, + { + {3638287872} + }, + { + {3554073344} + }, + { + {3570916608} + }, + { + {3772703744} + }, + { + {3991530752} + }, + { + {4075876352} + }, + { + {100726528} + }, + { + {992811264} + }, + { + {1060182016} + }, + { + {100463616} + }, + { + {4277001472} + }, + { + {284679680} + }, + { + {386133760} + }, + { + {503836672} + }, + { + {285670144} + }, + { + {638977792} + } + }, + { + { + {874450944} + }, + { + {925110016} + }, + { + {908333312} + }, + { + {925176576} + }, + { + {975705600} + }, + { + {992482816} + }, + { + {975639808} + }, + { + {975574016} + }, + { + {1009258752} + }, + { + {1025440768} + }, + { + {1041756160} + }, + { + {806549760} + }, + { + {436861952} + }, + { + {201390080} + }, + { + {4294571520} + }, + { + {3789744128} + }, + { + {3352024320} + }, + { + {3250835200} + }, + { + {3234057984} + }, + { + {3200569344} + }, + { + {3183857664} + }, + { + {3368997120} + }, + { + {4126402816} + }, + { + {672991488} + }, + { + {285668608} + }, + { + {3822901248} + }, + { + {4260092160} + }, + { + {385671680} + }, + { + {4058174976} + }, + { + {419688192} + }, + { + {3755726336} + }, + { + {100200448} + } + }, + { + { + {958665472} + }, + { + {1009259008} + }, + { + {1009391104} + }, + { + {1009391104} + }, + { + {1009391104} + }, + { + {992548096} + }, + { + {958927872} + }, + { + {958927360} + }, + { + {1059589376} + }, + { + {1042217472} + }, + { + {1024978688} + }, + { + {975043584} + }, + { + {857737472} + }, + { + {521340160} + }, + { + {4176603904} + }, + { + {3553874432} + }, + { + {3503280384} + }, + { + {3822968064} + }, + { + {3890405376} + }, + { + {3621180672} + }, + { + {3553743360} + }, + { + {4025016832} + }, + { + {336066560} + }, + { + {622133248} + }, + { + {453769472} + }, + { + {386398208} + }, + { + {571208704} + }, + { + {48945920} + }, + { + {3755200512} + }, + { + {537654784} + }, + { + {4041660928} + }, + { + {537722368} + } + }, + { + { + {924913920} + }, + { + {1009259008} + }, + { + {1026168320} + }, + { + {1026234112} + }, + { + {992548096} + }, + { + {975705088} + }, + { + {975705088} + }, + { + {975573248} + }, + { + {1042681344} + }, + { + {974913024} + }, + { + {705358592} + }, + { + {470215936} + }, + { + {234876160} + }, + { + {4243514112} + }, + { + {4193051904} + }, + { + {100331264} + }, + { + {386595328} + }, + { + {638845696} + }, + { + {571604480} + }, + { + {369685504} + }, + { + {487455232} + }, + { + {756614144} + }, + { + {857408256} + }, + { + {739572480} + }, + { + {419819776} + }, + { + {234613504} + }, + { + {419950848} + }, + { + {116646144} + }, + { + {167570176} + }, + { + {958665472} + }, + { + {66316288} + }, + { + {706019584} + } + }, + { + { + {924979456} + }, + { + {992416000} + }, + { + {958862080} + }, + { + {941953536} + }, + { + {908333056} + }, + { + {908333056} + }, + { + {891555840} + }, + { + {723192064} + }, + { + {318959872} + }, + { + {268233216} + }, + { + {184018432} + }, + { + {167308288} + }, + { + {318961152} + }, + { + {605225216} + }, + { + {824051712} + }, + { + {908200192} + }, + { + {958531840} + }, + { + {975309056} + }, + { + {992152064} + }, + { + {1008995072} + }, + { + {1025706752} + }, + { + {1042483712} + }, + { + {1042483200} + }, + { + {1008863232} + }, + { + {941623808} + }, + { + {874383872} + }, + { + {823985408} + }, + { + {773522432} + }, + { + {790364672} + }, + { + {520746240} + }, + { + {537655296} + }, + { + {874317312} + } + }, + { + { + {924847872} + }, + { + {958730240} + }, + { + {925044480} + }, + { + {941822208} + }, + { + {958664960} + }, + { + {958730752} + }, + { + {1009193984} + }, + { + {1059590912} + }, + { + {941755648} + }, + { + {739705600} + }, + { + {689242624} + }, + { + {908200960} + }, + { + {1076499456} + }, + { + {1110119680} + }, + { + {1110054144} + }, + { + {1109988096} + }, + { + {1093210624} + }, + { + {1076433664} + }, + { + {1059590912} + }, + { + {1076237056} + }, + { + {1092948736} + }, + { + {1093014016} + }, + { + {1076301824} + }, + { + {1076301824} + }, + { + {1076170496} + }, + { + {1076170240} + }, + { + {1093143552} + }, + { + {1093144320} + }, + { + {1093144320} + }, + { + {1093275648} + }, + { + {1093209344} + }, + { + {1008929792} + } + }, + { + { + {722139136} + }, + { + {739376640} + }, + { + {756087808} + }, + { + {772734208} + }, + { + {772734208} + }, + { + {789577216} + }, + { + {806420224} + }, + { + {823262976} + }, + { + {806420224} + }, + { + {806485760} + }, + { + {806485760} + }, + { + {789576960} + }, + { + {772799488} + }, + { + {806419968} + }, + { + {840040448} + }, + { + {840105472} + }, + { + {840170752} + }, + { + {840171008} + }, + { + {840170752} + }, + { + {840171008} + }, + { + {856948480} + }, + { + {857013760} + }, + { + {823328000} + }, + { + {806484992} + }, + { + {806484736} + }, + { + {823261952} + }, + { + {823261952} + }, + { + {840104960} + }, + { + {857013760} + }, + { + {857013760} + }, + { + {873790976} + }, + { + {839842304} + } + } +}; + + +#endif /* IBEX_INPUTS_H */ diff --git a/inference_codes/cmsis_cnn/original/Makefile b/inference_codes/cmsis_cnn/original/Makefile new file mode 100644 index 0000000..fd59fe9 --- /dev/null +++ b/inference_codes/cmsis_cnn/original/Makefile @@ -0,0 +1,15 @@ +# Copyright lowRISC contributors. +# Licensed under the Apache License, Version 2.0, see LICENSE for details. +# SPDX-License-Identifier: Apache-2.0 +# +# Generate a baremetal application + +# Name of the program $(PROGRAM).c will be added as a source file + +PROGRAM = cmsis_cnn +PROGRAM_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) +# Any extra source files to include in the build. Use the upper case .S +# extension for assembly files +EXTRA_SRCS := + +include ${PROGRAM_DIR}/../../common/common.mk diff --git a/inference_codes/cmsis_cnn/original/cmsis_cnn.c b/inference_codes/cmsis_cnn/original/cmsis_cnn.c new file mode 100644 index 0000000..88cafec --- /dev/null +++ b/inference_codes/cmsis_cnn/original/cmsis_cnn.c @@ -0,0 +1,147 @@ +#include "simple_system_common.h" +#include "cnn_weights.h" +#include "fully_connected.h" +#include "ibex_cnn_params.h" +#include "ibex_inputs.h" +#include "conv2d.h" + +#define IMG_SZ 32 +#define NUM_FIL0 3 + +#define FILTER1 5 +#define FILTER2 5 +#define FILTER3 5 + +#define NUM_FIL1 32 +#define NUM_FIL2 32 +#define NUM_FIL3 64 + +#define STRIDE1 1 +#define STRIDE2 1 +#define STRIDE3 1 + +#define PAD_TB1 2 +#define PAD_LR1 2 + +#define PAD_TB2 2 +#define PAD_LR2 2 + +#define PAD_TB3 2 +#define PAD_LR3 2 + +#define POOL_STRIDE1 2 +#define POOL_SIZE1 2 + +#define POOL_STRIDE2 2 +#define POOL_SIZE2 2 + +#define POOL_STRIDE3 2 +#define POOL_SIZE3 2 + +#define OUT_DIM 10 + +#define SAMPLES 1 +int outs[SAMPLES][OUT_DIM]; + +void cmsis_cnn() { + + int dout1 = NUM_FIL1; + int hout1 = ((IMG_SZ - FILTER1 + 2 * PAD_TB1)/STRIDE1) + 1; + int wout1 = ((IMG_SZ - FILTER1 + 2 * PAD_LR1)/STRIDE1) + 1; + + int dout2 = dout1; + int hout2 = hout1/POOL_STRIDE1; + int wout2 = wout1/POOL_STRIDE1; + + int dout3 = NUM_FIL2; + int hout3 = ((hout2 - FILTER2+ 2 * PAD_TB2)/STRIDE2)+1; + int wout3 = ((wout2 - FILTER2+ 2 * PAD_LR2)/STRIDE2)+1; + + int dout4 = dout3; + int hout4 = hout3/POOL_STRIDE2; + int wout4 = wout3/POOL_STRIDE2; + + int dout5 = NUM_FIL3; + int hout5 = ((hout4 - FILTER3+ 2 * PAD_TB3)/STRIDE3)+1; + int wout5 = ((wout4 - FILTER3+ 2 * PAD_LR3)/STRIDE3)+1; + + int dout6 = dout5; + int hout6 = hout5/POOL_STRIDE3; + int wout6 = wout5/POOL_STRIDE3; + + int flatten_dim = dout6 * hout6 * wout6; + + int in[IMG_SZ][IMG_SZ][NUM_FIL0]; + int inp_dim[3] = {IMG_SZ, IMG_SZ, NUM_FIL0}; + + int out1[hout1][wout1][dout1]; + int pad_1[4] = {PAD_TB1, PAD_TB1, PAD_LR1, PAD_LR1}; + int outp_dim1[3] = {hout1, wout1, dout1}; + int f_dim1[4] = {NUM_FIL1, FILTER1, FILTER1, NUM_FIL0}; + + int out2[hout2][wout2][dout2]; + int outp_dim2[3] = {hout2, wout2, dout2}; + + int out3[hout3][wout3][dout3]; + int pad_3[4] = {PAD_TB2, PAD_TB2, PAD_LR2, PAD_LR2}; + int outp_dim3[3] = {hout3, wout3, dout3}; + int f_dim3[4] = {NUM_FIL2, FILTER2, FILTER2, NUM_FIL1}; + + int out4[hout4][wout4][dout4]; + int outp_dim4[3] = {hout4, wout4, dout4}; + + int out5[hout5][wout5][dout5]; + int pad_5[4] = {PAD_TB3, PAD_TB3, PAD_LR3, PAD_LR3}; + int outp_dim5[3] = {hout5, wout5, dout5}; + int f_dim5[4] = {NUM_FIL3, FILTER3, FILTER3, NUM_FIL2}; + + int out6[hout6][wout6][dout6]; + int outp_dim6[3] = {hout6, wout6, dout6}; + + int out7[flatten_dim]; + + + int out[OUT_DIM]; + + for (int iter = 0; iter < SAMPLES; iter++){ + + for(int i = 0; i < IMG_SZ; i++){ + for(int j = 0; j < IMG_SZ; j++){ + for(int k = 0; k < NUM_FIL0; k++){ + in[i][j][k] = input[i][j][k][iter]; + } + } + } + + pcount_enable(1); + + conv2(inp_dim, f_dim1, outp_dim1, in, F1, B1, out1, STRIDE1, pad_1, SB1, MV1, SV1); + maxpool2(outp_dim1, outp_dim2, out1, out2, POOL_SIZE1, POOL_STRIDE1); + + conv2(outp_dim2, f_dim3, outp_dim3, out2, F2, B2, out3, STRIDE2, pad_3, SB2, MV2, SV2); + maxpool2(outp_dim3, outp_dim4, out3, out4, POOL_SIZE2, POOL_STRIDE2); + + conv2(outp_dim4, f_dim5, outp_dim5, out4, F3, B3, out5, STRIDE3, pad_5, SB3, MV3, SV3); + maxpool2(outp_dim5, outp_dim6, out5, out6, POOL_SIZE3, POOL_STRIDE3); + + flatten(outp_dim6, out6, out7); + + mlp_layer(out7, out, flatten_dim, OUT_DIM, W1, B4, SB4, MV4, SV4); + pcount_enable(0); + + puts("Output Layer Values:\n"); + for(int i = 0; i < OUT_DIM; i++) { + puthex(out[i]); + puts("\n"); + } + } +} + +int main(void) { + + pcount_enable(0); + + cmsis_cnn(); + + return 0; +} diff --git a/inference_codes/cmsis_cnn/original/cnn_weights.h b/inference_codes/cmsis_cnn/original/cnn_weights.h new file mode 100644 index 0000000..c891980 --- /dev/null +++ b/inference_codes/cmsis_cnn/original/cnn_weights.h @@ -0,0 +1,4779 @@ +#ifndef CNN_WEIGHTS_H +#define CNN_WEIGHTS_H + +static const int F1[32][5][5][3] = { + { + { + {-64, -22, -11}, + {10, 66, 46}, + {8, -63, 87}, + {25, 27, 90}, + {-23, -19, 57} + }, + { + {60, -59, -45}, + {-24, 79, 70}, + {-29, -62, 38}, + {-21, -47, 88}, + {32, -36, 19} + }, + { + {63, 70, -24}, + {-13, 52, 68}, + {60, 33, 19}, + {-43, 0, -41}, + {-59, 48, 12} + }, + { + {-21, 18, -15}, + {-13, -8, 7}, + {24, -9, 4}, + {-21, -44, 6}, + {-38, 15, 44} + }, + { + {44, 43, 78}, + {70, -39, 61}, + {-9, -47, 5}, + {-61, -32, 86}, + {-12, -15, 33} + } + }, + { + { + {118, 42, -60}, + {75, 50, -28}, + {77, 60, 20}, + {77, 74, -22}, + {102, 63, 53} + }, + { + {37, -70, -7}, + {9, 41, -71}, + {81, 56, 43}, + {41, 39, 73}, + {-6, 20, 61} + }, + { + {12, -6, 33}, + {31, -53, 18}, + {-22, 41, 27}, + {-14, -102, 13}, + {-41, -47, -18} + }, + { + {-41, 10, 35}, + {-17, -72, -37}, + {-10, -90, -32}, + {-45, -9, -97}, + {-97, -101, -92} + }, + { + {39, -14, -32}, + {-65, -87, 20}, + {-1, -55, -38}, + {-52, -59, 37}, + {-5, -53, 54} + } + }, + { + { + {-41, -60, 19}, + {72, 35, 77}, + {-15, -37, 41}, + {-66, -49, -91}, + {-109, -47, -70} + }, + { + {69, -32, 52}, + {40, 28, 17}, + {17, -13, -28}, + {-95, -22, 22}, + {-99, 23, -33} + }, + { + {-6, -27, 45}, + {-12, 51, -41}, + {-69, -51, 56}, + {-29, -91, -53}, + {16, -46, -60} + }, + { + {76, 60, 47}, + {16, 19, 86}, + {-30, 20, -40}, + {-52, 41, -5}, + {-10, -11, -40} + }, + { + {43, 94, 70}, + {-4, 66, 64}, + {-21, 65, -61}, + {-13, 66, 14}, + {5, 46, 70} + } + }, + { + { + {10, -29, 76}, + {59, -57, 76}, + {-49, -15, -23}, + {69, -64, -39}, + {-61, 59, 31} + }, + { + {78, 25, 82}, + {58, -6, 93}, + {-21, 44, 41}, + {83, -20, -50}, + {-10, 27, 81} + }, + { + {21, 60, 65}, + {51, 25, -31}, + {-39, -15, -15}, + {0, -14, -36}, + {27, 50, -36} + }, + { + {53, 61, -1}, + {50, 12, 59}, + {63, -6, 16}, + {2, 54, 48}, + {40, 32, -45} + }, + { + {36, -39, 59}, + {61, -49, 0}, + {-36, 69, 22}, + {22, 73, 12}, + {36, 27, 74} + } + }, + { + { + {-54, 38, -29}, + {-40, -12, -4}, + {79, 14, 76}, + {5, 71, 43}, + {50, -39, -24} + }, + { + {24, 10, -80}, + {39, -44, -17}, + {77, -62, 74}, + {78, -34, 79}, + {69, 71, 76} + }, + { + {37, -44, -81}, + {66, -74, -24}, + {-47, -43, 71}, + {39, 33, 53}, + {-28, 41, 3} + }, + { + {-19, -59, -60}, + {-69, 46, 64}, + {-2, 50, -39}, + {53, -56, -41}, + {32, 4, 1} + }, + { + {-48, -19, -43}, + {54, 52, 64}, + {4, -22, 79}, + {25, 77, -45}, + {-48, -2, 19} + } + }, + { + { + {-25, 47, -41}, + {34, -65, -49}, + {-67, -2, -47}, + {63, -35, -35}, + {30, -77, -7} + }, + { + {-18, -38, -11}, + {42, -48, 28}, + {-21, -48, 32}, + {33, -87, -27}, + {-80, -93, 1} + }, + { + {69, -57, 58}, + {22, -34, -6}, + {-73, -27, -69}, + {-41, -45, -41}, + {-56, 0, -58} + }, + { + {11, -80, -32}, + {-36, 45, 58}, + {24, -49, 27}, + {14, -52, -44}, + {8, 38, -68} + }, + { + {-2, -14, -67}, + {-32, -12, -31}, + {-17, -53, 53}, + {-75, -12, 55}, + {23, -56, -20} + } + }, + { + { + {26, -41, -33}, + {17, 39, 46}, + {67, 7, 18}, + {74, -64, -72}, + {6, -30, -45} + }, + { + {69, -43, -75}, + {-12, -26, -50}, + {15, 78, 37}, + {-67, -18, 12}, + {49, -50, -54} + }, + { + {79, -13, -33}, + {-32, -45, 54}, + {80, 54, -10}, + {-29, -29, -55}, + {-75, 18, -89} + }, + { + {-1, -49, -10}, + {70, 66, -29}, + {66, -29, 6}, + {-60, -20, 71}, + {46, 61, -78} + }, + { + {34, -11, -40}, + {24, -66, -1}, + {-40, -38, 45}, + {65, 76, -42}, + {17, 76, 49} + } + }, + { + { + {12, 22, -38}, + {34, -26, 85}, + {-28, 62, 71}, + {-8, -49, -41}, + {-22, -76, -34} + }, + { + {13, 59, -42}, + {74, 76, 76}, + {60, -24, -25}, + {-31, -62, -45}, + {-22, -68, -21} + }, + { + {40, -31, 59}, + {-24, 32, -34}, + {-32, 85, 43}, + {-43, 21, 12}, + {54, -41, -40} + }, + { + {68, -17, 4}, + {14, 25, -21}, + {5, 53, 84}, + {1, -33, 78}, + {-21, 25, 31} + }, + { + {60, 28, 33}, + {66, 35, -2}, + {-18, -25, -58}, + {45, 52, 2}, + {-15, 35, 7} + } + }, + { + { + {70, 72, -63}, + {-66, 17, 56}, + {0, -56, 77}, + {-26, 57, 65}, + {-37, -39, 48} + }, + { + {-69, -1, 5}, + {76, -54, 27}, + {70, 77, -18}, + {19, 3, 66}, + {29, 32, 17} + }, + { + {-78, -2, 5}, + {-2, 36, -27}, + {61, -49, -47}, + {-51, -46, 18}, + {-20, -66, 38} + }, + { + {51, -37, -74}, + {54, -58, 48}, + {33, -59, -61}, + {66, -81, 23}, + {17, -28, 33} + }, + { + {53, 14, -74}, + {30, -47, 60}, + {22, -86, 3}, + {70, -10, -49}, + {-60, 42, -14} + } + }, + { + { + {-50, 62, 70}, + {-65, -70, -57}, + {-20, 7, -83}, + {-22, 70, 73}, + {-55, -17, 8} + }, + { + {-8, 15, -34}, + {35, 18, 54}, + {90, 41, 68}, + {-11, 30, -27}, + {33, -46, -27} + }, + { + {-71, 5, -46}, + {41, 64, -57}, + {15, 21, 59}, + {81, -1, -62}, + {66, 94, 65} + }, + { + {-40, 72, -55}, + {59, 34, -52}, + {-36, -56, -21}, + {33, -63, -1}, + {-1, -11, -79} + }, + { + {-71, 54, 6}, + {33, -65, -28}, + {-2, 55, -23}, + {1, 1, -66}, + {-39, 0, -1} + } + }, + { + { + {-28, -20, 58}, + {25, -54, 3}, + {-63, 36, 82}, + {19, 77, 34}, + {-32, 7, -3} + }, + { + {68, 79, 74}, + {45, -67, -29}, + {-75, 75, 72}, + {-18, -33, 86}, + {70, 33, 14} + }, + { + {-37, -57, -4}, + {55, -66, 83}, + {-60, -51, 19}, + {48, 60, 36}, + {-76, -43, 64} + }, + { + {70, 3, 76}, + {19, 7, 76}, + {-63, 16, 88}, + {42, -9, 79}, + {12, 30, -25} + }, + { + {67, 60, -16}, + {-16, -65, -17}, + {24, -61, -25}, + {-4, 57, -53}, + {25, 70, 48} + } + }, + { + { + {-15, 36, -14}, + {65, 24, -29}, + {-1, -63, -23}, + {-69, -42, -86}, + {43, 50, -26} + }, + { + {-55, -54, -45}, + {-78, 28, 2}, + {18, 72, -24}, + {7, -31, 8}, + {44, 21, -2} + }, + { + {54, -52, -60}, + {31, -64, -11}, + {37, -45, -38}, + {-26, 17, 8}, + {-45, 59, 6} + }, + { + {1, -41, -49}, + {53, -54, 46}, + {-17, -58, -73}, + {-86, 29, -12}, + {66, -63, -62} + }, + { + {-64, 13, -79}, + {-36, 39, 50}, + {16, 81, -71}, + {-3, -64, -44}, + {-40, -66, 19} + } + }, + { + { + {-68, -26, 77}, + {54, -31, 2}, + {-75, 60, 63}, + {0, 73, -5}, + {-47, -66, -27} + }, + { + {48, -48, 39}, + {81, -34, 66}, + {-16, -5, -51}, + {-5, 80, -54}, + {-65, 5, 89} + }, + { + {53, -67, -31}, + {75, -30, 3}, + {69, 19, 24}, + {43, 69, 79}, + {32, -15, 89} + }, + { + {8, -27, -19}, + {-23, 59, 55}, + {-42, -30, 30}, + {50, -37, 66}, + {-15, 20, 46} + }, + { + {-55, 59, -25}, + {55, 13, -24}, + {77, 63, 84}, + {47, 57, -35}, + {-25, -29, 28} + } + }, + { + { + {50, 87, 23}, + {54, 29, 8}, + {57, 15, -69}, + {-7, 20, 51}, + {-29, 12, -83} + }, + { + {12, 48, -57}, + {-17, 82, -9}, + {59, -11, -11}, + {32, 41, -10}, + {-61, 5, -4} + }, + { + {89, -32, 63}, + {60, -11, -44}, + {29, -7, 65}, + {37, 29, -41}, + {61, 47, 60} + }, + { + {-15, -34, 13}, + {4, -67, -53}, + {-20, -49, -85}, + {44, -33, 15}, + {-24, -75, -79} + }, + { + {76, -57, -64}, + {-30, -9, -85}, + {68, -41, -72}, + {59, -27, 5}, + {13, -14, 18} + } + }, + { + { + {-79, 20, -77}, + {-78, 3, 6}, + {-79, -26, -78}, + {-16, -58, 12}, + {29, 10, -43} + }, + { + {13, -77, 66}, + {-29, 31, 37}, + {-67, 29, -65}, + {29, -24, 34}, + {-77, 60, 70} + }, + { + {-40, -73, 28}, + {-34, 30, -27}, + {-72, -53, -72}, + {-77, 0, 5}, + {-62, -75, 50} + }, + { + {17, -15, -60}, + {41, 33, -22}, + {6, -93, -14}, + {28, 22, -52}, + {31, -51, 10} + }, + { + {-71, -61, -1}, + {-77, -67, -54}, + {-69, 9, 51}, + {-98, -1, -72}, + {2, -15, -48} + } + }, + { + { + {38, 60, -63}, + {63, -50, -90}, + {12, 3, -61}, + {58, -35, 35}, + {66, -5, 2} + }, + { + {-38, -51, 54}, + {-10, 22, -30}, + {-61, 67, -63}, + {-16, 17, -5}, + {-58, -58, 70} + }, + { + {77, 32, -48}, + {-41, -45, -85}, + {-22, -77, 19}, + {-11, -43, -24}, + {2, -43, -59} + }, + { + {-16, -45, 50}, + {-29, 21, -71}, + {-29, 29, -29}, + {-66, -20, -17}, + {35, -6, 40} + }, + { + {52, -28, -18}, + {43, 12, 18}, + {50, -76, 2}, + {-22, 50, -82}, + {-41, 46, -53} + } + }, + { + { + {-23, -94, -63}, + {-61, 3, 33}, + {-49, 44, -52}, + {-81, 43, -15}, + {46, 12, -13} + }, + { + {-7, 25, 2}, + {-64, 48, -51}, + {63, -25, -4}, + {6, 60, 85}, + {3, -47, 1} + }, + { + {-67, -27, -26}, + {11, 54, 89}, + {82, -36, 84}, + {23, 87, 90}, + {65, 73, 89} + }, + { + {-55, -26, -47}, + {24, 14, -56}, + {17, -46, 69}, + {-67, -21, -66}, + {-13, -73, -53} + }, + { + {-36, -7, -54}, + {38, 5, 44}, + {64, -57, 34}, + {-41, 31, 14}, + {-43, 76, 39} + } + }, + { + { + {-63, 28, 60}, + {7, 37, 47}, + {45, -60, 31}, + {-16, 64, 4}, + {75, 44, 47} + }, + { + {-31, 2, -15}, + {87, 15, -14}, + {54, 90, -36}, + {54, 60, 47}, + {-44, 62, 89} + }, + { + {74, -10, 52}, + {69, -59, 47}, + {20, 53, 85}, + {80, 27, -38}, + {46, 30, 90} + }, + { + {56, -44, -50}, + {35, -10, -44}, + {-22, 70, -61}, + {-39, -15, -36}, + {57, -40, 66} + }, + { + {33, 28, -64}, + {55, -20, 66}, + {-35, -12, 25}, + {29, -38, 74}, + {-66, 49, 7} + } + }, + { + { + {11, -29, -35}, + {-28, 76, -50}, + {4, -10, 24}, + {11, 37, 75}, + {10, -14, -35} + }, + { + {-24, -28, 67}, + {26, 26, 35}, + {-68, -10, 30}, + {18, 9, 14}, + {-17, -30, 35} + }, + { + {-35, 5, 25}, + {-20, -75, 69}, + {-73, 16, -68}, + {55, -61, -7}, + {-35, -54, -64} + }, + { + {8, -81, -31}, + {-93, 35, -20}, + {-54, -8, 42}, + {-93, 57, -10}, + {-85, -83, 50} + }, + { + {37, 42, 50}, + {-53, 16, 36}, + {5, 61, 2}, + {-14, -58, 71}, + {-48, 72, 90} + } + }, + { + { + {17, 58, 75}, + {-16, -29, 58}, + {20, 80, 59}, + {59, 20, -62}, + {44, 75, 13} + }, + { + {-15, -65, -38}, + {14, 11, 6}, + {25, 6, -30}, + {19, -17, 38}, + {-46, 54, -18} + }, + { + {35, -7, 31}, + {2, -44, -49}, + {-13, -81, 33}, + {45, 62, -73}, + {-20, -3, -28} + }, + { + {-56, 23, 42}, + {-77, -52, 53}, + {44, -4, 29}, + {-84, 69, -2}, + {3, 8, 11} + }, + { + {-45, 34, -6}, + {27, -81, 0}, + {-89, -23, 35}, + {-69, 24, 28}, + {-77, 25, 20} + } + }, + { + { + {-83, 56, 19}, + {10, -5, 58}, + {62, 38, -68}, + {-72, -29, -47}, + {-7, 75, 53} + }, + { + {-59, 56, 42}, + {-15, 21, -60}, + {18, 78, -61}, + {13, 67, -37}, + {-29, 64, -78} + }, + { + {-86, -17, -73}, + {-68, -51, 50}, + {34, 56, -14}, + {45, -9, 60}, + {-25, 22, -8} + }, + { + {42, 6, -47}, + {36, 65, -68}, + {69, 68, -43}, + {34, 19, 14}, + {-73, -83, 4} + }, + { + {-82, 42, -17}, + {1, 48, -32}, + {4, 75, -11}, + {-37, 39, -38}, + {-6, -71, 48} + } + }, + { + { + {63, 34, -38}, + {47, 17, -44}, + {51, -62, -82}, + {-61, -45, -17}, + {-19, -52, -67} + }, + { + {-55, 56, -6}, + {-66, -54, 11}, + {-33, 74, -16}, + {9, -67, 34}, + {36, 62, 17} + }, + { + {-58, 61, 59}, + {6, 13, 56}, + {40, 71, 37}, + {49, -53, 75}, + {5, 84, -5} + }, + { + {-58, 85, 53}, + {88, -8, -15}, + {45, 20, 28}, + {-48, 85, 67}, + {-17, -43, -33} + }, + { + {-65, 25, 38}, + {-68, -49, -70}, + {8, -62, 63}, + {-65, -33, 26}, + {6, 60, 61} + } + }, + { + { + {6, -7, 81}, + {40, 19, 71}, + {28, 10, 2}, + {-28, 59, -50}, + {-30, 18, 53} + }, + { + {-81, -44, 0}, + {-94, 34, -42}, + {-23, -69, 15}, + {-30, 41, 30}, + {-5, -54, 7} + }, + { + {43, -37, 25}, + {-36, 63, 15}, + {-79, 67, 33}, + {-86, 18, 21}, + {-12, -57, -17} + }, + { + {-33, -52, 31}, + {-38, 46, 88}, + {-69, 57, -59}, + {7, -34, 72}, + {-73, -14, 52} + }, + { + {-3, -22, -20}, + {12, -50, 55}, + {6, -26, 83}, + {-70, 21, 23}, + {-5, 68, 88} + } + }, + { + { + {48, -56, 18}, + {-10, -32, -24}, + {20, 57, 37}, + {84, 9, 0}, + {-39, -37, 62} + }, + { + {23, -76, -30}, + {-9, -88, -73}, + {-14, 13, 48}, + {-58, -56, -45}, + {58, -75, 78} + }, + { + {38, -31, 45}, + {-11, -28, 69}, + {-37, 20, -69}, + {-76, -11, -4}, + {-16, -40, 26} + }, + { + {31, -84, 20}, + {18, -93, -72}, + {-59, 17, 21}, + {46, -68, -78}, + {-36, -87, -17} + }, + { + {33, -42, 9}, + {-31, -49, 62}, + {-29, -78, 62}, + {-46, -24, -10}, + {16, 58, 46} + } + }, + { + { + {46, 70, 51}, + {-51, -24, -1}, + {32, 9, 22}, + {18, 74, 44}, + {2, -59, 10} + }, + { + {77, -37, 40}, + {-21, -15, -39}, + {79, 71, -5}, + {25, -44, 49}, + {-37, 54, 38} + }, + { + {-1, 19, -14}, + {71, 22, 84}, + {-63, 51, 30}, + {-36, 12, 61}, + {6, -23, -35} + }, + { + {-33, -27, -35}, + {13, 77, 91}, + {68, -8, 20}, + {12, -47, 30}, + {31, -17, 50} + }, + { + {36, -70, 54}, + {81, 16, 64}, + {-16, 4, -28}, + {41, -69, -40}, + {-37, -31, -34} + } + }, + { + { + {64, -46, 49}, + {-29, 42, -23}, + {30, -17, 53}, + {-9, -8, -1}, + {35, -52, -66} + }, + { + {-13, 19, 4}, + {-68, -40, -42}, + {65, -58, 34}, + {17, -73, 9}, + {11, 9, -20} + }, + { + {83, 47, 25}, + {-44, 80, 59}, + {-15, -33, -40}, + {17, -55, -4}, + {-40, -32, -108} + }, + { + {101, 87, 39}, + {80, 40, 66}, + {73, 36, -34}, + {-91, -58, 5}, + {-105, -95, -73} + }, + { + {8, -12, -3}, + {11, 93, 84}, + {67, 84, -56}, + {-91, 7, -2}, + {-95, -127, 27} + } + }, + { + { + {-2, 59, -56}, + {-63, -42, -36}, + {42, -40, -19}, + {77, -22, 13}, + {20, 34, 9} + }, + { + {-8, 26, -8}, + {48, -3, -53}, + {-28, -10, 48}, + {16, -37, 4}, + {81, 39, -18} + }, + { + {-79, 28, -9}, + {50, -32, 15}, + {26, -65, -26}, + {-4, 83, 23}, + {78, 57, -11} + }, + { + {50, -55, -89}, + {33, 28, 40}, + {45, -50, 65}, + {28, 75, -67}, + {25, -57, 11} + }, + { + {-79, -31, 28}, + {53, 87, -32}, + {-41, 18, -44}, + {44, 8, 52}, + {-62, -47, 33} + } + }, + { + { + {-75, 72, 36}, + {-28, 20, 86}, + {-60, 21, -27}, + {-9, -48, 47}, + {20, 26, 40} + }, + { + {33, 13, -49}, + {1, 8, 43}, + {-9, -68, -38}, + {-31, 69, 63}, + {21, -14, -50} + }, + { + {-29, -16, 2}, + {71, -86, -36}, + {70, -49, 84}, + {-59, -22, 22}, + {-34, -2, 56} + }, + { + {81, -57, -4}, + {32, 44, 82}, + {23, -38, 4}, + {-17, 10, 17}, + {-21, -60, 61} + }, + { + {0, -13, -47}, + {-32, 5, -77}, + {62, -27, -36}, + {-69, 24, -24}, + {36, 55, 25} + } + }, + { + { + {-44, 43, 71}, + {35, 78, 58}, + {-60, 14, -45}, + {-32, 45, 68}, + {-14, 81, 58} + }, + { + {20, 14, 9}, + {62, 16, 4}, + {15, -54, -62}, + {32, 38, 26}, + {77, 0, 70} + }, + { + {22, 49, -26}, + {-9, 70, -19}, + {74, -54, 2}, + {74, 0, -57}, + {21, -67, 26} + }, + { + {56, 29, -66}, + {10, -38, -4}, + {20, -57, -63}, + {45, -18, -11}, + {-49, 6, -37} + }, + { + {15, 27, 23}, + {-52, 53, 26}, + {-32, -28, 6}, + {29, -30, -6}, + {68, 56, 76} + } + }, + { + { + {20, -14, -9}, + {25, -13, -47}, + {-58, 48, 23}, + {-66, 46, -77}, + {84, 0, 56} + }, + { + {55, 11, -2}, + {-52, -37, 26}, + {-71, 13, 33}, + {-59, -51, -82}, + {-65, 39, -23} + }, + { + {-17, 52, -50}, + {14, -13, -60}, + {-49, 34, 53}, + {45, 49, -35}, + {73, 84, -76} + }, + { + {19, 62, -82}, + {48, 61, -94}, + {-80, 30, 37}, + {66, -48, -7}, + {68, 13, 36} + }, + { + {-69, -64, -69}, + {15, -50, -74}, + {37, -13, 63}, + {48, 91, 34}, + {42, -42, -66} + } + }, + { + { + {64, 0, 81}, + {39, 36, 78}, + {1, -10, -17}, + {63, 12, 48}, + {50, 88, -42} + }, + { + {-29, -25, -22}, + {28, -25, -57}, + {1, 55, -4}, + {19, -69, 82}, + {-64, -33, 7} + }, + { + {-47, -6, -10}, + {-5, 75, 5}, + {16, 23, 61}, + {-48, -38, 67}, + {-77, -52, -61} + }, + { + {75, -32, 67}, + {-53, -69, 17}, + {48, -21, 13}, + {15, -19, 83}, + {9, -66, 65} + }, + { + {-81, -25, 67}, + {-39, 62, 86}, + {-36, 18, 58}, + {15, -35, 69}, + {-18, -52, 60} + } + }, + { + { + {30, 56, -23}, + {22, 50, 46}, + {72, 9, 78}, + {-48, -75, -51}, + {47, 80, 68} + }, + { + {83, -57, -23}, + {-62, -27, 23}, + {-22, -43, -32}, + {-21, 12, -18}, + {-25, 73, -72} + }, + { + {42, -38, -40}, + {61, -37, -66}, + {-6, -43, -68}, + {4, -74, -33}, + {60, -38, 47} + }, + { + {-14, 3, 49}, + {-82, -41, -41}, + {-44, -72, -43}, + {42, 32, -61}, + {72, -17, 38} + }, + { + {-44, -36, 31}, + {34, 1, -78}, + {53, -84, -47}, + {83, -6, 78}, + {28, 75, -16} + } + } +}; + +static const int F2[32][5][5][32] = { + { + { + {35, -40, -37, 14, 10, -30, -50, -5, 40, 22, 36, -18, -14, -25, -1, -34, -2, 35, 0, -19, -4, -14, 16, -12, 38, -64, 8, 34, -17, -1, 34, 9}, + {29, -64, -51, 22, 7, -14, -8, 1, 39, -11, 45, -14, 2, 11, -3, 5, -28, 4, -41, 23, 21, -21, 27, 16, 17, -68, 4, 30, 24, -22, 13, 6}, + {13, -52, -33, 25, 25, -34, -40, 36, 10, -9, 3, -35, 48, -22, -34, 6, -13, 44, -2, 31, 1, 8, 19, 13, 35, -30, -20, -23, 18, 17, 2, 7}, + {-14, -57, -18, -9, 13, -22, -42, -30, 43, -43, -18, -9, -18, 9, -2, -10, 11, -9, 7, 17, 31, -34, 1, -35, -10, -13, 10, -20, 24, -2, 49, 17}, + {-11, -64, 10, -14, 17, -30, 11, -9, 30, -21, -4, -23, 11, -15, 11, 19, -33, 18, -32, -13, 52, -33, -14, -32, -8, 23, 24, -25, -18, 27, -28, -11} + }, + { + {-1, 4, -50, -15, -32, -13, -3, -23, 17, 10, -23, 7, 39, -25, -17, -15, -18, -26, -12, -11, 41, -5, 28, 5, 23, -74, 22, 21, 34, 43, 9, -1}, + {14, -18, 12, 29, -5, 15, 0, -24, 42, 25, 12, 17, 19, 8, 30, 38, -4, -16, -3, 30, 50, -36, 37, -36, 45, -7, 19, 48, 3, 31, 15, -22}, + {48, -55, -31, 36, -2, -27, -36, 18, -6, -19, 51, -17, 54, -34, 14, -26, -28, 2, -30, 10, 25, -36, -10, -8, -4, 4, -6, -11, -15, 25, 29, 4}, + {-15, -23, -3, 33, 24, -15, 25, 38, 5, -2, 24, -6, 14, 10, 19, 20, -20, 4, -31, -4, 20, -37, 6, 16, 23, -5, -15, -26, -10, -2, 23, 7}, + {-18, -5, -15, 25, -3, -43, 25, 6, 38, 16, 39, 1, 48, -3, -38, 28, -44, 43, 4, 6, -3, 11, -17, -44, 23, 0, -16, -6, 14, 45, 18, -38} + }, + { + {-27, -16, -11, -44, 11, 17, 31, -17, 41, 21, -6, 30, -28, -22, 12, 27, -35, 26, -25, 5, -20, -25, 8, 20, 21, -39, -7, 43, 31, 32, -16, -3}, + {20, -34, -8, 29, 13, -11, -14, 24, 26, -21, 27, 37, 6, 30, 10, 19, 15, 17, -4, 2, -11, -13, -19, -33, 19, -34, 7, 7, 13, 16, 24, 14}, + {14, -27, -37, 21, 31, -25, -4, -33, 24, -20, -12, 8, -13, -33, -31, -20, 11, -2, 14, 39, 36, 6, 14, -40, -13, 0, 15, 2, -25, 48, 35, -17}, + {13, -47, 16, 26, 37, -36, -16, -10, 13, -18, 2, 3, -5, 19, 17, 35, -36, 12, 2, -5, 32, -27, 37, -9, -9, 31, -2, 32, -2, 48, 20, -2}, + {34, -57, 21, -15, -23, -29, 27, 39, 20, 30, -3, 6, 46, -15, 22, -31, -11, -1, -38, -5, 50, -17, 21, -40, -7, 11, 44, 20, 19, 38, -27, -19} + }, + { + {7, -37, -26, -25, 0, 32, -25, 9, -11, 31, 2, 36, -23, -13, -8, 32, 16, 15, -3, -21, 1, -25, 0, -8, 27, -47, 11, -17, 35, 35, -20, -32}, + {6, -35, 8, -23, 42, -16, 21, 9, -5, 40, -3, 40, 25, 36, -3, 19, -30, 18, -18, 19, 58, -33, -4, -13, 45, -3, -1, -8, 29, 2, 8, 20}, + {-17, -11, -34, -3, 14, -7, -29, 7, 4, -4, 39, 3, 19, 43, -42, -22, -17, 37, 22, 48, 27, 2, 44, -30, 21, -62, 3, -19, 23, 30, 15, -34}, + {4, -15, 15, 22, 28, -30, -25, -10, 19, -15, 38, 16, 25, 13, 10, 24, -8, 8, 22, 1, -9, 4, -18, -8, 38, 26, -5, 11, 4, 15, -29, 2}, + {-26, 9, 19, 9, -13, -13, -16, 22, 30, -25, -22, 1, 4, -12, 18, 14, -14, 4, -33, 7, 28, 26, -11, -27, 21, 6, 34, -13, 1, 36, 12, -50} + }, + { + {22, 12, -58, -27, -20, 31, -15, 6, 27, -11, 27, -20, 28, -24, 15, 30, -9, -19, -39, 45, 48, 0, 21, 20, -14, -44, 26, 17, -7, 38, -18, -9}, + {20, -15, -60, -8, -26, -5, -31, 21, 0, 3, 13, 6, -14, 41, -22, 43, -33, -24, 0, 48, 27, 13, 8, 29, 1, -30, 42, 27, -12, 17, 20, 18}, + {0, 15, -31, 5, -3, -18, 33, 2, 40, 40, -30, 7, 5, 39, 20, 30, -45, 22, -27, 50, 30, 7, 41, -19, -20, -56, 19, 1, -18, -1, -10, -29}, + {23, -27, 17, -14, -24, 17, 33, -20, 38, 30, 0, -16, -5, 10, -13, -20, 3, 28, -11, 17, 50, 12, 10, -24, -3, -19, -13, -18, 32, 41, 17, 16}, + {-32, -21, -25, 14, -18, 20, -6, -15, 21, 44, 39, -11, 22, 20, -6, -9, -45, 39, 12, 47, 51, -29, -18, 17, 30, -19, 7, 31, 9, 18, 27, -10} + } + }, + { + { + {-48, -51, 14, -28, 7, -25, -17, -25, 28, 40, -45, 1, 11, 10, -46, -17, -34, -36, -7, -43, -23, -48, 0, 2, -35, 18, 3, -23, -20, -8, 0, -48}, + {-5, 13, 9, -19, 17, -36, 27, -23, 30, 45, -43, 5, -33, 5, 24, 21, 21, 23, 3, -7, 22, 3, -6, 14, 24, 66, 9, -32, 29, 2, -45, -36}, + {-6, 33, -7, -20, 27, 26, 15, 21, 34, 44, 8, 21, -9, 25, 11, 16, -33, -18, -32, -32, -32, -27, -1, -2, -12, 23, 2, 25, -36, 4, -24, -20}, + {23, -7, 4, 3, -11, 5, -1, -16, 30, -19, 2, 0, -15, 19, 15, 19, -29, -30, 1, -36, -7, -2, -27, -34, 21, 51, -34, 20, 1, 13, -48, 30}, + {-30, 1, -30, -28, -3, 14, 23, -8, -6, -32, -21, -30, 15, -29, -25, 12, -17, -6, 34, 9, 24, -11, -19, 4, -4, 15, 0, 14, -34, -15, -3, 24} + }, + { + {15, 29, 44, 4, -25, -43, 30, 28, -10, 26, 18, -28, -25, -28, -40, -29, 35, 27, -21, -37, 19, 6, 12, -13, -9, 16, 32, -1, 4, 6, 18, -5}, + {3, 15, 25, -14, -41, 23, 12, -4, -15, -22, -19, 20, -19, -5, -12, 10, 0, -45, -10, -21, 29, -2, -1, 16, 23, 94, 25, -28, 17, -25, -33, 29}, + {-8, 30, 8, 23, 32, -33, -1, 37, 29, 29, -32, 36, 13, -6, 33, 13, -36, 5, 23, 4, -6, 23, 6, -28, -11, 43, -35, 10, 27, -11, -12, 33}, + {-14, 17, 47, -26, -27, 14, 4, 24, 42, 15, -19, 40, -1, 49, -19, 22, 29, 21, -37, -11, -36, -12, 17, 26, -40, 62, 17, 22, 6, 10, -24, 35}, + {7, 55, 13, 4, -9, 10, 3, 2, 0, 33, -23, 24, 7, 28, 30, -24, -31, -46, -13, -33, 13, 15, 25, -2, -42, 80, 21, -11, -26, -11, 1, -29} + }, + { + {-35, 41, -8, 19, -21, 27, 36, 36, 43, 24, -27, -9, -7, 43, -10, 22, -17, -28, -25, -14, -31, -4, -49, -44, 2, 4, 34, -30, 3, -4, 24, -27}, + {-28, 54, 47, 33, 13, -12, 36, 3, 0, -25, 9, -40, 9, 16, 13, 12, -16, 10, -26, -32, 32, 41, -43, -6, 18, 37, -16, -19, 32, 45, -6, -23}, + {-10, 19, 23, 5, 12, -13, 7, 21, 43, -18, 9, -30, 32, 6, -1, 29, -18, 4, 25, 14, 7, 23, -22, 9, -1, 72, -9, -9, -7, -34, -4, 30}, + {-29, 52, -10, 19, -35, -17, 7, -17, 47, 44, -4, 23, -6, 41, -26, 9, -7, -1, -14, -19, -12, 37, -46, -1, -5, 58, -19, -3, -8, 18, -18, 9}, + {-16, 19, 55, -18, -22, 32, -16, -17, 28, -14, 28, -25, 10, 10, -25, -25, -8, -21, -4, -8, 24, 4, 20, 36, -27, 67, 1, -4, 13, -19, -9, 33} + }, + { + {-4, 39, -15, 41, 12, -33, -9, 5, 33, -27, 20, 14, -17, -9, 1, 14, 49, 11, -33, 2, -2, 23, -33, 25, 10, 60, 37, -16, 39, 37, -26, -8}, + {-25, 32, 48, 13, 51, 29, 15, 0, 43, -29, 14, -42, -18, 25, -7, -38, -1, 0, -54, -28, 23, 37, -1, -4, 23, 69, 22, -29, 12, -25, 1, -27}, + {-37, 0, 50, 10, 43, 3, 11, 52, 1, 10, 21, 16, 26, 10, -28, -32, 12, 16, -10, 30, -41, -7, -6, 10, -14, 54, 5, 4, -8, 16, 16, 25}, + {-16, 70, 9, -21, -26, -10, 35, 10, 31, 22, -15, -21, -20, 21, -15, 28, 36, 36, -22, -23, -3, -23, 12, 39, 14, 72, 20, -31, 22, 3, -32, -2}, + {-5, 29, 2, -12, 19, 31, -30, -20, 15, -33, 10, 29, 13, 22, -1, -25, -17, 31, 15, 17, -6, 1, 20, -2, -19, 45, 13, 40, 19, -13, 25, 39} + }, + { + {-6, 38, -36, -23, 52, 15, 16, -14, 9, -23, 11, -18, -20, -28, -23, 7, 27, 23, 11, 1, -18, -22, -52, -1, 43, -9, 2, -9, -35, 24, 2, 19}, + {-14, 45, -6, 24, -13, -11, -14, 26, 34, 0, -6, -6, 19, 15, 0, 10, 9, -12, -33, -2, -14, 36, 4, -23, 37, 36, 19, 11, 12, 33, 14, -16}, + {-31, 7, 44, -19, 41, -30, -24, 27, 23, -12, 26, 9, -22, -33, -14, 24, 45, 38, 20, -34, -22, 30, -12, 43, 15, 79, -14, -32, 27, -33, 21, -13}, + {-33, 9, 60, 15, 33, 33, -4, 32, -28, -40, 8, 12, -22, 32, 39, 35, 18, -30, 17, -1, 20, 11, -37, 45, 8, 46, 4, -8, 32, -32, -12, 21}, + {-18, -4, 18, 17, 6, 21, -18, 3, 31, 2, -22, 3, 32, 9, 14, 26, 15, 11, -16, 10, -55, 21, 10, 35, -13, 79, 0, -4, 21, -39, 30, 33} + } + }, + { + { + {22, 10, -15, 23, 26, 15, 35, -28, 32, -4, -7, -27, 22, 8, 37, 3, -30, -20, -6, -5, 21, -4, 24, -1, -20, -39, -7, 2, 35, 11, 32, 22}, + {36, 48, 5, 13, 20, 41, -36, 15, 32, -40, 7, -12, 36, 28, -20, 32, -19, 4, 60, 13, 18, 18, 45, 47, 4, -62, 28, 20, 25, 14, 31, 22}, + {17, 28, 22, -2, 24, -19, 7, -24, 2, -44, 19, -14, -28, -40, -2, -21, 27, -11, 28, -25, -4, 11, 57, 4, -24, 13, -28, 35, 24, -34, 26, -6}, + {25, 37, 35, 25, 3, -13, -38, 32, -5, -33, -1, 26, -29, -25, -27, -24, -11, -35, 42, 38, 6, -7, 31, 25, -31, 3, -10, -29, -21, 13, -15, 4}, + {-27, -2, 10, 10, -37, 15, -11, -16, 24, -2, -5, -25, 31, -29, 19, -9, 14, 4, 1, 20, 5, 36, 3, -8, -19, -11, -6, -31, 2, 0, 40, 31} + }, + { + {11, 60, 33, -4, 0, 3, 24, 14, 18, 36, 48, -29, 16, 29, 6, -38, 3, 18, -22, -28, 12, 40, 14, 6, -26, -50, -9, 0, 35, -1, -9, -17}, + {47, 30, 31, 2, -9, -29, 12, -9, -20, -26, 19, -39, 1, 10, -37, 23, 46, 12, 2, -8, -31, 59, 36, -26, -11, -34, 31, 17, -11, 6, -13, -27}, + {46, 35, 19, 41, -15, 26, -15, -30, -27, 24, -5, -35, 43, -30, -10, -39, 38, 40, 32, -22, -16, 36, 19, 5, 21, -41, 20, 40, 36, 8, -24, 13}, + {19, 11, 36, -26, -2, 23, 25, -30, 28, -17, 11, 8, 43, 2, -2, -27, 34, 37, 4, -4, -14, 58, 54, -29, 37, 13, 3, -17, 38, 12, 21, 23}, + {-23, 15, -20, 25, -42, -9, -36, 7, -19, 15, 27, -36, 27, 8, -39, 16, 34, -11, 0, -15, -2, 59, 20, -18, -27, -11, -27, 44, -32, -37, 37, -5} + }, + { + {-10, 37, 7, 27, 0, 6, -27, 10, 27, -19, 26, 19, 35, 36, -39, -35, 36, 42, 34, 12, -16, 8, 53, -9, 19, -45, -19, -20, 47, 26, -1, -19}, + {-10, 63, -9, 22, -10, 28, 16, 19, 42, -6, 20, -32, 1, 3, -31, -6, 45, 18, 39, 29, -13, 21, 11, 45, -6, -27, 0, 10, 22, -33, 42, -21}, + {35, 38, -14, -15, -13, 30, 3, -28, 50, 14, 31, -19, 37, -25, -12, -19, 17, -14, 50, -11, 33, -2, 22, 39, -4, -29, 17, -9, 36, 18, 9, -20}, + {-1, 60, -4, 24, 33, -35, -20, 19, -7, -30, 37, 21, -8, -21, 23, -39, 8, 7, 13, 45, -40, 0, 34, 33, 36, -3, -19, 12, 15, -45, 34, 11}, + {15, 11, 1, 20, 4, -17, -28, -4, -20, -8, 15, 5, -1, 7, -20, 5, -5, 23, 12, 35, -9, 37, 39, -18, 9, 3, 0, -24, 16, -24, -7, 30} + }, + { + {37, 27, 1, -17, -13, 3, 13, -24, -20, 35, 18, 21, 4, -6, 13, -6, -1, 25, 46, 33, -29, 38, 31, 48, 8, -27, -36, 28, -11, -29, -9, 25}, + {-18, 65, -13, -22, 3, -10, -9, 11, 38, 35, -12, 2, -13, -23, -27, 13, 29, -27, 55, -14, -40, 28, 19, -1, -23, -48, -33, 37, -3, 26, 41, 41}, + {-13, 32, -27, -36, -10, 1, 37, -33, -1, -10, 36, 31, -20, 7, 14, -22, -10, -5, 12, -19, -26, 42, 11, 48, -15, 16, 8, 23, 8, 25, 26, 0}, + {36, 74, -11, -37, 19, -30, 9, -13, 37, -20, -10, 15, 7, -27, 12, 7, -16, 28, 58, 30, -28, -3, 43, 48, -20, -36, 11, -16, 5, -41, 25, 22}, + {-21, 70, -28, 4, -8, 35, -7, -18, 47, 10, 0, 6, 26, -6, -8, 9, -12, -23, 54, -15, 26, 14, 28, -1, 6, -18, 3, 7, -25, -3, 35, -25} + }, + { + {14, 67, 2, 25, 30, 5, 40, -12, 11, 13, -11, -18, 17, 44, -13, 31, 5, 25, 30, -21, -26, 50, 55, 23, 15, -46, -29, -23, 34, 8, -27, -12}, + {14, 27, 28, -34, -27, 41, 41, 0, -1, 29, 23, -16, 30, 43, 0, -8, -20, -31, 34, 24, 13, -17, 53, -13, 15, -50, -16, 10, -30, 27, 36, 5}, + {-22, -6, 7, -6, -2, -9, -24, -41, 25, 2, -17, -9, 35, -25, 36, 29, 19, -26, 26, -20, -37, 36, 0, 25, 2, -16, 7, -18, -23, -39, -17, 14}, + {27, -2, -17, 26, 6, 6, -18, -11, -25, -2, -28, 23, -33, -9, 2, -26, -6, -13, 13, -24, -29, 44, 5, 52, -8, 6, 6, 26, -25, 34, -3, 8}, + {24, 18, -10, 16, 14, -28, -25, -1, -14, 9, -31, -6, -2, -19, 14, 6, -36, -40, 59, -32, -42, 6, 4, -7, 16, -47, -39, 21, -8, 26, -28, 24} + } + }, + { + { + {-2, -59, -23, -2, 44, -18, -10, -14, 25, -27, 29, -6, 10, -6, 8, -5, 14, 14, -22, -27, 33, -38, -26, 4, 15, 18, 13, 0, 5, -3, -5, 36}, + {22, -48, -39, -12, 34, -45, 45, 39, 31, -16, -5, 15, 35, 38, 15, 35, -29, 42, -71, 21, 37, -56, 17, -48, 20, -16, 23, -26, 40, 49, 24, 35}, + {-7, -43, -21, 51, 33, 4, -3, -22, 14, -9, 48, 30, 22, -25, -4, 17, 14, 41, -21, 11, 43, -42, -44, -59, -14, -23, 16, -1, -16, -11, -17, -21}, + {9, -62, 34, 9, -11, -17, 29, 37, 55, -12, 24, -26, 5, 21, -49, -11, -34, 32, -28, 31, -2, 15, -46, -51, 51, -4, 5, 23, 27, -12, 38, -49}, + {50, -60, 17, 40, -17, -30, 12, 14, 9, 4, 23, -18, 16, 8, -21, 10, 7, 54, -58, -17, 17, -45, -35, -1, 55, 43, 30, 19, 5, -2, -25, -44} + }, + { + {10, -65, -45, 4, 36, -25, 37, -23, 10, -2, -10, 12, -18, 15, -22, -20, 28, 30, -29, 20, -17, -39, -20, -15, 5, -13, 19, 1, 38, 27, 27, -22}, + {-14, -54, -33, 20, -18, -21, -16, -20, -16, 11, -3, -6, -17, 12, -14, 18, -29, -11, -10, -2, 16, 6, -47, -18, 13, -57, 42, 5, 37, 4, 13, 34}, + {39, -1, 20, -6, 53, 13, -13, 46, 5, 20, -18, 24, 45, 33, 11, -34, 19, 49, -5, 35, -1, -9, 5, -30, 46, -44, 21, 25, 34, 33, -22, -33}, + {5, -47, -35, 54, -3, -37, 20, 50, 41, 10, 11, 7, 26, 40, -43, 4, -18, 2, -27, 7, 22, -21, -44, -33, 59, 1, 31, 10, 8, -23, 20, -1}, + {0, -44, 10, -6, 47, -23, 35, 18, 53, 19, -2, -24, 51, 15, 26, -5, -20, -1, -16, 17, 31, -23, -11, 22, 58, -8, 8, -18, 49, -5, -1, 13} + }, + { + {-3, -30, -49, 6, -21, 2, -2, -10, -6, -1, -14, 6, 3, -23, 10, 5, 30, 12, -52, -18, -7, -12, -27, 9, -4, -22, 36, -23, -21, 13, -40, -29}, + {14, -41, -6, 33, 14, 4, -29, 3, -5, 38, 29, 9, 9, 4, -18, 44, 34, -16, -63, 23, 14, -39, -29, -2, -18, 7, 28, 27, 41, 47, -39, 21}, + {-26, -45, -52, -2, 11, -27, 33, -19, 55, -15, 21, 39, 51, -8, 18, -13, -25, 55, -18, 31, 13, -40, -6, 12, -8, -27, 16, 4, 44, 39, -21, -40}, + {-12, 0, 5, 21, -14, -23, 39, -20, -15, 7, 6, -28, 52, 23, 11, 10, 27, 44, -31, 14, 24, -37, -2, 5, 43, 3, -10, 4, 1, -4, -14, -19}, + {33, -36, 3, -15, 8, -30, -23, 23, 39, -19, -25, -21, -8, 42, 2, 30, 21, -3, -52, 21, -16, -50, 14, -9, 6, -21, 16, 23, -12, -1, 15, -14} + }, + { + {22, -26, -49, 5, 21, -25, -11, 20, 49, -20, 36, -17, 14, 35, -7, -18, 15, 43, -56, 39, 46, -2, -30, 22, 40, 5, 0, 0, 27, 9, -4, 38}, + {24, -36, -57, 32, -1, -16, -11, -16, 27, -26, 31, -5, 39, 27, -36, 13, -32, 34, -58, -7, 37, -32, 10, -11, 39, -12, 26, 15, 5, 22, -13, -16}, + {29, -44, -8, 3, 38, -50, 39, 22, -15, 33, -25, 37, 16, 22, 4, 32, 30, -5, -31, 35, 31, -7, -35, -12, 33, 23, 43, 17, -14, 46, 32, 28}, + {11, -4, -36, 20, 15, -40, -9, -10, 17, 6, -28, 21, 33, 41, 19, 19, -22, -6, -51, -4, 14, -13, -6, -28, 45, 15, -12, 31, 22, 46, -36, 6}, + {12, 20, -12, -5, 26, 35, -23, 21, 18, 39, -4, -18, 37, 54, 27, 18, -11, 35, -57, -12, 53, -23, -2, 5, 33, 20, 6, 4, 19, 11, -35, -29} + }, + { + {-37, -30, 0, -30, 2, -20, 5, 7, 31, -5, 2, 13, 43, -7, -1, 10, -45, 18, -48, 34, 27, -73, -30, -18, -3, -7, -1, 15, -14, 37, -42, 22}, + {-5, -40, -46, 4, 11, 11, -12, -1, 16, 27, -23, 13, 16, 40, -31, 25, -21, -7, -54, -24, 4, -61, 8, -20, 20, -11, 9, -8, 6, 51, 18, 13}, + {-9, -46, -46, -5, 19, -25, 21, -2, 48, 29, -31, -27, 30, -16, -29, 7, 10, 4, -19, 34, 42, -1, -17, -8, 25, -17, 19, 13, 41, 9, 33, 6}, + {-3, -34, -15, 37, 10, -13, 48, -10, 37, 32, -18, -12, 38, 34, -30, 47, -21, -9, -60, -33, 56, -27, -16, -31, 44, -30, 14, 16, 25, -23, -28, 4}, + {-34, 2, 24, 22, -38, 26, 19, -23, 51, 24, -17, 30, 16, -23, 21, 21, -53, 18, -20, 17, 38, -55, -43, -34, -11, 33, 39, -6, 7, -2, -13, 8} + } + }, + { + { + {-12, 13, -42, -16, -2, -27, -29, 22, 9, -53, -19, -26, -6, -32, 40, -10, -20, -21, 46, 22, -1, 15, -3, -17, -16, -4, 12, 38, -20, 8, 22, 20}, + {50, -9, -3, 4, 9, -23, -29, 27, 29, 16, 6, -33, 25, -9, -18, -4, -4, 17, 47, 28, 1, 30, -8, 15, -4, -35, -2, -28, -24, 19, 27, -13}, + {43, 2, 1, 31, 31, 30, -44, 30, 2, -22, -1, 7, -4, -13, -34, 9, -27, -23, 16, -1, 29, 0, 16, 41, -6, -3, 24, -5, -2, 17, 10, 14}, + {35, -2, -28, 3, 28, -28, -6, 26, 39, -11, 44, -28, 45, -2, -20, 17, 18, 6, -11, 17, -28, 15, 1, 22, 16, 11, 35, -9, -12, -42, 37, 9}, + {9, 16, 7, 41, -36, 17, -5, 28, 32, -23, 11, 4, -17, -16, -27, -5, 18, -2, -5, -8, 33, 31, -7, 21, 22, -20, 5, 25, 0, 4, 29, 17} + }, + { + {52, -14, -31, -14, -36, -25, -5, -34, -24, -38, 14, -32, 11, 7, -11, -34, -25, -11, 33, 47, 5, 19, 46, -28, -1, -30, -6, -2, -11, -28, 49, -26}, + {45, -24, -34, 24, 29, -22, -60, 0, 5, -40, 0, 15, 29, 3, 10, -24, -31, 34, 5, 47, 7, 35, 18, 42, -18, -43, -13, -7, -33, -15, 29, -44}, + {14, 32, -10, -33, 20, 29, -35, 27, 40, 19, 50, -19, -12, -40, 19, -34, 6, 5, -7, 1, 30, 29, 38, 6, 34, -31, 8, 26, 25, -37, -15, -20}, + {-9, -10, -22, -32, -31, 18, -20, 6, 19, -24, -4, -35, -9, -24, 25, 12, 33, 14, 53, 38, -8, -9, 67, 27, 47, -50, 10, -15, 2, -30, 47, -8}, + {40, -18, -18, -8, 10, 20, -11, -26, -23, -43, -13, -22, 26, -8, -23, -23, 27, -25, -4, 17, 16, -27, 25, -27, 7, -12, -37, 32, 1, 14, 7, -20} + }, + { + {42, -10, 20, -26, 19, -5, -56, 1, -17, -29, -2, 28, 3, -6, -7, -13, 3, 42, 45, -14, -19, 14, 0, -7, -12, -71, -8, -11, -5, -15, 21, 9}, + {-4, -32, -10, 0, 6, -35, -12, 3, 6, 4, 29, 19, -18, -14, 17, -7, -33, -3, 49, 9, 24, -4, 45, 35, 28, -19, -41, 50, 18, -26, 41, -36}, + {-20, 33, -7, 30, 22, 2, -7, -21, 24, 0, 44, -43, -13, 9, 35, 12, 0, 26, 50, 50, 13, -10, 34, 23, 19, -18, -13, -2, 33, -41, 14, -30}, + {1, 19, -20, -2, 22, -26, -27, -41, 19, -14, 4, -30, 10, -35, 10, 7, 3, 28, 48, -22, -15, 4, 16, 10, 45, 16, -27, 5, 29, -43, -12, -30}, + {11, 28, 22, -2, -15, -34, 8, -4, 30, -31, 9, -6, -30, 13, 28, -15, -42, 36, 38, 18, -8, -22, 18, -12, -25, -30, -4, 12, -36, 4, 40, -9} + }, + { + {25, -15, -20, 30, 22, -12, -47, 4, 31, 10, 16, 22, 24, 1, 34, 16, 36, 20, 26, 31, -31, -7, 39, 3, -25, -39, -16, 7, -3, 14, 24, 2}, + {38, -34, -37, 3, 15, 10, 3, -1, 37, -47, 41, -30, 20, 10, -8, -32, 30, 19, 12, -15, -19, -8, 30, -1, -8, 0, 14, 24, 30, -7, 21, 4}, + {-4, -39, 31, -39, -43, -7, -23, -22, 34, 17, 47, -21, -10, 26, 9, -6, -18, -20, 1, 22, -5, -13, -4, 10, 18, -20, -25, 28, 32, -29, -16, 23}, + {-12, 29, -20, -27, -23, 21, -24, 13, -10, -23, 24, 22, 26, 23, -35, 32, 15, 20, 36, 14, 5, -28, 7, -6, 25, 13, 12, 36, -27, 20, 28, -22}, + {-19, -28, 23, -25, -26, 16, 7, 13, 26, -43, 32, -6, 38, 3, -9, -25, 27, 11, 13, 22, -7, -13, 32, 1, 35, 2, -2, 37, -8, 2, 44, -38} + }, + { + {1, -27, -39, -35, -36, -37, -36, 15, 29, 32, -17, -4, -5, 15, 32, 10, 17, 24, 5, 43, 11, -27, 36, 1, -11, -17, -29, 29, 12, 8, -22, -11}, + {37, -35, -44, -38, 27, 7, -49, 6, 47, -39, -1, -31, 33, -17, -27, -24, 13, -7, -9, 30, -20, -39, 32, -22, 23, -28, -24, -12, 2, 8, 22, -11}, + {-14, 17, 23, 3, 1, -22, -39, -13, -11, 22, 8, 32, -19, 7, 8, -16, -41, -13, 32, 24, 19, -12, 3, -12, 18, -19, -7, -13, 8, -36, -6, -49}, + {24, -37, 20, 29, -34, 32, -22, -32, 8, -32, -16, -4, -14, -30, 8, -28, -25, -14, -8, -9, -24, -14, 38, -24, 3, -34, -25, 44, -31, -16, -24, 1}, + {17, 22, 2, 4, 24, 2, -14, 17, -11, 20, 20, -28, -34, 31, -7, -36, 9, -16, -12, 43, 27, -10, 0, -17, 3, -23, -36, -6, -3, 11, 33, -41} + } + }, + { + { + {-35, 13, 40, -13, -30, -34, 21, 15, -5, 35, 12, 15, -31, -12, 30, -11, 43, 10, -9, 19, -7, 30, -11, -35, -26, 44, -4, 28, 22, -9, -40, 44}, + {25, 4, 31, -12, 19, -29, 16, -6, -1, 16, -7, -29, 0, 26, -36, 24, 24, -32, -4, -10, -3, 13, -23, 30, 17, 42, 0, -4, 15, 43, 24, 38}, + {-34, 17, 43, 15, 23, 28, -7, -15, 40, -20, -5, -26, 15, 40, 13, 2, -17, 22, -37, 21, 8, -9, -4, -30, -13, 17, -1, -5, -8, 4, -5, 56}, + {32, 9, -10, -3, -14, 40, 5, -5, 34, 9, -36, -3, -19, -28, 20, 15, -13, -36, -32, -15, -3, 7, 7, 22, 21, 87, -24, 29, 26, -11, -19, 7}, + {-22, 26, -16, -27, 14, -2, 22, -8, 35, -1, 4, 13, 22, 42, -19, 27, 43, -26, -6, -8, -25, 7, 25, 13, -17, 10, -5, 32, 10, -26, 7, 62} + }, + { + {23, -2, 4, 7, 2, 24, 12, -11, 12, 36, 29, 38, 9, 38, -7, 46, -16, -38, 15, -26, -6, 26, -34, 17, -26, 88, 32, 25, 29, -19, -1, 33}, + {6, 43, 21, -31, -28, 37, -19, -19, -24, 27, 16, -4, -28, 27, 27, 13, 43, 10, 24, 38, -24, -6, -35, 8, -21, 14, -29, -14, 1, -20, -25, 40}, + {14, -30, 37, -24, 16, -2, 26, -20, 19, 46, 23, 3, 16, -19, -32, -7, 32, 27, 10, 19, 5, -29, -12, -28, 14, 57, 38, 38, -30, 16, -28, 4}, + {34, 45, 21, -34, 21, -10, -4, -22, 24, 15, -33, 44, 20, 36, -26, 38, 27, -8, 10, -23, 17, -37, -28, 5, 37, 50, 33, 35, 27, 9, -26, -5}, + {13, -12, 1, 19, 16, 39, 4, -6, 0, 25, -16, 27, -10, 20, 8, 18, 4, 21, 22, 9, -33, 21, -15, 47, 19, 63, 10, 33, -14, 44, -39, 0} + }, + { + {1, 6, 54, 10, -20, 10, -21, 39, -27, 25, 28, -8, -20, 31, 18, 31, 32, 10, 7, 12, 30, -21, -29, -10, -17, 74, -7, -36, -12, -7, 22, 3}, + {-39, -8, 8, -35, -17, 5, 39, -1, 17, -8, -6, 34, 18, 30, 40, -7, 35, -16, -5, -9, 23, 20, -43, 10, -28, 33, 11, 2, 5, -16, 3, -20}, + {-26, 24, 3, 3, 6, 28, -3, -11, -8, 37, -17, -15, 1, 23, 20, 42, -7, -7, 28, -10, 8, 27, -26, -31, -9, 17, -2, -18, 18, 20, 9, -23}, + {-28, -17, 69, 16, -10, 2, 48, 37, -1, 19, -29, -20, 16, 5, 17, -27, -1, -28, 22, 2, 8, 25, -10, -11, 16, 63, 9, -13, -39, -13, -28, 34}, + {-5, 48, 44, -32, -5, 37, -17, -21, -14, 25, -18, 36, -17, 35, 30, -10, -1, -39, 20, 5, -21, -26, -37, 38, -8, 35, -14, -6, 10, -25, -18, 57} + }, + { + {26, 17, 7, -18, 1, -34, -2, 20, 10, 29, -3, -29, -25, -22, -12, 16, -22, 11, -45, -11, 30, 38, -17, 21, -34, 18, -27, 16, 21, 37, -11, 2}, + {-6, 16, -4, 30, -2, -23, -19, -25, -35, 20, 24, 22, -14, -22, -1, -9, 54, 4, 5, 25, -21, 17, -12, -23, 40, 44, 19, 21, 22, 32, -4, -4}, + {-24, 16, 43, 33, 0, 38, 4, 33, 2, 18, 26, -34, 17, 4, 1, -9, -10, 13, -31, 2, 26, 10, -13, 33, 36, 25, -13, -6, 12, -3, 6, 20}, + {34, 0, 42, 28, 24, -10, 41, 11, 33, -18, -34, 31, 3, 38, -27, -28, -22, 6, -6, 29, 34, 12, 15, -15, -18, 87, 2, -19, 17, -10, 12, 18}, + {36, 37, 12, -21, -23, -19, -33, -17, -20, 13, -27, -16, -10, -26, 40, 36, 44, -27, 1, 18, 16, -15, -15, -29, 9, 59, 34, 40, -8, 19, -26, -13} + }, + { + {-27, 13, 21, 9, 35, 24, 1, 18, -33, -36, 4, 9, -26, 23, -33, -26, 40, 6, 11, 0, 1, -27, -23, -2, 17, 2, 33, 15, -3, 38, 23, -26}, + {-15, -47, -17, -5, 34, -5, 33, 39, -38, 29, -8, -40, 5, -4, 28, -11, 35, -24, -30, -25, -20, -29, -50, -20, -1, -9, -5, -12, -21, 5, -22, 10}, + {34, 5, -24, 8, 45, -27, 5, 37, 27, -2, 13, 25, 6, -23, -31, 34, -2, 24, -26, 19, -3, 28, -23, -36, 9, 42, 12, 26, 12, 18, -9, -15}, + {41, 20, 22, 25, -20, 11, 0, 39, -18, 11, -8, 15, 5, 3, -16, 16, -15, -19, -30, -30, -3, -2, -9, 19, -29, 76, -33, -20, -2, 37, 17, 3}, + {-20, 8, 48, 33, 15, 0, -22, -16, 27, 21, 6, -10, 27, 17, -8, 16, -19, -22, 9, 6, -20, -16, -38, -19, -15, 58, -2, 31, -1, -25, -8, -19} + } + }, + { + { + {33, -1, 44, 11, -22, -61, 18, 25, -29, 59, -35, -41, -1, -4, -42, 8, 0, 41, 18, 19, 25, -5, 27, -17, 25, 20, -11, 34, 5, 52, -37, 21}, + {21, -21, -19, 10, -14, -44, -21, -30, -7, 47, -26, -21, 6, 44, 6, -31, 0, 10, 18, 12, 6, 51, -17, -43, 18, 10, 0, -4, -15, -5, -5, -13}, + {12, 18, 2, 39, -9, -6, -10, 20, -2, 18, 8, 8, 12, -20, -3, -30, 4, 7, -10, -14, 53, 37, -17, -50, 29, 30, 3, -19, -25, -10, -1, 10}, + {17, 5, -14, 11, -11, -55, -4, -1, 2, 19, -10, -21, 23, 5, -11, 6, 30, -12, 18, -37, 47, -4, -55, -33, -14, 54, 27, -10, 18, 36, -30, 12}, + {33, 4, 2, 14, 8, -10, -12, 40, 17, 10, 24, 14, -6, -2, -35, -33, 42, -27, 0, 9, -9, -2, -3, -15, -2, 18, -13, 9, -10, 11, -7, 29} + }, + { + {-9, 61, -20, -25, -7, -4, -14, -21, 34, 63, 9, -12, 10, 48, 18, -21, 32, 24, 25, 7, 57, 36, -17, 14, 24, 59, -6, 21, 40, 44, -19, -4}, + {23, 12, 31, 18, -10, -13, 53, -2, -12, 46, -3, -37, 29, 35, 7, 4, 40, -5, 2, 25, -4, 27, -27, -31, 25, 22, 35, 20, 13, -12, 17, -10}, + {26, -1, 22, -19, 41, -5, 35, -11, 14, 53, -21, -18, 9, 24, -15, 11, -12, -31, 15, -4, 11, 21, -7, -15, 42, 28, 38, 32, 18, 25, 9, 29}, + {-16, 44, 17, -34, 5, -10, 14, 9, 43, 62, 2, -35, -14, 4, -2, 23, 1, 28, 21, -6, 49, -5, -28, -37, 28, -2, -3, 25, 46, -6, -27, 34}, + {-17, 5, 25, 33, 16, -39, 35, 32, -6, 67, -16, 34, -18, 49, -18, 23, 39, 27, -3, 39, 40, 8, 2, -22, -26, -3, -10, -14, 33, 10, -35, 9} + }, + { + {-6, 71, 22, -21, -27, 25, -7, 18, 19, 62, -18, 1, -31, 19, -9, 31, 42, 23, 18, -19, 4, 5, -2, -24, 38, 64, 28, -23, -12, -12, 7, 36}, + {16, 25, -14, 6, -8, -4, -3, -28, -17, 65, 24, 11, 33, 34, 10, 18, 15, -1, -20, 17, 37, -20, 25, 17, 40, 38, 9, 43, 31, 32, 10, 18}, + {-23, 39, -24, -6, -13, 2, -13, 6, 41, 48, -33, -11, -23, 42, -41, 35, 21, 2, 35, 10, 52, 2, -41, 15, 24, 8, -25, 8, -29, 0, -4, -16}, + {-7, 70, -22, 20, 11, 15, 11, -26, 11, 21, 23, -23, -7, 22, -23, 39, 7, -11, -24, 11, -13, 21, -6, -11, -33, 52, -23, 16, -19, -5, -2, 5}, + {-14, 54, 9, 7, 1, -3, 35, -8, 2, 67, -29, 32, -39, 1, -26, 37, 32, 14, -22, 18, 43, -20, 21, 5, -10, 7, 1, 44, 0, 59, -8, 7} + }, + { + {-27, 22, 1, 7, 1, 31, -17, 2, 22, -2, 12, 15, -36, 29, -20, 14, -7, -16, -4, -7, 30, 5, -43, -6, 25, 46, 11, -5, -11, 29, 38, 12}, + {6, 37, -25, -16, -10, -19, 13, 22, -32, 15, -17, -1, 29, 35, -28, 8, -4, 27, -25, 48, 2, 12, -21, 11, 33, 22, 17, 10, 8, 0, 33, -14}, + {27, 42, -13, -24, 23, -35, 24, -7, 37, 14, -13, 37, 23, 0, -32, -16, 2, -34, -20, 34, 4, 28, -39, -18, -18, 52, -35, -26, -38, 43, -9, 14}, + {4, 7, 43, 14, 0, -4, 8, -38, 21, 25, -22, -18, -14, -12, 40, 40, 29, -28, 28, 49, 9, -6, -13, -36, -25, 6, -7, -31, 1, 18, -43, 42}, + {-23, 22, 8, -33, 29, 40, 12, 18, 0, 55, -41, -6, 2, -9, 25, 23, 5, -39, -8, 8, -13, 42, 19, -13, -16, 5, -17, 0, 9, 52, -35, 1} + }, + { + {5, 13, 22, -19, -40, -2, 25, -12, -24, -18, 8, 25, -12, 35, 35, -29, -3, 11, 34, -8, 32, 20, -35, 21, 10, 64, 36, 10, 34, 30, 39, 1}, + {28, 0, 52, -12, 22, 14, 28, -10, -12, -17, -35, -2, -18, -13, 5, 41, 35, -35, -25, -28, 5, -19, 23, 18, -34, 40, 17, -2, 18, 45, 28, -12}, + {-20, -10, 50, 8, -18, 35, 23, -34, 5, 28, -6, 37, 25, 5, 0, 24, -7, -21, 21, -21, 36, 4, -22, -22, -28, -10, -29, -19, -4, 25, 17, -12}, + {0, -23, -25, -22, 29, -30, -27, -30, -11, 19, 14, 27, -23, -7, -11, 38, 47, -26, 29, 4, -12, 39, -18, -36, 12, 3, -26, -27, 13, -17, -19, 0}, + {-30, -24, 30, -20, -6, 8, -30, -17, -21, 19, -29, -14, 24, -35, 11, 33, -11, -24, -41, -28, 16, 25, -3, 4, -28, -26, 26, -12, -3, 35, -32, 14} + } + }, + { + { + {-31, 7, 54, 27, 9, -28, 20, -24, 19, 22, -8, -17, -36, 13, -25, -16, 47, 21, 25, -25, -6, 62, 1, -14, 29, -51, 26, -20, 7, 29, -33, -11}, + {5, 49, 53, -16, -7, 13, 38, 35, -2, 23, 21, -33, 37, -33, 9, -11, 47, -26, 6, 11, -37, 41, 6, -47, -30, 16, 10, 21, 12, 13, 12, -7}, + {30, 14, 10, -3, -19, 12, -5, 44, 34, 30, -20, 8, 16, 9, -19, -8, 14, 35, 3, 1, 7, 19, 25, -21, -29, 2, -15, 11, 2, -27, 36, 13}, + {39, 14, -11, 11, -9, -39, 26, 40, 12, 32, 20, -48, 20, 30, -17, -4, 14, 26, 11, 14, -29, 69, 39, 6, 9, -31, 22, 25, 11, 11, 17, -15}, + {-22, 42, 13, 27, -3, -45, 0, 24, 25, 4, 39, -22, 9, -3, -43, -37, 22, -28, 5, -20, 8, 78, 35, 3, -3, -1, 14, -5, 34, 8, -19, 6} + }, + { + {21, 50, -15, 30, -19, -17, 7, 24, 11, 25, 17, -39, 19, -6, -39, -49, 56, 35, -29, -10, -11, 49, -25, -4, 37, 3, 16, -10, 22, 21, -14, -10}, + {6, 18, -18, 0, -7, 7, 36, 25, 1, 46, -21, -24, 46, 41, -41, 8, 4, 53, 19, -6, -4, 38, 4, -44, 11, -33, 27, 40, 27, -29, 35, 4}, + {34, 80, -23, 48, -5, -43, 32, -17, 20, 48, 51, -46, 29, 27, -50, -17, 31, 35, 8, 24, -6, 90, 7, -44, -13, 27, 19, 18, 31, 34, -15, 12}, + {-18, 54, -26, 14, 30, 8, -11, 46, 15, 19, 47, -27, 32, 51, -31, -43, 22, -14, 27, -21, 27, 60, 6, 26, 13, 26, 20, -10, 39, 27, -1, -13}, + {8, 87, -12, 28, 10, 24, 53, -17, 35, 17, 31, -11, -2, 38, -16, -27, 56, 8, -17, 27, -26, 86, 27, -31, 13, -18, 21, 34, 49, 16, -17, 6} + }, + { + {39, 58, -12, 34, 51, -7, -13, -21, 41, 48, -19, -30, -2, -7, -41, -34, 8, -4, 40, 16, -8, 77, 2, 26, -13, -2, 15, -10, 18, -32, -3, 6}, + {-25, 27, -44, 13, 31, 18, 39, -43, 11, 51, 33, 21, 25, 42, -11, 20, 27, -20, 2, 7, 11, 53, -31, 18, -6, 1, 9, 14, 2, 15, 25, 0}, + {-8, 47, -6, -16, 41, -33, 12, 19, 24, -9, 10, 2, -21, 1, -16, 29, 43, -1, -6, 50, -39, 73, 13, 40, 35, 3, 45, 21, 26, -24, 53, 1}, + {18, 31, -37, -11, 30, 3, 53, -12, 44, 0, -8, -2, -17, 23, -13, -19, -5, 2, 25, 17, -21, 38, -22, 7, 5, 31, 38, 25, 63, 26, 53, -1}, + {-24, 83, 25, -4, 37, 1, -4, 23, -14, 2, 12, 15, -38, 50, -33, 27, -2, 37, 37, 1, -13, 40, -6, 31, -17, 8, 15, 3, 49, 1, 52, 58} + }, + { + {13, 64, -26, -54, 36, 47, 37, 7, -17, 3, 10, 19, 9, 21, -17, 11, 21, 12, 55, 31, -20, 20, 0, 12, 18, 9, 13, 11, 23, 2, -31, 21}, + {-38, 94, 8, -12, -26, 20, 50, -46, 24, 41, 13, -8, -16, 35, 3, 34, 48, -42, 42, -20, -38, 1, 29, 54, 10, 28, -11, 45, -10, -6, -24, 36}, + {20, 64, -31, -53, 23, -22, 28, 3, 9, 13, -17, -9, -11, 53, 14, -4, -1, -9, 59, 8, -25, 17, -24, -11, -49, 15, -1, 43, -29, -44, 27, 64}, + {-21, 89, -42, -22, -15, 5, 55, -52, -16, 45, -40, -19, -55, -2, 30, -12, -10, -35, 17, 15, -69, 24, 32, 53, -50, 18, 13, 33, 2, -12, 20, 26}, + {-17, 101, -45, -41, -22, -22, 33, -14, -21, 40, 12, -26, -58, 57, 25, 31, 31, -1, 42, 5, -14, -6, -11, -12, -31, 49, -19, -20, -9, 4, -28, 44} + }, + { + {4, 46, 32, 0, -10, 23, 27, -1, 3, 23, -11, -11, -32, 23, 17, 14, 11, -11, 3, 14, -63, 25, 34, 59, -51, 0, 13, 1, 11, -15, 23, 48}, + {-30, 80, 20, -13, -1, 49, 18, -23, 11, 27, -62, 31, -43, 47, -4, -16, -41, -30, 69, 16, -64, -6, 42, 8, -29, -1, -29, 15, -34, 13, -26, 43}, + {11, 89, -7, -20, -34, 0, 33, 6, -16, 20, 2, 43, -69, 35, -20, -15, -21, -9, 45, -1, -69, 17, 47, 53, -68, -5, -46, -21, -12, 14, -37, 36}, + {-60, 64, 27, -53, -7, 42, -1, 8, 21, 14, -23, 10, -56, 43, 27, 15, -22, 4, 3, -5, -44, 43, -10, 36, -61, -8, 14, 18, -3, -21, 4, 40}, + {-29, 44, -7, -38, -37, -15, 6, -10, 18, 30, 18, 30, -37, 47, -25, -1, 36, -51, 0, 1, -26, 19, 37, 46, -3, -7, -4, 12, -13, 0, -47, 24} + } + }, + { + { + {-1, -33, 6, 26, 11, -3, -16, 19, 24, -25, 35, -47, 13, -30, -55, 0, -16, 20, 4, 28, 43, -47, -10, -34, 23, -7, 40, 1, 5, 6, 41, -22}, + {-9, -30, -16, -11, -9, -27, -30, 27, -8, -43, -6, 11, 8, 10, 13, -42, -47, 12, 21, 10, 33, -33, -16, 16, 9, 20, -19, 9, -3, -50, 13, -10}, + {-8, -32, 34, 11, 5, 35, 23, 36, 41, -29, 2, -33, -4, -9, 27, -9, -4, 21, 27, -8, -6, 12, 5, 6, 34, 29, -21, 26, -23, 6, 1, -30}, + {8, -30, 23, -2, -8, 4, -27, 5, 48, -52, -7, 38, 41, 7, 1, 49, -14, -25, -42, -28, 19, -44, -23, -4, 15, 36, 13, 19, 9, 13, 33, -14}, + {-26, -31, -8, 12, -29, -14, 32, 0, 36, -43, -36, -11, 29, 11, 29, 26, 18, 12, -40, -7, -36, -55, 31, -3, -8, 1, 39, -29, 3, -29, -9, -9} + }, + { + {22, -11, -13, 45, 29, -16, 33, 9, 1, -31, 47, -12, 46, 7, 8, 17, 41, 38, -32, 14, 22, -17, 5, -15, 37, 23, -2, -1, -19, 31, 19, -39}, + {37, -6, 57, 48, 8, -17, -16, -1, 0, -34, 20, -41, 1, -21, -38, -20, -30, -25, -8, 1, 24, -33, -29, 12, 46, 51, -20, -23, 8, -30, -11, -32}, + {44, -3, 40, -20, -36, -12, 33, -3, 1, -64, -18, 24, -5, -20, 30, -2, -53, 5, 13, -16, -9, -10, 34, -22, -3, 58, 23, 27, -3, -43, 5, 26}, + {-5, -33, -13, -4, -10, 44, 24, 32, 1, -32, 32, 12, -21, -10, 0, -17, -28, -22, -35, -16, 33, -32, 12, 21, -8, 10, -10, -27, 0, 35, -15, 48}, + {2, -29, -41, -42, 13, -20, 25, -8, 39, -49, 24, -18, 18, 26, -23, -17, 10, 27, -10, 11, 5, -23, -21, 47, 11, 33, 34, 23, -41, -30, 16, -8} + }, + { + {53, -12, 9, 21, -12, -3, 14, 45, 32, -53, 59, 24, 43, -29, 8, -48, 39, 10, -14, 29, 9, 15, 37, -12, -2, 53, 13, -7, 40, -17, -13, 22}, + {35, -31, 15, 3, 30, 26, 22, 29, -13, -28, 21, 8, 49, -22, -23, 31, -42, 44, -21, -17, -23, -4, 32, -15, 52, 45, 16, 14, 16, -12, 31, -14}, + {33, -5, 43, -25, 5, -20, 37, 41, 6, -4, 16, 12, -20, 10, 20, 19, -35, -25, 22, -44, -2, 18, 0, 0, 12, 36, -3, 35, -34, -26, -16, -24}, + {-19, -20, 35, 15, -23, 2, 19, 39, -5, -19, 28, 37, -4, -27, 9, 38, -20, 20, -10, 13, -22, -44, -42, 44, 25, 0, 29, -9, -32, -21, 3, 30}, + {-5, -34, 18, -38, -24, 10, -7, -4, 29, 15, 21, 32, 13, -20, -5, 38, 14, 10, -49, -23, -16, -4, -20, -2, 16, 60, -28, -4, -1, -20, -2, 45} + }, + { + {36, -28, 5, 51, 13, -8, -25, 10, 36, -18, 42, -17, 14, 26, -49, -4, -17, 8, -47, 20, 27, -24, 28, 6, -2, 34, 7, 19, 17, 0, 9, 4}, + {15, 7, -13, 21, -21, -28, 11, 40, 18, 20, -12, -12, 57, -2, 22, 7, -36, -16, -30, -34, -8, -17, 2, -28, 42, 19, -5, -16, 8, 6, 4, -48}, + {-13, -17, 17, 41, -37, 24, 28, -2, -5, 14, -18, 22, 4, 13, -39, -15, -25, 16, -37, -9, -17, 8, 30, -19, 50, -2, 2, 38, 21, 8, 28, -32}, + {-20, -16, 49, 19, -30, 4, 19, 27, 26, -45, 24, -8, -22, 27, 20, 41, 1, 7, 16, -27, 31, -5, -37, 41, 21, 23, 15, -9, -39, 36, 19, 12}, + {-43, 15, 12, -16, 0, -17, -18, -13, 1, -39, -17, -10, -1, -3, -1, 14, -44, -23, 15, 16, -18, -33, -47, 8, -32, 45, -6, -37, 9, 39, -36, 29} + }, + { + {48, -54, -25, 40, 18, -1, -5, 26, 14, -21, 54, -32, 28, -5, 19, -2, -8, 3, -30, -36, 10, -27, -35, 22, 15, -2, -21, -6, 14, -22, 22, -14}, + {5, -54, 39, -11, 9, -8, 28, 44, 11, -16, -2, -28, 42, 2, 2, 33, -40, 42, -4, 20, 18, 20, 11, 6, 31, -13, 37, -3, 15, -29, 7, -25}, + {22, -3, -12, -18, 35, 16, -24, 29, -11, -54, 41, -18, -15, -26, 2, 35, -48, 4, -43, -7, -28, -42, 11, -14, -10, -12, 5, -9, 0, -37, 6, -38}, + {-28, -50, -4, -25, 28, -2, 27, -19, -18, -8, -12, -6, -4, 25, 35, -4, -31, -3, 5, -6, -18, 15, -14, -10, -20, -6, 27, -40, -8, 36, -7, -24}, + {-47, 6, 10, 19, 16, 9, -19, -15, 22, -2, -39, 13, 17, 26, 12, 40, -10, -14, -26, -39, -6, -13, -14, -4, 28, -21, 29, -23, -24, 34, 13, 15} + } + }, + { + { + {-6, -22, 12, 18, -15, -34, 1, 31, -5, 11, -30, -33, 6, -10, -27, 15, 9, -22, -6, 24, 7, -25, -46, -27, 1, 74, -2, -38, 31, 6, -26, 10}, + {-20, 27, 33, -29, 25, 26, 9, 25, 7, 2, 11, 20, 1, 2, -26, 31, 26, 19, -54, -2, 32, -52, -43, 0, 31, 88, 40, 29, -1, -18, -31, -17}, + {-18, 9, -6, -21, 35, 25, 10, -7, 14, -24, -47, -1, -37, -2, -12, 5, -15, -6, -5, -2, 0, 8, -20, -20, -28, 91, 5, 15, 19, -11, -8, -23}, + {-24, 26, -22, -4, -15, 30, -24, 20, 21, -29, -18, 5, -35, 41, 17, 30, 18, 20, -44, -16, 4, -47, -36, 31, 25, 29, 3, 9, -25, 37, -44, 27}, + {-19, -33, 15, 5, 36, -17, 17, -1, -21, 40, -12, 42, -17, 27, 43, 24, 31, -30, 16, 21, -10, 11, 15, -24, -24, 1, 29, 5, -10, 31, -31, 22} + }, + { + {-24, 23, 37, 35, -22, -8, -12, 37, 39, -7, 30, 36, 3, 34, 15, 28, 4, 12, -32, 14, -3, -19, -19, 20, -4, 74, 36, 22, 32, 2, 2, 19}, + {-18, -41, 11, -25, -23, -2, 29, 50, -23, -12, -41, 5, 17, 10, -33, 43, -9, -30, -49, -5, 50, -5, 13, 15, -3, 47, 44, -22, 31, 5, -24, -19}, + {4, 22, -13, 2, 1, -9, 7, 20, -15, -1, -40, 43, 4, 42, 46, 39, -41, 12, -51, -7, -5, -21, -18, -6, -17, 91, 23, -25, -18, -11, -7, 0}, + {-29, 11, -20, 13, -6, 20, 9, 33, 26, 3, -14, 34, 35, 4, 47, 31, 5, -15, -7, -16, 22, -9, -46, -21, 5, 43, -20, -33, 14, 31, 10, 13}, + {0, 10, 23, -22, 36, 24, 5, 34, -16, -16, 6, 25, -11, -31, -3, 50, -3, 28, -16, -28, 13, 0, -47, 10, -1, 50, 5, 2, 3, 45, -49, 32} + }, + { + {-25, -7, 29, -4, -10, -8, 20, 13, 15, -16, -38, -29, -4, -18, -31, -29, -23, 36, -15, -31, 22, -30, -7, -15, 11, 40, 7, -34, -22, 29, -2, -13}, + {-11, 30, 46, -16, 27, -2, -13, -17, -28, 16, -32, -3, -22, -17, 13, 10, 20, -32, -38, 3, -7, -8, 13, -8, -26, 47, 45, 9, -3, -7, 5, 8}, + {-24, -21, -9, -30, -16, -1, 12, 14, 40, 11, 20, 44, 15, 7, 29, 50, 29, 28, -45, -35, -21, -31, 4, 10, -7, 70, -8, 12, -31, 29, -2, 36}, + {5, -34, 21, 2, 0, 43, -11, 7, -13, 22, -34, -11, -28, 30, 36, 33, 24, -3, 14, -19, 25, 13, -47, 37, 33, 59, -8, 17, -25, 26, -26, 42}, + {1, 20, 20, 30, -17, 44, -28, 2, 36, 2, 10, 20, -20, 40, 36, 46, 8, -33, -52, -31, 0, -30, -23, -8, 6, 10, -7, 34, 25, -19, -45, 34} + }, + { + {6, -36, 19, 24, 19, 29, -11, 18, -6, 38, 25, 31, 20, 41, 24, 40, -30, -21, -54, -26, 22, -26, -19, -31, 8, 48, 46, -36, 21, -27, -26, 15}, + {5, 3, -8, -32, 21, 28, 12, 21, 18, -24, -2, 3, -5, -22, 34, 43, -19, -7, -4, 7, -18, -25, -11, -18, -15, 70, 19, 3, -9, 19, -13, 39}, + {-2, 6, -1, 4, -8, 12, 10, 31, 33, 34, 3, 21, -2, -1, 7, -24, -16, 27, -44, 5, -8, -27, -39, -25, 0, 32, 2, -30, 9, 14, -46, -23}, + {12, -25, -21, -27, 21, 42, 5, 16, -31, -4, 28, 22, -30, -9, 8, 16, 44, -34, -17, -31, -23, 5, -32, 9, -10, 80, 37, 5, 24, 31, 9, 13}, + {29, -10, -13, -21, 44, 44, -9, -9, -8, 46, -5, 49, 28, -6, 15, -6, 21, 0, -1, -14, 37, -21, 4, -3, 30, 39, -12, 13, -12, 4, 12, 12} + }, + { + {29, -23, -15, -23, -1, -18, -13, 22, -21, 20, 19, -33, -18, 32, -6, 0, -21, 36, -49, -30, 48, 6, -55, -1, 35, 43, 42, -33, -32, 4, -20, 12}, + {-29, -14, -15, 10, 9, -28, -28, -5, 16, 14, 16, -6, 44, 14, 11, -10, -12, 9, -38, -17, -8, -36, -43, -16, -6, 40, 33, 21, 20, 40, -24, -15}, + {2, -37, 12, 25, 36, 40, 19, -12, -24, -5, -23, 30, -15, 8, 41, -19, -35, 24, -56, -7, -19, -13, -7, -1, -14, 27, -21, 24, -26, 41, -23, 1}, + {-13, -40, 6, -29, -5, 5, -19, 20, -27, -5, -17, 19, 42, 5, 35, 28, 35, 9, -48, 32, 23, -17, -34, 22, -13, -1, 40, -29, -10, 36, 12, -18}, + {2, -7, 14, 6, 11, 33, -38, 37, 36, 12, 28, 40, -21, -30, 48, 26, 34, -9, 5, 17, 19, -40, -3, 9, -7, 25, -20, -25, 18, 17, 18, 7} + } + }, + { + { + {-6, -20, 8, -41, 20, -10, 11, -11, 17, 0, 16, 18, 10, -19, -26, -16, -6, -41, -20, 17, 30, -7, -38, 3, -9, 22, 16, 6, -5, 25, -21, 32}, + {-24, 16, -19, 22, 2, -18, 6, -25, 27, 5, 8, 19, 1, 8, 25, 32, 51, -14, -51, 11, -13, -35, -7, 1, -14, 12, -3, 11, -33, 6, 17, -11}, + {-25, -19, 0, 14, 41, 31, 24, 23, -18, -34, -13, -4, 42, -7, 5, 27, 19, 4, 4, 4, -3, -20, 13, -44, 5, 49, -15, 36, 30, 25, 15, 25}, + {27, 9, 50, 21, 22, 14, 9, 6, -3, -28, 7, -17, -4, 15, -22, 16, -12, 2, -7, -5, 16, -48, -6, -21, 23, 76, 19, 11, -6, -20, -4, -46}, + {19, -4, -19, 37, -24, 31, 37, -18, -13, -34, -34, 0, -32, 6, -12, -36, -21, -7, -49, 30, -15, -24, 12, 27, 35, 69, 6, 10, -30, -12, 22, 28} + }, + { + {-15, 19, 40, -22, -14, 8, 47, 11, -9, 19, -17, -17, 21, 23, 16, 34, 28, 8, 2, 27, -5, -39, -54, 9, -10, 43, 37, -12, 0, 41, 16, 40}, + {-2, -17, -20, -2, 34, -7, 19, 12, -8, -26, 33, 29, 5, -29, 19, 3, -21, 34, -18, 19, 26, -29, -56, 33, -10, -8, 36, 43, 45, 46, -43, 30}, + {16, -9, -12, 29, 43, 10, 33, 3, 36, -15, -21, 32, 50, -28, 6, 23, -7, 32, -2, -21, 39, 10, -15, -7, 45, 90, -5, -9, -17, 32, 10, 25}, + {3, 19, 62, 1, 6, -30, 20, 50, -2, 9, 24, 1, 2, -34, -9, 12, 28, -20, -10, -20, 41, 10, -53, 27, -6, 94, 30, -21, 34, -12, 15, -38}, + {-12, 3, 54, 13, -5, 6, -29, -14, -28, 8, 27, 27, -25, 18, 1, 8, 6, -40, 17, -32, 36, 14, -43, 19, -26, 28, -30, -25, -15, 8, -8, 40} + }, + { + {10, -23, -2, -4, 20, -26, 35, 29, 40, 14, 21, -26, -18, 3, 15, 2, -8, -17, 5, -32, -28, 12, -13, -28, 21, 37, 34, -17, -6, 49, -22, -15}, + {-27, -48, -17, 15, -9, 8, -10, -21, 24, 8, 1, -8, -9, -1, 30, 5, 16, -5, -45, 19, -12, 10, -44, -8, -24, 43, 49, 40, 44, 48, 3, 46}, + {22, 13, 3, 40, 25, 6, 42, 0, 15, -18, 24, -2, 49, -27, -15, -3, 3, 20, -15, 30, -4, -22, -42, 7, 29, 81, 12, 14, -18, 22, -13, 19}, + {28, -29, 38, 50, 38, 23, 32, 4, 40, -25, -5, 16, -17, -21, -12, 13, 1, -2, -52, -23, -19, 7, 7, 1, 36, 23, 9, 0, 38, 4, 18, 25}, + {-25, -16, 13, 30, 17, 12, 34, -22, -16, 17, -33, -18, -26, -20, -20, 16, -10, 12, -8, 25, 21, 20, -39, -33, -3, 34, -14, 30, -24, 19, 11, 19} + }, + { + {13, -39, -5, 33, 5, 7, 34, 18, -19, 17, -31, -16, -30, -8, 32, 22, 1, -31, -59, -34, 26, -48, 7, -1, -26, 2, 48, 12, -23, -15, 1, 50}, + {20, -33, -35, -4, 46, -3, -17, -5, 8, 16, 31, -33, 25, -24, 29, 30, 56, -7, -73, -21, 20, -38, -33, -9, -27, 18, 36, 2, -5, -5, -11, 14}, + {-26, -23, 17, -10, 43, 2, 33, 36, 21, 7, -26, -13, 19, -29, -28, -17, 24, 5, -55, 24, 40, -17, 0, -35, 2, 25, 20, -9, 18, -5, -27, -7}, + {3, -1, 43, 32, 1, -23, -23, 58, -12, -35, -32, 27, 27, 25, -4, 1, -3, 32, -27, 13, 32, 5, 3, -29, 19, 71, 10, -29, -16, -19, 15, -13}, + {28, 11, 5, -2, 27, 23, -32, 35, 7, -23, -35, 20, 7, 31, 44, 33, -10, 27, -14, -32, -21, -33, -21, 12, 35, 76, 37, 26, 39, 38, 23, -23} + }, + { + {6, -17, 17, 34, 6, -16, 14, -17, 25, 22, -3, -16, -22, -25, -22, 34, 45, -23, -73, -46, -20, -35, -13, 22, 31, 52, -5, -13, 3, 36, -44, 40}, + {16, -58, -42, -17, 49, 23, 1, 35, 22, -14, 4, -9, 2, -12, -23, 34, 49, 24, -53, -3, -11, -26, -24, -10, 13, 55, 24, -17, 31, -24, -37, -3}, + {39, 9, -28, 46, 24, -33, -18, 24, 8, 31, 26, -25, 29, -11, -6, 25, -8, -16, -38, 16, -18, -11, -67, -37, -3, 6, -25, 17, 35, 39, 12, 10}, + {18, -42, 33, 29, 22, 25, -19, -7, 11, 13, -33, -14, 8, 2, -30, -25, -5, 8, -42, -37, -26, 12, -15, -42, -4, 76, -28, -15, 34, 6, -19, 5}, + {2, -29, 42, 25, 32, 30, -8, 15, -3, 20, 4, 18, 6, -24, 22, -31, -10, 29, -2, -7, 1, 5, 10, -29, -7, 10, -35, 27, 1, -3, -22, 33} + } + }, + { + { + {6, -54, 21, -4, -25, 1, -13, 40, -33, 24, -9, -40, 36, 8, -27, 17, 7, 0, 0, -46, 6, -18, 4, -13, 27, 58, 11, -24, 21, 47, 27, -51}, + {-28, -22, 48, 7, 35, -16, -14, 27, 5, 28, -34, 5, 12, -38, -20, -14, -31, 23, -30, -14, 39, -51, -43, 14, 37, 60, 23, -9, 16, -6, 24, -21}, + {-32, 24, 44, 0, 26, 37, 31, 37, -30, -31, -36, 33, 32, 23, -7, -24, -47, 25, 0, -20, 26, -30, -23, 36, 6, 76, -6, -11, -22, -13, 8, 18}, + {10, 18, -19, -8, 5, 28, 12, -32, 32, 12, 2, 5, -21, -12, 25, 25, -17, -11, -56, 11, 42, -45, -52, -16, -15, 36, -22, 4, 0, 22, -24, -24}, + {-13, -28, -27, -21, 25, 33, -34, -1, 35, 12, -18, -21, 1, 1, 7, 42, 3, -9, -7, 26, -7, 1, -15, 11, 18, 33, 25, -30, -13, 19, -17, 43} + }, + { + {-18, -17, -10, 21, -20, -20, -12, 50, -10, 13, 38, -19, 3, -7, -15, -42, 18, -13, -64, 20, 50, -41, 4, -45, -5, 48, 48, -28, 36, 17, -3, -47}, + {7, -46, 3, -13, 25, 5, 25, 44, -3, -19, 20, 12, 17, -31, 22, 37, 7, -16, -13, 8, 44, -55, -35, -9, 28, 26, -17, -22, 4, 2, 26, 9}, + {-14, 5, -9, -10, 23, -17, -15, 33, 3, 4, 0, -14, -18, 4, -4, 33, -41, 28, 2, -43, 43, -41, -6, -30, 13, 89, -8, -16, -6, 9, -45, -1}, + {-7, -36, 26, -14, 19, 7, 13, 10, -4, 33, -21, 25, 24, 9, 39, 18, 15, -42, -41, 20, -15, -10, 8, -21, 7, 69, 18, -29, -3, 29, -50, 30}, + {15, 12, 23, -18, 34, 5, -34, -8, 0, -29, 11, 26, -14, 4, -12, 40, -13, 14, -53, -24, -24, -68, -6, 11, 14, 40, -24, -19, -34, 5, -49, 32} + }, + { + {26, -12, 21, 29, 10, 4, 14, 46, 32, 38, 23, -44, 53, 23, -35, 14, 18, 35, -76, 22, 24, -24, -41, 8, 18, 40, 43, 31, 29, -11, -5, -42}, + {-28, 4, 57, -15, -30, -35, 11, 50, -35, -11, -36, 10, 21, -8, 9, -23, -2, 3, -7, -35, -3, 3, -2, -6, 23, 27, 39, -18, 4, -5, -9, 10}, + {-28, 2, -2, 6, -10, -22, 36, 50, -25, -24, -25, -20, -2, 26, 21, 43, 5, -26, -16, -20, 5, -54, -48, -29, -13, 57, -11, 14, 12, 27, -23, -10}, + {-48, -34, -5, -34, -15, 38, 11, -25, 24, 5, -47, -4, 0, 3, 52, 52, 15, -11, -27, -30, -23, -58, -51, -1, -44, 27, -27, -5, -17, -10, -22, 5}, + {-20, -6, -38, 4, 7, -8, 32, -8, -8, 4, -39, 50, -15, -35, 18, 44, 48, 6, -41, 25, 8, -44, 3, -19, -37, 55, -28, 8, 17, -10, 1, 46} + }, + { + {34, -23, 1, 8, 37, -46, 20, -7, -20, 31, 27, 26, 46, 38, -30, 0, 43, -10, -68, 23, 62, -48, -38, -54, 22, 45, 42, 11, 20, 23, 2, 12}, + {6, -20, 39, 28, 39, -21, 5, 47, -14, -7, -24, 30, 7, 37, -33, 31, -31, -30, -65, -8, 34, 7, -7, 12, 1, 10, -22, 2, -16, 19, 33, -44}, + {-7, -57, -1, -21, -18, -23, 34, 38, 28, 28, -28, 36, 17, -12, -18, 33, -56, -43, -51, 0, 0, -41, -54, -1, 4, 66, 30, -26, 18, 20, 25, -14}, + {19, -58, 10, -9, -21, 2, -33, -19, -4, -8, 18, 14, 9, -22, 37, -17, 31, -44, -49, 2, -26, -65, -24, 10, 17, 72, -25, 5, -5, -4, -52, 40}, + {-45, -29, -34, -1, 28, -8, 31, -13, 1, 1, 22, 19, 30, -30, 58, -7, 30, 17, 2, 1, -6, -20, -15, 36, 19, -6, 23, -37, 8, 38, -43, -4} + }, + { + {5, -15, 14, -15, 35, -49, -23, -12, -1, -13, 21, -16, -11, -22, -43, -35, 13, 10, -27, -14, -7, -8, -35, -31, -6, 34, -16, -17, 37, 8, 37, 20}, + {23, -68, -15, 28, -14, -3, 17, 17, -2, 27, -18, -22, -19, -26, -1, 37, 20, 19, -39, 19, 57, -53, -49, -19, 43, 31, -28, 6, 18, -27, 22, 19}, + {20, -20, -5, -19, -19, 2, 5, 3, -12, -2, -10, 25, 27, 24, -15, -25, -19, -38, 1, -31, -19, -36, 3, 31, -36, 47, -37, 5, -36, 0, 10, 27}, + {-54, -74, -30, -14, 0, -16, 9, -33, 21, -27, -37, 50, -12, -29, 25, 23, 20, -36, -59, -42, 32, -17, 4, -19, 5, 36, 3, 12, 20, 45, -25, 22}, + {-5, -28, 11, 12, -24, 1, -13, -8, 22, 37, -28, 42, 2, -25, 46, 42, 10, -46, -13, -13, 1, -53, 2, 15, 24, 22, -2, -26, -3, 10, -13, -23} + } + }, + { + { + {40, 15, 12, -21, -30, -17, -66, 1, -22, -13, 18, 29, 5, -25, 45, -13, -31, -21, 45, 18, 15, 30, 28, -2, -13, -54, -22, 15, -5, -30, 36, -35}, + {13, -34, -20, 5, 3, 50, -64, -13, -4, -13, -20, -17, 33, -18, 57, 16, -3, -15, 52, 37, -7, -15, 2, 3, 25, -47, 3, -14, -7, -43, 6, -21}, + {29, -6, -26, 25, -15, -2, -12, 0, -17, -51, -2, 36, 18, -55, 50, 16, -27, -28, -12, -11, -12, 19, 4, 4, -27, -75, 32, -35, -5, -47, -6, -52}, + {43, -30, -25, -25, -9, 15, -57, -23, 19, -33, 29, 19, -16, -51, 44, -10, -48, -12, 17, 11, -14, 21, -6, 28, 31, -56, -26, -2, -16, -13, -4, 16}, + {33, -50, 15, -39, -30, 7, -47, 6, -31, -50, 28, -23, 24, -31, -6, 27, -27, -36, 6, 32, -5, -34, -5, 11, 30, -28, 3, 10, 28, -22, 8, -39} + }, + { + {26, -26, 12, 8, -3, -15, 0, 5, -1, 9, -4, 31, 2, -10, -3, -34, -6, 22, -2, -11, 37, 12, 18, -9, -20, -50, -38, 27, 23, -4, 12, -22}, + {-10, 13, 32, 28, -30, 31, -47, 27, 14, -44, -14, 14, 28, -49, -13, -4, -12, -6, 36, -20, -11, -10, 21, 16, 15, -70, 23, -30, -37, -16, 3, -54}, + {34, -49, -40, -14, -7, -15, -6, 3, -18, 1, -22, 16, 7, 7, 5, -10, -9, 34, 5, 46, 7, 13, 20, 46, 14, -56, -14, 27, -34, -46, 2, -39}, + {18, -46, -15, 4, -42, 38, -70, -23, 20, -10, 14, -14, -19, -25, 53, 1, -29, -30, 47, 40, 14, -3, -6, 15, -22, -16, 25, 16, -22, 21, 17, -38}, + {20, -44, 1, -26, -46, -18, -49, 0, -3, -56, -26, -26, 4, 11, -13, -4, -32, 33, 26, 31, -10, -17, 58, 42, 7, -81, 7, 29, 15, -6, 9, -30} + }, + { + {20, 22, -7, 23, 2, -25, -36, -32, 29, -28, 29, -17, 12, -28, 36, 15, -26, 9, 58, 30, -7, -36, 0, 35, 40, -83, 27, 21, 15, -20, 33, -30}, + {-25, -29, -7, -21, 5, -1, -38, -36, -17, -57, 30, -31, 10, -41, 29, -26, -9, 16, 35, -21, 30, -1, 0, 33, -24, -64, -10, 45, -27, -45, 0, 15}, + {38, -38, 2, 8, -16, -24, -2, -39, 13, -34, 32, 14, 5, -23, 32, 14, -50, -18, -7, -8, -27, 33, 30, 10, 16, -57, 3, 5, 3, 14, 36, -23}, + {-20, -20, -40, -32, -6, 39, -43, -25, 35, -23, 40, -4, -9, -8, 7, -28, 8, 15, 15, -6, 10, 11, 38, 20, 25, -30, -23, 38, 23, -42, 5, 15}, + {0, -45, -21, 25, -44, 43, -8, -15, 34, 18, -15, -22, -8, -29, 7, -2, -42, 28, 23, 22, 37, -8, 18, -1, 37, -61, 30, 15, -25, 12, 40, -1} + }, + { + {-9, -31, 17, -1, -30, 41, -19, -19, -25, -41, 30, -2, 21, -16, -5, 29, 20, 1, 21, -21, -9, -13, 18, -12, -19, -56, -30, 20, -21, -28, 9, -8}, + {38, -30, 19, -18, -1, -10, -54, -25, 7, -2, -27, -4, 32, -28, 36, -24, -11, 24, 34, 47, 29, 15, 0, -15, -14, -55, 3, 28, 7, -36, -13, -21}, + {-28, -14, -12, -17, -32, 13, -47, -23, 37, 33, 5, -15, 16, 20, 43, -31, 9, 23, 34, -5, 18, 3, -7, 44, 17, -72, -9, -26, -29, -33, -10, -9}, + {33, -23, 2, -18, -6, 28, -32, -26, -1, -4, 38, 6, -16, 25, -5, -1, -21, -22, 25, -18, 8, -36, 29, 35, -16, -30, 24, -15, -11, 26, 40, -32}, + {42, -27, 7, -13, 20, 35, -13, -36, -5, 29, -19, 5, -27, 16, 32, 8, 24, 1, 18, -1, -6, 8, 10, -12, 32, -45, 9, 26, 3, 22, 3, -25} + }, + { + {-1, 34, 6, 32, 6, 44, 8, -6, -10, 34, 34, 28, -9, -26, 27, 26, 17, 26, 39, 33, -21, -10, 59, -16, 15, -15, -28, -19, 31, 30, 37, -4}, + {9, 30, 34, 1, -25, 38, -12, 23, -16, 29, 14, -23, -16, 23, 24, 3, 20, -25, 60, 43, -15, 32, 41, 27, -15, -28, -21, -23, 23, -33, 23, 27}, + {34, -24, -16, -27, -38, -3, 0, -38, 0, -17, 23, 27, -1, -10, 20, -14, -10, 24, 20, -9, 11, 10, 41, -11, 6, -7, 5, 36, 23, -18, 14, -22}, + {-16, 2, 8, -40, -22, 20, -20, -16, 23, -12, 1, -27, 8, 16, 20, 34, 14, 16, 34, 36, 32, -33, 26, 23, -22, -44, 19, -2, 19, -17, 32, -10}, + {25, 7, -30, 11, -10, -8, 13, 7, -19, 0, -6, 29, -28, 2, 47, 26, -29, -3, 58, 44, -28, 16, 27, 18, -35, -11, 5, 32, 1, -17, 19, 17} + } + }, + { + { + {40, -45, -6, -18, 16, 24, 8, 16, 40, 5, 43, 10, 12, 22, 30, -20, 37, -6, 16, 6, 37, 14, 21, 28, 11, 18, 11, 21, -34, 27, 7, -23}, + {15, 12, -19, 39, 45, -1, -13, -27, -24, -4, 34, 24, 28, 30, -1, 17, 42, -21, 3, 8, 13, 40, 20, 21, 10, 0, 22, 16, 30, -26, 1, 12}, + {12, -22, 33, 31, 28, -27, -10, 9, 20, 26, 28, -9, 13, -10, -34, 2, 10, -19, -33, 29, 8, 34, -10, 18, 22, 34, -19, 7, 20, -33, 15, 17}, + {44, 22, 24, 29, 16, 34, -5, 9, 15, -3, 26, -12, -16, -32, 18, -27, 39, 42, -13, 11, 22, 12, 20, -18, 34, -1, -19, -17, -30, 22, 37, 14}, + {0, -25, 11, -28, 33, 16, 1, -11, -18, -37, 31, 36, 34, 6, 37, -22, 29, -22, -23, -35, -4, 4, 13, -23, 33, 62, 18, -17, 28, -15, 29, 33} + }, + { + {22, -24, -33, 3, 10, -31, 9, -13, 34, -9, -4, -17, 15, -39, 5, 11, 31, 31, 6, 27, 38, 17, -22, -18, -1, 37, 24, -13, -12, -6, -29, -8}, + {30, -44, -26, -7, 2, 9, -19, -15, 34, 20, 20, 14, 18, 29, -26, 30, 18, -25, -20, 39, 40, -10, 1, -8, 0, 48, 27, 16, -9, 13, 9, 10}, + {57, -15, 37, -27, -2, -43, -13, 13, 31, 28, -23, 24, -8, 2, -37, -6, 43, 9, -19, 28, 14, 26, -25, 1, -8, 6, 0, 25, 29, -23, 45, 35}, + {39, -24, 0, -13, 29, 12, -8, 22, 6, 15, 32, 7, 43, 5, -20, 22, 0, 37, 20, -11, 37, -7, 25, 26, -5, 37, -8, 46, -3, 9, -3, 13}, + {15, 29, 52, 36, -13, -28, 26, 40, 36, -21, -4, 23, 28, -26, 30, -7, -28, -6, -9, 26, -13, 13, 20, -23, -3, 16, 37, 7, 33, 8, 19, -34} + }, + { + {42, 19, 23, -17, -1, -35, -6, 35, 6, 25, -17, 8, -3, 22, 21, -18, 45, 12, -21, -3, -3, 12, -26, 29, -27, -3, 20, -26, -16, 46, 32, 11}, + {11, 12, -22, -21, 16, 22, -10, -23, 44, -6, 31, 29, 22, 17, -21, 5, 5, 47, 1, -6, -6, 11, -33, 14, 43, 44, -10, -27, -20, 41, 28, 38}, + {32, -16, 19, 7, 46, 8, -27, 37, 9, -14, -8, -37, 50, -14, 6, -26, 36, 28, -11, -13, 7, 35, -5, -13, 5, 59, -1, 34, 7, 28, 4, -18}, + {52, -17, 47, -8, 8, 10, -34, -14, 40, 12, 0, -41, -8, 2, -30, 19, -10, 23, -1, 3, 12, -28, -22, -11, 48, 34, 12, -25, 17, -35, 21, -27}, + {14, -41, 2, 11, 26, 36, -12, -14, 10, 5, -5, -35, -10, 23, -10, -9, -10, -17, 1, -23, -7, 4, 3, -18, 45, 46, -23, 37, -25, 2, 10, 2} + }, + { + {16, -50, -29, -10, 48, -25, 28, 4, 6, 1, -10, 31, -9, -42, 2, -25, 4, 37, -5, 23, -7, -52, -20, 12, -29, 11, 29, -24, -14, -6, 33, -4}, + {-17, -16, 31, 39, 19, 3, 9, -14, -16, 29, -10, 23, 45, 15, 0, -12, 30, 27, -37, -23, 24, 19, 11, -41, 39, 36, -1, 36, 2, 5, -21, -1}, + {22, -17, 18, 27, 48, 3, 37, 30, -11, 21, -22, -43, 33, -7, -3, -35, -19, 48, -2, -20, 21, 11, -35, -4, -7, 29, 7, -2, -18, -4, 44, -37}, + {-9, -6, 17, 42, -28, -23, -1, -15, 8, 27, 48, -24, 39, -1, -35, -19, 9, 10, -17, -14, -24, 23, 24, -41, -6, 30, -2, -24, 38, -10, -3, 24}, + {28, -35, 59, 26, -31, 13, 24, 14, 28, 9, -29, 17, -25, -27, 28, 34, -36, -26, -11, 34, 4, 17, -15, -38, 10, 26, -8, -30, 30, -15, 13, -17} + }, + { + {-22, -14, -11, -40, 1, -39, 32, -32, 13, 1, 0, -11, 24, -1, 7, -4, -21, 8, 8, -27, 37, -10, -51, 18, 31, 1, -29, 9, 29, -1, 22, 14}, + {28, -59, 18, 28, -20, -43, 27, -17, 28, 33, -31, 7, -14, -26, 24, 2, 37, 4, -42, 27, 42, -2, -43, -18, 30, -26, 28, -30, 6, -13, -16, 27}, + {-19, -52, 16, 30, 12, -50, -9, 22, -12, -11, -3, 1, 22, -4, 5, -3, 3, 44, -40, 5, 2, -37, 6, 9, -8, -6, 20, 33, 8, 9, 32, -2}, + {-5, 6, 15, 39, 31, -33, -36, 32, 23, -11, 19, -3, 43, 14, -39, 2, -8, 31, -10, 0, -21, -37, -36, -7, 24, 17, 3, 9, -10, -11, -20, 13}, + {-12, -48, 48, 10, 24, 10, 28, 40, -4, 27, 37, -1, -11, -26, 4, -10, 1, 10, 2, 28, 12, 23, -17, -37, 9, 29, 18, 30, -23, -3, 14, -37} + } + }, + { + { + {31, -13, -18, -39, 14, 45, -38, -13, 4, 16, 37, -28, -14, 0, 37, -10, 18, 8, 41, 13, -11, 18, 1, 5, 19, -50, -19, -14, -41, -8, 17, -9}, + {-6, -29, -31, -1, 20, -10, -21, -40, 22, -16, 8, -32, 34, -13, 26, 34, 11, 25, 55, 33, -31, 3, -5, 24, -13, -28, -3, 11, 26, 16, -12, 5}, + {-7, -21, -15, 16, 28, 39, -11, -32, -11, -4, -24, 15, -17, -30, -15, -2, 29, 28, -12, 11, -38, 30, 60, 37, -16, -40, 14, 5, -37, -11, 33, -11}, + {40, -48, 9, 32, 20, 27, 14, 19, -2, -3, -30, -25, 15, 4, 42, 7, -7, -25, 55, 36, -26, -22, 21, -25, 34, -32, -8, -3, 2, 23, -12, -45}, + {35, 0, -9, -13, -13, -14, -15, -24, -18, -31, 23, -26, 37, 10, 23, -23, 25, 1, 31, -27, 13, -11, 21, 11, 21, -11, -2, 15, 1, -11, -23, -36} + }, + { + {-1, 32, 12, -21, -32, 12, -47, 1, -27, 9, -21, -17, 25, -32, 43, 34, 24, -9, 52, 41, 22, 30, 23, 3, -16, -62, 19, 30, 20, -33, 16, 14}, + {28, 25, -18, 34, -41, 1, -44, -36, 27, -40, -1, -32, 42, -40, -3, 6, 10, -29, 24, 21, 36, 18, 41, 20, 12, -34, -34, -18, -13, -18, 1, -41}, + {-1, 10, 2, -26, -11, -17, 5, -10, 34, -50, 39, -7, -7, -31, 34, -16, 36, -14, 53, -18, 11, 38, 35, -23, -27, 14, 10, 5, 1, -8, -20, 17}, + {18, 30, -4, -20, 24, -29, -41, 1, 25, 1, -16, -19, -28, -39, 37, -13, 37, 9, 44, 5, 23, 36, 59, 9, -11, -33, 25, -23, 25, -32, 21, -14}, + {3, -9, -8, 4, -27, -3, -19, -7, -17, -32, 36, -3, -13, -41, 21, 25, 25, 18, -10, -16, 33, 24, -2, 1, 17, -53, 17, 41, 29, -12, 34, -28} + }, + { + {19, -19, -29, 30, -9, -14, -11, -14, -5, 21, 30, 1, 37, -5, 21, 25, 13, 22, 45, 28, 7, -14, 62, 27, 32, -2, -26, -4, -36, 13, -8, 19}, + {32, -31, -20, 10, 22, 23, 5, 4, 42, 11, 42, -41, 31, 22, -19, -18, 16, 9, 33, 26, 6, 0, 17, 26, 27, -43, 11, 37, 25, -29, 32, -45}, + {28, -6, -1, -30, 26, 29, -7, -24, 41, -18, 15, 19, -11, -52, 8, -41, 34, 30, 47, 24, -5, 32, 9, 25, 14, -27, -39, 13, -18, -39, 21, 4}, + {13, 16, 27, 7, -33, 18, -4, 32, 22, -4, 27, -20, 33, 9, 25, -46, 7, -31, 39, -6, -22, -13, 35, -24, -20, 24, 19, -21, 29, -4, 13, -35}, + {-21, -15, -17, -28, -2, 11, -6, -33, 25, 23, -4, -1, 34, -25, -2, -13, 10, 3, 8, 34, -23, 19, 42, 38, 21, 6, 2, 27, 24, 12, 37, -12} + }, + { + {-17, -6, 39, -8, 32, 28, -58, -40, -10, 24, 23, 33, -18, -16, -13, 26, -21, 29, 43, -19, -7, 44, 42, -22, 18, -19, 1, 18, -32, -24, -15, -28}, + {42, 22, 4, 4, -19, 12, -44, 12, -17, -4, 19, -37, -22, 25, 38, -26, -14, -14, 62, 15, -18, 50, 55, 26, 26, -20, 16, 34, 29, -31, -10, 25}, + {32, 35, 31, -32, 22, 12, -52, 21, 21, -32, 28, 13, 5, -31, 21, 2, 29, 7, 32, 18, 1, 31, 47, 36, 40, 11, -32, 28, -32, -19, 49, 26}, + {31, -11, -22, 10, 20, 19, 3, -18, 9, 2, -1, 9, 28, -23, 19, -16, 1, -9, 52, 43, 23, 13, 33, -23, 39, -40, 15, 51, -11, -9, 51, -17}, + {25, -21, 6, 7, -12, 32, -47, 19, 19, 11, 38, -43, -24, -36, 17, 21, -21, 11, 54, 0, 12, 14, 18, -8, -29, -19, 21, 20, 4, 32, 45, 16} + }, + { + {38, 45, -7, 12, 0, -30, 19, -9, -4, -20, 9, 22, -21, -21, -6, 34, 10, 9, 23, 8, 1, 25, 63, -21, 15, -35, -38, 31, -24, -2, -17, -8}, + {25, 34, 37, 34, 36, -27, -6, -8, 39, -36, -6, 30, 2, -23, -23, -30, 16, 15, 70, 32, 27, -2, 25, 33, -29, 15, -23, -7, -24, -20, 41, -24}, + {-9, -8, 41, 8, 16, -17, -16, -17, -5, -27, 9, 10, -6, 6, 25, -14, -9, -16, 56, 35, 8, 23, 32, -3, -29, 24, -20, 11, -10, -33, 46, -25}, + {-3, 13, 26, -10, -30, 29, -22, -32, 16, 28, 32, 14, 4, 8, 26, 12, 17, -30, 65, 48, -30, 4, 30, -21, 32, -25, -27, -22, 24, -18, 49, -40}, + {-1, 22, 19, -36, 8, 14, -20, 30, 27, 20, 21, 9, -17, 33, -24, 33, 24, 11, 60, 42, 2, 32, 4, 6, -11, -14, 32, -9, 17, -23, 41, 19} + } + }, + { + { + {-7, 10, 31, 2, -34, 28, 26, -28, -15, -43, 25, -23, 13, 1, 2, -8, -14, 1, 23, 13, -31, 23, -1, 3, 29, -29, -22, 6, -29, -25, 10, -42}, + {17, 26, 10, -7, -19, -7, -35, -26, 11, 29, 43, -22, -20, -41, 0, -16, 9, -17, 63, 47, 4, 15, 1, -20, -11, -41, -11, -12, 26, -5, 47, 18}, + {7, 4, -1, -21, -17, -10, -35, 17, -24, -16, 33, 0, 8, -29, 29, -34, -1, 10, 63, -24, 26, 11, 53, 19, -20, -29, -16, 41, -3, 7, 34, -41}, + {-7, 29, -27, -35, 25, 8, -35, -43, 10, -40, 30, -8, -8, -22, -23, -12, -22, -5, 52, 0, -8, -16, 51, 51, 19, -37, 32, 13, -20, -30, 39, -22}, + {17, 8, 14, -37, -29, -25, -21, -20, 19, 4, 28, -7, 1, 15, -23, -1, -14, 18, 6, 45, -16, 38, 34, -11, -20, -1, -5, 26, -7, -18, 41, 0} + }, + { + {-30, -5, -23, 27, -33, 13, -48, 24, -17, 32, 25, -42, 8, 12, -5, -38, -4, 21, 14, 21, -37, 41, 63, -17, 37, -2, -18, 5, -20, 26, 2, 23}, + {-7, 14, 5, -18, -6, 6, -33, -13, 21, 22, -20, -40, 2, 37, -30, 10, -25, 21, 40, 31, -27, 37, 30, 12, 29, -8, -16, 49, 12, 35, -15, -4}, + {8, 8, 35, 33, -20, 23, 1, 13, -17, 10, 15, 17, 8, 12, 38, -20, 31, 19, 65, -4, -22, -1, 22, 35, 38, -18, 18, -9, 4, -28, 39, -14}, + {41, 53, 20, 1, -26, 31, -8, -42, 44, 32, -21, -33, 0, 8, 33, 13, 27, 3, 52, 11, 20, -16, 47, 1, -3, 9, -22, 31, 4, 15, -25, -21}, + {-17, 41, 23, -13, -37, 40, -18, 9, 5, 37, 30, 25, 28, 19, 24, 7, -32, -18, 58, -2, -17, -10, 15, 28, -8, -48, -28, -2, -29, 22, 5, -16} + }, + { + {38, 16, -32, -2, 22, -29, -8, 12, 42, -11, -24, -12, 10, 23, 40, -8, 0, 16, 38, -7, -27, 55, 9, 35, 31, -18, -31, -11, -14, -5, 6, -15}, + {-29, -3, 25, 4, -14, -16, 30, 20, 21, 3, -10, -22, -1, -6, -30, 22, 21, -25, 64, 38, 20, 43, 4, 17, -16, -50, 25, 40, 26, -8, -16, 11}, + {-28, 50, 27, -34, 30, 6, -35, 4, 18, -18, 23, 8, -13, 29, 39, 32, -7, 37, 4, -19, -20, -15, 47, -19, -3, -12, -24, -5, -8, -10, 43, -1}, + {-11, 64, -3, 12, 3, 4, -16, 5, 47, 6, 42, -5, -13, 25, -15, -12, -27, -15, 12, 18, 12, -14, 37, -6, 33, 4, 10, 47, -19, 4, 0, 27}, + {1, 0, -10, -29, -17, 1, 3, -27, 20, 7, 31, -28, -14, -7, -25, 11, 14, 13, 59, -22, 13, 29, 65, 2, -30, 20, 8, 14, -11, -16, -14, -12} + }, + { + {-9, 43, -11, -16, 6, 11, 33, 8, 35, -16, -19, -13, -29, 8, -16, 41, -2, -22, 46, 12, 7, 43, 14, 45, -1, -7, 7, 22, -18, -20, -10, -4}, + {0, 76, -37, 26, 18, 26, 29, -2, -17, 25, 16, -12, 18, 32, 46, -15, -8, 33, 40, 28, -35, -10, 28, -11, -22, 0, -28, 30, 7, -14, 39, -18}, + {29, 13, 18, -27, -33, 14, -26, -41, 4, 27, -3, -1, 25, -17, -24, 34, -1, -7, 37, 49, -13, 2, 50, 40, -28, -51, -14, -9, -1, -35, 37, 5}, + {28, 15, -32, -28, -34, -16, -15, -3, 33, -16, 18, 7, -30, -15, 48, 23, 28, 34, 64, 42, 27, -6, 27, -5, 22, -60, 8, 14, -25, 24, 37, -12}, + {-35, 59, -31, 1, 14, 38, -15, -20, 12, -21, -32, -17, -17, 39, 26, -19, 17, -8, 69, 7, -46, 3, 69, 56, 30, -56, 3, -12, -10, 19, -18, 0} + }, + { + {26, 5, 29, -20, 25, 11, 26, 3, -13, -31, 0, 27, 17, 31, -12, 3, -36, -31, 63, -13, 6, 50, 58, 56, 12, 14, 2, -22, 39, -6, -8, -25}, + {22, 28, 2, -19, -19, -14, 20, -15, 26, -18, -2, 20, 3, -25, -19, 44, 9, -29, 77, 30, 14, 7, 21, 55, -37, 3, -12, -11, -12, -39, -3, -13}, + {1, 30, 2, 32, -31, -14, 11, -35, -2, -20, -31, -31, -31, -19, 13, -21, -20, -19, 65, 31, 10, -18, 54, 4, 34, -39, -38, 31, -22, -15, 17, 44}, + {-6, 8, 15, -31, -30, 13, -25, 1, -18, -39, -16, 1, 14, 31, 28, 46, -24, -21, 56, 45, 19, 44, 9, 45, 3, -49, 18, 10, 14, -5, 34, 6}, + {22, 64, -17, -2, -7, 48, -11, -11, -28, 7, 27, -27, -8, -9, -8, -9, -36, -8, 20, 12, -40, 15, 16, -13, 13, -37, 29, 12, -26, -30, -4, -9} + } + }, + { + { + {3, 10, -24, -9, -21, -3, -48, 3, 33, 11, 12, -1, -11, -43, 11, 43, -40, 7, 64, -7, 17, 35, 5, 28, -19, -42, -17, 11, -28, 21, 30, 33}, + {-18, 16, 11, -28, 24, 1, -23, -6, 12, -29, 15, -29, 35, -9, 41, 26, -9, -27, 64, 31, -5, 19, 17, 48, -14, -34, -43, -25, 23, -6, 12, -18}, + {1, 36, -23, -3, -22, -2, 19, -30, -11, -5, -2, -25, 20, -12, 11, 14, -15, -21, 1, 31, 5, 18, 50, -17, -16, -27, -17, 14, 23, 16, -11, 22}, + {30, 37, -21, -9, 17, 6, -28, 3, 23, -20, 16, 38, 15, 18, -16, 36, -22, 28, 46, 41, -21, 23, 12, 39, 34, -37, 29, 39, -24, 19, 11, -6}, + {11, 23, 38, 17, 12, 28, 17, -24, 26, -31, 28, 10, 26, -32, 4, 34, 32, 18, 26, 36, 30, 43, 50, 38, -35, -44, 27, -8, -1, -27, -22, -20} + }, + { + {3, 32, 48, -5, 32, -17, -34, 21, 5, -55, 32, 15, 41, -46, 26, -7, -24, -24, 20, 26, -35, 50, 55, 6, -28, -59, 2, -4, -1, -37, 7, -36}, + {8, 24, 16, -11, -10, -28, -11, -23, 21, -2, 42, 24, -9, -40, -13, -31, 27, 34, 50, -7, 2, 54, 48, -3, 36, -17, 33, 10, 29, -21, -15, 15}, + {25, 33, 40, 39, 11, -20, -35, -21, -8, -41, -4, -19, 2, -36, -32, 6, 28, -1, 6, 1, -6, 54, 55, 5, -1, 4, 29, -16, -39, -42, 0, -37}, + {-14, 10, 30, -22, -33, 12, 19, 14, -28, -52, 36, -34, 44, -45, 35, 4, -24, 34, 21, 20, 29, 53, 2, -22, 27, 9, -7, 18, -28, -41, -4, -40}, + {-13, 13, 19, -17, -29, 32, -39, -1, -8, -46, 49, -5, 5, 2, -24, -6, 34, 22, 2, -27, 2, 11, 33, 29, -7, -35, 28, 26, -5, -5, 11, -41} + }, + { + {37, -5, 4, -7, 20, -13, -14, -11, 6, -10, 47, -30, -12, -1, 4, -16, 53, -9, 38, 34, 19, 34, 38, 36, 48, -37, -33, -11, 21, -26, 44, -45}, + {-15, 38, -20, 8, 38, 3, -46, 15, 9, -16, 55, 11, 51, -50, 25, 20, 42, 24, 47, -18, 34, 60, 41, -15, 29, -51, -29, 6, -24, -16, 17, -30}, + {34, 32, -21, 43, -6, 15, -29, -29, 20, 24, 10, -18, 18, -18, -43, -42, -9, -23, 42, -8, -33, 70, 64, -21, 14, -9, 33, 26, -30, -37, 2, -19}, + {48, 34, 44, 34, 36, -27, -48, 39, 18, 16, 29, -34, -14, -30, 6, 19, 19, 4, 58, 16, 18, 68, 52, 31, 23, 11, 28, 3, -19, -25, 17, -10}, + {36, -1, 42, -14, 4, -34, -6, 22, 16, -2, -15, -40, 3, 10, -44, -34, 9, 3, 50, 6, -37, 23, 14, -33, 35, 2, 14, 26, -31, -34, 36, -47} + }, + { + {36, 26, -8, 27, 39, 4, -55, 3, -1, 16, 7, 8, 39, 38, -14, -35, 27, 3, 8, -16, -8, 6, 10, 23, -13, -57, 10, 6, 21, 21, 7, -5}, + {-1, 21, -20, 20, -11, 0, -42, 5, 32, 27, 50, -29, 50, -8, 7, 16, 39, 0, 39, 55, 3, 33, 56, 2, 35, -60, -31, 7, -16, 12, 9, 12}, + {16, 41, -21, 36, 18, 17, -50, 0, -16, 34, 23, -20, 17, 19, 18, 4, 43, 47, -18, 26, 0, 45, 37, 19, 19, -19, 26, 21, 2, -13, 28, -21}, + {2, 0, 13, -30, 29, -22, -52, 22, -8, 39, 43, 15, 15, -10, -36, -15, -10, -1, -7, 32, -10, 52, 18, -17, 38, -13, -38, 27, -1, -6, -4, 3}, + {41, 58, 17, 24, 17, -7, -49, 23, 42, -30, 36, -40, -23, 37, -16, -9, -21, -20, 16, 1, 28, 50, 59, 12, -15, 10, -2, 12, -10, -23, 41, -20} + }, + { + {-10, 15, 0, -1, 4, -39, -39, 19, 22, -20, 41, 16, -5, -7, 12, 9, 13, 40, 3, 7, 2, -26, 52, 35, -13, -28, 34, -9, 26, -32, 6, -14}, + {11, 0, 5, 11, -15, -28, -5, -41, 36, 0, -23, -11, 25, -9, -13, -38, 17, -14, 38, -11, 22, -27, 15, 32, -14, -61, 24, 0, 48, 1, 23, 26}, + {-15, 58, 16, -13, -17, -8, -3, 4, 12, 39, 11, -10, -25, -23, 7, -13, -15, 7, -9, 52, -42, -26, 36, -19, 9, -5, -23, 33, 26, -20, 26, 8}, + {21, 39, -39, 30, 31, -35, -27, 10, 39, 21, -16, 11, 13, -1, 8, 28, -6, -17, -8, 50, 12, 2, 44, 34, 18, -64, 19, 48, -25, 3, -3, 16}, + {39, 60, 17, 23, 5, 4, 12, -9, 7, -22, -5, 1, -5, 18, 12, -3, 32, 22, 29, 22, -12, 36, 42, 36, -33, -58, 13, -19, 29, 27, 16, 34} + } + }, + { + { + {28, -48, 42, 29, -13, 29, -2, -1, -10, -3, -11, 11, -15, 26, 5, 13, -20, 18, 2, 27, 26, 1, -12, -7, 30, 23, 22, -17, 29, 47, 13, -5}, + {6, 11, 5, -39, 20, 8, 10, 0, -27, 41, 17, 33, 7, -2, 3, 7, -36, 21, -47, 4, 4, -39, -46, 21, -14, 34, 10, -7, 7, 20, 1, 9}, + {-39, -1, -27, 14, -35, -3, -28, -18, -3, 39, 14, 10, 15, 15, 32, 41, -2, -24, -8, 22, -6, 1, -49, 19, -25, 18, 31, 14, -6, 37, -15, 2}, + {-19, -10, -36, -17, 24, 36, -2, -8, -10, 25, 0, 4, 22, 9, 14, -18, 24, 28, -46, -25, 13, -24, -19, 14, -24, 35, -3, -40, 24, 6, 6, 27}, + {-24, 21, -19, 6, -2, -35, 17, 25, -6, -1, -40, 14, 19, 16, -32, 37, 1, -14, -21, 0, 47, -10, 16, -27, 22, -12, 23, 16, 31, 34, -44, 27} + }, + { + {-27, 29, 29, -26, -12, -14, 38, 37, 3, -7, 16, 4, -23, 8, -28, 13, 36, -21, -30, 11, -5, -25, 8, 20, -14, 47, 0, 9, -4, 25, -43, 3}, + {24, 8, 13, 24, 31, 17, -2, -21, -26, 52, -7, 17, 20, 0, -24, 6, -23, -10, -50, 35, 12, -6, 4, 3, 0, 46, 14, -29, 16, 44, -6, 15}, + {-29, -34, 28, -3, -1, -32, -3, -8, 33, 28, -31, 27, -21, 17, -26, 7, -17, -17, -46, 27, 24, 16, -13, 24, -13, 18, 39, -22, 4, 40, -8, 25}, + {0, 26, 3, 19, -31, 1, -10, -33, 13, 23, -23, 21, -17, 41, -22, 10, 38, 1, -20, 41, 21, -14, 1, 24, -11, 43, 36, 12, 17, 46, 9, 31}, + {-17, -37, 6, -9, -17, 23, 0, 7, 35, -5, 14, -20, 0, 34, -14, 35, -32, -1, -26, 13, 16, -3, -28, -33, -2, 34, 44, 30, -13, 4, -9, -26} + }, + { + {-1, 8, -3, -18, 18, 28, 2, -5, 28, 5, -12, -27, -15, -16, 13, -16, -4, -19, 6, -7, 45, 16, -24, -9, 14, 9, -26, -27, 34, 42, 12, -30}, + {-23, -13, 19, -15, 27, 43, 31, -1, -24, 48, 18, 26, -36, -17, 1, 5, -30, 8, 0, -26, 41, 9, -41, 26, 19, 0, 1, 0, 22, -10, -28, 12}, + {-18, -34, -19, -6, 8, 11, 32, -22, -16, 4, 26, -7, 26, -31, -5, -23, 26, -23, -54, 30, 24, -39, -2, -24, 1, 9, -19, 25, -18, -16, 23, 19}, + {13, -30, -12, 7, 42, 4, 0, 42, 33, 46, -38, 8, 5, -20, -21, 33, -28, 0, -12, -32, -8, -19, -4, 8, 35, 60, 8, 6, 10, 18, -4, -26}, + {-14, -31, 35, -21, 23, 40, -7, 35, 5, 18, -36, 31, -21, 3, 48, -8, 13, -4, -56, -24, -18, -44, -5, 34, -5, 50, -19, 0, 40, 32, 2, 0} + }, + { + {-36, -43, 48, -3, -3, -3, -14, 2, -29, 40, 32, -16, -34, 19, 33, 44, -33, -37, -30, 11, 41, -27, -28, 24, -22, 22, 41, -22, 19, 45, -31, -16}, + {-43, -57, 28, 2, -33, -9, -17, -13, 16, 20, -40, 24, -30, 22, 13, -13, 18, 31, -2, -4, 44, -48, 14, 1, 8, 26, -15, 14, -11, -14, 4, -9}, + {-33, 1, -29, -18, 38, -1, 26, 28, 7, 52, -24, -10, 22, -34, 37, 44, -26, 4, 13, -6, 45, 9, -15, -26, -17, 62, 13, -34, 7, -11, -3, -13}, + {-36, -36, 7, -27, 17, -25, 35, 0, -18, 23, 24, 34, -26, 33, 19, 18, -22, 21, -24, 28, -8, -29, -9, 39, -11, 9, -19, 20, 26, 2, -12, 7}, + {-20, -48, 20, 15, 18, 18, -28, -26, 0, 34, 8, 43, 27, -30, -15, 35, -31, 31, -12, -16, 33, -12, -39, -21, -26, -10, -4, -4, -20, 3, 1, 38} + }, + { + {-9, 8, 25, 34, -1, -28, 4, -2, -16, -25, -14, -18, -3, 36, 33, 23, -5, -25, -31, 4, 3, -48, 16, -10, 21, 6, 7, -21, -1, 26, 4, -25}, + {22, -24, -6, -13, 38, -1, -4, -34, -15, -19, 13, -8, -17, 35, -20, 42, -18, 9, -26, -17, -5, -11, 22, -34, -21, 46, -29, -16, 7, 20, -40, 11}, + {-25, -48, -41, 6, 34, 1, -19, 7, 16, -15, 2, -26, 19, 19, 36, 4, 22, -31, -43, -3, 56, -33, 2, -21, 37, 23, 10, 19, -31, 24, -1, 2}, + {14, 21, 7, -31, -9, -5, -27, -5, 23, -17, 31, 15, 37, -16, -21, 45, 31, 13, -21, -20, -19, -33, 5, -26, 21, 25, 22, -31, 33, -7, -31, -22}, + {-29, -44, 12, 1, 4, -33, 10, -26, 33, 38, 8, 41, -31, 3, 46, -26, 12, 20, -56, 1, 48, -32, -38, -12, -23, 1, 3, -30, -17, 30, -4, 35} + } + }, + { + { + {-13, -21, 9, -23, 16, 11, 29, 10, 38, -13, -26, -8, 13, -27, 28, -9, 23, -14, 4, 36, -12, 25, -33, -19, 28, 39, 17, -6, 1, 3, 47, -23}, + {-8, 27, 33, 15, 14, 5, 7, 11, -28, 33, 31, 30, -9, -32, 9, -12, 17, -30, -40, 21, 14, -7, 19, 22, 14, 62, 12, 31, -21, 33, -28, 13}, + {-3, 6, -3, -20, 4, 19, -23, -11, 2, 1, -15, 26, 6, 0, 1, -13, -12, -14, 14, 28, 40, -39, 11, 33, -2, 94, 11, -31, -13, -22, 16, 19}, + {6, 4, -23, -6, -18, 2, 5, 8, -9, 42, 8, 33, 14, 27, 19, 37, -30, -22, -44, -30, -26, -6, -1, 39, 15, 28, -15, 21, -34, 32, 7, 4}, + {-18, -7, 29, -12, -19, 19, 20, -14, 9, -21, 4, 20, -14, -11, 45, -18, 8, -10, 16, 39, -10, 8, -14, 44, 23, 26, 28, 11, 23, 19, -27, 60} + }, + { + {-24, -46, -4, 22, -27, -25, 5, -7, 32, -20, 32, 30, -3, -12, -21, -17, 6, -28, -20, -2, 50, -20, -21, 34, -21, 20, 20, 35, 22, -32, 45, 7}, + {22, 30, 61, 8, -16, 12, -10, -12, -7, -12, 7, 6, -23, 40, 37, 5, 32, 12, -29, 14, -26, -14, 23, 31, 45, 49, 4, -21, 22, -6, -10, -14}, + {-3, -28, -4, 27, -25, 43, -28, 33, 36, -21, -31, 30, 21, 3, 2, -7, -18, 24, -25, -33, -5, 13, -20, -17, -24, 32, 16, 23, -38, -9, -37, 6}, + {-3, -15, 19, -37, -34, 34, 10, -22, 1, 5, -9, 55, 22, 4, 48, 45, -33, -30, -26, 27, -24, -59, -4, 4, 14, 81, 5, 34, 16, 32, -29, 47}, + {-34, 4, -16, -7, -23, -9, 23, -4, 31, 40, -21, 9, -37, -24, 18, 47, 2, -1, -10, 25, 17, -7, -23, 26, -10, 50, 32, 5, 22, 0, 3, 48} + }, + { + {36, 12, 48, 4, -5, 2, 24, 26, 24, -37, 16, 25, 37, -20, -31, 21, 29, 12, -35, -10, 39, 14, -35, -26, 27, 18, -9, -7, -29, -1, -2, -39}, + {34, -20, 62, -20, 5, 23, -7, -1, -35, -37, 20, 25, 16, 5, -5, 14, 9, -6, -2, 11, 42, -5, -7, 2, 13, 28, -3, 1, 29, 30, -11, -24}, + {35, 28, 59, -19, -31, 0, 18, 48, 14, -26, -34, 18, 22, -13, -15, 19, 10, -29, -37, 5, 30, -54, -51, -3, 35, 25, 4, -33, -26, 4, 12, 33}, + {4, 8, 44, 8, 13, 45, 8, -5, 31, 16, -17, 54, 15, -18, 55, -9, 28, -15, 21, -19, -18, -47, -23, 12, 14, 74, 26, 25, -4, -20, -48, 36}, + {6, -3, -21, -18, -2, -14, 25, 10, -6, 0, -21, 37, -25, -29, 47, 35, -9, -40, -40, 33, -4, -16, -48, 31, 14, 10, 36, 35, -36, 31, -35, 46} + }, + { + {-9, 20, 0, -5, 37, -32, 10, -8, 4, -38, 28, -31, 21, 16, -17, -19, -12, -11, 22, 2, -19, -34, -44, -37, 43, 35, 9, -19, -32, 11, 50, 12}, + {-3, 10, 57, -26, -2, 31, 32, 5, 13, -35, 13, 23, 1, -2, 9, 7, -16, 7, -13, -37, -18, 6, -37, -16, -1, 54, 5, -6, -7, 11, 21, 3}, + {-22, -3, 14, 37, -40, 27, 3, -10, 30, -34, -30, 16, -15, 25, 33, 33, -29, 6, 11, -39, 25, 9, -33, -14, 27, 70, -11, 6, 9, -30, 30, -18}, + {-40, -6, 13, -18, 25, 36, -11, 3, -12, 38, 6, 17, -35, 6, 54, 39, 10, -29, -57, -8, -19, 20, -45, 47, -4, 59, -20, 29, -26, 21, 2, -8}, + {12, -20, 0, -18, -6, 49, -19, 7, -22, 26, 26, 18, 3, -4, -13, 30, 28, -29, -54, -10, -10, 15, 17, -9, 10, 46, -3, 1, -24, -18, -12, -5} + }, + { + {41, -50, -12, 42, 18, -21, -32, 23, -26, -3, 24, -19, 13, 26, -20, -7, 8, 40, -32, -7, 3, 28, 26, -34, 37, 9, 28, 6, 24, 16, 39, 10}, + {-17, -8, 30, -23, -13, 39, 23, 21, -31, -33, 35, 29, 17, 20, 20, 20, 8, -28, 2, 11, -3, -31, -40, 12, 35, 24, 9, 4, -12, -21, -20, -19}, + {32, -15, 37, 17, -20, -11, -29, 18, -13, -22, 28, 4, 28, 8, -7, -27, 26, -30, -38, -40, -26, 18, -37, 28, -27, 15, 26, -41, 2, 9, -27, 8}, + {22, -36, 10, 14, -7, 50, 10, -2, 12, -40, -1, -8, -38, -35, -14, -18, -29, -14, -39, -42, 14, -7, -30, 40, 29, 64, -17, 25, -35, -28, -26, -2}, + {-6, -65, 21, -38, 15, -24, 24, -25, -30, -1, -36, -3, 6, 6, 43, 13, 36, -12, -38, 22, -1, -3, -13, 19, 17, -10, 37, -19, -2, -18, -5, 1} + } + }, + { + { + {23, -17, 55, -23, -3, -10, 10, 10, -15, 0, -20, -34, -7, -8, 3, 19, -8, 7, 2, 13, 34, -26, -30, -32, 42, 79, -28, -9, 27, -15, -5, 3}, + {-4, 51, -9, 0, 28, -1, -5, 4, 47, -25, -6, -19, 18, 23, 35, -15, 34, -27, 10, -37, -23, -27, -29, 1, 22, 98, -12, 17, -16, -41, 27, -11}, + {-23, 48, -21, -39, 9, 27, 24, -17, -4, -8, 12, 30, -9, 39, 36, 2, -34, -28, -40, -10, -43, 20, -37, 52, -7, 96, -31, -17, -17, -27, -18, 41}, + {-37, -2, -17, -31, 31, 16, -14, 7, 3, 17, 12, -22, -14, -29, 8, 32, 5, 14, -9, 6, -11, -19, -33, 12, -23, 26, 37, -13, -31, -11, 31, 7}, + {-8, -30, -22, -23, 6, 38, 37, -1, 14, -2, -28, -3, -5, 16, 31, 14, 62, -7, 13, 21, -26, 14, -22, -14, -12, 53, -1, 6, -23, -21, 3, 3} + }, + { + {32, 15, 44, 17, 46, 43, -19, 57, 8, -37, 23, -7, 35, -38, 13, 8, -4, -36, -13, -28, 37, -7, -22, 18, 51, 90, 13, -31, -15, -37, 16, -24}, + {18, 46, 22, -15, -2, -16, -20, -10, 16, -11, -18, -6, -9, -13, 22, 20, 34, 13, -10, -35, -5, 15, 2, 34, -24, 127, -34, 28, 1, -35, -18, 36}, + {9, -5, 3, -5, -5, 54, -8, -36, 31, 25, -10, -5, -1, 17, 30, 33, 5, -8, 14, -23, -27, -38, -23, 61, -26, 88, 5, -9, -39, 16, 11, 34}, + {23, 31, 33, -10, 48, 35, -30, 34, 21, 31, 3, 37, 28, -10, 14, -27, 7, 14, -10, 10, 10, 19, -1, -4, 32, 84, 8, -9, 28, 20, -16, 48}, + {27, -21, 40, 34, 40, -18, -2, -11, -25, -29, 40, 1, 9, 36, -24, -34, 69, 9, 27, -29, -26, 27, -21, -15, 26, 69, -13, 53, 1, 0, -6, 54} + }, + { + {-4, 8, 38, 12, 41, 20, -20, 7, 20, -1, 31, -43, 23, -34, -3, -42, -12, -4, -31, -41, 16, -21, 9, -11, 46, 57, -15, 23, 5, 19, 30, -38}, + {39, 29, 75, -9, -24, -14, 13, 2, 12, -25, 16, 15, -20, 29, 26, 31, 17, 19, -10, -11, -31, -40, -6, 19, 4, 110, -29, -38, -36, 2, 32, 19}, + {-26, 10, 36, -24, 25, 39, -35, -16, 13, -57, -8, 20, 10, 29, -7, 44, 2, 10, -26, -32, -36, -36, -4, 28, -32, 57, -28, -5, -36, -31, -13, 27}, + {-5, 33, -10, 18, 44, 22, 6, 12, 12, -20, 20, 15, 38, 20, -17, -24, 67, 24, 3, 30, 14, -8, -14, 44, 24, 63, -8, -21, -35, -19, 32, 39}, + {43, -8, 34, -14, 59, 35, 34, -5, 35, 8, 42, 13, 44, 22, 44, 23, 74, 9, 9, -14, 29, -29, 4, -1, -24, 49, 5, 35, 11, 26, -14, -6} + }, + { + {-19, -29, 43, 16, 24, 2, 30, 15, 34, 7, 13, -8, 12, -23, 7, -45, 50, 27, -35, -21, -21, -26, -37, 21, 52, 27, -14, -39, -3, -33, 14, -2}, + {6, -27, 68, 6, 17, 30, 9, 0, -15, -55, 2, 18, -21, 9, 21, 27, -8, -14, -52, -43, 13, -7, -16, -20, 4, 111, -27, -13, 6, 0, 35, 19}, + {6, -6, 15, -33, 23, 6, 3, 40, 29, -9, -41, 29, -24, -43, 45, 23, 30, -13, -27, -3, -52, 7, -22, 10, 8, 100, 8, -17, -18, 17, -28, 36}, + {-26, -7, 27, 27, 16, 28, -15, 32, 40, -41, 33, -4, 3, 13, 22, 10, 37, 37, -35, -1, -25, -4, -32, 20, 33, 26, -32, 32, 18, 16, -9, -10}, + {-14, 11, -8, -15, 57, -22, -37, 23, 20, -10, -5, -13, 12, 15, 21, 27, 52, 33, -58, -16, -40, 14, 12, 28, -19, 44, 0, -15, -1, 3, -14, 35} + }, + { + {51, 7, 51, 18, 48, -15, 13, -6, 18, -23, 15, -28, 2, 13, -6, 26, 44, -4, -30, 15, 5, 22, -4, -36, 17, 18, -25, -42, 2, -22, 16, 8}, + {45, 12, 65, -11, 4, 7, 31, 36, 18, -59, -7, 1, -20, -33, 24, -16, 42, 26, -57, -43, -26, -42, 0, 14, 6, 72, -18, -43, -38, -44, -22, -11}, + {-10, -35, 21, 23, 30, -13, -34, -16, 10, -28, -20, -29, -31, -43, -16, -4, -17, -27, -12, -50, -49, 15, 1, -10, 25, 50, -39, -42, -2, 10, 14, -18}, + {15, -34, -22, 5, -8, 40, 2, -12, 15, -45, -38, -26, 1, 23, 44, 25, -5, -21, -5, -28, -48, -15, -35, 11, -35, 10, 37, -8, -41, 6, -36, -10}, + {38, -3, -11, -17, 11, 19, -14, 41, 4, 0, -16, 31, 41, -46, 28, 4, 0, 50, -3, -31, 25, -10, 15, 22, -25, 59, 8, -24, 16, -10, -11, 48} + } + }, + { + { + {-24, 48, 8, -9, 35, 1, 37, 30, -13, 19, 0, 18, -41, 29, 36, 28, -8, -14, 13, -33, -45, -30, -37, 37, -32, 65, -18, -16, 12, -30, 25, -7}, + {17, 42, -26, 30, 19, 11, 11, 11, 26, 7, -46, 41, 13, 45, -8, -14, -2, -18, 22, -10, -32, 22, 26, 26, -33, 29, -15, 35, -11, -10, 3, 41}, + {-15, 65, -6, 7, 32, 13, -8, -25, -15, -17, -44, 0, -45, 29, 22, -3, -15, 16, -30, 26, 4, 32, 17, 0, -32, 23, 13, -4, -30, -37, -5, 38}, + {17, 6, -1, -6, 28, -2, -3, 35, 30, -5, -32, 4, -10, 55, -16, 35, 5, 25, -13, 36, -38, -36, -14, -11, -1, 23, 33, 31, -28, 26, 19, 47}, + {-21, 15, 19, -1, -8, -7, 20, 5, 2, 36, -38, -14, -24, 36, 21, 25, 15, -10, 23, -1, -41, 0, -11, -18, 16, 1, -15, 5, -24, 1, -55, 58} + }, + { + {16, 44, 24, 25, 34, 13, -5, 51, -15, -42, 31, 39, -11, 30, -9, 26, 14, -19, 8, -4, -28, 3, -14, 34, 22, 42, 28, 22, -29, -11, 14, 55}, + {-14, 27, 58, 26, 14, 57, 35, -2, 36, 30, 24, 31, 23, 3, 31, -22, -9, 26, 41, 35, -40, 37, 16, 56, 31, 67, -8, -15, 20, -6, 25, 45}, + {-46, 54, 22, -36, -38, 39, -16, 6, 5, 27, 15, 46, 9, -7, 27, 46, -8, 0, -8, 11, -49, -31, -4, 41, -32, 25, -24, -29, 21, -13, -55, 2}, + {-59, 25, -24, -7, 31, 16, -19, -1, 4, 16, -12, 17, -30, 51, 6, -25, -21, -13, 9, 36, 10, -26, -36, 23, -5, 54, 3, -1, 20, 4, -1, 35}, + {15, 52, 20, -10, -12, 18, -20, -33, -18, 24, -43, 41, 19, 10, 10, -28, -17, 27, -37, 39, -60, -29, 37, 28, -44, 41, 0, 2, -18, -9, -27, 44} + }, + { + {-5, 77, 44, -14, 52, 20, 6, 54, -8, -21, 45, 29, 46, -27, 40, 15, 38, -1, 4, -10, 9, 52, 25, 10, -10, 85, 7, -36, 26, 8, -11, 3}, + {34, 55, 3, 5, -17, 9, 19, 59, 6, -34, -34, 23, 5, -10, -14, 21, 26, 16, 48, -15, -10, 2, 9, 25, 14, 70, -36, -10, -38, -28, 17, 24}, + {-25, 77, 1, -2, 2, 43, 25, 31, -31, -6, 17, 13, -16, -15, 40, -1, 12, 35, 8, 11, -67, 54, 32, 62, -4, 21, -5, 22, -9, -40, -9, -5}, + {-26, 50, 4, 30, -25, 56, -9, -8, 24, -17, 16, -26, -6, 4, 39, 15, 34, -21, 51, 42, -48, -4, 34, -3, -40, 23, -37, -11, 24, -32, -32, -1}, + {-41, 34, -12, -30, 41, -10, -26, 31, 14, 12, 4, -31, 32, -25, -1, 43, 30, 12, 12, 15, -53, -10, 26, -10, -25, 27, -1, 33, 21, -41, -14, 9} + }, + { + {45, 69, 7, 65, 34, 52, 8, 24, -21, -12, 16, 6, -5, 25, -15, -26, 22, 58, 8, 6, -6, 3, 27, 24, 11, 14, 10, 26, -26, 1, -9, 38}, + {-25, 61, 74, 23, 33, 12, -13, 8, 12, -4, 12, -20, 7, -25, 40, -25, 30, 41, 12, 13, -20, 27, 0, 12, 21, 1, 8, -38, -22, -2, 10, -27}, + {14, 37, 36, 23, 36, 55, 9, 7, -43, 0, -11, 15, 7, 9, 4, 5, -3, 31, 1, -34, -43, 27, -16, 40, 9, 42, -46, -27, -9, -41, 13, 7}, + {-24, 19, 17, 14, -13, 18, -35, 11, -10, -3, -33, -28, -9, -56, 44, 37, -6, -30, -10, -16, 3, 67, 10, 29, -2, 74, -31, 4, -19, -8, 1, 25}, + {19, 75, 15, -2, -12, 36, 6, -2, -24, -36, 0, 23, 31, -36, 31, 21, 35, -17, -11, 31, 1, 56, 21, 37, -12, 45, -13, -34, -34, 5, 8, 25} + }, + { + {39, 36, 42, 42, 50, 40, -35, 9, -10, -31, 22, -25, 44, -38, -34, 25, -12, 17, -26, 3, -9, 8, 2, -14, 10, 12, -1, -23, -11, -23, 13, 20}, + {-21, 51, 17, 26, 46, 27, -37, 15, -30, -59, 35, -23, 1, -6, -25, -5, 3, 34, -7, -17, -28, 16, 4, 2, 34, -11, -11, -29, -26, -6, 1, 26}, + {-29, -4, 9, -10, -18, 13, -14, 2, 24, -66, 44, 7, -8, -50, 24, -14, 36, 3, -23, -40, -18, 16, 5, 12, -16, -8, -33, -49, -35, -25, 32, -35}, + {-14, -11, 38, 13, -12, -17, -28, 51, -49, -37, -13, 16, 57, -44, 1, 24, 7, -11, 24, 3, -50, 7, 16, 20, 13, 9, -19, 17, -25, -15, 22, -4}, + {10, 1, 13, 53, 12, 11, -50, 14, -48, 2, -24, -8, 10, -45, 21, -35, 53, -5, 1, -4, -17, 53, -20, 22, -25, -33, 32, -47, -10, -42, 14, -16} + } + }, + { + { + {-12, 26, -17, 1, 26, 18, -51, -8, 7, -24, -29, -16, 0, -21, 29, 35, -3, -27, -17, 20, 36, -19, 13, -17, 12, -12, -18, 32, -22, -21, 3, -34}, + {-2, -28, -25, 32, 19, 52, -56, -4, -17, -25, 4, 4, -5, 18, 39, -28, -17, -16, 36, 13, 16, -11, 24, 11, 25, -36, -26, 20, -25, 3, -25, -47}, + {6, -33, -27, -2, 18, -12, -17, -29, -21, 16, 10, 27, 29, 5, 23, -27, -25, -16, 38, -7, 7, 0, -3, 21, 42, -79, 25, 37, -3, -12, -14, 19}, + {-6, -8, -38, 13, -6, 58, 0, 12, -24, -33, 42, -6, -1, 1, 3, -8, 3, -23, -10, 6, -27, 12, 13, 29, -17, -27, -21, -12, 5, 30, -31, 14}, + {24, 13, 20, 31, -41, 10, -48, -32, 27, -25, -22, 26, -2, 8, -6, 31, -21, 29, 8, 20, 23, -27, 41, -2, 37, -30, 16, -13, -40, 16, 38, -33} + }, + { + {12, -20, 34, -10, -25, 7, -57, 12, -11, -49, -23, -19, 7, 9, 14, -4, -15, -7, -3, -12, -32, 45, -7, 40, 3, -17, -7, -1, 7, -30, 9, -47}, + {-26, 27, 38, 35, -24, 24, -21, 10, -6, -37, -22, -20, 5, -23, 23, 4, -6, 17, 47, 8, -13, 15, 20, -2, -22, -69, -18, -3, 17, 29, 17, -42}, + {-9, -38, 28, 24, -14, -9, -47, -24, 20, -33, 44, 14, -4, -38, 11, -10, -34, -4, 54, 15, -31, -12, 0, 2, 24, -73, -34, -27, -9, 22, -13, -12}, + {-8, 21, -22, 16, 25, -13, -29, 25, -28, -23, 35, 24, 26, -47, 5, 30, 26, -9, 43, -2, -18, 33, 22, 24, -10, -9, 10, -10, -35, 23, 4, -21}, + {-13, 9, -17, 34, -4, 9, -45, -42, 15, -2, 11, -14, 41, -39, 14, 2, 15, 5, 0, -13, -21, 6, 63, 53, 41, -45, -21, 8, 19, -36, -24, 19} + }, + { + {1, -6, -13, 2, 13, 12, -52, -32, 27, -41, 34, -7, 7, 14, -29, 24, 8, 2, -6, -17, -22, -10, 49, 2, 1, -69, -12, 8, 29, 26, 31, -30}, + {25, 11, -8, -4, 31, 9, -46, 33, -3, -49, 49, -13, 16, -33, 24, -39, 9, 1, 61, -23, 15, -12, 25, -1, 44, -10, -6, 47, -22, 29, 33, 1}, + {-13, -32, 13, -20, -27, -32, 1, 9, 14, -27, 28, 2, -1, -17, 29, -6, -25, 42, 56, 16, 30, -1, 5, 17, 23, -24, -8, 44, 25, -3, 15, 4}, + {10, 17, 2, 41, 30, -33, -46, 12, -4, -25, 5, -39, 33, -27, 10, 24, 19, -8, 38, 22, 18, 35, 40, 4, 10, -45, -23, 0, 24, -31, 10, -49}, + {37, -8, 2, -25, 26, 24, -52, -24, 6, 18, 38, 18, 21, -1, 7, 25, -13, 9, 11, -21, 26, -7, 30, 15, 5, -33, -31, -24, -34, 5, -16, 0} + }, + { + {34, 22, 21, -26, 9, -23, -61, 2, -17, 8, 19, -28, 19, -20, -21, 23, -10, -1, 55, -9, -32, -20, 53, 2, -10, -9, -8, -16, 23, 26, 18, -21}, + {-24, 26, 10, 26, 13, 32, -55, -40, 42, 30, 50, -24, 34, 22, 6, -9, -21, 20, -6, 49, -29, 15, 62, -24, -26, -43, -10, 27, -3, -14, 32, 3}, + {-22, 16, -41, 25, -36, -4, -36, 3, 44, -3, 36, 4, -2, 33, -23, -27, 12, -14, 29, 13, -4, 3, 61, -8, 24, -10, 4, 46, 0, -14, 41, -44}, + {-18, -14, -33, 6, -35, 21, -3, -6, 37, -26, 2, -31, -7, 9, -21, -43, -13, 38, 13, 48, -18, 40, 50, 21, 31, -29, 10, -11, -25, 13, 28, -34}, + {30, -20, 14, -27, -22, -14, 9, -6, -3, 7, 25, -37, 36, -1, 27, -23, -35, 0, 15, 20, -20, -13, 14, -19, -10, -10, 13, -14, 40, -25, -25, 7} + }, + { + {-1, 21, 12, -21, 3, 2, -49, -3, 52, -18, 44, -14, 43, 18, -12, 17, -2, -29, 37, 9, -15, -10, 51, 24, 36, -58, 6, 29, -29, -7, 6, -22}, + {34, 55, 5, 4, 30, 34, -10, 4, 44, 26, 4, 24, -26, -30, 30, -9, 20, 5, 12, 32, 31, 34, 42, 28, 28, -36, -15, 32, 13, 9, 31, -7}, + {2, 14, 19, -35, -4, -21, -13, 10, 54, -29, -25, -25, 28, 32, 30, 10, -32, 5, 50, 14, 25, -27, -1, 36, 7, -47, 4, 11, 36, -13, 1, 26}, + {12, 11, 27, -10, 2, -20, -40, 4, 45, 12, -28, 25, -19, 22, 28, -34, 24, 14, 33, 45, -30, 31, 37, 10, 16, -17, -3, 3, -23, 13, -3, -25}, + {32, 38, -40, 6, 35, 33, 10, -10, 2, 6, 12, 35, -6, -6, 35, 3, -20, 38, 14, -9, 15, 24, 29, 44, 13, -47, -19, 11, -9, -38, -4, -27} + } + }, + { + { + {-7, 4, -3, 29, -13, -4, 6, -33, 38, 20, 19, -23, 21, 20, -18, 17, -31, -22, -33, -30, -4, -42, 0, -3, 28, 44, -26, -17, -31, -9, -41, 12}, + {-46, -50, -27, -38, 47, -28, -18, 21, 39, -18, -32, 14, 24, -30, 7, 29, -4, -27, -52, -23, -15, -34, -58, 34, 19, 41, 9, 24, -13, 38, 8, -14}, + {-31, -63, 22, -32, 7, -18, 5, 17, 34, 5, 22, 5, 12, 14, -32, 9, -3, -6, -61, 23, 15, 0, -15, 21, -23, -26, 38, -12, -12, 20, -46, -33}, + {-6, -58, -42, 40, -14, -17, 22, 3, -17, 19, 28, -15, -2, 35, 3, 31, -1, -14, -18, 7, 17, -50, -46, 2, 47, -22, 43, 11, 5, 37, -34, 7}, + {-4, 6, -23, -3, 5, -38, 5, -8, 29, -4, 22, -36, -18, 8, 15, -25, 17, 20, -52, 38, -9, -10, -45, -25, 30, 56, 41, -36, 34, -5, 8, -7} + }, + { + {-49, -14, -1, -13, 20, -14, -22, 7, 17, -30, 3, 23, -7, -9, 17, -6, -54, 9, -11, -4, 9, -14, -49, 34, 18, 31, 28, 11, 3, -15, 13, -25}, + {-14, -66, 19, 13, 11, 3, -27, 4, -13, -19, -10, 27, -21, -18, 30, 32, 23, 12, -32, 21, 16, -48, -39, -6, -9, 6, 29, 16, -16, 30, -51, 17}, + {7, -57, -1, 3, -8, 2, -31, -12, 38, 5, -5, -24, 4, 28, 17, 23, 26, -14, -52, 22, -3, -46, -60, 21, -7, -3, 18, -31, -17, 8, 3, -8}, + {25, -7, -9, 0, -13, -1, -7, 23, 6, 36, -15, -1, -6, 24, 2, -3, 30, -11, -60, -34, 33, -57, -11, -40, -22, 16, -2, -21, 20, 48, -31, -16}, + {10, -36, 11, 3, 20, -10, -15, 20, 8, 37, 28, -27, 7, -10, -12, -21, -9, -2, -69, -27, -4, -53, -13, -38, 41, 15, -8, -22, 41, -10, 5, -12} + }, + { + {-39, -66, -30, 3, -10, 39, 11, -38, 8, -11, -31, 5, -5, 11, -10, 13, 1, -13, -78, 4, 14, -69, 7, -20, -31, -1, -24, -44, 13, 27, -11, 1}, + {-39, -28, 12, -6, -18, 19, -26, 26, -15, 48, -49, 25, 8, 27, 18, 20, -12, 14, -73, -1, -11, -62, -58, 10, -23, 25, 9, -41, -2, 2, -8, 13}, + {19, -66, 1, -16, -1, 26, 30, 23, -29, -19, 7, -25, 20, 33, -19, 28, 25, 32, -73, 30, 46, -69, -2, -40, 15, 12, 4, 18, -24, -9, -15, 14}, + {-29, -15, 25, -22, 57, 15, 34, 37, 37, 44, -9, 5, -22, 24, 21, -26, 26, -6, -45, 38, -1, -43, -16, -20, 43, 11, 17, 4, -19, 44, -19, -4}, + {16, -47, -2, 36, -10, 13, -4, 16, 40, -1, 31, 1, 33, -8, 27, 10, 19, 44, -1, -3, 25, 12, 10, -12, -15, 10, 8, 36, 9, 18, 6, -42} + }, + { + {14, -39, -34, 0, -24, 23, 14, -10, 38, 36, -45, -17, -39, 2, 51, 4, -38, -20, -52, -31, 30, -2, -58, -26, -26, -11, 35, -9, -1, -5, 0, -26}, + {-56, -13, -8, -46, 16, 24, 3, -26, -4, 19, -49, -10, -24, -9, 18, 16, -11, -32, -38, -11, 8, -37, -25, 35, -9, -8, -13, 3, 8, 38, 14, -22}, + {4, -45, -60, 14, -17, 13, -37, -13, 33, 31, -18, 35, -5, 36, 0, 22, -3, 18, -47, 12, -14, -17, -29, 8, -19, 23, 14, 4, -18, 18, -29, 39}, + {4, -18, 18, -34, 3, -3, -10, 27, -9, 13, 31, -25, 10, -10, 22, 0, 11, 44, -40, -19, 62, -52, -52, -35, 49, 28, 14, 3, 32, 17, 34, 5}, + {43, -59, 34, -18, 1, -34, -11, 43, 30, -5, -30, 37, 49, 17, 6, 38, 0, 26, -2, -2, 57, 4, -17, 19, 40, -7, 7, -30, 37, 41, -5, 4} + }, + { + {-48, -8, -31, -22, -22, -18, -38, -34, -4, 26, 17, -20, -18, -31, 50, 35, 4, 25, -4, -40, -5, -73, -11, -5, 8, 34, 24, -4, -26, -12, 8, -20}, + {-9, -64, -35, -42, -17, 31, 16, -16, 18, -34, -29, 24, -12, 29, -7, 31, -29, 20, -42, 11, 15, -43, -40, -14, -36, 17, 32, -2, -41, 18, -45, 0}, + {9, -9, 6, -21, -18, -16, -13, 19, -19, -12, -20, 1, 34, 32, 2, 20, 33, -11, -73, 32, 14, -23, -11, 27, -20, 0, 39, 22, 22, -3, -42, 5}, + {7, -68, 20, 40, -14, -45, 0, -11, 13, 3, -9, -14, 35, -15, 20, -28, -7, 23, -13, 17, 54, -57, -27, -39, 45, 32, 39, -24, 14, 41, -37, 14}, + {9, -17, -17, 4, 29, 26, -5, -5, 34, 15, 17, -33, -2, 27, -23, 34, -30, 6, -23, 12, 30, -52, -33, -46, 42, 38, 3, 33, -29, 6, 34, 14} + } + }, + { + { + {-20, 8, -22, 8, -30, -19, -14, -37, 8, 12, 13, -22, -26, 37, -20, -36, 18, 4, 17, 3, 25, 13, 0, 15, 26, -36, 31, -13, -20, -1, -46, 4}, + {21, 62, -56, -28, 15, 28, -10, -13, 37, 3, 27, 10, -20, 33, -30, -22, 44, 18, 2, 44, 15, 42, 28, 16, 27, -40, 10, -18, -2, 9, 13, 5}, + {-39, 58, -6, -4, 12, -23, 55, 7, -21, 42, 4, 19, 36, 9, 13, -20, 11, 3, -31, 36, -17, 22, -24, -23, 24, -12, 35, 41, 18, 33, -41, -15}, + {-33, 31, 2, 27, 16, 34, 58, -32, -16, 40, -23, -30, 31, 57, -38, 29, 3, -7, 32, 19, -25, 59, 22, -2, 16, 12, 32, 39, 27, 23, -30, 12}, + {-12, 79, -53, 19, -31, -25, 17, 31, -21, 10, -21, 31, 1, 18, 11, -31, 26, 43, 15, -11, -17, 60, -2, 6, 15, 18, 23, -2, 8, 39, 22, 2} + }, + { + {-32, 51, -3, -6, -6, 16, 40, 7, 21, 16, -35, 25, -52, 29, 11, 34, 14, 5, 36, 25, -8, -22, 17, 42, 24, -7, 21, 2, 14, -32, -8, 28}, + {-34, 29, -48, 11, -22, 47, 2, -25, 49, 40, -31, 0, -43, -2, -16, -27, -26, 13, 57, -9, -52, 26, 8, 6, 6, -1, -33, 31, 29, -33, -9, 55}, + {-14, 49, -29, -7, -3, 5, 24, 6, 14, 30, 26, -21, -35, 13, -30, 12, -12, 33, 52, -5, -40, 29, 43, 12, -4, -1, 9, 43, -2, -35, 34, -2}, + {-36, 46, -22, -22, 26, 27, 55, -14, 3, -16, -31, 26, 18, 36, -24, 37, -25, 34, 35, 35, 19, 27, 20, 15, -26, -23, -31, 19, -7, 15, 18, -13}, + {-11, 91, -46, -7, 14, -8, 48, 28, -8, 9, 29, -16, 2, -6, -17, -9, 29, 9, 31, 43, -9, 20, 30, -21, -35, 1, -22, 40, -14, -41, -13, 24} + }, + { + {-26, 75, -33, -49, 21, 11, 47, 25, 3, -26, -13, 37, -4, -1, 38, 16, -19, -47, 29, -14, -43, 6, 29, 35, 9, 27, 19, -11, 25, -38, 8, 42}, + {-58, 22, 27, -49, 12, 13, -3, 25, -14, -21, -23, 15, -35, -27, 24, -24, 3, -26, 5, -6, 13, 3, 4, 32, -19, 32, -40, 36, -14, -5, 18, -12}, + {-14, 51, -38, -22, 3, 6, -17, -38, -6, 10, -9, 40, -38, -24, -8, 42, -41, -35, 42, 11, -40, 6, -13, 7, -4, -25, -25, 20, 33, -38, -1, 33}, + {-6, 45, 3, 6, 1, 43, -19, -22, -21, 25, -8, 34, -37, 26, 11, 0, -22, -15, -13, -2, -25, 15, 3, 11, -22, 34, -31, -8, -29, -42, 1, 24}, + {-42, 37, 6, 5, 17, 15, 14, -26, 39, 3, 6, -8, -29, 35, 22, 40, 23, 14, 53, -17, -44, -20, 4, 15, 11, -18, 2, -2, -26, -19, -19, -17} + }, + { + {-23, 36, 19, 27, -43, 46, -13, -19, 36, -29, 2, 6, 28, -30, 24, 40, 24, 9, 35, 35, -3, 8, -12, 9, 8, 36, -12, 36, -18, -30, -43, 23}, + {-28, 66, -1, -15, 11, 41, 39, -7, 32, -30, 12, -9, 23, -14, 19, 20, -4, 4, 63, 18, -15, 48, 21, 21, 9, 42, -11, -30, -18, -7, -18, 31}, + {-32, 37, -15, 25, -13, -8, -27, -36, 32, 1, -30, -21, 21, -33, -12, 5, 28, -18, 67, 13, -13, -16, 6, 54, 17, -1, 18, -37, -16, -9, -13, 38}, + {-16, 65, 0, -18, -29, 34, -19, -39, 36, -14, -37, 37, 9, 38, 19, -30, -10, -30, 28, -28, -61, 29, 49, -10, -11, 13, -13, -31, 33, -34, -9, 38}, + {-10, 70, -6, 18, 29, -3, 26, 15, -21, -9, -43, -22, 16, 11, 43, 19, -3, 25, 1, -16, -34, -4, 46, 38, -50, 26, 27, -1, -35, -22, -36, 16} + }, + { + {3, 44, 6, -24, 15, 34, 24, 1, 28, -8, 12, -38, 6, -21, 36, -14, -10, -4, 9, -10, -34, 56, 53, -15, -20, -19, -10, -24, -6, -29, -22, 21}, + {18, 46, 2, 37, -4, -19, -3, 0, 10, 9, 3, -30, 11, -5, 3, 23, 33, 19, 15, 24, -22, 2, 22, -12, 27, 18, -28, 32, -8, 28, 13, -24}, + {-28, 60, 34, -8, -15, 33, 28, 39, 13, -29, 36, 18, 6, -42, -19, -19, 24, -23, 2, 24, 13, 54, 41, 39, 11, 25, -27, 22, 20, -3, -48, -25}, + {-21, 66, 11, 14, -21, -6, 47, 16, 2, -28, 38, -29, 5, -3, 7, 17, 26, -26, 53, 22, -51, 61, 52, 9, 15, 9, 25, -20, -32, 19, -47, -24}, + {-29, 40, 48, 48, -22, -18, 39, 41, 23, -27, -12, 31, 23, 5, 3, -27, 7, 1, 47, -35, -57, 29, 19, -13, -30, 39, -27, -10, -24, -17, -20, 2} + } + }, + { + { + {-22, -8, -42, 35, -39, -7, 4, -14, -5, -5, 12, -9, 28, -1, -13, -18, -7, 40, -15, 33, 68, -11, 40, 9, -18, -26, -10, -13, -28, 14, -26, -13}, + {16, 1, -31, 16, 7, -42, -34, 7, -8, 43, 28, -1, 36, 7, 17, 18, 14, 33, -34, -20, 17, -24, 42, 13, -28, -41, 35, 43, 28, 32, 22, -21}, + {-2, 25, -40, 15, -18, -21, -9, -36, -31, 61, 0, 3, 1, -24, 30, 27, -10, 9, 1, 39, 36, 2, 15, -9, -31, -72, -20, -6, 11, 24, -36, -18}, + {16, -19, 10, -15, -16, -42, 5, -33, 14, 47, -28, 39, 5, -5, -33, -22, -15, 7, 29, 25, 24, 13, 7, -28, 29, -44, 30, 27, -26, 25, 13, -20}, + {39, 1, -41, -4, -28, -43, -32, 7, -16, 26, 35, 12, 15, 29, 37, 9, -39, 22, 11, 47, 65, 6, 4, -44, 26, -53, -18, 3, 44, 42, 5, 24} + }, + { + {-13, 37, -59, -27, -39, -3, 18, -23, 21, 21, 26, 46, -13, 35, 15, -5, -1, -23, -23, 53, 68, -37, 11, 11, -6, -18, -12, -27, -7, 6, 10, 34}, + {15, -21, -38, 1, -18, 20, -23, 12, 44, 20, 14, 32, -32, 15, -21, 19, -2, 8, -28, 34, 2, 8, -23, -24, 32, -58, -2, 22, -21, 48, -9, 7}, + {0, -18, -27, -23, -31, -9, 19, -43, 0, 57, -28, -17, 14, 15, 28, 38, -52, -22, -12, 18, -5, -25, 29, -4, 37, -70, -22, 8, 16, 51, 10, -32}, + {-12, 13, 0, 20, -43, -24, -11, 11, 12, 2, 37, 3, 0, -6, -28, -20, -32, 10, 33, 2, 31, 16, 20, -19, 12, -58, 5, -14, 43, 25, -34, -11}, + {-13, -44, 7, -32, -20, -2, -27, -36, -15, 43, -27, 45, -8, -22, 12, 20, -4, 24, -22, 9, 52, -8, 10, -15, -1, -38, 0, 11, 19, 47, 3, -44} + }, + { + {-49, 38, -66, -35, -20, -4, 34, -40, 23, 14, 18, 51, -10, 53, 49, 39, -45, 34, -25, -7, 41, 13, -7, -11, -36, -70, -10, -17, -26, 56, 4, 15}, + {24, 36, 10, 12, -46, 31, -32, -37, -5, 68, -9, 50, 13, 41, 31, 6, -11, 7, 27, 40, 17, -27, 27, -17, -30, -41, 10, 3, 15, 47, -23, 35}, + {-26, 5, -43, -27, -43, 6, -20, -5, 30, 50, -19, 9, 24, -1, 33, 49, -48, 22, -16, 24, 66, -2, 3, -36, -27, -7, 27, -19, 7, 34, -45, -1}, + {-41, -10, -30, 16, -42, 18, -22, -21, 13, 53, 16, 5, -5, 36, -14, 46, -42, 14, -2, 7, 31, -23, -7, -9, -12, -36, 18, -13, 5, 17, -20, -38}, + {-21, -38, 5, -19, -34, -31, 40, -7, 30, -7, -36, -13, 14, 22, 46, 46, -34, -30, -9, 53, 51, 14, -16, -30, -39, -40, 37, 7, 19, 21, 12, 2} + }, + { + {-33, 28, -4, -46, 21, 13, 23, -27, 8, 54, 8, 0, -27, -1, 18, 8, -23, 20, 10, 67, 40, -9, 49, 23, -4, 8, 2, 7, 30, 27, -44, -13}, + {-14, 30, -15, -33, -43, -18, 10, 22, 45, 17, 17, 26, -20, 39, -22, 28, 22, 18, 29, 42, 33, -6, 41, -3, -1, -9, -6, 21, 10, 40, 27, 31}, + {-9, -23, 2, -32, -3, -12, 41, 2, 49, 1, -31, 33, 13, 46, -24, 9, 6, 25, 46, 17, 36, 32, 54, 4, -13, -39, -11, 5, -3, 39, 7, 19}, + {-8, -24, 5, -8, -2, -16, 44, -43, 7, 11, 16, 4, -22, -7, -26, 16, -51, 39, 4, 45, 62, 12, 21, 34, 10, -42, 21, -18, 29, 16, 33, -22}, + {16, -27, -1, 16, -20, 34, -18, -34, 2, 63, -13, -2, 7, 17, 14, -17, -53, -33, 38, 41, 70, 21, 39, 4, -7, -45, -26, 1, -12, -6, -11, -36} + }, + { + {3, 1, -8, -3, -24, -7, -17, 8, 28, 14, -17, 6, -24, 39, 25, 20, -37, -18, 43, 38, 42, 11, 50, 35, -26, -43, 8, 3, 3, 54, 11, 21}, + {-34, 49, -39, -39, -29, 10, -10, 7, 30, 46, -32, 12, -7, -20, -19, 22, -40, -28, 28, 55, 52, -35, 53, -16, -4, -5, -8, -26, -1, -9, -8, -6}, + {-50, 15, -40, -11, 3, -29, -19, -29, -7, 50, 5, 8, -8, 1, 25, 36, -6, 6, -1, 22, 19, 26, 50, 4, 30, -41, -30, -3, 2, 34, -17, -23}, + {-34, 7, -54, -23, 0, 28, 7, -11, 12, 21, -43, 47, -7, 44, 40, -7, -44, -22, 17, 16, 3, -29, -5, -9, -17, -52, 15, 25, -19, -1, 4, -33}, + {-16, 35, -54, 20, -6, 37, -11, -2, -6, 11, -44, 5, -41, -15, 36, 1, 0, -34, 15, 30, 41, -33, 40, -13, -30, -48, -33, -8, -14, 27, 14, -27} + } + }, + { + { + {7, 19, 31, 24, -37, 19, 47, 16, 23, 20, 0, -38, 20, 37, -34, 20, 39, 1, 3, 38, -29, 53, 13, 0, -32, -44, -1, -19, 33, 0, 2, -32}, + {13, 9, -8, 30, -23, -7, 11, -15, 5, 19, 35, 31, 24, 35, -1, -34, 5, 12, 42, -29, -4, 24, 11, -3, 17, -45, 18, 2, 5, 28, 8, 38}, + {30, 22, -4, -2, -11, -1, 38, -3, 41, -24, -26, -1, 31, -24, 15, 5, -34, -24, -7, -10, 23, 7, -9, -17, -27, 12, -10, 39, 6, -17, 13, 27}, + {-12, 23, -5, 37, -18, 18, 28, 17, -10, -4, -20, 26, 9, 20, -38, 14, -29, 36, 24, -10, -24, 33, 5, 27, 32, 14, 12, 9, 9, -27, -4, 26}, + {11, 68, 28, -14, 31, -10, -13, -28, -6, 12, 15, 26, -4, 26, -6, -2, 1, 10, 25, 20, -9, 29, -18, -34, 15, -20, 11, -22, -19, -2, 31, 22} + }, + { + {-8, 54, -29, -12, 31, 5, 12, 17, -16, 42, 24, -13, 23, 12, -13, -28, 19, 31, -4, 34, 3, 43, 52, -10, -1, 9, -4, -22, 34, -14, 34, 21}, + {36, 32, 5, 21, -9, -37, 10, 35, 36, 29, -9, -44, -22, -17, -34, -26, 35, -14, 44, 40, -25, 17, 18, -12, 22, 9, -7, -24, -9, 14, -18, 9}, + {25, 53, -41, -7, -4, 5, -9, 26, 19, 4, -25, -28, 35, -15, -32, 22, -6, 15, -20, 4, 4, 52, -6, -2, 43, 5, -23, 29, 22, -5, 30, 11}, + {-23, 70, 14, 24, 12, -20, 49, 26, 0, 26, 25, -36, 36, 26, 17, -39, 10, 32, 11, 30, -19, 42, 37, -32, -23, 4, 31, 1, -8, 26, 1, -24}, + {-4, 30, -29, 41, -14, -4, -16, 10, 42, 33, -12, 14, 26, -5, 5, -32, -25, 14, 24, 9, 0, 29, 35, -26, -4, 37, 17, -19, 33, -40, -27, 27} + }, + { + {11, 63, -36, 7, 19, -18, -23, -22, 21, 12, 30, -8, 18, 0, 1, 3, -13, 39, 20, 46, -23, 31, -2, 43, 15, -24, -28, 1, 11, -21, -20, 5}, + {-18, 73, -31, 15, -19, -12, 23, -7, 3, 53, -19, 7, -21, -15, 25, -27, 45, 22, 15, 52, 8, 23, 42, 2, -19, -15, 12, 32, 3, -28, -19, 6}, + {5, 61, 6, -23, -17, -22, -11, -12, 48, 26, 1, 17, -16, -10, 0, 30, 28, -5, 53, 39, -49, 3, 33, 25, 31, -21, -1, 43, 7, -27, -13, 4}, + {20, 66, -59, 31, 1, 26, -26, 8, 51, 2, 36, 10, -10, 21, -23, -14, 26, -18, 35, 52, 13, 65, -5, -14, 42, -22, -15, 10, -5, -15, 24, 6}, + {-2, 83, -34, 4, 20, 11, -11, -16, 16, 23, 13, -32, -17, 5, 3, 20, -30, 21, 42, 50, 3, 13, 12, 45, 40, -19, 26, 21, 33, 7, -30, -24} + }, + { + {21, 89, 14, 19, -13, 16, -20, -30, 11, 20, -41, 1, -27, -15, 13, 41, -40, -25, 7, 36, -23, 11, 30, -15, 2, 9, -44, -11, 39, -42, -24, 40}, + {-38, 29, -28, -34, 4, -19, -20, -35, 2, -28, -20, -22, -39, 3, 34, 38, -4, -10, 50, 0, -47, -7, 43, 39, -4, -19, -37, -2, -18, 9, 5, 5}, + {18, 30, 3, -47, 26, 39, -14, 4, -21, 6, -9, -15, -13, -13, 38, 3, 11, -35, 19, -3, -30, -10, 55, 56, -34, -22, -40, 27, 34, 11, 34, 21}, + {-38, 86, 3, -4, -23, -21, 37, -27, -4, 28, -35, 38, -43, 10, 34, -22, 38, 12, 20, 19, 12, -3, 35, 21, -33, -50, -25, 15, 2, -35, -29, 39}, + {-36, 57, -37, -53, -15, 3, -18, -49, 39, 33, -28, -25, -24, 48, -26, 27, 38, -42, 49, -20, -8, 3, 16, -17, -13, 10, 14, -20, 2, -12, -26, 41} + }, + { + {-42, 31, 24, 21, -8, 20, 36, 39, -7, 12, 18, -7, 31, -14, 38, -13, -34, -10, -3, 35, -52, 65, 5, 23, -18, 21, 29, -14, -20, -16, -24, 30}, + {-33, 35, 22, -9, -25, -24, 8, -6, -36, 26, -13, 2, 15, -24, 30, 18, 7, -32, 31, 14, 6, 3, 47, 51, -50, 28, 6, 8, -9, 6, 19, -3}, + {8, 58, 33, 17, -55, 8, -17, 19, 35, -33, -31, -9, 16, -21, 33, -29, 15, 15, 5, -7, 3, 55, 23, -13, -42, 28, -45, -14, -6, 19, -46, -2}, + {-48, 84, 40, 13, -6, 25, 7, 1, 1, 26, -41, 12, -18, 19, -5, -25, -32, 0, 5, 30, -54, 31, 60, 43, 5, -6, 14, 25, -37, 30, -45, 40}, + {-9, 57, -8, -40, 1, -11, -22, 0, 23, 22, 26, -7, -36, -5, 43, 35, -33, 4, 50, 23, -43, 12, 37, 44, -17, -14, -27, -12, -16, -38, -7, 47} + } + }, + { + { + {7, -34, 31, 15, -21, -6, 36, -18, 22, -17, -12, 12, 20, 3, 22, 10, -25, -24, -20, -17, 11, -51, 16, 3, -27, 34, -26, 25, -11, -23, -13, 40}, + {-16, 19, 24, 12, 25, 16, 34, -20, -11, -24, -4, 27, -6, 32, 42, -2, 34, 18, -38, -19, 16, -8, 19, -6, 6, 60, -9, -28, -28, 28, -10, 30}, + {-23, -2, -27, 17, 14, 37, 4, -29, -32, -18, 1, 36, -31, 33, 38, -6, 35, -39, -11, -18, 25, -38, -10, -1, -4, 91, -12, -20, -45, 32, -30, 47}, + {29, 13, 11, 7, -1, -5, -24, 7, 30, 29, -17, 6, -24, -16, -7, 38, -31, 15, 4, 10, -8, -30, 9, -11, -8, 61, 5, -16, 14, 0, -3, -17}, + {20, 24, -35, -5, -6, 12, 32, 20, 40, -16, -18, 27, -12, -27, 40, 46, -22, 2, 8, 35, 26, -38, -19, -10, -37, 69, -26, 23, 26, 31, -16, 22} + }, + { + {-3, -9, 49, 7, -29, 31, -28, 47, -10, -5, -34, 14, -13, -26, -12, 29, -12, -11, -10, 26, 3, 1, -21, -17, 5, 27, 32, -32, 23, -8, -26, -4}, + {-8, -1, 48, -29, 32, -4, 9, 8, 21, 4, -34, 25, -12, -31, 29, 31, 9, 26, -22, -14, 14, 8, -34, -20, 11, 42, 15, -32, 32, 35, -37, -11}, + {20, -29, 12, 18, -1, 7, 12, 15, 0, 15, 18, 12, -27, -13, 5, -14, -10, -28, 16, -24, 25, -33, -7, -10, -30, 96, 5, -40, 7, -25, -13, 27}, + {-12, 36, 31, 25, 12, 38, 30, 38, -5, 18, -6, -5, 2, 4, 57, 4, -28, -28, -51, 25, 13, -24, -24, 56, -2, 74, 7, 29, -9, -18, -16, -9}, + {-6, -12, -15, -16, 7, 53, -37, -27, -30, -24, -34, 6, 9, 21, 55, 43, -5, -33, -32, 23, 35, -46, -18, 31, -27, 45, 38, 12, -28, -8, -5, 18} + }, + { + {15, -14, 42, 5, 36, 3, 42, 42, -37, -2, -33, -33, 1, 38, 35, -28, -17, -4, -36, 12, 32, -12, 20, 14, -2, 69, 9, -6, 2, 19, 32, -6}, + {10, -18, 57, 38, 8, 43, 3, 9, 8, 1, -12, -1, 23, -4, 18, 1, -7, 12, 14, 23, 11, -35, -1, 38, -9, 82, -20, -32, 1, -13, -34, -7}, + {-4, -45, 56, -30, -30, 50, 25, -16, -2, 7, -19, 5, -26, 31, 20, 40, -25, 26, -3, -12, 31, 1, -7, 38, 27, 69, -3, -26, -25, 44, 0, 46}, + {-14, -33, 22, 18, 27, 23, -1, 34, 14, -11, -10, -5, 16, -2, 54, 12, 17, -22, 3, 1, 37, -35, -40, 12, -2, 28, -4, -22, 16, 46, 4, 21}, + {-1, -11, -21, 3, 14, -14, 11, 25, 0, 7, 20, 13, 28, -13, 16, 29, -12, -26, 18, 26, -13, 6, 17, 33, -24, 49, 13, 25, -30, 18, 19, -3} + }, + { + {6, -14, 40, 5, 32, 19, 39, 25, 31, 1, 26, 4, 21, -7, 3, 18, 43, 29, -50, 9, -18, -34, -47, 5, 24, 7, -2, 16, -3, -29, 11, 14}, + {12, -63, 12, 11, 26, 5, 24, 51, -35, -1, -6, -2, -11, -20, -29, 3, -6, 30, -18, -15, 17, -41, -33, -21, 2, 34, 34, 0, -1, 15, -19, 35}, + {7, 0, -3, 9, -1, -18, 7, 37, 20, 14, -40, 11, -25, -31, 6, 30, 2, 27, -35, -22, 19, -20, -28, -6, 21, 62, -16, 4, -46, 41, -25, 10}, + {-1, -7, 18, -33, -30, 43, 34, -12, 16, -21, -4, 21, 33, -11, 39, -7, 0, 24, 1, -38, 42, -37, -23, 30, -17, 5, -2, 3, 22, 3, -48, -13}, + {5, -1, -21, -7, -21, 31, -36, -8, -38, -16, -21, -13, 10, -16, -4, 4, 41, 30, -14, 23, 34, -43, -1, 18, -21, 5, -28, 27, 16, 12, -19, -9} + }, + { + {27, -55, 31, 6, 25, 18, -5, -16, 19, 22, -21, -9, 31, -1, -25, -34, 39, -13, -2, -6, 48, 4, -46, 17, -22, 7, 3, 1, 29, 25, 11, -17}, + {36, -52, 11, 34, 20, -29, -29, -22, -18, 15, -28, 30, 38, -33, -19, 7, -8, 28, -55, -22, 19, -16, -50, -2, 25, 56, 33, 3, -33, 39, -21, -13}, + {11, -54, -7, 4, 39, -7, -9, -9, -31, -31, -28, -20, -2, -26, 40, 20, 3, -32, -25, -15, -19, 13, -34, 13, 12, 47, 17, -45, 32, -4, -11, -21}, + {-31, -12, -9, -13, -1, 26, -6, -8, 0, 17, -10, -4, -13, -5, 5, -13, 22, 16, -67, -46, 42, -5, -59, 11, 29, 43, -11, -22, -34, 15, -31, -15}, + {15, -7, -22, 2, -1, -1, -45, 7, 15, -14, 0, -16, 7, 0, 7, -4, 5, -31, -58, -3, 38, -52, -60, -22, -4, -10, 37, -8, 13, -12, -28, 10} + } + }, + { + { + {29, 27, 12, -31, -9, 0, 51, 34, -3, 13, 20, -2, -26, 23, -24, -16, 5, 0, 7, 13, 41, -28, -55, 13, 34, 96, 10, 1, 15, 26, -10, 9}, + {3, 39, 24, 20, 31, 4, 26, 3, 34, 30, -28, -23, 17, 35, -2, 14, -6, -48, -8, 25, -3, 3, -26, 19, 7, 45, -33, -29, -44, 38, 27, 46}, + {-35, 8, 14, -39, -6, 27, -7, 20, -9, 32, -52, 33, 8, 36, 32, 50, -23, -10, -7, -8, -2, 11, -16, 40, 25, 71, 11, 28, 16, 15, -56, 46}, + {1, -43, 27, -26, 0, 14, 19, -25, -3, 2, -42, -16, -22, 0, 35, -19, -21, -19, 1, 29, 37, 7, 11, 31, -19, 37, -2, -10, -1, 10, 3, 14}, + {-8, -42, -17, -12, 2, -10, -19, 17, 33, 22, -34, 29, 23, -6, -11, 30, 44, 27, -43, 3, -26, 5, -52, 1, 27, 33, -25, -13, -13, 5, -2, -18} + }, + { + {-7, 36, 27, 29, 7, -4, 1, 20, 22, -16, 6, -15, -5, -19, -29, -14, -10, 18, -16, -26, 20, 26, -7, -32, 20, 96, 16, -38, -5, -23, 29, 15}, + {2, 1, 21, -25, 29, 37, 42, 2, 27, 3, -20, -4, -2, 2, -8, 20, -14, -9, 13, -24, -11, 16, -54, -16, 20, 87, 11, 16, -26, 23, -4, 17}, + {-41, 10, 25, 15, -3, -15, 4, 14, -32, 39, -41, 5, -20, -29, -5, 40, 14, -33, 1, -27, -41, 15, -16, -13, -14, 50, -27, -25, -14, -23, -22, 49}, + {0, 28, -8, -17, -7, 29, 9, -15, 25, -6, -27, 47, 27, 20, 14, 25, -8, 11, -6, 14, 19, 15, -42, 26, -8, 77, -12, -28, 15, 17, 6, 14}, + {-21, 3, -13, -27, 37, -16, -20, 26, 34, -12, -23, 43, 28, -16, 10, 3, 41, -13, -30, -9, 42, -29, -49, 5, 12, 35, -6, -25, -17, 3, -38, 37} + }, + { + {-10, 10, -13, -13, 38, 21, 24, 14, -7, 17, -41, -29, -23, -9, 15, -18, -16, 21, -41, 18, 32, 22, -53, -12, -10, 36, -10, 32, 33, -20, -15, 30}, + {21, -28, 64, 31, 27, 39, 15, 25, -7, -41, 19, 14, 23, 23, 6, -26, 8, 10, -16, -33, 14, -34, -15, 15, 33, 81, -37, -20, -33, 41, 11, 52}, + {10, -9, 56, 29, 12, -2, -15, 19, 11, 24, -16, 27, 11, -26, -22, 44, -22, 11, -48, -33, -17, -30, -3, -16, 23, 27, 10, -27, -7, 41, -34, -11}, + {23, 17, -11, -25, -1, 20, -28, -33, -3, -4, -35, 1, 0, -38, 26, 45, 34, 10, -39, -7, 21, -13, -2, -24, 14, 34, 30, 24, 19, 37, 29, 43}, + {24, -14, 11, 4, 12, 13, 43, 12, 3, 34, 10, -31, 7, 19, -28, 19, 3, -11, -4, -1, 16, 9, -11, -14, 5, 8, 42, 29, -6, 47, -2, 30} + }, + { + {37, 6, -24, 33, 28, -27, 13, -16, -12, 37, -22, -4, 21, -31, 21, 17, 22, 32, -34, 22, 24, -22, 11, -24, -1, 68, 31, 20, -39, -2, 16, 36}, + {-19, -46, 56, 32, 40, 44, -4, 16, -18, -13, -32, 4, 15, -21, 11, 38, -8, 8, -60, -2, -14, 30, 4, 4, 0, 83, -25, 4, 1, -22, 25, -23}, + {2, -38, -13, -32, 18, 41, -34, -25, 15, 24, -38, 37, 28, 1, 25, 8, 0, 19, -17, 12, 16, -15, -39, 25, 12, 12, 6, -33, 8, -4, -37, 16}, + {-32, -1, 29, 10, -17, -33, 39, -12, -5, -20, -3, -32, 27, -5, 41, -4, -11, -35, -28, -27, 12, -17, -23, -12, -6, 70, 23, -8, -23, 26, -14, 25}, + {-18, -30, -14, 23, 27, 7, -19, 31, -15, 39, -14, -28, 29, -6, -29, 37, 59, 38, -54, 26, 22, -20, -29, -29, 10, 52, -14, -20, -19, -24, -6, -22} + }, + { + {-26, -43, 15, 16, 4, -20, -7, 15, -6, 8, 8, 30, 23, -11, 39, -9, 22, 22, -18, -32, 19, 22, -50, -9, -5, 62, -16, -12, -7, 23, -20, -5}, + {-22, -22, 12, 30, 37, -13, 0, 6, 17, 28, 2, 2, 34, 4, 21, -22, 35, 18, -3, 10, -14, -15, -33, -36, 30, 60, -15, 0, 22, 27, -28, 12}, + {-25, -49, -21, 1, -13, 41, -39, -27, -10, -23, -3, 30, 10, 6, -27, 2, 21, 7, -54, -10, 2, 5, -38, -26, -18, 51, 4, -2, -3, -10, -23, 10}, + {2, -64, 37, 29, -17, -2, 9, 27, 17, 0, 23, -7, 10, -30, -16, -11, 46, 10, -16, 14, -16, -43, -16, -35, -13, -9, -18, 26, 31, -16, 1, 19}, + {-29, -27, 21, -24, 18, -33, 22, 27, -20, 15, 24, -21, 28, -23, 34, -23, 59, 9, -6, -28, 6, -29, -53, 16, 7, 33, 38, 24, -19, 24, -30, 10} + } + }, + { + { + {14, 14, -20, -15, 21, 28, 33, 24, -19, 51, -22, -16, 24, 54, 1, -32, 5, -15, 12, 17, -41, 41, 1, -24, 22, 55, -25, -24, 40, -22, -36, 9}, + {27, 90, -27, -19, -9, 37, 8, 4, -3, 35, -28, -20, -31, 51, 15, -36, 4, 28, -28, 10, -38, 36, 8, 16, -5, 57, 46, 21, 26, -25, -8, -14}, + {1, 69, 11, 34, -21, -17, 5, -14, 33, -2, -10, -19, 8, 23, 0, -9, -9, -22, 22, 42, -32, 61, -6, 14, 7, 43, 33, 25, -24, 30, 26, -13}, + {35, 75, -2, -22, 43, 37, 10, 14, 17, 48, -6, -18, 2, 49, -3, -13, 3, -26, -1, 39, -45, 19, -7, 19, 8, -18, 16, 26, 23, 32, -28, 21}, + {-21, 76, 1, -5, 22, 4, 22, -29, 23, 49, -39, -19, 2, 19, -4, -14, 21, 25, 50, 11, -43, 12, 3, 46, -3, -4, -21, 41, 40, -18, 33, 8} + }, + { + {-10, 44, -26, -5, 10, 8, 4, -6, -6, 35, 14, -23, -29, 44, 21, -21, 53, 14, 27, -20, 8, 73, -28, 40, 29, 61, 36, 10, -5, -28, 32, 42}, + {27, 98, 22, -10, 33, -8, -8, -18, 24, 36, 36, 19, -2, -7, -34, -5, -2, 1, 0, 0, 9, 42, -22, -7, -18, 18, 29, 45, -15, 12, 29, 46}, + {-6, 35, -12, 28, 15, -12, 34, 2, 10, 13, -4, 37, 26, 49, -22, 26, 39, 30, 12, 27, 2, 63, 30, 23, -11, 7, -5, 39, -13, -8, 38, 53}, + {21, 32, -26, 34, -17, 39, 19, 29, 41, 1, 9, 36, 0, 34, 0, 34, 14, -15, 15, 2, -54, 24, 33, 19, -29, -11, 15, 29, -26, -25, 20, 23}, + {-12, 55, 13, -18, -26, -6, 24, -27, 3, -32, -21, -10, -7, 0, 19, 6, 8, -1, -8, 8, -52, 29, -12, 19, -17, 10, -29, 36, 38, -34, 29, 46} + }, + { + {35, 69, 38, 19, 31, 26, 23, -12, -1, -15, -14, 23, 2, 3, 11, 33, 25, 18, 43, 47, -7, 35, 51, 49, 8, 6, -14, 35, 0, -20, -5, 13}, + {32, 84, 3, -29, 33, 25, 49, -17, 13, 1, -16, 14, -10, 22, -21, 14, 13, -18, 37, 6, -55, 3, 17, 37, -8, 62, 30, 9, 28, 20, 42, 21}, + {-18, 65, 22, -35, 36, 19, -12, 35, -11, -36, -6, 28, 5, 27, -3, -10, -1, 11, -5, 3, 3, 25, 43, 23, -39, 8, -33, 25, 11, -24, 5, -2}, + {-28, 30, -3, -20, 45, 9, -13, -24, 4, 5, -4, -5, -15, 2, -13, 0, 27, 17, 60, -1, -29, 37, 22, -18, -6, 53, 3, 39, 1, -17, -12, 45}, + {-20, 51, -13, -4, 8, 24, 18, 25, 29, 36, -11, -24, -9, 35, 6, 12, 31, -23, 63, 11, 0, 16, 47, 40, -24, -9, -3, -16, 17, -16, 30, 4} + }, + { + {0, 42, 61, 39, 33, -13, -14, 9, 10, 20, 23, -39, 7, 28, 27, 3, 46, -26, 11, 23, -45, 22, -8, 30, -16, 46, -5, 33, 15, 1, -7, -22}, + {-5, 90, 37, 1, -2, -27, 32, -13, -3, -21, -31, -13, 41, 36, 15, -32, 18, 27, -13, -7, 6, 56, -16, -21, -18, 38, 7, -24, -21, -22, -26, 43}, + {-4, 67, 45, 20, -1, 11, 6, 22, 13, 1, -30, -26, 34, 37, 29, -26, -2, 31, 4, 1, -7, 14, -15, 12, -14, 41, 7, 0, -13, -39, -2, -24}, + {-13, 26, -1, -32, -28, -26, 23, -3, 26, -10, -16, -19, -19, -33, -5, -20, 34, -26, 13, -30, 12, 80, 15, 11, -21, 43, 23, 19, 29, 28, 19, -1}, + {-23, 62, 15, -28, 20, -28, -17, -1, 35, 13, -9, 30, -24, -19, -11, -32, -3, 1, 24, 22, -33, 52, 10, 15, -19, 19, -32, -26, 9, 9, -22, -11} + }, + { + {26, 37, 11, -9, 8, 24, 6, 27, -36, -4, 10, 1, 14, -12, 7, -19, 31, 46, -19, -10, -14, 41, 14, 8, -15, 42, -22, 2, 6, -5, 45, 4}, + {-18, 47, 68, 5, 29, -16, 47, 10, -10, -29, -24, -6, 44, 32, -27, -38, -9, 11, 41, 22, -36, 65, -6, -20, -4, 12, 16, 25, 11, -28, -27, 21}, + {-30, 85, 14, 1, 3, -32, 14, 26, -27, 17, -3, -15, 35, -35, -30, 1, 6, 18, 18, 19, -40, 32, 21, 31, -20, 15, -25, 23, -26, -44, 1, 38}, + {-36, 36, 58, 1, -1, 2, -9, 54, 1, -24, 43, -27, 16, -26, -16, 12, 46, 6, 46, 17, -34, 59, 15, 37, -15, 2, -17, 31, 13, -28, 29, -6}, + {-5, 50, 61, 54, 47, 31, 41, 46, -37, -23, 12, -6, -16, 4, -4, -12, 14, 3, -2, 42, 13, 56, 18, 39, -16, 4, -11, 40, 20, -17, 6, 14} + } + }, + { + { + {-22, 22, 1, 33, 32, -22, 1, 11, -3, 24, -3, 34, 1, 30, 45, 16, -4, 12, 14, 6, -23, 12, -5, 37, 35, 25, -22, 9, -46, -9, 38, 3}, + {36, -7, 4, 4, 41, 3, -18, 49, 24, 23, 4, 29, 36, -16, 4, 3, 48, 32, 23, 32, -44, 32, 45, -11, 7, 45, 8, 32, 2, -32, 51, 6}, + {3, -9, 22, 5, 32, 33, 3, 8, -19, -50, 7, 16, 40, -4, 16, 26, 16, -1, -1, 31, -47, 56, 18, 26, -8, 22, 19, 33, 0, -30, -16, -17}, + {21, -1, 50, 33, -15, 6, -38, 6, -31, -56, 22, 7, 14, -40, -4, 31, 43, 15, -13, -12, -51, -1, -2, 6, -15, 33, -21, -21, -23, -13, -4, 15}, + {-23, -20, 39, -40, 23, -12, -43, 10, 16, -52, -30, -20, -15, -39, 37, 24, -9, -44, -4, 26, -23, -6, 24, -9, 13, 59, -41, -12, 11, -17, -15, -28} + }, + { + {32, 10, 39, 7, 11, -21, 28, 44, 48, 26, 42, 43, 28, 8, 22, 21, 59, -13, 24, 11, -3, 22, -16, 25, 42, 44, -10, -18, -28, -30, 42, -13}, + {45, 50, 4, 31, 51, 33, -13, 40, 22, 5, 14, -27, 47, -25, 10, 26, 69, -21, 2, -20, -6, 8, 46, -20, 41, 16, -25, 35, 32, -28, 60, 40}, + {44, 10, 6, -15, -10, -10, 13, 50, 12, -49, 48, 15, 16, -25, 5, -27, 20, -6, 24, 41, -2, 2, 12, -10, -4, 19, 5, 24, -11, -21, 49, -17}, + {-8, 10, 69, 5, 24, -14, 27, 44, -11, -18, 30, 1, 53, 3, -32, 17, 39, -14, 17, 27, -11, 25, 33, -23, 8, 13, 34, 40, -24, 28, 45, -8}, + {-9, -11, 52, 3, 24, -13, 4, 42, 3, -45, 47, -14, 9, -10, -2, -34, -2, -28, 55, -4, -5, 28, -6, -3, -9, 10, -11, 15, -33, -21, 36, -26} + }, + { + {20, 32, -16, -26, 13, 36, -41, -5, 22, 8, -7, 6, 26, -8, -24, 27, 35, 46, 39, 22, -8, -3, -16, 51, 29, 2, -10, 22, 11, -31, 44, -3}, + {47, 47, 7, 1, -5, 36, -22, 48, 49, 9, 9, 4, 50, -31, -21, -19, 51, 32, -6, 31, -15, -13, -17, -21, 45, 40, 14, 6, 12, -30, 56, 39}, + {54, 29, 41, -4, 41, -6, -34, 44, 11, 24, 60, -10, 60, 28, -20, -43, 53, 22, -26, -24, 6, 8, -20, 4, -8, -19, -10, 5, -26, -35, 11, 30}, + {19, 17, 11, 36, 31, 17, 11, 44, 25, -13, 59, -26, 32, -30, -3, 6, 39, 37, -24, -9, -45, -3, 2, 7, 20, -8, 11, -18, 34, 7, 23, 30}, + {10, -4, 35, 35, 40, -14, -2, 54, 11, -20, 53, -45, 34, -17, -24, -24, 36, 19, -12, -8, -41, 66, 12, -21, 15, 47, 17, -16, -2, -26, 0, -19} + }, + { + {-3, -12, 49, 29, 33, -2, -11, 6, 5, 7, 4, 20, -26, -20, -15, -10, 15, 11, -29, 0, -21, 23, -17, 31, 10, 28, 26, -18, 31, 3, -16, 26}, + {50, 15, 44, 11, -4, -23, 23, 42, -5, -11, 44, 24, -8, -1, -26, -20, 4, -1, -7, -20, -44, 36, 5, 16, 13, -4, 29, 29, 2, -2, 13, 51}, + {50, -20, 20, 0, 25, 39, 13, 11, 16, -34, 11, 24, 30, -19, -28, 7, 30, 52, -31, 19, -14, 48, -33, 38, 7, 1, -2, 6, 50, 24, 42, -12}, + {45, 7, 54, 11, -13, -29, -17, 34, 9, -48, -2, 22, 58, -1, -11, -34, -16, 35, -29, 37, 26, 38, 14, -10, 28, 18, 23, 30, 48, 30, 10, -15}, + {-3, -32, 21, 26, -8, -29, 31, 45, 35, -1, 60, 12, 34, 26, -22, 22, 36, -2, -36, 12, 25, 25, -21, -1, 7, -11, 3, 3, 41, -37, 44, 19} + }, + { + {22, 25, 43, -39, 47, -19, 2, 32, -6, 19, 3, -23, -15, 17, -28, 1, 14, 27, -7, -36, -38, -7, -22, 43, 12, 19, -10, -31, 22, 20, 27, 33}, + {10, -11, -27, -15, -3, -15, 35, 25, -3, -27, -10, 3, -25, 39, 21, -17, -8, 43, -3, 5, 11, 1, -26, -9, -28, -4, -20, -5, -11, 6, 1, 17}, + {25, 5, 11, -20, 49, 16, 7, 39, 39, 17, 26, 17, 12, 9, 9, 19, -3, 27, -17, 3, -24, 6, 16, -4, -11, 26, 16, 33, 36, -8, 3, 19}, + {17, -33, 8, -14, 8, 2, 32, 16, -19, -26, 6, -32, 47, 16, -24, -7, 44, 35, -17, -7, -10, 23, -25, 3, 28, 16, 19, 32, 16, 7, 30, 6}, + {-12, -23, -11, 13, 11, 30, -14, 14, 2, -41, 17, -24, 29, -19, -9, 13, 16, 43, -9, 3, -24, 9, -28, -4, 30, 24, -16, 24, 20, 4, 9, -19} + } + }, + { + { + {17, 65, -35, -36, 8, -24, 21, 8, -30, 43, -23, -9, -15, 39, 9, -37, -3, 14, 12, 0, -39, 65, -2, -33, -31, 33, 7, 27, -31, -4, -25, 42}, + {36, 82, 19, 26, 23, 19, -21, -9, -24, 53, 24, -40, -17, 1, -22, -38, 42, 28, 9, -31, -31, 59, -19, 4, 6, 2, 9, 47, 16, 18, 27, -18}, + {-10, 76, -20, -27, 9, 9, -3, 31, 30, -1, 27, -19, 2, 45, -37, 20, 37, 5, 50, -25, 7, 68, -27, 30, -5, 32, -26, 32, -26, -1, -13, 31}, + {36, 49, -32, -9, -14, -39, 45, 27, 40, 8, 6, 31, -6, 1, 21, -16, 61, 36, 18, 0, 15, 5, -18, 22, -6, 32, -9, -2, 32, -15, 10, -7}, + {17, 48, -2, -14, 37, -5, 22, 12, -30, 11, -3, 0, -38, 34, -37, 15, 14, 5, 43, 1, -37, 28, -1, -14, 24, 46, 5, 16, 35, -36, -26, 22} + }, + { + {-20, 55, -24, 12, -21, 11, 31, 32, 42, 45, 4, 8, 14, -14, -7, 31, 53, -2, 38, 4, -23, 46, 39, 27, -14, 83, 20, 4, 19, 10, 35, 20}, + {-20, 94, 16, 13, 34, 4, 33, 22, 20, -16, 18, -14, 20, 25, -10, 33, -1, -13, -6, 34, 2, 2, -10, 10, 10, 36, -22, 6, -19, -18, -23, 63}, + {2, 27, 7, -37, 28, 30, -5, -27, -30, 32, 32, -29, 15, 9, -22, -3, 21, -42, -7, -12, -14, 24, -11, -15, -13, 86, 30, 45, -7, 21, 47, 62}, + {-19, 69, 12, -29, -23, 43, 1, -37, -28, 32, -36, -32, -34, 6, -38, 34, 49, -19, -7, 17, -32, -1, 19, 12, 25, 43, 20, -21, -2, 35, 15, 32}, + {17, 68, 25, -38, -28, -35, 52, -22, 6, 7, 11, -6, -25, -1, 24, -27, 43, -11, -7, 19, 18, -9, 21, 36, -16, 19, 31, 50, 33, -24, 24, 30} + }, + { + {15, 24, 70, -37, 6, 30, 21, -28, -15, -23, -26, 28, -14, -27, 4, -19, -5, -24, 37, -8, 8, 16, -28, 3, 16, 79, 10, -18, 17, -4, 5, 63}, + {40, 69, 29, -45, 20, 49, 11, -31, -30, 5, -9, -31, -45, -7, 13, -1, -8, -44, 39, 9, -29, -16, -26, 37, -16, 74, -3, -11, -10, -18, 28, 32}, + {30, 23, 41, 7, -16, 46, 26, -21, 19, -21, 10, 12, -15, 45, 21, -26, 0, 4, -6, -2, -2, 15, -23, -11, -14, 73, -4, -17, 13, 12, -26, 45}, + {-1, 72, 38, -21, 28, -17, 38, -14, 16, 18, -13, 23, 20, -27, -34, 13, 54, -31, -7, -13, 5, 52, -21, -8, 22, 81, 32, 32, 22, -2, -7, 27}, + {-16, 29, 24, -9, -22, 24, 34, -10, 36, -15, -17, -33, 7, -11, -14, -9, 21, 4, 12, -13, -8, 62, -23, 11, 20, 17, -30, 2, -25, -22, 2, 7} + }, + { + {35, 76, 45, -9, -22, -4, -16, 23, -31, 34, -29, -22, -16, -7, -28, -29, 52, -18, 46, 7, -24, 72, 0, -4, 9, 61, -9, -10, -6, 29, 23, -14}, + {32, 52, 57, 15, -21, 12, 2, -2, -33, 25, -34, -22, -29, -2, -3, 32, 43, -31, -5, -40, -29, 20, -33, -19, -28, 27, -6, 41, 4, -4, -16, 32}, + {4, 42, 33, 7, -3, -16, 46, 22, 27, 22, 25, 2, 39, 20, -14, -21, 65, -23, -17, 1, -44, 5, 35, 42, -28, 43, 34, -6, -28, -18, -33, 57}, + {40, 69, 73, -13, 39, 11, 42, 27, -2, -29, 15, -6, 25, -12, -42, 25, 2, 36, 32, -32, -4, 69, -27, 8, 17, 77, -15, -22, 11, 16, 28, 24}, + {35, 77, 67, 0, 40, -18, 11, -15, -15, 21, 28, 12, 33, 12, -31, 2, 16, -24, 39, 38, -58, 36, -32, 45, -17, 21, -12, 32, 43, -32, 24, 62} + }, + { + {51, 19, 50, -14, 31, -22, 5, 60, 3, -37, 31, -11, 5, 24, -21, 32, 63, 26, 43, -1, -20, 21, 31, -11, 27, 59, 11, 31, -1, -22, -18, -5}, + {39, 74, 39, -3, 31, 48, 22, 9, 14, -17, 8, 15, 35, 22, -29, 10, 53, -9, 27, -4, 17, 42, -40, 34, 16, 60, 40, 40, 38, 13, 47, 13}, + {37, 24, 31, 3, 1, 19, 34, 12, 19, 5, -11, -41, -9, -14, -32, -7, 15, 23, 4, 0, -38, 45, -3, -17, 22, 38, 41, -20, 32, 22, -3, -14}, + {42, 63, 37, 2, 53, -23, 19, -6, 12, -15, 32, 3, 24, -29, -36, -3, 59, -20, 3, 1, -28, 21, -7, -6, -13, 27, 17, -2, -24, -30, -13, 47}, + {17, 34, 5, 32, 47, 37, 54, 46, -29, -38, 0, -1, 15, 32, -11, 15, 25, -3, -7, -16, -2, 81, 11, -21, 31, 69, -30, -9, 20, 9, -24, -15} + } + }, + { + { + {35, 12, 12, -5, 33, 16, 0, 20, -29, -22, 9, 5, 0, 24, -5, -35, 3, -12, -3, 19, -14, 18, -32, -16, 18, 34, -2, -26, -35, -17, 11, 41}, + {36, -17, 26, 11, 34, 4, 28, -20, -14, -10, 25, -31, -21, -1, -28, -16, 44, -16, 14, -20, 11, -29, -21, 36, 4, 48, 31, 29, -1, -13, 36, 28}, + {35, 7, 21, -19, -21, 28, 39, 11, 38, 10, -14, 6, -11, -21, 13, -20, -2, -1, 24, -18, 20, -11, 18, 24, -2, 30, -17, 16, 16, -9, 23, 21}, + {19, 6, 37, -14, -18, 6, 37, 23, -22, -7, -30, 28, 21, -2, 12, 37, -15, 19, 0, -35, -8, -18, -23, 29, -32, 2, 11, 32, 3, -10, 17, 3}, + {13, 21, -14, -30, -3, -26, 12, -41, -21, -49, 12, -9, -34, 38, 4, 40, 26, -20, 22, -38, -46, -2, 44, -14, 0, 54, -30, 36, -15, 14, -23, 11} + }, + { + {44, -10, 16, 16, 16, -1, 26, 17, 11, -3, -16, 15, 41, 4, -9, -10, 55, -10, -21, 7, 7, 2, -25, 39, -19, 55, 29, -7, -38, 31, 22, -20}, + {-17, 31, 50, -24, 44, -2, 28, 22, 37, -14, 11, -39, 5, 25, 21, 31, -14, -29, 29, 19, 12, 33, 42, 28, 14, 33, -25, 25, 27, 7, 18, 26}, + {7, 6, 16, -24, 26, 7, 5, 10, 1, 3, -1, -38, -12, -21, -21, -19, -15, -1, 45, -36, 17, -17, -14, 21, -9, 35, 27, 43, -23, -20, 27, 42}, + {25, 20, 43, 22, 14, -14, 4, -23, 44, -18, -4, -19, 2, 36, -26, -3, 6, -21, 5, -18, -2, 48, 8, 2, 36, 28, 9, -27, 1, -22, 27, -13}, + {47, -10, 12, 11, -23, 17, -27, 11, 39, -2, 13, -1, 2, 6, 8, 26, 36, 22, -7, -24, -51, 43, 48, -9, 6, 23, -43, 1, -23, -2, 26, -10} + }, + { + {44, 17, -12, 29, -3, -17, -8, 25, -9, 6, -12, -7, 15, 0, 2, -23, 11, -14, 2, -14, 11, 11, -31, -24, 39, 32, 36, 20, 33, -30, 4, 0}, + {-6, 28, -1, 31, 51, -27, -7, 0, 44, -26, 2, -24, -16, 0, 20, 29, 63, 9, 41, -34, -20, 61, -13, -18, 12, 30, 4, 9, 17, 2, 28, -18}, + {29, 17, 62, 15, -20, 0, 45, 4, -8, 15, 51, 6, 17, -20, -36, -24, 7, -8, -4, -10, 14, 29, 39, 20, 6, 78, -25, 31, 26, -17, -4, -21}, + {28, -2, 12, 14, -14, -15, 35, 23, 9, -8, 30, -24, 19, 20, 12, 36, -20, 36, 23, -1, -12, -1, 18, 48, 45, 56, 34, -6, -41, 0, -17, 45}, + {14, 10, 41, 8, -36, 25, 7, -16, 7, -17, 14, 14, -30, 24, -14, 1, 0, 0, -1, -23, 15, 12, 12, 29, -21, 13, -18, 16, 17, -46, 41, 25} + }, + { + {30, 14, 38, 11, 11, 6, 27, 32, 47, -17, 35, -36, 24, -16, 4, -22, 28, -21, 36, -11, -26, 24, -18, 32, 6, 61, -22, -2, 9, 12, 26, 38}, + {48, 11, 57, -5, 50, -26, -20, -8, -11, -41, -1, -22, -7, -5, -41, 2, 46, 26, 40, -29, -39, 10, -17, 41, 20, 17, -8, 9, 25, -27, 17, 16}, + {47, -7, 42, 15, 23, 11, -18, 38, 10, -32, 3, -1, 41, -30, -30, 32, 41, 49, 19, -37, -41, 3, -18, -19, -9, 28, 16, 49, 42, -16, 14, -1}, + {11, 0, 69, 3, -19, 12, 23, 42, 3, -29, -4, -22, 43, -12, -2, -11, -11, 36, 27, 24, -37, 40, -28, 14, -19, 63, -22, 41, 11, -28, 32, 46}, + {38, 10, 45, 19, -17, 22, 33, 0, 1, -37, 4, -2, 16, -27, 4, -32, -3, -32, 1, -39, -48, 33, 35, 6, -19, 52, 25, 38, -16, -39, -6, -2} + }, + { + {3, -4, 23, 35, 60, 17, 40, -18, -5, 8, 16, -33, 33, -9, 29, 21, 3, 21, 3, 5, 24, 28, 27, 4, 10, 34, 11, 29, -21, 20, 22, 2}, + {-11, -26, 32, 29, 51, 30, 32, 7, -16, 8, -12, -9, 13, 35, -27, -22, 5, 50, 31, 27, 25, 3, -25, -27, 16, 76, -11, 25, -13, 4, 16, 36}, + {41, 13, 6, 35, -2, 30, 35, 39, 0, 14, 49, -31, 27, 17, 9, 8, 17, -10, -9, -36, -35, 13, 19, 35, -13, 7, -20, 22, 31, 20, 58, -7}, + {41, 43, 54, 50, 4, 23, -17, 25, 42, -48, 45, 30, -21, 8, -7, 10, 51, 16, 37, 33, -35, -1, -11, -8, 17, 63, 3, 11, 15, -1, 57, 10}, + {40, -33, 40, -21, 15, -20, 25, 53, 15, -35, 13, 30, 7, -13, 13, -20, 43, 35, 10, -4, -37, -21, -30, 3, 30, 73, 10, 37, 1, -21, 7, 43} + } + } +}; + +static const int F3[64][5][5][32] = { + { + { + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, -1, -1, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0} + } + }, + { + { + {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, -1, -1, -1, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0}, + {0, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}, + {0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0} + }, + { + {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0} + }, + { + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, -1, -1, 0}, + {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, -1, -1, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, 0, -1} + }, + { + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0} + }, + { + {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 1, 0, 0, 0, -1, 0, 0, -1, 0, -1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0}, + {1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, -1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, -1, 0, -1, 0, 0, -1, 0, 0, 0}, + {0, 0, -1, 0, -1, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 1, 1, -1, 0, -1, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0} + }, + { + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0} + }, + { + {0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, 0, -1, 0, -1, 0, 0, -1, 0, -1, -1}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, -1, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, -1}, + {0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1} + }, + { + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0} + }, + { + {0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1}, + {0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, -1, 0, 0, 0, 0, -1, -1}, + {0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, -1, -1}, + {0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0} + }, + { + {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0} + }, + { + {1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 1, -1, -1, 0, 0, 0, 0, 0, 1, 1, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 1, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 1, 1, 0, -1, -1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0, 0, -1}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, -1, 0, 0, 1, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0}, + {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, 1, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, + {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1}, + {0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1}, + {0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, -1, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, -1} + }, + { + {0, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0} + } + }, + { + { + {0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, -1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1} + }, + { + {0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 1} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1}, + {0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0} + }, + { + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0}, + {0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, 0, -1, -1, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0} + }, + { + {1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0} + }, + { + {0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, -1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0} + }, + { + {0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0} + }, + { + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0} + }, + { + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, -1, 0, -1, 0, 0, 1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0}, + {0, -1, 0, -1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {1, 0, 0, 0, 1, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 1, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 1, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 1, 0, 0}, + {1, 0, 0, 0, 1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 1, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -1, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, -1}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, -1, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0} + }, + { + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 1}, + {0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, + {0, 1, -1, 0, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, -1, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0} + } + }, + { + { + {0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0} + }, + { + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 1, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1} + }, + { + {0, 0, 1, 0, 1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0} + } + }, + { + { + {-1, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 1, -1, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 1, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0} + }, + { + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 1, 1, 0, 0, 0, 1, -1, 0, 0, 0, 0, -1, -1, 0, 0}, + {0, 0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, -1, 1, 0, 0, 1, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0} + }, + { + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, -1, 1, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {-1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0}, + {0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0} + }, + { + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 1, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0} + }, + { + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 1, 0, 0, 0, 1, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 1, -1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0}, + {-1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, -1, 0, 1, -1, 1, -1, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0}, + {0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, -1, 0, 1, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {1, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, -1, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, 0} + }, + { + {1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 1, -1, 1, 0, 0, 0, 0, 0, -1, 0} + }, + { + {1, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0} + }, + { + {1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, -1, 0, -1, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 1, 0, 0, 0, 0, 0, -1, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, -1, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, -1, -1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, -1, -1, 0, 0, 1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, -1, 1, 0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}, + {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 1, 0, 0, 0}, + {-1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {-1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0} + }, + { + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1}, + {0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, -1, 1, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, -1}, + {0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, -1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0} + }, + { + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {-1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, -1, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, -1} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 1, -1, 0, -1, 0, 0, -1, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, -1, -1, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0} + }, + { + {-1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {-1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {-1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0} + } + }, + { + { + {0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {-1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, -1, 0, 0, 0, 0, -1, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0} + }, + { + {1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1}, + {0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0}, + {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, -1, 0, 0, -1, 0, 0, 1, 0, 0, 1, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 1, 0, 0, -1, -1, -1, 0, 1, 0, 0, 1, 0, 0, -1, 0, 1, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 1, -1, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, -1, 0, 0, 0, 1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {-1, 0, 0, -1, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 1, 0, 0, 1, 0}, + {0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 1, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0}, + {0, 0, 1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, -1, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 1} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0} + }, + { + {1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, -1} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0} + }, + { + {1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, -1}, + {0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0} + }, + { + {0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {-1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1} + }, + { + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0} + }, + { + {0, 1, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0} + }, + { + {0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, -1, 0, 0, 0, 0, 1, 1, 0, 0, -1, 1, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, -1, 0, 1, 0, 0, 0, 1, -1, 0, 1, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, -1, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0} + }, + { + {0, 0, 1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, -1, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0}, + {0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, -1, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, -1, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 1, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, -1, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, -1, 0, 0, 0, 0}, + {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0} + }, + { + {0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, -1, 0}, + {0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, 0, 0, -1, 0}, + {0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0} + }, + { + {0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, -1, 0, 0, 0}, + {0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 1, 0, 1, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 1} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, -1, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, -1, -1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 1, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 1, 0, 0, 1, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 1, -1, 0, 0, 0} + }, + { + {0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, -1, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, -1, 1, 0, 1, -1, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 1, -1, 0, 0, -1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 1, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, -1, 0} + }, + { + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 1, 0, 0, 0, 0, 0, -1, 0, -1, 0} + }, + { + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, -1, 0} + }, + { + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, -1, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, -1, -1, 0, 0, -1, 0, 0, -1, 0, 0, 0, -1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, -1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {-1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, -1}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0} + }, + { + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0}, + {1, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, -1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, -1, 0, 0, -1, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {-1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {-1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 1, -1, 0, -1, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, -1, 0, 0, 0, -1, 1, 0, 0, 1, 0, 0, 0, 1, -1, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, -1, 1, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0} + }, + { + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, -1, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, -1, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, -1, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0} + } + }, + { + { + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, -1, 1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {-1, 0, 1, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, + {-1, 0, 1, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, -1, 0}, + {0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 1}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1}, + {0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, -1, 0, -1, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 1, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0} + }, + { + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, + {-1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 1, 1, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0}, + {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1} + }, + { + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 1, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1}, + {0, 0, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -1, 1, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {-1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 1, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 1, 1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1} + }, + { + {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 1, -1, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0} + }, + { + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0}, + {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {-1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {-1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0} + }, + { + {0, 1, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0} + }, + { + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, -1, 1, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0}, + {1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, -1, 0, 0, 1, 0, -1, 0, 1, 0, 0, 0, 0, 0, -1, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, -1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, -1, 0, 0, -1, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, -1, -1, 1, 0, 0, 0, 0, 0, -1, 0, -1, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {1, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, -1, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0}, + {0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {-1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0} + }, + { + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0} + }, + { + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, + {0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0}, + {0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, -1, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 1, 0, 0, 0, 1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 1, 0, 0, -1, 0, 1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0}, + {0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1}, + {-1, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, -1, 0, 1, -1, -1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, -1, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0} + }, + { + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, -1, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0}, + {0, -1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1}, + {0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0}, + {0, 0, -1, 0, -1, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {-1, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, -1, 0, 0}, + {-1, 0, -1, 0, 0, 1, 1, 0, 0, 1, 0, 0, -1, 1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 1, 0}, + {0, -1, 0, 0, 0, 0, -1, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1} + }, + { + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}, + {0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 1}, + {0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 1, 1, 0, 1, 0}, + {0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, -1, 0, 1, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 1, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1}, + {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0}, + {0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 1, 1, 0, 1, 0} + }, + { + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + {1, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, -1, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 1, 0, 0}, + {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, -1, 0, 0, 0} + }, + { + {0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0} + }, + { + {0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + } + }, + { + { + {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + }, + { + {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1} + }, + { + {0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}, + {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1} + } + } +}; + +static const int W1[10][1024] = { + {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, -1, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 1, 0, -1, -1, -1, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, 0, -1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, -1, -1, -1, -1, 0, -1, -1, -1, 0, -1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, -1, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, -1, -1, -1, 1, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, -1, -1, -1, 0, 0, 0, -1, 0, -1, -1, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, -1, -1, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, -1, 1, 0, 0, -1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, -1, 0, 1, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, -1, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1}, + {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, -1, 0, -1, 0, -1, -1, 0, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, -1, 1, 1, 1, 0, 1, 0, -1, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, 0, -1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, -1, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, -1, 0, -1, -1, -1, -1, 0, -1, 0, 0, 0, -1, 0, -1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 1, 0, -1, 0, 0, 1, 0, -1, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, -1, 1, 0, 0, -1, 0, 1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 1, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0, 1, 0, -1, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, -1, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, -1, 0, 0, 1, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1, 0, 1, 0, -1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, -1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, -1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, -1, -1, -1, 0, 0, 0, -1, 0, -1, 0, -1, 0, 0, 0, 0, 0, 1, -1, -1, 0, 1, -1, 0, -1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, -1, -1, -1, -1, -1, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, -1, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 1, 0, 0, 0, 0, -1, 0, -1, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, -1, 0, 0, -1, -1, 0, 0, 0, -1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, 1, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, -1, 0, -1, -1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, 0, 0, -1, -1, 0, -1, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, -1, -1, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, -1, 0, 0, 0, -1, -1, 0, 0, 0, -1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 1, 0, 1, -1, 0, -1, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, -1, -1, -1, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, -1, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, -1, 0, -1, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, -1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, -1, 0, -1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, -1, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0} +}; + +static const int B1[32] = { + -4800, -12288, -6784, -12160, -14336, -10624, -488, -5440, 20992, 3104, 4096, 8832, 14208, 9856, -7680, 18176, -10752, 5376, -5056, 11648, 23040, -12800, 15232, 3904, 13440, -9472, 16640, 5504, 1248, 17152, -5824, -6656 +}; + +static const int B2[32] = { + 8192, 4736, 10368, -2336, 14592, -6336, 264, -7296, 10240, 5440, -7232, 9600, 12928, 2976, -7744, 11648, 2656, -744, -7680, 5376, 1056, 7744, 6400, -1408, 12032, 7104, 11520, -5184, -15104, -3648, -9088, -6272 +}; + +static const int B3[64] = { + -2, -59, -11, 36, 15, 111, 88, 15, -79, 103, -39, -81, -103, 14, 86, 39, -60, -80, 83, 71, -8, -20, 24, 34, 18, -114, 5, 79, 14, -92, 19, -57, 70, 12, 57, 25, -57, -13, -7, 4, 48, 12, 88, -70, 110, 17, 80, 113, -37, -8, -99, 124, 92, 53, 50, -93, -62, 69, -75, 76, -42, -40, 108, -44 +}; + +static const int B4[10] = { + -32, 23, -30, -36, 47, -7, -2, -40, -26, 7 +}; + + +#endif /* CNN_WEIGHTS_H */ diff --git a/inference_codes/cmsis_cnn/original/ibex_cnn_params.h b/inference_codes/cmsis_cnn/original/ibex_cnn_params.h new file mode 100644 index 0000000..99fe1b9 --- /dev/null +++ b/inference_codes/cmsis_cnn/original/ibex_cnn_params.h @@ -0,0 +1,19 @@ +#ifndef IBEX_CNN_PARAMS_H +#define IBEX_CNN_PARAMS_H + +#define MV1 116 +#define MV2 73 +#define MV3 72 +#define MV4 79 + +#define SV1 16 +#define SV2 17 +#define SV3 11 +#define SV4 12 + +#define SB1 0 +#define SB2 0 +#define SB3 0 +#define SB4 0 + +#endif /* IBEX_CNN_PARAMS_H */ diff --git a/inference_codes/cmsis_cnn/original/ibex_inputs.h b/inference_codes/cmsis_cnn/original/ibex_inputs.h new file mode 100644 index 0000000..0e203da --- /dev/null +++ b/inference_codes/cmsis_cnn/original/ibex_inputs.h @@ -0,0 +1,3144 @@ +#ifndef IBEX_INPUTS_H +#define IBEX_INPUTS_H + +static const int input[32][32][3][1] = { + { + { + {-96}, {-95}, {-105} + }, + { + {-84}, {-72}, {-97} + }, + { + {-66}, {-58}, {-84} + }, + { + {-31}, {-20}, {-44} + }, + { + {-66}, {-52}, {-86} + }, + { + {-78}, {-64}, {-95} + }, + { + {-70}, {-57}, {-86} + }, + { + {-64}, {-53}, {-80} + }, + { + {-67}, {-56}, {-80} + }, + { + {-75}, {-62}, {-84} + }, + { + {-70}, {-57}, {-76} + }, + { + {-58}, {-46}, {-66} + }, + { + {-55}, {-43}, {-69} + }, + { + {-59}, {-48}, {-81} + }, + { + {-67}, {-56}, {-91} + }, + { + {-57}, {-47}, {-78} + }, + { + {-39}, {-31}, {-57} + }, + { + {-51}, {-43}, {-67} + }, + { + {-74}, {-64}, {-90} + }, + { + {-66}, {-53}, {-81} + }, + { + {-26}, {-16}, {-38} + }, + { + {-17}, {-6}, {-25} + }, + { + {-51}, {-38}, {-60} + }, + { + {-31}, {-18}, {-34} + }, + { + {-36}, {-25}, {-39} + }, + { + {-75}, {-62}, {-86} + }, + { + {-72}, {-58}, {-87} + }, + { + {-76}, {-63}, {-87} + }, + { + {-87}, {-75}, {-93} + }, + { + {-90}, {-77}, {-92} + }, + { + {-93}, {-81}, {-94} + }, + { + {-91}, {-84}, {-97} + } + }, + { + { + {-100}, {-92}, {-107} + }, + { + {-76}, {-64}, {-92} + }, + { + {-69}, {-58}, {-87} + }, + { + {-29}, {-20}, {-46} + }, + { + {-66}, {-56}, {-92} + }, + { + {-83}, {-73}, {-104} + }, + { + {-77}, {-67}, {-97} + }, + { + {-69}, {-58}, {-89} + }, + { + {-72}, {-60}, {-89} + }, + { + {-75}, {-61}, {-87} + }, + { + {-68}, {-54}, {-78} + }, + { + {-62}, {-50}, {-74} + }, + { + {-68}, {-58}, {-86} + }, + { + {-69}, {-61}, {-93} + }, + { + {-42}, {-36}, {-66} + }, + { + {27}, {31}, {9} + }, + { + {89}, {91}, {76} + }, + { + {67}, {67}, {51} + }, + { + {-17}, {-12}, {-36} + }, + { + {-57}, {-48}, {-77} + }, + { + {-25}, {-18}, {-41} + }, + { + {-17}, {-9}, {-29} + }, + { + {-53}, {-43}, {-65} + }, + { + {-33}, {-24}, {-41} + }, + { + {-38}, {-31}, {-46} + }, + { + {-73}, {-64}, {-91} + }, + { + {-75}, {-65}, {-97} + }, + { + {-76}, {-65}, {-95} + }, + { + {-80}, {-66}, {-94} + }, + { + {-91}, {-77}, {-97} + }, + { + {-88}, {-75}, {-91} + }, + { + {-86}, {-78}, {-95} + } + }, + { + { + {-73}, {-60}, {-88} + }, + { + {-66}, {-59}, {-91} + }, + { + {-69}, {-58}, {-90} + }, + { + {-29}, {-20}, {-41} + }, + { + {-66}, {-57}, {-84} + }, + { + {-81}, {-71}, {-97} + }, + { + {-81}, {-70}, {-100} + }, + { + {-67}, {-54}, {-96} + }, + { + {-63}, {-48}, {-92} + }, + { + {-69}, {-53}, {-94} + }, + { + {-72}, {-56}, {-94} + }, + { + {-71}, {-54}, {-92} + }, + { + {-74}, {-58}, {-97} + }, + { + {-69}, {-57}, {-91} + }, + { + {-13}, {-7}, {-33} + }, + { + {31}, {28}, {10} + }, + { + {30}, {15}, {2} + }, + { + {22}, {8}, {-8} + }, + { + {-6}, {-7}, {-32} + }, + { + {-39}, {-32}, {-60} + }, + { + {-27}, {-19}, {-37} + }, + { + {-20}, {-12}, {-25} + }, + { + {-55}, {-45}, {-63} + }, + { + {-31}, {-21}, {-35} + }, + { + {-35}, {-26}, {-40} + }, + { + {-75}, {-65}, {-88} + }, + { + {-75}, {-64}, {-91} + }, + { + {-73}, {-61}, {-91} + }, + { + {-69}, {-54}, {-89} + }, + { + {-90}, {-77}, {-98} + }, + { + {-98}, {-88}, {-102} + }, + { + {-84}, {-78}, {-97} + } + }, + { + { + {-75}, {-61}, {-95} + }, + { + {-63}, {-54}, {-87} + }, + { + {-52}, {-45}, {-78} + }, + { + {-16}, {-11}, {-37} + }, + { + {-52}, {-44}, {-79} + }, + { + {-57}, {-46}, {-91} + }, + { + {-52}, {-39}, {-89} + }, + { + {-50}, {-35}, {-88} + }, + { + {-58}, {-41}, {-92} + }, + { + {-63}, {-46}, {-92} + }, + { + {-64}, {-50}, {-91} + }, + { + {-68}, {-55}, {-91} + }, + { + {-72}, {-60}, {-95} + }, + { + {-70}, {-62}, {-95} + }, + { + {-59}, {-58}, {-88} + }, + { + {-24}, {-46}, {-69} + }, + { + {8}, {-38}, {-57} + }, + { + {-11}, {-47}, {-67} + }, + { + {-47}, {-53}, {-81} + }, + { + {-49}, {-44}, {-75} + }, + { + {-15}, {-10}, {-29} + }, + { + {4}, {8}, {-4} + }, + { + {-40}, {-35}, {-54} + }, + { + {-26}, {-20}, {-38} + }, + { + {-28}, {-22}, {-34} + }, + { + {-75}, {-69}, {-86} + }, + { + {-74}, {-65}, {-95} + }, + { + {-54}, {-42}, {-83} + }, + { + {-53}, {-39}, {-82} + }, + { + {-78}, {-67}, {-94} + }, + { + {-97}, {-90}, {-100} + }, + { + {-86}, {-84}, {-100} + } + }, + { + { + {-72}, {-61}, {-93} + }, + { + {-59}, {-49}, {-77} + }, + { + {-38}, {-28}, {-53} + }, + { + {-14}, {-7}, {-26} + }, + { + {-36}, {-26}, {-61} + }, + { + {-45}, {-33}, {-74} + }, + { + {-52}, {-42}, {-75} + }, + { + {-61}, {-49}, {-84} + }, + { + {-70}, {-54}, {-93} + }, + { + {-68}, {-52}, {-90} + }, + { + {-63}, {-50}, {-85} + }, + { + {-64}, {-51}, {-80} + }, + { + {-61}, {-49}, {-76} + }, + { + {-51}, {-41}, {-71} + }, + { + {-38}, {-31}, {-64} + }, + { + {-26}, {-34}, {-63} + }, + { + {-25}, {-52}, {-69} + }, + { + {-49}, {-74}, {-83} + }, + { + {-62}, {-71}, {-89} + }, + { + {-37}, {-39}, {-63} + }, + { + {4}, {5}, {-11} + }, + { + {16}, {17}, {6} + }, + { + {-25}, {-23}, {-40} + }, + { + {-14}, {-11}, {-30} + }, + { + {-20}, {-18}, {-37} + }, + { + {-46}, {-42}, {-70} + }, + { + {-37}, {-31}, {-73} + }, + { + {-29}, {-20}, {-75} + }, + { + {-36}, {-24}, {-81} + }, + { + {-46}, {-36}, {-79} + }, + { + {-69}, {-65}, {-87} + }, + { + {-60}, {-60}, {-85} + } + }, + { + { + {-62}, {-44}, {-83} + }, + { + {-24}, {-9}, {-48} + }, + { + {-3}, {12}, {-29} + }, + { + {3}, {18}, {-22} + }, + { + {-10}, {5}, {-44} + }, + { + {-21}, {-7}, {-55} + }, + { + {-18}, {-8}, {-45} + }, + { + {-26}, {-16}, {-52} + }, + { + {-50}, {-35}, {-79} + }, + { + {-54}, {-39}, {-84} + }, + { + {-41}, {-28}, {-68} + }, + { + {-26}, {-12}, {-48} + }, + { + {-15}, {1}, {-36} + }, + { + {-11}, {4}, {-35} + }, + { + {-14}, {1}, {-39} + }, + { + {-37}, {-27}, {-56} + }, + { + {-69}, {-69}, {-80} + }, + { + {-67}, {-79}, {-82} + }, + { + {-52}, {-70}, {-77} + }, + { + {-39}, {-50}, {-58} + }, + { + {-3}, {0}, {-7} + }, + { + {-2}, {5}, {-4} + }, + { + {-34}, {-24}, {-43} + }, + { + {-24}, {-14}, {-34} + }, + { + {-25}, {-18}, {-37} + }, + { + {-38}, {-31}, {-56} + }, + { + {-26}, {-16}, {-53} + }, + { + {-32}, {-21}, {-68} + }, + { + {-40}, {-30}, {-81} + }, + { + {-32}, {-24}, {-68} + }, + { + {-25}, {-20}, {-48} + }, + { + {-22}, {-22}, {-50} + } + }, + { + { + {-49}, {-40}, {-83} + }, + { + {-17}, {-11}, {-62} + }, + { + {18}, {20}, {-37} + }, + { + {26}, {29}, {-32} + }, + { + {20}, {22}, {-39} + }, + { + {18}, {20}, {-36} + }, + { + {16}, {17}, {-37} + }, + { + {14}, {16}, {-42} + }, + { + {11}, {15}, {-49} + }, + { + {9}, {13}, {-50} + }, + { + {9}, {10}, {-46} + }, + { + {11}, {15}, {-40} + }, + { + {18}, {24}, {-32} + }, + { + {21}, {27}, {-29} + }, + { + {5}, {9}, {-40} + }, + { + {-43}, {-44}, {-65} + }, + { + {-76}, {-79}, {-78} + }, + { + {-76}, {-82}, {-85} + }, + { + {-78}, {-89}, {-96} + }, + { + {-47}, {-54}, {-66} + }, + { + {15}, {15}, {-6} + }, + { + {23}, {30}, {-1} + }, + { + {-3}, {9}, {-37} + }, + { + {6}, {16}, {-32} + }, + { + {10}, {18}, {-29} + }, + { + {8}, {15}, {-32} + }, + { + {2}, {10}, {-42} + }, + { + {-26}, {-16}, {-68} + }, + { + {-48}, {-35}, {-81} + }, + { + {-22}, {-10}, {-54} + }, + { + {1}, {12}, {-24} + }, + { + {-2}, {4}, {-31} + } + }, + { + { + {1}, {9}, {-34} + }, + { + {6}, {17}, {-28} + }, + { + {14}, {8}, {-25} + }, + { + {42}, {31}, {-2} + }, + { + {7}, {1}, {-37} + }, + { + {8}, {8}, {-26} + }, + { + {17}, {21}, {-16} + }, + { + {14}, {22}, {-19} + }, + { + {13}, {22}, {-19} + }, + { + {11}, {22}, {-19} + }, + { + {7}, {19}, {-23} + }, + { + {9}, {20}, {-20} + }, + { + {11}, {22}, {-16} + }, + { + {9}, {22}, {-20} + }, + { + {-10}, {-10}, {-42} + }, + { + {-58}, {-66}, {-76} + }, + { + {-93}, {-95}, {-93} + }, + { + {-95}, {-99}, {-97} + }, + { + {-81}, {-95}, {-98} + }, + { + {-30}, {-50}, {-62} + }, + { + {25}, {14}, {-3} + }, + { + {18}, {28}, {3} + }, + { + {-12}, {5}, {-31} + }, + { + {-8}, {10}, {-27} + }, + { + {0}, {17}, {-17} + }, + { + {-1}, {15}, {-18} + }, + { + {-3}, {12}, {-21} + }, + { + {-11}, {1}, {-30} + }, + { + {-18}, {-8}, {-35} + }, + { + {-8}, {5}, {-22} + }, + { + {-2}, {12}, {-12} + }, + { + {-1}, {10}, {-12} + } + }, + { + { + {15}, {15}, {-11} + }, + { + {19}, {26}, {0} + }, + { + {54}, {52}, {29} + }, + { + {85}, {66}, {43} + }, + { + {29}, {8}, {-16} + }, + { + {11}, {-12}, {-32} + }, + { + {46}, {22}, {-5} + }, + { + {48}, {31}, {0} + }, + { + {28}, {26}, {-1} + }, + { + {12}, {22}, {-7} + }, + { + {2}, {16}, {-20} + }, + { + {6}, {15}, {-16} + }, + { + {12}, {17}, {-12} + }, + { + {9}, {9}, {-25} + }, + { + {-2}, {-22}, {-47} + }, + { + {-52}, {-72}, {-80} + }, + { + {-98}, {-98}, {-97} + }, + { + {-105}, {-101}, {-102} + }, + { + {-62}, {-82}, {-92} + }, + { + {26}, {-27}, {-43} + }, + { + {53}, {17}, {-4} + }, + { + {14}, {19}, {-8} + }, + { + {-18}, {1}, {-32} + }, + { + {-17}, {2}, {-29} + }, + { + {-11}, {6}, {-24} + }, + { + {-8}, {6}, {-23} + }, + { + {-1}, {10}, {-18} + }, + { + {6}, {14}, {-15} + }, + { + {11}, {16}, {-16} + }, + { + {4}, {10}, {-22} + }, + { + {0}, {9}, {-23} + }, + { + {1}, {6}, {-23} + } + }, + { + { + {14}, {5}, {4} + }, + { + {22}, {16}, {13} + }, + { + {85}, {71}, {54} + }, + { + {87}, {63}, {37} + }, + { + {33}, {7}, {-18} + }, + { + {16}, {-16}, {-40} + }, + { + {56}, {18}, {-21} + }, + { + {74}, {39}, {-4} + }, + { + {76}, {51}, {14} + }, + { + {56}, {43}, {16} + }, + { + {24}, {18}, {1} + }, + { + {15}, {12}, {0} + }, + { + {22}, {11}, {2} + }, + { + {14}, {-18}, {-27} + }, + { + {-31}, {-62}, {-70} + }, + { + {-78}, {-91}, {-94} + }, + { + {-87}, {-92}, {-92} + }, + { + {-66}, {-76}, {-83} + }, + { + {-18}, {-50}, {-67} + }, + { + {21}, {-22}, {-42} + }, + { + {14}, {-6}, {-19} + }, + { + {6}, {8}, {-2} + }, + { + {1}, {3}, {-8} + }, + { + {0}, {0}, {-10} + }, + { + {4}, {2}, {-10} + }, + { + {8}, {6}, {-6} + }, + { + {9}, {6}, {-5} + }, + { + {9}, {6}, {-6} + }, + { + {10}, {8}, {-5} + }, + { + {9}, {8}, {-7} + }, + { + {9}, {8}, {-8} + }, + { + {10}, {5}, {-11} + } + }, + { + { + {-35}, {-33}, {-23} + }, + { + {-28}, {-30}, {-25} + }, + { + {56}, {36}, {22} + }, + { + {48}, {25}, {3} + }, + { + {-13}, {-36}, {-55} + }, + { + {-14}, {-42}, {-63} + }, + { + {48}, {12}, {-26} + }, + { + {84}, {42}, {1} + }, + { + {92}, {49}, {5} + }, + { + {82}, {43}, {6} + }, + { + {48}, {19}, {-2} + }, + { + {3}, {-16}, {-22} + }, + { + {-26}, {-39}, {-38} + }, + { + {-39}, {-55}, {-54} + }, + { + {-55}, {-70}, {-67} + }, + { + {-61}, {-78}, {-72} + }, + { + {-45}, {-69}, {-74} + }, + { + {-12}, {-50}, {-64} + }, + { + {-10}, {-51}, {-67} + }, + { + {-38}, {-57}, {-67} + }, + { + {-32}, {-34}, {-28} + }, + { + {-27}, {-26}, {-15} + }, + { + {-20}, {-20}, {-14} + }, + { + {-9}, {-12}, {-7} + }, + { + {-6}, {-13}, {-7} + }, + { + {-16}, {-21}, {-15} + }, + { + {-20}, {-21}, {-18} + }, + { + {-18}, {-18}, {-16} + }, + { + {-10}, {-12}, {-10} + }, + { + {-5}, {-8}, {-6} + }, + { + {2}, {-2}, {-3} + }, + { + {11}, {3}, {1} + } + }, + { + { + {-38}, {-38}, {-29} + }, + { + {-20}, {-31}, {-27} + }, + { + {41}, {18}, {4} + }, + { + {35}, {10}, {-6} + }, + { + {-16}, {-43}, {-60} + }, + { + {-10}, {-40}, {-64} + }, + { + {54}, {12}, {-29} + }, + { + {84}, {40}, {-4} + }, + { + {95}, {54}, {11} + }, + { + {100}, {63}, {23} + }, + { + {81}, {45}, {11} + }, + { + {51}, {20}, {-7} + }, + { + {20}, {-5}, {-19} + }, + { + {-13}, {-42}, {-49} + }, + { + {-34}, {-66}, {-68} + }, + { + {-11}, {-47}, {-45} + }, + { + {17}, {-27}, {-33} + }, + { + {-14}, {-52}, {-61} + }, + { + {-67}, {-86}, {-86} + }, + { + {-72}, {-79}, {-74} + }, + { + {-43}, {-47}, {-40} + }, + { + {-36}, {-38}, {-29} + }, + { + {-29}, {-29}, {-23} + }, + { + {-13}, {-18}, {-14} + }, + { + {-12}, {-17}, {-12} + }, + { + {-12}, {-14}, {-7} + }, + { + {-6}, {-7}, {-2} + }, + { + {-7}, {-8}, {-7} + }, + { + {-3}, {-6}, {-5} + }, + { + {5}, {0}, {1} + }, + { + {10}, {4}, {3} + }, + { + {7}, {-3}, {-5} + } + }, + { + { + {-37}, {-43}, {-36} + }, + { + {-10}, {-25}, {-25} + }, + { + {13}, {-7}, {-24} + }, + { + {-13}, {-33}, {-47} + }, + { + {-29}, {-45}, {-52} + }, + { + {-17}, {-38}, {-52} + }, + { + {50}, {8}, {-29} + }, + { + {81}, {36}, {-8} + }, + { + {81}, {41}, {1} + }, + { + {79}, {44}, {7} + }, + { + {78}, {47}, {12} + }, + { + {98}, {70}, {29} + }, + { + {88}, {60}, {23} + }, + { + {32}, {-3}, {-31} + }, + { + {-18}, {-50}, {-62} + }, + { + {-45}, {-59}, {-48} + }, + { + {-68}, {-70}, {-49} + }, + { + {-79}, {-86}, {-70} + }, + { + {-59}, {-79}, {-74} + }, + { + {-31}, {-62}, {-65} + }, + { + {-37}, {-65}, {-65} + }, + { + {-67}, {-81}, {-78} + }, + { + {-82}, {-83}, {-81} + }, + { + {-38}, {-41}, {-41} + }, + { + {13}, {6}, {3} + }, + { + {11}, {5}, {1} + }, + { + {7}, {4}, {1} + }, + { + {4}, {3}, {0} + }, + { + {2}, {-2}, {-3} + }, + { + {11}, {6}, {4} + }, + { + {22}, {15}, {12} + }, + { + {20}, {8}, {5} + } + }, + { + { + {-43}, {-47}, {-44} + }, + { + {-19}, {-30}, {-31} + }, + { + {-37}, {-46}, {-58} + }, + { + {-49}, {-58}, {-63} + }, + { + {-34}, {-38}, {-36} + }, + { + {-31}, {-39}, {-40} + }, + { + {9}, {-20}, {-42} + }, + { + {45}, {4}, {-33} + }, + { + {58}, {16}, {-23} + }, + { + {85}, {48}, {11} + }, + { + {109}, {78}, {42} + }, + { + {118}, {86}, {46} + }, + { + {101}, {65}, {27} + }, + { + {37}, {-3}, {-30} + }, + { + {-27}, {-54}, {-58} + }, + { + {-65}, {-66}, {-46} + }, + { + {-90}, {-83}, {-60} + }, + { + {-68}, {-86}, {-81} + }, + { + {-10}, {-58}, {-75} + }, + { + {17}, {-40}, {-63} + }, + { + {-4}, {-49}, {-64} + }, + { + {-52}, {-74}, {-79} + }, + { + {-91}, {-94}, {-93} + }, + { + {-63}, {-68}, {-69} + }, + { + {18}, {3}, {-8} + }, + { + {63}, {47}, {32} + }, + { + {35}, {24}, {13} + }, + { + {25}, {20}, {16} + }, + { + {29}, {24}, {20} + }, + { + {38}, {31}, {26} + }, + { + {43}, {34}, {28} + }, + { + {40}, {28}, {22} + } + }, + { + { + {48}, {40}, {24} + }, + { + {39}, {27}, {10} + }, + { + {-7}, {-15}, {-35} + }, + { + {22}, {12}, {-3} + }, + { + {27}, {14}, {2} + }, + { + {41}, {27}, {17} + }, + { + {53}, {33}, {10} + }, + { + {45}, {10}, {-26} + }, + { + {74}, {30}, {-10} + }, + { + {102}, {60}, {19} + }, + { + {114}, {78}, {36} + }, + { + {117}, {81}, {39} + }, + { + {104}, {66}, {27} + }, + { + {38}, {2}, {-26} + }, + { + {-35}, {-53}, {-55} + }, + { + {-76}, {-74}, {-55} + }, + { + {-82}, {-86}, {-73} + }, + { + {-47}, {-79}, {-84} + }, + { + {-17}, {-62}, {-76} + }, + { + {-33}, {-67}, {-77} + }, + { + {-66}, {-86}, {-91} + }, + { + {-89}, {-98}, {-99} + }, + { + {-90}, {-97}, {-99} + }, + { + {-60}, {-80}, {-89} + }, + { + {-1}, {-29}, {-49} + }, + { + {71}, {42}, {18} + }, + { + {70}, {48}, {31} + }, + { + {49}, {38}, {29} + }, + { + {49}, {40}, {31} + }, + { + {59}, {49}, {39} + }, + { + {58}, {48}, {38} + }, + { + {58}, {44}, {34} + } + }, + { + { + {20}, {17}, {-22} + }, + { + {18}, {19}, {-23} + }, + { + {19}, {18}, {-21} + }, + { + {27}, {24}, {-16} + }, + { + {22}, {15}, {-22} + }, + { + {37}, {28}, {-10} + }, + { + {40}, {32}, {-13} + }, + { + {34}, {11}, {-35} + }, + { + {74}, {31}, {-12} + }, + { + {101}, {56}, {14} + }, + { + {112}, {74}, {33} + }, + { + {106}, {70}, {31} + }, + { + {97}, {58}, {19} + }, + { + {30}, {-5}, {-33} + }, + { + {-48}, {-62}, {-65} + }, + { + {-81}, {-76}, {-60} + }, + { + {-65}, {-75}, {-68} + }, + { + {-6}, {-52}, {-69} + }, + { + {40}, {-26}, {-53} + }, + { + {29}, {-29}, {-54} + }, + { + {-21}, {-58}, {-78} + }, + { + {-53}, {-76}, {-93} + }, + { + {-17}, {-45}, {-70} + }, + { + {26}, {-14}, {-50} + }, + { + {41}, {0}, {-42} + }, + { + {59}, {17}, {-23} + }, + { + {70}, {35}, {3} + }, + { + {70}, {53}, {26} + }, + { + {66}, {54}, {25} + }, + { + {75}, {62}, {35} + }, + { + {82}, {71}, {45} + }, + { + {82}, {69}, {45} + } + }, + { + { + {17}, {14}, {-31} + }, + { + {22}, {22}, {-25} + }, + { + {22}, {21}, {-24} + }, + { + {23}, {22}, {-23} + }, + { + {21}, {17}, {-28} + }, + { + {11}, {6}, {-39} + }, + { + {17}, {14}, {-34} + }, + { + {25}, {8}, {-38} + }, + { + {62}, {22}, {-21} + }, + { + {94}, {49}, {6} + }, + { + {102}, {59}, {16} + }, + { + {89}, {46}, {3} + }, + { + {77}, {33}, {-11} + }, + { + {30}, {-9}, {-44} + }, + { + {-39}, {-57}, {-66} + }, + { + {-77}, {-75}, {-63} + }, + { + {-59}, {-69}, {-67} + }, + { + {3}, {-38}, {-63} + }, + { + {45}, {-13}, {-52} + }, + { + {43}, {-12}, {-54} + }, + { + {40}, {-10}, {-54} + }, + { + {40}, {-9}, {-53} + }, + { + {49}, {-1}, {-47} + }, + { + {61}, {11}, {-37} + }, + { + {57}, {9}, {-43} + }, + { + {55}, {7}, {-45} + }, + { + {49}, {8}, {-36} + }, + { + {31}, {15}, {-28} + }, + { + {19}, {18}, {-28} + }, + { + {20}, {19}, {-27} + }, + { + {25}, {21}, {-22} + }, + { + {25}, {17}, {-24} + } + }, + { + { + {43}, {29}, {-11} + }, + { + {54}, {42}, {0} + }, + { + {53}, {43}, {2} + }, + { + {51}, {39}, {-1} + }, + { + {50}, {36}, {-5} + }, + { + {39}, {25}, {-15} + }, + { + {26}, {15}, {-24} + }, + { + {37}, {18}, {-22} + }, + { + {63}, {26}, {-15} + }, + { + {79}, {35}, {-9} + }, + { + {83}, {37}, {-9} + }, + { + {82}, {37}, {-11} + }, + { + {68}, {22}, {-26} + }, + { + {30}, {-11}, {-50} + }, + { + {-31}, {-52}, {-64} + }, + { + {-75}, {-76}, {-65} + }, + { + {-46}, {-57}, {-59} + }, + { + {30}, {-9}, {-43} + }, + { + {67}, {15}, {-33} + }, + { + {59}, {9}, {-40} + }, + { + {49}, {0}, {-48} + }, + { + {35}, {-15}, {-61} + }, + { + {38}, {-11}, {-57} + }, + { + {61}, {12}, {-36} + }, + { + {67}, {17}, {-36} + }, + { + {56}, {6}, {-48} + }, + { + {34}, {-9}, {-57} + }, + { + {21}, {3}, {-44} + }, + { + {26}, {24}, {-25} + }, + { + {31}, {29}, {-21} + }, + { + {35}, {31}, {-20} + }, + { + {30}, {22}, {-26} + } + }, + { + { + {70}, {47}, {16} + }, + { + {74}, {52}, {20} + }, + { + {77}, {56}, {25} + }, + { + {81}, {56}, {26} + }, + { + {82}, {55}, {24} + }, + { + {79}, {53}, {24} + }, + { + {67}, {45}, {18} + }, + { + {64}, {39}, {8} + }, + { + {61}, {24}, {-12} + }, + { + {59}, {17}, {-27} + }, + { + {67}, {24}, {-24} + }, + { + {71}, {27}, {-21} + }, + { + {48}, {3}, {-44} + }, + { + {6}, {-33}, {-71} + }, + { + {-43}, {-62}, {-73} + }, + { + {-76}, {-78}, {-68} + }, + { + {-49}, {-63}, {-67} + }, + { + {19}, {-22}, {-60} + }, + { + {50}, {-5}, {-55} + }, + { + {34}, {-19}, {-66} + }, + { + {13}, {-34}, {-77} + }, + { + {6}, {-35}, {-73} + }, + { + {21}, {-20}, {-60} + }, + { + {46}, {0}, {-45} + }, + { + {62}, {13}, {-36} + }, + { + {52}, {3}, {-47} + }, + { + {34}, {-8}, {-55} + }, + { + {47}, {24}, {-18} + }, + { + {59}, {43}, {4} + }, + { + {59}, {44}, {3} + }, + { + {60}, {48}, {4} + }, + { + {56}, {44}, {1} + } + }, + { + { + {57}, {36}, {13} + }, + { + {61}, {40}, {18} + }, + { + {64}, {45}, {21} + }, + { + {65}, {44}, {20} + }, + { + {67}, {46}, {22} + }, + { + {68}, {46}, {22} + }, + { + {67}, {46}, {23} + }, + { + {66}, {43}, {21} + }, + { + {51}, {21}, {-6} + }, + { + {35}, {-3}, {-39} + }, + { + {60}, {15}, {-29} + }, + { + {52}, {7}, {-40} + }, + { + {9}, {-33}, {-73} + }, + { + {-29}, {-62}, {-90} + }, + { + {-51}, {-69}, {-78} + }, + { + {-72}, {-80}, {-72} + }, + { + {-58}, {-75}, {-81} + }, + { + {-7}, {-45}, {-78} + }, + { + {15}, {-31}, {-71} + }, + { + {12}, {-27}, {-60} + }, + { + {28}, {0}, {-29} + }, + { + {47}, {25}, {-5} + }, + { + {20}, {-6}, {-35} + }, + { + {-5}, {-42}, {-75} + }, + { + {30}, {-15}, {-57} + }, + { + {44}, {-6}, {-55} + }, + { + {33}, {-13}, {-59} + }, + { + {56}, {26}, {-7} + }, + { + {75}, {52}, {22} + }, + { + {78}, {54}, {23} + }, + { + {78}, {56}, {23} + }, + { + {72}, {51}, {19} + } + }, + { + { + {63}, {42}, {22} + }, + { + {70}, {50}, {31} + }, + { + {70}, {52}, {30} + }, + { + {69}, {50}, {27} + }, + { + {69}, {49}, {26} + }, + { + {67}, {47}, {25} + }, + { + {67}, {47}, {25} + }, + { + {67}, {46}, {25} + }, + { + {65}, {39}, {14} + }, + { + {42}, {5}, {-30} + }, + { + {56}, {10}, {-35} + }, + { + {45}, {-3}, {-49} + }, + { + {-6}, {-42}, {-72} + }, + { + {-41}, {-64}, {-81} + }, + { + {-48}, {-67}, {-75} + }, + { + {-57}, {-70}, {-71} + }, + { + {-33}, {-47}, {-55} + }, + { + {18}, {-7}, {-30} + }, + { + {43}, {16}, {-10} + }, + { + {60}, {36}, {14} + }, + { + {68}, {48}, {25} + }, + { + {67}, {50}, {26} + }, + { + {52}, {33}, {9} + }, + { + {6}, {-18}, {-42} + }, + { + {-18}, {-51}, {-83} + }, + { + {24}, {-23}, {-68} + }, + { + {36}, {-13}, {-58} + }, + { + {53}, {24}, {-6} + }, + { + {73}, {56}, {31} + }, + { + {75}, {56}, {32} + }, + { + {76}, {56}, {30} + }, + { + {72}, {52}, {23} + } + }, + { + { + {62}, {40}, {22} + }, + { + {64}, {42}, {26} + }, + { + {62}, {44}, {23} + }, + { + {61}, {43}, {22} + }, + { + {61}, {43}, {22} + }, + { + {62}, {44}, {24} + }, + { + {63}, {45}, {24} + }, + { + {61}, {43}, {22} + }, + { + {64}, {42}, {18} + }, + { + {65}, {32}, {-3} + }, + { + {68}, {21}, {-26} + }, + { + {49}, {2}, {-44} + }, + { + {35}, {4}, {-23} + }, + { + {13}, {-5}, {-20} + }, + { + {-18}, {-37}, {-50} + }, + { + {-21}, {-39}, {-51} + }, + { + {26}, {10}, {-4} + }, + { + {67}, {50}, {32} + }, + { + {69}, {53}, {34} + }, + { + {70}, {53}, {34} + }, + { + {70}, {53}, {33} + }, + { + {70}, {53}, {33} + }, + { + {69}, {51}, {31} + }, + { + {56}, {37}, {14} + }, + { + {32}, {10}, {-22} + }, + { + {49}, {16}, {-29} + }, + { + {52}, {9}, {-41} + }, + { + {47}, {14}, {-26} + }, + { + {74}, {53}, {26} + }, + { + {73}, {56}, {35} + }, + { + {72}, {55}, {35} + }, + { + {68}, {49}, {26} + } + }, + { + { + {46}, {25}, {8} + }, + { + {54}, {32}, {16} + }, + { + {56}, {38}, {19} + }, + { + {58}, {40}, {21} + }, + { + {60}, {42}, {23} + }, + { + {62}, {45}, {25} + }, + { + {61}, {44}, {24} + }, + { + {60}, {43}, {23} + }, + { + {65}, {46}, {24} + }, + { + {72}, {41}, {6} + }, + { + {72}, {27}, {-21} + }, + { + {60}, {17}, {-28} + }, + { + {62}, {34}, {4} + }, + { + {62}, {44}, {22} + }, + { + {56}, {38}, {18} + }, + { + {57}, {37}, {17} + }, + { + {60}, {41}, {21} + }, + { + {63}, {46}, {26} + }, + { + {68}, {51}, {30} + }, + { + {70}, {52}, {32} + }, + { + {71}, {53}, {33} + }, + { + {71}, {51}, {32} + }, + { + {70}, {51}, {31} + }, + { + {73}, {53}, {31} + }, + { + {86}, {67}, {40} + }, + { + {89}, {67}, {36} + }, + { + {39}, {4}, {-36} + }, + { + {32}, {-6}, {-46} + }, + { + {81}, {52}, {17} + }, + { + {72}, {53}, {30} + }, + { + {66}, {51}, {33} + }, + { + {64}, {46}, {28} + } + }, + { + { + {54}, {34}, {18} + }, + { + {60}, {41}, {21} + }, + { + {59}, {42}, {24} + }, + { + {61}, {43}, {25} + }, + { + {62}, {43}, {26} + }, + { + {64}, {45}, {28} + }, + { + {66}, {47}, {29} + }, + { + {65}, {49}, {30} + }, + { + {65}, {48}, {30} + }, + { + {70}, {37}, {6} + }, + { + {69}, {24}, {-22} + }, + { + {57}, {18}, {-25} + }, + { + {60}, {36}, {8} + }, + { + {67}, {49}, {28} + }, + { + {67}, {49}, {28} + }, + { + {67}, {48}, {27} + }, + { + {66}, {48}, {27} + }, + { + {66}, {49}, {28} + }, + { + {68}, {50}, {31} + }, + { + {69}, {51}, {32} + }, + { + {70}, {51}, {30} + }, + { + {69}, {51}, {30} + }, + { + {68}, {51}, {30} + }, + { + {74}, {57}, {34} + }, + { + {94}, {75}, {48} + }, + { + {83}, {63}, {35} + }, + { + {19}, {-7}, {-39} + }, + { + {24}, {-8}, {-41} + }, + { + {70}, {39}, {3} + }, + { + {68}, {50}, {25} + }, + { + {65}, {50}, {28} + }, + { + {63}, {46}, {26} + } + }, + { + { + {53}, {32}, {17} + }, + { + {58}, {39}, {19} + }, + { + {58}, {41}, {22} + }, + { + {59}, {41}, {24} + }, + { + {61}, {42}, {25} + }, + { + {62}, {43}, {26} + }, + { + {63}, {43}, {25} + }, + { + {62}, {44}, {26} + }, + { + {62}, {44}, {25} + }, + { + {56}, {23}, {-9} + }, + { + {51}, {7}, {-36} + }, + { + {46}, {10}, {-30} + }, + { + {54}, {34}, {8} + }, + { + {62}, {47}, {28} + }, + { + {61}, {46}, {28} + }, + { + {54}, {41}, {24} + }, + { + {48}, {36}, {20} + }, + { + {46}, {34}, {19} + }, + { + {48}, {35}, {21} + }, + { + {55}, {40}, {24} + }, + { + {59}, {44}, {26} + }, + { + {57}, {44}, {26} + }, + { + {57}, {45}, {24} + }, + { + {74}, {58}, {31} + }, + { + {90}, {73}, {42} + }, + { + {55}, {39}, {18} + }, + { + {7}, {-14}, {-36} + }, + { + {7}, {-21}, {-46} + }, + { + {46}, {20}, {-9} + }, + { + {60}, {39}, {13} + }, + { + {65}, {48}, {28} + }, + { + {63}, {43}, {22} + } + }, + { + { + {53}, {32}, {17} + }, + { + {58}, {39}, {18} + }, + { + {55}, {38}, {20} + }, + { + {55}, {36}, {19} + }, + { + {56}, {37}, {20} + }, + { + {56}, {37}, {20} + }, + { + {58}, {38}, {20} + }, + { + {58}, {38}, {19} + }, + { + {57}, {38}, {17} + }, + { + {51}, {19}, {-14} + }, + { + {45}, {4}, {-36} + }, + { + {47}, {15}, {-16} + }, + { + {47}, {30}, {12} + }, + { + {34}, {21}, {8} + }, + { + {7}, {-2}, {-11} + }, + { + {-22}, {-24}, {-26} + }, + { + {-40}, {-37}, {-34} + }, + { + {-45}, {-42}, {-37} + }, + { + {-44}, {-41}, {-35} + }, + { + {-32}, {-34}, {-28} + }, + { + {-19}, {-23}, {-19} + }, + { + {-14}, {-16}, {-16} + }, + { + {6}, {0}, {-9} + }, + { + {59}, {45}, {25} + }, + { + {63}, {49}, {24} + }, + { + {5}, {-4}, {-12} + }, + { + {-2}, {-19}, {-35} + }, + { + {16}, {-9}, {-34} + }, + { + {23}, {3}, {-17} + }, + { + {30}, {7}, {-16} + }, + { + {17}, {6}, {-5} + }, + { + {38}, {22}, {7} + } + }, + { + { + {52}, {31}, {16} + }, + { + {55}, {36}, {15} + }, + { + {54}, {36}, {17} + }, + { + {55}, {37}, {19} + }, + { + {58}, {40}, {22} + }, + { + {59}, {40}, {22} + }, + { + {58}, {39}, {21} + }, + { + {58}, {38}, {20} + }, + { + {60}, {40}, {17} + }, + { + {61}, {30}, {-4} + }, + { + {62}, {23}, {-16} + }, + { + {48}, {18}, {-7} + }, + { + {26}, {9}, {-4} + }, + { + {12}, {0}, {-8} + }, + { + {-1}, {-7}, {-10} + }, + { + {-31}, {-30}, {-24} + }, + { + {-57}, {-53}, {-43} + }, + { + {-63}, {-61}, {-49} + }, + { + {-64}, {-61}, {-49} + }, + { + {-66}, {-60}, {-48} + }, + { + {-67}, {-59}, {-48} + }, + { + {-56}, {-50}, {-47} + }, + { + {-11}, {-13}, {-23} + }, + { + {40}, {29}, {9} + }, + { + {17}, {6}, {-11} + }, + { + {-29}, {-36}, {-40} + }, + { + {-3}, {-21}, {-39} + }, + { + {22}, {-4}, {-30} + }, + { + {-15}, {-30}, {-42} + }, + { + {25}, {3}, {-17} + }, + { + {-33}, {-37}, {-42} + }, + { + {5}, {-8}, {-16} + } + }, + { + { + {57}, {36}, {19} + }, + { + {60}, {40}, {18} + }, + { + {60}, {42}, {22} + }, + { + {60}, {42}, {22} + }, + { + {60}, {42}, {22} + }, + { + {59}, {41}, {21} + }, + { + {57}, {40}, {20} + }, + { + {57}, {40}, {18} + }, + { + {63}, {40}, {13} + }, + { + {62}, {30}, {-6} + }, + { + {61}, {23}, {-17} + }, + { + {58}, {29}, {-4} + }, + { + {51}, {32}, {9} + }, + { + {31}, {19}, {5} + }, + { + {-8}, {-15}, {-21} + }, + { + {-45}, {-45}, {-46} + }, + { + {-48}, {-49}, {-47} + }, + { + {-29}, {-35}, {-35} + }, + { + {-25}, {-30}, {-32} + }, + { + {-41}, {-42}, {-43} + }, + { + {-45}, {-47}, {-46} + }, + { + {-17}, {-24}, {-30} + }, + { + {20}, {7}, {-8} + }, + { + {37}, {21}, {0} + }, + { + {27}, {11}, {-7} + }, + { + {23}, {7}, {-8} + }, + { + {34}, {11}, {-12} + }, + { + {2}, {-22}, {-37} + }, + { + {-33}, {-45}, {-48} + }, + { + {32}, {11}, {-10} + }, + { + {-16}, {-26}, {-38} + }, + { + {32}, {12}, {-2} + } + }, + { + { + {55}, {33}, {17} + }, + { + {60}, {40}, {18} + }, + { + {61}, {42}, {22} + }, + { + {61}, {43}, {23} + }, + { + {59}, {41}, {21} + }, + { + {58}, {40}, {20} + }, + { + {58}, {40}, {20} + }, + { + {58}, {38}, {17} + }, + { + {62}, {38}, {14} + }, + { + {58}, {27}, {-2} + }, + { + {42}, {10}, {-21} + }, + { + {28}, {6}, {-19} + }, + { + {13}, {-1}, {-19} + }, + { + {-4}, {-18}, {-29} + }, + { + {-7}, {-20}, {-27} + }, + { + {5}, {-6}, {-17} + }, + { + {23}, {10}, {-6} + }, + { + {38}, {20}, {3} + }, + { + {34}, {17}, {-2} + }, + { + {22}, {8}, {-12} + }, + { + {29}, {13}, {-6} + }, + { + {45}, {25}, {4} + }, + { + {51}, {27}, {3} + }, + { + {44}, {20}, {-5} + }, + { + {25}, {5}, {-15} + }, + { + {13}, {-5}, {-21} + }, + { + {25}, {7}, {-15} + }, + { + {6}, {-13}, {-31} + }, + { + {9}, {-4}, {-21} + }, + { + {57}, {36}, {19} + }, + { + {3}, {-13}, {-24} + }, + { + {42}, {21}, {1} + } + }, + { + { + {55}, {34}, {17} + }, + { + {59}, {39}, {17} + }, + { + {57}, {39}, {19} + }, + { + {56}, {37}, {18} + }, + { + {54}, {36}, {16} + }, + { + {54}, {36}, {16} + }, + { + {53}, {36}, {16} + }, + { + {43}, {27}, {9} + }, + { + {19}, {2}, {-15} + }, + { + {15}, {-4}, {-22} + }, + { + {10}, {-9}, {-26} + }, + { + {9}, {-8}, {-20} + }, + { + {19}, {2}, {-10} + }, + { + {36}, {19}, {1} + }, + { + {49}, {30}, {8} + }, + { + {54}, {34}, {9} + }, + { + {57}, {34}, {9} + }, + { + {58}, {34}, {9} + }, + { + {59}, {35}, {10} + }, + { + {60}, {36}, {11} + }, + { + {61}, {35}, {11} + }, + { + {62}, {35}, {10} + }, + { + {62}, {35}, {8} + }, + { + {60}, {34}, {8} + }, + { + {56}, {32}, {10} + }, + { + {52}, {30}, {10} + }, + { + {49}, {29}, {5} + }, + { + {46}, {27}, {4} + }, + { + {47}, {28}, {2} + }, + { + {31}, {9}, {-11} + }, + { + {32}, {11}, {-8} + }, + { + {52}, {29}, {6} + } + }, + { + { + {55}, {32}, {15} + }, + { + {57}, {37}, {16} + }, + { + {55}, {35}, {15} + }, + { + {56}, {35}, {17} + }, + { + {57}, {36}, {17} + }, + { + {57}, {37}, {18} + }, + { + {60}, {39}, {20} + }, + { + {63}, {40}, {19} + }, + { + {56}, {34}, {13} + }, + { + {44}, {23}, {3} + }, + { + {41}, {21}, {2} + }, + { + {54}, {34}, {12} + }, + { + {64}, {42}, {20} + }, + { + {66}, {43}, {21} + }, + { + {66}, {42}, {21} + }, + { + {66}, {41}, {19} + }, + { + {65}, {41}, {18} + }, + { + {64}, {41}, {19} + }, + { + {63}, {40}, {19} + }, + { + {64}, {38}, {19} + }, + { + {65}, {37}, {19} + }, + { + {65}, {38}, {18} + }, + { + {64}, {39}, {16} + }, + { + {64}, {39}, {16} + }, + { + {64}, {37}, {15} + }, + { + {64}, {37}, {14} + }, + { + {65}, {40}, {12} + }, + { + {65}, {40}, {15} + }, + { + {65}, {40}, {15} + }, + { + {65}, {42}, {16} + }, + { + {65}, {41}, {13} + }, + { + {60}, {35}, {12} + } + }, + { + { + {43}, {10}, {-8} + }, + { + {44}, {17}, {-2} + }, + { + {45}, {16}, {-4} + }, + { + {46}, {14}, {-3} + }, + { + {46}, {14}, {-3} + }, + { + {47}, {15}, {-2} + }, + { + {48}, {16}, {-1} + }, + { + {49}, {17}, {-1} + }, + { + {48}, {16}, {-1} + }, + { + {48}, {17}, {-1} + }, + { + {48}, {17}, {-1} + }, + { + {47}, {15}, {-3} + }, + { + {46}, {15}, {-4} + }, + { + {48}, {16}, {-2} + }, + { + {50}, {18}, {0} + }, + { + {50}, {18}, {-2} + }, + { + {50}, {19}, {-3} + }, + { + {50}, {19}, {-2} + }, + { + {50}, {19}, {-3} + }, + { + {50}, {19}, {-2} + }, + { + {51}, {19}, {-1} + }, + { + {51}, {20}, {-2} + }, + { + {49}, {18}, {-3} + }, + { + {48}, {17}, {-4} + }, + { + {48}, {17}, {-5} + }, + { + {49}, {17}, {-5} + }, + { + {49}, {17}, {-5} + }, + { + {50}, {18}, {-4} + }, + { + {51}, {20}, {-2} + }, + { + {51}, {20}, {-2} + }, + { + {52}, {20}, {-2} + }, + { + {50}, {14}, {-6} + } + } +}; + + +#endif /* IBEX_INPUTS_H */ diff --git a/inference_codes/common/dws_conv.h b/inference_codes/common/dws_conv.h new file mode 100644 index 0000000..ed0de24 --- /dev/null +++ b/inference_codes/common/dws_conv.h @@ -0,0 +1,70 @@ +#ifndef DWS_CONV_H +#define DWS_CONV_H + +void pw_conv(int in_dim[3], int fil_dim[4], int out_dim[3], int inp[in_dim[0]][in_dim[1]][in_dim[2]], + const int fil[fil_dim[0]][fil_dim[3]], const int bias[], + int out[out_dim[0]][out_dim[1]][out_dim[2]], int strides, int pad[], + const int bias_shift_mode, const int quantized_multiplier, const int out_shift_rl){ + + int i, j, k, m, res, str1, str2, quant_prod; + + for (i = 0; i < out_dim[2]; i++) { // output depth + str1 = -pad[0] - strides; + for (j = 0; j < out_dim[0]; j++) { // output height + str1 += strides; + str2 = -pad[2] - strides; + for (k = 0; k < out_dim[1]; k++) { // output width + res = bias[i]; + str2 += strides; + if (str1 < in_dim[0] && str1 >= 0 && str2 >= 0 && str2 < in_dim[1]) { + for (m = 0; m < fil_dim[3]; m++) { // filters depth + res += inp[str1][str2][m] * fil[i][m]; + } + } + quant_prod = quantized_multiplier * res + (1 << (out_shift_rl -1)); + quant_prod = quant_prod >> (out_shift_rl); + if(quant_prod < 0) quant_prod = 0; + if(quant_prod > 255) quant_prod = 255; + out[j][k][i] = quant_prod; + } + } + } +} + +void dw_conv(int in_dim[3], int depthwise_fil_dim[4], int out_dim[3], int inp[in_dim[0]][in_dim[1]][in_dim[2]], + const int depthwise_fil[depthwise_fil_dim[0]][depthwise_fil_dim[1]][depthwise_fil_dim[2]][1], const int bias[], + int out[out_dim[0]][out_dim[1]][out_dim[2]], int strides, int pad[], + const int bias_shift_mode, const int depthwise_multiplier, const int depthwise_out_shift_rl){ + + int i, j, k, n, p, res, k1, k2, str1, str2, quant_prod; + + // Depthwise convolution + for (i = 0; i < out_dim[2]; i++) { // output depth + str1 = -pad[0] - strides; + for (j = 0; j < out_dim[0]; j++) { // output height + str1 += strides; + str2 = -pad[2] - strides; + for (k = 0; k < out_dim[1]; k++) { // output width + res = bias[i]; + str2 += strides; + for (p = 0; p < depthwise_fil_dim[1]; p++){ // depthwise filter height + for (n = 0; n < depthwise_fil_dim[2]; n++) { // depthwise filter width + k1 = str1 + p; + k2 = str2 + n; + + if (k1 < in_dim[0] && k1 >= 0 && k2 >= 0 && k2 < in_dim[1]) { + res += inp[k1][k2][i] * depthwise_fil[i][p][n][0]; + } + } + } + quant_prod = depthwise_multiplier * res + (1 << (depthwise_out_shift_rl -1)); + quant_prod = quant_prod >> (depthwise_out_shift_rl); + if(quant_prod < 0) quant_prod = 0; + if(quant_prod > 255) quant_prod = 255; + out[j][k][i] = quant_prod; + } + } + } +} + +#endif /* DWS_CONV_H */ diff --git a/inference_codes/common/dws_conv_opt.h b/inference_codes/common/dws_conv_opt.h new file mode 100644 index 0000000..83d77b0 --- /dev/null +++ b/inference_codes/common/dws_conv_opt.h @@ -0,0 +1,171 @@ +#ifndef DWS_CONV_OPT_H +#define DWS_CONV_OPT_H + +void pw_conv_8bits(int in_dim[3], int fil_dim[4], int out_dim[3], int inp[in_dim[0]][in_dim[1]][in_dim[2]], + const int fil[fil_dim[0]][fil_dim[3] << 2], const int bias[fil_dim[0]], + int out[out_dim[0]][out_dim[1]][out_dim[2]], int strides, int pad[], const int bias_shift_mode[], + const int quantized_multiplier, const int out_shift_rl){ + + int i, j, k, m, res, str1, str2, bias_val, w, in_cnn; + + for (i = 0; i < out_dim[2]; i++) { // output depth + str1 = -pad[0] - strides; + for (j = 0; j < out_dim[0]; j++) { // output height + str1 += 1; + str2 = -pad[2] - strides; + for (k = 0; k < out_dim[1]; k++) { // output width + bias_val = bias[i]; + str2 += 1; + asm volatile("neur_init %0, %1, %2\n":"=r"(res):"r"(bias_val),"r"(bias_shift_mode[i]):); + + for (m = 0; m < fil_dim[3]; m++) { // filters depth + in_cnn = inp[str1][str2][m]; + w = fil[i][4*m]; + asm volatile("nn_mac_8b %0, %1,%2\n":"=r"(res):"r"(w),"r"(in_cnn):); + + w = fil[i][4*m+1]; + asm volatile("nn_mac_8b %0, %1,%2\n":"=r"(res):"r"(w),"r"(in_cnn):); + + w = fil[i][4*m+2]; + asm volatile("nn_mac_8b %0, %1,%2\n":"=r"(res):"r"(w),"r"(in_cnn):); + + w = fil[i][4*m+3]; + asm volatile("nn_mac_8b %0, %1,%2\n":"=r"(res):"r"(w),"r"(in_cnn):); + } + asm volatile("neur_res %0, %1, %2\n":"=r"(res):"r"(quantized_multiplier),"r"(out_shift_rl):); + out[j][k][i] = res; + } + } + } +} + +void pw_conv_4bits(int in_dim[3], int fil_dim[4], int out_dim[3], int inp[in_dim[0]][in_dim[1]][in_dim[2]], + const int fil[fil_dim[0]][fil_dim[3] << 1], const int bias[fil_dim[0]], + int out[out_dim[0]][out_dim[1]][out_dim[2]], int strides, int pad[], const int bias_shift_mode[], + const int quantized_multiplier, const int out_shift_rl){ + + int i, j, k, m, res, str1, str2, bias_val, w, in_cnn; + + for (i = 0; i < out_dim[2]; i++) { // output depth + str1 = -pad[0] - strides; + for (j = 0; j < out_dim[0]; j++) { // output height + str1 += 1; + str2 = -pad[2] - strides; + for (k = 0; k < out_dim[1]; k++) { // output width + bias_val = bias[i]; + str2 += 1; + asm volatile("neur_init %0, %1, %2\n":"=r"(res):"r"(bias_val),"r"(bias_shift_mode[i]):); + for (m = 0; m < fil_dim[3]; m++) { // filters depth + in_cnn = inp[str1][str2][m]; + w = fil[i][2*m]; + asm volatile("nn_mac_4b %0, %1,%2\n":"=r"(res):"r"(w),"r"(in_cnn):); + + w = fil[i][2*m+1]; + asm volatile("nn_mac_4b %0, %1,%2\n":"=r"(res):"r"(w),"r"(in_cnn):); + } + asm volatile("neur_res %0, %1, %2\n":"=r"(res):"r"(quantized_multiplier),"r"(out_shift_rl):); + out[j][k][i] = res; + } + } + } +} + +void pw_conv_2bits(int in_dim[3], int fil_dim[4], int out_dim[3], int inp[in_dim[0]][in_dim[1]][in_dim[2]], + const int fil[fil_dim[0]][fil_dim[3]], const int bias[fil_dim[0]], + int out[out_dim[0]][out_dim[1]][out_dim[2]], int strides, int pad[], const int bias_shift_mode[], + const int quantized_multiplier, const int out_shift_rl){ + + int i, j, k, m, res, str1, str2, bias_val, w, in_cnn; + + for (i = 0; i < out_dim[2]; i++) { // output depth + str1 = -pad[0] - strides; + for (j = 0; j < out_dim[0]; j++) { // output height + str1 += 1; + str2 = -pad[2] - strides; + for (k = 0; k < out_dim[1]; k++) { // output width + bias_val = bias[i]; + str2 += 1; + asm volatile("neur_init %0, %1, %2\n":"=r"(res):"r"(bias_val),"r"(bias_shift_mode[i]):); + for (m = 0; m < fil_dim[3]; m++) { // filters depth + in_cnn = inp[str1][str2][m]; + w = fil[i][m]; + asm volatile("nn_mac_2b %0, %1,%2\n":"=r"(res):"r"(w),"r"(in_cnn):); + } + asm volatile("neur_res %0, %1, %2\n":"=r"(res):"r"(quantized_multiplier),"r"(out_shift_rl):); + out[j][k][i] = res; + } + } + } +} + +void dw_conv_opt(int in_dim[3], int depthwise_fil_dim[4], int out_dim[3], + int inp[in_dim[0]][in_dim[1]][in_dim[2]], const int depthwise_fil[depthwise_fil_dim[0]][depthwise_fil_dim[1]][depthwise_fil_dim[2]], + const int bias[depthwise_fil_dim[0]], int out[out_dim[0]][out_dim[1]][out_dim[2]], + int strides, int pad[], const int bias_shift_mode[], const int quantized_multiplier, const int out_shift_rl){ + + int i, j, k, n, p, res, k1, k2, str1, str2, bias_val, in_cnn, w; + + // Depthwise convolution + for (i = 0; i < out_dim[2]; i++){ // output depth + str1 = -pad[0] - strides; + for (j = 0; j < out_dim[0]; j++) { // output height + str1 += strides; + str2 = -pad[2] - strides; + for (k = 0; k < out_dim[1]; k++) { // output width + bias_val = bias[i]; + str2 += strides; + asm volatile("neur_init %0, %1, %2\n":"=r"(res):"r"(bias_val),"r"(bias_shift_mode[i]):); + for (p = 0; p < depthwise_fil_dim[1]; p++) { // depthwise filter height + for (n = 0; n < depthwise_fil_dim[2]; n++) { // depthwise filter width + k1 = str1 + p; + k2 = str2 + n; + + if (k1 < in_dim[0] && k1 >= 0 && k2 >= 0 && k2 < in_dim[1]) { + in_cnn = inp[k1][k2][i]; + w = depthwise_fil[i][p][n]; + asm volatile("nn_mac_8b %0, %1,%2\n":"=r"(res):"r"(w),"r"(in_cnn):); + } + } + } + asm volatile("neur_res %0, %1, %2\n":"=r"(res):"r"(quantized_multiplier),"r"(out_shift_rl):); + out[j][k][i] = res; + } + } + } +} + +void dw_conv_opt_1ch(int in_dim[3], int depthwise_fil_dim[4], int out_dim[3], + int inp[in_dim[0]][in_dim[1]][in_dim[2]], const int depthwise_fil[depthwise_fil_dim[0]][depthwise_fil_dim[1]][depthwise_fil_dim[2]], + const int bias[depthwise_fil_dim[0]], int out[out_dim[0]][out_dim[1]][out_dim[2]], + int strides, int pad[], const int bias_shift_mode[], const int quantized_multiplier, const int out_shift_rl){ + + int j, k, n, p, res, k1, k2, str1, str2, bias_val, in_cnn, w; + + // Depthwise convolution + str1 = -pad[0] - strides; + for (j = 0; j < out_dim[0]; j++) { // output height + str1 += strides; + str2 = -pad[2] - strides; + for (k = 0; k < out_dim[1]; k++) { // output width + bias_val = bias[0]; + str2 += strides; + asm volatile("neur_init %0, %1, %2\n":"=r"(res):"r"(bias_val),"r"(bias_shift_mode[0]):); + for (p = 0; p < depthwise_fil_dim[1]; p++) { // depthwise filter height + for (n = 0; n < depthwise_fil_dim[2]; n++) { // depthwise filter width + k1 = str1 + p; + k2 = str2 + n; + + if (k1 < in_dim[0] && k1 >= 0 && k2 >= 0 && k2 < in_dim[1]) { + in_cnn = inp[k1][k2][0]; + w = depthwise_fil[0][p][n]; + asm volatile("nn_mac_8b %0, %1,%2\n":"=r"(res):"r"(w),"r"(in_cnn):); + } + } + } + asm volatile("neur_res %0, %1, %2\n":"=r"(res):"r"(quantized_multiplier),"r"(out_shift_rl):); + out[j][k][0] = res; + } + } +} + +#endif /* DWS_CONV_OPT_H */ diff --git a/mpq/cifar10_dws_cnn/cifar10_dws_cnn.py b/mpq/cifar10_dws_cnn/cifar10_dws_cnn.py new file mode 100644 index 0000000..9cced02 --- /dev/null +++ b/mpq/cifar10_dws_cnn/cifar10_dws_cnn.py @@ -0,0 +1,89 @@ +import init_utils +import common + +# Initialize the environment and get the name +name = init_utils.initialize_environment(__file__) +args = init_utils.get_args() + +# Set arguments from command line +max_acc_drop = args.max_acc_drop +device = args.device + +from sklearn.model_selection import train_test_split +import torch.nn as nn +import torch.nn.functional as F +import tensorflow as tf +import numpy as np + +# Load our Dataset + +(X_train, y_train), (X_test, y_test) = tf.keras.datasets.cifar10.load_data() + +y_train = np.squeeze(y_train, axis = 1) +y_test = np.squeeze(y_test, axis = 1) + +X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size = 0.15) + +X_train = (np.transpose(X_train, (0,3,1,2))) +X_test = (np.transpose(X_test, (0,3,1,2))) +X_val = (np.transpose(X_val, (0,3,1,2))) + +BATCH_SIZE = 128 +epochs = 1 +lr = 0.0001 + +class DepthwiseBlock(nn.Module): + def __init__(self, in_channels, out_channels): + super(DepthwiseBlock, self).__init__() + + layers = [] + + layers.append(nn.Conv2d(in_channels = in_channels, out_channels = in_channels, + kernel_size = 3, padding = 1, groups = in_channels)) # Depthwise convolution + + layers.append(nn.ReLU(inplace = True)) + + layers.append(nn.Conv2d(in_channels = in_channels, out_channels = out_channels, + kernel_size = 1, padding = 0)) # Pointwise convolution + + layers.append(nn.ReLU(inplace = True)) + + self.block = nn.Sequential(*layers) + + def forward(self, x): + return self.block(x) + +class Cifar10_Dws_CNN(nn.Module): + def __init__(self): + super(Cifar10_Dws_CNN, self).__init__() + self.features = nn.Sequential( + DepthwiseBlock(in_channels = 3, out_channels = 64), + DepthwiseBlock(in_channels = 64, out_channels = 64), + nn.MaxPool2d(kernel_size = 2, stride = 2), + + DepthwiseBlock(in_channels = 64, out_channels = 128), + DepthwiseBlock(in_channels = 128, out_channels = 128), + nn.MaxPool2d(kernel_size = 2, stride = 2), + + DepthwiseBlock(in_channels = 128, out_channels = 256), + DepthwiseBlock(in_channels = 256, out_channels = 256), + nn.MaxPool2d(kernel_size = 2, stride = 2) + ) + + self.flatten = nn.Flatten() + + self.classifier = nn.Sequential( + nn.Linear(256 * 4 * 4, 10) # Assuming input size is (32, 32) and after 3 max pooling layers, the size is (4, 4) + ) + + def forward(self, x): + x = self.features(x) + x = self.flatten(x) + x = self.classifier(x) + return F.log_softmax(x, dim = 1) + +net = Cifar10_Dws_CNN() + +common.create_ibex_qnn(net, name, device, X_train, y_train, X_test, y_test, + X_val = X_val, y_val = y_val, BATCH_SIZE = BATCH_SIZE, + epochs = epochs, lr = lr, max_acc_drop = max_acc_drop) diff --git a/mpq/cmsis_cnn/cmsis_cnn.py b/mpq/cmsis_cnn/cmsis_cnn.py new file mode 100644 index 0000000..8435bf5 --- /dev/null +++ b/mpq/cmsis_cnn/cmsis_cnn.py @@ -0,0 +1,77 @@ +import init_utils +import common + +# Initialize the environment and get the name +name = init_utils.initialize_environment(__file__) +args = init_utils.get_args() + +# Set arguments from command line +max_acc_drop = args.max_acc_drop +device = args.device + +from sklearn.model_selection import train_test_split +import torch.nn as nn +import torch.nn.functional as F +import tensorflow as tf +import numpy as np + +# Load our Dataset + +(X_train, y_train), (X_test, y_test) = tf.keras.datasets.cifar10.load_data() +y_train = np.squeeze(y_train, axis = 1) +y_test = np.squeeze(y_test, axis = 1) + +X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size = 0.15) + +X_train = (np.transpose(X_train, (0,3,1,2)) - 128.0)/255.0 +X_test = (np.transpose(X_test, (0,3,1,2)) - 128.0)/255.0 +X_val = (np.transpose(X_val, (0,3,1,2)) - 128.0)/255.0 + +BATCH_SIZE = 32 +epochs = 1 +lr = 0.0001 + +class CMSIS_CNN(nn.Module): + def __init__(self): + super(CMSIS_CNN, self).__init__() + self.conv1 = nn.Conv2d(in_channels = 3, out_channels = 32, kernel_size = 5, padding = 2) + self.relu1 = nn.ReLU() + self.max1 = nn.MaxPool2d(2,2) + self.d1 = nn.Dropout(p = 0.25) + + self.conv2 = nn.Conv2d(in_channels = 32, out_channels = 32, kernel_size = 5, padding = 2) + self.relu2 = nn.ReLU() + self.max2 = nn.MaxPool2d(2,2) + self.d2 = nn.Dropout(p = 0.25) + + self.conv3 = nn.Conv2d(in_channels = 32, out_channels = 64, kernel_size = 5, padding = 2) + self.relu3 = nn.ReLU() + self.max3 = nn.MaxPool2d(2,2) + self.d3 = nn.Dropout(p = 0.4) + + self.flatten = nn.Flatten() + self.linear1 = nn.Linear(1024, 10) + + def forward(self,X): + X = self.relu1((self.conv1(X))) + X = self.max1(X) + X = self.d1(X) + + X = self.relu2((self.conv2(X))) + X = self.max2(X) + X = self.d2(X) + + X = self.relu3((self.conv3(X))) + X = self.max3(X) + X = self.d3(X) + + X = self.flatten(X) + + X = self.linear1(X) + return F.log_softmax(X, dim = 1) + +net = CMSIS_CNN() + +common.create_ibex_qnn(net, name, device, X_train, y_train, X_test, y_test, + X_val = X_val, y_val = y_val, BATCH_SIZE = BATCH_SIZE, + epochs = epochs, lr = lr, max_acc_drop = max_acc_drop) diff --git a/mpq/common.py b/mpq/common.py index 22298a3..b380ab4 100644 --- a/mpq/common.py +++ b/mpq/common.py @@ -125,3 +125,13 @@ def create_ibex_qnn(net, name, device, X_train, y_train, X_test, y_test, X_val = print('\nSIMULATING MODEL ON IBEX CORE\nUSE THE OUTPUTS TO VERIFY THAT THE RESULTS ARE CORRECT !!') ibex_model = simulate_ibex.create_lenet_model(int_weights, int_og_bias, mul_vals, shift_vals) simulate_ibex.eval_sim_model(quant_net, ibex_model, test_loader) + + elif(name == 'cmsis_cnn'): + print('\nSIMULATING MODEL ON IBEX CORE\nUSE THE OUTPUTS TO VERIFY THAT THE RESULTS ARE CORRECT !!') + ibex_model = simulate_ibex.create_cmsis_cnn_model(int_weights, int_og_bias, mul_vals, shift_vals) + simulate_ibex.eval_sim_model(quant_net, ibex_model, test_loader) + + elif(name == 'cifar10_dws_cnn'): + print('\nSIMULATING MODEL ON IBEX CORE\nUSE THE OUTPUTS TO VERIFY THAT THE RESULTS ARE CORRECT !!') + ibex_model = simulate_ibex.create_ibex_dws_model(int_weights, int_og_bias, mul_vals, shift_vals) + simulate_ibex.eval_sim_model(quant_net, ibex_model, test_loader) diff --git a/mpq/configure_ibex.py b/mpq/configure_ibex.py index fad6254..876c821 100644 --- a/mpq/configure_ibex.py +++ b/mpq/configure_ibex.py @@ -27,26 +27,34 @@ def quantize_multiplier(real_multiplier): return quantized_multiplier, right_shift def get_int_params(quant_net): + int_weights = [] int_bias = [] in_scales = [] act_scales = [] - for _, module in quant_net.sequential.named_children(): - if hasattr(module, 'weight') and module.weight is not None: - int_weights.append(module.int_weight().cpu().numpy()) - int_bias.append(module.int_bias().cpu().numpy()) - in_scales.append(module.quant_bias_scale().cpu().detach().numpy()) + def extract_quant_params(module): + for name, submodule in module.named_children(): + # Check if the submodule has weights and append them if present + if hasattr(submodule, 'weight') and submodule.weight is not None: + int_weights.append(submodule.int_weight().cpu().detach().numpy()) + int_bias.append(submodule.int_bias().cpu().detach().numpy()) + in_scales.append(submodule.quant_bias_scale().cpu().detach().numpy()) - if hasattr(module, 'quant_act_scale') and module.quant_act_scale is not None: - act_scales.append(module.quant_act_scale().cpu().detach().numpy()) + # Check if the submodule has activation scale and append it if present + if hasattr(submodule, 'quant_act_scale') and submodule.quant_act_scale is not None: + act_scales.append(submodule.quant_act_scale().cpu().detach().numpy()) - act_scales.append(quant_net.o_quant.quant_act_scale().cpu().detach().numpy()) + # Recursively extract parameters from the children modules + extract_quant_params(submodule) + + # Start extraction from the top-level module + extract_quant_params(quant_net) mul_vals, shift_vals = [], [] - - for i in range(len(act_scales)): - M = in_scales[i]/act_scales[i] + + for i in range(len(act_scales)-1): + M = in_scales[i]/act_scales[i+1] mul, shift = quantize_multiplier(M[0]) mul_vals.append(mul) shift_vals.append(shift) @@ -87,22 +95,27 @@ def decide_mode(network, weight_bit_width, input_uint8 = True): for name, module in network.named_modules(): if isinstance(module, layer_types_py): layer_type_name = module.__class__.__name__ - if(layer_type_name == 'Conv2d' or layer_type_name == 'Linear' or layer_type_name == 'DepthwiseConv2d'): + if(layer_type_name == 'Linear'): layer_type.append(layer_type_name) + if(layer_type_name == 'Conv2d'): + if(module.groups == module.in_channels): + layer_type.append('DepthwiseConv2d') + else: + layer_type.append(layer_type_name) else: if(layer_type_name == 'ReLU' or layer_type_name == 'Sigmoid'): input_sign[ins] = 0 ins += 1 - + for i in range(len(weight_bit_width)): signed_input = 4 * input_sign[i] - if(weight_bit_width[i] == 2): - mode_per_layer.append(signed_input + 3) - elif(weight_bit_width[i] == 4): - mode_per_layer.append(signed_input + 2) - else: - if(layer_type[i] == 'DepthwiseConv2d'): + if(layer_type[i] == 'DepthwiseConv2d'): mode_per_layer.append(signed_input + 1) + else: + if(weight_bit_width[i] == 2): + mode_per_layer.append(signed_input + 3) + elif(weight_bit_width[i] == 4): + mode_per_layer.append(signed_input + 2) else: mode_per_layer.append(signed_input) @@ -161,15 +174,22 @@ def pad_inputs_weights(quant_net, test_loader, mode_per_layer, else: new_size_0 = a * 4 - b = w.shape[1] // 4 - if(w.shape[1] % 4 != 0): - new_size_1 = (b + 1) * 4 + if((mode_per_layer[i] != 1) and (mode_per_layer[i] != 5)): + b = w.shape[1] // 4 + if(w.shape[1] % 4 != 0): + new_size_1 = (b + 1) * 4 + else: + new_size_1 = b * 4 + + new_w = np.zeros((new_size_0, new_size_1, w.shape[2], w.shape[3])).astype(np.int8) + new_w[:w.shape[0], :w.shape[1], :, :] = w + else: - new_size_1 = b * 4 - - new_w = np.zeros((new_size_0, new_size_1, w.shape[2], w.shape[3])).astype(np.int8) - new_w[:w.shape[0], :w.shape[1], :, :] = w - + new_size_1 = 1 + new_w = np.zeros((new_size_0, new_size_1, w.shape[2], w.shape[3])).astype(np.int8) + new_w[:w.shape[0], :w.shape[1], :, :] = w + new_w = np.squeeze(new_w, axis = 1) + padded_int_weights.append(new_w) padded_int_biases = [] @@ -325,6 +345,15 @@ def concat_inputs_weights(mode_per_layer, padded_input, padded_int_weights, padd comb = combine_values(vector) new_mat[i][j] = comb + elif(len(dims) == 3): + new_mat = np.zeros((int(dims[0]//4), dims[1], dims[2]), dtype = np.int64) + for i in range(int(dims[0]//4)): + for j in range(dims[1]): + for k in range(dims[2]): + vector = layer_weight[4*i : 4*(i+1), j, k] + comb = combine_values(vector) + new_mat[i][j][k] = comb + elif(len(dims) == 4): if((mode_per_layer[iter] == 0) | (mode_per_layer[iter] == 4)): new_mat = np.zeros((int(dims[0]//4), dims[1], dims[2], dims[3]), dtype = np.int64) @@ -602,9 +631,17 @@ def save_cnn_net_params(path, int_weights, int_biases, mul_vals, shift_vals, shi dims = np.shape(int_weights[k]) mat = int_weights[k] - if(len(dims) == 2): - wi += 1 - st = 'static const int W' + str(wi) + '[' + str(dims[0]) + ']' + '[' + str(dims[1]) + '] = {\n' + if(len(dims) == 2 or ((len(dims) == 4) and dims[2] == dims[3] == 1)): + f.write('static const int ') + if(len(dims) == 2): + wi += 1 + f.write('W' + str(wi)) + else: + mat = np.squeeze(mat, axis = (2,3)) + fi += 1 + f.write('F' + str(fi)) + + st = '[' + str(dims[0]) + ']' + '[' + str(dims[1]) + '] = {\n' f.write(st) for n in range(dims[0]): f.write('\t{') @@ -618,7 +655,33 @@ def save_cnn_net_params(path, int_weights, int_biases, mul_vals, shift_vals, shi f.write(',') f.write('\n') f.write('};\n\n') - + + elif (len(dims) == 3): + dims = np.shape(mat) + fi += 1 + st = 'static const int F' + str(fi) + '[' + str(dims[0]) + '][' + str(dims[1]) + st += '][' + str(dims[2]) + '] = {\n' + f.write(st) + + for n in range(dims[0]): + f.write('\t{\n') + for l in range(dims[1]): + f.write('\t\t{') + for h in range(dims[2] - 1): + f.write(str(mat[n][l][h]) + ', ') + if dims[2] != 1: + f.write(str(mat[n][l][dims[2] - 1]) + '}') + else: + f.write(str(mat[n][l][0]) + '}') + if (l != dims[1] - 1): + f.write(',') + f.write('\n') + f.write('\t}') + if n != dims[0] - 1: + f.write(',') + f.write('\n') + f.write('};\n\n') + elif(len(dims) == 4): mat = np.transpose(mat, (0, 2, 3, 1)) dims = np.shape(mat) @@ -856,9 +919,11 @@ def generate_opt_c_code_mlp(path, name, int_weights, optimal_config, type_of_lay f.write('\t' + name + '();\n\n') f.write('\treturn 0;\n}') -def get_cnn_details(model): - details = [] - for layer in model.children(): +def get_cnn_details(module, details = None): + if details is None: + details = [] + + for layer in module.children(): if isinstance(layer, nn.Conv2d): details.append({ "layer_type": "Conv2d", @@ -866,18 +931,19 @@ def get_cnn_details(model): "out_channels": layer.out_channels, "kernel_size": layer.kernel_size, "stride": layer.stride, - "padding": layer.padding + "padding": layer.padding, + "groups": layer.groups }) - elif (isinstance(layer, nn.MaxPool2d)): + elif isinstance(layer, nn.MaxPool2d): details.append({ "layer_type": "MaxPool2d", "kernel_size": layer.kernel_size, "stride": layer.stride, "padding": layer.padding }) - - elif (isinstance(layer, nn.AvgPool2d)): + + elif isinstance(layer, nn.AvgPool2d): details.append({ "layer_type": "AvgPool2d", "kernel_size": layer.kernel_size, @@ -891,6 +957,10 @@ def get_cnn_details(model): "in_features": layer.in_features, "out_features": layer.out_features }) + + # Recursively apply to children modules + get_cnn_details(layer, details) + return details def generate_og_c_code_cnn(path, name, input, cnn_details, int_weights): @@ -900,10 +970,17 @@ def generate_og_c_code_cnn(path, name, input, cnn_details, int_weights): f.write('#include "fully_connected.h"\n') f.write('#include "ibex_cnn_params.h"\n') f.write('#include "ibex_inputs.h"\n') - f.write('#include "conv2d.h"\n\n') + f.write('#include "conv2d.h"\n') - f.write('#define IMG_SZ ' + str(input.shape[2]) + '\n') - f.write('#define NUM_FIL0 ' + str(int_weights[0].shape[1]) + '\n\n') + for detail in cnn_details[:-1]: + if detail["layer_type"] == "Conv2d": + if(detail["in_channels"] == detail["out_channels"] == detail["groups"] != 1): + f.write('#include "dws_conv.h"\n') + break + + f.write('\n') + f.write('#define IMG_SZ ' + str(np.shape(input)[2]) + '\n') + f.write('#define NUM_FIL0 ' + str(np.shape(input)[1]) + '\n\n') i = 1 for w in int_weights: if(len(np.shape(w)) == 4): @@ -1050,11 +1127,17 @@ def generate_og_c_code_cnn(path, name, input, cnn_details, int_weights): for detail in cnn_details[:-1]: if detail["layer_type"] == "Conv2d": + if(detail["in_channels"] == detail["out_channels"] == detail["groups"] != 1): + conv_type = 'dw_conv' + elif(detail["kernel_size"][0] == 1): + conv_type = 'pw_conv' + else: + conv_type = "conv2" if(i == 1): - f.write('\t\tconv2(inp_dim, f_dim1, outp_dim1, in, F1, B1, ') + f.write('\t\t' + conv_type + '(inp_dim, f_dim1, outp_dim1, in, F1, B1, ') f.write('out1, STRIDE1, pad_1, SB1, MV1, SV1);') else: - f.write('\t\tconv2(outp_dim' + str(i-1) + ', f_dim' + str(i) + ', outp_dim' + str(i)) + f.write('\t\t' + conv_type + '(outp_dim' + str(i-1) + ', f_dim' + str(i) + ', outp_dim' + str(i)) f.write(', out' + str(i-1) + ', F' + str(fi) + ', B' + str(fi) + ', out' + str(i)) f.write(', STRIDE' + str(fi) + ', pad_' + str(i) + ', SB' + str(fi)) f.write(', MV' + str(fi) + ', SV' + str(fi) + ');') @@ -1091,10 +1174,17 @@ def generate_og_c_code_cnn(path, name, input, cnn_details, int_weights): f.write('\n') i += 1 - f.write('\t\tmlp_layer(out' + str(i-1) + ', out, DENSE_DIM' + str(dn-1)) - f.write(', OUT_DIM, W' + str(dn) + ', B' + str(fi + dn - 1)) - f.write(', SB' + str(fi + dn - 1) + ', MV' + str(fi + dn - 1)) - f.write(', SV' + str(fi + dn - 1) + ');\n') + if flatten == 0: + f.write('\t\tflatten(outp_dim' + str(i-1) + ', out' + str(i-1) + ', out' + str(i) + ');\n\n') + i += 1 + f.write('\t\tmlp_layer(out' + str(i-1) + ', out, flatten_dim, OUT_DIM, ') + f.write('W1, B' + str(fi + dn - 1) + ', SB' + str(fi + dn - 1) + ', MV' + str(fi + dn - 1)) + f.write(', SV' + str(fi + dn - 1) + ');') + else: + f.write('\t\tmlp_layer(out' + str(i-1) + ', out, DENSE_DIM' + str(dn-1)) + f.write(', OUT_DIM, W' + str(dn) + ', B' + str(fi + dn - 1)) + f.write(', SB' + str(fi + dn - 1) + ', MV' + str(fi + dn - 1)) + f.write(', SV' + str(fi + dn - 1) + ');\n') f.write('\n\t\tpcount_enable(0);\n\n') f.write('\t\tputs("Output Layer Values:\\n");\n') @@ -1119,13 +1209,21 @@ def generate_opt_c_code_cnn(path, name, input, cnn_details, int_weights, optimal f.write('#include "fully_connected_opt.h"\n') f.write('#include "ibex_cnn_params.h"\n') f.write('#include "ibex_inputs.h"\n') - f.write('#include "conv2d_opt.h"\n\n') + f.write('#include "conv2d_opt.h"\n') + + for detail in cnn_details[:-1]: + if detail["layer_type"] == "Conv2d": + if(detail["in_channels"] == detail["out_channels"] == detail["groups"] != 1): + f.write('#include "dws_conv_opt.h"\n') + break + + f.write('\n') f.write('#define IMG_SZ ' + str(np.shape(input)[2]) + '\n') - f.write('#define NUM_FIL0 ' + str(np.shape(input)[0]) + '\n\n') + f.write('#define NUM_FIL0 ' + str(np.shape(input)[1]) + '\n\n') i = 1 for w in int_weights: - if(len(np.shape(w)) == 4): + if(len(np.shape(w)) == 4 or len(np.shape(w)) == 3): f.write('#define FILTER' + str(i) + ' ' + str(w.shape[2]) + '\n') i += 1 @@ -1133,7 +1231,7 @@ def generate_opt_c_code_cnn(path, name, input, cnn_details, int_weights, optimal i = 1 for w in int_weights: - if(len(np.shape(w)) == 4): + if(len(np.shape(w)) == 4 or len(np.shape(w)) == 3): f.write('#define NUM_FIL' + str(i) + ' ' + str(w.shape[0]) + '\n') i += 1 @@ -1270,14 +1368,21 @@ def generate_opt_c_code_cnn(path, name, input, cnn_details, int_weights, optimal for detail in cnn_details[:-1]: if detail["layer_type"] == "Conv2d": + if(detail["in_channels"] == detail["out_channels"] == detail["groups"] != 1): + conv_type = 'dw_conv_opt' + elif(detail["kernel_size"][0] == 1): + conv_type = 'pw_conv_' + str(optimal_config[j]) + 'bits' + else: + conv_type = 'conv2_' + str(optimal_config[j]) + 'bits' + if(i == 1): - f.write('\t\tconv2_' + str(optimal_config[j]) + 'bits') - if(np.shape(input)[0] == 1): + f.write('\t\t' + conv_type) + if(np.shape(input)[1] == 1): f.write('_1ch') f.write('(inp_dim, f_dim1, outp_dim1, in, F1, B1, ') f.write('out1, STRIDE1, pad_1, SB1, MV1, SV1);') else: - f.write('\t\tconv2_' + str(optimal_config[j]) + 'bits(outp_dim' + str(i-1) + ', f_dim' + str(i)) + f.write('\t\t' + conv_type + '(outp_dim' + str(i-1) + ', f_dim' + str(i)) f.write(', outp_dim' + str(i) + ', out' + str(i-1) + ', F' + str(fi) + ', B' + str(fi) + ', out') f.write(str(i) + ', STRIDE' + str(fi) + ', pad_' + str(i) + ', SB' + str(fi)) f.write(', MV' + str(fi) + ', SV' + str(fi) + ');') @@ -1314,11 +1419,19 @@ def generate_opt_c_code_cnn(path, name, input, cnn_details, int_weights, optimal f.write('\n') i += 1 - f.write('\t\tmlp_layer_' + str(optimal_config[-1]) + 'bits(out' + str(i-1) + ', out, DENSE_DIM' + str(dn-1)) - f.write(', OUT_DIM, W' + str(dn) + ', B' + str(fi + dn - 1)) - f.write(', SB' + str(fi + dn - 1) + ', MV' + str(fi + dn - 1)) - f.write(', SV' + str(fi + dn - 1) + ');\n') + if flatten == 0: + f.write('\t\tflatten(outp_dim' + str(i-1) + ', out' + str(i-1) + ', out' + str(i) + ');\n\n') + i += 1 + f.write('\t\tmlp_layer_' + str(optimal_config[j]) + 'bits(out' + str(i-1) + ', out, ') + f.write('flatten_dim, OUT_DIM, W1, B' + str(fi + dn - 1) + ', SB' + str(fi + dn - 1) + ', MV') + f.write(str(fi + dn - 1) + ', SV' + str(fi + dn - 1) + ');\n') + else: + f.write('\t\tmlp_layer_' + str(optimal_config[-1]) + 'bits(out' + str(i-1) + ', out, DENSE_DIM' + str(dn-1)) + f.write(', OUT_DIM, W' + str(dn) + ', B' + str(fi + dn - 1)) + f.write(', SB' + str(fi + dn - 1) + ', MV' + str(fi + dn - 1)) + f.write(', SV' + str(fi + dn - 1) + ');\n') + f.write('\n\t\tpcount_enable(0);\n\n') f.write('\t\tputs("Output Layer Values:\\n");\n') f.write('\t\tfor(int i = 0; i < OUT_DIM; i++) {\n') f.write('\t\t\tputhex((out[i] & 0xFF000000) >> 24);\n') diff --git a/mpq/mpq_quantize.py b/mpq/mpq_quantize.py index 8736bd2..d72ae15 100644 --- a/mpq/mpq_quantize.py +++ b/mpq/mpq_quantize.py @@ -11,6 +11,9 @@ from torch import nn, optim import brevitas.nn as qnn from brevitas.quant import * +from brevitas.core.restrict_val import RestrictValueType + +from collections import defaultdict from torchinfo import summary def net_input_size(X_train): @@ -202,7 +205,21 @@ def generate_sequences(length, values = [2, 4, 8]): def create_weight_confs(macc_per_layer): total_macc_opt = [] - weights_per_layer = generate_sequences(len(macc_per_layer)) + + cc = 0 + idx = [] + + if(len(macc_per_layer) >= 6): + for i, mpl in enumerate(macc_per_layer): + if(mpl/max(macc_per_layer) < 0.05): + cc += 1 + idx.append(i) + + weights_per_layer = generate_sequences(len(macc_per_layer) - cc) + + for w in weights_per_layer: + for i in idx: + w.insert(i, 8) for w_conf in weights_per_layer: macc = 0 @@ -234,24 +251,47 @@ def create_weight_confs(macc_per_layer): # Define a mapping from PyTorch layers to Brevitas layers def create_layer_mapping(bit_width): mapping = { - nn.Conv2d: lambda layer, bw: qnn.QuantConv2d(in_channels = layer.in_channels, - out_channels = layer.out_channels, - kernel_size = layer.kernel_size, - stride = layer.stride[0], - padding = layer.padding, - bias = True, - cache_inference_bias = True, - bias_quant = Int32Bias, - weight_bit_width = bw, - weight_quant = Int8WeightPerTensorFloat), + nn.Conv2d: lambda layer, bw: (qnn.QuantConv2d(in_channels=layer.in_channels, + out_channels=layer.out_channels, + kernel_size=layer.kernel_size, + stride=layer.stride[0], + padding=layer.padding, + groups=layer.groups, + bias=True, + cache_inference_bias=True, + bias_quant=Int32Bias, + weight_bit_width=bw, + weight_quant=Int8WeightPerTensorFloat, + weight_scaling_min_val=2e-16, + restrict_scaling_type=RestrictValueType.LOG_FP, + return_quant_tensor=True + ) if layer.groups != layer.in_channels else ( + # Special case for depthwise convolutions + qnn.QuantConv2d(in_channels=layer.in_channels, + out_channels=layer.out_channels, + kernel_size=layer.kernel_size, + stride=layer.stride[0], + padding=layer.padding, + groups=layer.groups, + bias=True, + cache_inference_bias=True, + bias_quant=Int32Bias, + weight_bit_width=8, # Fixed bit width for depthwise convolutions + weight_quant=Int8WeightPerTensorFloat, + weight_scaling_min_val=2e-16, + restrict_scaling_type=RestrictValueType.LOG_FP, + return_quant_tensor=True))), nn.Linear: lambda layer, bw: qnn.QuantLinear(in_features = layer.in_features, out_features = layer.out_features, - cache_inference_bias = True, - weight_quant = Int8WeightPerTensorFloat, + + cache_inference_bias = True, bias_quant = Int32Bias, bias = True, - weight_bit_width = bw), + + weight_quant = Int8WeightPerTensorFloat, + weight_bit_width = bw, + return_quant_tensor=True), nn.ReLU: lambda _, bw: qnn.QuantReLU(bit_width = bw, return_quant_tensor = True), @@ -278,13 +318,11 @@ def convert_layer(layer, bit_width, layer_mapping): return layer # Function to convert a PyTorch model to a Brevitas model -def convert_model(module, bit_widths, layer_mapping): - layer_idx = [0] +def convert_model(module, bit_widths, layer_mapping, layer_idx = [0]): brevitas_module = nn.Sequential() - for name, layer in module.named_children(): if list(layer.children()): # If the layer has children, recurse - brevitas_module.add_module(name, convert_model(layer, bit_widths, layer_mapping)) + brevitas_module.add_module(name, convert_model(layer, bit_widths, layer_mapping, layer_idx)) else: layer_type = type(layer) if layer_type in [nn.Conv2d, nn.Linear]: @@ -293,6 +331,7 @@ def convert_model(module, bit_widths, layer_mapping): else: bit_width = 8 brevitas_module.add_module(name, convert_layer(layer, bit_width, layer_mapping)) + return brevitas_module class Quant_Model(nn.Module): @@ -300,13 +339,15 @@ class Quant_Model(nn.Module): super(Quant_Model, self).__init__() if(input_sign): self.quant_inp = qnn.QuantIdentity(bit_width = 8, return_quant_tensor = True, - act_quant = Uint8ActPerTensorFloat) + act_quant = Uint8ActPerTensorFloat, scaling_min_val = 2e-16, + restrict_scaling_type = RestrictValueType.LOG_FP) else: self.quant_inp = qnn.QuantIdentity(bit_width = 8, return_quant_tensor = True, - act_quant = Int8ActPerTensorFloat) + act_quant = Int8ActPerTensorFloat, scaling_min_val = 2e-16, + restrict_scaling_type = RestrictValueType.LOG_FP) - self.sequential = convert_model(og_model, w, layer_mapping) + self.sequential = convert_model(og_model, w, layer_mapping, [0]) self.o_quant = qnn.QuantIdentity(bit_width = 8, return_quant_tensor = True) def forward(self, X): @@ -314,7 +355,36 @@ class Quant_Model(nn.Module): X = self.sequential(X) X = self.o_quant(X) return F.log_softmax(X, dim = 1) - + +def count_layers_in_sequential(module): + # List to store the counts of Conv2d and Linear layers for each nn.Sequential module + sequential_counts = [] + + def _count_layers(submodule, prefix = ''): + if isinstance(submodule, nn.Sequential): + conv_count = 0 + linear_count = 0 + # Count Conv2d and Linear layers in the current nn.Sequential module + for child in submodule.children(): + if isinstance(child, nn.Conv2d): + conv_count += 1 + elif isinstance(child, nn.Linear): + linear_count += 1 + # Append the counts to the list + sequential_counts.append((conv_count, linear_count)) + # Recursively process children of the current nn.Sequential module + for name, child in submodule.named_children(): + child_prefix = f"{prefix}.{name}" if prefix else name + _count_layers(child, child_prefix) + else: + # Process children of non-nn.Sequential modules + for name, child in submodule.named_children(): + _count_layers(child, prefix) + + _count_layers(module) + + return sequential_counts[1:] + def train_quant_model(quant_net, train_loader, val_loader = None, device = 'cpu', epochs = 20, lr = 0.0001): @@ -392,6 +462,7 @@ def dse(og_model, max_acc_drop, weights_per_layer, fp_accuracy, train_loader, te device = 'cpu', epochs = 5, lr = 0.0001): sign = calculate_minimum(train_loader) >= 0 + seq_counts = count_layers_in_sequential(og_model) if max_acc_drop is not None: print('\nDSE STARTING ... BINARY SEARCH') @@ -402,6 +473,16 @@ def dse(og_model, max_acc_drop, weights_per_layer, fp_accuracy, train_loader, te mid = (low + high) // 2 w = weights_per_layer[mid] + f_w = [] + for i in range(len(seq_counts)): + t_w = w[i] + c,l = seq_counts[i] + for j in range(c+l): + f_w.append(t_w) + + if(len(seq_counts) > 0): + w = f_w + # Create and train the quantized network layer_mapping = create_layer_mapping(w) quant_net = Quant_Model(og_model, w, layer_mapping, sign) @@ -436,6 +517,16 @@ def dse(og_model, max_acc_drop, weights_per_layer, fp_accuracy, train_loader, te print('\nDSE STARTING ... EXHAUSTIVE SEARCH') test_accuracy = [] for i, w in enumerate(weights_per_layer): + f_w = [] + for i in range(len(seq_counts)): + t_w = w[i] + c,l = seq_counts[i] + for j in range(c+l): + f_w.append(t_w) + + if(len(seq_counts) > 0): + w = f_w + layer_mapping = create_layer_mapping(w) quant_net = Quant_Model(og_model, w, layer_mapping, sign) quant_net = quant_net.to(device) diff --git a/mpq/simulate_ibex.py b/mpq/simulate_ibex.py index 164a85e..181f0f8 100644 --- a/mpq/simulate_ibex.py +++ b/mpq/simulate_ibex.py @@ -151,15 +151,154 @@ class Ibex_Lenet5(nn.Module): return X +class Ibex_CMSIS_CNN(nn.Module): + def __init__(self, mul_vals, shift_vals): + super(Ibex_CMSIS_CNN, self).__init__() + + self.m0 = mul_vals[0] + self.m1 = mul_vals[1] + self.m2 = mul_vals[2] + self.m3 = mul_vals[3] + + self.s0 = shift_vals[0] + 7 + self.s1 = shift_vals[1] + 7 + self.s2 = shift_vals[2] + 7 + self.s3 = shift_vals[3] + 7 + + self.conv1 = nn.Conv2d(in_channels = 3, out_channels = 32, kernel_size = 5, padding = 'same') + self.max1 = nn.MaxPool2d(2,2) + + self.conv2 = nn.Conv2d(in_channels = 32, out_channels = 32, kernel_size = 5, padding = 'same') + self.max2 = nn.MaxPool2d(2,2) + + self.conv3 = nn.Conv2d(in_channels = 32, out_channels = 64, kernel_size = 5, padding = 'same') + self.max3 = nn.MaxPool2d(2,2) + + self.linear1 = nn.Linear(1024, 10) + + def forward(self, X, print_out = False): + + X = self.conv1(X) + X = torch.mul(X, self.m0) + X = torch.add(X, torch.bitwise_left_shift(torch.tensor(1), self.s0 -1)).type(torch.LongTensor) + X = torch.bitwise_right_shift(X, self.s0).type(torch.FloatTensor) + X = torch.clamp(X, min = 0, max = 255) + + X = self.max1(X) + + X = self.conv2(X) + X = torch.mul(X, self.m1) + X = torch.add(X, torch.bitwise_left_shift(torch.tensor(1), self.s1 -1)).type(torch.LongTensor) + X = torch.bitwise_right_shift(X, self.s1).type(torch.FloatTensor) + X = torch.clamp(X, min = 0, max = 255) + + X = self.max2(X) + + X = self.conv3(X) + X = torch.mul(X, self.m2) + X = torch.add(X, torch.bitwise_left_shift(torch.tensor(1), self.s2 -1)).type(torch.LongTensor) + X = torch.bitwise_right_shift(X, self.s2).type(torch.FloatTensor) + X = torch.clamp(X, min = 0, max = 255) + + X = self.max3(X) + + X = X.reshape(X.shape[0], -1) + X = self.linear1(X) + X = torch.mul(X, self.m3) + X = torch.add(X, torch.bitwise_left_shift(torch.tensor(1), self.s3 -1)).type(torch.LongTensor) + X = torch.bitwise_right_shift(X, self.s3).type(torch.FloatTensor) + X = torch.clamp(X, min = 0, max = 255) + + if(print_out): + print(X) + return X + +class Ibex_DepthwiseBlock(nn.Module): + def __init__(self, in_channels, out_channels, mul_vals, shift_vals): + super(Ibex_DepthwiseBlock, self).__init__() + + self.dw = nn.Conv2d(in_channels = in_channels, out_channels = in_channels, + kernel_size = 3, padding = 1, groups = in_channels) + + self.pw = nn.Conv2d(in_channels = in_channels, out_channels = out_channels, + kernel_size = 1, padding = 0) + + self.m0 = mul_vals[0] + self.m1 = mul_vals[1] + + self.s0 = shift_vals[0] + 7 + self.s1 = shift_vals[1] + 7 + + def forward(self, X): + X = self.dw(X) + X = torch.mul(X, self.m0) + X = torch.add(X, torch.bitwise_left_shift(torch.tensor(1), self.s0 -1)).type(torch.LongTensor) + X = torch.bitwise_right_shift(X, self.s0).type(torch.FloatTensor) + X = torch.clamp(X, min = 0, max = 255) + + X = self.pw(X) + X = torch.mul(X, self.m1) + X = torch.add(X, torch.bitwise_left_shift(torch.tensor(1), self.s1 -1)).type(torch.LongTensor) + X = torch.bitwise_right_shift(X, self.s1).type(torch.FloatTensor) + X = torch.clamp(X, min = 0, max = 255) + + return X + +class Ibex_Cifar10_Dws_CNN(nn.Module): + def __init__(self, mul_vals, shift_vals): + super(Ibex_Cifar10_Dws_CNN, self).__init__() + self.features = nn.Sequential( + Ibex_DepthwiseBlock(3, 64, mul_vals[0:2], shift_vals[0:2]), + Ibex_DepthwiseBlock(64, 64, mul_vals[2:4], shift_vals[2:4]), + nn.MaxPool2d(kernel_size = 2, stride = 2), + + Ibex_DepthwiseBlock(64, 128, mul_vals[4:6], shift_vals[4:6]), + Ibex_DepthwiseBlock(128, 128, mul_vals[6:8], shift_vals[6:8]), + nn.MaxPool2d(kernel_size = 2, stride = 2), + + Ibex_DepthwiseBlock(128, 256, mul_vals[8:10], shift_vals[8:10]), + Ibex_DepthwiseBlock(256, 256, mul_vals[10:12], shift_vals[10:12]), + nn.MaxPool2d(kernel_size = 2, stride = 2) + ) + + self.flatten = nn.Flatten() + + self.classifier = nn.Sequential( + nn.Linear(256 * 4 * 4, 10) + ) + + self.m_cl = mul_vals[12] + self.s_cl = shift_vals[12] + 7 + + def forward(self, x, print_out = False): + x = self.features(x) + x = self.flatten(x) + x = self.classifier(x) + + x = torch.mul(x, self.m_cl) + x = torch.add(x, torch.bitwise_left_shift(torch.tensor(1), self.s_cl - 1)).type(torch.LongTensor) + x = torch.bitwise_right_shift(x, self.s_cl).type(torch.FloatTensor) + x = torch.clamp(x, min = 0, max = 255) + + if(print_out): + print(x) + + return x + +def configure_network(ibex_model_dict, int_weights, int_biases): + for i, (name, _) in enumerate(ibex_model_dict.items()): + if(i%2 == 0): + ibex_model_dict[name] = torch.tensor(int_weights[i//2]) + else: + ibex_model_dict[name] = torch.tensor(int_biases[i//2]) + + return ibex_model_dict + def create_fann_model(int_weights, int_biases, mul_vals, shift_vals): ibex_model = Ibex_FANN(mul_vals, shift_vals) ibex_model_dict = ibex_model.state_dict() - ibex_model_dict['linear1.weight'] = torch.tensor(int_weights[0]) - ibex_model_dict['linear2.weight'] = torch.tensor(int_weights[1]) - - ibex_model_dict['linear1.bias'] = torch.tensor(int_biases[0]) - ibex_model_dict['linear2.bias'] = torch.tensor(int_biases[1]) + ibex_model_dict = configure_network(ibex_model_dict, int_weights, int_biases) ibex_model.load_state_dict(ibex_model_dict) return ibex_model @@ -168,15 +307,7 @@ def create_uci_model(int_weights, int_biases, mul_vals, shift_vals): ibex_model = Ibex_UCI_MLP(mul_vals, shift_vals) ibex_model_dict = ibex_model.state_dict() - ibex_model_dict['fc0.weight'] = torch.tensor(int_weights[0]) - ibex_model_dict['fc1.weight'] = torch.tensor(int_weights[1]) - ibex_model_dict['fc2.weight'] = torch.tensor(int_weights[2]) - ibex_model_dict['fc3.weight'] = torch.tensor(int_weights[3]) - - ibex_model_dict['fc0.bias'] = torch.tensor(int_biases[0]) - ibex_model_dict['fc1.bias'] = torch.tensor(int_biases[1]) - ibex_model_dict['fc2.bias'] = torch.tensor(int_biases[2]) - ibex_model_dict['fc3.bias'] = torch.tensor(int_biases[3]) + ibex_model_dict = configure_network(ibex_model_dict, int_weights, int_biases) ibex_model.load_state_dict(ibex_model_dict) @@ -186,24 +317,33 @@ def create_lenet_model(int_weights, int_biases, mul_vals, shift_vals): ibex_model = Ibex_Lenet5(mul_vals, shift_vals) ibex_model_dict = ibex_model.state_dict() - ibex_model_dict['conv1.weight'] = torch.tensor(int_weights[0]) - ibex_model_dict['conv2.weight'] = torch.tensor(int_weights[1]) - ibex_model_dict['fc1.weight'] = torch.tensor(int_weights[2]) - ibex_model_dict['fc2.weight'] = torch.tensor(int_weights[3]) - ibex_model_dict['fc3.weight'] = torch.tensor(int_weights[4]) - - ibex_model_dict['conv1.bias'] = torch.tensor(int_biases[0]) - ibex_model_dict['conv2.bias'] = torch.tensor(int_biases[1]) - ibex_model_dict['fc1.bias'] = torch.tensor(int_biases[2]) - ibex_model_dict['fc2.bias'] = torch.tensor(int_biases[3]) - ibex_model_dict['fc3.bias'] = torch.tensor(int_biases[4]) + ibex_model_dict = configure_network(ibex_model_dict, int_weights, int_biases) ibex_model.load_state_dict(ibex_model_dict) return ibex_model +def create_cmsis_cnn_model(int_weights, int_biases, mul_vals, shift_vals): + ibex_model = Ibex_CMSIS_CNN(mul_vals, shift_vals) + ibex_model_dict = ibex_model.state_dict() + + ibex_model_dict = configure_network(ibex_model_dict, int_weights, int_biases) + + ibex_model.load_state_dict(ibex_model_dict) + + return ibex_model + +def create_ibex_dws_model(int_weights, int_biases, mul_vals, shift_vals): + ibex_model = Ibex_Cifar10_Dws_CNN(mul_vals, shift_vals) + ibex_model_dict = ibex_model.state_dict() + + ibex_model_dict = configure_network(ibex_model_dict, int_weights, int_biases) + + ibex_model.load_state_dict(ibex_model_dict) + + return ibex_model + def eval_sim_model(quant_model, ibex_model, test_loader): - # Turn off gradients for validation with torch.no_grad(): ibex_model.eval() correct = 0